串口通信中的握手
硬件握手:第二种是使用硬件线握手。和Tx和Rx线一样,RTS/CTS和DTR/DSR一起工作,一个作为输出,另一个作为输入。第一组线是RTS(Request to Send)和CTS(Clear to Send)。当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。另一组线是DTR(Data Terminal Ready)和DSR(Data Set Ready)。这些现主要用于Modem通信。使得串口和Modem通信他们的状态。例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建立。读取DSR线置高,PC机开始发送数据。一个简单的规则是DTR/DSR用于表示系统通信就绪,而RTS/CTS 用于单个数据包的传输。
在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。 如果CTS模式使能,LabWindows使用如下规则: 当PC发送数据: RS-232库必须检测CTS线高后才能发送数据。 当PC接收数据: 如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。 如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。 如果端口队列近乎空了,置高RTS,但使DRT维持高电平。 如果端口关闭,库函数置低RTS和DTR。