首页 > 其他分享 >IEC 60958 && IEC 61937

IEC 60958 && IEC 61937

时间:2023-05-25 11:47:24浏览次数:49  
标签:BMC Sub Frame 61937 192 60958 Bit IEC

IEC 60958 && IEC 61937

IEC 60958

IEC 60958是一种传递数字音频的接口规范,相比I2S,IEC60958通过一根线同时传递时钟信号和数据信号。IEC 60958用来传递两channel,16/20/24bits采样深度的PCM数据。

IEC 60958在传输数据时使用双相符号编码(Biphase Mark Code),简称BMC,属于一种相位调制(phase modulation)的编码方法,是将时钟讯号和数据讯号混合在一起传输的编码方法。下图是BMC的示意图

在BMC编码中,时钟信号的频率是数据传输bitrate的两倍。BMC信号在时钟信号的上升沿跳变。在时钟下降沿,BMC是否跳边取决于数据信号,当数据信号是高电平时,BMC跳变。当数据信号是低电平时,BMC不跳变。

在音频信号在硬件间传递时,是传递的BMC信号,接收端对BMC解码,解析出时钟信号与数据信号。

IEC 60958标准传递两channel音频数据的报文格式如下图所示,

由192个Frame构成的Block,而每个Frame储存了两个channel的一组采样信号(Sample),分为Channel A与Channel B两个声道。而每组Sample由Sub Frame构成,也就是一个Frame里有两个Sub Frame。Sub Frame的数据长度为32 Bits,里头内含了头码(Preamble)、辅助数据(Aux. Data)、音频数据(Audio Data)、以及四个位的信息与检查码。也就是说,一个Sub Frame为32 Bits,也就4 Bytes,而一个Frame为8 Bytes,而一个Block为192 x 8 = 1536 Bytes,而每个Block总共可以传递192个双声道Sample。

Sub Frame各个bit组成如下:

0-3 bits       头码(Preamble)        用来表示一个Sub Frame的开头,有三种型态,分别表示该Sub Frame为Channel A、Channel B或着是一个Block的起始Sub Frame(为Channel A)。

4-7bits        辅助数据(Aux. Data)        原始此区块的设计是用来传递一些使用者自行添加的信息,不过目前比较常见的用途是当音讯数据超过20Bit取样时,这四个Bit用来储存多出的取样Bit,比如说当要传送24Bit取样的数据时,用来存放末四个Bit的音讯数据。

8-27bits        音频数据(Audio Data)        存放实际的取样数据,长度为20 Bit,以LSB优先的方式传送,当取样低于20 Bit时,没有用到的LSB Bits要设定为零,举例来说,当我们要传送16 Bit的数据时,只会用到12-27 Bit的位置(LSB在12 Bit),而8-11 Bit为零。

28 bit       有效位(Validity Bit)        此位设定了这一个Sub Frame内的数据是不是正确,如果设定为0,代表此Sub Frame内的数据是正确可被接收的,反之如果此Bit为1,则代表接收端应该忽略此组Sub Frame。比如说CD转盘读取CD数据时若是有某一个Sample读不到就会将代表该组Sample的Sub Frame中的有效位设为1。

29 bit       使用者位(User Bit)        此位为使用者自行定义的位,每组Sample传送一位,直到192组Sample传完后组成成192位的信息,两声道各自有一组192位的使用者信息。

30bit        信道状态位(Channel Status Bit)        此位与使用者位一样,每组Sample传送一位,最后组成两声道各自一组192位的信道状态信息(Channel Status)。这个192位信道状态信息分为专业(Professional)与一般家用(Consumer)两种不同的结构,以第一个位决定,设为1的时后为Professional模式,设为0的时后为Consumer模式。

31bit        同位检查位(Parity Bit)        同位检查是用来判别是否有奇数个位是发生错误,是一种简便错误检查方法,这边是使用偶位同位检查(Even Parity Check)。

 

头码(Preamble)是用来表示一个Sub Frame的开头,主要有X、Y、Z三种组态代表不同的意义,X代表此时是传送A通道的Sub Frame、Y代表是传此时是传送B通道、而Z比较特别,是代表此时是传送A通道,并且是一个Block的起始Sub Frame,如下图所示。

由于BMC编码中不可能出现三个bit相同的情况,IEC 60958正是利用这一特性来区分Preamble与正常的数据。表格里的Preamble code数值是Sub Frame中其它的数据经过BMC编码之后再加到整个Sub Frame前头的数据数值,所以总共是8bit,代表4bit(0~3bits)的时序。此外比较特别的是除了有X、Y、Z三种组态之外,上面的表格还列出了另外一组与原本数据向位相反的数值,要使用哪一组数值是依照前一组Sub Frame中最尾端的电平而定,当前一组Sub Frame为最尾端的电平0时用左边那一列数值,为1的时后用右边那一列,这样一样接收端才能正确处理。

每组Sub Frame中有一位的信道状态位,在一个Block有192组Frame,可以构成192位的信道状态结构(Channel Status Structure),而两声道各自有一组192位的使用者信息。这这个192位的信道状态结构主要有两种不同的结构,由第一个位来决定,当第一个位为0时代表一般家用(Consumer)结构,第一个位为1时代表专业用(Professional)结构,分别为下面这两张结构图表。

  • 一般家用信道状态结构图(Consumer Channel Status Structure)。PCM的采用频率为下图channel status中的Fs(24~27bit)

  • 专业用信道状态结构图(Professional Channel Status Structure)

 

 

而实际使用上,上面这两个图表只能当做参考使用,因为信道状态结构有许多种不同的版本,到目前为止世面上许多不同器材所遵循的版本也不尽相同,甚至有一些器材会忽略不处理信道状态。

IEC 61937

相比IEC 60958只能传递2个channel的PCM音频数据,IEC 61937可以传递更复杂的压缩的音频数据,如MPEG2那种多声道, AC3 或DTS。在压缩的音频数据中,可以解析出channel,sample rate等信息。

IEC 61937报文格式如下:

Pa,Pb,Pc,Pd均为16bit数据,是IEC 61937的Preamble word,分别封装在IEC 60958 标准的1个Sub Frame中。

Pa,Pb是sync word,其值是固定的。Pc包含数据类型、和传递给接受者的信息。Pd为Burst-payload的长度。

Pc的信息如下表:

 Data type如下:

标签:BMC,Sub,Frame,61937,192,60958,Bit,IEC
From: https://www.cnblogs.com/lanlancky/p/17430672.html

相关文章

  • [ARC114D] Moving Pieces on Line 解题报告
    AT题面简要题意有一个红色的数轴,相邻两个整点之间连有一条边,所有边初始为红色。数轴上有\(n\)个棋子,将一个棋子从\(a\)位置移到\(b\)位置,可以将\((a,b)\)之间红边变为蓝边,蓝边变为红边。给定\(k-1\)条线段,问能否进行若干次操作,使得当\(i\)是奇数,第\(i\)条线段是蓝......
  • Codeforces F. Bits And Pieces(位运算)
    传送门.位运算的比较基本的题。考虑枚举\(i\),然后二进制位从大到小考虑,对于第\(w\)位,如果\(a[i][w]=1\),那么对\(j、k\)并没有什么限制。如果\(a[i][w]=0\),那么我们希望\((a[j]~and~a[k])[w]=1\),结合前面的限制,就是给定\(x\),问有没有\(x∈a[j]~and~a[k](i<j<k)\)。那么这应该是做一......
  • 量化交易之One Piece篇 - 基于天勤的数据备用方案(stable版)
    fromtqsdkimportTqApi,TqAuthfromtqsdk.tafuncimporttime_to_datetimeimportdatetimefromdatetimeimportdatetimeimportpandasimportreimportosimportwarningswarnings.filterwarnings('ignore')pandas.set_option('display.max_c......
  • AtCoder Regular Contest 114 D Moving Pieces on Line
    洛谷传送门AtCoder传送门挺有意思的题。首先显然地,一个棋子不会走回头路。于是一个棋子沿着边走的效果就是区间异或。更进一步,设\(s_i\)为\(i-1\toi\)的边颜色与\(i\toi+1\)的边颜色是否相同(差分),相当于对于每个\(i\)都选择\(s_{a_i}\)和\(s_{x_i}\),将它们异或......
  • HDU 4628 Pieces (状压DP)
    题目地址:HDU4628这题没想到怎么快速枚举子状态。。。看了题解才知道的。用for(state=i;state>0;state=(state-1)&i)就可以了。这题的具体做法是先预处理出所有的状态是不是回文串,然后就是普通的DP了。代码如下:#include<iostream>#include<string.h>#include<math.h>......
  • Paper Reading: PS-Tree A piecewise symbolic regression tree
    目录研究动机文章贡献分段符号回归树个体表示特征分区初始化自适应决策树重建多目标训练PS-Tree算法流程生成算子适应度评估选择算子实验分析数据集PS-Tree实验设置消融......
  • IEC60870 库扩展功能-读多个参数
    1、效果2、扩展后调用代码caseC_RS_NA_1://读取参数//获取请求的地址printf("ReadParam:%d,datasize:%d\n",CS101_ASDU_getTypeID(asdu),CS101......
  • ISO/IEC/ITU/ANSI/IEEE 组织简介
    ISO国际标准化组织(InternationalOrganizationforStandardization,简称为ISO)成立于1947年,是标准化领域中的一个国际组织,该组织自我定义为非政府组织,官方语言是英语、法语......
  • grafana-piechart-panel 安装
    grafana-piechart-panelPanelpluginnotfound:grafana-piechart-panel错误grafana安装grafana-piechart-panel插件是成功的1.安装grafana-clipluginsinstallgrafana-p......
  • IEC104 从站作为客户端服务频繁中断
    之前t1=15,t3=20,调整为60,60后效果好很多。参考:https://blog.csdn.net/qinbo1234567890/article/details/123903504为了能对TCP连接进行检查和维护,104规定了几个超时时间:t......