UART

概述

        UART(Universal Asynchronous Receiver and Transmitter)通用異步收發器,從硬件角度看,實物表現爲獨立的模塊化芯片,或作爲集成於微處理器中的周邊設備,在開發板設計和測試階段用來控制CPU與其餘部分的信息傳送,將數據在串行傳輸與並行傳輸間進行轉換。UART作爲軟件協議來看,是異步串口通信協議的縮寫,包括了RS232、RS499、RS423、RS422和RS485等接口標準規範和總線標準規範,即UART是異步串口通信的總稱。通信協議屬於通信網絡中的數據鏈路層的概念。
        COM口是針對串行通信協議的一種端口,是PC上異步串行通信的簡寫,大部分爲9針孔D型。COM口裏分RS232、RS422和RS485,傳輸功能依次遞增,所以RS485也是9針孔D型。由於歷史原因,IBM的PC外部接口配置爲RS232,成爲實際上的PC界默認標準,現在PC的COM口均爲RS232。若配有多個異步串行通信接口,則分別稱爲COM1、COM2……
        RS232或者RS485,是指通信協議傳輸方式的類別之一,採用這類通信方式的,可以有多種協議,包括串行通信,現場總線方式等。爲完成某個通信處理,首先會問通信協議是什麼,比如回答爲串口、現場總線、以太網等;然後會確定該協議下的通信端口類型,比如回答:USB口、RS232、RS422、RS485。
        總的來說,對於一項通信任務,通信協議可以使用UART協議,而UART協議可以通過COM端口來實現硬件連線,此協議下的傳輸方式可以選用RS232或者RS485等。PS:注意使用電腦上的串口與微處理器通信時,首先要經過轉壓芯片(例如MAX232)來實現電平轉化。
        TTL 高電平1是>=2.4V,低電平0是<=0.5V(對於5V或3.3V電源電壓);
        RS232採用的是負邏輯,高電平1是-15V~-3V,低電平0是+3V~+15V;

        CMOS電平以電源爲參考,高電平1是>=0.7VCC,低電平0是<=0.2VCC。

UART引腳和電平轉換

        UART、COM指的是物理接口形式(硬件),而TTL、RS-232指的是電平標準(電信號)。UART有4個pin(VCC, GND, RX, TX), 用的TTL電平,  低電平爲0(0V),高電平爲1(3.3V或以上)。COM口是臺式機上常用的口,9個pin,用的RS232電平,  是負邏輯電平,定義+5~+12V爲低電平,而-12~-5V爲高電平。
VCC:供電pin,一般是3.3v,這個pin一般不接更安全,避免與目標設備上的供電衝突。
GND:接地pin,有的時候rx接受數據有問題,就要接上這個pin,一般也可不接
RX:接收數據pin
TX:發送數據pin,之前碰到串口只能收數據,不能發數據的問題,後來發現原來是設置了流控制,取消就可以了,適用於putty、SecureCRT

             

        一般uart控制器在嵌入式系統裏面都做在cpu一起,像飛思卡爾的IMX6芯片就是這樣,有多個uart控制器。
        常用UART口進行調試,但是UART的數據要傳到電腦上分析就要匹配電腦的接口,通常電腦使用接口有COM口和USB口(最終在電腦上是一個虛擬的COM口),但是要想連上這兩種接口都要需要進行硬件接口轉換和電平轉換。MAX232芯片是 TTL電平與RS232電平的專用雙向轉換芯片,可以TTL轉RS-232,也可以RS-232轉TTL。PL2303、CP2102芯片是 USB 轉 TTL串口的芯片,用USB來擴展串口(TTL電平)。
        如果連接電腦COM口, 需要一個類似下圖的轉換小板, 它實現了TTL電平和RS232電平互轉。


        如果要連接USB接口, 需要類似下面的小板, 它實現了TTL電平和USB電平的轉換,這種使用的較多。


UART通信協議

        UART是異步串行通信。
        串行通信是指利用一條傳輸線將資料一位位地順序傳送。特點是通信線路簡單,利用簡單的線纜就可實現通信,降低成本,適用於遠距離通信、但傳輸速度慢的應用場合。
        異步通信是以一個字符爲傳輸單位,通信中兩個字符間的時間間隔多少是不固定的,然而在同一個字符中的兩個相鄰位間的時間間隔是固定的。
        數據傳輸速率用波特率來表示,即每秒鐘傳送的二進制位數。例如數據傳輸速率爲120字符/秒,而每一個字符爲10位(1個起始位,7個數據位,1個校驗位,1個結束位),則其傳送的波特率爲10x120=1200字符/秒=1200波特。
        數據通信格式如下圖:


        其中各位的意義如下:
起始位:先發出一個邏輯0信號,表示傳輸字符的開始。
數據位:可以是5~8位邏輯0或1,如ASCII碼(7位),擴展BCD碼(8位),小端傳輸。
校驗位:數據位加上這一位後,使得1的位數應爲偶數(偶校驗)或奇數(奇校驗)。
停止位:它是一個字符數據的結束標誌。可以是1位、1.5位、2位的高電平。
空閒位:處於邏輯1狀態,表示當前線路上沒有資料傳送。
注:異步通信是按字符傳輸的,接收設備在收到起始信號之後只要在一個字符的傳輸時間內能和發送設備保持同步就能正確接收。下一個字符起始位的到來又使同步重新校準(依靠檢測起始位來實現發送與接收方的時鐘自同步的)


各種串行通信接口標準

        RS232、RS499、RS423、RS422和RS485等,對應各種異步串行通信口的接口標準和總線標準,規定了通信口的電氣特性、傳輸速率、連接特性和接口的機械特性等,是物理層的概念。USB是近幾年發展起來的新型接口標準,主要應用於高速數據傳輸領域。
        RS-232-C:也稱標準串口,是目前最常用的一種串行通訊接口。它是在1970年由美國電子工業協會(EIA)聯合貝爾系統、調制解調器廠家及計算機終端生產廠家共同制定的用於串行通訊的標準。它的全名是“數據終端設備(DTE)和數據通訊設備(DCE)之間串行二進制數據交換接口技術標準”。傳統的RS-232-C接口標準有22根線,採用標準25芯D型插頭座,後來的PC上使用了簡化的9芯D型插座。現在應用在25芯插頭座已很少採用,現在的電腦一般有兩個串行口:COM1和COM2,有很多手機數據線或者物流接收器都採用COM口與計算機相連。
        RS-422:爲改進RS-232通信距離短、速率低的特點,RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,傳輸距離延長到4000英尺(速率低於100kb/s時),並允許在一條平衡總線上連接最多10個接收器。RS-422是一種單機發送、多機接收的單向、平衡傳輸規範,並命名爲TIA/EIA-422-A標準。
        RS-485:爲擴展應用範圍,EIA又於1983年在RS-422基礎上制定了RS-485標準,增加了多點、雙向通信能力,即允許多個發送器連接到同一條總線上,同時增加了發送器的驅動能力和衝突保護特性,擴展了總線共模範圍,後命名爲TIA/EIA-485-A標準。
        USB:Universal Serial Bus通用串行總線,是目前電腦上應用較廣泛的接口規範,由Intel、Microsoft、Compaq、IBM、NEC、Northern Telcom等幾家大廠商發起的新型外設接口標準。USB接口是電腦主板上的一種四針接口,其中中間兩根針傳輸數據,兩邊兩根針給外設供電。USB接口速度快、連接簡單、不需要外接電源,傳輸速度12Mbps,USB2.0可達480Mbps。電纜最大長度5米,USB電纜有4條線,2條信號線,2條電源線,可提供5V電源,USB電纜還分屏蔽和非屏蔽兩種,屏蔽電纜傳輸速度可達12Mbps,價格較貴,非屏蔽電纜速度爲1.5Mbps,但價格便宜。USB通過串聯方式最多可串聯127個設備,支持熱插拔。
        RJ-45接口是以太網最爲常用的接口。RJ45是一個常用名稱,指的是由IEC(60)603-7標準化,使用由國際性的接插件標準定義的8個位置(8針)的模塊化插孔或者插頭。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章