今天,小編將在這篇文章中為大家?guī)鞸PI總線和I2C總線的有關報道,通過閱讀這篇文章,大家可以對二者具備清晰的認識,主要內容如下。
一、SPI總線
SPI 是由摩托羅拉(Motorola)公司開發(fā)的全雙工同步串行總線,是微處理控制單元(MCU)和外圍設備之間進行通信的同步串行端口。主要應用在EEPROM、Flash、實時時鐘(RTC)、數模轉換器(ADC)、網絡控制器、MCU、數字信號處理器(DSP)以及數字信號解碼器之間。SPI 系統(tǒng)可直接與各個廠家生產的多種標準外圍器件直接接口,一般使用4 條線:串行時鐘線SCK、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI 和低電平有效的從機選擇線SSEL。
SPI 數據傳輸時,必須明確以下兩位的特點及功能:
(1) CPOL: 時鐘極性控制位。該位決定了SPI總線空閑時SCK 時鐘線的電平狀態(tài)。
CPL=0,當SPI總線空閑時,SCK 時鐘線為低電平。
CPL=1,當SPI總線空閑時,SCK 時鐘線為高電平。
(2) CPHA: 時鐘相位控制位。該位決定了SPI總線上數據的采樣位置。
CPHA=0,SPI總線在時鐘線的第1個跳變沿處采樣數據。
CPHA= 1,SPI總線在時鐘線的第2個跳變沿處采樣數據。
二、I2C總線
I2C總線是由Philips公司開發(fā)的一種簡單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。I2C總線是一個真正的多主機總線,如果兩個或多個主機同時初始化數據傳輸,可以通過沖突檢測和仲裁防止數據破壞,每個連接到總線上的器件都有唯一的地址,任何器件既可以作為主機也可以作為從機,但同一時刻只允許有一個主機。數據傳輸和地址設定由軟件設定,非常靈活。總線上的器件增加和刪除不影響其他器件正常工作。I2C總線可以通過外部連線進行在線檢測,便于系統(tǒng)故障診斷和調試,故障可以立即被尋址,軟件也利于標準化和模塊化,縮短開發(fā)時間。連接到相同總線上的IC數量只受總線最大電容的限制,串行的8位雙向數據傳輸位速率在標準模式下可達100Kbit/s,快速模式下可達400Kbit/s,高速模式下可達3.4Mbit/s。在硬件上,I2C總線只需要一根數據線和一根時鐘線兩根線,總線接口已經集成在芯片內部,不需要特殊的接口電路,而且片上接口電路的濾波器可以濾去總線數據上的毛刺。因此I2C總線簡化了硬件電路PCB布線,降低了系統(tǒng)成本,提高了系統(tǒng)可靠性。因為I2C芯片除了這兩根線和少量中斷線,與系統(tǒng)再沒有連接的線,用戶常用IC可以很容易形成標準化和模塊化,便于重復利用。
三、SPI和I2C總線的區(qū)別
1、I2C總線不是全雙工,2根線SCL SDA。spi總線實現全雙工,4根線SCK CS MOSI MISO
2、 I2C總線是多主機總線,通過SDA上的地址信息來鎖定從設備。spi總線只有一個主設備,主設備通過CS片選來確定從設備
3、I2C總線傳輸速度在100kbps-4Mbps。spi總線傳輸速度更快,可以達到30MHZ以上。
4、I2C總線空閑狀態(tài)下SDA SCL都是高電平。spi總線空閑狀態(tài)MOSI MISO也都是 SCK是有CPOL決定的
5、 I2C總線scl高電平時sda下降沿標志傳輸開始,上升沿標志傳輸結束。spi總線cs拉低標志傳輸開始,cs拉高標志傳輸結束
6、I2C總線是SCL高電平采樣。spi總線因為是全雙工,因此是沿采樣,具體要根據CPHA決定。一般情況下master device是SCK的上升沿發(fā)送,下降沿采集
7、I2C總線和spi總線數據傳輸都是MSB在前,LSB在后(串口是LSB在前)
8、I2C總線和spi總線時鐘都是由主設備產生,并且只在數據傳輸時發(fā)出時鐘
9、I2C總線讀寫時序比較固定統(tǒng)一,設備驅動編寫方便。spi總線不同從設備讀寫時序差別比較大,因此必須根據具體的設備datasheet來實現讀寫,相對復雜一些。
以上便是小編此次想要和大家共同分享的有關SPI總線和I2C總線的內容,如果你對本文內容感到滿意,不妨持續(xù)關注我們網站喲。最后,十分感謝大家的閱讀,have a nice day!