基于Camera Link和PCIe DMA的多通道视频采集和显示系统
基于Camera Link和PCIe DMA的多通道视频采集和显示系统
在主机端PCIe驱动的控制和调度下,视频采集与显示系统可以同时完成对多个Camera Link接口视频采集以及Camera Link接口视频回放驱动工作,既可采用行缓存机制(无需帧缓存,无需DDR),也可采用帧缓存机制(使用DDR),使用PCIe接口和主机进行数据的传输,设备端内嵌多通道DMA引擎完成多个DA数据的H2C(Host to Card)和AD数据的C2H(Card to Host)传输,支持MSI中断机制,完全释放主机/CPU/GPU采集&回放的密集任务量,特别适用于高速视频采集和显示的应用。
内核特性:
- 多种PCIe驱动:
a) Xilinx XDMA驱动,Windows和Linux版本
b) 自研驱动,Windows和Linux版本
- 每个通道的采集和回放DMA地址队列深度大于32
- 多通道DMA引擎,支持连续式DMA(CDMA)和链式DMA(SGDMA)
- 支持MSI中断机制,传统的寄存器读写
- 支持H2C(Host to Card)和C2H(Card to Host)的全双工数据传输
- 支持Camera Link接口的相机和显示器
- 支持DDR3-1600和DDR4-2400接口的内存颗粒或内存条
- 自适应PCIe链路速率:PCIe 1.0,PCIe 2.0,PCIe 3.0和PCIe 4.0和宽度:PCIe x1,PCIe x2,PCIe x4,PCIe x8,PCIe x16
- 支持Xilinx器件:Spartan-6,Virtex-5,Virtex-6,Artix-7,Kintex-7,Virtex-7,Kintex Ultrascale,Virtex Ultrascale
对外接口:
- PCIe接口
- DDR3/DDR4接口
- Camera Link接口
性能指标:
- PCIe 2.0 x4:DMA Read(C2H)速率大于1750MB/s,DMA Write(H2C)速率大于1710MB/s
- PCIe 2.0 x8:DMA Read(C2H)速率大于3490MB/s,DMA Write(H2C)速率大于3400MB/s
- PCIe 3.0 x8:DMA Read(C2H)速率大于6850MB/s,DMA Write(H2C)速率大于6800MB/s
- 64bit DDR3-1600,72bit DDR3-1600,64bit DDR4-2400,72bit DDR4-2400
- Camera Link:base,medium,full
资源使用:
1通道CDMA资源使用(XCKU060为例,PCIe 3.0 x8):
- LUTs:6265,FFs:14289,BRAM:80,PCIe:1
8通道CDMA资源使用(XC7K325为例,PCIe 2.0 x4):
- LUTs:14803,FFs:20712,BRAM:75,PCIe:1
8通道SGDMA资源使用(XC7K325为例,PCIe 2.0 x4):
- LUTs:19055,FFs:27529,BRAM:94,PCIe:1
8通道CDMA资源使用(XC7K325为例,PCIe 2.0 x8):
- LUTs:20235,FFs:29327,BRAM:55,PCIe:1
8通道SGDMA资源使用(XC7K325为例,PCIe 2.0 x8):
- LUTs:26432,FFs:38087,BRAM:55,PCIe:1
8通道CDMA资源使用(XCKU060为例,PCIe 3.0 x8):
- LUTs:18747,FFs:36805,BRAM:78,PCIe:1
8通道SGDMA资源使用(XCKU060为例,PCIe 3.0 x8):
- LUTs:25886,FFs:51406,BRAM:78,PCIe:1
可交付资料:
- 详细的用户手册
- Design File:Post-synthesis EDIF netlist or RTL Source
- Timing and layout constraints,Test or Design Example Project
- 技术支持:邮件,电话,现场,培训服务
联系方式:
Email:neteasy163z@163.com
视频采集与显示系统结构框图

系统结构描述:
Camera Link RX模块负责从相机采集视频,以AXIS接口输出到S2MM模块。
S2MM模块负责把采集到的视频写入预设的DDR4缓存区。
SGDMA模块负责把DDR4缓冲区的数据搬移到用户的采集缓冲区,或把用户回放缓冲区的数据搬移到DDR4缓冲区。
MM2S模块负责读取预设的DDR4缓存区的数据显示输出。
Camera Link TX模块接收MM2S输出的数据,显示到显示器。
Register Files模块用来配置以及控制S2MM和M2SS模块,并且返回这些模块的状态。
S2MM和M2SS的中断请求发送到Interrupt模块,发出MSI中断。
DDR4控制器完成对4GB-DDR4的读写访问,支持2400MHz主频,72-bit接口宽度,ECC。
PCIe Gen3 Integrated Endpoint Block实现PCIe协议规范,支持Gen 3,8-lane endpoint配置。
PCIe驱动采用WDF框架来开发,支持win7/win10操作系统,或者Linux操作系统。用户应用程序访问采集缓冲区可以获得采集数据,或者把回放数据传输到回放缓冲区进行回放。
基于Camera Link和PCIe DMA的多通道视频采集和显示系统的更多相关文章
- 基于PCIe DMA的多通道数据采集和回放IP
基于PCIe DMA的多通道数据采集和回放IP 在主机端PCIe驱动的控制和调度下,数据采集与回放IP Core可以同时完成对多个通道数据的采集以及回放驱动工作,既可采用行缓存机制(无需帧缓存,无需D ...
- 基于JESD204B和PCIe DMA的多通道数据采集和回放系统
基于JESD204B和PCIe DMA的多通道数据采集和回放系统 在主机端PCIe驱动的控制和调度下,数据采集与回放系统可以同时完成对多个JESD204B接口AD数据的采集以及JESD204B接口DA ...
- 基于PCIe的多路视频采集与显示子系统
基于PCIe的多路视频采集与显示子系统 1 概述 视频采集与显示子系统可以实时采集多路视频信号,并存储到视频采集队列中,借助高效的硬实时视频帧出入队列管理和PCIe C2H DMA引擎, ...
- dsp下基于双循环缓冲队列的视频采集和显示记录
对最近在设计的视频采集和显示缓冲机制做一个记录,以便以后使用. 视频采集和显示缓冲机制,其实是参考了Linux下v4L2的驱动机制,其采用输入多缓冲frame,输出多缓冲的切换机制.简单的就是ping ...
- 图像采集系统的Camera Link标准接口设计
高速数据采集系统可对相机采集得到的实时图像进行传输.实时处理,同时实现视频采集卡和计算机之间的通信.系统连接相机的接口用的是Camera Link接口,通过Camera Link接口把实时图像高速传输 ...
- 基于PCIe DMA的8通道视频采集&显示IP,兼容V4L2
基于PCIe DMA的8通道视频采集&显示IP,兼容V4L2 Video Capture&Display IP for V4L2 在主机端视频设备内核驱动V4L2 的控制和调度下,Vi ...
- 135-基于TMS320C6678、FPGA XC5VSX95T的2路Full模式Camera Link输入双目视觉处理平台
基于TMS320C6678.FPGA XC5VSX95T的2路Full模式Camera Link输入双目视觉处理平台 一.板卡概述 本板卡由我公司自主研发,基于CPCI架构,符合CPCI2.0标准,采 ...
- 134-基于TMS320C6678、FPGA XC5VSX95T的一路Full模式Camera Link图像理平台
基于TMS320C6678.FPGA XC5VSX95T的一路Full模式Camera Link图像理平台 一.板卡概述 该板卡采用TI公司新一代DSP TMS320C6678,结合FPGA,型号为X ...
- PCIE DMA实现
基于Spartan-6, Virtex-5/Virtex-6/Virtex-7/7 Series FPGA PCI Express Block Endpoint模块设计PCI Express Endp ...
随机推荐
- 使用dotnet-monitor分析在Kubernetes的应用程序:Sidecar模式
dotnet-monitor可以在Kubernetes中作为Sidecar运行,Sidecar是一个容器,它与应用程序在同一个Pod中运行,利用Sidecar模式使我们可以诊断及监控应用程序. 如下图 ...
- ruby 字符注音标签
<ruby/>标签下的文本可以注音,注音由一对<rt/>标签完成. <ruby> 汉<rt>han</rt> 字<rt>zi&l ...
- iOS 集成WebRTC相关知识点总结
前言 本文主要是整理了使用WebRTC做音视频通讯时的各知识点及问题点.有理解不足和不到位的地方也欢迎指正. 对于你感兴趣的部分可以选择性观看. WebRTC的初始化 在使用WebRTC的库之前,需要 ...
- Python入门系列(八)日期时间、数学、json
日期时间 Python中的日期本身不是数据类型,但我们可以导入一个名为datetime的模块,将日期作为日期对象使用. import datetime x = datetime.datetime.no ...
- 游标长时间open导致表无法vacuum问题
一.问题描述 用户在实际中可能会碰到类似以下 dead rows 无法 vacuum的问题,一个可能的原因是由于游标未结束的原因. test=# vacuum(verbose) t1; INFO: v ...
- Gitea 1.17.2 | 带来视觉提升、完善资源校验、加强安全性等42项优化
Gitea 1.17.2 合并了 42 个 Pull Request,现已正式发布,我们建议所有用户升级到此版本.您可以到阅读原文了解更详细的介绍. 致谢:@zeripath 为 Gitea 贡献了诸 ...
- 选择排序C语言版本
算法思路,从头至尾扫描序列. 首先从第二个到最后,找出最小的一个元素,和第一个元素交换: 接着从第三个到最后,后面找出最小的一个元素,和第二个元素交换: 依次类推最终得到一个有序序列. void Se ...
- 如何使用 Git 管理配置文件
现在很多软件的配置都可以在线同步或者支持导入导出,可以很方便的在不同设备上使用.但电脑上还有很多本地配置文件没有办法同步,夸多个设备使用时很难保持一致,换电脑也很麻烦.其实可以使用 Git 来管理这些 ...
- getSessionFactory().openSession()导致druid连接池中的连接都占用满但无法回收
该问题产生的现象 页面刷新几次后,就卡住,线上就得需要重新部署(还好是测试环境,不是真正生产环境) 过程及原因 查看日志线程池满了 Caused by: org.springframework.jdb ...
- .NET 部署Https(SSL)通过代码方式
在上一个文章中,传送门,给大家介绍了怎么在配置文件中使用 Kestrel 部署 Https,正好今天有小伙伴稳问到:可以通过代码的方式实现 Kestrel 的 Https 的部署吗?答案是肯定的,我们 ...