泰凌微电子经典蓝牙设备连接介绍
随着越来越多的经典蓝牙设备应用在我们的生活和工作中,该类设备的使用场景和相关设计也更加丰富。与此同时,泰凌微电子作为蓝牙芯片的源头厂商,在经典蓝牙SoC性能提升及方案设计的产出也日新月异;在实际应用中,蓝牙设备发现、连接、断开等使用场景较为常见,其中设备连接是至关重要的一环,它涵盖了设备之间建立连接的整个过程。本文将对经典蓝牙设备连接过程进行解析,带大家一起了解连接的整个过程。
1 什么是设备连接?
什么是设备连接?例如,我们在日常使用手机去连接其它如蓝牙耳机等蓝牙设备时,搜索到所需的设备后,点击该设备就会触发设备连接过程,也叫寻呼(Page)。而相应的蓝牙设备也需要进入被寻呼模式,也就是连接扫描(Page Scan),只有这样才会被手机等设备连接成功。如下图,点击Telink-Test设备即开始了连接过程。
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开发板为例,简述设备连接过程。
首先,给开发板烧录提前编译好的测试固件,然后用手机去搜索并连接对应的蓝牙设备,用蓝牙抓包器抓取空中包,通过抓包内容我们可以对应蓝牙协议解析如下内容:
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步完成后,标志整个的连接过程已经成功并结束,后续会进行链路管理阶段。
如果远端设备即Slave端在设置的超时时间内(对应参数Page_Timeout)没有返回Page Response时,则Master会触发Page Timeout事件,即连接失败。
3设备连接对应的HCI指令
经典蓝牙连接过程中涉及到的HCI指令及相关参数如下:
3.1HCI_Create_Connection
3.2HCI_Read_Page_Timeout
该指令用于读取当前的Page_Timeout 参数;
3.3HCI_Write_Page_Timeout
该指令用于设置Page_Timeout 参数;
3.4HCI_Read_Page_Scan_Activity
该指令用于读取Page Scan过程的状态等相关参数;
3.5HCI_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共存等多种方案,其涵盖了同一设备电话、音乐下的设备连接,多路同时连接等较为复杂的场景设计,为复杂多样的客户产品需求提供了有力支撑。