MIPI-DSI(協議)
轉自https://blog.csdn.net/eZiMu/article/details/56279847
概述:
MIPI包含很多通訊協議,本章只講述mipi用於顯示介面的dsi(顯示序列介面)。
MIPI-DSI協議分層:
MIPI-DSI分四層:應用層,協議層,通道管理層,物理層。如下圖:
MIPI-DSI物理層(D-PHY):
1、物理層功能
將通道管理層並行資料轉換成序列資料傳送,將接收到的序列資料轉換成並行資料,傳輸給通道管理層。
2、物理訊號
- 訊號兩種工作狀態,高速模式狀態(HS)和低速模式狀態(LP)。
- 物理層,就是要控制硬體訊號的(時序),MIPI-DSI兩種訊號型別:
- 時鐘lane,兩根線一個Dp,Dn。
- 資料lane,兩根線一個Dp,Dn;資料lane根據需求有多個,最少一個lane(lane0),最多4個lane(lane0,lane1,lane2,lan3),其中只有lane0是雙向的(低速模式雙向,高速模式也只能是單向),其他的都只能是單向(高速模式單向)。
-
資料lane電平:
- 低速模式LP:0-1.2V,空閒電平(LP11)Dp,Dn是1.2V。
- 高速模式HS:100-300mV (200mV)
-
資料通道狀態(資料lane狀態):
可以看出資料通道,有6個狀態:HS-0,HS-1,LP00,LP01,LP10,LP11.
其中HS-0表示高速模式下資料lane的Dp為低,Dn位高,LP01表示低速模式資料lane的Dp為低,Dn為高。
在系統上電開機後,LP11保持100us左右(硬體初始化),然後進入stop狀態,模式是間的轉換都要回到這個狀態,一般控制狀態也是LP11狀態。模式之間的轉換,將在後面描述。 -
電平識別
-
控制模式下電平識別:
Dp,Dn為0V就是邏輯0,為1.2V時,是邏輯1。LP10表示的就是Dp為1(1.2V),Dn為0(0V) -
低速模式下電平識別:
Dp,Dn採取異或運算,如Dp是1.2V,表示1,Dn是0V,表示0,同時刻Dp,Dn異或等於1;當Dp是1.2V,表示1,Dn是1.2V,表示1,同時刻Dp,Dn異或等於0; -
高速模式下電平識別:
高速模式下Dp,Dn是差分輸出,在同時刻Dp比Dn高表示為1,Dp比Dn低表示為0(電壓值對比)
-
3、物理層組織結構(架構)
-
物理層,簡單來說,由時鐘通道模組和資料通道模組組成。
- 時鐘通道模組,管理時鐘lane模式和時序
- 資料通道模組,管理資料lane模式和時序。資料通道又分成以下模組(簡單瞭解):
- 低功耗傳送器(LP-TX,低速模式)
- 低功耗接收器(LP-RX,低速模式)
- 低功耗競爭檢測器(LP-CD,低速模式),這個只有在lane0上有,因為雙向傳說,用於監測匯流排競爭情況。
- 高速傳送器(HS-TX,高速模式)
- 高速接收器(HS-RX,高速模式)
-
物理層工作模式,有控制模式,ESCAPE模式,高速模式,TA模式。
- 控制模式,也是在低速模式下的,非傳輸模式,資料lane處於LP11狀態,在模式之間轉換基本都回到這個模式,然後再轉其他模式。
- ESCAPE模式,也是在低速模式下,低速下傳輸模式,LP11→LP10→LP00→LP01→LP00經過這個時序過程,就能從控制模式轉入ESCAPE模式。退出ESCAPE模式:LP10→LP11
- 高速模式,高速傳輸模式,進入高速模式LP11→LP01→LP00→SoT(0001_1101),其中SoT是在進入高速的同步碼,即在進入高速模式後必須發生的第一個位元組SoT(0x1e),退出告訴模式:EoT→LP11,EoT表示HS-0或者HS-1狀態。
- TA模式(也有寫成BTA),匯流排控制權交換。當我們在低速模式下讀的時候,主機發完命令和引數後,要將匯流排控制權交換給從裝置,從裝置返回讀結果給我們。主機放棄匯流排控制權(由主機發起):LP-11→LP-10→LP-00→LP-10→LP-00,從裝置接受匯流排控制權後,應答(ACK)主機:LP00→LP10→LP11(表示從裝置已控制匯流排),當從裝置完成讀返回結果後,要放棄匯流排控制權,還給主機,此時由從裝置發起:LP-11→LP-10→LP-00→LP-10→LP-00。讀過程結束。
4、時序
物理層一個很重要的,是對時序的處理,如下圖(先把圖放在這裡,搞很清楚的時候再來寫):
通道管理層:
通道管理層,主要的功能就是,將要傳送的資料,按照位元組為單位(MIPI-DSI是按照位元組傳輸的,從低位到高位),分配個各個資料lane上;將接收到的資料lane上的資料,恢復成原來的位元組順序。
看如下圖,就很清除:
協議層
1、協議層功能
協議層主要功能是打包資料和解包資料,將資料通道管理層傳輸來的資料包,解包,傳輸到應用成;將應用層送來的資料,打包成資料包的形式傳輸到通道管理層。
2、資料包格式
資料包,分短資料包,長資料包:
短包大小4個byte,長包大小是6~65541 bytes(看WC的值)
資料標識:其中[5:0]表示資料型別,物理層會根據這個型別,發起模式間的轉換。
3、ESCAPE模式
ESCAPE模式又可以成三種模式:
當進入ESCAPE模式後,還需要跟著傳送1byte的命令,來進入ESCAPE下的不同模式。這個1byte是物理層,根據資料型別來自動傳送的,協議層不管。
ULPS超低功耗模式,在進入ESCAPE後,傳送00011110後,才能進入。(超低功耗模式時鐘lane,資料lane都處於0V電平狀態)
Trigger模式,是些控制作用,如傳送01100010,是通知顯示模組復位,當然還有其他的。如果顯示模組有TE訊號,應用層,會將TE訊號轉換成trigger命令形式返回給主機。
從主機到從裝置的部分資料型別如下(以下資料型別都將觸發,先發送11100001,後再發送表中的指令):
從外設返回給主機的資料型別:
有帶DCS的,DCS表示資料包中data0是命令(暫存器),後面可以有引數,或者沒引數,根據要傳送的命令或者暫存器情況,選擇不同的命令。
不帶DCS的,為一般讀寫命令,資料包中只有資料,沒有命令和引數之分。
是DCS還是一般讀寫資料,都是有這6位的資料型別決定。
6位表示什麼資料型別,都是MIPI-DSI協議規定的,不能改變。
4、高速模式下視訊資料
高速模式下可分成三種模式:
- Non-Burst Mode with Sync Pulses
- Non-Burst Mode with Sync Events
- Burst Mode
上圖頂部有圓弧的代表資料包,長方形的代表時序的狀態。
下面分別是三種video mode下的資料傳輸時序圖:
屏區域示意圖
如上圖:
HSS表示行同步的起始點,HSE表示行同步結束點,HSS,HSE是協議層中一特殊資料
VSS表示幀同步起始點,VSE表示幀同步結束點,VSS,VSE是協議層中一特殊資料
HSA就是HSPW,BLLP就是VSPW,空資料(無效資料),只為同步
HBP就是HBPD,HFP就是HFPD,空資料(無效資料),只為同步
RGB就是就是有效顯示區域的一行資料。
應用層
對於顯示模組,協議層是將來自協議層的資料轉化成DPI或者DBI供給顯示模組,如果讀,就是把來自顯示模組DBI的資料,解析成一個數據,送到協議層。如下圖:
圖中SPI模組可以不管,在這裡是配置時序的。
MIPI-DSI對於軟體驅動工程師來說,重點是物理層和協議層。
參考資料:
基於MIPI_DSI協議的LCD驅動介面設計(很好的一篇論文)
mipi 除錯經驗
MIPI_DSI_Introduction
MIPI DSI協議介紹
MIPI及DSI協議介紹
MIPI-DSI 三種 Video Mode 理解
Mipi LP模式下資料通訊協議詳解-2014-12-20