Skip to main content

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.

Silicon Labs Connect 基于 IEEE 802.15.4-2011 标准构建,了解该标准的基础知识对于深入理解 Connect Stack 至关重要。IEEE 802.15.4 定义了多种物理层和媒体访问控制层,专为低数据速率、低功耗、低复杂度、短距离的个域网通信而设计,同时也是 Zigbee、Thread 等 Mesh 网络协议的基础。本文档简要介绍 Connect 中使用的 IEEE 802.15.4 功能,使开发者无需阅读完整规范即可理解 MAC 层工作原理。

基本术语

物理层(PHY)

通信栈的最底层,定义通过介质传输数据所需的调制、比特率、前导码(Preamble)和同步字(Sync Word)等参数。

数据链路层(DLL)

构建在 PHY 之上,负责两设备间的可靠数据传输(寻址、确认、完整性检查)。IEEE 802.15.4 中 MAC 层即等同于 DLL。

个域网(PAN)

一组可互相通信的逻辑设备集合。基于 IEEE 802.15.4 构建的协议通常在 PAN 内部通信,由 16-bit PAN ID 标识。

CSMA/CA

“先听后说”协议:发送前先侦听信道,若信道空闲则发送,否则等待后重试。重试超限后将报错给应用程序。

地址类型

全局唯一的 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 层的完整帧,包含以下部分:
  • Frame Control Field (FCF):帧控制字段,定义帧类型、安全、寻址模式等(详见下节)
  • Sequence Number:序列号,递增,用于将 ACK 帧与普通帧配对
  • Addressing Fields:寻址字段,包含源/目标地址及 PAN ID
  • Aux. Security Header:辅助安全报头(启用安全时存在)
上层协议的有效数据内容。有效负载大小因安全选项和寻址类型而异。
包含 Frame Check Sequence(FCS),即对 MHR 和有效负载计算的 2 字节 CRC 校验。

Frame Control Field(帧控制字段)

FCF 中的关键字段说明:
字段取值与含义
Frame Type0 = Beacon;1 = Data;2 = ACK;3 = MAC Command
Security Enabled1 时启用 Auxiliary Security Header
Frame Pending用于数据轮询,指示发送方还有待发数据
Acknowledgement Request (AR)请求接收方发送 ACK
PAN ID CompressionIntra-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 字段)
  • 同时使用以上三种安全服务
因此,Auxiliary Security Header 固定为 5 字节,结构如下:
字段说明
Security Control最低三位选择安全模式(Connect 中固定为模式 5)
Frame Counter每设备唯一的递增计数器,用于重放保护,即使设备重启也必须有效
安全模式下,MAC 有效负载末尾(FCS 之前)将附加 4 字节 MIC。安全报头和尾部共占用 9 字节 MAC 有效负载空间,请在规划消息大小时予以考虑。

一般 MAC 过程

ACK 过程

1

发送方设置 AR 位

发送方在数据或命令帧中将 Acknowledgement Request (AR) bit 置 1
2

接收方回复 ACK

接收到帧的设备以 ACK 帧响应。ACK 帧包含与被响应帧相同的 Sequence Number,仅含 FCF、Sequence Number 和 FCS,无有效负载,PSDU 长度为 5 字节

数据轮询过程

数据轮询通常由 End Device(不常开启无线电)用于向 Coordinator 请求待发数据:
1

发送数据请求命令

End Device 向 Coordinator 发送 Data Request 命令帧。
2

Coordinator 回复 ACK

Coordinator 以 ACK 响应,若有待发数据则在 FCF 中设置 Frame Pending bit
3

End Device 等待数据

End Device 打开无线电等待 Coordinator 发送下一帧(或超时)。

关联(Association)过程

设备加入网络需经历关联过程。以下为终端设备(E)加入 PAN Coordinator(C)的完整流程:
1

步骤 1:E 发送 Beacon 请求

End Device 向广播地址发送 Beacon Request 命令。
2

步骤 2:C 发送 Beacon

Coordinator 回复 Beacon 帧,包含 Superframe Specification(告知 E 该节点是 PAN Coordinator 且允许入网)。
3

步骤 3:E 发送关联请求

End Device 使用长地址向 Coordinator 短地址发送 Association Request 命令,携带 Capability Information(如是否需要短地址分配、空闲时无线电是否开启等)。
4

步骤 4:C 发送 ACK

Coordinator 确认收到关联请求。
5

步骤 5:E 发送 Data Request

End Device 发送 Data Request 命令以轮询关联响应。
6

步骤 6:C 发送 ACK(Frame Pending 置位)

Coordinator 回复 ACK,并在 FCF 中设置 Frame Pending bit,告知 E 有数据待发。
7

步骤 7:C 发送关联响应

Coordinator 向 E 发送 Association Response 命令,包含状态(成功/失败原因)和分配的短地址。若未分配短地址则置为特殊值 0xFFFE
8

步骤 8:E 发送 ACK

End Device 确认收到关联响应,完成入网。关联后 E 可使用其短地址在 PAN 内通信。
关联完成后,End Device 可以使用分配的短地址在 PAN 内进行通信。若未请求短地址,也可使用长地址在 PAN 内通信。

Build docs developers (and LLMs) love