数据流控制是一种确保发送和接收行为保持平衡的方法。 在理想情况下,智能控制可确保不会丢失数据。 它确保设备发送的信息不会多于接收伙伴所能处理的信息。
有两种数据流控制方法:
硬件控制的数据流控制
软件控制的数据流控制
对于这两种方法,在传输开始时都必须激活通信伙伴的 DSR 信号。 如果未激活 DSR 信号,则传输不会开始。
RS-232 通信模块可以处理这两种方法。 RS-485 通信模块不支持数据流控制。
硬件控制的数据流控制采用请求发送 (RTS, Request To Send) 信号和允许发送 (CTS, Clear To Send) 信号。 对于 RS-232 通信模块,RTS 信号通过输出引脚 7 进行传输,而 CTS 信号通过引脚 8 进行接收。
如果启用了硬件控制的数据流控制,则在发送数据时 RTS 信号总是设置为激活状态。 同时,对 CTS 信号进行监视,以检查接收设备是否能接受数据。 如果激活了 CTS 信号,则模块可以一直传输数据,直到 CTS 信号变为非激活状态。 如果未激活 CTS 信号,则数据传输必须暂停所设置的等待时间。 如果 CTS 信号在经过了所设置的等待时间后仍未激活,则数据传输将被中止,并向用户程序发送错误信号。
如果数据流控制由硬件握手进行控制,则默认情况下,发送设备将 RTS 信号设置为激活状态。 这样,诸如调制解调器等设备便可随时传输数据。 它不会等待接收方的 CTS 信号。 发送设备通过只发送有限数量的帧(字符)来监视自身的传输,例如,防止接收缓冲区溢出。 如果仍然出现溢出,则传送设备必须阻止消息并向用户程序发回错误信号。
软件控制的数据流控制采用消息中的特定字符并通过这些字符来控制传输。 这些字符是为 XON 和 XOFF 选择的 ASCII 字符。
XOFF 指示何时必须暂停传输。 XON 指示何时可以继续传输。
如果发送设备接收到 XOFF 字符,它必须暂停发送所选的等待时间长度。 如果在所选的等待时间之后发送了 XON 字符,则将继续传输。 如果在等待时间之后未接收到 XON 字符,则将向用户程序发回错误信号。
因为接收伙伴需要在传输期间发送 XON 字符,所以软件数据流控制需要全双工通信。
产品推荐