PCIE采集卡数据传输总结

本文根据自己最近看PCIE一些文章的基础上总结备忘,供自己日后学习参考。如有错误之处,请广大同行指正,谢谢!!!

PCIE采集卡数据传输总结

       PCIE采集系统中数据带宽一般比较大,为了提高传输效率往往会使用DMA方式进行数据传输。 PCIE采集卡基于FPGA设计,FPGA内部需要设计几个重要模块:

a) DMA控制器

b)缓冲单元

1.FPAG先将外部采集的信号缓存在缓冲单元中,

2.计算机主机发起一次DMA读请求,具体过程是计算机通过memory写方式向PCIE设备写入一些参数,包括DMA对应的计算机内存物理地址(此处为计算机中的DDR物理地址,计算机需要申请一块内存用来缓存PCIE板卡通过DMA发送的采集数据),传输长度等信息,然后发送DMA传输命令,待PCIE设备将指定长度的数据传输到计算机的物理内存后,PCIE设备会通过中断通知计算机一次DMA传输完成,此时计算机可以通过各种方式将数据取走。如果是Linux系统,可以通过mmap映射的方式将这段物理内存映射到用户空间,应用程序可以通过映射到用户空间的虚拟地址直接获取数据。

3.计算机怎么知道向FPGA的哪个计算器写入传输参数?

       一般情况下,可以使用PCIE设备枚举过程中计算机分配给PCIE设备的PCIE总线地址(这个地址写在PCIE设备的bar空间),这个地址在Linux系统中可以使用pci_resource_start函数获取,获取的是物理地址,还需要通过ioremap函数将其映射成虚拟地址,才可以向PCIE设备的空间写入参数。

未完待续。

 

   

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值