MIPI DSI協議學習【轉】

本文轉載自:http://www.voidcn.com/blog/LoongEmbedded/article/p-6109759.htmlhtml

1.     MIPI DSIapp

DSI:displayserial interface,顯示串行接口。一個時鐘lane,一個或多個數據laneide

 

DSI分層結構:優化

 

圖1code

 

2.     MIPI DSI協議介紹的數據包格式htm

分爲短包和長包,短包4個字節,長包6~65541個字節,無論短包仍是長包,DI(data identifer數據標識符)都是第1個字節。blog

 

2.1   長包格式接口

 

 

圖2ci

長包由幾部分組成get

(1)  一個32位的包頭(PH:packet Header)

由一個8位的DI、一個16位的字數(WC:word count)和一個8位的ECC。其中DI由數據的VC(virtualchannel)和具體應用的負荷數據DT(data type數據累類型)組成。WC指定datapayload中在包頭和包尾之間的字節數,不包括包頭也不包含包尾。ECC(錯誤校驗碼Error Correction Code)能夠校驗包頭中DI與WC一個位錯誤的狀況和能夠發現2位錯位的狀況。

 

在包頭的結尾,接收器接着讀取data payload block中data payload(WC個字節數的數據)。

(2)  an application-specific datapayload with a variable number of bytes一個字節數可變的,且與具體應用工相關的數據負

(3)  一個16位的包尾(packet footer)

包腳只有一個16位的校驗和(checksum)

 

接收器讀了Data Payload後,會接着讀取在包尾中的Checksum。Checksum

由主處理器(host processor)計算和傳輸。須要注意的是若是Data Payload爲0字節,那麼計算出來的Checksum爲0xFFFF,若是不計算Checksum,那麼包尾由0x0000(2個字節)組成。

 

 

2.2   短包格式

 

圖3

短包由3部分組成:

(1)  一個8位的Data ID

(2)  兩個(命令或是數據)字節

(3)  一個8位的ECC

沒有包尾,短包固定是4個字節長度。

 

2.3   共同的包元素

 

2.3.1       數據標識符字節(data identifierbyte)

任何包的第1個字節是DI字節,它由VC和DT組成,以下圖:

 

圖4

(1)  VC對應DI[7:6]

VC指定虛擬數據通道,最多表示4個。一個處理器最大可爲4個外設(這裏指顯示屏IC)服務,使用VC,可定位到不一樣的外設。雖然這個MIPI DSI協議容許和多個外設通信,但此協議只能用於一個主處理器到一個外設的通信。

 

(2)  DT對應DI[5:0]

指定數據類型,好比0x06,是指DCS READ, no parameters。指定這個包是長包仍是短包和包格式,DT結合WC高通接受器這是個多少字節的長包。這是必要的,由於沒有具體包開始和結束的同步碼來指示包的開始和結束,這容許包傳輸任意數據,但仍是須要包頭來顯示指定包的長度。

 

當接收邏輯倒計時到包尾時,接收器假設下個數據是一個新包的包頭或是傳輸結束。

 

(3)  指定數據類型

2.3.2       ECC(Error Correction code)

ECC能夠校驗包頭中DI與WC一個位錯誤的狀況和能夠發現2位錯位的狀況,主處理器負責計算和傳輸一個ECC字節,外設支持正向和方向通信的ECC。

 

(1)  ECC的規則

 

圖5

第一個24數據位D0~D23包含了完整的DSI包頭,因此校驗位計算可優化爲:

 

圖6

 

 

(2)  發送器的ECC產生

 

圖7

 

(3)  接收器的ECC產生

 

圖8

 

2.3.3        

 

2.4   長包Payload的checksum產生

長包的包頭由一個字節的ECC保護,爲了檢測長包傳輸的錯誤,checksum基於數據包的payload部分來計算,須要注意,一個零字節長度payload的長包,其checksuam爲0xFFFF。

 

Checksuam只能指示payload一個或多個錯誤的出現,不像ECC,checksum不能修復錯誤。因此,checksum計算對單方向的DSI實現沒有做用,由於外設沒辦法報告錯誤給主處理器。

 

主處理器強制產生和發送checksum

 

(1)  Checksum的發送

 

圖9

 

 

(2)  Checksum的產生

 

圖10

 

(3)  Checksum產生的例子

 

 

 

圖11

 

 

 

圖12

相關文章
相關標籤/搜索