I2C,SPI,UART和CAN的區(qū)別_第1頁
I2C,SPI,UART和CAN的區(qū)別_第2頁
I2C,SPI,UART和CAN的區(qū)別_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、I2C,SPI,UART 和 CAN 的區(qū)別(轉)SPI -Serial Peripheral In terface , (Serial Peripheral In terface :串行外設接口)串行外圍設備接口, 是Motorola公司推出的一種 同步串行通訊方式,是一種三線同步總線,因其硬件功能很強, 與SPI有關的軟件就相當簡單,使CPU有更多的時間處理其他事務。I2C -INTER-IC(INTER IC BUS :意為IC之間總線)串行總線的縮寫,是 PHILIPS公司推出 的芯片間串行傳輸總線。它以 1根串行數(shù)據(jù)線(SDA)和1根串行時鐘線(SCL)實現(xiàn)了雙工 的同步數(shù)據(jù)傳輸。具

2、有接口線少,控制方式簡化,器件封裝形式小,通信速率較高等優(yōu)點。在主從通信中,可以有多個I2C總線器件同時接到I2C總線上,通過地址來識別通信對象。能用于替代標準的并行總線,能連接的各種集成電路和功能模塊。I2C是多主控總線,所以任何一個設備都能像主控器一樣工作,并控制總線??偩€上每一個設備都有一個獨一無二的地址,根據(jù)設備它們自己的能力,它們可以作為發(fā)射器或接收器工作。多路微控制器能在同一個I2C總線上共存。最主要的優(yōu)點是其簡單性和有效性。它支持多主控(multimastering),其中任何能夠進行發(fā)送和接收的設備都可以成為主總線。一個主控能夠控制信號的傳輸和時鐘頻率。當然,在任何時間點上只能

3、有一個主控。UART (Universal Asynchronous Receiver Transmitter :通用異步收發(fā)器):單端,遠距離傳輸。 大多數(shù)計算機包含兩個基于RS232的串口。串口同時也是儀器儀表設備通用的通信協(xié)議;很多GPIB兼容的設備也帶有 RS-232 口。同時,串口通信協(xié)議也可以用于獲取遠程采集設備 的數(shù)據(jù)。串口通信的概念非常簡單, 串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte) 的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設備線總常不得超過 20 米,并

4、且任意兩個設備間的長度不得超過2米;而對于串口而言,長度可達1200米。區(qū)別在電氣信號線上:SPI總線由三條信號線組成:串行時鐘(SCLK)、串行數(shù)據(jù)輸出(SDO)、串行數(shù)據(jù)輸入(SDI)。SPI總線可以實現(xiàn) 多個SPI設備互相連接。提供 SPI串行時鐘的SPI設備為SPI主 機或主設備(Master),其他設備為 SPI從機或從設備(Slave)。主從設備間可以實現(xiàn)全雙工通 信,當有多個從設備時,還可以增加一條從設備選擇線。如果用通用10 口模擬SPI總線,必須要有一個輸出口 (SDO),一個輸入口 (SDI),另一個口 則視實現(xiàn)的設備類型而定,如果要實現(xiàn)主從設備,則需輸入輸出口,若只實現(xiàn)主

5、設備, 則需輸出口即可,若只實現(xiàn)從設備,則只需輸入口即可。I2C總線是雙向、兩線(SCL、SDA)、串行、多主控(multi-master )接口標準,具有總 線仲裁機制,非常適合在器件之間進行近距離、非經(jīng)常性的數(shù)據(jù)通信。在它的協(xié)議體系中, 傳輸數(shù)據(jù)時都會帶上目的設備的設備地址,因此可以實現(xiàn)設備組網(wǎng)。如果用通用IO 口模擬I2C總線,并實現(xiàn)雙向傳輸,則需一個輸入輸出口(SDA),另外還需一個輸出口 (SCL)。(注:I2C資料了解得比較少,這里的描述可能很不完備)UART總線是異步串口,因此一般比前兩種同步串口的結構要復雜很多,一般由波特率產(chǎn)生器(產(chǎn)生的波特率等于傳輸波特率的 16倍)、UAR

6、T接收器、UART發(fā)送器組成,硬件 上由兩根線,一根用于發(fā)送,一根用于接收。顯然,如果用通用IO 口模擬UART總線,則需一個輸入口,一個輸出口。從以上很明顯可以看出,SPI和UART可以實現(xiàn)全雙工,但 I2C不行;第四,看看牛人們的意見吧!A : I2C線更少,我覺得比UART、SPI更為強大,但是技術上也更加麻煩些,因為I2C需要有雙向10的支持,而且使用上拉電阻,我覺得抗干擾能力較弱,一般用于同一板卡上 芯片之間的通信,較少用于遠距離通信。SPI實現(xiàn)要簡單一些,UART需要固定的波特率,就是說兩位數(shù)據(jù)的間隔要相等,而SPI則無所謂,因為它是有時鐘的協(xié)議。B : I2C的速度比SPI慢一點

7、,協(xié)議比 SPI復雜一點,但是連線也比標準的SPI要少。SPI是一種允許一個主設備啟動一個與從設備的同步通訊的協(xié)議,從而完成數(shù)據(jù)的交換。也就是SPI是一種規(guī)定好的通訊方式。這種通信方式的優(yōu)點是占用端口較少,一般4根就夠基本通訊了。同時傳輸速度也很高。一般來說要求主設備要有 SPI控制器(但可用模擬方式), 就可以與基于SPI的芯片通訊了。SPI的通信原理很簡單,它需要至少 4根線,事實上3根也可以。也是所有基于 SPI的設 備共有的,它們是 SDI (數(shù)據(jù)輸入),SD0 (數(shù)據(jù)輸出),SCK (時鐘),CS (片選)。其中 CS是控制芯片是否被選中的,也就是說只有片選信號為預先規(guī)定的使能信號時

8、(高電位或 低電位),對此芯片的操作才有效。這就允許在同一總線上連接多個 SPI設備成為可能。接下來就負責通訊的3根線了。通訊是通過數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)?。這就是SCK時鐘線存在的原 因,由SCK提供時鐘脈沖,SDI,SD0則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過SD0線,數(shù)據(jù)在時鐘上沿或下沿時改變,在緊接著的下沿或上沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少 8次時鐘信號的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。要注意的是,SCK信號線只由主設備控制,從設備不能控制信號線。同樣,在一個基 于SPI的設備中,

9、至少有一個主控設備。這樣傳輸?shù)奶攸c:這樣的傳輸方式有一個優(yōu)點,與普通的串行通訊不同,普通的串行 通訊一次連續(xù)傳送至少 8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送, 甚至允許暫停,因為SCK 時鐘線由主控設備控制,當沒有時鐘跳變時, 從設備不采集或傳送數(shù)據(jù)。也就是說,主設備通過對SCK時鐘線的控制可以完成對通訊的控制。SPI還是一個數(shù)據(jù)交換協(xié)議:因為 SPI的數(shù)據(jù)輸入和輸出線獨立,所以允許同時完成 數(shù)據(jù)的輸入和輸出。不同的SPI設備的實現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時間不同,在時鐘信 號上沿或下沿采集有不同定義,具體請參考相關器件的文檔。I2C?只要求兩條總線線路:一條串行數(shù)據(jù)線SDA 一

10、條串行時鐘線 SCL?每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機從機關系軟件設 定地址主機可以作為主機發(fā)送器或主機接收器?它是一個真正的多主機總線如果兩個或更多主機同時初始化數(shù)據(jù)傳輸可以通過沖突檢測 和仲裁,防止數(shù)據(jù)被破壞?串行的8位雙向數(shù)據(jù)傳輸位速率在標準模式下可達 100kbit/s快速模式下可達400kbit/s高 速模式下可達3.4Mbit/s?片上的濾波器可以濾去總線數(shù)據(jù)線上的毛刺波保證數(shù)據(jù)完整 ?連接到相同總線的IC數(shù)量只受到總線的最大電容 400pF限制UARTUART總線是異步串口,因此一般比前兩種同步串口的結構要復雜很多,一般由波特率產(chǎn)生器(產(chǎn)生的波特率等

11、于傳輸波特率的 16倍)、UART接收器、UART發(fā)送器組成,硬件上由兩根線,一根用于發(fā)送,一根用于接收。顯然,如果用通用10 口模擬UART總線,則需一個輸入口,一個輸出口。UART常用于控制計算機與串行設備的芯片。有一點要注意的是,它提供了RS-232C數(shù)據(jù)終端設備接口,這樣計算機就可以和調(diào)制解調(diào)器或其它使用RS-232C接口的串行設備通信了。明顯可以看出,SPI和UART可以實現(xiàn)全雙工,但 I2C不行。什么是CAN總線?CAN全稱為Controller Area Network,即控制器局域網(wǎng),由德國 Bosch公司最先提出,是 國際上應用最廣泛的現(xiàn)場總線之一。CAN是一種多主方式的串行通訊總線,基本設計規(guī)范要求有高的位速率、 高抗電磁干擾性,而且要能夠檢測出總線的任何錯誤。當信號傳輸距離達10Km時CAN仍可提供高達50Kbit/s的數(shù)據(jù)傳輸速率。CAN具有十分優(yōu)越的特點:A、較低的成本與極高的總線利用率;B、數(shù)據(jù)傳輸距離可長達10Km,傳輸速率可高達1Mb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論