0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

你眼中簡單的IIC,其實并不簡單

電子工程師 ? 來源:網(wǎng)易號 ? 作者:創(chuàng)易棧 ? 2021-04-03 11:02 ? 次閱讀

01我們習(xí)以為常的IIC通常是什么樣子?

在我們研發(fā)/應(yīng)用工程師眼中,IIC的形象通常是如圖這樣的吧?(你們說是不是?)

JjEnei.png

nuEZZr.png

EJzmYz.png

是的,對于理想的硬件調(diào)程序,這個層面已經(jīng)基本夠用。(我是已經(jīng)get到了)

02IIC還可以是這樣的

Mn2m22.png

簡單實用的IIC電平匹配電路,原理很簡單、也很巧妙。

v2Qn2a.jpeg

Si8400芯片,做UART或者IIC隔離是很不錯的。做隔離也有實際意義的:

比如涉及強(qiáng)電的板子,需要隔離后的UART口打印調(diào)試信息,方便debug;電容觸摸按鍵調(diào)試中,某些產(chǎn)品采用隔離的IIC接口(如Azoteq,Cypress等芯片大部分采用IIC)調(diào)試能得到更準(zhǔn)確的數(shù)據(jù)(原理上涉及到人體大地等構(gòu)成的寄生電容,挺有意思,可以看創(chuàng)易棧的觸摸按鍵相關(guān)內(nèi)容)。

有朋友會問,我見過5V芯片和3V芯片,直接把IIC接在一起的,不需要做電壓匹配呀?

這個不建議用。需要仔細(xì)看數(shù)據(jù)手冊的:一般來說3V芯片的I/O都有如圖的保護(hù)結(jié)構(gòu),導(dǎo)致SCL、SDA信號高電平被限制在3V+0.3V,5V芯片經(jīng)常不能正確識別的。

EJZfem.png

03支持雙電壓的高速IIC接口

7zq6ra.jpeg

TI的TXS0102帶OE功能的高速IIC接口芯片。

這個有什么好處呢?

當(dāng)然有,除了支持電平匹配;從它的MOS結(jié)構(gòu)也可以看出,對SCL和SDA的上升邊緣有個加速過程,速度可以支持到2Mbps喔。

04觸碰IIC的核心

每一個IIC總線器件內(nèi)部的SDA、SCL引腳電路結(jié)構(gòu)都是一樣的,引腳的輸出驅(qū)動與輸入緩沖連在一起。其中輸出為漏極開路的場效應(yīng)管、輸入緩沖為一只高輸入阻抗的同相器[1]。這種電路具有兩個特點:

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

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

jURJje.jpeg

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

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

時鐘拉伸(Clock stretching)

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

7b2AN3.jpeg

總線仲裁

假設(shè)主控器1要發(fā)送的數(shù)據(jù)DATA1為“101 ……”;主控器2要發(fā)送的數(shù)據(jù)DATA2為“1001 ……”總線被啟動后兩個主控器在每發(fā)送一個數(shù)據(jù)位時都要對自己的輸出電平進(jìn)行檢測,只要檢測的電平與自己發(fā)出的電平一致,他們就會繼續(xù)占用總線。在這種情況下總線還是得不到仲裁。當(dāng)主控器1發(fā)送第3位數(shù)據(jù)“1”時(主控器2發(fā)送“0” ),由于“線與”的結(jié)果SDA上的電平為“0”,這樣當(dāng)主控器1檢測自己的輸出電平時,就會測到一個與自身不相符的“0”電平。這時主控器1只好放棄對總線的控制權(quán);因此主控器2就成為總線的唯一主宰者。

總結(jié)

① 對于整個仲裁過程主控器1和主控器2都不會丟失數(shù)據(jù);

② 各個主控器沒有對總線實施控制的優(yōu)先級別;

③總線控制隨即而定,他們遵循“低電平優(yōu)先”的原則,即誰先發(fā)送低電平誰就會掌握對總線的控制權(quán)。

根據(jù)上面的描述,“時鐘拉伸”與“總線仲裁”可以總結(jié)如下規(guī)律:

①主控器通過檢測SCL上的電平來調(diào)節(jié)與從器件的速度同步問題——時鐘拉伸;

②主控器通過檢測SDA上自身發(fā)送的電平來判斷是否發(fā)生總線“沖突”——總線仲裁。因此,I2C總線的“時鐘同步”與“總線仲裁”是靠器件自身接口的特殊結(jié)構(gòu)得以實現(xiàn)的。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3461

    瀏覽量

    67216
  • IIC
    IIC
    +關(guān)注

    關(guān)注

    11

    文章

    306

    瀏覽量

    39200
  • IIC接口
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    11851
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    MID電表很難,其實一點不簡單!# 電能表 #MID認(rèn)證

    電表
    瑞銀電子
    發(fā)布于 :2025年04月28日 15:10:41

    RV1126 實現(xiàn)簡單的UI開發(fā)示例

    在RV1126上實現(xiàn)簡單的UI開發(fā)實例
    的頭像 發(fā)表于 04-09 16:08 ?288次閱讀
    RV1126 實現(xiàn)<b class='flag-5'>簡單</b>的UI開發(fā)示例

    看完這篇,SPI其實也很簡單嘛(可下載)

    首先我們來簡單介紹一下SPI,SPI是串行外設(shè)接口(SerialPeripheralInterface)簡單來講就是它一種高速的,全雙工,同步的通信總線被各種總線搞的暈頭轉(zhuǎn)向的人來說就會問了
    發(fā)表于 03-26 14:29 ?0次下載

    為什么IIC總線會難住這么多人?

    為什么 IIC 總線讓很多人頭疼?其實可以把它想象成一場復(fù)雜的 "設(shè)備對話游戲",新手容易在這些地方栽跟頭:
    的頭像 發(fā)表于 03-12 10:14 ?430次閱讀
    為什么<b class='flag-5'>IIC</b>總線會難住這么多人?

    map指令簡單介紹

    當(dāng)然這里寫的都是官方文檔是已經(jīng)寫過的,我簡單抄一下哈。
    的頭像 發(fā)表于 02-13 09:54 ?329次閱讀

    99%的人都不知道,氣密性測試儀器竟如此簡單!

    大上,但氣密性測試儀器的原理其實非常簡單,甚至比你想象的要容易理解得多。想象一下,給氣球充氣:當(dāng)你往氣球里吹氣時,氣球會逐漸膨脹。如果捏住氣球的吹氣口,氣球就會
    的頭像 發(fā)表于 02-06 14:19 ?515次閱讀
    99%的人都不知道,氣密性測試儀器竟如此<b class='flag-5'>簡單</b>!

    【每天學(xué)點AI】KNN算法:簡單有效的機(jī)器學(xué)習(xí)分類器

    過程,其實就是一個簡單的分類問題,而KNN(K-NearestNeighbors)算法正是模仿這種人類決策過程的機(jī)器學(xué)習(xí)算法。|什么是KNN?KNN(K-NearestNeighbo
    的頭像 發(fā)表于 10-31 14:09 ?775次閱讀
    【每天學(xué)點AI】KNN算法:<b class='flag-5'>簡單</b>有效的機(jī)器學(xué)習(xí)分類器

    簡單了解SDK與APK的區(qū)別

    不少小伙伴在開發(fā)軟件中會提到兩個詞:API和SDK。雖然它們看起來很專業(yè),但其實背后的概念并不復(fù)雜。這篇文章能簡單的幫你了解SDK與APK的區(qū)別。
    的頭像 發(fā)表于 10-11 10:08 ?3002次閱讀

    IIC信號線需要增加上拉電阻,是因為IIC的IO是什么

    IIC通信中扮演著至關(guān)重要的角色,而上拉電阻的加入則是實現(xiàn)這種通信方式有效性和可靠性的關(guān)鍵。以下是對此現(xiàn)象的介紹: 一、IIC通信與開漏輸出 IIC通信協(xié)議是一種廣泛應(yīng)用的串行通信協(xié)議,由飛利浦公司(現(xiàn)被恩智浦電子收購)于198
    的頭像 發(fā)表于 10-06 15:50 ?1927次閱讀

    SMBus變得簡單

    電子發(fā)燒友網(wǎng)站提供《SMBus變得簡單.pdf》資料免費(fèi)下載
    發(fā)表于 09-18 14:45 ?3次下載
    SMBus變得<b class='flag-5'>簡單</b>

    PCB打樣不簡單:這些特殊工藝知道嗎?

    在電子產(chǎn)品的設(shè)計與制造過程中,印制電路板(PCB)扮演著至關(guān)重要的角色。PCB打樣,即小批量試產(chǎn)PCB的過程,是電子工程師在設(shè)計好電路并完成繪制PCB后,向線路板工廠提交生產(chǎn)請求的關(guān)鍵環(huán)節(jié)。PCB打樣不僅涉及標(biāo)準(zhǔn)的工藝流程,還包含多種特殊工藝,以滿足不同設(shè)計需求和應(yīng)用場景。本文將深入探討PCB打樣中的幾種特殊工藝,包括金手指處理、阻抗控制、盲孔與埋孔技術(shù)、厚
    的頭像 發(fā)表于 09-18 13:39 ?1516次閱讀
    PCB打樣<b class='flag-5'>不簡單</b>:這些特殊工藝<b class='flag-5'>你</b>知道嗎?

    使用MODE引腳進(jìn)行簡單的恒壓調(diào)節(jié)

    電子發(fā)燒友網(wǎng)站提供《使用MODE引腳進(jìn)行簡單的恒壓調(diào)節(jié).pdf》資料免費(fèi)下載
    發(fā)表于 08-30 10:05 ?0次下載
    使用MODE引腳進(jìn)行<b class='flag-5'>簡單</b>的恒壓調(diào)節(jié)

    tensorflow簡單的模型訓(xùn)練

    在本文中,我們將詳細(xì)介紹如何使用TensorFlow進(jìn)行簡單的模型訓(xùn)練。TensorFlow是一個開源的機(jī)器學(xué)習(xí)庫,廣泛用于各種機(jī)器學(xué)習(xí)任務(wù),包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?1207次閱讀

    如何利用超級電容設(shè)計簡單的不間斷電源?

    如何利用超級電容設(shè)計簡單的不間斷電源?在許多應(yīng)用中,電源電壓無論在什么情況下都持續(xù)可用是很重要的。要確保這一點有時并不容易。一種新概念可以為設(shè)計極其緊湊的不間斷電源提供一種優(yōu)化解決方案。在電源關(guān)鍵型
    的頭像 發(fā)表于 06-28 11:27 ?517次閱讀
    如何利用超級電容設(shè)計<b class='flag-5'>簡單</b>的不間斷電源?

    一個簡單的分頻器電路分享

    這是一個簡單的分頻器電路,該電路的優(yōu)點是電路小,它僅使用晶體管和其他幾個組件。
    的頭像 發(fā)表于 06-10 15:55 ?2703次閱讀
    一個<b class='flag-5'>簡單</b>的分頻器電路分享

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品