串口传输中流量控制XON/XOFF是什么含义,请详细解释以下流量控制(50分)

XONXOFF是用软件来控制数据流传输的方法, 具体说明是: 发送方把数据流分成
小段, 每一小段用XON/XOFF括起来, 然后发送, 接受方读取到XON时就知道数据流
开始, 然后读取, 直到遇到XOFF暂停读取, 等到再有XON时继续读取.
 
流量控制,发方发送数据的速率必须使收方来得及接收。当收方来不及接收时,就必须及时控制发方发送数据的速率。如果你想更详细了解的话,建议你参考((计算机网络))电子工业出版社 谢希仁 陈鸣 张兴元 (85页-126页)很经典的。
xon/xoff即用软件来控制数据的传输速率。
 
XON/XOFF是软件流控制通讯的一种,通过XON/XOFF字符来控制传输,主要用来作
远程网络登录和ASCII文本传输,其他最好用RTS/CTS硬件流控方式
 
哈哈, 我的一个回答应该有点用:

<a href=http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=124648>
再问一下串口通讯, 请帮忙看看 </a>
 
当电压为正的时候为逻辑“0”状态, 当电压为负的时候为逻辑“1”状态,

串口通信可以连接两个设备, 当使用9芯线路时,
1) 地(GND) 2)接受数据(RX data) 3)传输数据 (TX data)
4) 数据终端准备(DTR) 5) GND 6)数据准备 (DSR)
7) 请求发送(RTS) 8)允许发送(CTS) 9)振铃指示(RI)

我举 PC 和Modem之间的通信为例子:

RTS/CTS 提供的是一种PC 和Modem 之间控制数据流的方法,当Modem 准备接收
数据时, 使CTS为ON(1), 当Modem 不能接收更多数据时, 使CTS为OFF(0), 类似的,当PC 可以接收数据时,RTS 为ON (1), 不能接收数据时,RTS 为OFF(0).

DTR/DSR : PC开启DTR信号告诉MODEN, PC 机已经准备通信, Modem通常开启DSR来应答,让PC机知道 Modem 准备应答.

RTS/CTS 属于是硬件流量控制, 而XON/XOFF则是软件流量控制。

XON/XOFF分别对应于(Ctrl-q)和(Crtl-s)字符, 如果你选择软件流量控制,
你的Modem 将不能传递Ctrl-q 和 Crtl-s字符, 因为这些字符被解释成为
流控请求。

 
缺省的XOnChar与XOffChar为Chr($11)(ctrl_q)与Chr($13)(ctrl_s)。
当你在串口通信中使用Xon/Xoff握手时(在DCB中间通过SetCommState可以
设置)。当接收缓冲区的字节数多于XOnLim时串口就自动发送XOnChar,如果
少于XOffLim时就自动发送XOffChar,发送端口也就自动挂起发送或从新发送
了。你可以看看DCB的说明(在MSDN中),里面讲的不错。
 
我在用控件进行串口通讯时用了XonXoff流程控制,但是由于我传输的是BCD码,所以
XonChar和XoffChar不能为$11&amp;$13,我将其转为了不影响BCD码传输的其它字符。
不知会不会出错?
 
我一般不用控件带的,由自己控制。
xon(0x11)和xoff(0x13)是串口通信流量控制符,
一般情况下接收机给发送机xon ,当接收机的接收
缓冲超过一定量的时候就给发送机发一个xoff,即
通知发送机暂停发送,当接收机接收缓冲空时再发送xon,
表示可以继续发送了。这样就避免了数据因缓冲存放不下而
丢失。
 
多人接受答案了。
 

Similar threads

顶部