1. 程式人生 > >MIPI-DSI(協議)

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