- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
如何开发更具鲁棒性的ZigBee解决方案
3. ZigBee路由
ZigBee包括一个用于AODV网状路由的基本框架。如果一个设备需要向其它设备发送数据,它首先需要发现一条可能要经过多台路由器才能到达目标设备的路由。网状路由允许动态地建立、修改或替换传输路径,从而保持设备间有一条可靠的路径。
然而,除网状路由之外,ZigBee规范还经常依赖树状路由。在树状路由中,数据将在源设备和目标设备之间的“树”状路由上严格地按照从父到子或从子到父的路径传输。
图2:树状路由(左)和网状路由(右)的演示。
当节点移动或删除时路由可能出现问题。这时如果单个节点无法从一条路由中隔离开来,那么整个树状路由就无法定位故障点。而网状网络就能在现有路由发生故障时发现一条新路由。
ZigBee协议栈按照规范采用树状和网状路由的ZigBee 1.0标准而建立。两种路由之间的交互是相当复杂的,而且协议栈之间的交互也是不断变化的。但是,增强型ZigBee规范(2006)增加了一个nwkUseTreeRouting功能,该功能可以使整个树状路由彻底断开,再由(NLME)路由发现请求(route-discovery-request)原语根据需要强制进行路由发现。这些功能可以解决与树状路由相关的问题,并且允许开发商充分发挥网状路由的优势。
图3:当所建通道上的一个节点失效时树状路由(左)和网状路由(右)的性能。
4. ZigBee互操作性
ZigBee规范包括一些可以用来定义各种网络的配置功能。开发商可以很容易地配置以下参数:目标系统中的路由器和/或终端设备数量;安全级别;路由表和邻居表规模;网络最大深度(从协调器到最远派生设备的连接深度);协调器/父路由器允许的子路由器和终端设备的最大数量。
ZigBee联盟研发出了为这些不同协议栈建立通用设置的公共框架-可配置参数表。为了完成框架(如家庭控制协议栈框架就定义了开灯、关灯、或切换一个灯光的簇ID)内的共同任务,该框架还定义了一些称作簇ID的接口。
终端设备必须围绕可互操作的同一框架来设计。因此,应用开发商必须设置他们的协议栈参数以匹配公共框架所规定的参数值,从而确保与采用同一框架的其它解决方案的互操作性。另外,开发商也可以为了满足其设计而通过采用专用(定制)的框架来自由修改协议栈参数。不过,在专用框架中所定义的簇ID不具备与基于公共框架的设备互操作的能力。
由于开发商具有选择框架的灵活性,从而并非所有的ZigBee设备都能互操作。虽然这种灵活性一开始会在市场上引起一些混乱,但允许开发商决定其产品是否要与其他供应商的设备进行互操作。在不需要互操作性的场合,功能强大的ZigBee可以围绕一个专用框架进行开发,并剪裁协议栈参数来满足特殊应用需求。