視頻流
像素時(shí)鐘(pixel clock)
顯示屏參數(shù)解析
D-PHY原理
鏈路基礎(chǔ)知識(shí)
操作模式
I/O信號(hào)
DDR(Dual Data Rate)傳輸方式
視頻流
所有現(xiàn)代計(jì)算機(jī)顯示器都是光柵顯示器,意味著顯示的圖像是通過(guò)從左到右、從顯示器頂部到底部逐行逐像素編寫而創(chuàng)建的。顯示的圖像或幀由像素的矩形陣列組成。視頻流由一系列以固定時(shí)間間隔顯示的幀組成。這個(gè)時(shí)間間隔可以用Frames Per Second(FPS)或Hz來(lái)描述。這個(gè)過(guò)程的根源可以追溯到舊式的陰極射線管顯示器。
LCD和OLED顯示屏的工作原理源于傳統(tǒng)的CRT顯示技術(shù),如上所示。它們通過(guò)電子束不斷掃描屏幕背面來(lái)逐幀點(diǎn)亮圖像。具體過(guò)程如下:
每一幀圖像的顯示是通過(guò)從左到右、從上到下逐行填充像素的方式完成的,直到整個(gè)屏幕被完全填充。電子束首先從左到右掃描一行圖像并發(fā)光,在一行掃描結(jié)束后,電子束會(huì)關(guān)閉并以水平方向返回到屏幕左側(cè),為下一行圖像的掃描做準(zhǔn)備。然后電子束會(huì)逐行從上到下掃描完整個(gè)屏幕,最終完成一幀圖像的顯示。
在完成一幀圖像顯示后,顯示系統(tǒng)會(huì)連續(xù)顯示多幀畫面,以生成連續(xù)、完整的視覺(jué)效果。
這種逐行掃描的工作機(jī)制決定了顯示系統(tǒng)需要引入一些同步信號(hào)和時(shí)序參數(shù)來(lái)確保電子束的穩(wěn)定工作,從而獲得良好的顯示效果。
這里提到的以水平方向返回左側(cè),及返回第一行的動(dòng)作不可能在瞬間完成,需要花費(fèi)一定量的時(shí)間完成。所以我們引入以下參數(shù),保證得到穩(wěn)定的光束從而完成顯示:
- HFP (Horizontal Front Porch,水平前肩) - 水平同步信號(hào)的前肩,其代表有效像素?cái)?shù)據(jù)結(jié)束后不顯示的像素個(gè)數(shù),也是之前提到的關(guān)閉和光束回轉(zhuǎn)所需要的時(shí)間間隔。H-SYNC (Horizontal Sync,水平同步) - 在每一行開(kāi)始前發(fā)送,光束水平越過(guò)屏幕所需的時(shí)間。HBP (Horizontal Back Porch,水平后肩) - 水平同步信號(hào)的后肩,其代表水平同步信號(hào)以后的無(wú)效行,確保光束在點(diǎn)亮下一行時(shí)是穩(wěn)定的。在HBP信號(hào)后,第一個(gè)有效顯示像素開(kāi)始發(fā)送。HACTIVE - 水平有效像素。
每幀之間的切換也需要一定量的時(shí)間,我們引入以下參數(shù),保證得到穩(wěn)定的光束從而完成顯示:
- VFP (Vertical Front Porch,垂直前肩)- 垂直同步信號(hào)的前肩,其代表本幀數(shù)據(jù)輸出結(jié)束到下一幀垂直同步周期開(kāi)始之前的無(wú)效數(shù)據(jù)行,也是回轉(zhuǎn)光束所需要的時(shí)間。在VFP信號(hào)之后,下一幀畫面開(kāi)始掃描。V-SYNC (Vertical Sync, 垂直同步)- 在每一幀的顯示前首先發(fā)送,保證光束從屏幕底部垂直回到頂部所需的時(shí)間間隔。VBP(Vertical Back Porch,垂直后肩)- 垂直同步信號(hào)的后肩,其代表垂直同步信號(hào)以后的無(wú)效行。與之前HBP功能相似,為確保光束穩(wěn)定所需的時(shí)間。在VBP信號(hào)之后,第一個(gè)有效像素行開(kāi)始發(fā)送。VACTIVE - 垂直有效像素。
像素時(shí)鐘(pixel clock)
時(shí)鐘必須按順序保留像素?cái)?shù)據(jù)和同步信號(hào)。這個(gè)時(shí)鐘被稱為像素時(shí)鐘。每個(gè)時(shí)鐘周期傳輸一個(gè)像素。它是大多數(shù)圖像顯示傳輸系統(tǒng)的主要時(shí)鐘。在圖像傳感器的情況下,像素時(shí)鐘時(shí)間周期設(shè)置每個(gè)像素的ADC轉(zhuǎn)換時(shí)間間隔。它是HSYNC和VSYNC信號(hào)的根時(shí)鐘。HSYNC信號(hào)表示每行的開(kāi)始,VSYNC信號(hào)表示每個(gè)新幀的開(kāi)始。
ENB 信號(hào)用于指示主動(dòng)像素數(shù)據(jù)傳輸。如果沒(méi)有該信號(hào),各種像素管道可能會(huì)將消隱數(shù)據(jù)誤認(rèn)為具有 0 值的像素?cái)?shù)據(jù)。
顯示屏參數(shù)解析
顯示屏參數(shù)通常需要在客戶使用對(duì)應(yīng)屏的driver或DTB中包含。以下以RM67191 MIPI-DSI屏為例進(jìn)行說(shuō)明:
#gpu/drm/panel/panel-raydium-rm67191.c
static?const?struct?drm_display_mode?default_mode?=?{
????????.clock?=?121000,
????????.hdisplay?=?1080,
????????.hsync_start?=?1080?+?20,
????????.hsync_end?=?1080?+?20?+?2,
????????.htotal?=?1080?+?20?+?2?+?34,
????????.vdisplay?=?1920,
????????.vsync_start?=?1920?+?10,
????????.vsync_end?=?1920?+?10?+?2,
????????.vtotal?=?1920?+?10?+?2?+?4,
????????.width_mm?=?68,
????????.height_mm?=?121,
????????.flags?=?DRM_MODE_FLAG_NHSYNC?|
?????????????????DRM_MODE_FLAG_NVSYNC,
};
屏幕的參數(shù)有時(shí)會(huì)分別以單獨(dú)參數(shù)的方式提供。在新版本的BSP中,其需要通過(guò)以上hsync_start, hsync_end 及其他參數(shù)的方式提供。各參數(shù)的具體含義及提供要求可以參考DRM相關(guān)driver中的說(shuō)明:
/**
?*?linux-imx/include/uapi/drm/drm_mode.h
?*?struct?drm_mode_modeinfo?-?Display?mode?information
?*?@hdisplay:?horizontal?display?size
?*?@hsync_start:?horizontal?sync?start
?*?@hsync_end:?horizontal?sync?end
?*?@htotal:?horizontal?total?size
?*?@hskew:?horizontal?skew
?*?@vdisplay:?vertical?display?size
?*?@vsync_start:?vertical?sync?start
?*?@vsync_end:?vertical?sync?end
?*/
從上述RM67191 及 DRM driver中,我們得到RM67191的屏幕相關(guān)參數(shù)如下:
HFP = 20
H-SYNC = 2
HBP = 34
HACTIVE = 1080
VFP = 10
V-SYNC = 2
VBP = 4
VACTIVE = 1920
在實(shí)際將顯示屏集成到系統(tǒng)中時(shí),需要遵循以下步驟:
從屏幕的數(shù)據(jù)手冊(cè)(datasheet)和技術(shù)規(guī)格(spec)中獲取上述涉及的各種時(shí)序參數(shù),包括水平和垂直方向的消隱間隔、有效像素?cái)?shù)量等信息。這些參數(shù)是配置屏幕驅(qū)動(dòng)所必需的。
在顯示設(shè)備的驅(qū)動(dòng)程序中,需要根據(jù)從數(shù)據(jù)手冊(cè)獲取的時(shí)序參數(shù)對(duì)相關(guān)寄存器或變量進(jìn)行配置和初始化。比如設(shè)置HFP、H-SYNC、HBP、HACTIVE等水平方向的參數(shù)值。
同時(shí)在設(shè)備樹(shù)(DTB)中,也需要將這些時(shí)序參數(shù)進(jìn)行配置和聲明,以便操作系統(tǒng)能夠正確識(shí)別和驅(qū)動(dòng)該顯示設(shè)備。
完成上述驅(qū)動(dòng)和設(shè)備樹(shù)的配置后,系統(tǒng)就可以正確地初始化和點(diǎn)亮所連接的顯示屏幕了。
總的來(lái)說(shuō),正確獲取顯示屏的技術(shù)參數(shù),并在驅(qū)動(dòng)程序和設(shè)備樹(shù)中進(jìn)行精確配置,是成功集成顯示設(shè)備的關(guān)鍵所在。只有這樣,系統(tǒng)才能穩(wěn)定地輸出預(yù)期的圖像效果。
D-PHY原理
從圖中可以看出,MIPI-DSI接口的顯示流程可以分為兩個(gè)部分:
- D-PHY:這是CSI-2和DSI協(xié)議使用的源同步物理層,負(fù)責(zé)處理物理和電氣方面的通信。Display Serial Interface (DSI):這是處理器和外設(shè)之間的接口,它基于MIPI聯(lián)盟現(xiàn)有的規(guī)范建立。
本篇文章將首先介紹D-PHY的工作原理。
鏈路基礎(chǔ)知識(shí)
MIPI規(guī)范在討論基于CSI-2或DSI組裝系統(tǒng)所需的部件時(shí)使用了一組一致的術(shù)語(yǔ)。
- Interconnect),但在技術(shù)文檔中大多簡(jiǎn)稱為通道。鏈路(Link):包含一個(gè)時(shí)鐘通道和至少一個(gè)數(shù)據(jù)通道的兩個(gè)設(shè)備之間的連接。 一個(gè)鏈路至少要包括兩個(gè)PHY和兩個(gè)通道的互連。
操作模式
共有四種操作模式:
- 控制模式( Control)高速傳輸模式( High-Speed)脫離模式( Escape)超低功耗狀態(tài)( ULPS)模式。
數(shù)據(jù)通道支持所有四種模式,但時(shí)鐘通道僅支持控制模式、高速傳輸模式和超低功耗狀態(tài)模式。正常運(yùn)行時(shí),數(shù)據(jù)通道處于控制模式或高速傳輸模式。高速數(shù)據(jù)傳輸模式在數(shù)據(jù)突發(fā)時(shí)采用,從控制模式的停止?fàn)顟B(tài)( LP-11)開(kāi)始并在控制模式的停止?fàn)顟B(tài)( LP-11)結(jié)束。通道僅在數(shù)據(jù)突發(fā)時(shí)處于高速模式。 下表描述了時(shí)鐘和數(shù)據(jù)通道可以進(jìn)入的六種物理狀態(tài)。
在正常操作中,數(shù)據(jù)通道會(huì)在低功耗控制模式和高速數(shù)據(jù)傳輸模式之間不斷切換。
I/O信號(hào)
D-PHY IO引腳有兩種不同的電氣操作模式:?jiǎn)味四J胶筒罘帜J健?/p>
- 單端模式稱為低功耗( LP)模式,用于脫離模式和控制模式,在主處理器和外圍設(shè)備之間進(jìn)行系統(tǒng)配置/控制。在LP模式下,IO電路使用傳統(tǒng)的CMOS輸出緩沖器(帶斜率控制), 其在接地和VDD_IO之間切換。在LP模式下,組成通道的兩個(gè)IO電路可以獨(dú)立切換。它們提供四種不同的通道狀態(tài): LP-00、 LP-01、 LP-10和LP-11。差分模式被稱為高速( HS)模式,僅用于數(shù)據(jù)傳輸。差分模式只有HS-0和HS-1兩種狀態(tài)。在HS模式下,組成通道的兩個(gè)IO電路輸出極性始終相反,不能同時(shí)為邏輯高或邏輯低。 下圖說(shuō)明了HS和LP模式之間信號(hào)電平的差異。
正常運(yùn)行時(shí),數(shù)據(jù)通道在低功耗控制模式和高速數(shù)據(jù)傳輸模式之間不斷切換。
DDR(Dual Data Rate)傳輸方式
-
- 在單數(shù)據(jù)速率 (SDR) 同步數(shù)據(jù)總線架構(gòu)(例如,SDRAM)中,數(shù)據(jù)在上升沿或下降沿進(jìn)行采樣,但不會(huì)在兩者上采樣。這意味著數(shù)據(jù)速率等于時(shí)鐘速度。各種低功耗模式使用單一數(shù)據(jù)速率時(shí)鐘結(jié)構(gòu)。DDR(雙數(shù)據(jù)速率)總線架構(gòu)可以在每個(gè)時(shí)鐘邊沿上傳輸數(shù)據(jù),而不僅僅是在單個(gè)邊沿上傳輸數(shù)據(jù)。HS 模式下的數(shù)據(jù)傳輸使用 DDR 傳輸方案。這意味著對(duì)于給定的時(shí)鐘頻率 (Fr),每個(gè)通道的數(shù)據(jù)速率為 2 × Fr。
在高速數(shù)據(jù)傳輸模式(High-Speed, HS)的架構(gòu)下,數(shù)據(jù)通道(Data Lane)普遍采用雙數(shù)據(jù)率(Dual Data Rate, DDR)傳輸技術(shù)。這一技術(shù)核心在于,數(shù)據(jù)采樣操作不僅發(fā)生在時(shí)鐘信號(hào)(CLK Lane)的上升沿,還同步在下降沿進(jìn)行,實(shí)現(xiàn)了每個(gè)時(shí)鐘周期內(nèi)兩次采樣,從而有效倍增了數(shù)據(jù)傳輸效率。具體而言,每當(dāng)CLK Lane的狀態(tài)由低變高(上升沿)或由高變低(下降沿)時(shí),Data Lane上的數(shù)據(jù)即被捕獲并傳輸。
因此,若CLK信號(hào)的標(biāo)稱頻率為F Hz,則在DDR模式下,每個(gè)數(shù)據(jù)通道(lane)的實(shí)際數(shù)據(jù)傳輸速率達(dá)到2F bps(比特每秒),實(shí)現(xiàn)了頻率的有效倍增。這一特性在評(píng)估并計(jì)算移動(dòng)產(chǎn)業(yè)處理器接口(MIPI)時(shí)鐘頻率時(shí)尤為重要,其中DRPL(或稱為Bit Clock)作為數(shù)據(jù)速率的直接體現(xiàn),其值除以2即得到MIPI Clock的等效頻率,反映了系統(tǒng)內(nèi)部處理時(shí)鐘信號(hào)與數(shù)據(jù)速率之間的換算關(guān)系。
總結(jié)而言,DDR傳輸技術(shù)通過(guò)在每個(gè)時(shí)鐘周期內(nèi)的上升沿和下降沿均進(jìn)行數(shù)據(jù)采樣,實(shí)現(xiàn)了數(shù)據(jù)傳輸速率的加倍,這一機(jī)制在高速數(shù)據(jù)傳輸系統(tǒng)中具有廣泛應(yīng)用,尤其是在MIPI等標(biāo)準(zhǔn)接口的設(shè)計(jì)與實(shí)施中。