<strike id="0k9r3"><p id="0k9r3"></p></strike>
  • <form id="0k9r3"></form>
    <nav id="0k9r3"></nav>
    <em id="0k9r3"><p id="0k9r3"></p></em>
  • <tr id="0k9r3"><source id="0k9r3"></source></tr>
    <form id="0k9r3"></form>
    <sub id="0k9r3"></sub>

      <sub id="0k9r3"><address id="0k9r3"></address></sub>
      1. <form id="0k9r3"></form>

        24小時聯系電話:18217114652、13661815404

        中文

        您當前的位置:
        首頁>
        電子資訊>
        公司新聞>
        串行通信協議第 6 部...

        公司新聞

        串行通信協議第 6 部分 - I2C


        串行通信協議第 6 部分 - I2C

        在串行通信協議系列的下一部分中,我們將研究流行的 I 2 C 協議。這是在前面的文章中我們正在研究一些不同類型的可用串行通信協議的后續文章。這些為在合理短距離內在設備之間傳輸數據提供了實用的解決方案。典型應用包括通過微控制器從產生數據的外圍設備中捕獲大量數據。

        本系列涵蓋了一些比較流行的協議。在本系列的最后,我們將通過查看每個協議的優點和缺點來總結。我們希望您下次想在設計中實現串行通信總線時會發現本系列很有價值

        I 2 C(發音為 I-squared-C)代表內部集成電路。簡而言之,它是一種單端、同步、多主、多從、封裝交換串行通信總線。我們現在將解釋這一口的含義。

        由于它是同步的,這意味著它有一條時鐘線。這種類型的通信協議被微控制器廣泛用于短距離傳輸數據或與設備通信。盡管 I 2 C 是由飛利浦半導體(現為 NXP)發明的,但許多其他制造商生產的 IC I 2 C 通信協議兼容或使用 I 2 C 通信協議。SMBus 是一種基本上與 I 2 C兼容的協議,主要區別在于 SMBus 具有較低的最大頻率、超時功能和較低的最大電流 - 因此本文中的討論也非常適用于 SMBus。

        I 2 C 總線具有指定為主設備和從設備的設備。主設備是產生時鐘信號并啟動與從設備通信的設備。從設備是接收時鐘信號并在被主設備尋址時做出響應的設備。I 2 C 總線可以是多從,也可以是多主,即一個主設備可以有多個從設備,一個從設備可以有多個主設備:

        I2C多從多主接線示例

        I 2 C 協議具有三種基本的消息格式類型;每條消息都以 START 信號開始,然后以 STOP 信號結束。在第一種消息格式中,單個消息由主機發送到從機,從機將數據傳輸到從機。在第二種消息格式中,單個消息由主機發送到從機,從機將數據從從機傳輸回主機。在最終的組合消息格式中,主設備向一個或多個從設備發送多個讀或寫命令。每個命令必須包含目標從設備的地址。

        I 2 C 總線由兩條傳輸線組成,不包括地線。通常,I 2 C 總線由作為時鐘信號的 SCL 線和作為數據信號的 SDA 線組成。時鐘線是單向的,從主機到從機。 

        這是一種半雙工串行通信,即在任一時刻只能向一個方向發送數據,因此主從不能同時發送數據。

        帶有上拉電阻的 I2C 接線示例

        I 2 C 具有漏極開路或集電極開路輸出,這意味著驅動器可以將線路拉低但不能將其拉高??偩€需要外部上拉電阻將每條線路的空閑狀態設置為高電平,即當沒有設備將其拉低時:

        I2C 主從驅動程序簡化的硬件示例

        上拉電阻也決定了總線的通信速度,取決于總線的總電容。較高值的上拉電阻將降低通信速率,而較低的電阻值將提供較高的通信速率。內部驅動程序也將顯著決定通信速度。更大的(更高的電流能力)驅動器將產生更快的上升和下降時間并增加潛在的通信速率。一個好的經驗法則是首先考慮使用值為 4.7 kΩ 的上拉電阻,然后在必要時進行調整。此外,在不需要更高速度的情況下降低通信速率可能是一種很好的做法,因為它可以大大降低電容效應,并且總線的功耗也會更低。但是,電阻值必須介于指定的允許限值之間

        不同選擇的上拉電阻值的信號示例

        還可以使用以下公式計算所需的上拉電阻值:

        其中最小電阻值使用以下公式計算:

        V CC – I 2 C 高電平(上拉)電壓嗎
        V OL -
        I 2 C 驅動器的有效邏輯低電平
        I OL -
        是拉低邏輯電平所需的驅動器電流(使電容放電)

        最大電阻值的計算方法如下:

        T r – SCL SDA 線的上升時間
        C b –
        是每條總線的電容負載

        I 2 C 總線的典型參數如下:

        此外,下圖顯示了不同要求如何影響最小和最大上拉電阻限制:

        最小和最大的上拉電阻值圖表

        我們還必須考慮到 I 2 C 總線可以與多個電壓電平設備一起使用。例如,您可以通過將上拉電阻連接到 3.3 V 電源,將公共總線連接到 5 V 3.3 V 設備。這將與兩種設備類型兼容。但是,在某些情況下,這將不起作用,例如,在同時使用 5 V 1.2 V 設備的情況下。此處,一個設備使用的最高電壓 1.2 V 會被另一個設備讀取為低電壓或未知電壓。在這些情況下,邏輯電平轉換器是使兩種設備類型都能使用公共總線的正確解決方案。

        下面是一個示例時間圖,顯示了 I 2 C 總線上的數據位:

        I2C中的數據包示例

        在數據傳輸開始條件 (S) 下,SDA 被拉低,而 SCL 保持高電平

        然后 SCL 被拉低,SDA 設置第一個數據位電平,同時保持 SCL 為低。(藍條)

        SLC 保持高電平時采樣來自 SDA 的數據。SDA 不得在 SLC 的上升沿和下降沿之間改變狀態(綠條)

        該過程以設置的比特率重復

        最后一位由時鐘脈沖設置,在此期間 SDA 被拉低以準備停止位

        SCL 上升并跟隨 SDA 的上升沿時出現停止條件 (P)

        通常,一臺主I 2 C 通信設備最多可支持1008 個從設備。然而,這使得硬件設計非常復雜,并且要求 I 2 C 總線以最低速度運行。這是因為很長的傳輸線的電容增加,使得信號上升和下降時間變慢。高速總線的問題在于,當電容增加太多時,由于信號的上升和下降時間增加,位可能會重疊。

        一種解決方案是,如果總線包括太多從設備,可以使用緩沖或多路復用技術將單個長總線分成更小的段。這將有助于將總線段的電容保持在最大允許值以下,甚至允許使用多路復用器將具有相同地址的多個設備分開。

        緩沖用于將每個段的電容與其他段隔離,并允許在更長的電線或跡線上使用單獨的從站和主站。 

        I2C 總線上的緩沖和復用技術

        在某些情況下,當從設備需要延遲主設備發送更多數據時,它可能需要將時鐘強制為低電平。通常,當從設備在將數據發送到主設備之前需要時間準備數據時,就會發生這種情況。例如,要完成模數轉換或 EEPROM 存儲命令尚未完成寫入非易失性存儲器。此操作稱為時鐘拉伸

        對于一個主設備與多個從設備進行通信,需要一種尋址機制。大多數情況下,從設備地址將由被拉低或拉高的設備上的引腳設置。當主設備發送命令時,所有連接到總線的設備都會收到該命令。但是,在每個消息的開頭,主設備會發送一組尋址位。結果是只有一個設備會響應該命令,該設備將是該命令所針對的設備。其他從設備將忽略該命令。

        有大量可用的 IC 可以使用 I 2 C 總線。這些組件及其應用的一些示例是:

        RTC(實時時鐘)

        低速 DAC(數模轉換器)或 ADC(模數轉換器)

        顯示數據通道的色彩平衡設置

        改變智能數字揚聲器的音量

        與外部存儲設備通信,例如 EEPROM

        控制 OLED LCD 顯示器

        打開和關閉電源 

        請輸入搜索關鍵字

        確定
        国产在线视频在线