news 2026/2/24 14:26:04

IEC-60958

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IEC-60958

IEC 60958

IEC 60958是一种传递数字音频的接口规范,相比I2S,IEC60958通过一根线同时传递时钟信号和数据信号。

  • 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)结构,分别为下面这两张结构图表。

  • Professional Channel Status format

reference

  • IEC 60958_1/3/4
  • https://www.cnblogs.com/fellow1988/p/6445489.html
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 14:45:44

查询指定任务的办理时间轴

一、接口核心需求分析 你提供的这段代码是Activiti工作流中查询指定任务的办理时间轴接口,核心业务需求如下: 关联查询:根据传入的任务ID(taskId),先获取对应的流程实例ID(processInstanceId&am…

作者头像 李华
网站建设 2026/2/6 7:33:47

ubuntu系统_每天定时23:00 定时关机_怎么实现

在Ubuntu系统中设置每天23:00定时关机,最可靠的方法是使用系统内置的 cron 服务。下面的表格汇总了实现步骤和关键要点,你可以快速了解整个过程。步骤核心操作说明/命令示例1. 编辑计划任务终端中输入 sudo crontab -e使用 sudo 获取root权限&#xff0c…

作者头像 李华
网站建设 2026/2/20 13:52:17

mysql一条sql语句是如何运行的

MySQL SQL 语句执行流程MySQL 执行一条 SQL 语句的过程可以分为多个阶段,包括连接管理、解析与优化、执行引擎处理以及结果返回。以下是详细流程:连接管理客户端通过 TCP/IP 或 Unix Socket 连接到 MySQL 服务器。连接建立后,服务器进行身份验…

作者头像 李华
网站建设 2026/2/21 6:15:56

基于深度学习的空气质量预测研究(源码+万字报告+讲解)(支持资料、图片参考_相关定制)

摘要 由于环境恶化对人类健康、经济和日常生活的不利影响,空气质量问题逐渐引起了全世界的关注。大量研究表明,空气污染会对人类健康造成巨大危害,因此应采取措施预防和控制空气污染现象,减少空气污染对人类和地球造成的损害。随着…

作者头像 李华
网站建设 2026/2/23 7:23:48

Thinkphp和Laravel框架的海关出入口货物报关统筹管理系统_szdhjj06

目录摘要概述技术架构对比核心功能模块性能与安全优化实施效果与扩展性项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理摘要概述 ThinkPHP和Laravel框架在海关出入口货物报关统筹管理系统中的应用,展现了现代PHP框架在复杂业务场景下的…

作者头像 李华
网站建设 2026/2/23 5:05:12

【接口测试】1_Dubbo接口 _xx健康项目

文章目录 一、xx健康项目介绍1.1 项目描述1.2 目标用户群体1.3 项目模块1.4 系统框架 二、接口测试范围 一、xx健康项目介绍 1.1 项目描述 xx健康管理系统,是一款应用于健康管理机构的业务系统。采用可视化界面管理,提高健康管理师工作效率&#xff0c…

作者头像 李华