2. R-Car显示硬件单元解析

R-Car SoC的显示子系统并不是“一个GPU直接接屏幕”的简单结构,而是由VSP(Video Signal Processor,视频信号处理器)、DU(Display Unit,显示单元)以及各类显示接口PHY共同构成的分层管线。理解这条管线的分工,是后续做多屏输出、带宽评估和同步设计的前提。

一、VSP与DU的分工

VSP负责“把像素准备好”,DU负责“把像素按节拍送出去”。具体来说:

  • VSP:承担图层合成(R/G/B/Alpha混合)、缩放(SC)、色彩空间转换(YUV↔RGB)、去隔行、旋转等。它从DDR读取图层数据,合成后写入帧缓冲,或直接输出到DU。VSP有多个实例(VSPD/VSPI/VSPBC等),不同实例能力不同,例如VSPD支持显示输出,VSPI偏向图像处理。
  • DU:从VSP或DDR读取已合成的帧,按显示时序(Hsync/Vsync/DE)输出到接口PHY。DU内部包含多个显示通道(channel),每个通道可独立配置分辨率、时序和输出接口。

因此,一条典型显示链是:应用图层 → VSP合成 → 帧缓冲 → DU通道 → 接口PHY → 屏幕。如果图层简单(如单层UI),也可以让DU直接读取DDR帧缓冲,绕过VSP合成,以节省VSP资源。

二、显示接口与PHY

R-Car常见的显示输出接口包括:

  • LVDS:常用于车载中控屏、仪表屏,支持单链路/双链路,双链路可驱动更高分辨率(如1920×720@60)。
  • HDMI:用于外接显示或后排娱乐,支持TMDS,需注意HDCP和EDID读取。
  • DP(DisplayPort):高带宽,适合高分辨率多屏,支持MST(多流传输)可在一根线缆上挂多个屏。
  • MIPI DSI:常用于小尺寸屏或仪表,走DSI控制器+DPHY。

每个接口背后都有对应的PHY和时钟源。例如LVDS需要像素时钟(Pixel Clock),HDMI需要TMDS时钟,DP需要链路时钟。这些时钟通常由CPG(Clock Pulse Generator)分频产生,必须与DU通道的时序参数匹配。

三、多屏输出通道分配

多屏场景下,关键问题是“哪个DU通道接哪个接口、由哪个VSP供图”。以R-Car H3/M3为例,DU有多个通道(DU0/DU1/DU2等),每个通道可绑定到不同接口。分配时需考虑:

  • VSP实例数量是否够用:每个需要合成的屏最好独占一个VSP,否则要排队。
  • 接口PHY是否独立:LVDS和HDMI可能共享某些时钟资源,需查手册确认。
  • DDR带宽:多屏同时刷新会叠加带宽需求。

四、时钟与同步机制

多屏同步分为帧同步和时钟同步。帧同步要求各屏的Vsync对齐,否则会出现撕裂或不同步。R-Car可通过以下方式实现:

  • 使用同一个像素时钟源分频给多个DU通道,保证时钟同源。
  • 配置DU的同步信号输出/输入,让一个通道作为主,其他通道跟随。
  • 在软件层用DRM的atomic commit统一提交多屏帧,减少时间差。

需要注意的是,不同接口的时序参数不同,完全对齐Vsync有时需要牺牲某一屏的刷新率或调整porch参数。

五、硬件限制与带宽评估

带宽评估是设计阶段必须做的。基本公式:

单屏带宽 = 水平总像素 × 垂直总行数 × 刷新率 × 每像素字节数
例如:1920×1080@60,每像素4字节(ARGB8888)
水平总像素 ≈ 2200,垂直总行数 ≈ 1125
带宽 ≈ 2200 × 1125 × 60 × 4 ≈ 594 MB/s

若三屏同时输出,总带宽可能超过1.5 GB/s,需确认DDR控制器能否承受。此外,VSP合成时还会额外读写DDR,实际占用更高。硬件限制还包括:每个VSP的最大输入图层数、最大缩放比例、DU通道的最大分辨率等。

R-Car显示管线与多屏通道分配示意 应用图层 UI / 视频 / 仪表 VSP 合成 混合 / 缩放 / CSC VSPD / VSPI 帧缓冲 DDR DU 显示单元 DU0 / DU1 / DU2 时序生成 LVDS PHY 中控 / 仪表 HDMI PHY 外接显示 DP PHY 高分辨率 / MST MIPI DSI 小尺寸屏 CPG 时钟源 像素时钟 / TMDS / 链路时钟 同步机制:同源像素时钟 + DU主从Vsync + DRM atomic commit 多屏帧同步 / 避免撕裂 / 统一提交

六、实际配置中的关键参数示例

以LVDS双链路驱动1920×720@60为例,DU通道需要配置的时序参数大致为:

参数典型值说明
Hactive1920水平有效像素
Hfront porch40水平前肩
Hback porch40水平后肩
Hsync width10水平同步宽度
Vactive720垂直有效行
Vfront porch10垂直前肩
Vback porch10垂直后肩
Vsync width5垂直同步宽度
Pixel Clock约74.25 MHz由CPG分频得到

这些参数必须与屏幕规格书一致,否则会出现无显示、偏移或闪烁。配置时通常通过设备树(DTS)的display-timings节点或DRM驱动接口写入。

注意:多屏输出时,若两个DU通道共用同一个VSP,VSP的合成能力会成为瓶颈。建议在设备树中为每个需要独立合成的屏分配独立VSP实例,并在启动日志中确认VSP绑定关系。

带宽评估时,除了像素带宽,还要加上VSP合成时的读写开销。一个实用的估算方法是:总DDR带宽 ≈ 各屏像素带宽之和 × 1.5~2.0(合成系数)。如果接近DDR理论带宽的70%,就需要考虑降低刷新率、减少图层或使用压缩(如AFBC)。

快速检查清单:
  • 每个屏是否分配了独立的DU通道?
  • VSP实例数量是否满足合成需求?
  • 像素时钟是否与屏幕规格匹配?
  • 多屏Vsync是否同源或已做同步?
  • 总带宽是否留有余量?

掌握这条从VSP到DU再到PHY的完整链路,以及通道分配、时钟同步和带宽估算方法,就能在后续的多屏工程中快速定位瓶颈,做出合理的硬件资源规划。