《基于ARM9的Zigbee网关设计与实现.docx》由会员分享,可在线阅读,更多相关《基于ARM9的Zigbee网关设计与实现.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于ARM9的Zigbee网关设计与实现yangliu导语:设计并实现了一个基于ARM9处理器的Zigbee无线传感器网络嵌入式网关,用来完成Zigbee和Internet之间数据的透明转换设计并实现了一个基于ARM9处理器的Zigbee无线传感器网络嵌入式网关,用来完成Zigbee和Internet之间数据的透明转换。给出了该网关的硬件方案设计和主要软件编程思路以及一种新型网关的协议转换方案的实现思路。该网关具有较好的通用性。引言无线传感器网络WirelessSensorNetwork,WSN是指由大量成本相对低廉的,具有感悟能力、计算能力、实时通信能力的传感器节点组成的嵌入式无线网络,是当
2、前诸多领域的研究和应用热门。建立在IEEE802.15.4LR_WPAN,低速率无线个人区域网上的Zigbee协议是应用于无线监测与控制的全球性无线通信标准,是无线传感器网络组网的首选技术之一。随着Zigbee无线传感器网络技术的广泛应用,怎样通过现有网络基础设施如Internet、GPRS等对其进行远程管理、控制感测环境中的各种传感装置,逐步成为该领域的重要研究课题。图1给出了基于Zigbee的无线传感器网络体系构造,如图示Zigbee网关在整个无线传感器网络体系中起着重要的枢纽作用,同时也是WSN整体系统的“瓶颈之一。当图1中的服务器或用户部分为其它Zigbee网络时,通过Zigbee网关
3、和Internet或GPRS做媒介,就使得世界范围内的不同监测区域都能够信息分享,这大大缩小了物理世界的时空距离。图1基于Zigbee技术的无线传感器网络本文主要研究的是Internet环境下基于Zigbee传感器网络的网关设计及其实现。1系统概述网关是建立在传输层以上的协议转换器,通常它连接两个或多个互相独立的网络,每接收一种协议的数据包后,在转发之前将它转换为另一种协议的格式。考虑到Zigbee节点的通信能力有限数据速率仅为250Kbps,为了减少网关协议转换本身的工作量,本网关选择了一款集成Ethernet接口的ARM9芯片来完成硬件系统的搭建。本网关采用模块化设计方案,如图2所示由硬件
4、层、软件层和应用层三大部分组成。其中硬件层描绘了网关的硬件实现,在后文将具体介绍;软件层移植C/OS-II实时操作系统内核、Zigbee和嵌入式TCP/IP协议栈LwIP,实现了Zigbee和TCP/IP协议的双向透明转换,同时封装一些关键API函数供给用层程序调用;应用层运行的是用户编写的应用程序,用户能够根据实际需要使用下层定义的API自行扩大相关应用。图2Zigbee网关总体构造2硬件设计网关硬件构造如图3所示,由内部集成以太网MAC的ARM9处理器STR912FW44X、Zigbee射频收发模块CC2420、大容量DataFlash存储卡片AT45DCB008、以太网收发芯片PHYRT
5、L8201和带触摸功能的LCD显示模块LQ084V1DG21等模块组成。图3Zigbee网关硬件构造其中STR912FW44X作为硬件系统的主控芯片,它是意法半导体STMicroelectronics推出的基于ARM966E-S内核,片内集成Flash、USB、CAN、以太网MAC、AC马达控制、ADC、RTC、DMA等接口的高性能ARM9SOC,最高主频可达96Mhz;Zigbee射频收发芯片CC2420是挪威Chipcon现为TI推出的符合2.4GHzIEEE802.15.4和Zigbee标准的射频收发器。CC2420采用O-QPSK调制方式,工作频带范围为2.4002.4835GHz,接
6、收灵敏度为-94dBm,抗邻频道干扰能力为39dB。利用此芯片开发的无线通信设备支持数据传输率高达250Kbps,能够实现点对多点的快速组网;AT45DCB008是Atmel公司推出的新型DataFlash存储芯片,在该网关中用来保存网络故障状态下的数据信息。AT45DCB008中的数据按页存放,主存共8192页,每页1024字节,总容量约为8M字节,每页的擦写次数保证在100,000次以上;以太网PHY层芯片采用的是Realtek公司的RTL8201BL,它是一个单端口的物理层收发器,实现了全部的10/100M以太网物理层功能;显示部分采用的LQ084V1DG21是SHARP公司的带触摸屏8
7、.4英寸TFT数字液晶显示屏,分辨率为640480。3嵌入式网关软件设计3.1C/OS-II下的LwIP的移植C/OS-II是一个抢占式的实时多任务内核操作系统,具有开放源码、可固化、可剪裁、高稳定性和可靠性等特点。目前国内外对C/OS-II的相关研究已有很多,其在STR912处理器上的移植在此不再赘述。LwIP是瑞士计算机科学院开发的轻量级LightWeight开放源码TCP/IP协议栈,目前最新版本为1.2.0LwIP协议栈把所有与硬件相关、OS、编译器相关的部分独立出来,放在/src/arch目录下,能够是讲其在设计时就考虑了移植问题。LwIP在C/OS-II上的移植就是修改这个目录下的
8、文件,其它的文件一般不做修改。需要修改和本人编程实现的是下面几部分:与STR912及IAR编译器相关的include文件;C/OS-II模拟层相关代码编写;与C/OS-II相关的一些构造和函数;lib_arch中库函数的实现;STR912网络驱动程序编写。完成以上代码移植的工作后,LwIP就能够顺利运行在C/OS-II下,主要通过下面程序完成LwIP的初始化及运行:mainlwip_init_task,LineNo11,lwip_init_stkTASK_STK_SIZE-1,0;/创立LwIP初始化任务OSTaskCrateusr_task,LineNo12,usr_stkTASK_STK_
9、SIZE-1,1;/创立用户任务OSStart;/启动LwIP在main函数中创立了lwip_init_task来初始化LwIP任务优先级为0和usr_task用户任务优先级为1。需要指出的是,在lwip_init_task任务中除了完成初始化硬件时钟和LwIP本身等工作之外,还创立了tcpip_thread优先级为5和tcpecho_thread优先级为6,其中tcpip_thread才是LwIP的主线程,也是应该先创立的。3.2C/OS-II下的Zigbee协议栈的实现我们在该网关平台上运行自主编写Zigbee协议栈的子集ez_PAN。ez_PAN目前还很不完善,只实现了Zigbee的部分
10、关键功能,仅支持星型和簇状网络Cluster,支持网络的动态组网配置和动态绑定等。ez_PAN协议栈构造如图4所示:图4ez_PAN协议栈构造下面给出ez_PAN协议栈上的协调器Coordinator、路由器Router和精简节点RFD实现的关键代码。Coordinator通过aplFormNetwork函数建立网络,等待其它节点Router和RFD的参加,主要程序如下:MainhalInit;/初始化HAL层hawInit;/硬件初始化aplInit;/初始化APLENABLE_GLOBAL_INTERRUPT;/开中断aplFormNetwork;/建立网络whileapsBusyapsF
11、SM;/等待建立完成while1apsFSM;/循环执行协议栈其中调用apsBusy来判定当前协议栈能否忙于其它程序调用,apsFSM是在APS层上实现的FSM有限状态机,被apsBusy周期调用来维持ez_PAN的运行。在Coordinator建立网络完成后,允许Router或RFD节点动态参加,关键代码实现如下:doaplJoinNetwork;/Router或RFD参加网络whileapsBusyapsFSM;/等待参加完成whileaplGetStatus!=LRWPAN_SUCCESS;3.3协议转换软件设计在TCP/IP协议簇中,以太网的数据传输使用硬件地址MAC来进行识别,其中A
12、RP地址解析协议完成IP地址和数据链路层使用的硬件地址之间的转换,因而为了保证Zigbee网关在以太网中的通信,首先要实现ARP协议的功能。Zigbee网络中的节点数理论上最多可达65536个,每个节点同样有本人唯一的MAC地址64位长地址或16位短地址。参考TCP/IP下的实现机制,我们实现了Zigbee协议中的适配层和ARP,实现IP地址到Zigbee节点地址的映射。协议转换的工作原理如图5所示,下面简单描绘一下数据包在网关中从Ethernet向Zigbee单方向转换经过:Ethernet端从某网络接口接收一个正常发往本机的IP数据包,简单判定后向上发给对应的UDP或TCP处理函数进行相应
13、处理,然后再向上发给网关应用程序处理;网关应用程序经过简单分析后,确定要转发给Zigbee网络中的哪个节点,通过Zigbee端的ARP解析出该节点在Zigbee网络中的MAC地址,然后将相应数据包成功交至该节点,这样就完成此次从Ethernet向Zigbee端的协议转换。Zigbee向Ethernet端转换类似,不再赘述。图5网关协议转换框图4结论本文设计的网关已在我们的“基于Zigbee无线传感器网络的煤矿井下定位跟踪系统项目中得以实用,获得了较好的效果。经测试该网关具有效率高、响应实时、可靠性高、功耗低,抗干扰能力强等特点,同时具有很好的通用性。由于当前Zigbee技术还在不断的更新和完善
14、中,怎样跟踪最新的Zigbee技术来提高网关的性能以及怎样提高ez_PAN的多平台可移植性,将是我们以后研究的重点。本文作者创新点:采用集成EthernetMAC接口的ARM9芯片STR912作为核心扩展设计了一个Zigbee网关,它很好地克制了传统网关架构下Zigbee传输速率的瓶颈,大大降低了协议转换经过中的资源和处理时间消耗。该网关设计思路、技术实现新颖,具有较强的实用性。参考文献1Zigbeespecificationv1.1.ZigbeeAlliance.zigbee.org,20062LwIPv1.2.0sourcecode.LeonWoestenberg.savannah.nongnu.org/projects/lwip/,20063PatrickKinney,KinneyConsultingLLC.Gateways:BeyondtheSensorNetwork.ZigbeeAlliance,20054ece.msstate.edu/reese/msstatePAN/,20065赵晨,何波,王睿.基于射频芯片CC2420实现的Zigbee无线通信设计J.微计算机信息,20071-2:P101-1020