硬件自學(xué)筆記:MIPI物理層D-PHYv1.2解析
MIPI介紹
MIPI是由ARM、Nokia、ST、IT等公司成立的一個聯(lián)盟,旨在把手機(jī)內(nèi)部的接口如存儲接口,顯示接口,射頻/基帶接口等標(biāo)準(zhǔn)化,減少兼容性問題并簡化設(shè)計。
MIPI聯(lián)盟通過不同的工作組,分別定義一系列手機(jī)內(nèi)部的接口標(biāo)準(zhǔn),如攝像頭接口CSI、顯示接口DSI、射頻接口Dig RF等。統(tǒng)一接口標(biāo)準(zhǔn)可以使芯片和模組的選擇更靈活便捷。
MIPI結(jié)構(gòu)分為物理層、協(xié)議層和應(yīng)用層。
應(yīng)用層有攝像頭CSI接口、顯示屏DSI接口和基帶和射頻間Dig RF接口。
物理層分為DPHY、CPHY、MPHY,CSI-2協(xié)議支持使用D-PHY,也可用C-PHY。CSI-3只可使用M-PHY為物理層。目前車載行業(yè)主要使用DPHY,下圖為DPHY與CPHY各版本接口與速率信息。

D-PHY接口一般是1/2/4 Lane,每個Lane走差分線對,是電流驅(qū)動型,單信號幅度一般是200mv,線對差分的幅度在400mv左右,布線要求是等長且成雙成對;

C-PHY接口是1/2/3 Trio,每個Trio走3根線,最高是9根線,比D-PHY要少一根,是電壓驅(qū)動型,由于是兩兩相差,信號幅度絕對值分別是0、100、200mv,信號較弱,不利于傳輸,但要傳輸?shù)臄?shù)據(jù)量大一些,
在同樣是2.5G的速率下,C-PHY可以達(dá)到17.1G,而D-PHY只有10G;
C-PHY沒有單獨(dú)的同步信號線(時鐘嵌入在數(shù)據(jù)信號中,這樣做的目的是為了增加傳輸帶寬,但是也引入了編碼技術(shù)等),必須要求傳輸距離短,不能走差分線對。
MIPI D-PHY v1.2:
? ? 目前主流SERDES芯片及SOC均使用MIPI D-PHY v1.2版本接口
? ? 規(guī)格書中前部分章節(jié)大篇幅論述了D-PHY的幾種內(nèi)部實(shí)現(xiàn)結(jié)構(gòu),D-PHY采用的是非對稱主從結(jié)構(gòu),即一個lane通道中同一時刻必須存在一個主,一個從。并根據(jù)以上傳輸方向性,定義了前向通道和反向通道,前向通道的數(shù)據(jù)速率與反向通道的的操作命令速率是不對稱的。因此DPHY的非對稱設(shè)計大大降低了鏈路的復(fù)雜性。適用于具有不對稱數(shù)據(jù)量需求的應(yīng)用程序,或單獨(dú)設(shè)計反向通道的成本太高時。

? ? D-PHY提供了主從之間的同步連接。一個實(shí)際的PHY配置由一對時鐘差分信號(CLK_N/CLK_P)和一個或多個數(shù)據(jù)差分信號(DATA_N/DATA_P)組成。時鐘信號是單向的,主發(fā)從收。數(shù)據(jù)信號可以是單向的,也可以是雙向的,取決于所選的選項。對于半雙工工作,反向帶寬為正向帶寬的1/4。數(shù)據(jù)的通信方向可以通過命令控制。

D-PHY支持高速和低功耗模式。低功耗模式可用于低速異步數(shù)據(jù)通信,包含控制模式(Control Mode)、低功耗數(shù)據(jù)傳輸模式(LPDT)和極低功耗模式(ULPS),高速模式用于傳輸有效數(shù)據(jù)。結(jié)合DPHY可支持半雙工的特性,就衍生出了具有不同功能的lane屬性,而集成不同lane的集合,就構(gòu)成了不同的D-PHY結(jié)構(gòu),lane的差異主要體現(xiàn)在如下幾點(diǎn):

1.純單端通信或雙向通信,純單端是不需要LP-CD模塊的。
2.雙端通信又可分為僅支持低功耗雙端和高速低功耗模式均可雙端的情況。(低功耗雙端模式可以分為是否進(jìn)行低功耗數(shù)據(jù)傳輸LPDT)
? ? 針對具有以上不同lane的D-PHY結(jié)構(gòu),就需要具有不同功能的CIL(Control and Interface Logic)模塊來協(xié)同處理數(shù)據(jù)傳輸,其CIL后綴首字母縮寫含義可參看以下表格。

DATA LANE
下面這張圖說明了高速信號和低功耗信號的MIPI差分信號電壓擺幅情況。

? ? 由于MIPI是差分信號,因此通過高低電平的組合,每對差分線應(yīng)該有4種狀態(tài),但由于高速模式下差分電壓僅為200mV,因此高速模式下只差分電壓僅有P正N負(fù)與P負(fù)N正兩種狀態(tài),因此lane狀態(tài)則共有如下表所示的六種狀態(tài)。一對lane中的正信號線為Dp,負(fù)信號線為Dn。

?? ?MIPI通信的所有操作模式、控制指令及數(shù)據(jù)傳輸都是基于以上六種lane的狀態(tài),分別有三種操作模式:控制模式、高速模式及Escape模式。控制指令包括高速數(shù)據(jù)傳輸 (LP-11, LP-01, LP-00)、Escape模式請求 (LP-11, 415 LP-10, LP-00, LP-01, LP-00) 、和傳輸方向切換請求 (LP-11, LP-10, LP-00, LP-10, LP-00)等??刂颇J郊癊scape模式工作于LP電平,高速模式工作于HS電平。
? ??高速模式及Escape模式可以在控制模式下通過不同LP指令搭配開始或結(jié)束。由于從低速模式到高速模式存在數(shù)據(jù)傳輸量的突然增大,因此在進(jìn)入高速數(shù)據(jù)傳輸前數(shù)據(jù)通道的前后存在一些狀態(tài)用于進(jìn)行時鐘線與數(shù)據(jù)線的同步。
? ? High-Speed Data Transmission:
? ? 舉個例子:數(shù)據(jù)傳輸啟動與終止時序:

當(dāng)需要發(fā)送數(shù)據(jù)時,DATA線通過一段SOT指令離開停止?fàn)顟B(tài)并開始數(shù)據(jù)傳輸。
在一段數(shù)據(jù)傳輸結(jié)束后,DATA線通過一段EOT指令離開高速傳輸模式并進(jìn)入停止?fàn)顟B(tài)。

? ? 上圖表示了一段數(shù)據(jù)需要傳輸時及傳輸前后的SOT/EOT時序。當(dāng)存在多對DATA LANE時,每對LANE都可以獨(dú)立的通過請求來發(fā)送數(shù)據(jù),但大多數(shù)應(yīng)用,LANE都是同步啟動,但因?yàn)槊織lLANE傳輸?shù)淖止?jié)數(shù)不同,因此結(jié)束的時間不同。
? ? Bi-directional Data Lane Turnaround:
? ? 對于雙端數(shù)據(jù)傳輸模式,傳輸方向轉(zhuǎn)換指令Turnaround所需的命令時序在手冊中也有說明。
? ? Escape mode:
? ? Escape Mode指令是用來給MIPI提供一些額外功能處理能力的LP指令,前向通道下默認(rèn)支持該功能,反向通道可選,可以通過與高速數(shù)據(jù)傳輸類似的指令進(jìn)入Escape mode(LP-11, LP-10, LP-00, LP-01, LP-00)。進(jìn)入該模式后Tx端可通過一個8位輸入命令來指示所請求的操作。下表列出了當(dāng)前所有可用的Escape模式命令和操作。

? ? 該模式下為異步通信,使用一種名為spaced-one-hot的編碼,該模式下DATA線上的數(shù)據(jù)傳輸不依賴CLK,且無法在Esape mode操作期間退出。
? ??spaced-one-hot編碼的每個符號由一個one hot和一個spaced位組成,one hot包括Mark0(等于LP01)和Mark1(等于LP10),spaced相當(dāng)于LP00,以Trigger-Reset Command為例一段完整的Escape Mode操作如下圖所示:

? ? 從圖中可以看出,退出Escape Mode模式必須通過Mark1并停留在LP11狀態(tài)。
? ? 在Escape Mode指令中可以看到,LPDT數(shù)據(jù)傳輸和ULPS也是通過該模式進(jìn)入。在LPDT模式下的數(shù)據(jù)傳輸仍然要按照spaced-one-hot編碼的命令來傳輸,數(shù)據(jù)傳輸過程中可以通過保持一段SPACE狀態(tài)(LP00)來進(jìn)行暫停,同樣可以使用MARK1(LP10)接LP11停止?fàn)顟B(tài)來推出到控制模式。LPDT模式下的數(shù)據(jù)傳輸頻率<20MHz,主要用于低功耗數(shù)據(jù)傳輸。
CLK LANE
? ? MIPI的CLK LANE為雙邊沿采樣的單端信號,所以無論MIPI_DATA傳輸方向是正向還是反向,CLK時鐘信號都為主端發(fā)送。且由于是單端信號,因此CLK LANE不支持Esape mode,僅能通過特殊的LP-Rqst指令進(jìn)入ULPS狀態(tài)。
? ? 只有當(dāng)CLK LANE以及工作在HS模式時,才可以進(jìn)行高速數(shù)據(jù)傳輸,同理,只有在所有的DATA LANE上都沒有數(shù)據(jù)傳輸后,CLK LANE才可以推出HS模式,下面為CLK LANE開啟和停止數(shù)據(jù)傳輸?shù)臅r序圖和具體指令:


結(jié)合上述時序圖中CLK LANE的狀態(tài)依次為:
CLK LANE處于交錯高速信號HS-0和HS-1的狀態(tài),DATA LANE開始執(zhí)行EOT程序;
最后一個DATA LANE完成EOT程序并進(jìn)入LP11狀態(tài),CLK在此時仍然保持HS模式并允許一段時間Tclk-post;
CLK LANE最后以HS-0狀態(tài)結(jié)束并維持一段時間Tclk-trail;
CLK LANE切換HS-TX驅(qū)動模塊至LP-TX驅(qū)動模塊,并驅(qū)動LP-11狀態(tài),保持Ths-exit時長。至此即進(jìn)入了LP模式;
CLK LANE在保持LP11一段時間后驅(qū)動HS-Req狀態(tài)(LP01)并保持一段時間Tlpx;
驅(qū)動Bridge state狀態(tài)(LP-01),并維持一段時間Tclk-prepare;
CLK LANE切換LP-TX驅(qū)動模塊至HS-TX驅(qū)動模塊,并保持HS0一段時間clk-zero;
CLK LANE保持HS模式一段時間Tclk-pre后。Data Lane也開始啟動SOT切換程序,隨后開始HS數(shù)據(jù)傳輸。
以上所有時序中的時間要求,均可在MIPI D-PHY標(biāo)準(zhǔn)或SERDES手冊中查到。
Initialization
? ??MIPI-PHY初始化時需分為主端初始化和從端初始化,從端將會在主端PHY保持一個Stop State(LP11)狀態(tài)超過Tinit時間后進(jìn)行初始化。
? ? 主端初始化則需要一個系統(tǒng)或協(xié)議的指令(System or Protocol input signal)指令進(jìn)行。在主端初始化之前,需要保證線上不會出現(xiàn)超過Tinit時長的LP11狀態(tài),以防止從端比主端先進(jìn)行初始化。在初始化之前,從端應(yīng)忽略線束上的所有狀態(tài),且當(dāng)MIPI使用多路LANE時,所有LANE的初始化應(yīng)同時進(jìn)行。
? ? Tinit的時間長度取決于協(xié)議層規(guī)定,因此不在PHY標(biāo)準(zhǔn)討論范圍之內(nèi),且Tinit Master與Tinit?Slave可以為兩個不同的值,但D-PHY規(guī)定了Tinit的最小值不可短于100us。
Calibration
? ? Calibration為MIPI D-PHY v1.2新增功能,用于HS-Deskew校準(zhǔn),該校準(zhǔn)允許MIPI速率從1.5Gbps/Lane提升到了2.5Gbps/Lane。HS-Deskew主要分為初始化校準(zhǔn)Initial Deskew和周期性校準(zhǔn)Periodic Deskew。
? ? 對于任何支持1.5Gbps速率的設(shè)備,當(dāng)傳輸速率高于1.5Gbps或速率改變?yōu)?.5Gbps以上的任何速率時,在開始HS傳輸之前接收端都需要通過一段發(fā)送端發(fā)送的DESKEW完成校準(zhǔn)。Deskew主要用于消除時鐘和數(shù)據(jù)Lane之間可能存在的相位差。如果傳輸速率低于或等于1.5Gbps時,初始化校準(zhǔn)是可選的。周期性校準(zhǔn)與傳輸速率無關(guān),任何速率都可以選擇開或不開。此外,還可以進(jìn)行周期性的deskew,當(dāng)然這也是可選的。當(dāng)僅僅是傳輸狀態(tài)發(fā)送變化時,例如從任何低速率模式變?yōu)镠S模式,HS-Deskew都是可選的,只要HS傳輸?shù)乃俾试谥耙呀?jīng)進(jìn)行過校準(zhǔn)。
? ? 從下圖可以看出校準(zhǔn)時序與普通SOT時序的不同,主要區(qū)別在SOT程序完成HS驅(qū)動并保持HS-0一段時間THS-ZERO后,校準(zhǔn)模式會先保持一段HS Skew-Calibration SYNC(1111111……)總長為16UI,然后開始進(jìn)行DeSkew校準(zhǔn)TSKEWCAL(01010101010101),校準(zhǔn)周期可選,初始化校準(zhǔn)為32kUI-8*32kUI,周期性校準(zhǔn)為1kUI-8kUI。而普通模式則是進(jìn)行一段THS-SYNC(00011101)后就開始數(shù)據(jù)傳輸。

? ? 上述為DESKEW校準(zhǔn)的啟動時序,接收端若檢測到該啟動時序則會啟動校準(zhǔn),校準(zhǔn)的周期由發(fā)送端控制,校準(zhǔn)周期結(jié)束后,發(fā)射端會保持THS-TRAIL一段時間并退出HS模式。DESKEW的SOT時序與EOT時序詳細(xì)描述不再贅述。另外,手冊中對于DeSkew校準(zhǔn)TSKEWCAL的最長時間也有要求,初始化校準(zhǔn)應(yīng)小于100us,周期性校準(zhǔn)應(yīng)小于10us,這也是手冊中初始化校準(zhǔn)和周期性校準(zhǔn)DESKEW周期最長分別為8*32kUI和8kUI的原因。
還剩幾章后續(xù)完善,歡迎各位大佬多多交流