解析经典蓝牙设备连接过程

描述

随着越来越多的经典蓝牙设备应用在我们的生活和工作中,该类设备的使用场景和相关设计也更加丰富。与此同时,泰凌微电子作为蓝牙芯片的源头厂商,在经典蓝牙SoC性能提升及方案设计的产出也日新月异;在实际应用中,蓝牙设备发现、连接、断开等使用场景较为常见,其中设备连接是至关重要的一环,它涵盖了设备之间建立连接的整个过程。本文将对经典蓝牙设备连接过程进行解析,带大家一起了解连接的整个过程。

1

什么是设备连接?

什么设备连接?例如,我们在日常使用手机去连接其它如蓝牙耳机等蓝牙设备时,搜索到所需的设备后,点击该设备就会触发设备连接过程,也叫寻呼(Page)。而相应的蓝牙设备也需要进入被寻呼模式,也就是连接扫描(Page Scan),只有这样才会被手机等设备连接成功。如下图,点击Telink-Test设备即开始了连接过程。

频率

图1. 手机上搜索到Telink-Test设备

2

设备连接的流程 

频率

图2. 蓝牙规范中的设备状态

首先,如上图Page和Page Scan为蓝牙的两个子状态,其中Page为我们通常认为的连接(寻呼);在设备发现之后,该子状态能以Master的角色进行连接/操作对应的Slave。设备,连接时依赖于发现过程中获取到的对端设备地址;而Page Scan子状态是和Page相对应的,即等待将被Page的Slave设备所处的状态。设备处于Page Scan的状态是其可被连接的前提。

开启Page时,Master(即Page设备)使用Slave(即Page Scan设备)的设备地址(BT_ADDR)及其CLOCK时钟作为算法参数生成跳频序列(paging –hopping  sequence),该序列是一个定义明确的周期序列,其各个频点均匀分布在2.4G的79个频率信道上。基于跳频序列,Master每隔312.5us会更新一个新的频率信道以发送ID包;而Slave则每隔1.28s更新一次监听频率信道,以便在较短时间内接收到来自Master的ID包。

下面以一块泰凌微电子B91开发板为例,简述设备连接过程。

频率

图3. B91开发板

首先,给开发板烧录提前编译好的测试固件,然后用手机去搜索并连接对应的蓝牙设备,用蓝牙抓包器抓取空中包,通过抓包内容我们可以对应蓝牙协议解析如下内容:

频率

图4. 蓝牙规范中的连接步骤

频率

图5. 蓝牙规范中的连接时序图

频率

图6. 空中包连接时序图

Step1:当Master处于Page子状态,Slave处于Page Scan子状态,Master发送page message 即ID包;

Step2:当Slave接收到page message后,会进入slave response状态,Slave会发送response(接收到page message以后625us),Slave发送response后,会开始监听来自Master的FHS数据包;

Step3:当Master接收到response以后,Master会进入master response状态,Master会发送FHS数据包(包含了Master的时钟、地址、COD等信息);完成后,Master会监听来自Slave的response;

Step4:Slave接收到来自master的FHS数据包,Slave会回复一个response通知Master接收到了FHS数据包。

Step5:Slave进入CONNECTION状态,Master接收到Slave的response后也会进入CONNECTION状态,然后Master发送一个POLL数据包。

Step6:Slave接收到POLL数据包后,可能回复任何类型的数据包。

以上6步完成后,标志整个的连接过程已经成功并结束,后续会进行链路管理阶段。

频率

图7. FHS包内容

如果远端设备即Slave端在设置的超时时间内(对应参数Page_Timeout)没有返回Page Response时,则Master会触发Page Timeout事件,即连接失败。

3

设备连接对应的HCI指令

经典蓝牙连接过程中涉及到的HCI指令及相关参数如下:

3.1

HCI_Create_Connection

频率

3.2

HCI_Read_Page_Timeout

该指令用于读取当前的Page_Timeout 参数;

频率

3.3

HCI_Write_Page_Timeout

该指令用于设置Page_Timeout 参数;

频率

3.4

HCI_Read_Page_Scan_Activity

该指令用于读取Page Scan过程的状态等相关参数;

频率

3.5

HCI_Write_Inquiry_Scan_Activity

该指令用于设置Page Scan的状态等相关参数;

频率

3.6

参数 Page_Timeout

频率

3.7

参数 Page_Scan_Interval

频率

3.8

参数 Page_Scan_Window

频率

4

综述

设备连接是整个蓝牙技术不可或缺的一部分。该部分的设计会根据产品需求调整Page Scan interval、Page Scan window、Page Scan Type等相关参数以均衡连接速度、功耗、带宽等方面。目前泰凌微电子的TLSR951x和TLSR952x两个系列SoC芯片均支持经典蓝牙技术,其基于自研的蓝牙协议栈,得益于芯片本身具备的超低功耗工作模式,实现了带低功耗的Page和Page Scan模式;同时兼具BT与BLE双模共存,多路BT共存等多种方案,其涵盖了同一设备电话、音乐下的设备连接,多路同时连接等较为复杂的场景设计,为复杂多样的客户产品需求提供了有力支撑。

 

        审核编辑:彭菁

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分