1. 程式人生 > >關於MIPI協議(一)——物理層D-PHY總結

關於MIPI協議(一)——物理層D-PHY總結


 
由於MIPI是差分訊號,即一條lane由兩條線組成,因此通過高低電平的組合,這兩條線應該有4種狀態,但圖中可以很明顯看到高速訊號擺幅僅為200mV,因此為了確保傳輸穩定,高速時我們認為訊號只有兩種狀態,即互為高低壓交錯的兩種狀態,因此lane狀態則共有如下表所示的六種狀態。一對lane中的正訊號線為Dp-Line,負訊號線為Dn-Line.
 
知道了lane的這六種狀態接下來,我們可以利用低功耗的狀態來組合我們開啟高速傳輸等的指令序列了,如下表所示:
 
 
我們啟動高速傳輸的SOT指令,使用的就是如上的(LP-11=>LP-01=>LP-00=>HS-0[持續Ths-zero時間]=>傳送HS同步序列“00011101”)序列。SOT接收器狀態檢索過程不再贅述,請自行讀表。結束傳輸的EOT序列比較簡單,也請自行讀表。

 
從以上時序圖,我們能清楚的看到SOT和EOT各狀態切換的順序,以及所需的時間。

接下拉我們看看雙端資料lane,傳輸方向調換指令Turnaround.從以下表格和時序圖可以清楚的看到各LP state切換的時序,所以也不贅述了。
 
 
這裡唯一想提一下的是,注意如上時序圖中,在一個相對較長的LP-00狀態中,存在一個drive overlap的主從控制權交換過程。執行完這條指令,我們並沒有轉換主從關係,但是我們轉換了傳輸方向,在前向通道至反向通道及反向通道至前向通道間,進行了切換。

接下來我們再看看Escape Mode指令,首先,這條指令是用來做什麼的呢,它是用來給MIPI提供一些額外功能處理能力的LP指令,且值得注意的一點是,與前面不同,它是一條基於空間獨熱(Space-One-Hot) 位編碼的非同步指令,由於是非同步指令,因此Data lane在操作這條指令時,並不依賴於Clk Lane。進入Escape Mode的引導步驟碼序為LP-11=>LP10=>LP00=>LP01=>LP00.此外,因為是拿來指定一些功能,因此不同編碼就具有不同的意義,這裡我們先從下表看看它所具有的一些功能碼。
 

這裡我們以上表中的Reset-Trigger指令為例,分析一下如下時序圖,首先我們在時序圖前半部分發現了進入Escape Mode的引導碼LP-11=>LP10=>LP00=>LP01=>LP00。接下來我們來看看這個所謂的空間獨熱編碼(Space-One-Hot) ,我們發現它佔用兩個LP狀態的時間來表示一位資料,這裡小編我以一種等價的方式來評價這種空間獨熱編碼,注意,實際其定義不是這樣的。我們發現它的0位,等價於用LP-01=>LP00表示,它的1位等價於用LP-10=>LP00表示,你也可以認為0位和1位的Dp和Dn狀態是互相交錯的。此外,從圖中我們發現它還有一個顯著的特點,就是在傳送Space-One-Hot編碼過程中,Dp和Dn線異或剛好是以一個LP狀態週期Tlpx為週期的時鐘,因此這個特性可以用來做校驗,不符合Space-One-Hot特性的資料訊號將被丟棄。然後小編我在表後在附上關於Space-One-Hot官方給出的解釋。
 

官方還指出在退出Escape-Mode時,必須停留在Mark-1狀態,這裡等價於LP10狀態。

從上面的Escape Mode的功能碼中發現,它是可以用來觸發Low-Power Data Transmission(LPDT)的,但傳輸的資料仍然要遵循Space-One-Hot的非同步傳輸規則。保持一個LP00(官方稱為Space)狀態,可以用來暫停資料傳輸。老規矩仍然上一張圖給讀者分析。
 
Escape Mode的功能碼中的Ultra-Low Power指令比較簡單,這裡讀者自己看看官方解釋就好。
 

官方文件中,關於Data Lane的說明到此就基本結束了。
接下來我們看看Clk Lane,首先Clk Lane是單端的,常規的Escape Mode指令也不支援,僅支援ULPS指令。
 
接下來結合上面的時序圖和下面的表格,我們來分析一下Clk Lane在切換高速和低功耗模式時的步驟,首先是進入低功耗模式的步驟如下:
1.Clk lane處於交錯高速訊號HS-0和HS-1的狀態
2.最後一個數據通道也進入低功耗狀態了
3.Clk lane在以上狀況下依然保持高速時鐘狀態一段時間,時間長度為Tclk-post,並最後以HS-0狀態結束
4.保持HS-0狀態Tclk-trail時間
5.開始切換HS-TX模組至LP-TX模組,並驅動LP-11狀態,保持Ths-exit時長。至此即進入了LP模式。
接下來我們看看如何退出LP模式進入高速模式:
1.LP-TX模組驅動停止狀態LP-11
2.驅動LP-01狀態,並維持Tlpx時長
3.驅動LP-00狀態,並維持Tclk-prepare時長
4.驅動HS-0狀態,並維持Tclk-zero時長,並在這段時間內同步完成LP-TX到HS-TX的模組切換。
5.在任一條Data Lane啟動前,保持高速時鐘狀態Tclk-pre時長。接下來Data Lane也開始啟動切換,切換步驟結合前述說明理解。
 
 
注意Clk Lane雖然不支援Escape Mode,但是是支援Ultra-Low Power狀態(ULPS)的,由於比較簡單這裡小編也只貼一張圖,讀者自己理解了。
 
接下來規格書中總結了以上LP狀態機切換的步驟,同時講解了MIPI的lane初始化的過程、錯誤偵測的內容,以及進一步講解了MIPI的一些電氣特性和訊號衰減增益相關的內容,小編這裡不關心這些內容,若讀者關心,請自行去閱讀了。

下一篇中小編我打算以一種載荷格式傳輸為例項,詳細探討一下行場有效時間和總時間的估算方法,以便進一步探討一些MIPI傳輸方案在接收器上的時鐘引數選取方法。