3.3总线中断处理
采集卡一共需要处理三种中断请求,分别是DMA写完成,DMA读完成和错误中断请求。在Driver-Works平台中,KInterrupt类可用于处理硬件中断,其主要函数包括中断寄存器初始化,中断连接函数,实现了将一个中断服务例程连接到一个中断和解除其连接等。
表2KCommonDmaBuffer类主要函数中断处理函数首先在驱动程序构造的函数中调用MEMBER_ISR(class_name,fuction_name),声明中断服务例程为该类的一个成员函数,接着在驱动程序驱动例程中调用InitializeAndConnect(),初始化中断类实例,并与中断服务例程连接起来。
这样就完成了对外部硬件中断的处理,当每次驱动程序检测到硬件产生中断脉冲时,中断服务函数随即被调用,从而转入相应中断处理程序中执行。
4采集卡性能测试
为测试采集系统性能,自行设计了应用软件对采集卡数据传输速率进行统计,在Windows环境下,采用多种数据量进行DMA方式读写。应用端软件根据数设定的数据包大小,申请不同的内存空间,并将虚拟地址映射到FPGA的DMA寄存器。实际测试采集速率结果如图4所示。
图4实际测试数据采集速率
根据图4的测试结果,总线DMA传输速率与数据块大小相关。当设定系统数据块(即开辟的主机内存)大于32Mb时,采集卡的采集速率稳定在5.6Gb/s.实验结果表明,该系统大幅度地提高了数据交互速度,发挥了PCIExpress总线的优越性能。
5结语
本文应用Xilinx公司的Virtex-6芯片设计了PCI Express高速采集卡,通过调用FPGA内部的PCIE集成协议硬核,配合总线DMA控制器,能够快速可靠地采集外部差分数据,具有解码、整形,高速采集存储的功能,是大数据量交互的有效解决方案。
本文关键字:采集卡 DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术
上一篇:不同的辐射效应和对FPGA的影响