寫在前面
訪問MIPI Allliance官方網(wǎng)站時(shí),發(fā)現(xiàn)早在2013年MIPI聯(lián)盟就已建立了“MIPI I3C Working Group”,后來在2018年10月發(fā)布了I3C規(guī)范v1.0版,目前已經(jīng)更新到了2021年6月的v1.1.1版。作者本人雖然在實(shí)際項(xiàng)目上并無I3C的應(yīng)用,但出于對(duì)新事物的好奇,決定寫下本篇文章。本文內(nèi)容多源于MIPI Allliance官方網(wǎng)站、論壇、博客等,因此,它僅作為碎片化知識(shí)的整理、記錄,重點(diǎn)分享下I3C的主要特點(diǎn)以及與I2C的關(guān)系。
I3C簡介
I3C,全稱Improved Inter-Integrated Circuit,顧名思義,它是I2C(Inter-Integrated Circuit)的橫向升級(jí)版,可向下兼容。
眾所周知,I2C在上世紀(jì)80年代由Philips公司推出,當(dāng)初是為了簡化計(jì)算機(jī)各芯片之間的數(shù)據(jù)通信方式而產(chǎn)生,經(jīng)過數(shù)十年的發(fā)展,速度從最初的100Kbps提升到3.4Mbps(超高速模式5Mbps不常用)。I2C的應(yīng)用在控制系統(tǒng)中已經(jīng)非常廣泛了,作為1種同步串行總線,相比板上其它設(shè)備間通信接口,它具有總線結(jié)構(gòu)簡單(2線,OD輸出,SCL/SDA)、一主多從、低功耗、高可靠性等特點(diǎn)。
推出I3C,并非為了替代I2C總線,而是一脈相承,它主要解決了I2C現(xiàn)存的問題,在低成本的產(chǎn)品中,I2C依然是高性價(jià)比的選擇。
在I2C中,這些局限性包括每個(gè)從設(shè)備擁有一個(gè)7位的固定地址,在掛載多設(shè)備時(shí)可能存在 I2C總線設(shè)備地址沖突,I2C還有不帶內(nèi)中斷或目標(biāo)設(shè)備復(fù)位(需要額外的導(dǎo)線/引腳)、較低的數(shù)據(jù)速率等缺陷。在SPI中,一些主要局限包括每個(gè)器件有一個(gè)芯片選擇引腳但需要四條通信線路,以及由于缺少明確定義的標(biāo)準(zhǔn)(如數(shù)據(jù)位寬)而存在許多不同的實(shí)現(xiàn)方式(如CPOL/ CPHA四種工作模式)。
借用NXP網(wǎng)站的描述:I3C“在標(biāo)準(zhǔn)CMOS I/O上,它支持10Mbps的最低數(shù)據(jù)速率,具有更高性能的高數(shù)據(jù)速率(HDR)模式的選項(xiàng),與現(xiàn)有選項(xiàng)相比,性能和功耗效率大幅提升。它還提供多主機(jī)支持、動(dòng)態(tài)尋址、命令代碼兼容性和高級(jí)電源管理功能(如睡眠模式)的統(tǒng)一方法?!笨偨Y(jié)成一句話:它非常適合應(yīng)用于高速、多主機(jī)、多從機(jī)(傳感器)等應(yīng)用場景。I3C總線的速度提高了,功耗降低了,效率提升了,在需要更精簡、高性能、高速度、可擴(kuò)展和具有成本效益的通信應(yīng)用中,I3C應(yīng)運(yùn)而生。
應(yīng)用場景
物聯(lián)網(wǎng)(IoT)行業(yè)、移動(dòng)設(shè)備、汽車系統(tǒng)、服務(wù)器、工業(yè)設(shè)備等。
面向傳感器應(yīng)用:用于需要精簡連接和多傳感器管理的場景,統(tǒng)一碎片化的傳感器接口。
希望提高通信速度和效率、同時(shí)需要簡化總線接口的應(yīng)用場景。
I3C主要特性
I3C接口特性如下:
1.速度:SDR模式(單邊沿采樣)基礎(chǔ)速率12.5Mbps(最低10Mbps),HDR模式(雙邊沿采樣)理論最大速率39.5Mbps(實(shí)際有效傳輸速率在33.3Mbps左右)。
2.功耗:最低支持1.2V電平(支持1.8V/3.3V,不支持5V)。在同樣的電平標(biāo)準(zhǔn)下,整體功耗遠(yuǎn)小于I2C。
3.總線結(jié)構(gòu):兩線(SDA/SCL)串行接口,開漏/推挽可靈活切換,支持多主多點(diǎn)功能(Multi-Controller and Multi-drop capabilities)。
4.熱加入機(jī)制(Hot-Join):I3C協(xié)議支持熱加入機(jī)制,以允許從設(shè)備在已配置后加入I3C總線。
5.動(dòng)態(tài)地址(transaction):支持,從設(shè)備地址由當(dāng)前的主控制器(Active Controller)初始化后分配,通常在上電后完成。
6.中斷機(jī)制(In-Band Interrupt):支持內(nèi)中斷,從設(shè)備通過I3C總線產(chǎn)生中斷并通知主控制器,節(jié)省1根INT線。
7.向下兼容I2C:在基礎(chǔ)模式中兼容I2C總線。
?I3C特性介紹
1.傳輸速率
I3C的理論傳輸速率相較I2C提升了12.5 倍至 125 倍。如下圖所示,I3C支持多種速率的工作模式,其中,
SDR 模式:12.5Mbit/s,Single Data Rate Mode,I3C的默認(rèn)模式。
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)。
值得說明的是,MIPI聯(lián)盟定義了I3C復(fù)雜的協(xié)議規(guī)范,但HDR-TSP模式和HDR-TSL模式并不被包含在I3C的基礎(chǔ)結(jié)構(gòu)(I3C Basic),作者的理解是,若要實(shí)現(xiàn)這兩種HDR模式,需要專門的IP,而且對(duì)主從設(shè)備工況的要求也更嚴(yán)苛。因此作者將I3C HDR和I3C Basic理解為兩個(gè)概念,它們擁有不同的總線架構(gòu)、時(shí)序、協(xié)議規(guī)范。相比完善、高靈活度和高效的I3C接口,I3C Basic是一個(gè)降低了性能、低復(fù)雜度的版本,適用于板內(nèi)設(shè)備連接應(yīng)用,比如傳感器和內(nèi)存接口。I3C Basic滿足開發(fā)者和普通用戶組織的設(shè)計(jì)與應(yīng)用。個(gè)人理解,從普通應(yīng)用層面來說,I3C最大僅支持25Mbps速率(HDR-DDR模式)。
另外,上面提到的I3C速率指的是單通道模式下的理論和實(shí)際速率,如下圖所示,I3C還有多通道模式(Multi-Lane,HDR-BT)。多通道指的是使用多根SDA數(shù)據(jù)線,如雙通道(HDR-BT DUAL)、四通道模式(HDR-BT QUAD)。在HDR-BT(HDR Bulk Transport)四通道模式中,最高速率可以達(dá)到100Mbps(實(shí)際速率約97Mbps,即12MB/s),它是SDR模式的8倍。HDR-BT支持SDR、HDR-DDR、HDR-TSP。同樣地,多通道HDR-TSP和SDR并不被包含在I3C Basic版本中。
實(shí)現(xiàn)I3C高性能/高效率通信(HDR模式),需滿足以下條件:
在布局上,從設(shè)備(Targets)靠近主設(shè)備(Controller),且走線無延遲;
每根線上的最大漏電流:4μA;
驅(qū)動(dòng)端(主/從)的內(nèi)部等效電阻:90Ω;
總線的主時(shí)鐘頻率:12.5MHz;
總線工作在1.8V電平;
總線上拉電阻取值:2833Ω;
高低電平寬度保持一致(Equal probability for 1 and 0 on data transmission,猜測是要求在保證可靠的建立保持時(shí)間基礎(chǔ)上,提高傳輸效率)。
在傳輸效率上,同樣傳輸1kB的數(shù)據(jù)量,I3C消耗的時(shí)間(ms)遠(yuǎn)小于I2C。
2.功耗
1)功耗對(duì)比
在SDR模式下,同樣傳輸1kB的數(shù)據(jù)量,單通道I3C的功耗要小于單通道I2C約6mJ,降低約70%(從柱狀圖來看)。I3C也有睡眠模式(暫未詳細(xì)了解)。
2)DC特性
這里主要介紹下I3C支持的電平標(biāo)準(zhǔn)。
I3C支持1.2V、1.8V和3.3V電平標(biāo)準(zhǔn)(CMOS,閾值30%/70%),它甚至支持更低電平(如1.0V)。I3C在5V的CMOS電平標(biāo)準(zhǔn)上表現(xiàn)并不突出,但如果有足夠的驅(qū)動(dòng)強(qiáng)度,且/或降低傳輸速度的情況下,可擴(kuò)展支持5V(直譯過來很繞)。
當(dāng)工作在推挽(Push-Pull/Totem-Pole)模式時(shí),SDA信號(hào)可以達(dá)到更高的速度,此時(shí)總線電容須不大于50pF。在1.0V的標(biāo)稱工作電壓支持100pF容性負(fù)載,以用于新用途,如DDR5中的串行狀態(tài)檢測(SPD),由于速度提升,可擴(kuò)展從設(shè)備的數(shù)量,提高了系統(tǒng)的啟動(dòng)速度。
有關(guān)DC詳細(xì)參數(shù)見Specificationfor I3C Basic.pdf 中的“I3C Electrical Specifications”章節(jié)。
3. 總線結(jié)構(gòu)
I3C有2種總線結(jié)構(gòu),分別是開漏和推挽。保留開漏結(jié)構(gòu)是為了兼容I2C的低速應(yīng)用,而I3C在SDR/HDR高速模式中使用了推挽方式,它的驅(qū)動(dòng)能力更強(qiáng),但需要控制器針對(duì)性的設(shè)置。
I3C有個(gè)很重要的特點(diǎn),即規(guī)范上定義了I3C兩種工作模式,分別是同步時(shí)序控制模式和異步時(shí)序控制模式(AsyncMode 0-3)(這里作者還不理解,后續(xù)再研究),異步時(shí)序控制模式指的是主機(jī)和從機(jī)工作的時(shí)鐘源、時(shí)鐘頻率、時(shí)鐘精度不同。
總線上掛載的各個(gè)設(shè)備連接關(guān)系如下圖所示。這里先來個(gè)名詞解釋:
I3C PrimaryController:主控制器,可以支持或不支持HDR模式。
I3C SecondaryController:輔控制器(第2控制器),可以支持或不支持HDR模式,可以作為主機(jī)。
I3C Target:I3C從設(shè)備(目標(biāo)設(shè)備),可以支持或不支持HDR模式。
I2C Target:不支持HDR模式,指的是傳統(tǒng)的I2C低速設(shè)備。
當(dāng)所有設(shè)備共同掛載到1個(gè)I3C總線時(shí),總線被命名為“混合快速總線(Mixed Fast Bus)”,若僅有I3C設(shè)備時(shí),被成為“純總線(Mixed Bus)”;還有1個(gè)“混合低速/受限總線(MixedSlow/Limited Bus)”。混合快速總線和混合低速/受限總線的主要區(qū)別就在于I2C設(shè)備是否存在50ns的尖峰濾波器(下文會(huì)提到)。
4.熱加入機(jī)制(Hot-Join)
在I3C 中,目標(biāo)設(shè)備被允許加入已配置的總線,并由 I3C 控制器分配一個(gè)動(dòng)態(tài)地址。憑借I3C 中的這種熱加入功能,可以在運(yùn)行期間開啟和關(guān)閉總線上的某些器件,從而實(shí)現(xiàn)“分段式供電”設(shè)計(jì),僅在需要時(shí)才使相關(guān)單元保持活動(dòng)狀態(tài)。在一些應(yīng)用中,如果不希望或不可能讓系統(tǒng)斷電(例如在服務(wù)器或無線基站中),或必須正確設(shè)計(jì)熱插拔功能(在背板或外部卡中)時(shí),此特性將非常重要。
5.動(dòng)態(tài)地址
I3C有著一整套通用命令字的集合,可以通過這些命令字實(shí)現(xiàn)動(dòng)態(tài)地址分配、檢查當(dāng)前總線狀態(tài)、時(shí)間控制、IO擴(kuò)展等等功能。I3C從設(shè)備地址由主設(shè)備仲裁,但并不是所有設(shè)備地址都可用,部分地址是I3C標(biāo)準(zhǔn)所保留的,用于后期拓展或者錯(cuò)誤仲裁。
6.中斷機(jī)制
I3C無需增加外部中斷線即可實(shí)現(xiàn)中斷響應(yīng)。
I3C帶內(nèi)中斷,有地址仲裁特性(In-Band Interrupt,IBI),當(dāng)從機(jī)產(chǎn)生中斷,IBI向主機(jī)發(fā)送中斷信息、地址和其它信息。若有多個(gè)從機(jī)中斷,較低的地址具有較高的優(yōu)先級(jí)(具有較低值地址和較高優(yōu)先級(jí)、帶內(nèi)中斷的從機(jī)對(duì)控制器的處理請求要比具有較高值地址和較低優(yōu)先級(jí)的從站更快<直譯過來很繞>,原文: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)。地址仲裁特性對(duì)熱插拔、動(dòng)態(tài)地址分配以及多主機(jī)申請同樣有效。
7.向下兼容I2C
I3C與I2C總線數(shù)量(2根,SDA/SCL)相同,在同一組I3C總線上可以同時(shí)掛載I2C設(shè)備(工作速率不同);
I3C 總線支持傳統(tǒng) 的I2C 通訊,I3C通信使用推挽結(jié)構(gòu),I2C通信使用開漏結(jié)構(gòu);
I3C支持動(dòng)態(tài)地址分配,也同時(shí)支持傳統(tǒng) I2C 設(shè)備的靜態(tài)尋址;
如下圖所示,I3C總線可以將時(shí)鐘速度更改為允許速度范圍內(nèi)的任何頻率。相比之下,當(dāng)傳統(tǒng)I2C設(shè)備掛載到混合快速總線中,為了不引起傳統(tǒng)I2C器件參與到總線進(jìn)來,I2C需要擁有50ns Spike Filters,也就是說,必須確保總線上的SCL高電平周期比Spike濾波器短(SCL時(shí)鐘頻率大于12.5MHz),每個(gè)傳統(tǒng)I2C 從機(jī)的SCL線需要配有 50ns 尖峰濾波器,目的是忽略掉下圖的“DIG_H_MIXED”高電平段(脈寬范圍32~45ns),以防止Legacy I2C器件受到干擾(作者的理解是,這一段是I3C SDR/HDR模式的最小脈寬,芯片內(nèi)部增加濾波電路將其濾掉)。
I3C基本時(shí)序(SDR)
1.I3C通信流程概括
I3C支持多種通訊方式,先貼一張I3C通信總體流程圖(4.1 I3C FundamentalPrinciples 章節(jié)):
由于還沒去詳細(xì)的研究時(shí)序,這里先簡要的說明下:
首先,I3C完整的幀包含START、Header、Data、STOP,這個(gè)與I2C和其它總線接口都大同小異。在START之后,主機(jī)利用Header來尋址從機(jī)設(shè)備(靜態(tài)地址、動(dòng)態(tài)地址、廣播地址、熱加入地址)。Header允許總線仲裁,從機(jī)設(shè)備也可以將Header仲裁用于多種目的:內(nèi)中斷,熱加入和輔助主設(shè)備功能(I3C總線只能有1個(gè)主控制器控制總線,總線上輔助主設(shè)備可通過某種機(jī)制使用來替代主控制器,也就是多主機(jī)機(jī)制)。
上圖中的CCC(CommonCommand Code,通用命令代碼)是全局支持的命令,可以直接傳輸?shù)教囟ǖ腎3C從設(shè)備,也可以同時(shí)傳輸?shù)蕉鄠€(gè)I3C從設(shè)備,它可以在同一條總線上執(zhí)行多個(gè)命令。它是主從設(shè)備之間的一種通信機(jī)制(網(wǎng)上有人把CCC比喻成Linux的Shell指令),通常由主設(shè)備發(fā)給從設(shè)備,用于獲取和設(shè)置從設(shè)備的功能、配置信息,它提高了主設(shè)備對(duì)從設(shè)備的管理能力。CCC也支持雙向通信,用于確認(rèn)主從雙方的指令。CCC不適用于傳統(tǒng)I2C接口。
在啟動(dòng)或重復(fù)啟動(dòng)之后,CCC的地址始終為7’h7E,而讀寫Rn/W位應(yīng)始終為W。一旦分配了I3C從機(jī),所有I3C從機(jī)都將識(shí)別7’h7E廣播地址和它們自己的動(dòng)態(tài)地址。 在分配I3C動(dòng)態(tài)地址之前和之后,I3C主機(jī)均應(yīng)發(fā)出CCC命令。CCC命令分為廣播(Broadcast)寫、直接(Direct)讀/寫、直接寫、直接讀取四類(具體有點(diǎn)復(fù)雜,詳細(xì)了解CCC,需要再熟讀5.1.9章節(jié)),廣播命令碼有255個(gè),范圍0x00 - 0x7F,上圖中7’h7E是廣播地址,直接命令碼范圍是0x80 - 0xFE。
后面是數(shù)據(jù)的傳輸,數(shù)據(jù)按照SCL上升沿邊沿(HDR模式是雙邊沿采樣)進(jìn)行采樣。上圖中,傳統(tǒng)I2C是在數(shù)據(jù)傳輸完成后由接收方發(fā)送ACK或NACK(即框圖中的DATA.ACK),而與傳統(tǒng)I2C不同,在I3C SDR模式中提到了“Data. T”字樣,即T Bit,它是Transition Bit(過渡位)的簡稱,作為ACK/NACK機(jī)制的替代方式而推出。值得說明的是,T Bit是第9位數(shù)據(jù),它是作為奇偶校驗(yàn)存在的,即使I3C SDR沒有ACK機(jī)制,但總線協(xié)議中有一些錯(cuò)誤事項(xiàng)的標(biāo)志位可以用來替代NACK事件的發(fā)生(此處存疑,待研究),CCC命令也定義了數(shù)據(jù)讀寫的最大長度,會(huì)提前通知目標(biāo)設(shè)備(從機(jī))。
當(dāng)主機(jī)(Controller)從從機(jī)(Target)中讀取返回的數(shù)據(jù),產(chǎn)生的T-Bit是最后1個(gè)數(shù)據(jù)位,不像I2C,從機(jī)無法控制其發(fā)送數(shù)據(jù)的數(shù)量,I3C的從機(jī)通過返回T-Bit來控制發(fā)送數(shù)據(jù)的數(shù)量,它還允許主機(jī)在必要時(shí)中止讀取。
如下圖所示,當(dāng)從機(jī)返回T-Bit為0時(shí),意味著要結(jié)束發(fā)送,反之返回T-Bit為1,意味著繼續(xù)發(fā)送,并監(jiān)控SDA線。如果SDA在下一個(gè)SCL的下降沿保持高電平,則繼續(xù)發(fā)送下一組數(shù)據(jù);如果SDA在下一個(gè)下降沿的邊沿(重啟)為低電平,則主機(jī)中止數(shù)據(jù)傳輸,且從機(jī)不繼續(xù)發(fā)送,可以使用RSCIF標(biāo)志位來監(jiān)視這種情況(I3C有很多標(biāo)志位用于檢測總線狀態(tài),比如大家熟知的用于檢測起始位的SCIF、結(jié)束中斷標(biāo)志PCIF、應(yīng)答接收中斷標(biāo)志I2CACKIF、地址匹配標(biāo)志SADRIF、動(dòng)態(tài)地址匹配中斷標(biāo)志DADIF等)。
順便提一下,HDR的機(jī)制很特殊,它的時(shí)序與傳統(tǒng)I2C和SDR模式顯著不同,比如若要從SDR進(jìn)入或退出HDR模式,需要發(fā)送特定的序列。
最后,當(dāng)一個(gè)序列的數(shù)據(jù)發(fā)完,會(huì)發(fā)出停止位,總線進(jìn)入IDLE狀態(tài),隨后,重啟START,進(jìn)入下一個(gè)周期。
2.I3C SDR基本時(shí)序
這里簡要說明下I3C在SDR模式下的時(shí)序(HDR稍顯復(fù)雜,比如HDR-DDR是雙邊沿采樣、帶CRC)。
I3C SDR模式的時(shí)序與I2C總體上一致,二者的區(qū)別主要體現(xiàn)在時(shí)鐘速率上,相比I2C,I3C對(duì)SCL/SDA的建立保持時(shí)間更加嚴(yán)格,I3C可降速支持I2C。
1、起始位與停止位:
I3C的START、STOP機(jī)制與I2C一致,即,在時(shí)鐘邊沿翻轉(zhuǎn)為低電平之前和時(shí)鐘邊沿翻轉(zhuǎn)為高電平之后,數(shù)據(jù)線分別產(chǎn)生下降沿和上升沿的跳變。
2、地址/讀寫/數(shù)據(jù)位(Legacy I2C/SDR):
3、應(yīng)答位:與I2C類似,在第9位產(chǎn)生ACK/NACK或T Bit。
不同速率模式/總線結(jié)構(gòu)(OD或Push-Pull)下的建立保持時(shí)間指標(biāo)可參考文檔Specification forI3C Basic.pdf中的“6.2 TimingSpecification”章節(jié)。
不同板載通信總線的對(duì)比
通信接口 | UART | I2C | SPI/QSPI | I3C |
通信機(jī)制 | 異步 | 同步 | 同步 | 同步 |
總線結(jié)構(gòu) | 2線,半雙工 | 2線,半雙工 | 4線,全雙工 | 2線,半雙工 |
理論最大 通信速率 |
10Mbps | 3.4Mbps | 60Mbps | 39.5Mbps |
主設(shè)備 | 單一 | 單一 | 單一 | 支持多個(gè) |
從設(shè)備 | 點(diǎn)對(duì)點(diǎn) | 多個(gè) | 多個(gè) | 多個(gè) |
軟中斷 | 不支持 | 不支持 | 不支持 | 支持 |
熱加入 | 不支持 | 不支持 | 不支持 | 支持 |
從設(shè)備地址 | 不支持 | 靜態(tài)地址 | 靜態(tài)地址 | 靜態(tài)和動(dòng)態(tài)地址 |
審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753063 -
總線
+關(guān)注
關(guān)注
10文章
2878瀏覽量
88051 -
總線接口
+關(guān)注
關(guān)注
0文章
82瀏覽量
30730 -
I2C
+關(guān)注
關(guān)注
28文章
1484瀏覽量
123618 -
MIPI
+關(guān)注
關(guān)注
11文章
310瀏覽量
48613
原文標(biāo)題:MIPI-I3C總線接口簡述(一)
文章出處:【微信號(hào):海馬硬件,微信公眾號(hào):海馬硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論