MIPI DSI協議學習【轉】


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

1.     MIPI DSI

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

 

DSI分層結構:

 

圖1

 

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

分為短包和長包,短包4個字節,長包6~65541個字節,不管短包還是長包,DI(data identifer數據標識符)都是第1個字節。

 

2.1   長包格式

 

 

圖2

長包由幾部分組成

(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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM