【nRF52832】【Ble 1】【低功耗蓝牙简介】
一、低功耗蓝牙介绍
1. 1 什么是 ble?
BLE 是蓝牙低功耗的简称(Bluetooh Low Energy)。蓝牙低功耗(BLE)技术是低成本、短距离、可互操作的鲁棒性无线技术,工作在免许可的 2.4GHz ISM 射频频段。它从一开始就设计为超低功耗(ULP)无线技术。它利用许多智能手段最大限度地降低功耗。
- 低成本,低功耗。
- 快速启动,瞬间连接。最快 3ms 低延迟。
- 传输距离的提高。
- 高安全性。使用 AES-128 加密算法进行数据报加密认证。
1.2 有那些应用场景?
蓝牙低功耗在短距离无线通信领域占据着越来越重要的地位,在很多应用场合均可见到蓝牙低功耗的身影:
- 医疗和健康设备,如血糖仪、数字血压计、血气计、心率监视器、数字体温计等。
- 运动休闲,如心率监测仪、体温计、计步器、节拍器、测高仪等。
- 鼠标、键盘、遥控器。
- Beacons。
- 智能家居,如灯光控制、温度控制、湿度控制、安全锁控制、门窗控制的低功耗、高安全性解决方案。
1.3 蓝牙各个版本介绍?
版本 | 发布年份 | 协议核心功能 | 传输速率 | 功耗特性 | BLE 支持 | 安全性特性 | 主要新增特性 | 应用场景/意义 |
---|---|---|---|---|---|---|---|---|
1.0 / 1.1 | 1999 / 2001 | 基本点对点连接,基于BR(Basic Rate) | 721 kbps | 高功耗 | ❌ | PIN码配对 | 第一个商用蓝牙协议,支持SCO语音 | 早期无线耳机、串口传输 |
1.2 | 2003 | 快速连接、干扰避免(AFH) | 721 kbps | 高功耗 | ❌ | 改进配对稳定性 | 自适应跳频(AFH)、更快设备发现 | 无线音频稳定性提升 |
2.0 + EDR | 2004 | 增强数据速率(EDR)支持 | 3 Mbps | 中功耗 | ❌ | 与1.x兼容 | EDR:更快数据传输,降低能耗/比特 | 蓝牙音响、传图设备等 |
2.1 + EDR | 2007 | 简化配对流程(SSP) | 3 Mbps | 中功耗 | ❌ | Secure Simple Pairing (SSP) | 改善配对体验、安全性提升 | HFP设备、大量商业设备使用 |
3.0 + HS | 2009 | 引入HS(High Speed) | 24 Mbps(使用Wi-Fi) | 高功耗 | ❌ | 使用OOB通道提升安全 | AMP架构,可通过802.11传数据 | 仅少量产品实现,实际使用不多 |
4.0 | 2010 | 引入 BLE(低功耗蓝牙) 模式 | BR/EDR: 3 MbpsBLE: 1 Mbps | BLE:极低功耗 | ✅ 初次引入 | AES-128,配对简化 | BLE(GATT、广播、连接) | 可穿戴、IoT设备革命性突破 |
4.1 | 2013 | BLE连接稳定性增强 | 同4.0 | BLE优化 | ✅ | 改进BLE配对 | 支持多个连接,支持IP集成 | 支持BLE设备连接多个设备 |
4.2 | 2014 | BLE支持IPv6/6LoWPAN | 同4.0 | BLE优化 | ✅ | LE Secure Connections(ECDH) | 更安全的BLE连接、支持隐私广播 | 智能家居、安全关键设备 |
5.0 | 2016 | BLE性能大幅升级 | BLE:2 Mbps远距离(125 kbps) | BLE优化 | ✅ | 改进配对流程 | 2x速率、4x距离、8x广播容量 | IoT扩展,覆盖更远,速度更快 |
5.1 | 2019 | 引入方向感知(AoA/AoD) | 同5.0 | BLE优化 | ✅ | 改进隐私控制 | 室内定位支持(厘米级) | 资产追踪、室内导航 |
5.2 | 2020 | 引入 LE Audio & Isochronous Channels | 同5.0 | BLE优化 | ✅ | LE Secure Connections | 支持LE音频、广播音频 | 下一代助听器、共享音频 |
5.3 | 2021 | BLE连接优化,广播增强 | 同5.0 | BLE优化 | ✅ | 细粒度控制 | 广播时间控制、低功耗切换 | 电池续航优化、增强广播体验 |
5.4 | 2023 | 支持 PAwR、Encrypted Advertising | 同5.0 | BLE优化 | ✅ | 广播内容加密 | 大规模BLE组播、低功耗通信 | 电子价签、智能工厂、BLE星状组网 |
1.4 ble 都有那些特性?
特性 | 初始引入版本 | 说明 | 应用场景 |
---|---|---|---|
BLE(低功耗蓝牙) | Bluetooth 4.0 | 专为低功耗、小数据量传输设计 | 健康设备、传感器、手环、电子价签 |
GATT协议栈 | 4.0 | 定义Profile/Service/Characteristic的数据模型 | 可自定义服务结构 |
广播模式(Advertising) | 4.0 | 可不配对进行数据广播 | iBeacon、扫码对接、附近设备识别 |
多角色支持 | 4.1 | 可同时作为中央和外设 | 手表连接手机+耳机 |
LE Secure Connection | 4.2 | 使用ECDH增强配对安全性 | 防止MITM攻击 |
LE Audio / Isochronous Channel | 5.2 | 支持低功耗音频同步 | 共享耳机、助听器 |
Periodic Advertising / PAwR | 5.4 | 周期性广播+响应 | 电子价签、资产广播组网 |
1.5 低功耗蓝牙产品选型和协议版本关系
开发方向 | 推荐最低版本 | 理由 |
---|---|---|
通用BLE传感器 | 4.0 | 基础BLE已足够 |
BLE多连接产品(如手表) | 4.1或4.2 | 提升连接质量与安全性 |
安全关键型设备 | 4.2+ | 使用LE Secure Connections |
室内定位/方向检测 | 5.1 | 支持AoA/AoD方向感知 |
BLE音频/共享音频 | 5.2+ | 支持LE Audio等特性 |
大规模BLE广播(如电子价签) | 5.4 | 支持PAwR和广播加密 |
1.6 蓝牙单模(Single-mode)与双模(Dual-mode)
项目 | 单模蓝牙(Single-mode) | 双模蓝牙(Dual-mode) |
---|---|---|
支持协议 | 仅支持 BLE(Bluetooth Low Energy) | 同时支持 BLE 和 BR/EDR(经典蓝牙) |
协议栈组成 | 只包含 BLE 协议栈(GAP/GATT/L2CAP/ATT 等) | 包含 BLE 协议栈 和 经典蓝牙协议栈(RFCOMM、SDP、AVDTP、HFP 等) |
硬件结构 | 专为低功耗设计,SoC 资源需求小 | 集成双套无线和协议逻辑,资源占用更大 |
典型应用 | 智能手环、BLE灯控、温湿度传感器、电子价签 | 手机、车载系统、蓝牙音响、TWS耳机 |
功耗表现 | 极低功耗(μA级待机,mA级通信) | BR/EDR模块功耗较高,BLE部分仍然低功耗 |
数据速率 | BLE 4.x: 1 MbpsBLE 5.x: 2 Mbps | BR: 1 MbpsEDR: 2–3 MbpsBLE 同单模 |
音频支持 | 仅支持 **LE Audio(需 BLE 5.2+)**之前版本不支持音频传输 | 支持 经典音频(SCO) 和 A2DP 高音质音频 |
芯片成本 | 成本低,适合大规模 IoT 设备 | 成本较高,用于高功能需求场景 |
兼容性 | 只能与支持 BLE 的设备通信 | 可与支持 BLE 和 BR/EDR 的设备通信 |
示例芯片 | Nordic nRF52832 / 51822Dialog DA14531TI CC2640 | Qualcomm WCN3991 / CSR8811TI CC2564Broadcom BCM4345 |
产品举例 | 小米体重秤、智能门锁、BLE beacon、电子标签 | 手机、车机、耳机、蓝牙遥控器 |
开发难度 | 协议简单,资源需求少,低门槛 | 协议复杂,需处理多协议协同 |
选型建议:
设备类型 | 推荐类型 | 理由 |
---|---|---|
IoT传感器、Beacon、低功耗产品 | 单模 BLE | 更省电、更便宜、协议简单 |
手机、车载中控、智能电视 | 双模蓝牙 | 要支持蓝牙耳机、文件传输等功能 |
仅使用 BLE 且需音频功能(如助听器) | 单模 BLE(需 BLE 5.2+) | 使用 LE Audio,仍可低功耗 |
音频产品(TWS、车载) | 双模蓝牙 | 需支持 A2DP/AVRCP,兼容所有手机 |
二、低功耗蓝牙体系结构
2.1 物理层(PHY – Physical Layer)
内容 | 描述 |
---|---|
功能 | 负责 无线信号的发送与接收,决定调制方式、信道等 |
频段 | 2.4 GHz ISM 频段,40个信道(0~39) 3个为广播(37/38/39),其余为数据通道 |
调制方式 | GFSK(Gaussian Frequency Shift Keying) |
PHY类型(BLE 5+) |
|
作用意义 | 决定 BLE 的传输速率、距离与功耗,BLE 5 扩展了距离和速率的灵活性 |
-
工作在 2.4GHz ISM 频段。频率范围:2.400-2.4835 GHz
-
ISM 频段:(Industrial Scientific Medical Band)主要是开放给工业、科学和医用 3 个主要机构使用的频段。ISM 频段属于无许可(Free License)频段。2.4G ISM 频段是唯一一个在所有国家都无需授权的频段,只需要遵守一定的发射功率即可。我们熟知的无线局域网、蓝牙、ZigBee 等无线网络,均可工作在 2.4GHz ISM 频段上。
-
2.4G 被划分为 40 个 RF 信道(f=2402+k * 2 MHz, k=0, … ,39),信道间隔 2MHz,其中:
- 广播信道:3 个,固定。
- 数据信道:37 个,自适应跳频。
-
无线速率:1Mbps、2Mbps。
2️.2 链路层(LL – Link Layer)
内容 | 描述 |
---|---|
功能 | BLE 核心逻辑控制层,管理 广播、扫描、连接建立与维护 |
主要任务 |
|
角色定义 |
|
BLE通信单位 | 以 Connection Event 为时间片发送/接收数据 |
加密 | 配合 SMP,实现 AES-CCM 加密通信 |
特殊特性 |
|
2.2.1 链路层状态机
链路层设备有 5 种状态:
- 就绪态:上电后,链路层进入并保持就绪态,直到接收到主机的命令。状态机的中心状态,处于其它状 态下都可以进入到此状态。
- 广播态:发送广播报文和扫描响应。
- 扫描态:侦听广播设备。
- 发起态:发起连接。
- 连接态:唯一一个用到数据信道的状态,两个设备只有在连接态中才能互相传送数据。
链路层可能同时存在多个链路,同时拥有多个独立的状态机,但是链路层永远不能同时成为主从机。
链路层状态机有助于我们清晰相关概念,如设备上电后,他不可能直接进入到连接态,必须由广播态或发起态才能进入到连接态。
需要特别注意的是:这里说的是链路层的状态机,而不是整个系统的。
2.2.2 链路层信道映射
广播信道:
- 37 、38、39,对应的中心频率是 2402MHz,2426MHz,2480MHz。
- 广播信道之间至少相差 24MHz。
- 每次广播,都会在 3 个信道上将广播数据发送一次,这能有效地避免干扰,即使一个信道存在干扰,另外的信道也可以很好地工作,而三个信道同时被干扰的情况极少。
为什么广播信道是 3 个,而不是更多?
- 广播信道越多,各个信道同时受到干扰的几率越小,抗干扰性越强。
- 但是广播信道越多,发射数据占用的时间就越长,功耗也就越高。
- 所以,在综合考虑抗干扰性和功耗的情况下,SIG 将广播设定为 3 个。
2.3 HCI 层(Host Controller Interface)
内容 | 描述 |
---|---|
功能 | BLE 控制器与主机之间的标准化通信接口 |
数据类型 |
|
传输方式 | UART(H4协议)、USB、SPI、SDIO |
作用意义 | 使上层协议栈(GAP/GATT/L2CAP)能与独立蓝牙芯片通信,常用于分离式架构(Host/Controller 分离) |
2.4️ L2CAP 层(Logical Link Control and Adaptation Protocol)
内容 | 描述 |
---|---|
功能 | BLE 协议栈的 数据适配层,多通道多服务管理 |
关键能力 |
|
BLE 特化版本 | 简化版 L2CAP,不支持流控制和重传(BR/EDR 支持) |
CID常见值 |
|
新特性支持 | BLE 5.0+ 支持 Credit-Based Flow Control Mode(用于多个逻辑信道) |
2.5️ ATT 层(Attribute Protocol)
内容 | 描述 |
---|---|
功能 | BLE 设备间通过“属性”进行通信,定义服务与特征的数据格式与访问机制 |
结构 | 每个“属性”包含 <句柄,类型(UUID),权限,值> |
传输模型 | Client(读写)↔ Server(持有数据) |
操作类型 | Read、Write、Notify、Indicate、Read By Group Type、Find Information 等 |
数据通道 | 通过 L2CAP CID 0x0004 |
限制 | 不支持并发事务,每次只能处理一个 ATT 请求 |
- 属性协议(ATT)规定了怎样去访问对端设备的数据,数据存储在属性服务器的“属性”里,供属性客户端进行读写操作。
2.6️ SMP 层(Security Manager Protocol)
内容 | 描述 |
---|---|
功能 | 管理 BLE 安全配对过程与加密流程 |
配对模型(4.2之前) | Just Works、Passkey Entry、OOB(Out of Band) |
BLE 4.2+ | 引入 LE Secure Connection(基于 ECDH 公钥交换) |
功能模块 |
|
配合层级 | 与 Link Layer 配合,提供加密后通信通道 |
- 安全管理层 SM(Security Manager)提供配对和密钥的分发。
2.7️ GATT 层(Generic Attribute Profile)
内容 | 描述 |
---|---|
功能 | 在 ATT 基础上定义**服务(Service)和特征(Characteristic)**结构 |
Client / Server 架构 | GATT Client 发起请求,GATT Server 提供服务结构 |
主要操作 |
|
服务定义方式 | 使用 UUID + Handle + 属性组合 |
Profile例子 | Battery Service, Heart Rate Service, Device Information Service |
扩展机制 | 可自定义 Service 与 Characteristic,支持多服务组合 |
通用属性配置文件(GATT)建立在属性协议的基础上,GATT 通过使用 ATT 协议层定义了如何发现与使用服务、特征和描述符的标准方法。
- 客户端与服务器架构:GATT 定义了两个角色:服务器和客户端。
- 服务器:客户端提供数据服务,就是数据中心。
- 客户端:从服务器读写应用数据,就是访问数据者。
特别注意:下面三个概念是完全独立的,他们针对是不同的层。如主机既可以是 GATT客户端,也可以是 GATT 服务器。而从机也一样,既可以是 GATT 客户端,也可以是GATT 服务器。
- 服务器:为客户端提供数据服务,就是数据中心。
- 客户端:从服务器读写应用数据,就是访问数据者。
- 主机、从机:针对链接层。
- 外围设备、中央设备:GAP 定义的角色。
2.8️ GAP 层(Generic Access Profile)
内容 | 描述 |
---|---|
功能 | 管理 BLE 设备的“连接行为”和“广播行为” |
角色定义 |
|
设备发现机制 | 通过广播包(Advertising Packet)与扫描响应(Scan Response)实现 |
连接过程 | GAP 决定如何连接、连接参数配置(如连接间隔、超时等) |
广播内容 | 包含设备名、UUID、服务数据、厂商数据等 |
重要API(开发者常用) | advertise() , scan() , connect() , disconnect() |
GAP 层负责处理设备的接入方式和过程,包括设备发现,链路建立,链路终止以及实现绑定。
2.9️ 应用层(Application)
内容 | 描述 |
---|---|
功能 | 调用 GAP/GATT 接口,实现具体业务逻辑 |
接口封装 | 通过 SDK(如 Nordic SDK、Android BLE API、Zephyr)提供简化的应用接口 |
开发方式 |
|
示例应用 |
|
- 应用层定义了三种种类型:特征(characteristic)、服务(service)和配置文件(profile)