RS232转网口转换器ZLAN2100是支持RS232流控和网口流控的高性能转换器。所谓流控即对数据流的速度进行控制,防止接收方缓冲区满的时候发送方继续发送数据引起数据的丢失。RS232转网口中流控对于防止数据包丢失是相当重要的。
RS232和网口采用了不同的流控机制。RS232的流控分为无流控、软件流控、硬件流控。网口的流控一般采用TCP的窗口流控机制。由于两种流控方式的不同,ZLAN2100在将RS232协议数据转换为网口协议数据的时候,也要进行流控方式的转换。
RS232的流控方式介绍如下:
网口流控方式:网口一般采用两种协议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配置”对话框,将“选择需要自使用的参数”中将“流控”打勾,默认情况下“流控”自适应功能是没有打勾的。
图2. vircom的流控配置
在计算机的RS232(COM口)编程中,如果用户调用操作系统(例如windows的VC++环境下)底层的RTSEnalbe()函数可以手动控制RTS引脚的电平,让其随时输出1或者0。该功能实际上可以作为IO口DOUT,即用该函数来直接控制一个IO输出引脚。那么采用卓岚的ZLVircom虚拟串口驱动以后,用户打开虚拟串口COM5,同样可以用RTSEnalbe()来控制网口远端的ZLAN2100的RS232口的RTS的电平。该功能属于较为高级的功能特性。