Rockchip显示子系统关键概念解析
Categories:
少于1分钟
DTS中"帧率"的计算公式
一个模式mode的帧率原来并不是直接以一个字段的形式写到timing里的,而是靠时钟去计算 计算公式如下:
$$
\begin{aligned}
\text{Htotal} &= (\text{hsync\_len} + \text{hfront\_porch} + \text{hback\_porch} + \text{hactive}) \\
\text{Vtotal} &= (\text{vsync\_len} + \text{vfront\_porch} + \text{vback\_porch} + \text{vactive}) \\
\text{FrameRate} &= \frac{\text{ClkFreq}}{ \text{Htotal} \times \text{Vtotal} }
\end{aligned}
$$
VOP
rk是用vop来管理输出的硬件端口的
vp=video port
vop=video output processor
- 定义: VOP是从存储器帧缓冲区到显示设备的显示接口,是显示单元用来显示图像Buffer,显示到屏幕。(From sdk-beside-docs/cn/Linux/Graphics/Rockchip_Developer_Guide_Linux_Graphics_CN.pdf)
vop和vp
rk的soc都有自己的vop, 首先vop就有两个版本: vop和vop2我们的rk3568使用的就是vop2,这个是soc的设定,不由得我们去修改.
具体的使用哪一个版本的VOP要去查阅rk3568的技术参考手册,我这里的文件名叫: Rockchip RK3568 TRM Part2 V1.1-20210301.pdf
再来说vp, 每一个soc的vop都有数量不等的vp.
例如,rk3568有3个vp, rk3588有4个vp. 具体得看手册的介绍.如下图:

从上面的图可以看出, 每一个vp可以接的接口类型还不一样.
dts
&lvds-代表lvds控制器这个硬件IP(或者等价的逻辑概念上的硬件电路)
&vp2-代表vop里的vp2这个IP
&panel
- 这不是一个物理上存在的硬件IP,但应该把它当作逻辑设备.它也是一个节点.
- 可以认为它是一个c++上的类的概念,用来阐述最终屏幕的具体配置.
它们都代表着pcb上的独立(逻辑)硬件电路集成块, 不要只是把它们当成一个普通的dts中的标识符
ports: 这是每个设备上的“端口集合”或“接线板”。一个设备可以有多个接线板。
port@n:
- 这是某个接线板上的一个“端口(Port)”。可以把它想象成HDMI接口、USB接口。一个端口可以包含多个信号端点。
- port@1是表示这是一个输出的端口(Port)
- port@0表示这是一个输入的端口(Port)
endpoint: 这是端口上的一个“端点(Endpoint)”,代表一个具体的信号流向。可以把它想象成HDMI接口上的一个具体引脚或一组引脚。它是连接的最小单元。
参考:
- 最系统的对显示模块的介绍-sdk-beside-docs/cn/Common/DISPLAY/DRM/Rockchip_Developer_Guide_DRM_Display_Driver_CN.pdf
- lvds屏幕最相关的介绍-sdk-beside-docs/cn/Common/DISPLAY/LVDS/Rockchip_Developer_Guide_LVDS_CN.pdf