1. 蓝牙技术概述

大家好,我是老张。做嵌入式这行十几年了,蓝牙协议栈算是我打交道最多的无线技术之一。今天咱们聊聊蓝牙的来龙去脉,算是整个课程的开胃菜。

说实话,蓝牙这玩意儿刚出来的时候,我并没太当回事。觉得它速度慢、距离短,能干啥?后来真香了。现在你随便看看身边的设备——耳机、手表、手机、车机,哪个离得开蓝牙?

1.1 蓝牙发展史:从1.0到5.4

蓝牙技术从1994年爱立信开始研究,初衷很简单——替代RS232数据线。嗯,你没看错,就是为了干掉那根串口线。

蓝牙1.0/1.1(1999-2001):初代版本,速率只有1Mbps。我在一个老项目里见过用蓝牙1.1模块的工控设备,那连接稳定性,啧啧,一言难尽。设备之间经常连不上,兼容性也差。

蓝牙2.0 + EDR(2004):这个版本引入了增强数据速率(EDR),速率提升到3Mbps。我记得当时用诺基亚手机传文件,速度明显快了。EDR的引入是个里程碑,蓝牙终于能传点像样的数据了。

蓝牙3.0 + HS(2009):这个版本有点意思——它用802.11(Wi-Fi)来传高速数据,蓝牙只负责配对和协商。说白了就是「借道」Wi-Fi。但实际产品很少,我个人觉得这是个过渡方案。

蓝牙4.0(2010):重磅来了!低功耗蓝牙(BLE)正式登场。这是蓝牙技术的一次革命。为什么?因为之前的蓝牙(现在叫经典蓝牙)功耗太高,不适合纽扣电池供电的设备。BLE的出现,让智能手环、传感器这类设备成为可能。

蓝牙4.1/4.2(2013-2014):主要是优化了共存机制和隐私保护。4.2引入了LE Secure Connections,安全性提升不少。

蓝牙5.0(2016):速率翻倍到2Mbps,广播容量提升8倍,传输距离理论可达300米。我在一个智能楼宇项目里用过蓝牙5.0的模组,穿墙能力确实比4.x强不少。

蓝牙5.1/5.2(2019-2020):5.1加入了方向定位功能(AoA/AoD),可以实现厘米级定位。5.2引入了LE Audio,这是音频传输的革命——LC3编码器比SBC强太多了。

蓝牙5.3/5.4(2021-2023):5.3优化了功耗和稳定性,5.4增加了带响应的周期性广播(PAwR)和加密广播数据(EAD)。这些特性对电子货架标签(ESL)这类应用非常关键。

核心要点:蓝牙4.0是分水岭,BLE的出现让蓝牙从「手机配件」变成了「物联网基石」。如果你现在做新项目,除非需要音频传输,否则优先考虑BLE。

1.2 蓝牙技术特点

蓝牙的核心特点,说白了就三个词:低功耗、短距离、低成本

低功耗:BLE的功耗有多低?一颗CR2032纽扣电池,可以让蓝牙信标工作一年以上。我在一个温湿度传感器项目里实测过,广播间隔100ms,平均电流不到10μA。经典蓝牙呢?同样的场景,电池撑不过一周。

短距离:经典蓝牙通常10米左右,BLE在5.0之后可以到100米以上。但别被理论值忽悠了——实际场景中,墙壁、金属、人体都会衰减信号。我曾经在工厂里测试,隔了两道铁皮墙,5米就断连了。

低成本:现在一颗BLE SoC芯片,批量价不到1美元。Nordic的nRF52840、TI的CC2640,都是常用方案。

避坑指南:我曾经在一个项目中,为了省成本选了某款超低价蓝牙模组。结果天线匹配没做好,通信距离只有标称值的1/3。后来换了正规大厂的模组,问题解决。蓝牙这东西,天线设计和射频调试很关键,别在硬件上省钱。

1.3 蓝牙 vs Wi-Fi vs Zigbee

很多初学者会问:这三个无线技术到底怎么选?我直接给个对比表,一目了然。

特性 蓝牙(BLE) Wi-Fi Zigbee
速率 125Kbps - 2Mbps 150Mbps - 9.6Gbps 20Kbps - 250Kbps
功耗 极低(μA级) 高(mA级) 低(μA级)
距离 10-100米 50-100米(室内) 10-100米
网络拓扑 星型、广播 星型 网状网络
典型应用 耳机、手环、传感器 视频、网页、大文件 智能家居、工业控制
成本 低($1-3) 中($3-10) 低($1-3)

你想想看,Wi-Fi功耗高但速度快,适合传视频;Zigbee组网能力强,适合智能家居里几十个设备互联;蓝牙呢?它最适合「手机直接连设备」的场景——不需要网关,配对即用。

我个人习惯是这样选的:

  • 需要传音频?选经典蓝牙或LE Audio
  • 需要手机直连?选BLE
  • 需要大规模组网(50+节点)?选Zigbee
  • 需要传视频或大文件?选Wi-Fi

注意:蓝牙Mesh虽然也能组网,但节点数量和实时性不如Zigbee。我在一个100节点的智能照明项目里试过蓝牙Mesh,网络延迟明显,后来换成了Zigbee。选型时一定要考虑实际场景的规模。

1.4 蓝牙应用场景

蓝牙的应用场景,我把它分成三大类:

音频传输:这是蓝牙最经典的应用。从最早的蓝牙耳机到现在的TWS真无线,蓝牙音频已经成了标配。LE Audio引入的LC3编码器,在同等码率下音质比SBC好得多。我最近在做一个助听器项目,用的就是LE Audio的LC3,延迟低到20ms以内。

数据传输:包括健康设备(心率、血氧)、传感器(温湿度、气压)、信标(Beacon)等。这类应用对功耗极其敏感,BLE是唯一选择。我在一个冷链物流项目里,用BLE传感器实时监测冷藏车的温度,一节电池撑了半年。

定位与测向:蓝牙5.1引入的AoA/AoD技术,可以实现0.5米以内的定位精度。室内导航、资产追踪、人员定位,这些都是典型场景。不过说实话,实际部署中受多径效应影响,精度会打折扣。我建议做定位项目时,先实地测试再定方案。

嗯,蓝牙技术概述就聊到这儿。下一章咱们深入BLE协议栈的架构,从物理层到应用层,一层层扒开来看。到时候我会结合一个实际的GATT服务开发案例,带大家手写代码。

记住一句话:蓝牙不难,但细节多。跟着我走,踩过的坑我帮你提前填上。

课后思考:你现在的项目中,蓝牙适合用来做什么?如果让你选,你会用经典蓝牙还是BLE?为什么?