1. BLE通信基础与协议架构
低功耗蓝牙(Bluetooth Low Energy,简称BLE)作为物联网时代的核心无线通信技术,其协议栈采用分层设计理念。与传统蓝牙相比,BLE在保持10米左右通信距离的同时,功耗可降低至传统蓝牙的1/10。这种特性使其成为智能穿戴、医疗设备等电池供电场景的首选方案。
BLE协议栈自上而下分为应用层、主机层、控制器层三大部分。其中GAP(Generic Access Profile)和GATT(Generic Attribute Profile)位于主机层,共同构成了BLE设备交互的基石。理解这两大协议是开发BLE应用的前提条件,就像建筑师必须掌握承重结构与空间规划的关系。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. GAP协议深度解析
2.1 角色定义与工作模式
GAP定义了四种基础角色,每种角色对应特定的通信行为模式:
- 广播者(Broadcaster):持续发送广播数据包的非连接设备,如ibeacon。典型功耗约0.1mA,适合信息单向推送场景。
- 观察者(Observer):扫描并接收广播数据的设备,如智能手机。扫描间隔通常设置为100ms-10s不等,影响设备发现速度与功耗平衡。
- 外围设备(Peripheral):可被连接的从设备,如心率带。在连接状态下平均电流约1-3mA。
- 中心设备(Central):发起连接的主设备,如平板电脑。支持同时连接多个外围设备,数量取决于芯片方案(常见6-20个)。
实际项目中,角色选择需考虑:① 供电方式(电池/常电)② 数据流向(上行/下行)③ 实时性要求。例如医疗监护仪通常采用Central角色管理多个Peripheral传感器。
2.2 广播与扫描机制
广播信道使用37/38/39三个特定频点(2402MHz/2426MHz/2480MHz),采用跳频机制抗干扰。广播包结构包含:
code复制| 前导码 | 接入地址 | PDU | CRC |
其中PDU(Protocol Data Unit)又分为:
- 广播类型:ADV_IND(可连接)、ADV_NONCONN_IND(仅广播)等
- 广播数据:最多31字节,包含设备名称、厂商数据等
扫描参数配置示例(nRF52 SDK):
c复制#define
