3、近距离无线通信技术(一):蓝牙技术概述、经典蓝牙与低功耗蓝牙(BLE)、蓝牙协议栈与组网方式、蓝牙在物联网中的应用案例

蓝牙,这名字大家都不陌生。手机连耳机、手表连手机,天天都在用。但作为物联网接入手段,蓝牙到底能干什么、不能干什么,很多人其实没想清楚。

我入行那会儿,蓝牙还停留在 2.0 时代,传个文件慢得让人抓狂。后来 BLE 出来,整个局面就变了。今天咱们把蓝牙技术从头捋一遍,重点放在物联网场景下怎么选、怎么用。

3.1 蓝牙技术概述

蓝牙工作在 2.4GHz ISM 频段,这个频段免费,但也很挤——Wi-Fi、ZigBee、微波炉都在这儿。蓝牙能活下来,靠的是跳频技术。

什么叫跳频?说白了就是数据包在 79 个信道(经典蓝牙)或 40 个信道(BLE)上快速切换,每秒跳 1600 次。干扰来了?换一个信道继续传。我当年在一个工厂调试蓝牙网关,旁边就是大功率电机,Wi-Fi 已经卡死了,蓝牙居然还能跑,靠的就是这个机制。

核心参数速览:

  • 工作频段:2.400 – 2.4835 GHz
  • 调制方式:GFSK(基础)、π/4-DQPSK、8DPSK(EDR)
  • 发射功率:Class 1(100mW)、Class 2(2.5mW)、Class 3(1mW)
  • 通信距离:典型 10m(Class 2),可达 100m+(Class 1 + 外置天线)

3.2 经典蓝牙与低功耗蓝牙(BLE)

很多人以为 BLE 就是蓝牙 4.0,其实不准确。蓝牙 4.0 规范首次引入了双模架构:经典蓝牙(BR/EDR)和低功耗蓝牙(BLE)。它们共用射频前端,但协议栈完全不同。

对比项 经典蓝牙(BR/EDR) 低功耗蓝牙(BLE)
设计目标 连续数据流(音频、文件) 间歇小数据量(传感器、信标)
信道数 79 个(1 MHz 间隔) 40 个(2 MHz 间隔)
峰值电流 ~30 mA ~5 mA(实际更低)
休眠电流 ~1 mA ~1 µA
连接建立时间 ~100 ms ~3 ms
数据速率 1–3 Mbps 1 Mbps(BLE 4.x)、2 Mbps(BLE 5.0)
典型应用 蓝牙耳机、车载免提 智能手环、温湿度传感器、室内定位

你想想看,一个温度传感器每隔 5 分钟发一次数据,用经典蓝牙?那电池撑不过三天。用 BLE,一颗纽扣电池跑一年没问题。这就是设计理念的差异。

选型建议:

需要传音频?选经典蓝牙。需要传传感器数据?选 BLE。如果设备既要连手机又要连耳机,选双模芯片(如 Nordic nRF52 系列、TI CC26xx 系列)。

3.3 蓝牙协议栈与组网方式

3.3.1 协议栈分层

蓝牙协议栈分三层:控制器(Controller)、主机(Host)和应用层(Application)。控制器跑在芯片内部,主机通常跑在 MCU 上,中间通过 HCI(Host Controller Interface)通信。

BLE 协议栈的核心层包括:

  • PHY(物理层):1Mbps GFSK,BLE 5.0 新增 2Mbps 和编码模式(125kbps/500kbps)
  • LL(链路层):负责广播、扫描、连接建立、重传
  • L2CAP(逻辑链路控制与适配协议):数据分段与重组
  • ATT(属性协议):客户端-服务器模型,读写属性
  • GATT(通用属性配置文件):定义服务(Service)和特征(Characteristic)
  • SM(安全管理):配对、绑定、加密

我刚开始做 BLE 开发时,最头疼的就是 GATT 服务设计。一个服务里包含多个特征,每个特征又有属性(读、写、通知、指示)。设计不好,手机端读数据就乱套。后来我总结了一个原则:一个传感器一个服务,一个数据点一个特征,别贪多。

BLE 协议栈分层架构 应用层(Application) 用户自定义 Profile / 行业标准 Profile(HID、心率、环境传感等) 主机(Host) GATT / ATT SM(安全管理) L2CAP GAP(通用访问规范) HCI(主机控制器接口) 控制器(Controller) LL(链路层) PHY(物理层) Direct Test Mode

3.3.2 组网方式

蓝牙的组网方式主要有三种:

  1. 点对点(Piconet):一个主设备最多连 7 个从设备。经典蓝牙和 BLE 都支持。典型场景:手机连手环。
  2. 广播(Broadcaster / Observer):BLE 独有。设备只发不连,接收端只收不连。典型场景:苹果 iBeacon、Eddystone 信标。
  3. Mesh 网络:BLE 5.0 之后引入。节点之间可以中继转发,覆盖范围大大扩展。典型场景:智能照明、楼宇自动化。

注意:BLE Mesh 不是蓝牙核心规范的一部分,而是基于 BLE 广播层的网络层协议。节点之间不建立连接,靠广播消息中继。这意味着延迟会随跳数增加,不适合实时控制。

我在一个智能楼宇项目里用过 BLE Mesh,控制 200 多盏灯。调试时发现一个问题:消息风暴。每个节点都转发,网络很快就满了。后来我们限制了 TTL(生存时间)为 3 跳,才稳定下来。嗯,这里要注意,Mesh 不是万能药,规模大了要仔细规划。

3.4 蓝牙在物联网中的应用案例

3.4.1 室内定位与信标

BLE 信标是物联网里最成熟的应用之一。一个纽扣电池,一个蓝牙芯片,就能发广播包。手机收到后根据 RSSI 估算距离,实现室内导航、位置推送。

我曾经帮一个商场做导流系统,部署了 300 个信标。踩过的坑:金属货架会严重衰减信号,RSSI 波动大。后来我们改用三点定位 + 滤波算法,精度才从 5 米降到 2 米左右。

3.4.2 医疗健康设备

BLE 在医疗领域几乎是标配。心率带、血糖仪、血氧仪,都走 BLE。原因很简单:功耗低、手机直连、数据标准统一(比如蓝牙 SIG 定义的心率服务 Profile)。

我参与过一个远程监护项目,老人戴 BLE 手环,数据通过网关上传云端。最头疼的是断连重连——老人不会操作手机。后来我们加了断连自动重连机制,配合超时报警,才算解决。

3.4.3 智能家居

蓝牙 Mesh 在智能家居里越来越常见。飞利浦 Hue 的蓝牙版、小米的部分灯具,都用 BLE Mesh。好处是不需要网关,手机直连就能控制。但缺点也很明显:跨房间控制需要中继,响应速度不如 ZigBee。

我的建议:

小户型(<100m²)用 BLE Mesh 完全够用。大平层或别墅,还是走 ZigBee 或 Thread 更稳。别盲目追新,场景决定技术选型。

3.4.4 工业数据采集

这个场景很多人想不到。其实 BLE 5.0 的 2Mbps 速率和 125kbps 编码模式(远距离模式),已经能覆盖不少工业场景。比如振动传感器、温度探头,用 BLE 采集数据,网关汇聚后走 4G 上云。

我在一个工厂做过试点:20 个 BLE 温振传感器,距离网关最远 80 米,中间隔了两堵墙。用 125kbps 编码模式,数据包能到,但丢包率 5% 左右。后来把网关天线外置,丢包降到 1% 以下。嗯,天线位置真的很重要。

3.5 避坑指南

  • 不要迷信理论距离:标称 100 米,实际穿一堵墙可能只剩 20 米。金属、混凝土、人体都是杀手。
  • 配对体验要重视:BLE 的配对流程有 Just Works、Passkey、OOB 三种。消费类产品用 Just Works 最省事,但安全性最低。工业场景建议用 Passkey 或 OOB。
  • 广播包别塞太满:BLE 广播包最大 31 字节,加上 AD 结构,实际可用空间更少。我曾经为了塞更多数据,把广播间隔压到 20ms,结果手机扫描时功耗飙升。后来分两个广播信道发,才平衡了。
  • 兼容性测试不能省:不同手机对 BLE 的支持差异很大。华为、小米、iPhone 的扫描行为、连接延迟都不一样。我吃过这个亏——开发时用 iPhone 一切正常,上线后华为手机连不上。后来买了 10 台主流手机做兼容性测试,才把问题都修掉。

蓝牙技术看起来简单,但真正用好,需要理解它的设计哲学:低功耗、短距离、低成本。别拿它当 Wi-Fi 用,也别指望它能传音频还能省电。选对场景,蓝牙就是物联网里最趁手的工具之一。