CC2531的无线传感器网络节点软件设计
3 节点软件设计
3.1 ZigBee技术简介
ZigBee技术是一种近距离、低复杂度、低功耗、低传输速率、低成本的双向无线通信技术,主要适合于自动控制和远程控制等领域,可以嵌入到各种设备中,相对于其他的无线通信标准更简单紧凑。此外,ZigBee具有省电、可靠、延时短、网络容量大、安全等优点。
3.2 节点软件主流程
本软件设计基于TI公司的Z-Stack 2007协议栈。Z-Stack 2007是TI公司专门为CC2531芯片设计的ZigBee协议栈。它是由一个简单的单线程操作系统管理,该系统基于任务调度的机制。各个任务的事件处理函数按照任务的优先级被放入函数指针数组tasksArr[idx]中,事件以16位的变量形式存放在数组tasksEvents[idx]中,因此每个任务最多可定义16个事件。
操作系统运行流程如图3所示。主函数在完成节点相关的初始化之后会进入操作系统,操作系统是一个无限循环,一直在检测各个任务中的事件 tasksEvents[idx],当它不为零时就会调用相应的事件处理函数tasksArr[idx]。处理完一个事件会将代表此事件的位清零,同时返回未处理的事件,直到这个任务中所有的事件处理完毕(即所有的事件位都被清零),操作系统就会跳向下一个任务进行事件处理。

3.3 节点软件模块化设计
节点软件采用的是功能模块化设计,不同功能用不用模块表示,不同模块间用接口连接,通过接口来调用其他模块的功能。如图4所示,传感器节点主要由数据采集模块、数据处理模块、数据传输模块和电源管理模块组成。

3.3.1 数据采集模块
数据采集模块主要实现对监测区域内各种信息的采集和数据的转换。
实验证明,节点在进行数据和命令收发的通信过程中功耗很大。为了降低功耗,在软件设计上节点在联网状态下只执行通信任务,在休眠过程中只执行采集任务。数据采集模块工作流程如图5所示。节点接收到休眠设置命令,对命令进行解析并从命令中提取传感器标志位,在整个网络进入休眠后,根据传感器标志位来打开需要的传感器。被打开的传感器对监测区域内的各种信息进行采集,然后将采集到的数据送到信号调理电路转换成电压、电流等信号。经过调理后的信号直接传人 CC2531已配置好的A/D转换器接口进行A/D采样。A/D转换器可通过软件编程改变采样精度,其精度为7~12位。

3.3.2 数据处理模块
数据处理模块是无线传感器节点的核心,负责控制整个传感器节点的操作,存储和处理本身采集的数据以及其他节点发来的数据。为便于管理和调度,节点所要进行的操作都是被定义为事件进行处理的,每个事件完成相应操作。将事件按一定关系串接就能实现节点工作时要完成的系统功能。
评论