![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 实现基于TCP/IP的多串口转换网关 | |||||
作者:刘通良 周… 文章来源:单片机及嵌入式系统应用 点击数: 更新时间:2007-3-22 ![]() |
|||||
|
来源:单片机及嵌入式系统应用 作者:东华理工学院 刘通良 周建勇 潘仕彬 何为民 随着企业规模的扩大和Internet技术的广泛普及,全球各个领域的不同企业已经对“让设备联网”达成共识,而在工业控制和通信设备中,更多的却是符合RS232标准的串行口设备。如何将多个串行口的数据转发到网络上,实现设备的远程控制、数据的远程传输便成了一个亟待解决的问题。同时,考虑到成本问题,以往设备又不可能全部淘汰,因此,本文提出一种基于TCP/IP的多串口转换网关,可从根本上解决这一难题。
1 系统应用方案 在企业自动化系统中,上层企业管理层和生产监控层一般都采用以太网和PC机,而下层车间现场多是RS232串口的测控设备。本文提出的多串口转换网关,能够方便实现上下两层的沟通。
2 系统结构 TCP/IP协议由应用层、UDP层、IP层和数据链路层组成。为了实现透明传输,增加应用进程协议层——串口层。串口层由串口链路层和串口网络层构成。网关在串口层构建,同时解析RS232数据包,并作为TCP/IP网络应用层的数据传输。多串口网关由TCP/IP协议转换模块和多串口收发控制模块组成,结构如图1所示。
它是一个微型的以太网接入模块,由微控制器(MCU)、网卡接口芯片、EEPROM 93C46、片外512 KBSRAM芯片IS6lLV5128以及辅助元件构成。微控制器控制网卡接口芯片进行网络通信,实现地址解析协议(ARP)、Internet控制报文协议(ICMP)、IP协议、用户数据报协议(UDP)等协议的解析和封包。将以太网发送缓冲区的串口帧封装在UDP包中,并传给IP层;同时,接收以太网数据帧并向上层层解包,分离应用层数据,然后数据的解析处理交由多串口发送模块完成,实现RS232串口流与以太网端口流的透明转换。
实现多个RS232串口数据流的收/发控制,包括微控制器、串口扩展芯片(GM8123)、MAX232等元件。微控制器控制GM8123完成多串口数据收发,接收多个串口源数据,封装后写入以太网发送缓冲区打包传输;同时,接收以太网应用层的数据,解析并发送给测控设备。它不关心通信数据的具体意义,只负责接收/发送,封装/拆封串口帧,提供通用接口。
3 多串口实现 3.1 实现方案——采用串口扩展芯片 在微控制器中有2个UART的基础上,采用GM8123,系统能提供2组(UARTO、UARTl)共4个串行口(COM1、COM2、C0M3、COM4),利用两级优先级控制UARTO和UARTl的中断请求且允许嵌套。在UARTO的中断例程内部,通过查询方式确定数据源是哪个子串口。
GM8123可将一个全双工的标准串口扩展成3个标准串口,并能通过外部引脚控制。选用该芯片是基于它的自身特点: ①采用写控制字的方式对芯片进行控制,控制简单; ②数据格式10位或11位可选; ③拥有3个子串口.且各子串口波特率可调(统一调节); ④两种模式(单道模式和多道模式)可通过1根引脚控制; ⑤在多通道工作模式下,各子串口的波特率等于母串口波特率的4分频; ⑥在多通道工作模式下,接收时地址线SRADD1~0向MCU返回接收子通道的地址,MCU接收到母串口送来的数据后,就可根据SRADDl~0状态判断数据是从哪一个子串口送来的,发送时先由MCU选择子串口再向母串口发送数据; ⑦与标准串口通信格式兼容,TTL电平输出; ⑧每位采样16次,提高数据正确性; ⑨宽工作电压为2.3~6.7 V。 ⑩输入地址引脚有50~80 kΩ下拉电阻,其他输入 引脚有50~80 kΩ上拉电阻(OSCI除外)。
系统中两组串口利用的资源不同,在速率上它们之间存在差异。串口COMl、COM2和COM3通过GM8123扩展微控制器的UARTO得到,适合传输速率较慢、数据量小的设备;COM4是微控制器的UARTl,相对于第一组串口能很好的适应传输速率较快的设备。
4 工作原理 4.1 帧的统一化 系统4个串口源的数据要作为以太网帧的一部分,为了向设备提供透明的接口和区分数据源,需要制定统一的帧格式。帧格式如图2所示,其中串口号字段用来区分数据源;帧头、帧尾作为一个串口帧的起始分界(可自定义);数据部分是来自串口的原始数据流。同样,网口发送数据也要有一致的帧格式,如图3所示。显然,串口帧是作为UDP层的协议数据进行传输的。
4.2系统数据流向分析 多串口转换网关,实现多个串口和一个网口间的数据转换,关键是多个串口数据如何送到网络上、网络数据又怎样转到多个串口。其中,串口链路层完成串口数据收发功能,串口网络层作为TCP/IP应用层的一部分,实现串口帧的封装。发送是入协议栈的过程,如图4所示,接收是出协议栈的过程(图略),不同之处在于对数据的收/发处理。
多串口到网口的数据转换传输:串口链路层,接收来自测控设备的数据,交给串口网络层,该层完成串口数据帧的封装并放入以太网的发送缓冲区。当系统规定的UDP打包时间到或已经有4个串口数据帧时,打UDP包,并逐层下送,直到把数据送上物理介质,完成比特流的传输。
流,如图5所示。 图6说明了多串口数据帧等待打包传输的过程。 网口数据到多串口的数据流向,是对以太网链路层的数据帧向上逐层解包的过程。如图7所示,将收到的以太网帧,依次去掉每层的协议头分解出应用层数据,再以0x24和OxOa为分界分离,根据串口号字段的值,将信息发送到相应的设备,完成预定的控制。
结语 本文介绍基于TCP/IP的多串口转换网关,采用GM8123芯片增加了串行口数目,适合要求入网串口设备多的场合。借助于该多串口网关,可方便的实现串口设备和监控层的透明数据通信,实现设备的网络化控制与信息的分布式管理,必能广泛的应用在基于以太网的分布式测控网络中。 |
|||||
| 欢迎点击进入:TI德州中文网 (国内唯一针对TI应用的中文技术网站) 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登录 | | |||
|
|