您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 基于PCIExpress总线高速数据采集卡的设计与实现
基于PCIExpress总线高速数据采集卡的设计与实现马萍1,2,3唐卫华2李绪志2(1-中国科学院研究生院,北京100080;2-中国科学院光电研究院,北京100080;3-中国科学院空间科学与应用研究中心,北京100080)摘要:本文介绍一种基于PCIExpress总线的高速数据采集卡的设计方案及功能实现。给出系统的基本结构及单元组成,重点阐述系统硬件设计的关键技术和本地总线的控制逻辑,详细探讨了基于DriverWorks的设备驱动程序的开发以及上层应用软件的设计。该系统通过实践验证,可用于卫星下行高速数据的接收并可适用于其他高速数据采集与处理系统。关键词:PCIExpress总线PCIEPEX8311DMA板卡驱动中图分类号:TP336文献标识码:ADesignandImplementationofaHigh-speedDataAcquisitionCardBasedPCIExpressBusMa,Ping1,2,3Tang,Weihua2Li,Xuzhi2(1-GraduateUniversityofChineseAcademyofSciences,Beijing100080,China;2-AcademyofOpto-Electronics,CAS,Beijing100080,China;3-CenterforSpaceScienceandAppliedResearch,CAS,Beijing100080,China)Abstract:Adesignprojectandfunctionrealizationofakindofhigh-speeddataacquisitioncardbasedonPCIExpressbusisintroducedinthispaper.Itpresentsthestructureandcircuitcellsofthesystem,emphasizesthekeytechniqueofsystemhardwaredesignandthecontrollogicoflocalbus,discussesindetailthedevelopmentofdevicedriverbasedonDriverWorksandthedesignofsuperapplicationsoftware.Verifiedbypractice,thissystemcanbeusedtoreceivethehigh-speeddatadownfromsatellite.Andcanalsobeappliedtootherhigh-speeddataacquisitionandprocessingsystem.Keywords:PCIExpressBus,PCIE,PEX8311,DMA,CardDriver0引言随着空间科学和空间电子学技术的飞速发展,空间科学实验的种类和数量以及科学实验所产生的数据量不断增加。为了使地面接收处理系统能够实时处理和显示科学图像数据,必须要设计出新的地面数据接收处理系统,实现大量高速数据的正确接收采集、处理以及存储。为了满足地面系统的要求,并为以后的计算机系统升级提供更广阔的空间,本系统拟采用第三代I/O互连技术PCIExpress(简称PCI-E)作为本数据采集卡的进机总线形式。本文通过对PCI-E总线专用接口芯片PLX公司的PEX8311性能分析,特别是对突发读、写和DMA读操作的时序研究,设计出本地总线的可编程控制逻辑,并详细讨论了整个PCI-E高速数据采集卡的硬件设计方案,以及WDM驱动程序和上层应用程序的设计方法。1PCIExpress总线简介PCIExpress1.0自2002年7月由PCI-SIG正式公布起,得到了原有PCI、AGP总线及AMD、VIA等系统内部总线开发者的拥戴。它提供了一种适合于10Gbit/s速度的串行接口,克服了传统并行PCI总线的一些性能限制。可配置为X1、X2、X4、X8、X12、X16或X32的数据传输通道模式。X1的单向通道传输带宽约为2.5Gbit/s,X32可达到16GB/s的总带宽。2007年1月发布的PCIExpress2.0标准实现了X1单向数据传输速率5Gbits/s。在过去的十几年间PCI总线是非常成功的,它的平行总线机制在现在看来依然具有很高的先进性,但是它的带宽却早已显示出种种的疲态。PCI-E的提出就是为了要提高总线的带宽和工作频率,并解决许多实际应用中的问题。在整体性能方面,PCI-E总线只需要从芯片组中引出很少的管脚,这使得主板布线难度大大降低,从而全面降低了系统单位带宽的成本,但它却具有比现在PCI高的多的带宽和传输速度;在通信模式方面,PCI-E采用串行点对点方式,采用LVDS串行链路接口和时钟数据恢复同步技术,并利用8b/10b编码机制将时钟信号嵌入数据信号,保证数据传输的可靠性;同时它还具有像USB、火线一样“走出机箱”、跨平台兼容等优点,从而得到众多工程师的青睐。本系统就是基于PCI-E总线的这些独特优点,设计出一款更经济实用的高速数据采集卡,确保卫星下行数据的实时准确接收。2系统硬件整体设计方案卫星高速下行数据经地面接收站解调后,通过光纤以数字基带信号形式传递到本地端,本系统所设计的接收卡就是负责接收解调器输出的高速基带数据流。硬件系统主要包括PCI-E总线控制器、高速数据缓存、差分数据接口和CPLD本地逻辑控制四部分。系统结构如图1所示。图1PCIExpress数据采集卡整体结构框图I、Q两路分向的LVDS信号及本地恢复时钟CLK经SMA接头进入板卡,首先通过差分信号接收器转换为LVTTL电平,然后将串并转换后的8位并行数据在CPLD的控制逻辑下送入FIFO缓存。当FIFO存储器中的数据半满时,由CPLD向PEX8311总线控制器发出本地中断信号LINTi,并由后者启动DMA传输,将数据经PCI-E总线上传至PC机内存,待上层应用处理软件进行存储硬盘、快视及归档。本设计需要完成的工作主要有两部分,一是根据PEX8311的工作原理,通过驱动程序配置相应的内部寄存器。二是根据PEX8311提供的LOCAL端总线工作时序,在CPLD中实现相应的控制逻辑,进而保证系统的协调工作。3系统硬件实现3.1PCI-E总线接口芯片PEX8311的性能简介PEX8311是PLXTechnology公司推出的一款专用于将DSP、FPGA等处理器总线接口升级为PCI-E的桥接器件。利用PEX8311灵活的局部总线可以方便连接多种存储器、缓存器及FPGA、DSP等逻辑芯片,使复杂的PCI-E接口设计简单化。PEX8311兼容PCIExpress1.0标准,其本地总线和寄存器与PCI9056兼容,内部集成了单通道、全双工2.5Gbps的PCI-E端口,并提供完整的本地总线到PCI-E的接口,包括地址转换、包生成与解码、信号中断支持及并串转换[1]等。PEX8311提供三类物理总线接口:LOCAL、PCI-E及两种串行EEPROM(SPI、Microwire)接口。其中,LOCAL端具有32位数据总线宽度和66MHz时钟频率。PEX8311支持三种LOCAL总线接口模式:C模式、J模式和M模式,可方便与多种微处理器连接。实际中常用的还是时序逻辑相对简单的C模式,即非复用的地址/数据总线模式,适用于Interli960、DSPs、通用ASICs及FPGA等[1]。PEX8311的LOCAL和PCI-E之间具有三种数据传输模式:直接主模式、直接从模式和DMA模式。在DMA方式中,PEX8311提供了两个独立的DMA通道,支持聚散模式和块模式。本系统中采用DMA总线突发模式的块传输。3.2基于PEX8311的高速数据接口差分数据接口系统采用DS90LV032A作为差分信号接收器将三路LVDS信号分别转换为LVTTL电平并送入CPLD。DS90LV032A是NationalSemiconductor公司推出的一款3VLVDS四路CMOS差分信号接收器,其最大转换速率大于400Mbps,而且该芯片具有相对应的LVDS驱动器DS90LV031A,易于搭建整个收发系统。高速数据缓存由于PEX8311内部仅提供6个最大深度64Dwords的FIFO,对于高速实时的DMA传输可能会造成数据的溢出丢失,所以需要外部扩展大容量的FIFO缓存。综合考虑系统的通用性和简单性,采用IDT公司的IDT72V36100作为本系统的高速数据缓存。该芯片提供65536*36Bits的存储空间,并具有灵活的输入、输出数据线宽度和133MHz的工作频率,同时提供EF(空标志)、FF(满标志)、HF(半满标志)等信号,可方便为CPLD提供时序控制。在本系统中,设置FIFO的总线配置信号BM、IW、OW全为高,IP为低,使其输入输出数据宽度分别为8bits和32bits。设置FWFT/SI信号为低,选择其工作在IDT标准模式,控制FIFO中的数据在REN低有效时才能读出。本地总线可编程逻辑控制系统采用Xilinx的XC9500XL-5系列CPLD作为本地总线的逻辑控制器,负责协调好与FIFO和PEX8311之间的时序关系。系统启动时,首先由驱动程序向PEX8311发送复位信号,通过LRESET复位本地端的CPLD和FIFO,清空FIFO内部数据,并将HF和FF标志置为无效,然后等待数据的输入,从而控制了接收数据的有用性和连续性。数据和时钟进入CPLD后,首先将I、Q两路信号在4个CLK周期下合并为8位并行数据,并在每一个写时钟WCLK的上升沿写入FIFO。当FIFO中的数据达到半满状态时,HF标志位有效,通过CPLD向PEX8311发出DMA中断请求。PC机响应中断后,设置DMA传输模式,传输字节数及地址信号等。PEX8311通过LHOLD申请控制本地总线,待收到CPLD发出的LHOLDA响应信号后获得本地总线的控制权,并立即启动4字节突发模式的BlockDMA周期。CPLD在收到有效的LW/R读信号和ADS地址选通信号后,发出Ready本地准备好应答信号,同时使能FIFO的读允许REN和输出允许OE。在传输最后一个数据时,PEX8311发出BLAST信号,CPLD置FIFO读使能和输出使能无效,并取消Ready从而结束DMA周期。实际接收测试过程中由数字示波器采集到的波形如图2所示。图2PEX8311四字节突发BlockDMA传输周期3.3系统PCB设计由于PCI-E总线速率较高,所以对板卡的PCB设计有严格的布线要求。系统中PEX8311需要3.3VI/O、2.5VLocal内核、1.5VPCI-E内核以及1.5VPLL4种电源供电,所以考虑电源层分割的困难,板卡采用两个电源层,同时需要做好电源的完整性分析,从而有效降低系统的辐射干扰。对于PCI-Eedge,要求差分时钟对线宽大于5mils,间距小于11.25mils,与其他差分对间距大于20mils;对于收发数据的差分对,要求走线长度相差不能超过5mils,而且线宽要保持一致。为了有效抑制系统的电磁干扰,提高系统的电磁兼容性,系统中所有芯片的电源引脚,尤其是金手指的PCIE12V和PCIE3.3V附近都需要放置去耦合电容。3.4高速系统信号完整性分析设计信号的完整性是指信号通过电路传输后,接收端波形与信号发送端发送的波形在容许的误差范围内保持一致,并且空间邻近的传输信号间的相互影响也在容许的范围之内。因此,信号的完整性分析保证了电路板高速信号的可靠传输。由于实际信号总是存在电压波动,尤其对于高速信号而言,信号的过冲、振铃、反射以及信号的延迟和串扰现象更为显著。在本设计中,利用PADS公司的HyperLynx及芯片厂家的IBIS模型对板卡上的高速时钟及主要信号进行完整性分析。通过实际的仿真分析,需要在信号线上串联终端负载阻抗以减小过高的上冲和下冲,同时调整LCALBUS的时钟走线,避免时钟的延迟对数据造成错误采样。4系统软件设计本系统软件设计包括驱动程序和接收应用程序两部分,其中驱动程序利用NuMega
本文标题:基于PCIExpress总线高速数据采集卡的设计与实现
链接地址:https://www.777doc.com/doc-1234751 .html