精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MIPI-I3C總線接口簡述

海馬硬件 ? 來源:海馬硬件 ? 2023-10-25 10:23 ? 次閱讀

寫在前面

訪問MIPI Allliance官方網站時,發現早在2013年MIPI聯盟就已建立了“MIPI I3C Working Group”,后來在2018年10月發布了I3C規范v1.0版,目前已經更新到了2021年6月的v1.1.1版。作者本人雖然在實際項目上并無I3C的應用,但出于對新事物的好奇,決定寫下本篇文章。本文內容多源于MIPI Allliance官方網站、論壇、博客等,因此,它僅作為碎片化知識的整理、記錄,重點分享下I3C的主要特點以及與I2C的關系。

I3C簡介

I3C,全稱Improved Inter-Integrated Circuit,顧名思義,它是I2C(Inter-Integrated Circuit)的橫向升級版,可向下兼容。

眾所周知,I2C在上世紀80年代由Philips公司推出,當初是為了簡化計算機各芯片之間的數據通信方式而產生,經過數十年的發展,速度從最初的100Kbps提升到3.4Mbps(超高速模式5Mbps不常用)。I2C的應用在控制系統中已經非常廣泛了,作為1種同步串行總線,相比板上其它設備間通信接口,它具有總線結構簡單(2線,OD輸出,SCL/SDA)、一主多從、低功耗、高可靠性等特點。

推出I3C,并非為了替代I2C總線,而是一脈相承,它主要解決了I2C現存的問題,在低成本的產品中,I2C依然是高性價比的選擇。

在I2C中,這些局限性包括每個從設備擁有一個7位的固定地址,在掛載多設備時可能存在 I2C總線設備地址沖突,I2C還有不帶內中斷或目標設備復位(需要額外的導線/引腳)、較低的數據速率等缺陷。在SPI中,一些主要局限包括每個器件有一個芯片選擇引腳但需要四條通信線路,以及由于缺少明確定義的標準(如數據位寬)而存在許多不同的實現方式(如CPOL/ CPHA四種工作模式)。

借用NXP網站的描述:I3C“在標準CMOS I/O上,它支持10Mbps的最低數據速率,具有更高性能的高數據速率(HDR)模式的選項,與現有選項相比,性能和功耗效率大幅提升。它還提供多主機支持、動態尋址、命令代碼兼容性和高級電源管理功能(如睡眠模式)的統一方法。”總結成一句話:它非常適合應用于高速、多主機、多從機(傳感器)等應用場景。I3C總線的速度提高了,功耗降低了,效率提升了,在需要更精簡、高性能、高速度、可擴展和具有成本效益的通信應用中,I3C應運而生。

應用場景

物聯網IoT)行業、移動設備、汽車系統、服務器、工業設備等。

面向傳感器應用:用于需要精簡連接和多傳感器管理的場景,統一碎片化的傳感器接口

希望提高通信速度和效率、同時需要簡化總線接口的應用場景。

I3C主要特性

I3C接口特性如下:

40dacb24-72dd-11ee-939d-92fbcf53809c.png

1.速度:SDR模式(單邊沿采樣)基礎速率12.5Mbps(最低10Mbps),HDR模式(雙邊沿采樣)理論最大速率39.5Mbps(實際有效傳輸速率在33.3Mbps左右)。

2.功耗:最低支持1.2V電平(支持1.8V/3.3V,不支持5V)。在同樣的電平標準下,整體功耗遠小于I2C。

3.總線結構:兩線(SDA/SCL)串行接口,開漏/推挽可靈活切換,支持多主多點功能(Multi-Controller and Multi-drop capabilities)。

4.熱加入機制(Hot-Join):I3C協議支持熱加入機制,以允許從設備在已配置后加入I3C總線。

5.動態地址(transaction):支持,從設備地址由當前的主控制器(Active Controller)初始化后分配,通常在上電后完成。

6.中斷機制(In-Band Interrupt):支持內中斷,從設備通過I3C總線產生中斷并通知主控制器,節省1根INT線。

7.向下兼容I2C:在基礎模式中兼容I2C總線。

?I3C特性介紹

1.傳輸速率

I3C的理論傳輸速率相較I2C提升了12.5 倍至 125 倍。如下圖所示,I3C支持多種速率的工作模式,其中,

SDR 模式:12.5Mbit/s,Single Data Rate Mode,I3C的默認模式。

HDR-DDR模式:25Mbit/s,High Data Rate Mode,Dual Data Rate Mode。

HDR-TSL模式:30 Mbit/s,Ternary Symbol Legacy-inclusive-Bus。

HDR-TSP模式:39.5 Mbit/s,Ternary Symbol for Pure Bus (no I2CDevices)。

40f86346-72dd-11ee-939d-92fbcf53809c.png

值得說明的是,MIPI聯盟定義了I3C復雜的協議規范,但HDR-TSP模式和HDR-TSL模式并不被包含在I3C的基礎結構(I3C Basic),作者的理解是,若要實現這兩種HDR模式,需要專門的IP,而且對主從設備工況的要求也更嚴苛。因此作者將I3C HDR和I3C Basic理解為兩個概念,它們擁有不同的總線架構、時序、協議規范。相比完善、高靈活度和高效的I3C接口,I3C Basic是一個降低了性能、低復雜度的版本,適用于板內設備連接應用,比如傳感器和內存接口。I3C Basic滿足開發者和普通用戶組織的設計與應用。個人理解,從普通應用層面來說,I3C最大僅支持25Mbps速率(HDR-DDR模式)。

另外,上面提到的I3C速率指的是單通道模式下的理論和實際速率,如下圖所示,I3C還有多通道模式(Multi-Lane,HDR-BT)。多通道指的是使用多根SDA數據線,如雙通道(HDR-BT DUAL)、四通道模式(HDR-BT QUAD)。在HDR-BT(HDR Bulk Transport)四通道模式中,最高速率可以達到100Mbps(實際速率約97Mbps,即12MB/s),它是SDR模式的8倍。HDR-BT支持SDR、HDR-DDR、HDR-TSP。同樣地,多通道HDR-TSP和SDR并不被包含在I3C Basic版本中。

410b7a76-72dd-11ee-939d-92fbcf53809c.png

實現I3C高性能/高效率通信(HDR模式),需滿足以下條件:

在布局上,從設備(Targets)靠近主設備(Controller),且走線無延遲;

每根線上的最大漏電流:4μA;

驅動端(主/從)的內部等效電阻:90Ω;

總線的主時鐘頻率:12.5MHz;

總線工作在1.8V電平;

總線上拉電阻取值:2833Ω;

高低電平寬度保持一致(Equal probability for 1 and 0 on data transmission,猜測是要求在保證可靠的建立保持時間基礎上,提高傳輸效率)。

在傳輸效率上,同樣傳輸1kB的數據量,I3C消耗的時間(ms)遠小于I2C。

41160ed2-72dd-11ee-939d-92fbcf53809c.png

2.功耗

1)功耗對比

在SDR模式下,同樣傳輸1kB的數據量,單通道I3C的功耗要小于單通道I2C約6mJ,降低約70%(從柱狀圖來看)。I3C也有睡眠模式(暫未詳細了解)。

412cb664-72dd-11ee-939d-92fbcf53809c.png

2)DC特性

這里主要介紹下I3C支持的電平標準。

I3C支持1.2V、1.8V和3.3V電平標準(CMOS,閾值30%/70%),它甚至支持更低電平(如1.0V)。I3C在5V的CMOS電平標準上表現并不突出,但如果有足夠的驅動強度,且/或降低傳輸速度的情況下,可擴展支持5V(直譯過來很繞)。

當工作在推挽(Push-Pull/Totem-Pole)模式時,SDA信號可以達到更高的速度,此時總線電容須不大于50pF。在1.0V的標稱工作電壓支持100pF容性負載,以用于新用途,如DDR5中的串行狀態檢測(SPD),由于速度提升,可擴展從設備的數量,提高了系統的啟動速度。

4139c5ca-72dd-11ee-939d-92fbcf53809c.png

有關DC詳細參數見Specificationfor I3C Basic.pdf 中的“I3C Electrical Specifications”章節。

3. 總線結構

I3C有2種總線結構,分別是開漏和推挽。保留開漏結構是為了兼容I2C的低速應用,而I3C在SDR/HDR高速模式中使用了推挽方式,它的驅動能力更強,但需要控制器針對性的設置。

I3C有個很重要的特點,即規范上定義了I3C兩種工作模式,分別是同步時序控制模式和異步時序控制模式(AsyncMode 0-3)(這里作者還不理解,后續再研究),異步時序控制模式指的是主機和從機工作的時鐘源、時鐘頻率、時鐘精度不同。

總線上掛載的各個設備連接關系如下圖所示。這里先來個名詞解釋:

I3C PrimaryController:主控制器,可以支持或不支持HDR模式。

I3C SecondaryController:輔控制器(第2控制器),可以支持或不支持HDR模式,可以作為主機。

I3C Target:I3C從設備(目標設備),可以支持或不支持HDR模式。

I2C Target:不支持HDR模式,指的是傳統的I2C低速設備。

當所有設備共同掛載到1個I3C總線時,總線被命名為“混合快速總線(Mixed Fast Bus)”,若僅有I3C設備時,被成為“純總線(Mixed Bus)”;還有1個“混合低速/受限總線(MixedSlow/Limited Bus)”。混合快速總線和混合低速/受限總線的主要區別就在于I2C設備是否存在50ns的尖峰濾波器(下文會提到)。

414559f8-72dd-11ee-939d-92fbcf53809c.png

4.熱加入機制(Hot-Join)

在I3C 中,目標設備被允許加入已配置的總線,并由 I3C 控制器分配一個動態地址。憑借I3C 中的這種熱加入功能,可以在運行期間開啟和關閉總線上的某些器件,從而實現“分段式供電”設計,僅在需要時才使相關單元保持活動狀態。在一些應用中,如果不希望或不可能讓系統斷電(例如在服務器或無線基站中),或必須正確設計熱插拔功能(在背板或外部卡中)時,此特性將非常重要。

415b83e0-72dd-11ee-939d-92fbcf53809c.png

5.動態地址

I3C有著一整套通用命令字的集合,可以通過這些命令字實現動態地址分配、檢查當前總線狀態、時間控制、IO擴展等等功能。I3C從設備地址由主設備仲裁,但并不是所有設備地址都可用,部分地址是I3C標準所保留的,用于后期拓展或者錯誤仲裁。

6.中斷機制

I3C無需增加外部中斷線即可實現中斷響應。

I3C帶內中斷,有地址仲裁特性(In-Band Interrupt,IBI),當從機產生中斷,IBI向主機發送中斷信息、地址和其它信息。若有多個從機中斷,較低的地址具有較高的優先級(具有較低值地址和較高優先級、帶內中斷的從機對控制器的處理請求要比具有較高值地址和較低優先級的從站更快<直譯過來很繞>,原文:Targets with lower valueAddresses and higher Priority Levels have their In-Band Interrupts andController Role Requests processed sooner than Targets with higher valueAddresses and lower Priority Levels)。地址仲裁特性對熱插拔、動態地址分配以及多主機申請同樣有效。

7.向下兼容I2C

I3C與I2C總線數量(2根,SDA/SCL)相同,在同一組I3C總線上可以同時掛載I2C設備(工作速率不同);

I3C 總線支持傳統 的I2C 通訊,I3C通信使用推挽結構,I2C通信使用開漏結構;

I3C支持動態地址分配,也同時支持傳統 I2C 設備的靜態尋址;

如下圖所示,I3C總線可以將時鐘速度更改為允許速度范圍內的任何頻率。相比之下,當傳統I2C設備掛載到混合快速總線中,為了不引起傳統I2C器件參與到總線進來,I2C需要擁有50ns Spike Filters,也就是說,必須確保總線上的SCL高電平周期比Spike濾波器短(SCL時鐘頻率大于12.5MHz),每個傳統I2C 從機的SCL線需要配有 50ns 尖峰濾波器,目的是忽略掉下圖的“DIG_H_MIXED”高電平段(脈寬范圍32~45ns),以防止Legacy I2C器件受到干擾(作者的理解是,這一段是I3C SDR/HDR模式的最小脈寬,芯片內部增加濾波電路將其濾掉)。

417bfbf2-72dd-11ee-939d-92fbcf53809c.png

I3C基本時序(SDR)

1.I3C通信流程概括

I3C支持多種通訊方式,先貼一張I3C通信總體流程圖(4.1 I3C FundamentalPrinciples 章節):

4186d478-72dd-11ee-939d-92fbcf53809c.png

由于還沒去詳細的研究時序,這里先簡要的說明下:

首先,I3C完整的幀包含START、Header、Data、STOP,這個與I2C和其它總線接口都大同小異。在START之后,主機利用Header來尋址從機設備(靜態地址、動態地址、廣播地址、熱加入地址)。Header允許總線仲裁,從機設備也可以將Header仲裁用于多種目的:內中斷,熱加入和輔助主設備功能(I3C總線只能有1個主控制器控制總線,總線上輔助主設備可通過某種機制使用來替代主控制器,也就是多主機機制)。

上圖中的CCC(CommonCommand Code,通用命令代碼)是全局支持的命令,可以直接傳輸到特定的I3C從設備,也可以同時傳輸到多個I3C從設備,它可以在同一條總線上執行多個命令。它是主從設備之間的一種通信機制(網上有人把CCC比喻成Linux的Shell指令),通常由主設備發給從設備,用于獲取和設置從設備的功能、配置信息,它提高了主設備對從設備的管理能力。CCC也支持雙向通信,用于確認主從雙方的指令。CCC不適用于傳統I2C接口。

在啟動或重復啟動之后,CCC的地址始終為7’h7E,而讀寫Rn/W位應始終為W。一旦分配了I3C從機,所有I3C從機都將識別7’h7E廣播地址和它們自己的動態地址。 在分配I3C動態地址之前和之后,I3C主機均應發出CCC命令。CCC命令分為廣播(Broadcast)寫、直接(Direct)讀/寫、直接寫、直接讀取四類(具體有點復雜,詳細了解CCC,需要再熟讀5.1.9章節),廣播命令碼有255個,范圍0x00 - 0x7F,上圖中7’h7E是廣播地址,直接命令碼范圍是0x80 - 0xFE。

后面是數據的傳輸,數據按照SCL上升沿邊沿(HDR模式是雙邊沿采樣)進行采樣。上圖中,傳統I2C是在數據傳輸完成后由接收方發送ACK或NACK(即框圖中的DATA.ACK),而與傳統I2C不同,在I3C SDR模式中提到了“Data. T”字樣,即T Bit,它是Transition Bit(過渡位)的簡稱,作為ACK/NACK機制的替代方式而推出。值得說明的是,T Bit是第9位數據,它是作為奇偶校驗存在的,即使I3C SDR沒有ACK機制,但總線協議中有一些錯誤事項的標志位可以用來替代NACK事件的發生(此處存疑,待研究),CCC命令也定義了數據讀寫的最大長度,會提前通知目標設備(從機)。

當主機(Controller)從從機(Target)中讀取返回的數據,產生的T-Bit是最后1個數據位,不像I2C,從機無法控制其發送數據的數量,I3C的從機通過返回T-Bit來控制發送數據的數量,它還允許主機在必要時中止讀取。

如下圖所示,當從機返回T-Bit為0時,意味著要結束發送,反之返回T-Bit為1,意味著繼續發送,并監控SDA線。如果SDA在下一個SCL的下降沿保持高電平,則繼續發送下一組數據;如果SDA在下一個下降沿的邊沿(重啟)為低電平,則主機中止數據傳輸,且從機不繼續發送,可以使用RSCIF標志位來監視這種情況(I3C有很多標志位用于檢測總線狀態,比如大家熟知的用于檢測起始位的SCIF、結束中斷標志PCIF、應答接收中斷標志I2CACKIF、地址匹配標志SADRIF、動態地址匹配中斷標志DADIF等)。

41ace140-72dd-11ee-939d-92fbcf53809c.png

41b73898-72dd-11ee-939d-92fbcf53809c.png

順便提一下,HDR的機制很特殊,它的時序與傳統I2C和SDR模式顯著不同,比如若要從SDR進入或退出HDR模式,需要發送特定的序列。

41c71bfa-72dd-11ee-939d-92fbcf53809c.png

41f0e1e2-72dd-11ee-939d-92fbcf53809c.png

最后,當一個序列的數據發完,會發出停止位,總線進入IDLE狀態,隨后,重啟START,進入下一個周期。

2.I3C SDR基本時序

這里簡要說明下I3C在SDR模式下的時序(HDR稍顯復雜,比如HDR-DDR是雙邊沿采樣、帶CRC)。

I3C SDR模式的時序與I2C總體上一致,二者的區別主要體現在時鐘速率上,相比I2C,I3C對SCL/SDA的建立保持時間更加嚴格,I3C可降速支持I2C。

1、起始位與停止位:

I3C的START、STOP機制與I2C一致,即,在時鐘邊沿翻轉為低電平之前和時鐘邊沿翻轉為高電平之后,數據線分別產生下降沿和上升沿的跳變。

42047e5a-72dd-11ee-939d-92fbcf53809c.png

2、地址/讀寫/數據位(Legacy I2C/SDR):

42265eee-72dd-11ee-939d-92fbcf53809c.png

3、應答位:與I2C類似,在第9位產生ACK/NACK或T Bit。

4231105a-72dd-11ee-939d-92fbcf53809c.png

不同速率模式/總線結構(OD或Push-Pull)下的建立保持時間指標可參考文檔Specification forI3C Basic.pdf中的“6.2 TimingSpecification”章節。

不同板載通信總線的對比

通信接口 UART I2C SPI/QSPI I3C
通信機制 異步 同步 同步 同步
總線結構 2線,半雙工 2線,半雙工 4線,全雙工 2線,半雙工
理論最大
通信速率
10Mbps 3.4Mbps 60Mbps 39.5Mbps
主設備 單一 單一 單一 支持多個
從設備 點對點 多個 多個 多個
軟中斷 不支持 不支持 不支持 支持
熱加入 不支持 不支持 不支持 支持
從設備地址 不支持 靜態地址 靜態地址 靜態和動態地址

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2541

    文章

    49945

    瀏覽量

    747442
  • 總線
    +關注

    關注

    10

    文章

    2817

    瀏覽量

    87697
  • 總線接口
    +關注

    關注

    0

    文章

    82

    瀏覽量

    30682
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1452

    瀏覽量

    122238
  • MIPI
    +關注

    關注

    10

    文章

    303

    瀏覽量

    48372

原文標題:MIPI-I3C總線接口簡述(一)

文章出處:【微信號:海馬硬件,微信公眾號:海馬硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于S3C44B0X的I2C總線設計

    文章介紹了S3C44B0X 的I2C 總線接口,與EEPROM 的連接方法。重點分析了I2C 總線
    發表于 08-19 10:30 ?30次下載

    用Verilog HDL實現I2C總線功能

    簡述I2C總線的特點;介紹了開發FPGA時I2C總線模塊的設計思想;給出并解釋了用Verilog HDL實現部分
    發表于 10-19 10:49 ?104次下載

    I2C總線接口模塊設計

    本實驗是基于EasyFPGA030的I2C總線接口模塊設計,用EasyFPGA030開發套件通過I2C協議實現對二線制I2C串行EEPROM
    發表于 11-02 17:01 ?41次下載

    PCA9564 并行總線I2C總線接口芯片簡介

    PCA9564是一款采用CMOS工藝,支持并行總線與串行I2C總線通信轉換的接口器件,適用于微控制器/處理器使用并行總線擴展
    發表于 03-10 15:47 ?51次下載

    PCA9665并行總線I2C總線接口芯片簡介

    PCA9665是一款并行總線與串行I2C總線接口轉換的器件,適用于微控制器/處理器使用并行總線擴展I2C
    發表于 03-10 15:49 ?46次下載

    用Verilog HDL實現I2C總線功能

    摘要: 簡述I2C總線的特點;介紹了開發FPGA時I2C總線模塊的設計思想;給出并解釋了用Verilog HDL實現部分
    發表于 06-20 13:17 ?6824次閱讀
    用Verilog HDL實現<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>功能

    基于CPLD的I2C總線接口設計

    在電路設計中,I2C總線是比較常用的兩線式串行通信方式,大多數的CPU都擅長于并口操作,不具備直接操作I2C總線接口的能力。為了使不具備
    發表于 02-12 16:11 ?95次下載
    基于CPLD的<b class='flag-5'>I2C</b><b class='flag-5'>總線</b><b class='flag-5'>接口</b>設計

    基于MIPI I3C規范從I2C無縫連接I3C的關鍵優點

    (SPI)以及通用異步收發器(UART),但I2C的使用更為常見,原因在于其實施簡單,引線數低。 MIPI I3C規范結合了I2C和串行外圍接口
    發表于 11-16 19:11 ?2w次閱讀
    基于<b class='flag-5'>MIPI</b> <b class='flag-5'>I3C</b>規范從<b class='flag-5'>I2C</b>無縫連接<b class='flag-5'>I3C</b>的關鍵優點

    MIPI聯盟公開其傳感器接口規范MIPI I3C

    接口規范的公開有助于智能手機、可穿戴設備、物聯網設備、增強現實/虛擬現實和汽車系統實現更多設計創新 致力于為移動和受移動影響行業制定接口規格的國際組織MIPI?聯盟今日宣布公開其傳感器接口
    的頭像 發表于 06-30 07:21 ?4810次閱讀

    關于MIPI I3C Sensor接口標準制定的介紹和應用

    MIPI I3C規定一種芯片到芯片接口,可以將設備中的所有傳感器連接到應用處理器。其使用雙線在標準的CMOS I/O上實現。該規格實現高達12.5兆赫的時鐘速率并提供更高性能、高數據速
    的頭像 發表于 10-18 15:19 ?4877次閱讀

    符合最新MIPI I3C規范的DesignWare IP提供高帶寬和可擴展性

    )。 SynopsysDesignWare?MIPII3C控制器IP在2線接口內集成了帶內中斷,可實現低引腳數。該IP符合MIPI攝像機控制接口(CCI),
    的頭像 發表于 08-07 10:31 ?3893次閱讀
    符合最新<b class='flag-5'>MIPI</b> <b class='flag-5'>I3C</b>規范的DesignWare IP提供高帶寬和可擴展性

    基于MCS-51單片機I2C總線接口電路的設計

    在單片機控制系統中,廣泛使用I2C器件。如果單片機自帶I2C總線接口,則所有I2C器件對應連接到該總線
    發表于 10-15 16:13 ?3254次閱讀
    基于MCS-51單片機<b class='flag-5'>I2C</b><b class='flag-5'>總線</b><b class='flag-5'>接口</b>電路的設計

    MIPI I3C主機控制器接口加速傳感器集成

      現在可供下載的 MIPI I3C HCI 也包含在即將發布的 MIPI Touch 系列規范中,從而可以使用觸摸命令和多個數據流來為設計添加差異化的觸摸功能。應用處理器公司可以應用該規范來標準化其設備中使用的 HCI 方法。
    的頭像 發表于 06-29 15:07 ?1682次閱讀

    I3C Introduction是什么意思

    I3C Introduction I3C :Improved Inter Integrated Circuit ,是 MIPI(Mobile Industry Processor Interface
    的頭像 發表于 07-22 16:16 ?735次閱讀
    <b class='flag-5'>I3C</b> Introduction是什么意思

    什么是I3C接口 I3C和SPI接口有什么區別

    I3C接口使用兩根通信線,一根是數據線(SDL),另一根是時鐘線(SCL)。與I2C總線一樣,I3C接口
    的頭像 發表于 03-05 16:50 ?2191次閱讀
    什么是<b class='flag-5'>I3C</b><b class='flag-5'>接口</b> <b class='flag-5'>I3C</b>和SPI<b class='flag-5'>接口</b>有什么區別