MIPI DSI(五) DBI 和 DPI 格式
关于 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 屏幕里面使用的!