《基于pci总线的高速数据采集卡设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
武汉理工大学硕士学位论文基于PCI总线的高速数据采集卡设计姓名:程松林申请学位级别:硕士专业:通信与信息系统指导教师:周祖德20060501 武汉理工大学硕士学位论文摘要随着大规模集成电路和计算机技术的飞速发展,数字技术渗透到各个技术领域。但是自然界中大多数物理信号却是模拟信号,因此,将模拟信号转化成数字信号是进行信号处理和分析的首要前提。数据采集系统即是完成将模拟信号转换成计算机能识别的数字信号的任务。传统的数据采集系统是基于ISA总线设计的,由于ISA总线带宽的限制,无法满足高速数据传输的要求。而PCI局部总线的引入,打破了数据传输的瓶颈,它以其优异的性能成为微机总线的主流。基于PCI总线的数据采集系统是高速数据采集的发展方向。传统数据采集卡一般使用SRmd或SDRAM作为数据缓存,SRAM容量小,价格昂贵,SDRAM价格便宜,但数据传输带宽有限,本文采用DDRSⅨ淑M作为缓存,存取速率离,存储容量大,且价格便宜。本文从硬件设计和驱动程序开发两个方面对基于PCI总线的高速数据采集卡进行了研究。论文中酋先讨论了DDRSDRAM的特性,DDR控制器的基本结构和时序,以及PCI总线的基本结构和时序,并介绍了FPGA的基本原理和开发过程。然后对基于PCI总线的商速数据采集卡的各模块进行了详细的设计,包括AD转换接口设计,DDR控制器设计和PC|总线控制器模块设计。文巾采用FPGA实现了DDR控制器功能和PCI总线控制器功能。外加DDR存储器作为高速缓存是提高数据采集卡采样速率的一个重要措施,AD转换芯片的数据通过DDR控制器存入DDRSDRAM,DDRSDRAM中的数据再通过PCI总线传给上位机处理,完成了对信号的采样、数据的存储和传输功能。论文给出了用FPGA进行时序逻辑设计的基本原理图和Verilog程序。最后还介绍了对PCI总线数据采集卡驱动程序WDM的开发及编程方法。通过仿真和测试,该数据采集卡采样率可达到250MSPS,存储容量可达1GByte。关键字:数据采集,PCI总线,DDR控制器,FPGA 武汉理工大学硕士学位论文Abstr∞tWiththerapiddevelopmentofLSI(LargeScaleIntegration)andcomputerscience,digitaltechnologyhaspenetratedintoeveryfieldofknowledge.Asmostph)7sicalsignalsinthenatureareanalogsignals,theconversionfromanalOgsignalstodi西alsignalshasbecomethekeystepintheprocessofsignalprocessingandanalysiscontr01.Dataacquisitionsystemconvertsanalogsignalstodigitalsignals,whichcallberecognizedbycomputer.TraditionaldataacquisitionsystemisdesignedbasedonISAbus.butwiththelimitsofitsbandwidth,itisdifficulttoperformhigh.speeddatatransmission.PCIlocalbus,withitsoutstandingcapabilityandexcellentadaptation,hasresolvedthisproblemandbecomethemainbus证thecomputer.PCIbus.baseddataacquisitionsystemhasplayedadollIinantroleinhigh-speeddataacquisition.Meanwhile.traditionaldataacquisitionboardusesSRAMorSDRAMasdambuffer.AsSRAMhaslOWcapacityand圭li啦lcost,whileSD洲haslOWcostandlimitedtransmissionbandwidth.DDRSDRAMiSadoptedasdatabu船rinthispaper,whichhasmeritofhigllspeed,hishcapacityandlowCOSt.PCIbus-basedhigh·speeddataacquisitionboard,includinghardwarcdesignanddriverprogram.isresearchedinthispaper,FeaturesofDDRSDRAM,basicconfigurationandtimingofDDRcontroller,togetherwithbasicconfigurationandtimingofPCIbus,arediscussedfirst,whilebasictheoryanddevelopmentprocessofFPGAareintroduced.TheneachmoduleonPCIbus-basedhi曲-speeddataacquisitionboardiSdetaileddesigned.FPGAiSadoptedtorealizefunctionsofDDRcontrollerandPCIbuscontrollerinthispaper.TheaccessionofDDRcontrolleraSdatabufferiSaneffectivemo.冶.surctoenhancethesamplingfrequencyofdataacquisition.DataafterA/DconversionwillbestoredinDDRSDRAMthroughDDRcontroller,andthenthestoreddatawillbetransmittedbyPCIbustouppercomputerforprocessing.Thewholeboardrealizesfunctionsofsignalsampling,datastorageanddatatransmission.1kschematicsand、铡logsourceprogramoftiminglogicaldesignusingFPGAareprescntcdinthepaper.Attheendofthepaper,developmentofdriverprogramWDMforPCIbus—baseddataacquisition:boardiSmentioned.mughsimulationtest.thesamplingfrequencyoftheboardCanreach250MSPS,whilestoragecapacityCanachieve1GByte.K目ywords:DataAcquisition,PCIBus,DDRController,FPGAlI 独创性声明y861405本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构的学位或证书而使用过昀材料。与我一同工作的同志对本研究所傲豹任何贡献均已在论文中作了明确的说明并表示了谢意。签名:崔鳌毖趁日期:滏堕:里:塑关于论文使用授权的说明本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权保留、送交论文的复印件,允许论文被壹阅和借阕;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其饱复制手段保存论文。f保密的论文在解密后应遵守此规定)签名:毽妊拄(注:此页内容装订在论文扉页) 武汉理工大学硕士学位论文第1章绪论1.1研究的目的与意义数据采集是指将温度、压力、流量、位移等模拟量采集、转换成数字餐后,再由计算机进行存储、处理、显示或打印的过程。相应的系统称为数据采集系统。随着计算机技术的飞速发展和普及,数据采集系统也迅速地得到应用,在生产过程中,应用这一系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量,降低成本提供信息和手段。在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。随着技术的发展,各种各样基于数字化的产品不断推陈出新,给我们的生活带来了极大的好处,数字化之所以能如此得到广泛拓展开来,其主要在于以下两个优点:其一是数字处理灵活、方便。在软件无线电领域,正在构建一个较通用的平台,通过软件来实现现在许多“僵化”硬件平台的功能,这正是基于数字化带来的灵活性;其二是数字系统稳定可靠。在早期,较之模拟系统,数字系统的最大优点就在于有良好的稳定性【1】【21。数据采集的任务,具体地说,就是采集传感器输出的模拟信号并转换成计算机能识别的数字信号,然后送入计算机或相应的信号处理系统,根据不同需要进行相应的计算和处理,得出所需的数据;与此同时,将计算机得到的数据进行显示或打印,以便实现对某些物理量的监视,其中一部分数据还将被控制生产过程中的计算机控制系统用来控制某些物理量。数据采集几乎无孔不入,它已渗透到了地质、医药器械、雷达、通讯、遥感遥测等各个领域,为更好的获取信息提供了良好的基础。另外,评估一个信号源的质量,也可以通过数据采集的手段将信号采集存入计算机,再通过各种处理方式来评价信号源的好坏。这时,该数据采集系统就类似一台测试仪器。当然,我们得认可系统的各项指标满足要求【3l[舢。 武汉理』:=犬学硕士学位论文1.2数据采集的匿内外研究现状随着微电子技术的飞速发展,高速数据采集技术也得到了长足的发展。数字存储示波器是典型的数据采集系统。随着其采样率的不断提高,它已成为高速或超高速数据采集系统。制造高速或超高速采样率的数字存储示波器的公司主要有Agilent,Teklxonix,Nicolet和Lecroy等,数字存储示波器的最高采样率也已达到lOGSPS。另外,逻辑分析仪、频谱分析仪、网络分析仪等也属于超高速数据采集系统范畴{5】161。基予标准总线并带有高速DSP的高速数据采集板卡产品非常多,技术先进、市场主流的厂商主要有SpectrumSignalProcessing,SPEC,Signatec,Acquisitionlogic,Bluewave等公司。下面扼要介绍目前世界上最先进的数据采集系统产品及其技术性能指标。SpectrumSignalProcessing公司推出的采样率200MSPS8bADVME板卡是基于VME总线和高速DSP的超高速数据采集和处理系统。该板卡集成有一片1.2亿次/秒浮点数运算速度ADSP2106xSHARC处理器。其主要技术指标还包括:128KB×48b或512KBx48b零等待SRAM;6个SHARCLink口:输入电压范围士O.5V;输入时钟可选为200MHz,100MHz或50MHz;多种触发模式;两个96脚VME总线连接器[§PPl和用以及6个SHARClink口连接器。该板卡配有初始化与数据采集软件,并支持APEx并行软件开发工具。SPEC公司的SPl225是带有1GSPS8b精度数字化仪的超高速数据采集模块(HSDAM)PCI卡。最高可进行500MHz或1GHz波形分析。SPl225I作在连续采样模式,可进行预触发数据存储。在波形数字化并存储在256KB存储嚣后,数据可通过PCI总线传输给PC机。采集系统的核·15,是SPEC'sHSDAMPCB模块,HSDAMPCB模块包含一个定制的GaAsASIC数据采集控制器、一个AD转换器及256KB存储器。该板卡触发方式、门限及采集模式均可通过PCI总线由用户编程设置。其它特性包括可编程数字门限比较器、可编程采样率卜1,2,4,⋯2561和可编程预触发延迟等。其应用领域包括静态分析、频谱分析、激光多普勒速度测量、光时间域反射测量等。Signatec公司是有着十多年历史的,面向商性能数据采集、信号处理、波形产生和数据存储等应用的PC机板卡设计制造商。Signatcc推出的AD板卡PDA12A采样率为125MSPS,分辨率为12b,信号带宽由DC~50MHz。可通过SAB总 武汉理工大学硕士学位论文线(SignatecAuxiliaryBus)以250MBps的速率向其它处理、回放或存储器件传输数据。还能通过PCI总线DMA模式以100MBps速率传输数据。PDA12A实际上是由双通道信号同时采样,每通道采样率62.5MSPS,两通道正交采样可获取125MSPS采样率。单通道的数据存储空间为256KBxl2b或1MBXl2b两种可选。Signatec公司的基于PCI总线8bAD板卡PDA500采样率高达500MSPS,带宽为DC~500MHz。可通过SAB2总线(SignatecAuxiliaryBus2)以500MBps的速率向其它处理、回放或存储器件传输数据。还能通过PCI总线DMA模式以100MBps速率传输数据。存储容量1MB或4MB两种可选,用主从配置模式最多4块PDA500可互联用于多通道高速同步采集。根据内存配置与SAB结构豹不同,其报价从$6100到$75001,¨i“。2001年Acquisitionlogic公司推出基于PCI总线的采样率分别为500MSPS,1GSPS8b数据采集板卡AL500和AL5lG,其存储深度为64MB,256MB和1000MB三种可选。PCI总线为主模式,数据宽度为32b,时钟频率为33MHz,突发模式下传输速率高达133MBps。两种板卡还具有DSP功能:通过对板卡上现场可编程门阵列FPGA硬件实现信号处理:能实时地完成输入数据为200MHz带宽2次型插值或400MHz带宽4次型插值运算等。2003年2月Ultraview公司制造出基于PCI总线的采样率为1.25GSPS8b数据采集卡,型号为AD21250DMA,其存储深度为8GB。在66MHz和64b数据宽度下,PCI总线DMA模式向主机传输数据速率可达320MBps。此卡可用于基于PCI总线的运行操作系统为Solaris8Unix的Sparc所有平台。其报价为$12955。通过上面的介绍可看出:除了属于通用仪器的超高速数据采集系统以外,对于其它超高速数据采集系统而言,基于标准总线、具有海量数据存储深度、高速DsP能力和超高速AD所组成的超高速数据采集系统为当今发展趋势。在设计和选用系统时,就要有这四方面的考虑,即不但要考虑超高速数据采集部分,还要考虑其标准总线接口、数据存储深度和DSP处理器的性能,因为系统的艇体性能已不单是超高速数据采集部分的性能,标准总线接口、数据存储深度和DSP也已成为评价系统整体性能的重要指标。对于不同应用领域或不困的应用环境和要求,系统的这四个组成部分会有所区别。在工业控制、自动测试和信号处理领域应用广泛的标准总线有CompactPCI,PXI,PCI,PMC,VME和vxI等,每一种总线都有自己的特点,所以总线的选择对于系统来说是很重要的。目前国内市场上的高速数据采集卡的采样频率⋯般在100MSPS以内,这主 武汉理工大学硕士学位论文要是受到AD芯片和存储器带宽的影响。高速AD芯片全靠从国外进口,一是价格非常昂贵,二是区域性的技术保密,解决这种局面的途径需要从芯片设计上着手。随着DDR存储器芯片在PC上的广泛应用,高端嵌入式系统设计领域也开始使用DDR存储器,本论文在FPGA上实现了DDR控制器接口,使用DDR存储器芯片作为缓存,提高了存储速率,加大了存储容量,解决了存储带宽的影响[911101。1.3本论文的主要工作本文从硬件设计和驱动程序开发两个方面对基于PCI总线的高速数据采集卡进行了研究。论文中首先讨论了DDRSDRAM的特性,DDR控制器的基本结构和时序,以及PCI总线的基本结构和时序,并介绍了FPGA的基本原理和开发过程。然后对基于PCI总线的高速数据采集卡的备模块进行了详细的设计,包括AD转换接口设计,DDR控制器设计和PCI总线控制器模块设计。文中采用FPGA实现了DDR控制器功能和PCI总线控制器功能。外加DDR存储器作为高速缓存是提高数据采集卡采样速率的一个重要措施,AD转换芯片的数据通过DDR控制器存入DDRSDRAM,DDRSDRAM中的数据再通过PCI总线传给上位机处理,完成了对信号的采样、数据的存储和传输功能。论文给出了用FPGA进行时序逻辑设计的基本原理图和Verilog程序。最后还介绍了对PCI总线数据采集卡驱动程序wDM的开发及编程方法。本文共分为五章:第一章绪论,概述了研究数据采集系统的目的和意义,以及国内外数据采集系统的研究现状;第二章介绍了DDR控制器以及PCI总线协议的相关理论,同时介绍了FPGA的开发流程和Verilog语言相关知识:第三章首先对高速数据采集卡进行了总体设计,然后对各个模块的设计做了详细分析:第四章论述了数据采集卡的驱动开发和应用软件设计:第五章对所设计的数据采集卡进行了测试和性能分析,得出了结论;第六章归纳了本文的主要工作,并展望了今后的研究工作。 武汉理工大学硕士学位论文第2章D豫洲及PCI协议研究DDRSDRAM是一种带同步接口的高速动态随机存储器,这种同步接口和其内部的Pipeline结构,使它具有非常高的数据传输率。DDRSDRAM采用了多块(Bank)存储器结构和突发模式,Bank的数量以及荦亍列地址韵位数主要取决于存储器的容量,每一个bank通过行列来寻址。列地址空间对应一页的存储器空间(OrJDDRSDRAM中的1页即为DDRSDRAM一行的数据容量)。DDRSDRAM与SDSDRAM最大的不同在于前者内部有DLL模块和DQS模块,因而能提供很好的DQS信号用于数据采样,使得DDR可以在时钟的上下边沿都进行数据采样,而后者只在时钟的上边沿采样数据【1I】。DDRSDRAM器件的管脚分为以下几类【121:(1)控制信号管脚:包括片选(CS),时钟(CLK).时钟使能(CKE),行、列地址选择(RAS、CAS),读写选择(WE),数据选通(DQS),数据屏蔽(DM)。(2)地址信号管脚:SA,是分时复用管脚。根据行、列地址选择管脚,控制输入的地址为行地址或列地址,而在初始化时用于传送模式字数据给DDRSDRAM内的模式寄存器。(3)数据管脚:DQ,是双向管脚。2.1.2叻R爨利落的¨DDRSDRAM的命令由一些专用控制引脚和地址线辅助完成。cs/RAs/CAs/wR在时钟上升沿的状态决定具体操作动作,地址线和BANK选择控制线在部分命令中作为辅助参数输入。特鄹需要注意的是DDR_SDRAM的DQS信号十分特殊,DQS在DDRSDRAM的写操作时是由外部提供给DDRSDRAM,而在读DDRSDRAM时,DQS由DDRSDRAM提供给外部用户。由 武汉理工大学硕士学位论文于特殊的存储结构,DDRSDP渔M命令比较多,其命令的真值袭如表2-1所示。表2-1DDRSDR,蛆vt的命令真值表一_一AIO/AP㈡A,0:热NoteCoMM_∞CKl弧☆雨器;醛WEB^吼1RegisterExtendedMRSLOPCOOERegisterModeRegts‘erSetLOPCODE{2A时ORefreshHLHEntTyHExflL3BankA酬ve&RowAddfHXLHRowAddressRead&IAutoPlBchargeDisableHXLVocd们pc。I”mnA州俯昌s1AutoPrechargeEnableH】⋯Write&IAutoPrechargeDisableVLc曲聃flo““m“A60佬辅IAutoPmchjrgeEnable4,68urstStopHXLHBankSeledbnV⋯⋯’ge㈨BanksXLHXEntry}{AcmvePowerDownExitLHXEntryLHPrechargePowerOowrlModeExitLDM(UDM/LDMforx16only)8HXgNooperation(NOP)NotdefinedLH§◆空操作(NOP):表示空操作,可以用来在空闲或等待状态防止其它的命令被执行。◆模式字设置(EMRS、MRS):在时钟的上升延,当DDRSDRJuV[检测到信号CS=0,RAS=0,GAS=0,WE=0,则进行模式字设置操作(EMRS、MRS)。该操作通过行列地址(A0.A11)和BANK地址(BA0、BAI)的值来配置器件模式寄存器,如果没有掉电或被重新配噩,寄存器中的值会一直保持不变。模式寄存器的设置值必须与器件的延迟参数以及与读写操作的控制时序等要求一致,否则将导致错误或不可靠的读写。本系统使用的是SAMSUNG公司的DDRSDRAM,该器件有两个模式寄存器:模式寄存器(MRS)和扩展模式寄存器(EMRS)。通过BA0来判断是对哪个模式寄存器设置。MRS模式寄存器用来确定DDRsDRAM的其体】:作模式。内容包括:定义突发读写的数据长度,突发的类型(即选择是顺序突发还是问隔突发),CAS的大小(即读命令发出和第一个有效数据读出之间的时间间隔大6 武汉理。J:人学硕士学位论文小),运行模式(即正常模式或者厂商测试模式选择)和DLLReset。而EMRS主要用来控制一些MRS未定义的功能设景。包括:DLL的使能开启选择等。◆BANK激活(ACTIVE)在对DDRSDRAM进行读、写操作之前,必须先用ACTIVE命令来使需要操作的行处于“打开”的状态。在时钟的上升延,当DDRSDRAM检测到信号CS=0,RAS=0,CAS=I,WE=I,则进行ACTIVE操作。ACTIVE命令用来激活特定BANK,并打开该BANK中的某一行,为接下来的操作做准备。在进行ACTIVE命令的同时,BA0和BAl的值用来选择需要激活的BANK,地址线A0.A11的值用来选择相应的行。BANK激活命令到后续读写的延迟必须一;小于DDRSDRAM的RAS到CAS延迟时间指标(tRCD)。所以在控制DDRSDRAM时,激活BANK后,必须等至少tRCD的时间后才能进行有效的读、写操作。此外,当一个BANK中有一某行被打开后,如果要想读或写同一个BANK中的其它行,就必须先关掉该BANK,然后再重新激活该BANK并打开新的一行。对BANK进行PRECHARGE操作即可关掉该BANK,两次激活的间隔应不小于RAS周期时间指标(tRC)。被打开的行保持打开/激活状态直到下一次所在BANK执行Precharge命令。BANK激活有效时间为tRAS(max)。◆读操作(READ)在一‘个BANK被激活后,经过tRCDR时间就可以执行读操作了。在时钟的上升延,当DDRSDlUM检测到信号CS=0,RAS=I,CAS=0,WE=I,贝|:|进行读操作。在READ命令发出的同时,BA0和BAl的值用来选择要操作的bank,地址线A0,A7(不同器件的列地址宽度不同)的值用来选择开始的列地址。AP的值决定是否需要自动PRECHARGE这个功能(注意,通常不同的器件的AP不同,本系统所用DDRSDRAM器件的A_P为A8)。如果AP=I,那么在读完后,DDRSDRAM芯片会自动执行内部PRECHARGE的命令,在这个内部PRECHARGE命令没有执行完之前,对该bank的任何操作(READ,WRITE,PRECHARGE,ACTIVE)都是无效的:如果不选用自动PRECHARGE即AP=0,那么被访问的行在读完后仍保持“打开”的状态可供下次读写(注意,该行打开的有效时间为tRAS(max),不同器件tRAS不同)。在发出READ命令后,要等待CAS延时后有效数据才会出现在数据线上,CAS延时一般为两个或三个时钟周期,不同器件的CAS时间是不同的。要注意的是,在DDRSDRAM的READ操作时,DQS信号是由DDRSDRAM器件自己产生的。读操作时,DQ与DQS 武汉理工人学硕士学位论文的关系如图2-t所示:CLK个个个个小个介f删。1_《P—广—广]r_1—呵》T。QS十—十—1,r\√、一卜—t-—1_。Q}{_卅斗{{图2一l读操作的DQ与DQS关系图◆写操作(WRITE)与READ命令相似,在一个BANK被激活后tRCDW经过时间,就可以执行写操作了。在时钟的上升延,当DDRSDRAM检测到信号CS=0,RAS=l,CAS=0,WE=0,则进行写操作。在WRITE命令发出的同时,BA0和BAl的值用来选择要操作的bank,地址线A0.A8(16位数据的情况)的值用来选择开始的列地址。AP的值决定是否需要自动PRECHARGE这个功能,如果选用,那么在写完后芯片会自动执行内部PRECHARGE的命令,在这个内部PREcHARGE命令没有执行完之前,对该bank的任俺操作(READ,WRITE,PRECHARGE,ACTIVE)都是无效的;如果不选用自动PRECHARGE,那么被访问的行在写完后仍保持“打开”的状态可供下次读写(注意,该行打开的有效时问为tRAS(max))。在对DDRSDRAM写操作时,在输入数据的同时,须由外部提供DQS信号给DDRSDRAM器件的。写操作时DQ与DQS的关系如图2.2所示:c.-K个个个个小介一个小个彳州。1-哪P—r]广1—1—下—下
此文档下载收益归作者所有