无线温室监控系统采用基于ARM?Cortex™-M3的LMS3S1968微控制器和无线收发芯片nRF905设计了执行器节点。从硬件和软件两个层面进行研究,根据无线通信系统特点设计了系统的硬件、软件,并进行了调试和试验运行;采用μC/OS-II嵌入式实时操作系统作为无线 (1)μC/OS-II嵌入式实时操作系统 随着无线传感器网络的广泛应用,节点构成的变化是巨大的。因此无线传感器网络节点上的嵌入式操作系统必须具备好的移植性。与通用的操作系统相比,嵌入式操作系统具有如下一些特征:小巧、实时性、可裁减性、固化代码、稳定性。针对不同的处理器类型,存储器容量和实时性需求,有不同的嵌入式操作系统。UCB为Mica系列传感器网络产品开发了一套微型的操作系统TinyOS;清华大学也开发出了一种灵活的低成本无线传感器网络节点FLOWS,它的单片机采用TI公司的MSP430,移植了uC/OS-II操作系统,无线传输芯片采用NRF905。 μC/OS-II是一个简单、高效的源码公开的嵌入式实时操作系统内核。其大多数函数调用和服务的执行时间具有可确定性;具有可抢占的实时多任务调度系统功能,而且提供了用于任务间同步、互斥、通信的系统服务。这些功能可以根据不同需求进行裁减,它的最小化内核能编译到2KB,目前已经被移植到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-IISource目录存放μC/OS-II的源代码(除uCOS_II.C外的全部“.C”和“.H”的文件)。用户只要把源码复制到此目录,不需对源码作任何的修改。 ④μC/OS-II移植层的μC/OS-IIPorts目录存放μ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外,其它代码都要直接或间接通过它访问硬件。 后台管理系统与节点的通信途径为:后台管理系统←→Internet←→汇聚节点←→测量节点或执行器节点。后台管理系统以IP数据包形式通过Internet传送到汇聚节点的数据包括目标节点编号、控制命令。测量节点和执行器节点采取统一编号方式,控制命令为要求测量节点上传采样数据,或要求执行器节点执行命令要求的动作(即控制设备的启动或停止)或要求执行器节点上传该节点控制设备的运行状态。 汇聚节点与测量节点/执行器节点之间采用多跳路由的通信方式,由于监控区域内的节点众多,采用统一的数据格式有利于节点间的通信,数据格式如下: 其中,Preamble为引导字节,BroAddr为广播地址(为0xFF),Final-No为数据传输的目标节点编号,Middle-No为中间节点编号,Source-No为提供数据的源节点编号,CtrlData为控制命令,Data1…Datan为需发送或接收的有效数据,CRC为校验码。 nRF905处于发射模式时,Preamble和CRC由nRF905自动加载,BroAddr和中间所有数据由微控制器按顺序送入射频模块nRF905。接收模式时,nRF905先接收一数据包,分别验证Preamble、BroAddr和CRC正确后,再将所有数据送入微控制器处理,由软件比较地址,进行相应处理。




