推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

基于TCP/IP协议的嵌入式Web服务器系统实现远程监控和信息处理

   2023-08-16 网络整理佚名2740
核心提示:以实现对系统的远程监测和数据集中处理。实现有效的远程监控和信息处理。将串口数据通过网络传输成为串口设备网络化进程的研发热点。用户可通过网页形式向服务器发送指令。服务器的主程序框图。包括中断处理、内存映射的维护、任务上下文切换和初始化过程等。通信设备以及工业生产中的数据采集控制设备也在逐步网络化。必将推动嵌入式终端系统的广泛应用。为远程监控和数据集中处理提供了一种新的选择。

随着互联网和通信业的快速发展,人们的生活、工作和思维方式发生了巨大变化。 嵌入式系统给信息社会带来了新的活力,嵌入式技术的出现和发展无疑对这一趋势起到了推波助澜的作用。

目前,随着互联网技术的日益广泛应用,网络传输已成为最经济有效的数据传输方式,越来越多的设备需要配备网络接入功能,以实现系统的远程监控和集中数据处理。

本文提出一种嵌入式Web系统解决方案,利用基于TCP/IP协议的串口/以太网数据转换技术实现串口设备数据的网络传输,将监控数据存储在非易失性存储器中,并发布到及时更新互联网网站监控页面。 用户可以通过访问系统的Web服务器远程获取所需信息,实现有效的远程监控和信息处理。

1 串行以太网数据转换

近年来,互联网以其高速、便捷的数据传输而越来越普及。 在工业控制和通讯设备中,大多数都是符合RS-232/485标准的串口设备。 与基于RS-232/485标准的串行通信相比,TCP/IP网络具有带宽大、速率高、距离远、通信服务范围广等优点,网络通信距离可无限延长,比RS标准通信抗干扰能力差,信息传输容易出错,网络基于复杂环境设计,具有自动纠错功能,通信质量稳定,不易受外界干扰。 因此,通过网络传输串口数据成为串口设备组网过程中的研发热点。

图 1 串行以太网转换器

串口以太网转换器(如图1所示)的出现,使得基于TCP/IP传输串口数据流成为可能。 它可以连接多个串口设备,并对串口数据流进行选择和处理。 将现有的RS标准接口数据转换为IP口数据,然后进行IP化管理和IP化访问,使传统串口数据可以发送到流行的网络通道,无需过早淘汰现有串口设备,提高设备的性能。利用率。 各种转换器完成了一个面向RS标准的有链路和无连接的以太网通信数据存储控制器,它将串口设备发出的各种数据流转换成可以在以太网中传输的数据帧,并对来自以太网的数据帧进行判断并转换成串口数据并传送到相应的串行设备。 其中包括三项关键技术:

① TCP/IP协议的工作方式:串口转以太网并不是物理层和数据链路层的简单转换,而是将串口的数据作为TCP/IP的应用层数据,进行封装和转换通过 TCP/IP 传输。 例如,用户通过recv()和send()函数接收和发送的实际上是应用层数据。 但TCP/IP并不只是recv()和send()那么简单。 根据不同的工作模式,涉及到连接、监听、关闭等,这是串口转换为网口后需要处理的部分。 TCP/IP的工作模式可分为:TCP服务器模式(TCP)、TCP客户端模式(TCP)、UDP模式。 UDP模式:UDP模式是基于无连接的模式,只要有数据要发送,就可以发送,无需事先连接。 TCP模式:TCP模式采用可靠的数据传输机制,因此可以保证数据不会错误或丢失。

②串口成帧技术:串口数据可以连续发送,而以太网数据是以数据包为单位发送的。 这就涉及到串口数据多久被打包成以太网数据包发送的问题。 目前主要有数据包长度或数据包间隔两种方式。

③ 9位技术:以太网数据按Byte计算,每个字节为8位,但串口数据可能有9位。 第9位常用于区分是地址帧还是数据帧。 1表示地址帧0表示数据帧。 那么串口转以太网之后,第9位如何传输也成为一个关键技术。 在很多串口转网口的方案中,第九位直接被丢弃。 据了解,上海卓岚信息技术的解决方案具有快速适配第9位的功能,实现方法采用了所谓的协议。

由于增加了第9位,串口数据无法直接透明转换为TCP/IP应用层数据。 协议将串口数据打包后,作为TCP/IP应用数据进行传输。 这样就可以在协议的协议头中添加数据包的第9位是1还是0的信息,从而实现9位传输技术。

2 嵌入式Web系统设计

2.1 系统基本工作原理

要连接嵌入式以太网,满足通过网络传输数据的要求,首先必须正确设置工作模式和状态,通过读写相应的地址和数据端口来完成以太网帧的接收和发送。 内部有远程DMA接口、本地DMA接口、MAC逻辑、数据编解码逻辑等端口。 远程DMA接口是MCU读写网卡内部RAM的总线。 本地DMA接口是与网线的连接通道,完成控制器与网线之间的数据交换。

MAC主要完成以下两个功能:(1)MCU向发送数据时,首先通过远程DMA通道向网卡的发送缓冲区发送一帧,然后发送传输命令。 开始发送当前帧。 (2)网卡接收到的数据通过MAC比较和CRC校验后,通过FIFO存储到接收缓冲区中。 收到完整帧后,通过中断通知主处理器。 设置相关参数后,系统进入正常工作状态,执行与连接相关的功能。

2.2 硬件设计

该系统由嵌入式Web服务器和串口终端设备两部分组成,如图2所示。

图2 系统结构

嵌入式Web是系统的核心,采用B/S机制。 外部直接连接,内部连接串口终端,并提供Web服务和用户交互。 用户可以通过网页向服务器发送指令。 系统接收到信息后,进行协议分析和转换,并向相应的串口终端发送控制命令。 串口终端执行相关操作后,会将执行结果通过Web服务器以网页的形式反馈给用户。

嵌入式Web服务器的主要组成部分有:微控制芯片()、以太网控制芯片()、多串口协议处理器、外部扩展Flash ROM芯片等。 外部扩展ROM用于存储IP地址、网卡物理地址等相关参数,还可以存储程序和网页数据。

2.2.1 微控制器(MCU)

微控制器采用该公司的16/32位RISC结构芯片。 该芯片是一款高性能、低成本的微处理器,集成了丰富的片上外设,包括:8K缓存、可选的SRAM控制器、双通道UART和带有握手信号的RTL时钟。 极低的功耗和简单的全静态设计使其成为低成本和功耗敏感项目的理想选择。

2.2.2 网络连接

网络控制器采用本公司网络接口芯片进行网络连接,通过RJ45连接到局域网。 44B0X主频处理能力高达66MHZ,采用8位I/O作为系统数据总线直接连接,实现网络数据的快速封装、编码和发送。 通信采用单字节模式,使用8位数据总线与MCU交换数据。

2.2.3 串口控制模块

44B0X本身具有2个UART串口接口,可以模拟多个串口之间的通信,但与传统单级数据采集系统不同的是,该系统的串口模块可以连接更多的串口设备,实现多种协议的连接串行端口设备。 同时要求所有设备同时工作,但移植的系统是桌面系统,其串口I/O适应性较弱,多端口I/O通信会占用较大的开销系统。 从流程中解放出来,同时使串口设备能够与主控制器灵活通信,引入嵌入式串口协议处理器的串口模块,如图3所示。它主要负责数据的采集和处理。控制多个串口设备,完成串口数据流的电平转换和数据格式处理,判断串口数据的起始位和停止位,完成数据和奇偶校验位的提取。 电路设计中采用/485芯片实现相应电平的转换。

图3 MCU与串口模块连接图

主处理器的两路UART接口扩展为两路串口,即COMA和COMB。

图4 多串口扩展硬件结构图

多串口通信电路采用扩展通用异步收发器,发送和接收各有64字节的FIFO,扩展4路RS232和RS485通信串口COMC、COMD、COME和COMF,其中COMD和COME未示出图中,其结构与COMC、COMF相同。 和 之间的接口如图4所示。地址线选择要读写的寄存器; 数据线读写数据、命令和状态; 中断信号线为4路UART的中断信号,直接连接到MCU的中断引脚。 作为接收和发送的中断信号连接。 扩展4路串口通道,每个通道有15或16个内部寄存器,用于存储发送和接收数据以及配置串口的工作模式,每个寄存器需要在初始化时配置,工作模式包括中断模式和定时查询模式,中断模式实时性好,适合紧急情况。 常规查询方式实时性一般,不会丢失数据。 本文采用中断和并行通信的方式来提高通信速度; 发送、接收和控制信号通过光耦和5V DC/DC隔离电源模块完全隔离,防止外部信号对CPU等核心电路的干扰。 该模块实现RS232和RS485通讯模式的切换。

2.3 软件设计

2.3.1 系统流程

为了使用户能够远程访问Web,系统在TCP/IP协议的基础上采用B/S通信模式进行网络通信编程。 整个服务器的主程序框图如图5所示。

图5是Web服务器的主程序框图。

系统初始化后,首先设置MCU内部定时器的工作模式,轮询串口模块是否有数据要接收,然后设置芯片参数连接网络。 初始化成功后,系统将获得一个IP地址,用户可以通过该地址实现远程控制。 同时,为了保证网络的正常运行,系统需要监控网络状态,对从从机收到的数据帧进行解包和分析,根据情况进入ARP、ICMP、TCP、UDP和HTTP处理子程序。分析结果,并将串口数据发送至以太网。 以太网内所有使用 TCP/IP 协议的计算机都可以接收该数据。

2.3.2 使用boa服务器迁移

它是一个基于linux内核的开源操作系统。 不同的是它可以满足不带内存管理单元(MMU)的微处理器的需求,并且具有良好的可移植性。 由于内核采用模块化设计,许多功能可以独立添加或删除,以达到达到所需节省资源的目的。 针对不同的处理器和开发板,[5]的移植可以分为三个层次:

架构层面:目前可以支持更多的架构,但如果要移植的处理器不在支持的处理器架构内,则需要添加或修改linux/arch目录下与处理器架构相关的文件,包括中断处理、内存映射维护、任务上下文切换和初始化程序等。

平台层面:对于已经支持架构的分支处理器,需要在相关架构目录下创建对应的目录,并参考同架构的其他系列处理器编写对应的代码。

板级:对于支持的处理器,仅需要板级移植。 完成不同开发板硬件资源的驱动程序编程和环境变量设置。

本文中使用的.4.x 版本不支持处理器。 参考其对同ARM架构下处理器的支持,重写内核以支持处理器。 移植过程中,配置相应模块并修改源码[6]实现了对串口和网络的支持。 另外,本文还移植了(.1.4)和根文件系统ROMFS。

Boa是一个基于GNU/Linux平台的嵌入式Web服务器[7],其最大的特点是速度和安全性。 Boa源代码开放,性能优良,并且支持CGI,特别适合在嵌入式系统中使用。

移植Boa有两种方式:

① 对于ARM9平台,从网上下载BOA源代码,编译成bin文件,将二进制代码放入根文件系统,然后配置boa.conf。

② 如果要在编译内核时自定义用户程序,则选择BOA,然后编译内核并下载到开发板。 ARM7一般采用这种方法。

为了方便Boa服务器的调试和修改,本文直接复制源码下的boa文件夹,并采用类似ARM9的编译方式。 然后,通过移植该库来实现应用程序与Web服务器的交互,从而实现客户端对服务器的操作。 简单来说,CGI程序的工作过程[8]

包含以下步骤(如图6所示):

① 客户端通过浏览器向Web服务器发送请求; ② Web服务器收到请求后,将请求信息发送给指定的CGI程序; ③ CGI程序处理客户端的请求,并将处理结果发送给Web服务器; ④ Web服务器将CGI程序的处理结果返回给客户端浏览器。

图6 CGI技术流程

2.3.3 串口模块

串口终端的操作需要对44B0X微处理器进行编程,主要完成串口模块的数据交换、处理系统发送的命令、返回操作结果等功能。

3 结论

当今时代,计算机在网络互联的同时,各种家用电器、通讯设备、工业生产中的数据采集控制设备也逐渐网络化。 结合当前串口设备联网热潮,提出一种嵌入式Web系统解决方案,实现了嵌入式系统的网络访问、信息处理、Web服务等功能。 该系统具有以下特点:

① 采用Web机制,用户无需专用软件即可浏览访问控制页面,使系统的访问和操作更加方便。 采用MCU片上可编程技术,系统功能可调整,具有良好的扩展性,可适用于不同场合。

② 实现串口设备的网络化传输,避免串口设备在网络化趋势下过早淘汰,实现产品升级,节省成本。

嵌入式Web系统实现互联网接入,可以方便地将终端设备采集的各种数据通过网络传输到上位机,使终端用户可以随时访问Web服务器提供的最新网页,实现快速以及便捷的信息交互。 基于浏览器的Web技术与嵌入式终端的结合必将促进嵌入式终端系统的广泛应用。 该系统的设计可应用于远程工业监控、环境温湿度自动监测、大坝水位实时观测等,为远程监控和集中数据处理提供了新的选择。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON