无线温室监控系统由无线测量节点与执行器节点、汇聚节点和后台管理系统三层组成。测量节点采集数据并通过汇聚节点将数据转发给后台管理系统。测量节点由51 兼容的射频SoC 芯片nRF9E5 来实现;执行器节点采用基于ARM?CortexTM-M3 的微控制器LMS3S1968 和无线收发器NRF905 组成;汇聚节点采用处理能力更强的ARM9 和无线收发器nRF905 组成。
无线温室监控系统采用基于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 是一个简单、高效的源码公开的嵌入式实时操作系统内核。其大多数函数调用和服务的执行时间具有可确定性;具有可抢占的实时多任务调度系统功能,而且提供了用于任务间同步、互斥、通信的系统服务。这些功能可以根据不同需求进行裁减,它的最小化内核能编译到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 外,其它代码都要直接或间接通过它访问硬件。
后台管理系统与节点的通信途径为:后台管理系统←→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 正确后,再将所有数据送入微控制器处理,由软件比较地址,进行相应处理。
温室监控系统建立的最终目的是为了获取温室环境的数据信息,监控温室的正常运行,并通过分析数据得到作物生长与环境变化的规律。传统的多点环境参数监控系统一般都是通过有线通信(如RS-485 总线)的方式把环境参数数据传送到监控中心的。有线通信的一个无法回避的问题是需要布线,它使系统的设计、安装及维护等的复杂度大幅提高,同时使系统的成本也大大增加,而且如果某一节点损坏有可能导致整个通信网络瘫痪。由于温室大棚占地面积大,采用传统的有线监控系统除了通信设备之间的物理线路连接还需要供电线路的支持。而采用无线技术后,系统精简了通信和供电线路的铺设,方便了系统的维护和扩展,对提高温室的生产管理水平具有重要的意义。采用无线通信技术可以有效的解决采用有线通信所存在的问题,而且具有成本更低、不需要布线、可以任意增加或减少测量节点、维护方便等优点.