MIPI I3C - a new 2-Wire I/F aiming for growing sensor proliferation

前言: 一直想將工作或生活上所學到的東西整理起來, 一方面留下紀錄將來備查方便, 另一方面也是希望將來回頭看可以發現自己有完成些什麼(而不是一事無成lol)~~!! 總之, 第一篇就挑個簡單主題試試水溫囉.

MIPI I3C - a new 2-Wire I/F aiming for growing sensor proliferation
(相關參考文件可以在 MIPI alliance下載, 正式spec需加入MIPI協會才能索取)
簡單來說, I3C是由MIPI協會由2013開始研究, 並於2016公開的一種新I/F spec. 從標題可以簡單地發現此種I/F由兩根實體走線組成, 而且是專門用於各種sensor與AP/Sensor hub之間溝通.
先說幾個結論:



  • Vision - 將各種Sensor所需各式各樣的H/W wire (eg. IRQ, SLP_N, EN, DRDY, ..)簡化成兩條線!
  • I2C Compatibility - Single Data Rate (SDR) mode可向下相容於目前十分普遍的I2C I/F.
  • Lower Power - 與I2C相比大幅降低能耗(mJ per Megabit), 在Mobile use-case中可幫助提高Battery life. 主因為I3C spec在I/F physical layer (至少)將clock line (SCL)由"Open-drain"更改為"Push-pull" driving, 而此變動有助於改善耗電以及提高時脈.
  • Higher Data Rates - 新定義出三種High Data Rate (HDR) mode: HDR-DDR, HDR-TSL/TSP. 目前看到的時脈為12.5MHz, 其中DDR mode較容易理解, 僅為增加SCL falling edge data latch (PS. I2C及I3C SDR mode僅在SCL rising edge latch data). HDR-TSL/TSP則是將SCL拿來當作第二條Data line, 並套用"Ternary Symbol Coding"以增加Data throughput (後面會有較詳細解釋). 總的來說: I3C max effective data rate = 33.3Mbps at 12.5MHz clock > 0.35Mbps at 400kHz (Fast Mode) or 3Mbps at 3.4MHz (High Speed Mode) for I2C.
另外, 在2016 MIPI DEVCON也有特別強調幾個I3C的功能:
  • Dynamic Address Assignment
    • Bus master assigns addresses to slaves during initialization. Each device shall have two characteristics registers and an internal 48-bit Provisional ID to aid the procedure. 
    • 在每次init.過程中, master透過上述 registers/PID設定得知bus上各sensor之類別以及SDR/HDR支援程度, 再動態分配7-bit address給各個device. 而Legacy I2C device仍沿用其固定位址. 好處是不需要再擔心位置衝突造成Bus crash.
  • In-band Interrupt
    • Condition: Slave device can issue START when in “Bus Available” state.
    • 將各種Sensor所需各式各樣的H/W wire (eg. IRQ, SLP_N, EN, DRDY, ..)簡化成兩條線.
  • Hot-Join
    • Allows Slaves to join the I3C Bus after it is already configured.
    • 不論是物理插拔或是為了省電而關開裝置, 新上線的I3C裝置可以通知Master以獲取Dynamic Address.
  • Common Command Codes (CCC)
    • Standardized command mode with extensible set of MIPI-defined codes that can be Broadcasted and/or Directed, Read and/or Write.
關於HDR-TSL/TSP, 特別拉出來解釋如下:
因為將SCL也拿來當第二條Data line, 時脈只能內含在data pattern or "Symbol"裡面. 於是規定SDA/SCL至少一條訊號要有High/Low Transition來定義出一個個Symbol, 因此每個Symbol都可以有三種可能狀態(需與上個symbol不同) => 一個Binary code內編譯入三種狀態(Binary to Ternary encoding), 增加了50%頻寬利用率! (Max data rate 33Mbps ~ 12.5MHz * 2 (double-data rate) * 1.5 (binary to ternary) * 0.8 (overhead))

結論: 其實還有許多細節沒有涵蓋到, 像是各種Handshake mechanism, Timing Control, Electrical spec, etc. 若需要還是得去仔細研究正式的I3C Specification文件囉.

留言

這個網誌中的熱門文章

High Speed Transmission - Channel loss budget

High Speed Transmission - Intro.

High Speed Transmission - Fiber Weave Effect