温室监控系统用于实时监测室内温度、湿度、CO2浓度等环境参数,以便做出相应调整,使作物处于最佳环境中生长。现有的无线温室监控系统大多在无线局域网络覆盖范围内进行环境信息监测,传输范围有限,且功耗和成本较高。 ZigBee是一种新兴的近距离、低复杂度、低功耗、低成本的无线网络技术。2节5号电池即可使ZigBee射频芯片工作6~24个月。 本设计采用ZigBee技术组建无线局域网,并通过网关接人到以太网。不但很好地解决了功耗和成本问题,而且也有效扩展了数据的传输范围。
1 系统设计
温室监控系统的结构示意图如图1所示。系统由无线传感节点、嵌入式网关、人机交互界面3个部分组成。无线传感节点通过连接传感器来获得相应的环境参数,并将数据发送至网关节点。嵌入式网关承担网络管理的功能,主要负责组建ZigBee无线网络并将传感节点传回的数据上传至以太网中。人机交互界面的作用是将这些数据实时地显示在网页上,也可以通过网页进行远程控制。

2 硬件设计
整个系统涉及ZigBee网络和以太网,为了使2个网络能相互通信,需要建立网关。本文用嵌入式BOA服务器作为2个网络的信息中转站,以实现网关的功能。BOA服务器是一个小巧高效的Web服务器,运行于Unix或Linux系统下,支持CGI的、适合用于嵌入式系统的单任务的HTTP服务器。
2.1 网关硬件设计 嵌入式BOA服务器可以在嵌入式Linux操作系统的支持下进行设计。网关硬件结构如图2所示。

2.2 ZigBee节点硬件设计 ZigBee节点硬件结构如图3所示,主要由CC2430射频芯片和传感器构成。


3.1 移植Bootloader
Bootloader是在操作系统内核运行之前执行的一小段程序,通过这段程序初始化硬件设备。Bootloader可移植性强,只要根据硬件资源修改少量代码即可直接使用。
3.2 移植Linux内核
Linux内核是嵌入式操作系统的核心,内核移植包括内核配置、内核编译、内核下载3个部分。嵌入式设备主要用NAND Flash作为存储器,NAND Flash容量有限,因此在配置内核时需要裁减一些不需要的功能以减小内核的体积。由于要将编译好的Linux内核映像和文件系统映像烧写到NAND Flash中,因此设置NAND Flash分区。本项目采用256 MB的NAND Flash,将其分为3个区:0区为Bootloader分区,1区为内核分区,2区为根文件系统分区。内核配置完成后执行make zImage命令生成Linux内核映像文件,然后将内核映像文件下载至NAND Flash的内核分区上。
3.3 移植根文件系统和BOA服务器
根文件系统是嵌入式Linux系统启动的重要组成部分,也是用户应用程序的载体。本方案采用busybox制作yaffs2文件系统,并在文件系统中加入BOA服务器。BOA是一款单任务的HTTP服务器,当有连接请求到来时,通过建立HTTP请求列表来处理多路HTTP连接请求,同时它为CGI程序创建新的进程。 移植好BOA服务器后,在文件系统中建立/var/www/cgi-bin文件夹,此文件夹用于存放静态网页和CGI程序。
3.4 网关软件设计
网关软件程序流程如图5所示。S3C2440通过I/O端口触发CC2430,使其无线发送相应的指令,远程控制传感器节点进行数据采集。采集到的数据通过UART串口传回S3C2440并上传至嵌入式BOA服务器。用户通过IE浏览器就可以实时采集到相应的环境信息。


结语
本文基于S3C2440平台和Linux操作系统提出了一种ZigBee网关的设计方法,并给出了硬件和软件的实现方法,实现了ZigBee无线局域网络与以太网的数据互通。该网关成功地用于温室监控系统中,具有稳定性好、实时性强、可远距离监控等特点。