摘要:介绍了温室中无线 传感器 网络的组成及其工作过程,采用基于ARM®Cortex 8482 ;-M3 的LMS3S1968 微控制器和无线收发芯片 nRF905 设计了执行器节点。从硬件和软件两个层面进行研究,根据无线通信系统特点设计了系统的硬件、软件,并进行了调试和试验运行;采用μC/OS-II 嵌入式实时操作系统作为无线传感器网络节点的操作系统。系统具有可靠性高、可方便扩展通信节点容量等优点。
0 引言
温室 监控系统 建立的最终目的是为了获取温室环境的数据信息,监控温室的正常运行,并通过分析数据得到作物生长与环境变化的规律。传统的多点环境参数监控系统一般都是通过有线通信(如RS-485 总线)的方式把环境参数数据传送到监控中心的。有线通信的一个无法回避的问题是需要布线,它使系统的设计、安装及维护等的复杂度大幅提高,同时使系统的成本也大大增加,而且如果某一节点损坏有可能导致整个通信网络瘫痪。由于温室大棚占地面积大,采用传统的有线监控系统除了通信设备之间的物理线路连接还需要供电线路的支持。而采用无线技术后,系统精简了通信和供电线路的铺设,方便了系统的维护和扩展,对提高温室的生产管理水平具有重要的意义。对于本设计而言,采用无线通信技术可以有效的解决采用有线通信所存在的问题,而且具有成本更低、不需要布线、可以任意增加或减少测量节点、维护方便等优点。
1 系统组成及工作过程
无线温室监控系统由无线测量节点与执行器节点、汇聚节点和后台管理系统三层组成,如图1 所示。测量节点采集数据并通过汇聚节点将数据转发给后台管理系统。测量节点由51 兼容的射频SoC 芯片 nRF9E5 来实现;执行器节点采用基于ARM®CortexTM-M3 的微控制器LMS3S1968 和无线收发器 NRF905 组成;汇聚节点采用处理能力更强的ARM9 和无线收发器nRF905 组成。
温室中,大量的测量节点采用分散布撒的方式摆放于温室中,负责采集监控区域的环境信息,并通过多跳的传输方式将数据发送到汇聚节点;汇聚节点既负责数据的收集上传,又系统中各个节点发送控制命令,还要通过Internet 网络与后台管理系统进行通信,由后台管理系统控制温室的环境参数和传感器节点的管理。各个温室内的节点相互独立,某个温室中的某个节点出现故障不会影响到其他节点的正常工作。
图1 无线温室监控系统组成
2 主要器件介绍
2.1 基于ARM Cortex-M3 的 LM3S1968 微控制器
LM3S1968是 Texas Instruments 公司生产的Stellaris®系列、基于ARM®Cortex™-M3的微控制器。该Stellaris®系列芯片能够提供高效的性能、广泛的集成功能以及按照要求定位的选择,适用于各种关注成本并明确要求具有的过程控制以及连接能力的应用方案。
LM3S1968 微控制器是针对工业应用方案而设计的,包括远程监控、 电子 贩售机、测试和测量设备、网络设备和交换机、工厂自动化、HVAC 和建筑控制、游戏设备、运动控制、医疗器械、以及火警安防。其主要特性有32 位RISC 性能、采用与Thumb®兼容的Thumb-2 指令集以获取更高的代码密度、高达256KB 的单周期 Flash 和64KB 的单周期 SRAM 、4 个通用定时器模块、2 个SSI 模块、2 个I2C 模块、采样速率为1000000 次/秒的8通道10 位A/D 转换、3 个独立集成的模拟比较、3 个 PWM 发生器模块、2 个QEI 模块、多达52 个GPIO、片内低压差稳压器等。
2.2 无线收发芯片nRF905
nRF905是挪威NorDIC 公司的产品,是真正的单片无线射频收发器,工作在433/ 868/915MHz 的ISM 频段。它由频率合成器、功率合成器、 晶体振荡器 和调制器组成,外围元件少,不用外加 声表 面振荡器, 天线 可采用PBC 环形天线或单端鞭状天线,发射功率最大为10dBm,接收灵敏度为-100dBm。
nRF905 采用NordIC 公司的 VLSI ShockBurst 技术。ShockBurst 技术使nRF905 能够提供高速的数据传输而不需要昂贵的高速MCU 来进行数据处理/时钟覆盖。通过将与RF 协议有关的高速信号处理放到芯片内,nRF905 提供给应用的微控制器一个SPI 接口,速率由微控制器自己设定的接口速度决定。在ShockBurst RX 模式下,地址匹配(AM)和数据就绪(DR)信号通知MCU 一个有效地地址和数据包已经各自接收完成。在ShockBurst TX 模式下,nRF905 自动产生前导码和CRC 校验码,数据准备就绪(DR)信号通知MCU 数据传输已经完成。总之,这意味着降低MCU 的 存储器 需求也就是降低MCU 成本,同时又缩短软件开发时间。
nRF905 有两种活动(RX/TX)模式和两种节电模式。活动模式为ShockBurst RX 和ShockBurst TX。节电模式为掉电和SPI 编程、Standby 和SPI 编程。nRF90 工作模式由TRX_CE、TX_EN、PWR_UP 的设置来设置,如表1 所示。
3 无线执行器节点结构与设计
温室环境参数的控制是由后台管理系统通过 Internet 发送控制命令到汇聚节点,再由汇聚节点通过多跳传输到无线执行器节点,由无线执行器节点根据控制命令来控制相应的控制对象。无线执行器节点主要有LM3S1968 微控制器、光照强度控制、通风控制、温度控制、洒水控制、CO2 浓度控制、施肥控制和nRF905 无线收发等模块,如图2 所示。
图2 执行器节点结
图3 LM3S1968 与nRF905 的电路
3.1 LM3S1968 与nRF905 的电路设计
LM3S1968 提供了兼容SPI 的2 个SSI 接口,故可以将LM3S1968 中的一个SSI 接口设置成SPI 接口形式,从而方便与nRF905 进行数据传输。除了SPI 接口与LM3S1968 连接外,nRF905 还有一些引脚需要与LM3S1968 连接,这些引脚是:TX_EN 引脚为TX 和RX 模式选择、TRX_CE 引脚为使能芯片发射或接收、PWR_UP 引脚为芯片上电、uPCLK 引脚为由晶体振荡器分频的输出时钟、CD 引脚为载波检测、AM 引脚为地址匹配、DR 引脚为接收或发射数据完成,它们分别与LM3S1968 的引脚PE3、PE2、PE1、PE0、PF5、PF7 和PG6连接,如图3 所示。其中,在nF905 工作前,由LM3S1968 通过引脚PE1 发出高电平信号给nF905 上电,之后通过PE2 和PE3 发出TRX_CE 和TX_EN 信号来确定nF905 的工作模式。LM3S1968 通过PF5、PF7 和PG6 来接收nF905 的状态信号,从而LM3S1968 确定后续工作。
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 设计了无线执行器节点。系统集成度高、性能稳定、可靠性高、实用性强。温室监控系统由后台终端根据测量节点的测得数据进行决策,以此控制执行器节点执行任务,系统可以比较方便的扩展通信节点容量,实现较大区域的温湿度及光照度的监控。可以用于农业温室等对温湿度和光照度控制要求比较严格的行业。