BR/EDR PHY帧结构及其具体内容
BR/EDR(经典蓝牙)的 PHY 帧结构遵循严格的分层设计,用于在 2.4GHz 频段实现可靠数据传输,其结构可分为访问码(Access Code)、包头(包头)、有效载荷(Payload)和 CRC四个核心部分,具体内容和作用如下:
一、完整帧结构概览
BR/EDR PHY 帧的总长度可变(取决于有效载荷大小),各字段按顺序排列为:
访问码(72/68 位)→ 包头(54 位)→ 有效载荷(0~2712 位)→ CRC(16 位)
二、各字段详细解析
1. 访问码(Access Code)
- 长度:
- 普通数据帧 / 控制帧:68 位
- 特殊帧(如 ID 包、FHS 包):72 位(多 4 位同步前缀)
- 组成与作用:
- 同步前缀(Sync Word):用于接收端的频率同步和帧同步,确保设备识别帧的起始位置。
- 设备地址相关字段:由从设备的 BD_ADDR(MAC 地址)生成,用于区分不同微微网(Piconet),避免同频段干扰。
- 类型:
- 广播访问码:用于设备发现阶段(如 Inquiry 过程)。
- 连接访问码:每个连接唯一,由主设备基于从设备地址生成,仅主从设备知晓。
2. 包头(Header)
- 长度:54 位(固定),包含 6 个 9 位字段(每个字段含 1 位校验位)。
- 具体内容:
字段 位数 含义 L_CH 9 逻辑信道号(0~79),标识数据所属的逻辑信道(如控制信道、用户数据信道)。 TYPE 9 帧类型,区分数据帧(如 DH1、DM3)、控制帧(如 POLL、NULL)、同步帧(如 FHS)等。 FLOW 9 流控制标志,指示接收端缓冲区状态(0:可接收,1:忙)。 ARQN 9 自动重传请求标志,用于确认数据接收状态(0:未确认,1:已确认)。 SEQN 9 序列号(0/1 交替),用于检测重复帧或丢帧。 HEC 9 包头校验(Header Error Check),用于检测包头传输错误。 - 核心作用:提供帧的控制信息,实现链路管理、流控制和重传机制。
3. 有效载荷(Payload)
- 长度:0~2712 位(0~339 字节),随帧类型变化:
- 控制帧(如 NULL、POLL): payload 长度为 0(无数据)。
- 数据帧(如 DH5、3DH3): payload 长度最大 339 字节。
- 同步帧(如 FHS):固定长度(如 FHS 包含 144 位设备信息)。
- 内容:
- 数据帧:用户数据(如音频、文件数据)或高层协议消息(如 LMP、RFCOMM)。
- FHS 帧:包含设备 BD_ADDR、时钟偏移、支持的功能等关键同步信息。
- 控制帧:无实际数据,仅通过包头传递控制信号。
- 编码:
- 基于帧类型采用不同编码(如 DH 系列无 FEC,DM 系列含 2/3 FEC 纠错码)。
4. CRC(循环冗余校验)
- 长度:16 位。
- 生成多项式:
x¹⁶ + x¹² + x⁵ + 1
(蓝牙规范定义)。 - 作用:对 “包头 + 有效载荷” 进行校验,接收端通过比对 CRC 值检测帧是否损坏,若错误则丢弃或请求重传。
三、典型帧类型示例
DH1 帧(1 时隙数据帧):
访问码(68 位) + 包头(54 位) + 有效载荷(240 位,30 字节) + CRC(16 位)。FHS 帧(频率跳变同步帧):
访问码(72 位) + 包头(54 位) + 有效载荷(144 位,含设备地址和时钟) + CRC(16 位)。NULL 帧(无数据控制帧):
访问码(68 位) + 包头(54 位) + 有效载荷(0 位) + CRC(16 位)。
总结
BR/EDR 的 PHY 帧结构通过访问码实现同步与设备识别、包头提供控制与链路管理、有效载荷传输实际数据、CRC 保障完整性,兼顾了传输效率与可靠性。这种设计适配了经典蓝牙的高带宽需求(如音频传输),同时通过跳频和纠错机制应对 2.4GHz 频段的干扰。具体细节可参考蓝牙核心规范(Core Specification)中 “Baseband” 章节的帧结构定义。