作者:杨顺 章毅 陶康
1 引言
ZigBee是一种新兴短距离、低功耗、低传输速率的无线传感器网络通信技术。以IEEE802.15.4 为标准,通过传感器节点相互通信,以接力的方式将采集数据传到另一个网络节点或协调器节。该技术使用免费的IMS 的2.4GHz、915M 和868MHz 频段,传输速率为20K 至250Kbps,具有双向通信功能。它适用于通信数据量不大,传输速率相对较低,分布范围较小的,而且成本和功耗较低的场合。
随着计算机分布式处理、互联网等技术被广泛应用,计算机的联网需求迅速扩大。如何通过现有网络基础设施对传感器网络进行远程管理,逐渐成为传感器网络和计算机网络研究课题。
基于ZigBee 和以太网的无线网关设计就是在无线传感器网络和互联网之间搭建一条数据传输通道。
本设计中数据传输系统将ZigBee 数据包转化为以太网的TCP/IP 协议的数据包,实现数据在两个协议之间的双向传输,搭建联系二者之间的一条透明传输通道,完成ZigBee 技术和以太网互通,从而实现对现场的监测和远程控制。
2 系统概述
结合ZigBee 和以太网的数据传输网络体系统包括ZigBee 网络和以太网两部分。ZigBee 网络通过网络节点将采集数据以多跳变的方式传送到ZigBee 汇接点,汇接点将数据发送到网关,网关进行ZigBee数据包解析,从数据包中提取有效信息数据,进行协议转换和数据包重新封装打包成TCP/IP 数据包,经过以太网传输将数据送到控制中心,完成整个网络的数据传输。图1 给出了结合ZigBee 网络和以太网的数据传输网络体系结构。
图1 结合ZigBee 和以太网的数传网络体系结构
网关是建立在传输层以上的协议转换器,连接ZigBee 和以太网两个相互独立的网络,实现ZigBee和以太网协议转换,并将数据压缩打包封装,在转发之前经MCU(微处理器)将它转化为另一种数据包格式,而不需要外加协议转换器件,完成二者之间的协议转换和数据传输。从结构图可抽象出结合ZigBee和以太网的网关结构,如图2 所示。
图2 结合ZigBee 和以太网的网关结构。
3 芯片选型
3.1 ZigBee 芯片的选型
选用成都Chipcon 公司的无线收发芯片CC2430作为本设计ZigBee 网络的传输方案。
CC2430 是一颗真正片上系统芯片,内部集成一个高性能2.4GHz 直接序列扩频 (DSSS)射频收发器核心和一颗工业级加强型8051 内核[3],无需再选另外的处理器,使设计简化。
3.2 以太网芯片的选型
选取台湾RETLTEK 公司的网卡芯片RTL8019,该芯片ISA 总线高度集成,具有价格低,接口简单,不需要转接芯片,兼容性强等特点。
4 总体设计
4.1 硬件设计
本设计采用CC2430 片上8051 内核作为整个系统的MCU,来控制以太网芯片RTL8019,实现ZigBee和以太网协议转换和数据传输。硬件框图如图3 所示:
图3 硬件结构框图。
由于CC2430 只提供SPI 总线和UART 的接口,硬件接口没有选用另外的转接芯片而采用软件模拟的方式来解决地址数据的总线接口问题,从而使系统的硬件设计简化。硬件接口采用8 位数据总线方式,通过跳线的方式来选择RTL8019 在ISA 总线上的数据读取方式的,使RTL8019 工作在8 位数据总线方式。
4.2 协议转换设计
图 4 网关协议转换框图。
在TCP/IP 协议簇中,以太网的数据传输使用硬件地址(MAC)来进行识别,其中,ARP(地址解析协议)完成IP 地址和数据链路层使用的硬件地址之间的转换 [4],因此为了保证ZigBee 网关在以太网中的通信,首先要实现ARP 协议的功能。ZigBee 网络中节点都拥有自己唯一的MAC 地址,参考TCP/IP 下的实现机制,实现ZigBee 协议中的适配层和ARP,实现IP 地址到ZigBee节点地址的映射。协议转化框图如图4 所示,据图描述数据从ZigBee 向以太网方向转换过程:无线网络中ZigBee 节点,接收指令将数据包打包,简单判断后向上发送给本地ARP,通过ARP 解析出该节点的网络MAC地址,确定要发送到的以太网地址;然后向上发送给网关应用程序,经分析后发送到对应的以太网UDP 或TCP处理函数进行相应处理,向下发送到以太网端口MAC地址。这样就完成了数据从ZigBee 向以太网的协议转换过程。
4.3 数据传输
数据包发送流程如图5 所示:调用初始化函数,初始化CC2430 和RTL8019,设置通讯频率和本地地址,调用radioSend(sendBuffer,sizeof,remoteAddrDO_NOT_ACK)函数,确定要发送的数据的长度,定位要发送数据的目的地址,判断是是否超出最大有效载荷允许的长度,否则数据被分成几个包发送;然后调用sppSend(&txData)函数,该程序用来发送数据指针指向的数据包。首先设置DMA 方式,禁止RF中断添要发送的数据包的格式(SPP_RX_STRUCT),加载的包长,目的地址,源地址、标志位以及有效载荷,打开接受确认链路,然后发送数据。如果设置要求确认,则会自动切换到接受状态;如果设定的确认帧的最大接收时间还没有接受的则会设定重发标志;如果重发还没有接受则回报告发送失败。
图 5 数据包发送流程图。
5 硬件电路
硬件电路主要包括CC2430 和RTL8019 两部分。
5.1 CC2430 硬件电路
图 6 CC2430 硬件电路图。
CC2430 部分是ZigBee 网络无线收发部分,采用32MHZ 晶振为系统提供时序。电路使用一个非平衡天线,连接非平衡变压器可使天性接收性能更好。
非平衡变压器由电容C12 和电感L2 组成,满足RF输入输出匹配电阻50 欧姆的要求。
CC2430 提供的I/O 口分别作8 位数据总线,地址总线和控制总线,具体分配如下:P0 口作8 位数据口;P1 口的低5 位作地址口;P2.0,P2.3 分别作读写的选通信号;P2.4 口作中断申请信号线。
5.2 RTL8019 硬件电路
RTL8019 负责将ZigBee 数据包转换为TCP/IP数据包。电路中采用20M 晶振提供工作时序。本地DMA 接口把网卡芯片与网线的连接通道,完成控制器与网线的数据交换。
工作模式:RTL8019 的第65 脚JP 决定网卡芯片的工作方式,接高电平为跳线工作方式。
I/O 口:RTL8019 的81、82、84、85 引脚决定I/O 口地址,设计中全部悬空,选择的地址为0300H.
图 7 RTL8019 硬件电路图。
网络接口:由RTL8019 的74、77 引脚决定,使用自动检测,64 引脚为低电平,使用BNC 接口。
中断:RTL8019 的78、79、80 引脚决定芯片的中断方式,设计中全部悬空,选择的中断是INT0.
6 结语
该网关功耗低、体积小、设计简单,可满足小数据量的要求。在ZigBee 近距离无线通信和以太网远程数据传送之间搭建一座桥梁,为ZigBee 传感器网络提供了以太网网络平台,使ZigBee 在无线传感器网络的应用更广泛。