当前位置:首页 > EDA > 电子设计自动化
[导读]随着计算机技术的发展,以及大数据量交互的需要,硬件系统对PC总线传输速率、数据完整性提出了越来越高的应用要求。传统的PCI总线技术虽然经过不断的改进,开发出64b,66MHz的并行协议PCI-X标准,但由于并行总线整体

随着计算机技术的发展,以及大数据量交互的需要,硬件系统对PC总线传输速率、数据完整性提出了越来越高的应用要求。传统的PCI总线技术虽然经过不断的改进,开发出64b,66MHz的并行协议PCI-X标准,但由于并行总线整体设计难度以及造价高昂,主流的PCI技术已经成为限制数据传输系统性能发挥的瓶颈[1-2]。因此,第3代I/O技术PCIExpress总线标准一经推出即成为取代PCI总线的下一代标准,并得到迅速的发展。

PCIExpress总线利用串行的连接特点能轻松的将数据整体传输速度提到一个更高的频率,达到远远超出以往PC总线的传输速度,同时保证了数据的完整性[2]。PCIExpress连接采用点对点差分传输,可以被配置成最高x32的数据带宽,其中PCIExpressGen2.0标准的x1通道传输能力达到单向5Gb/s.PCIExpress总线设备可以通过主机桥接器芯片进行基于主机的传输,也可以通过交换器进行多点传输,这极大的拓展了PC总线的开发灵活性。Xilinx公司的Virtex-6系列FPGA芯片内嵌了PCIExpress协议硬核,支持x1,x2,x4和x8通道传输,为实现PCIExpress总线解决方案单片集成提供了可能[3]。

本文在研究PCIExpress协议标准及其接口技术的基础上,设计了基于Virtex-6FPGA芯片的PCIExpress高速数据采集卡,实现了外部系统与PC的数据交互。

1系统总体设计

PCIExpress采集系统组成框图如图1所示。

 

 

图1系统整体框图

采集系统以FPGA作为采集卡的控制核心,外部数据经数据接口传入FPGA,FPGA通过内部逻辑对高速数据进行必要的时序控制和相关处理后将数据存储到片外的SDRAM进行缓存,然后采集卡在总线主控DMA控制器的控制下,通过PCIEx8通道将缓存的数据写入计算机内存[4]。上位机由驱动软件识别PCI Express采集卡,并设置DMA控制寄存器,通过上层应用软件接收硬件电路发送到内存的数据,并在每次传输结束是处理中断。采用DMA模式传输实现了在实时数据高速采集的同时,不影响上位机对数据的处理工作,不仅提高了采集系统整体的采集速度,也保证了数据质量,以及测试分析完整性。

数据接口模块完成外部数据的差分接收,这有利于保证高速数据的传输质量。Virtex-6FPGA实时接收差分信号,并在DataProcessor模块中进行解码然后根据一定时序通过高速FIFO缓存送入外部SDRAM存储模块。PCIExpressIPCore为Virtex-6FPGA内部集成协议硬核,完成数据的分层打包,DMA控制器作为PCIExpress总线传输的主控,实现了DMA方式传输。

2采集卡硬件设计

2.1基于IPCore的PCIExpress接口设计

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

Xilinx公司所提供的PCIExpress解决方案,遵守了PCIE分层协议标准,从完成对接收的数据进行分层打包,通过PCIE接口与计算机通信。分层传输过程如图3所示。

其中处理层主要是接受从软件层送来的读写请求,并且建立一个请求包传输到数据链路层。作为事务层和物理层之间的接口,数据链路层通过维护链路活跃状态信息、流控制初始化和流控制来确保数据的完整性、数据包的有序性和数据传输的可靠性。物理层位于PCIE结构的最底层,主要实现链路的建立、通路的分配、时钟的编码和并行数据与串行数据的之间的转换。

在初始化阶段,在无需固件或操作系统软件的介入下,物理层建立状况状态机通过检测、配置和轮询来协商可用的通道数目和双方的工作频率。

 

 

图2集成硬核顶层模块接口组成框图

 

 

图3PCIExpress分层传输过程

2.2高速传输实现

作为采集卡数据传输主控,FPGA内部实现了高速数据传输DMA控制操作。为了接收上位机发出的DMA控制命令,系统首先必须分配一定大小的FPGA内部BlockRAM用作DMA控制寄存器,在驱动程序的映射下,该BlockRAM在采集卡插入系统是会被映射到主机内存空间,于是主机只需访问映射好的内存空间即可实现对FPGA内部控制寄存器的访问。

当系统启动传输时,上位机首先将DMA传输的目的地址写入相应的DMA控制寄存器。在接收到采集命令后,采集卡开始接收外部数据,并对数据进行解码、整形,按顺序将数据依次通过高速FIFO送入外部SDRAM进行缓存。当SDRAM数据有效后,通过触发信号启动DMA传输,DMA控制器将申请从SDRAM中将数据写入到数据发送FIFO,由发送模块将发送数据FIFO中的数据按照EndpointBlockPlus核的事务(TRN)接口的格式提交给IP核,由IP核按照PCIExpress总线规范将数据传至FPGA的GTP收发器,GTP收发器直接连接了PCI-E的差分数据传输对,于是通过PCI-Ex8通道将数据以DMA方式直接存入主机物理内存中[5,7-8]。当存完一个数据包后发出中断消息通知主机上层应用程序处理数据以及将物理内存中的数据转存至硬盘,之后即进入下一个数据包的传输,如此反复,直到收到主机的停止DMA传输命令,即完成当前帧的采集和传输并停止下一帧的采集和传输。

3PCIExpress采集卡驱动设计

本系统驱动程序在WindowsXP操作系统下,应用微软公司的DriverStudio平台进行开发。DriverStudio平台提供了驱动程序开发所需的WDM(Windows DriverMode,Windows驱动程序模型),包括VtoolsD、DriverWorks、DriverNetWorks和SoftICE等开发工具,应用该平台开发降低了驱动程序开发的难度,同时了提高了代码的可靠性[9]。

3.1硬件驱动驱动程序

对外部硬件的访问是通过DriverWorks提供的2个类来实现的,其中,KioRang类实现对I/O映射芯片的访问,KMemoryRang类实现对内存映射芯片的访问。本系统选择了KMemoryRang完成PCI Express硬件的访问,主要调用函数如表1所示。

表1

 

 

KMemoryRang类主要函数初始化KMemoryRang类的操作是在驱动程序启动例程中执行的,主要执行程序如下:NTSTATUSPCIeDevice(KIrpI)

{…

PCM_RESOURCE_LIST pResListRaw=I.AllocatedResources();PCM_RESOURCE_LIST pResListTranslated=I.TranslatedResources();m_MemoryRange.Initialize(pResListTranslated,pResListRaw,0);…

}当驱动程序完成初始化时,应用端软件将通过inb()和outb()等函数对外部硬件电路进行访问,读写数据。

3.2DMA传输实现

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

 

 

VirtaulAddress()函数返回的内核模式地址是提供给驱动程序读写公用缓冲区用的,而进行DMA传输时需要用到缓冲区的物理地址,也即需要写入DMA参数寄存器的是缓冲区的物理地址。

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控制器,能够快速可靠地采集外部差分数据,具有解码、整形,高速采集存储的功能,是大数据量交互的有效解决方案。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

- NIPPON EXPRESS全新品牌宣传片带您走进全球物流的幕后 东京2023年9月4日 /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社于9月1日发布了全新品牌宣传片《Finding th...

关键字: EXPRESS NI IP PS

苏州2023年8月22日 /美通社/ -- 近日,复旦大学附属中山医院葛均波院士团队成功在新一代介入式人工心脏(NyokAssist®,心擎医疗)支持下为三支病变、左主干病变伴前降支慢性完全闭塞病变合并低左室射血...

关键字: PCI ASSIST 血压 血流动力学

东京2023年8月17日 /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)的集团公司Nippon Express (Ireland)...

关键字: EXPRESS LAN NI IP

10美元以上符合条件的交易仅需2.99美元运费 北京2023年2月2日 /美通社/ -- 全球移动跨境电商平台Wish的母公司ContextLogic Inc.今日宣布,其正分阶段推出2.99美元固定运费服务。该服务适...

关键字: APP 移动 EXPRESS iOS

一直以来,工控机都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来工控机的相关介绍,详细内容请看下文。

关键字: 工控机 嵌入式 PCI

全球支付卡行业标准机构PCI安全标准委员会(PCI SSC)宣布郑有光(Yew Kuann Cheng)为新任亚太区副总裁。郑有光将负责推动整个亚太地区采用PCI安全标准以促进支付安全。郑有光的工作地点位于新加坡,他将担...

关键字: PCI 数据安全 新加坡 行业标准

(全球TMT2022年11月8日讯)动视暴雪第三季度净营收17.8亿美元,同比减少14%;净利润4.35亿美元,同比减少32%。公司月活跃用户3.68亿,同比减少5.6%。 美国网约车公司Lyft公布三季...

关键字: LYFT PCI 变焦 开源

今天,小编将在这篇文章中为大家带来工控主板的有关报道,通过阅读这篇文章,大家可以对工控主板具备清晰的认识,主要内容如下。

关键字: 工控主板 主板 PCI

上海2022年9月20日 /美通社/ -- 近日,在长江之歌学术周功能学与影像学高峰论坛上,波士顿科学血管内超声系统Polaris(以下简称"Polaris")巡回上市会正式启动。这是继实现国产化之后...

关键字: POLAR 超声系统 PCI 影像

东京2022年8月29日 /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司NX国际物流(中国)有限公司(Nippon Ex...

关键字: CHINA EXPRESS NI IP
关闭
关闭