如何利用zigBee网络协议做嵌入式网关设计?
针对如何将基于ZigBee的网络接入基于TCP/IP的互联网,提出了一种基于
ZigBee的嵌入式网关的设计方案。网关硬件选用PXA270嵌入式平台与CC2430无线模块,基于Windows CE操作系统和Z—Stack协议栈,来实现网关的数据转发和ZigBee网络管理功能。 引言
物联网是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。它具有普通对象设备化、自治终端互联化和普适服务智能化3个重要特征。
随着物联网技术的发展,基于ZigBee技术的无线传感器网络己经被广泛的应用到人们的生产及生活当中(如家庭自动化、智慧农业等)。如何将ZigBee网络接入到互联网,是人们在应用ZigBee技术组网时所面临的一个热点问题。
然而,ZigBee协议与互联网中所使用的TCP/IP协议并不兼容,要想把ZigBee网络接入到基于IP的互联网,就需要一个设备来完成两个异构网络间数据的转发。因此,提出了网关的概念,由网关来完成两个异构网络之间数据的转发。本文使用PXA270嵌入式平台和CC2430 ZigBee模块,基于windows CE6.0嵌入式操作系统和Z—Stack协议栈,设计了一种嵌入式网关的解决方案。网关工作在两个异构的网络之间,连接着无线传感网络和互联网,其功能包括异构网络之间的数据转发和对ZigBee网络的管理。 1 系统整体设计
网关整体设计如图1所示,其总体上包括CC2430ZigBee模块、PXA270嵌入式平台、以太网口、电源模块和其他外设模块。
网关的软件设计基于Windows CE6.0嵌入式操作系统和Z—Stack v1.4.3协议栈。Windows CE6.0系统功能丰富、内核稳定,是高度模块化的系统,具有占先式多任务调度和强大的网络通讯能力。系统支持Winsock网络编程接口,通过C/S Socket通信模型实
现网关和互联网客户端的命令和数据交互。Z—Stack v1.4.3协议栈是TI公司开发的完整支持ZigBee 2006的协议栈,该协议栈提供了大量的编程接口函数,方便基于该协议栈进行开发设计。
设计中CC2430 ZigBee模块通过串口与PXA270嵌入式平台连接。Windows CE和Z—Stack协议栈都提供了对串口通信的支持,调用相应的串口API就可以实现对串口的读写等操作,这样也就方便了PXA270嵌入式平台和CC2430 ZigBee模块之间的串口通信程序的设计。 2 各模块软件的设计 2.1 ZigBee协调器模块部分
ZigBee网络由一个协调节点、多个路由节点和多个终端节点构成,设备类型通常在编译时通过编译选项决定(ZDO COORDINATOR and RTR NWK)。本设计中与PXA270嵌入式平台通过串口连接的CC2430模块作为整个ZigBee网络的协调节点,其主要作用是:(1)数据收发。接收 ZigBee网络上传的数据,解析并通过串口转发至PXA270平台;转发PXA270平台要发送到zigBee网络中的数据。(2)ZigBee网络管理。包括网络信道和网络ID的选取、网络的启动、节点的加入等。协调节点的程序流程图如图2所示。
协调节点与PXA270平台通信时,需用到Z—Stack提供的串口应用程序接口函数。其中,HalUARTInit()用来在设备启动时初始化串口(如设置波特率为115200),HalUARTOpen()、HalUART Close()用来打开和关闭串口,HalUARTRead()、HalUARTWrite()用来完成对串口的读写。
2. 2 PXA270嵌入式平台部分
PXA270嵌入式平台作为网关的主要控制模块其功能包括:与ZigBee协调节点通信,接收协调节点通过串口转发的数据或将控制命令发送到协调节点;通过基于TCP/IP的流式Socket方式与IP网络通信,如上传数据、接收远程命令。PXA270平台的工作流程如图3所示。
本设计中通过两个线程来分别完成上述两个方面的工作,分别是串口通信线程和Socket通信线程,两个线程采用互斥机制实现对公共缓冲区的互斥访问。 3 测试结果
对设计方案进行ZigBee组网测试和系统整体测试。在ZigBee组网测试中,ZigBee协议栈的参数配置为默认值(MAX DEPTH=5,MAXROUTERS=6,MAX CHILDREN=20),地址分配方式选择分布式分配机制。将ZigBee协调器通过串口直接与电脑的COM1口相连,由ZigBee协调器通过串口向电脑发送ZigBee网络中的节点网络ID,通过串口调试助手显示ZigBee网络中的节点信息,其测试结果如图4所示。
在系统整体测试中,将ZigBee协调器通过串口直接与PXA270嵌入式平台的串口相连,由ZigBee协调器通过串口向PXA270嵌入式平台发送 ZigBee网络中的节点网络ID,PXA270嵌入式平台通过C/SSocket通信模型实现网关和互联网客户端的命令和数据交互,其测试结果如图5所示。 4 结论
针对如何把基于ZigBee无线网络接入到基于TCP/IP的互联网的问题,本文提出一种基于WindowsCE嵌入式操作系统和 ZigBee协议栈的嵌入式网关的设计方案,对网关的基本功能进行了实现。使ZigBee网络采集到的数据能够通过网关转发到基于TCP/IP的网络,通过网关能够完成对ZigBee网络的管理,达到了两个异构网络互联互通的目的,具有切合实际的应用价值。