《【硕士论文】基于FPGA实现的PCI数据采集卡的研究.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
华北工学院硕士学位论文基于FPGA实现的PCI数据采集卡的研究姓名:赵敏申请学位级别:硕士专业:控制理论与控制工程指导教师:任作新20020101 华北工学院硕士学位论文摘要本文在分析PCI规范的基础上,开发出基于PCI总线的高速数据采集卡。用FPGA实现了33MHz、32位的PCI协议,并设计了用FPGA控制高速A/D转换器的电路,构成一个PCI数据采集系统,开发了系统的设备驱动程序。采用FPGA实现PCI协议和控制A/D转换器,使系统设计非常灵活、硬件成本低和可靠性高,具有很高的性价比。FPGA设计采用自上向下的设计方法,选用VHDL对电路进行描述,并在EDA工具下综合和仿真,使得较为复杂的电路设计能在短期内完成。关键词:PCI;FPGA:A/D转换;数掘采集VHDL:翻k卜.i匈下;EDA 兰i!三兰堕堡主兰垡堕奎AbstractBasedontheanalysisofPCISpecification,thispaperhasdevelopedaPCIhigh—speeddataacquirementsystem.Thepapernotonlyimplementsa33M,33bitPCIprotocolbutalsodesignshigh·speedA/DthecircuitbyusingFPGAcontrollingwhichcomposesadataacquirementsystem,anddevelopsdevicedrive;.SomeadvantagesofthemethodwhichimplementPCIbusandA/DcontrolcircuitusingFPGAlieinflexiblesystem,lowcost,highreliabilityandhighquality.ThisFPGAdesignintroducesthemethodwhichisfromtoptobutton,describesthedigitalcircuitusingVHDL,synthesizesandemulatesusingEDAtools.Sothatwecancompletecomplexdesigninshorttimebvusingthesemethods.KeywordsPCI;FPGA;A/D;DataAcquirement;VHDL;FromtoptoButton;EDA 华北工学院硕士学位论文第一章绪论1.1系统总线技术的发展微处理器系统总线最初是IBMPC的ISA总线。最初的ISA总线只有8位宽,寻址空间为1M字节,到IBMAT推出时,在原始xT总线接插件上增加了另一种接插件,这就增加了8根附加数据线、4根附加地址线和更多的中断/D姒线。随后,IBM公司在1987年推出Ps/2计算机系列时,曾试图借助卅croChannel总线夺回PC市场。MicroChannel是一条全新总线,改进了自动配置特性(无碗连接地址),速度更快,丽且还提供了任选32位数据和地址支持。但是IBM公司要求制造厂家每销售出一台基于MicroChannel总线的机器{i}5要给mM公司付赞。这种销售策略使MicroChannel总线未能获得火吐『『『场份额。Compaq公司决定采川l!I卧术解决[13M公司的MicroChanne】总线解决的『-日样问题。EISA总线通过使川一种独特的插接件与1SA总线反向jk容,该插接件与[SA边缘插接件兼容。但山于EISA总线特别昂贵,EISA总线并没有受到特别的欢迎。E[SA主要被用到需要多个网卡和多个磁盘控制器的服务器上,这就能够有效地使用总线控制特性和该总线的额外带宽。当4S6机器被广泛使刚的时候,就必;!;{为能提供快速觇频和磁盘性能的32他净制定。种标准。山fHSA价格昂贵,所以市场上出现了一种更摘咀的设计,即VESA局部总线。VESA局部总线基本上是486CPU总线到外部接插件的延长部分,这意味着所有VI!SA局部总线卡都是长卡。VESA局部总线有一个非常有限的目标(加速视频和硬盘),所以其设计既简单又便宜。PCI是Intel公司1992年推出的,最初是在486系统上实现的,旨在与VESA.ud,线分享高端PC市场。随着Pentium处理器推入主流PC市场,VESA丛本消失了,PCI取而代之,夺取了大部分Pc市场及相当一部分RISC工作站市场。1.2PCI的发展现状●陌『『:j.寸义乃周边吐缶JJ连(hf。iphL—t.1I(]t)1]li)oflelll.Interconnect) 华北工学院硕士学位论文⋯是一种高带宽、即插即用的总线协议,它被用来满足当今高性能Pc和工作站以及它们的高带宽应用。传统的ISA总线已不能满足如视频系统、图形加速卡、高速网卡、数据采集和数据存储设各的需要,所以PCI总线一出现就在计算机工业得到广泛应用。PCI总线技术规范l’0版由Intel公司开发,现由一个工业协会管理,称为PCISIG,规范的最新版本是2.2。PCI总线相对于ISA总线有以下一些特点和优点【【1:一独立于处理器。为PCI总线设计的器件是针对PCI的,而不是针对处理器的,因此设备的设计独立于处理器的升级。_低功耗。PCI技术规范的主要设计目标是实现尽可能小电流的系统设计。■传输速度高。32位PCI总线在读写传送中支持每秒132Mb的峰值传送速率,对于64位l,CI传送支持每秒264Mb峰值传送速率。对于64位66MttzPCI总线,传送速率可达到每秒528~1b。ISA总线的传送速率每秒只有20Mb左右。■地址自动配置。配黄寄存器的全位级别规范,支持自动的设备检验与配置,PCI设备的内存和I/0地址是由软件在系统启动时自动配首:的.不需要像JS^总线那样手动没置。■总线主设备支持。全面支持PcI总线主设备.允许同级PCI总线访问和通过PCI—PCI与扩展总线桥访问主存储器和扩展总线设备。另外,PCI主设备能够访问驻留于总线级别较低的另一个PCI总线上的目标。■软件透明。在与PCI设备或面向扩展总线的同类设备通讯时,软件驱动程序使用相同的命令集和状态定义。由于PCI总线的广泛应用,国外许多公司都在做基于PCI接口的产品,主要有以下几种类型口J:1.单独的PCI接口芯片此类型的主要特点的整个芯片的功能就是实现了PCI接口,主要生产睦商有ANICC和PLX.用的最多为AMCC公司的S5920及S5933两种芯片。它们将复杂的P.Ci总线接口关系转化为简单的8/16/32位附加总线(Add.on&ls)接口关系,并为使用者提供双向FIFO、邮箱等硬件资源。采 华=|t_-E学院硕士学位论文一用S5920及S5933两种芯片进行设计,优点是功能强、可靠性高、设计者可避开复杂的PCI总线接口关系,价格也不贵。其缺点是芯片本身及其所需的非易失性存储器件占用宝贵的板卡面积,设计上也缺少灵活性。2.IP(Intel]ectProperty)核目前,己有国外的芯片生产厂商或IP提供商设计出PCI核。这些PCI核以软件的形式提供,用户需下载到CPLD。或FPGA中。如Xilinx和Altera公司都有针对自己可编程逻辑器件的PCI核,这些一般都经过严格的仿真和测试,用户可以直接使用。设计者将PCI核与用户逻辑综合到一起,可设计出性能价格比最好的单芯片PCI总线接口电路板卡。因此这种方法的特点是功能强、速度高、可靠性好、占用板卡面积最少、硬件成本最低,但IP核价格昂贵,一般要5000-40000万美元左右‘2“。3.PCI协议集成到ASIC中许多专用集成电路在:笛片本身内部包古了PCI总线接口,如图像压缩的:卷片不仅节约了丌发芯片、以太网:芯片等这些通用的;Lt)f本身集成PCI协议,设计中选用这样时f叫,缩短了丌发周期,在一定程度上提高了电路的性能,简化了电路的测试程序。但是带有PCI接口的:占片毕竟是少数,一般是针对性很强的应用,还由大量的应用需要专门的PCI接口。.1.用CP[。D或FPGA设计PCI接口这种方法是设计者自己丌发PCI接口,利用CPLD或FPGA来实现PCI接口,这种设计可以节省丌发成本,对于实验性或少量产品的开发非常适合,用这种方法设计PCI接口有很高的性价比,并能节省板卡面积,降低功耗。本科题就是采用FPGA自行设计PCI接口,并在通用高速数据采集卡中得以应用,并设计了数据采集卡的设备驱动程序。下面介绍与本科题相关的技术国内外现状。1.3相关技术国内外现状1.3.1大规模集成电路技术⋯4‘1从国内外整体看,利用FPGA开发ASIC电路已成为一利t必然趋势。 华.ILI:学院硕十。学位论文电子系统的变革是从A-t一年代的t}·期玎始的,1984年XILINX公司发明了现场可编程门阵列(FPGA),l;:【』后出现了复杂可编程逻辑器件(CPLD)。这些器件山于具有刚户可编程的特性,使得r乜子系统的波计工程师利用与器件相应的CAD软什,在办公室或实验室就可以设计自己的ASIC器件,实现用户规定的各种专门用途,因此构成了可编程专用集成电路(ASIC)的一类器件。采用可编程ASIC,对于半导体制造厂家可按照一定的规格以通用器件-人量的生产,剥于用户可按通用器件从市场上选购,再由用户自己通过编程实现A8IC的要求,由于这种方式剥厂1家和用户都带来好处而受到欢迎,发展也就特别迅速,已经成为一个很重要的实现ASIC的手段。为了缩短VLSI的开发周期,逻辑合成方式在九十年代初成为设计标准,在以后的白顶向下的设计系统中,以逻辑合成技术为主,增补了各种的_[具,使具有多功能的复杂VLSI设计能够用EDA软件来实现。为了在⋯个:吝片上实现集成的设计,能够在短时inJ内将包含数千只品体管的单片:占』;。集成方案』1发出来,需要采用综合利用知谚{产权∽)功能块进行VLSI设汁的方法。所涮IP功能块是以VHDL语言描述的构成VLSI中各种功能J丫L元的软件群。IP助能块是要挝供中央处耻器(CPUl、数字信号处理器(DSP)、外设互联接EI(PCI)平LI通用串行总线接口(USB)等足够可靠的各种的功能块。这就大大方便了集成:B片的丌发。l_3.2硬件描述语言与EDA工具对于复杂的数字系统而言,用硬件描述语言’已成为当代数字系统的主要设计方法。对数字系统的描述可以在不同的层次上进行,即可分为系统行为级、行为处理级、寄存器传输级、逻辑门级和电路级等五个层次。最常用的硬件描述语言是VttD[。和VerilogHD[.,本设计采用的是VHDL。VHDL(VIl8ICItardareDescriptionLanguage)是美国国防部在70年代末和80年代初提出的VHSIC(VeryHighSpeedIntegragtedCircuit)计划的产物,支持硬件的设计、综合、验证和测试。VHDL于1987年由IEEEl076标准所确认。1993年,IEEEl076标准背升级为IEEEl164。VHDL己成为数字电路和系统的设计、综合、仿真的标准。VHDL因其强大的语言结构,多 华北I.学院硕十学位论文层次的描述功能,良好的移植性以及快速的ASIC转换能力,获得广泛的应用Ij9】【40㈣。VerilogHDL也是非常常用的硬件描述语言,语法和C特别相似,因此被更多人接受。Verilog最初由Gateway系统设计公司发明,Verilog语言于1995年成为IEEE标准,称为IEEEstdl364-1995。完整的标准在Verilog硬件描述语言参考手册中有详细的描述。随着电子系统设计复杂程度的不断增加,仅靠手工进行电子系统的设计已经无法满足要求,迫切需要更高、更快速和更有效的电子设计自动化EDA(E1ectroniCDesignAutomation)工具。业界最著名的生产EDA工具的公司有Cadence、Synopsys、Mentor和Avant等,每个公司基本都有一整套解决方案,从设计输入、仿真、综合、到后端布局。近年来,许多生产可编程逻辑器件的公司多相继推出适于本公司器件的ED^工具。这些工具对硬件的要求比较低,运行平台一般是PC机和WLndows或WindowsNT操作系统,价格相对也比较便宜。我们设计采用的EDA软件就是Xilinx公司的FoundationlSE,里面集成了Synopsys的综合工具FPGAExpress,Mentor公司的Modelsim仿真工具以及I-3己的布局和线等模块,使用非常方便。1.3.3驱动程序相关技术【7118㈣¨0I从编摇一I:具米祈,VireoSoftware公司f内VtoolsD提供方便快键的编程手段。程序可利用VisualC十+的,『:发环境编写自己的VxD。除此之外,也有一些公司提供了一些VxD的向导器以帮助用户生成C/c++的程序框架,使用它们可大大提高编程的效率,其中主要使用Vtoolsd95,VxD、=witer。调试运行在rin90级的驱动程序相当困难的,VC++及MASM中的调试均不能满足需要,而需要专门的调试环境:Microsoft的WDEB386以及Numega的SofllCE工具。当然也可以是用微软为设备开发者提供的软件包Windows95DeviceDriverⅪt(DDK)作为开发工具。这个软件包包括了有关设备的开发文档,编译需要的头文件、库文件,调试环境和程序规范。在DDK中还定义了一些设备的底层服务,象DMA服务,中断服务,内存管理服务,可安装文件系统服务等等但由于DDK主要使用汇编语言描述,开发起来比较困难,通常选用VtoolsD作为开发工具。VxD技术适用于 华北工学院硕士学位论文Windows9x操作系统,WindowsNT不支持此项技术,而是采用更为先进的面向对象的驱动程序模型,例如:WDM(WindowsDeviceManeger)。Jungo公司的Windriver工具更加简化了开发设备驱动的难度,用Windriver开发的驱动程序在许多平台代码兼容,Windriver提供了开发高性能驱动程序的完全的方案,现行主要支持PCI、PCMCIA、ISA和USB。用Windriver丌发设备驱动程序DDK或任何系统编程的知识,丌发非常简单,但Windfi、er开发的驱动程序比直接用DDK或Vtools工具丌发效率要低。1.4本人所做的工作及论文安排术人在认真消化PC【规范的基础一h研究用Fl,GA实现PCI协以的方法,jI:JIjVItDI.i52计⋯33MIIz的32位}】cj核,在EDA:I:j}仿真和测试通过,仡此I,c1核毡础上敬计了旗】--l,Cl总线的c渝躯数据采集},并编写了改播gK动f‘£J卜{fI』煎』H软1,F。沦史安排为:木章主要介绍了谍题的研究背景、研究内容和部分川关技术;第二章在介坌fjPCI规范、FPGA、A/D转换的基础上,提出了系统的总阵设计方案:第三章介绍了PCIm议和数据采集卡用户端的FPGA的实现:在第四章介纠PCI的仿真时序和设计中的难点,第h章介绍了系统驱动程序的殴汁;第六章刈全文作了简要的总结。 华北工学院硕I学位论文第二章PCI数据采集系统的整体设计整个数据采集卡除A/D转换等少量部件外基本上都用一片FPGA实现,其中PCI总线控制器的设计是关键部分,是本科题的重点,也直接关系到整个系统的性能。A/D转换器的产品和种类非常多,根据实际情况我们选用了~faxim公司的Maxl425,其转换速率为20M/S。本章介绍了PCI总线接口相关理论和A/D转换器的特点,并给出了系统的整体设计框图。2.1PCI系统结构⋯PCI总线是计算机I/0和内存设备的中枢(如图2.1),PCI总线独立于处理器。CpU通过CPg到PC]桥的发镉来访间PCI总线。I/0和内存设备可通过PCI总线来访问,PC【设箭分为日设备平¨目标致街。1;没笛是指能肩功交易的没备,而目标设备只能被访问,不能肩动交易。一般.来说,。卜设备也有fI标i5}笛的功能,因为-1-没备最少必须要实现配置空间。PCI总线能够配合要二R彼:E快速访问或快速访问系统存储器的适配器工作,也能I凹uI叫s姒Ml▲lPcI桥H。从Ml-I,CIBUS2工:网F-视频卡扩展桥FPGAPCI图2.1I,cI结牛勾 华北工学院硕士学位论文让处理器以接近自身总线全速的速度访问适配器。PCI总线的全部读写都可以用突发传送。传送的长度由主设备决定,在交易开始时,目标得到起始地址和交易类型,但没有传送长度。当主设备准备传送每一个数据项时,主设备通知目标是否为最后一个数据项。当最后~个数据项传送后即告结束。2.1.1系统PCI接口信号”1PCI总线设备至少要求有47个引脚。PCI主设备另有两个REq#和GNT#引脚一共49个引脚。还有许多可选的信号,如64位扩展、JTAG边界扫描、目标锁定、Cache支持等,可根据特定需要有选择地实现。PCI总线信号可划分为10大类型,如图2.1所示:地址数抛接u拄制锚;X报告总线仲裁系统PCI兼容设备64位扩J醍接Lj挖制中斯t青速缓冲支持JTAG图2.2PCI总线信号表2.1定义了PCI信号类型,构成PCI总线的信号包括下列电气特性:●IN是作为规范的输入信号数据采集系统的整体设计●OUT是作为规范的输出信号●T/S是双向、三态输入/输出信号●S/T/S是山~个所有者在某一时fhJl3E动的~个持续的三态信号。驱 华北工学院硕七学位论文动一个$/T/S引脚为低电平必须在三态它以前一个时钟,主动驱动它为高},平。一个上拉电阻保持信号为稳定状态,直到有另一个代理接管信号的所有权并驱动它。在系统设计中,电阻是作为中央资源来提供的,信号的下一个拥有者不能早于前一个释放信号后的一个时纠吗Ⅸ动S/l、/S信号。●O,D是一种漏极”路信号,它与其他的代理是线或关系。信号代理是信号有效,一个弱上拉电阻可实现信号返回稳定状态,上拉电阻可维持无效状态,}拉需要2个或3个PCT时钟将信号完全恢复为尢效状态。表2一l1,C1信号类型信号类型描述AD一.{l:0]T/S:j2位地址/数据总线C,B吣j:0]T/S命令/字H使能I?叭川讲S/T/S交易J『:始TIm、#S/T/S1]标准备好1R1)、芸S/7l、/S,卜准备女fDig\Sf:l,#S/,I/S|二=|标{cf|】认交易S1【)聪S/T/SEl标重试、断丌或终止:11)S{?}.1\配置读/写0IKI弋叫钟~胁SH#IN复位RZQ=7r/S主设备要求总线决断『GXT=T/S获得总线【PAR=T/S奇偶校验PERR;S/T/S数据奇偶校验错SfⅢH;S/T/S地址奇偶校验错2.1.2PcI系统输出接口数据传输【2J阿I,童线32f≯的数据宽度和:m11Iz的L作频率,与以扦的总线十¨比人 华北工学院硕士学位论文大提高了数据吞吐能力。当PCI总线的工作频率为33MHz,数据宽度为32位(DWORD)时,其理论数据传输率应为:33MH:×32位:-8=33×4=132(MB/s)理论数据传输率是忽略总线周期中启动和结束时间而求得的,即假定总线工作期间的每个节拍都用于传输数据,或者说一次猝发传送可达到无限个数据周期,但实际上主桥限制了一次猝发传送中数据周期的个数是有限的,当所需数据周期个数超过该限定值时,主桥将自动结束该总线周期,转入下一周期。也就是说批量数据传输是由多个传送周期完成的。由于在每一传送周期中都存在启动和结束时间(非数据周期),所以PCI总线的实际数据传输率远远小于理论数据传输率。造成这一结果的原因主要有两个方面:1.土挢中数据缓冲区对数据传输率的影响主桥是微处理器、Cache、主存子系统和PeI总线之间的界面。在主桥中有.1个数据缓川夏,它们在两条总线之问起缓冲作用,以使两条总线尽可能高的速度工作而不十廿互制约。其中,写缓冲区(writePostingbuffer)从一条总线』二接收数据并给出响应,使该总线可以丌始其它工作,在另一条总线空闲时,主桥将数据写出:读预取缓冲区(readpre—fetchbuffer)从读操作中获得地址,并将该地址的后续数据一起读出,其目的是提高读取速度。因为根据主存访问的局部性行为理论,这些后续数据极可能是将来要读的数据,这些缓存于读预取缓冲区中的数据一直保留到读操作结束。主桥中的数据缓冲区提高了系统性能,从理论上浣缓冲区越大越好,但是缓冲区太大,数据一致性就很难保证,故缓冲区大小~般只有2、4或8个DWORD。因此,PCI设备对主存访问时一个总线周期最多包含2、4或8个实际数据周期,可传输2、4或8个DWORD,当猝发传输的数目超过该数目时,主桥置STOP#信号生效,中止该周期,在该周期的末节拍重置STOP#信号无效。2.数据一致性对数掘传输率的影响主侨叶l的数掘缓冲区在提高系统性能的同时也会带来数据~致性的问题。Host总线上有L2Cache、主存和CPU中的L1Cache。所咀,PCI总线向主存写时要看I.1、L2Cache是否命中,若命中,就要使相应的CacheLine失效。当PCI总线从主存读时则要看是否命中了LI、L2Cache,是否修改 华北工学院硕士学位论文了CacheLine(设Cache采用写回策略),若命中,则把修改了的CacheLine写回主存,同时也送到主桥的读预取缓冲区中。为保证数据的~致性,主桥把PCt访问的主存地址放到Host总线上由Cache监听。监听过程中,PCI总线上需插入Tw等待周期,这样,由于总线周期加长而其中数据周期不变,使PCI的实际数据传输率进一步减小。考虑到上面的几个因素对数据传输率的影响,系统PCI输出接口从模式工作状态下读数据传输采用猝发方式,一次传输数据不超过240个字节。在这种规范下,主模式工作也很正常。2.2A/D转换器在工业控制、图像处理、网络等应用中都大量用到A/D转换,所谓A/D转换是指通过一定的的电路将模拟量转变为数字量。由许多国内和国外的公司生产A/D转换器,刚的最多有Maxim,National蒋公司的产品,根j】:i:不|司的应门],可选择不同的产I‰A/D转换主要涉及下面几个参数[41。1.转换十☆度【b于漠拟量是连速的,而数字量是离散的的,所以,一般是某个范围中的模拟量对应于某一个数字量。这就是说,在A/D转换时,模拟量和数字量之问不是一~对应的关系。转换精度反映A/D转换器的实际输出接近理想输出的精度程度。A/D转换的精度是常用数字量的最低有效位(LSB)来表示的。设数字量的最低有效位对应于模拟量△,这是称△为数字量的最低有效位的当量。如果模拟量在±△/2范围内都产生想对应的唯一的数字量,那么,这个A/D转换器的精度为±0LSB。2.转换率转换率是指用完成~次A/D转换所需要的时间的倒数来表示的,所以转换率表明了转换的速度。比如完成一次转换所需要的时间是lOOns.那么,转换率为10Ⅳ1Hz。3.分辨率A/D转换的分辨率表明了能够分辨最小的量化信号的能力。通常用位数柬表示^/D转换器的分辨率。刊于一个实现N位转换的;V0转换器来说, 华北工学院硕士学位论文一,它能分辨率的最小量化信号的能力为2N位。比如,对一个12位的A/D转换器,分辨率为2'z=2048位。前面已介绍32位33删zPCI理论上最大可达到132(MB/s),但实际上不可能达到,一般来说可达到50--60IVl/S,本次设计采用的A/D转换器为Maxim公司的采样速率为20MB/S的Maximl425,一共有2路,对PCI总线带宽来说,应能满足实时采样的要求。下面简单地介绍一下Maximl425的特性,具体的可参考Maxim公司的数据手册【27】。1.差分输入减少共模噪声2.信噪比(61db、fin=20Mlqz,59.3db、fin=lOMttz)3.内部2.5V参考电压4.150MIIz输入带宽5.±2V输入范围6.低功耗:172mW2.3数字电路的设计方法2.3.1数字电路的设计步骤f5】【6l由于PcI总线控制器及A/D转换器控制电路采用一片FPGA实现,电路非常复杂,为在短期内完成任务,传统的从具体的门电路、触发器及小规模功能电路入手,通过传统逻辑设计实现数字电路的设计的方法己不能满足趋大规模的数字电路设计。现代数字系统的设计方法更强调设计系统的复杂性、清晰性和可靠性:即从数字电路入手,先将较为复杂的数字系统划分为较为简单的子系统,再通过逻辑和接口设计用各种功能部件实现要求的数字系统,这就是自上向下的设计方法。这种方法要求对所设计的系统进行整体的推敲并全面消化理解,在此基础上将系统划分为数据处理子系统和控制子系统。采用自上而下的设计方法设计数字系统的基本步骤可归纳以下几点:1.明确设计要求一个实际数字系统的设计任务下达后,首先要对其进行消化,详细分析设计要求,明确设计系统需要完成的逻辑功能及其性能指标,并画出系 华北工学院硕士学位论文统的简易框图。2.确定系统方案明确设计要求后,需要进一步确定实现系§逻辑功能的原理和方法。同一系统实现可能有不同的设计方案,设计方案的好坏直接决定系统的质量,因此这一步非常重要。系统方案确定后,应当给出系统方框图、系统流程图,必要时给出系统的时序图。3.数字和控制处理子系统的设计数字子系统实现具体操作和产生的输出,控制子系统是一个时序逻辑系统。简单的系统可能比较容易提出具体的与系统功能要求一致的方案。但对于较为复杂的系统,先构造比较粗糙的、简单的单元结构,随着设汁的逐步深入,再提出较为细致的具体的设计方案。乱硬件实现在上述设计ti%gtiitij二,选择具体的1乜跚,Hj硬件1乜娇实现处理子系统和控制子系统。在进行予系统设计时可用硬件描述语言,利用软件工具对其编译和仿真,软件自动生成下城文件,最终将设计下城到可编程逻辑器件中。2.3.2FPGA结构与原理【28】【29】现场可编程门阵列FPGA(Fie]dProgrammableGateArray的缩写)是美国Xilinx公司与1984年首先丌发的一种通用用户可编程器件。本次设计采用的是x11jnx公司的Sparten[I系列的XC2S30器件。FPGA是由掩膜可编程门阵列和可编程逻辑器件两者演变而来的,因此FPOA既有门陈列器件的高集成度和通用性,又有可编程器件用户可编程的灵活性,对于AISC用户来髓,采用FPGA在实现小型化、集成度和高可靠性的同时,减少了风险,降低了成本,缩短了周期。不同的公司和型号的FPGA在结构和工作原理上有所不同,通常按基本结构、编程次数来划分。1.按基本结构分类FPGA可分为查找表型和多路丌关两种类型。查找表型FPGA是由静态存储器(SRAM)构成的函数发生器组成,用它来实现FPGA的逻辑功能。 华北工学院硕士学位论文xilinx公司和AT&T公司的ORCA都是采用这种结构。多路开关型FPGA逻辑单元的基本结构是多路开关,利用多路开关的灵活的数据选择特性,实现各种逻辑函数的设计,Actel公司的ACT—l、ACt一2等都是采用这种结构。2.按编程次数分类按编程次数可将FPGA划分为一次性编程和多次编程。一次可编程FPGA在编程时将编程数据写入器件内部,一旦编程完后不能再修改。可重复编程FPGA的编程数据不是直接写入FPGA内部,编程数据是存储在外部的EPROH中,若需重编程只需改写EPROM,特别适合新产品的研制和开发,但是保密性比一次可编程器件差。ActelACT系列是一次可编程器件,而Xi1inx的Sparten、Virtex等属于多次可编程器件。F面将以Xjlinx的Sparten[I系列器件为例来简单地介绍FPGA的内{}|j原理和jr发流程。Xilinx的SpartenII系列[ZPGA主要山可编程逻辑模块(C1.B)、输入/输出模块(IOB)以及可编程连线矩阵等构成。可编程逻辑块的是由逻辑单元(LogicCell)构成,一个逻辑单元出一个四输入函数发生器、进位逻辑和存储元素构成。每一个Sparten[I的CLB包括四个逻辑单元。SpartenII的函数发生器是由四输入查找表来实现,查找表除能实现函数发生器外,还能配置成16×1位的同步RAⅥ。SpartenII的IOB支持种类很多类型的I/O口信号标准。这些高速输入输出能支持不同类型的存储器和接El标准,包括本次设计的PCI总线,SpartenII的输入输出完全遵循PCI规范。所有焊盘都被保护,防止静电放电和瞬闻过压的损坏。可编程连线矩阵包括局部布线、通用前i线、WO布线、专用布线和全局柿线。2.3.3FPGA的开发流程【28】【29FPGA的丌发,是指利用FPGA芯片实现用户设计要求的全过程。FPGA的丌发需要借助于FPGA丁i=发系统,按照丌发系统的工作步骤.将用户的设计转换成FPGA的配置数据,并将配簧数据下载到FPGA中的过程。各FPGA 华北工学院硕士学位论文生产厂商都有自己的开发系统。在Xilinx的FoundationISE中的开发流程如图2.4所示。图2.4Xilinx丌发流程FoundatiOnISE软件包括n:多工’其,如原理图编辑器(SchematicEditot)、硬件描述语者‘编辑器(HDLEdJLot)、功能仿真及设计实现等,并可和许多其它的EDA软件配合使用。具体的关于FoudatiOnISE的详细晚明和使用方法和参考xilinx的数据手册。2.4系统的总体框图根据前面介绍的PCI总线、A/D转换器、FPGA以及数字电路的知识,我们可以画出数据采集系统的总体框图(如图2.j)。总体上分为两部分, 华北工学院硕士学位论文即FPGA和外围的.~/D转换部分。FPGA内部又有PCI控制器和用户端控制器(A/D控制器),下两章将详细介绍PGI控制器和用户端逻辑的实现。模拟输入|冬J2.5系统总体榧|{}】采集卡的一些基本参数有口”:1.两路模拟信号输入,采样率最高20M/S位2.采用差分输入的方式减少共校噪声3.输入信号的范围是±2V4.最高可达到150MHz的输入带宽由于本次设计的采集卡没有对输入的模拟信号进行预处理,所以使用时必须先对实际信号进行放大、滤波等处理,再把处理后的信号送入A/D转换中。 华北工学院硕士学位论文第三章PCI系统的硬件实现PCI控制器的设计是本课题的重点,也是难点。根据PCI规范,PCI总线实现即插即用,内部必须实现配置寄存器,驱动程序就是靠配置寄存器来对总线的地址、中断等实现动态分配。PCI总线协议还必须实现PCI目标状态机、PCI主状态机和奇偶校验等逻辑。本章先介绍PCI控制器的顶层模块,然后依次介绍子模块的实现。为实现PCI猝发性传输,用户应用必须实现D姒控制器、FIFO及A/D转换控制器等电路,本章依次介绍这些部件的FPGA实现。3.1PCI控制器的模块划分根拥数字电路自顶向下的方法,必须先确定系统的顶层模块以及各模块之M的关系,这一步j州;{,m要,氟接关系到电踏实现的性能和成败。必须反复推敲,确定合理的方案。刘PCI控制器的来说,就是ifFRAME#thennextState<=IDLE;e[sif!FRAME#+!HitnextState<=BBUSY,endit;WhenB—BUSY2>if(!FRAME#and∞一done)+!HitthennextState<2B—BUSY;elsifFI认ME#+DdoneandFRAME#+!Ddone+!DEVSEL抖thennextState<=IDLE;elsif(!FRAME#and!IRDY#)+Hit+(!TermandTeml}Ready)thennextState<=SDATA:elsiff!FRAME#and!IRDY#1+Hit+Teml+!Readythenq 华北r学院硕士学位论文nextState<=BACKOFF;endif;WhenS—DATA2>if!FRAME拌+!STOP薛+!TRDY荐+IRDY撑andIFRAME#+STOP#andFRAME抖+TRDY#+STCIP}j}thennextState(2S_DATA;elsif!FRAME#+!STOP#+(TRDY#and!IRDY#1thennextState<=BACKOFF;elsifFRAME撑+f!TRDY#and!STOP#)thennextState2TURN_AR:enditWhenBACKOFF=>it’1FRAME#ncxtState<=BACKOl?I?:elseFRAME#ncxtSlatc<2TURN—AR;endIl-endCase;JI;{,‘a-.B.Iy,Jf占号含义为:nowSrate状念机当日U的状态nexLStiltej状态机下一个状态HiL住地址段目标被选一I,D—Done目标解码完成T—Abort目标错误要求中止交易T(Tin日杯叶;止,主设备可以重斌交易Ready准备传输数掘主控:状念机负责交易的启动和数掘的读写控制,一般束酏比目标状态机要复杂.复杂的程度要看具{奉的实现,比如,要实现无等待猝发传送就[-L4B猝发传送要复杂的多,主设备可有选择地实现快速背靠背交易或地址步进,状态转换如图33所示I”。二L控:【凡态机主要Lb六个状态构成,分别是:●『d1c表示当前主控状态机处于空闲:帙态●Addr表_;地址段,n:此?状念,E漱嵛提供交易的起女fitllgJiL,l{标 华北工学院硕士学位论文设备必须锁存地址信息●M—Data是主控状态机的数据段,主设备进行数据读写●Dr—Bus当Gnt#信号有效而主设备没有数据传输,状态机进入此状态,此时,主设备必须驱动总线●STar是目标有效STOP#后的状态,实现此状态是为让主设备记住目标己有效STOP#●Tumar是转换周期,主设备准备三态总线信号,当设备实现快速背靠背交易时,主状态机必须能从此状态直接转到Addr状态图33主控状态机主控状态机的状态转换VHDL描述如下㈣㈨137】:CasenowStamisWhenIDLE=>ifRequest+!GNT#+FRAME撑+lRDY#theftnextState<=ADDR:elsif!GNT撑4FRAME撑+fRDY群thennextState<_DRBUS;elsenextState<=lDLE;endif:WhenADDR=’nextState<=MDATA. 华北J:学院硕士学位论文WhenM—DATA2>if!FRAME拱andFRAME撑十TRDY#+STOP群+!DevtothennextState<=M—DATA;elsifRequest+!GNT#+FRAME#+!TRDY#+STOP#thennextState<-ADDR;elsifFRAME撑+!STOP撑andFRAME撑+DevtOthennextState<2S_TAR;elsenextState<2TURNAR:endif;WhenTURNAR=>rRequest+!GNT#thennextState<=ADDR;eslit’!Requesl+!GNT#thennexlState<:DR—BUS;elsifGNT#nextState<=IDLE;endiIjWhenS—TAR=>if!GNT#thennextState<=DRBUS;elsifGNT#thennextState<=IDLE:enditWhenDRBUS=>IrGNT#titannextState<=DRBUS:elsifGNT#dlennextState<=1DLE:endjfjendCaSe;_i:碡l:吠态机中一些信号解释为:Request用户要求主交易Comp现交易的最后数掘段To主发备超时DexLtODe、sel#延时汁数器超IIq-I(IfDevsel#还未订效Ready川Jo数据准备好信号 华北工学院硕士学位论文3.2.2配置空间为了实现即插即用,所有的PCI设备都必须实现配置空间。在机器第一次上电时,配置软件必须扫描在系统中的不同总线,确定什么设各存在以及它们有什么要求,所有PCI设备必须实现256个字节的配置空间,这些配置空间包含设备状态、功能使能、基地址信息等。用户可根据需要实现其中的一部分,但是没有实现的寄存器必须返回0IJJ。在256配置空间的耵64个字节称为配置空间头,PCI规范定义了两种首部类型即类型00和01。其中01类型是PCI.tO—PC!是为PCI桥定义的,一般设备都采用类型00的配置头空间(如图3.5)。3116150}波掩枷;u{』一家丰,nU{PCI:队念奇L?-器PCI命令奇存器类代码修订版标U{内科I‘I枪头类型域小时延旆述缓冲人小璀地址寄仃器保留于系统设备标识子系统厂家标i_}{扩充ROM基地址保留最大潜力最小许可中断引脚中断线图3.4PCI功能配置首_;}Ij的格式供应商lD一这个16位寄存器代表设备的制造商。m这个只读奇存h∞舛吣踮mH体k如H弛川如N粥ru 华北工学院硕士学位论文器中硬连线的值由控制编号颁发的一个管理机构(PCISIG)分配。值FFFF被保留,当读取一个不存在的设备配置寄存器时,必须返回这个值设备Ip—-j奎个16位值由设备制造商分配,表示设备类型。与供应商ID和可能的版本ID一起,设备ID用于定位设备指定的驱动程序版本ID寄存器——这个8位值由设备制造商分配,表示设备的版本号。如果供应商提供版本指定的驱动程序,这样就保证OS装载正确的驱动程序类代码寄存器一一指定设备的参数化的功能基地址寄存器——指定设备的地址空|-白j的分配。分为I/O基地址和内存堪地址,由基地址寄存器的位0来确定,当返回为I时表示【O译码器,为0时表示内存阵码器。眦谢窄nIJffJ低192个字1y址楸圳改箭米定义的,PC】jk窬砹备可以不负观这世肖仃器,他足当歧这些没川的奇存}}}{叫必须返川0。PCI波挤的地址空川是动态的,系统通过写地址值到丛址寄存器米分配哎备的地划:空削。设备所需要的地址空州的数量是通过测试丛址寄存器来确定的。为确定设备的地址空间,程序人员先写值OxFFFFFFFF到基址奇仔器,然后读这个基址寄存器,非重要位的0的个数代表地址空问的大小。比如,一改备返回值OxFFFFFFSO,仲裁者就知道此i殳备需要128字节f|勺地址范Ⅲ(7个零位.2,=128)。配置空问的数字实现比较简单,就是由一些寄存器和解码逻辑构成,只是要注意未实现的奇存器必须在被读时必须返回值O。3.2.3奇偶校验位的产生7l{交易的地址和数据断中,PCI总线是被奇偶校验保护的。一个单独的奇偶校验位PAR保护了AD[3l:0]和C/BE[3:0]。如进行64位数据传送,llf;l-Dli的奇偶校验位PAR64保护AD[63:32]和C/BE[7:4]。在地址段或数据第一次被驱动到总线之后一个时钟,奇偶校验位必须被驱动,并且必须被连续驱动,直到数据段完成后一个mj-t,t,f”。n交易的地址段或任意数据段结束后的。个时钏,,收到地址或数据的陀I代胖j^1’了{:AI)[:¨:0]和C/lIE[=j=0]锁存的信息汁t}7:JOl单的奇偶校验。 华北工学院硕士学位论文提供奇偶校验的代理必须产生奇偶校验:■在地址段结束后一个时钟的上升沿;_在数据段中数据出现(写交易时IRDY#有效,或读交易时TRDY#有效)后一个时钟。在这一时刻,收到地址或数据的设备希望奇偶校验存在且稳定。然后计算出的奇偶校验位与PAR上实际收到的奇偶校验比较,确定是否发生地址或数据损坏。如果奇偶校验是正确的,没有行动发生;如果奇偶校验是错误的,必须通过SERR#或PERRY,S.告错误。最简单的产生奇偶校验功能的方法是用一个36输入的异或门,奇偶校验位确擞据写时必须在30ns内产生,在读时必须在60ns内产生。XiliFIX的FPGA内,吲iLh四输入的逻辑块构成,I习此实现36输入的异或门需要三级逻辙。⋯iii.¨ji要求4i能j曲足时,川以采川F晰一螳技术米。史观吲⋯。1.㈨I,CI。,j交易足采川流水线,则俞偶校验也可采九J流水线技术(如I冬|:j.5)。2.上面的方法适用于奇偶发生而不适用j二奇偶验“。侄这种。晰况下,PERR#必须在数据被锁存前两个周期产t|t,这样流水线刁i起作用。当然,PCI设备可以不报告奇偶错误而不管PAR线的状态。这种解决办法不会引起PCI不兼容,但不被推荐。3.在最坏的情况下,数据可以延时到奇偶完成以后。但对于猝发眭传输柬蜕,这样做会大大影响传输的性能。图3.5流水线奇偶校验实现 华Jbl:学院硕士学位论文3。2.4禽令解码及她鸯£计数咒{主设备奁囊葫交茹辩敖~个会令在惫绫C/BE[3:0]上,这个命令定义了交易的类型。PCI规穗定义的命令类型如图3.8所示。目标设备必须在地址段锁存PCI命令,然后解码它。本次设计的PCI核没有用到存储器、双地址周期、存储器行读羊珏存储器写和读无效嚣命令,根据PCI规范,必须穆这些余令变为各自的蕊本访闫命令。纛存锫器多{亍读秘露藤器嚣读应竣为存镶器读命令一存储器写与失效应改为存储器写命令州Ji啦箭米蜕,k设箭必须要求提供32位地址,在t些应用中,一个小的汁数器嗣J_。个大的寄存器就能提供32位地址,实际计数器的大小出用p{‘输的数摄妖波蛳定。皱嬲:的{疔况1-,}跛舔镭要‘令30位哟i;f燕皴城麴跨数撩,鳓潮童§j≥;矗≯:8||蚓。:112’O蚓3.630位Iq重装戡计数器刈口标设备来说,如裂要实现猝发憎!传输,它必须器份当前的地址并过在戏功传送当爵鼗援段磊爨动加一,幸运熬楚,这令砖数器可以绞小,其体的犬小秘掰弱标地自l:块的尺、}。鳓魏,E}},】:嚣解码4K鲍地强块,那么地j1|I=汁数器H需要跟踪4K范闻内的地址,这卡午⋯个10俯的汁数嚣就足够了。如阁置9所示侧川。3.3数据采集卡用户接口设计数蜷采集卡的用户接鞠非常灵活,裉掘不嗣妁需要有不同的设计要求,变装问遮藏是_定采蘩来赘数据蓉撵有效避懑过既【控裁器赞送爨耀户逝皤程序中。高速数据传送一般经过FIFO或SRA~I缓存后再经PCI控制器 华北工学院硕士学位论文送入内存中。本次设计采用FIFO缓存,即首先把A/D转换来的数据写入FIFO中,然后通过DMA控制器控制FIFO的读写把数据送入主机中,下面将详细介绍D姒控制器、FIFO缓冲器以及A/D控制逻辑的具体实现。3.3.1DMA控制器的设计㈣㈣【181Dm(DiFeCtMemoryAccess)称为直接存储器传送,是为在主存储器与I/o没备制进行高速交换批量数据而设置的。pcI规范中没有涉及DMA控制器,DⅥA实脱与甭依赖于用户应用,一般来晚,要实现猝发性读写,必须实现DMA控制器,用DMA米控制PCI主状态机实现猝发性读写。基本的D姒传输过程如下:1.f;起始地址到D.~IA起始地址寄存器2.‘q所要传送的数拂}K_}!{:到DMA块K汁数器:j.衲fc{{i化DMA控制寄存器m[NA请求,、刍FIr()准符好数捌或为审时,DMAJ1始请求PCI传输5D~|^响应,、刍PCI:l三状念机获褂总线J昕7i十义时,迎知DMA可以丌始传送数据6.DⅥA传送,J['Ofil}输数{I:i:,每次DMA传送后,地址指针自动加一,块K计数器减;7.结束处理,⋯块长度计数器的回零佶弓,或由接L1产'j-lcI,断请求,迎㈨Ln进”后处理。例如重新仞始化,准备r一数掘块,或处理刚接受的数据。本科题设计的DMA控制器是与Fll、O接口,jE有两个通道,分别对应两路A/D转换器。D姒内部有血个32位寄存器,两个起始地址寄存器、两个D姒块长度计数器和一个控制寄存器。起始寄存器存放着DⅥA传输的起始地址,每次成功传送后自动加一,块氏度寄存器存放传送数据的长度,每次传送后自动减一,为零时表示传输结束。控制寄存器控制D姒传输的方向、通道优先级等参数,DⅥA状态等控制寄存器的各位的具体功能如表xi所示。应用程序要进行叭n传输,!必须先jF确仞始化Dm控制器,当水:kI)MA传送完成肝,1)、I、拧制搽发小传输结束信lj.A/D控制器收到此信ljI,-;-停1I:屯71)转换。 华北工学院硕士学位论文表3.1D姒控制寄存器位类型说明l了l卜l-!O2l!卜3读/写读/、=;凄/。弓读/写堙/’写读/写读/。,jl史/1;滇/1i诗:?“Ell史。,jl爻jtj凄⋯tj主失败目标失败通道0完成通道1完成DMA中断状念通道O重试通道l亟试通道0的FmO选-}J0一选【rr第-个l一选-}l筇:=个通道l的l?Il?u选一1,(禽义ⅢI:)保释f优先级()一迎道0优先缴r_0一通道l优先级t%通道0使能迎j煎I使能迎逆u传输丌始迎道l抟输Jl‘始中断保尉3.32FIFO缓冲器的FPGA实现mII川【2‘1123FIFO存储器(FirstInFirstOutMemory)足一个具有两个端口.并按先进先出的顺序来暂时存放数据的存储器,也就是写入到FIFO输入口的第·个数据将是可以在输出口被读出的第一个数抓,接着便是第二个数据锋。输入口和输出【=fJ的jf‘怍彼此足独立的,即同时·q进}ji实≮,只要当时仃放瞳f?⋯)t{r的数扔:少于f、fFO的存量,祧可以继续向}?fFO-;t。j入数抓:,Jla安Fll?(】l~嗣:j土fji,j:数乱一:.50c||】。以继}丈1:tJl?11:【)z{·i葵}¨数越e.O19—35b7H9 华北工学院硕士学位论文为实现无等待状态的猝发数据传送,FIFO存储器采用乒乓缓冲的方式,所谓乒乓缓冲就是用两个FIFO存储器循环进行读写,当第一个FIFO满时,通知DMA控制器读第一个FIFO中的数据,同时把A/D转换来的数据写入第二个FIFO中,依次循环。这样就能保证FIFO中数据传输时不为空,实现无等待状态的猝发数据传输。FTFO的FPGA实现可用硬件描述语占描述经综合后生成实际电路,也可由x¨1nx的』r发系统中的CoreGeneraLeSystem自动生成,FIFO的宽度和深度都可由参数指定。x¨inx公司也推荐使用CoreGenerateSystem牛成FIF0,因为这样可以节约一GA的资源和提高FIFO的性能。有关CoreGenerateSystem的使用可参考X儿inx的数据手册。F【l?0存储器的引脚图和原理图分别如图:3.1I、吲:j.12所示。输入输Ⅲ引脚浣明:叭N[3l:0]一位数州输入线;DINl3I:0I)OUT[3l:0]一位数据输⋯线:Itl!AJ)Id!AI)一I实控诲1轿i入i嵩:w⋯I'l:w¨¨!一’,;控:削输入端:CI,KL1jK一时钟脉冲输入端:l?Ll。J,一满彬:奎{占号输jj{端:EMPTY一空状态信号输m端;FIF0图:{11F【170存储器二{g磅毫RAMCONTROLiWREnable八劁3.12FIFO厉i川’l割rIr0I}1』t个功能块ff=j成,它们是存储体眦\l、。列R针、歧指针t、控制 华北工学院硕士学位论文和满空逻辑。在时钟上升沿的作用下,当WRITE:I且FULL:O时允许写入数据,当EMPTY=O且READ=I时允许读出数据。FIFO的存储体RAM实际上是一个环行数据结构.有读指针和写指针分别指示数据读写的对应地址。这晕读指针总是指向下一个要读出的数据的单元地址,写指针指示下一个要写入的数据的单元地址。确定FIFO是否为空或满的方法是比较读指针和写指针,如它们不相等,则肯定既不是空状态也不是满状态。如读写指针相等并且最后的操作是读,则FIFO处于空状态。如读写指针相等且最后的操作是写,则FIFO处于满状念,,f:能继续写入数据。3.3.3A/D转换器控制逻辑的实现【271A/D转换器∞控制逻41f}也需要FP6A求实脱,圳为Mnxitttl,t25数据为i0f讧宽,必;01ff写入l?l㈨之前变为32位宽fn数据。A/t)转换器的控制器Hi㈥如:{.¨所ui。图3.11A/D转换器控制电路图312表示了MAXl425时钟输入、模拟输入平f1数掘输出的关系。¨x1—125采样输入时钟的卜降沿.输入数据在时钟的L升沿被采样,输出数抛有j.j时钟的内部延时.所以从采样时钟订效士0数掘输⋯有效有j.j个时钟的延时,但这个=i正时埘一f1)cl_卜来说没何任何影响,㈤为Pc【设备阿先坚刘配霄空川进行配霄,然后/[订川能篮?托A/D采样,这段时问已人 华北工学院硕士学位论文大超过5.5个时钟。采样时钟由PCI时钟经2分频得到。“mGIl开Ⅵ!跚厂]r]广]广]广]广]广]广]D^T^OⅥPUT图3.12MAXl425时序啦』i亏足数据宽度的转换问题,因为MAXl425的数川输⋯宽度址10位,m㈨I总线的数据宽度为32f讧,2,JTf效利川PL'1带宽,必须何采样:{次阿。tj入I?1FOI¨0送。-次数j:l-:依次oj入数{:ll:奇仃;}:{的0-9、IU_19和2()一29fi:,“曲他.心乃‘每。AFP(;A·I,’丈J砚这jj逛:4{i}".:占简·-,』1.^川J个I埘仲:汁数器。“1¨。z址2,J0州,数捌’,i入0-9f口:“数值为l时,数捌1;入10】9何;叫数蛆为2时,数拼写入2()一29位,JHlff整个32位值’·j入rlFO,川叫汁数器‘战0:依次循Jj:{;。蛮.*__㈡一_一尜~㈡_ 华北工学院硕士学位论文第四章PCI交易时序及设计中的难点在FPGA或ASIC设计中,设计仿真是非常重要的一步,只有仿真正确,实际电路刊。有可能正确。仿真一般包括功能性仿真和时序仿真,功能性仿真是验证电路的功能是否正确,不包括延时信息,而时序仿真则包括布线后的器件模块和连线的延时信息,在最坏情况下对电路的行为作出更准确的评估。本章先列举了几种PCI交易仿真时序图,然后还讨论了设计中如何满足PCI的严格的定时要求。4.1PCI目标交易(TargetTransactions)1271129】【30目标交易包括访问配置空fNJ;}11访问DMA控制器或A/D转换的内部寄存器。¨标状态机需要支持卜.丽儿种交蜴类J弘:1.t、『L数州段I~7f}妒;2.猝发性内存读。t;3-l-断确认4配置窄叫读写5.【/0渎写当t发备获得总线所有权,并有效FRA,~IEn(n的含义表示此信号低电平有效,与PCI规范中的#含义相同)信号时,一个目标读或写交易丌始。目标设备必须在FRK~IEn有效的第一个时钟锁存地址和命令,然后目标设备丌始解码命令信息并决定是否有效DEVSEI.n柬声明交易。当有效DEVSELn后,目标设备确认所有的控制信号,并在读时提供数据及在目标写时接受数据。4.1.1配置空间读写交易图4l表示了PCI主设备访问目标设备的配置寄存器的时序图,FRL\tEn信号在第一个时钟有效,目标设备必须在此崩期锁存AD和CBE信号进行译码,同时IDSEL有效表示是配霄空唰交易。DEVSLEn在第四时钭,周期有效,通知主机本采集卡被选中。在第七时钟周期TRDYn有效,表}岿设备己在总线』:提供:卜设备所需要的数据,在此周jtjj]RDYn同盯何效,这样就成功传 华北]:学院硕士学位论文送了一个配置数据。第八时钟周期是交接周期,FRAMEn,IRDYn,TRDYnDEVSELn同时无效,整个数据操作完成。CLKFRAMEnADPARCBEJROYnTROYnSTOPnDEVSELnlDSEL乱恳。.悟L币L。虱中U卟可L讯-●●‘\_L..(五⋯··
此文档下载收益归作者所有