串口握手。硬件和无握手之间有什么区别?
问题描述:
我试图确定差异当我打开串口与硬件握手和没有握手。串口握手。硬件和无握手之间有什么区别?
看来,在这两种情况下,我必须控制RTS/CTS
信号(只测试一个COM设备)。 那么打开串口与硬件握手和没有握手的区别是什么?
从我以前的了解,当我们工作without handshaking
,我们不在乎RTS/CTS
和DTR/DSR
信号。只要我们想要发送和接收数据。我错了吗?
还有一个问题。我们只能在full duplex
模式下工作without handshaking
吗?
答
正如您可能知道的那样,问题在于“流量控制”。就像冲突歌曲“我应该留下还是应该去?”。
RTS/CTS是硬件控制。 XON/XOFF是软件控制。否则,“继续前进”。
此链接可能进一步解释:
http://www.lammertbies.nl/comm/info/RS-232_flow_control.html
我怀疑,当你问 “握手” 相对于 “双工”,也许你的意思是这样的:
http://en.wikipedia.org/wiki/RS-232
在规范的旧版本中,RS-232使用RTS和 CTS线路是不对称的:DTE a插入RTS以表示希望将数据发送到DCE,并且DCE响应授予 权限而声明CTS。这允许半双工调制解调器在不需要时禁用它们的发射机,并且当它们被重新启用时必须向接收机发送同步 前导码。
'希望有帮助!
答
不同之处在于决定是否发送更多数据时,内核是否会注意CTS
/RTS
行。随着硬件握手打开,它会。将它设置为none,即使CTS
/RTS
行可能保持断言状态,它也不会,因此对等方会知道它可以发送数据。
Thanks @ paulsm4。 但我试图通过'RTS/CTS'信号找到操作方面的差异: - 如果我在没有'流量控制'的情况下打开串口,应该设置/检查'RTS/CTS'信号吗?如果我用'硬件流量控制'打开串口,我应该手动执行这些操作吗? - 打开端口后可以将'RTS设置为高',之后不要触摸它?这是不错的做法吗? - 在半双工模式下,如何更改'CTS'信号以防止数据接收?看来我可以设置“RTS”和“DTR”信号,只需检查“CTS”和“DSR”信号。 –