【问题标题】:Serial port handshake. What the difference between Hardware and None handshaking?串口握手。硬件和无握手有什么区别?
【发布时间】:2011-09-28 05:42:47
【问题描述】:

我正在尝试确定使用 硬件握手无握手 打开 串行端口 时的区别。

似乎在这两种情况下我都必须控制RTS/CTS 信号(仅使用一个 COM 设备对其进行了测试)。 那么硬件握手和不握手打开串口有什么区别呢?

根据我之前的理解,当我们工作without handshaking时,我们并不关心RTS/CTSDTR/DSR信号。随时发送和接收数据。我错了吗?

还有一个问题。我们可以只在full duplex 模式下工作without handshaking 吗?

【问题讨论】:

    标签: serial-port handshake


    【解决方案1】:

    您可能知道,问题在于“流量控制”。就像 Clash 歌曲“我应该留下还是应该走?”。

    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 断言 RTS 表示希望 传输到 DCE,并且 DCE 断言 CTS 以响应授权 允许。这允许禁用它们的半双工调制解调器 不需要时发送器,并且必须发送同步 重新启用时向接收器发送前导码。

    '希望有帮助!

    【讨论】:

    • 谢谢@paulsm4。但是我试图找出RTS/CTS 信号在操作方面的区别: - 如果我打开没有flow control 的串行端口,我应该设置/检查RTS/CTS 信号吗?如果我用hardware flow control 打开串口,我应该手动做这些事情吗? - 我可以在打开端口后设置RTS to High,然后不要触摸它吗?这是好习惯吗? - 在半双工模式下,如何更改CTS 信号以阻止数据接收?看来我可以设置 RTSDTR 信号,然后检查 CTSDSR 信号。
    • @paulsm4 已经 10 年了,但是这个链接真的很有用。谢谢!我目前正在实施这项恐龙技术
    【解决方案2】:

    区别更多的是内核在决定是否发送更多数据时是否会注意CTS/RTS行。打开硬件握手,它会。将它设置为 none 时,它​​不会,即使 CTS/RTS 行可能保持断言状态,以便对等方知道它可以发送数据。

    【讨论】:

      猜你喜欢
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多