网站代码建设+实例,飞沐网站建设,网站设计制作一条龙,县市区科普网站建设目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案本方案在Xilinx Artix7-100T上解码MIPI视频的应用本方案在Xilinx Kintex7上解码MIPI视频的应用本方案在Xilinx Zynq7000上解码MIPI视频的应用本方案在Xilinx Zynq UltraScale上解码MIPI视频的应用纯VHDL代码解… 目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案本方案在Xilinx Artix7-100T上解码MIPI视频的应用本方案在Xilinx Kintex7上解码MIPI视频的应用本方案在Xilinx Zynq7000上解码MIPI视频的应用本方案在Xilinx Zynq UltraScale上解码MIPI视频的应用纯VHDL代码解码ov5640-MIPI视频方案 3、本 MIPI CSI2 模块性能及其优缺点4、详细设计方案设计原理框图OV5640及其配置权电阻硬件方案MIPI CSI-2 RX Subsystem图像缓存VGA时序isp处理视频输出工程源码架构 5、vivado工程详解6、工程移植说明vivado版本不一致处理FPGA型号不一致处理其他注意事项 7、上板调试验证准备工作RAW10原始图像输出演示isp处理后的RGB888图像输出演示 8、福利工程代码的获取 FPGA解码MIPI视频Xilinx Artix7-35T低端FPGA基于MIPI CSI-2 RX Subsystem架构实现提供工程源码和技术支持 1、前言
FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了MIPI解码难度之高令无数英雄竞折腰以至于Xilinx官方不得不推出专用的IP核供开发者使用不然太高端的操作直接吓退一大批FPGA开发者就没人玩儿了。
本设计基于Xilinx的 Artix7-35T低端FPGA开发板采集OV5640摄像头的2Line MIPI视频本方案最大的价值就是在低端的、资源紧凑型的、项目预算不高等条件下选用的Xilinx Artix7-35T FPGA上实现了MIPI视频解码解决了行业目前在该领域的空白OV5640摄像头配置为MIPI模式RAW10数据格式MIPI引脚经过权电阻分离出LP电路后接入FPGA的HS BANK的LVDS差分IO调用Xilinx的MIPI CSI-2 RX Subsystem IP实现MIPI的D_PHYCSI_RX2功能该IP由Xilinx免费提供将MIPI视频解码后以AXIS视频流格式输出此时的视频是原始的RAW10数据输出路径有两种一种是经DDR缓存后依然以RAW10数据输出HDMI显示器只不过图像为黑白色另一种是DDR缓存后再经过Bayer转RGB和伽马校正isp处理后以RGB888数据输出HDMI显示器区别是图像为彩色的两种路径通过isp模块的parameter参数设置默认使用isp处理针对目前市面上主流的FPGA本Xilinx系列FPGA解码OV5640-MIPI视频方案一共移植了15套工程源码本博文介绍其中基于Artix7-35T低端FPGA 的1套工程详情如下 本文详细描述了Xilinx Artix7-35T低端FPGA解码MIPI视频的设计方案工程代码编译通过后上板调试验证可直接项目移植适用于在校学生做毕业设计、研究生项目开发也适用于在职工程师做项目开发可应用于医疗、军工等行业的数字成像和图像传输领域 提供完整的、跑通的工程源码和技术支持 工程源码和技术支持的获取方式放在了文章末尾请耐心看到最后 关于MIPI协议请自行搜索csdn就有很多大佬讲得很详细我就不多写这块了
免责声明
本工程及其源码即有自己写的一部分也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网以及其他开源免费获取渠道等等)若大佬们觉得有所冒犯请私信批评教育部分模块源码转载自上述网络版权归原作者所有如有侵权请联系我们删除基于此本工程及其源码仅限于读者或粉丝个人学习和研究禁止用于商业用途若由于读者或粉丝自身原因用于商业用途所导致的法律问题与本博客及博主无关请谨慎使用。。。
2、相关方案推荐
我这里已有的 MIPI 编解码方案
我这里目前已有丰富的基于FPGA的MIPI编解码方案主要是MIPI解码的既有纯vhdl实现的MIPI解码也有调用Xilinx官方IP实现的MIPI解码既有2line的MIPI解码也有4line的MIPI解码既有4K分辨率的MIPI解码也有小到720P分辨率的MIPI解码既有基于Xilinx平台FPGA的MIPI解码也有基于Altera平台FPGA的MIPI解码还有基于Lattice平台FPGA的MIPI解码后续还将继续推出更过国产FPGA的MIPI解码方案毕竟目前国产化方案才是未来主流后续也将推出更多MIPI编码的DSI方案努力将FPGA的MIPI编解码方案做成白菜价。。。 基于此我专门建了一个MIPI编解码的专栏并将MIPI编解码的博客都放到了专栏里整理对FPGA编解码MIPI有项目需求或学习兴趣的兄弟可以去我的专栏看看专栏地址如下 点击直接前往专栏
本方案在Xilinx Artix7-100T上解码MIPI视频的应用
本方案适应于Xilinx系列FPGA平台针对目前市面上主流的FPGA本博将本方案分别移植到了Xilinx 的Artix7、Kintex7、Zynq7000、Zynq UltraScale等平台共计16套工程源码本文讲述的是在Artix7-35T低端FPGA上的应用想要直接应用于Xilinx Artix7-100T 系列FPGA上的ov5640-MIPI视频解码应用的读者可以参考我之前写得博客以下是博客地址 点击直接前往
本方案在Xilinx Kintex7上解码MIPI视频的应用
本方案适应于Xilinx系列FPGA平台针对目前市面上主流的FPGA本博将本方案分别移植到了Xilinx 的Artix7、Kintex7、Zynq7000、Zynq UltraScale等平台共计16套工程源码本文讲述的是在Artix7-35T低端FPGA上的应用想要直接应用于Xilinx Kintex7系列FPGA上的ov5640-MIPI视频解码应用的读者可以参考我之前写得博客以下是博客地址 点击直接前往
本方案在Xilinx Zynq7000上解码MIPI视频的应用
本方案适应于Xilinx系列FPGA平台针对目前市面上主流的FPGA本博将本方案分别移植到了Xilinx 的Artix7、Kintex7、Zynq7000、Zynq UltraScale等平台共计16套工程源码本文讲述的是在Artix7-35T低端FPGA上的应用想要直接应用于Xilinx Zynq7000系列FPGA上的ov5640-MIPI视频解码应用的读者可以参考我之前写得博客里面包括了Zynq7020、Zynq7030、Zynq7035、Zynq7045、Zynq7100等平台以下是博客地址 点击直接前往
本方案在Xilinx Zynq UltraScale上解码MIPI视频的应用
本方案适应于Xilinx系列FPGA平台针对目前市面上主流的FPGA本博将本方案分别移植到了Xilinx 的Artix7、Kintex7、Zynq7000、Zynq UltraScale等平台共计16套工程源码本文讲述的是在Artix7-35T低端FPGA上的应用想要直接应用于Xilinx Zynq UltraScale系列FPGA上的ov5640-MIPI视频解码应用的读者可以参考我之前写得博客里面包括了Zynq UltraScale XCZU2CG、Zynq UltraScale XCZU3EG、Zynq UltraScale XCZU4EV、Zynq UltraScale XCZU7EV、Zynq UltraScale XCZU9EG等平台以下是博客地址 点击直接前往
纯VHDL代码解码ov5640-MIPI视频方案
与上述基于MIPI CSI-2 RX Subsystem方案不同本博也提供基于纯VHDL代码解码ov5640-MIPI视频的方案该方案的区别与优势在于可以看到VHDL源码而非单纯的IP能看到源码的意思就是你可以任意修改源码以适配自己的项目其意义与价值无需多言该方案目前已在Xilinx Zynq7020上移植成功共有两套工程源码一套是单路ov5640-MIPI视频解码后HDMI输出另一套是4路ov5640-MIPI视频解码经缩放拼接后HDMI 4分屏输出感兴趣的可以参考我之前的博客 单路MIPI解码输出博客地址如下 点击直接前往 4路MIPI解码缩放拼接输出博客地址如下 点击直接前往
3、本 MIPI CSI2 模块性能及其优缺点
由于调用了Xilinx的MIPI CSI-2 RX Subsystem IP核所以性能上就取决于你的FPGA型号理论上FPGA越高端支持的IO线速率或者GT高速接口线速率就越高就能跑速率更高的MIPI视频 该IP适应性极强支持的MIPI相机性能参数如下 并且在越高端的FPGA型号上该IP支持的高端性能也越多 由于调用了Xilinx的MIPI CSI-2 RX Subsystem IP核NIPI视频解码的稳定性很好且使用及其简单缺点是看不到源码出了问题后不好排查只能在输入输出接口添加ila进行逐级追踪 本方案使用的FPGA型号为Xilinx Artix7-100T属于低端FPGA的MIPI解码应用再小型的Artix7-35T或者Spartan7、Spartan6等就已经不能使用MIPI CSI-2 RX Subsystem了
4、详细设计方案
本设计基于Xilinx的 Artix7-35T低端FPGA开发板采集OV5640摄像头的2Line MIPI视频OV5640摄像头配置为MIPI模式RAW10数据格式引脚经过权电阻方案后接入FPGA的HS BANK的LVDS差分IO调用Xilinx的MIPI CSI-2 RX Subsystem IP实现MIPI的D_PHYCSI_RX2功能该IP由Xilinx免费提供将MIPI视频解码后以AXIS视频流格式输出此时的视频是原始的RAW10数据输出路径有两种一种是经DDR缓存后依然以RAW10数据输出HDMI显示器只不过图像为黑白色另一种是DDR缓存后再经过Bayer转RGB和伽马校正后以RGB888数据输出HDMI显示器区别是图像为彩色的两种路径通过isp模块的parameter参数设置
设计原理框图
设计原理框图如下
OV5640及其配置
输入视频采用廉价的OV5640摄像头模组配置为MIPI模式2 Line数据格式为RAW10线速率为1000Mbps视频分辨率为1280*720一个时钟一个像素OV5640需要SCCB总线配置才能运行该总线等价于I2C总线本设计采用纯verilog实现的i2c控制器配置OV5640代码位置如下
权电阻硬件方案
使用Xilinx官方推荐的权电阻硬件方案将输入的差分MIPI对恢复HS和PL原理图部分截图如下 注意权电阻方案只在低速率的MIPI模式下可用高速率的MIPI请用专用芯片实现比如MC20001MC系列这种方案可以支持到2Gbps/Lane速率以上只要FPGA的IO速率够用
MIPI CSI-2 RX Subsystem
调用Xilinx的MIPI CSI-2 RX Subsystem IP实现MIPI的D-PHY功能该IP由Xilinx免费提供将MIPI视频解码后以AXIS视频流格式输出调用和配置如下
图像缓存
调用Xilinx的MIG与DDR3交互形成图像缓存架构调用Xilinx FIFO封装用户接口对图像进行乒乓操作形成2帧图像缓存输入数据位宽为16bit输出数据位宽为16bit代码中有详细中文注释很好理解和阅读如果打开后注释为乱码请用notepad打开就好了代码位置如下
VGA时序
VGA时序模块产生1280x72060Hz的分辨率视频即用于控制视频从DDR3中读出又作为VGA时序输出给HDMI输出模块代码位置如下
isp处理
由于OV5640-MIPI视频输出的是RAW10视频所以需要isp处理包括Bayer转RGB888和伽马校正当然isp并非一定要做有的项目需求恰好就是要输出显示RAW10原视频所以在代码里我专门设置了ISP_BYPASS参数该参数配置说明如下 parameter ISP_BYPASS 0视频进行isp处理输出RGB888视频 parameter ISP_BYPASS 1视频不进行isp处理输出RAW10原视频 isp模块代码位置如下 默认采用isp处理后的RGB888视频输出模块例化如下
视频输出
视频从FDMA读出后经过VGA时序模块和HDMI发送模块后输出显示器代码位置如下 VGA时序配置为1920X1080HDMI发送模块采用verilog代码手写可以用于FPGA的HDMI发送应用关于这个模块请参考我之前的博客博客地址点击直接前往
工程源码架构
工程源码架构如下
5、vivado工程详解
开发板FPGA型号Xilinx–Artix7–xc7a35tfgg484-2 开发环境Vivado2022.2 输入OV5640摄像头–MIPI–2 Line–RAW10-1280x720 输出HDMI 分辨率720P 应用Xilinx Artix7-35T低端FPGA解码MIPI视频 工程代码架构请参考第4章节“设计思路框架”的“工程源码架构”小节内容 工程的资源消耗和功耗如下 可以看到在资源相当紧张的Artix7-35T低端FPGA上本方案消耗的逻辑资源是很少的还剩余了大量资源可供用户其他使用足以证明本方案的先进性
6、工程移植说明
vivado版本不一致处理
1如果你的vivado版本与本工程vivado版本一致则直接打开工程 2如果你的vivado版本低于本工程vivado版本则需要打开工程后点击文件–另存为但此方法并不保险最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本 3如果你的vivado版本高于本工程vivado版本解决如下 打开工程后会发现IP都被锁住了如下 此时需要升级IP操作如下
FPGA型号不一致处理
如果你的FPGA型号与我的不一致则需要更改FPGA型号操作如下 更改FPGA型号后还需要升级IP升级IP的方法前面已经讲述了
其他注意事项
1由于每个板子的DDR不一定完全一样所以MIG IP需要根据你自己的原理图进行配置甚至可以直接删掉我这里原工程的MIG并重新添加IP重新配置 2根据你自己的原理图修改引脚约束在xdc文件中修改即可 3纯FPGA移植到Zynq需要在工程中添加zynq软核
7、上板调试验证
准备工作
需要准备的器材如下 FPHA开发板 OV5640摄像头 HDMI显示器
RAW10原始图像输出演示
该输出方案需要在代码中改为如下才能输出如下 输出如下 RAW10原始图像输出 isp处理后的RGB888图像输出演示
该输出方案需要在代码中改为如下才能输出如下 输出如下 RGB888图像输出演示 8、福利工程代码的获取
福利工程代码的获取 代码太大无法邮箱发送以某度网盘链接方式发送 资料获取方式私或者文章末尾的V名片。 网盘资料如下