FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持

这篇具有很好参考价值的文章主要介绍了FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、前言

没玩过GT资源都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。
GT资源是Xilinx系列FPGA的重要卖点,也是做高速接口的基础,不管是PCIE、SATA、MAC等,都需要用到GT资源来做数据高速串化和解串处理,Xilinx不同的FPGA系列拥有不同的GT资源类型,低端的A7由GTP,K7有GTX,V7有GTH,更高端的U+系列还有GTY等,他们的速度越来越高,应用场景也越来越高端。。。

本文使用Xilinx的Artix7 FPGA的GTP资源做视频传输实验,视频源使用廉价的OV5640摄像头模组,调用GTP IP核,用verilog编写视频数据的编解码模块和数据对齐模块,使用开发板硬件上的2个SFP光口实现数据的收发;本博客提供2套vivado工程源码,2套工程的不同点在于使用1个SFP光口做收发还是两个2个SFP光口做收发;本博客详细描述了FPGA GTP 视频传输的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做学习提升,可应用于医疗、军工等行业的高速接口或图像处理领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

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

2、我这里已有的 GT 高速接口解决方案

我的主页有FPGA GT 高速接口专栏,该专栏有 GTP 、 GTX 、 GTH 、 GTY 等GT 资源的视频传输例程和PCIE传输例程,其中 GTP基于A7系列FPGA开发板搭建,GTX基于K7或者ZYNQ系列FPGA开发板搭建,GTH基于KU或者V7系列FPGA开发板搭建,GTY基于KU+系列FPGA开发板搭建;以下是专栏地址:
点击直接前往

3、GTP 全网最细解读

关于GTP介绍最详细的肯定是Xilinx官方的《ug482_7Series_GTP_Transceivers》,我们以此来解读:
《ug482_7Series_GTP_Transceivers》的PDF文档我已放在了资料包里,文章末尾有获取方式;
我用到的开发板FPGA型号为Xilinx Artix7 xc7a35tfgg484-2;带有4路GTP资源,每通道的收发速度为 500 Mb/s 到 6.6 Gb/s 之间。GTP 收发器支持不同的串行传输接口或协议,比如 PCIE 1.1/2.0 接口、万兆网 XUAI 接口、OC-48、串行 RapidIO 接口、 SATA(Serial ATA) 接口、数字分量串行接口(SDI)等等;

GTP 基本结构

Xilinx 以 Quad 来对串行高速收发器进行分组,四个串行高速收发器和一个 COMMOM(QPLL)组成一个 Quad,每一个串行高速收发器称为一个 Channel(通道),下图为四路 GTP 收发器在Artix-7 FPGA 芯片中的示意图:《ug482_7Series_GTP_Transceivers》第13页;
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
GTP 的具体内部逻辑框图如下所示,它由四个收发器通道 GTPE2_CHANNEL原语 和一个GTPE2_COMMON 原语 组成。每路 GTPE2_CHANNEL 包含发送电路 TX 和接收电路 RX;《ug482_7Series_GTP_Transceivers》第14页;
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
每个 GTPE2_CHANNEL 的逻辑电路如下图所示:《ug482_7Series_GTP_Transceivers》第15页;
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
GTPE2_CHANNEL 的发送端和接收端功能是独立的,均由 PMA(Physical Media Attachment,物理媒介适配层)和 PCS(Physical Coding Sublayer,物理编码子层)两个子层组成。其中 PMA 子层包含高速串并转换(Serdes)、预/后加重、接收均衡、时钟发生器及时钟恢复等电路。PCS 子层包含8B/10B 编解码、缓冲区、通道绑定和时钟修正等电路。
这里说多了意义不大,因为没有做过几个大的项目是不会理解这里面的东西的,对于初次使用或者想快速使用者而言,更多的精力应该关注IP核的调用和使用,后面我也会重点将到IP核的调用和使用;

GTP 发送和接收处理流程

首先用户逻辑数据经过 8B/10B 编码后,进入一个发送缓存区(Phase Adjust FIFO),该缓冲区主要是 PMA 子层和 PCS 子层两个时钟域的时钟隔离,解决两者时钟速率匹配和相位差异的问题,最后经过高速 Serdes 进行并串转换(PISO),有必要的话,可以进行预加重(TX Pre-emphasis)、后加重。值得一提的是,如果在 PCB 设计时不慎将 TXP 和 TXN 差分引脚交叉连接,则可以通过极性控制(Polarity)来弥补这个设计错误。接收端和发送端过程相反,相似点较多,这里就不赘述了,需要注意的是 RX 接收端的弹性缓冲区,其具有时钟纠正和通道绑定功能。这里的每一个功能点都可以写一篇论文甚至是一本书,所以这里只需要知道个概念即可,在具体的项目中回具体用到,还是那句话:对于初次使用或者想快速使用者而言,更多的精力应该关注IP核的调用和使用。

GTP 的参考时钟

GTP 模块有两个差分参考时钟输入管脚(MGTREFCLK0P/N 和 MGTREFCLK1P/N),作为 GTP模块的参考时钟源,用户可以自行选择。一般的A7系列开发板上,都有一路 125Mhz 的 GTP 参考时钟连接到 MGTREFCLK0/1上,作为 GTP 的参考时钟。差分参考时钟通过IBUFDS 模块转换成单端时钟信号进入到 GTPE2_COMMOM 的 PLL0 和 PLL1 中,产生 TX 和 RX 电路中所需的时钟频率。TX 和 RX 收发器速度相同的话,TX 电路和 RX 电路可以使用同一个 PLL 产生的时钟,如果 TX 和 RX收发器速度不相同的话,需要使用不同的 PLL 时钟产生的时钟。参考时钟这里Xilinx给出的GT参考例程已经做得很好了,我们调用时其实不用修改;GTP 的参考时钟结构图如下:《ug482_7Series_GTP_Transceivers》第21页;
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理

GTP 发送接口

《ug482_7Series_GTP_Transceivers》的第75到123页详细介绍了发送处理流程,其中大部分内容对于用户而言可以不去深究,因为手册讲的基本都是他自己的设计思想,留给用户可操作的接口并不多,基于此思路,我们重点讲讲GTP例化时留给用户的发送部分需要用到的接口;
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
用户只需要关心发送接口的时钟和数据即可,GTP例化模块的这部分接口如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
在代码中我已为你们重新绑定并做到了模块的顶层,代码部分如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理

GTP 接收接口

《ug482_7Series_GTP_Transceivers》的第125到213页详细介绍了发送处理流程,其中大部分内容对于用户而言可以不去深究,因为手册讲的基本都是他自己的设计思想,留给用户可操作的接口并不多,基于此思路,我们重点讲讲GTP例化时留给用户的发送部分需要用到的接口;
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
用户只需要关心接收接口的时钟和数据即可,GTP例化模块的这部分接口如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
在代码中我已为你们重新绑定并做到了模块的顶层,代码部分如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理

GTP IP核调用和使用

FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
有别于网上其他博主的教程,我个人喜欢用如下图的共享逻辑:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
这样选择的好处有两个,一是方便DRP变速,二是便于IP核的修改,修改完IP核后直接编译即可,不再需要打开example工程,再复制下面的一堆文件放到自己的工程什么的,玩儿个GTP需要那么复杂么?
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
这里对上图的标号做解释:
1:线速率,根据自己的项目需求来,GTP的范围是0.5到6.25G,由于我的项目是视频传输,所以在GTP的速率范围内均可,为了通用性,我在vivado工程中例化了5个GTP,速率分别为1G、2G、4G、5G;
2:参考时钟,这个得根据你的原理图来,可以是80M、125M、148.5M、156.25M等等,我的开发板是125M;
4:GTP组的绑定,这个很重要,他的绑定参考依据有两个,已是你的开发板原理图,而是官方的参考资料《ug482_7Series_GTP_Transceivers》,官方将GTP资源分成了4组,名字分别为X0Y0、X0Y1、X0Y2、X0Y3,由于GT资源是Xilinx系列FPGA的专用资源,占用专用的Bnak,所以引脚也是专用的,那么这些GTP组和引脚是怎么对应的呢?《ug482_7Series_GTP_Transceivers》的说明如下:红框内为的我的开发板原理图对应的FPGA引脚;FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
我的板子原理图如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
选择外部数据位宽32bit的8b/10b编解码,如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
下面这里讲的是K码检测:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
这里选择K28.5,也就是所谓的COM码,十六进制为bc,他的作用很多,可以表示空闲乱序符号,也可以表示数据错位标志,这里用来标志数据错位,8b/10b协议对K码的定义如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
下面讲的是时钟矫正,也就是对应GTP内部接收部分的弹性buffer;
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
这里有一个时钟频偏的概念,特别是收发双方时钟不同源时,这里设置的频偏为100ppm,规定每隔5000个数据包发送方发送一个4字节的序列,接收方的弹性buffer会根据这4字节的序列,以及数据在buffer中的位置来决定删除或者插入一个4字节的序列中的一个字节,目的是确保数据从发送端到接收端的稳定性,消除时钟频偏的影响;

4、设计思路框架

本博客提供2套vivado工程源码,2套工程的不同点在于使用1个SFP光口做收发还是两个2个SFP光口做收发;使用1个SFP光口做收发是用光纤连接SFP的RX和TX;使用2个SFP光口做收发是用光纤连接一个SFP的RX和另一个SFP的TX;设计思路框架分别如下:
使用2个SFP光口框图如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
使用1个SFP光口框图如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理

OV5640摄像头配置及采集

OV5640摄像头需要i2c配置才能使用,需要将DVP接口的视频数据采集为RGB565或者RGB888格式的视频数据,这两部分均用verilog代码模块实现,代码位置如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
其中摄像头配置为分辨率1280x720@60Hz,如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
摄像头采集模块支持RGB565和RGB888格式的视频输出,可由参数配置,如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
RGB_TYPE=0输出本RGB565格式;
RGB_TYPE=1输出本RGB888格式;
设计选择RGB565格式;

视频数据组包

由于视频需要在GTP中通过aurora 8b/10b协议收发,所以数据必须进行组包,以适应aurora 8b/10b协议标准;视频数据组包模块代码位置如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
首先,我们将16bit的视频存入FIFO中,存满一行时就从FIFO读出送入GTP发送;在此之前,需要对一帧视频进行编号,也叫作指令,GTP组包时根据固定的指令进行数据发送,GTP解包时根据固定的指令恢复视频的场同步信号和视频有效信号;当一帧视频的场同步信号上升沿到来时,发送一帧视频开始指令 0,当一帧视频的场同步信号下降沿到来时,发送一帧视频开始指令 1,视频消隐期间发送无效数据 0 和无效数据 1,当视频有效信号到来时将每一行视频进行编号,先发送一行视频开始指令,在发送当前的视频行号,当一行视频发送完成后再发送一行视频结束指令,一帧视频发送完成后,先发送一帧视频结束指令 0,再发送一帧视频结束指令 1;至此,一帧视频则发送完成,这个模块不太好理解,所以我在代码里进行了详细的中文注释,需要注意的是,为了防止中文注释的乱序显示,请用notepad++编辑器打开代码;指令定义如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
指令可以任意更改,但最低字节必须为bc;

GTP aurora 8b/10b

这个就是调用GTP做aurora 8b/10b协议的数据编解码,前面已经对GTP做了详细概述,这里不讲;代码位置如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
需要注意的是,我一共调用了5个GTP,速率分别为1G、2G、4G、5G;代码中用一个参数选择速率,如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
GTP_RATE=8’d1,GTP以1G线速率运行;
GTP_RATE=8’d2,GTP以2G线速率运行;
GTP_RATE=8’d4,GTP以4G线速率运行;
GTP_RATE=8’d5,GTP以5G线速率运行;
以我的测试来看,GTP以4G线速率运行时视频传输效果最佳;

数据对齐

由于GT资源的aurora 8b/10b数据收发天然有着数据错位的情况,所以需要对接受到的解码数据进行数据对齐处理,数据对齐模块代码位置如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
我定义的 K 码控制字符格式为:XX_XX_XX_BC,所以用一个rx_ctrl 指示数据是否为 K 码 的 COM 符号;
rx_ctrl = 4’b0000 表示 4 字节的数据没有 COM 码;
rx_ctrl = 4’b0001 表示 4 字节的数据中[ 7: 0] 为 COM 码;
rx_ctrl = 4’b0010 表示 4 字节的数据中[15: 8] 为 COM 码;
rx_ctrl = 4’b0100 表示 4 字节的数据中[23:16] 为 COM 码;
rx_ctrl = 4’b1000 表示 4 字节的数据中[31:24] 为 COM 码;
基于此,当接收到有K码时就对数据进行对齐处理,也就是将数据打一拍,和新进来的数据进行错位组合,这是FPGA的基础操作,这里不再赘述;

视频数据解包

数据解包是数据组包的逆过程,代码位置如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
GTP解包时根据固定的指令恢复视频的场同步信号和视频有效信号;这些信号是作为后面图像缓存的重要信号;
至此,数据进出GTP部分就已经讲完了,整个过程的框图我在代码中描述了,如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理

图像缓存

经常看我博客的老粉应该都知道,我做图像缓存的套路是FDMA,他的作用是将图像送入DDR中做3帧缓存再读出显示,目的是匹配输入输出的时钟差和提高输出视频质量,关于FDMA,请参考我之前的博客,博客地址:点击直接前往

视频输出

视频从FDMA读出后,经过VGA时序模块和HDMI发送模块后输出显示器,代码位置如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
VGA时序配置为1280X720,HDMI发送模块采用verilog代码手写,可以用于FPGA的HDMI发送应用,关于这个模块,请参考我之前的博客,博客地址:点击直接前往

5、vivado工程1–>2路SFP传输

开发板FPGA型号:Xilinx–Artix7–xc7a35tfgg484-2;
开发环境:Vivado2019.1;
输入:ov5640摄像头,分辨率1280x720@60Hz;
输出:HDMI显示器;
应用:2路SFP光口GTP aurora 8b/10b编解码视频传输;
工程Block Design如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
工程代码架构如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
综合编译完成后的FPGA资源消耗和功耗预估如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理

6、vivado工程2–>1路SFP传输

开发板FPGA型号:Xilinx–Artix7–xc7a35tfgg484-2;
开发环境:Vivado2019.1;
输入:ov5640摄像头,分辨率1280x720@60Hz;
输出:HDMI显示器;
应用:1路SFP光口GTP aurora 8b/10b编解码视频传输;
工程Block Design如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
工程代码架构如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
综合编译完成后的FPGA资源消耗和功耗预估如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理

6、上板调试验证

光纤连接

工程1:2路SFP传输的光纤接法如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
工程2:1路SFP传输的光纤接法如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理

静态演示

下面以工程1:2路SFP传输为例展示输出效果:
当GTP运行1G线速率时输出如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
当GTP运行2G线速率时输出如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
当GTP运行4G线速率时输出如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理
当GTP运行5G线速率时输出如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理

动态演示

经过我的认真对比发现,GTP运行4G线速率时,输出视频质量最高,下面展示GTP运行4G线速率时的短视频;

GTP_OV5640

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

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持,FPGA GT 高速接口,菜鸟FPGA图像处理专题,菜鸟FPGA GT 高速接口,fpga开发,GTP,aurora,OV5640,图像处理文章来源地址https://www.toymoban.com/news/detail-701607.html

到了这里,关于FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Aurora8B10B(二) 从手册和仿真学习Aurora8B10B

    在上篇文章中,主要结合IP配置界面介绍了一下Aurora8B10B,这篇文章将结合文档来学习一下Aurora8B10B内部的一些细节 和 相关的时序吧。文档主要是参考的是这个 pg046-aurora-8b10b-en-us-11.1 在手册上,对Aurora8B10B的内部并没有做非常信息的说明,所以我们也不用纠结的特别深入,大

    2024年02月20日
    浏览(29)
  • 【FPGA】摄像头模块OV5640

    开发板:正点原子的达芬奇开发板(或MicroPhase的Z7-Lite 7020开发板) FPGA型号:XC7A35TFGG484-2(或XC7Z020CLG400-2) Vivado版本:2020.2 参考课程链接:正点原子手把手教你学FPGA-基于达芬奇开发板 A7 OV5640模块:正点原子ATK-OV5640   OV5640是OV(OMNIVISION)公司设计的一款CMOS图像传感器,

    2024年03月21日
    浏览(35)
  • Aurora8B10B(一) 从IP配置界面学习Aurora

    哈喽,大家好,好久没有给大家写FPGA技术的文章,是不是已经忘记我是做FPGA的啦,O(∩_∩)O哈哈~。 这里将会给大家分享我学习到的第一个高速接口Aurora8B10B,有点复杂,但不是特别复杂,对于第一次接触到高速接口的朋友来说,难点在于细节的把控上,由于资料并不是那么

    2024年01月23日
    浏览(26)
  • FPGA 以太网传输ov5640视频

    使用 DFZU4EV MPSoC 开发板及双目 OV5640 摄像头其中一个摄像头实现图像采集,并通过开发板上的以太网接口发送给上位机实时显示。 时钟模块用于为 I2C 驱动模块、以太网顶层模块和开始传输控制模块提供驱动时钟;I2C 驱动模块和 I2C 配置模块用于初始化 OV5640 图像传感器;摄像

    2024年04月10日
    浏览(43)
  • 2.aurora 8b10b ip核说明

    因为图中很多信号都是用的总线接口,这里我们从核里的顶层文件来看每个信号的使用 1.reset:Aurora 8B10B IP的复位信号,高有效,如果要复位,至少保持6个时钟周期的高电平 2.gt_reset:GT接口的复位信号,高有效,至少保持6个时钟周期的高电平,注意如果gt在复位过程中,user_c

    2024年02月08日
    浏览(24)
  • Aurora 8b/10b AXI4-ST回环测试

            Aurora 8b/10b,官方提供了demo工程,但是数据生成模块、Aurora IP核、数据校验模块之间并不是直接使用AXI4-ST总线通信,本文会将demo工程进行相关优化修改,并将优化修改后的demo工程进行仿真、分析、说明:         例化Aurora 8b10b IP核,lane的数据位宽选2字节,速率

    2024年02月09日
    浏览(25)
  • MIPI摄像头工程=7系列FPGA + OV5640(MIPI) + 15 分钟 + VITIS

    硬件 Spartan-7 SP701 FPGA 7系列FPGA+电阻网络实现的MIPI接口 OV5640 MIPI接口 软件 AMD Vivado 2020 版本以上 AMD Vitis 2020 MIPI 接口现在非常流行,国产FPGA目前基本都带MIPI接口,而AMD-Xilinx是从U+系列开始支持MIPI电平,从国内使用情况来看,7系列FPGA是使用最广的器件,所以这次使用的FPGA是

    2024年02月08日
    浏览(33)
  • FPGA2-采集OV5640乒乓缓存后经USB3.0发送到上位机显示

    基于特权A7系列开发板,采用OV5640摄像头实时采集图像数据,并将其经过USB3.0传输到上位机显示。这是验证数据流能力的很好的项目。其中,用到的软件版本,如下表所示,基本的硬件情况如下。该项目对应FPGA工程源码,qt工程源码,以及USB固件的下载地址 软件 版本 QT 5.15

    2024年02月15日
    浏览(29)
  • FPGA 多路视频处理:图像缩放+视频拼接显示,OV5640采集,提供2套工程源码和技术支持

    FPGA高端项目:Xilinx Kintex7系列FPGA 多路视频缩放拼接 工程解决方案 ov5640版本 提供4套工程源码+技术支持 没玩过图像缩放和视频拼接都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。本文使用Xilinx的Kintex7系列FPGA实现多路视频缩放拼接方案,视频

    2024年02月08日
    浏览(35)
  • FPGA基于RIFFA实现PCIE采集ov5640图像传输,提供工程源码和QT上位机

    PCIE是目前速率很高的外部板卡与CPU通信的方案之一,广泛应用于电脑主板与外部板卡的通讯,PCIE协议极其复杂,想要掌握不容易,所以Xilinx和Altera等FPGA厂商直接推出了相关IP供用户使用,比如Xilinx的XDMA,这种IP直接集成了PCIE通信的所有内核资源,并已封装为AXIS接口,用户在

    2023年04月09日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包