Artix7系列FPGA实现SDI视频编解码+UDP以太网传输,基于GTP高速接口,提供工程源码和技能支持
Artix7系列FPGA实现SDI视频编解码+UDP以太网传输,基于GTP高速接口,提供工程源码和技能支持1、媒介
现在FPGA实现SDI视频编解码有两种方案:一是利用专用编解码芯片,比如典范的吸收器GS2971,发送器GS2972,长处是简朴,比如GS2971吸收器直接将SDI解码为并行的YCrCb422,GS2972发送器直接将并行的YCrCb422编码为SDI视频,缺点是本钱较高,可以百度一下GS2971和GS2972的代价;另一种方案是利用FPGA逻辑资源部实现SDI编解码,利用Xilinx系列FPGA的GTP/GTX资源实现解串,利用Xilinx系列FPGA的SMPTE SDI资源实现SDI编解码,长处是公道利用了FPGA资源,GTP/GTX资源不消白不消,缺点是操纵难度大一些,对FPGA开辟者的技能水平要求较高。故意思的是,这两种方案在本博这里都有对应的办理方案,包罗硬件的FPGA开辟板、工程源码等等。
工程概述
本计划基于Xilinx的Artix7系列FPGA开辟板实现SDI视频编解码+图像缩放+UDP以太网传输,输入源为一个3G-SDI相机大概HDMI转3G-SDI盒子,也可以利用HD-SDI大概SD-SDI相机,由于本计划是三种SDI视频自顺应的;同轴的SDI视频通过同轴线毗连到FPGA开辟板的BNC座子,然后同轴视频颠末板载的Gv8601a芯片实现单端转差分平静衡EQ的功能;然后差分SDI视频信号进入FPGA内部的GTP高速资源,实现数据高速串行到并行的转换,本博称之为解串;解串后的并行视频再送入Xilinx系列FPGA特有的SMPTE SD/HD/3G SDI IP核,举行SDI视频解码操纵并输出BT1120视频,至此,SDI视频解码操纵已经完成,可以举行通例的图像处置惩罚操纵了;
本计划的目标是做图像缩放后再以UDP以太网输出解码的SDI视频,针对现在市面上的主流项目需求,本博计划了基于传统PHY芯片(B50610)的以太网输出方式;起首对解码BT1120视频举行转RGB和图像缓存操纵和图像缩放操纵;图像缩放方案采取纯verilog方案将输入的1920x1080视频缩放为1280x720;再利用BT1120转RGB模块实现视频格式转换;再利用本博常用的FDMA图像缓存架构实现图像3帧缓存,缓存介质为板载的DDR3;图像从DDR3读出后,进入UDP视频发送模块,对视频举行自界说协议编码;然后送入UDP协议栈举行UDP以太网帧格式编码;然后输出给MAC层,再输出给物理层,末了通过网线输出给PC上位机;PC端上位机(QT)吸收网络视频并表现图像;本博客提供1套工程源码,详情如下:
工程源码1
开辟板FPGA型号为Xilinx–>Xilinx-Artix7-100T–xc7a100tfgg484-2;输入视频为3G-SDI相机大概HDMI转3G-SDI盒子,输入分辨率为1920x1080@60Hz,输入视频颠末板载的Gv8601a芯片实现单端转差分平静衡EQ后送入FPGA;再颠末GTP将SDI视频解串为并行数据;再颠末SMPTE SDI IP核将SDI解码BT1120数据;再颠末BT1120转RGB模块将BT1120转换为RGB888视频;再颠末自研的纯verilog实现的、支持恣意比例缩放的图像缩放模块,将输入视频由1920x1080缩放为1280x720;再颠末自研的FDMA图像缓存方案将视频写入DDR3做三帧缓存;再颠末UDP视频发送模块,对视频举行自界说协议编码;再颠末UDP协议栈举行UDP以太网帧格式编码;再颠末Xilinx官方的Tri Mode Ethernet MAC实现MAC数据发送,输出RGMII接口数据;再颠末板载的B50610芯片后以RJ45网口输出;PC端运行QT上位机实时吸收视频数据并表现出来;该工程实用于SDI转网络(PHY芯片方案)输出场景;
免责声明
本工程及其源码即有自己写的一部门,也有网络公开渠道获取的一部门(包罗CSDN、Xilinx官网、Altera官网等等),若大佬们以为有所得罪,请私信品评教诲;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,克制用于商业用途,若由于读者或粉丝自身缘故因由用于商业用途所导致的法律标题,与本博客及博主无关,请审慎利用。。。
2、干系方案保举
本博已有的 SDI 编解码方案
我的博客主页开设有SDI视频专栏,内里满是FPGA编解码SDI的工程源码及博客先容;既有基于GS2971/GS2972的SDI编解码,也有基于GTP/GTX资源的SDI编解码;既有HD-SDI、3G-SDI,也有6G-SDI、12G-SDI等;专栏所在链接如下:
点击直接前去
本博已有的以太网方案
现在我这里有大量UDP协议的工程源码,包罗UDP数据回环,视频传输,AD收罗传输等,也有TCP协议的工程,对网络通讯有需求的兄弟可以去看看,以下是专栏所在:
直接点击前去
本博已有的FPGA图像缩放方案
我的主页现在有FPGA图像缩放专栏,改专栏收录了我现在手里已有的FPGA图像缩放方案,从实现方式分类有基于HSL实现的图像缩放、基于纯verilog代码实现的图像缩放;从应用上分为单路视频图像缩放、多路视频图像缩放、多路视频图像缩放拼接;从输入视频分类可分为OV5640摄像头视频缩放、SDI视频缩放、MIPI视频缩放等等;以下是专栏所在:
点击直接前去
本方案的缩放应用
本方案有缩放版本的应用,只做SDI视频编解码,之前专门写过一篇博客,博客所在链接如下:
点击直接前去
本方案在Xilinx–Kintex系列FPGA上的应用
本方案在Xilinx–Kintex系列FPGA上的也有应用,之前专门写过一篇博客,博客所在链接如下:
点击直接前去
本方案在Xilinx–Zynq系列FPGA上的应用
本方案在Xilinx–Zynq系列FPGA上的也有应用,之前专门写过一篇博客,博客所在链接如下:
点击直接前去
3、详细计划方案
计划原理框图
计划原理框图如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNTIwYjBjOTY3NzhhNGEzMWFiMzI3NjE5OTE1M2IxZTcucG5n
SDI 输入装备
SDI 输入装备可以是SDI相机,代码兼容HD/SD/3G-SDI三种模式;SDI相机相对比力贵,预算有限的朋侪可以思量用HDMI转SDI盒子模拟SDI相机,这种盒子某宝一百块左右;当利用HDMI转SDI盒子时,输入源可以用条记本电脑,即用条记本电脑通过HDMI线毗连到HDMI转SDI盒子的HDMI输入接口,再用SDI线毗连HDMI转SDI盒子的SDI输出接口到FPGA开辟板,如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYzExZTFkZDc1Y2UxYjJlMzdjZjc3YjFkZWExNmJkYzMucG5n
Gv8601a 均衡器
Gv8601a芯片实现单端转差分平静衡EQ的功能,这里选用Gv8601a是由于鉴戒了了Xilinx官方的方案,固然也可以用其他型号器件。Gv8601a均衡器原理图如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMWEyYmNkNWI3YWNiMTU3ZGY2NGY1NGViYjNjYzhiNTkucG5n
GTP 高速接口–>解串与串化
本计划利用Xilinx特有的GTP高速信号处置惩罚资源实现SDI差分视频信号的解串与串化,对于SDI视频吸收而言,GTP起到解串的作用,即将输入的高速串行的差分信号解为并行的数字信号;对于SDI视频发送而言,GTP起到串化的作用,即将输入的并行的数字信号串化为高速串行的差分信号;GTP的利用一样平常必要例化GTP IP核,通过vivado的UI界面举行设置,但本计划必要对SD-SDI、HD-SDI、3G-SDI视频举行主动辨认和自顺应处置惩罚,以是必要使得GTP具有动态改变线速率的功能,该功能可通过DRP接口设置,也可通过GTP的rate接口设置,以是不能利用vivado的UI界面举行设置,而是直接例化GTP的GTPE2_CHANNEL和GTPE2_COMMON源语直接利用GTP资源;别的,为了动态设置GTP线速率,还必要GTP控制模块,该模块参考了Xilinx的官方计划方案,具有动态监测SDI模式,动态设置DRP等功能;该方案参考了Xilinx官方的计划;GTP 解串与串化模块代码架构如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvOTdjMjYxMWNhYmZjNGM0NDk5OWFjNzFlOGNlYmIyNDAucG5n
SMPTE SD/HD/3G SDI IP核
SMPTE SD/HD/3G SDI IP核是Xilinx系列FPGA特有的用于SDI视频编解码的IP,该IP设置利用非常简朴,vivado的UI界面如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvZmNlMWQ1NDlkNzU2YzM0ZjJhYzkwMzE4OTNmNTk0YzUucG5n
SMPTE SD/HD/3G SDI IP核必须与GTP共同才气利用,对于SDI视频吸收而言,该IP吸收来自于GTP的数据,然后将SDI视频解码为BT1120视频输出,对于SDI视频发送而言,该IP吸收来自于用户侧的的BT1120视频数据,然后将BT1120视频编码为SDI视频输出;该方案参考了Xilinx官方的计划;SMPTE SD/HD/3G SDI IP核代码架构如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMjAwZWYwODRhYzgyNDg0YThmZTQwNTZkM2MyMzMyYjEucG5n
BT1120转RGB
BT1120转RGB模块的作用是将SMPTE SD/HD/3G SDI IP核解码输出的BT1120视频转换为RGB888视频,它由BT1120转CEA861模块、YUV422转YUV444模块、YUV444转RGB888三个模块构成,该方案参考了Xilinx官方的计划;BT1120转RGB模块代码架构如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMGY2YzJjYjdlMTg0MzFjMmU4YTZmNjMxZDNmNDk3MTgucG5n
纯Verilog图像缩放模块详解
工程源码1、2的图像缩放模块利用纯Verilog方案,功能框图如下,由跨时钟FIFO、插值+RAM阵列构成,跨时钟FIFO的目标是办理跨时钟域的标题,比如从低分辨率视频放大到高分辨率视频时,像素时钟肯定必要变大,这是就必要异步FIFO了,插值算法和RAM阵列详细负责图像缩放算法层面的实现;
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNTc1NjNkN2NhZDc3NzIyYjVhNTAzMzhkYTAwZjliNDkucG5n
插值算法和RAM阵列以ram和fifo为核心举行数据缓存和插值实现,计划架构如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvN2U4YjBiNGFiNzllMGMyOTY5YThmOGExNjg3ZGY5MjcucG5n
图像缩放模块代码架构如下:模块的例化请参考工程源码的顶层代码;
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYWE3NmJjZWUzMWYyN2IyM2U5MjliNGJkZTlmZjg4MTYucG5n
图像缩放模块FIFO的选择可以调用工程对应的vivado工具自带的FIFO IP核,也可以利用纯verilog实现的FIFO,可通过接口参数选择,图像缩放模块顶层接口如下:
module helai_video_scale #(
//---------------------------Parameters----------------------------------------
parameter FIFO_TYPE = "xilinx", // "xilinx" for xilinx-fifo ; "verilog" for verilog-fifo
parameter DATA_WIDTH = 8 , //Width of input/output data
parameter CHANNELS = 1 , //Number of channels of DATA_WIDTH, for color images
parameter INPUT_X_RES_WIDTH= 11 //Widths of input/output resolution control signals
)(
input i_reset_n , // 输入--低电平复位信号
input i_src_video_width , // 输入视频--即缩放前视频的宽度
input i_src_video_height, // 输入视频--即缩放前视频的高度
input i_des_video_width , // 输出视频--即缩后前视频的宽度
input i_des_video_height, // 输出视频--即缩后前视频的高度
input i_src_video_pclk, // 输入视频--即缩前视频的像素时钟
input i_src_video_vs , // 输入视频--即缩前视频的场同步信号,必须为高电平有效
input i_src_video_de , // 输入视频--即缩前视频的数据有效信号,必须为高电平有效
input i_src_video_pixel , // 输入视频--即缩前视频的像素数据
input i_des_video_pclk, // 输出视频--即缩后视频的像素时钟,一般为写入DDR缓存的时钟
output o_des_video_vs , // 输出视频--即缩后视频的场同步信号,高电平有效
output o_des_video_de , // 输出视频--即缩后视频的数据有效信号,高电平有效
output o_des_video_pixel // 输出视频--即缩后视频的像素数据
);
FIFO_TYPE选择原则如下:
1:总体原则,选择"xilinx"利益大于选择"verilog";
2:当你的FPGA逻辑资源不敷时,请选"xilinx";
3:当你图像缩放的视频分辨率较大时,请选"xilinx";
4:当你的FPGA没有FIFO IP大概FIFO IP快用完了,请选"verilog";
5:当你向自学一下异步FIFO时,,请选"verilog";
6:差异FPGA型号对应的工程FIFO_TYPE参数不一样,但选择原则一样,详细参考代码;
2种插值算法的整合与选择
本计划将常用的双线性插值和邻域插值算法融合为一个代码中,通过输入参数选择某一种算法;
详细选择参数如下:
inputwire i_scaler_type //0-->bilinear;1-->neighbor
通过输入i_scaler_type 的值即可选择;
输入0选择双线性插值算法;
输入1选择邻域插值算法;
代码里的设置如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMjMzNWYzZjIyZGNhY2FhZGMxYzVhYTMxODMxOTFjODcucG5n
纯Verilog图像缩放模块利用
图像缩放模块利用非常简朴,顶层代码里设置了四个参数,举比方下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNzA1YWY0NjQxYzU1OTlmMzkzYTY3NWZiNmEwNWVmYjgucG5n
上图视频通过图像缩放模块但不举行缩放操纵,旨在把握图像缩放模块的用法;如果必要将图像放大到1080P,则修改为如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNWZlN2Q4ZGJjYmM3MzFiZTgyN2E5MzcyMTYzZjFhODUucG5n
固然,必要修改的不光仅这一个地方,FDMA的设置也必要相应修改,详情请参考代码,但我想要证明的是,图像缩放模块利用非常简朴,你都不必要知道它内部详细怎么实现的,上手就能用;
图像缓存
利用本博常用的的FDMA图像缓存架构;缓存介质为DDR3;FDMA图像缓存架构由FDMA、FDMA控制器、缓存帧选择器构成;图像缓存利用Xilinx vivado的Block Design计划,如下图:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNmI3ZWI5MGVhNmY3ZTk2ODA1YmYxMjhiNTU1YzczYTcucG5n
关于FDMA更详细的先容,请参考我之前的博客,博文链接如下:
点击直接前去
必要留意的是,为了顺应UDP视频传输,这里的FDMA已被我修改,和以往版本差异,详细参考代码;
UDP协议栈
本UDP协议栈利用UDP协议栈网表文件,该协议栈现在并不开源,只提供网表文件,虽看不见源码但可正常实现UDP通讯,但不影响利用,该协议栈带有用户接口,使得用户无需关心复杂的UDP协议而只需关心简朴的用户接口时序即可操纵UDP收发,非常简朴;协议栈架构如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMThiZTI0ZDEzNjAzNmVkY2U5ZWJlNTI3NDkwMDY4ZWEucG5n
协议栈性能表现如下:
1:支持 UDP 吸收校验和查验功能,暂不支持 UDP 发送校验和天生;
2:支持 IP 首部校验和的天生和校验,同时支持 ICMP 协议中的 PING 功能,可吸收并相应同一个子网内部装备的 PING 哀求;
3:可主动发起或相应同一个子网内装备的 ARP 哀求,ARP 收发完全自顺应。ARP 表可生存同一个子网内部256 个 IP 和 MAC 所在对;
4:支持 ARP 超时机制,可检测所需发送数据包的目标 IP 所在是否可达;
5:协议栈发送带宽利用率可达 93%,高发送带宽下,内部仲裁机制包管 PING 和 ARP 功能不受任何影响;
6:发送过程不会造成丢包;
7:提供64bit位宽AXI4-Stream情势的MAC接口,可与Xilinx官方的千兆以太网IP核Tri Mode Ethernet MAC,以及万兆以太网 IP 核 10 Gigabit Ethernet Subsystem、10 Gigabit Ethernet MAC 共同利用;
有了此协议栈,我们无需关心复杂的UDP协议的实现了,直接调用接口即可利用。。。
本UDP协议栈用户接口发送时序如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNGQyZTU3NjYzNWY2MjdlZDAzYzcyZjQ3NzAzMTk1ZTEucG5n
本UDP协议栈用户接口吸收时序如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNjJiZTM2NGE0YTBlYjkwZjdiZmNjZWY1NDUyOGRlODgucG5n
UDP视频发送
UDP视频发送实现UDP视频数据的组包,UDP数据发送必须与QT上位机的继续步伐划一,上位机界说的UDP帧格式包罗帧头个UDP数据,帧头界说如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMTE5ZjlkODhiZGFiNTk2NGJhZDg1MTcwY2JiZjVhMDgucG5n
FPGA端的UDP数据组包代码必须与上图的数据帧格式对应,否则QT无法剖析,代码中界说了数据组包状态机以及数据帧,如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMWNlYThlY2E2YzdlNDIzMjRhNGQwNTE3YWE5OTM3ODYucG5n
别的,由于UDP发送是64位数据位宽,而图像像素数据是24bit位宽,以是必须将UDP数据重新组合,以包管像素数据的对齐,这部门是整个工程的难点,也是全部FPGA做UDP数据传输的难点;
UDP协议栈数据发送
UDP协议栈具有发送和吸收功能,但这里仅用到了发送,此部门代码架构如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNWNhNzE2NTgwNGQ2OTRhYmJmZTZjZDNlZGZkYzNhYzAucG5n
UDP协议栈代码组我已经做好,用户可直接拿去利用;
MAC数据缓冲FIFO组
这里对代码中用到的数据缓冲FIFO组做如下表明:
由于 UDP IP 协议栈的 AXI-Stream 数据接口位宽为 64bit,而 Tri Mode Ethernet MAC 的 AXI-Stream数据接口位宽为 8bit。因此,要将 UDP IP 协议栈与 Tri Mode Ethernet MAC 之间通过 AXI-Stream 接口互联,必要举行时钟域和数据位宽的转换。实现方案如下图所示:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYjFiNjQ0ODg2YTQ4NzM4ZTAyYjlkZWE0OGE0NWJkZDgucG5n
收发路径(本计划只用到了发送)都利用了2个AXI-Stream DATA FIFO,通过此中1个FIFO实现异步时钟域的转换,1个FIFO实
现数据缓冲和同步Packet mode功能;由于千兆速率下Tri Mode Ethernet MAC的AXI-Stream数据接口同步时钟信号为125MHz,此时,UDP协议栈64bit的AXI-Stream数据接口同步时钟信号应该为125MHz/(64/8)=15.625MHz,因此,异步
AXI-Stream DATA FIFO两端的时钟分别为125MHz(8bit),15.625MHz(64bit);UDP IP协议栈的AXI-Stream接口颠末FIFO时钟域转换后,还必要举行数据数据位宽转换,数据位宽的转换通过AXI4-Stream Data Width Converter完成,在吸收路径中,举行 8bit 到 64bit 的转换;在发送路径中,举行 64bit 到 8bit 的转换;
IP所在、端标语的修改
UDP协议栈留出了IP所在、端标语的修改端供词用户自由修改,位置如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvZWMzODUyZmI5ZmMwMTdjYTdiN2QyNTM5YmJlM2NjNWQucG5n
以太网网口输出方案–>Tri Mode Ethernet MAC
PHY芯片网络输出架构以Tri Mode Ethernet MAC为核心,以PHY芯片为载体,长处是FPGA逻辑计划算为简朴,缺点是硬件计划算为复杂,硬件本钱会相应进步;本计划采取B50610芯片,工作于延时模式,RGMII接口;关于该方案的以太网输出详细计划文档,请参考我之前的博客,博客链接如下:
直接点击前去
Tri Mode Ethernet MAC告急是为了适配PHY芯片,由于后者的输入接口是GMII,而Tri Mode Ethernet MAC的输入接口是AXIS,输出接口是GMII,Tri Mode Ethernet MAC设置如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNmUzOThlNzVkNWIyYjM0YjFiNGYxNjM1YWQ0YTRjM2UucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYTFlNDhlYmEyYzZmM2Q1YmQwMmJhZTc4MDg2ZjFjNmQucG5n
提供Tri Mode Ethernet MAC利用教程和移植教程,如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNjliNDhhZTYzZGI2NDhkNWEwYzExYjJjZGViODY2NTUucG5n
QT上位机和源码
PC端吸收网络视频,并运行QT上位机吸收表现视频;我们提供和UDP通讯协议相匹配的QT抓图表现上位机及其源代码,目次如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZGEzYTlmMjU0NTFlNDUyZWFiOWJlZjY2N2RiZjFkNWIucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvOGUxMGViMTY1NWI4OTk3ZDViY2Q4ZDQ5NTFhNTE2YWMucG5n
我们的QT现在仅支持1280x720分辨率的视频抓图表现,但同时预留了1080P接口,对QT开辟感爱好的朋侪可以实验修改代码以顺应1080P,由于QT在这里只是验证工具,不是本工程的重点,以是不再过多赘述;
工程源码架构
本博客提供1套工程源码,vivado Block Design计划如下,其他工程与之类似,Block Design计划为图像缓存架构的部门:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvOGQ2NTVlYTU3NjNlNDM3ZTg2OWMxOWQyYzgzZGVmZmQucG5n
工程源码1工程源码架构如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNmEyMzhlNTcyZTFjNDJhN2E2MDgxMzFiZmVlN2RlYTcucG5n
4、工程源码1详解–>PHY芯片以太网输出方案
开辟板FPGA型号:Xilinx-Artix7-100T–xc7a100tfgg484-2;
开辟环境:Vivado2019.1;
输入:3G-SDI相机或HDMI转SDI盒子,分辨率1920x1080@60Hz;
输出:RJ45网口,分辨率1280x720@60Hz;
SDI视频解串方案:Xilinx–GTP高速接口解串;
SDI视频解码方案:Xilinx–SMPTE SD/HD/3G SDI解码;
图像缩放方案:自研纯Verilog图像缩放;
图像缩放实例:1920x1080缩放到1280x720;
图像缓存方案:自研FDMA方案;
图像缓存介质:DDR3;
以太网输出方案:PHY芯片以太网输出;
PHY芯片:B50610,延时模式,RGMII接口;
PC端吸收方案:QT上位机;
工程作用:此工程目标是让读者把握Xilinx–Artix7低端系列FPGA实现SDI转网口的计划本领,以便可以或许移植和计划自己的项目;
工程Block Design和工程代码架构请参考第3章节的《工程源码架构》末节内容;
工程的资源斲丧和功耗如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYTRkMjUyMDQ0YTQ0NDAwZWJjMTg2YmQyYTJhYzkxZmQucG5n
5、工程移植分析
vivado版本差异等处置惩罚
1:如果你的vivado版本与本工程vivado版本划一,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则必要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本大概更高版本;
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYmM0OGFjOWZjZmYzY2NmNzVhZmMzYjhjOTM5MDM5NDMucG5n
3:如果你的vivado版本高于本工程vivado版本,办理如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNTMzOTc2NTg1NGQzMzg5NWZkMWVmNWYzMmI3YzczMTYucG5n
打开工程后会发现IP都被锁住了,如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMmFjNjM5OTlkODQyYTRjNmZiMWQ3MzgwZDZjYTVlOTcucG5n
此时必要升级IP,操纵如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvODliYTMxNGYxMTA4NTBhZjE1MDU5N2JhMmJjNTNiYzUucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvOTI3ZGQwYmQ4N2NhM2Q0ZTMxZmY1ZGZkOTE5MTVjNjUucG5n
FPGA型号差异等处置惩罚
如果你的FPGA型号与我的差异等,则必要更改FPGA型号,操纵如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvYmZkNGE0MzEyZjdhMDdkOTZkYmRmMzUyY2E3Y2RmNTYucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvNjJlNzg0MmQ4ZjQ3MDk3ZTI1MWVhYjA1MzEyNzlmNmMucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMWEwNTZlZWZmYjhmZDBjMGU1OTc1NTUyMDk3M2ViMmMucG5n
更改FPGA型号后还必要升级IP,升级IP的方法前面已经报告了;
其他留意事项
1:由于每个板子的DDR不肯定完全一样,以是MIG IP必要根据你自己的原理图举行设置,以致可以直接删掉我这里原工程的MIG并重新添加IP,重新设置;
2:根据你自己的原理图修改引脚束缚,在xdc文件中修改即可;
3:纯FPGA移植到Zynq必要在工程中添加zynq软核;
6、上板调试验证
预备工作
必要预备的东西如下:
FPGA开辟板;
SDI摄像头或HDMI转SDI盒子;
网线;
我的开辟板了毗连如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvOWQwOTFkODFlN2NiNDc2OWE1NTVhMWYxNjcxMjMxZGUuanBlZyNwaWNfY2VudGVy
QT上位机设置如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvZDc5YzQyYzM3MGZjNjM0Njc3NDQyMGE3ODIzM2UzZGIucG5n
输出视频演示
以工程1,3G-SDI输入图像缩放转网络输出为例,输出如下:
SDI-UDP
7、福利:工程代码的获取
福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,大概文章末了的V手刺。
网盘资料如下:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYWMyNmFhZGQyOGYyNGMyYmFhZjZhYjRkNWJhZWMzZjQucG5n
别的,有很多朋侪给本博主提了很多意见和发起,渴望能丰富服务内容和选项,由于差异朋侪的需求不一样,以是本博主还提供以下服务:
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9ibG9nX21pZ3JhdGUvMzgyMmI1MWVlZGQ4ZTNiZjkwZGJlZDczN2FjNGEyZTEucG5n
页:
[1]