 DVP-Y8图像花屏问题分析报告)
RV1126K/RV1126B(P) DVP-Y8图像花屏问题分析报告一、产品及故障概述1.1产品信息主控RV1126K图像正常、RV1126B/RV1126BP图像花屏异常数据链路DVP 接口 Sensor → CIF 控制器 → V4L2/MPP 图像采集图像规格有效分辨率 640×512、Y8 单字节灰度格式1.2故障现象同款 Sensor、统一硬件电路、DTS 与应用参数配置完全一致表现差异化RV1126K画面成像正常无花屏、无黑边原始单帧大小640×512327680Byte10 帧总数据 3276800ByteRV1126B (P)图像错乱花屏原始单帧实际存储尺寸768×512393216Byte10 帧总数据 3932160Byte数据差异B (P) 方案单行较 K 版多出768-640128Byte尾部填充数据(见2.3)。二、分阶段排查过程2.1硬件排查对照 RV1126K 标准原理图复测 DVP 时钟、数据线上下拉、供电电路阻容参数交叉替换 Sensor、排线、PCB 单板重复验证结论排除电源、时钟、接线等硬件故障因素。2.2上层软件参数排查两套机型 DTS 配置、CIF 时序、V4L2 图像格式统一配置width640、height512、pixelformatY8V4L2 抓图指令、MPP 帧获取应用代码无差异化改动结论应用层配置无问题故障根源在内核CIF驱动内存行宽排布逻辑。2.3 RAW原始文件二进制分析通过二进制比对工具对比裸数据RV1126K每行有效数据严格 640Byte无冗余填充字节RV1126B (P)每行前 640Byte 为有效图像末尾固定附加 128Byte 填充区CIF-MMU 开启填充字节固定 0x00画面右侧出现竖直黑边CIF-MMU 关闭填充区为内存随机脏数据全图杂乱花屏补充验证若采用 768×512 分辨率解析 B (P) 端原始文件画面前 640 列图像内容正常。2.4内核CIF驱动源码定位2.4.1关键对齐分支源码/** add new chip id in tail in time order* by increasing to distinguish cif version*/enum rkcif_chip_id {CHIP_PX30_CIF,CHIP_RK3128_CIF,CHIP_RK3288_CIF,CHIP_RK3328_CIF,CHIP_RK3368_CIF,CHIP_RK1808_CIF,CHIP_RV1126_CIF,CHIP_RV1126_CIF_LITE,CHIP_RK3568_CIF,CHIP_RK3588_CIF,CHIP_RV1106_CIF,CHIP_RK3562_CIF,CHIP_RK3576_CIF,CHIP_RV1103B_CIF,CHIP_RV1126B_CIF,};if (fmt-fmt_type CIF_FMT_TYPE_RAW stream-is_compact fmt-csi_fmt_val ! CSI_WRDDR_TYPE_RGB888 fmt-csi_fmt_val ! CSI_WRDDR_TYPE_RGB565 dev-chip_id CHIP_RK3588_CIF) {/* RK3588及以上平台compact模式行宽强制256字节对齐优化DDR读写 */bpl ALIGN(width * raw_bpp / 8, 256);} else {/* RV1126系列原生规范仅做8字节对齐 */bpp rkcif_align_bits_per_pixel(stream, fmt, i);bpl ALIGN(width * bpp / CIF_YUV_STORED_BIT_WIDTH, 8);}源码注释释义c/* compact mode need bytesperline 4bytes align,* align 8 to bring into correspondence with virtual width.* to optimize reading and writing of ddr, aliged with 256.*//* 紧凑模式要求行字节4字节对齐8字节对齐适配虚拟宽度为优化DDR读写高端平台开启256字节强制对齐 */2.4.2驱动设计逻辑说明原厂驱动设计目的chip_id≥RK3588分支为高端平台 DDR 突发读写优化强制 256 字节行对齐原厂统一驱动架构时RV1126B (P)芯片ID被划入该对齐分支RV1126K 不在此 ID 区间。RV1126K走入 else 分支仅 8 字节对齐ALIGN(640,8)640stride 等于实际宽度RV1126B (P)进入 256 字节对齐分支ALIGN(640,256)768每行多出 128Byte 填充数据。三、问题根因总结RV1126B (P) 因芯片 ID 归类策略被 CIF 驱动纳入 RK3588 平台 256 字节行对齐优化逻辑Y8 格式 640 像素行宽被向上对齐至 768Byte每行尾部生成 128Byte 冗余填充CIF-MMU 开启填充值固定 0x00 → 画面右侧黑边CIF-MMU 关闭填充空闲内存随机数据 → 图像大面积花屏RV1126K 不受该对齐逻辑约束仅 8 字节对齐无多余填充成像正常故障非硬件、应用配置问题由驱动平台对齐策略差异导致。四、两种整改实施方案方案一内核CIF驱动修改软件底层修复修改思路在 256 对齐的芯片 ID 判断条件中排除 RV1126B (P)原判断dev-chip_id CHIP_RK3588_CIF修改dev-chip_id CHIP_RK3588_CIF dev-chip_id ! CHIP_RV1126B_CIF实现效果RV1126B (P) 回归原生 8 字节对齐stride640单帧数据 327680Byte上层 MPP/APP 无需改动和 RV1126K 完全一致。方案二FPGA 应用层裁剪量产选定方案内核驱动不动修改内容FPGA 端 Sensor 输出物理分辨率改为 768×512ARM 端 VI/VPSS 链路做图像裁剪仅截取画面左上有效 640×512 区域实现效果保留原厂 CIF 驱动 256 字节对齐逻辑不变经过裁剪后输出画面与 RV1126K 效果完全一致。五、最终量产结论RV1126B (P) 花屏根源为 CIF 驱动全平台 DDR 优化带来的 256 字节强制行对齐无硬件不良。量产优选方案二FPGA改输出分辨率应用端图像裁剪方案兼容性、系统稳定性最优。