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