微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于TCP/IP的串口数据流传输的实现

基于TCP/IP的串口数据流传输的实现

时间:08-03 来源:互联网 点击:

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的工作等功能。   

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top