使用Zigbee和Thread快速构建网状连接照明应用

对于家庭,建筑和工业自动化应用,连接照明系统非常方便,可以帮助节省能源。虽然基于802.15.4的网状网络提供了低功耗操作,扩展范围和可用性的有效组合,但它们实现起来很复杂。
为了降低这种复杂性并节省开发时间,芯片供应商推出了参考设计和工具,可帮助设计人员快速开始评估网状连接照明应用。
本文着眼于自动化应用程序中网状网络的要求,并描述了Zigbee和Thread在满足这些要求方面的作用。然后,本文介绍了Silicon Laboratories的连接照明套件作为示例。然后,它将展示如何使用它来开发基于Zigbee或Thread协议的网状连接照明应用程序。

连接照明物联网的关键部分

随着具有成本效益的LED灯的出现,连接照明在住宅和商业自动化应用中获得了越来越大的作用。连接灯允许用户根据其工作和个人喜好调整其工作环境的颜色和强度。
更先进的自动化系统通过添加占用传感器或简单地将有源LED灯作为占用指示器来扩展此基本功能和基于位置的支持。与物联网(IoT)中的其他应用程序一样,来自这些系统的相关数据进一步为其用户提供了各种有用的分析。

网状网络

为了帮助连接智能LED等物联网设备,网状通信协议正迅速成为首选解决方案,特别是对于低功耗应用。对于传统的点对点网络,建筑物一侧的智能LED灯泡需要显着提高其发射输出功率,以达到建筑物另一侧的控制器。
在网状网络中,连接的照明设备仅需要足够的发射功率来到达附近的另一个连接的照明设备。反过来,网状网络中的各个设备通过网络路由源节点的消息,直到它到达目的节点。因此,网状网络允许开发人员在不牺牲范围的情况下使用低功耗设备。
此外,网状网络中内置的路由机制提供了自我修复功能。简单地将消息重新路由到失败的节点以维持整体服务可用性。
对于自动化网络,Zigbee已成为开发人员的热门选择,因为它从一开始就设计为低功耗。此外,Zigbee Alliance认证可确保不同供应商之间的互操作性。Zigbee网络可以轻松地从几个设备扩展到数千个。同时,单独的Zigbee设备可以提供家庭自动化应用中常见的短距离网络,开发人员可以为更远距离的应用部署Zigbee网状网络。
随着Zigbee 3.0的引入,这些应用程序的开发也变得更加直接,Zigbee 3.0将单独的应用程序特定配置文件的混乱减少到称为Zigbee集群库(ZCL)的通用应用程序层(图1)。
Zigbee图已成为自动化系统的首选解决方案
图1:Zigbee已成为自动化系统的首选解决方案,并为开发人员提供了一套在Zigbee PRO堆栈中收集的强大连接服务以及Zigbee集群库(ZCL)中的特定于应用程序的服务。(图片来源:Zigbee联盟)
最新版本的Zigbee为网状网络提供了改进的功能,同时保持了与传统系统的兼容性。尽管如此,Zigbee还没有原生支持互联网协议(IP)来连接本地Wi-Fi网络和互联网等IP网络。
为了在Zigbee和IP网络之间进行通信,开发人员需要通过在各个网络格式之间转换报头和地址来调整流经连接每个域的网关的消息。此外,开发人员通常需要重新打包有效负载并重新应用安全机制。虽然在概念上不困难,但是这种额外的适应过程给网关设备增加了进一步的处理负担,导致消息延迟增加。
在基线Zigbee规范中缺乏对IP寻址的支持,这促使开发人员寻找替代方案,例如Thread Group中的Thread。与Zigbee一样,Thread基于IEEE 802.15.4物理(PHY)和媒体访问控制(MAC)层。为了提供IP寻址能力,它为6LowPAN(IPv6低功耗无线个人局域网)增加了一层支持。线程还通过诸如用于加速重新路由的最新路径信息和用于将新设备安全地调试到网状网络的增强协议等功能来解决其他关键网状网要求。
然而,对于开发人员而言,利用这些技术实现诸如连接照明之类的应用在创建有效的硬件设计和优化相关软件协议栈上的应用方面存在多个挑战。
使用Silicon Labs EFR32MG12 Mighty Gecko 802.15.4无线MCU及相关软件,开发人员可以创建低功耗网状网络。通过构建Silicon Labs参考设计,开发人员可以进一步加速实施能够利用这些网络的高级应用程序。

无线MCU

支持802.15.4的MCU的可用性加速了基于低功率网络的自动化应用的增长。诸如EFR32MG12 MCU等器件集成了典型无线节点设计所需的全部组件。连同它们的集成无线电,全能壁虎的MCU如EFR32MG12P432F1024GM48结合40MHz的32位ARM ®皮质®-M4内核,1024 KB闪存,256 KB RAM,以及大量数字和模拟外设。该器件的模拟互连矩阵使设计人员可将器件引脚配置为集成模拟模块的模拟I / O端口,包括数模转换器(DAC),模拟比较器,运算放大器和高速12位逐次逼近寄存器(SAR)模数转换器(ADC)。
该设备的无线电子系统集成了完整的RF接收和发送信号路径,包括低噪声放大器(LNA),功率放大器(PA),频率合成器,信号转换器和平衡 - 不平衡转换器。因此,设计人员只需将双元件LC匹配网络连接到器件的双引脚2.4 GHz天线接口即可实现低功耗设计的RF端(图2)。这种双元件设计足以满足典型的低功耗物联网设计,具有适中的射频发射功率要求(小于13 dBm)。对于具有更高RF发射功率要求的设计,工程师只需要为最终的四元件匹配网络添加另一个LC级。
Silicon Labs EFR32MG12 MCU的RF接口图
图2:对于要求RF发射功率小于13 dBm的2.4 GHz 802.15.4应用,工程师可以通过简单的双元件LC匹配网络为EFR32MG12 MCU实现RF接口。(图片来源:Silicon Labs)

高效的物联网解决方案

除了简化RF接口要求外,MCU的高集成度还简化了整个系统的设计。开发人员可以利用集成的DC-DC转换器,只需额外的外部电容和电感即可进行部署。因此,基于EFR32的系统的基线设计除了用于电源连接的外部组件外,几乎不需要外部组件(图3)。
Silicon Labs EFR32 MCU的内置DC-DC转换器图
图3:开发人员可以通过使用EFR32 MCU的内置DC-DC转换器为内部电路模块(包括用于RF输出功率要求低的应用的RF功率放大器)供电,从而大幅降低功耗。(图片来源:Silicon Labs)
该集成DC-DC转换器旨在最大限度地降低可能影响器件RF电路的噪声,但仍可通过其IOVDD引脚向MCU和其他外部器件提供高达200 mA的电流。开发人员还可以使用转换器为MCU的内部模块供电。
要为I / O,RF模拟和RF PA级供电,请将转换器输出V DCDC连接到芯片的相应引脚(IOVDD,RFVDD和PAVDD)。对于具有高RF输出功率要求(高于13 dBm)的应用,只需将图3所示的高端电感连接移至V DD电源即可。
使用内部数字和模拟模块的转换器输出也很简单,需要简单的软件设置。开发人员可以通过分别设置MCU的EMU_PWRCTRL寄存器中的REGPWRSEL位和ANASW位,将转换器的输出路由到MCU的数字和模拟模块。
使用集成的DC-DC转换器不仅在简化设计方面具有明显的优势,而且在最小化功耗方面也具有明显的优势。在禁用外设的EM0活动模式下,器件在使用38 MHz晶振的闪存运行代码时消耗约70μA/ MHz。相比之下,对于在相同工作条件下运行但不使用集成DC-DC转换器的设计,功耗上升至约100μA/ MHz。
即便如此,集成式DC-DC转换器只是开发人员可用于降低基于EFR32的系统功耗的几个功能之一。该器件支持不同的工作模式,允许开发人员扩展电压和时钟频率 - 以性能为代价降低功耗。之后,开发人员可以在应用程序需要更高性能之前简单地调高电压和频率,然后再返回到较低功耗状态。
与几乎所有专为物联网设计而设计的集成MCU一样,MCU为开发人员提供了多种操作模式,可通过将内核和其他子系统置于各种睡眠状态来显着降低功耗。例如,器件在休眠模式(EM1)下仅需要41微安(μA)/兆赫兹(MHz),并禁用所有外设。在长时间不活动期间,开发人员可以在深度睡眠模式(EM2)下降低功耗3μA,在停止模式(EM3)下降低功耗2.47μA,具有完全RAM保持和内部闪存断电。要返回完全激活模式,可以对器件进行编程,以便在外设中断时自动唤醒,或者当RF子系统检测到RF信号时。
对于某些设计,MCU从睡眠中唤醒所需的时间可能是一个问题。早期的MCU表现出缓慢的唤醒时间,可能接近甚至超过应用程序所需的响应时间。使用这些设备,开发人员不得不放弃使用深度睡眠模式,接受更高的功耗以确保系统及时响应。
相比之下,EFR32 MCU在EM3停止模式下从3μs唤醒,代码从RAM执行,或者代码从闪存执行约10μs。因此,开发人员可以利用低功耗睡眠模式,而不会对典型物联网应用(如连接照明)的响应时间要求产生重大影响。

连接照明解决方案

即使采用EFR32 MCU的简化设计要求,开发人员也可能在创建基于网状网络的完整连接照明应用时面临重大挑战。除了无线MCU系统,开发人员还需要组装具有合适缓冲器和接口的LED和LED驱动电路,以完成与MCU的连接。除了这些硬件设计细节之外,网状连接应用程序的软件开发要求可能令人生畏。
开发人员可以使用Silicon Labs RD-0098-0401参考设计套件快速​​开始探索连接的照明应用,而不是在解决这些问题时遇到延迟。该套件基于前面提到的Silicon Labs EFR32MG12P432F1024GM48 MCU,提供完整的系统实现,包括LED照明功能。该套件的电路板带有几个带有MOSFET驱动电路的LED,以及用于缓冲用于控制MOSFET栅极的MCU引脚的运算放大器。预装的MCU固件使开发人员可以立即开始检查与网状网络和LED相关的不同操作特性。
相关的参考设计为开发基于网状网络的各种自动化应用提供了清晰的路线图。通过将RD-0098-0401电路板与Silicon Labs SLWSTK6000B网状套件和Simplicity Studio软件环境相结合,开发人员可以获得用于创建自定义连接照明系统的全面开发框架(图4)。
Silicon Labs RD-0098-0401连接照明套件的图片
图4:Silicon Labs RD-0098-0401连接照明套件与Silicon Labs SLWSTK6000B网格套件和Zigbee网关配合使用,为评估连接照明和开发定制自动化应用提供了一个全面的平台。(图片来源:Silicon Labs)
如图所示,开发人员可以添加任何兼容的Zigbee网关,例如Silicon Labs RD-0001-0201 Wi-Fi网关或Silicon Labs RD-0002-0201 USB虚拟网关,以在更复杂的自动化应用中连接兼容的Zigbee设备。也许这个开发平台中最关键的部分是Simplicity Studio软件环境,它可以显着改进应用软件的开发。

发展框架

在创建Zigbee应用程序时,开发人员面对图1中所示的Zigbee体系结构中表示的每个层的特定功能需求。虽然802.15.4兼容硬件支持最低层,但开发人员的任务是确保他们的软件提供特定功能期待Zigbee架构的其他层面。诸如Silicon Labs EmberZNet协议栈之类的商业Zigbee堆栈可以解决中间层问题,但开发人员仍然负责在应用程序级别解决进一步的需求(图5)。
Silicon Labs堆栈Zigbee网状网络的图像
图5:Silicon Labs堆栈提供了Zigbee网状网络所需的广泛服务,但开发人员仍负责应用程序级别的补充功能。(图片来源:Silicon Labs)
对于软件开发人员来说,在像Zigbee这样的丰富框架中处理多个层的多个依赖关系和交互可能非常具有挑战性。但是,使用Silicon Labs Ember应用程序框架,他们可以更专注于更高级别的应用程序代码而不是底层机制。
Silicon Labs的Ember应用程序框架通过Simplicity Studio提供,通过围绕回调构建的编程模型简化了Zigbee网格开发。回调为应用程序级代码提供了一种机制,可以参与在较低服务级别处理的操作,实质上是为低级机制提供事件驱动的入口点。在某些时候,通常在其关键处理部分之前或之后,较低的服务例程发出回调,这只是对开发人员提供的函数的调用,该函数执行其自己的一组操作。
回调编程模型在复杂的框架中提供了许多好处。例如,在执行较低级别的服务功能之前,Ember框架使用回调来使用开发人员的特定于应用程序的代码处理新消息。通过这种方式,回调不仅为应用程序开发人员提供了一个干净的框架接口,而且还确保了开发人员的应用程序代码与框架提供的代码之间的隔离。Silicon Labs希望该框架能够处理开发人员可能遇到的任何情况,并且如果开发人员面临需要向框架添加应用程序代码的情况,则将其视为框架错误。
虽然框架及其回调模型已经隐藏了底层服务架构的复杂性,但Simplicity Studio为应用程序开发提供了更简单的方法。在这里,开发人员可以使用Simplicity Studio中的Ember AppBuilder通过一系列菜单选项构建应用程序。在这些选项中,AppBuilder为开发人员提供了一组插件,这些插件实现了特定集群的功能,例如标准Zigbee集群库(ZCL)应用程序层支持的颜色控制。
除了相关的软件模块外,每个插件还提供默认值,例如报告间隔以及与特定集群功能相关的特定回调(图6)。
Silicon Labs Simplicity Studio AppBuilder的图片(点击放大)
图6:使用Silicon Labs Simplicity Studio AppBuilder,开发人员只需选择实现应用程序功能所需的插件集(左侧面板),包括相关的回调(右下角)。(图片来源:Silicon Labs)
AppBuilder提供了实现底层集群功能所需的完整源代码,包括特定的回调。如清单1所示,回调可以从几行简单的代码行发出停止命令(emberAfColorControlClusterStopMoveStepCallback()),例如,将目标LED的颜色从一种状态转换为另一种状态所需的明显更复杂的代码(emberAfColorControlClusterMoveToColorCallback())。在检查了默认回调之后,开发人员可以实现自己的回调版本,甚至可以创建自己的插件。
复制 bool emberAfColorControlClusterStopMoveStepCallback(void) {   // Received a stop command.  This is all we need to do.   stopAllColorTransitions();     emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_SUCCESS);   return true; }    .    .    . bool emberAfColorControlClusterMoveToColorCallback(uint16_t colorX,                                                    uint16_t colorY,                                                    uint16_t transitionTime) {   uint8_t endpoint = emberAfCurrentEndpoint();     if (transitionTime == 0) {     transitionTime++;   }     // New command.  Need to stop any active transitions.   stopAllColorTransitions();     // Handle color mode transition, if necessary.   handleModeSwitch(endpoint, COLOR_MODE_CIE_XY);     // now, kick off the state machine.   colorXTransitionState.initialValue = readColorX(endpoint);   colorXTransitionState.currentValue = readColorX(endpoint);   colorXTransitionState.finalValue = colorX;   colorXTransitionState.stepsRemaining = transitionTime;   colorXTransitionState.stepsTotal = transitionTime;   colorXTransitionState.endpoint = endpoint;   colorXTransitionState.lowLimit  = MIN_CIE_XY_VALUE;   colorXTransitionState.highLimit = MAX_CIE_XY_VALUE;     colorYTransitionState.initialValue = readColorY(endpoint);   colorYTransitionState.currentValue = readColorY(endpoint);   colorYTransitionState.finalValue = colorY;   colorYTransitionState.stepsRemaining = transitionTime;   colorYTransitionState.stepsTotal = transitionTime;   colorYTransitionState.endpoint = endpoint;   colorYTransitionState.lowLimit  = MIN_CIE_XY_VALUE;   colorYTransitionState.highLimit = MAX_CIE_XY_VALUE;     writeRemainingTime(endpoint, transitionTime);     // kick off the state machine:   emberEventControlSetDelayMS(COLOR_XY_CONTROL, UPDATE_TIME_MS);     emberAfSendImmediateDefaultResponse(EMBER_ZCL_STATUS_SUCCESS);   return true; } 
清单1:随Silicon Labs Simplicity Studio AppBuilder提供的插件包含特定的回调功能,开发人员可以根据需要使用自己的回调函数或插件替换这些功能。(代码来源:Silicon Labs)

从Zigbee迁移到Thread

借助Silicon Labs环境,开发人员可以利用从Zigbee到Thread的相当简单的迁移路径。在最低级别,Simplicity Studio生成硬件配置输出(hal-config.h),可直接与Zigbee,Thread甚至专有协议的堆栈软件开发工具包(SDK)一起使用,使用Silicon Labs无线电抽象接口层(RAIL)库和Silicon Labs Flex SDK(图7)。
Silicon Labs环境图有助于简化应用程序的迁移
图7:除了使用通用硬件配置格式外,Silicon Labs环境还有助于简化不同协议(包括Zigbee和Thread)之间的应用程序迁移。(图片来源:Silicon Labs)
Silicon Labs的Thread堆栈允许开发人员将一些更高级别的Zigbee应用程序功能迁移到Thread。作为实施Zigbee Alliance用于物联网连接的dotdot语言的一部分,Silicon Labs使用ZCL over IP(ZCL / IP)来实现其Thread堆栈中包含的Thread应用层。在支持dotdot时,ZCL / IP旨在进一步概括Zigbee架构中具有不同传输类型的应用层功能。对于Thread堆栈,Silicon Labs通过在Thread中提供用作标准传输协议的CoAP(约束应用协议)的实现来利用这种通用性。
ZCL / IP将许多其他Zigbee实体,命令和属性直接映射到线程IP网络模型。因此,开发人员可以更轻松地访问迁移到Thread的价值。更简单的是,开发人员可以在Simplicity Studio AppBuilder中选择Silicon Labs RD-0098-0401连接照明演示的Thread实现。与Zigbee演示一样,开发人员可以立即开始探索Thread性能特征,或者使用AppBuilder生成的示例应用程序作为他们自己的基于Thread的自动化应用程序的基础。

结论

LED照明自动化已迅速成为智能家居智能建筑的流行特征。在这些自动化系统的基础上,网状网络支持连接灯和控制系统的低功率操作,这些系统曾经需要高功率RF收发器。然而,在开发这些网状网络系统时,开发人员在实现支持网格的硬件和软件方面面临多重挑战。
Silicon Labs RD-0098-0401连接照明套件和Silicon Labs SLWSTK6000B网格套件结合使用,为创建网状连接照明系统提供了完整的硬件平台。借助Silicon Labs的Simplicity Studio,开发人员可以快速评估完整的Zigbee和基于线程的连接照明应用程序,或使用这些示例应用程序构建自定义网状网络自动化应用程序。

用户喜欢...

智能家居技术:Zigbee,Z-Wave,Thread和Dotdot

如果您拥有SmartThings或Nest等智能家居产品,您可能熟悉它们背后的一些技术。像Zigbee和Z-Wave这样的网络协议占据了整个行业的主导地位,而作为一个年轻的网络标准,Thread作为市场份额争夺战的...


抢攻万物互连设计商机BLE先胜ZigBee一筹

蓝牙低功耗(BLE)抢先卡位万物联网设计商机。 蓝牙技术从第四代BLE版本开始,软硬体规格更新速度便不断加快,并朝向IP网状网路架构发展,再加上其在行动市场已有极高渗透率,因而吸引愈来...


使用 Zigbee 光链路快速、轻松地实现灵活的智能照明

智能照明集高能效 LED、可定制功能和低功耗无线技术优势于一体,是一项正在快速增长的应用。但由于它的快速扩张,开发人员持续面临压力,在最大限度降低单位连接成本的同时,还要不断...


通过多协议蓝牙和Zigbee连接扩展设备功能

多协议连接提供了一种独特的方法来添加消费者和企业所要求的功能。 为了在家庭或楼宇自动化场景中提供必要的可扩展性和稳健性,网状网络上的设备到设备通信是理想的实现。 同时,能够...


使用Zigbee和线程快速构建网状连接的照明应用

对于家庭,建筑和工业自动化应用,连接的照明系统非常方便,可以帮助节省能源。基于802.15.4的网状网络提供低功耗操作,扩展范围和可用性的有效组合,但实施起来却很复杂。 为了减少这种...


ZigBee无线通讯在数码裂隙灯的应用方案

眼科疾病是困扰人群的一大疾病,裂隙灯显微镜是眼科检查不可或缺的重要仪器,而摆脱传统线缆的束缚以实现高自...


蓝牙,ZigBee,Wi-Fi,NFC低功耗无线技术比较

近来的发展在很大程度上集中在物联网(IoT)连接性,即传感器收集和传递信号和数据。终端产品的例子各不相同,从智能手机,健康和健身可穿戴设备(图1),家庭自动化到智能电表和工业...


Silicon Labs多协议无线软件提升下一代IoT连接应用

Silicon Labs日前为其Wireless Gecko片上系统(SoC)和模块产品组合发布了新的动态多协议软件,可同时在单一SoC上运行zi...


Zigbee认证范围又扩展啦!——新增12种可认证设备类型

可认证设备类型 在宣布了Zigbee 3.0认证计划可认证设备类型达到35种的短短五个月之后,Zigbee联盟在即将发布的测试工具 (Zigbee Test Tool, ZTT)新版本中又进一步增加了12种可认证设备类型。不仅包...


新一代无线传输技术:LoRa

不同的通讯技术有着不同的特点,也各有适合自己的应用场景。但是对于长距离,低功耗,只有少量数据需要传输的...


QORVO 和Ayla Networks联手开发基于ZigBee的物联网网关

创新RF解决方案领先供应商Qorvo(纳斯达克代码:QRVO)和面向制造商的全球物联网(IoT)平台Ayla Networks今日宣布,两...


5G商业服务速度慢 2020年全球仅3%

国际研究暨顾问机构Gartner公布最新针对全球超过200位信息科技(IT)、商业领袖调查结果,显示75%的企业及组织愿意为了...


主流智能家居通信技术除了ZigBee、WiFi,还有哪些?

智能家居通信技术分为有线和无线。无线技术主要有:zigbee,z-wave,蓝牙,wifi,RF,EnOcean,UWB。...


基于ZigBee技术的智能安防报警系统设计

目前,安防报警系统通常分为有线和无线两种方式。有线方式具有抗干扰性强、可靠性高的特点,但存在着成本高、...


ZigBee遇强敌?智能照明新生代蓝牙5.0、MacBee登场

一直以来,国内智能照明市场的协议都是多元化差异化的存在。ZigBee、蓝牙、WiFi、2.4G等各具原生优势,又都有短板。...


ZigBee与Thread带来新力量 多个控制协议混战即将结束

ZigBee联盟(一个由多家公司组织联合而成的协会,它为低功耗无线物联网(IoT)创建、维护和提供了开放的全球标准...