1. 低功耗蓝牙技术全景解读
第一次接触BLE开发时,我对着协议栈文档发呆了整整三天。那些晦涩的术语就像天书一样——GATT、ATT、Profile、Service、Characteristic...直到亲手完成第一个心率监测项目,才真正理解这套架构的精妙之处。低功耗蓝牙(Bluetooth Low Energy)作为物联网时代的核心无线技术,其设计哲学与经典蓝牙截然不同。它牺牲了持续传输的高带宽,换来了纽扣电池就能维持数年的超低功耗特性。这种特性使得BLE在智能穿戴、医疗监测、室内定位等领域大放异彩。
理解BLE框架需要把握三个关键维度:协议分层、角色划分和数据交互模型。协议栈自下而上分为控制器层(PHY、LL)、主机层(HCI、L2CAP、ATT、GATT)和应用层;设备角色分为广播者(Advertiser)、观察者(Observer)、外围设备(Peripheral)和中央设备(Central);数据交互则通过特征值(Characteristic)的读写/通知机制实现。这种分层设计使得BLE设备可以根据场景灵活配置功能,例如一个血糖仪可以同时作为心率带的外设(Central)和手机的外围设备(Peripheral)。
关键认知:BLE不是"慢速版蓝牙",而是为间歇性数据传输设计的全新协议。其广播间隔可配置为20ms至10.24s,连接间隔最小7.5ms,这种灵活的时序控制正是低功耗的秘诀所在。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. BLE协议栈深度解析
2.1 控制器层:无线电的精密控制
物理层(PHY)工作在2.4GHz ISM频段,采用高斯频移键控(GFSK)调制,将2402-2480MHz划分为40个物理信道(37个数据信道+3个广播信道)。链路层(LL)的state machine设计尤为精妙,包含五种状态:待机(Standby)、广告(Advertising)、扫描(Scanning)、发起(Initiating)和连接(Connection)。我曾用nRF Sniffer抓包工具观察到:一个智能手环在未连接时,每1.28秒在37/38/39三个广播信道上轮流发送含RSSI值的ADV_IND报文,平均电流仅3μA。
主机控制接口(HCI)如同交通指挥中心,通过UART、USB或SPI传输HCI命令。记得第一次调试CC2540时,通过HCI_LOG串口看到"LE Connection Complete"事件里的Connection_Interval参数,才明白为什么修改这个值能显著影响功耗。逻辑链路控制与适配协议(L2CAP)负责数据包的分片重组,其MTU大小直接影响传输效率——Android手机默认23字节,而iOS支持185字节,这个差异曾导致我们项目的固件需要做兼容性适配。
2.2 属性协议与通用属性规范
属性协议(ATT)采用极简的Client-Server模型,定义了查找(Find)、读(Read)、写(Write)、通知(Notify)等操作。其数据存储结构就像分层文件系统:
code复制Attribute Handle → UUID → Permissions → Value
在调试TI的SensorTag时,用BLE调试器读取0x002B处的Handle,得到00002a00-0000-1000-8000-00805f9b34fb这个UUID,正是设备名称特征。通用属
