开发更具鲁棒性的ZigBee解决方案

ZigBee人们密切关注无线传感器领域,主要是因为ZigBee承诺为可靠、性价比高、功率低的无线通信提供全球统一标准。而且在目前的无线设备市场上,ZigBee经过不懈的努力,联盟已经将ZigBee地位提升了一大步。仅仅几年时间,该联盟就开发了200多名联盟成员。ZigBee从许多供应商那里很容易获得芯片组和协议栈。第一套已经出现在去年的市场上ZigBee终端产品。  

精心定义ZigBee网络中的网络和应用层,ZigBee联盟希望独立的设备制造商能够开发出能够相互操作的优秀终端产品。ZigBee芯片组对帮助给予了很高的期望OEM为系统集成商和终端用户提供低成本的终端产品,制造商进一步降低成本。  

随着市场需求的增长和大量志愿者的研究ZigBee现在是时候为人们提供一个低成本、低功率的无线通信系统的可行性方案了。本文将讨论设计和集成ZigBee一些重要因素的一些重要因素。文章中的许多内容来自MaxStream该公司正在研发其第一套ZigBee认证产品——XBee OEM在无线模块过程中获得的经验。  

1. ZigBee网络 

ZigBee定义了协调器、路由器和终端设备三种节点类型。协调器可以选择网络的工作信道和个域网识别标志(PAN ID)来启动一个ZigBee网络。一旦网络启动,路由器和终端设备就可以添加到网络中。协调器和路由器可以通过网络发射和路由数据,并允许其他路由器和终端设备添加。终端设备不能参与路由数据,,终端设备不能参与路由数据。当设备加入ZigBee PAN当设备之间的父子关系形成时,加入的设备是子,允许加入的设备是父。一个简单的ZigBee网络如图1所示。 

2. ZigBee寻址 

ZigBee设备支持两种地址类型:一种是64位IEEE地址,另一个是16个网站。所有64个地址ZigBee唯一的设备包括一个原因IEEE它也是世界上唯一的24家制造商的特定组织识别符号(OUI)。 

当设备加入ZigBee当一个域网时,它可以从允许它添加的父亲设备中获得16个网站。该网站是个域网中唯一规定的。该网站用于数据传输和数据包路由。路由数据包的路由表存储每个目标设备和下一个跳跃设备的网络地址。因此,每个域网设备都必须有一个清晰和唯一的网络地址,以确保数据能够到达正确的设备。 

但是,在某些情况下,设备的地址可能会发生变化,或者多个节点可能会接收到相同的地址。例如,如果终端设备被移除或与父亲设备失去联系,它必须重新连接网络,这可能会导致它接收到一个新的地址。此外,如果协调器被新设备更换,新协调器将不知道以前的协调器分发了哪些地址。分发给设备的新协调器地址很容易与现有网站重叠。 

ZigBee联盟正在加强对这些地址问题的研究和解决方案的整合ZigBee规范。然而,一些协议栈和模块提供商,如MaxStream公司开发了解决这些问题的方法。 

3. ZigBee路由 

ZigBee包括一个AODV网络路由的基本框架。如果一个设备需要向其他设备发送数据,它首先需要找到一条可能通过多个路由器到达目标设备的路由。网络路由允许动态建立、修改或更换传输路径,以保持设备之间可靠的路径。 

但除网状路由外,ZigBee规范往往依赖于树路由。在树路由中,数据将严格按照从父到子或从子到父的路径传输源设备和目标设备之间的树路由。 

当节点移动或删除时,路由可能会出现问题。此时,如果单个节点不能与路由隔离,则整个树路由无法定位故障点。当现有路由出现故障时,网络网络可以找到新的路由。 

ZigBee协议栈按规范采用树网路由。ZigBee 1.建立0标准。两条路由之间的交互相当复杂,协议栈之间的交互也在不断变化。但是,增强型ZigBee规范(2006)增加了一个nwkUseTreeRouting该功能可以完全断开整个树形路由,然后通过(NLME)路由发现请求(route-discovery-request)根据需要强制路由发现原语。这些功能可以解决与树状路由相关的问题,并允许开发者充分发挥网状路由的优势。 

4. ZigBee互操作性 

ZigBee该规范包括一些可用于定义各种网络的配置功能。开发商可以轻松配置以下参数:目标系统中路由器和/或终端设备的数量;安全级别;路由表和邻居表的规模;网络的最大深度(从协调器到最远衍生设备的连接深度);协调器/父路由器允许的子路由器和终端设备的最大数量。 

ZigBee联盟开发了一个公共框架——可配置参数表,为这些不同的协议堆栈建立一般的设置。为了完成框架(如家庭控制协议堆栈框架定义开灯、关灯或切换灯ID)该框架还定义了一些共同任务,称为簇ID的接口。 

必须围绕可互操作的同一框架设计终端设备。因此,应用程序开发人员必须设置其协议栈参数,以匹配公共框架规定的参数值,以确保与使用相同框架的其他解决方案的可操作性。此外,开发商还可以使用专用(定制)框架自由修改协议栈参数,以满足其设计。然而,在专用框架中定义的簇ID没有能力与基于公共框架的设备相互操作。 

并非所有开发商都有选择框架的灵活性ZigBee所有设备都可以相互操作。虽然这种灵活性一开始会在市场上造成一些混乱,但允许开发商决定其产品是否与其他供应商的设备相互操作。功能强大,不需要互操作ZigBee专用框架可以开发,协议栈参数可以剪裁以满足特殊应用需求。 

5. ZigBee认证 

经认证的ZigBee硬件平台(芯片组和模块)和软件层(PHY层、MAC必须做层和网络层)ZigBee验证平台(ZCP)测试。通过ZCP认证硬件平台和软件协议栈表明适用于ZigBee研发终端产品。 

在ZigBee平台上开发的终端产品可以直接进行产品认证测试。终端产品认证允许产品出现ZigBee在认证产品列表中,并打上ZigBee标识。ZigBee联盟已经开发了相关的测试标准来验证基于公共和特殊框架的终端产品是否合格ZCP产品。 

尚未解决的ZigBee问题 

ZigBee标准正在不断改进,并将提供更多的功能,但同时ZigBee联盟也意识到,该规范仍存在一些问题: 

1. 更改网络地址  

如前所述,在ZigBee PAN分配给节点的网络地址可以改变,甚至在某些条件下重新命名。这使得网络必须解决不可靠的搜索机制,以确保数据发送到正确的设备。 

ZigBee为了提供更鲁棒的寻址机制,联盟正在考虑改变寻址机制。同时,包括MaxStream一些模块提供商开发了基于唯一64位地址的解决方案,以确保可靠的数据传输。  

2. 固定工作信道 

由于ZigBee采用802.15.4 MAC/PHY规范规定的直序扩频(DSSS)因此,可以在固定信道中工作。在通过能量扫描筛选出能量较高的信道后,选择工作信道。然而,一旦初始能量扫描完成,当所选信道质量恶化时ZigBee网络不能重置新的信道。占用202.11网络的设备很多(包括蜂窝电话、微波和802.11网络).4GHz频带,所以这可能是个大问题。目前,终端设备开发商必须解决其设计中的干扰问题。ZigBee联盟也在研究这个问题的解决方案。ZigBee新版本的标准化可能会解决这个问题。 

3. 容量限制 

ZigBee开始打算用64K闪存。但是,这个空间将很难满足802,需要可靠的数据传输、网络组网、更高的安全等级、低功率的终端设备等高级应用.15.4 MAC/PHY、ZigBee网络层等预期的应用功能要求。随着ZigBee先进的应用程序似乎需要迁移到具有更多闪存的微控制器。 

ZigBee实现方案 

随着市场需求的增长和ZigBee改进自身要素,部署认证ZigBee该方案将具有很高的价值。随着ZigBee现有规范的最新进展可以采用ZigBee架构开发可靠ZigBee解决方案。开发商必须从零开始开发自己的软硬件或集成经过验证的软硬件ZigBee仔细选择模块解决方案。 

开发鲁棒ZigBee解决方案,MaxStream公司在ZigBee在规范方面花费了大量的时间和精力。以下建议来自我们的实际经验,并计划采用这些建议ZigBee解决方案的开发商将受益。 

1. 硬件选择 

在开发ZigBee在解决方案时,首先要确定硬件平台。硬件平台通常由芯片组或模块组成。如前所述,ZigBee联盟定义了一个用于平台验证的联盟ZigBee ZCP,验证平台是否支持ZigBee方案。如果ZigBee想携带终端产品ZigBee标识并作为ZigBee认证产品上市,使用硬件平台和ZigBee必须使用软件协议栈ZigBee联盟认证为ZigBee兼容平台。 

2. 采用模块 

模块比芯片组提供了更多的优点。选择模块可以为开发商节省成本和痛苦RF前端设计、样机设计、产品测试和EMC测试。模块提供商通过了严格的应用测试和网络协议栈测试,并加入了简化ZigBee接口的一些功能。特别是MaxStream XBee该模块还提供固件,为解决尚未解决的问题提供鲁棒网络组网、可靠地址搜索甚至信道迁移策略ZigBee问题。 

如果模块固件不能满足特定应用程序的需要,一些模块提供商也提供了灵活的选择。在某些情况下(包括MaxStream XBee设计师可以在模块硬件上开发自己的应用程序,并定制以满足其需求ZigBee应用。虽然这种方案需要一些固件开发,但它仍然节省和RF设计、样机设计和EMC测试相关的时间和成本。 

3. 采用芯片组 

如果使用芯片组,设计师必须准备好支持无线设计所需的大量设计、测试和生产要求。定制板上的芯片组需要支持硬件生产过程,包括板级测试、调试和返工。如果选择此方案,则必须从IEEE获得24位OUI,为每台设备分配一个唯一的64位地址。 

当定制板使用芯片组时,设计师也必须选择一个ZigBee网络层协议栈。设计师必须将协议栈连接到他们的硬件上,并仔细测试ZigBee应用程序,并评估网络性能。许多未解决的问题,甚至所有未解决的问题ZigBee应用中必须解决所有问题,这将大大增加研发时间的成本。 

4. 设备开发 

定制固件必须在芯片组或模块平台上开发,以下步骤将有用。 

5. 选择框架类型 

在着手开发ZigBee在设备之前,设计师必须确定是公共框架还是特殊框架更能满足需求。设备需要与其他普通设备一起使用ZigBee产品兼容还是只适合特定应用?协议栈参数是否需要调整到最佳性能?如果特殊框架更合适,则需要方向ZigBee联盟申请特殊框架。 

6. 确定路由策略 

开发商应该知道是否允许使用树路由。对于简单的静态网络,树路由就足够了。如果有些节点可能被删除或需要可靠的数据传输,树路由就不够了。此时,评估协议堆栈何时调用路由发现需要一些时间。 

如果所选的ZigBee协议栈符合增强型ZigBee使用路由找到要求的原语和规范nwkUseTreeRouting控制路由发现和去除树状路由的属性。如果采用网状路由,开发商应考虑如何执行所有路由表入口。因为ZigBee规范不监管老化路由和过期路由表,所以有些ZigBee协议栈不会去除旧的路由表。一旦所有路由表被占用,设备将不再参与路由发现。若协议栈不能老化或取代过期条目,应用层应加入自己的监管措施。 

7. 考虑固定信道操作 

对许多应用程序来说,即使然的干扰,ZigBee网络也可以在固定信道上可靠地工作。但是,对于那些必须与其他系统在同一频段工作或不允许数据包意外丢失的系统,有必要支持信道的迁移。因为目前的ZigBee该规范尚未定义信道迁移机制。应用程序开发人员可以决定将网络转移到新信道,并开发相应的实现计划。 

8. 克服寻址限制 

在许多应用程序中,目前的网络地址分配机制就足够了。然而,为了防止地址重复的可能性,更鲁棒ZigBee解决方案应具有复位网络地址的能力(如更换协调器)。 

由于设备的网络地址不可靠且会发生变化(例如,设备在加电周期或复位后找不到父亲的设备),应用层也可能需要一个解决方案来识别每个节点。 

为了确保数据发送到正确的设备,包括MaxStream XBee在内的一些ZigBee解决方案依赖于唯一的64位地址。如果采用此方案,应用层必须具有相应的配置功能,以便在传输数据之前将64位地址转换为16位网络地址。 

9. 测试 

测试应包括验证系统如何对本文中提到的应用场景进行反应。当路由器关闭时,系统会发生什么反应?系统将如何执行工作信道中的干扰?如果设备接收到新的网络地址,如何找到新的地址?需要重申的是,一些模块和协议堆栈开发商已经开发了解决这些问题的配置方案,大大减轻了应用开发商的开发负担。 

本文小结 

虽然ZigBee前进道路面临一些重要问题,但ZigBee联盟毅力强,领导能力强,为标准升级做出了积极贡献。即使在初级阶段,也能为设计师提供强大的网络功能和应用灵活性ZigBee也完成了规范的重要基础工作。  

由于嵌入式设备领域有强大的领导联盟,ZigBee嵌入式设备市场正在发挥重要作用。目前ZigBee为了增加,联盟正在讨论配置问题ZigBee并试图解决价值问题ZigBee许多遗留问题尚未在规范中解决。经过ZigBee认证模块和网络协议栈正在上市。他们提供了强大的网络解决方案,并有效地解决了目前的问题ZigBee规范中有很多限制(即使不是全部)。现在开始开发可靠、低功率、更划算的产品ZigBee该解决方案了。 

本文来源:rfid世界网