1. BLE 通信模型:从持续通信到事件驱动
理解 BLE 通信的第一步,是打破对无线通信的传统认知。很多人会下意识地把 BLE 连接想象成类似 WiFi 那样的"持续在线"状态——设备之间保持着不间断的无线连接,随时可以收发数据。但 BLE 的工作机制与此截然不同。
1.1 事件驱动的通信本质
BLE 采用了一种称为"Connection Event"的事件驱动机制。你可以把它想象成两个朋友约定只在特定的时间窗口进行对话,其余时间都保持静默。具体来说:
- Connection Interval:定义了两次通信窗口之间的时间间隔。例如 30ms 表示每 30 毫秒开启一次通信机会
- Connection Event:实际的通信窗口,持续时间通常很短(几百微秒到几毫秒)
这种设计带来了几个关键特性:
- 射频电路大部分时间处于关闭或低功耗状态
- 通信只在预定时间点发生,具有确定性
- 设备可以精确控制唤醒时序,极大降低功耗
提示:这也是为什么 BLE 设备可以做到纽扣电池供电运行数月甚至数年的关键所在。
1.2 时序图解析
假设 Connection Interval = 30ms,实际通信过程可以这样表示:
code复制[Event0]...[休眠]...[Event1]...[休眠]...[Event2]...
|----30ms----|----30ms----|
每个 Event 内部:
- 主设备(通常是手机)先发送一个数据包
- 从设备(如手环)在约定时间内回复
- 这个"一问一答"称为一个"Packet Pair"
- 一个 Event 内可以包含多个这样的 Packet Pair
1.3 与持续通信的对比
传统持续通信(如 WiFi):
- 射频持续开启
- 随时可以发起传输
- 功耗较高
BLE 事件驱动:
- 射频周期性短暂开启
- 只在预定时间通信
- 超低功耗
这种差异也解释了为什么 BLE 的吞吐量通常低于 WiFi——它不是为大数据量传输设计的,而是为低功耗、间歇性数据交换优化的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Connection Interval 深度解析
2.1 参数定义与实际影响
Connection Interval(连接间隔)是 BLE 连接中最基础的参数之一,它直接影响:
- 通信实时性
- 功耗水平
- 理论最大吞吐量
典型取值范围:
- 最小值:7.5ms(BLE 规范允许的最小值)
- 常用值:15-50ms(平衡型选择)
- 最大值:4s(极低功耗场景)
2.2 计算示例
假设:
- Connection Interval = 30ms
- 每个 Event 允许 6 个数据包交换(3 个 Packet Pair)
那么理论最大通信频率:
- 每秒 Event 数:1000ms / 30ms ≈ 33 次
- 每秒 Packet Pair:33 × 3 = 99 次
- 按典型 ATT_MTU=20字节计算,理论吞吐:99 × 20 ≈ 1980 byte/s
注意这仅是理论值,实际还要考虑协议开销、处理延迟等因素。
2.3 参数选择策略
选择 Connection Interval 需要考虑:
-
应用需求:
- 实时控制(如键盘):7.5-15ms
- 传感器数据(如心率):20-50ms
- 配置类(如设备设置):100ms+
-
功耗敏感度:
