《武汉工程大学学报》  2010年05期 88-90   出版日期:2010-05-31   ISSN:1674-2869   CN:42-1779/TQ
基于JN5139的无线传感器网络节点设计与实现



引言ZigBee技术是HomeRF的一个分支,是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术或无线网络技术,同时又是一组基于IEEE 802.15.4无线标准研制开发的有关组网、安全和应用软件方面的技术,适合于承载数据流量较小的业务,经过几年的理论研究[1],目前已经转向大规模应用阶段,涌现出覆盖不同频段和功能结构的模块[25],通过嵌入各种设备中,在工业现场、家庭以及医学等低功耗、低成本的无线通信应用场合,具有广阔的应用前景.JN5139是Jennic公司推出的低功耗、低成本、适合于IEEE802.15.4 和ZigBee应用的无线微控制器,集成了32位RISC处理器和全兼容的2.4GHz IEEE802.15.4收发器,为无线传感器网络的应用提供了更好的选择[6].
1ZigBee无线传感网络与JN5139
控制器1.1ZigBee与无线传感网络结构Zigbee网络包括设备类型、拓扑结构和路由方式.根据ZigBee标准规定,Zigbee网络节点分为网络协调器(Coordinator)、路由器(Router)和终端设备(EndDevice)三种逻辑设备,ZigBee网络由一个网络协调器以及多个路由器和多个终端设备组成,其中网络协调器负责启动整个网络和网络配置,路由器根据Zigbee协议算法决定数据的路由,允许其它设备加入网络.终端设备负责信息的发送和接收.Zigbee 网络具有三种拓扑形式:星形拓扑、树形拓扑、网状拓扑(Mesh拓扑),网络协调器和路由器管理区域内与其具有邻接关系的设备表,如果目标设备在物理区域内可见,就可以根据路由表记录中的路径直接发送信息,若目标设备不具备局部的邻接关系,就需启动路由发现过程:一个设备发出路由请求命令帧启动路由发现过程,对应的接收者收到该命令,给出路由回复命令帧,对潜在的各条路径的跳转次数、延迟时间进行评估比较,将最佳路由记录添加到此路径上各个设备的路由表中.因此,网状网络拓扑具有更加灵活的信息路由规则,在可能的情况下,路由节点之间可以直接通信,使信息的传输变得更有效率,而且一旦一个路由路径出现问题,信息可以自动的沿着其它的路由路径进行传输,具有很强的网络自组织能力.1.2JN5139结构JN5139嵌入了完整的IEEE802.15.4和ZigBee网络协议栈,具有低功耗的休眠模式、安全机制和程序加密,以及一体化收发器和微处理控制器,适用于无线传感器网络应用,其结构如图1所示.图1JN5139内部结构
Fig.1The block of JN5139图1所示的JN5139内含192kB的ROM存储了包括协议堆栈在内的系统代码,96kB的RAM存储系统数据和引导程序代码,以及48bit的OTP eFuse存储MAC ID,并提供基于AES的代码加密,集成有4路12位ADC,2路11位DAC和2个比较器、2个应用计时器/计数器、3个系统计时器和2个UART、5种可选择的SPI端口和2线串行接口,多达21个GPIO,以及OQPSK调制解调器和2.4GHz的射频处理单元.JN5139内嵌的完整ZigBee协议栈可实现网络协调器和路由功能,具备网状结构的无线传感器网络中的节点全功能,因此适合无线传感网络的各种网络拓扑结构.采用JN5139的节点,可通过软件定义为网络协调器节点和路由节点,又可作为终端使用.其开发软件包括代码编辑、编译开发平台和下载工具.
第5期熊俊俏,等:基于JN5139的无线传感器网络节点设计与实现
武汉工程大学学报第32卷
2基于JN5139无线传感网络节点
的设计无线传感器网络节点由数据采集模块、数据处理模块、无线数据通信模块和能量供应模块组成.系统采用的传感器为数字式温湿传感器(型号为SHT1X),而电池电压的监控直接进行ADC转换.因此,以JN5139组建无线传感器网络的关键是软件开发和功能定义.
2.1系统组网与ZigBee协议栈的开发接口API系统初始化由Jennic提供的BOS(基本操作系统)控制Zigbee堆栈以及用户任务的执行,首先对每个设备的Zigbee堆栈进行初始化,初始化网络协调器,定义网络标识,协调器通过能量扫描检测来找到一个相对安静的射频通道,并利用此通道来建立自己的无线网络,协调器建立网络后,其它的网络设备就可加入该网络,从而构建复杂的Mesh网络拓扑结构.系统的软件设计是在Jennic提供的开发平台上进行的.Jennic公司在ZigBee协议栈的基础上提供了BOS,包括一些基本的接口函数,主要有:1)初始化函数,用于在设备上电时对协议栈进行初始化;2)协议栈调用函数;3)协议栈调用应用函数,这类函数通常作为协议栈和应用程序进行通讯的接口.2.2路由节点软件设计路由节点负责完成现场数据的采集以及通过无线通信模块将采集数据包无线传送.各节点遵循休眠-被唤醒-正常工作的工作模式,如图2(a)所示.在休眠状态,处理器停止工作,而SPI端口和中断系统继续工作.当中断产生,节点就通过控制引脚信号来实现对传感器的控制,进行数据采集和发送.具体的设计过程如下[68]:(1) 设置基本的网络参数:通过调用函数分别配置网络通道和配置网络ID号.(2) 初始化:调用初始化函数完成包括初始化系统、指示灯、ADC,最后启动BOS任务系统,然后程序就在系统的调度下开始工作,进入不同的事件处理函数.例如控制ADC的函数可分别设置禁止连续转换、输入电压的范围和ADC的转换通道.(3) 热启动入口:当系统处于休眠模式时,由中断唤醒,唤醒后的系统调用入口函数,程序从入口重新开始运行.(4) 数据采集与发送函数:该函数执行读传感器数据、控制显示灯闪烁和发送数据等.(5) 回调函数:Router使用回调函数创建周期性任务函数,使Router周期性的向网络中发送数据,控制设备作为Router启动,并试图加入网络,协议栈通过函数反馈判断该路由是否成功加入到网络.2.3Coordinator节点软件设计Coordinator负责组网并启动网络,定时的接收网络中传来的数据,并向通过串口向上位机写数据,其流程如图2(b)所示.图2节点工作流程
Fig.2Flow chart of the node具体操作如下:(1) 接收数据处理:Coordinator接收数据通过协议栈调用回调函数完成,并解析 其携带的数据内容,得到传感器的数据.当Coordinator和Router在同一网络中,且有数据从Router发送过来的时候,Coordinator便开始接收,收到的数据将调用串口函数向串口发送.(2) 串口操作:调用输出函数,向串口直接写地址和数据.(3) 设备运行标志:在系统运行时,通过周期性的调用函数,让灯闪烁表示设备的运行.(4) 回调函数:Coordinator 通过调用回调函数对网络节点上的终端设备进行描述,使Coordinator能正确地接收其它节点发送的数据.3运行结果通过编译软件将上述的Coordinator和Router 的CPP文件进行编译,并下载到不同的传感器板中.系统配置是四个Router和一个Coordinator.并将Coordinaotr接到上位机串口,通过串口数据可以看到不同地址的路由上报的温湿度传感器数据和供电电池电压.部分数据如表1所示.表1系统采集的数据
Table 1Data collection
节点编号温度/℃电池电压/V127852.8227842.9326852.8428832.94结语基于JN5139控制器,添加适当的外围电路,设计了温湿度监控系统.运用Jennic公司提供的软件编辑、编译器,以及其提供的库函数的基础上,通过设定不同的设备为Coordinator和Router,实现了不同设备之间消息与数据的发送与接收,并实现Mesh网络的组网及路由.