为了掌握核心规范中ISO新特性,先介绍单播且可连接的ISO流,即CIS,CIS的结构框架相当复杂,但是其建立在一些非常的原则之上。本节首先描述CIS如何被设计,解释组成模块如何配合工作,然后学习广播模式的不同之处,为学习蓝牙低功耗音频方案奠定基础。
当设计数字音频程序时,通常受到一些限制:以什么样标准和速率对音频进行采样。一旦传入的音频被采样和编码后,会被发送到蓝牙芯片发送给音频接收设备。系统是重复的,音频数据是有时间限制的,传输需要一定时间间隔,该间隔成为ISO_inteval。CIS中每个ISO间隔开始的时间点成为锚点。如图5。一个传输的开始通常是发起者发送一个数据包给接受者,当接收者成功接收该数据后,回复一个确认包,这样的过程会定期重复。图5中,第三个数据包没有被确认,所以发起者认为第三个包没有被收到。
图5
现在普遍的编解码器都可以按照10毫秒帧率运行,即采样率一次需要10毫秒,这样在音频质量和延迟之间得到折中。这也是LC3编解码器首选的配置参数,蓝牙低功耗音频方案强制选择LC3编解码器。后续文章中,除了特殊说明,采样间隔都是10毫秒,或者10毫秒的整倍数。
ISO数据包
设备之间传输的协议数据包结构非常简单,协议数据包的结构如图6所示。
图6
编码后的ISO数据包以前导码和访问地址开始,以CRC结尾。通过1MPHY传输数据时,会增加10个或14个字节,换成2MPHY传输数据时,会增加11个或15个字节。
对于CIS的数据包结构如图7所示。
图7
CIS数据头后面跟着251字节的有效数据。如果音频数据被加密,在数据包结尾会增加MIC字段作为结尾。对于CIS数据头,包含5个属性字段:
LLID:标识数据包是帧编码和无帧编码。
NESN和SN:下一次期望的包序列号和序列号,通常用于数据包确认机制和流控。
CIE:标识结束本轮ISO事件传输。
NPI:空包指示位,表明该数据包的有效数据位空,通常指示本端设备没有数据发送。
ISO子事件和重传
下面图8主要介绍ISO数据头的控制位,因为这样可以更好地解释CIS链路如何工作的。开始之前,需要整体回忆CIS链路的结构组成,前面已经讨论过ISO事件间隔,即两个连续的成功CIS锚点之间的时间间隔,锚点是发起者发送第一个CIS数据包的时间点,同样也是每个成功ISO事件的开始点。对于CIS链路,因为实际链路需要可以选择重复传输某一个CIS数据包,因为CIS的结构设计支持多个子事件。每个子事件都是一发起者传输数据包开始,以接受者回复一个期望数据包结束。一个CIS事件由多个子事件组成,从CIS的锚点开始,到接收者回复最后一位数据结束。
图8
两个成功连续的子事件的间隔称为子时间间隔,它是子事件的最大持续时间,加上150微秒的数据包间隔,并且由CIS链路配置参数决定,整理CIS链路生命周期中不会更改。文章来源:https://www.toymoban.com/news/detail-413386.html
备注:资料参考来源:Bluetooth® Technology Website – The official website for the Bluetooth wireless technology. Get up to date specifications, news, and development info.https://www.bluetooth.com/文章来源地址https://www.toymoban.com/news/detail-413386.html
到了这里,关于深入浅出蓝牙低功耗音频BLE Audio--4-3 CIS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!