当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于ZigBee技术的温室监控系统网关设计方案

 引言

  温室监控系统用于实时监测室内温度、湿度、CO2浓度等环境参数,以便做出相应调整,使作物处于最佳环境中生长。现有的无线温室监控系统大多在无线局域网络覆盖范围内进行环境信息监测,传输范围有限,且功耗和成本较高。

  ZigBee是一种新兴的近距离、低复杂度、低功耗、低成本的无线网络技术。2节5号电池即可使ZigBee射频芯片工作6~24个月。

  本设计采用ZigBee技术组建无线局域网,并通过网关接人到以太网。不但很好地解决了功耗和成本问题,而且也有效扩展了数据的传输范围。

  1 系统设计

  温室监控系统的结构示意图如图1所示。系统由无线传感节点、嵌入式网关、人机交互界面3个部分组成。无线传感节点通过连接传感器来获得相应的环境参数,并将数据发送至网关节点。嵌入式网关承担网络管理的功能,主要负责组建ZigBee无线网络并将传感节点传回的数据上传至以太网中。人机交互界面的作用是将这些数据实时地显示在网页上,也可以通过网页进行远程控制。

图1 温室监控系统的结构示意图

  无线局域网中的各传感器节点采集温度、湿度、C02浓度等环境信息,经网关处理后,监控终端计算机通过IE浏览器即可访问这些数据,从而实现远程监控环境信息。

  2 硬件设计

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

  2.1 网关硬件设计

  嵌入式BOA服务器可以在嵌入式Linux操作系统的支持下进行设计。网关硬件结构如图2所示。

图2 网关硬件结构

  网关硬件包括如下部分:

  ①S3C2440A,Samsung公司的一款基于ARM920T内核的32位RISC嵌入式微处理器,运行频率可达400 MHz。

  ②256MB Flash,存储Bootloader和Linux操作系统以及文件系统。

  ③64MB SDRAM,作为系统运行时的程序和数据存储器。

  ④DM9000A网络控制器,提供以太网连接功能,以满足用户通过TCP/IP以太网进行实时的数据交互。

  ⑤JTAG仿真调试接口,支持ADS等集成开发环境利用JTAG调试接口对整个硬件电路进行软件开发和调试。

  ⑥UART接口,连接CC2430射频芯片以实现ZigBee无线局域网络与以太网的互联。

  2.2 ZigBee节点硬件设计

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

图3 ZigBee节点硬件结构

  CC2430芯片整合了高性能2.4 GHz DSSS(直接序列扩频)射频收发器内核和工业标准的增强型8051 MCU,还包括了8 KB的SDRAM、128 KB的Flash,是一种片上系统(SoC)解决方案。

  将相应的传感器与CC2430的I/O引脚连接,可测得所需的温室环境参数,并通过ZjgBee无线网络进行传输。本系统在每个ZigBee节点上分别连接温度传感器、湿度传感器和CO2传感器来监测不同节点处相应的环境信息。

  3 软件设计

  本设计基于嵌入式Linux操作系统,通过编写DM9000A网卡驱动和UART异步串口驱动实现以太网与ZigBee网络的互联。

  网关的分层结构如图4所示。在TCP/IP协议和ZigBee协议上分别开发Web、CGI程序以及无线收发程序。Web、CGI程序用于人机交互界面,无线收发程序用来实现ZigBee网络的通信。

图4 网关的分层结构图

  CGI(Common Gateway Interface)规定Web服务器调用其他程序的接口协议标准,提供给Web服务器一个执行外部程序的通道。这种服务端技术使得浏览器和服务器之间具有交互性。CGI程序属于一个外部程序,编译成可执行文件后,可以在服务端运行。通过调用CGI程序可实现Web服务器与Web浏览器的交互,CGI程序接收Web浏览器发送给Web服务器的控制命令,并进行处理,再将响应结果回送给Web服务器及Web浏览器。

  由于BOA服务器搭建在Linux系统之上,因此需要将嵌入式Linux系统移植到S3C2440芯片上。

   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浏览器就可以实时采集到相应的环境信息。

图5 网关软件程序流程图

  传感节点采集到的数据最终将上传至嵌入式BOA服务器上,用户可通过IE浏览器访问服务器IP地址来监测温室的环境信息,监测网页如图6所示。

图6 监测网页

  结语

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭