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——扩展广播pdu
aux_adv_ind pdu——辅助广播pdu
aux_chain_ind pdu——辅助链广播pdu(可选)
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,其状态机流转分别如下图所示,包含以下几个状态:
idle——待机态,初始化默认处于idle状态。
codec configured——音频参数,如采样率、位宽、帧长等配置完成。
qos configured——连接参数,如phy、retransmit num、max transport latency等配置完成。
enabling——使能态,client和server之间的cis开始建立或者已经建立完成。
streaming——流状态,音频流建立完成,音频数据可以在client和server之间传递。
releasing——释放态,音频资源释放,该状态是一个中间态,可通过除idle态外的任何一个状态进入。
disabling——失效态,音频流停止,该状态只是一个中间态,可通过receive stop ready操作退回到qos configured状态。需要注意:该状态只有source 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音频流建立过程:
cis audio服务配置,以及ase sink和ase source的音频能力参数配置表
设置扩展广播,参数设置可以对应上面抓包
注册profile事件回调函数表,下图仅列出对应ase sink和ase source配置流程的一些回调函数
设置codec的默认参数
扩展广播配置完成后会在ble协议栈运行起来后开始广播。central设备在扫描到广播后进行acl连接,并在完成ase流程后发起cis流程建立。
数据的接收和发送处理
将代码烧录到telink b91 evk,支持cis的手机打开蓝牙即可搜索到tlk_le_headset设备,点击连接即可与手机进行数据通信,或者采用配套的dongle进行通信测试。
4
展望
蓝牙5.2 le audio技术将极大扩展无线音频的应用场景。蓝牙5.2带来的无线多重串流音频技术,将从根本上改变人们对无线音频技术的使用习惯,为用户带来全新的体验,也为用户和市场带来无限可能。如果需要ellisy抓包日志欢迎联系我们。
关 于 泰 凌
泰凌微电子致力于为客户提供一站式的低功耗高性能无线连接soc芯片解决方案,包括经典蓝牙,蓝牙低功耗,蓝牙mesh,zigbee,thread,matter,apple homekit,apple“查找(find my)”,和私有协议等低功耗2.4ghz多协议无线连接系统级芯片和丰富的固件协议栈。公司产品广泛应用于智能照明,智能家居/楼宇,智能遥控,无线外设,智能零售,穿戴设备,无线音频,智能玩具,物流追踪,智慧城市等各类消费和商业应用场景中。
官网:www.telink-semi.com
微信公众号:telink-semi
泰凌开发者论坛:
https://developers.telink-semi.cn/
销售接洽:
中国大陆(华东、华北) :
+86-21-20281118-8213
中国大陆(华南、香港、音频) :
+86-0755-26614003
telinksales@telink-semi.com
原文标题:【技术专栏】泰凌微电子蓝牙低功耗音频应用流程分析 —— headset
文章出处:【微信公众号:泰凌微电子】欢迎添加关注!文章转载请注明出处。
单片机的输出比较是小思考
海信真空冰箱休眠二代:真空保鲜锁住食材原鲜本味
小米与联芯合作自主研发的“步枪”处理器猜测
武汉浙江两地工商联手将400多万枚假冒电池变废为宝”
智能驾驶面临的机遇及挑战分析
【技术专栏】泰凌微电子蓝牙低功耗音频应用流程分析 —— Headset
如何实现真正的升压转换器启动及短路故障保护
Plugable新雷电3底座提供96W充电
上海技物提出可用于中波红外偏振探测的光子器件
有源滤波器的功能有哪些,它的作用是怎样的
颠覆传统设计逻辑 无限制业务拓展模式——阅面科技猎户人脸识别开发平台
中兴5G终端加速部署
霍尼韦尔在进博会与多个中国企业签订合作协议
蔡司三坐标测量仪定期保养的重要性
额温计用什么传感器比较好 额头温度计传感器推荐
微软更新强制安装Office程序行为遭炮轰,微软回应已叫停该操作
基于MSP430的无线门禁控制系统设计
变频器的作用和原理用途 常见的变频器分类
直流电路中电容可以串联吗
TD-LTE产业全球化:47家运营商确定投资与测试