I2C 數據傳輸通過物理雙線接口進行,該接口由單向串行時鐘 (SCL) 和雙向數據 (SDA) 線路組成。這些傳輸可以在標準模式下以 100kbits/s 的速度進行,在快速模式下以 400kbits/s 的速度進行,在快速模式 Plus 下以 1Mbits/s 的速度進行,在高速模式下可以以高達 3.4Mbits/s 的速度進行。每個數據速率都有自己的時序規范,主站和從站必須遵守該規范才能正確傳輸數據。I2C 兼容設備必須能夠以自己的最大比特率跟蹤傳輸,方法是能夠以選定的數據速率傳輸或接收數據。有一些細微差別,例如在給定數據速率下正確傳輸數據的設置和保持時間。
圖1,取自恩智浦“I2C-Bus規范和用戶手冊“,描述了一個時序圖,該時序圖提供了I上快速模式器件的各種時序規格的定義2C總線。我們將僅使用快速模式時序圖進行討論,因為LTC I的大多數2C 部分支持此模式。但是,所討論的定義也適用于其他速度模式。我們還將僅討論這些規范如何應用于從屬設備,因為凌力爾特 I2C 兼容設備通常是從設備。
圖1:I2C 快速模式時序定義
上升 (tr) 和秋天 (tf) 次
tr定義為上升沿從 SDA 和 SCL 的 30% 幅度達到 70% 幅度所花費的時間,而f定義為下降沿從 70% 的幅度達到 30% 幅度所花費的時間。
圖 2:上升和下降時間
設置和保持時間
設置時間定義為數據在采樣之前必須保持穩定的時間量。此間隔通常在上升 SCL 邊沿和 SDA 更改狀態之間。另一方面,保持時間定義為開始采樣后的時間間隔。此間隔通常在 SCL 邊沿下降和 SDA 更改狀態之間。在這些時間間隔內保持數據穩定非常重要,因為如果不這樣做,將導致數據采樣不正確。
在我2C 標準 這些間隔中所需的最短時間量(隨運行速度模式而異)針對 START 和 STOP 條件以及數據位指定。我2在這些參數中指定了與C兼容的從設備以識別傳入數據。
啟動條件的設置和保持時間
回想一下,起始條件定義為在 SCL 轉換為低之前 SDA 線變為低電平時,即當 SCL 線變為高電平時,SDA 轉換到低狀態。
圖 3:啟動和停止條件
啟動條件的保持時間 (t硬盤;斯塔):是 SCL 變為低電平之前數據應為低的最短時間。它被測量為從 SDA 的 30% 振幅從高到低過渡到 SCL 振幅的 70% 從高到低過渡所花費的時間。
圖4:(重復)啟動條件的建立和保持時間
啟動條件的設置時間 (t蘇;斯塔):是僅在重復啟動條件下考慮的時序規范。這是SDA線在開始重復啟動之前保持高電平所需的最短時間。這是作為 SCL 從低到高轉換的 70% 振幅和 SDA 從高到低躍遷的 70% 振幅之間的時間間隔來測量的。
停止條件設置
在停止條件下,SDA 在 SCL 轉換為高后轉換為高狀態。參見圖 3。停止條件沒有保持時間要求,但仍需要最短設置時間。
停止條件的設置時間 (t蘇;STO) 測量為 SCL 上升沿的 70% 幅度與停止條件下 SDA 信號上升沿 30% 幅度之間的時間。
圖 5:停止條件的設置時間
數據的設置時間 (t蘇達特)
同樣,數據也有一個設置時間,它被定義為在SCL轉換發生之前SDA達到穩定水平所需的最短時間。這是在下降沿期間 SDA 的 30% 振幅或上升沿期間 70% 的 SDA 振幅和上升沿期間 30% 的 SCL 振幅之間測量的。
圖 6:數據的設置時間
數據有效時間 (tDV;DAT)
數據的有效性在每個數據和時鐘轉換時進行測量。我2C 規范規定了不同速度下允許的最大數據有效時間。數據有效時間 tDV;DAT在 SDA 的下降沿為 30% 或 SDA 的上升沿以 70% 幅度之間測量,參考 SCL 下降沿的 30%。還有一個單獨的確認有效時間規范 tDV;ACK其測量類似于數據有效時間,只是僅在第八個時鐘位的下降沿處測量。參見圖1。
緩沖時間(t迷)
緩沖時間指定停止和啟動條件之間的總線空閑時間。此時間段允許總線上的其他設備檢測到空閑總線并嘗試傳輸數據。從設備通常將此指定為所需的最小總線空閑時間。如果主設備(先前與另一臺設備通信)嘗試尋址從設備,而不讓經過的緩沖時間在其停止和啟動條件之間經過,則從設備可能無法將新的啟動條件區分為單獨的事務,并且可能不會響應。
圖7:公交車空閑時間
現在我們已經定義了各種時序規范,讓我們看看它們是如何由 I 指定的2C 規范。參見圖8,該圖取自恩智浦I2C 用戶手冊。
圖8:恩智浦I2C 時序規格
I2C 規格表定義了其參數,以允許 IC 設計人員設計其 IC 以兼容總線要求。例如,與快速模式I兼容的IC2C語言設計用于識別至少0.6μs的啟動條件保持時間。它可以設計為識別更快的保持時間,但至少應該識別高達0.6μs的時序。
根據此規范,制造商定義 I2其IC的C兼容性有兩種方式。下面提供了其中的示例。
奴隸 I2C 時序規格:兩個視角
LTC?2493 是一款 24 位三角積分 ADC,其指定其 I2C 時序如下:
圖 9:LTC2493 I2C 時序規格表
而 LTC4261 是一款 48V 熱插拔控制器,其指定時序如下所示:
圖 10:LTC4261 時序規格表
注意到差異了嗎?兩種設備具有相同的規格,但以不同的方式呈現,雖然這可能是混淆的根源,但很容易解釋。
LTC2493 時序規格表表示固件設計人員的數據,告訴設計人員該怎么做。例如,重復啟動條件的設置時間指定為最小600ns,這意味著主機需要提供至少600ns建立時間的脈沖。這是 I 的副本2C 規范,并指示固件工程師信號的時序應該是什么。
另一方面,LTC4261 從 IC 本身的角度表示數據,告訴固件設計人員 IC 本身的功能。例如,重復啟動條件的最短建立時間定義為典型數 30ns,最大值為 600n,這意味著 LTC4261 保證最短建立時間不超過 600ns (因此它滿足規格要求的最小 600ns),事實上,它可以識別低至 30ns 的建立時間間隔, 允許更大的時間余量。
因此,即使時序規格描述相同的數據,也可以以不同的方式呈現。在上述兩個示例的情況下,兩個部分都與 I 一致2C標準并遵守I2C 時序要求。
審核編輯:郭婷
-
恩智浦
+關注
關注
14文章
5857瀏覽量
107319 -
總線
+關注
關注
10文章
2878瀏覽量
88051 -
I2C
+關注
關注
28文章
1484瀏覽量
123620
發布評論請先 登錄
相關推薦
評論