I3C協定Single Data Rate(SDR)模式研讀(三):匯流排條件Bus Conditons

2020-08-10 18:31:07

該規範定義了漏極開路上拉電阻和上電保持器,以及I3C匯流排被認爲處於非活動狀態的三種不同條件:無匯流排,可用匯流排和匯流排空閒。

一. Open Drain Pull-Up and High-Keeper

I3C主裝置應提供一個活動的漏極開路上拉電阻,只要匯流排處於漏極開路模式(除下面 下麪詳細說明的情況下,都可以使用弱上拉電阻),該I3C主裝置就應處於活動狀態。

該主動上拉應採用以下兩種方式之一:

  1.作爲來自VDD的無源電阻,或

  2.作爲電流源的無源電阻,或

  3.通過以下兩種方法均可:

   a. 平衡其現有資源以確保SDA在trDA範圍內上升(請參見表57),以及

   b. 不能阻止具有最小IOL驅動器的從裝置(請參見表54)在trDA內將SDA驅動爲低電平(請參見表58)。

除了活動的漏極開路類上拉電阻外,總線上還需要一個高位保持器。 High-Keeper通常用於主機到從機或從機到主機的越區切換,以及可選的終止使用,其中主機可以在高電平時通過將SDA驅動爲低電平來發出終止信號。

總線上的高電平保持要足夠強,以防止系統leakage(即總線上所有裝置的leakage之和)拉低SDA,有時將SCL拉低。 總線上的高電平保持還應足夠弱,以使具有最小IOL驅動器的從器件(參見表54)能夠在最小tDIG_L週期內將SDA,SCL或兩者均拉低。

若主機在總線上提供高電平保持,還要提供一種方法禁用高電平保持。禁用主機提供的高電平保持的原因包括:對於當前系統leakage來說,高電平保持的強度不夠等。

可以使用單個通用上拉裝置來實現主機提供的高電平保持,該裝置能夠同時支援有源漏極開路類上拉功能和弱電平的高電平保持器上拉功能。

無論是實現爲單個組合上拉,還是實現爲兩個單獨的上拉,主站均應根據匯流排狀態根據需要在三個上拉狀態之間分別獨立地切換SCL和SDA:

  1.無上拉(高阻態)

  2.高管上拉

  3.開漏上拉

匯流排應在SDA和SCL上具有高電平保持器。若主機不能提供充足的高電平保持器,則需要系統設計者從外部進行處理。主機不能提供充足的高電平保持器的原因包括:主機不支援高電平保持器,高電平保持器不滿足需求或者匯流排過長等。

SCL和SDA上的系統高電平保持器可以實現爲連線到VDD的一個或多個無源電阻,或者它們可以是有源的匯流排保持器裝置,當相應的線被拉至某個閾值以下時,它們會關閉。SCL和SDA上的系統高電平保持器的大小應在系統leakage和I3C裝置能夠在tDIG_L週期內將相應的線拉低的要求之間進行平衡。

注意:

在SDA碰巧已經爲高(即即將進入SCL下降沿)的開漏模式下,主機可以選擇不使用開漏上拉電路。 在這種情況下,如果從裝置將SDA驅動爲低電平,則主裝置可以選擇僅依靠高電平保持器,以使用較少的功率。

二. Bus Free Conditon

匯流排空閒狀態定義爲在STOP之後到START之前發生的時間段,其持續時間如下:

  •對於純匯流排:持續時間至少爲tCAS(請參見表58)

  •對於混合匯流排(即,I3C總線上至少存在一箇舊式I2C裝置):持續時間至少爲tBUF(請參見表57)

三. Bus Available Condition

匯流排可用狀況定義爲持續保持匯流排空閒狀況至少tAVAL的時間(請參見表58)。 從機只能在匯流排可用狀態後發出啓動請求(例如,帶內中斷或主切換請求)。

四. Bus Idle Condition

定義I3C匯流排空閒條件是爲了幫助確保熱連線事件期間的匯流排穩定性。 匯流排空閒狀態定義爲一段持續時間,在此期間內,匯流排可用狀態(請參閱第5.1.3.3節)持續持續至少tIDLE的時間(請參見表58)。

注意:

如果熱連線裝置與主裝置同時加電到I3C總線上,則在以下情況下,熱連線裝置可能在1毫秒後將SDA拉低:(1)主裝置上拉SCL和SDA,並且 (2)主機在相同的空閒時間內沒有作用於I3C匯流排。

五. Activity States

I3C提供了一種機制 機製,使主機可以將I3C總線上預期的即將發生的活動級別通知從機,以幫助從站更好地管理其內部狀態。 定義了從0到3的四個活動狀態級別(請參見表12)。

活動狀態編號用作從機的提示,指示主機將匯流排活動引導到該從機之前需要多長時間,以及響應從機將SDA拉低(例如,對於START請求到SDA的響應)可能期望的延遲。然後生成帶內中斷請求或主切換請求)。

主機使用CCC命令ENTAS0,ENTAS1,ENTAS2和ENTAS3(請參閱第5.1.9.3.2節)將四個預期的匯流排活動狀態傳達給從機。每個ENTASx CCC都具有廣播版本和定向(按從屬)版本。主機可以通過發出適當的ENTSAx CCC命令,以任何方式在任何時間切換到不同的活動狀態。

從機可以使用接收到的活動狀態提示來調整內部設定,例如節電,FIFO觸發級別,時間戳計數器和時鐘速率以及其他合適的操作參數。但是,不需要從機來支援活動狀態CCC(ENTASx),甚至可以完全忽略。

        活動狀態機制 機製是主機與從機之間達成普遍協定的基礎,即,從機可能會比一般時間因素更早地拒絕發生任何存取。 例如:如果主機發送ENTAS2 CCC,這意味着主機不太可能在發送CCC之後的2 ms之前發起請求,那麼僅在1 ms之後到達的請求可能會導致NACK(儘管如果在50us之後重複請求,即從機重新喚醒後,請求將被確認)。結果,從機將在任何匯流排活動或與7’h7E及其自己的動態地址匹配時喚醒。

        活動狀態CCC同時還調整I3C匯流排時序參數tCAS的最大值(START之後的時鐘;請參見表58),主機響應從裝置將SDA拉低而產生SCL時鐘(驅動SCL爲低電平)所花費的最長時間。注意,tCAS只是最壞的情況;它並不表示主機是否會應答帶內中斷請求或主機請求。此外,選定的活動狀態並不一定指示主機響應於帶內中斷從從機讀取附加數據的時間;那是主機從機之間的私有聯繫。不支援ENTASn CCC的從機的tCAS最大值爲50毫秒(ENTAS3值)。

        活動狀態無需替代更精確的電源模式,也不替代任何其他可能由主機從機的私有聯繫支援的機制 機製。例如,如果從機具有裝置電源模式設定,則主機應使用該機制 機製將從機置於所需狀態。同樣,從機可以提供FIFO觸發級別設定,與主機響應帶內中斷請求而必須讀取FIFO內容的時間有關;如果是這樣,則主機應使用該設定來匹配其內部延遲。