BLE链路层空口包--LE Uncoded PHY

在BLE协议栈中,链路层(Link Layer)定义了唯一一种空中包(Air Interface Packet)格式。然而,根据物理层的不同,这个统一格式在具体实现上又分为LE Uncoded PHYLE Coded PHY两种变体。本文将深入剖析LE未编码物理层(LE Uncoded PHY)的空口包结构------这也是BLE最基础、最常用的包格式。

1. 什么是LE Uncoded PHY?

Uncoded 的字面意思是"未编码的"。在LE Uncoded PHY中,每个数据bit直接映射为一个无线电符号(symbol),中间不经过任何额外的纠错编码处理。

LE Uncoded PHY包含两种物理层配置:

PHY类型 符号速率 数据速率 前导码长度
LE 1M PHY 1 Msym/s 1 Mb/s 1字节(8位)
LE 2M PHY 2 Msym/s 2 Mb/s 2字节(16位)

💡 对比理解 :与Uncoded相对的是LE Coded PHY (编码物理层),后者通过前向纠错(FEC)编码来提升传输距离,但会降低有效数据速率。Uncoded PHY追求的是速度与效率 ,而Coded PHY追求的是距离与可靠性

2. LE Uncoded PHY空口包整体结构

LE Uncoded PHY的空口包由四个必选字段 和一个可选字段组成:

所有字段按顺序传输:前导码 → 接入地址 → PDU → CRC → CTE(如果存在)。整个数据包以相同的符号速率传输:LE 1M为1 Msym/s,LE 2M为2 Msym/s。

不包括CTE的数据包,传输时间介于44微秒到2128微秒之间。

3. 字段解析

3.1 前导码

前导码是每个数据包最先发送的字段,是接收端进行同步的关键。

三个核心功能

  • 频率同步:帮助接收端调整频率以匹配发送端

  • 符号定时估计:确定每个符号的起始和结束时间

  • 自动增益控制(AGC)训练:调整信号增益以优化接收质量

长度差异

  • LE 1M PHY :前导码为1字节(8位)

  • LE 2M PHY :前导码为2字节(16位)

取值规则

前导码是一个交替的0和1序列,其第一个bit必须与**接入地址的LSB(最低有效位)**相同:

  • 如果接入地址LSB = 1,前导码为 10101010(0xAA)

  • 如果接入地址LSB = 0,前导码为 01010101(0x55)

📌 设计巧思:前导码与接入地址LSB相同,是为了让接收端能够快速识别包的起始边界,避免在"0101"这样的交替序列中迷失方向。

3.2 接入地址(Access Address)

接入地址是一个4字节(32位) 的值,用于标识数据包所属的连接或广播信道

接入地址是区分广播包数据包的关键:

包类型 Access Address 用途
广播包 固定值 0x8E89BED6 在广播信道(37/38/39)传输,所有观察者都可接收
数据包 32位随机值 在数据信道传输,每次连接由Initiator重新生成

广播包使用固定接入地址,因此任何扫描设备都能识别并接收。而数据包的接入地址由连接发起方在连接请求时随机生成,确保了每个连接的唯一性隐私性

3.3 PDU(协议数据单元)

PDU是数据包的核心,包含实际要传输的数据或控制信息。PDU的长度范围是2到258字节

PDU的前两个字节固定为:

  • LL Header(1字节)

  • Payload Length(1字节)

举例:广播信道PDU

广播PDU头部(2字节)的格式如下:

  • PDU Type(4位):指定PDU的类型(ADV_IND、SCAN_REQ、CONNECT_REQ等)

  • TxAdd/RxAdd(各1位):设备地址类型(0=Public,1=Random)

  • Length(8位):载荷长度,最大255字节。

3.4 CRC(循环冗余校验)

CRC是3字节(24位) 的值,用于检测数据包在传输过程中是否发生错误

CRC的计算覆盖整个PDU(但不包括前导码和接入地址),接收端通过重新计算CRC并与收到的CRC比对,来判断数据是否完整。

3.5 CTE(恒定音调扩展)

CTE是一个可选字段,位于CRC之后。

它的主要用途是支持蓝牙5.1引入的定位功能(AoA/AoD,即到达角/离开角测量)。CTE包含一段恒定频率的信号,接收端可以通过分析这段信号的相位差来计算信号的方向或角度。

CTE的持续时间介于16到160微秒之间。

4. LE 1M vs LE 2M:关键差异速览

特性 LE 1M PHY LE 2M PHY
符号速率 1 Msym/s 2 Msym/s
数据速率 1 Mb/s 2 Mb/s
前导码长度 1字节 2字节
包传输时间 较长 约为1M的一半
功耗 基准 略高
兼容性 所有BLE设备必选 可选,需双方支持

5. 总结

LE Uncoded PHY的空口包结构体现了BLE设计的核心哲学------简洁、高效、实用

  • 统一的包格式:所有包共享相同的外层结构(前导码→接入地址→PDU→CRC→CTE),降低了接收端的设计复杂度

  • 接入地址一箭双雕:固定值(0x8E89BED6)区分广播,随机值标识连接,简单明了

  • 前导码与接入地址的巧妙联动:前导码的第一个bit与接入地址LSB相同,帮助接收端快速同步

  • 1M和2M灵活选择:在速率和功耗之间提供权衡

  • CTE可选扩展:为方向查找等高级应用预留了空间,但不增加基础实现的负担

掌握了LE Uncoded PHY的空口包结构,就拿到了理解BLE链路层协议的钥匙------无论是广播、连接、数据传输,还是重传机制,都建立在这个基础格式之上。

相关推荐
wuyk55514 分钟前
【Socket 进阶之路】第 7 章 IO 多路复用 select & poll 完整实战|多 fd 监听、超时等待、优缺点横向对比
服务器·开发语言·网络·数据库·物联网
YCOSA202530 分钟前
迎双节 雨晨 Windows 11 IoT 企业版 LTSC 26H1 轻装 28000.2956
windows·物联网
Ricon组态薄荷糖1 小时前
Ricon组态系统:工业组件开发指南与实践
前端·后端·物联网
捷瑞电子工坊2 小时前
嵌入式蓝桥杯从零点亮第一个LED
stm32·蓝桥杯·cubemx·嵌入式·led·ll·锁存
会周易的程序员13 小时前
5 节点边缘冗余方案(上):基于 aiRaft 的物联网高可用控制面设计
c++·分布式·物联网·raft·iot·共识
AISenz13 小时前
AIMesh 2.5 vs SmartMesh IP:6TiSCH 工业无线协议对比与选型指南
物联网·工业物联网·物联网协议
嵌入式阿蔡15 小时前
智能家居互联2026:Matter、Thread与嵌入式开发的新范式
嵌入式
当下新鲜事15 小时前
空调机房冷冻泵与冷却泵技术分析:赛莱默B&G背包式智能变频管道泵的工程应用
运维·物联网·业界资讯
花 满 楼16 小时前
HSM自学之路——阶段 1 密码学算法分类与原理
嵌入式·hsm
优信电子16 小时前
STM32 驱动 DHT30 测量环境温湿度(兼容SHT30):从时序解析到完整代码实战
stm32·嵌入式·传感器·sht30·温湿度·环境测量·dht30