基于Virtex-6的PCI Express高速采集卡设计

发布者:电子设计艺术家最新更新时间:2013-04-25 来源: 电子设计工程 关键字:Virtex-6  PCIExpress  高速采集卡 手机看文章 扫描二维码
随时随地手机看文章
    随着计算机技术的发展,以及大数据量交互的需要,硬件系统对PC总线传输速率、数据完整性提出了越来越高的应用要求。传统的PCI总线技术虽然经过不断的改进,开发出64 b,66 MHz的并行协议PCI-X标准,但由于并行总线整体设计难度以及造价高昂,主流的PCI技术已经成为限制数据传输系统性能发挥的瓶颈。因此,第3代I/O技术PCI Express总线标准一经推出即成为取代PCI总线的下一代标准,并得到迅速的发展。
    PCI Express总线利用串行的连接特点能轻松的将数据整体传输速度提到一个更高的频率,达到远远超出以往PC总线的传输速度,同时保证了数据的完整性。PCI Express连接采用点对点差分传输,可以被配置成最高x32的数据带宽,其中:PCI Express Gen2.0标准的x1通道传输能力达到单向5 Gb/s。PCI Express总线设备可以通过主机桥接器芯片进行基于主机的传输,也可以通过交换器进行多点传输,这极大的拓展了PC总线的开发灵活性。Xilinx公司的Virtex-6系列FPGA芯片内嵌了PCI Express协议硬核,支持x1,x2,x4和x8通道传输,为实现PCI Express总线解决方案单片集成提供了可能。
    本文在研究PCI Express协议标准及其接口技术的基础上,设计了基于Virtex-6 FPGA芯片的PCI Express高速数据采集卡,实现了外部系统与PC的数据交互。

1 系统总体设计
    PCI Express采集系统组成框图如图1所示。


    采集系统以FPGA作为采集卡的控制核心,外部数据经数据接口传入FPGA,FPGA通过内部逻辑对高速数据进行必要的时序控制和相关处理后将数据存储到片外的SDRAM进行缓存,然后采集卡在总线主控DMA控制器的控制下,通过PCIE x8通道将缓存的数据写入计算机内存。上位机由驱动软件识别PCIExpress采集卡,并设置DMA控制寄存器,通过上层应用软件接收硬件电路发送到内存的数据,并在每次传输结束是处理中断。采用DMA模式传输实现了在实时数据高速采集的同时,不影响上位机对数据的处理工作,不仅提高了采集系统整体的采集速度,也保证了数据质量,以及测试分析完整性。
    数据接口模块完成外部数据的差分接收,这有利于保证高速数据的传输质量。Virtex-6 FPGA实时接收差分信号,并在Data Processor模块中进行解码然后根据一定时序通过高速FIFO缓存送入外部SDRAM存储模块。PCI Express IP Core为Virtex-6 FPGA内部集成协议硬核,完成数据的分层打包,DMA控制器作为PCI Express总线传输的主控,实现了DMA方式传输。

2 采集卡硬件设计
2.1 基于IP Core的PCI Express接口设计
   
本采集卡采用Xilinx公司的Virtex-6系列FPGA芯片作为核心控制器。该款FPGA中内置了PCI Express集成模块和RocketIO GTP收发器,提供了符合《PCI Express基本规范v2.0》的PCI-E解决方案,单通道最高设计速度达到5 Gb/s。根据PCI-E总线的分层模型,Virtex-6集成端点模块提供事务层(TL)、数据链路层(DLL)、物理层(PHYMAC)以及配置空间所具有的全部功能。通过使用Xilinx公司提供的PCI Express LogiCORE IP Endpoint Block Plus核,可实现符合PCI-E总线协议的数据传输。Endpoint Block Plus核在内部例化了Virtex-6集成端点模块,实现了集成端点模块和GTP收发器之间的数据传输。集成硬核顶层模块接口组成如图2所示。[page]


    Xilinx公司所提供的PCI Express解决方案,遵守了PCIE分层协议标准,从完成对接收的数据进行分层打包,通过PCIE接口与计算机通信。分层传输过程如图3所示。
    其中处理层主要是接受从软件层送来的读写请求,并且建立一个请求包传输到数据链路层。作为事务层和物理层之间的接口,数据链路层通过维护链路活跃状态信息、流控制初始化和流控制来确保数据的完整性、数据包的有序性和数据传输的可靠性。物理层位于PCIE结构的最底层,主要实现链路的建立、通路的分配、时钟的编码和并行数据与串行数据的之间的转换。在初始化阶段,在无需固件或操作系统软件的介入下,物理层建立状况状态机通过检测、配置和轮询来协商可用的通道数目和双方的工作频率。
2.2 高速传输实现
   
作为采集卡数据传输主控,FPGA内部实现了高速数据传输DMA控制操作。为了接收上位机发出的DMA控制命令,系统首先必须分配一定大小的FPGA内部Block RAM用作DMA控制寄存器,在驱动程序的映射下,该Block RAM在采集卡插入系统是会被映射到主机内存空间,于是主机只需访问映射好的内存空间即可实现对FPGA内部控制寄存器的访问。
    当系统启动传输时,上位机首先将DMA传输的目的地址写入相应的DMA控制寄存器。在接收到采集命令后,采集卡开始接收外部数据,并对数据进行解码、整形,按顺序将数据依次通过高速FIFO送入外部SDRAM进行缓存。当SDRAM数据有效后,通过触发信号启动DMA传输,DMA控制器将申请从SDRAM中将数据写入到数据发送FIFO,由发送模块将发送数据FIFO中的数据按照Endpoint Block Plus核的事务(TRN)接口的格式提交给IP核,由IP核按照PCI Express总线规范将数据传至FPGA的GTP收发器,GTP收发器直接连接了PCI-E的差分数据传输对,于是通过PCI-E x8通道将数据以DMA方式直接存入主机物理内存中。当存完一个数据包后发出中断消息通知主机上层应用程序处理数据以及将物理内存中的数据转存至硬盘,之后即进入下一个数据包的传输,如此反复,直到收到主机的停止DMA传输命令,即完成当前帧的采集和传输并停止下一帧的采集和传输。

3 PCI Express采集卡驱动设计
   
本系统驱动程序在Windows XP操作系统下,应用微软公司的Driver Studio平台进行开发。Driver Studio平台提供了驱动程序开发所需的WDM(Windows Driver Mode,Windows驱动程序模型),包括VtoolsD、DriverWorks、DriverNetWorks和SoftICE等开发工具,应用该平台开发降低了驱动程序开发的难度,同时了提高了代码的可靠性。
3.1 硬件驱动
   
驱动程序对外部硬件的访问是通过DriverWorks提供的2个类来实现的,其中,KioRang类实现对I/O映射芯片的访问,KMemoryRang类实现对内存映射芯片的访问。本系统选择了KMemoryRang完成PCIExpress硬件的访问,主要调用函数如表1所示。


    初始化KMemoryRang类的操作是在驱动程序启动例程中执行的,主要执行程序如下:
   
    当驱动程序完成初始化时,应用端软件将通过inb()和outb()等函数对外部硬件电路进行访问,读写数据。

[page]

3.2 DMA传输实现
   
采用DMA传输能极大的减轻主机处理负担,特别适用于大数据量处理系统。采用DriverWorks提供的KDmaAdapter类可轻松建立一个DMA传输链路,实现DMA读写操作。用于FPGA总线协议模块软件层完成了相关DMA传输的控制,所以驱动程序DMA传输只需子在系统启动DMA传输时,身心相应的内存作为公共缓冲区,用于外部DMA控制器存入数据文件,这里需要调用DriverWorks提供的KCommonDmaBuffer类,该类常用函数如表2所示。


    VirtaulAddress()函数返回的内核模式地址是提供给驱动程序读写公用缓冲区用的,而进行DMA传输时需要用到缓冲区的物理地址,也即需要写入DMA参数寄存器的是缓冲区的物理地址。
3.3 总线中断处理
   
采集卡一共需要处理三种中断请求,分别是DMA写完成,DMA读完成和错误中断请求。在Driver Works平台中,KInterrupt类可用于处理硬件中断,其主要函数包括中断寄存器初始化,中断连接函数,实现了将一个中断服务例程连接到一个中断和解除其连接等。
    中断处理函数首先在驱动程序构造的函数中调用MEMBER_ISR(class_name,fuction_name),声明中断服务例程为该类的一个成员函数,接着在驱动程序驱动例程中调用InitializeAndConnect(),初始化中断类实例,并与中断服务例程连接起来。
    这样就完成了对外部硬件中断的处理,当每次驱动程序检测到硬件产生中断脉冲时,中断服务函数随即被调用,从而转入相应中断处理程序中执行。

4 采集卡性能测试
   
为测试采集系统性能,自行设计了应用软件对采集卡数据传输速率进行统计,在Windows环境下,采用多种数据量进行DMA方式读写。应用端软件根据数设定的数据包大小,申请不同的内存空间,并将虚拟地址映射到FPGA的DMA寄存器。实际测试采集速率结果如图4所示。


    根据图4的测试结果,总线DMA传输速率与数据块大小相关。当设定系统数据块(即开辟的主机内存)大于32 Mb时,采集卡的采集速率稳定在5.6 Gb/s。实验结果表明,该系统大幅度地提高了数据交互速度,发挥了PCI Express总线的优越性能。

5 结语
   
本文应用Xilinx公司的VirteX-6芯片设计了PCIExpress高速采集卡,通过调用FPGA内部的PCIE集成协议硬核,配合总线DMA控制器,能够快速可靠地采集外部差分数据,具有解码、整形,高速采集存储的功能,是大数据量交互的有效解决方案。

关键字:Virtex-6  PCIExpress  高速采集卡 引用地址:基于Virtex-6的PCI Express高速采集卡设计

上一篇:研华推出全新系列的高密度PCI Express数据采集卡
下一篇:基于LonWorks总线的智能家居系统设计

推荐阅读最新更新时间:2024-05-02 22:38

可编程逻辑不仅已是大势所趋,而且势不可挡
今年是FPGA诞生25周年,也是我们赛灵思公司成立25周年,在这个特殊时刻,我有两点重要的讯息想与大家分享:第一个讯息是,我们终于看到,可编程逻辑器件已经成为一个不可阻挡的应用大趋势,而现在我们正处在这样的转折点上。第二个讯息是,为了推动这样一个大趋势,今年我们不仅可向客户提供VIRTEX-6和SPARTAN-6 FPGA工程样片,而且我们首次提出了目标设计平台的理念,以帮助客户更快地推出新的产品。 目前可编程逻辑发展已经到了一个转折点,为什么这么说呢?有三个原因:第一是市场推动力;第二是目前大家所经历的经济态势;第三就是我们赛灵思在这一领域持续的技术创新。总结这三大因素使我们得出这样一个结论:可编程应用正当时。而且
[嵌入式]
一种基于高速数据采集卡的虚拟示波器开发
摘 要:本文基于PCI接口的CS 82G高速数据采集卡和Visual C++编程工具,开发了一种快速的虚拟示波器试验系统,实现了高速数据的采集和动态波形的显示,并具有频谱分析和数字滤波功能。 关键词:虚拟示波器;数据采集;CS 82G 引言 虚拟仪器以通用计算机作为系统控制器,各种复杂测试功能、数据分析和结果显示都完全由计算机软件完成,在很多方面较传统仪器有无法比拟的优点。 本文在带有PCI总线接口的CS82G高速数据采集卡和Visual C++编程工具的基础上开发的快速虚拟示波器试验系统,集成了波形采集、数据分析、输出、显示等多种功能。同时,为保证数据采集和波形显示的实时性,设计中还采用了多线程技术。 图1
[测试测量]
采用高速高分辨率信号采集卡构成超声探伤系统
---超声波探伤系统生产商在无损探测薄片钢部件中,传统的测量方法都是使用模拟电路。但现在的市场需要的是能够提供更高性能和更低价格的基于PC的现代化操作系统,以及高速高分辨率信号采集卡。 在讨论信号采集卡在探伤中所扮演的角色之前,先回顾一下整个系统。宽带超声传感器是自动定位到被测试部件面前的,传感器和部件都放在水槽里。在反射模式下工作的传感器发射并检测超声波。接收到超声脉冲发生器/接收器的激励后,传感器忽略部分带宽的超声能量脉冲,并接收从被测部件反射的回波。 在连续超声记录的提取中,通过GPIB旁路链接控制的自动定位臂,以0.1mm的步进移动传感器。该臂通过一个前后都类似光栅图案的500mm%26;#215;500mm矩形网进行扫描,
[应用]
基于USB 2.0的高速数据采集卡在虚拟仪器中的应用
引言   虚拟仪器,就是在通用计算机平台上,用户根据自己的需求定义和设计仪器的测试功能,与传统仪器相比,虚拟仪器在智能化程度、处理能力、性能价格比、可操作性等方面均具有明显的技术优势。   本文将着重介绍一种新型优良的下位机—基于USB2.0的高速数据采集卡在虚拟仪器中的应用。   本文重点分析的下位机即智能A/D,是虚拟仪器硬件设备中的关键环节。下位机通过特定接口接受来自上位机的指令并向上位机提供自身所处的状态:在收到采集指令后,对传感器发送的模拟电信号进行A/D采样以转化为数字信号,然后将数字信号通过USB接口传给上位机。   本系统的下位机支持2个通道的传感器信号进行A/D转换,其最高采样效率为120MHz,采样转换
[单片机]
用FPGA控制CLC5958型A/D转换器实现的高速PCI数据采集卡
摘要:详细介绍CLC5958的内部结构和基本用法,提出一种基于FPGA和PCI总线的高速数据采集卡设计方案,并通过仿真验证了该方案的可行性。该采集卡的采集速度快,精度高,结构简单,扩展方便,抗干扰能力强,适宜和于高速智能仪器和其他数据采集场合。 关键词:CLC5958;现场可编程门阵列;数据采集卡;PCI总线 引言 随着信息技术的发展,基于微处理器的数字信号处理在测控、通讯、雷达等各个领域得到广泛的应用。被处理的模拟信号也在向高频、宽带方面发展,但这需要高速、高分辨率的数字采集卡以将模拟信号数字化。美国国家半导体公司新推出的系列高速、高分辨率模/数转换器(如CLC5958)就非常适用于需要高速、高分辨率的信号采集系统。
[应用]
德国Spectrum发布采样率为5GS/s的PCIe高速数据采集卡
德国Spectrum首次推出频率范围介于DC至1GHz区间的PCIe高速数据采集卡,以满足工程师与科学家在捕获及分析快速电子信号时的需求。此次,实时采样率高达5GS/s的9款全新型号的数字化仪将加入M4i系列,使德国Spectrum公司基于PCIe的产品性能得到极大的扩展。此外,高宽带使用户在测量信号、边缘以及脉冲时可精确到亚纳秒。 此次推出的PCIe高速数据采集卡分为单通道、双通道及四通道。当诸如数字示波器和频谱分析仪等传统的测量仪器在测量速度、灵活性、尺寸或通道密度方面遭遇问题时,新产品将能够取而代之。 新产品的设计是基于最受行业认可的PCIe总线,最高的数据传输速度可达3.4GB/s。德国Spectrum的全
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved