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 Stack v3.x 作为 Silicon Labs Proprietary Flex SDK v3.0 及更高版本的一部分交付,提供功能全面、易于定制的无线网络解决方案,专为低功耗、简单网络拓扑的设备优化。Connect 基于 IEEE 802.15.4 MAC/PHY 实现,并在其之上构建了 Proprietary 网络层,开发者无需关注底层无线电细节,专注于应用开发即可。

硬件外设依赖

Connect Stack 本身需要以下 MCU 外设才能正常工作:

必需外设

  • RF 收发器(及 HFXO)
  • Sleeptimer 组件(通常依赖 RTCC 和 LFXO)
  • 内部 Flash(用于 Token/NVM 存储)
  • 微秒定时器(默认使用 TIMER0,由组件依赖引入)

可选外设

  • PTI(Packet Trace Interface):用于 Network Analyzer 的 RF 数据包输出,默认启用
  • SPI Flash:用于外部存储(OTA 等场景)
  • 其他组件可能引入额外外设需求
除非特别说明,否则可通过 emlib 和 RAIL 访问 MCU 硬件。这也引入了对某些常用 emlib 文件(如 em_core.cem_cmu.c)的依赖。

Connect 操作模式

Connect 支持三种操作模式,一个网络中只能使用其中一种,应在设计早期做出选择。
支持扩展星型拓扑,网络层提供任意两设备间的路由。End Device 可配置为 Sleepy(空闲时关闭无线电接收)。是集中式网络,加入需要 PAN Coordinator 同意,短地址由 Coordinator 分配。不完全符合 IEEE 802.15.4。

物理层

Connect 使用 Simplicity Studio 的 Radio Configurator 工具配置 PHY。使用时有以下限制:
  • Connect 仅使用第一个配置的协议
  • 应使用 Connect Profile,该 Profile 会移除部分帧配置选项以保证与 802.15.4 的帧长度兼容
  • 高于 500 kbps 比特率时,无法保证 hardware-based 地址过滤器正常工作

FCC 法规、DSSS 与跳频

FCC 要求采取措施”展宽”应用占用的频段。Connect 支持两种方式:
由硬件支持,无需额外通信开销,MAC 层可完全兼容 IEEE 802.15.4。Silicon Labs 提供了针对 2.4 GHz 和 915 MHz 的三种预配置 DSSS 设置,推荐优先使用

MAC 层

Connect MAC 层基于 RAIL 的 IEEE 802.15.4 专用 API,为以下硬件功能提供接口:地址过滤(Address Filtering)、ACK、CSMA/CA、Data Request / Frame Pending bit 设置。

设备类型

设备类型取决于加入网络时使用的 API,各模式下可用的设备类型有所不同:
使用 emberFormNetwork()emberMacFormNetwork() 组建网络。短地址固定为 0x0000。在 Extended Star Mode 下,负责地址分配和维护路由表;在 MAC Mode 下报告自身为 PAN Coordinator。需要安装 Parent Support 组件。
在 Coordinator 和 End Device 之间提供路由支持。使用 emberJoinNetwork() 并将 nodeType 设为 EMBER_STAR_RANGE_EXTENDER 加入网络。需要安装 Parent Support 组件。
End Device 是可在网络中通信的简单设备。Sleepy End Device 空闲时关闭无线电,只能通过消息轮询来接收消息。Extended Star Mode 下使用 emberJoinNetwork()emberJoinNetworkExtended() 加入;Direct Mode 下使用 emberJoinCommissioned() 加入,nodeType 参数可选:
  • EMBER_STAR_END_DEVICE
  • EMBER_STAR_SLEEPY_END_DEVICE
  • EMBER_DIRECT_DEVICE
MAC Mode 设备可在 802.15.4 网络中扮演任何角色。Sleepy 变体空闲时关闭无线电。nodeType 参数可选:
  • EMBER_MAC_MODE_DEVICE
  • EMBER_MAC_MODE_SLEEPY_DEVICE

ACK 与 CSMA/CA 参数配置

  • 使用 emberSetMacParams()ackTimeout 参数(或编译时宏 EMBER_MAC_ACK_TIMEOUT_MS)配置等待 ACK 的超时,默认值为 25 ms
  • 使用 emberMacSetParams()maxRetries 参数配置未收到 ACK 时的重试次数,默认值为 3(即最多 4 次传输)。
  • 使用 emberSetMacParams() 配置 CSMA/CA 参数,默认值实质上是 IEEE 802.15.4 为 2.4 GHz OQPSK PHY 推荐的参数。
周转时间(从接收结束到开始传输 ACK)固定为 12 个 Symbol 时间

Extended Star Mode 关联过程

1

设备加入 Coordinator

关联过程与标准 IEEE 802.15.4 基本相同,但关联请求和数据请求命令之间增加了 500ms 延迟
2

设备加入 Range Extender

Range Extender 必须向 Coordinator 请求短地址(通过网络层命令帧),Coordinator 统一处理地址分配。
3

设备自选地址加入(扩展关联请求)

加入设备可使用扩展关联请求(命令 0x7D)自行选择短地址,但需自行保证地址唯一性。
4

选择性加入(Selective Joining)

通过 emberSetSelectiveJoinPayload() 配置加入有效负载,只有配置了相同有效负载的 Coordinator/Range Extender 才会接受该设备的关联请求。

网络层

Connect 网络层仅在 Extended Star Mode 和 Direct Mode 下可用,负责路由(Extended Star 专有)和端点处理。端点类似 TCP/IP 端口,实现协议间的信道共享:
端点用途
15Mailbox 组件
14OTA
其他应用程序框架分发至应用程序

路由表(Extended Star Mode)

路由协议为集中式,Coordinator 掌握所有设备的路由信息:
  • End Device:存储父级地址(Coordinator 或 Range Extender)
  • Range Extender:存储子表(所有已连接子设备地址),最大 32 个子项
  • Coordinator:存储子表(最大 64 个子项)+ 每个 Range Extender 的子项路由表
转发规则:
发送节点转发规则
End Device始终转发给父级(Coordinator 或 Range Extender)
Range Extender目标在子表中则直发,否则转发给 Coordinator
Coordinator目标在子表中则直发,否则查路由表转发至对应 Range Extender

离开网络

// 通知父级后离开(推荐,避免路由失败负担)
emberNetworkLeave();

// 直接离开(不通知父级)
emberResetNetworkState();

// Coordinator 主动移除子项
emberRemoveChild(childId);

跳频(Frequency Hopping)

跳频仅在 Extended Star 和 Direct Mode 下可用,以客户端-服务端模型实现,两端须处于同一 PAN 并使用相同的跳频参数。

主要配置参数

参数说明
Channel Sequence Generation Seed生成伪随机信道序列的种子数
Start / End Channel信道范围(均含在内)
Channel Duration每个信道的驻留时间(毫秒)
Channel Guard Duration进入/离开信道槽时的静默保护时间(毫秒)
Server Broadcast Info Period服务端广播同步信息的周期(毫秒)
Client Resync PeriodSleepy 客户端主动请求同步的间隔(秒)
Client Synchronization TimeoutNon-sleepy 客户端同步失败超时时间(秒)
Server Advertisement Sequence Count服务端启动时广告遍历次数

同步机制

当客户端希望加入正在跳频的服务端,或失去同步时触发。客户端以相反顺序快速遍历所有信道并发送跳频信息请求,直到收到服务端的跳频信息响应为止。若五次遍历后仍未收到响应,将通过 emberStackStatusHandler() 报告 EMBER_MAC_SYNC_TIMEOUT
用于保持 Non-sleepy 设备同步。服务端定期广播跳频信息消息,客户端收到后自动调整同步。若在 Client Synchronization Timeout 内未收到,将报告同步超时。
用于保持 Sleepy 设备同步。若 Sleepy 客户端在 Client Resync Period 内未收到跳频信息,则在下次发送前主动请求同步。若请求后仍未收到响应,则触发完全同步。

协议栈配置

Connect Stack 支持三种层次的配置方式:
通过 Simplicity Studio Project Configurator 的 SOFTWARE COMPONENTS 选项卡,可视化配置各组件参数(如 Parent Support 组件的子表大小、超时等)。配置会生成到 config/ 文件夹下对应的头文件(如 parent-support-config.h)。

Build docs developers (and LLMs) love