基于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采集&回放的密集任务量,特别适用于高速视频采集和显示的应用。

内核特性:

  1. 多种PCIe驱动:

a)       Xilinx XDMA驱动,Windows和Linux版本

b)       自研驱动,Windows和Linux版本

  1. 每个通道的采集和回放DMA地址队列深度大于32
  2. 多通道DMA引擎,支持连续式DMA(CDMA)和链式DMA(SGDMA)
  3. 支持MSI中断机制,传统的寄存器读写
  4. 支持H2C(Host to Card)和C2H(Card to Host)的全双工数据传输
  5. 支持Camera Link接口的相机和显示器
  6. 支持DDR3-1600和DDR4-2400接口的内存颗粒或内存条
  7. 自适应PCIe链路速率:PCIe 1.0,PCIe 2.0,PCIe 3.0和PCIe 4.0和宽度:PCIe x1,PCIe x2,PCIe x4,PCIe x8,PCIe x16
  8. 支持Xilinx器件:Spartan-6,Virtex-5,Virtex-6,Artix-7,Kintex-7,Virtex-7,Kintex Ultrascale,Virtex Ultrascale

对外接口:

  1. PCIe接口
  2. DDR3/DDR4接口
  3. Camera Link接口

性能指标:

  1. PCIe 2.0 x4:DMA Read(C2H)速率大于1750MB/s,DMA Write(H2C)速率大于1710MB/s
  2. PCIe 2.0 x8:DMA Read(C2H)速率大于3490MB/s,DMA Write(H2C)速率大于3400MB/s
  3. PCIe 3.0 x8:DMA Read(C2H)速率大于6850MB/s,DMA Write(H2C)速率大于6800MB/s
  4. 64bit DDR3-1600,72bit DDR3-1600,64bit DDR4-2400,72bit DDR4-2400
  5. Camera Link:base,medium,full

资源使用:

1通道CDMA资源使用(XCKU060为例,PCIe 3.0 x8):

  1. LUTs:6265,FFs:14289,BRAM:80,PCIe:1

8通道CDMA资源使用(XC7K325为例,PCIe 2.0 x4):

  1. LUTs:14803,FFs:20712,BRAM:75,PCIe:1

8通道SGDMA资源使用(XC7K325为例,PCIe 2.0 x4):

  1. LUTs:19055,FFs:27529,BRAM:94,PCIe:1

8通道CDMA资源使用(XC7K325为例,PCIe 2.0 x8):

  1. LUTs:20235,FFs:29327,BRAM:55,PCIe:1

8通道SGDMA资源使用(XC7K325为例,PCIe 2.0 x8):

  1. LUTs:26432,FFs:38087,BRAM:55,PCIe:1

8通道CDMA资源使用(XCKU060为例,PCIe 3.0 x8):

  1. LUTs:18747,FFs:36805,BRAM:78,PCIe:1

8通道SGDMA资源使用(XCKU060为例,PCIe 3.0 x8):

  1. LUTs:25886,FFs:51406,BRAM:78,PCIe:1

可交付资料:

  1. 详细的用户手册
  2. Design File:Post-synthesis EDIF netlist or RTL Source
  3. Timing and layout constraints,Test or Design Example Project
  4. 技术支持:邮件,电话,现场,培训服务

联系方式:

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的多通道视频采集和显示系统的更多相关文章

  1. 基于PCIe DMA的多通道数据采集和回放IP

    基于PCIe DMA的多通道数据采集和回放IP 在主机端PCIe驱动的控制和调度下,数据采集与回放IP Core可以同时完成对多个通道数据的采集以及回放驱动工作,既可采用行缓存机制(无需帧缓存,无需D ...

  2. 基于JESD204B和PCIe DMA的多通道数据采集和回放系统

    基于JESD204B和PCIe DMA的多通道数据采集和回放系统 在主机端PCIe驱动的控制和调度下,数据采集与回放系统可以同时完成对多个JESD204B接口AD数据的采集以及JESD204B接口DA ...

  3. 基于PCIe的多路视频采集与显示子系统

    基于PCIe的多路视频采集与显示子系统 1        概述 视频采集与显示子系统可以实时采集多路视频信号,并存储到视频采集队列中,借助高效的硬实时视频帧出入队列管理和PCIe C2H DMA引擎, ...

  4. dsp下基于双循环缓冲队列的视频采集和显示记录

    对最近在设计的视频采集和显示缓冲机制做一个记录,以便以后使用. 视频采集和显示缓冲机制,其实是参考了Linux下v4L2的驱动机制,其采用输入多缓冲frame,输出多缓冲的切换机制.简单的就是ping ...

  5. 图像采集系统的Camera Link标准接口设计

    高速数据采集系统可对相机采集得到的实时图像进行传输.实时处理,同时实现视频采集卡和计算机之间的通信.系统连接相机的接口用的是Camera Link接口,通过Camera Link接口把实时图像高速传输 ...

  6. 基于PCIe DMA的8通道视频采集&显示IP,兼容V4L2

    基于PCIe DMA的8通道视频采集&显示IP,兼容V4L2 Video Capture&Display IP for V4L2 在主机端视频设备内核驱动V4L2 的控制和调度下,Vi ...

  7. 135-基于TMS320C6678、FPGA XC5VSX95T的2路Full模式Camera Link输入双目视觉处理平台

    基于TMS320C6678.FPGA XC5VSX95T的2路Full模式Camera Link输入双目视觉处理平台 一.板卡概述 本板卡由我公司自主研发,基于CPCI架构,符合CPCI2.0标准,采 ...

  8. 134-基于TMS320C6678、FPGA XC5VSX95T的一路Full模式Camera Link图像理平台

    基于TMS320C6678.FPGA XC5VSX95T的一路Full模式Camera Link图像理平台 一.板卡概述 该板卡采用TI公司新一代DSP TMS320C6678,结合FPGA,型号为X ...

  9. PCIE DMA实现

    基于Spartan-6, Virtex-5/Virtex-6/Virtex-7/7 Series FPGA PCI Express Block Endpoint模块设计PCI Express Endp ...

随机推荐

  1. 使用dotnet-monitor分析在Kubernetes的应用程序:Sidecar模式

    dotnet-monitor可以在Kubernetes中作为Sidecar运行,Sidecar是一个容器,它与应用程序在同一个Pod中运行,利用Sidecar模式使我们可以诊断及监控应用程序. 如下图 ...

  2. ruby 字符注音标签

    <ruby/>标签下的文本可以注音,注音由一对<rt/>标签完成. <ruby> 汉<rt>han</rt> 字<rt>zi&l ...

  3. iOS 集成WebRTC相关知识点总结

    前言 本文主要是整理了使用WebRTC做音视频通讯时的各知识点及问题点.有理解不足和不到位的地方也欢迎指正. 对于你感兴趣的部分可以选择性观看. WebRTC的初始化 在使用WebRTC的库之前,需要 ...

  4. Python入门系列(八)日期时间、数学、json

    日期时间 Python中的日期本身不是数据类型,但我们可以导入一个名为datetime的模块,将日期作为日期对象使用. import datetime x = datetime.datetime.no ...

  5. 游标长时间open导致表无法vacuum问题

    一.问题描述 用户在实际中可能会碰到类似以下 dead rows 无法 vacuum的问题,一个可能的原因是由于游标未结束的原因. test=# vacuum(verbose) t1; INFO: v ...

  6. Gitea 1.17.2 | 带来视觉提升、完善资源校验、加强安全性等42项优化

    Gitea 1.17.2 合并了 42 个 Pull Request,现已正式发布,我们建议所有用户升级到此版本.您可以到阅读原文了解更详细的介绍. 致谢:@zeripath 为 Gitea 贡献了诸 ...

  7. 选择排序C语言版本

    算法思路,从头至尾扫描序列. 首先从第二个到最后,找出最小的一个元素,和第一个元素交换: 接着从第三个到最后,后面找出最小的一个元素,和第二个元素交换: 依次类推最终得到一个有序序列. void Se ...

  8. 如何使用 Git 管理配置文件

    现在很多软件的配置都可以在线同步或者支持导入导出,可以很方便的在不同设备上使用.但电脑上还有很多本地配置文件没有办法同步,夸多个设备使用时很难保持一致,换电脑也很麻烦.其实可以使用 Git 来管理这些 ...

  9. getSessionFactory().openSession()导致druid连接池中的连接都占用满但无法回收

    该问题产生的现象 页面刷新几次后,就卡住,线上就得需要重新部署(还好是测试环境,不是真正生产环境) 过程及原因 查看日志线程池满了 Caused by: org.springframework.jdb ...

  10. .NET 部署Https(SSL)通过代码方式

    在上一个文章中,传送门,给大家介绍了怎么在配置文件中使用 Kestrel 部署 Https,正好今天有小伙伴稳问到:可以通过代码的方式实现 Kestrel 的 Https 的部署吗?答案是肯定的,我们 ...