Zynq UltraScale系列使用MIPI CSI-2 RX Subsystem 解码MIPI视频PD输出 提供2套工程源码和技术支持

news2025/1/18 6:43:03

目录

  • 1、前言
  • 2、设计思路和架构
  • 3、vivado工程详解
  • 4、上板调试验证
  • 5、福利:工程代码的获取

1、前言

本设计采用OV5640摄像头MIPI模式作为输入,分辨率为1280x720@60Hz,MIPI解码方案采用Xilinx官方提供的MIPI CSI-2 RX Subsystem IP解码MIPI视频,通过DP接口输出视频。
FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太高端的操作直接吓退一大批FPGA开发者,就没人玩儿了。
本文详细描述了设计方案,工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;
关于MIPI协议,请自行搜索,csdn就有很多大佬讲得很详细,我就不多写这块了;
本设计只针对2line的MIPI相机;
如果要使用4line的MIPI相机,请参考我之前写的文章4line MIPI解码

2、设计思路和架构

工程采用两个 lane 的 MIPI 输入,MIPI 摄像头配置为 RAW10 输出。通过mipi_csi2_rx_subsystem 模块进行协议解析并转换成 AXIS 流数据,并通过Sensor Demosaic模块将RAW 转换成 RGB 数据,之后经过 Gammer 校正等模块,进入 VDMA,之后进入 HP 口。
设计架构如下:
在这里插入图片描述
先配置 ZYNQ 核,100MHz 用于数据传输,200MHz 用于 MIPI 模块参考时钟,如下图:
在这里插入图片描述
配置 i2c 为 EMIO,用于配置摄像头寄存器,GPIO EMIO 设置为 1,用于配置摄像头使能,如下图:
在这里插入图片描述
添加 mipi_csi2_rx_subsystem IP,用于 MIPI 数据的接收与解析,转成 axi-stream 接口。
配置如下,数据格式选择 RAW10,选择 2 lane,Line Rate 配置为 1000Mbps,指的是最大支持的速率,也可以根据自己的需求填写,范围为 80-2500;Pixels Per Clock 默认配置为1,表示 1 个周期为 1 个像素;如下图:
在这里插入图片描述
自此,输入MIPI视频就以完成了解码,输出为AXIS视频流;后面就是图像数据格式转换和VDMA缓存以及vitis软件配置了。

3、vivado工程详解

提供2套工程源码,对应2种fpga,其他型号的fpga只需在vivado里更改fpga型号,然后重新编译即可,很简单,不多说;
工程1:
输入:OV5640摄像头MIPI模式,1280x720@60Hz;
FPGA型号:Zynq UltraScale Xczu4ev;
开发环境:vivado2020.2;
输出:DP,1280x720@60Hz;

工程2:
输入:OV5640摄像头MIPI模式,1280x720@60Hz;
FPGA型号:Zynq UltraScale Xczu2cg;
开发环境:vivado2020.2;
输出:DP,1280x720@60Hz;

以工程1为例,vivado工程BD如下:
在这里插入图片描述
综合后的代码架构如下:
在这里插入图片描述
vitis软件配置部分c代码主函数源码如下:

int main(void)
{
	int Status;
	int i ;
	Xil_DCacheDisable();
	Xil_ICacheDisable();
	for (i = 0; i < DISPLAY_NUM_FRAMES; i++)
	{
		pFrames[i] = frameBuf[i];
		memset(pFrames[i], 0, DEMO_MAX_FRAME);
	}
	PsGpioSetup() ;
	XGpioPs_WritePin(&Gpio, CAM_EMIO, 0) ;
	usleep(1000000);
	XGpioPs_WritePin(&Gpio, CAM_EMIO, 1) ;
	usleep(1000000);
	i2c_init(&ps_i2c0, XPAR_XIICPS_0_DEVICE_ID,100000);
	xil_printf("DPDMA Generic Video Example Test \r\n");
	Status = DpdmaVideoExample(&RunCfg, pFrames[0]);
	if (Status != XST_SUCCESS) {
		xil_printf("DPDMA Video Example Test Failed\r\n");
		return XST_FAILURE;
	}
	gamma_lut_init();
	demosaic_init();
	vdma_write_init(XPAR_AXIVDMA_0_DEVICE_ID,HORSIZE,VERSIZE,DEMO_STRIDE,(unsigned int)pFrames[0]);
	sensor_init(&ps_i2c0);
	return 0;
}

4、上板调试验证

由于某些不可抗力和高层次复杂因素,不便展示调试结果,请见谅;
在这里插入图片描述

5、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/378642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源商城系统怎么选择?

随着电子商务的发展&#xff0c;开源商城系统越来越受到市场的重视&#xff0c;无论是大型企业还是小型企业&#xff0c;都在使用开源商城系统来提高自身的竞争力。 开源商城系统的优势&#xff1f; 开源商城系统可以节省企业的开发成本&#xff0c;减少企业的研发时间&#x…

【2023unity游戏制作-mango的冒险】-5.攻击系统的简单实现

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;unity游戏制作 ⭐攻击系统的简单实现⭐ 文章目录⭐攻击系统的简单实现⭐&#x1f468;‍&#x1…

Ip2Region的Java本地实现

最近有个需求是将ip地址转换为对应的行政区划&#xff0c;存入数据库&#xff0c;在网上查阅相关资料&#xff0c;有ip2Region实现方案&#xff0c;记录下来&#xff0c;方便备查。 一、知识介绍 ip2region.xdb 即离线 IP 数据管理框架和定位库&#xff0c;免费。 数据格式&a…

北极星指标体系

北极星指标体系 每个产品都有很多指标,每个指标都反映了对应业务的经营情况。但是在实际业务经营中,却要求我们在不同的产品阶段寻找到合适的指标,让这个指标可以代表当前产品阶段的方向和目标,让这个指标不仅对业务经营团队,而且对产品的用户、对产品的价值都能有很好的…

多智能体集群协同控制笔记(1):线性无领航多智能体系统的一致性

对于连续时间高阶线性多智能体系统的状态方程为&#xff1a; x˙i(t)Axi(t)Bui(t),i1,2..N\dot {\mathbf{x}}_i(t)A\mathbf{x}_i(t)B\mathbf{u}_i(t),i1,2..N x˙i​(t)Axi​(t)Bui​(t),i1,2..N 下标iii代表第iii个智能体&#xff0c;ui(t)∈Rq1\mathbf{u}_i(t)\in R^{q \time…

【vulhub漏洞复现】Thinkphp 2.x 任意代码执行

一、漏洞详情影响版本 thinkphp 2.x但是由于thinkphp 3.0版本在Lite模式下没有修复该漏洞&#xff0c;所以也存在该漏洞漏洞原因&#xff1a;e 和 /e模式匹配路由&#xff1a;e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行; /e 可执行模式&#xff0c…

vue入门

一、准备 本文是基于HBuilderX工具来讲解的。 1、工具 HBuilderX 2、 二、介绍 Vue是一个做网页的框架。 一个网页都是由多个模块&#xff08;组件&#xff09;拼成的。而Vue的组件化技术正式应用了这个思想。 三、创建项目 使用HBuilderX 创建项目。 1、创建空白项目…

【联机对战】微信小程序联机游戏开发流程详解

现有一个微信小程序叫中国象棋项目&#xff0c;棋盘类的单机游戏看着有缺少了什么&#xff0c;现在给补上了&#xff0c;加个联机对战的功能&#xff0c;增加了可玩性&#xff0c;对新手来说&#xff0c;实现联机游戏还是有难度的&#xff0c;那要怎么实现的呢&#xff0c;接下…

MySQL表的增删查改(基础)

gitee:博客中的所有操作整合新增语法:insert [into] table_name values(value_list)[案例] 创建一个学生表进行数据插入1.1单行数据全列插入[提示]我们可以想在记事本上写下命令,让后复制到数据库客户端,这样可以在出错的时候进行快速修改.同时为了美观和明了,我们可以进行适当…

15个Spring扩展点,一般人知道的不超过5个!

Spring的核心思想就是容器&#xff0c;当容器refresh的时候&#xff0c;外部看上去风平浪静&#xff0c;其实内部则是一片惊涛骇浪&#xff0c;汪洋一片。Spring Boot更是封装了Spring&#xff0c;遵循约定大于配置&#xff0c;加上自动装配的机制。很多时候我们只要引用了一个…

苹果认证MFI学习

MFi是"Made for iPhone/iPod/iPad“的缩写。 MFi包含一系列技术或标准&#xff0c;你所开发的配件&#xff0c;要符合这个标准&#xff0c;才能够苹果设备如手机所认可&#xff0c;才能得到授权在市场销售。 比如蓝牙数据传输&#xff0c;就需要符合iAP2协议&#xff0c…

统计学习方法学习笔记——概论(一)

# 文章内容来自学习李航老师的《统计学习方法》后的总结&#xff0c;相当于学习笔记&#xff0c;若有不正确的地方还请大家指正。# 所需先验知识&#xff1a;概率论与数理统计、线性代数一、 统计学习概述可能有些小伙伴没有听过统计学习&#xff0c;但是我相信机器学习大家一定…

智慧物业管理系统【源码好优多】

简介 《智慧物业》一个免费开源的基于java的物业管理系统。未来将涵盖停车、安保、客服、工单、收费、财务、办公自动化等模块&#xff0c;构建一个软硬件一体的智慧物业解决方案。 功能 系统内置功能&#xff1a; 资产管理 商业区管理、楼栋管理、商铺管理、商铺租售 缴费…

【数电基础】——组合逻辑电路

目录 1.大纲 2.组合逻辑电路的特点 3.组合逻辑电路分析步骤 4.组合逻辑电路设计 5.组合逻辑电路中的竞争和冒险&#xff08;重要&#xff09; 6.怎样消除竞争冒险现象 7.常用的MSI组合逻辑器件 1.加法器 1.一位半加器 2.一位全加器 2.数据选择器 1.二选一数据选择器&#x…

spring容器,@Bean 与 @Component 用在同一个类上,会怎么样?

疑虑背景疑虑描述最近&#xff0c;在进行开发的过程中&#xff0c;发现之前的一个写法&#xff0c;类似如下以我的理解&#xff0c;Configuration 加 Bean 会创建一个 userName 不为 null 的 UserManager 对象&#xff0c;而 Component 也会创建一个 userName 为 null 的 UserM…

第七章 分词器:Text Analysis

1、分词器认知基础 1.1 基本概念 分词器官方称之为文本分析器,顾名思义,是对文本进行分析处理的一种手段,基本处理逻辑为按照预先制定的分词规则,把原始文档分割成若干更小粒度的词项,粒度大小取决于分词器规则。 1.2 分词发生时期 分词器的处理过程发生在 Index Tim…

【牛客刷题专栏】0x0D:JZ5 替换空格(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转)&#xff0c;它登陆后会保存刷题记录进度&#xff0c;重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏&#xff1a;个人CSDN牛客刷题专栏。 题目来自&#xff1a;牛客/题库 / 在线编程 / 剑指offer&#xff1a; 目录前言问题…

ICV光子盒:2023全球量子通信与安全产业发展展望

近日&#xff0c;全球著名的前沿科技咨询机构ICV与国内专注量子领域的行业研究机构光子盒&#xff0c;联合发布了2023全球量子通信与安全产业发展展望。报告主要从技术进展、产业生态、公司分析、网络建设、投资概况、政策发布、产业预测、展望观点的几方面对2023全球量子通信与…

【Java】Java进阶学习笔记(三)—— 面向对象(多态)

【Java】Java进阶学习笔记&#xff08;三&#xff09;—— 面向对象&#xff08;多态&#xff09;一、多态的概念1、多态的优点2、多态存在的三个必要条件3、多态中的成员特点4、重写方法的快捷键二、多态的转型1、向上转型2、向下转型3、代码示例4、转型的异常类型转换异常ins…

无线蓝牙耳机哪个品牌延迟低?玩游戏延迟低的蓝牙耳机推荐

无线蓝牙耳机因为摆脱了线的束缚&#xff0c;在使用上会更便捷&#xff0c;不少人喜欢戴蓝牙耳机玩游戏&#xff0c;但又怕蓝牙耳机有延迟。正因为蓝牙耳机摆脱了线的束缚&#xff0c;在信号传输的过程中难免产生延迟。那么&#xff0c;无线蓝牙耳机哪个品牌延迟低&#xff1f;…