实现基于TCP/IP的多串口转换网关
发布时间:2008/5/26 0:00:00 访问次数:653
    
    
    来源:单片机及嵌入式系统应用 作者:东华理工学院 刘通良 周建勇 潘仕彬 何为民
    
    随着企业规模的扩大和internet技术的广泛普及,全球各个领域的不同企业已经对“让设备联网”达成共识,而在工业控制和通信设备中,更多的却是符合rs232标准的串行口设备。如何将多个串行口的数据转发到网络上,实现设备的远程控制、数据的远程传输便成了一个亟待解决的问题。同时,考虑到成本问题,以往设备又不可能全部淘汰,因此,本文提出一种基于tcp/ip的多串口转换网关,可从根本上解决这一难题。
    
    多串口转换网关使得串口数据流到以太网数据流的传输成为可能。它能连接多个rs232串口设备,并将串口数据进行选择和处理,把rs232接口的数据流转化成以太网数据流,这样就可以进行网络化的数据处理,实现串行数据的网络化。采用此种方案,无需淘汰原有串口设备,多台设备可同时入网,既可以提高设备利用率,又节约组网费用,还可在已有的网络基础上简化布线复杂度。采用串口扩展芯片gm8123可实现低成本、较高速度、控制简单的多串口方案。
    
    1 系统应用方案
    
    在企业自动化系统中,上层企业管理层和生产监控层一般都采用以太网和pc机,而下层车间现场多是rs232串口的测控设备。本文提出的多串口转换网关,能够方便实现上下两层的沟通。
    
    可连接多台串口设备是本系统最大的特点,避免了为每台设备配置一个网关带来的成本较高、组网复杂的弊端。
    
    2 系统结构
    
    tcp/ip协议由应用层、udp层、ip层和数据链路层组成。为了实现透明传输,增加应用进程协议层——串口层。串口层由串口链路层和串口网络层构成。网关在串口层构建,同时解析rs232数据包,并作为tcp/ip网络应用层的数据传输。多串口网关由tcp/ip协议转换模块和多串口收发控制模块组成,结构如图1所示。
    
    
    (1)tcp/lp协议转换模块
    
    它是一个微型的以太网接入模块,由微控制器(mcu)、网卡接口芯片、eeprom 93c46、片外512 kbsram芯片is6llv5128以及辅助元件构成。微控制器控制网卡接口芯片进行网络通信,实现地址解析协议(arp)、internet控制报文协议(icmp)、ip协议、用户数据报协议(udp)等协议的解析和封包。将以太网发送缓冲区的串口帧封装在udp包中,并传给ip层;同时,接收以太网数据帧并向上层层解包,分离应用层数据,然后数据的解析处理交由多串口发送模块完成,实现rs232串口流与以太网端口流的透明转换。
    
    (2)多串口收发控制模块
    
    实现多个rs232串口数据流的收/发控制,包括微控制器、串口扩展芯片(gm8123)、max232等元件。微控制器控制gm8123完成多串口数据收发,接收多个串口源数据,封装后写入以太网发送缓冲区打包传输;同时,接收以太网应用层的数据,解析并发送给测控设备。它不关心通信数据的具体意义,只负责接收/发送,封装/拆封串口帧,提供通用接口。
    
    3 多串口实现
    
    3.1 实现方案——采用串口扩展芯片
    
    在微控制器中有2个uart的基础上,采用gm8123,系统能提供2组(uarto、uartl)共4个串行口(com1、com2、c0m3、com4),利用两级优先级控制uarto和uartl的中断请求且允许嵌套。在uarto的中断例程内部,通过查询方式确定数据源是哪个子串口。
    
    
    
    当两组串口同时有数据请求时,首先,mcu的中断机制判断中断请求的优先级,对优先级高的中断请求优先响应。系统对优先级分配:uart0为2,uartl为1,即mcu优先响应uart0的中断请求。当uarto的3个子口同时有数据请求时,通过轮询方式,对各个子口予以响应,即按照子口号的地址由小到大进行响应。这样,就形成了2级中断和4个串口的多串口实现方案。
   &
    
    
    来源:单片机及嵌入式系统应用 作者:东华理工学院 刘通良 周建勇 潘仕彬 何为民
    
    随着企业规模的扩大和internet技术的广泛普及,全球各个领域的不同企业已经对“让设备联网”达成共识,而在工业控制和通信设备中,更多的却是符合rs232标准的串行口设备。如何将多个串行口的数据转发到网络上,实现设备的远程控制、数据的远程传输便成了一个亟待解决的问题。同时,考虑到成本问题,以往设备又不可能全部淘汰,因此,本文提出一种基于tcp/ip的多串口转换网关,可从根本上解决这一难题。
    
    多串口转换网关使得串口数据流到以太网数据流的传输成为可能。它能连接多个rs232串口设备,并将串口数据进行选择和处理,把rs232接口的数据流转化成以太网数据流,这样就可以进行网络化的数据处理,实现串行数据的网络化。采用此种方案,无需淘汰原有串口设备,多台设备可同时入网,既可以提高设备利用率,又节约组网费用,还可在已有的网络基础上简化布线复杂度。采用串口扩展芯片gm8123可实现低成本、较高速度、控制简单的多串口方案。
    
    1 系统应用方案
    
    在企业自动化系统中,上层企业管理层和生产监控层一般都采用以太网和pc机,而下层车间现场多是rs232串口的测控设备。本文提出的多串口转换网关,能够方便实现上下两层的沟通。
    
    可连接多台串口设备是本系统最大的特点,避免了为每台设备配置一个网关带来的成本较高、组网复杂的弊端。
    
    2 系统结构
    
    tcp/ip协议由应用层、udp层、ip层和数据链路层组成。为了实现透明传输,增加应用进程协议层——串口层。串口层由串口链路层和串口网络层构成。网关在串口层构建,同时解析rs232数据包,并作为tcp/ip网络应用层的数据传输。多串口网关由tcp/ip协议转换模块和多串口收发控制模块组成,结构如图1所示。
    
    
    (1)tcp/lp协议转换模块
    
    它是一个微型的以太网接入模块,由微控制器(mcu)、网卡接口芯片、eeprom 93c46、片外512 kbsram芯片is6llv5128以及辅助元件构成。微控制器控制网卡接口芯片进行网络通信,实现地址解析协议(arp)、internet控制报文协议(icmp)、ip协议、用户数据报协议(udp)等协议的解析和封包。将以太网发送缓冲区的串口帧封装在udp包中,并传给ip层;同时,接收以太网数据帧并向上层层解包,分离应用层数据,然后数据的解析处理交由多串口发送模块完成,实现rs232串口流与以太网端口流的透明转换。
    
    (2)多串口收发控制模块
    
    实现多个rs232串口数据流的收/发控制,包括微控制器、串口扩展芯片(gm8123)、max232等元件。微控制器控制gm8123完成多串口数据收发,接收多个串口源数据,封装后写入以太网发送缓冲区打包传输;同时,接收以太网应用层的数据,解析并发送给测控设备。它不关心通信数据的具体意义,只负责接收/发送,封装/拆封串口帧,提供通用接口。
    
    3 多串口实现
    
    3.1 实现方案——采用串口扩展芯片
    
    在微控制器中有2个uart的基础上,采用gm8123,系统能提供2组(uarto、uartl)共4个串行口(com1、com2、c0m3、com4),利用两级优先级控制uarto和uartl的中断请求且允许嵌套。在uarto的中断例程内部,通过查询方式确定数据源是哪个子串口。
    
    
    
    当两组串口同时有数据请求时,首先,mcu的中断机制判断中断请求的优先级,对优先级高的中断请求优先响应。系统对优先级分配:uart0为2,uartl为1,即mcu优先响应uart0的中断请求。当uarto的3个子口同时有数据请求时,通过轮询方式,对各个子口予以响应,即按照子口号的地址由小到大进行响应。这样,就形成了2级中断和4个串口的多串口实现方案。
   &