蓝牙-连接

1. 连接请求

主设备的 Controller 扫描到可连接广播数据包(白名单/单一设备) ,即向对端设备发送 CONNECT_REQ
数据包,随后向主设备的 Host 层发送 LE Connection Complete 事件; 从设备的 Controller 接收到
CONNECT_REQ 数据包,即向从设备的 Host 层发送 LE Connection Complete 事件。

此时连接已经创建(Created),但还未完全确立(Established) ,只有收到了数据包确认,连接才正式
确立。 连接确立仅改变连接超时: 6 个连接间隔 → 在连接请求中设定的值。 如此,如果连接不能确立将会立
即终止。

连接请求参数:

  • 扫描间隔、扫描窗口
  • 过滤策略
  • 对端地址类型和地址,己方地址类型
  • 连接间隔(min、 max) 、从机延迟和监控超时
  • 连接事件数量(min、 max)
  • 连接中使用的接入地址
  • CRC 初始值 发送窗口大小
  • 自适应调频信道图
  • 跳频算法增量
  • 休眠时钟精度

Complete 参数:
Established 参数:

2. 连接参数

BLE 模组和手机连接成功后会有一个默认连接参数,安卓手机的默认连接参数为 48ms,苹果手机的默认
连接参数为 20ms。

  1. Connection Interval 连接间隔
    单位: 1.25ms
    最小值: 6(7.5ms)
    最大值: 3200(4s)
    在发起者的链路层设置
  2. Slave Latency 从机延迟
    最小值: 0
    最大值: 499(同时有效连接间隔<=16s)
  3. Supervision Time-out 监控超时
    单位: 10ms
    最小值: 10(100ms)
    最大值: 3200(32s)
    STO > (1 + SL)*CI
    通道映射:在连接期间指明使用哪个数据通道;
    跳跃增量: 5 和 16 之间的随机值信道选择算法;
  4. 苹果
    在这里插入图片描述

3. 连接参数相关

  1. 有效连接间隔
    有效连接间隔 = 连接间隔 *(1 + 从机延迟)
  2. 连接参数限制(多连接)
    最小连接间隔 = 12.5 + 5*N
    其中, N 是当前连接数量
  3. 实际连接间隔
    实际连接间隔处于 min 和 max 之间,比 max 值略小
  4. 其他
    连接参数设定后需要过一段时间才会生效

猜你喜欢

转载自blog.csdn.net/weixin_40108380/article/details/105670844