首先我們來看一下RS232接口的所有引腳名稱和功能,具體如下:
??從上面兩個圖中可以看到,第4、6、7、8腳就是我們要說的硬件流控引腳。
二、DTR和DSR
DTR:數據終端準備好;DSR:數據設備準備好。
??PC開啟DSR信號告訴Modem,PC機已經準備好通信;Modem通常開啟DSR來應答,讓PC機知道Modem準備應答。DTR/DSR主要是用來做建立鏈接的,即PC數據發送和接收之前,先要建立發送方和接收方的連接,這時候才用到,與流控關系不大,暫不說。
三、RTS和CTS
RTS:請求發送;CTS:清除發送
??RTS/CTS流控制過程,如下:
??A如果想要發送數據給B的話,A會使得RTS引腳有效,表明其想要“請 求發送”數據給B;
??然后A接著就會檢測對應的來自B的CTS引腳,直到CTS引腳有效, A才會真正開始發送數據;并且在接下來發送每個字符之前都會去檢測對應 的CTS是否有效,如果CTS仍然有效,才會繼續傳輸對應的數據。
??如果A發現CTS無效(此時意味著B發生了一些未知情況,如緩存滿了, 導致無法繼續正常接收數據了,所以將CTS置為無效了),那么A就不能繼 續發送數據。
??如果CTS一直處于有效的情況下,A就會一直發送數據,直到A 的數據 全部發送完之后,再把RTS置為無效,表示數據已經發送完了。
這就是整個簡單的單個的數據發送流程,用RTS和CTS來控制傳輸的邏 輯。
??注意:RTS和CTS引腳有效狀態一般是置為1,但具體還要看實際情況。
四、XOFF和XON
上面兩種情況都說的是硬件流控,接收方通過引腳的高低來告知或叫控制發送方的發送,這種方式不管發送的數據是二進制格式還是字符格式數據都可以;但是很多情況下我們的設備環境是不具備硬件環境的,這時我們就需要使用軟件流控XOFF/XON。
??軟件流控XOFF/XON不需要用到RTS和CTS引腳。
??XOFF/XON的工作流程,如下:
??A如果想要給B發送數據,那么A直接會給B進行發送;
??當B不想繼續接收A的數據時,B通過RXD數據線(即B的TXD數據線)給發送A一個XOFF信號,A接收到XOFF信號就會暫停發送數據;
當B可以繼續接收A的數據時,B通過RXD數據線給A發送一個XON信號,A接收到XON信號后就會繼續發送數據。
??注意:因為XON/XOFF信號也是通過數據信號線發送的,所以軟件流控在傳輸二進制數據時可能會出現錯誤,因為可能我們發送的數據里面也有XON/XOFF對應的二進制值。我們可以考慮通過對XON/XOFF進行轉義來嘗試解決該問題。
審核編輯黃宇
-
數據
+關注
關注
8文章
6909瀏覽量
88849 -
RS232
+關注
關注
13文章
740瀏覽量
94251
發布評論請先 登錄
相關推薦
評論