目录
第零节 本文内容
IEC60958/61937协议是我们音频开发中常见的一种协议,本文就叙述一下该协议的架构(因为协议涉及的内容比较多,全部解释清楚要好几篇文章),如果要对架构下具体每个位的含义进行学习,可以下载本博主在CSDN上的资源,该资源为官方的文件,里面对IEC60958/61937的数据内容的具体含义都有介绍。
第一节 IEC60958/61937协议概述
IEC60958/61937是一种传递数字音频的接口规范,相比I2S,IEC60958/61937通过一根线同时传递时钟信号和数据信号。
IEC60958和IEC61937的最大差别是:IEC 60958只能传递2个channel的音频数据,而IEC 61937可以传递更复杂的音频数据,如MPEG2那种多声道, AC3 或DTS。
第二节 IEC60958/61937硬件接口
BMC接口:Biphase-Mark Encoding编码,用于数据的校验,其解析出来的数据为DATA,装换方法为:
①当DATA=1时,对应的两个数据不相同(0 1或1 0)。当DATA=0时,对应的两个数据相同(0 0或1 1)。
②DATA尝试下一次数据的时候,BMC编码的数据要取反(0->1或1->0)。下图可以直观表示这个过程。
第三节 IEC60958数据格式
如下图IEC60958由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。
第四节 IEC61937数据格式
IEC61937从IEC60958中演变而来。其数据格式如下图所示:
Pa,Pb,Pc,Pd均为16bit数据,是IEC 61937的Preamble word,分别封装在IEC 60958 标准的1个Sub Frame中。Pa,Pb是sync word,其值是固定的。Pc包含数据类型、和传递给接受者的信息。Pd为Burst-payload的长度。