4. BLE技术概述
在WiFi/BLE共存设计中,BLE(Bluetooth Low Energy)并不是“低功率版经典蓝牙”这么简单。它从物理层到应用层都围绕“短包、低频次、低占空比”重新设计,因此其射频行为、时间占用和抗干扰方式与WiFi差异很大。理解BLE协议栈、广播/连接机制、跳频原理和GATT模型,是后续分析共存去敏、丢包与吞吐退化的基础。
一、BLE协议栈:从物理层到应用层
BLE协议栈可分为控制器(Controller)和主机(Host)两大部分,中间通过HCI接口通信。控制器负责射频、链路层和部分基带时序;主机负责逻辑链路、属性协议和应用框架。
- 物理层(PHY):工作在2.4GHz ISM频段,采用GFSK调制,信道带宽2MHz,共40个信道,其中37个数据信道、3个广播信道(37/38/39)。
- 链路层(LL):定义广播、扫描、发起连接、连接事件、跳频和加密等状态机,是BLE时序的核心。
- HCI:主机与控制器的命令、事件和数据通道,常见于UART、USB或SDIO。
- L2CAP:提供逻辑信道复用、分段与重组,为ATT/GATT和SMP提供承载。
- ATT/GATT:属性协议定义数据读写单元,通用属性配置文件定义服务、特征和描述符的组织方式。
- SMP:安全管理协议,负责配对、密钥分发和加密。
- 应用层:基于GATT定义具体服务,如心率、电池、设备信息等。
二、广播与连接机制
BLE设备通过广播信道对外宣告自己。广播包在37、38、39三个信道上轮流发送,每个信道停留时间很短,随后快速切换。广播类型包括可连接非定向、可连接定向、不可连接和可扫描等。扫描方在扫描窗口内监听广播信道,收到广播后可选择发起连接。
连接建立后,主从设备按“连接事件”周期通信。每个连接事件中,主设备在约定信道发送数据,从设备在固定偏移后回应。连接间隔、从设备延迟和监督超时是三个关键参数:
| 参数 | 含义 | 典型影响 |
|---|---|---|
| 连接间隔 | 两次连接事件起始的时间差 | 越小延迟越低,但功耗和射频占用越高 |
| 从设备延迟 | 从设备可跳过连接事件的最大次数 | 越大越省电,但上行响应变慢 |
| 监督超时 | 判定连接丢失的最长时间 | 过短易误断,过长则故障恢复慢 |
广播和连接阶段的射频行为不同:广播是周期性短包,连接是周期性双向交互。共存设计中,若WiFi与BLE同板,需根据连接间隔评估BLE对WiFi时隙的侵占程度。
三、跳频原理与抗干扰
BLE采用自适应跳频(AFH)。在连接状态下,链路层使用37个数据信道进行跳频,跳频序列由信道图和跳频增量决定。信道图用于标记“好信道”和“坏信道”,坏信道通常由干扰或误码率过高导致。主从双方通过信道图更新流程动态调整可用信道集合。
跳频的核心价值在于:当某个信道被WiFi、微波炉或其他2.4GHz设备占用时,BLE不会长期停留在该信道,而是按序列跳到下一个信道。这样可降低持续干扰导致的丢包概率。但跳频并不能完全消除干扰,因为:
- 跳频序列可能仍会落入被WiFi占用的信道;
- WiFi占用带宽较宽时,可能同时覆盖多个BLE信道;
- 信道图更新需要时间,干扰突发时可能来不及剔除坏信道。
四、GATT与典型应用场景
GATT是BLE应用层的数据组织模型。它把数据抽象为“属性”,属性由句柄、类型、值和权限组成。多个属性组成特征(Characteristic),多个特征组成服务(Service)。客户端通过发现服务、读写特征、订阅通知来获取数据。
典型操作包括:
- 服务发现:客户端读取主服务、包含服务和特征声明。
- 读操作:客户端主动读取特征值。
- 写操作:客户端写入控制点或配置。
- 通知/指示:服务端主动推送数据,通知无需确认,指示需要确认。
常见应用场景包括:可穿戴设备的心率与步数上报、智能家居的配网与控制、医疗传感器的周期数据采集、资产标签的广播定位等。这些场景的共同点是数据量小、周期性强、对功耗敏感,因此BLE的短包和低占空比特性非常匹配。
典型BLE连接参数示例:
连接间隔:30 ms
从设备延迟:4
监督超时:4 s
MTU:247 字节
PHY:1M / 2M
五、误区与复盘
误区一:认为BLE跳频可以完全避开WiFi。实际上,BLE只有37个数据信道,WiFi一个20MHz信道可覆盖多个BLE信道,跳频只能降低碰撞概率,不能保证无干扰。
误区二:只关注BLE平均功耗,忽略瞬时射频占用。BLE在连接事件中仍会突发发射,若与WiFi RX/TX时隙重叠,可能造成去敏或丢包。
误区三:把GATT通知当成“可靠传输”。通知没有应用层确认,丢包后不会自动重传,需依赖上层机制或改用指示。
复盘时建议记录:BLE连接间隔、信道图、PER、WiFi信道与占空比、共存时的吞吐和延迟变化。通过这些数据判断是BLE参数问题、WiFi干扰问题,还是射频前端隔离不足。