一、SPI I2C UART通信速率比較:SPI > I2C > UART 1、同步通信>異步通信; 3-SPI:兩條合一的數據線、1時鐘線、1CS(設備片選線) (I2C接口是“器件間”接口,是在一塊板子之內傳輸數據) 二、串行和并行、同步和異步的區(qū)別:串行通信:利用一條數據線將數據一位一位的順序傳送,特點是通信線路簡單,成本低,適合于長距離傳送 異步:在一個字符的傳輸時間范圍內保持同步即可 三、I2C接口與串行接口的區(qū)別:I2C 兩線式串行總線 有很大方式的不同。譬如i2c是帶地址的通訊,支持多方通訊,串口就搞不定;兩者通訊的機制原理也不同;另外速度上I2C相對會快一些,好像i2c是philips發(fā)明的,目的就是解決速度的瓶頸。網上有很多資料,自己搜一下吧! 1、I2C接口是'器件間'接口,是在一塊板子之內數據的,RS232串行接口是'設備間'接口,更多的是用于兩臺設備之間傳 輸數據。 2、從傳輸數據的距離來說,應該是RS232傳輸的距離較遠,但二者具體差別多少,我沒有做過專門的試驗。 3、串口是一根線傳送數據,一根線接收數據 4、協(xié)議不同,波特率不同 串行接口,像單片機,時鐘由內部MCU提供,而I2C接口要由器件來決定,不能太快。 5、I2C是同步串行傳輸,RS232(或稱UART,通用異步收發(fā)器)是異步串行傳輸。 6、同步方式必須有一根時鐘線連接傳輸的兩端,i2c里的scl就是這根時鐘線。因為同步方式不用花費額外的開銷對其 數據,所以其傳輸速率一般比異步方式高。 四、總線接口 UART I2C SPI USB的異同點1、UART 通用異步串行口,速率不快,可全雙工,結構上一般由波特率產生器、UART發(fā)送器、UART接收器組成,硬件上兩線,一收一發(fā)。 2、SPI 高速同步串行口,高速,可全雙工,收發(fā)獨立,同步接口,可實現多個SPI設備互聯(lián),硬件4條線。 3、I2C 雙向、兩線、串行、多主控接口標準。速率不快,半雙工,同步接口,具有總線仲裁機制,非常適合器件間 近距離經常性數據通信,可實現設備組網。 4、USB 通用串行總線,高速,半雙工,由主機、hub、設備組成。設備可以與下級hub相連構成星型結構。 五、串口通信:UART、SPI、I2C區(qū)別:1、UART就是兩線,一根發(fā)送一根接收,可以全雙工通信,線數也比較少。數據是異步傳輸的,對雙方的時序要求比 較嚴格,通信速度也不是很快。在多機通信上面用的最多。 2、SPI接口和上面UART相比,多了一條同步時鐘線,上面UART的缺點也就是它的優(yōu)點了,對通信雙方的時序要求不 嚴格不同設備之間可以很容易結合,而且通信速度非???。一般用在產品內部元件之間的高速數據通信上面,如大容 量存儲器等。 3、I2C接口也是兩線接口,它是兩根線之間通過復雜的邏輯關系傳輸數據的,通信速度不高,程序寫起來也比較復 雜。一般單片機系統(tǒng)里主要用來和24C02等小容易存儲器連接。 SPI:高速同步串行口。3~4線接口,收發(fā)獨立、可同步進行 UART:通用異步串行口。按照標準波特率完成雙向通訊,速度慢 SPI:一種串行傳輸方式,三線制,網上可找到其通信協(xié)議和用法的3根線實現數據雙向傳輸串行外圍接口 UART:通用異步收發(fā)器 UART是用于控制計算機與串行設備的芯片。有一點要注意的是,它提供了RS-232C數據終端設備接口,這樣計 算機就可以和調制解調器或其它使用RS-232C接口的串行設備通信了。作為接口的一部分,UART還提供以下功能: 1、將由計算機內部傳送過來的并行數據轉換為輸出的串行數據流。 2、將計算機外部來的串行數據轉換為字節(jié),供計算機內部使用并行數據的器件使用。 3、在輸出的串行數據流中加入奇偶校驗位,并對從外部接收的數據流進行奇偶校驗。 4、在輸出數據流中加入啟停標記,并從接收數據流中刪除啟停標記。 5、處理由鍵盤或鼠標發(fā)出的中斷信號(鍵盤和鼠票也是串行設備)。 6、處理由鍵盤或鼠標發(fā)出的中斷信號(鍵盤和鼠票也是串行設備)。 7、可以處理計算機與外部串行設備的同步管理問題。 8、有一些比較高檔的UART還提供輸入輸出數據的緩沖區(qū),現在比較新的UART是16550,它可以在計算機需要處理 數據前在其緩沖區(qū)內存儲16字節(jié)數據,而通常的UART是8250。 9、現在如果您購買一個內置的調制解調器,此調制解調器內部通常就會有16550 UART。 I2C: 主控器一樣工作,并控制總線??偩€上每一個設備都有一個獨一無二的地址,根據設備它們自己的能力,它們可以作 為發(fā)射器或接收器工作。多路微控制器能在同一個I2C總線上共存。 I2C總線: 電路板的空間和芯片管腳的數量,降低了互聯(lián)成本。總線的長度可高達25英尺,并且能夠以10Kbps的最大傳輸速率 支持40個組件。I2C總線的另一個優(yōu)點是,它支持多主控(multimastering),其中任何能夠進行發(fā)送和接收的設備都 可以成為主總線。一個主控能夠控制信號的傳輸和時鐘頻率。當然,在任何時間點上只能有一個主控。 UART: 單端,遠距離傳輸。大多數計算機包含兩個基于RS232的串口。串口同時也是儀器儀表設備通用的通信協(xié)議;很 多GPIB兼容的設備也帶有RS-232口。同時,串口通信協(xié)議也可以用于獲取遠程采集設備的數據。串口通信的概念非 常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送 數據的同時用另一根線接收數據。它很簡單并且能夠實現遠距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設備 線總常不得超過20米,并且任意兩個設備間的長度不得超過2米;而對于串口而言,長度可達1200米。具體的適用范 圍就可多了,軍用,醫(yī)療…到處到能用。 第一個區(qū)別當然是名字: 第二,區(qū)別在電氣信號線上: SPI總線由三條信號線組成:串行時鐘(SCLK)、串行數據輸出(SDO)、串行數據輸入(SDI)。SPI總線可以實現多個 SPI設備互相連接。提供SPI串行時鐘的SPI設備為SPI主機或主設備(Master),其他設備為SPI從機或從設備(Slave)。主 從設備間可以實現全雙工通信,當有多個從設備時,還可以增加一條從設備選擇線。 如果用通用IO口模擬SPI總線,必須要有一個輸出口(SDO),一個輸入口(SDI),另一個口則視實現的設備類型而 定,如果要實現主從設備,則需輸入輸出口,若只實現主設備,則需輸出口即可,若只實現從設備,則只需輸入口即可。 I2C總線是雙向、兩線(SCL、SDA)、串行、多主控(multi-master)接口標準,具有總線仲裁機制,非常適合在 器件之間進行近距離、非經常性的數據通信。在它的協(xié)議體系中,傳輸數據時都會帶上目的設備的設備地址,因此可以實現設備組網。如果用通用IO口模擬I2C總線,并實現雙向傳輸,則需一個輸入輸出口(SDA),另外還需一個輸出口(SCL)。(注: I2C資料了解得比較少,這里的描述可能很不完備) UART總線是異步串口,因此一般比前兩種同步串口的結構要復雜很多,一般由波特率產生器(產生的波特率等于傳 輸波特率的16倍)、UART接收器、UART發(fā)送器組成,硬件上由兩根線,一根用于發(fā)送,一根用于接收。 第三,從第二點明顯可以看出,SPI和UART可以實現全雙工,但I2C不行; 第四,看看牛人們的意見吧! wudanyu:I2C線更少,我覺得比UART、SPI更為強大,但是技術上也更加麻煩些,因為I2C需要有雙向IO的支 持,而且使用上拉電阻,我覺得抗干擾能力較弱,一般用于同一板卡上芯片之間的通信,較少用于遠距離通信。SPI 實現要簡單一些,UART需要固定的波特率,就是說兩位數據的間隔要相等,而SPI則無所謂,因為它是有時鐘的協(xié) 議。 quickmouse:I2C的速度比SPI慢一點,協(xié)議比SPI復雜一點,但是連線也比標準的SPI要少。
|
|
來自: 新用戶52403431 > 《待分類》