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

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

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/39180/16063.57%96.36%24.09%32.79%
1000ms/37/38/39160/16062.43%95.79%22.66%33.36%
1000ms/37/38/391200/100065.32%91.19%23.10%25.87%
1000ms/37/38/391200/120063.24%96.3%21.58%33.06%
3,是否可通过牺牲信道提高子设备广播间隔来提高连接效率?(否)
  • 通过牺牲信道缩短广播间隔,无法提升连接时效。
  • 蓝牙连接时效受广播信道影响,信道越全,连接成功率越高,时效越短。
技术参数功耗0~1T内连接成功率0~3T内连接成功率0~T内峰值占比T~3T内补偿成功率
1秒广播,37/38/3922.98ua63.57%96.36%24.09%32.79%
700ms广播,38/3922.38ua55.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%

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tim-Cheng

你的鼓励是我最大的动力,奥利给

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值