Uart、SPI和I2C的區別

來源:互聯網
上載者:User

標籤:

串口通訊:UART、SPI、I2C區別【引用】 

1、UART就是兩線,一根發送一根接收,可以全雙工系統通訊,線數也比較少。資料是非同步傳輸的,對雙方的時序要求比較嚴格,通訊速度也不是很快。在多機通訊上面用的最多。

2、SPI介面和上面UART相比,多了一條同步時鐘線,上面UART的缺點也就是它的優點了,對通訊雙方的時序要求不嚴格不同裝置之間可以很容易結合,而且通訊速度非常快。一般用在產品內部元件之間的高速資料通訊上面,如大量存放區等。

3、I2C介面也是兩線介面,它是兩根線之間通過複雜的邏輯關係傳輸資料的,通訊速度不高,程式寫起來也比較複雜。一般單片機系統裡主要用來和24C02等小容易儲存空間串連。

SPI:高速同步串列口。3~4線介面,收發獨立、可同步進行
UART:通用非同步串列口。按照標準傳輸速率完成雙向通訊,速度慢

SPI:一種串列傳輸方式,三線制,網上可找到其通訊協定和用法的
3根線實現資料雙向傳輸
串列外圍介面 Serial peripheral interface
UART:通用非同步收發器
UART是用於控制電腦與串列裝置的晶片。有一點要注意的是,它提供了RS-232C資料終
端裝置介面,這樣電腦就可以和數據機或其它使用RS-232C介面的串列裝置通訊了
。作為介面的一部分,UART還提供以下功能:
將由電腦內部傳送過來的並行資料轉換為輸出的串列資料流。將電腦外部來的串列
資料轉換為位元組,供電腦內部使用並行資料的器件使用。在輸出的串列資料流中加入
同位位元,並對從外部接收的資料流進行同位。在輸出資料流中加入啟停標記,
並從接收資料流中刪除啟停標記。處理由鍵盤或滑鼠發出的中斷訊號(鍵盤和鼠票也是
串列裝置)。可以處理電腦與外部串列裝置的同步管理問題。有一些比較高檔的UART
還提供輸入輸出資料的緩衝區,現在比較新的UART是16550,它可以在電腦需要處理數
據前在其緩衝區記憶體儲16位元組資料,而通常的UART是8250。現在如果您購買一個內建的
數據機,此數據機內部通常就會有16550 UART。
I2C: 能用於替代標準的並行匯流排,能串連的各種整合電路和功能模組。I2C是多主控匯流排,所以任何一個裝置都能像主控器一樣工作,並控制匯流排。匯流排上每一個裝置都有一個獨一無二的地址,根據裝置它們自己的能力,它們可以作為發射器或接收器工作。多路微控制器能在同一個I2C匯流排上共存。

I方C匯流排:

I2C匯流排最主要的優點是其簡單性和有效性。

由於介面直接在組件之上,因此I2C匯流排佔用的空間非常小,減少了電路板的空間和晶片管腳的數量,降低了互聯成本。匯流排的長度可高達25英尺,並且能夠以10Kbps的最大傳輸速率支援40個組件。I2C匯流排的另一個優點是,它支援多主控(multimastering),其中任何能夠進行發送和接收的裝置都可以成為主匯流排。一個主控能夠控制訊號的傳輸和時鐘頻率。當然,在任何時間點上只能有一個主控。

UART:

單端,遠距離傳輸。大多數電腦包含兩個基於RS232的串口。串口同時也是儀器儀錶裝置通用的通訊協定;很多GPIB相容的裝置也帶有RS-232口。同時,串口通訊協定也可以用於擷取遠程採集裝置的資料。串口通訊的概念非常簡單,串口按位(bit)發送和接收位元組。儘管比按位元組(byte)的並行通訊慢,但是串口可以在使用一根線發送資料的同時用另一根線接收資料。它很簡單並且能夠實現遠距離通訊。比如IEEE488定義並行通行狀態時,規定裝置線總常不得超過20米,並且任意兩個裝置間的長度不得超過2米;而對於串口而言,長度可達1200米。

具體的適用範圍就可多了,軍用,醫學...到處到能用。

第一個區別當然是名字:
     SPI(Serial Peripheral Interface:串列外設介面);
     I2C(INTER IC BUS:意為IC之間匯流排)
     UART(Universal Asynchronous Receiver Transmitter:通用非同步收發器)

第二,區別在電氣訊號線上:
     SPI匯流排由三條訊號線組成:串列時鐘(SCLK)、串列資料輸出(SDO)、串列資料輸入(SDI)。SPI匯流排可以實現多個SPI裝置互相串連。提供SPI串列時鐘的SPI裝置為SPI主機或主裝置(Master),其他裝置為SPI從機或從裝置(Slave)。主從裝置間可以實現全雙工系統通訊,當有多個從裝置時,還可以增加一條從裝置選擇線。
     如果用通用IO口類比SPI匯流排,必須要有一個輸出口(SDO),一個輸入口(SDI),另一個口則視實現的裝置類型而定,如果要實現主從裝置,則需輸入輸出口,若只實現主裝置,則需輸出口即可,若只實現從裝置,則只需輸入口即可。

     I2C匯流排是雙向、兩線(SCL、SDA)、串列、多主控(multi-master)介面標準,具有匯流排仲裁機制,非常適合在器件之間進行近距離、非經常性的資料通訊。在它的協議體系中,傳輸資料時都會帶上目的裝置的裝置地址,因此可以實現裝置群組網。
     如果用通用IO口類比I2C匯流排,並實現雙向傳輸,則需一個輸入輸出口(SDA),另外還需一個輸出口(SCL)。(註:I2C資料瞭解得比較少,這裡的描述可能很不完備)

     UART匯流排是非同步串口,因此一般比前兩種同步串口的結構要複雜很多,一般由傳輸速率產生器(產生的傳輸速率等於傳輸傳輸速率的16倍)、UART接收器、UART發送器組成,硬體上由兩根線,一根用於發送,一根用於接收。
     顯然,如果用通用IO口類比UART匯流排,則需一個輸入口,一個輸出口。

第三,從第二點明顯可以看出,SPI和UART可以實現全雙工系統,但I2C不行;

第四,看看牛人們的意見吧!
     wudanyu:I2C線更少,我覺得比UART、SPI更為強大,但是技術上也更加麻煩些,因為I2C需要有雙向IO的支援,而且使用上拉電阻,我覺得抗幹擾能力較弱,一般用於同一板卡上晶片之間的通訊,較少用於遠距離通訊。SPI實現要簡單一些,UART需要固定的傳輸速率,就是說兩位元據的間隔要相等,而SPI則無所謂,因為它是有時鐘的協議。
     quickmouse:I2C的速度比SPI慢一點,協議比SPI複雜一點,但是連線也比標準的SPI要少。

Uart、SPI和I2C的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.