IIC匯流排理解與拓展

2021-09-27 20:48:27 字數 1558 閱讀 9688

**iic匯流排的基礎理解與拓展**
常用序列匯流排:uart,1-wire,iic,spi;

uart:一條資料輸入線,一條資料輸出線,非同步序列通訊;

iic:一條時鐘線,一條資料線,同步(外同步)序列通訊,

spi:一條時鐘線,一條資料輸入線,一條資料輸出線;同步(外同步)序列通訊

1-wire:單線匯流排,只有一條線;

以下講解iic匯流排:

iic匯流排:可掛多個器件,且每個器件都有唯一的位址;

資料的通訊方式是主從方式,主機聯絡從機,從機被動回應主機;

在多主機系統中,同時有幾個主機企圖啟動匯流排傳輸資料,這時,iic匯流排通過匯流排仲裁,決定那一台主機控制匯流排;

一般情況下,我們採用單主機模式;

起始訊號和停止訊號都由主機產生。scl始終由主機控制,sda不是,當sda拉高時(釋放),各器件可拉低使用,將資料放在sda匯流排上;iic匯流排上傳輸的資料訊號為廣義的,既包括位址訊號又包括資料訊號;

以下講解均為單主機,多從機的情況:(這裡的主機可理解為微控制器,從機可理解為各個器件)

當匯流排空閒時,兩根線(sda和scl)都是高電平(通過上拉電阻(4.7-10k電阻)接電源)

scl線與sda相似,這裡以sda線舉列:

當匯流排sda上任一器件輸出低電平時,就會拉低sda匯流排;

占用匯流排:當某乙個器件將匯流排sda拉低時,此時它占用了iic匯流排,匯流排上的其他器件,就不能用iic匯流排傳輸資料;

釋放匯流排:將sda拉高;只有釋放了sda匯流排,其他器件才能只用匯流排sda,

匯流排scl同理;

iic匯流排的幾個狀態:

空閒狀態:sda與scl同時處於高電平

開始訊號:scl為高期間,sda 由高到低的跳變(下降沿);

停止訊號:scl為高期間,sda由低到高的跳變(上公升沿)

應答訊號(ack ):傳送器每傳送乙個位元組,就在時鐘脈衝9的期間釋放sda,由接收器返回乙個應答訊號(低電平有效) ;在第9個時鐘脈衝之前要將sda拉低(從機操作),確保在第9個脈衝高電平期間,sda是穩定的低電平(即sda的低電平和scl的高電平相比,開始的早,結束的晚)

資料的有效性:資料傳送時,scl為高電平期間,sda上的資料必須穩定;只有scl為低時,sda線的電平狀態才可以變化(不包括起始訊號和停止訊號);

資料傳輸:每乙個位對應時鐘的乙個脈衝;ic與ic之間雙向傳送;

iic的傳送與應答:

每個位元組必須是八位,資料傳送時,先傳送最高位(msb),每乙個傳送的位元組後都有乙個應答位,即一幀共9位

理解:主機傳送,從機接受時,從機傳送非應答訊號,主機結束本次傳輸,從機傳送本次應答訊號,繼續傳輸;

主機接受,從機傳送:主機傳送非應答訊號,從機結束本次傳輸(釋放sda匯流排,允許主機傳送停止訊號);主機傳送應答訊號,叢機繼續傳輸;

(什麼時候不想接收資料了(主機或從機),接收方就傳送非應答訊號,使sda置1,釋放匯流排sda)(補充:也可在應答訊號下,主機傳送結束訊號)

匯流排的定址:起始訊號後的第乙個位元組(七位定址,一位讀/寫位)

開始訊號完成後,應將sda置高,方便從機使用;(也可以沒有),一般情況下,主機操作完要釋放sda線)

SPI匯流排與IIC匯流排

spi的4種標準時序圖 下面主要總結一下2種匯流排的異同點 1 iic匯流排不是全雙工,2根線scl sda。spi匯流排實現全雙工,4根線sck cs mosi miso 2 iic匯流排是多主機匯流排,通過sda上的位址資訊來鎖定從裝置。spi匯流排只有乙個主裝置,主裝置通過cs片選來確定從裝置...

匯流排 IIC匯流排

i2c匯流排是飛利浦 phlips 公司推出的一種半雙工序列匯流排,用於連線微控制器及其外圍裝置,i2c序列匯流排有兩根雙向訊號線。一根是資料線sda,另一根是時鐘線scl。它僅通過兩根訊號線就可以完成對所有掛載在i2c匯流排上的從器件進行操作。這樣的好處是可以大大的節省我們微處理器的io口資源。i...

SCCB匯流排與IIC區別

sccb是簡化的i2c協議,sio l是序列時鐘輸入線,sio o是序列雙向資料線,分別相當於i2c協議的scl和sda。sccb的匯流排時序與i2c基本相同,它的響應訊號ack被稱為乙個傳輸單元的第9位,分為don t care和na。don t care位由從機產生 na位由主機產生,由於scc...