FPGA采集CameraLink相机Base模式解码输出,附带工程源码和技术支持

本文详细介绍了使用FPGA进行CameraLink相机Base模式视频解码,通过LVDS视频解码、VDMA视频缓存、DDR3存储及HDMI输出的实现过程。该方案适用于学术研究和工程开发,提供了完整工程代码与技术支持。
摘要由CSDN通过智能技术生成

1、前言

FPGA实现CameraLink视频编解码目前有两种方案:
一是使用专用编解码芯片,比如典型的DS90CR287;另一种方案是使用FPGA实现编解码,利用FPGA的serdes资源实现解串,优点是合理利用了FPGA资源,serdes资源不用白不用,缺点是操作难度大一些,对FPGA水平要求较高。

本文详细描述了FPGA采集CameraLink相机Base模式解码输出的实现设计方案,思路是这样的,CameraLink相机输入到FPGA板子,FPGA使用内部逻辑资源实现LVDS视频解码,解析出像素时钟、行同步信号、场同步信号、数据有效信号、以及像素数据,然后将视频转为Xilinx的AXI4-Sream的视频流,经VDMA送入DDR3缓存,然后读取出视频再经过AXI4-Sream to Video Out
通过HDMI接口输出视频,这是Xilinx图像处理常用的套路,可谓相当精巧的方案,呵呵。。。

工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

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

2、CameraLink协议基础

关于这部分,网上有很多博主解释过,我找了几篇推荐兄弟们去学习理论知识:
第一篇链接:点击直接前往
第二篇链接,这是我之前写的:点击直接前往

3、目前我已有的CameraLink收发工程

我的CameraLink视频专栏有很多FPGA的CaeraLink视频编解码方案,既有CaeraLink接收,也有CaeraLink发送,既有CaeraLink普通输出显示,也有CaeraLink视频拼接输出等等,专栏链接如下:欢迎前往查看:点击直接前往

4、设计方案

详细设计方案如下:
在这里插入图片描述

输入CameraLink相机

CameraLink相机型号为北京微视的RS-A5241-CC107-S00型彩色 CameraLink 相机,该相机可通过串口配置为Base模式或者Full模式,本工程使用的是Base模式;分辨率为全幅面 25602048 下,帧率可达 107fps;本工程配置为12801024;

LVDS视频解码

LVDS视频解码模块设计框图如下:
在这里插入图片描述
CameraLink解码模块在Base模式时输入信号如下:
1路差分时钟,4路差分数据;利用Xilinx官方的IDELAY和ISERDES源语实现串并转换;
IDELAY源语的作用是延时,以便于FPGA采样时的CameraLink视频数据是稳定的;
ISERDES源语的作用是实现CameraLink视频数据的串并转换;
整个CameraLink解码模块严格按照设计框图实现,主要是调用源语,所以没啥可讲的,具体看代码,代码量很少;
CameraLink解码模块参数配置如下:
在这里插入图片描述
这两个参数可自由配置,以适应CameraLink相机的不同模式;具体配置如下:
在这里插入图片描述

视频缓存

解码后的视频转为Xilinx的AXI4-Sream的视频流,经VDMA送入DDR3缓存,然后读取出视频再经过AXI4-Sream to Video Out通过HDMI接口输出视频,这是Xilinx图像处理常用的套路;整个视频缓存架构以VDMA为核心,全部调用Xilixn的IP实现,只需配置IP即可使用,这里的配置既包括UI界面的配置,也包括软件的配置,由于本工程采用Kintex7位平台,所以调用MicroBlaze软核运行SDK来配置这些IP;

视频输出

这里调用了Video Mixer这个IP,因为CameraLink相机配置为12801024,输出分辨率为19201080,所以用Video Mixer来做19201080的黑色背景,再其上叠加12801024的相机视频;
调用AXI4-Sream to Video Out输出VGA时序,板载一颗sil9022芯片完成VGA转TMDS最终由HDMI接口输出显示器显示;

软件配置

所以调用MicroBlaze软核运行SDK来配置这些IP、配置CameraLink相机、配置sil9022芯片、以及完成和上位机的人机交互;
调用一个AXI-UART完成和上位机的人机交互,也就是上位机通过串口调试助手给程序发指令;
调用一个AXI-UART完成CameraLink相机的配置,本工程配置为1280*1024分辨率,Base模式;
调用一个AXI-IIC完成sil9022芯片的配置;

5、vivado工程详解

开发板FPGA型号:xc7k325tffg676-2;
开发环境:vivado2019.1;
输入:CameraLink相机;Base模式;12801024分辨率;
输出:HDMI,1920
1080分辨率;

Bolck Design设计如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
综合后的工程代码架构如下:
在这里插入图片描述
综合编译完成后的FPGA资源消耗和功耗预估如下:
在这里插入图片描述
SDK软件程序架构如下:
在这里插入图片描述

6、上板调试验证

由于CamerLink转接板不方便出境,仅展示FPGA板子及对应的CamerLink转接板接口,如下:
在这里插入图片描述
工程的使用和配置过程较为复杂,这里感觉步骤太多了写不下,所以我专门写了一篇使用调试手册的文档,放在了资料包里,路径如下:
在这里插入图片描述
注意!!!
注意!!!
注意!!!
下载本工程后,请将文件放到一个最短路径的文件夹里去,因为路径太长可能导致工程编译失败;还有,本工程试用了HLS的IP核,在编译前请更新官方的补丁文件,不然综合时会报错,更新官方的补丁文件的文件下载和更新方法都写在了上图的文档里,记得仔细阅读;
输出效果如下:
在这里插入图片描述

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

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

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

9527华安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值