I2C總線
I2C總線連線圖
I2C(Inter-Integrated Circuit)總線是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。
目錄
2.起始和停止條件
1.7位尋址
2.10位尋址
1.快速模式
2.高速模式
2.起始和停止條件
1.7位尋址
2.10位尋址
1.快速模式
2.高速模式
展開
編輯本段I2C總線特征
1、只要求兩條總線線路:一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL;
2、每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機/從機關(guān)系軟件設(shè)定地址,主機可以作為主機發(fā)送器或主機接收器;
3、它是一個真正的多主機總線,如果兩個或更多主機同時初始化,數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞;
4、串行的8位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達100kbit/s,快速模式下可達400kbit/s,高速模式下可達3.4Mbit/s;
5、連接到相同總線的IC數(shù)量只受到總線的最大電容400pF限制。
編輯本段I2C總線術(shù)語
發(fā)送器:發(fā)送數(shù)據(jù)到總線的器件;
接收器:從總線接收數(shù)據(jù)的器件;
主機:初始化發(fā)送產(chǎn)生時鐘信號和終止發(fā)送的器件;
從機:被主機尋址的器件;
多主機:同時有多于一個主機嘗試控制總線但不破壞傳輸;
仲裁:是一個在有多個主機同時嘗試控制總線但只允許其中一個控制總線并使傳輸不被破壞
的過程;
同步:兩個或多個器件同步時鐘信號的過程 。
編輯本段I2C總線位傳輸
由于連接到I2C總線的器件有不同種類的工藝(CMOS、NMOS、PMOS、雙極性),邏輯0(低)和邏輯1(高)的電平不是固定的,它由電源VCC的相關(guān)電平?jīng)Q定,每傳輸一個數(shù)據(jù)位就產(chǎn)生一個時鐘脈沖。
在傳輸數(shù)據(jù)的時候,SDA線必須在時鐘的高電平周期保持穩(wěn)定,SDA的高或低電平狀態(tài)只
I2C位傳輸數(shù)據(jù)有效性
有在SCL線的時鐘信號是低電平時才能改變 。
SCL線是高電平時,SDA線從高電平向低電平切換,這個情況表示起始條件;
SCL線是高電平時,SDA線由低電平向高電平切換,這個情況表示停止條件。
起始和停止條件一般由主機產(chǎn)生,總線在起始條件后被認為處于忙的狀態(tài)
起始和停止條件
,在停止條件的某段時間后總線被認為再次處于空閑狀態(tài)。
如果產(chǎn)生重復(fù)起始條件而不產(chǎn)生停止條件,總線會一直處于忙的狀態(tài),此時的起始條件(S)和重復(fù)起始條件(Sr) 在功能上是一樣的。
編輯本段I2C總線數(shù)據(jù)傳輸
發(fā)送到SDA線上的每個字節(jié)必須為8位,每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制。每個字節(jié)后必須跟一個響應(yīng)位。首先傳輸?shù)氖菙?shù)據(jù)的最高位(MSB),如果從機要完成一些其他功能后(例如一個內(nèi)部中斷服務(wù)程序)才能接收或發(fā)送下一個完整的數(shù)據(jù)字節(jié),可以使時鐘線SCL保持低電平,迫使主機進入等待狀態(tài),當(dāng)從機準(zhǔn)備好接收下一個數(shù)據(jù)字節(jié)并釋放時鐘線SCL后數(shù)據(jù)傳輸繼續(xù)。
數(shù)據(jù)傳輸必須帶響應(yīng),相關(guān)的響應(yīng)時鐘脈沖由主機產(chǎn)生。在響應(yīng)的時鐘脈沖期間發(fā)送器釋放SDA線(高)。
在響應(yīng)的時鐘脈沖期間,接收器必須將SDA線拉低,使它在這個時鐘脈沖的高電平期間保持穩(wěn)定的低電平。
通常被尋址的接收器在接收到的每個字節(jié)后,除了用CBUS地址開頭的數(shù)
I2C總線數(shù)據(jù)傳輸和應(yīng)答
據(jù),必須產(chǎn)生一個響應(yīng)。當(dāng)從機不能響應(yīng)從機地址時(例如它正在執(zhí)行一些實時函數(shù)不能接收或發(fā)送),從機必須使數(shù)據(jù)線保持高電平,主機然后產(chǎn)生一個停止條件終止傳輸或者產(chǎn)生重復(fù)起始條件開始新的傳輸。
如果從機接收器響應(yīng)了從機地址,但是在傳輸了一段時間后不能接收更多數(shù)據(jù)字節(jié),主機必須再一次終止傳輸。這個情況用從機在第一個字節(jié)后沒有產(chǎn)生響應(yīng)來表示。從機使數(shù)據(jù)線保持高電平,主機產(chǎn)生一個停止或重復(fù)起始條件。
如果傳輸中有主機接收器,它必須通過在從機不產(chǎn)生時鐘的最后一個字節(jié)不產(chǎn)生一個響應(yīng),向從機發(fā)送器通知數(shù)據(jù)結(jié)束。從機發(fā)送器必須釋放數(shù)據(jù)線,允許主機產(chǎn)生一個停止或重復(fù)起始條件。
編輯本段尋址方式
第一個字節(jié)的頭7位組成了從機地址,最低位(LSB)是第8位,它決定了傳輸?shù)?/p>
普通的和帶重復(fù)開始條件的7位地址格式
方向。第一個字節(jié)的最低位是“0”,表示主機會寫信息到被選中的從機;“1”表示主機會向從機讀信息,當(dāng)發(fā)送了一個地址后,系統(tǒng)中的每個器件都在起始條件后將頭7位與它自己的地址比較,如果一樣,器件會判定它被主機尋址,至于是從機接收器還是從機發(fā)送器,都由R/W位決定的哦。
10位尋址和7位尋址兼容,而且可以結(jié)合使用。
10位尋址采用了保留的1111XXX作為起始條件(S),或重復(fù)起始條件(Sr)的后第一個字節(jié)的頭7位。
10位尋址不會影響已有的7位尋址,有7位和10位地址的器件可以連接
I2C總線10位地址格式
到相同的I2C總線。它們都能用于標(biāo)準(zhǔn)模式(F/S)和高速模式(Hs)系統(tǒng)。
保留地址位1111XXX有8個組合,但是只有4個組合11110XX用于10位尋址,剩下的4個組合11111XX保留給后續(xù)增強的I2C總線。
10位從機地址是由在起始條件(S) 或重復(fù)起始條件(Sr)后的頭兩個字節(jié)組成。
第一個字節(jié)的頭7位是11110XX的組合,其中最后兩位(XX) 是10位地址的兩個最高位(MSB)。
第一個字節(jié)的第8位是R/W位,決定了傳輸?shù)姆较颍谝粋€字節(jié)的最低位是“0”表示主機將寫信息到選中的從機,“1 ”表示主機將向從機讀信息。
如果R/W位是“0 ”,則第二個字節(jié)是10位從機地址剩下的8位;如果R/W位是“1”則下一個字節(jié)是從機發(fā)送給主機的數(shù)據(jù)。
編輯本段快速和高速模式
快速模式器件可以在400kbit/s下接收和發(fā)送。最小要求是:它們可以和400kbit/s傳輸同步,可以延長SCL信號的低電平周期來減慢傳輸。快速模式器件都向下兼容,可以和標(biāo)準(zhǔn)模式器件在0~100kbit/s的I2C總線系統(tǒng)通訊。但是,由于標(biāo)準(zhǔn)模式器件不向上兼容,所以不能在快速模式I2C總線系統(tǒng)中工作。快速模式I2C總線規(guī)范與標(biāo)準(zhǔn)模式相比有以下額外的特征:
1、最大位速率增加到400kbit/s;
2、調(diào)整了串行數(shù)據(jù)(SDA) 和串行時鐘(SCL)信號的時序;
3、快速模式器件的輸入有抑制毛刺的功能,SDA和SCL輸入有施密特觸發(fā)器;
4、快速模式器件的輸出緩沖器對SDA和SCL信號的下降沿有斜率控制功能;
5、如果快速模式器件的電源電壓被關(guān)斷,SDA和SCL的I/O管腳必須懸空,不能阻塞總線;
6、連接到總線的外部上拉器件必須調(diào)整以適應(yīng)快速模式I2C總線更短的最大允許上升時間。對于負載最大是200pF的總線,每條總線的上拉器件可以是一個電阻,對于負載在200pF~400pF之間的總線,上拉器件可以是一個電流源(最大值3mA)或者是一個開關(guān)電阻電路。
高速模式(Hs模式)器件對I2C總線的傳輸速度有具大的突破。Hs模式器件可以在高達3.4Mbit/s的位速率下傳輸信息,而且保持完全向下兼容快速模式或標(biāo)準(zhǔn)模式(F/S模式)器件,它們可以在一個速度混合的總線系統(tǒng)中雙向通訊。
Hs模式傳輸除了不執(zhí)行仲裁和時鐘同步外,與F/S模式系統(tǒng)有相同的串行總線協(xié)議和數(shù)據(jù)格式。
高速模式下I2C總線規(guī)范如下:
1、Hs模式主機器件有一個SDAH信號的開漏輸出緩沖器和一個在SCLH輸出的開漏極下拉和電流源上拉電路。這個電流源電路縮短了SCLH信號的上升時間,任何時侯在Hs模式,只有一個主機的電流源有效;
2、在多主機系統(tǒng)的Hs模式中,不執(zhí)行仲裁和時鐘同步,以加速位處理能力。仲裁過程一般在前面用F/S模式傳輸主機碼后結(jié)束;
3、Hs模式主機器件以高電平和低電平是1:2的比率產(chǎn)生一個串行時鐘信號。解除了建立和保持時間的時序要求;
4、可以選擇Hs模式器件有內(nèi)建的電橋。在Hs模式傳輸中,Hs模式器件的高速數(shù)據(jù)(SDAH)和高速串行時鐘(SCLH)線通過這個電橋與F/S模式器件的SDA和SCL線分隔開來。減輕了SDAH和SCLH線的電容負載,使上升和下降時間更快;
5、Hs模式從機器件與F/S從機器件的唯一差別是它們工作的速度。Hs模式從機在SCLH和SDAH輸出有開漏輸出的緩沖器。SCLH管腳可選的下拉晶體管可以用于拉長SCLH信號的低電平,但只允許在Hs模式傳輸?shù)捻憫?yīng)位后進行;
6、Hs模式器件的輸出可以抑制毛刺,而且SDAH和SCLH輸出有一個施密特觸發(fā)器;
7、Hs模式器件的輸出緩沖器對SDAH和SCLH信號的下降沿有斜率控制功能。[1]
編輯本段I2C常用念法
I2C(Inter-Integrated Circuit)是內(nèi)部整合電路的稱呼,是一種串行通訊總線,使用多主從架構(gòu),由飛利浦公司在1980年代為了讓主板、嵌入式系統(tǒng)或手機用以連接低速周邊裝置而發(fā)展。I2C的正確讀法為"I-squared-C",而"I-two-C"則是另一種錯誤但被廣泛使用的讀法,在中國則多以"I方C"稱之。