目前,针对一定区域内信息和设备进行监测和控制多采用有线方式通信,网络在布线和维护过程中由于线路腐蚀和损坏造成网络中断,给正常生产工作带来影响,同时也增加了人力资源成本比重。基于此,从节省成本和网络稳定性考虑,给出一种基于ZigBee技术的多节点设备无线自组网设计方案。
基于IEEE 802.15.4协议的ZigBee技术是一种新兴的短距离无线通信技术,具有功耗低、成本低、网络容量大、可靠性和安全性高等特点。采用ZigBee无线模块的传感器节点只需要很少的能量,就可以在多个传感器之间相互协调,以接力棒的方式利用无线传输将数据信息从一个传感器传到另一个传感器。ZigBee数传技术目前被广泛应用到无线工业、精准农业、家庭和楼宇自动化、消费家电以及医疗服务等领域,是国家“十二五”规划中信息技术重点扶持方向。本文主要内容包括网络节点硬件设计、ZigBee数传网络结构实现和无线Mesh网络测试。系统利用终端节点采集数据,通过多跳路由汇聚到协调器节点实现多节点设备无线自组网。
1 系统网络结构
系统网络拓扑结构如图l所示,采用基于树状Mesh拓扑结构?,网络由协调器节点(Coordinator)、路由节点(Router)和终端节点(End Device)3种类型的功能模块构成。
图l 基于树状无线Mesh拓扑网络结构图
2 无线自组网络节点硬件设计
无线自组网络节点能耗决定整个网络的生命周期,从硬件结构看,节点能耗主要在微处理器模块,选择高性能低功耗微处理器可以降低节点能耗,延长网络生命周期。基于此,采用TI公司的CC2530作为主控芯片,用于ZigBee无线模块的片上系统,内部集成射频收发器、增强型8051内核、8 KB RAM,封装小、功耗低。
2.1终端节点和路由节点
终端节点主要负责ZigBee数据采集,通过射频电路传送信息到协调器节点。路由节点允许子设备加入网络,多跳路由并协助终端节点进行通信,完成数据信息的转发,延长数据传输距离。两种节点硬件电路结构如图2所示。
图2 终端和路由节点硬件结构图
路由节点没有传感器电路,由于实现功能不同,两种节点软件驱动也不同。传感器电路负责ZigBee数据采集并完成数据转换;片上系统CC2530负责对采集信息进行处理以及整个节点设备的任务管理(包括无线信号的收发处理以及ZigBee协议操作);电路射频部分采用阻抗匹配电路与天线馈线组成,用一个巴伦优化处理,满足输入输出匹配电阻(50 欧)要求;液晶电路显示节点状态;Flash ROM负责存储数据信息;按键电路方便用户对节点设置,如收发数据时通过按键配置;LED电路指示网络连接状态。
2.2协调器节点
协调器节点硬件结构图如图3所示。节点负责整个网络初始化,确定ZigBee网络ID号和操作的物理信道,并统筹短地址分配,提供数据路由和安全管理服务。协调器节点与终端节点以及路由节点最大的区别在于:
(1)协调器节点通过SP3232电路与上位机通信,由于PC与单片机之间接口不一致,通过SP3232实现USB到串口转换;
(2)协调器节点负责与终端节点或者路由节点进行信息通信,不具有ZigBee采集采集功能。
图3 协调器节点硬件结构图
3 ZigBee协议栈软件设计
系统设计ZigBee协议选择ZigBee-Pro,协议栈版本为ZSTACK-CC2530-2.3.O-
3.1协调器节点软件设计
协调器软件设计包括初始化设备、协调器组网、路由节点和传感器节点入网以及数据信息处理(包括数据收发功能)等。协调器节点上电后监测到ZigBee数传模块网络,则协调器节点作为路由节点加入到该网络;若监测无网络,则该节点作为协调器节点构建ZigBee网络,终端节点和路由节点加入到该网络。ZigBee网络在2.4 GHz频带划分16个信道,步长值为5 MHz,编号为
图4 协调器通信流程图
3.2 路由节点软件设计
路由节点一旦监测到网络便会自动绑定到一个相应的协调器节点或者父路由节点,申请加入网络。作为入网申请,无论是路由节点还是终端节点,都需要对设备进行配置,作为路由节点令logiclType=ZG_DEVICETYPLROUTER,通过调用函数zb_WriteConfigration(ZCD_NV_LOGICAL_TYPE,sizeof(),&logicalType)选择路由节点。路由节点申请入网成功后若有其他节点申请加入,需要判断申请节点是路由节点还是终端节点,为节点配置系统加载项,完成节点入网工作。若节点入网成功则该路由节点为申请入网节点分配网络地址。通过多跳数据转发机制进行数据交换,并根据选择的路由节点转发数据,提供网络的连通性,数据的发送和接收通过应用层调用完成数据帧ACK应答机制。图5给出了路由节点通信流程图。
图5 路由节点通信流程图
3.3 终端感知节点软件设计
终端感知节点主要完成信息采集,通过路由节点传送到协调器节点以RS232方式进行传输供上位机对数据进行处理。终端节点上电后,对节点设备进行配置,令1ogicalType=ZG_DEVICETYPE_ENDDEVICE,通过调用ZD0_Start()申请加入父节点。但是在终端节点入网之前,路由或者协调器节点无法获得终端节点的网络地址,可通过对设备绑定解决该问题。终端节点调用zb_Bind_DeviceRequest()发出绑定请求,并通过zb_AllowBindResponse()对配对请求作出响应,同时路由或者协调器节点执行zb_BindDevice(TRUE,clusterID,NULL)与终端节点发生绑定,如果绑定成功则绑定表建立在路由或者协调器节点上,绑定表中的ClustedD(簇标识符)值相等,且属性相反。通过clustedD获得终端节点的网络地址,绑定成功后终端节点执行zb_sendDataReques()周期性发送采集的数据信息。图6为终端节点通信流程图。
图6 终端节点通信流程图
4 节点网络自组织和自愈功能测试
进行ZigBee组网测试时,通过设置4个节点(其中1个协调器节点、两个路由节点、1个终端感知节点)进行自组和自愈网络测试。采用串口调试助手和TI公司监控软件ZigBee_Sensor_Monitor进行组网测试。串口配置:端口号COM8,波特率38 400 bps、8位数据位、l位停止位。测试过程中,系统通过串口实现协调器与上位机监控端通信。协调器汇聚各个节点采集的信息,串口接收到的数据帧定义如表l所示。
表l 数据帧格式
由于每个网络只能拥有网络内唯一一个协调器,协调器通电后,初始化其中64位IEEE地址为0x00124B000lFA9D87,网络短地址PAN lD为0x00100,协调器执行zb_BindDevice()接收其他节点绑定请求,组建网络。
路由节点l上电后,自动搜索父节点(即协调器节点)加入网络,入网成功则路由节点l周期性发送节点信息经协调器上传到PC端,串口接收到数据信息为0x(FE
继续将终端节点上电加入到网络中,终端节点自动搜索并绑定到距离其最近的路由节点2,成功入网后终端节点周期性地将采集到的信息通过路由节点2和协调器节点上传到PC端。串口接收数据信息为:0x(FE
图7 节点组网结构
设定路由节点2故障,中断信号传输,则终端节点会自动搜索网络找到距离其最近的父节点(即路由节点1),绑定并入网成功,同时周期性地向协调器发送采集数据信息。串口接收到的数据信息为:0x(FE
图8 节点修复组网结构图
本文给出了一种基于ZigBee无线模块多节点设备无线自组网方案,详细介绍了ZigBee数传模块节点硬件电路和软件系统设计,通过对多个节点进行ZigBee数据采集测试完成网络的自组织连接和自愈修复功能,使网络系统运行正常。节点设备具有通信协议简单可靠、灵敏度高、测量准确、功耗低,节点布置灵活、系统易于扩展等优点。另外,系统可应用于农村蔬菜种植、花卉园艺等各种类型温室大棚环境的智能化监控、智能家居节点设备的组网、工业节点的无线定位、医疗物联网等领域,具有较大的市场竞争力和广阔的应用前景。
原文地址:http://jlinkcn.blog.51cto.com/9948825/1633651