I2C串行擴(kuò)展總線
I2C總線是Philips公司推出的芯片間串行傳輸總線。它用兩根線實現(xiàn)了完備的全雙工同步數(shù)據(jù)傳送,可以極為方便地構(gòu)成多機(jī)系統(tǒng)和外圍器件擴(kuò)展系統(tǒng)。I2C總線采用了器件地址的硬件設(shè)置方法,通過軟件尋址完全避免了器件的片選線尋址方法,從而使硬件系統(tǒng)具有簡單靈活的擴(kuò)展方法,按照I2C總線規(guī)范,總線傳輸中的所有狀態(tài)都生成相對應(yīng)的狀態(tài)碼,系統(tǒng)中的主機(jī)能夠依照這些狀態(tài)碼自動地進(jìn)行總線管理,用戶只要在程序中裝入這些標(biāo)準(zhǔn)處理模塊,根據(jù)數(shù)據(jù)操作要求完成I2C總線的初始化,啟動I2C總線,就能自動完成規(guī)定的數(shù)據(jù)傳送操作。I2C總線接口電路結(jié)構(gòu)如圖1所示。
I2C總線接口為開漏或開集電極輸出,需加上拉電阻。系統(tǒng)中所有的單片機(jī)、外圍器件都將數(shù)據(jù)線SDA和時鐘線SCL的同名端相連在一起,總線上的所有節(jié)點都由器件和管腳給定地址。系統(tǒng)中可以直接連接具有I2C總統(tǒng)接口的單片機(jī),也可以通過總線擴(kuò)展芯片或I/O口的軟件仿真與I2C總線相連。在I2C總線上可以掛接各種類型的外圍器件,如RAM/EPROM、日歷/時鐘、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器以及由I/O口、顯示驅(qū)動器構(gòu)成的各種模塊。
I2C總線上數(shù)據(jù)傳送的基本單位為字節(jié),采用低位在前的格式。主從器件之間一次傳輸?shù)臄?shù)據(jù)稱為一幀,由啟動信號、若干個數(shù)據(jù)字節(jié)和應(yīng)答位以及停止信號組成?梢钥闯,I2C
圖1 I2C總線接口電路結(jié)構(gòu)
的主要命令只有讀、寫兩種,雖然讀寫的字節(jié)根據(jù)具體器件的不同而不同,但其時序關(guān)系不會發(fā)生改變。根據(jù)這一點,下位機(jī)只要具備I2C的基本時序即可。這些基本時序包括:啟動、寫字節(jié)、讀字節(jié)、應(yīng)答位、停止信號,并可以組合成兩個子程序:讀N字節(jié)子程序、寫N字節(jié)子程序。
帶有I2C器件的讀寫操作有多種形式,寫操作有兩種類型:字節(jié)寫和頁面寫;讀操作有三種類型:讀當(dāng)前地址內(nèi)容、讀隨機(jī)地址內(nèi)客和讀順序地址內(nèi)容。以AT24C01為例,寫N個字節(jié)數(shù)據(jù)的操作時序如圖2所示,AT24C01讀N個字節(jié)技據(jù)的操作時序如圖3所示。
<?XML:NAMESPACE PREFIX = U1 /> | 8位 | | 8位 | | 8位 | | 8位 | | | 8位 | | |
起始信號 | 器件地址 | 響應(yīng)信號 | 字地址 | 響應(yīng)信號 | 數(shù)據(jù)1 | 響應(yīng)信號 | 數(shù)據(jù)2 | 響應(yīng)信號 | … | 數(shù)據(jù)N | 響應(yīng)信號 | 結(jié)束信號 |
| | | 寫操作 | | 寫操作 | | 寫操作 | | | 寫操作 |
| 8位 | | 8位 | | 8位 | | | 8位 | | |
起始信號 | 器件地址 | 響應(yīng)信號 | 字地址 | 響應(yīng)信號 | 數(shù)據(jù)1 | 響應(yīng)信號 | … | 數(shù)據(jù)N | 響應(yīng)信號 | 結(jié)束信號 |
| | | 寫操作 | | 讀操作 | | | 讀操作 |
上圖中器件地址說明如下:
①器件地址碼的第7~4位為從器件地址位,用于確認(rèn)器件的類型。AT24C01的器件地址碼為1010,1010表示從器件為串行E2PROM。
②器件地址碼的第3~l位為第l~第8片的片選或存儲器內(nèi)的頁面地址選擇位。此三個控制位用于片選或者內(nèi)部頁面選擇。
如在存儲容量8Kb(1024×8位)的AT24C01內(nèi)部,存儲矩陣分為4個頁面,每一頁面有256個字節(jié)。通過器件地址碼的第2位和第1位,可以選擇數(shù)據(jù)讀寫的頁面。
③器件地址碼的第0位為讀、寫(R/W)操作控制碼。若此位為1,下一字節(jié)進(jìn)行讀操作(R);此位為0,下一字節(jié)進(jìn)行寫操作(W)。
AT24C01每接收一個字節(jié)后,都必須發(fā)送一個確認(rèn)應(yīng)答信號位ACK,即時序中的響應(yīng)信號。此時單片機(jī)必須產(chǎn)生一個與此確認(rèn)位相應(yīng)的時鐘脈沖。AT24C01在讀寫操作時。具有地址自動加1功能,即讀、寫完某一地址空間后,會自動指向下一個地址單元。
I2C總線最顯著的特點是規(guī)范的完整性、結(jié)構(gòu)的獨(dú)立性和用戶使用時的“傻瓜”化。I2C總統(tǒng)有嚴(yán)格的規(guī)范,如接口的電氣特性、信號時序、信號傳輸?shù)亩x、總線狀態(tài)設(shè)置、總線管理規(guī)則及總線狀態(tài)處理等。
在I2C總線規(guī)范中?偩上的器件節(jié)點具有極大的獨(dú)立性,而且各節(jié)點上的器件、模塊都有相對獨(dú)立的地址編號。
嚴(yán)格、完善的規(guī)范,并將這些規(guī)范的應(yīng)用盡可能“傻瓜”化,除了有充分的硬件支持外,在軟件方面,Philips公司為用戶提供了一套完善的總線狀態(tài)處理軟件包,以致于用戶可以不去熟悉I2C總線的規(guī)范,不去理睬總線的管理方法,只要掌握I2C總線的應(yīng)用程序設(shè)計方法就可方使地使用I2C總線,并且能很快地掌握I2C總線系統(tǒng)的軟、硬件設(shè)計方法。
由于I2C總線系統(tǒng)中,各個節(jié)點的電氣特性及地址給定都具有較強(qiáng)的獨(dú)立性,因此,在應(yīng)用系統(tǒng)中采用I2C總線結(jié)構(gòu)就有可能實現(xiàn)用戶夢寐以求的器件及功能單元的軟、硬件標(biāo)準(zhǔn)化和模塊化設(shè)計。
器件及功能單元的標(biāo)準(zhǔn)化、模塊化,取決于器件單元硬件電氣連接的最少相關(guān)性與軟件的獨(dú)立性。軟件的獨(dú)立性則表現(xiàn)在獨(dú)立編址及數(shù)據(jù)傳送方式的簡單化與單一性。而I2C總線所具有的特點很好地滿足了上述要求。
在硬件結(jié)構(gòu)上,任何一個具有I2C總線接口的外圍器件,不僅其功能差別有多大,都具有相同的電氣接口;除了總線外,各器件節(jié)點沒有其他電氣連接,甚至各節(jié)點的電源都可以單獨(dú)供電;在各器件節(jié)點上沒有并行擴(kuò)展時所必須的片選線,器件地址給定完全取決于器件類型與單元電路結(jié)構(gòu)。在軟件上,不論何種器件,其I2C總線的數(shù)據(jù)傳送都具有相同的操作模式,而且每個器件操作時都與其他器件節(jié)點無關(guān)。在實際使用中,總線節(jié)點上的器件甚至可在總線工作狀態(tài)下掛上總線或撤除。
目前I2C總線大量應(yīng)用在視頻、音像系統(tǒng)中,Philips推出的近200種I2C總統(tǒng)接口器件主要是視頻、音像類器件。除Philips公司外,I2C總線已被眾多的廠家使用在高檔電視機(jī)、電話機(jī)、音響、攝/錄像系統(tǒng)中,在大量測控領(lǐng)域單片機(jī)應(yīng)用系統(tǒng)中正逐步推廣。
編輯:admin 最后修改時間:2018-05-08