SPDIF接口规范详解
S/PDIFS/PDIF 接口规范详解,接口规范详解,S/PDIF SpecificationS/PDIF Specification S/PDIF(Sony/Philips Digital Interface at)是一种数字音频传输 接口,普遍使用光纤和同轴线输出,将音频信号输出值解码器上,能保持高 保真度的输出结果,广泛应用在 DTS(Digital Theatre System,数字化影 院系统)和杜比数字中。 S/PDIF 基本上是以 AES/EBU(也称为 AES3)专业用数字接口为参考然后做了 一些小变动而成的家用版本, 可以使用成本比较低的硬件来实现数字讯号传 输。为了定制一个统一的接口规格,在现今以IEC 60958 标准规范来囊括取 代 AES/EBU 与 S/PDIF 规范,而 IEC 60958 定义了三种主要型态: IEC 60958 TYPE 1 Balanced ─ 三线式传输,使用110 Ohm 阻抗的线 材以及 XLR 接头,使用于专业场合 IEC 60958 TYPE 2 Unbalanced ─ 使用 75 Ohm阻抗的铜轴线以及 RCA 接头,使用于一般家用场合 IEC 60958 TYPE 2 Optical ─ 使用光纤传输以及F05 光纤接头,也 是使用于一般家用场合 事实上,IEC 60958 有时会简称为 IEC958,而 IEC 60958 TYPE 1 即为 AES/EBU(或着称为 AES3)接口,而 IEC 60958 TYPE 2 即为 S/PDIF 接口,而 虽然在 IEC 60958 TYPE 2 的接头规范里是使用 RCA 或着光纤接头,不过近 年来一些使用 S/PDIF 的专业器材改用 BNC 接头搭配上 75 Ohm 的同轴线以得 到比较好的传输质量,下表为 AES/EBU 与 S/PDIF 的比较表。 IEC958IEC958 使用的编码方法使用的编码方法 IEC958 在传输数据时使用双相符号编码(Biphase Mark Code),简称 BMC, 属于一种相位调制(phase modulation)的编码方法,是将时钟讯号和数据讯 号混合在一起传输的编码方法。 其原理是使用一个两倍于传输位率(Bit Rate)的时钟频率做为基准,把原本 一位数据拆成两部份, 当数据为1的时后在其时钟周期内转变一次电位(0-1 或 1-0)让数据变成两个不同电位的资料,变成10 或 01,而当数据为 0 时 则不转变电位,变成 11 或 00。同时每一个位开头的电平与前一个位结尾电 平要不同,这样接收端才能判别每一个位的边界,如下图所示。 IEC958IEC958 通信协议架构通信协议架构 S/PDIF 与 AES/EBU 主要是做为传递 PCM 格式的信号, 例如 48kHz 的 DAT 以及 44.1kHz 的 CD,不过现在也有用来传递压缩过的多声道讯号。 标准传递两声道讯号的架构如下图所示,最上面为由192 个框架(Frame)构 成的区块(Block)。 而每个 Frame 储存了两个声道的一组采样信号(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)(Sub Frame)详细解说详细解说 要了解 IEC958 的数据结构的话,我们有必要要先了解子框架(Sub Frame)的 详细结构,一个 Sub Frame 如下图所示区分成几个部份,我们先一一表列如 下: 0-3??????? 头码(Preamble)??????? 用来表示一个 Sub Frame 的开头,有 三种型态, 分别表示该 Sub Frame 为 Channel A、 Channel B 或着是一个 Block 的起始 Sub Frame(为 Channel A)。 4-7??????? 辅助数据(Aux. Data)??????? 原始此区块的设计是用来传递一 些使用者自行添加的信息,不过目前比较常见的用途是当音讯数据超过 20Bit 取样时, 这四个 Bit 用来储存多出的取样 Bit, 比如说当要传送 24Bit 取样的数据时,用来存放末四个 Bit 的音讯数据。 8-27??????? 音频数据(Audio Data)??????? 存放实际的取样数据,长度为 20 Bit, 以 LSB 优先的方式传送, 当取样低于 20 Bit 时, 没有用到的 LSB Bits 要设定为零, 举例来说, 当我们要传送 16 Bit 的数据时, 只会用到 12-27 Bit 的位置(LSB 在 12 Bit),而 8-11 Bit 为零。 28??????? 有效位(Validity Bit)??????? 此位设定了这一个 Sub Frame内 的数据是不是正确,如果设定为 0,代表此 Sub Frame 内的数据是正确可被 接收的,反之如果此 Bit 为 1,则代表接收端应该忽略此组 Sub Frame。比 如说 CD 转盘读取 CD 数据时若是有某一个 Sample 读不到就会将代表该组 Sample 的 Sub Frame 中的有效位设为 1。 29??????? 使用者位(User Bit)??????? 此位为使用者自行定义的位,每组 Sample 传送一位,直到 192 组 Sample 传完后组成成 192 位的信息,两声道 各自有一组 192 位的使用者信息。 30??????? 信道状态位(Channel Status Bit)??????? 此位与使用者位一 样,每组 Sample 传送一位,最后组成两声道各自一组192 位的信道状态信 息(Channel Status)。这个 192 位信道状态信息分为专业(Professional)与 一般家用(Consumer)两种不同的结构,以第一个位决定,设为 1 的时后为 Professional 模式,设为 0 的时后为 Consumer 模式。 31??????? 同位检查位(Parity Bit)??????? 同位检查是用来判别是否有奇 数个位是发生错误,是一种简便错误检查方法,这边是使用偶位同位检查 (Even Parity Check)。 子框架内的头码子框架内的头码(Preamble)(Preamble)定义定义 如前文所述,头码(Preamble)是用来表示一个 Sub Frame 的开头,主要有X、 Y、Z 三种组态代表不同的意义,X 代表此时是传送 A