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