物联网应用中采用ZigBee IP的主要考虑因素
扫描二维码
随时随地手机看文章
最近有相当多的讨论是关于物联网和不久即将部署的数十亿可连接设备。这些设备的大多数不是智能手机或其他通讯设备,而是那些可以使我们的家庭、工厂、汽车和其他更多系统被无线连接的遥控器和传感器,并且允许他们在远程处理器或手动控制下更有效的运作。
为了满足这种无处不在的物联网连接需求,就必须有一个满足可连接设备需求的网络标准。蜂窝技术太复杂,使用它将会大大增加成本,并且不支持这些大多数设备所需的电池寿命要求。
用于传感和控制应用的ZigBee标准已经面世多年。而由ZigBee联盟于2013年发布的ZigBeeIP规范承诺为无线传感器网络提供无缝的互联网连接,特别是智能电网应用,将会得到ZigBeeSmartEnergyIP协议栈的进一步支持。
ZigBee提供了一个完整的无线网状网络解决方案,利用互联网连接去控制低功耗、低成本设备,连接多种不同类型的设备构成单一控制网络。当前的ZigBeeIP是IPv6兼容的,这使得它非常适合那些基于预期连接设备数量而选择IPv6的应用。
传感器网络通信基础知识
无线传感器网络(WSN)目前正在众多应用中广泛部署,覆盖范围从家庭自动化到工业控制,这是90年代末进行的大量研究和发展的结果。由成千上万节点构成的无线网状网络被用于更大范围的灯控、建筑监视、智能电表,甚至用于监视农业作物。
为了成功部署WSN,几种底层技术是必要的:
●超低功率无线电:用于确保超长电池寿命(一些诸如智能电表的应用需要长达20年)以最小化因电池更换而带来的成本和麻烦。即使市电可用,低功耗无线电也是一个显著的优点。
●基于标准的网状网络软件:用于确保可靠的数据传输,尤其是对于无人干预的机器到机器(M2M)类型应用的操作。
●合适的无线协议和软件堆栈:用于允许设备间进行标准数据格式的信息交换和自主操作。
ZigBee采用IEEE802.15.4标准定义和构建底层,并为低功率无线电部件提供良好的基础。该标准最初发布于2003年,从那时起,它开始得到扩展和提高,先是在2006年,然后在2011年。15.4e和15.4g修订已经被商业无线电技术供应商用于他们的应用中,使他们的RF设备功耗减半,并且预期在下一代设备中进一步降低。这些修订将对电池寿命产生重要的积极作用。
虽然802.15.4已经充分利用了基础无线电技术,但是网状网络协议开发仍需花费较长的时间。网状网络堆栈,例如由Ember(2012年被SiliconLabs收购)开发的EmberZNet和由加州大学伯克利分校开发的TinyOS,被用于初期的802.15.4无线IC产品中,并且随后得到进一步优化以满足系统需求。市场增长依赖于可实现互操作的标准化解决方案、提供更多资源去支持很多公司使用这种技术,ZigBee联盟是近年来致力于为无线网状网络提供标准化解决方案的几个组织之一。
应用协议栈——开发的最后一项——位于网状协议栈的上层。应用层倾向于侧重更具体的应用细节,为了达到真正的互操作性,必须开发通用接口和相关协议。
这些协议依赖于通用语言,从而使来自不同制造商的无线设备能够相互通信。这样互操作性要求可能存在竞争的公司在彼此产品相互依赖时进行合作、商定信息传送协议以开发共同的标准。这种合作发生的一个领域是灯控产品(包括调光器和转换开关)。其他领域,像家庭和楼宇自动化,市场的力量还不能为设备生产商之间协同工作提供足够的动力。
以ZigBeePRO为基础
多年以来,为了确保市场能够充分利用ZigBee的优势,已经发布了多个ZigBee标准。ZigBee技术的稳步增长促进了对协议及其可靠性的提升。为了满足这些需求,ZigBee联盟在2007年发布了ZigBeePRO规范,并在2008年发布了智能电网规范(SmartEnergyProfile)。
ZigBeePRO专门为小型或大型网络提供设备间的通信而进行了优化。设备能够加入网络、与其他设备配对,并且能够在没有网络或系统管理员干预下运行。标准专门针对通常所需的小信息包进行了优化。例如,IEEE802.15.4仅支持最大信息包长度为127个字节。使用ZigBeePRO标准,具有成百上千节点的网络已被成功部署。
ZigBeePRO标准之前并没有针对互联网连接而优化,然而当物联网开始发展,性能方面的需求越来越多。不幸的是,现有协议和数据标准不能与当前的IP标准相匹配,不能直接用于互联网。为了克服这种挑战,智能网关被开发出来以提供所需的连接和转换,但是他们的缺点是当有新设备或标准被开发后必须随时更新。
迁移到IPv6
互联网面临的一个主要挑战是IP地址的可用数量正在急剧减少。随着IP地址使用的增加,未使用地址的数量在迅速枯竭,IPv6寻址连同其他现有IP协议看似能够为低功耗传感和控制网络提供一个完美的解决方案。
有个主要的弊端是现有IP协议都是基于更大数据包和更高数据速率网络的预期用途而设计的。这导致在IEEE802.15.4网络上直接运行标准IP协议会存在一些问题。
为了克服这些问题,必须减少IPv6信息包的大小。为了实现这一目标,在6LoWPAN标准中做出了一些修订措施,即RFC4944。问题的解决方法包括压缩IP报头以避免传输15.4子网不需要的重复的信息。另一个主要更新是采用能够成功传输的高效分片机制,并且随后组装无法在单一IEEE802.15.4包中传输的IP包。但是,该标准并没有为可靠网络和应用协议提供一个完整方案。
此外,适用于低功耗和有损网络的路由协议也是必须的。新的协议是由Internet工程任务组(IETF)开发并发布为RFC6550,为低功耗网络提供基本路由。然而,其他的标准IP协议(例如UDP和TCP)也可以无需修改的用于802.15.4网络。
最终的协议是ZigBeeIP,作为ZigBee智能电网标准的一部分,它通过应用层为运行在低功耗传感和控制网络提供了一整套基于IP的标准化协议。
ZigBeeIP概述
ZigBeeIP协议栈为验证互操作性提供了测试和认证的方法,因为其他标准(例如802.15.4)包括了一些应用所需的可选功能,并且这些选项需要适应ZigBeeIP标准和协议栈。这些测试和认证方法于2013年初发布,这使得开发人员能够在稳固平台上开发他们的产品。
ZigBeeSmartEnergyIP利用6LoWPAN报头压缩和分片技术。此外,RPL路由被用于非存储模式,以便网络发送到一个中心设备。这种方法使用源路由使信息能够被回传到网络中的始发设备。此外,标准服务搜寻采用多播域名服务(mDNS)协议。这使设备能够发现网络中其他设备的利益服务。
ZigBeeIP也存在安全问题。MAC级安全性通过802.15.4来提供,而应用级的安全性采用消息负载加密实现。携带网络访问认证(PANA)的协议用于网络访问控制,应用安全使用TLS1.2和椭圆曲线加密协商机制。应用程序可采用UDP和TCP消息传输协议。
图1:SmartEnergy2和ZigBee IP协议栈
ZigBeeSmartEnergyIP协议栈是首个基于标准的发布,它结合来自IEEE和IETF的相关标准,形成一个被众多公司和硅芯片供应商支持的认可且可以互相协作的标准。
采用ZigBeeIP
ZigBeeIP目前正在多个应用中实施,开发工具包和系统都可以从多个制造商获得。这些系统中的MCU通常拥有256kB的Flash和32kB的RAM空间。通过使用来自半导体制造商的开发工具,可以很容易的创建基础的安装启动。设备制造商也能够通过为他们的设备添加自己的特定应用行为来定制这些实现过程。
当采用这种方法时,必须考虑许多不同的选择:
●设备支持的功能集(计量、需求响应、消息机制等等)
●用于功能设置的URI结构
●使用的安全级别
●使用XML数据还是EXI压缩型
●数据订阅行为
●事件或异常情况的处理
关于这些选择的最终决定将影响ZigBeeSmartEnergyIP协议栈在应用中使用的配置。一旦这个过程完成,数据和必要的行为必须被提供用来完成最终配置。一个为何需要这种能力的例子是半导体提供商的实现将为应用(例如电表消耗数据)提供信息和数据结构。终端设备开发者必须使用来自他们特有设备的实际电表数据填充必要的数据结构。每一个供应商的数据存储和管理技术可能不同,但是这两个元素必须匹配。图2展示了分别由开发者处理和由无线IC供应商提供的设计选择。
图2:由开发者控制和硅芯片供应商提供的设计元素
一旦所有的选择已做出,并且集合了相关数据,然后才能够完成代码并编译它。和任何项目一样,调试和测试是必须的,但是各种工具可用来协助开发阶段使其能够尽快地完成。这些工具提供了很多功能,甚至能够跟踪网络中的数据包,从而确保端到端的功能。
带有传感和控制网络的ZigBeeIP的未来
ZigBeeSmartEnergyIP协议栈的开发面向相对较小的家庭智能电网网络,支持最多30个设备。在更大的网络中使用这种协议栈需要一些更新才能满足具有成百上千设备的网络。其他的改进技术将聚焦在提高电池寿命的技术。
在ZigBeeIP中使用互联网协议面临着来自电池寿命的挑战。TCP和HTTP协议已经使用了很多年,但因为巨大的信息量和始终保持开放连接的状态,它们的用途目前面临功耗的挑战。
为了实现这些提升,有必要了解在传感器网络中的不同信息传递模式。通常,这些网络包括一个大的数据收集网络,其中RPL发送到一个中心点这种传递模式是合适的。此外,控制网络往往有大量的点对点消息传输,这就需要对路由选择算法进行优化。
分布式网络还需要非常高的可靠性,没有单点故障问题。例如包括单一安全服务器或RPL中心点的使用。为了克服可靠性问题,网络体系结构要求使用分布式系统,但是这些技术目前没有被这些协议普遍支持。
传感器网络中往往有许多远程的电池供电的传感器。对于这些节点,电池寿命是主要考虑因素,因此使功耗见到最小限度必然成为整个系统的关键需求。为了实现这种能源效率,信息频率必须尽可能的降低,并且尽可能多的使用新格式(例如CoAP)的压缩报头去提供一个更加节省电池电量的方法。采用UDP而不是TCP和HTTP也能通过缩短的消息格式而提供进一步改进。
通过使用更多优化措施,扩展现有ZigBeeSmartEnergyIP协议栈去支持更多更大的传感器网络是可能的。对于确保降低功耗和改善电池寿命的改进特别有益于传感器网络扩展性和稳定性。