3.1协调器节点软件设计
协调器软件设计包括初始化设备、协调器组网、路由节点和传感器节点入网以及数据信息处理(包括数据收发功能)等。协调器节点上电后监测到ZigBee数传模块网络,则协调器节点作为路由节点加入到该网络;若监测无网络,则该节点作为协调器节点构建ZigBee网络,终端节点和路由节点加入到该网络。ZigBee网络在2.4 GHz频带划分16个信道,步长值为5 MHz,编号为1l~26。协调器通过调用函数MAC_MlmeScanReq((macMlmeScanReq_t*)pData)对信道能量扫描,能量水平高标志该信道无线信号活跃,协调器根据能量扫描信息选择一个可以利用的信道建立自己的无线网络。另外,每个协调器设备已经具有唯一固定的64 bit MAC地址作为组网标识,同时必须分配给自己一个16 bit的网络短地址(PAN ID),节点设备使用短地址通信可以使网络更轻量级、更加高效。协调器默认网络短地址为0x0000。协调器节点的主要功能是对网络中各子节点进行管理,接收各子节点的状态信息并将信息上报上位机进行数据处理。图4为协调器通信流程图。
图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所示。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-25821-2.html