串口流控

DTE和DCE在通訊過程中必須使用相同的流控方式。 串口通訊中的硬體流控有兩種方式:DTR/DSR方式和RTS/CTS方式。 實際採用的方式和DCB結構的初始化有關。

簡介

串口通訊的流控提供了由於某種原因不能進行通訊時阻塞通訊的一種機制。流控可以使數據接收設備在不能接收數據時通知數據傳送設備,使其停止傳送。串口的流控經常採用硬體流控和軟體流控兩種方式。開發串口通訊程式的過程中,可根據實際需要決定是否採用流控,採用硬體流控還是軟體流控。使用控制項Mscomm32開發串口通訊程式簡單直接,若需要計算機協調與外設的數據傳數時,這種方法不能滿足要求;直接調用WIN32API函式的開發串口通訊程式,可以靈活的對串口進行設定,但需要較多的Win-dows編程背景知識。

硬體流控

硬體流控使用串列電纜控制線上的電壓信號來控制數據的傳送和接收。DTE和DCE在通訊過程中必須使用相同的流控方式。設定DCB結構僅僅配置了DTE,必須對DCE進行必要的設定以確保DTE和DCE使用相同類型的流控。串口通訊中的硬體流控有兩種方式:DTR/DSR方式和RTS/CTS方式。實際採用的方式和DCB結構的初始化有關。DCB結構中fOutxCtsFlow、fOutxDsrFlow、fDsrSensitivty、fRtsCon-trol、fDtrControl幾個成員的初始值很關鍵。不同的值代表不同的流控

軟體流控

軟體流控使用數據流中的兩個特殊的字元,XOFF和XON,來控制數據的接收和傳送。二進制方式傳輸不能使用軟體流控,否則XOFF和XON出現在二進制數據中影響數據的傳輸。軟體流控適用於文本方式的數據傳輸。

流控方式設定

開發串口通訊程式的過程中需要對串列連線埠進行設定,包括波特率、校驗方式、停止位和數據位,也包括流控方式的設定。連線埠設定就是對DCB結構成員進行設定。串列連線埠流控方式的設定採用的方法與設定串口其他參數的方法相同,主要分為兩種。第一種方法為使用API函式::GetCommState(),該函式返回DCB結構的當前設定,然後直接修改DCB結構的設定值。該函式的使用方法如下:DCBdcb={O};If(!::GetcommState(hComm,&dcb))returnFALSE;//函式調用發生錯誤else//已經取回DCB結構當前設定第二種方法初始化DCB結構的方法是手動設定。程式首先分配DCB結構,然後將其中的每個成員設定成期望值。無論採用哪種方法,要使對DCB結構的設定值對串列連線埠的行為產生影響,必須調用API函式::SetCommState()

相關詞條

相關搜尋

熱門詞條

聯絡我們