對(duì)I2C總線(xiàn)的時(shí)鐘同步和總線(xiàn)仲裁的深入理解
①由于SDA、SCL為漏極開(kāi)路結(jié)構(gòu),借助于外部的上拉電阻實(shí)現(xiàn)了信號(hào)的“線(xiàn)與”邏輯;
本文引用地址:http://www.ex-cimer.com/article/201611/320014.htm②引腳在輸出信號(hào)的同時(shí)還將引腳上的電平進(jìn)行檢測(cè),檢測(cè)是否與剛才輸出一致。為 “時(shí)鐘同步”和“總線(xiàn)仲裁”提供硬件基礎(chǔ)。
I2C總線(xiàn)接口內(nèi)部結(jié)構(gòu)
IIC設(shè)備對(duì)總線(xiàn)的操作僅有“把線(xiàn)路接地”——輸出邏輯0?;贗IC總線(xiàn)的設(shè)計(jì),線(xiàn)路上不可能出現(xiàn)電平?jīng)_突現(xiàn)象。如果一設(shè)備發(fā)送邏輯0,其他發(fā)送邏輯1,那么線(xiàn)路看到的只有邏輯0。也就是說(shuō),如果出現(xiàn)電平?jīng)_突,發(fā)送邏輯0的始終是“贏家”??偩€(xiàn)的物理接法允許主設(shè)備往總線(xiàn)寫(xiě)數(shù)據(jù)的同事讀取數(shù)據(jù)。這樣兩主設(shè)備爭(zhēng)總線(xiàn)的時(shí)候“贏家”并不知道競(jìng)爭(zhēng)的發(fā)生,只有“輸家”發(fā)現(xiàn)了沖突——當(dāng)寫(xiě)一個(gè)邏輯1,卻讀到了0——而退出競(jìng)爭(zhēng)。
時(shí)鐘同步
如果被控器希望主控器降低傳送速度可以通過(guò)將SCL主動(dòng)拉低延長(zhǎng)其低電平時(shí)間的方法來(lái)通知主控器,當(dāng)主控器在準(zhǔn)備下一次傳送發(fā)現(xiàn)SCL的電平被拉低時(shí)就進(jìn)行等待,直至被控器完成操作并釋放SCL線(xiàn)的控制控制權(quán)。這樣以來(lái),主控器實(shí)際上受到被控器的時(shí)鐘同步控制??梢?jiàn)SCL線(xiàn)上的低電平是由時(shí)鐘低電平最長(zhǎng)的器件決定;高電平的時(shí)間由高電平時(shí)間最短的器件決定。這就是時(shí)鐘同步,它解決了I2C總線(xiàn)的速度同步。
總線(xiàn)仲裁
假設(shè)主控器1要發(fā)送的數(shù)據(jù)DATA1為“101 ……”;主控器2要發(fā)送的數(shù)據(jù)DATA2為“1001 ……”總線(xiàn)被啟動(dòng)后兩個(gè)主控器在每發(fā)送一個(gè)數(shù)據(jù)位時(shí)都要對(duì)自己的輸出電平進(jìn)行檢測(cè),只要檢測(cè)的電平與自己發(fā)出的電平一致,他們就會(huì)繼續(xù)占用總線(xiàn)。在這種情況下總線(xiàn)還是得不到仲裁。當(dāng)主控器1發(fā)送第3位數(shù)據(jù)“1”時(shí)(主控器2發(fā)送“0” ),由于“線(xiàn)與”的結(jié)果SDA上的電平為“0”,這樣當(dāng)主控器1檢測(cè)自己的輸出電平時(shí),就會(huì)測(cè)到一個(gè)與自身不相符的“0”電平。這時(shí)主控器1只好放棄對(duì)總線(xiàn)的控制權(quán);因此主控器2就成為總線(xiàn)的唯一主宰者。不難看出:
- ① 對(duì)于整個(gè)仲裁過(guò)程主控器1和主控器2都不會(huì)丟失數(shù)據(jù);
- ② 各個(gè)主控器沒(méi)有對(duì)總線(xiàn)實(shí)施控制的優(yōu)先級(jí)別;
- ③總線(xiàn)控制隨即而定,他們遵循“低電平優(yōu)先”的原則,即誰(shuí)先發(fā)送低電平誰(shuí)就會(huì)掌握對(duì)總線(xiàn)的控制權(quán)。
- ①主控器通過(guò)檢測(cè)SCL上的電平來(lái)調(diào)節(jié)與從器件的速度同步問(wèn)題——時(shí)鐘同步;
- ②主控器通過(guò)檢測(cè)SDA上自身發(fā)送的電平來(lái)判斷是否發(fā)生總線(xiàn)“沖突”——總線(xiàn)仲裁。因此,I2C總線(xiàn)的“時(shí)鐘同步”與“總線(xiàn)仲裁”是靠器件自身接口的特殊結(jié)構(gòu)得以實(shí)現(xiàn)的。
[1]同相器:當(dāng)輸入高電平時(shí)輸出也是高電平,輸入低電平時(shí)輸出也是低電平。主要要于需要緩沖的場(chǎng)合,就是只要輸入很小的電流,可輸出較大的電流,增加帶載能力。
評(píng)論