基于嵌入式Web服务器的温室远程监控的研究
扫描二维码
随时随地手机看文章
现代温室大棚多以微电子技术和计算机辅助决策技术为核心、以上下位机方式进行智能化监控。但上下位机监控由于受通讯线路、距离影响,费时费力。随着我国设施农业的快速发展和广泛应用,研究并开发基于Internet的连栋温室室内环境远程控制技术及设备,成为迫切需要解决的问题。本文提出了一种将温室控制的嵌入式系统作为服务器接入网络,利用廉价的嵌入TCP/IP通信协议的51系列单片机来控制网络接口芯片RTL8019AS,实现以太网通讯的系统方案,并对系统硬软件进行了设计。
2 系统硬件设计方案
温室远程监控系统的核心微控制器采用美国Cygnal公司的单片机C8051F020,以太网控制器采用台湾Realtek公司生产的RTL8019AS。下面,首先分别对其作一介绍。
2.1 C8051F020微处理器
C8051F020是一块集成混合信号SoC芯片,其内核与8051兼容。工作在最大系统时钟频率25MHz时,峰值速度可达25MIPS 。C8051F020有256KB的内部RAM,还另有位于外部数据存储器地址空间的4 KBXRAM和一个可寻址64 KB地址空间的外部数据存储器接口,以及64 K B可在系统编程的Flash存储器。C8051 F020 除标准的8051端口 ( P0 、P 1 、P2和P3)外,还附加4个端口( P4、P5 、P6和P7)。有5个16位通用定时器、片内看门狗定时器、VDD监视器和温度传感器。工作电压为2.7 V~3.6 V,工作电流为10mA/20MHz [1]。
2.2 以太网控制器RTL8019AS
台湾Realtek公司生产的RTL8019AS以太网控制器,因性能优良、价格低廉,在10Mbps网卡中占有相当的比例。它符合Ethernet II与IEEE802.3(10Base5、10Base2、10BaseT)标准,100引脚PQFP封装,采用全双工收发可同时达到10Mbps的速率,内置16KB的SRAM,支持8/16位数据总线,8个中断申请线以及l6个I/O基地址选择等。
RTL8019AS内部分为远程DMA口、本地DMA接口、MAC(介质访问控制)逻辑、数据编码解码逻辑和其他端口。远程DMA接口是指单片机对RTL8019AS内部RAM进行读写的总线,即ISA总线的接口部分。单片机收发数据只需对远程DMA操作。本地DMA接口是指 RTL8019AS与网线的连接通道,通常通过RJ45接口实现和外部网络的连接,完成控制器与网线的数据交换。MAC(介质访问控制)逻辑完成以下功能:当单片机向网上发送数据时, 先将一帧数据通过远程DMA通道送到RTL8019AS中的发送缓存区,然后发出传送命令;当RTL8019AS完成了上一帧的发送后,再开始此帧的发送。RTL8019AS接收数据时,首先把接收到的数据通过MAC比较、CRC校验后,由FIFO存到接收缓冲区;收满一帧后,以中断或寄存器标志的方式通知主处理器。FIFO逻辑对收发数据作16字节的缓冲,以减少对本地DMA请求的频率[2]。
2.3 系统硬件设计与实现
系统核心微控制器采用Cygnal公司的单片机C8051F020,而C8051F020单片机并不具有以太网接口,为实现以太网通信,需要接口芯片。系统接口芯片采用是台湾Realtek公司生产的以太网控制器RTL8019AS。RTL8019AS有即插即用、跳线和免跳线3种工作方式。为了减少资源占用,系统设计中将RTL8019AS芯片的JP脚接高电平即选择跳线方式。为了防止干扰和破坏元器件,实现带电拔插功能,需要将RTL8019AS外接一个隔离LPF滤波器,再通过RJ45接口接入以太网。系统硬件结构框图如图1所示。
500)this.style.width=500;" border="0" />
3 系统软件设计
3.1 单片机中TCP/IP协议的嵌入
嵌入式系统接入Internet同PC机接入Internet一样,必须要有相应通信协议。目前Internet主要采用TCP/IP协议,因此,采用嵌入式系统通过TCP/IP协议接入Internet的方案,嵌入式系统对信息进行TCP/IP协议处理,使其变成可以在Internet上传输的IP数据包和以太网帧。
温室中的主控单片机要作为Web服务器接入以太网,必须嵌入TCP/IP协议。Internet通信协议对计算机系统的CPU速度、存储器容量等要求比较高,用于PC机不存在任何困难,但用于自身资源有限的嵌入式系统就必须考虑性价比,根据需要有所取舍,合理选择通信协议的实现和处理方案。根据所选的单片机C8051F020的资源,对TCP/IP协议做了裁减,系统中使用了ARP、RARP、ICMP、UDP、HTTP等部分协议,即可保证单片机接入以太网,同时亦保证有足够小的代码量。
根据实际需要,该系统采用一种简化的TCP/IP 4层网络模型,分别为:应用层、传输层、网络层、数据链路层。应用层传递来自以太网和数据终端的数据,并对数据作打包拆包处理;传输层采用用户数据包协议UDP;网络层实现IP协议,还要实现能报告数据传输差错等情况的ICMP协议;链路层由控制同一物理网络上不同机器间数据传送的底层协议组成。在简化的TCP/IP协议4层模型中,链路层部分由RTL8019AS完成,网络层和传输层由温室控制的单片机来处理,应用层则根据需要可以在单片机内完成,也可以由单片机转给用户或终端设备完成[3]。
3.2 单片机控制以太网卡工作过程
系统在上电工作时首先要进行初始化,即初始化单片机C8051F020和RTL8019AS,进行工作参数和条件的设置,主要是一些寄存器的配置和内置RAM空间的分配。初始化之后,由于MCU系统中的TCP/IP是直接面向硬件的,没有嵌入式实时操作系统的支持,程序结构一般采用顺序执行和硬件中断相结合的方式,与操作系统的多进程并发执行的方式截然不同。当所有初始化完成之后,就采用查询方式开始工作,程序流程图见图2。
500)this.style.width=500;" border="0" />
当系统接入以太网开始运行时,首先进行地址解析,在网络内进行“身份识别”,当用户通过浏览器发出请求时,网络芯片驱动程序接收以太网帧形式的用户请求,然后传输给上层协议逐层分离取出用户请求,控制系统根据用户请求调用单片机C8051F020外围传感器采集温室内相应的状态数据,再将数据逐层打包,最后交给以太网芯片RTL8019AS封装成以太网帧发送出去。如果传输的数据量比较大,则重复多次数据发送过程,便可完成一个数据的完整传输。在终端可以以Web网页的形式供用户浏览和做出进一步的判断控制。
温室控制系统中单片机主要完成来自网络数据的解包和接受温室传感器采集的数据的打包,当以太网有数据到达该设备时,单片机采用查询方式读取网络数据并分析,先将其目的地址与系统的物理地址相比较,如果地址不相符,则将该数据丢弃,如果相符,则判断是否是ARP数据包,是则转入ARP处理程序,并发送RARP数据包。如果是UDP数据包且IP地址和端口号正确,则开始数据接收。当传感器传来的数据要发送时,单片机先将待发送的数据按UDP 协议格式打包进行封装,需要设置以太网目的地址、源地址、协议类型,再按所设置的协议类型来设置数据段。然后给出发送缓冲区首地址和数据包长度,启动发送命令。通过远程DMA通道送到RTL8019AS中的发送缓冲区,即可实现RTL8019AS的发送功能,并将结果写入状态寄存器中。再启动本地DMA,将数据发送到网络上[4]。
4 结论
(1)提出将单片微处理器提升为具有系统软件和TCP/IP协议的嵌入式Web服务器,并用于温室环境控制的方案。这种嵌入TCP/IP协议的单片机系统成本低、硬件少、传输速度快、使用方便,可在远程数据采集和传输、远程监控等方面有广泛应用前景。
(2)设计了系统的软硬件,通过用单片机控制网络接口芯片RTL8019AS,同时嵌入精简的TCP/IP协议,将温室控制器扩展成嵌入式Web服务器,实现温室内各种状态数据的采集与控制。
本文作者创新点: 通过设计,首次把温室内廉价的单片微处理器做成一个嵌入TCP/IP协议的Web服务器,其不仅实现温室内各种状态数据的采集功能,更替代了过去的上下位机远程控制,这对我国数字农业和网络农业的研究也具有重大意义。