????????關于 DBI 和 DPI 這兩種格式的詳細協議內容,請參考《MIPI Alliance Standard for Display Bus Interface(V2.0) .pdf》和《MIPI Alliance Standard for Display Pixel Interface(DPI- 2) .pdf》這兩份文檔。
首先先了解幾個名詞,如下表所示:
縮寫 | 英文全稱 | 含義 |
HSYNC | Horizontal Sync | 水平同步 |
HLW/HPW | Horizontal Low Pulse Width | 水平同步信號寬度 |
HSA | Horizontal Sync Active | 水平同步有效 |
HSS | Horizontal Sync Start | 水平同步開始 |
HSE | Horizontal Sync End | 水平同步結束 |
HBP | Horizontal Back Porch | 水平后肩 |
HFP | Horizontal Front Porch | 水平前肩 |
HACT | Horizontal Active | 水平有效區域,也就是屏幕有效寬度 |
VSYNC | Vertical Sync | 垂直同步 |
VLW/VPW | Vertical Low Pulse Width | 垂直同步信號寬度 |
VSA | Vertical Sync Active | 垂直同步信號寬度 |
VSS | Vertical Sync Start | 垂直同步開始 |
VSE | Vertical Sync End | 垂直同步結束 |
HBP | Vertical Back Porch | 垂直后肩 |
VACT | Vertical Active | 垂直有效區域,也就是屏幕有效高度 |
VFP | Vertical Front Porch | 垂直前肩 |
RGB | — | 在這里指 RGB 原始像素數據流 |
LPM | Low Power Mode | 低功耗模式 |
BLLP | Blanking or Low-Power periods | 沒有包含有效數據的數據包或者進入 LP模式下的狀態,稱為 BLLP |
????????????????????????????????????????????????????????????????相關名詞解釋表
????????其中垂直同步 VSYNC 表示一幀圖像的起始,水平同步 HSYNC 表示一行圖像的起始。
DBI 接口
DBI 接口全稱是 Display Bus Interface,俗稱 MCU 接口、 8080 接口。也就是大家在用STM32F103/407 這種 MCU 的時候使用的屏幕接口。 MCU 通過并行接口傳輸控制命令和數據, DBI 接口示意圖如圖所示:
? ? ? ? ? ??、
????????????????????????????????????????????????????????????????DBI 接口示意圖
????????正點原子 STM32F103 和 F407 開發板的屏幕就是用的 DBI 接口,也就是所謂的 MCU口,正點原子 4.3 寸 MCU 屏的 TFT 接口部分原理圖如圖所示:
???????????????????????????????????????????????????????????????4.3寸 MCU 屏 TFT 接口
????????對于 DBI 接口屏幕而言,有 CS/RS/WR/RD 控制線,以及 D0~D15 數據線, DBI 是非常低端的產品所使用的接口,比如低端 MCU 等
DPI 接口
????????DPI 接口全稱 Display Pixel Interface,就是我們常說的 RGB 接口, RGB 接口使用場合非常多,比如 STM32H7 單片機,大量的 Cortex-A 系列內核的 MPU 就支持 RGB 接口, DPI 是目前很多中低端芯片的首選屏幕接口。
????????1、 LCD 時間參數
????????以一個 720*1280 分辨率的 LCD 為例,其顯示結構如圖所示
???????????????????? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ·????????????????????????? LCD 顯示示意圖
????????結合上圖我們來看一下 LCD 是怎么掃描顯示一幀圖像的。一幀圖像也是由一行一行組成的。 HSYNC 是水平同步信號,也叫做行同步信號,當產生此信號的話就表示開始顯示新的一行了,所以此信號都是在圖 22.5-3 的最左邊。當 VSYNC 信號是垂直同步信號,也叫做幀同步信號,當產生此信號的話就表示開始顯示新的一幀圖像了,所以此信號在圖中的左上角。
????????可以看到有一圈“黑邊”,真正有效的顯示區域是中間的白色部分。那這一圈“黑邊”是什么東西呢?這就要從顯示器的“祖先” CRT 顯示器開始說起了, CRT 顯示器就是以前很常見的那種大屁股顯示器,在 2023 年應該很少見了,如果在農村應該還是可以見到的。 CRT 顯示器屁股后面是個電子槍,這個電子槍就是我們上面說的“畫筆”,電子槍打出的電子撞擊到屏幕上的熒光物質使其發光。只要控制電子槍從左到右掃完一行(也就是掃描一行),然后從上到下掃描完所有行,這樣一幀圖像就顯示出來了。也就是說,顯示一幀圖像電子槍是按照‘Z’形在運動,當掃描速度很快的時候看起來就是一幅完成的畫面了。
????????當顯示完一行以后會發出 HSYNC 信號,此時電子槍就會關閉,然后迅速的移動到屏幕的左邊,當 HSYNC 信號結束以后就可以顯示新的一行數據了,電子槍就會重新打開。在HSYNC 信號結束到電子槍重新打開之間會插入一段延時,這段延時就圖中的 HBP。當顯示完一行以后就會關閉電子槍等待 HSYNC 信號產生,關閉電子槍到 HSYNC 信號產生之間會插入一段延時,這段延時就是圖中的 HFP 信號。同理,當顯示完一幀圖像以后電子槍也會關閉,然后等到 VSYNC 信號產生,期間也會加入一段延時,這段延時就是圖中的 VFP。 VSYNC 信號產生,電子槍移動到左上角,當 VSYNC 信號結束以后電子槍重新打開,中間也會加入一段延時,這段延時就是圖中的 VBP。
????????HBP、 HFP、 VBP 和 VFP 就是導致圖中黑邊的原因,但是這是 CRT 顯示器存在黑邊的原因,現在是 LCD 顯示器,不需要電子槍了,那么為何還會有黑邊呢?這是因為 RGB LCD 屏幕內部是有一個 IC 的,發送一行或者一幀數據給 IC, IC 是需要反應時間的。通過這段反應時間可以讓 IC 識別到一行數據掃描完了,要換行了,或者一幀圖像掃描完了,要開始下一幀圖像顯示了。因此,在 LCD 屏幕中繼續存在 HBP、 HFP、 VPB 和 VFP 這四個參數的主要目的是為了鎖定有效的像素數據。這四個時間是 LCD 重要的時間參數,在 DPI 接口的屏幕驅動中,我們重點就是設置這幾個時序參數。
DPI 接口連接
????????主控和 LCD 外設的 DPI 接口示意圖如圖所示:
? ? ?
? ? ? ? ? ? ? ? ? ??DPI 接口示意圖? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ?7 寸 RGB 屏幕接口原理圖
????????對于 DPI 接口,也就是 RGB 屏,一般有 DE、 VSYNC、 HSYNC、 CLK 這幾個控制線,以及 D0~D23 數據線(如果采用 RGB888 格式的話)。正點原子的 7 寸 RGB 屏幕接口原理圖如圖7寸RGB 屏幕接口原理圖所示。
重點知識:
????????因為在 MIPI DSI 接口的屏幕里面傳輸的就是 DPI 格式的數據,包括 HBP、 HFP、 VBP、 VFP 等時序參數也是需要再 MIPI DSI 屏幕里面使用的!