谷动谷力

标题: 泰凌微电子蓝牙低功耗音频应用流程分析 —— Headset [打印本页]

作者: 鸣涧    时间: 2023-11-8 11:23
标题: 泰凌微电子蓝牙低功耗音频应用流程分析 —— Headset
1
背景介绍

蓝牙低功耗音频(Bluetooth LE Audio,以下简称:LE Audio)代表着下一代智能音频设备的功能趋势,LE Audio技术基于蓝牙核心规范5.2版本引入的连接同步数据流(Connected Isochronous Stream,简称CIS)传输特性。CIS基于设备间建立的低功耗蓝牙ACL连接,在相连设备间建立固定时间间隔(ISO Interval)、点对点的双向数据流传输通道。由Central(手机、电脑或平板等)发起的CIS是CIG (Connected Isochronous Group)的成员,每个CIS对应一个独立的音频流,每个Central设备可以有多个CIG。

耳麦(headset)是耳机(headphone)与麦克风(microphone)的整合体。实际上就是耳机跟麦克风整合成为一体,通常Headset的耳机是播放立体声音频,麦克风采集单声道音频。本文主要介绍基于LE Audio的Headset应用流程分析。

Headset场景图

2
Ellisys抓包流程分析

Headset的音频源设备通过CIG的CIS来传播音频数据,Headset端发送可连接的扩展广播(EA),Central端扫描到Headset端设备信息后先跟其建立ACL连接,两端交互LE Audio的音频能力以及配置ASE端点,然后再由Central发起建立CIS连接。

扩展广播:

ADV_EXT_IND PDU在37,38,39主频段进行广播,它的扩展头字段包含一个AuxPtr字段,其中包含使其能够与辅助AUX_ADV_IND PDU同步的数据。ADV_EXT_IND PDU的AuxPtr字段指向AUX_ADV_IND,即AuxPtr的值指向ADV_EXT_IND PDU广播所在的其余0~36个频段中的一个。


AUX_ADV_IND PDU包含一个Adv Data字段,其中包含Appearance、RSI(Resolvable Set Identifier)、ASCS(Audio Stream Control Service)、CAS(Common Audio Service)和TAMS(Telephony and Media Audio Service)。Appearance声明Headset设备外观,RSI声明支持CSIS(Coordinated Set Identification Service),TMAS声明设备支持Call Terminal和Unicast Media Receiver。


ASE状态机简介

ASCS中定义了Audio Stream Endpoint(简称 ASE) ,ASE又分为Source ASE和Sink ASE,其状态机流转分别如下图所示,包含以下几个状态:

Source ASE状态机流转图

Sink ASE状态机流转图

接下来通过抓包来更加直观的观察上述的的音频流过程:

首先挑选一个ADV_EXT_IND PDU包,通过AuxPtr可以同步到它指向的AUX_ADV_IND PDU所在的频段11和偏移位置1.02ms。


然后通过AUX_CONNECT_REQ和AUX_CONNECT_RSP进行ACL连接,完成加密和服务发现等流程,包括下面要介绍的ASE交互流程。


Central端发现Headset端Sink和Source支持的音频能力,包括采样率、采样周期、编码方式等参数。Sink音频能力是Headset的音频播放(扬声器),Source音频能力是Headset的音频采集(麦克风),下图Source支持的详细音频参数,Sink端与其类似。


这部分通过抓包详细解析CIS配置流程:

下图为CIS配置抓包的完整流程,1是Codec Config流程,2是QoS Config流程,3是建立CIS连接通道,4是Enabling流程,5是Streaming流程。下面详细分析每个流程的具体内容。


1、Central端对Headset端上下行的Codec进行配置,包括上行MIC采样率16kHz、下行双声道音频采样率48kHz,帧长10ms、位宽16bits等参数,Headset端会回复是否配置成功。


2、Central端对Headset端上下行的QoS进行配置,包括2M的PHY、Retransmision Number为13,Max Transport Latency为40ms等参数,Headset端会回复是否配置成功。


3、Central端发起CIS Request进行CIS的建立流程,包括ISO Interval为10ms,Sub Interval为1.410ms和开始建立CIS的锚点等参数。


4、Central端发起Enable控制命令,Headset端回复Enabling成功,回复Sink ASE和Sourc ASE端Enabling的ASE ID、CIS ID等参数。


5、Central端发起Enable控制命令,Headset端回复Streaming成功,回复Sink ASE和Sourc ASE端Streaming的ASE ID、CIS ID等参数。


3
结合代码分析CIS音频流建立过程

下面我们结合Telink的b91_ble_audio_sdk中的LE Audio的应用代码来解析一个CIS音频流建立过程:







扩展广播配置完成后会在ble协议栈运行起来后开始广播。Central设备在扫描到广播后进行ACL连接,并在完成ASE流程后发起CIS流程建立。



将代码烧录到Telink B91 EVK,支持CIS的手机打开蓝牙即可搜索到"tlk_le_headset"设备,点击连接即可与手机进行数据通信,或者采用配套的dongle进行通信测试。

4
展望

蓝牙5.2 LE Audio技术将极大扩展无线音频的应用场景。蓝牙5.2带来的无线多重串流音频技术,将从根本上改变人们对无线音频技术的使用习惯,为用户带来全新的体验,也为用户和市场带来无限可能。如果需要Ellisy抓包日志欢迎联系我们。






欢迎光临 谷动谷力 (http://bbs.sunsili.com/) Powered by Discuz! X3.2