IEEE 802.15.4z标准详解:HRP与LRP模式、前导码结构、数据帧格式、安全特性
各位好,咱们今天聊聊 IEEE 802.15.4z 标准。这个标准是 UWB 技术的一个分水岭。2018 年之前,UWB 还停留在 4a 时代,测距精度、抗干扰能力都差点意思。4z 出来之后,才真正把 UWB 推向了消费电子和工业物联网。
我个人习惯把 4z 看作「UWB 的 2.0 版本」。它保留了 4a 的物理层基础,但新增了两个关键模式:HRP 和 LRP。说白了,一个管高性能,一个管低成本。咱们一个一个拆开看。
HRP 与 LRP 模式:两种路线,两种战场
HRP 全称是 High Rate Pulse,高脉冲重复频率模式。它面向的是高精度、高数据率的场景。比如手机上的精准定位、AR/VR 的空间交互。HRP 的脉冲重复频率可以做到 1 MHz 甚至更高,数据率能到 27.24 Mbps。
LRP 呢?Low Rate Pulse,低脉冲重复频率模式。它牺牲了数据率,换来了更低的功耗和更简单的实现。适合传感器网络、资产标签这类电池供电的设备。LRP 的脉冲重复频率通常只有 1 kHz 左右,数据率也低,但功耗能压到微瓦级。
我遇到过不少工程师,上来就问「哪个模式更好?」。其实没有好坏,只有合不合适。你想想看,手机定位需要高刷新率,HRP 是唯一选择。但一个温湿度标签,一年换一次电池,LRP 才是正解。
| 特性 | HRP 模式 | LRP 模式 |
|---|---|---|
| 脉冲重复频率 | 1 MHz ~ 250 MHz | 1 kHz ~ 1 MHz |
| 数据率 | 0.11 ~ 27.24 Mbps | 0.11 ~ 1 Mbps |
| 典型功耗 | 10 ~ 100 mW | 0.1 ~ 10 mW |
| 测距精度 | ±10 cm 以内 | ±30 cm 左右 |
| 典型应用 | 手机定位、AR/VR | 资产标签、传感器 |
前导码结构:同步与测距的基石
前导码是 UWB 帧的头部,负责同步、信道估计和测距。4z 标准定义了两种前导码:SYNC 和 SFD。SYNC 用于粗同步和自动增益控制(AGC),SFD 用于帧起始定界。
HRP 的前导码由多个符号组成,每个符号包含一个特定的脉冲序列。标准里规定了 8 种前导码长度,从 16 个符号到 4096 个符号不等。长度越长,同步性能越好,但开销也越大。
LRP 的前导码更简单。它使用一种叫做「基序列」的结构,长度固定为 31 个符号。嗯,这里要注意,LRP 的 SFD 是嵌入在 SYNC 里的,不像 HRP 那样分开。这种设计是为了降低接收机的复杂度。
我曾经在一个项目中,为了省功耗把前导码长度从 1024 砍到 64。结果在强多径环境下,接收机死活锁不住信号。后来老老实实改回 256,问题才解决。所以前导码长度不是越小越好,得看实际信道条件。
数据帧格式:从 PHR 到 PSDU
UWB 的数据帧分为三部分:SHR(同步头)、PHR(物理层头)和 PSDU(物理层服务数据单元)。SHR 就是咱们刚说的前导码。PHR 携带帧控制信息,PSDU 是真正的数据载荷。
PHR 只有 19 位,但信息量不小。它包含数据率、帧长度、测距标志、前导码长度等。我习惯把 PHR 看作「帧的身份证」,接收机必须先解析 PHR,才知道怎么处理后面的 PSDU。
PSDU 的长度可变,最大 127 字节。对于 HRP,PSDU 可以包含 MAC 帧、安全头、FCS(帧校验序列)。LRP 的 PSDU 更短,通常只有几十字节,因为它的应用场景不需要传大量数据。
// PHR 字段结构(HRP 模式)
// 位 0-2: 数据率索引
// 位 3-4: 前导码长度索引
// 位 5: 测距标志
// 位 6-16: 帧长度(单位:字节)
// 位 17-18: 保留位
uint16_t phr = 0;
phr |= (data_rate_idx & 0x07); // 数据率
phr |= (preamble_len_idx & 0x03) << 3; // 前导码长度
phr |= (ranging_flag & 0x01) << 5; // 测距标志
phr |= (frame_length & 0x7FF) << 6; // 帧长度
安全特性:STS 与 AES-128
4z 标准最大的安全改进,是引入了 STS(加扰时间戳序列)。STS 是一种基于 AES-128 的加密时间戳,用于防止测距欺骗攻击。说白了,就是防止有人伪造测距信号,让你误以为目标在某个位置。
STS 的工作原理是这样的:发送方和接收方共享一个密钥。发送方用密钥加密当前时间戳,生成一个伪随机序列,嵌入到前导码或数据帧中。接收方用同样的密钥解密,验证时间戳是否匹配。如果不匹配,说明信号被篡改过。
HRP 和 LRP 都支持 STS,但实现方式不同。HRP 的 STS 长度可配置,从 32 位到 128 位。LRP 的 STS 固定为 32 位,因为它的计算能力有限。
除了 STS,4z 还支持 AES-128 对 PSDU 进行加密。加密模式是 CCM(Counter with CBC-MAC),同时提供机密性和完整性保护。嗯,这里要注意,STS 和 AES-128 可以同时使用,也可以单独使用。具体看应用场景的安全需求。
知识体系总览
下面这张图,是我梳理的 4z 标准核心逻辑。从模式选择到帧结构,再到安全机制,一条线串起来。你保存下来,以后做方案设计时可以参考。