I2C匯流排之 一 概述

2021-07-27 07:08:07 字數 1193 閱讀 2390

概述:

i²c 是inter-integrated circuit的縮寫,發音為"eye-squared cee" or "eye-two-cee" , 它是一種兩線介面。

i²c只是用兩條雙向的線,一條 serial data line (sda) ,另一條serial clock (scl)。

scl:上公升沿將資料輸入到每個eeprom器件中;下降沿驅動eeprom器件輸出資料。(邊沿觸發)

sda:雙向資料線,為od門,與其它任意數量的od與oc門成"線與"關係。

輸出級

每乙個i2c匯流排器件內部的sda、scl引腳電路結構都是一樣的,引腳的輸出驅動與輸入緩衝連在一起。其中輸出為漏極開路的場效電晶體,輸入緩衝為乙隻高輸入阻抗的同相器,這種電路具有兩個特點:

1)由於sda、scl為漏極開路結構(od),因此它們必須接有上拉電阻,阻值的大小常為 1k8, 4k7 and 10k ,但1k8 時效能最好;當匯流排空閒時,兩根線均為高電平。連到匯流排上的任一器件輸出的低電平,都將使匯流排的訊號變低,即各器件的sda及scl都是線"與"關係。

2)引腳在輸出訊號的同時還將引腳上的電平進行檢測,檢測是否與剛才輸出一致,為"時鐘同步"和"匯流排仲裁"提供了硬體基礎。

主裝置與從裝置

系統中的所有外圍器件都具有乙個7位的"從器件專用位址碼",其中高4位為器件型別,由生產廠家制定,低3位為器件引腳定義位址,由使用者定義。主控器件通過位址碼建立多機通訊的機制,因此i2c匯流排省去了外圍器件的片選線,這樣無論匯流排上掛接多少個器件,其系統仍然為簡約的二線結構。終端掛載在匯流排上,有主端和從端之分,主端必須是帶有cpu的邏輯模組,在同一匯流排上同一時刻使能有乙個主端,可以有多個從端,從端的數量受位址空間和匯流排的最大電容 400pf的限制。  

二者都可以傳輸資料,但是從裝置不能發起傳輸,且傳輸是受到主裝置控制的。

4.速率:

普通模式:100khz;

快速模式:400khz;

高速模式:3.4mhz;

沒有任何必要使用高速scl,將scl保持在100k或以下,然後忘了它吧。

p.s:時序部分將在第二天更新,fpga實現在第三天。

I2C匯流排之 一 概述

1.概述 i c 是inter integrated circuit的縮寫,發音為 eye squared cee or eye two cee 它是一種兩線介面。i c 只是用兩條雙向的線,一條 serial data line sda 另一條serial clock scl scl 上公升沿將資...

i2c匯流排時序

一心想踏入linux device driver的世界,想著i2c匯流排相對於usb等其他匯流排較為簡單,就以i2c作為切入點,希望可以逐步理解ldd的設計思想,並能理解其裝置模型的概念。在此對近期於i2c匯流排及驅動原始碼的理解做備忘,以免徒勞。平台友善之臂s70 tiny6410 cpusams...

I2C匯流排死鎖

原文 現象 最近發現訪問i2c裝置時,主裝置復位可能會引起i2c死鎖,表現為scl為高,sda一直為低,後發現是從裝置拉死i2c匯流排,從裝置斷電之後,sda變高,上電後通訊正常。後來通過拉低scl訊號線,sda就會自動變成高電平,i2c匯流排恢復。原因 在正常情況下,i2c匯流排協議能夠保證匯流排...