1. BLE概述:低功耗蓝牙技术发展史、核心应用场景与经典蓝牙的区别
1.1 从蓝牙到低功耗蓝牙——一段技术演进史
蓝牙技术诞生于1994年,爱立信想用一根无线电缆替代RS232串口线。1999年,蓝牙1.0正式发布,传输速率只有1Mbps,功耗却高得吓人。那时候我还在读大学,实验室里用蓝牙模块做无线数据传输,两节AA电池撑不过三天。
真正改变格局的是2010年。蓝牙4.0规范发布,低功耗蓝牙(BLE)作为核心规范的一部分正式登场。为什么叫“低功耗”?说白了,它重新设计了协议栈——不再追求高吞吐量,而是把“省电”放在第一位。
我记得2012年第一次拿到TI的CC2540开发板,用一颗纽扣电池驱动BLE模块,连续广播了三个月还有电。当时我就意识到,这东西会改变物联网的玩法。
BLE的发展有几个关键节点:
- 蓝牙4.0(2010):BLE首次纳入规范,单模芯片出现
- 蓝牙4.2(2014):引入LE Secure Connections,支持IPv6
- 蓝牙5.0(2016):广播容量提升8倍,传输距离翻4倍
- 蓝牙5.1(2019):加入AoA/AoD定位,精度达到厘米级
- 蓝牙5.2(2020):LE Audio登场,LC3编码器,支持多流音频
- 蓝牙5.3(2021):连接子速率、信道分类增强
你想想看,从4.0到5.3,BLE的广播数据包从31字节扩展到255字节,传输距离从10米延伸到400米(LE Coded PHY)。这些数字背后,是无数工程师在功耗和性能之间反复权衡的结果。
1.2 BLE的核心应用场景
BLE能火起来,不是因为它比经典蓝牙“更好”,而是它找到了自己的生态位。我把它归纳为三大战场:
1.2.1 IoT(物联网)
智能家居、传感器网络、信标(Beacon)、资产追踪……这些场景的共同特点是:设备数量多、数据量小、电池寿命要求长。BLE的广播模式正好匹配——一个温度传感器每隔几秒发一个数据包,用CR2032纽扣电池跑两年,经典蓝牙根本做不到。
我在做智能门锁项目时遇到过一个问题:门锁用BLE连接手机开锁,但手机靠近时门锁需要快速响应。如果BLE一直保持连接,功耗会高;如果断开,连接建立又慢。后来我们用了蓝牙5.0的广播扩展+周期性广播,既省电又实现了亚秒级响应。
1.2.2 可穿戴设备
手环、手表、智能戒指、医疗贴片……这些设备对体积和功耗极度敏感。BLE的GATT(通用属性协议)提供了标准化的数据交换模型,心率、步数、血氧这些数据都有现成的Profile,不用自己从头定义。
我记得2015年帮一家创业公司做智能手环,他们想把经典蓝牙的SPP协议移植到BLE上,结果发现功耗根本压不住。后来改用BLE的Notification机制——数据由外设主动推送,主机不用轮询,功耗直接降了70%。
1.2.3 医疗健康
连续血糖监测仪(CGM)、心电贴、血氧仪……医疗设备对数据可靠性和低延迟有严格要求。BLE 5.0引入的LE 2M PHY把物理层速率翻倍,配合数据长度扩展(DLE),单次连接事件可以传输更多数据,这对医疗场景非常关键。
我曾经参与过一个CGM项目,传感器每5分钟上报一次血糖数据,BLE连接间隔设为30ms,DLE开到251字节,一次连接事件就能把历史数据全部传完,然后设备立刻进入休眠。实测下来,一颗CR2032电池能用14天,完全满足临床要求。
1.3 BLE与经典蓝牙的区别
很多初学者会把BLE和经典蓝牙搞混。其实从蓝牙4.0开始,蓝牙技术联盟就把它们定义为两种不同的无线电系统。我画了一张对比图,帮你快速建立认知框架:
从这张图你能看出,BLE和经典蓝牙的差异是全方位的。我挑几个最关键的展开说:
1.3.1 物理层差异
经典蓝牙用79个信道,每个1MHz带宽,采用跳频技术。BLE只用40个信道,每个2MHz带宽——信道少了,但每个信道的带宽更宽,接收机设计更简单,功耗自然更低。BLE的40个信道中,3个是广播信道(37/38/39),37个是数据信道。
为什么广播信道只有3个?我刚开始也不理解。后来做信标项目时发现,3个广播信道分布在2.4GHz频段的不同位置(2402MHz、2426MHz、2480MHz),可以有效避开Wi-Fi的干扰。你想想看,如果广播信道太多,扫描设备就要花更多时间监听,功耗反而上去了。
1.3.2 连接模型差异
经典蓝牙的连接是“持续连接”——配对后,主从设备之间一直保持射频链路,即使没有数据也要发送空包维持连接。BLE的连接是“事件驱动”——主从设备在约定的连接事件(Connection Event)内交换数据,其余时间射频关闭,进入休眠。
这个差异直接决定了功耗量级。经典蓝牙的持续连接功耗在几十到上百毫瓦,BLE的连接功耗可以做到微瓦级别。我做过一个实验:用nRF52832跑BLE连接,连接间隔设为1秒,平均电流只有12μA——一颗CR2032电池理论上能跑两年多。
1.3.3 协议栈差异
经典蓝牙的协议栈很重,RFCOMM、SPP、HFP、A2DP……每个Profile都是一套完整的协议。BLE的协议栈很轻,核心只有GAP(通用访问协议)和GATT(通用属性协议)。GAP负责设备发现和连接管理,GATT负责数据读写和通知。
GATT的“属性”概念非常巧妙——每个数据项都是一个属性,有UUID、句柄、权限和值。外设通过Service和Characteristic组织数据,主机通过读写和Notification获取数据。这种模型非常适合传感器数据上报:温度、湿度、心率……每个数据都是一个Characteristic,清晰又标准。
1.4 如何选择:BLE还是经典蓝牙?
这个问题我经常被问到。其实选择标准很简单:
| 场景 | 推荐方案 | 原因 |
|---|---|---|
| 无线音频(耳机、音箱) | 经典蓝牙 | A2DP/HFP成熟,延迟低 |
| 传感器数据上报 | BLE | 功耗低,纽扣电池可驱动 |
| 文件传输 | 经典蓝牙 | 吞吐量高,SPP协议成熟 |
| 信标/室内定位 | BLE | 广播模式,无需配对 |
| 医疗设备(CGM、心电) | BLE | 低功耗+标准化Health Profile |
| 手机外设(键盘、鼠标) | BLE | HID over GATT Profile |
不过现在边界在模糊。LE Audio发布后,BLE也能做高质量音频了。蓝牙5.2的LE Audio支持LC3编码器,音质不输经典蓝牙的SBC,功耗还更低。我预测未来3-5年,BLE会逐步蚕食经典蓝牙在音频领域的份额。
好了,这一章的内容就到这里。BLE的底层原理、协议栈细节、实际开发中的坑,我们后面会一章一章拆开讲。记住今天这张对比图,后面所有内容都会围绕它展开。