最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

I2C ( IIC )

2021-11-09 17:43 作者:僚機(jī)Wingplane  | 我要投稿

1、 介紹I2C總線規(guī)范

對于面向8 位的數(shù)字控制應(yīng)用,譬如那些要求用微控制器,的要建立一些設(shè)計(jì)標(biāo)準(zhǔn):

? 一個(gè)完整的系統(tǒng)通常由至少一個(gè)微控制器和其他外圍器件,例如存儲(chǔ)器和I/O 擴(kuò)展器組成。

? 系統(tǒng)中不同器件的連接成本必須最小。

? 執(zhí)行控制功能的系統(tǒng)不要求高速的數(shù)據(jù)傳輸。

? 總的效益由選擇的器件和互連總線結(jié)構(gòu)的種類決定。

產(chǎn)生一個(gè)滿足這些標(biāo)準(zhǔn)的系統(tǒng)需要一個(gè)串行的總線結(jié)構(gòu),盡管串行總線沒有并行總線的數(shù)據(jù)吞吐能力,但它們只要很少的配線和IC 連接管腳。然而,總線不僅僅是互連的線,還包含系統(tǒng)通訊的所有格式和過程。

串行總線的器件間通訊必須有某種形式的協(xié)議避免所有混亂、數(shù)據(jù)丟失和妨礙信息的可能性??焖倨骷仨毧梢院吐倨骷ㄓ?。系統(tǒng)必須不能基于所連接的器件,否則不可能進(jìn)行修改或改進(jìn)。應(yīng)當(dāng)設(shè)計(jì)一個(gè)過程決定哪些器件何時(shí)可以控制總線。而且,如果有不同時(shí)鐘速度的器件連接到總線,必須定義總線的時(shí)鐘源。所有這些標(biāo)準(zhǔn)都在I2C 總線的規(guī)范中。

2、I2C 總線的概念

I2C總線支持任何IC 生產(chǎn)過程(NMOS、CMOS、雙極性)。兩線——串行數(shù)據(jù)(SDA) 和串行時(shí)鐘(SCL) 線在連接到總線的器件間傳遞信息。每個(gè)器件都有一個(gè)唯一的地址識(shí)別(無論是微控制器、LCD驅(qū)動(dòng)器、存儲(chǔ)器或鍵盤接口),而且都可以作為一個(gè)發(fā)送器或接收器(由器件的功能決定)。很明顯,LCD驅(qū)動(dòng)器只是一個(gè)接收器,而存儲(chǔ)器則既可以接收又可以發(fā)送數(shù)據(jù)。除了發(fā)送器和接收器外,器件在執(zhí)行數(shù)據(jù)傳輸時(shí)也可以被看作是主機(jī)或從機(jī)(見圖1)。主機(jī)是初始化總線的數(shù)據(jù)傳輸并產(chǎn)生允許傳輸?shù)臅r(shí)鐘信號的器件。此時(shí),任何被尋址的器件都被認(rèn)為是從機(jī)。

圖1 I2C 總線術(shù)語的定義

I2C 總線是一個(gè)多主機(jī)的總線。這就是說可以連接多于一個(gè)能控制總線的器件到總線。由于主機(jī)通常是微控制器,讓我們考慮以下數(shù)據(jù)在兩個(gè)連接到I2C 總線的微控制器之間傳輸?shù)那闆r(見圖2)。

這突出了I2C 總線的主機(jī)從機(jī)和接收器發(fā)送器的關(guān)系。應(yīng)當(dāng)注意的是:這些關(guān)系不是持久的,只由當(dāng)時(shí)數(shù)據(jù)傳輸?shù)姆较驔Q定。傳輸數(shù)據(jù)的過程如下:

1)、假設(shè)微控制器A 要發(fā)送信息到微控制器B:

? 微控制器A(主機(jī))尋址微控制器B(從機(jī))

? 微控制器A(主機(jī)—發(fā)送器)發(fā)送數(shù)據(jù)到微控制器B(從機(jī)—接收器)

? 微控制器A 終止傳輸

2)、如果微控制器A 想從微控制器B 接收信息:

? 微控制器A(主機(jī))尋址微控制器B(從機(jī))

? 微控制器A 主機(jī)接收器從微控制器B 從機(jī)發(fā)送器接收數(shù)據(jù)

? 微控制器A 終止傳輸

甚至在這種情況下,主機(jī)(微控制器A)也產(chǎn)生定時(shí)而且終止傳輸。

連接多于一個(gè)微控制器到I2C總線的可能性意味著超過一個(gè)主機(jī)可以同時(shí)嘗試初始化傳輸數(shù)據(jù)。為了避免由此產(chǎn)生混亂,發(fā)展出一個(gè)仲裁過程。它依靠線與連接所有I2C總線接口到I2C總線。

如果兩個(gè)或多個(gè)主機(jī)嘗試發(fā)送信息到總線,在其他主機(jī)都產(chǎn)生“0 ”的情況下首先產(chǎn)生一個(gè)“1” 的主機(jī)將丟失仲裁。仲裁時(shí)的時(shí)鐘信號是用線與連接到SCL線的主機(jī)產(chǎn)生的時(shí)鐘的同步結(jié)合。

圖2 使用兩個(gè)微控制器的I2C總線配置舉例

在I2C總線上產(chǎn)生時(shí)鐘信號通常是主機(jī)器件的責(zé)任;當(dāng)在總線上傳輸數(shù)據(jù)時(shí),每個(gè)主機(jī)產(chǎn)生自己的時(shí)鐘信號。主機(jī)發(fā)出的總線時(shí)鐘信號只有在以下的情況才能被改變:慢速的從機(jī)器件控制時(shí)鐘線并延長時(shí)鐘信號,或者在發(fā)生仲裁時(shí)被另一個(gè)主機(jī)改變。

3、總體特征

SDA 和SCL 都是雙向線路,都通過一個(gè)電流源或上拉電阻連接到正的電源電壓(見圖3)當(dāng)總線空閑時(shí),這兩條線路都是高電平。連接到總線的器件輸出級必須是漏極開路或集電極開路才能執(zhí)行線與的功能。I2C總線上數(shù)據(jù)的傳輸速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s, 在快速模式下可達(dá)400kbit/s, 在高速模式下可達(dá)3.4Mbit/s。 連接到總線的接口數(shù)量只由總線電容是400pF 的限制決定。

圖3 標(biāo)準(zhǔn)模式器件和快速模式器件連接到I2C 總線

4、位傳輸

由于連接到I2C總線的器件有不同種類的工藝(CMOS、NMOS、雙極性),邏輯“0”(低)和“1”(高)的電平不是固定的,它由VDD 的相關(guān)電平?jīng)Q定。每傳輸一個(gè)數(shù)據(jù)位就產(chǎn)生一個(gè)時(shí)鐘脈沖。

4.1 數(shù)據(jù)的有效性

SDA 線上的數(shù)據(jù)必須在時(shí)鐘的高電平周期保持穩(wěn)定。數(shù)據(jù)線的高或低電平狀態(tài)只有在SCL 線的時(shí)鐘信號是低電平時(shí)才能改變(見圖4)。

圖4 I2C總線的位傳輸

4.2 起始和停止條件

在I2C總線中,唯一出現(xiàn)的是被定義為起始(S)和停止(P)條件(見圖5) 的情況。

其中一種情況是在SCL 線是高電平時(shí),SDA 線從高電平向低電平切換表示起始條件

當(dāng)SCL 是高電平時(shí),SDA 線由低電平向高電平切換表示停止條件。

起始和停止條件一般由主機(jī)產(chǎn)生??偩€在起始條件后被認(rèn)為處于忙的狀態(tài)。在停止條件的某段時(shí)間后,總線被認(rèn)為再次處于空閑狀態(tài)。

如果產(chǎn)生重復(fù)起始(Sr) 條件而不產(chǎn)生停止條件,總線會(huì)一直處于忙的狀態(tài)。此時(shí)的起始條件(S)和重復(fù)起始(Sr) 條件在功能上是一樣的(見圖10)。 因此在本文檔的剩余部分,符號S 將作為一個(gè)通用的術(shù)語既表示起始條件又表示重復(fù)起始條件,除非有特別聲明的Sr。

如果連接到總線的器件合并了必要的接口硬件,那么用它們檢測起始和停止條件十分簡便。但是,沒有這種接口的微控制器在每個(gè)時(shí)鐘周期至少要采樣SDA 線兩次來判別有沒有發(fā)生電平切換。

圖5 起始和停止條件

5、傳輸數(shù)據(jù)

5.1 字節(jié)格式

發(fā)送到SDA 線上的每個(gè)字節(jié)必須為8 位。每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制。每個(gè)字節(jié)后必須跟一個(gè)響應(yīng)位。首先傳輸?shù)氖菙?shù)據(jù)的最高位(MSB)( 見圖6)。 如果從機(jī)要完成一些其他功能后(例如一個(gè)內(nèi)部中斷服務(wù)程序)才能接收或發(fā)送下一個(gè)完整的數(shù)據(jù)字節(jié),可以使時(shí)鐘線SCL 保持低電平迫使主機(jī)進(jìn)入等待狀態(tài)。當(dāng)從機(jī)準(zhǔn)備好接收下一個(gè)數(shù)據(jù)字節(jié)并釋放時(shí)鐘線SCL 后,數(shù)據(jù)傳輸繼續(xù)。

在一些情況下,可以用與I2C 總線格式不一樣的格式(例如兼容CBUS 的器件)。甚至在傳輸一個(gè)字節(jié)時(shí),用這樣的地址起始的報(bào)文可以通過產(chǎn)生停止條件來終止。此時(shí)不會(huì)產(chǎn)生響應(yīng)。

5.2 響應(yīng)

數(shù)據(jù)傳輸必須帶響應(yīng)。相關(guān)的響應(yīng)時(shí)鐘脈沖由主機(jī)產(chǎn)生。在響應(yīng)的時(shí)鐘脈沖期間,發(fā)送器釋放SDA 線(高)。

在響應(yīng)的時(shí)鐘脈沖期間,接收器必須將SDA 線拉,低使它在這個(gè)時(shí)鐘脈沖的高電平期間保持穩(wěn)定的低電平(見圖7)。 當(dāng)然,必須考慮建立和保持時(shí)間。

通常,被尋址的接收器在接收到的每個(gè)字節(jié)后,除了用CBUS 地址開頭的報(bào)文,必須產(chǎn)生一個(gè)響應(yīng)。

當(dāng)從機(jī)不能響應(yīng)從機(jī)地址時(shí)(例如它正在執(zhí)行一些實(shí)時(shí)函數(shù)不能接收或發(fā)送),從機(jī)必須使數(shù)據(jù)線保持高電平。主機(jī)然后產(chǎn)生一個(gè)停止條件終止傳輸或者產(chǎn)生重復(fù)起始條件開始新的傳輸。

如果從機(jī)接收器響應(yīng)了從機(jī)地址但是在傳輸了一段時(shí)間后不能接收更多數(shù)據(jù)字節(jié),主機(jī)必須再一次終止傳輸。這個(gè)情況用從機(jī)在第一個(gè)字節(jié)后沒有產(chǎn)生響應(yīng)來表示。從機(jī)使數(shù)據(jù)線保持高電平,主機(jī)產(chǎn)生一個(gè)停止或重復(fù)起始條件。

如果傳輸中有主機(jī)接收器,它必須通過在從機(jī)不產(chǎn)生時(shí)鐘的最后一個(gè)字節(jié)不產(chǎn)生一個(gè)響應(yīng),向從機(jī)發(fā)送器通知數(shù)據(jù)結(jié)束。從機(jī)發(fā)送器必須釋放數(shù)據(jù)線,允許主機(jī)產(chǎn)生一個(gè)停止或重復(fù)起始條件。

圖6 I2C 總線的數(shù)據(jù)傳輸

6、仲裁和時(shí)鐘發(fā)生

6.1 同步

所有主機(jī)在SCL 線上產(chǎn)生它們自己的時(shí)鐘來傳輸I2C總線上的報(bào)文。數(shù)據(jù)只在時(shí)鐘的高電平周期有效。因此,需要一個(gè)確定的時(shí)鐘進(jìn)行逐位仲裁。

時(shí)鐘同步通過線與連接I2C接口到SCL 線來執(zhí)行。這就是說:SCL 線的高到低切換會(huì)使器件開始數(shù)它們的低電平周期,而且一旦器件的時(shí)鐘變低電平,它會(huì)使SCL 線保持這種狀態(tài)直到到達(dá)時(shí)鐘的高電平(見圖8)。但是,如果另一個(gè)時(shí)鐘仍處于低電平周期,這個(gè)時(shí)鐘的低到高切換不會(huì)改變SCL 線的狀態(tài)。因此,SCL 線被有最長低電平周期的器件保持低電平。此時(shí),低電平周期短的器件會(huì)進(jìn)入高電平的等待狀態(tài)。

圖8 仲裁過程中的時(shí)鐘同步

當(dāng)所有有關(guān)的器件數(shù)完了它們的低電平周期后,時(shí)鐘線被釋放并變成高電平。之后,器件時(shí)鐘和SCL線的狀態(tài)沒有差別。而且所有器件會(huì)開始數(shù)它們的高電平周期。首先完成高電平周期的器件會(huì)再次將SCL線拉低。

這樣,產(chǎn)生的同步SCL 時(shí)鐘的低電平周期由低電平時(shí)鐘周期最長的器件決定,而高電平周期由高電平時(shí)鐘周期最短的器件決定。

6.2 仲裁

主機(jī)只能在總線空閑的時(shí)侯啟動(dòng)傳輸。兩個(gè)或多個(gè)主機(jī)可能在起始條件的最小持續(xù)時(shí)間(tHD; STA) 內(nèi)產(chǎn)生一個(gè)起始條件,結(jié)果在總線上產(chǎn)生一個(gè)規(guī)定的起始條件。

當(dāng)SCL 線是高電平時(shí),仲裁在SDA 線發(fā)生;這樣,在其他主機(jī)發(fā)送低電平時(shí),發(fā)送高電平的主機(jī)將斷開它的數(shù)據(jù)輸出級,因?yàn)榭偩€上的電平與它自己的電平不相同。

仲裁可以持續(xù)多位。它的第一個(gè)階段是比較地址位。如果每個(gè)主機(jī)都嘗試尋址相同的器件,仲裁會(huì)繼續(xù)比較數(shù)據(jù)位(如果是主機(jī)—發(fā)送器),或者比較響應(yīng)位(如果是主機(jī)—接收器)。因?yàn)镮2C 總線的地址和數(shù)據(jù)信息由贏得仲裁的主機(jī)決定,在仲裁過程中不會(huì)丟失信息。

丟失仲裁的主機(jī)可以產(chǎn)生時(shí)鐘脈沖直到丟失仲裁的該字節(jié)末尾。

由于Hs 模式的主機(jī)有一個(gè)唯一的8位主機(jī)碼,因此一般在第一個(gè)字節(jié)就可以結(jié)束仲裁。

如果主機(jī)也結(jié)合了從機(jī)功能,而且在尋址階段丟失仲裁,它很可能就是贏得仲裁的主機(jī)在尋址的器件。因此,丟失仲裁的主機(jī)必須立即切換到它的從機(jī)模式。

圖9 顯示了兩個(gè)主機(jī)的仲裁過程。當(dāng)然,可能包含更多的內(nèi)容(由連接到總線的主機(jī)數(shù)量決定)。此時(shí),產(chǎn)生DATA1 的主機(jī)的內(nèi)部數(shù)據(jù)電平與SDA 線的實(shí)際電平有一些差別,如果關(guān)斷數(shù)據(jù)輸出,這就意味著總線連接了一個(gè)高輸出電平。這不會(huì)影響由贏得仲裁的主機(jī)初始化的數(shù)據(jù)傳輸。

圖9 兩個(gè)主機(jī)的仲裁過程

由于I2C 總線的控制只由地址或主機(jī)碼以及競爭主機(jī)發(fā)送的數(shù)據(jù)決定,沒有中央主機(jī),總線也沒有任何定制的優(yōu)先權(quán)。

必須特別注意的是:在串行傳輸時(shí),當(dāng)重復(fù)起始條件或停止條件發(fā)送到I2C 總線的時(shí)侯,仲裁過程仍在進(jìn)行。如果可能產(chǎn)生這樣的情況,有關(guān)的主機(jī)必須在幀格式相同位置發(fā)送這個(gè)重復(fù)起始條件或停止條件。也就是說,仲裁在不能下面情況之間進(jìn)行:

? 重復(fù)起始條件和數(shù)據(jù)位

? 停止條件和數(shù)據(jù)位

? 重復(fù)起始條件和停止條件

從機(jī)不被卷入仲裁過程。

6.3 用時(shí)鐘同步機(jī)制作為握手

時(shí)鐘同步機(jī)制除了在仲裁過程中使用外,還可以用于使能接收器處理字節(jié)級或位級的快速數(shù)據(jù)傳輸。

在字節(jié)級的快速傳輸中,器件可以快速接收數(shù)據(jù)字節(jié),但需要更多時(shí)間保存接收到的字節(jié)或準(zhǔn)備另一個(gè)要發(fā)送的字節(jié)。然后,從機(jī)以一種握手過程(見圖6)在接收和響應(yīng)一個(gè)字節(jié)后使SCL 線保持低電平,迫使主機(jī)進(jìn)入等待狀態(tài),直到從機(jī)準(zhǔn)備好下一個(gè)要傳輸?shù)淖止?jié)。

在位級的快速傳輸中,器件(例如對I2C總線有或沒有限制的微控制器)可以通過延長每個(gè)時(shí)鐘的低電平周期減慢總線時(shí)鐘。從而,任何主機(jī)的速度都可以適配這個(gè)器件的內(nèi)部操作速率。

在Hs 模式中,握手的功能只能在字節(jié)級使用。

7、7 位的地址格式

數(shù)據(jù)的傳輸遵循圖10 所示的格式。在起始條件(S) 后,發(fā)送了一個(gè)從機(jī)地址。這個(gè)地址共有7 位,緊接著的第8 位是數(shù)據(jù)方向位(R/W)—“0”表示發(fā)送(寫),“1”表示請求數(shù)據(jù)(讀)。數(shù)據(jù)傳輸一般由主機(jī)產(chǎn)生的停止位(P) 終止。但是,如果主機(jī)仍希望在總線上通訊,它可以產(chǎn)生重復(fù)起始條件(Sr)和尋址另一個(gè)從機(jī),而不是首先產(chǎn)生一個(gè)停止條件。在這種傳輸中,可能有不同的讀/寫格式結(jié)合。

圖10 完整的數(shù)據(jù)傳輸

可能的數(shù)據(jù)傳輸格式有:

? 主機(jī)—發(fā)送器發(fā)送到從機(jī)—接收器。傳輸?shù)姆较虿粫?huì)改變(見圖11)。

? 在第一個(gè)字節(jié)后,主機(jī)立即讀從機(jī)(見圖12)。 在第一次響應(yīng)時(shí),主機(jī)—發(fā)送器變成主機(jī)—接收器,從機(jī)—接收器變成從機(jī)—發(fā)送器。第一次響應(yīng)仍由從機(jī)產(chǎn)生。之前發(fā)送了一個(gè)不響應(yīng)信號(A)的主機(jī)產(chǎn)生停止條件。

? 復(fù)合格式(見圖13)傳輸改變方向的時(shí)侯,起始條件和從機(jī)地址都會(huì)被重復(fù)。但R/W 位取反。如果主機(jī)接收器發(fā)送一個(gè)重復(fù)起始條件,它之前應(yīng)該發(fā)送了一個(gè)不響應(yīng)信號(A)。

注意:

1 )、復(fù)合格式可以用于例如控制一個(gè)串行存儲(chǔ)器。在第一個(gè)數(shù)據(jù)字節(jié)期間,要寫內(nèi)部存儲(chǔ)器的位置。在重復(fù)起始條件和從機(jī)地址后,數(shù)據(jù)可被傳輸。

2) 、自動(dòng)增加或減少之前訪問的存儲(chǔ)器位置等所有決定都由器件的設(shè)計(jì)者決定。

3 )、每個(gè)字節(jié)都跟著一個(gè)響應(yīng)位,在序列中用A模塊表示。

4 )、兼容I2C總線的器件在接收到起始或重復(fù)起始條件時(shí)必須復(fù)位它們的總線邏輯,甚至在這些起始條件沒有根據(jù)正確的格式放置,它們也都期望發(fā)送從機(jī)地址。

5 )、起始條件后面立即跟著一個(gè)停止條件(報(bào)文為空)是一個(gè)不合法的格式。

圖11 主機(jī)—發(fā)送器用7 位地址尋址從機(jī)接收器,傳輸方向不變
圖12 在第一個(gè)字節(jié)后主機(jī)立即讀從機(jī)
圖13 復(fù)合格式

8、7 位尋址

I2C總線的尋址過程是通常在起始條件后的第一個(gè)字節(jié)決定了主機(jī)選擇哪一個(gè)從機(jī)。例外的情況是可以尋址所有器件的“廣播呼叫”地址。使用這個(gè)地址時(shí),理論上所有器件都會(huì)發(fā)出一個(gè)響應(yīng)。但是,也可以使器件忽略這個(gè)地址。廣播呼叫地址的第二個(gè)字節(jié)定義了要采取的行動(dòng)。

8.1 第一個(gè)字節(jié)的位定義

第一個(gè)字節(jié)的頭7 位組成了從機(jī)地址(見圖14)。 最低位(LSB) 是第8 位。它決定了報(bào)文的方向。第一個(gè)字節(jié)的最低位是“0”表示主機(jī)會(huì)寫信息到被選中的從機(jī)。“1”表示主機(jī)會(huì)向從機(jī)讀信息。

當(dāng)發(fā)送了一個(gè)地址后,系統(tǒng)中的每個(gè)器件都在起始條件后將頭7 位與它自己的地址比較。如果一樣,器件會(huì)任務(wù)它被主機(jī)尋址,至于是從機(jī)—接收器還是從機(jī)—發(fā)送器都由R/W 位決定。

圖14 起始條件后的第一個(gè)字節(jié)

從機(jī)地址由一個(gè)固定和一個(gè)可編程的部分構(gòu)成。由于很可能在一個(gè)系統(tǒng)中有幾個(gè)同樣的器件,從機(jī)地址的可編程部分使最大數(shù)量的這些器件可以連接到I2C總線上。器件可編程地址位的數(shù)量由它可使用的管腳決定。例如,如果器件有4 個(gè)固定的和3 個(gè)可編程的地址位,那么相同的總線上共可以連接8 個(gè)相同的器件。

I2C總線委員會(huì)協(xié)調(diào)I2C地址的分配。

注:

1)、 沒有器件允許在接收到起始字節(jié)后響應(yīng)。

2)、 CBUS 地址已被保留使可以在相同的系統(tǒng)內(nèi)部混合兼容CBUS 和兼容I2C總線的器件。接收到這個(gè)地址時(shí),兼容I2C總線的器件不能響應(yīng)。

3)、 保留給不同總線格式的地址包括使能I2C和其他協(xié)議混合。只有可以在這種格式和協(xié)議下工作兼容I2C總線的器件才能響應(yīng)這個(gè)地址。

8.1.1 廣播呼叫地址

廣播呼叫地址是用來尋址連接到I2C 總線上的每個(gè)器件。但是,如果器件在廣播呼叫結(jié)構(gòu)中不需要任何數(shù)據(jù),它可以通過不發(fā)出響應(yīng)來忽略這個(gè)地址。如果器件要求從廣播呼叫地址得到數(shù)據(jù),它會(huì)響應(yīng)這個(gè)地址并作為從機(jī)—接收器運(yùn)轉(zhuǎn)。第二個(gè)和接下來的字節(jié)會(huì)被能處理這些數(shù)據(jù)的每個(gè)從機(jī)—接收器響應(yīng)。廣播呼叫地址的含意通常在第二個(gè)字節(jié)說明(見圖15)。

這里要考慮兩種情況:

? 當(dāng)最低位B 是“0”。

? 當(dāng)最低位B 是“1”。

圖15 廣播呼叫地址格式

當(dāng)位B 是“0”時(shí),第二個(gè)字節(jié)的定義如下:

? 00000110 (H ‘06’)。 通過硬件寫入和復(fù)位從機(jī)地址的可編程部分。接收到這個(gè)兩字節(jié)序列時(shí),所有打算響應(yīng)這個(gè)廣播呼叫地址的器件將復(fù)位并接受它們地址的可編程部分。要采取預(yù)防措施確保器件不會(huì)在加上電源電壓后將SDA 或SCL 線拉低,因?yàn)檫@些低電平會(huì)阻塞總線。

? 00000100 (H ‘04’)。通過硬件寫從機(jī)地址的可編程部分。所有通過硬件定義地址可編程部分(和響應(yīng)廣播呼叫地址)的器件會(huì)在接收這兩個(gè)字節(jié)序列時(shí)鎖存可編程的部分。器件不會(huì)復(fù)位。

? 00000000 (H ‘00’)。這個(gè)代碼不允許在第二個(gè)字節(jié)使用。

編程過程的順序請參考相應(yīng)器件的數(shù)據(jù)表。

剩下的代碼沒有被確定,器件必須忽略它們。

當(dāng)位B 是“1”時(shí),這個(gè)兩字節(jié)序列是一個(gè)“硬件廣播呼叫”。即序列由一個(gè)硬件主機(jī)器件發(fā)送,例如鍵盤掃描器,它們不能編程來發(fā)送一個(gè)期望的從機(jī)地址。由于硬件主機(jī)預(yù)先不知道報(bào)文要傳輸給哪個(gè)器件,它只能產(chǎn)生這個(gè)硬件廣播呼叫和它自己的地址——讓系統(tǒng)識(shí)別它(見圖16)。

第二個(gè)字節(jié)中剩下的7 位是硬件主機(jī)的地址。這個(gè)地址被一個(gè)連接到總線的智能器件識(shí)別(例如:微控制器并指引硬件主機(jī)的信息。如果硬件主機(jī)也可以作為從機(jī),它的從機(jī)地址和主機(jī)地址一樣。

圖16 硬件主機(jī)發(fā)送器的數(shù)據(jù)傳輸

在一些系統(tǒng)中,可以選擇在系統(tǒng)復(fù)位后在從機(jī)—接收器模式中設(shè)置硬件主機(jī)發(fā)送器。這樣,系統(tǒng)的配置主機(jī)可以告訴硬件主機(jī)發(fā)送器(現(xiàn)在處于從機(jī)接收器模式)數(shù)據(jù)必須發(fā)送到哪個(gè)地址(見圖17)。 這個(gè)編程過程后,硬件主機(jī)仍處于主機(jī)—發(fā)送器模式。

8.1.2 起始字節(jié)

微控制器可以用兩種方法連接到I2C總線。有片上硬件I2C總線接口的微控制器可被編程為只由總線的請求中斷。當(dāng)器件沒有這種接口時(shí),它必須經(jīng)常通過軟件監(jiān)控總線。很顯然,微控制器監(jiān)控或查詢總線的次數(shù)越多,用于執(zhí)行自己功能的時(shí)間越少。

因此,快速硬件器件和相關(guān)的依靠查詢的慢速微控制器有速度差別。

此時(shí),數(shù)據(jù)傳輸前應(yīng)有一個(gè)比正常時(shí)間長的起始過程(見圖18)。 起始過程包括:

? 起始條件(S)

? 起始字節(jié)(00000001)

? 響應(yīng)時(shí)鐘脈沖(ACK)

? 重復(fù)起始條件(Sr)

圖17 由可以直接轉(zhuǎn)儲(chǔ)數(shù)據(jù)到從機(jī)器件的硬件—發(fā)送器 (a)配置主機(jī)發(fā)送轉(zhuǎn)儲(chǔ)地址到硬件主機(jī) (b)硬件主機(jī)轉(zhuǎn)儲(chǔ)數(shù)據(jù)到選中的從機(jī)
圖18 起始字節(jié)過程

在要求總線訪問的主機(jī)發(fā)送起始條件S 后,發(fā)送起始字節(jié)(00000001)。因此,另一個(gè)微控制器可以采樣以低采樣速率采樣SDA 線,直到在啟動(dòng)字節(jié)檢測到7 個(gè)0。在SDA 線檢測到這個(gè)低電平后,微控制器切換到一個(gè)更高的采樣速率尋找用于同步的重復(fù)起始條件Sr。

接收到重復(fù)起始條件Sr 后硬件接收器會(huì)復(fù)位,從而忽略了起始字節(jié)。

在起始字節(jié)后產(chǎn)生一個(gè)相關(guān)的響應(yīng)時(shí)鐘脈沖。這只在遵守總線的字節(jié)處理格式時(shí)出現(xiàn)。沒有器件允許響應(yīng)起始字節(jié)。

8.1.3 CBUS 的兼容性

CBUS 接收器可以連接到標(biāo)準(zhǔn)模式的I2C總線。但是,必須連接第三條叫DLEN 的線,而且要省略響應(yīng)位。通常,I2C的傳輸是8 位的字節(jié)序列;兼容CBUS 的器件有不同的格式。

在混合的總線結(jié)構(gòu)中,I2C總線器件必須不能響應(yīng)CBUS 的報(bào)文。因此,保留了一個(gè)兼容I2C總線器件不會(huì)相應(yīng)的特殊CBUS 地址(0000001X)。發(fā)送CBUS 地址后,DLEN 線被激活,發(fā)送CBUS 格式的報(bào)文(見圖19)。在停止條件后,所有器件再次準(zhǔn)備好接收數(shù)據(jù)。

主機(jī)—發(fā)送器可以在發(fā)送CBUS 地址后發(fā)送CBUS 格式。傳輸由能被所有器件識(shí)別的停止條件結(jié)束。

注意:如果已知CBUS 配置而且不能預(yù)見CBUS 兼容器件的擴(kuò)展,設(shè)計(jì)者允許根據(jù)所用器件的特殊要求調(diào)整保持時(shí)間。

圖19 CBUS 發(fā)送器/接收器的數(shù)據(jù)傳輸格式

9、標(biāo)準(zhǔn)模式I2C總線規(guī)范的擴(kuò)展

標(biāo)準(zhǔn)模式I2C總線規(guī)范在80 年代的初期已經(jīng)存在,它規(guī)定數(shù)據(jù)傳輸速率可高達(dá)100kbit/s 而且7 位尋址。這個(gè)概念在普及中迅速成長,今天它已經(jīng)作為一個(gè)標(biāo)準(zhǔn)被全世界接受,而且Philips Semiconductors和其他供應(yīng)商提供了幾百種不同的兼容IC。為了符合更高速度的要求以及制造更多可使用的從機(jī)地址給數(shù)量不斷增長的新器件,標(biāo)準(zhǔn)模式I2C總線規(guī)范不斷升級,到今天它提供了以下的擴(kuò)展:

? 快速模式,位速率高達(dá)400kbit/s。

? 高速模式(Hs 模式),位速率高達(dá)3.4Mbit/s。

? 10 位尋址,允許使用高達(dá)1024 個(gè)額外的從機(jī)地址。

擴(kuò)展I2C總線規(guī)范主要有兩個(gè)原因:

? 現(xiàn)在很多應(yīng)用需要傳輸大量的串行數(shù)據(jù),要求的位速率遠(yuǎn)遠(yuǎn)超過100kbit/s (標(biāo)準(zhǔn)模式),或者甚至是400kbit/s (快速模式)。半導(dǎo)體技術(shù)持續(xù)改進(jìn)的結(jié)果使I2C 總線器件現(xiàn)在可以使用高達(dá)3.4Mbit/s (Hs 模式)的位速率,而且接口電路的生產(chǎn)成本沒有任何明顯的提高。

? 由于使用7 位尋址策略的大多數(shù)112 地址能被立即分配,很顯然要求更多地址結(jié)合來防止為新器件分配從機(jī)地址的問題。這個(gè)問題可以用新的10 位尋址策略解決它允許可使用的地址成10 倍增長。

帶有快速或Hs 模式I2C總線接口的新從機(jī)器件可以有7 位或10 位的從機(jī)地址。如果可能的話,首選7 位地址,因?yàn)樗亲畋阋说挠布鉀Q方案,而且報(bào)文長度最短。有7 位和10 位地址的器件可以在相同的I2C總線系統(tǒng)中混合使用。不需要考慮它是F/S 模式還是Hs 模式的系統(tǒng)?,F(xiàn)有的和未來的主機(jī)都能產(chǎn)生7位或10 位的地址。

10、快速模式

已經(jīng)在標(biāo)準(zhǔn)模式I2C總線規(guī)范提出的協(xié)議、格式、邏輯電平和SDA 以及SCL 線的最大電容負(fù)載在快速模式I2C總線規(guī)范都沒有修改。帶I2C總線接口的新器件必須至少符合快速模式或Hs 模式規(guī)范的最小要求。

快速模式器件可以在400kbit/s 下接收和發(fā)送。最小要求是:它們可以和400kbit/s 傳輸同步;可以延長SCL 信號的低電平周期來減慢傳輸??焖倌J狡骷枷蛳录嫒?,可以和標(biāo)準(zhǔn)模式器件在0~100kbit/s 的I2C總線系統(tǒng)通訊。但是,由于標(biāo)準(zhǔn)模式器件不向上兼容,所以不能在快速模式I2C總線系統(tǒng)中工作,因?yàn)樗鼈儾荒芨线@么快的傳輸速率因而會(huì)產(chǎn)生不可預(yù)料的狀態(tài)。

快速模式I2C總線規(guī)范與標(biāo)準(zhǔn)模式相比有以下額外的特征:

? 最大位速率增加到400kbit/s。

? 調(diào)整了串行數(shù)據(jù)(SDA)和串行時(shí)鐘(SCL)信號的時(shí)序。沒有必要與其他總線系統(tǒng)例如:CBUS兼容,它們不能在增加的位速率下工作。

? 快速模式器件的輸入有抑制毛刺的功能,SDA 和SCL 輸入有Schmitt 觸發(fā)器。

? 快速模式器件的輸出緩沖器對SDA 和SCL 信號的下降沿有斜率控制功能。

? 如果快速模式器件的電源電壓被關(guān)斷,SDA 和SCL 的I/O 管腳必須懸空,不能阻塞總線。

? 連接到總線的外部上拉器件必須調(diào)整以適應(yīng)快速模式I2C總線更短的最大允許上升時(shí)間。對于負(fù)載最大是200pF 的總線,每條總線的上拉器件可以是一個(gè)電阻;對于負(fù)載在200pF~400pF 之間的總線,上拉器件可以是一個(gè)電流源(最大值3mA)或者是一個(gè)開關(guān)電阻電路(見圖43)。

11、Hs 模式

高速模式(Hs 模式)器件對I2C總線的傳輸速度有具大的突破。Hs 模式器件可以在高達(dá)3.4Mbit/s 的位速率下傳輸信息,而且保持完全向下兼容快速模式或標(biāo)準(zhǔn)模式(F/S 模式)器件,也就是說它們可以在一個(gè)速度混合的總線系統(tǒng)中雙向通訊。Hs 模式傳輸除了不執(zhí)行仲裁和時(shí)鐘同步外,與F/S 模式系統(tǒng)有相同的串行總線協(xié)議和數(shù)據(jù)格式。雖然Hs 模式器件是首選的器件(它們可以在大量的應(yīng)用中使用),但是新器件有沒有快速或Hs 模式I2C總線接口由應(yīng)用決定。

11.1 高速傳輸

要獲得位速率高達(dá)3.4Mbit/s 的傳輸,對正常的I2C總線規(guī)范要作出以下的改進(jìn):

? Hs 模式主機(jī)器件有一個(gè)SDAH 信號的開漏輸出緩沖器和一個(gè)在SCLH 輸出的開漏極下拉和電流源上拉電路。這個(gè)電流源電路縮短了SCLH 信號的上升時(shí)間。任何時(shí)侯在Hs 模式,只有一個(gè)主機(jī)的電流源有效。

? 在多主機(jī)系統(tǒng)的Hs 模式中,不執(zhí)行仲裁和時(shí)鐘同步,以加速位處理能力。仲裁過程一般在前面用F/S 模式傳輸主機(jī)碼后結(jié)束。

? Hs 模式主機(jī)器件以高電平和低電平是1:2 的比率產(chǎn)生一個(gè)串行時(shí)鐘信號。解除了建立和保持時(shí)間的時(shí)序要求。

? 還可以選擇Hs 模式器件有內(nèi)建的電橋。在Hs 模式傳輸中,Hs 模式器件的高速數(shù)據(jù)(SDAH)和高速串行時(shí)鐘(SCLH)線通過這個(gè)電橋與F/S 模式器件的SDA 和SCL 線分隔開來。減輕了SDAH 和SCLH 線的電容負(fù)載,使上升和下降時(shí)間更快。

? Hs 模式從機(jī)器件與F/S 從機(jī)器件的唯一差別是它們工作的速度。Hs 模式從機(jī)在SCLH 和SDAH輸出有開漏輸出的緩沖器。SCLH 管腳可選的下拉晶體管可以用于拉長SCLH 信號的低電平,但只允許在Hs 模式傳輸?shù)捻憫?yīng)位后進(jìn)行。

? Hs 模式器件的輸出可以抑制毛刺,而且SDAH 和SCLH 輸出有一個(gè)Schmitt 觸發(fā)器。

? Hs 模式器件的輸出緩沖器對SDAH 和SCLH 信號的下降沿有斜率控制功能。

圖20 是只有Hs 模式器件的系統(tǒng)的物理I2C總線配置。主機(jī)器件的SDA 和SCL 管腳只在速度混合的總線系統(tǒng)中使用,在只有Hs 模式的系統(tǒng)中不需要連接。此時(shí),這些管腳有其他功能。

可選的串連電阻Rs 保護(hù)I2C總線器件的I/O 級,防止總線上高電壓的毛刺影響I/O 級并將振蕩和干擾減到最小。

上拉電阻Rp 使SDAH 和SCLH 線在總線空閑的時(shí)侯保持高電平,并確保信號在要求的上升時(shí)間內(nèi)從低電平變成高電平。對于電容負(fù)載很高(>100pF)的總線線路,為了符合上升時(shí)間的要求,可以用外部上拉電流源代替Rp。 除非跟著一個(gè)響應(yīng)位,Hs 模式傳輸?shù)腟CLH 時(shí)鐘脈沖上升時(shí)間被激活主機(jī)的內(nèi)部電流源上拉電路MCS 縮短。

圖20 只有Hs 模式器件的I2C總線配置

11.2 Hs 模式的串行數(shù)據(jù)傳輸格式

Hs 模式的串行數(shù)據(jù)傳輸格式符合標(biāo)準(zhǔn)模式I2C總線規(guī)范。Hs 模式只能在下面的情況下(所有都在F/S模式)啟動(dòng):

1)、 起始條件(S)

2)、 8 位的主機(jī)碼(00001XXX)

3)、 不響應(yīng)位(A)

圖21 和22 詳細(xì)地顯示了這些情況。主機(jī)碼有兩個(gè)主要的功能:

? 它允許在F/S 模式速度下競爭主機(jī)之間仲裁和同步,結(jié)果得到一個(gè)獲勝的主機(jī)。

? 它表示Hs 模式傳輸?shù)拈_始。

Hs 主機(jī)碼是保留的8 位代碼,它不用于從機(jī)尋址或其他目的。而且,由于每個(gè)主機(jī)都有唯一的主機(jī)碼,I2C總線系統(tǒng)最多可以有8 個(gè)Hs 模式主機(jī)(主機(jī)碼0000 1000 應(yīng)保留作測試和診斷用)Hs 模式主機(jī)器件的主機(jī)碼是軟件可編程的,由系統(tǒng)設(shè)計(jì)者決定。

仲裁和時(shí)鐘同步只在獲勝主機(jī)仍然激活傳輸主機(jī)碼和不響應(yīng)位(A) 時(shí)發(fā)生。主機(jī)碼向其他器件表示開始Hs 模式傳輸,而且連接的器件必須符合Hs 模式規(guī)范。由于不允許器件響應(yīng)主機(jī)碼,主機(jī)碼后面應(yīng)跟著不響應(yīng)位(A)。

在不響應(yīng)位(A) 后,而且SCLH 線被上拉到高電平時(shí),激活的主機(jī)切換到Hs 模式并使能(在tH,見圖22) SCLH 信號的電流源上拉電路。由于另一個(gè)器件通過延長SCLH 信號的低電平周期可以拉長tH前的串行傳輸,當(dāng)所有器件釋放了SCLH 線而且SCLH 信號到達(dá)高電平時(shí),激活的主機(jī)使能它的電流源上拉電路,因此加速了SCLH 信號最后部分的上升時(shí)間。

然后,激活的主機(jī)發(fā)送一個(gè)重復(fù)起始條件(Sr) 接著是7 位從機(jī)地址(或者10 位從機(jī)地址)和R/W 位地址,并從選中的從機(jī)接收到一個(gè)響應(yīng)位(A)。

在重復(fù)起始條件和每個(gè)響應(yīng)位(A) 和不響應(yīng)位(A) 后,激活的主機(jī)禁能它的電流源上拉電路,使能其他器件通過延長SCLH 信號的低電平周期延長串行傳輸。當(dāng)所有器件釋放而且SCLH 信號到達(dá)高電平,激活的主機(jī)再次使能它的電流源上拉電路,加速SCLH 信號上升時(shí)間的最后部分。

在下一個(gè)重復(fù)起始條件(Sr) 后,數(shù)據(jù)傳輸仍處于Hs 模式,它只會(huì)在停止條件(P) 后返回F/S 模式。為了減少主機(jī)碼的額外開銷,主機(jī)可能連接由重復(fù)起始條件(Sr) 分隔的大量Hs 模式傳輸。

圖21 Hs 模式的數(shù)據(jù)傳輸格式
圖22 完整的Hs 模式傳輸

11.3 從F/S 模式切換到Hs 模式以及返回

復(fù)位和初始化后,Hs 模式器件必須處于快速模式(實(shí)際上是F/S 模式,因?yàn)榭焖倌J较蛳录嫒輼?biāo)準(zhǔn)模式)。每個(gè)Hs 模式器件可以從快速模式切換到Hs 模式以及相反,由I2C總線的串行傳輸控制。

在圖22 的時(shí)間t1 前,每個(gè)連接的器件都在快速模式下工作。時(shí)間t1 和tH 之間(任何器件都可以延長這個(gè)時(shí)間間隔),每個(gè)連接的器件必須識(shí)別“S 00001XXX A” 序列,而且要將內(nèi)部電路從快速模式設(shè)置切換到Hs 模式設(shè)置。時(shí)間t1 和tH 之間,連接的主機(jī)和從機(jī)器件由下面的行為執(zhí)行切換。

激活(獲勝)的主機(jī):

1)、 根據(jù)Hs 模式的毛刺抑制要求調(diào)整SDAH 和SCLH 的輸入濾波器。

2)、 根據(jù)Hs 模式的要求調(diào)整建立和保持時(shí)間。

3)、 根據(jù)Hs 模式的要求調(diào)整SDAH 和SCLH 輸出級的斜率控制。

4)、 要求在時(shí)間tH 后切換到Hs 模式位速率。

5)、 在時(shí)間tH 使能SCLH 輸出級的電流源上拉電路。

不激活或丟失仲裁的主機(jī):

1)、 根據(jù)Hs 模式的毛刺抑制要求調(diào)整SDAH 和SCLH 的輸入濾波器

2)、 當(dāng)總線再次空閑時(shí)等待檢測停止條件

所有從機(jī):

1)、 根據(jù)Hs 模式的毛刺抑制要求調(diào)整SDAH 和SCLH 的輸入濾波器

2)、 根據(jù)Hs 模式的要求調(diào)整建立和保持時(shí)間這個(gè)要求可能已被調(diào)整輸入濾波器滿足

3)、 如果有必要調(diào)整SDAH 輸出級的斜率控制。對于從機(jī)器件,斜率控制只能應(yīng)用到SDAH 輸出級;基于電路的容差,快速模式和Hs 模式的要求可能不用切換內(nèi)部電路就能滿足。

在圖22 的tFS 時(shí)間,每個(gè)連接的器件必須識(shí)別停止條件(P) 并在t1 時(shí)間前將內(nèi)部電路從Hs 模式設(shè)置切換回快速模式設(shè)置。這必須根據(jù)快速模式規(guī)范在表5 指出的最小總線空閑時(shí)間內(nèi)完成。

11.4 低速模式中的快速模式器件

Hs 模式器件完全向下兼容,可被連接到一個(gè)F/S 模式I2C 總線系統(tǒng)(見圖23)。由于在這種配置下不能發(fā)送主機(jī)代碼,所有Hs 模式主機(jī)器件處于F/S 模式,而且將它們的電流源禁能,用F/S 模式速度通訊。SDAH 和SCLH 管腳用于連接F/S 模式的總線系統(tǒng),允許Hs 主機(jī)器件的SDA 和SCL 管腳(如果存在)用于其他功能。

圖23 F/S 模式速度下的Hs 模式器件

11.5 串行總線系統(tǒng)的混合速度模式

如果系統(tǒng)結(jié)合了Hs 模式、快速模式和/或標(biāo)準(zhǔn)模式器件,可以用一個(gè)互連的電橋?qū)崿F(xiàn)在不同的器件之間有不同的位速率(見圖24 和25)。

電橋要求在適當(dāng)?shù)臅r(shí)間連接/斷開Hs 模式部分到從F/S 模式部分的連接。這個(gè)電橋包含電平轉(zhuǎn)換功能,允許電源電壓不同的器件互連。如果SDA 和SCL 管腳兼容5V ,例如VDD2 是5V 的F/S 模式器件可以連接到VDD1 是3V 或更小即VDD2 VDD1 的Hs 模式器件。電橋在Hs 模式的主機(jī)器件中,完全由串行信號SDAH、SCLH、SDA 和SCL 控制。這個(gè)電橋可以在任何IC 中作為自治電路執(zhí)行。

TR1、TR2 和TR3 是N 通道晶體管。TR1 和TR2 有傳輸門的功能,TR3 是一個(gè)開漏極的下拉級。如果TR1 或TR2 導(dǎo)通,它們在兩個(gè)方向上都傳輸?shù)碗娖?;另外,?dāng)漏極和源極都上升到高電平時(shí),在每個(gè)導(dǎo)通的晶體管漏極和源極之間是高阻態(tài)。在后面的情況中,晶體管將作為一個(gè)電平轉(zhuǎn)換器,SDAH 和SCLH將被上拉到VDD1,SDA 和SCL 將被上拉到VDD2。

在F/S 模式速度下,其中一個(gè)Hs 模式主機(jī)的電橋連接SDAH 和SCLH 線到相應(yīng)的SDA 和SCL 線,因此允許Hs 模式器件在較慢的速度下與F/S 模式器件通訊。所有連接的器件在整個(gè)F/S 模式傳輸中如第8章描述的進(jìn)行仲裁和同步。但是在Hs 模式傳輸中,電橋打開,將兩個(gè)總線部分分隔開來使Hs 模式器件之間以3.4Mbit/s 通訊。Hs 模式器件和F/S 模式器件之間的仲裁只在主機(jī)碼(00001XXX) 處執(zhí)行,一般由Hs 模式主機(jī)獲勝,因?yàn)闆]有從機(jī)地址用4 個(gè)0 開始。其他主機(jī)只有在發(fā)送保留的8 位代碼(00000XXX)時(shí)才能贏得仲裁。此時(shí),電橋保持關(guān)閉而且傳輸在F/S 模式中進(jìn)行。表3 給出了這種系統(tǒng)可能的通訊速度。

圖24 以Hs 模式和F/S 模式傳輸?shù)目偩€系統(tǒng)

11.5.1 在混合速度總線系統(tǒng)中的F/S 模式傳輸

圖24 顯示的橋路互連了相應(yīng)的串行總線線路,組成一個(gè)串行總線系統(tǒng)。由于不發(fā)送主機(jī)碼(00001XXX), 電流源上拉電路保持禁能而且所有輸出級都是開漏輸出。所有器件(包括Hs 模式器件)之間的通訊都根據(jù)F/S 模式I2C 總線規(guī)范的協(xié)議、格式、速度。

11.5.2 在混合速度總線系統(tǒng)中的Hs 模式傳輸

圖25 顯示了在F/S 模式速度下完整Hs 模式傳輸(包括起始條件、主機(jī)碼和不響應(yīng)位A )的時(shí)序圖盡管這個(gè)時(shí)序圖被分成兩個(gè)部分,但它應(yīng)被看作是一個(gè)時(shí)序圖,其中時(shí)間點(diǎn)tH 是兩個(gè)部分的公共點(diǎn)。

圖25 混合速度總線系統(tǒng)中完整的Hs 模式傳輸

主機(jī)碼被激活或非激活的主機(jī)電橋(見圖24) 識(shí)別出來。電橋執(zhí)行以下的動(dòng)作:

1)、在t1 和tH 之間(見圖25), 在晶體管TR3 關(guān)斷將SDA 線下拉到VSS 后,晶體管TR1?導(dǎo)通以分隔SDAH 和SDA 線。

2)、當(dāng)SCLH 和SCL 都是高電平時(shí)(圖25 的tH), 晶體管TR2?導(dǎo)通以分隔SCLH 和SCL 線。TR2必須在Sr 后SCLH 變低電平之前保持開路。

Hs 模式傳輸在tH 后用重復(fù)起始條件(Sr) 啟動(dòng)。在Hs 模式傳輸中,SCL 線保持高電平,SDA 線處于穩(wěn)定狀態(tài)的低電平,準(zhǔn)備好傳輸停止條件(P)。

在每個(gè)響應(yīng)(A) 或不響應(yīng)位后,激活的主機(jī)禁能它的電流源上拉電流。這就使其他器件可以通過延長SCLH 信號的低電平周期延遲串行傳輸。激活的主機(jī)在所有器件釋放而且SCLH 信號是高電平時(shí)再次使能它的電流源上拉電路,加速了SCLH 信號上升時(shí)間的最后部分。在不正常的情況下,F(xiàn)/S 模式器件可以在任何時(shí)侯下拉SCL 線至少1μs 來關(guān)閉電橋(TR1 和TR2 關(guān)斷,TR3 導(dǎo)通),例如從總線中止恢復(fù)。

Hs 模式用停止條件結(jié)束而且將總線系統(tǒng)返回到F/S 模式。當(dāng)在SDAH 檢測到(圖25 的tFS) 停止條件(P), 激活的主機(jī)禁能它的電流源MCS。 電橋也能識(shí)別這個(gè)停止條件,而且采取了以下的行動(dòng):

1)、晶體管TR2 在tFS 后關(guān)斷,使SCLH 和SCL 互連;此時(shí)兩條線路都是高電平。晶體管TR3 在tFS后導(dǎo)通,釋放SDA 線允許它被上拉電阻Rp 拉成高電平。這就是F/S 模式器件的停止條件。TR3的導(dǎo)通必須足夠快,確保停止條件和下一個(gè)最快的啟動(dòng)條件之間的總線空閑時(shí)間是依照快速模式的規(guī)范(見表5 的tBUF)。

2)、當(dāng)SDA 到達(dá)高電平(圖25 的t2), 晶體管TR1 關(guān)斷,使SDAH 和SDA 互連。(注意當(dāng)所有線路是高電平時(shí)才互連,防止總線線路的毛刺)。TR1 和TR2 必須在快速模式規(guī)范定義的最小總線空閑時(shí)間內(nèi)關(guān)斷(見表5 的tBUF)。

11.5.3 混合速度總線系統(tǒng)中電橋的時(shí)序要求

從圖25 可以看出電橋在t1、tH、tFS 處的行動(dòng)必須很快,不能影響SDAH 和SCLH 線。而且,電橋必須符合SDA 和SCL 線快速模式規(guī)范相關(guān)的時(shí)序要求。

12、10 位尋址

10 位尋址和7 位尋址兼容,而且可以結(jié)合使用。10 位尋址采用了保留的1111XXX 作為起始條件(S)或重復(fù)起始條件(Sr) 的后第一個(gè)字節(jié)的頭7 位。10 位尋址不會(huì)影響已有的7 位尋址。有7 位和10 位地址的器件可以連接到相同的I2C 總線,它們都能用于F/S 模式和Hs 模式系統(tǒng)。

盡管保留地址位1111XXX 有8 個(gè)可能的組合,但是只有4 個(gè)組合11110XX 用于10 位尋址。剩下的4個(gè)組合11111XX 保留給以后增強(qiáng)的I2C 總線。

12.1 頭兩個(gè)字節(jié)位的定義

10 位從機(jī)地址是由在起始條件(S) 或重復(fù)起始條件(Sr) 后的頭兩個(gè)字節(jié)組成。

第一個(gè)字節(jié)的頭7 位是11110XX 的組合,其中最后兩位(XX) 是10 位地址的兩個(gè)最高位(MSB);第一個(gè)字節(jié)的第8 位是R/W 位,決定了報(bào)文的方向。第一個(gè)字節(jié)的最低位是“0”表示主機(jī)將寫信息到選中的從機(jī)?!?” 表示主機(jī)將向從機(jī)讀信息。

如果R/W 位是“0”,則第二個(gè)字節(jié)是10 位從機(jī)地址剩下的8 位。如果R/W 位是“1”,則下一個(gè)字節(jié)是從機(jī)發(fā)送給主機(jī)的數(shù)據(jù)。

12.2 10 位尋址的格式

在有10 位尋址的傳輸中可能有不同的讀/寫格式組合??赡艿臄?shù)據(jù)傳輸格式有:

? 主機(jī)—發(fā)送器將10 位從機(jī)地址發(fā)送到從機(jī)—接收器。

傳輸?shù)姆较虿桓淖儯ㄒ妶D26)。 當(dāng)起始條件后有10 位地址時(shí),每個(gè)從機(jī)將從機(jī)地址第一個(gè)字節(jié)的頭7 位(11110XX) 與自己的地址比較,并測試看第8 位(R/W 方向位)是否為0。 此時(shí),很可能超過一個(gè)器件發(fā)現(xiàn)地址相同,并產(chǎn)生一個(gè)響應(yīng)(A1)。 所有發(fā)現(xiàn)地址相同的從機(jī)將從機(jī)地址第2個(gè)字節(jié)的8 位(XXXXXXXX) 與自己的地址比較,此時(shí)只有一個(gè)主機(jī)發(fā)現(xiàn)地址相同并產(chǎn)生一個(gè)響應(yīng)(A2)。 匹配的從機(jī)將保持被主機(jī)尋址,直到接收到停止條件(P) 或從機(jī)地址不同的重復(fù)起始條件(Sr)。

? 主機(jī)—接收器用10 位的從機(jī)地址讀從機(jī)—發(fā)送器。

傳輸方向在第2 個(gè)R/W 位改變(圖27)。 整個(gè)過程直到并包括響應(yīng)位A2 都與主機(jī)—發(fā)送器尋址從機(jī)—接收器的相同。在重復(fù)起始條件(Sr) 后,匹配的從機(jī)成員記得它之前被尋址。這個(gè)從機(jī)然后檢查Sr 后第一個(gè)字節(jié)的頭7 位是否和起始條件(S) 后的相同,并檢查第8 位(R/W) 是不是1。 如果匹配,從機(jī)會(huì)認(rèn)為它作為發(fā)送器被尋址,然后產(chǎn)生響應(yīng)A3。 從機(jī)—發(fā)送器保持尋址,直到接收到停止條件(P) 或從機(jī)地址不同的另一個(gè)重復(fù)起始條件(Sr)。 重復(fù)起始條件(Sr) 后,所有其他從機(jī)器件也用從機(jī)地址第一個(gè)字節(jié)的頭7 位(11110XX )與自己的地址比較,并檢查第8 位(R/W)。 但是沒有一個(gè)會(huì)被尋址,因?yàn)镽/W =1(10 位尋址)或11110XX 從機(jī)地址(7 位地址器件)不能匹配。

? 組合格式。主機(jī)發(fā)送數(shù)據(jù)到從機(jī)然后從相同的從機(jī)讀數(shù)據(jù)(圖28)。 相同的主機(jī)始終占用著總線。傳輸方向在第二個(gè)R/W 位后改變。

? 組合格式。主機(jī)發(fā)送數(shù)據(jù)到一個(gè)從機(jī),然后發(fā)送數(shù)據(jù)到另一個(gè)從機(jī)(圖29)。 相同的主機(jī)始終占用著總線。

? 組合格式。在一個(gè)串行傳輸中組合了10 位和7 位尋址(圖30)。 在每個(gè)起始條件(S) 或重復(fù)起始條件(Sr) 后,發(fā)送10 位或7 位的從機(jī)地址。圖30 顯示了主機(jī)如何發(fā)送數(shù)據(jù)到一個(gè)7 位地址的從機(jī)然后發(fā)送數(shù)據(jù)到另一個(gè)10 位地址的從機(jī)。相同的主機(jī)始終占用著總線。

注意:

1)、 例如:控制串行存儲(chǔ)器時(shí)可以使用組合格式。在第一個(gè)數(shù)據(jù)字節(jié)時(shí),要寫內(nèi)部存儲(chǔ)器位置。在重復(fù)起始條件和從機(jī)地址后,可以傳輸數(shù)據(jù)。

2)、 器件設(shè)計(jì)者決定了是自動(dòng)加1 還是減1 以前訪問的存儲(chǔ)器位置。

3)、 每個(gè)字節(jié)后都有一個(gè)響應(yīng)位,在序列中用A 或塊表示。

4)、 兼容I2C 總線器件在接收到起始條件或重復(fù)起始條件后必須復(fù)位它們的總線邏輯,這樣它們都可以預(yù)料從機(jī)地址的發(fā)送。

圖26 主機(jī)發(fā)送器用10 位地址尋址從機(jī)接收器
圖27 主機(jī)—接收器用10 位地址尋址從機(jī)—發(fā)送器
圖28 組合格式 主機(jī)用10 位地址尋址從機(jī)然后發(fā)送數(shù)據(jù)到這個(gè)從機(jī)并向這個(gè)從機(jī)讀數(shù)據(jù)
圖29 組合格式 主機(jī)發(fā)送數(shù)據(jù)到兩個(gè)都有10 位地址的從機(jī)
圖30 組合格式 主機(jī)發(fā)送數(shù)據(jù)到兩個(gè)從機(jī)一個(gè)用7 位地址一個(gè)用10 位地址

12.3 廣播呼叫地址和 10 位尋址的起始字節(jié)

I2C總線的 10 位尋址過程是起始條件(S)后的頭兩個(gè)字節(jié)通常決定了主機(jī)要尋址哪個(gè)從機(jī)。例外的情況是“廣播呼叫”地址 00000000(H“00”)。10 位尋址的從機(jī)器件與 7 位尋址的從機(jī)器件對“廣播呼叫”地址的反應(yīng)相同。

硬件主機(jī)可以在“廣播呼叫”之后發(fā)送它們的10位地址。此時(shí)的“廣播呼叫”地址字節(jié)后面的兩個(gè)字節(jié)包含了主機(jī)—發(fā)送器的10位地址。格式見圖10,其中第一個(gè)數(shù)據(jù)字節(jié)是主機(jī)地址的8個(gè)最低位。

起始字節(jié) 00000001(H“01”)表示用 7 位尋址的方法處理 10 位尋址。

13、I/O 級和總線線路的電氣規(guī)范和時(shí)序

13.1 標(biāo)準(zhǔn)和快速模式器件

F/S 模式I2C總線器件的 I/O 級、I/O 電流、毛刺抑制、輸出斜率控制和管腳電容見表4。 I2C總線的時(shí)序特性、總線線路電容和噪聲容限見表5。 圖31顯示了I2C總線的時(shí)序定義。

在表5規(guī)定的SCL時(shí)鐘最小高電平和低電平周期決定了最大的位傳輸速率,標(biāo)準(zhǔn)模式器件是100kbit/s,快速模式器件是 400kbit/s。標(biāo)準(zhǔn)模式和快速模式I2C總線器件必須能在它們最大的位速率下傳輸,或者是能在該速度下發(fā)送或接收。

注:

1)、所有值都參考 VIHmin 和 VILmax電平(見表4)。

2)、器件必須為 SDA 信號(參考SCL信號的VIHmin)內(nèi)部提供一個(gè)至少300ns的保持時(shí)間來渡過SCL下降沿的未定義區(qū) 。

3)、如果器件不延長SCL信號的低電平周期(tLOW),才會(huì)用到tHD;DAT的最大值。

4)、快速模式I2C總線器件可以在標(biāo)準(zhǔn)模式I2C總線系統(tǒng)使用,但必須符合 tSU;DAT>=250ns的要求。如果器件不延長SCL信號的低電平周期,這就自動(dòng)成為默認(rèn)的情況,必須在 SCL 線釋放之前輸出下一個(gè)數(shù)據(jù)位到SDA線 trmax+tSU;DAT=1000+250=1250ns(根據(jù)標(biāo)準(zhǔn)模式I2C總線規(guī)范)。

5)、Cb=一條總線線路的總電容,單位是pF。如果與 Hs 模式器件混合使用,根據(jù)表 6 允許下降時(shí)間更快 。

n/a=不可用

圖 31 I2C總線的F/S模式器件的時(shí)序定義

13.2 Hs 模式器件

Hs 模式I2C總線器件的 I/O 電平、I/O 電流、毛刺抑制、輸出斜率控制和管腳電容都在表 6 列出。Hs模式器件的高電平和低電平噪聲容限與F/S 模式I2C總線器件定義的一樣。

圖32顯示了Hs模式時(shí)序的所有時(shí)序參數(shù)?!罢5摹逼鹗紬l件 S 在 Hs 模式中不存在。地址位、R/ W 位、響應(yīng)位和數(shù)據(jù)位的時(shí)序參數(shù)都相同。只有響應(yīng)位后面的第一個(gè) SCLH 時(shí)鐘信號上升沿的值更大,因?yàn)闆]有內(nèi)部電流源只用外部 Rp 上拉 SCLH。

總線線路的 Hs 模式時(shí)序參數(shù)在表 7 列出。SCLH 時(shí)鐘信號的最小高電平和低電平周期和最大上升和下降時(shí)間由最高的位速率決定。

由于內(nèi)部產(chǎn)生的 SCLH 信號低電平和高電平周期分別是 200ns 和 100ns,Hs 模式主機(jī)可以滿足外部SCLH時(shí)鐘信號(考慮上升和下降時(shí)間)在最大位速率 3.4Mbit/s 下的時(shí)序要求。因此,Hs 模式主機(jī)可以用 10MHz 的基頻或者 10MHz 的倍數(shù)產(chǎn)生 SCLH 信號。它對 SCLH 時(shí)鐘的最大高電平和低電平周期沒有限制,對最低的位速率也沒有限制。

時(shí)序參數(shù)不受在可能的最大位速率 3.4Mbit/s 下每條總線線路的電容負(fù)載最高是 100pF 的條件限制。如果總線線路的電容負(fù)載升高,位速率將逐漸下降??偩€的電容負(fù)載是 400pF 時(shí)的時(shí)序參數(shù)請見表 7,此時(shí)允許最大位速率是 1.7Mbit/s??偩€電容負(fù)載在 100pF~400pF 時(shí),時(shí)序參數(shù)必須呈線性增加。上升和下降時(shí)間是根據(jù)傳輸線路 SDAH 和 SCLH 的最大傳播時(shí)間,防止在開路端發(fā)生反射。

圖 32 Hs 模式器件在I2C總線的時(shí)序定義

14、I2C總線器件到總線線路的電氣連接

I2C總線器件的電氣規(guī)范和連接到它們的總線線路特性。

有 1.5V 和 3V 固定輸入電平的I2C總線器件每個(gè)都有它們自己相應(yīng)的電源電壓。上拉電阻必須連接到一個(gè) 5V(正負(fù)10%)的電源(圖 33)。輸入電平連接到 VDD 的I2C總線器件必須有一條公共的電源線連接到上拉電阻(圖 34)。

當(dāng)有固定輸入電平的器件與輸入電平連接到 VDD 的器件混合使用時(shí),后者必須連接到一條公共的5V(正負(fù)10%)電源線,而且必須連接上拉電阻到 SDA 和 SCL 管腳,見圖 35。

新的快速和 Hs 模式器件必須有在表 4 和表 6 列出的電源電壓相關(guān)的輸入電平。

輸入電平是這樣定義的:

? 低電平噪聲容限是 0.1VDD

? 高電平噪聲容限是 0.2VDD

? 如圖 36 所示,例如是 300歐的串連電阻(RS)可以用于防止 SDA 和 SCL 線的高電壓毛刺波(例如,由電視的顯象管擊穿產(chǎn)生)。

圖 33 輸入電平固定的器件連接到I2C總線
圖 34 有寬電源電壓范圍的器件連接到I2C總線
圖35 輸入電平連接到VDD(電源VDD1)的器件與輸入電平固定的器件(電源VDD2,3)在I2C總線混合使用
圖 36 防止高電壓毛刺波的串連電阻(Rs)

14.1 標(biāo)準(zhǔn)模式I2C總線器件電阻 Rp 和 Rs 的最大和最小值

對于標(biāo)準(zhǔn)模式 I2C總線系統(tǒng),電阻 Rp 和 Rs(圖 33)的值由下面的參數(shù)決定:

? 電源電壓

? 總線電容

? 連接器件的數(shù)量(輸入電流+漏電流)

電源電壓限制了電阻 Rp 的最小值,因?yàn)檩敵黾壴?VOLmax=0.4V 時(shí)指定的最小下拉電流是 3mA。如圖 37 所示,VDD 是 Rpmin 的函數(shù)。低電平要求的 0.1VDD 噪聲容限限制了 Rs 的最大值。如圖 38 所示,Rsmax 是 Rp 的函數(shù)。

總線電容是線路、連接和管腳的總電容。由于規(guī)定了上升時(shí)間,這個(gè)電容限制了 Rp 的最大值。圖 39顯示了Rpmax是總線電容的函數(shù)。

每個(gè)輸入/輸出連接的最大高電平輸入電流的規(guī)定最大值是 10μA。由于高電平要求 0.2VDD 的噪聲容限,這個(gè)輸入電流限制了 Rp 的最大值。這個(gè)限制由 VDD 決定??偟母唠娖捷斎腚娏魅鐖D 40 所示是 Rpmax的函數(shù)。

圖 37 Rp 的最小值是電源電壓的函數(shù),其中 Rs 的值是一個(gè)參數(shù)
圖 38 Rs的最大值是 Rp 的值的函數(shù),其中電源電壓是一個(gè)參數(shù)
圖39 Rp 的最大值是標(biāo)準(zhǔn)模式I2C總線總線電容的函數(shù)
圖 40 總的高電平輸入電流是 Rp 最大值的函數(shù),其中電源電壓是一個(gè)參數(shù)

15、應(yīng)用信息

15.1 快速模式I2C總線器件的斜率控制輸出級

I2C總線器件的電氣規(guī)范和連接到它們的總線線路特性。

圖 41 和 42 是 CMOS 和雙極性工藝帶斜率控制的輸出級舉例。下降沿的斜率由 Miller 電容 (C1)和 電阻(R1)控制。C1 和 R1 的典型值在結(jié)構(gòu)圖中顯示。表 4 給出的輸出下降時(shí)間 tof 的大范圍容差表示設(shè)計(jì)不是臨界的。下降時(shí)間只受到內(nèi)部總線負(fù)載(Cb)和外部上拉電阻 (Rp)輕微的影響。但是,表 5 規(guī)定的上升時(shí)間(tr)主要由總線的電容負(fù)載和上拉電阻的值決定。

圖 41 CMOS 工藝的斜率控制輸出級
圖 42 雙極性工藝的斜率控制輸出級

15.2 快速模式I2C總線器件的開關(guān)上拉電路

電源電壓(VDD)和最大輸入低電平?jīng)Q定了上拉電阻 Rp 的最小值。例如,3mA 時(shí)電源電壓是 VDD=5V(正負(fù)10%)、 VOLmax=0.4V,那么 Rpmin=(5.5-0.4)/0.003=1.7k歐。如圖 33 所示,Rp 的這個(gè)值限制了最大的總線負(fù)載在大約 200pF 以符合最大的 tr 是 300ns 的要求。如果總線的電容更高,可以使用如 圖 43 所示的開關(guān)上拉電路。

圖 43 的開關(guān)上拉電路的電源電壓VDD=5V(正負(fù)10%)而且最大的電容負(fù)載是 400pF。由于它是由總線電平控制,因此不需要額外的開關(guān)控制信號。在上升/下降沿期間,HCT4066 的雙向開關(guān)在總線電平 0.8V~2.0V 之間接通/關(guān)斷上拉電阻 Rp2。Rp1 和 Rp2 的組合電阻可以在規(guī)定的最大上升時(shí)間(tr)300ns 內(nèi)上拉總線線路。

串連電阻 Rs是可選的。它們防止I2C總線期間的輸出級受到總線線路的高電壓毛刺波影響,而且減少了串?dāng)_和總線信號的負(fù)尖峰。Rs的最大值由在總線線路切換到低電平以關(guān)斷 Rp2 時(shí)這個(gè)電阻上允許的最大電壓降決定。

圖 43 開關(guān)上拉電路

15.3 總線線路的配線方式

一般來說,配線必須選擇使總線線路的串?dāng)_和干擾最小??偩€線路在高電平的時(shí)侯最容易受到串?dāng)_和干擾的影響,因?yàn)樯侠骷幱谙鄳?yīng)的高阻狀態(tài)。

如果 PCB 板的總線長度或帶狀電纜超過 10cm(包括 VDD 和 VSS 線),配線方式必須是:

SDA _______________________

VDD _______________________

VSS _______________________

SCL _______________________

如果只有 VSS 線,那么配線方式必須是:

SDA _______________________

VSS _______________________

SCL _______________________

這些配線方式也會(huì)使 SDA 線和 SCL 線的電容負(fù)載一樣。如果 PCB 用了 VSS 層和/或 VDD層, VDD 和 VSS 線可被忽略。

如果總線線路是雙絞線,每條總線都必須圍著 VSS 繞。另一種方法是 SCL 線圍著 VSS 繞,SDA 線圍著 VDD 繞。后者必須在兩條雙絞線的末端連接一個(gè)電容,使 VDD 線向 VSS 線解耦。

如果使用的是屏蔽的總線線路(屏蔽連接到 VSS),干擾將很小。但是屏蔽的電纜在 SDA 和 SCL 線之間的電容耦合必須很低才能減少串?dāng)_。

15.4 快速模式I2C總線器件電阻 Rp 和 RS 的最大和最小值

連接到快速模式I2C總線的電阻 Rp 和 Rs 的最大和最小值,由于快速模式I2C總線的上升時(shí)間 (tr)更快,是總線電容的函數(shù)的 Rp 最大值比圖 39 顯示的小。替代圖 39 的圖 44 顯示了快速模式I2C總線的 Rp 最大值是總線電容(Cb)的函數(shù)。

圖 44 符合快速模式I2C總線 trmax要求的 Rp 最大值是總線電容的函數(shù)

15.5 Hs 模式I2C總線器件的電阻 Rp 和 Rs 的最大和最小值

連接到 Hs 模式I2C總線的電阻 Rp 和 RS 的最大和最小值可以由表 6 和表 7 的數(shù)據(jù)算出。這些值的很多結(jié)合都是可能的,可以是不同的上升和下降時(shí)間、總線線路負(fù)責(zé)、電源電壓、混合速度系統(tǒng)和電平轉(zhuǎn)換。因此這里沒有圖可作詳細(xì)說明。

16、F/S 模式I2C總線系統(tǒng)的雙向電平轉(zhuǎn)換器

現(xiàn)代的集成電路工藝加工的間隙可達(dá) 0.5μm,而且很少限制數(shù)字 I/O 信號的最大電源電壓和邏輯電平。為了將這些低電壓電路與已有的 5V 器件接口,需要一個(gè)電平轉(zhuǎn)換器。對于雙向的總線系統(tǒng)像I2C總線,電平轉(zhuǎn)換器必須也是雙向的,不需要方向選擇信號。解決這個(gè)問題的最簡單方法是連接一個(gè)分立的 MOS-FET 管到每條總線線路。

盡管這個(gè)方法非常簡單,但它不僅能不用方向信號就能滿足雙向電平轉(zhuǎn)換的要求,還能:

? 將掉電的總線部分與剩下的總線系統(tǒng)隔離開來。

? 保護(hù)“低電壓”器件,防止“高電壓”器件的高電壓毛刺波。

雙向電平轉(zhuǎn)換器可以用于標(biāo)準(zhǔn)模式(高達(dá) 100kbit/s)或快速模式(高達(dá) 400kbit/s)I2C總線系統(tǒng)。這個(gè)轉(zhuǎn)換器并不打算在 Hs 模式系統(tǒng)中使用,因?yàn)?Hs 模式系統(tǒng)可能已經(jīng)有帶電平轉(zhuǎn)換的電橋。

16.1 連接邏輯電平不同的器件

第14中描述了如何將電壓不同的器件通過連接到電源電壓線的上拉電阻連接到相同的總線。盡管這是最簡單的解決方法,低電壓的器件必須能容忍 5V,使它們的生產(chǎn)更昂貴。但是,通過使用雙向電平轉(zhuǎn)換器可以將電源電壓和邏輯電平不同的兩部分I2C總線連接起來。配置入圖 45 所示。左邊的“低電壓”部分有上拉電阻而且器件連接到 3.3V 的電源電壓,右邊的“高電平”部分有上拉電阻,器件連接到 5V 電源電壓。兩部分的器件都有與邏輯輸入電平相關(guān)的電源電壓和開漏輸出配置的 I/O。

每條總線線路的電平轉(zhuǎn)換器是相同的,而且由一個(gè)分立的 N 通道增強(qiáng)型 MOS-FET管、串行數(shù)據(jù)線 SDA 的 TR1 和串行時(shí)鐘線 SCL 的 TR2 組成。門極(g)要連接到最電源電壓 VDD1,源極(s)連接到“低電壓”部分的總線線路,而漏極(d)則連接到“高電壓”部分的總線線路。很多 MOS-FET 管的基底與它的源極內(nèi)部連接,如果內(nèi)部沒有連接,就必須建立一個(gè)外部連接。每個(gè) MOS-FET 管在漏極和基底之間都有一個(gè)集成的二極管(n-p 結(jié))。

圖 45 I2C總線系統(tǒng)中連接兩個(gè)電壓不同的部分的雙向電平轉(zhuǎn)換器電路

16.1.1 電平轉(zhuǎn)換器的操作

在電平轉(zhuǎn)換器的操作中要考慮下面的三種狀態(tài):

1)、沒有器件下拉總線線路。“低電壓”部分的總線線路通過上拉電阻 Rp 上拉至 3.3V。MOS-FET 管的門極和源極都是 3.3V,所以它的 VGS 低于閥值電壓,MOS-FET 管不導(dǎo)通。這就允許“高電壓”部分的總線線路通過它的上拉電阻 Rp 拉到 5V。此時(shí)兩部分的總線線路都是高電平,只是電壓電 平不同。

2)、一個(gè) 3.3V 器件下拉總線線路到低電平。MOS-FET 管的源極也變成低電平,而門極是 3.3V。VGS上升高于閥值,MOS-FET 管開始導(dǎo)通。然后,“高電壓”部分的總線線路通過導(dǎo)通的MOS-FET管被 3.3V 器件下拉到低電平。此時(shí),兩部分的總線線路都是低電平,而且電壓電平相同。

3)、一個(gè) 5V 的器件下拉總線線路到低電平。MOS-FET 管的漏極—基底二極管“低電壓”部分被下拉直到 VGS 超過閥值,MOS-FET 管開始導(dǎo)通。“低電壓”部分的總線線路通過導(dǎo)通的 MOS-FET 管被 5V 的器件進(jìn)一步下拉到低電平。此時(shí),兩部分的總線線路都是低電平,而且電壓電平相同。

這三種狀態(tài)顯示了邏輯電平在總線系統(tǒng)的兩個(gè)方向上傳輸,與驅(qū)動(dòng)的部分無關(guān)。狀態(tài) 1 執(zhí)行了電平轉(zhuǎn)換功能。狀態(tài) 2 和 3 按照I2C總線規(guī)范的要求在兩部分的總線線路之間實(shí)現(xiàn)“線與”的功能。

除了 3.3V VDD1 和 5V VDD2 的電源電壓外,還可以是例如:2V VDD1 和 10V VDD2。在正常操作中,VDD2 必須等于或高于 VDD1(在開關(guān)電源時(shí),允許 VDD2 低于 VDD1)。


本文轉(zhuǎn)載自 知乎?曾小慶?I2C(IIC)總線協(xié)議詳解—完整版 - 知乎 (zhihu.com) https://zhuanlan.zhihu.com/p/149364473

I2C ( IIC )的評論 (共 條)

分享到微博請遵守國家法律
正镶白旗| 吴江市| 上思县| 马尔康县| 广河县| 厦门市| 裕民县| 肃北| 秀山| 两当县| 公安县| 商城县| 阳西县| 临桂县| 进贤县| 隆安县| 永州市| 泰宁县| 钦州市| 若羌县| 仁寿县| 宜昌市| 巴林左旗| 三江| 长寿区| 合山市| 柳河县| 疏勒县| 岑溪市| 吕梁市| 泸西县| 南乐县| 高雄县| 富顺县| 临江市| 宁波市| 法库县| 揭东县| 青铜峡市| 瑞安市| 大名县|