NO IMAGE

在RS232中本來CTS與RTS有明確的意義,但自從賀氏(HAYES)推出了聰明貓(SmartModem)後就有點混淆了。在RS232中RTS與CTS是用來半雙工模式下的方向切換;HAYES Modem中的RTS,CTS是用來進行硬體流控的。通常UART的RTC、CTS的含義指後者,即用來做硬流控的。

硬流控的RTS、CTS:RTS(Require To Send,傳送請求)為輸出訊號,用於指示本裝置準備好可接收;CTS(Clear To Send,傳送清除)為輸入訊號,有效時停止傳送。假定A、B兩裝置通訊,A裝置的RTS連線B裝置的CTS;A裝置的CTS連線B裝置的RTS。前一路訊號控制B裝置的傳送,後一路訊號控制A裝置的傳送。對B裝置的傳送(A裝置接收)來說,如果A裝置接收緩衝快滿的時發出RTS訊號(意思通知B裝置停止傳送),B裝置通過CTS檢測到該訊號,停止傳送;一段時間後A裝置接收緩衝有了空餘,發出RTS訊號,指示B裝置開始傳送資料。A裝置發(B裝置接收)類似。上述功能也能在資料流中插入Xoff(特殊字元)和Xon(另一個特殊字元)訊號來實現。A裝置一旦接收到B裝置傳送過來的Xoff,立刻停止傳送;反之,如接收到B裝置傳送過來的Xon,則恢復傳送資料給B裝置。同理,B裝置也類似,從而實現收發雙方的速度匹配。

半雙工的方向切換:RS232中使用DTR(Date Terminal Ready,資料終端準備)與DSR(Data Set Ready ,資料裝置準備好)進行主流控,類似上述的RTS與CTS。對半雙工的通訊的DTE(Date Terminal Equipment,資料終端裝置)與DCE(Data circuit Equipment )來說,預設的方向是DTE接收,DCE傳送。如果DTE要傳送資料,必須發出RTS訊號,請求傳送資料。DCE收到後如果空閒則發出CTS迴應RTS訊號,表示響應請求,這樣通訊方向就變為DTE->TCE,同時RTS與CTS訊號必須一直保持。從這裡可以看出,CTS,TRS雖然也有點流控的意思(如CTS沒有發出,DTE也不能傳送資料),但主要是用來進行方向切換的。

如果UART只有RX、TX兩個訊號,要流控的話只能是軟流控;如果有RX,TX,CTS,RTS四個訊號,則多半是支援硬流控的UART;如果有RX,TX,CTS,RTS,DTR,DSR六個訊號的話,RS232標準的可能性比較大。

順便提一下:

DCD( Data Carrier Detect, 資料載波檢測):DCE向DTE指示,線路上檢測到載波。

RI(Ring Indicator,振鈴指示):DCE向DTE指示,有呼叫接入。