首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

紫光同创FPGA图像视频采集系统,基于OV7725实现,提供工程源码和技术支持

  • 25-03-04 15:21
  • 3945
  • 6253
blog.csdn.net

目录

  • 1、前言
    • 免责声明
  • 2、设计思路框架
    • 视频源选择
    • OV7725摄像头配置及采集
    • 动态彩条
    • HDMA图像缓存
      • 输入输出视频
      • HDMA缓冲FIFO
      • HDMA控制模块
      • HDMI输出
  • 3、PDS工程详解
  • 4、上板调试验证并演示
    • 准备工作
    • 静态演示
    • 动态演示
  • 5、福利:工程源码获取

紫光同创FPGA图像视频采集系统,基于OV7725实现,提供工程源码和技术支持

1、前言

“苟利国家生死以,岂因祸福避趋之!”我优秀地下档员川建国同志,敏锐地洞察到祖国的短板在于高精尖半导体的制造领域,于是本着为中华民族伟大复兴的中国梦贡献绵薄之力的初心,建国站在高略高度和长远角度谋划,宁愿背当代一世之骂名也要为祖国千秋万世谋,2018年7月,建国正式打响毛衣战,随后又使出恰勃纸战术,旨在为祖国先进制程半导体领域做出自主可控的战略推动;在此,请收下我一声谢谢啊!!!!!!

2019年初我刚出道时,还是Xilinx遥遥领先的时代(现在貌似也是),那时的国产FPGA还处于辣鸡段位,国产FPGA仰望Xilinx情不自禁道:你以为躲在这里就找不到你吗?没用的,你那样拉轰的男人,无论在哪里,都像黑夜里的萤火虫那样的鲜明、那样的出众,你那忧郁的眼神,稀嘘的胡渣子,神乎其技的刀法,还有那杯Dry martine,都深深的迷住了我。。。然而才短短4年,如今的国产FPGA属于百家争鸣、百花齐放、八仙过海、神仙打架、方兴未艾、得陇望蜀、友商都是XX的喜极而泣之局面,面对此情此景,不得不吟唱老人家的诗句:魏武挥鞭,东临碣石有遗篇,萧瑟秋风今又是,换了人间。。。
言归正传,目前对于国产FPGA的共识有以下几点:
1:性价比高,与同级别国外大厂芯片相比,价格相差几倍甚至十几倍;
2:自主可控,国产FPGA拥有完整自主知识产权的产业链,从芯片到相关EDA工具
3:响应迅速,FAE技术支持比较到位,及时解决开发过程中遇到的问题,毕竟中文数据手册。。
4:采购方便,产业链自主可控,采购便捷

本文使用紫光同创的PGL22G-6MBG324 FPGA做基础的图像视频采集系统,视频源有两种,分别对应开发者手里有没有摄像头的情况,一种是使用廉价的OV7725摄像头;如果你手里没有OV7725摄像头或者FPGA开发板没有摄像头输入接口,则可使用代码内部生成的动态彩条模拟摄像头视频;视频源的选择通过代码顶层的`define宏定义进行选择,上电默认使用OV7725摄像头输入作为视频源;FPGA采集到输入视频后,使用本人开发的HDMA视频缓存架构,将视频送到外接DDR3中缓存,然后读出视频送HDMI显示器显示;提供1套Pango Design Suite 2021.4版本的工程源码;

紫光同创FPGA图像视频采集系统的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做学习提升,可应用于医疗、军工等行业的高速接口或图像处理领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等),若大佬们觉得有所冒犯,请私信批评教育;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。

2、设计思路框架

本文使用紫光同创的PGL22G-6MBG324 FPGA做基础的图像视频采集系统,视频源有两种,分别对应开发者手里有没有摄像头的情况,一种是使用廉价的OV7725摄像头;如果你手里没有OV7725摄像头或者FPGA开发板没有摄像头输入接口,则可使用代码内部生成的动态彩条模拟摄像头视频;视频源的选择通过代码顶层的`define宏定义进行选择,上电默认使用OV7725摄像头输入作为视频源;提供1套Pango Design Suite 2021.4版本的工程源码,FPGA采集到输入视频后,使用本人开发的HDMA视频缓存架构,将视频送到外接DDR3中缓存,然后读出视频送HDMI显示器显示;
工程设计框图如下:
在这里插入图片描述

视频源选择

视频源有两种,分别对应开发者手里有没有摄像头的情况,一种是使用廉价的OV7725摄像头;如果你手里没有OV7725摄像头或者FPGA开发板没有摄像头输入接口,则可使用代码内部生成的动态彩条模拟摄像头视频;视频源的选择通过代码顶层的宏定义进行选择,上电默认使用OV7725摄像头输入作为视频源;视频源的选择通过代码顶层的`define宏定义进行;如下:
在这里插入图片描述
视频源选择逻辑代码部分如下:
在这里插入图片描述
选择逻辑如下:
当(注释) define COLOR_IN时,输入源视频是动态彩条;
当(不注释) define COLOR_IN时,输入源视频是OV7725;

OV7725摄像头配置及采集

OV7725摄像头需要i2c配置才能使用,需要将DVP接口的视频数据采集为RGB565或者RGB888格式的视频数据,这两部分均用verilog代码模块实现,代码位置如下:
在这里插入图片描述
其中摄像头配置为分辨率640x480;
摄像头采集模块支持RGB565和RGB888格式的视频输出,可由参数配置,如下:
在这里插入图片描述
RGB_TYPE=0输出本RGB565格式;
RGB_TYPE=1输出本RGB888格式;
设计选择RGB888格式;

动态彩条

动态彩条可配置为不同分辨率的视频,视频的边框宽度,动态移动方块的大小,移动速度等都可以参数化配置,我这里配置为辨率640x480,动态彩条模块代码位置和顶层接口和例化如下:
在这里插入图片描述
在这里插入图片描述

HDMA图像缓存

HDMA图像缓存的本质就是一个封装了用户接口的AXI4-FULL-MASTER总线,HDMA对外与DDR3交互,紫光同创FPGA自带的DDR3控制器的用户接口为AXI4-FULL总线,HDMA对内例化两个FIFO与FPGA内部逻辑交互,所以开发者在使用HDMA时,已无需再关心复杂的为AXI4-FULL协议,只需要像使用FIFO那样简单即可;HDMA架构如下:
在这里插入图片描述
代码架构如下:
在这里插入图片描述

输入输出视频

输入视频的数据格式为RGB,即典型的pclk、vs、de、rgb形式的VGA视频时序,但需要注意的是,因为输入视频直接与FIFO交互,FIFO的AXI侧的数据位宽为128位,为了数据的不错位,输入视频的rgb信号接口不能为传统的24位,这里可以设置为16或者32位,代码中通过参数配置,我配置为32位,如下:
在这里插入图片描述

HDMA缓冲FIFO

例化两个FIFO作为FPGA逻辑数据与AXI4数据的缓冲,所谓缓冲,即数据位宽的转换、时钟域的转换、读写时机的控制等部分,FPGA逻辑侧的数据位宽为32位,AXI4侧的数据位宽为128位;以写FIFO为例,配置如下:
在这里插入图片描述

HDMA控制模块

HDMA控制模块的主要功能是实现AXI4-FULL主机和图像缓存读写地址切换两大功能;AXI4-FULL主机比较简单,照着AXI4-FULL时序图写就完事儿了,图像缓存读写地址切换就难了,本设计通过顶层的参数来配置图像缓存的帧数,如下:
HDMA_PINGPANG_EN=1则图像做三帧缓存;
HDMA_PINGPANG_EN=0则图像做单帧缓存;
本设计配置为HDMA_PINGPANG_EN=1;
为了实现图像的多帧缓存,将读写地址分段,如下:
读写地址=帧地址+数据地址;
数据地址:即正常的AXI4数据突发的地址增量;
写帧地址:一帧图像到来时+1;
读帧地址:一帧图像到来时+2;
如此做到了同时读写不同的帧地址,输出的图像是完美的。。。
这也叫做乒乓操作,核心代码如下:
在这里插入图片描述

HDMI输出

HDMI输出包括VGA时序和HDMI编码模块,VGA时序在紫光PGL22G-6MBG324 FPGA上只能做到720P,因为此FPGA可能太低端了,无法输出742.5M的串行时钟,当然,你用HDMI编码芯片是可以实现1080P的,所以这里只能做到720P的输出分辨率;HDMI编码模块待用原语实现,和Xilinx家的一样,代码结构如下:
在这里插入图片描述

3、PDS工程详解

开发板FPGA型号:紫光同创–PGL22G-6MBG324;
开发环境:Pango Design Suite 2021.4
输入:OV7725摄像头或动态彩条,分辨率640x480;
输出:HDMI,分辨率1280x720;
工程作用:紫光同创FPGA图像视频采集系统;
工程代码架构如下:
在这里插入图片描述
工程的资源消耗和功耗如下:
在这里插入图片描述

4、上板调试验证并演示

准备工作

你需要有以下装备才能移植并测试该工程代码:
1:FPGA开发板;
2:OV7725摄像头,如果没有也可以,就选择动态彩条;
3:HDMI传输线;
4:HDMI显示,要求分辨率支持1280x720;

静态演示

OV7725输入640x480分辨率HDMI输出静态演示如下:
在这里插入图片描述
动态彩条输入640x480分辨率HDMI输出静态演示如下:
在这里插入图片描述

动态演示

动态视频演示如下:

紫光同创FPGA-OV7725

5、福利:工程源码获取

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

工程源码和技术支持请联系微信:
微信名片
注:本文转载自blog.csdn.net的9527华安的文章"https://blog.csdn.net/qq_41667729/article/details/133355191"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top