当前位置:首页 > 工业控制 > 工业控制
[导读]1 引言现代温室大棚多以微电子技术和计算机辅助决策技术为核心、以上下位机方式进行智能化监控。但上下位机监控由于受通讯线路、距离影响,费时费力。随着我国设施农业的快速发展和广泛应用,研究并开发基于Internet

1 引言

现代温室大棚多以微电子技术和计算机辅助决策技术为核心、以上下位机方式进行智能化监控。但上下位机监控由于受通讯线路、距离影响,费时费力。随着我国设施农业的快速发展和广泛应用,研究并开发基于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.3  系统硬件设计与实现

系统核心微控制器采用Cygnal公司的单片机C8051F020,而C8051F020单片机并不具有以太网接口,为实现以太网通信,需要接口芯片。系统接口芯片采用是台湾Realtek公司生产的以太网控制器RTL8019AS。RTL8019AS有即插即用、跳线和免跳线3种工作方式。为了减少资源占用,系统设计中将RTL8019AS芯片的JP脚接高电平即选择跳线方式。为了防止干扰和破坏元器件,实现带电拔插功能,需要将RTL8019AS外接一个隔离LPF滤波器,再通过RJ45接口接入以太网。系统硬件结构框图如图1所示。


图1  系统硬件结构框图

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.2 单片机控制以太网卡工作过程

系统在上电工作时首先要进行初始化,即初始化单片机C8051F020和RTL8019AS,进行工作参数和条件的设置,主要是一些寄存器的配置和内置RAM空间的分配。初始化之后,由于MCU系统中的TCP/IP是直接面向硬件的,没有嵌入式实时操作系统的支持,程序结构一般采用顺序执行和硬件中断相结合的方式,与操作系统的多进程并发执行的方式截然不同。当所有初始化完成之后,就采用查询方式开始工作,程序流程图见图2。

当系统接入以太网开始运行时,首先进行地址解析,在网络内进行“身份识别”,当用户通过浏览器发出请求时,网络芯片驱动程序接收以太网帧形式的用户请求,然后传输给上层协议逐层分离取出用户请求,控制系统根据用户请求调用单片机C8051F020外围传感器采集温室内相应的状态数据,再将数据逐层打包,最后交给以太网芯片RTL8019AS封装成以太网帧发送出去。如果传输的数据量比较大,则重复多次数据发送过程,便可完成一个数据的完整传输。在终端可以以Web网页的形式供用户浏览和做出进一步的判断控制。

温室控制系统中单片机主要完成来自网络数据的解包和接受温室传感器采集的数据的打包,当以太网有数据到达该设备时,单片机采用查询方式读取网络数据并分析,先将其目的地址与系统的物理地址相比较,如果地址不相符,则将该数据丢弃,如果相符,则判断是否是ARP数据包,是则转入ARP处理程序,并发送RARP数据包。如果是UDP数据包且IP地址和端口号正确,则开始数据接收。当传感器传来的数据要发送时,单片机先将待发送的数据按UDP 协议格式打包进行封装,需要设置以太网目的地址、源地址、协议类型,再按所设置的协议类型来设置数据段。然后给出发送缓冲区首地址和数据包长度,启动发送命令。通过远程DMA通道送到RTL8019AS中的发送缓冲区,即可实现RTL8019AS的发送功能,并将结果写入状态寄存器中。再启动本地DMA,将数据发送到网络上。


图2 系统程序流程图

4  结论

(1)提出将单片微处理器提升为具有系统软件和TCP/IP协议的嵌入式Web服务器,并用于温室环境控制的方案。这种嵌入TCP/IP协议的单片机系统成本低、硬件少、传输速度快、使用方便,可在远程数据采集和传输、远程监控等方面有广泛应用前景。

(2)设计了系统的软硬件,通过用单片机控制网络接口芯片RTL8019AS,同时嵌入精简的TCP/IP协议,将温室控制器扩展成嵌入式Web服务器,实现温室内各种状态数据的采集与控制。

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

在工业物联网设备部署中,Modbus通信故障是导致系统停机的首要原因之一。据统计,超过60%的现场问题源于通信配置错误或数据解析异常。本文从嵌入式系统开发视角,系统阐述Modbus通信调试的方法论,结合实际案例解析如何高...

关键字: 嵌入式系统 Modbus通信

在嵌入式系统开发中,看门狗(Watchdog Timer, WDT)是保障系统可靠性的核心组件,其初始化时机的选择直接影响系统抗干扰能力和稳定性。本文从硬件架构、软件流程、安全规范三个维度,系统分析看门狗初始化的最佳实践...

关键字: 单片机 看门狗 嵌入式系统

人工智能(AI)和机器学习(ML)是使系统能够从数据中学习、进行推理并随着时间的推移提高性能的关键技术。这些技术通常用于大型数据中心和功能强大的GPU,但在微控制器(MCU)等资源受限的器件上部署这些技术的需求也在不断增...

关键字: 嵌入式系统 人工智能 机器学习

Zephyr开源项目由Linux基金会维护,是一个针对资源受限的嵌入式设备优化的小型、可缩放、多体系结构实时操作系统(RTOS)。近年来,Zephyr RTOS在嵌入式开发中的采用度逐步增加,支持的开发板和传感器不断增加...

关键字: 嵌入式系统 软件开发 实时操作系统 Zephyr项目

在资源受限的嵌入式系统中,代码执行效率和内存占用始终是开发者需要权衡的核心问题。内联函数(inline functions)和宏(macros)作为两种常见的代码展开技术,在性能、可维护性和安全性方面表现出显著差异。本文...

关键字: 内联函数 嵌入式系统

在嵌入式系统和服务器开发中,日志系统是故障排查和运行监控的核心组件。本文基于Linux环境实现一个轻量级C语言日志库,支持DEBUG/INFO/WARN/ERROR四级日志分级,并实现按大小滚动的文件轮转机制。该设计在某...

关键字: C语言 嵌入式系统

在嵌入式系统和底层驱动开发中,C语言因其高效性和可控性成为主流选择,但缺乏原生单元测试支持成为开发痛点。本文提出一种基于宏定义和测试用例管理的轻量级单元测试框架方案,通过自定义断言宏和测试注册机制,实现无需外部依赖的嵌入...

关键字: C语言 嵌入式系统 驱动开发

在嵌入式系统与驱动开发中,内存映射I/O(Memory-Mapped I/O, MMIO)是一种将硬件寄存器映射到处理器地址空间的技术,允许开发者通过指针直接读写寄存器,实现高效、低延迟的硬件控制。本文通过C语言实战案例...

关键字: 内存映射 I/O操作 嵌入式系统

在嵌入式系统开发和多线程编程中,程序崩溃、内存越界等复杂问题常令开发者困扰。GDB作为强大的调试工具,其条件断点和内存查看功能可精准定位隐蔽缺陷。本文通过实际案例演示这些高级功能的应用,帮助开发者提升调试效率。

关键字: GDB 嵌入式系统
关闭