Silicon Labs Connect 基于 IEEE 802.15.4-2011 标准构建,了解该标准的基础知识对于深入理解 Connect Stack 至关重要。IEEE 802.15.4 定义了多种物理层和媒体访问控制层,专为低数据速率、低功耗、低复杂度、短距离的个域网通信而设计,同时也是 Zigbee、Thread 等 Mesh 网络协议的基础。本文档简要介绍 Connect 中使用的 IEEE 802.15.4 功能,使开发者无需阅读完整规范即可理解 MAC 层工作原理。Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dsyx/docs.silabs.com_zh/llms.txt
Use this file to discover all available pages before exploring further.
基本术语
物理层(PHY)
通信栈的最底层,定义通过介质传输数据所需的调制、比特率、前导码(Preamble)和同步字(Sync Word)等参数。
数据链路层(DLL)
构建在 PHY 之上,负责两设备间的可靠数据传输(寻址、确认、完整性检查)。IEEE 802.15.4 中 MAC 层即等同于 DLL。
个域网(PAN)
一组可互相通信的逻辑设备集合。基于 IEEE 802.15.4 构建的协议通常在 PAN 内部通信,由 16-bit PAN ID 标识。
CSMA/CA
“先听后说”协议:发送前先侦听信道,若信道空闲则发送,否则等待后重试。重试超限后将报错给应用程序。
地址类型
- 长地址(EUI64)
- 短地址
全局唯一的 64-bit 地址。每个 Silicon Labs Wireless Gecko 在出厂时均分配了一个 EUI64 地址。在大多数 IEEE 802 协议中均有标准化(如 IPv6 使用与 MAC 地址相同的 EUI64)。
消息类型
| 类型 | 说明 |
|---|---|
| Intra-PAN Message | 源设备与目标设备位于同一 PAN 内的消息 |
| Inter-PAN Message | 源设备与目标设备位于不同 PAN 的消息 |
| 广播消息 | 发送至广播地址 0xFFFF,所有设备均应接收 |
消息完整性检查(MIC,Message Integrity Check)用于数据认证:只有真正的发送者才能计算帧的 MIC,从而保证消息来源的可信度。
帧格式
IEEE 802.15.4 将帧中的每个字段指定为最低有效位(LSB)优先。Physical Protocol Data Unit (PPDU)
PPDU 是物理层传输的完整数据单元,包含以下字段:| 字段 | 说明 |
|---|---|
| SHR(同步报头) | 包含 Preamble(前导码,用于位同步)和 SFD(帧定界符,用于字节同步) |
| PHR(物理报头) | 包含 Frame Length(7-bit),限制 PSDU 最大为 127 字节 |
| PSDU(物理服务数据单元) | PPDU 的有效负载,即 MAC 层的完整帧 |
IEEE 802.15.4-2015 定义了含 11-bit 长度字段的不同 16-bit PHR。Silicon Labs Connect 目前不支持该格式。
MAC Protocol Data Unit (MPDU)
MPDU 是 MAC 层的完整帧,包含以下部分:MHR(MAC 报头)
MHR(MAC 报头)
- Frame Control Field (FCF):帧控制字段,定义帧类型、安全、寻址模式等(详见下节)
- Sequence Number:序列号,递增,用于将 ACK 帧与普通帧配对
- Addressing Fields:寻址字段,包含源/目标地址及 PAN ID
- Aux. Security Header:辅助安全报头(启用安全时存在)
MAC Payload(MAC 有效负载)
MAC Payload(MAC 有效负载)
上层协议的有效数据内容。有效负载大小因安全选项和寻址类型而异。
MFR(MAC 尾部)
MFR(MAC 尾部)
包含 Frame Check Sequence(FCS),即对 MHR 和有效负载计算的 2 字节 CRC 校验。
Frame Control Field(帧控制字段)
FCF 中的关键字段说明:| 字段 | 取值与含义 |
|---|---|
| Frame Type | 0 = Beacon;1 = Data;2 = ACK;3 = MAC Command |
| Security Enabled | 置 1 时启用 Auxiliary Security Header |
| Frame Pending | 用于数据轮询,指示发送方还有待发数据 |
| Acknowledgement Request (AR) | 请求接收方发送 ACK |
| PAN ID Compression | Intra-PAN 消息且两端 PAN ID 相同时置 1,省略源 PAN ID |
0:无地址(ACK 帧中两端均无地址)2:短地址(地址字段含短地址 + PAN ID,共 32 bit)3:长地址(地址字段含长地址 + PAN ID,共 80 bit)
MAC 安全
IEEE 802.15.4 支持三种安全服务:数据机密性、数据真实性(MIC)、重放攻击保护(帧计数器)。 在 Silicon Labs Connect 中,启用安全性后:- 始终使用由应用程序设置的 128-bit 密钥(无 IEEE 802.15.4 key identifier 字段)
- 同时使用以上三种安全服务
| 字段 | 说明 |
|---|---|
| Security Control | 最低三位选择安全模式(Connect 中固定为模式 5) |
| Frame Counter | 每设备唯一的递增计数器,用于重放保护,即使设备重启也必须有效 |
一般 MAC 过程
ACK 过程
数据轮询过程
数据轮询通常由 End Device(不常开启无线电)用于向 Coordinator 请求待发数据:关联(Association)过程
设备加入网络需经历关联过程。以下为终端设备(E)加入 PAN Coordinator(C)的完整流程:步骤 2:C 发送 Beacon
Coordinator 回复 Beacon 帧,包含 Superframe Specification(告知 E 该节点是 PAN Coordinator 且允许入网)。
步骤 3:E 发送关联请求
End Device 使用长地址向 Coordinator 短地址发送 Association Request 命令,携带 Capability Information(如是否需要短地址分配、空闲时无线电是否开启等)。