0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于串口数据流传输实现控制管理设备硬件的设计

电子设计 来源:中国数据通信 作者:毛期俭,丁杰,余琦 2021-05-28 09:25 次阅读

着Internet的广泛普及,“让全部设备连接网络”已经成为全世界企业的共识。为了能跟上网络自动化的潮流,不至于失去竞争优势,必须建立高品位的数据采集、生产监控、即时成本管理的联网系统。利用基于TCP/IP的串口数据流传输的实现来控制管理的设备硬件,无需投资大量的人力、物力来进行管理、更换或者升级。

串口服务器就使得基于TCP/IP的串口数据流传输成为了可能,它能将多个串口设备连接并能将串口数据流进行选择和处理,把现有的RS 232接口的数据转化成IP端口的数据,然后进行IP化的管理,IP化的数据存取,这样就能将传统的串行数据送上流行的IP通道,而无需过早淘汰原有的设备,从而提高了现有设备的利用率,节约了投资,还可在既有的网络基础上简化布线复杂度。串口服务器完成的是一个面向连接的RS 232链路和面向无连接以太网之间的通信数据的存储控制,系统对各种数据进行处理,处理来自串口设备的串口数据流,并进行格式转换,使之成为可以在以太网中传播的数据帧;对来自以太网的数据帧进行判断,并转换成串行数据送达响应的串口设备。

1 硬件系统

硬件系统是实现整个系统功能的基础,是整个设计实现的关键。

整个串口服务器的关键在于串口数据包与TCP/IP数据报之间的转换以及双方数据因为速率不同而存在的速率匹配问题,在对串口服务器的实现过程中,也必须着重考虑所做的设计和所选择的器件是否能够完成这些功能。

1.1 硬件系统组成模块

在制定设计方案和选定器件时遇到的技术难点是如何利用处理器对串口数据信息进行TCP/IP协议处理,使之变成可以在互联网上传输的IP数据包。目前解决这个问题很多时候采用32位MCU + RTOS方案,这种方案是采用32位高档单片机,在RTOS(实时多任务操作系统)的平台上进行软件开发,在嵌入式系统中实现TCP/IP的协议处理。它的缺点是:单片机价格较高,开发周期较长;需要购买昂贵的RTOS开发软件,对开发人员的开发能力要求较高。

借鉴上述方案的优缺点,我们决定把串口服务器的硬件部分分为几个模块设计,这就是主处理模块、串口数据处理模块和以太网接口及控制模块等几大模块来共同完成串口服务器的功能。

在器件的选择上,选用Intel公司的801086芯片作为主处理模块的处理器芯片,它是一种非常适合于嵌入式应用的高性能、高集成度的16位微处理器,功耗低。由于考虑到串口数据速率较低而以太网的数据传输速率高所造成的两边速率不匹配的问题,我们决定采用符合总线规范的大容量存储器来作为数据存储器;由于主处理模块还涉及到数据线/地址线复用、串并转换、器件中断信号译码、时钟信号生成、控制信号接入等功能,若是选用不同的器件来完成,势必会造成许多诸如时延不均等问题,我们选用了一片大容量的高性能可编程逻辑器件来完成上述所提到的功能,这样的优点在于,我们保证了稳定性和高可靠性,并且可编程逻辑器件的可编程功能使得对于信号的处理的空间更大,且具有升级的优势。

以太网接口及控制模块在串口服务器的硬件里面起着很重要的作用,它所处理的是来自于以太网的IP数据包,考虑到通用性的原则,我们采用一片以太网控制芯片来完成这些功能,并在主处理模块中添加了一片AT24C01来存储以太网控制芯片状态。通过主处理模块对于以太网控制芯片数据及寄存器的读/写,我们可以完成对IP数据包的分析、解/压包的工作。

串口数据处理模块主要完成的是对于串口数据流的电平转换和数据格式的处理,判断串行数据的起始位及停止位,完成对数据和校验位的提取。一般的设计采用的是MAX232和一片UART的设计思想,这里我们也是遵从这种设计理念,不过我们采用的是集成了MAX232+UART功能的芯片,小尺寸、低成本、低功耗,而且采用与SPITM/QS-PITM/MICROWIRETM兼容的串行接口,节省线路板尺寸与微控制器的I/O端口。

这种模块化的方案的优点在于:采用高速度的16位微控制器,外围器件少,系统成本低;并且采用Intel公司的开发平台,可以大幅度地缩短开发周期并降低开发成本。

1.2 硬件工作流程及应用架构

主处理器首先初始化网络及串口设备,当有数据从以太网传过来,处理器对数据报进行分析,如果是ARP(物理地址解析)数据包,则程序转入ARP处理程序;如果是IP数据包且传输层使用UDP,端口正确,则认为数据报正确,数据解包后,将数据部分通过端口所对应的串口输出。反之,如果从串口收到数据,则将数据按照UDP格式打包,送入以太网控制芯片,由其将数据输出到以太网中。可以知道,主处理模块主要处理TCP/IP的网络层和传输层,链路层部分由以太网控制芯片完成。应用层交付软件系统来处理,用户可以根据需求对收到的数据进行处理。

2 硬件系统模块

根据硬件系统的具体结构和不同功能,我们可以将硬件系统划分为下述的几大模块。

2.1 主处理器模块

该模块是串口服务器的核心部分,主要由主处理器、可编程逻辑器件、数据及程序存储器等器件构成。

主处理模块完成的功能主要有:在串口数据和以太网IP数据之间建立数据链路;通过对以太网控制芯片的控制读写来实现对IP数据包的接收与发送;判别串行数据流的格式,完成对串口设备的选择以及对串行数据流格式的指定;控制串口数据流与IP数据包之间的速率控制,对数据进行缓冲处理;对UART和以太网控制芯片的寄存器进行读写操作,并存储转发器件状态;完成16位总线数据的串并行转换;完成总线地址锁存功能;完成对各个串口以及各个存储器件的片选功能;完成对各个串口的中断口的状态判别等功能。

2.2 以太网接口及控制模块

这个模块主要由以太网接口部分和以太网控制部分构成。

以太网接口部分完成的是串口服务器与以太网接口电路的功能,控制器对所有模块均有控制作用,使整个接口电路能协调地配合后续电路完成以太网的收发功能。

以太网控制部分由收端和发端组成,在他们之间还有以太网状态检测和控制单元,以及收发协调控制器,见图5。由于以太网是半双工工作的,所以这个部分必须随时地监视以太网的状态,并且要根据需要对以太网进行控制,同时还要协调好内部收发端电路的工作状态。以太网检测单元和收发协调控制器就是完成这样的功能的。以太网状态检测单元与以太网接口的控制器接口,将接口的状态送到收发协调控制器,同时将协调控制器的控制信号进行处理,并送到以太网接口的控制器,以控制接口的状态。

在收端,接收到的串行数据流信号通过主处理模块进行串并转换和编码,以太网控制单元控制各部分协调,将产生的地址、数据、写信号送到RAM读写控制单元进行处理。相应的,发端的工作流程和收端相反。

2.3 串口数据处理模块

该模块主要完成串口设备的状态收集、串行数据流的接收和数据格式的解/封包工作,由8片UART和对应的串口接口构成。前面我们已经说明了各个端口的寻址方式,当主处理模块寻址某个端口时,由主处理模块读写相应的UART的寄存器,判定相连接的串口设备的空闲状态,并与之建立通信连接,发回控制数据帧给主处理器,主处理器收到控制信号后,再决定是否发送和接收数据流。

3 硬件系统流程

在串口服务器中,硬件部分与软件部分相结合完成整个系统的功能,用户通过软件部分的可视化界面和C/S架构的监控模式来完成对串口设备的控制与管理;硬件部分完成串行数据与IP数据包之间的格式转换以及控制信号的处理。

显示的是串口服务器硬件在系统流程的内部数据流向图。因为在整个串口服务器的系统中,硬件完成数据格式转换以及控制信号处理等主要功能,软件系统与硬件系统遵循一个标准的接口,在这个接口之上来传递数据信号和控制信号,串口服务器的状态信息主要由中央服务器来处理和收集,由于服务器完成的只是一些状态存储和转发,所以与原来的串口设备—前置机模式有很大区别,中央服务器也不需要负担太多的工作。

下面对串口服务器硬件的具体实现方案作流程说明,这样会对串口服务器有更深的了解,限于篇幅,只对主要流程作分析和介绍。

3.1 TCP/IP数据包传送至串口设备

(1)上电初始化以太网控制芯片,并从状态存储器中读取状态字写入相应的寄存器中;

(2)采用中断机制而不是轮询机制来处理以太网来的数据,当RTL8019AS接收到IP数据包时,判断数据包格式写相应寄存器,并发送中断INT0给80C186处理器,请求系统处理;

(3)80C186接收到中断,保存目前工作状态来响应中断,然后判别总线空闲状态,若忙,则置AEN高位,若空闲,则置AEN低位。同时置某些控制脚状态,使RTL8019AS地址使能;

(4)由于80C186的数据线AD0~AD15与地址线A0~A15共线,所以必须通过EPM7128S可编程逻辑器件地址锁存,80C 186送出地址信号并置ALE地址锁存使能;

(5)80C186通过数据总线读取RTL8019AS寄存器信息,判别RTL8019AS的目前状态;

(6)通过AD0~AD15读取数据包,置A19为1,使能数据存储器,将数据送至数据存储器缓存;

(7)获取IP数据包目的端口号,用以确定选通的相应器件,在这里我们认定端口号选择的是某MAX3110E,并对应相应的端口地址;

(8)置A19为0,通过A18~A16送出端口地址信号,选通该片MAX3110E,在这里我们先假设该片MAX3110E空闲;

(9)选通之后,先送出10000010××××××××,请求与串口设备建立连接,通过读取送来的16位信息的第9位判别连接是否建立;

(10)将IP数据包的数据部分通过A0~A7,而A8~A15则由系统根据系统状态加入状态字(在本流程中,我们设定加入的为10000010),一起送至EPM7128S可编程逻辑器件,通过其内部的串并转换成串行数据流送至MAX3110E;

(11)由MAX3110E将该串行数据流转换成标准异步串行数据传送给串口设备,至此,一个简要的由IP数据包传送至串口设备的流程基本上如此,在这里限于篇幅,我们只介绍了一个单向的通路情况,没有对各个旁支情况作介绍。

3.2 串口设备数据传送至以太网

由于有些步骤与上一个流程基本相似,这里略去不提。

(1)系统接收到某MAX3110E送来的中断IRQx,判别目前系统状态,响应中断;

(2)发送控制字给MAX3110E,建立连接;

(3)读取AD0~AD15,由A8~A15判别数据流的大小、格式、奇偶校验位等信息。由A0~A7接收数据送至数据存取器;

(4)选通RTL8019AS,将目前数据打包,加入TCP头和IP头送入,并由以太网接口模块送出。

3.3 可编程逻辑器件电路

EPM7128S在整个系统里面完成很重要的功能,主要完成16位地址锁存,16位数据串并转换,通过INT1~INT3来对MAX3110E芯片的中断响应,对AT24C01的工作等功能。

4 应用领域

串口服务器可以将各企事业单位的串口设备接入以太局域网实现资源共享,在通信、交通、学校、金融、税务、保险等行业都有广泛的用途。该系统有较好的市场前景,成本小,见效快,能产生一定的经济效益。

此设计作品获第八届“挑战杯”全国大学生课外学术科技作品竞赛重庆赛区特等奖,目前已经进入在华南理工大学举行的第八届“挑战杯”全国大学生课外学术科技作品竞赛决赛。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7609

    浏览量

    148371
  • 服务器
    +关注

    关注

    12

    文章

    8080

    浏览量

    82425
  • 串口
    +关注

    关注

    14

    文章

    1482

    浏览量

    74477
收藏 人收藏

    评论

    相关推荐

    单片机的三种数据传输方式介绍

    外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记, 并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠票也是 串行设备)。可以处理计算机与外部串行
    发表于 03-02 21:59

    串口服务器模块/TTL串口转以太网/以太网转串口/RS232/485/TCP/UDP

    。为了能跟上生产自动化的潮流,不至于失去竞争优势,必须建立高速的数据采集、生产监控、即时成本管理的联网系统。利用串口服务器基于TCP/IP的串口数据
    发表于 07-10 14:39

    海量数据实时存储及远程定期传输实现

    传感器数据记录、监控语音记录等重要数据后处理应用。海量数据实时存储及远程文件管理实现随着网络和信息技术的发展使
    发表于 06-25 14:41

    LabVIEW数据流控制方法研究

      LabVIEW程序的内存管理是自动进行的,中间状态的捕捉和控制十分困难。例如,实时显示现场采集数据串的最大值问题、通过按钮手动控制现场采集数据
    发表于 12-23 10:11

    基于Linux的串口服务器有什么功能?

    服务器来实现网络通信具有十分重要的意义。利用基于TCP/IP的串口数据流传输实现控制管理
    发表于 03-20 08:27

    DMA数据流配置过程

    。无需CPU直接控制,通过硬件为RAM和IO设备开辟一条直接数据传输通道,将数据直接从一个地址空间复制到另一个地址空间,
    发表于 11-03 06:32

    如何通过串口传输数据

    目录一、串口通信概述1. 串口如何连接2. 如何计算波特率二、实验演示1. 实验设备2. 实际电路连接3. 通过串口传输数据三、总结参考文献
    发表于 01-12 06:03

    DMA传输实现高速数据移动过程

    DMA传输实现高速数据移动过程无需任何CPU 操作控制其支持以下三种传输方式:外设到存储器传输
    发表于 01-21 11:32

    如何使用RT-Thread的串口设备

    /O 设备分成了三层进行处理:应用层、I/O 设备管理层、硬件驱动层。应用程序通过 RT-Thread 的设备操作接口获得正确的设备驱动,然
    发表于 10-25 11:05

    是否可以使用ESP8266将数据流传输到PC上的文件中?

    我有一个设备,可以在设备运行时将数据日志发送到闪存驱动器。 是否可以使用 ESP8266 将数据流传输到我 PC 上的文件中?这将避免必须使用 USB 中的闪存驱动器运行
    发表于 06-02 07:51

    SOC的高速数据流加密传输的方法实现

    SOC的高速数据流加密传输的方法实现 计算机技术的发展使移动存储设备代替纸张逐渐成为信息传递的主要方式,无纸化办公也逐渐成为行业用户的主要办公方式。随着
    发表于 04-01 16:30 833次阅读
    SOC的高速<b class='flag-5'>数据流</b>加密<b class='flag-5'>传输</b>的方法<b class='flag-5'>实现</b>

    基于NIOS II的多串口数据通信的实现

    串口传输常用于基于FPGA和DSP结构的信号处理板和外部设备之间的数据交换。以GPS RTK定位应用为基础,针对单个串口全双工传输不足以应对
    发表于 02-12 15:11 48次下载
    基于NIOS II的多<b class='flag-5'>串口</b><b class='flag-5'>数据</b>通信的<b class='flag-5'>实现</b>

    USB3.0接口电路实现方案

    本文简要介绍USB 接口的特点、硬件结构、数据流传送以及外设控制器的实现方式
    发表于 12-05 11:51 1.8w次阅读

    LabVIEW的串口转WiFi数据传输实现方法

    在测控领域,仪器与计算机之间通常采用串口通信,串口通信是有线传输,存在传输距离短、可移动性差等缺点。本文采用串口与WiFi相结合的方式,提出
    发表于 11-17 11:20 3796次阅读

    英创信息技术Linux工控主板串口硬件流控实现方法

    ,RTS,CTS,GND。流控可以使数据接收设备在不能接收数据时通知数据发送设备,使其停止发送。 串口
    的头像 发表于 02-04 10:40 1153次阅读
    英创信息技术Linux工控主板<b class='flag-5'>串口</b><b class='flag-5'>硬件</b>流控<b class='flag-5'>实现</b>方法