ble连接参数分析
1. 基本概念
(1) Connection Interval(连接间隔)
定义:主设备(Master)每隔多长时间尝试与从设备(Slave)通信一次,单位是 1.25ms(BLE时间单位)。
范围:通常 7.5ms ~ 4s(6 ~ 3200 * 1.25ms)。
影响:
较短的间隔 → 低延迟,但功耗高(频繁通信)。
较长的间隔 → 高延迟,但功耗低(通信不频繁)。
(2) Transmit Window(传输窗口)
定义:从设备(Slave)在连接事件(Connection Event)期间可以发送数据的时间窗口。
包含两个参数:
Transmit Window Offset(窗口偏移):从连接事件开始到传输窗口打开的延迟时间。
Transmit Window Size(窗口大小):传输窗口的持续时间。
2. 参数之间的关系
(1) 时序关系
连接事件(Connection Event) 开始时,主设备发送数据包。
Transmit Window Offset 决定从设备何时可以开始发送数据(相对于连接事件的起始时间)。
Transmit Window Size 决定从设备可以发送数据的最大时间长度。
(2) 数学关系
传输窗口的开始时间:
Window_Start = Connection_Event_Start + Transmit_Window_Offset
传输窗口的结束时间:
Window_End = Window_Start + Transmit_Window_Size
约束条件:
Transmit_Window_Offset + Transmit_Window_Size ≤ Connection_Interval
否则,传输窗口会超出连接间隔,导致通信失败。
(3) 典型场景
如果
Transmit_Window_Size = 0
:从设备不能主动发送数据,只能由主设备轮询(Polling)。
如果
Transmit_Window_Size > 0
:从设备可以在窗口期内发送数据(如通知、指示等)。
3. 对通信的影响
参数 | 设置较大 | 设置较小 |
---|---|---|
Connection Interval | 低功耗,高延迟 | 高功耗,低延迟 |
Transmit Window Offset | 从设备响应延迟增加 | 从设备响应更快 |
Transmit Window Size | 允许更多数据交换,但可能增加冲突 | 限制数据传输时间 |
4. 实际应用示例
假设:
Connection Interval = 20ms(16 * 1.25ms)
Transmit Window Offset = 5ms
Transmit Window Size = 10ms
时序分析:
主设备在
T=0ms
发送数据包。从设备在
T=5ms
开始可以发送数据(窗口打开)。从设备必须在
T=15ms
前完成发送(窗口关闭)。下一个连接事件在
T=20ms
开始。
如果从设备未在 10ms
窗口内完成通信,必须等待下一个连接事件。
5. 优化建议
低功耗场景:
增大
Connection Interval
(如 100ms+)。减小
Transmit Window Size
(仅允许必要通信)。
低延迟场景:
减小
Connection Interval
(如 15ms)。适当增大
Transmit Window Size
(确保数据能及时发送)。
总结
Transmit Window Offset
决定从设备何时能发送数据。Transmit Window Size
决定从设备能发送数据的时间长度。Connection Interval
决定通信频率,影响延迟和功耗。三者必须协调,否则可能导致通信失败(如
0x3E
超时错误)。
如果需要进一步优化BLE连接,可以调整这些参数以适应具体应用场景(如传感器数据上报、音频传输等)。