快速构建与多种协议兼容的网状网络设备

作者:Jim Turley

投稿人:DigiKey 北美编辑

互连设备通常使用几种网状拓扑之一进行联网,这些拓扑注重网络稳健性、范围覆盖和低功耗。设计人员往往要在这些相互竞争且不兼容的协议中做出选择,然后在选定的硬件平台上实现软件堆栈。这两项工作都具有挑战性,而现在或许都不必去做了。

归功于集成技术的发展,开发人员可以选择现有的低成本、小基底面并支持多种竞争标准的网状网络控制器,包括 Thread、Zigbee 和低功耗蓝牙 (BLE)。这可以带来几种程度不同的灵活性:

  • 允许开发人员继续进行设计,在设计周期的后期阶段再选择协议。
  • 允许开发人员使用单个设备和开发平台,并依据经验为应用测试和选择最佳协议。
  • 单个平台可以用于多个应用和地理区域。
  • 允许使用一种协议部署设备,然后通过固件升级改为使用其他协议。

本文将说明有关无线网状网络的一些基础知识,并接着介绍来自 Silicon LabsMighty Gecko 无线片上系统 (SoC) 系列和相关开发工具。然后将阐述设计人员如何通过使用此系列作为平台,基于各种竞争网络协议来快速创建有效的网状网络。

什么是无线网状网络?

无线网状网络不同于我们熟悉的星形拓扑网络(如 Wi-Fi),或者符合原始蓝牙规范的点对点协议。在网状网络中,数据包可以从一个连接的设备“跳跃”到另一个设备,直至到达目的地为止(图 1)。此外,每个单独的设备只需处于网络中另一个设备的通信范围内,即可与同一网络中的所有其他设备通信。例如,即使位于地下室的设备与阁楼中的设备都没有足够的射频能量直接到达彼此,它们之间也能够实现通信。良好的网状协议可根据应用的需求来优化路由。

星形网络与网状网络对比图

图 1:星形网络(上图)有一个中心路由器或接入点,所有节点都必须通过它进行通信,而网状网络(下图)中的所有节点通过协作在网络中分发数据。(图片来源:Silicon Labs)

由于网状网络中的所有设备通过协作将信息转发到目的地,因此这种网络可以容忍节点缺失、故障或断电。如果每个节点都在其他多个节点的通信范围内,则这种跳跃和路由功能可使网状网络具有高度稳健性和容错性。该概念类似于作为 Internet 基础的 TCP/IP 协议套件:数据包最终会找到它们的目的地,即使不总是通过直接路由。

目前有几种竞争网状网络协议,尽管它们使用相似的基本原理,但仍然互不兼容。Zigbee、Thread 和 BLE 就是其中三种。这三种协议都采用相同的 2.4 千兆赫 (GHz) 频段,但使用不同的网状协议,因此不能互操作。

每种无线网状协议都有自身的优缺点,需要由开发人员决定哪一种标准最适合自己。在某些情况下,开发人员可能更愿意建立自己专有的无线网状网络,而不是采用其中一种标准。这样做的原因可能包括安全性、产品差异化或实现某些独特功能集的需要。

Mighty Gecko 简介

为了最大限度地提高灵活性,缩短设计和开发时间,最好选择一款支持多种标准的无线网络控制器。这样可为开发人员带来四个方面的灵活性。第一,可将选择网络标准的决策推迟到设计周期的后期阶段,因为届时可能会有更好的客户反馈或市场信息。第二,允许开发人员在实验室中测试不同的网络标准,并根据经验证据选择最合适的一种。第三,允许使用不同的网络标准将单个平台部署到多个产品。这一点在服务世界各地不同的地理市场时可能特别有用。第四,允许现场修改、增强或升级设备或平台,甚至可能包括通过变更支持的网络。

为了向设计人员提供这些灵活性,Silicon Labs 开发了 Mighty Gecko 系列网状网络无线 SoC 设备(图 2)。该系列(内部称为 EFR32MG)包括几个相关成员,全部基于相同的 40 兆赫 (MHz) Arm® Cortex®-M4 32 位处理器内核构建。

Silicon Labs 的 Mighty Gecko SoC 系列示意图(点击放大)

图 2:Mighty Gecko SoC 系列基于 Arm Cortex-M4 构建,几乎具有无线网状网络控制器所需的全部功能。(图片来源:Silicon Labs)

选项包括片载闪存大小(256、512 或 1024 Kb)、内部 SRAM 大小(32、64、128 或 256 Kb)、封装类型和温度范围。所有 Mighty Gecko SoC 都指定用于 -40°C 至 +85°C 工业温度范围,一些产品则可用于扩展/汽车级温度范围(-40°C 至 +125°C)。

作为 SoC,Mighty Gecko 几乎具有无线网络控制器所需的全部功能。框图中左上方的无线电部分显示了两个单独的射频部分:一个是 2.4 GHz 频段无线电,发射功率最高为 19 dBm,适用于 Thread、Zigbee 和 BLE 网络;另一个是单独的次 GHz 无线电,最高功率为 20 dBm,适用于实现专有网络。

该芯片还具有齐全的片载电源管理功能、1.8 至 3.8 伏的工作电压范围、集成的 DC/DC 转换器,以及“无线电唤醒”功能,该功能允许整个芯片在低功耗待机模式下进入休眠状态,直到收到无线电数据包。此外,内置的信号强度检测、前导码模式检测、帧检测和超时功能,使该芯片能够只在收到与其相关的无线电传输时才会唤醒,而不必在收到任何无线电流量时唤醒。

相比于从头开始设计基于 Mighty Gecko 的板,使用现成的评估和开发套件开始设计则容易得多。SLWSTK6000B 网状网络入门套件包含建立和测试小型网状网络所需的全部硬件和软件。

该套件包含三个相同的板组,每个板组由主板和可选的插接式无线电板组成(图 3)。单个板组可能适用于早期评估或软件开发,但是要测试网络至少需要两个板组,而要测试网状网络功能则需要三个或更多个板组。因此,SLWSTK6000B 套件包含三个板组就不足为奇了。

Silicon Labs 的 SLWSTK6000B 入门套件图片

图 3:SLWSTK6000B 入门套件包含三个相同的板组,每个板组由主板和插接式无线电板组成,用于创建小型网状网络。(图片来源:Silicon Labs)

在主板中间位置,看似是大型 IC 的器件实际上是 LCD 显示屏(图 4)。这一 128 × 128 像素的黑白显示屏耗电量极低,而且在内部存储像素数据,因此无需刷新。Mighty Gecko 微控制器芯片位于较小的插接式无线电板上。

Silicon Labs 的 SLWSTK6000B 网状网络入门套件中的一对主板/无线电板图片

图 4:SLWSTK6000B 网状网络入门套件中的一对主板/无线电板。中央的大器件是位图式 LCD 显示屏。(图片来源:Silicon Labs)

每块主板上的插接式无线电板可以拆卸和更换,而且该套件为每块主板提供了两块不同类型的无线电板,因此总共有六块无线电板。套件中的这些板全部支持 2.4 GHz 频段的 Zigbee 和 Thread 协议,但是也有其他具有不同射频特性和频率的板,包括支持用于专有网络的次 GHz 频率的板。

建议最好在安装和运行软件 IDE 之前组装硬件并加电,但这不是硬性规定。只需选择无线电板,轻轻地将其按压到主板的匹配针座上。供电的方式有多种,包括电池、交流适配器或 USB,但 USB 电缆是最简单的方法,而且有更多优点。USB 接口位于主板的左侧边缘,正对着无线电板。

在为板加电后,USB 连接器近旁的蓝色 LED 将点亮,而中央位置的 LCD 方形显示屏将亮起。经过短暂停顿后,绿色的“心跳”LED 也将点亮。

对于后续步骤,最好一直通过 USB 电缆将硬件连接到开发系统。此外,将小型三位电源开关(靠近主板左下角)移至最右侧的“AEM”位置,也是个不错的主意。

软件安装

Simplicity Studio 是 Silicon Labs 公司推出的一体式集成开发环境 (IDE),既可用于 Mighty Gecko,也可用于该公司的很多其他微控制器。要下载该免费软件,请访问该公司的 Simplicity Studio 下载页面。安装并运行 Simplicity Studio,然后继续操作。

启动 Simplicity Studio,按照提示执行一些适用于该开发套件硬件和所需软件的额外配置步骤。此过程比较简单,但需要作出几项决定,还可能要执行额外的硬件注册步骤。

如果主板仍然如上面建议的那样连接到开发 PC,Simplicity Studio 将在安装期间检测该硬件的 USB 接口,并将自动下载和配置一些硬件特定的功能。

下一步是为该开发套件下载硬件特定的软件。Simplicity Studio 提供两个选项:“Install by Device”(按设备安装)或“Install by Product Group”(按产品组安装)(图 5)。每个选项最终产生的结果相同,但选择前一个选项更加简单,所以请单击“Install by Device”(按设备安装)绿色大按钮。

Simplicity Studio 软件图片

图 5:Simplicity Studio 为加载项目特定的软件支持提供了两种方法:按设备安装或按产品组安装。(图片来源:DigiKey)

Simplicity Studio 应该会自动检测开发板,但如果没有,也很容易手动找到所需的软件包。只需在搜索框中输入“SLWSTK6000B”即可,如图 6 所示。双击指示的软件支持包,然后单击“Next”(下一步)。

Simplicity Studio 搜索框图片

图 6:在搜索框中输入 SLWSTK6000B 可快速找到所需软件。(图片来源:DigiKey)

接下来,Simplicity Studio 将突出显示可用于此硬件配置的其他软件支持。此软件的某些选项仅限于已向 Silicon Labs 注册和/或已注册该硬件的用户使用。因此一些选项可能会灰显,暂时不可用,如图 7 所示。

Simplicity Studio 软件访问图片

图 7:是否可访问某软件取决于硬件购买证明。(图片来源:DigiKey)

用于 Thread、Zigbee 和其他一些协议的软件堆栈取决于网状网络硬件的购买证明,例如 SLWSTK6000B 开发套件,因此在继续操作前,务必完成以下注册步骤。

首先,在 Mighty Gecko 入门套件的包装盒外表面上找到 10 位的十六进制代码。(如需关于查找该 10 位密钥的帮助,请参阅 Silicon Labs Zigbee 与 Thread 知识库中的“Access to Silicon Labs Wireless Mesh Stacks”(《访问 Silicon Labs 无线网状网络堆栈》)。)然后单击“Thread”或“EmberZNet (Zigbee)”选项中的“Register Kit”(注册套件)链接,如上图所示。此步骤将完成硬件注册,并解锁网状网络协议栈。单击“Next”(下一步)继续。

最后,Simplicity Studio 将显示建议安装的所有软件选项的长清单,包括一个或多个 C 编译器、可选的实时操作系统、分析工具和很多其他选项(图 8)。如果需要,可以手动启用或禁用特定选项,但一般情况下最好接受建议安装的软件选项。完成后,单击“Next”(下一步)。

Simplicity Studio 最终软件清单图片

图 8:Simplicity Studio 的最终软件清单显示了建议安装的所有软件选项,包括一个或多个 C 编译器、可选的实时操作系统以及分析工具。(图片来源:DigiKey)

在最后一步中,Simplicity Studio 将显示其主软件许可协议,其中涵盖即将安装的所有软件组件。阅读并接受许可,然后最后一次单击“Next”(下一步)。

软件安装将需要几分钟时间。安装完成后,关闭并重新启动 Simplicity Studio。现在,一切准备就绪,可以开始使用 Thread、Zigbee、蓝牙或自定义专有协议构建网状网络应用了。Simplicity Studio 包含一些预先配置的简单演示程序,以及可以修改的示例代码,这些都是为了帮助开发人员有一个良好的开端。

总结

得益于包含兼容硬件和预测试软件的预配置套件,构建使用网状网络的无线连接设备变得相当简单。硬件的灵活性能够支持根据经验快速评估不同的网络协议,如 Zigbee、Thread 和 BLE,同时也支持在将来更改协议。这种更改可以在设计和开发阶段进行,也可在部署最终产品后进行。

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Jim Turley

Jim Turley 是专注于微处理器、半导体技术和嵌入式系统的技术分析师和作家,以前曾经是一名硬件工程师。在 2001 年到 2018 年期间,他掌管着分析公司 Silicon Insider。之前他是一家小型上市微处理器 IP(知识产权)公司的总裁兼首席执行官,再之前担任过另一家微处理器许可公司的营销高级副总裁。他曾经写过七本书,曾担任《Microprocessor Report》和《Embedded Systems Design》的主编,并担任嵌入式系统大会 (ESC) 的会议主席。

关于此出版商

DigiKey 北美编辑