当前位置: 首页 > news >正文

紫光同创FPGA实现视频采集转USB2.0输出,基于CY7C68013芯片,提供PDS工程源码和技术支持和QT上位机

目录

  • 1、前言
    • 工程概述
    • 免责声明
  • 2、相关方案推荐
    • 我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目
    • 紫光同创FPGA相关方案推荐
    • 我已有的FPGA驱动USB通信方案
  • 3、设计思路框架
    • 工程设计原理框图
    • 输入Sensor之-->OV5640摄像头
    • CY7C68013芯片
    • SlaveFIFO 模式及其配置
    • CY7C68013驱动安装
    • CY7C68013固件编译和下载
    • 工程源码架构
  • 4、PDS工程源码1详解:OV5640转USB2.0输出版本
  • 7、上板调试验证并演示
    • 准备工作
    • 紫光同创FPGA实现USB2.0摄像头输出演示
  • 8、工程源码

紫光同创FPGA实现视频采集转USB2.0输出,基于CY7C68013芯片,提供PDS工程源码和技术支持和QT上位机

1、前言

国产FPGA现状:

“苟利国家生死以,岂因祸福避趋之!”大洋彼岸的我优秀地下档员,敏锐地洞察到祖国的短板在于先进制程半导体的制造领域,于是本着为中华民族伟大复兴的中国梦贡献绵薄之力的初心,懂先生站在高略高度和长远角度谋划,宁愿背当代一世之骂名也要为祖国千秋万世谋,2018年7月,懂先生正式打响毛衣战,随后又使出恰勃纸战术,旨在为祖国先进制程半导体领域做出自主可控的战略推动;2019年初我刚出道时,还是Xilinx遥遥领先的时代(现在貌似也是),那时的国产FPGA还处于黑铁段位;然而才短短7年,如今的国产FPGA属于百家争鸣、百花齐放、八仙过海、神仙打架、方兴未艾、得陇望蜀、友商都是XX的喜极而泣之局面,此情此景,不得不吟唱老人家的诗句:魏武挥鞭,东临碣石有遗篇,萧瑟秋风今又是,换了人间。。。
目前对于国产FPGA优势有以下几点:
1:性价比高,与同级别国外大厂芯片相比,价格相差几倍甚至十几倍;
2:自主可控,国产FPGA拥有完整自主知识产权的产业链,从芯片到相关EDA工具;
3:响应迅速,FAE技术支持比较到位,及时解决开发过程中遇到的问题,毕竟中文数据手册;
4:采购方便,产业链自主可控,采购便捷;

FPGA实现USB2.0现状:

目前FPGA实现USB2.0关键的问题是解决物理层的问题,目前大致分为两种方案;其一是使用FPGA内部逻辑资源实现USB物理层,这种方案比较少,只有少量FPGA集成了该硬核IP,比如高云国产系列FPGA,这种方案的优点是硬件电路设计极为简单,可解决国产化问题,缺点是逻辑代码设计较为复杂,需要对USB协议有深刻理解,对FPGA开发者水平要求较高;其二是使用专门的PHY芯片实现USB物理层,这种方案就比较多了,比如经典的CY7C68013和FT601等芯片,这种方案的优点逻辑代码设计简单,只需考虑与PHY的时序对接问题,无需对USB协议有太多理解,对FPGA开发者水平要求较低,缺点是硬件成本高点,硬件电路设计复杂一些;本设计使用CY7C68013芯片实现USB物理层;

工程概述

本文使用紫光同创的PGL22G系列FPGA实现视频采集转USB2.0输出系统;视频输入源为OV5640摄像头;FPGA首先对摄像头进行i2c初始化配置,配置为JPEG输出模式,然后采集摄像头视频;然后图像送入FIFO中缓存,在USB2.0驱动模块控制下,根据CY7C68013接口时序从FIFO中读取图像送USB2.0总线传输;然后图像送入CY7C68013芯片实现USB2.0协议层编码和物理层串化;然后图像经过板载的MicroUSB接口输出至PC电脑端;PC端Cypress驱动接收USB数据,然后打开QT上位机调用API接口函数接收图像并实时显示;针对市场主流需求,本设计提供1套PDS工程源码,具体如下:
在这里插入图片描述
现对上述1套工程源码做如下解释,方便读者理解:

工程源码1

开发板FPGA型号为PGL22G-6MBG324;视频输入源为OV5640摄像头;FPGA首先对摄像头进行i2c初始化配置,配置为JPEG输出模式,分辨率为1280x720然后采集摄像头视频;然后图像送入FIFO中缓存,在USB2.0驱动模块控制下,根据CY7C68013接口时序从FIFO中读取图像送USB2.0总线传输;然后图像送入CY7C68013芯片实现USB2.0协议层编码和物理层串化;然后图像经过板载的MicroUSB接口输出至PC电脑端,输出分辨率为1280x720;PC端Cypress驱动接收USB数据,然后打开QT上位机调用API接口函数接收图像并实时显示;该工程适用于紫光同创FPGA实现USB2.0摄像头应用;

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

免责声明

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

2、相关方案推荐

我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目

其实一直有朋友反馈,说我的博客文章太多了,乱花渐欲迷人,自己看得一头雾水,不方便快速定位找到自己想要的项目,所以本博文置顶,列出我目前已有的所有项目,并给出总目录,每个项目的文章链接,当然,本博文实时更新。。。以下是博客地址:
点击直接前往

紫光同创FPGA相关方案推荐

鉴于国产FPGA的优异表现和市场需求,我专门开设了一个人紫光同创FPGA专栏,里面收录了基于紫光同创FPGA的图像处理、UDP网络通信、GT高速接口、PCIE等博客,感兴趣的可以去看看,博客地址:点击直接前往

我已有的FPGA驱动USB通信方案

我的博客主页开设有FPGA驱动USB通信专栏,里面全是FPGA驱动USB通信的工程源码及博客介绍;既有基于USB2.0也有USB3.0方案;包括USB2.0/3.0测速试验、USB2.0/3.0视频采集传输试验、USB2.0/3.0视频采集+图像处理后传输试验等等;所有工方案均包括FPGA工程和QT上位机源码;专栏地址链接如下:
点击直接前往

3、设计思路框架

工程设计原理框图

工程设计原理框图如下:
在这里插入图片描述

输入Sensor之–>OV5640摄像头

视频输入源为OV5640摄像头;FPGA首先对摄像头进行i2c初始化配置,配置为JPEG输出模式,分辨率1280x720,然后采集摄像头视频;整个模块代码架构如下:
在这里插入图片描述

CY7C68013芯片

Cypress公司的CY7C68013A芯片是一款优秀的集成USB2.0的微处理器,它集成了USB2.0 收发器、SIE(串行接口引擎)、增强的 8051 微控制器和可编程的外围接口。FX2这种独创性结构可使数据传输率达到480MBit/s。在FX2中,智能SIE可以硬件处理许多USB1.1和USB2.0协议,从而减少了开发时间和确保了USB的兼容性。该器件具有如下特性:
1、内嵌 480MBit/s 的收发器,锁相环 PLL,串行接口引擎 SIE——集成了整个USB2.0协议的物理层。
2、内嵌可工作在48MHz的增强型8051,该8051控制器具有以下特征:
(1)具有256Byte的寄存器空间,两个串口,三个定时器,两个数据指针。
(2)四个机器周期(工作在48MHz下时为83.3ns)即组成一个指令周期。
(3)特殊功能寄存器(包括 I/O 口控制寄存器)可高速访问。
(4)应用USB向量中断,具有极短的ISR响应时间。
(5) 只用作USB事务管理、控制,不参与数据传输,较好地解决了USB高速模式的带宽问题。
3、“软配置”——USB固件可由USB总线下载,片上不需集成ROM。
4、拥有四个FIFO接口,可工作在内部或外部时钟下。端点和FIFO接口的应用使外部逻辑和USB总线可高速连接。
5:一种单片USB2.0外设解决方案,不需要外部的协议物理层,FX2把所有的功能集成在一个芯片上。
CY7C68013A的内部结构图如下:
在这里插入图片描述

SlaveFIFO 模式及其配置

本设计需要使用CY7C68013的SlaveFIFO模式,我们已经做好了固件,并提供给使用者下载到CY7C68013中;SlaveFIFO接口为基于FPGA的应用执行高速度的USB连接事项,如数据采集、工业控制和监控以及图像处理提供了非常简单易用的接口。FX2在SlaveFIFO模式下运行, FPGA 作为主设备使用。
SlaveFIFO模式下,连接至FX2的外部系统能够生成读和写控制信号,因此,它能作为FX2的主设备使用。在基于 FPGA 的应用中,FX2一般被配置为SlaveFIFO模式。下图为 FX2使用从设备FIFO接口与外部FPGA连接时的系统框图。
在这里插入图片描述
在这种方式下,FX2内嵌的8051固件的功能只是配置Slave FIFO相关的寄存器以及控制FX2何时工作在Slave FIFO模式下。一旦 8051固件将相关的寄存器配置完毕,且使自身工作在Slave FIFO模式下后,外部逻辑(如 FPGA)即可按照Slave FIFO的传输时序,高速与主机进行通讯,而在通讯过程中不需要8051固件的参与。SlaveFIFO模式的配置需要安装CY7C68013A官方提供的一整套工具下载相关固件完成,这一套东西我已打包,并专门写了一个工具安装、驱动安装、工具使用、固件下载的文档,也一并放在了资料包里,如下:
在这里插入图片描述
下图为SlaveFIFO模式下FX2与FPGA 连接示意图。
在这里插入图片描述
具体信号管脚说明如下。
在这里插入图片描述
对于IFCLK信号,属于一个方向可配置的信号,既可以由FX2 输出,连接到外部器件如FPGA,也可以配置为输入,接收来自外部器件的时钟信号,在本例中,将 IFCLK 配置为输出,即由FX2输出给 FPGA,作为数据和控制信号的同步时钟。

采集的图像送入FIFO中缓存,在USB2.0接口驱动逻辑控制下,根据CY7C68013接口时序从FIFO中读取图像送USB2.0总线传输;即这就是一个时序接口,与CY7C68013接口对接,没有太多的复杂逻辑;代码如下:
在这里插入图片描述

CY7C68013驱动安装

第1步:将FPGA开发板用USB线连接到PC电脑端,然后FPGA上电;
第2步:打开电脑《我的电脑》–>《设备管理器》,应该可以看到如下信息:
在这里插入图片描述
表明电脑识别到了USB设备,但没有驱动;
第3步:安装步骤如下图:
在这里插入图片描述
第4步:安装好后验证如下:
在这里插入图片描述
可以看到,驱动已经安装好;

CY7C68013固件编译和下载

首先需要安装Cypress官方提供的Keil软件,用于开发51单片机程序,也就是CY7C68013固件程序;
打开如下位置的安装包安装Keil软件:
在这里插入图片描述
然后一路Next即可完成安装;
随后打开如下位置的启动图标即可打开我们提供的CY7C68013固件原程序:
在这里插入图片描述
程序架构如下:
在这里插入图片描述
然后按照Keil开发流程,可任意修改代码,然后编译;
编译完成后,固件下载到CY7C68013芯片,首先需要安装Cypress官方提供的软件,打开如下位置安装:
在这里插入图片描述
然后一路Next即可完成安装;
随后打开如下位置的软件开始下载固件:
在这里插入图片描述
下载步骤如下:
在这里插入图片描述

工程源码架构

工程源码架构如下:
在这里插入图片描述

4、PDS工程源码1详解:OV5640转USB2.0输出版本

开发板FPGA型号:紫光同创–PGL22G-6MBG324;
开发环境:Pango Design Suite 2021.1
视频输入:OV5640摄像头,JPEG模式,分辨率1280x720;
输入分辨率:USB2.0;分辨率1280x720;
USB2.0桥接方案:CY7C68013芯片;
工程作用:紫光同创FPGA图像视频采集系统;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握紫光同创FPGA实现视频采集转USB2.0输出的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

7、上板调试验证并演示

准备工作

你需要有以下装备才能移植并测试该工程代码:
1:FPGA开发板;
2:CY7C68013转接板;
3:USB线;
4:笔记本电脑或台式电脑;
开发板连接如下:
在这里插入图片描述

紫光同创FPGA实现USB2.0摄像头输出演示

紫光同创FPGA实现USB2.0摄像头输出演示如下:

OV5640-USB2.0

8、工程源码

工程源码如下:
在这里插入图片描述

http://www.xdnf.cn/news/658765.html

相关文章:

  • DC-DC升压
  • 【Qt】Debug版本正常运行,Release版本运行卡死
  • FreeRTOS 事件标志组详解:原理、用法与实战技巧
  • 网页模板素材网站 web前端网页制作模板
  • 如何清除浏览器启动hao点360
  • 【多智能体系统开发框架AutoGen解析与实践】
  • 初学ADC
  • 【四】频率域滤波(下)【830数字图像处理】
  • 华为OD机试真题——通信系统策略调度(用户调度问题)(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 算力服务器和GPU服务器之间的联系
  • C++中使用类的继承机制来定义和实现基类与派生类
  • 初始化硬盘时,选MBR还是GUID?—「小白教程」
  • Linux系统中为Qt项目封装一个udp客户端类
  • 在麒麟系统(Kylin OS)上安装`geckodriver`
  • 跳板问题(贪心算法+细节思考)
  • 中国工程咨询协会新型基础设施专业委员会成立
  • Open vSwitch笔记20250526
  • 基于python合成100X100的透明背景图片和图标
  • 十大排序算法
  • 单例模式,饿汉式,懒汉式,在java和spring中的体现
  • 从数据页角度理解B+树查询
  • Netty学习专栏(五):Netty高性能揭秘(Reactor模式与零拷贝的深度实践)
  • 华为OD机试真题——单词接龙(首字母接龙)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 股指期货移仓换月技巧是什么?
  • CUDA编程笔记(1)--最简单的核函数
  • 大模型RL方向面试题90道
  • Filter和Interceptor详解(一文了解执行阶段及其流程)
  • CVE-2024-36467 Zabbix权限提升
  • java枚举和mybaits-plus结合实现映射输出和存储
  • VScode怎么运行一个c语言程序