1. 系統框架

MIPI接口在系統的實現如上圖所示,MIPI DPHY提供了4 Lane的Rx接口,由Sensor提供Clock,並通過四條數據Lane輸入圖像數據。DPHY與CSI-2 Host Contrller之間通過PPI(PHY-Protocol Interface)相連,該接口包括了控制,數據,時鍾等多條信號。CSI-2 Host Contrller通過PPI接口收到數據后進行解析,完成后通過IDI(Image Data Interface)或者IPI(Image Pixel Interface)輸出到SoC的其他模塊(ISP);同時SoC通過APB Slave總線控制CSI-2 Host Contrller的相關寄存器。
2. 功能IP
下面兩表描述了系統使用的CSI-2 Controller與DPHY,以及與CSI對接的ISP相關的部分性能參數:
(1)Synopsys CSI-2 Controller

IDI(Image Data Interface )接口:
- 輸出CSI-2 規格書中推薦的32位或者64位的圖像格式;
- 提供水平或豎直方向的精確視頻同步信號;
- 提供CSI-2 Data Type (DT) 和 Virtual Channel (VC)的相關信息;
IPI(Image Pixel Interface)接口:
- 48 位並行輸出,提供像素時鍾同步信號;
- 提供水平或豎直方向的精確視頻同步信號;
(2)Synopsys DPHY

PPI(Phy Protocal Interface)接口:
- 根據DPHY規格書定義的PPI接口;
(3)Om ISP

3. DPHY輸入

MIPI DPHY采用1對源同步的差分時鍾和1~4對差分數據鏈路來進行數據傳輸,數據傳輸采用DDR方式,即在時鍾的上下邊沿都有數據傳輸;根據Sensor不同的輸出鏈路數量,接收端可以配置1到4條輸入鏈路;數據鏈路越多,圖像數據傳輸速度也就越快,多通道發送實現如上圖所示,接收端與其類似,從不同通道接收的數據加以合並最后形成完整的數據流。
DPHY支持HS(High Speed)和LP(Low Power)兩種工作模式。HS模式下采用低壓差分信號,功耗較大,但是可以傳輸很高的數據速率(數據速率為80M~1.5Gbps); LP模式下采用單端信號,數據速率很低(<10Mbps),但是相應的功耗也很低。兩種模式的結合保證了MIPI總線在需要傳輸大量數據(如圖像)時可以高速傳輸,而在不需要大數據量傳輸時又能夠減少功耗。

如上圖所示,在正常的操作模式下,數據通道處於高速模式或者控制模式。在高速模式下,通道狀態是差分的0或者1,也就是數據鏈路P比N高時,定義為1,P比N低時,定義為0,此時典型的線上電壓為差分200MV;在控制模式下,高電平典型幅值為1.2V,此時P和N上的信號不是差分信號而是相互獨立的,當P為1.2V,N也為1.2V時,MIPI協議定義狀態為LP11,同理,當P為1.2V,N為0V時,定義狀態為LP10,依此類推,控制模式下可以組成LP11,LP10,LP01,LP00四個不同的狀態(一般使用default lane);MIPI協議規定控制模式4個不同狀態組成的不同時序代表着將要進入或者退出高速模式等;比如LP11-LP01-LP00序列后,進入高速模式。
4. DPHY狀態切換

上圖說明了物理層工作模式的切換流程:
No Power:
當Phy沒有任何電源時處於No Power模式,將Phy進行上電即能離開該模式,通常由SoC的PMU提供,推薦上電時序是先上電核心電壓(VDD)然后I/O電壓(AVDD)。
Shutdown:
Shutdown模式是最低電源消耗模式,RSTZ 和 SHUTDOWNZ 被拉低,此時模擬電路部分被禁止,數字部分被復位,主要消耗來自模擬電路的待機電流與數字部分的漏電流。在該模式下,DATAN/DATAP 和 CLKN/CLKP都處於高阻態,但是可以通過TESTCLR/TESTDIN信號進行hsfreqrange頻率的配置。
AFE初始化:
AFE初始化即Analog Front End(模擬前端)初始化,其主要步驟包括:
配置DPHY頻率等參數
使能Lane N
設置DPHY SHUTDOWNZ=1'b1
設置RSTZ 1'b0 –> 1’b1重置DPHY
設置CSI2_RESETN 1'b0 –> 1’b1重置Controller
通過讀取PHY_STOPSTATE等待STOPSTATECLK和STOPSTATEDATA_N信號;
Control Mode:
AFE初始化結束PHY即進入Control模式,等待RX LP信號的請求,根據請求信號的不同進入High-Speed模式或者Escape模式。
High—Speed模式:
在Control模式下收到LP-11, LP-01, LP-00信號后進入High-Speed模式,該模式下收到LP-11信號后退出回到Control模式,High-Speed模式是MIPI接口用於高速數據傳輸的主要模式。
Escape模式:
在Control模式下收到LP-11, LP-10, LP-00, LP-01, LP-00信號后進入Escape模式,該模式下收到LP-11信號后退出回到Control模式。Escape模式是一種特殊的模式,它通過Date Lane進行低速低功耗異步通信,通過接收命令進入以下三個模式
Low-Power Data Reception (LPDR):用於低速數據接收;(8'b11100001)
Remote Trigger:此模式允許協議層在發送端請求時向接收方發送一個標志;(8'b01100010)
Ultra Low Power State (ULPS):除了Shutdown模式外此模式為最低功耗模式;(8'b00011110)
5.DPHY輸出
DPHY通過PPI接口輸出,PPI接口主要分成四部分,分別為
(1) Data: 用於傳輸HS/LP模式下數據;
(2) Clock: 用於傳輸數據時鍾控制;
(3) Interface Control: 接口控制,如Shutdown信號;
(4) Error Signal: 用於傳輸錯誤信號;
除此之外還幾個用於實現Synopsys專用命令控制的TEST信號。

Interface Control:
SHUTDOWNZ:
用於關閉DPHY的信號;
ENABLE_N:
用於使能第N條Lane的信號;
RSTZ:
用於Reset DPHY的信號;
Clock
STOPSTATEDATA_N:
用於指示第N條Lane處於停止狀態;
RXBYTECLKHS
High-Speed數據接收時鍾(Byte為單位),即用於PPI接口圖像數據的同步時鍾;
STOPSTATECLK
用於指示時鍾通道處於停止狀態;
RXULPSCLKNOT
用於指示時鍾通道處於ULP(Ultra Low Power)模式;
RXCLKACTIVEHS
用於指示時鍾通道處於高速數據接收狀態;
Data
RXDATAHS_N[7:0]
高速模式下數據傳輸線,在RXBYTECLKHS的上升沿被傳輸;
RXACTIVEHS_N
用於指示當前處於高速數據接收狀態;
RXVALIDHS_N
用於指示當前正在接收有效的數據(從Phy層到協議層);
ERRSOTHS_N
用於指示高速數據傳輸時發生SoT(Start of Transmission)錯誤,但是信號仍然可以被同步;每個RXBYTECLKHS周期檢測一次;
ERRSOTSYNCHS_N
用於指示高速數據傳輸時發生SoT(Start of Transmission)錯誤,信號也無法被同步;每個RXBYTECLKHS周期檢測一次;
ERRESC_N
用於指示Escape模式進入錯誤,會一直保持錯誤狀態直至返回停止狀態;
TEST信號
TESTDIN[7:0]
Vendor專用數據輸入信號
TESTDOUT[7:0]
Vendor專用數據輸出信號
TESTCLK
Vendor專用信號時鍾
TESTEN
Vendor專用信號使能
TESTCLR
Vendor專用信號清除
6.調試記錄
(1)數據Lane序號對應PPI接口中的序號N,例如數據Lane0對應的輸出數據線為RXDATAHS_0[7:0];
(2) MIPI DPHY使用DDR(Double Date Rate)時鍾,即上升沿和下降沿都能傳輸數據,所以一個時鍾周期傳輸2bit;
(3) 假設clk lane頻率為200Mhz, 那么數據lane的bit clk = 200*2 = 400Mbps; 對應的RXBYTECLKHS字節時鍾為400/8=50MBps;
(4) 每個數據Lane對應的PPI都有8根數據線(RXDATAHS_N[7:0],如果配置為1條Lane,則每個RXBYTECLKHS時鍾周期傳輸1個Byte; 如果配置為2條Lane,則每個RXBYTECLKHS時鍾周期傳輸2個Byte;如果配置為4條Lane,則每個RXBYTECLKHS時鍾周期傳輸4個Byte;
