<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式硬件通信接口協(xié)議-UART(一)協(xié)議基礎(chǔ)

          嵌入式硬件通信接口協(xié)議-UART(一)協(xié)議基礎(chǔ)

          作者: 時間:2018-12-19 來源:網(wǎng)絡(luò) 收藏

            一、 簡介

          本文引用地址:http://www.ex-cimer.com/article/201812/395785.htm

            ,全稱UniversalAsynchrONous Receiver/Transmitter,譯為通用異步收發(fā)器。

            串口的出現(xiàn)是在1980年前后,數(shù)據(jù)傳輸率是115kbps~230kbps。串口出現(xiàn)的初期是為了實現(xiàn)連接計算機外設(shè)的目的,初期串口一般用來連接鼠標(biāo)和外置Modem以及老式攝像頭和寫字板等設(shè)備。串口也可以應(yīng)用于兩臺計算機(或設(shè)備)之間的互聯(lián)及數(shù)據(jù)傳輸。由于串口(COM)不支持熱插拔及傳輸速率較低,目前部分新主板和大部分便攜電腦已開始取消該接口。目前串口多用于工控和測量設(shè)備以及部分通信設(shè)備中。

            在幾乎所有的MCU中都會有接口。

            from 百度百科串行接口

            每當(dāng)口中提到“串口”,很容易讓人想到的名詞有、USART、COM口、TTL/CMOS、RS-232、RS-422、RS-485。其中:

            UART,“串口”時序協(xié)議的名稱,定義了各個信號時序協(xié)議;

            USART,相比UART增加了同步信號,可實現(xiàn)ISO-7816智能卡接口;

            COM口,在PC等操作系統(tǒng)上,區(qū)別于USB、SATA接口的串行接口,定義了在操作系統(tǒng)中的規(guī)范;

            TTL/CMOS,硬件系統(tǒng)的信號電平;

            RS-232,在UART基礎(chǔ)上再定義了信號的電氣特性

            RS-422,在RS-232基礎(chǔ)上定義了差分信號傳輸?shù)碾姎馓匦?/p>

            RS-485,在RS-422基礎(chǔ)上定義了半雙工模式

            二、 信號線

            信號線的命名,都是基于當(dāng)前終端設(shè)備而定義的。

            UART常用的信號線有:

            RxD,當(dāng)前終端設(shè)備的接收管腳

            TxD,當(dāng)前終端設(shè)備的發(fā)送管腳

            GND,當(dāng)前終端設(shè)備的地

            如上所述,信號線的命名基于當(dāng)前終端設(shè)備而做的標(biāo)記,在手工接線時,可以快速判斷連接的線序。

            一般的,設(shè)計者在設(shè)計PCB時,對外連接做的一些預(yù)留接口,標(biāo)記接口管腳時,都會添加絲印標(biāo)記,這時標(biāo)記的都是當(dāng)前終端設(shè)備的管腳信息。

            例如標(biāo)記著RxD的引腳,應(yīng)該與外部的UART接口TxD連接。

            


            三、 信號時序

            信號線空閑時,處于高電平,當(dāng)有數(shù)據(jù)發(fā)送時,信號線以1個bit時長的低電平標(biāo)志開始通信,通信過程中,單個字節(jié)在信號線上的幀結(jié)構(gòu)如下圖:

            


            信號管腳傳輸每個數(shù)據(jù)時,在管腳上呈現(xiàn)的是電氣信號為高低電平的變化,對應(yīng)數(shù)據(jù)每個bit的邏輯“1”和“0”。

            組成UART幀結(jié)構(gòu)時,附帶的起始位、停止位,實現(xiàn)了對傳輸數(shù)據(jù)流每個字節(jié)的界定,該過程實現(xiàn)了起始式協(xié)議。同時在停止位前可選擇地插入校驗位,實現(xiàn)了對數(shù)據(jù)幀正確性的校驗。

            如下圖是常見的UART通信過程中使用的配置參數(shù)8-N-1對應(yīng)的時序:

            


            配置參數(shù)(8-N-1):8bit數(shù)據(jù)、無校驗位、1bit停止位

            四、 接口配置項

            在啟用UART接口時,需要通信雙方對接口進行相同參數(shù)的配置,才能夠正確通信。而UART可配置的參數(shù)有:

            (一)波特率Baudrate:

            由于UART屬于異步通信,在通信過程中沒有同步時鐘CLK來提供給接收方,接收方也就無法同步地確定每個bit的寬度,也就無法對每個bit進行正確的采樣。因此接收方必須依靠設(shè)置與發(fā)送方相同的波特率參數(shù),這樣接收方對信號管腳進行采樣和解碼時,才能正確判斷每個bit的值是“1”還是“0”,這也就是異步通信的特點。

            在各類MCU的UART配置中,常用的波特率值有:

            4800Bd、9600Bd、19200Bd、115200Bd,單位Bd。常見有如下代碼截圖:

            


            要想理解波特率,來的維基百科中查詢一番

            


            在維基百科的介紹中,可看到,波特率的值,直接以bit/s的單位取倒數(shù)后得到單位s/bit,同時在示波器端對UART發(fā)出的波形進行抓取,可見每bit的寬度在誤差允許范圍內(nèi)基本就是波特率的倒數(shù)值。

            在百度百科的詞條《波特》介紹中,波特率是指:

            調(diào)制速率,指的是有效數(shù)據(jù)信號調(diào)制載波的速率,即單位時間內(nèi)載波調(diào)制狀態(tài)變化的次數(shù)。它是對符號傳輸速率的一種度量,1波特即指每秒傳輸1個符號,而通過不同的調(diào)制方式,可以在一個碼元符號上負(fù)載多個bit位信息。 單位“波特”本身就已經(jīng)是代表每秒的調(diào)制數(shù),以“波特每秒”(Baud per second)為單位是一種常見的錯誤。

            它代表的是信號的變化,而不是傳輸數(shù)據(jù)的多少。它表示每秒鐘內(nèi)通信線路狀態(tài)改變的次數(shù)。如果數(shù)據(jù)不壓縮,波特等于每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù),如果數(shù)據(jù)進行了壓縮。那么每秒鐘傳輸?shù)臄?shù)據(jù)位數(shù)通常大于調(diào)制速率,使得交換使用波特和比特/秒有時會產(chǎn)生錯誤。

            但是在現(xiàn)代的實際使用中,多數(shù)情況下,配置了MCU的波特率后,對輸出信號進行觀測發(fā)現(xiàn),此時波特率等于比特率。也正是因為此時傳輸?shù)姆柤?bit一個Byte的數(shù)據(jù)量,從而波特率等于比特率。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 嵌入式 UART

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();