在嵌入式视觉系统中,RK3588 Ubuntu主板凭借其8核CPU与多路MIPI接口成为核心计算平台,但面对HDMI输入转MIPI输出、MIPI输出转HDMI显示等复杂场景时,需借助桥接芯片实现协议转换。本文聚焦LT6911C(HDMI转MIPI CSI-2)与LT8918B(MIPI DSI转HDMI)的定制化集成方案,解析技术实现路径与关键配置要点。
一、LT6911C:HDMI输入转MIPI CSI-2的驱动实现
LT6911C作为高性能桥接芯片,支持HDMI1.4b输入转1-4 lane MIPI CSI-2输出,单lane速率达1.5Gbps,可适配RK3588的4-lane MIPI CSI接口。其驱动开发需基于Linux V4L2框架,核心步骤包括:
- I2C设备树配置:在RK3588的dts文件中定义LT6911C节点,指定I2C总线地址(默认0x48)、复位GPIO及时钟源。例如:
dts
1&i2c8 {
2 status = "okay";
3 lt6911c@48 {
4 compatible = "lontium,lt6911c";
5 reg = <0x48>;
6 reset-gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_LOW>;
7 clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;
8 port {
9 lt6911c_out: endpoint {
10 remote-endpoint = <&mipi_in_csi2>;
11 data-lanes = <1 2 3 4>;
12 };
13 };
14 };
15};
- V4L2子设备注册:驱动需实现v4l2_subdev_ops接口,完成分辨率查询、格式设置及中断处理。例如通过lt6911c_query_dv_timings()函数解析HDMI输入的时序参数,并动态调整MIPI输出配置。
- 动态分辨率适配:当HDMI输入源分辨率变化时,LT6911C通过INTB引脚触发中断,驱动需捕获该事件并重新配置MIPI输出参数,确保与RK3588的VICAP控制器同步。
二、LT8918B:MIPI DSI转HDMI的定制化开发
LT8918B支持MIPI DSI输入转HDMI2.0输出,单lane速率达3Gbps,可实现4K@60fps显示。其定制化开发需解决两大挑战:
- DRM驱动框架集成:需在RK3588的DRM子系统中添加LT8918B的bridge驱动,实现EDID自动检测与显示模式动态切换。例如通过drm_bridge_add()函数注册桥接设备,并在drm_mode_config_update()中更新支持的分辩率列表。
- 时序参数精准匹配:RK3588的MIPI DSI控制器输出时序需与LT8918B的输入要求严格对齐。例如,4K@60fps需配置HSYNC宽度为32像素、VSYNC宽度为5行,并通过lt8918b_set_mipi_timing()函数写入芯片寄存器。
三、系统级协同优化
- 带宽分配策略:RK3588的4个MIPI CSI接口总带宽为10Gbps,若同时接入LT6911C(4K@30fps输入)与LT8918B(4K@60fps输出),需通过devm_regulator_get()动态调整各接口电压,避免带宽竞争。
- 热插拔管理:在Ubuntu系统中,需通过udev规则监听HDMI设备的插拔事件,触发LT6911C与LT8918B的重新配置流程。例如,当检测到HDMI输入源接入时,自动调用v4l2-ctl命令切换摄像头输入模式。
四、典型应用场景
- 工业质检系统:通过LT6911C将工业相机的HDMI信号转为MIPI CSI-2输入RK3588,利用其NPU进行缺陷检测,同时通过LT8918B将处理结果输出至4K显示屏。
- 车载娱乐系统:RK3888的MIPI DSI接口连接LT8918B驱动后排娱乐屏,同时通过LT6911C接入倒车摄像头的HDMI信号,实现一芯双屏异显。
通过深度整合LT6911C与LT8918B的驱动框架,RK3588 Ubuntu主板可构建高灵活性的MIPI接口扩展方案,满足工业控制、智能车载等场景的差异化需求。实际开发中需严格参照芯片数据手册进行寄存器配置,并通过i2cget、v4l2-ctl等工具进行实时调试,确保系统稳定性。