3.2 软件设计
(1)μC/OS-II嵌入式实时操作系统
随着无线传感器网络的广泛应用,节点构成的变化是巨大的。因此无线传感器网络节点上的嵌入式操作系统必须具备好的移植性。与通用的操作系统相比,嵌入式操作系统具有如下一些特征:小巧、实时性、可裁减性、固化代码、稳定性。针对不同的处理器类型,存储器容量和实时性需求,有不同的嵌入式操作系统。UCB 为Mica 系列传感器网络产品开发了一套微型的操作系统TinyOS;清华大学也开发出了一种灵活的低成本无线传感器网络节点 FLOWS,它的单片机采用TI 公司的MSP430,移植了uC/OS-II 操作系统,无线传输芯片采用NRF905。
μC/OS-II 是一个简单、高效的源码公开的嵌入式实时操作系统内核。其大多数函数调用和服务的执行时间具有可确定性;具有可抢占的实时多任务调度系统功能,而且提供了用于任务间同步、互斥、通信的系统服务。这些功能可以根据不同需求进行裁减,它的最小化内核能编译到2 KB,目前已经被移植到x86、ARM、PowerPC、MIPS 等众多体系结构上。基于短小精悍、可移植性强的特点,μC/OS-II 很适用于无线传感器网络节点芯片。相比较于TinyOS,uC/OS-II 提供了更加完善的任务调度和任务通信机制,并且采用标准的C 语言设计,从而可以更加方便的移植与调试。
(2)μC/OS-II 在LM3S1968 上的移植
LM3S1968 片上具有高达256KB 的单周期Flash 和64KB 的单周期SRAM,因此,不需要外扩存储器就可以满足μC/OS-II 代码对容量的要求。
μC/OS-II 在LM3S1968 上的移植,由用户层、中间件层、μC/OS-II 源码层、μC/OS-II移植层和驱动库层等五个层次组成。
①用户层的User 目录存放用户代码与设置。其中Main.C 文件是用户编写任务的地方,如通风控制、光照强度控制等任务;Main.H 定义任务的堆栈大小、优先级等。OS_CFG.H是μC/OS-II 的配置文件,用户可根据需要修改其内容。Includes.H 是总的头文件,除μC/OS-II的源码外,所有“.C”的文件都包含它,这样用户所需的头文件和其它声明只需在Includes.H中声明一次就行了。
②中间件层的Middleware 目录存放用户自己编写的中间件,如Uart0.C、Uart0.H 串口通信中间件等。
③μC/OS-II 源码层的μC/OS-II Source 目录存放μC/OS-II 的源代码(除uCOS_II.C 外的全部“.C”和“.H”的文件)。用户只要把源码复制到此目录,不需对源码作任何的修改。
④μC/OS-II 移植层的μC/OS-II Ports 目录存放μC/OS-II 基于LM3S1968 的移植代码,包括OS_CPU_C.C、OS_CPU_A.ASM 和OS_CPU.H 等三个必要的文件,用户应根据处理器来改写这三个文件,使之能够移植到相应的处理器上。Target 目录中的Startup 文件是LM3S1968 的启动代码和中断向量表,用户要在其中加入需要的中断服务函数的首地址;Target.C 和Target.H 提供LM3S1968 初始化函数targetInit()和其它外设控制函数。
⑤驱动库层是直接面向硬件目标板的层。一般来说,除μC/OS-II 外,其它代码都要直接或间接通过它访问硬件。
3.3 后台管理系统、汇聚节点及节点间的通信
后台管理系统与节点的通信途径为:后台管理系统←→Internet←→汇聚节点←→测量节点或执行器节点。后台管理系统以IP 数据包形式通过Internet 传送到汇聚节点的数据包括目标节点编号、控制命令。测量节点和执行器节点采取统一编号方式,控制命令为要求测量节点上传采样数据,或要求执行器节点执行命令要求的动作(即控制设备的启动或停止)或要求执行器节点上传该节点控制设备的运行状态。
汇聚节点与测量节点/执行器节点之间采用多跳路由的通信方式,由于监控区域内的节点众多,采用统一的数据格式有利于节点间的通信,数据格式如下:
其中,Preamble 为引导字节,BroAddr 为广播地址(为0xFF),Final-No 为数据传输的目标节点编号,Middle-No 为中间节点编号,Source-No 为提供数据的源节点编号,CtrlData为控制命令,Data 1…Data n 为需发送或接收的有效数据,CRC 为校验码。
nRF905 处于发射模式时,Preamble 和CRC 由nRF905 自动加载,BroAddr 和中间所有数据由微控制器按顺序送入射频模块 nRF905。接收模式时,nRF905 先接收一数据包,分别验证Preamble、BroAddr 和CRC 正确后,再将所有数据送入微控制器处理,由软件比较地址,进行相应处理。
4 结语
本设计基于无线通信技术、电子技术和计算机技术,,采用基于ARM® Cortex™-M3 的LMS3S1968 微控制器和无线收发芯片nRF905 设计了无线执行器节点。系统集成度高、性能稳定、可靠性高、实用性强。温室监控系统由后台终端根据测量节点的测得数据进行决策,以此控制执行器节点执行任务,系统可以比较方便的扩展通信节点容量,实现较大区域的温湿度及光照度的监控。可以用于农业温室等对温湿度和光照度控制要求比较严格的行业。