DSI是一種高速串行接口,旨在通過將數(shù)據(jù)實(shí)時(shí)傳輸?shù)斤@示模塊而不將數(shù)據(jù)存儲(chǔ)在設(shè)備中來降低移動(dòng)設(shè)備中顯示子系統(tǒng)的成本。但是,這意味著必須使用正確的時(shí)序信息發(fā)送數(shù)據(jù)。驗(yàn)證MIPI-DSI最重要的方面是與視頻幀傳輸相關(guān)的時(shí)序參數(shù)。我與幾個(gè)VIP用戶一起完成了整個(gè)練習(xí),并認(rèn)為分享這將很有用,因?yàn)樗鼘⑹蛊渌肆私庖曨l幀傳輸所涉及的復(fù)雜性。
讓我們以888×640分辨率的RGB480視頻幀為例,了解傳輸視頻幀的相關(guān)時(shí)序細(xì)節(jié)。
圖 1:888×640 顯示屏中的 RGB480 視頻格式
在RGB888數(shù)據(jù)格式中,每個(gè)像素有3個(gè)字節(jié)(24位)的信息,每個(gè)分量(R和G和B)有1個(gè)字節(jié)(8位)。在 640×480 分辨率幀中,每行有 640 像素,幀有 480 行。讓我們看看需要與此RGB數(shù)據(jù)一起發(fā)送的時(shí)序信息。
每個(gè)視頻幀應(yīng)具有以下信息(按順序):
VSYNC (同步信息)
VBP(垂直后門廊計(jì)時(shí)信息)
VACT(活動(dòng)視頻數(shù)據(jù)以及水平后門廊和前門廊定時(shí))
VFP(垂直前門廊定時(shí)信息)
VSYNC (同步信息)
VSYNC具有同步脈沖的信息。每個(gè)脈沖信息通過發(fā)送垂直同步開始或水平同步開始數(shù)據(jù)包(第一個(gè)脈沖單獨(dú)具有VSS,其余脈沖具有HSS)進(jìn)行傳輸,然后是水平同步活動(dòng)(只不過是一個(gè)消隱數(shù)據(jù)包),水平同步結(jié)束和BLLP(如果時(shí)間允許,可以引入低功耗狀態(tài),這又是一個(gè)屏蔽數(shù)據(jù)包), 參見圖 2。此信息針對(duì)每個(gè) VSA(垂直同步活動(dòng))線路發(fā)送。在簡(jiǎn)化模式下(非突發(fā)/突發(fā)同步事件),主機(jī)只能發(fā)送同步脈沖的啟動(dòng)事件(僅限VSS或HSS),外設(shè)可以在需要時(shí)從收到的同步事件中重新生成同步脈沖。每條VSA線路應(yīng)在tL(線路時(shí)間)范圍內(nèi),時(shí)序參數(shù)由外設(shè)定義。
在此狀態(tài)下涉及的定時(shí)參數(shù)是tL(線路時(shí)間),tHSA(水平同步活動(dòng)時(shí)間)和BLLP,這些時(shí)序參數(shù)的約束顯示在VACT部分中,因?yàn)檫@些參數(shù)還取決于VACT中的其他參數(shù)(HBP,HACT,HFP)。
VBP(垂直后門廊計(jì)時(shí)信息)
VBP具有垂直后廊定時(shí)的信息。VBP 線路信息通過發(fā)送垂直同步端或水平同步開始(第一行單獨(dú)具有 VSE,其余具有 HSS)數(shù)據(jù)包,然后發(fā)送水平同步活動(dòng)(只不過是消隱數(shù)據(jù)包)、水平同步端和 BLLP(如果時(shí)間允許,可以引入低功耗狀態(tài),這又是屏蔽數(shù)據(jù)包)來傳達(dá)), 參見圖 2。此信息將針對(duì)每個(gè) VBP 行發(fā)送。每個(gè) VBP 行都應(yīng)在 tL(行時(shí)間)范圍內(nèi)。
圖2:具有同步脈沖定時(shí)信息的非突發(fā)(來源:DSI 1.1規(guī)范)
此狀態(tài)期間涉及的定時(shí)參數(shù)與 VSA 中的定時(shí)參數(shù)相同,并將在 VACT 中涵蓋,因?yàn)檫@些參數(shù)還取決于 VACT 中的其他參數(shù)(HBP、HACT、HFP)。
VACT(活動(dòng)視頻數(shù)據(jù)以及水平后門廊和前門廊定時(shí))
VACT具有活動(dòng)視頻數(shù)據(jù)以及水平后廊和水平前廊的信息。每個(gè)VACT行都有以下信息
HSYNC(水平同步信息):
這與我們?cè)赩SA或VBP中看到的Hsync信息相同。這是由HSS傳達(dá)的,其次是HAS和HSE。同步信息應(yīng)在外設(shè)定義的tHSA定時(shí)參數(shù)范圍內(nèi)。
HBP(水平后門廊計(jì)時(shí)信息):
這只不過是一個(gè)帶有水平后門定時(shí)信息的空白包。該信息應(yīng)在外設(shè)定義的tHBP時(shí)序參數(shù)范圍內(nèi)。
活動(dòng)線數(shù)據(jù)(在我們的示例中為 RGB888 數(shù)據(jù))
這是具有24位像素信息的活動(dòng)視頻像素?cái)?shù)據(jù)。每條線路作為一個(gè)長(zhǎng)數(shù)據(jù)包發(fā)送,也可以分成多個(gè)長(zhǎng)數(shù)據(jù)包。但是多條線路不能合并為一個(gè)長(zhǎng)數(shù)據(jù)包,在這種情況下,我們可能無法傳達(dá)第二條線路的 HBP 和 HFP。此信息應(yīng)在外設(shè)定義的 tHACT 定時(shí)參數(shù)范圍內(nèi)。
HFP(水平前門廊定時(shí)信息)
這只不過是一個(gè)帶有水平前廊計(jì)時(shí)信息的空白包。該信息應(yīng)在外設(shè)定義的tHFP定時(shí)參數(shù)范圍內(nèi)。
每行應(yīng)在tL(線路時(shí)間)定時(shí)參數(shù)范圍內(nèi)。在此狀態(tài)下涉及的定時(shí)參數(shù)為tL,tHSA,tHBP,tHACT,tHFP。HSA 應(yīng)在 tHSA 最小和最大范圍內(nèi)。同樣,Line、HBP、HACT、HFP 應(yīng)在相應(yīng)的最小和最大時(shí)序參數(shù)范圍內(nèi)。很難對(duì)實(shí)時(shí)進(jìn)行約束,因此我們建議將時(shí)間轉(zhuǎn)換為字?jǐn)?shù)和字?jǐn)?shù)限制。例如,如果最小 tL 為 tL_MIN,最大 tL 為 tL_MAX則通過將其除以比特率然后除以 8(獲得字節(jié)數(shù) = 字?jǐn)?shù))來計(jì)算字?jǐn)?shù)。同樣,從其他參數(shù)的最小和最大范圍計(jì)算其字?jǐn)?shù)。
bit[15:0] min_line_wc = ((tL_MIN ) / bitrate) / 8;
bit[15:0] max_line_wc = ((tL_MAX ) / bitrate) / 8;
// Note: tL_MIN and tL_MAX are in micro seconds and so make sure the units of bitrate is also in micro seconds
constraint constraint_hsa {
hsa_wc inside {[min_hsa_wc:max_hsa_wc]};
}
constraint constraint_hbp {
hbp_wc inside {[min_hbp_wc:max_hbp_wc]};
}
constraint constraint_hfp {
hfp_wc inside {[min_hfp_wc:max_hfp_wc]};
}
constraint constraint_hact {
hact_wc inside {[min_hact_wc:max_hact_wc]};
// Below constraint is required to make sure HACT has one byte of data for RGB in each pixel
(hact_wc % 3) == 0;
}
constraint constraint_line {
line_wc inside {[min_line_wc:max_line_wc]};
// LINE = HSS (4bytes short packet) + HSA + HSE (4bytes short packet) + HBP + HACT + HFP
line_wc == 4 + hsa_wc + 4 + hbp_wc + hact_wc + hfp_wc;
}
constraint constraint_bllp {
//BLLP = LINE – HSS (4bytes short packet) – HSA – HSE (4bytes short packet)
bllp_wc == line_wc – 4 – has_wc – 4;
}
線路時(shí)序約束為hsa_wc、hbp_wc、hact_wc、hfp_wc、HSS 和 HSE 的總和。HSS 和 HSE 是 2 個(gè)短數(shù)據(jù)包,因此每個(gè)數(shù)據(jù)包 4 個(gè)字節(jié)。BLLP(用于 VSA、VBP 和 VFP)的字?jǐn)?shù)應(yīng)減去字?jǐn)?shù)統(tǒng)計(jì)和 2 個(gè)短數(shù)據(jù)包,HSS 和 HSE 各有字?jǐn)?shù)。
VFP(垂直前門廊定時(shí)信息)
VFP具有垂直前廊計(jì)時(shí)的信息。VFP 線路信息通過發(fā)送水平同步開始數(shù)據(jù)包,然后發(fā)送水平同步活動(dòng)(只不過是一個(gè)消隱數(shù)據(jù)包)、水平同步結(jié)束和 BLLP(如果時(shí)間允許,可以引入低功耗狀態(tài),這又是一個(gè)消隱數(shù)據(jù)包)來傳達(dá)。此信息針對(duì) VFP 時(shí)間發(fā)送。每條 VFP 線路都應(yīng)在外設(shè)定義的 tL(線路時(shí)間)計(jì)時(shí)參數(shù)范圍內(nèi)。
DSI1.1規(guī)范(表22,第8.11.5節(jié))中提到的時(shí)序參數(shù)范圍(最小值和最大值)留給外設(shè)供應(yīng)商的分立器件。除了本博客中解釋的非突發(fā)同步脈沖之外,還有不同的視頻幀信息發(fā)送模式,但有微小的變化,例如,在非突發(fā)同步事件中,不需要發(fā)送HSA和HSE,而只需使用HSS即可。同樣,DSI也具有突發(fā)模式,其中像素?cái)?shù)據(jù)使用時(shí)間壓縮突發(fā)格式在更短的時(shí)間內(nèi)傳輸,從而為L(zhǎng)P狀態(tài)提供更多時(shí)間。讓我們?cè)诤罄m(xù)博客中看一下這些其他模式。希望此博客對(duì)那些在DSI中驗(yàn)證視頻幀傳輸?shù)娜擞兴鶐椭?/p>
審核編輯:郭婷
-
接口
+關(guān)注
關(guān)注
33文章
8596瀏覽量
151145 -
顯示屏
+關(guān)注
關(guān)注
28文章
4488瀏覽量
74291 -
DSI
+關(guān)注
關(guān)注
0文章
51瀏覽量
42352
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論