基于ZigBee协议栈的无线传感器网络的设计
2 系统软件设计
TI公司推出的ZigBee协议栈是基于优先级的轮转查询式操作系统,它是由称为层的模块组成,每一层为其上一层提供特定的服务。Zig Bee协议栈为各个层均分配的不同的任务编号,每一个任务中又包含若干个事件。对于开发者来说,一般只需关注应用层函数的设计即可。当然,若果硬件电路不同,则其硬件抽象层函数也是不同的。文中所采用的硬件电路为无线龙公司生产的CC2430无线通信模块,共包括4个传感器节点和一个协调器。每个传感器节点为一个CC2430基本模块和一个电池板;协调器模块为一个CC2430基本模块和一个扩展板,扩展板上带有RS232串口,可用于和PC机进行通信。
2.1 协调器启动及建立网络
无线传感网络的建立是由网络协调器来完成的。协调器节点启动之后,首先完成系统的初始化,然后进入操作系统。在系统的初始化中,包括初始化系统时钟、检测芯片电压、中断系统、flash存储器等,其中比较重要的是初始化端口描述符。两个物理无线收发模块的通信是通过两个设备中编号相同的端点来实现的,这要求协调器所初始化的端点属性要与在传感器节点中所初始化的端点属性相匹配。
进入操作系统以后,首先进入的是应用层任务函数,因为在应用中设置了进入事件。通过按键S1来设置其为协调器,并开始建立网络。将设备设置为协调器之后,通过zb_StartRequest()函数调用ZDO层初始化设备函数ZDOInitDevice()。在该函数中,通过ZDO层中的网络初始化函数ZDApp_NetworhInit()设置网络初始化事件,送给启动设备函数ZDO_StartDevice()处理。在该函数中,调用了网络层的网络形成请求函数NLME_NetworkFormationRequest()来形成网络。由于ZigBee协议栈是半开源的,因此看不到该函数的内部程序。当ZDO层收到网络形成确认信息之后,则设置网络启动事件,将设备的状态改为启动状态。协调器建立网络的过程如图2所示。本文引用地址://m.amcfsurvey.com/article/154688.htm
2.2 传感器节点启动及加入网络
对于传感器节点来说,启动后首先要完成的也是设备的初始化。在本实验中,传感器节点向协调器发送本身的温度信息,所以在传感器节点中所初始化的端口的属性应为输出,而协调器中所定义的端口的属性应为输入。当初始化之后,进入操作系统执行应用层任务中的进入事件。这里直接将设备设置为传感器节点。
评论