視焦點訊!I2C總線的基本結構

2023-06-02 10:20:23 來源:硬件系統架構師

I2C-1-----I2C的基本結構

引言:我們將討論一些用于實施I2C硬件的關鍵設計參數,利用簡單、穩健的低成本協議在IC之間進行通信,同時盡可能減少引腳數量。隨著外設部件的種類日益增多,I2C能夠給系統設計人員帶來的好處顯而易見:很多器件都會使用I2C接口,這里我們只列舉幾種可以使用的器件:IO擴展器、溫度傳感器、光傳感器、存儲器、鍵盤掃描儀、壓力傳感器濕度傳感器ADCDAC以及I2C協議中使用的多種其他器件。


【資料圖】

1.I2C的結構

在I2C總線上,如圖1-1所示,主設備可以連接到一個或多個從設備。總線只包含兩條線:串行數據線SDA和串行時鐘線SCL。

圖1-1:I2C總線上掛四個設備

圖1-2表示了SDA/SCL線上從設備或主設備的內部結構的簡化視圖,包括用于讀取輸入數據的緩沖器和用于傳輸數據的下拉FET。設備只能將總線拉低(提供對地短路)或釋放總線(對地高阻抗),并允許上拉電阻器拉高總線電壓。這是在處理I2C設備時要實現的一個重要概念,因為沒有設備可以將總線保持在高位。這一特性允許進行雙向通信。

圖1-2:內部開漏式驅動器和緩沖器

圖1-3所示主器件拉低了總線,因此在總線上生成了低電平信號,信號向右傳輸。

圖1-3:主機向從機發信息

隨后,我們可以看到從器件拉低了總線,然后生成了低電平信號(圖1-4),信號向左傳輸。

圖1-4:從機向主機發信息

漏極開路是指一種輸出類型,它可以將總線拉低至電壓(在大多數情況下為接地),或者“釋放”總線,讓其被上拉電阻器拉高。如果總線被主設備或從設備占用,當從設備或主設備希望傳輸邏輯高電平時,它只能通過關閉下拉FET來釋放總線。這使總線浮動,上拉電阻器將總線電平拉至電壓軌,這將被解釋為高。由于沒有任何設備可以在線路上強制設置高電平,這意味著總線永遠不會遇到通信問題,其中一個設備可能會嘗試傳輸高電平,而另一個設備會傳輸低電平,從而導致短路(電源軌接地)。I2C要求,如果多主機環境中的主機發送高信號,但看到線路低(另一個設備正在將其拉低),則由于另一設備正在使用總線而停止通信。推拉接口不允許這種自由的類型,這是I2C的優點。這樣,它就具備了雙向性質。

2.I2C的地址和模式

SCL(串行時鐘)= 這是一個由主設備驅動的方波,控制數據發送的速度以及數據鎖存到從設備的時間。

SDA(串行數據)= 主數據和從數據以半雙工方式與時鐘脈沖同步放置在這條線上。這條線上的數據包括地址、控制和通信數據。

I2C協議是8位數據結構,這是大多數微控制器和處理器中常用的數據格式。這樣主器件 即可使用7位或10位地址與從器件進行通信。8位中的7位表示地址。最后一個位表示消息的方向,高電平表示讀取操作,低電平表示寫入操作。I2C協議基于地址,這意味著所有從器件都有一個唯一的地址,此地址通常是在硬件中將地址引腳連接到邏輯高電平或低電平而確定的。

? I2C中的典型尋址為7位尋址,具有用于讀或寫指示的附加位

? I2C總線上的每個設備必須具有唯一地址

? 重復地址將導致通信錯誤

? 某些設備可能具有引腳可編程I2C地址

圖1-5:帶器件地址編程引腳

在圖1-5中,我們會看到地址引腳A2、A1、A0拉至接地。這樣二進制的地址 就是1、1、1、0、0、0、0,以十六進制表示為70。有些從器件沒有地址引腳,而是采用無法更改的靜態內部地址,而有的則是采用寄存器配置內部地址,但它有一個默認地址。讓總線采用并聯連接是一種別出心裁且非常有用的做法,原因在于器件非常簡單,可以連接到總線上的任意位置。此外,還可以隨時連接這些版本的從器件。

I2C總線具有多種運行模式。每種模式都涵蓋多個運行時鐘頻率并具有多種用來約束協議的限制。對每種模式最重要的要求是最高時鐘頻率、最大總線電容和最長上升時間,I2C標準中定義了所有這些要求。三種最常用的運行模式包括:標準模式,運行頻率介于0-100KHZ之間,最大總線電容為400pF,最長上升時間為1000ns;快速模式,運行頻率介于0-400KHZ之間,最大總線電容為400pF,最長上升時間為300ns;以及超快速模式,運行頻率介于0-1000KHZ之間,最大總線電容為550pF,最長上升時間為120ns。表1-1:

表1-1:運行模式一覽

3.I2C的總線電容

I2C協議物理層是一個簡單的雙線總線,利用開漏架構實現雙向通信,而不像其他接口那樣使用推挽或差分驅動器。主器件和從器件具有用于SCL和SDA的輸入緩沖器,并可以具有用于SCL和SDA的開漏驅動器,始終存在一個用于生成高電平的外部電路。在大多數情況下,此操作由上拉電阻器執行。這表明主器件或從器件都可以 使用開漏驅動器在總線上拉低,以生成0或低電平。也就是說,會打開N通道,在某些情況下是雙極NPN。 高電平完全取決于上拉電阻器。必須注意的是,I2C標準為每種運行模式指定了 最大總線總電容。這包括總線上由于跡線而產生的寄生電容(寄生電容的計算方式后面會講到),此電容是總線及其回路接地的寬度、長度、電介質材料以及它們之間的距離的一個函數,如圖1-6所示。總線中的每個器件也會導致總線的電容增大。

圖1-6:I2C總線上的總線電容

I2C標準為每種運行模式限制了總線電容Cbus的總量,此值定義了最高時鐘頻率。為了滿足所使用運行模式的時序要求,我們需要保持在最長上升時間規格內,圖1-7表征了總線電容的充放電效應導致上升沿變緩。

圖1-7:總線電容充電效應帶來的影響

SCL和SDA的最長上升時間規格由我們的上拉NC總線所創建的RC時間常數控制,并被定義為從VIL過渡到VIH時所花費的時間如圖1-8定義。

圖1-8:Rise time 定義為30%-70%

標簽:

上一篇:環球即時看!I2C總線協議的工作流程
下一篇:最后一頁