RS232转网口的流控功能介绍 点击:311 | 回复:0



wzzlin

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 8回
  • 年度积分:0
  • 历史总积分:428
  • 注册:2008年12月11日
发表于:2013-01-14 16:06:33
楼主

1.RS232转网口的流控

  RS232转网口转换器ZLAN2100是支持RS232流控和网口流控的高性能转换器。所谓流控即对数据流的速度进行控制,防止接收方缓冲区满的时候发送方继续发送数据引起数据的丢失。RS232转网口中流控对于防止数据包丢失是相当重要的。

  RS232和网口采用了不同的流控机制。RS232的流控分为无流控、软件流控、硬件流控。网口的流控一般采用TCP的窗口流控机制。由于两种流控方式的不同,ZLAN2100在将RS232协议数据转换为网口协议数据的时候,也要进行流控方式的转换。

RS232转网口

图1. RS232转网口转换器——ZLAN2100

  RS232的流控方式介绍如下:

  1. 无流控:没有流控功能。
  2. 软件流控:软件流控也称之为XON/XOFF流控,使用控制字符XON、XOFF来实现。在RS232数据通信过程中,如果发送方收到XOFF字符则停止发送数据,反之如果收到XON字符则重新开始发送数据。XON一般定义为十六进制0x11,XOFF为十六进制0x13。
  3. 硬件流控:硬件流控又分为DSR/DTR流控和CTS/RTS流控。硬件流控是通过硬件的高低电平来通知发送方,接收方的缓冲区是否快满了。CTS/RTS流控时,RS232(DB9)的8引脚为RTS,7引脚为CTS。DSR/DTR流控时,RS232(DB9)的6引脚为DSR,4引脚为DTR。

  网口流控方式:网口一般采用两种协议TCP协议和UDP协议。其中UDP协议是没有流控的,TCP协议采用窗口流控,即发送方知道接收方的接收缓冲区大小,发送方从而不会发送超过接收方接收能力的数据量,接收方也会定期告诉发送方窗口大小的变化。

  ZLAN2100和ZLVircom相互配合实现RS232转网口的流控转化,例如当RS232给出硬件流控引脚高电平时(高电平表示开始流控),ZLAN2100的内嵌TCP/IP协议栈自动通知TCP窗口减少;反之当TCP窗口减少时ZLAN2100自动设置硬件流控引脚高为高电平。

2. RS232串口线与硬件流控

  RS232串口线的接头分为公头和木头。另外有些RS232串口线是9芯的,有些只有GND、RXD、TXD这3芯。有些RS232串口线是2、3交叉的(即RXD、TXD交叉),有些是不交叉的。要实现RS232的硬件流控必须采用9线的RS232串口线,否则硬件流控信号无法传递过去。

3. 手动设置RS232转网口流控方式

  用户可以根据实际需要手动设置ZLAN2100的流控方式,设置的方法是进入ZLVircom主界面的设备管理->对特定设备进行设备编辑->进入设备设置对话框->选择串口流控参数。

4. RS232转网口的流控自适应

  除了手动设置流控方式外,在使用虚拟串口时,为了能够实现ZLVircom软件对用户软件采用的流控方式的自动探测,必须启用流控自适应。启用的方法是:进入zlvircom的菜单->“配置”->“软件配置”,弹出“vircom配置”对话框,将“选择需要自使用的参数”中将“流控”打勾,默认情况下“流控”自适应功能是没有打勾的。

vircom配置

图2. vircom的流控配置

5. RS232转网口的手动控制硬件流控

  在计算机的RS232(COM口)编程中,如果用户调用操作系统(例如windows的VC++环境下)底层的RTSEnalbe()函数可以手动控制RTS引脚的电平,让其随时输出1或者0。该功能实际上可以作为IO口DOUT,即用该函数来直接控制一个IO输出引脚。那么采用卓岚的ZLVircom虚拟串口驱动以后,用户打开虚拟串口COM5,同样可以用RTSEnalbe()来控制网口远端的ZLAN2100的RS232口的RTS的电平。该功能属于较为高级的功能特性。

 



热门招聘
相关主题

官方公众号

智造工程师