1. 蓝牙技术演进:从经典蓝牙到低功耗蓝牙(BLE)的架构变迁

各位同学,咱们今天聊点实在的。蓝牙技术从诞生到现在,走了二十多年。我最早接触蓝牙还是做功能机时代,那时候蓝牙耳机配对能折腾人半天。现在呢?手表、手环、戒指,随便一个穿戴设备都标配蓝牙。这背后到底发生了什么?

说白了,就是一场从「能连上就行」到「连上还得省电」的架构革命。

1.1 经典蓝牙(BR/EDR)的架构与痛点

经典蓝牙,也叫BR/EDR(Basic Rate / Enhanced Data Rate)。它的设计初衷是干什么?传输音频、传文件。你想想看,蓝牙耳机、蓝牙音箱,这些都是它的主战场。

它的架构长这样:

  • 物理层:采用跳频扩频(FHSS),79个信道,每个信道1MHz带宽
  • 链路层:支持SCO(同步面向连接)和ACL(异步无连接)两种链路
  • L2CAP层:负责数据分段重组,最大支持64KB的包
  • 上层协议:RFCOMM、SPP、HFP、A2DP等等

我在项目中遇到过一个问题:用经典蓝牙做数据采集,电池撑不过半天。为什么?因为经典蓝牙的链路层设计是「持续连接」的。哪怕你没发数据,射频也得保持同步。功耗自然下不来。

核心痛点:

  • 连接状态下射频持续工作,峰值电流可达30-50mA
  • 协议栈臃肿,最小协议栈也要50KB以上Flash
  • 配对流程复杂,用户体验差
  • 不支持广播模式,必须建立连接才能通信

嗯,这里要注意。经典蓝牙不是不好,它只是不适合穿戴设备。你让一个手环天天跑A2DP音频流?电池扛不住,用户也扛不住。

1.2 低功耗蓝牙(BLE)的诞生与架构革新

2010年,蓝牙4.0发布。BLE正式登场。我记得当时圈内人都在讨论:这玩意儿到底能不能干活?

结果呢?BLE用事实打了所有人的脸。它从架构层面做了彻底的减法:

维度 经典蓝牙 BLE
信道数 79个(1MHz) 40个(2MHz)
调制方式 GFSK GFSK(但更高效)
峰值电流 30-50mA 5-15mA
协议栈大小 50-100KB 10-30KB
连接建立时间 ~100ms ~3ms
广播模式 不支持 原生支持

你想想看,峰值电流差了3-5倍。对于一颗100mAh的纽扣电池来说,这就是能用一周和用一个月的区别。

1.3 BLE的核心架构设计理念

BLE的架构设计,说白了就三个字:省着用

1.3.1 广播模式:不连接也能通信

经典蓝牙必须建立连接才能传数据。BLE不一样,它引入了广播模式。设备可以周期性地发广播包,接收方不需要配对就能拿到数据。

我曾经做过一个体温贴项目。设备每隔5秒广播一次温度数据,手机APP在附近就能收到。用户根本不需要手动配对。这种体验,经典蓝牙做不到。

避坑指南:我曾经在广播间隔设置上踩过坑。广播间隔设太短(比如20ms),功耗会飙升。设太长(比如1秒),数据实时性又不够。建议根据应用场景在100ms-500ms之间选择。

1.3.2 连接事件:按需唤醒

BLE的连接是「事件驱动」的。什么意思?

主设备和从设备约定好一个连接间隔(比如50ms)。到了时间点,双方同时醒来,交换数据。交换完,立刻睡回去。其他时间,射频完全关闭。

这种机制,让平均功耗降到了微安级别。我测过一颗Nordic nRF52832芯片,在广播模式下平均功耗只有5μA左右。经典蓝牙?想都别想。

1.3.3 GATT协议:轻量级数据模型

BLE抛弃了经典蓝牙那套复杂的协议栈,改用GATT(通用属性协议)。

GATT把数据组织成Service和Characteristic。每个Characteristic就是一个数据点。比如心率、步数、电量。手机端通过读写这些Characteristic来获取数据。

// 一个典型的心率Service定义
0x180D - Heart Rate Service
  0x2A37 - Heart Rate Measurement (Notify)
  0x2A38 - Body Sensor Location (Read)
  0x2A39 - Heart Rate Control Point (Write)

这种模型的好处是什么?简单、清晰、可扩展。你不需要理解复杂的协议栈,只需要定义好你的数据模型就行。

1.4 智能穿戴为何选择BLE?

这个问题,我直接给你答案:因为BLE是唯一能在功耗、成本、性能三者之间找到平衡点的无线技术。

咱们来对比一下:

  • Wi-Fi:功耗太高,不适合电池供电设备
  • Zigbee:生态封闭,手机不支持原生接入
  • NFC:通信距离太短,只能贴贴
  • 经典蓝牙:功耗高,协议栈大,不适合小体积设备
  • BLE:低功耗、低成本、手机原生支持、生态成熟

你想想看,一个智能手环,电池容量可能只有100mAh。它要跑心率监测、计步、通知提醒,还要撑7天以上。除了BLE,还有别的选择吗?

智能穿戴选择BLE的三大理由:

  1. 功耗优势:平均功耗可控制在10μA以下,纽扣电池也能用数月
  2. 生态优势:所有智能手机原生支持BLE,无需额外硬件
  3. 成本优势:单颗BLE SoC成本已降至0.5美元以下,Flash需求仅需64KB

1.5 一张图看懂蓝牙技术演进

下面这张图,是我自己画的。它展示了从经典蓝牙到BLE的架构变迁。你仔细看看,就能理解为什么BLE更适合穿戴设备。

蓝牙技术演进:从经典蓝牙到BLE 经典蓝牙 (BR/EDR) 应用层 (A2DP, HFP, SPP) L2CAP + RFCOMM 链路层 (SCO/ACL) 物理层 (79信道, 1MHz) 峰值电流: 30-50mA 协议栈: 50-100KB 连接建立: ~100ms 架构革新 低功耗蓝牙 (BLE) 应用层 (GATT, GAP) L2CAP (简化版) 链路层 (广播+连接事件) 物理层 (40信道, 2MHz) 峰值电流: 5-15mA 协议栈: 10-30KB 连接建立: ~3ms

这张图里,你能看到两个关键变化:一是协议栈变薄了,二是物理层信道数减少了。别小看这两个变化。协议栈变薄,意味着MCU的Flash和RAM需求降低,芯片成本自然就下来了。信道数减少,意味着射频接收机可以做得更简单,功耗也就降下来了。

1.6 我的实战建议

做了这么多年蓝牙开发,我总结了几条经验,分享给你:

选型建议:

  • 如果做音频设备(耳机、音箱),选经典蓝牙+BLE双模芯片
  • 如果做穿戴设备(手环、手表、戒指),纯BLE芯片就够了
  • 如果做数据采集(传感器、标签),BLE广播模式是你的好朋友

注意:BLE不是万能的。它的数据吞吐量有限(理论最大约1.3Mbps,实际应用中通常只有几百Kbps)。如果你要传高清音频或视频,还是得用经典蓝牙或Wi-Fi。

嗯,这一章的内容就到这儿。BLE的架构变迁,说白了就是一场「为穿戴而生」的设计革命。下一章,咱们会深入BLE的物理层,看看那40个信道到底是怎么工作的。


公众号:蓝海资料掘金营,微信deep3321