串口转以太网

串口转以太网

背景

随着“工业4.0”的概念在2013年被正式提出之后,“智能化”成为引领第四代工业革命的主题,制造业成为经济增长的中坚力量。

“工业4.0”是一个利用物联信息系统(Cyber-Physical System简称CPS)将生产中的供应,制造,销售信息数据化、智慧化,以提高制造技术水平为方向,将制造业转向智能化为目标的一场“自下而上”的生产模式革命。核心概括为建设一个网络系统(Cyber-Physical System,物联信息系统)、研究两大主题(智能工厂、智能生产)、实现三大集成(横向集成、纵向集成及端对端的集成)、推进三大转变。

应用

互联工业4.0的核心是连接,要把设备、生产线、工厂、供应商、产品和客户紧密地联系在一起。所以,全球各个领域的不同企业已经对“让设备联网”达成共识,而在工业控制和通信设备中,更多的却是符合RS232标准的串行口设备。如何将多个串行口的数据转发到网络上,实现设备的远程控制、数据的远程传输便成了一个亟待解决的问题。

在传统的安全防护领域,机房监控领域,工业控制领域,医疗设备领域,智能楼宇领域当中,有成千上万的感应器,PLC,控制器,监测器,读卡器等RS-232/485/422串口设备,都是通过RS-232串口通信或者RS-485/42总线通信与PC进行数据通信,数据交换和数据管理的。随着社会需求的发展,从而要求更大的系统,更加稳定的系统,更大的数据流量的系统。使得现有的RS-232串口通信,RS-485/422总线通信不能满足社会的需求。 随着TCP/IP网络的快速普及,从而使得TCP/IP网络得到了极大的丰富,TCP/IP网络已经延伸到社会的各个角落。与RS-232串口通信,RS-485总线通信相比较,TCP/IP网络具有通信距离远,只要联接互联网,通信距离可以无限延长。而RS-232串口通信的距离就只有15M,而RS-485通信距离就只有1200M(可以通过485中继器延长通信距离,但是最多延长6000M,而且还要视外部环境而定)。TCP/IP网络通信质量稳定,由于TCP/IP网络是基于复杂环境设计的,具有自动纠错功能,所以通信质量非常稳定,不受外部环境干扰。而RS-232串口通信,RS-485总线通信则抗干扰能力比较差,容易出错。随着TCP/IP网络的发展,其通信流量不断的提高,现在TCP/IP网络100M已经成为了标准配置,而且1000M数据接口也正在普及当中。而RS-232串口通信,RS-485总线通信的速率一般最大只可以达到100K左右,而且随着速率的提高,其稳定性,通信距离都会成反比的相应发生变化。

串口

串口,COM口(cluster communicatetion port)即串行通讯端口,简称串口。按电气标准及协议来分,包括RS-232-C、RS-422、RS485、USB等。RS-232-C、RS422和RS-485标准支队接口的电气特性做出规定,不涉及外挂程式、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。

  • RS-232-C:也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是”数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准“。传统的RS-232-C接口标准有22根先,采用标准25芯D型插头座。后来的PC上使用简化了的9芯D型插座。如今应用中25芯插头座已很少采用。如今的电脑一般有两个串行口:COM1和COM2,你到计算机后面能看到9针D形接口就是了。

  • RS-422:为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到了10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。

  • RS-485:为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。

  • SATA接口:SATA的全称是Serial Advanced Technology Attachment(串行高级技术附件,一种基于行业标准的串行硬件驱动器接口),是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬盘接口规范。

  • USB接口:Universal Serial Bus(通用串行总线) 简称USB,是如今电脑上应用较广泛的接口规范,由Intel、Microsoft、Compaq、IBM、NEC、Northern Telcom等几家大厂商发起的新型外设接口标准。USB接口是电脑主板上的一种四针接口,其中中间两个针传输数据,两边两个针给外设供电。支持热插拔。

  • RJ-45接口是以太网最为常用的接口,有八条针脚,RJ45是一个常用名称,指的是由IEC (60)603-7标准化,使用由国际性的接外挂程式标准定义的8个位置(8针)的模块化插孔或者插头。而用于串行数据传输的RJ-45接口不是标准接口,它有10条针脚。

串口转以太网

如果按照ISO的7层模型(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)来分的话,串口实际上只包含了物理层、数据链路层。而TCP/IP协议应该属于网络层和传输层。所以串口转TCP/IP并不准确。以太网属于物理层和数据链路层,所以串口转以太网更加准确。

而由于目前在以太网之上运行的协议多半是TCP IP协议,所以串口转以太网也可以说成是串口转TCP/IP。

串口转网口,网口转串口其实是说的同一个东西,因为这类产品都是可以实现双向互转的。

串口转网口关键技术

TCP/IP的工作模式问题

串口转以太网,并不是简单物理层和数据链路层的转化。由于串口协议本身不具有网络层和传输层,串口转以太网,实际是将串口的数据作为TCP/IP的应用层数据,用TCP/IP封装传输的方式。TCP/IP的应用层数据是TCP/IP所要传送的真正有效的数据。例如用户通过socket的recv()和send()函数接收和发送的实际是应用层数据。这样通过串口转TCP IP用户就可以用recv()和send()函数收发串口数据了。

但是TCP/IP并不只是recv()和send()这么简单,根据工作模式的不同,它关系到连接、关闭、监听等,这是串口转网口后需要增加处理的部分。TCP IP的工作模式可以分为:TCP服务端模式(TCP Server)、TCP客户端模式(TCP Client)、UDP模式。

  • UDP模式:UDP模式是基于非连接的模式,只要有数据发送即可发送,不需要事先连接。所以这种模式更加地接近于串口的通信方式。但是UDP协议无法保证数据不丢失,容易产生误码。

  • TCP模式:TCP模式采用数据可靠传输机制,所以可以保证数据基本不误码、不丢失。在TCP通信中,必然是由通信的两端构成,其中一方是TCP客户端,一方是TCP服务端。TCP客户端和TCP服务端的概念可以用电话来类比。TCP客户端是打电话的人,而TCP服务端是接电话的人。

串口分帧技术

串口数据是可以连续不断发送的,而以太网数据则是以数据包为单位发送的。这样就关系到将多长的串口数据打包后作为一个以太网数据包发送的问题。

数据包长度:以太网数据包最长1500多字节,所以在串口转网口转发器收到1500字节后必须将其打包发送。用户可以设定这个数据包长度上限。

数据包间隔:除了数据包长度作为串口分帧的规则外,一个更为符合逻辑的方法是通过数据包间隔。当串口转TCP IP转发器发现的串口数据流中出现了T毫秒的空闲时间时,则认为之前收到的串口数据可以作为一个以太网数据包发送了。这里的T就是用户设定的数据包间隔。

有人科技经过大量的应用实践,采用了非常灵活的分包方式:1、网络收到数据实时转发给串口,2串口收到数据后做条件判断,以下两个条件达到其一及转发,收到的串口数据总数达到200字节,或者串口空闲当前波特率下发送两个字节所需要的时间。其中200字节是经验值,既不会拖慢速度,也不会造成丢包,根据波特率来计算空闲时间比固定定义多少ms更加精准的控制打包时间,提升响应速度。

多串口转换网关

多串口转换网关使得串口数据流到以太网数据流的传输成为可能。它能连接多个RS232串口设备,并将串口数据进行选择和处理,把RS232接口的数据流转化成以太网数据流,这样就可以进行网络化的数据处理,实现串行数据的网络化。

TCP/IP协议由应用层、UDP层、IP层和数据链路层组成。为了实现透明传输,增加应用进程协议层——串口层。串口层由串口链路层和串口网络层构成。网关在串口层构建,同时解析RS232数据包,并作为TCP/IP网络应用层的数据传输。多串口网关由TCP/IP协议转换模块和多串口收发控制模块组成,结构如图:

avatar

TCP/IP协议转换模块

它是一个微型的以太网接入模块,由微控制器(MCU)、网卡接口芯片、EEPROM 93C46、片外512 KBSRAM芯片IS6lLV5128以及辅助元件构成。微控制器控制网卡接口芯片进行网络通信,实现地址解析协议(ARP)、Internet控制报文协议(ICMP)、IP协议、用户数据报协议(UDP)等协议的解析和封包。将以太网发送缓冲区的串口帧封装在UDP包中,并传给IP层;同时,接收以太网数据帧并向上层层解包,分离应用层数据,然后数据的解析处理交由多串口发送模块完成,实现RS232串口流与以太网端口流的透明转换。

多串口收发控制模块

  实现多个RS232串口数据流的收/发控制,包括微控制器、串口扩展芯片(GM8123)、MAX232等元件。微控制器控制GM8123完成多串口数据收发,接收多个串口源数据,封装后写入以太网发送缓冲区打包传输;同时,接收以太网应用层的数据,解析并发送给测控设备。它不关心通信数据的具体意义,只负责接收/发送,封装/拆封串口帧,提供通用接口。