UG103.12: Silicon Labs Connect Fundamentals (Rev. 0.7)

本文档介绍了 Silicon Labs Connect 的特性和功能,包括其设备类型、操作模式、协议栈结构以及 RAIL 与 Connect 对 IEEE 802.15.4 的支持。

Connect User’s Guide 为正在使用 Silicon Labs Connect Stack 进行应用开发的开发者提供了深入的信息。其已发布了两个系列,一个用于 Connect SDK v2.x,另一个用于 Connect SDK v3.x。有关各自的 Connect User’s Guide 中各章的概述,请参考 UG235.01: Developing Code with Silicon Labs Connect v2.xUG435.01: Developing Code with Silicon Labs Connect v3.x

所有 EFR32FG 设备都支持 Proprietary。对于其他产品,请在 Ordering Information > Protocol Stack 下查看设备的数据手册,以了解是否支持 Proprietary。在 Proprietary SDK v2.7.n 中,EFR32xG22 不支持 Connect。

1. 引言

Silicon Labs 正在开发旨在满足客户需求的产品,因为我们正迈入家庭设备的互联世界(通常被称为 IoT)。总体而言,Silicon Labs 的 IoT 目标是:

  • 通过一流的 mesh 网络连接家庭中的所有设备,无论是使用 Ember ZigBee PRO 还是其他新兴标准。
  • 利用公司在低功耗、受限设备中的专业知识。
  • 增强已建立的低功耗混合信号芯片。
  • 提供与现有以太网和 Wi-Fi 设备的低成本桥接。
  • 支持云服务以及与智能手机和平板电脑的连接,以促进易用性和客户的普通用户体验。

实现这些目标将提高互联家庭中 IoT 设备的采用率和用户接受度。

IoT 中的一个常见的难题是管理要求低功耗的设备(如电池供电的设备)。为了应对这一难题,Silicon Labs 开发了 Silicon Labs Connect Stack。Connect 提供了功能齐全并且易于定制的无线网络解决方案,该解决方案针对要求低功耗并用于简单网络拓扑的设备进行了优化。Connect 是可配置的,可以符合全球范围内的区域通信标准。每种射频配置都旨在在每个区域标准下实现最佳性能。

Silicon Labs Connect Stack 支持无线电调制、频率和数据速率的多种组合。协议栈为 End Node、Coordinator 和 Range Extender 提供支持。它包含了所有无线 MAC(Medium Access Control)层功能,如扫描和加入、建立点对点或星型网络、以及管理设备类型(如 Sleepy End Device、Router 和 Coordinator)。借助已在协议栈中实现的这些功能,用户可以专注于应用开发,而不必担心底层的无线电和网络细节。

Connect Stack 应在具有简单网络拓扑的应用中使用(如一组将数据直接反馈到单个中央收集点(星型或扩展星型拓扑)的数据读取器),或同一范围内的一组节点在一个网络中使用单跳方式(Direct Device 或 MAC Device)交换数据。它没有提供像 EmberZNet PRO 或 Silicon Labs Thread Stack 提供的全 Mesh 网络解决方案。

Connect Stack 是通过 Simplicity Studio 安装的 Silicon Labs Flex SDK 的一部分。Connect 在 Flex SDK 附带的 RAIL(Radio Abstraction Interface Layer,无线电抽象接口层)上运行。RAIL 提供了直观和易于定制的无线电接口层,旨在支持专用的或基于标准的无线协议。有关更多信息,请参见 UG103.13: RAIL Fundamentals

Connect Stack 通过其“building block”plug-in 设计支持高效的应用开发。与 Simplicity Studio IDE 一起使用时,开发者可以轻松地选择应包含在应用中的功能。由此产生的应用是完全可移植的,因为它们可以针对不同的区域和 EFR32 设备进行重新编译。

2. Connect 操作模式

Connect 支持三种不同的操作模式。在任何单个网络中仅允许一种模式,并且没有简单的方法可以从一种模式升级到另一种。因此,您应该在设计过程的早期谨慎选择模式。

2.1 Extended Star Mode

在此模式下,Connect 如下图所示支持星型和扩展星型拓扑网络。

Figure 2.1. Star and Extended Star Topology

Extended Start Mode 支持以下的设备类型:

Star coordinator UG103.12: Silicon Labs Connect Fundamentals (Rev. 0.7) - 图2 The star coordinator forms and manages the star or extended star network. The star coordinator also communicates with other range extenders and end nodes. Each Connect star network has a single coordinator.
Star range extender UG103.12: Silicon Labs Connect Fundamentals (Rev. 0.7) - 图3 A device between the star coordinator and one or more star end nodes that can be used to extend the range of the star end nodes.
Star node UG103.12: Silicon Labs Connect Fundamentals (Rev. 0.7) - 图4 Joins to a star coordinator or a star range extender.

在此模式下,网络层支持任意两个设备之间的数据消息路由。扩展星型拓扑是一个集中式网络。因此,加入网络需要 PAN(Personal Area Network,个域网)coordinator 的接受。短地址分配和指派可以由 PAN coordinator 处理。此模式不完全遵循 IEEE 802.15.4。

2.2 Direct Mode

在此模式下,Connect 仅提供彼此之间范围内的设备之间的连接(见下图)。这不是一个集中式拓扑。

Figure 2.2. Direct Topology

Direct Mode 支持 Direct device 类型,该类型可在同一 PAN 范围内向(或从)其他 Direct device 发送(接收)消息,其没有星型拓扑限制。消息转发可以在上层实现。

Connect 网络层仍在此模式下启用,但它不提供路由,仅提供端点。路由协议可以在应用层中实现。任何设备都可以通过设置正确的 PAN 参数来加入这个 PAN。Connect stack 不会提供短地址分配,并且应用必须避免地址重复。此模式不完全符合 IEEE 802.15.4。

2.3 MAC Mode

MAC Mode 支持 MAC device 类型,该类型可以向(或从)范围内的其他 802.15.4 设备发送(接收)标准 802.15.4 消息。消息转发可以在上层实现。

MAC Mode 是 Connect MAC 层的完全符合 IEEE 802.15.4 的设置;网络层未启用。与 Direct Mode 相比,该 API 更复杂,并且需要一定的 IEEE 802.15.4 标准知识。要使其完全符合 IEEE 802.15.4,请确保设置符合 IEEE802.15.4 的无线电配置。

2.4 Connect 模式和网络拓扑的示例

Connect 网络的一个示例是整个家庭中安装的温湿度传感器 End Node 的网络。每个 End Node 定期获取读数,并将该数据直接传输到 Coordinator(sink),或者对于距离 Coordinator 较远的那些传感器,将其传输到 Range Extender。Range Extender 从传感器获取数据,并将其转发给 Coordinator。Coordinator 不仅形成和管理网络,而且还将编译后的数据发送到另一个网络的一部分(环境管理系统)。

另一个示例是两个双向交换数据的功能最少的节点的拓扑。该拓扑可以用作通用电线的替代品。

第三个例子是全部范围内的 N 个 Direct Device 或 MAC Device 的拓扑,它们在两个方向上以单跳方式在任意两个节点对之间交换数据。

3. 协议栈结构

Connect stack 提供了组织为三个功能层的代码,如下图所示:

  • PHY (physical)
  • MAC (Media Access Control)
  • Network

PHY 和 MAC 层基于 IEEE 802.15.4-2011 标准(缩写为 IEEE 802.15.4)。网络层基于 proprietary 协议。

Figure 3.1. Connect Stack Layers

此外,Connect Application Framework 在底层协议层上提供了完整的工具和 API 基础设施。Application Framework 和 Connect 协议栈层中的功能是以称为 plugin 的单个构建块的形式提供的。Connect stack 文档中包含的 Silicon Labs Connect Application Framework API Reference 中提供了每层的 plugin 的详细信息。

3.1 PHY 和 MAC 层

IEEE 802.15.4 规范是用于无线通信的标准,该标准定义了在 sub-GHz 频段和 2.4 GHz 频段中运行的 MAC 和 PHY。IEEE 802.15.4 在设计时考虑了低功耗。Connect stack 基于 IEEE 802.15.4 标准,但是并不完全符合该标准。另一方面,某些差异是有益的,因为 Connect PHY 是高度可定制的(而 IEEE 802.15.4 规范严格地受到限制)。

802.15.4 MAC 层用于基本消息处理和拥塞控制。Connect 网络层建立在这些基础机制之上,以提供网络中的端到端通信。MAC 层包括 CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance,载波侦听多路访问/冲突避免)机制,设备可以侦听并确定活动信道是否畅通,还可以处理重试和消息确认,以便在相邻设备之间进行可靠的通信。MAC 层还提供安全功能(身份验证、加密和重放攻击保护)。MAC 辅助报头(auxiliary header)指示给定的数据包使用哪种安全方案。可以通过 AES(Advanced Encryption Standard,高级加密标准)plugin 来实现可选的安全方案。目的节点查看辅助报头,并使用正确的安全方案(如果支持的话)对传入的数据包进行解密和身份验证。Connect stack 支持短(2-byte)和长(8-byte)标识符。网络由一个 2-byte PAN ID 标识。

源于对低功率的需求和对 BER(Bit Error Rate,误码率)的限制所带来的特性之一就是强制通过空中发送更小尺寸的数据包。在 PHY 层有效负载(payload)中,这些最大为 127 byte。MAC 层有效负载可能会根据安全选项和寻址类型而有所不同,如下图所示。

Figure 3.2. 802.15.4 MAC Payload

3.2 网络层

在 Extended Star Mode 下,proprietary 网络层提供网络形成和完整的路由支持,这意味着网络中的每个节点都可以在两个方向上与网络中的任何其他节点进行通信。路由对应用层是透明的。对于 direct device 而言,网络层不包含路由功能。

网络形成功能提供了一种关联机制,该机制虽然类似于 802.15.4 协议中的机制,但其通过提供 802.15.4 协议中不存在的特殊加密关联请求命令,已得到改进并变得更加安全。网络的形成还包括 Star Coordinator 的集中式地址分配。网络层还提供用于 commissioning 节点网络参数(如 Node ID、PAN ID、信道和传输功率)的 API。Direct Device 可以使用 commissioning API 加入网络。MAC Device 可以使用标准 802.15.4 加入步骤或 commissioning API 来加入网络。

3.3 Application Framework

Connect Application Framework 利用了 Ember Application Framework v6 及其 bookkeeping 功能,该功能在诸如 init()tick()stackStatus() 的回调中实现。Application Framework plugin 可以提供回调,并且可以实现其他 plugin 的回调。

3.4 功能块

每个 Connect 应用都包含以下功能块。HAL(hardware abstraction layer,硬件抽象层)和 Simulated EEPROM 功能块位于 Connect stack 之下。PHY、事件系统和消息生成器/解析器功能模块是协议栈的一部分。

  • HAL:设备及其外设的驱动程序。如 SPI、UART、定时器等。
  • Simulated EEPROM:带磨损均衡的网络和应用数据持久化存储。
  • 事件系统:允许协议栈和应用调度代码在指定的时间间隔后运行的系统。当 ISR(Interrupt Service Routine,中断服务程序)需要启动应在 ISR 上下文之外运行的操作时,事件也很有用。
  • PHY:与收发器交互并提供基本的无线电 TX、RX 和无线电睡眠功能的软件模块。
  • 消息生成器/解析器:提供类似 15.4 的 PHY/MAC 数据包格式生成器/解析器和专有的网络层格式生成器/解析器。
  • 动态内存分配:通用的轻量级模块,提供动态内存分配和垃圾回收。

4. IEEE 802.15.4 Support: RAIL vs. Connect

Connect stack 依赖于 RAIL 库实现的 hardware-accelerated IEEE 802.15.4 功能,该接口也可用于应用代码。但是,Connect-based 和“bare metal”RAIL-based 802.15.4 应用在开发体验(和应用解决方案空间)方面存在一些差异。

在大多数情况下,与直接基于 RAIL 库实现相同的功能集相比,使用 Connect 来构建 IEEE 802.15.4 应用要容易得多。Connect 已提供以下功能:

  • 将节点连接到网络的关联过程
  • CSMA/CA 以最大程度地减少冲突并实现更高的吞吐量/更少的丢包
  • 安全性(身份验证、加密和重放攻击保护)
  • 帧组装(客户只需要提供消息有效负载)

由于 RAIL 中未实现这些功能,因此客户有责任在不使用 Connect 时实现它们(如果需要)。

对于 IEEE 802.15.4-based 通信,RAIL 库可能比 Connect stack 更可取的情况是,设备缺少足够的代码存储空间用于 Connect stack,或者需要非标准实现的情况。

RAIL 库 IEEE 802.15.4 API 可从 https://docs.silabs.com/rail/latest/group-i-e-e-e802-15-4 获得,以供参考。

5. 下一步

有关 Simplicity Studio 和 WSTK 使用 Flex SDK 开发基于 Connect 应用的说明,请参阅 QSG138: Getting Started with the Silicon Labs Flex Software Development Kit for the Wireless Gecko (EFR32™) Portfolio

有关更多 Connect stack 的详情,请参阅 UG235: Silicon Labs Connect User’s Guidehttps://docs.silabs.com/connect-stack/latest/

有关低功耗实现的特定说明,请参阅 AN902: Building Low Power Networks with the Silicon Labs Connect Stack