關(guān)于DSI接口的video?mode和command?mode特點及區(qū)別說明
在使用DSI接口傳輸數(shù)據(jù)的時候有video和command兩種模式可以選擇,之前看協(xié)議文檔的時候一直搞不懂,現(xiàn)在有一點自己的想法,所以記錄一下。
1. 視頻幀結(jié)構(gòu)
我們知道顯示器是按照幀來顯示的,一幀之間包括hactive、vactive、hfp、hbp、hsw、vfp、vbp、vsw等參數(shù),視頻幀的結(jié)構(gòu)如下圖所示。
在發(fā)送數(shù)據(jù)的時候,是按照從上到下,從左到右的順序發(fā)送,按照圖中的結(jié)構(gòu),其順序為,先發(fā)送第一行的HSYNC -> H BACK Porch -> H ACTIVE -> H Front Porch。然后為第二行、第三行…

2. video 模式
了解完視頻幀的大概結(jié)構(gòu)后,我們再來看video模式是如何發(fā)送視頻幀的。
在DSI協(xié)議中video模式有三種方式發(fā)送視頻幀,分別為burst mode、non-burst with sync event、non-burst with sync puls。
這三種方式有一個重要的共同點是帶有同步包。
我們以non-burst with sync puls為例,發(fā)送視頻幀的順序如圖所示:

如圖所示,對于non-burst with sync puls模式,在發(fā)送幀的時候,
- 對于列來說,先發(fā)送VSA + VBP行,再發(fā)送VACT行,最后發(fā)送VFP行。
- 對于行來說,VSA、VBP、VACT、VFP行的對應(yīng)的同步包也不相同。
- 對于有效像素數(shù)據(jù),例如24-bit的Ycbcr像素數(shù)據(jù)包,包的data type是0x1c(DSI協(xié)議規(guī)定)
上圖中這些VSS\HSA\HSE等同步包代表的含義如下圖所示:

對于burst模式和non-burst with puls模式也類似,具體可以參考協(xié)議文檔,通過對比視頻幀結(jié)構(gòu)和MIPI DSI協(xié)議規(guī)定的non-burst with sync puls傳輸模式,我們可以發(fā)現(xiàn)他們的結(jié)構(gòu)很類似,video模式傳輸數(shù)據(jù)也正是基于幀結(jié)構(gòu)的方式。
3. command模式
command模式和video模式則大不相同,對于command模式,則沒有使用video模式這些同步包,使用command模式傳輸數(shù)據(jù)是使用DCS命令碼的方式。
在DCS命令碼中,有write memry start 和write menory continue這兩個命令,command模式正是根據(jù)這兩個命令把像素數(shù)據(jù)打包發(fā)送出去。
像素包的DATA TYPE是0x39,如下圖所示:

4. 總結(jié)
DSI有兩種video和command兩種模式傳輸視頻幀,
video模式又分為burst、non-burst with sync、non-burst with puls,特點是這三種方式使用同步包進行視頻同步,像素數(shù)據(jù)包的data type是非DCS類型的(這里說非DCS類型的原因是不用的像素格式有不同的DATA TYPE,例如 24-bit的Ycbcr 422像素數(shù)據(jù)包,包的data type是0x1c,16bit 的Ycbcr 422的data type是0x2c等)。
commamd模式則是通過DCS命令碼的形式把像素數(shù)據(jù)發(fā)出去,data type是0x39,不使用同步包。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux防火墻配置教程之訪問外網(wǎng)web實驗(3)
這篇文章主要為大家詳細介紹了linux防火墻配置教程之訪問外網(wǎng)web的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04

