UART通訊流量控制方法

來源:互聯網
上載者:User

談這個問題之前我們先介紹另一個概念,DCE(Data Communication Equipment資料通訊裝置)速度。它是指兩個Modem之間即電話線之間的傳輸速度,我們所說的56K指的就是這個速度。而DTE(Data Terminal Equipment資料終端設備)速度是指從本機電腦到Modem的傳輸速度,如果電話線傳輸速率(DCE速度)為56000bps,Modem在接收到資料後按V.42 bis協議解壓縮56000×4=115200bps,然後以此速率傳送給電腦,由此可見56K貓(使用V.42bis)的DTE速度在理想狀態下都應達到115200bps。

可用CTS/RTS或Xon/Xoff流量控制(Flow control)

從上邊的介紹我們已經瞭解到DTE與DCE速度之間存在很大差異,這樣在資料的傳送與接收過程當中很可能出現收方來不及接收的情況,這時就需要對發方進行控制,以免資料丟失,這個過程就是所謂的流量控制。控制的方式有兩種,Xon/Xoff和CTS/RTS。前者由軟體產生控制碼,並將控制碼加入到資料流中,Xoff表示停止發送,Xon表示繼續發送,此種方法通常用於2400bps左右的低速貓。CTS(clear to send)/RTS(request to send)則是通過電腦與Modem之間的訊號線傳送控制訊號來實現流量控制的,即硬體方式。請求發送訊號(RTS)由電腦產生,通知Modem可以發送資料,清除發送訊號(CTS)由Modem產生,通知電腦可以傳送資料.由於硬體控制的反應速度要比軟體快,所以多用於高速Modem。在使用MNP,V.42以及傳真時也應使用硬體方式。

    CTS (Clear to send) 允許發送, 很多文章翻譯成清除發送, 是不正確的.

    CTS 是對RTS 的應答.

A向B發送RTS訊號,表明A要向B發送若干資料,B收到RTS後,向所有基站發出CTS訊號,表明已準備就緒,A可以發送

CTS和RTS是串列通訊中流量控制的兩個管腳,本身成對出現。一般串連方式如所示:

圖2 UART流量控制。

具體地說,就是當接收方(UART2)認為可以接受UART資料時,將RTS置為有效位。發送方(UART1)的CTS管腳接收到此訊號後,才將資料進行發送。一般來說,當UART資料接收緩衝大於兩個位元組空餘時,就可以將RTS置為有效接收。當然,OD2101的UART接收緩衝區具有64位的位元組,使用者可以按照自己資料流量的需求定義RTS。

一、遠距離通訊

第1和第2中情況是屬於遠距離通訊(傳輸距離大於15m的通訊)的例子,故一般要加數據機MODEM,因此使用的訊號線較多。注意:在以下各圖中,DTE訊號為RS-232-C訊號,DTE與電腦間的電平轉換電路未畫出。

1、採用Modem(DCE)和電話網通訊時的訊號串連:

若在雙方MODEM之間採用普通電話交換線進行通訊,除了需要2~8號訊號線外還要增加RI(22號)和DTR(20號)兩個訊號線進行聯絡,1所示:


圖1

DSR、DTR:數傳機(DCE)準備好、資料終端(DTE)準備好,只表示裝置本身可用。

首先,通過電話機拔號呼叫對方,電話交換台向對方發出拔號呼叫符號,當對方DCE收到該訊號後,使RI(響鈴訊號)有效,通知DTE,已被呼叫。當對方“摘機”後,兩方建立了通訊鏈路。

若電腦要發送資料至對方,首先通過介面電路(DTE)發出RTS(請求發送)訊號。此時,若DCE(Modem)允許傳送,則向DTE回答CTS(允許發送)訊號。一般可直接將RTS/CTS接高電平,即只要通訊鏈路已建立,就可傳送訊號。(RTS/CTS可只用於半雙工系統中作發送方式和接收方式的切換。

當DTE獲得CTS訊號後,通過TXD線向DCE發出串列訊號,DCE(Modem)將這些數字訊號調製成類比訊號(又稱載波訊號),傳向對方。

電腦向DTE“資料輸出寄存器”傳送新的資料前,應檢查Modem狀態和資料輸出寄存器為空白。當對方的DCE收到載波訊號後,向對方的DTE發出DCD訊號(資料載波檢出),通知其DTE準備接收,同時,將載波訊號解調為資料訊號,從RXD線上送給DTE,DTE通過串列接收移位寄存器對接收到的位流進行移位,當收到1個字元的全部位流後,把該字元的資料位元送到資料輸入寄存器,CPU可以從資料輸入寄存器讀取字元。

2、採用專用電話線通訊:在通訊雙方的MODEM之間採用電話線進行通訊,則只要使用2~8號訊號線進行聯絡與控制。不需要電話機、響鈴訊號RI和DTR訊號,其訊號線的串連2那樣。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.