分享好友 最新资讯首页 最新资讯分类 切换频道
解析经典蓝牙设备连接过程蓝牙手机「解析经典蓝牙设备连接过程」
2025-04-04 15:07

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

1

什么是设备连接?

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

f45201e4-22d3-11ef-91d2-92fbcf53809c.png

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

2

设备连接的流程

f474887c-22d3-11ef-91d2-92fbcf53809c.png

图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开发板为例,简述设备连接过程。

f4790460-22d3-11ef-91d2-92fbcf53809c.png

图3. B91开发板

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

f4a7e410-22d3-11ef-91d2-92fbcf53809c.png

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

f4cbdb72-22d3-11ef-91d2-92fbcf53809c.png

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

f4f5c6da-22d3-11ef-91d2-92fbcf53809c.png

图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步完成后,标志整个的连接过程已经成功并结束,后续会进行链路管理阶段。

f50841de-22d3-11ef-91d2-92fbcf53809c.png

图7.FHS包内容

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

3

设备连接对应的HCI指令

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

3.1

HCI_Create_Connection

f584f666-22d3-11ef-91d2-92fbcf53809c.png

3.2

HCI_Read_Page_Timeout

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

f5ad2e42-22d3-11ef-91d2-92fbcf53809c.png

3.3

HCI_Write_Page_Timeout

该指令用于设置Page_Timeout 参数;

f5ca4fb8-22d3-11ef-91d2-92fbcf53809c.png

3.4

HCI_Read_Page_Scan_Activity

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

f5d535b8-22d3-11ef-91d2-92fbcf53809c.png

3.5

HCI_Write_Inquiry_Scan_Activity

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

f5de646c-22d3-11ef-91d2-92fbcf53809c.png

3.6

参数 Page_Timeout

f602d4a0-22d3-11ef-91d2-92fbcf53809c.png

3.7

参数 Page_Scan_Interval

f6249158-22d3-11ef-91d2-92fbcf53809c.png

3.8

参数 Page_Scan_Window

f644240a-22d3-11ef-91d2-92fbcf53809c.png

4

综述

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

最新文章
手机如何进行通话录音手机如何录音「手机如何进行通话录音」
手机通话录音是一项非常实用的功能,可以帮助我们记录重要的电话内容,或者作为证据保存。下面介绍几种手机通话录音的方法。1.使
Qt Group:AI赋能的HMI敏捷开发——Qt框架如何重构舱驾融合新范式
2025年3月19日,在第五届中国汽车人机交互与体验设计创新大会上,Qt Group中国商务拓展经理高森介绍了Qt框架在汽车行业的广泛应
追忆演员童正维:编辑部牛大姐、雅各布姥姥等角色成一代经典
据著名摄影师马良4月15日晚发布的讣告,其母亲、老艺术家童正维因心脏衰竭医治无效,于4月14日22时52分,在家人的陪伴下安然离世
手机电脑互传 V1.0.4手机互传「手机电脑互传 V1.0.4」
没有加固或未知加固CHANGE_WIFI_STATE改变WiFi状态INTERNET访问网络连接,可能产生GPRS流量ACCESS_WIFI_STATE获取当前WiFi接入的
“携宠游”的风吹到了常州!茅山森林世界宠物踏青季火热进行中
春意渐浓,宠物的撒欢之旅也超萌登场!近日,一场专属于“毛孩子”的春日派对——由茅山森林世界主办的“宠物春日友好会”,在众
明明应该领便当,却被作者强行复活,你知道他们都是谁吗?
在动漫火影忍者中,有很多忍者拥有他们非常鲜明的人物特点,但是也有一部分忍者,他们本来早就应该死亡了,但是因为一些特殊原因
Weinre 远程调试移动端手机web页面天翼云手机端「Weinre 远程调试移动端手机web页面」
Weinre 是一款远程调试工具,使用JS编写, 可以让我们在电脑上直接调试运行在手机上的远程页面,当你的代码已经发布上线,这时候
如果iPhone掉进水里了,把手机插入大米中有用吗大米手机「如果iPhone掉进水里了,把手机插入大米中有用吗」
当iphone掉入水中时,很多人会选择将手机插入大米中,希望这样能够拯救手机。然而,这种做法是否真的有效呢?首先,让我们来看看
拍照党怎么选手机?OPPO、华为、三星出手了,哪家好你说了算!手机党「拍照党怎么选手机?OPPO、华为、三星出手了,哪家好你说了算!」
近几年的国产技术可以说是遍地开花,从影像、续航到处理器都很有看点,其中,影像更是成为各大手机厂商的必争之地,像OPPO和华为
推荐文章