【蓝牙连接】深入连接细节分析

发布于:2022-12-18 ⋅ 阅读:(602) ⋅ 点赞:(0)

一,子设备如何被主机连接?

1,子设备被连接前提条件?

仅可连接设备可被主机连接,我们拿可连接扫描广播举例,如下所示:

请添加图片描述

当子设备处于被发现后,主机可根据扫描后的结果或发起直连的方式对设备进行连接。

2,子设备何时接收连接请求?

**主机:**当主机对某一地址设备进行连接请求时,首先校验收到的广播的设备地址是否与当前发起连接的地址相符,继而发起CONNECT_IND(连接请求)

请添加图片描述
Ellisys抓包分析如下:
请添加图片描述

在收到Primary Advertising Channel的广播间隙,有发起方主动发起连接请求。

3,子设备如何处理连接请求?

3.1 子设备定义

通过广播发起且为连接请求事件CONNECT_IND PDU(5),定义为Peripheral Connection。

非加密设备我们通过连接请求可获取到如下信息:

  • 连接基础参数(连接间隔,超时时间,从属延迟)
  • 发送窗口长度,发送窗口偏移
  • 信道表,跳频参数,CRC种子,频偏率等等
  • 主机端地址,从机端地址

这里除了我们关心的连接参数外,我们还需要注意对于单Peripheral连接设备(部分芯片支持多peripheral),当收到连接请求且校验完上述数据后,将在链路层主动关闭可连接广播,同时设定下一个数据信道频率

3.2 关于如何选择下一个信道?

我们按照上述方式选择了CSA#1默认算法,基于信道表+算法#1,我们算出第一个信道为22

举例:这里按照Channel Map: 0x1E00600600, 以及跳频算法 #1 + 跳频增量算得,可以采用matlab仿真或者用工具直接算出22。

请添加图片描述

3.3 如何确定锚点?

计算出首次信道选取后,我们选定一个锚点,由于示例中仅存在一个连接,我们在一个window offset之后变找到该设备对应的锚点。

请添加图片描述

二,主机如何连接子设备?

1,主机连接子设备的前提条件?

发起直连方可不依赖广播对空中设备进行发起直连,简单讲:底层收到建立连接的请求方式后,会一直扫描并判定广播标志且匹配地址。当未收到取消连接前会一直处于连接状态,且连接过程占用扫描关闭Host端扫描数据上报。(是否需要关闭Host端扫描以及是否上报数据由不同协议栈决定)

2,主机何时发起连接请求?

参考上述子设备何时接收连接请求。

3,主机如何处理请求后的事件?

3.1 主机定义

通过指定发送连接请求的数据包且成功完成PHY发送处理的包头,定义为Central Connection。(这里有点混淆概念,解释如下:当发起连接请求时我们会指定地址与数据包,当处于扫描状态且通过校验该数据包,我们可判定已完成发起连接请求)

3.2 主机连接子设备需要设定哪些数据?
  • 扫描广播并发起连接请求的扫描间隔与扫描窗口
  • 基础连接参数设定
  • 跳频增量与跳频表由原厂设定默认值(也可以自定义规则,通过host设定)
3.3 主机连接子设备整体时序?

请添加图片描述

这里从主机逻辑看子设备与主机的交互逻辑,需要说明的是,当空中一直没有匹配地址时,我们将一直等待直到下发取消连接逻辑。

三,连接效率受什么因素影响?

1,如何理解连接效率?

从发起连接到连接完成事件上报,同时可以进行ATT数据交互。

2,连接效率与扫描参数的关系?

为了保障子设备发出一个广播后与主机建立连接,我们需要保证连接时扫描为全窗口接收,当检验并匹配成功后发出连接请求。全窗口在设备第一次为被连接后,可补偿下次连接的成功率。

广播参数 直连扫描参数:扫描间隔/扫描窗口 0~T内连接成功率 0~3T内连接成功率 0~T内峰值占比 T~3T内补偿成功率
1000ms/37/38/39 180/160 63.57% 96.36% 24.09% 32.79%
1000ms/37/38/39 160/160 62.43% 95.79% 22.66% 33.36%
1000ms/37/38/39 1200/1000 65.32% 91.19% 23.10% 25.87%
1000ms/37/38/39 1200/1200 63.24% 96.3% 21.58% 33.06%

3,是否可通过牺牲信道提高子设备广播间隔来提高连接效率?(否)

  • 通过牺牲信道缩短广播间隔,无法提升连接时效。
  • 蓝牙连接时效受广播信道影响,信道越全,连接成功率越高,时效越短。
技术参数 功耗 0~1T内连接成功率 0~3T内连接成功率 0~T内峰值占比 T~3T内补偿成功率
1秒广播,37/38/39 22.98ua 63.57% 96.36% 24.09% 32.79%
700ms广播,38/39 22.38ua 55.47% 86.55% 22.05% 31.08%

如下为个人搭建离散数据参考:

1秒数据:

全信道3T+连接时效占比约3.6%,故连接时效控制在0-3T(0-3000ms内)内成功率:96.4%。

全信道1T内连接时效占比约63.57%

在这里插入图片描述

700ms数据:

两信道3T+连接时效占比约13.5%,故连接时效控制在0-3T(0-2100ms内)内成功率:86.5%。

两信道1T内连接时效占比约55.5%

在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到