摘要: 本文详细探讨了使用无线网络分析器调试ZigBee协议系统的基本方法,从而便于更好地确保网络的可靠性。
关键词: 无线网络分析器;ZigBee;802.15.4
短距离无线网络市场正呈爆炸性增长。In-Stat称,通过ZigBee协议规范和其他专有协议,到2009年IEEE 802.15.4无线个人局域网(PAN)的市场可实现200%的增长,年发货量将超过1,5000万单位。
对于无线设计人员而言,目前有许多射频(RF)收发器和ZigBee协议栈可用来在应用中实现ZigBee协议功能。无论选择了哪种收发器和协议栈,设计工程师都应该查找能够帮助他们快速评估和开发ZigBee协议应用的设备和工具。若已确定ZigBee协议的复杂度,那么设计人员也需要使用合适的开发工具来帮助他们设计和调试应用程序。
有多个无线网络分析器或“嗅探器”可供使用。在您首次开始无线开发时,获取一个无线网络分析器是一项关键性投资,可为您免去许多麻烦。有些分析器具有图形界面,而有些分析器则具有更为基于文本的界面。请确保选择的分析器具有易于阅读的界面。在以下示例中,我们将使用Microchip的ZENA无线网络分析器,它采用图形的格式显示消息。但是不管您选择了哪种分析器,能够快速解密ZigBee协议消息的密钥部分将有助于您高效地开发和调试系统。
网络构成
设备加入 ZigBee协议网络时出现的消息会告诉我们许多关于网络的信息。当设备试图加入一个网络时,它会发出一个信标(beacon)请求。邻近的协调器或路由器通过发出信标作出响应。新设备将选择一个信标,然后向该设备发送一个关联请求,请求加入网络。在一段短暂延时后,新设备发送一个数据请求,请求响应。网络设备则发送一个关联响应,指示该新设备是否已被网络接受。这些消息显示如图1。
图1 网络构成(如果您采用了ZENA无线网络分析器,那么在设备加入网络时
应显示与此类似的消息。此工具的快照显示了有关网络状态的许多信息)
第一条消息来自于新设备,用于请求信标。后两条消息是信标。我们可以从这些信标中知道一些关于设备的有用信息。首先,我们可以知道第二条信标来自于协调器,因为其源地址为0x0000且信标有效负载中指定的深度为0。第一条信标来自于路由器,因为其源地址非零。我们也可以知道此路由器会通过该协调器加入网络,因为它在同一个网络上(源PAN是相同的)且信标有效负载“深度”为1。我们还可以知道在应用层,这两个设备都将接受新设备加入网络,因为超帧规范“Assoc”位被置1。但是,如果我们查看信标有效负载,我们可以看到协调器不能接受任何其他路由器或终端设备加入网络,因为“RtrCap”和“DevCap”位均为0。同时,路由器仍然可以接受路由器和终端设备。
在第四条消息中,新设备已决定试图加入网络。通过检查关联请求的目标地址,我们可以知道新设备正试图加入哪个网络设备——路由器。关联请求可告诉我们关于新设备的许多信息。其关键元素是“Dev”和“RxOn”位。“Dev”位指示设备正试图作为终端设备加入。而且,可以知道此设备将总是保持其收发器开启,因此其父设备不必为其缓冲消息。 此位对于以后的通信很重要。如果“RxOn”设置为关闭,那么其父设备将认为新设备保持其收发器关闭,它将为新设备缓冲消息。如果新设备从未请求消息,那么父设备也从不会发送消息给它!
最后,我们可以看到关联请求成功。现在我们在网络上有了一个新的FFD (全功能设备)终端设备,其短地址为0x1AF9。
应答的发送
ZigBee协议是一个高度应答的协议。有三个应答级别:MAC(介质访问控制)、APS(应用子层支持)和AF(应用框架)。这不但提高了系统的可靠性,也使我们在发生问题时能够识别故障所在。在图2中,设备0x0001正告知设备0x0000来使用应答的所有三种级别将属性设置为指定值。
图2 消息应答(ZigBee协议的可靠性大多来自于扩展的应答功能。
可使用应答的三种级别来对ZigBee协议网络进行故障诊断)
第一条消息是发送给设备0x0000、要求设置属性的命令。接下来是一条短MAC应答,指示接收设备的收发器正确接收消息,通常可由收发器自动生成。ZigBee协议指定所有消息必须请求MAC应答。在第一条消息的APS帧控制字段中,有一个位指示是否请求了APS应答。如果该位置1,那么接收方ZigBee协议栈的APS层将自动生成一条APS应答,如第三条消息所示。此应答指示目标设备的协议栈接收到了消息。APS应答还将生成另外一条MAC应答,如第四条消息所示。
查看第一条消息的事务解码,我们将看到使用了“Set with Acknowledge”命令。这是一条发送给应用层的指示,应用层必须使用“Set Response”命令对该命令进行应答,如第五条消息所示。此应答指示应用层接收到了消息,而且在将属性设置为请求的值时,发送的错误代码将指示是否存在任何问题。AF 应答将生成另外一条MAC应答,如第六条消息所示。此外,发送的AF应答带有请求的APS应答,这将生成第七和第八条消息。这些多层应答会产生相当大的数据流量,但是如果消息链中出现中断,我们将更容易定位问题,如表1所示。
表1 确定ZigBee协议根源问题
拓扑问题
当开发了无线网络系统之后,无线网络分析器可以帮助进行安装和拓扑分析。一些无线网络分析器,如ZENA无线网络分析器在内,当消息经由网络的时候都能够以图形的方式显示数据流量。设备以圆形节点表示,而消息则以连接到节点的线表示若装载了描述物理布局的位图,则拓扑问题将清楚得多。
假设有一个网络,它有四个设备、一个协调器、两个路由器和一个FFD终端设备。尽管所有设备都是全功能设备,还是可以从数据包分析中看出,FFD终端设备和任一路由器之间的消息是通过另一个路由器发送的。如果打开“Network Configuration Display”(网络配置显示)窗口,装载描述性位图,并将节点拖到描述其物理位置的位图上的相应位置时,那么可以很快地看出发生了什么。图3显示了“Network Configuration Display”窗口,其中网络流量有问题。我们可以看到有两个设备彼此都不在对方的射频范围内,很有可能是由于建筑物内的隔墙造成的。消息必须经过另一个设备路由才能到达其目标设备。因此,尽管这种情况一开始有点糟糕,但现在可以看出系统行为与预期设想完全一致。
图2 消息应答(ZigBee协议的可靠性大多来自于扩展的应答功能。
可使用应答的三种级别来对ZigBee协议网络进行故障诊断)
注意,一个“嗅探器”可能无法看到网络上所有节点。为了观测所有网络流量,可能需要获得来自不同位置的多个消息捕获,或者使用位于不同位置的多个“嗅探器”。
结论
ZigBee协议比许多无线协议简单,但是仍然需要使用正确的工具才能高效而有效地开发应用。从确认正在发送正确的数据值到理解网络超帧,无线网络分析器是任何人员进行无线网络开发的基本工具。
参考文献:
1. ZigBee Protocol Specification,http://www.zigbee.org
2. PICDEM Z Demonstration Kit User’s Guide(DS51524),http://www.microchip.com/zigbee
3. IEEE 802.15.4 Specification,http://www.ieee.org