概述
蓝牙的BR(Basic Rate)和EDR(Enhanced Data Rate)是经典蓝牙(Bluetooth Classic)技术的两种核心传输模式,主要区别如下:
1. **BR(基础速率)**
- 定义:经典蓝牙最初的标准模式,采用高斯频移键控(GFSK)调制技术。
- 速率:理论峰值1 Mbps(实际有效速率约721 kbps)。
- 特点:
- 稳定性高,抗干扰能力强。
- 适用于语音传输(如早期蓝牙耳机)和低速数据传输(如键盘、鼠标)。
- 功耗较高,不适合依赖纽扣电池的设备。
2. **EDR(增强数据速率)**
- 定义:蓝牙2.0引入的升级模式,通过改进调制方式(如π/4-DQPSK、8DPSK)提升速率。
- 速率:理论峰值2-3 Mbps(实际有效速率约2.1 Mbps)。
- 特点:
- 支持更高带宽应用(如音频流、文件传输)。
- 向后兼容BR,设备需同时支持BR/EDR。
- 功耗略高于BR,但优化了数据传输效率。
3. 技术对比
- 调制方式:BR使用GFSK;EDR使用DQPSK或8DPSK。
- 应用场景:
- BR:基础外设、单声道音频。
- EDR:高品质立体声音频、快速文件传输。
- 兼容性:EDR设备必须支持BR,但纯BR设备无法使用EDR。
4. 与BLE的区别
- 经典蓝牙(BR/EDR):持续连接,适合高带宽场景(如音频)。
- 低功耗蓝牙(BLE):间歇性连接,专为低功耗设计(如传感器、信标)。
协议分层
物理层 → 链路层 → 主机控制接口层(Host Controller Interface, HCI)→ L2CAP → 上层协议(如RFCOMM、SDP、ATT等)→ 应用层(如SPP、HFP)
1. BR/EDR(经典蓝牙)协议栈
BR/EDR是传统蓝牙的核心,主要支持高速数据传输(如文件传输)和实时音频(如通话、音乐),协议栈分为四层,从底层到高层依次为:
**1.1. 物理层(Physical Layer, PHY)**
功能:负责无线信号的调制/解调、频率跳变(FHSS)和功率控制,工作在2.4GHz ISM频段。
关键特性:支持1Mbps(BR)或2/3Mbps(EDR)速率,通过79个1MHz频点跳变抗干扰。
**1.2. 链路层(Link Layer, LL)**
功能:管理设备间的连接建立、维护与断开,处理数据包的封装/解封装、错误校验(CRC)和流控。
关键协议:
LMP(链路管理协议):负责配对、认证、加密和功率控制。
基带(Baseband):定义数据包格式(如SCO/eSCO语音包、ACL数据包)和时隙调度。
**1.3. 主机控制接口(Host Controller Interface, HCI)**
功能:作为底层(控制器)与上层(主机)的桥梁,提供统一接口(如UART、USB)供主机发送命令(如"建立连接")和接收事件(如"连接成功")。
**1.4. 上层协议(Host Layer)**
L2CAP(逻辑链路控制与适配协议):负责数据分段/重组、协议复用(支持多上层协议共享链路),提供面向连接(ACL)和无连接(无编号)的数据传输。
SDP(服务发现协议):用于设备间发现对方支持的服务(如"是否支持HFP""是否支持A2DP")。
RFCOMM(串口仿真协议):模拟RS-232串口,支持SPP(串口配置文件)等传统串口应用。
1.5 应用层协议( Profile**)(此为个人理解)**
如HFP(免提)、A2DP(高级音频分发)、AVRCP(音频/视频远程控制)等,定义具体应用场景的规则。
2. BLE(低功耗蓝牙)协议栈
BLE专为超低功耗设计,协议栈更精简,同样分为四层,但各层功能与传统蓝牙有显著差异:
**2.1. 物理层(Physical Layer, PHY)**
功能:采用GFSK调制,支持1Mbps(BLE 4.0)或2Mbps(BLE 5.0+)速率,使用40个2MHz频点(37个数据信道+3个广播信道),跳变间隔更长(降低功耗)。
**2.2. 链路层(Link Layer, LL)**
功能:管理广播(Advertising)、扫描(Scanning)、连接(Connection)和睡眠(Sleep)状态,优化功耗(如"连接事件"仅周期性唤醒)。
关键特性:支持"广播者-观察者""外围设备-中心设备"等角色,无传统蓝牙的SCO链路。
**2.3. 主机控制接口(HCI)**
功能:与BR/EDR类似,但命令集更精简(适配BLE的低功耗特性),支持UART、SPI等低功耗接口。
**2.4. 上层协议(Host Layer)**
L2CAP:简化版(仅支持数据分段/重组和协议复用),无传统蓝牙的复杂流控。
ATT(属性协议):定义"属性"(如设备名称、传感器数据)的格式和读写规则,是BLE数据交互的核心。
2.5 应用层协议( Profile**)(此为个人理解)**
GATT(通用属性配置文件):基于ATT,定义服务的组织方式(如"心率服务"包含"心率测量"特征),是BLE应用的基础。
GAP(通用访问配置文件):管理设备角色(如中心/外围)、广播数据和连接参数(如连接间隔),负责设备发现和配对。
3. BR/EDR控制器层 (Controller Layer) - 硬件与链路核心
这一层直接管理无线电硬件,负责最底层的连接。
| 协议名称 | 全称 | 作用与特点 |
|---|---|---|
| Radio | 射频层 | 最底层,负责 2.4GHz 电磁波的收发。 |
| Baseband | 基带层 | 负责链路控制、编解码、物理信道管理。 |
| Link Manager | 链路管理 | 负责建立连接、鉴权、链路协商。 |
| LMP | 链路管理协议 | (补全点) 与 Link Manager 对应,负责具体的控制信令交互。 |
| SCO | 同步面向连接 | (补全点) 用于 HFP 语音传输,保证固定带宽和低延迟,无重传。 |
| eSCO | 增强型同步连接 | (补全点) SCO 的升级版,支持重传,提升语音质量。 |
| ACL | 异步面向连接 | 用于数据传输(如文件、控制指令),支持重传和流控。 |
| AMP | 交替 MAC/PHY | (补全点) 允许蓝牙使用 802.11 (Wi-Fi) 作为高速传输通道(如视频传输)。 |
| HCI | 主机控制器接口 | 连接主机与控制器的桥梁(命令/事件/数据包)。 |
4. BR/EDR主机层 (Host Layer) - 逻辑与适配
这一层运行在操作系统或蓝牙芯片固件中,处理复杂的逻辑。
| 协议名称 | 全称 | 作用与特点 |
|---|---|---|
| L2CAP | 逻辑链路控制与适配 | 数据分段/重组、协议/信道复用(BLE 和 BR/EDR 共用)。 |
| SDP | 服务发现协议 | 用于查询远程设备支持哪些服务(Profiles)。 |
| ATT | 属性协议 | BLE 核心,定义如何读写"属性"(数据)。 |
| GATT | 通用属性规范 | 基于 ATT,定义 BLE 数据的组织结构(Service/Characteristic)。 |
| SMP | 安全管理协议 | 负责配对、密钥分发、加密(BLE 核心)。 |
| RFCOMM | 串口仿真协议 | 模拟 RS-232 串口,用于 SPP、HFP 控制等。 |
| BNEP | 蓝牙网络封装协议 | 用于 PAN profile,封装以太网包。 |
| AVDTP | 音视频分发传输 | 用于 A2DP,控制音乐流的建立与传输。 |
| AVCTP | 音视频控制传输 | 用于 AVRCP,控制音乐播放(播放/暂停)。 |
| OBEX | 对象交换协议 | 用于 OPP/FTP/PBAP,传输文件、名片、电话本。 |
| TCS-BIN | 电话控制协议 | 用于无绳电话(CTP),处理呼叫控制信令。 |
5. BR/EDR Profiles (配置文件) - 应用场景(开发者重点关注)
Profile 是蓝牙技术联盟(SIG)制定的"应用层规范",用于定义特定场景下的设备功能、交互流程和数据格式,确保不同厂商的设备能"互通互联"。
| 类别 | Profile 名称 | 作用 |
|---|---|---|
| 音频 | A2DP | 立体声音乐(单向)。 |
| HFP | 免提通话(双向语音+控制)。 | |
| HSP | 基础耳机(简单通话)。 | |
| VDP | 视频分发(如视频投影)。 | |
| 数据 | SPP | 串口透传。 |
| GATT | BLE 数据交换基础(服务定义)。 | |
| BAS | 电池服务(电量读取)。 | |
| DIS | 设备信息服务(型号/固件)。 | |
| 人机 | HID | 人机接口(鼠标/键盘)。 |
| 文件 | OPP | 对象推送(名片/文件)。 |
| FTP | 文件浏览与传输。 | |
| PBAP | 电话本访问。 | |
| 网络 | PAN | 个人局域网(组网)。 |
| DUN | 拨号上网。 | |
| 同步 | SYNCH | PDA/PC 数据同步。 |
| 图像 | BIP | 基本图像传输(打印)。 |
| 通用 | GAP | 通用访问规范(连接/广播基础)。 |
6. BR/EDR与BLE的分层对比
| 层次 | BR/EDR | BLE |
|---|---|---|
| 物理层 | 79个1MHz频点,1-3Mbps | 40个2MHz频点,1-2Mbps |
| 链路层 | 支持SCO/eSCO(语音)、ACL(数据) | 仅支持ACL(异步数据),无SCO |
| HCI | 复杂命令集(支持语音、高速数据) | 精简命令集(低功耗优先) |
| 上层协议 | L2CAP、SDP、RFCOMM等 | L2CAP(简化)、ATT、GATT等 |
说明:
Protocol(协议):主机层(Host Layer)的协议(Protocol)是语言或规则。它定义了数据如何打包、寻址、传输。L2CAP/SDP/RFCOMM 属于这一类。
Profile(配置文件):是使用场景或剧本。它定义了为了实现特定功能(如听歌、打电话,广播),必须使用哪些协议以及如何组合它们。GAP/A2DP/HFP/SPP 属于这一类。
BR/EDR的Profiles是完整成熟的。
BLE的Profiles:GAP 和 GATT 是BLE的基础设施,而非可选功能。GAP 解决"如何找到并建立连接"的问题。GATT 解决"连接后如何交换数据"的问题,定义了数据如何被组织(服务 Service、特征 Characteristic、描述符 Descriptor)。定义了数据如何被操作(发现服务、读、写、通知、指示)。GATT 配置文件规定了"大家都要按这个格式来写自己的服务"。它们共同构成了BLE通信的最小可用集,任何BLE设备都必须支持这两者。
蓝牙问题分析一般抓取HCI空口数据。