- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于Zigbee技术的家用无线网关的设计
考虑到目前还没有完全可以用的Zigbee协议栈,在这里定义并实现了—个基本功能的Zigbee协议栈。其基本结构为:
(1)phy层:该层主要实现与具体Zigbee模块硬件有关的操作。
(2)mac层:基于phy层提供的接口,实现对Zigbee网络的基本初始化,设置PAID,设置IEEE 64位地址,选择通信通道,实现接收和发送Zigbee数据包功能。
(3)nwk层:该部分用来从mac获得接收到的数据,对数据进行分析,进行一系列的操作。根据发送来的数据,如果是应用层的数据,向上传递接收到的数据。如果是网络层命令,则进行具体操作。
实现的网络层命令有:
a)终端节点(RFD)请求加入该网络:进行验证,并为加入的终端节点分配地址。
b)终端节点(RFD)请求离开该网络:进行验证,并将该节点从节点信息列表中删除。
c)终端节点(RFD)加入该网络成功。
d)终端节点(RFD)离开该网络成功。
除此之外还包括针对这些请求的FFD响应命令。
(4)app层:该层从nwk层获得数据,并根据数据内容进行操作,与具体应用有关。
3 家用网关的具体操作流程及其伪代码
Zigbee协议栈与TCP/IP协议栈,分别作为uCOS-II系统的两个任务,这两个任务之间通过消息队列或者邮箱的形式进行数据通信,用以实现任务的数据交换。
在启动主机软件时,用户通过设定要连接的Zigbee网关IP,从而使用Zigbee网关的连接。在连接成功以后,PC主机请求Zigbee网络中所有节点的信息,Zigbee网关将Zigbee网络中所有的节点信息发送给主机,主机软件显示所有可能的节点。获得所有节点信息以后,用户就可以选择要通信的节点,并通过TCP将所有的操作信息发送给该节点,从而实现对节点控制和监控。
这里写出Zigbee协议栈任务基本流程伪代码。
4 网关调试方法
具体的操作过程:
(1)打开串口调试助手软件,设置波特率为57 600,8位,l位停止,无奇偶校验和流量控制协议。
(2)连接好Zigbee与PC的串口,同时连接电源。
(3)在串口调试助手软件中将显示有关设备启动的信息和Zigbee网关相关信息。这时说明Zigbee网络已经初始化完成,并形成了一个Zigbee网络。
(4)打开主机软件,设置好连接的网关IP地址,然后点击"连接"按钮,这时在软件左边的列表框中显示所有的Zigbee节点信息,也可以通过下面的"刷新节点信息"来获得最新的节点信息列表。
主机软件最下面的只读编辑框,里面显示的是一些日志信息,方便调试。图3显示了网关调试情况:
5 结论
通过网关设计分析,发现该网关具有实用性和可行性。在网关的设计过程中,遇到不少困难,比如目前还没有适用于ARM平台的Zigbee协议栈,只能对现有的各种Zigbee协议栈进行修改和移植,以适合ARM平台,这一步实现起来较为复杂。另外,为了节省设备成本,测试中两个RFD设备同时接在一个Zigbee无线网关设备上,距离较近,在实际生产测试中并不适用。
来源:维库开发网