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