2011-09-28 26 views
4

我試圖確定差異當我打開串口硬件握手沒有握手串口握手。硬件和無握手之間有什麼區別?

看來,在這兩種情況下,我必須控制RTS/CTS信號(只測試一個COM設備)。 那麼打開串口與硬件握手和沒有握手的區別是什麼?

從我以前的瞭解,當我們工作without handshaking,我們不在乎RTS/CTSDTR/DSR信號。只要我們想要發送和接收數據。我錯了嗎?

還有一個問題。我們只能在full duplex模式下工作without handshaking嗎?

回答

6

正如您可能知道的那樣,問題在於「流量控制」。就像衝突歌曲「我應該留下還是應該去?」。

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。這允許半雙工調制解調器在不需要時禁用它們的發射機,並且當它們被重新啓用時必須向接收機發送同步 前導碼。

'希望有幫助!

+3

Thanks @ paulsm4。 但我試圖通過'RTS/CTS'信號找到操作方面的差異: - 如果我在沒有'流量控制'的情況下打開串口,應該設置/檢查'RTS/CTS'信號嗎?如果我用'硬件流量控制'打開串口,我應該手動執行這些操作嗎? - 打開端口後可以將'RTS設置爲高',之後不要觸摸它?這是不錯的做法嗎? - 在半雙工模式下,如何更改'CTS'信號以防止數據接收?看來我可以設置「RTS」和「DTR」信號,只需檢查「CTS」和「DSR」信號。 –

1

不同之處在於決定是否發送更多數據時,內核是否會注意CTS/RTS行。隨着硬件握手打開,它會。將它設置爲none,即使CTS/RTS行可能保持斷言狀態,它也不會,因此對等方會知道它可以發送數據。