• 联系电话

    • 0755-82903550
    • 工作时间

    • 周一至周五 8:30-12:00; 13:30-17:30
    • 微信扫码咨询

新闻资讯

技术方案

新闻资讯

首页    新闻资讯    行业资讯    【泰凌微电子】经典蓝牙设备连接介绍

产品资源

按钮
按钮
按钮

【泰凌微电子】经典蓝牙设备连接介绍

随着越来越多的经典蓝牙设备应用在我们的生活和工作中,该类设备的使用场景和相关设计也更加丰富。与此同时,泰凌微电子作为蓝牙芯片的源头厂商,在经典蓝牙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共存等多种方案,其涵盖了同一设备电话、音乐下的设备连接,多路同时连接等较为复杂的场景设计,为复杂多样的客户产品需求提供了有力支撑。

 

 
 
 
 

 

本文来源:泰凌微

 

本文仅供交流学习,版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除。

 

 

创建时间:2024-06-08