《实现基于tcp/ip的多串口转换网关》由会员分享,可在线阅读,更多相关《实现基于tcp/ip的多串口转换网关(7页珍藏版)》请在金锄头文库上搜索。
1、实现基于实现基于 TCPIP 的多串口转换网关的多串口转换网关2007-03-13 嵌入式在线 收藏 | 打印随着企业规模的扩大和 Internet 技术的广泛普及,全球各个领域的不同企业已经对“让设备联网”达成共识,而在工业控制和通信设备中,更多的却是符合 RS232 标准的串行口设备。如何将多个串行口的数据转发到网络上,实现设备的远程控制、数据的远程传输便成了一个亟待解决的问题。同时,考虑到成本问题,以往设备又不可能全部淘汰,因此,本文提出一种基于 TCPIP 的多串口转换网关,可从根本上解决这一难题。 多串口转换网关使得串口数据流到以太网数据流的传输成为可能。它能连接多个 RS232 串
2、口设备,并将串口数据进行选择和处理,把 RS232 接口的数据流转化成以太网数据流,这样就可以进行网络化的数据处理,实现串行数据的网络化。采用此种方案,无需淘汰原有串口设备,多台设备可同时入网,既可以提高设备利用率,又节约组网费用,还可在已有的网络基础上简化布线复杂度。采用串口扩展芯片 GM8123 可实现低成本、较高速度、控制简单的多串口方案。1 1 系统应用方案系统应用方案 在企业自动化系统中,上层企业管理层和生产监控层一般都采用以太网和PC 机,而下层车间现场多是 RS232 串口的测控设备。本文提出的多串口转换网关,能够方便实现上下两层的沟通。可连接多台串口设备是本系统最大的特点,避免
3、了为每台设备配置一个网关带来的成本较高、组网复杂的弊端。2 2 系统结构系统结构 TCPIP 协议由应用层、UDP 层、IP 层和数据链路层组成。为了实现透明传输,增加应用进程协议层串口层。串口层由串口链路层和串口网络层构成。网关在串口层构建,同时解析 RS232 数据包,并作为 TCPIP 网络应用层的数据传输。多串口网关由 TCPIP 协议转换模块和多串口收发控制模块组成,结构如图 1 所示。(1)TCP(1)TCPlPlP 协议转换模块协议转换模块 它是一个微型的以太网接入模块,由微控制器(MCU)、网卡接口芯片、EEPROM 93C46、片外 512 KBSRAM 芯片 IS6lLV5
4、128 以及辅助元件构成。微控制器控制网卡接口芯片进行网络通信,实现地址解析协议(ARP)、Internet 控制报文协议(ICMP)、IP 协议、用户数据报协议(UDP)等协议的解析和封包。将以太网发送缓冲区的串口帧封装在 UDP 包中,并传给 IP 层;同时,接收以太网数据帧并向上层层解包,分离应用层数据,然后数据的解析处理交由多串口发送模块完成,实现 RS232 串口流与以太网端口流的透明转换。(2)(2)多串口收发控制模块多串口收发控制模块 实现多个 RS232 串口数据流的收发控制,包括微控制器、串口扩展芯片(GM8123)、MAX232 等元件。微控制器控制 GM8123 完成多串
5、口数据收发,接收多个串口源数据,封装后写入以太网发送缓冲区打包传输;同时,接收以太网应用层的数据,解析并发送给测控设备。它不关心通信数据的具体意义,只负责接收发送,封装拆封串口帧,提供通用接口。3 3 多串口实现多串口实现 3.13.1 实现方案实现方案采用串口扩展芯片采用串口扩展芯片 在微控制器中有 2 个 UART 的基础上,采用 GM8123,系统能提供 2 组(UARTO、UARTl)共 4 个串行口(COM1、COM2、C0M3、COM4),利用两级优先级控制 UARTO 和 UARTl 的中断请求且允许嵌套。在 UARTO 的中断例程内部,通过查询方式确定数据源是哪个子串口。当两组
6、串口同时有数据请求时,首先,MCU 的中断机制判断中断请求的优先级,对优先级高的中断请求优先响应。系统对优先级分配:UART0 为 2,UARTl 为1,即 MCU 优先响应 UART0 的中断请求。当 UARTO 的 3 个子口同时有数据请求时,通过轮询方式,对各个子口予以响应,即按照子口号的地址由小到大进行响应。这样,就形成了 2 级中断和 4 个串口的多串口实现方案。3.23.2 多串口扩展芯片多串口扩展芯片GM8123GM8123 GM8123 可将一个全双工的标准串口扩展成 3 个标准串口,并能通过外部引脚控制。选用该芯片是基于它的自身特点采用写控制字的方式对芯片进行控制,控制简单;
7、数据格式 10 位或 11 位可选;拥有 3 个子串口且各子串口波特率可调(统一调节);两种模式(单道模式和多道模式)可通过 1 根引脚控制;在多通道工作模式下,各子串口的波特率等于母串口波特率的 4 分频;在多通道工作模式下,接收时地址线 SRADD10 向 MCU 返回接收子通道的地址,MCU 接收到母串口送来的数据后,就可根据 SRADDl0 状态判断数据是从哪一个子串口送来的,发送时先由 MCU 选择子串口再向母串口发送数据;与标准串口通信格式兼容,TTL 电平输出;每位采样 16 次,提高数据正确性;宽工作电压为 2367 V。输入地址引脚有 5080 k 下拉电阻,其他输入引脚有
8、5080 k 上拉电阻(OSCI 除外)。3.33.3 各串口的特点及应用分析各串口的特点及应用分析 系统中两组串口利用的资源不同,在速率上它们之间存在差异。串口 COMl、COM2 和 COM3 通过 GM8123 扩展微控制器的 UARTO 得到,适合传输速率较慢、数据量小的设备;COM4 是微控制器的 UARTl,相对于第一组串口能很好的适应传输速率较快的设备。GM8123 工作在多道模式,各子串口必须设置统一波特率,不适用于各串口设备工作波特率不一致、又要求同时工作的场合,这也是该芯片的不足之处。实际应用中,COM1、COM2 和 COM3 应该连接类型、速率相同的设备。COM4 的波
9、特率可以根据需求具体配置,这样,系统的 4 个串口从速率上可以形成两种应用方案:一是 4 个串口配置相同波特率;二是每 l 组配置 1 个波特率值。综上所述,系统提供了由 2 组 4 个串口、两级优先级控制、2 种波特率配置方案构成的多串口实现方法。4 4 工作原理工作原理 4.14.1 帧的统一化帧的统一化 系统 4 个串口源的数据要作为以太网帧的一部分,为了向设备提供透明的接口和区分数据源,需要制定统一的帧格式。帧格式如图 2 所示,其中串口号字段用来区分数据源;帧头、帧尾作为一个串口帧的起始分界(可自定义);数据部分是来自串口的原始数据流。同样,网口发送数据也要有一致的帧格式,如图 3
10、所示。显然,串口帧是作为 UDP 层的协议数据进行传输的。4 42 2 系统数据流向分析系统数据流向分析 多串口转换网关,实现多个串口和一个网口间的数据转换,关键是多个串口数据如何送到网络上、网络数据又怎样转到多个串口。其中,串口链路层完成串口数据收发功能,串口网络层作为 TCPIP 应用层的一部分,实现串口帧的封装。发送是入协议栈的过程,如图 4 所示,接收是出协议栈的过程(图略),不同之处在于对数据的收发处理。多串口到网口的数据转换传输:串口链路层,接收来自测控设备的数据,交给串口网络层,该层完成串口数据帧的封装并放入以太网的发送缓冲区。当系统规定的 UDP 打包时间到或已经有 4 个串口
11、数据帧时,打 UDP 包,并逐层下送,直到把数据送上物理介质,完成比特流的传输。为了能一次传输尽量多的数据,系统对数据长度作了严格定义:串口数据帧的数据段最大长度为 300 个字节;网口发送帧的数据段最多允许 4 个串口数据帧。同时,还要满足具体应用对实时性的要求:对每一个串口规定一个最长响应时间。时间到时,不管是否已接收:300 个字节都要对串口数据进行封装,并放人以太网发送缓冲区;同时,为了避免系统由于等待以太网发送缓冲区串口帧数达到 4,而造成串口数据不能实时发送,要求在一定的时间内进行一次以太网通信,而不必等待 4 个串口帧到齐才打包传输。这样,系统对数据容量和时间的双重规定,能保证具
12、体应用对实时性的要求,并能一次传输尽量多的数据,降低了由于时间上的“空等”造成系统实时性差的可能性。4 个串口在串口层完成的功能是相同的,仅以 COMl 为例,给出串口层上数据流,如图 5 所示。图 6 说明了多串口数据帧等待打包传输的过程。网口数据到多串口的数据流向,是对以太网链路层的数据帧向上逐层解包的过程。如图 7 所示,将收到的以太网帧,依次去掉每层的协议头分解出应用层数据,再以 0x24 和 OxOa 为分界分离,根据串口号字段的值,将信息发送到相应的设备,完成预定的控制。结语结语 本文介绍基于 TCPIP 的多串口转换网关,采用 GM8123 芯片增加了串行口数目,适合要求入网串口设备多的场合。借助于该多串口网关,可方便的实现串口设备和监控层的透明数据通信,实现设备的网络化控制与信息的分布式管理,必能广泛的应用在基于以太网的分布式测控网络中。本文来源:单片机及嵌入式系统应用本文来源:单片机及嵌入式系统应用 作者:东华理工学院作者:东华理工学院 刘通良刘通良 周建勇周建勇 潘仕彬潘仕彬 何何为民为民隐藏原文