基于ZYNQ UltraScale+ MPSOC的MIPI图像传感器图像采集与处理硬件方案设计
一、引言随着计算机与集成电路技术的发展实时处理图像的应用场景逐渐多样化同时随着各种各样的场景对图像分辨率的要求逐渐变高图像采集与处理系统在耗时方面也随之增加。解决办法改变算法的硬件实现方式选用资源丰富、性能高效的平台对大规模视频图像数据进行采集与处理。本文设计了一套基于ZYNQUltraScaleMPSOC的图像采集与处理系统主要内容如下1针对常见的多媒体处理器对于图像处理实时性差、延时大等问题本文设计的图像采集与处理系统基于MPSOC平台对于国产CMOS图像传感器GMAX4002输出的高速(1920×108060fps)图像信号通过MIPID-PHY接口实现高速采集并采用FPGA实现实时ISP信号处理最终在DP显示器上实时显示。2为了提升军用车载背景下的图像质量本文将设计的图像信号处理ISP算法流水线模块应用于系统数据通路。首先打通从MPSOC到国产Sensor-GMAX4002的系统控制通路采集图像数据并输入给ISP模块进行图像处理。3在系统调试部分系统各部分功能的实验效果均通过DP显示器实时显示调试效果符合预期达成了较高质量的视频图像数据显示的目的。二、数字图像成像原理数字图像处理即利用计算机技术对图像信息进行分析和加工处理其核心系统通常由三大部分构成图像数字化设备、高性能计算机以及图像显示装置。相机是最典型的数字成像系统作用是原始记录和美化人眼看到的世界因此它的设计参考了人类的视觉系统。人类视觉系统能够在各种不同光源色温的光照条件下识别物体的颜色这种自动排除光源影响的能力称为色彩恒常性这种能力对应着ISP中的自动白平衡模块。经典的相机系统结构是充分参考人类视觉系统设计的。三、硬件搭建与系统构成本文的设计针对图像采集与处理系统拟采用国产高云(Gowin)半导体5A系列FPGA 与国产长光辰芯Sensor-GMAX4002搭建硬件环境。为了加快实现国产化的远大目标在设计验证阶段先选用Xilinx的ZYNQUltraScaleMPSOC配合国产Sensor-GMAX4002打通数据通路与控制通路3.1 主控制器本文设计的图像采集与处理系统基于ZYNQUltraScaleMPSOC平台通过MPSOC芯片的MIPICSI-2的D-PHY接口实现1920×108060fps的超清视频高速采集并在DP显示器上实时显示。系统采集国产Sensor-GMAX4002的图像数据并进行处理旨在降低军用车载摄像模组的图像传输延时提升图像质量。本设计搭建的图像采集与处理系统以Xilinx的ZYNQUltraScaleMPSOCEV系列的XCZU7EV-FFVC1156-2-I 芯片为处理核心。该芯片是业界首款采用台积电公司16FF工艺的异构MPSOC。除此之外芯片内部集成了H.264/H.265视频编解码器能够同时编解码达4K×2K60fps的视频是汽车高级辅助驾驶系统、监控及其他嵌入式视觉应用的理想选择适合高速通信、机器视觉、视频采集与输出领域非常适用于图像采集与处理系统项目研发的设计验证。芯片XCZU7EV-FFVC1156-2-I 搭载在 ZYNQ UltraScale MPSOC MZU07A-EV开发板上。开发板板载4个高速扩展接口60PIN的插针连接器。底板FEP 扩展接口分为A、B两路其中FEP(A)接口构成一组FEP×2共有48个GPIO/24对差分引脚并且带有4对GTH高速差分信号和2对高速时钟差分信号GTH_CLKFEP(B)接口构成一组FEP×2共有48个GPIO/24对差分引脚FFP(A)和FEP(B)上的GPIO电压均为ADJ电压。FEP 接口是高速通信接口可外接子卡实现功能扩展。本文的系统搭建通过板载的FEP(A)接口连接自制的GMAX4002转接板来实现MPSOC和Sensor物理连接。ZYNQUltraScale MPSOC 的HP(High Performance)IO 口支持 MIPI D-PHY收发器该接口采用MIPI_DPHY_DCI电平标准可直连MIPI差分信号最大可支持的速率1.5Gbps/lane。MIPI 图像传感器选用长光辰芯的Sensor-GMAX4002该图像传感器采用MIPICSI-2接口物理层为D-PHY接口。MPSOC 与GMAX4002 模组之间通过1对时钟差分线和2对数据差分线相连MPSOC作为接收器端口内部具有100Ω片上端接以保证MIPI差分信号的阻抗匹配。3.2 摄像头模组3.2.1 摄像头接口传统图像传感器多采用并行DVP接口但其单端信号传输方式抗噪性弱、带宽低难以满足超清数据的高速传输需求。相比之下基于低压差分信号的MIPI接口凭借强抗干扰能力和高传输速率正逐步取代DVP成为高分辨率传感器的主流选择。目前最常见的MIPI协议包括用于显示屏数据传输的MIPI DSIFPGA为发送端和专用于摄像头数据采集的MIPICSI-2Camera为发送端FPGA为接收端摄像头将采集到的视频数据经过MIPICSI-2传到FPGA内部FPGA对视频图像数据进行处理本设计使用的是MIPICSI-2接口。目前常见的摄像头接口除DVP外还有USB3.0、LVDS等选用MIPICSI-2接口类型的摄像头作为系统的一部分在实现高质量视频传输的同时提高抗干扰能力并降低功耗。3.2.2 MIPI CSI-2 总体架构MIPI CSI-2 协议的总体架构可分为应用层协议层和物理层。3.2.3 MIPI CSI-2 接口模型MIPI CSI-2 规范对发送端和接收端之间的数据传输与控制接口进行了标准化定义提供D-PHY和C-PHY两种物理层协议作为高速串行数据传输的可选方案。从性能角度看C-PHY能实现更高的传输速率但其应用仅限于MIPICSI-2相比之下D-PHY具备更强的协议兼容性可同时支持MIPICSI-2和MIPIDSI。D-PHY 物理层通过1组单向差分时钟通道和1~4组单向差分数据通道实现图像采集模块与目标接收端之间的连接。此外摄像机控制接口采用与 I2C 标准兼容的双向控制协议。3.2.4 CMOS 图像传感器国产长光辰芯的CMOSSensor-GMAX4002集成了帧速率为166fps的MIPI接口输出通道为MIPICSI-2D-PHYMIPI通道为4路数据输出和1路时钟输出每路数据通道的最大传输速率为1.2Gbps满足本设计对图像采集接口速率的需求同时GMAX4002 具备低功耗、低噪声和高动态范围特性方便系统设计集成化。根据需求可选择1、2或4路MIPI数据通道。本设计自制FEP转接板与GMAX4002搭载配合M12镜头形成自制摄像头模组再与MPSOC主板上的FEP扩展口连接实现主控制器与GMAX4002摄像头模组的硬件连接如图3-9所示。3.3 图像输出显示模块在图像输出显示模块上常用的有HDMI和DP接口。DP在带宽、分辨率、刷新率及扩展功能上领先HDMI适合图像专业领域和系统高性能需求根据主控制器的外设支持情况和系统的图像调试需求选择了DP接口显示器。接口设计上DP接口采用锯齿状边缘设计HDMI为平滑矩形。3.4 系统构成系统通过Xilinx 的ZYNQUltraScale MPSOC XCZU7EV-FFVC1156-2-I及长光辰芯的国产Sensor-GMAX4002搭载自制FEP转接板组成的摄像头模组作为硬件调试环境利用VDMA实现摄像头图像数据的采集并通过DP显示器实时显示软件采用Vivado 2022.2 以及Vitis 2022.2 作为开发平台使用VerilogHDL硬件描述语言及C语言作为开发工具。3.4.1 系统框图本工程采用两通道的MIPI输入MIPI摄像头配置为RAW10格式输出。通过MIPI CSI-2_RX_SubSystem 模块进行协议解析转换成AXI4-Stream 视频流数据并通过Demosaic 模块将RAW格式转换成RGB格式后经过Gamma校正AWB、CCM、AE等my_ISP的自定义IP等模块进入VDMA之后进入MPSOC的HP接口最后通过DP显示器实时显示视频图像。3.4.2 AXI 总线类型和握手机制本文设计中使用的AXI接口都是AXI4接口。AXI 总线的每个独立的通道都包含一组信号根据双向握手机制来传输地址、数据和控制信息。3.4.3 搭建SOC工程本工程搭建过程中使用PL图形化编程。从GMAX4002至MPSOC的数据通路通过 MIPI CSI-2_RX_SubSystem 模块进行协议解析并转换成AXI4_Stream 流数据通Demosaic模块将RAW格式数据转换成RGB格式再经过Gammer校正等模块进入VDMAVDMA主要用于视频图像数据的传输。GMAX4002 在接收控制信号后输出图像数据该数据经MIPI接口转换后处理为AXI4-Stream 格式与VDMAIP核的数据接口兼容。通过VDMA模块处理后图像数据被缓存至DDR4存储器。系统采用3帧缓存机制将3帧图像数据缓存在VDMA图像缓存模块确保图像流畅显示。系统中PL端没有足够的管脚连接DDR4存储芯片用于缓存图像数据的DDR4缓存器挂载在PS端因此需要VDMAIP核将图像数据缓存到DDR4中。VDMAIP核采用双通道直接存储访问架构支持AXI4-Stream 总线协议能够将PL端的图像数据高效地传输至PS端内存避免图像卡顿和画面撕裂从而确保图像显示的流畅性和完整性。本工程采用AXIGPIO实现i2C初始化Sensor-GMAX4002加入了自定义的SINFIP 核与my_config 的 IP 核去配置 MPSOC 与 GMAX4002 的控制通路来实现GMAX4002 的初始化。为了避免在Vivado2022.2环境中因屡次修改SINFIP内的寄存器而导致FPGA编译消耗大量时间选择在Vitis2022.2环境中去配置SINFIP核的寄存器。