新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 對I2C總線的時(shí)鐘同步和總線仲裁的深入理解

        對I2C總線的時(shí)鐘同步和總線仲裁的深入理解

        作者: 時(shí)間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
        每一個(gè)IIC總線器件內(nèi)部的SDA、SCL引腳電路結(jié)構(gòu)都是一樣的,引腳的輸出驅(qū)動(dòng)與輸入緩沖連在一起。其中輸出為漏極開路的場效應(yīng)管、輸入緩沖為一只高輸入阻抗的同相器[1]。這種電路具有兩個(gè)特點(diǎn):

        ①由于SDA、SCL為漏極開路結(jié)構(gòu),借助于外部的上拉電阻實(shí)現(xiàn)了信號(hào)的“線與”邏輯;

        本文引用地址:http://www.104case.com/article/201611/320014.htm

        ②引腳在輸出信號(hào)的同時(shí)還將引腳上的電平進(jìn)行檢測,檢測是否與剛才輸出一致。為 “時(shí)鐘同步”和“總線仲裁”提供硬件基礎(chǔ)。

        I2C總線接口內(nèi)部結(jié)構(gòu)

        IIC設(shè)備對總線的操作僅有“把線路接地”——輸出邏輯0。基于IIC總線的設(shè)計(jì),線路上不可能出現(xiàn)電平?jīng)_突現(xiàn)象。如果一設(shè)備發(fā)送邏輯0,其他發(fā)送邏輯1,那么線路看到的只有邏輯0。也就是說,如果出現(xiàn)電平?jīng)_突,發(fā)送邏輯0的始終是“贏家”。總線的物理接法允許主設(shè)備往總線寫數(shù)據(jù)的同事讀取數(shù)據(jù)。這樣兩主設(shè)備爭總線的時(shí)候“贏家”并不知道競爭的發(fā)生,只有“輸家”發(fā)現(xiàn)了沖突——當(dāng)寫一個(gè)邏輯1,卻讀到了0——而退出競爭。

        時(shí)鐘同步

        如果被控器希望主控器降低傳送速度可以通過將SCL主動(dòng)拉低延長其低電平時(shí)間的方法來通知主控器,當(dāng)主控器在準(zhǔn)備下一次傳送發(fā)現(xiàn)SCL的電平被拉低時(shí)就進(jìn)行等待,直至被控器完成操作并釋放SCL線的控制控制權(quán)。這樣以來,主控器實(shí)際上受到被控器的時(shí)鐘同步控制。可見SCL線上的低電平是由時(shí)鐘低電平最長的器件決定;高電平的時(shí)間由高電平時(shí)間最短的器件決定。這就是時(shí)鐘同步,它解決了I2C總線的速度同步。

        總線仲裁

        假設(shè)主控器1要發(fā)送的數(shù)據(jù)DATA1為“101 ……”;主控器2要發(fā)送的數(shù)據(jù)DATA2為“1001 ……”總線被啟動(dòng)后兩個(gè)主控器在每發(fā)送一個(gè)數(shù)據(jù)位時(shí)都要對自己的輸出電平進(jìn)行檢測,只要檢測的電平與自己發(fā)出的電平一致,他們就會(huì)繼續(xù)占用總線。在這種情況下總線還是得不到仲裁。當(dāng)主控器1發(fā)送第3位數(shù)據(jù)“1”時(shí)(主控器2發(fā)送“0” ),由于“線與”的結(jié)果SDA上的電平為“0”,這樣當(dāng)主控器1檢測自己的輸出電平時(shí),就會(huì)測到一個(gè)與自身不相符的“0”電平。這時(shí)主控器1只好放棄對總線的控制權(quán);因此主控器2就成為總線的唯一主宰者。
        不難看出:
        • ① 對于整個(gè)仲裁過程主控器1和主控器2都不會(huì)丟失數(shù)據(jù);
        • ② 各個(gè)主控器沒有對總線實(shí)施控制的優(yōu)先級(jí)別;
        • ③總線控制隨即而定,他們遵循“低電平優(yōu)先”的原則,即誰先發(fā)送低電平誰就會(huì)掌握對總線的控制權(quán)。
        根據(jù)上面的描述,“時(shí)鐘同步”與“總線仲裁”可以總結(jié)如下規(guī)律:
        • ①主控器通過檢測SCL上的電平來調(diào)節(jié)與從器件的速度同步問題——時(shí)鐘同步;
        • ②主控器通過檢測SDA上自身發(fā)送的電平來判斷是否發(fā)生總線“沖突”——總線仲裁。因此,I2C總線的“時(shí)鐘同步”與“總線仲裁”是靠器件自身接口的特殊結(jié)構(gòu)得以實(shí)現(xiàn)的。

        [1]同相器:當(dāng)輸入高電平時(shí)輸出也是高電平,輸入低電平時(shí)輸出也是低電平。主要要于需要緩沖的場合,就是只要輸入很小的電流,可輸出較大的電流,增加帶載能力。



        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 临猗县| 西藏| 界首市| 凭祥市| 南郑县| 兴业县| 顺义区| 铜陵市| 贵溪市| 临湘市| 巴南区| 镇康县| 噶尔县| 怀集县| 怀化市| 湖南省| 静安区| 柏乡县| 阿克陶县| 西畴县| 明溪县| 十堰市| 时尚| 浪卡子县| 祁阳县| 威宁| 洪雅县| 通化市| 阿瓦提县| 贵州省| 安达市| 邛崃市| 苏尼特左旗| 宜川县| 分宜县| 南部县| 那曲县| 洮南市| 东光县| 扶余县| 洪洞县|