首页 > 幸运飞艇 > 应用笔记

幸运飞艇

串口转以太网技术介绍(下篇)

更新时间:2018-04-10

  三、串口转网口关键技术一: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服务端是接电话的人。

  如何选择TCP/IP的工作模式?

  TCP与UDP的选择:尽量选择TCP模式,特别是经过internet的大数据量传输,UDP容易造成误码和丢失。

  选择TCP客户端还是TCP服务器端?请遵循以下原则:

  原则一:发起数据发送的一方应该选择为客户端。例如一个数据采集系统,采集终端应该为客户端。这是因为当TCP连接断开的情况下,客户端能够在需要发送数据的时候主动建立连接。而TCP服务端,只能够被动地接受连接,使得数据无法发送出去。

  原则二:IP或者域名固定的一方为服务器端。例如在有多个数据采集终端,而只有一个中心服务器的情况下,中心服务器应该为服务端。这是因为,中心服务器的IP或域名一般是固定的,而采集终端的IP是不断增加和变化的。中心服务器难以记住所有采集终端的IP,所以也难以发起连接;而采集终端寻找中央服务器就比较容易。

  四、串口转网口关键技术二:串口分帧技术

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

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

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

  五、串口转网口关键技术三:9位技术

  以太网数据是以字节Byte计算的,每个字节都是8位。但是串口数据则有可能出现9位,第9位常常用于区分是地址帧还是数据帧。1表示地址帧,0表示数据帧。那么,在当串口转化为以太网之后,如何将第9位也传送出去就成了一个关键技术。

发表评论

孔***力发表于2018-04-10
评论 能看看具体内容吗
*为必须填写项
  • (您的个人信息将被保密)