新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 數字接口——I2C 總線

        數字接口——I2C 總線

        作者: 時間:2011-03-23 來源:網絡 收藏

        數字接口——I2C 總線

        了解內部集成電路總線(一種基本的低成本互聯方案)的連接和格式。

        內置集成電路 (I2C) 總線是一種單端、多主控雙線總線,適合在半雙工模式下進行高效的內部集成電路通信。該總線使用漏極開路技術,因此通過電阻器連接到 VDD 時就需要兩根信號線,分別為串行數據 (SDA) 線和串行時鐘線 (SCL),如圖 1 所示。

        圖 1 I2C 總線

        將線路拉低至接地認為是邏輯 0,而使線路浮置則為邏輯 1。通常將這用作通道接入方式。當 SCL 為低電平時,必將發生邏輯狀態變化;當 SSL 為高電平時,若發生變化則認為是 START 和 STOP 條件。盡管系統允許提供更高或更低的電壓,但典型的電源電壓為 3.3V 和 5V。

        I2C 通信采用 7 位地址空間(具有 16 個預留地址),因此在同一總線上,理論上最多可以和 112 個節點通信。但實際上,節點數會受到總線上規定的總體總電容 (400 pF) 限制,從而將通信距離限制為幾米。規定的信號傳輸速率為 100 kbit/s(標準模式)、400 kbit/s(快速模式)、1 Mbit/s(快速模式Plus,FM+)和 3.4 Mbit/s(高速模式)。

        總線上的節點有主從之分。主節點負責發布時鐘和從節點地址,并且還開始和結束數據處理。從節點負責接收時鐘和地址,并響應來自主節點的請求。圖 2 顯示了主從節點之間典型的數據傳送示例。

        圖 2 完整的數據傳輸時序圖

        主節點通過創建一個 START 條件發布一個數據處理,緊接著發布希望與其進行通信的從節點的 7 位地址。隨后發送一個信號讀寫位,表示主節點是否愿意寫入到從節點 (0) 或者自從節點讀取 (1)。接下來,主節點將釋放 SDA 線,以允許從節點對數據接收作出應答。

        在第 9 個 SCL 時鐘脈沖的整個高電平期間,從節點通過將 SDA 拉至低電平以回應一個應答位 (ACK),之后主節點一直處于傳輸或接收模式(根據發送的讀寫位而定),而從節點則一直處于對應的互補模式(分別為接收或傳輸)。

        發送地址和 8 位數據字節時首先發送最高位 (MSB)。當 SCL 為高電平時,通過 SDA 由高電平向低電平跳變來指示 START 位。而當 SCL 為高電平時,則通過 SDA 由低電平向高電平跳變來產生 STOP 條件。

        當主節點寫入到從節點時,它會在從節點發送 ACK 位時重復發送一個字節。在這種情況下,主節點將處于主傳輸模式,而從節點則處于從接收模式。當主節點自從節點讀取時,它會重復接收自從節點的字節,同時對每個字節的接收作出應答 (ACK),但最后一個字節除外,請參見圖 3。這種情況下,主節點將處于主接收模式,而從節點則處于從傳輸模式。

        主節點將以 STOP 位結束傳輸,或者可能為進行下一步傳輸而發送另一個 START 位以保持總線控制。

        圖 3 數據傳輸期間傳輸/接收模式的變化情況

        當寫入到從節點時,主節點將主要以傳輸模式運行,并且只有自從節點接收應答時才會更改為接收模式。

        當自從節點讀取時,主節點將以傳輸模式啟動,然后在發送 READ 請求(讀寫位=1)到從節點后會更改為接收模式。從節點將一直處于對應的互補模式,直至結束該任務。

        請注意,主節點將通過在最后接收的字節后面跟隨一個無應答 (NACK) 來結束讀取序列。此步驟會復位從狀態機,并允許主節點發送 STOP 命令。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 明水县| 太仓市| 镇远县| 临西县| 瓦房店市| 江源县| 邵武市| 苍山县| 哈密市| 河间市| 芷江| 门源| 玉屏| 平武县| 甘孜县| 庄浪县| 桂平市| 乐山市| 上林县| 诸城市| 万载县| 新巴尔虎左旗| 融水| 谢通门县| 革吉县| 绥化市| 哈密市| 济宁市| 彭水| 恩施市| 左贡县| 绍兴市| 荥经县| 中西区| 二连浩特市| 雅安市| 晴隆县| 民县| 襄城县| 郯城县| 濉溪县|