RS232转网口转换器ZLAN2100是支持RS232流控和网口流控的高性能转换器。所谓流控即对数据流的速度进行控制,防止接收方缓冲区满的时候发送方继续发送数据引起数据的丢失。RS232转网口中流控对于防止数据包丢失是相当重要的。
RS232和网口采用了不同的流控机制。RS232的流控分为无流控、软件流控、硬件流控。网口的流控一般采用TCP的窗口流控机制。由于两种流控方式的不同,ZLAN2100在将RS232协议数据转换为网口协议数据的时候,也要进行流控方式的转换。
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自动设置硬件流控引脚高为高电平。
RS232串口线的接头分为公头和木头。另外有些RS232串口线是9芯的,有些只有GND、RXD、TXD这3芯。有些RS232串口线是2、3交叉的(即RXD、TXD交叉),有些是不交叉的。要实现RS232的硬件流控必须采用9线的RS232串口线,否则硬件流控信号无法传递过去。
用户可以根据实际需要手动设置ZLAN2100的流控方式,设置的方法是进入ZLVircom主界面的设备管理->对特定设备进行设备编辑->进入设备设置对话框->选择串口流控参数。
除了手动设置流控方式外,在使用虚拟串口时,为了能够实现ZLVircom软件对用户软件采用的流控方式的自动探测,必须启用流控自适应。启用的方法是:进入zlvircom的菜单->“配置”->“软件配置”,弹出“vircom配置”对话框,将“选择需要自使用的参数”中将“流控”打勾,默认情况下“流控”自适应功能是没有打勾的。
在计算机的RS232(COM口)编程中,如果用户调用操作系统(例如windows的VC++环境下)底层的RTSEnalbe()函数可以手动控制RTS引脚的电平,让其随时输出1或者0。该功能实际上可以作为IO口DOUT,即用该函数来直接控制一个IO输出引脚。那么采用卓岚的ZLVircom虚拟串口驱动以后,用户打开虚拟串口COM5,同样可以用RTSEnalbe()来控制网口远端的ZLAN2100的RS232口的RTS的电平。该功能属于较为高级的功能特性。