基于PCI总线的测量仪器数据传输功能的设计与实现论文_第1页
基于PCI总线的测量仪器数据传输功能的设计与实现论文_第2页
基于PCI总线的测量仪器数据传输功能的设计与实现论文_第3页
基于PCI总线的测量仪器数据传输功能的设计与实现论文_第4页
基于PCI总线的测量仪器数据传输功能的设计与实现论文_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I扬州工业职业技术学院20092010学年第二学期毕业设计课题名称基于PCI总线的测量仪器数据传输功能的设计与实现设计时间2009年11月2010年5月系部电子信息工程系班级0701网路姓名王玉娟指导教师纪勇II总目录第一部分任务书第二部分开题报告第三部分毕业设计正文III第一部分任务书IV扬州工业职业技术学院毕业设计任务书系部电子系指导老师纪勇职称讲师学生姓名王玉娟班级0701网络学号0705320110设计题目基于PCI总线的测量仪器数据传输功能的设计与实现设计内容目标和要求毕业设计内容和目标晶体管特性图示仪内部数据采集卡的PCI总线接口芯片的配置与使用、本地总线接口电路的设计、数据传输通道的建立(包括译码器、寄存器、FIFO存储器等)、相关驱动程序的编制、数据读写测试程序的设计。最终在仪器测量电路与计算机主机之间实现正确与有效的双向数据传输功能。毕业设计要求1、提出选题的初步设想和研究目的2、收集、整理各种相关的技术资料3、研究基于PCI总线的数据传输系统的设计原理和方法4、在产品中实现该设计并有实际功能5、使用编写的测试软件进行测试教研室审核系部审核V第二部分开题报告VI扬州工业职业技术学院电子信息工程系2010届毕业设计毕业设计(论论文)文)开题报开题报告告书书(表(表1)学生姓名王玉娟专业计算机网络班级0701网络学号0705320110题目基于PCI总线的测量仪器数据传输功能的设计与实现指导教师纪勇职称讲师学位硕士题目类别工程设计基础研究应用研究其它【课题的内容与要求】晶体管特性图示仪内部数据采集卡的PCI总线接口芯片的配置与使用、本地总线接口电路的设计、数据传输通道的建立(包括译码器、寄存器、FIFO存储器等)、相关驱动程序的编制、数据读写测试程序的设计。最终在仪器测量电路与计算机主机之间实现正确与有效的双向数据传输功能。【前言】晶体管特性图示仪就是用显示器显示晶体管各类特征曲线,并可测量其静态参数的一种常用测试仪器。要实现上述仪器的测试功能,就需要一方面对测量过程及数据采集过程进行有序、实时控制,另外一方面仪器测量电路所获取的测试数据经过AD转换后,应能够及时传输给计算机主机进行分析处理。上述控制、采集数据功能可以通过一块搭载有FPGA芯片的PCI数据采集卡来实现。本毕业课题就是探索在计算机主机与测量仪器内部的PCI数据采集卡之间进行双向数据通信的实现机制与方法,并且在晶体管特性图示仪这样一个实际产品中实现双向数据传输操作过程。【方案的比较与评价】方案一采用分立元件构成采集电路通过串口接口与计算机相连接。方案二将采集电路在FPGA芯片内部实现,通过PCI总线与计算机相连接。采用可编程逻辑器件从事数字系统设计的最大优势体现在灵活性上,在设计过程中可以通过功能仿真和时序仿真及时发现错误或者脆弱的电路设计,修正、改进电路工作工作通过修改程序代码方式完成,不需要重新制作硬件板卡。PCI总线具备比较高的数据传输速率,可实现即插即用。纵上所说,我选择第二种方案。VII【预期的效果及指标】本毕业设计课题最终要从硬件和软件两方面建立了一套完整有效的数据传输工作机制,能够有效的和正确的完成数据传输功能,达到预期的设计目标。【进度安排】2009年11月20日2010年1月9日选题、调研、收集资料2010年1月10日2010年1月30日论证、开题2010年2月1日2010年4月31日设计(写作初稿)2010年5月1日2010年5月10日修改、定稿、打印【参考文献】1吴继华ALTERAFPGA/CPLD设计(基础篇)北京人民邮电出版社,2005年2吴继华ALTERAFPGA/CPLD设计(高级篇)北京人民邮电出版社,2005年3尹勇,李宇PCI总线设备开发宝典北京北京航空航天大学出版社,2005年4张庆华零基础学VISUALC2005北京机械工业出版社,2008年5ALTERACORPORATIONQUARTUSIIVERSION71HANDBOOK2007年【指导教师意见】(有针对性地说明选题意义及工作安排是否恰当等)该毕业设计课题所涉及的内容贴合学生的专业,能够充分考察学生的专业基本功,培养专业设计能力。课题来源于企业生产第一线,实践意义强,工作量饱满。同意提交开题论证修改后提交不同意提交(请说明理由)指导教师签章纪勇2010年1月20日【系部意见】同意指导教师意见不同意指导教师意见(请说明理由)其它(请说明)队系(部)主任签章年月日VIII第三部分毕业设计正文I基于PCI总线的测量仪器数据传输功能的设计与实现王玉娟0701网络摘要本课题以半导体管特性图示仪的开发为背景,就基于PCI总线的数据传输系统展开了研究,并最终在测量电路与计算机主机之间实现双向数据传输功能。目前现代测量仪器使用先进的计算机技术,对测量数据通过仪器内部的嵌入式计算机系统来存储、分析、绘图。因此,仪器内部以一块基于PCI总线的数据采集卡为实现载体,借助驱动程序完成计算机与测量电路的双向数据传输。本文在分析PCI9054接口控制器的基础上,在现场可编程门阵列器件内部,设计并实现本地总线接口电路,译码器、FIFO存储器等单元电路。最后,运行通过VISUALC编写的测试软件,证实数据传输系统可以有效的和正确的完成数据传输功能。关键词PCI9054数据传输FPGADESIGNANDIMPLEMENTATIONOFDATATRANSMISSIONFUNCTIONOFINSTRUMENTBASEONPCIBUSWANGYUJUAN0701NETWORKABSTRACTTHESUBJECTTAKETHEDEVELOPMENTOFSEMICONDUCTORDEVICECHARACTERISTICINSTRUMENTASBACKGROUND,RESEARCHDATATRANSMISSIONSYSTEMBASEDONPCIBUS,FINALLY,IMPLEMENTINGBILATERALDATATRANSMISSIONFUNCTIONBETWEENTESTCIRCUITANDCOMPUTERATPRESENT,MODERNINSTRUMENTSHAVEINTRODUCEDADVANCEDCOMPUTERTECHNOLOGY,SAVING,ANALYZINGANDDRAWINGMEASUREDATATHROUGHEMBEDDEDCOMPUTERSYSTEMINTHEINSTRUMENTTHEREFORE,DATAACQUISITIONBOARDBASEONPCIBUSCOMPLETEBILATERALDATATRANSMISSIONFUNCTIONBETWEENTESTCIRCUITANDCOMPUTERDEPENDONDRIVERPROGRAMINTHEARTICLE,INTERFACECIRCUITOFLOCALBUS,DECODERANDFIFOMEMORYHASBEENDESIGNEDANDIMPLEMENTEDINFIELDPROGRAMMABLEGATEARRAYONTHEBASISOFANALYSINGPCI9054INTERFACECONTROLLERFINALLY,ITISABLETOCONFIRMTHATDATATRANSMISSIONSYSTEMCANCOMPLETETRANSMISSIONFUNCTIONEFFECTIVELYANDCORRECTLYIITHROUGHRUNNINGTESTPROGRAMBYVISUALCKEYWORDSPCI9054,DATATRANSMISSION,FIELDPROGRAMMABLEGATEARRAYIII目录第一章绪论111课题的背景112主要内容及结构安排2第二章PCI总线接口的配置与应用421PCI总线概述422PCI总线接口方案选择523PCI9054芯片概述6231PCI9054芯片的特点6232PCI9054芯片的工作方式824PCI9054芯片本地总线操作8241本地总线的相关信号8242本地总线突发传输模式9243PCI地址映射为本地地址10244本地总线信号时序关系11第三章FPGA内部逻辑电路设计1431FPGA设计概述14311FPGA型号选择14432FPGA设计流程1532本地总线接口电路的设计17321状态机的基本含义17322本地总线接口电路的实现1833本地地址译码器的设计19331本地资源的地址分配19332译码器的实现2034FIFO存储器的定制21第四章数据采集卡驱动程序开发2241采集电路板的结构2242驱动程序开发工具选择23IV43WINDRIVER驱动程序的开发流程2444重要API函数的参数设置2545驱动程序的分发27第五章数据传输功能测试2951测试软件概述2952测试过程和结果30521设备的打开与关闭30522PCI9054寄存器的读取测试31523单次数据写入测试32524批量数据的突发读取测试33小结34致谢35参考文献36扬州工业职业技术学院毕业设计1第一章绪论11课题的背景本毕业设计课题来源于毕业设计指导老师的横向课题,是从某一晶体管特性图示仪产品开发项目中分解得到的一项子课题。该图示仪项目由扬州工业职业技术学院电子信息工程系多位教师、学生以及企业工程技术人员共同参与技术攻关,历经一年时间完成,目前已经设计并制造出晶体管特性图示仪的样机,整机基本实现设计功能,性能指标达到预期目标。样机实物如图11所示。图11晶体管特性图示仪样机晶体管器件(包括双极型晶体管、场效应晶体管、闸流管、可控硅等)是各类电路的基础元器件。晶体管特性图示仪就是用显示器(包括示波管、CRT显示屏、液晶显示屏)显示晶体管各类特征曲线,并可测量其静态参数的一种常用测试仪器。这类仪器主要用来从事半导体直流参数测量、来料检查、生产测试、过程监视及质量控制、数据报告的生成、元件配对、失效分析、工程测试等工作,在电子产品的研究、制造、测试、维修领域得到了广泛的应用。扬州工业职业技术学院毕业设计2要实现上述仪器的测试功能,就需要一方面对测量过程及数据采集过程进行有序、实时控制,另外一方面仪器测量电路所获取的测试数据经过AD转换后,应能够及时传输给计算机主机进行分析处理。上述控制、采集数据功能可以通过一块搭载有FPGA芯片的PCI数据采集卡来实现,这种设计方案可以充分利用FPGA芯片以及PCI总线的优点。进一步分析可以看出,上述PCI数据采集卡与计算机主机存在双向通信的需求。对于主机端,它需要及时读取测量仪器产生的各种测量数据,读取数据的操作可以通过中断信号来触发。同时主机也要将测量设置参数(通过仪器面板上按钮旋钮转换得到)以及初始控制信号(如测量启动信号)传送给PCI数据采集卡。本毕业课题就是探索在计算机主机与测量仪器内部的PCI数据采集卡之间进行双向数据通信的实现机制与方法,并且在晶体管特性图示仪这样一个实际产品中实现双向数据传输操作过程。12主要内容及结构安排本文的主要论述内容包括该晶体管特性图示仪内部数据采集卡的PCI总线接口芯片的配置与使用、本地总线接口电路的设计、数据传输通道的建立(包括译码器、寄存器、FIFO存储器等)、相关驱动程序的编制、数据读写测试程序的设计,即图12中灰色背景虚线框包含的内容。至于控制电路、波形发生器、测量电路、仪器面板处理电路、测量数据分析处理应用软件、仪器结构设计这些内容,是由项目团队其他成员负责,因此不在本文讨论的范围之内。PCI总线接口芯片PCI总线本地总线工控机主板测量电路LCD显示屏操作面板接口GPIB/RS232/USB/打印机1、实时控制逻辑电路2、波形生成3、数据传输通道4、本地总线接口电路输入输出总线被测器件主机软件FPGA电源图12晶体管特性图示仪系统组成框图扬州工业职业技术学院毕业设计3本文在组织结构上一共分为七章。各章的具体内容如下所述第一章介绍课题相关背景资料,叙述论文的主要研究内容和章节安排。第二章研究PCI总线接口控制器(即PCI9054专用芯片)的工作方式、本地总线信号时序关系及该芯片的几种比较重要的功能(如本地中断处理、DMA数据传输),探讨如何通过其内部寄存器以实现该芯片的正确配置。第三章论述FPGA内部逻辑电路的设计过程,包括利用同步有限状态机来设计本地总线接口电路、存储RAM单元的定制与地址分配、译码电路。本章也是论文中比较重要的一章。第四章讨论了有关编制PCI数据采集卡驱动程序的问题。具体内容包括驱动开发工具的选择、驱动程序设计流程、重要函数分析等等。第五章介绍读写数据测试程序,通过该测试程序可以验证数据传输过程的有效性与正确性。第六章总结在论文课题研究过程中所做的主要工作并对如何改进完善该控制系统作一些思考工作。扬州工业职业技术学院毕业设计4第二章PCI总线接口的配置与应用21PCI总线概述PCI总线全名外围部件互连总线,也简称为局部总线。它是目前主板上最常见的总线,定义了32位的数据总线,且可扩展为64位(V21版本以上的PCI总线标准)。从图21中可以看出,PCI总线适用于多种平台与多种体系结构的处理器系统,支持33V和5V两种信号环境,可以升级为64位总线。服务器桌面平台移动平台ALPHA处理器家族其他处理器及未来的处理器5V33V自动配置64位升级图21PCI总线的应用范围示意图PCI总线能迅速在个人计算机系统中占据主流地位,必然有其内在的优势和特点。体现在(1)比较高的数据传输速率。总线时钟为33MHZ或者66MHZ,数据线为32位或者64位。在标准使用情况下(33MHZ频率,32位数据线)数据传输率为132MB/S,在极限使用情况下(66MHZ频率,64位数据线)数据传输率为528MB/S。(2)PCI总线操作与处理器存储器子系统操作并行,独立于微处理器。不依附与某个具体的处理器。这样基于PCI总线开发的外设在日后易于移植到其他处理器结构的计算机平台。(3)在系统启动时自动依据PCI外设板卡上寄存器组提供的信息,为各个PCI设备分配中断请求号、为板卡资源分配地址空间,从而避免中断请求号冲突X86结构处理器家族扬州工业职业技术学院毕业设计5(IRQ),可实现即插即用。22PCI总线接口方案选择从上面叙述可以得知,PCI总线是目前在各种计算机系统中普遍应用的总线,非常适合于对主机功能的扩展。通常情况下是将所需要的功能用逻辑电路实现并制作成扩展板卡,最终通过PCI插槽实现与主机系统物理意义上的连接。在本课题的研究实践中也不例外,完成仪器测量采集控制功能的逻辑电路以及数据采集传输通道最终也是在一块外接的PCI板卡上实现。但是实现扩展功能的电路却不能在逻辑上与PCI总线直接相连接。这是因为这些功能电路没有PCI设备所需要的配置空间,也不能识别响应PCI总线命令,更不可能作为PCI总线的主设备去发起总线操作。也就是说需要一个PCI接口电路作为PCI总线与PCI功能设备进行连接的桥梁。PCI接口内部通常需包含PCI标准配置空间寄存器(64个字节)、PCI总线逻辑接口、用户设备逻辑接口、数据缓冲区。由于PCI规范的复杂性,PCI接口电路实现的难度较ISA总线接口要大的多。通常实现PCI接口有两种方案,即通过可编程逻辑器件实现和专用接口芯片。如果通过可编程逻辑器件实现,不但要分析PCI总线信号与PCI传输协议,还需要掌握PCI总线的仲裁机制、错误纠正机制、奇偶校验等一系列问题。势必在逻辑验证、时序分析等问题上要投入相当大的精力,大大延长了开发周期。但这种方法的优点在于比较灵活,因为通常情况下一个PCI设计并不需要实现PCI规范的所有功能,显然在通过编程语言描述接口电路时完全可以根据需要增减接口电路功能模块。至于专用接口芯片则是符合PCI标准规范的专用集成电路,在其内部也拥有配置空间和实现各种接口功能的功能单元。采用专用接口芯片这种方案的优势很明显,即避免开发者为自行设计接口电路而在PCI规范上投入过多的资源与时间,从而及时将研究重点转移到PCI功能设备的研究与设计上。在本开发实践中选择了第二种方案,即专用接口芯片方案。需要指出的是尽管不少生产可编程逻辑器件的厂商也出售可以直接使用的PCI接口IP核,但考虑到这种IP核的售价极为高昂,因此在本课题中这种方案不具备现实可操作性。当然在研究经费充足,产品生产批量很大的情况下,购买PCI接口IP核也不失为一种可以考虑的方案,因为购买IP核的高昂费用可以分摊到大量生产出来的扬州工业职业技术学院毕业设计6每一个产品中。目前典型的专用接口芯片型号是AMCC公司的S5920,S5933以及PLX公司的PCI9052,PCI9054。其中S5920和PCI9052只能作为PCI总线的从设备来应用。而S5933和PCI9054同时具备充当主设备与从设备的能力。PCI总线的主设备可以向总线驱动地址、数据、控制信号,主动发起总线操作,而从设备只能被动的向主设备传输数据或者接收主设备传送过来的数据。从实际应用的角度看,只能作为从设备应用的芯片一般适用于不需要快速数据传输的场合。具体涉及到本课题,作者打算在采集测试结果数据数据时采用DMA方式传。,考虑到DMA方式传输时,接口芯片必须接管PCI总线的控制权,因此必须选择具备主控设备能力的接口芯片,最终选定的接口芯片为PLX公司的PCI9054芯片。23PCI9054芯片概述231PCI9054芯片的特点PCI9054是美国PLX公司生产的PCI总线通用接口芯片。使用该专用芯片桥接PCI总线和本地总线LOCALBUS,开发者可以省去考虑很多复杂的PCI总线规范,而集中精力开发PCI板卡的硬件开发和驱动程序编制。该芯片的主要技术特点如下(1)符合PCI规范(版本V22)的总线接口主控制器。(2)采用先进的数据管道架构技术(DPA)包含两个DMA引擎、数据传输模式可以通过编程来初始化、PCI总线映射功能。(3)支持PCI双地址周期。(4)支持COMPACTPCI热交换功能。(5)具备两个独立的DMA通道,可以在局部总线和PCI总线之间相互传输数据。(6)具备可编程PCI中断生成器,具有完善的中断处理机制。(7)具备六个可编程的零等待突发操作的先进先出存储器,在数据传输过程中作为缓冲区使用。如表21所示。扬州工业职业技术学院毕业设计7表21内部缓存FIFO设置FIFO长度PCI启动I/O读PCI启动I/O写PCI目标读PCI目标写DMA读DMA写16长字32长字16长字32长字32长字32长字(8)在局部总线和PCI总线之间相互传输数据的速度可以达到132MB/S。(9)低功耗CMOS工艺,封装形式为176脚FQFP或者225脚PBGA。局部总线的频率最高可以达到50MHZ,时钟由外部提供。局部总线与PCI总线异步运行。(10)串行EEPROM接口,EEPROM用来装载配置信息到9054芯片内部的寄存器。(11)支持三个PCILOCAL地址空间(SPACE0、SPACE1、EXPANSIONROMSPACE)。(12)芯片标准工作电压是33V,但对于PCI总线和本地总线上的5V信号也能容忍。需要注意的是芯片内部寄存器组除了包括PCI规范所要求任何PCI设备都必须设置的64字节的PCI配置寄存器组外,还包括本地总线配置寄存器组,运行时寄存器组,DMA寄存器组,消息传递寄存器组。每个寄存器组内部的寄存器都按照PCI地址和本地地址进行编程,供系统初始化软件和驱动程序访问。这些寄存器作用体现在(1)主机系统启动提供必要的信息。(2)对总线、地址空间、中断、DMA进行设置,例如设定地址空间的基地址和范围、选择工作模式、使能或禁止相关信号。(3)反映总线操作期间的各类状态信息。对于各个寄存器的具体位定义的分析和设置构成了PCI9054芯片应用与开发工作的一个重要方面。在接下来的有关工作模式、总线功能、中断等研究工作中,都会涉及到相关的寄存器。扬州工业职业技术学院毕业设计8232PCI9054芯片的工作方式依据9054接口芯片在总线操作过程中的地位,PCI9054芯片的工作方式可分为PCI主方式读写、PCI从方式读写、DMA读写这三种方式。在这三种方式中,9054芯片对于PCI总线和本地总线来说,所处的地位是各不相同的。对于PCI从方式9054芯片是PCI总线的从设备,本地总线的主设备。也就是说总线传输操作由PCI总线端发起,通过9054接口芯片来对本地地址空间进行存取操作。对于PCI主方式9054芯片是PCI总线的主设备,本地总线的从设备。即总线操作是由本地端发起的。启用这种工作方式,一般需要在本地端必须拥有通用处理器、单片机、数字信号处理器之类的器件。DMA工作方式在这种工作方式下,9054接口芯片内部的DMA控制引擎取代了主机内部的控制器,对PCI总线和本地总线同时拥有控制权。在芯片内部的DMA控制器的控制下,数据传输有条不紊的进行着。在DMA工作方式下,9054接口芯片对于PCI总线和本地总线都是主设备。24PCI9054芯片本地总线操作241本地总线的相关信号在本地总线上涉及到数据信号、地址信号、控制信号。对常用信号列表22加以解释。表22本地总线信号信号名称传输方向信号定义LHOLD输出P9054申请占用本地总线信号LHOLDA输入本地总线应答信号ADS输出本地地址选通信号BLAST输出突发传输结束指示信号LW/R输出读写状态指示信号,高电平表示写,低电平表示读READY输入/输出外部等待信号,表示读取的数据有效或者写入操作已经完成BREQI输入在该位被PCI9054配置寄存器使能的情况下,表示本地总线设备申请占用总线信号BTERM输入/输出在该位被PCI9054配置寄存器使能的情况下,表示总线扬州工业职业技术学院毕业设计9传输中止。LBE30输入/输出字节使能信号WAIT输入/输出作为输入,通知PCI9054插入等待周期。作为输出表示PCI9054当前正处于等待状态。LCLK输出本地时钟,由外部晶振产生,最高为50MHZLRESET输出本地复位信号LINT输入/输出本地中断信号LA312输出本地地址总线LD310输入/输出本地数据总线备注1、信号名称后带有“”的表示低电平有效。2、传输方向中的输入或输出是针对PCI9054芯片而言。242本地总线突发传输模式在9054芯片主从工作方式下进行数据传输时,是否采用突发模式以及突发周期长度受到两个9054芯片内部配置寄存器位的控制突发模式位和突发中止位(分别是LBRD寄存器的第24位和第7位)。下面针对突发模式位和突发中止位的不同设置情况进行分析和探讨如果突发模式位被禁止,这时突发中止位无论是被置1还是置0,这时本地总线都处于单周期传输方式。在单周期传输方式下,每次总线操作只有一个数据周期,只传送一个32位长度的长字(LWORD)数据。如果需要传送下一个32位的数据,必须再次让ADS信号有效。突发模式位有效,突发中止位被禁止的情况下,本地总线将进行突发长度为四个长字(LWORD)的突发传输。这种情况下,ADS信号在一个突发周期开始的时候产生,在到第四个长字开始传输的时候产生BLAST信号以中止突发传输。并按照这种方式依次循环,直到所要求长度的数据传输结束。突发模式位和突发中止位都有效的情况下,BTERM信号被使能,本地总线进入持续突发传输状态。在突发传输过程中,数据传输将不受四个长字的限制且持续进行。当最后一个待传输的数据出现在总线上时,BALST信号将被置为有效表明突发传输即将终。如果在传输过程中BTERM信号从无效变为有效状态,9054芯片将在不生成BLAST信号的情况下终止突发传输。BTERM信号由外部逻辑产生,对于9054芯片来说是输入信号。BTERM该信号只有在PCI从方式或者DMA方式中才能使用,在传输过程中扬州工业职业技术学院毕业设计10该信号生效,通常表明本地逻辑端出现了某种异常状况。243PCI地址映射为本地地址PCI9054芯片支持三个本地地址空间SPACE0、SPACE1、EXPANSIONROMSPACE。可以通过本地地址范围寄存器(LAS0RR,LAS1RR,EROMRR)、本地基地址寄存器(LAS0BA,LAS1BA,EROMBA)、分别设置这三个地址空间的基地址、地址空间长度等参数。但是在PCI从工作方式下,总线操作的发起者主机系统内的PCI控制器却不能直接访问本地地址空间的,它只能识别PCI空间内的地址,因而必须建立一种地址映射机制,这种映射机制确保在操作前就必须将PCI地址转换为本地地址。PCI9054芯片具备这种地址映射机制,其映射的过程如下所述(1)本地地址范围寄存器(LAS0RR,LAS1RR,EROMRR)内部设置三个本地地址空间的长度。在系统启动或者复位时,主机系统会根据本地地址空间的长度范围分配相同长度的的PCI地址空间,同时所分配的PCI地址空间的基地址写入到9054芯片内部的PCI基地址配置寄存器中(PCIBAR2,PCIBAR3,PCIERBAR)。虽然此时两种地址空间的基地址在数值上各不相同,但是已经建立了一一对应的关系。(2)当访问本地地址空间内的资源时,系统会根据PCI地址空间的基地址映射到对应的本地地址空间的基地址。这个基地址与驱动程序中给出的PCI地址空间内的偏移地址相加,相加的结果即为实际想要访问的本地地址,该地址将出现在PCI9054芯片的本地总线上,在本地端即可对这个本地地址作相应的译码操作。通过上述过程,本地端的逻辑资源被映射为主机系统的存储器资源或者IO资源,在程序中对PCI地址空间的操作被转换为对本地端逻辑资源的操作。图22显示了本地地址空间与PCI地址空间之间的关系。扬州工业职业技术学院毕业设计11图22显示了本地地址空间与PCI地址空间之间的关系因为每个本地地址空间可以达到4G字节,远远超出了本课题所需要的空间大小,所以在开发过程中只使用了一个本地地址空间,即LOCALADDRESSSPACE0,基地址设置为0。244本地总线信号时序关系考虑到下课题开发中并不打算采用PCI9054芯片的主工作方式来完成本地端与PCI端之间的信息交互,因此本文主要讨论从工作方式下的总线操作。在从工作方式下PCI9054芯片是PCI总线的从设备,对本地总线则是主设备。总线操作所涉及到的主要信号如图23所示PCI9054FRAME,C/BEADADDRIRDYDEVSELTRDY,ADDATALHOLDLHOLDALA,ADS,LW/RBLASTREADY,LDPCI总线本地总线从从主主图23从方式下的总线操作信号本地基地址PCI基地址PCI地址空间本地地址空间建立一一对应关系扬州工业职业技术学院毕业设计12PCI9054访问本地操作的信号时序关系如图24所示。控制信号有效边沿的含义已标注于图中。图24本地总线突发操作时序图可以对本地总线操作过程作如下还原在PCI端发起操作后,PCI9054芯片将LHOLD信号置为高电平,表示申请占用本地总线并等待本地端的接口逻辑的应答。当本地端将应答信号LHOLDA信号置为高电平时,PCI9054即获得本地总线的控制权。在下一个时钟周期的上升沿,PCI9054将地址选通信号ADS置为有效,此时待访问的本地地址已经出现在本地总线上,同时LW/R信号也变为低电平,以表示当前要进行的是读操作。如果本地地址是有效的,则ADS在下一个时钟周期重新变为高电平。此时如果待读取数据已经准备好,那么本地总线接口逻辑需要在ADS信号变低后的下一个时钟的上升沿,置READY信号为有效状态(低电平),同时将待读取的数据送到本地总线的数据线上。如果本地端的数据没有准备好,READY信号仍然保持为无效状态,同时PCI9054芯片会自动插入外部等待周期直到READY信号有效为止。当PCI9054芯片判断出READY信号有效后,即可在一个时钟上升沿对本地数据总线上的数据进行采样,并缓存在9054内部的FIFO中,进而在PCI9054内部的PCI总线控制器地控制下通过PCI总线传送到主机的主存储器中。如果选定的传输模式是持续突发方式,本地总线就一直处于数据周期,而本地地址会随着数据周期进行自增操作,不需要人工干预,从而完成数据和地址的协调。数据传输状态将一直持续到BLAST信号出现为止。BLAST信号变为低电平就表示当前数据期已经是传输的最后一个数据期,即数据传输即将结束。因此当BLAST信号有效后,本地总线接口逻辑需要撤销READY信号,并且PCI9054申请占用本地总线本地接口逻辑应答地址选通读操作最后一个数据本地数据准备好放弃本地总线占用扬州工业职业技术学院毕业设计13芯片会完成撤销地址信号、将LW/R信号恢复到高电平、撤销LHOLD信号申请放弃本地总线占用等一系列工作。至此一个完整的数据传输过程结束。在PCI9054芯片内部设置了本地地址空间区域描述寄存器(LBRD),用以设置本地总线相关属性,在应用PCI9054芯片进行本地数据传输时需要正确设置该寄存器。该寄存器的一些重要位定义见表23表23LBRD寄存器的常用位说明位功能描述10本地地址总线宽度。00表示8位总线,01表示16位总线,10或者11表示32位总线。52内部等待状态周期数可在015范围内调整。6READY信号输入使能。7BTERM信号输入使能。24突发模式使能。需要强调的是上述本地总线信号以及时序关系的分析是今后在FPGA芯片内部设计本地总线接口电路的前提性工作。本地总线接口的具体设计和实现将在第三章论述。扬州工业职业技术学院毕业设计14第三章FPGA内部逻辑电路设计31FPGA设计概述311FPGA型号选择对于上述寄存器、译码器、存储器,如果采用各类中小型集成电路分立元件构建,必然面临设计周期较长,硬件板卡制作复杂、对设计的修改升级工作难以进行、设计过程中不能预期实际运行状况等一系列问题。因此在本课题的实际设计中,采用可编程逻辑器件实现上述单元电路。可编程逻辑器件可以通过软件更改、配置器件内部连接结构和逻辑单元,从而可以完成既定设计功能。采用可编程逻辑器件从事数字系统设计的最大优势体现在灵活性上,通过硬件描述语言可以自由的描述任何数字系统,描述完毕后借助于综合工具可以生成网表文件,利用该网表文件即可在可编程逻辑器件内部生成所需的数字电路。在设计过程中可以通过功能仿真和时序仿真及时发现错误或者脆弱的电路设计,修正、改进电路工作工作通过修改程序代码方式完成,不需要重新制作硬件板卡。另外由于设计的数字系统在可编程逻辑器件内部实现,因此硬件PCB的设计有所简化,缩短了开发周期。目前应用最广泛的当属现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD。两者在制造工艺、提供的资源规模、配置方法、布线资源等方面有着诸多不同。通常情况下FPGA内部提供较多的触发器资源,较多的适用于复杂的时序电路设计,CPLD则一般应用在简单的组合逻辑电路设计中,考虑到本控制逻辑电路中含有较多的同步控制机构、同步存储器,在实际开发中选用现场可编程门阵列(FPGA)器件作为控制逻辑电路的实现载体。最后综合考虑器件能提供的逻辑资源、价格等因素,最终将型号确定为ALTERA公司的CYCLONE1C6器件。CYCLONE系列器件内部平面布局图参看图31。在FPGA内部行列走线之间分布者大量的逻辑阵列块(LAB),每个LAB中包含10个逻辑单元(LE)。逻辑单元是FPGA逻辑的最小组成部分,对于FPGA器件逻辑单元数量是反映FPGA所能提供逻辑资源的主要指标。对于CYCLONE系列的FPGA,每个LE由一个四输入查找表、一个可编程触发器、同步置位清零电路构成。查找表(LOOKUPTABLE简称扬州工业职业技术学院毕业设计15为LUT,其本质上就是一个RAM。对于一个四输入的LUT,可以看成一个有4位地址线的16X1的RAM。当用户通过原理图或硬件描述语言描述了一个逻辑电逻辑阵列块锁相环锁相环I/O资源M4K储存资源图31CYCLONE内部平面布局路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。432FPGA设计流程基于FPGA的数字电路设计主要是通过FPGA器件生产厂商提供的综合开发平台完成。对于CYCLONE系统的FPGA,该综合开发平台为ALTERA公司开发的QUARTUS软件。在QUARTUS平台中从事FPGA开发的流程如图32所示。在设计输入阶段,利用文本编辑器或者原理图编辑器输入基于VERILOG或者VHDL语言的硬件描述程序代码或者数字电路原理图以表达设计人员的电路构思,同时可以使用QUARTUS软件提供的分配编辑器设定初始设计约束条件。功能仿真用来验证电路在理想环境下的行为是否符合设计预想,用功能仿真可以很快发现电路设计中的原则性错误,并能及时修改。综合是将硬件描述语言、原理图所表达的设计输入翻译成由与、或、非门,RAM,触发器等基本逻辑单元构成的逻辑连接,并经过约束条件的优化后,输出网表文件提供布局布线器使用。扬州工业职业技术学院毕业设计16设计输入(HDL代码、原理图)综合并优化布局布线并优化配置调试系统设计方案构思功能仿真是否正确时序仿真是否正确是否由布线优化造成是否由综合优化造成YYYYNNNN图32FPGA开发的流程在布局阶段,依据网表文件将设计的逻辑和时序要求与器件的可用资源相匹配,为每个逻辑功能分配最合理的逻辑单元(LE)位置,优化选择互连路径和管脚分配。时序分析是开发工具分析所有逻辑的时序性能并向用户报告各类时序参数,如果建立/保持时间、时钟至输出延时、最大时钟频率,用户可以通过修改时序约束来提高时序性能。由于时序仿真考虑到门延时、路径延时等延时信息,将布局布线的延时信息反标注到设计网表中,因而可以很好的反映所设计的数字电路在加电后实际工作状态。在本课题开发实践中并没有使用QUARTUS开发平台内部的仿真器,而是使用仿真速度更高的第三方仿真工具MODELSIM软件。扬州工业职业技术学院毕业设计17配置是将QUARTUS生成的配置文件通过下载电缆传送到与FPGA配套的配置芯片中。这样在系统加电后,配置芯片内的数据将被首先读出,对FPGA进行初始化并生成用户设计的逻辑电路。调试可以通过逻辑分析仪或者示波器观测FPGA的引脚信号来完成,对于较简单的设计,调试工作可借助于QUARTUS内部的SIGNALTAP工具实现。需要说明的是综合、布局布线等操作是由QUARTUS软件自动完成的。因此,在下文将只讨论各个功能模块的设计思路、关键代码以及必要的仿真。32本地总线接口电路的设计321状态机的基本含义同步有限状态机(FSM)的设计是数字逻辑设计比较重要的设计内容,尤其适合于控制逻辑的设计。通过状态转移图可以将复杂的控制时序图形化,控制过程被分解为状态之间的转换关系,从而将问题简化。同步有限状态机可以分为米里型(MEALY)和摩尔型(MOORE),组成要素包括输入、状态(包括当前状态的操作)、状态转移条件、状态的输出条件。一个米里型的FSM通常具备图33所示的结构。下一个状态逻辑状态存储器输出逻辑输入当前状态时钟输出(只适用于米里型)图33米里型状态机的结构状态机的当前状态是存储在状态寄存器中。状态寄存器由单时钟(这也是同步状态机的名称由来)触发的触发器,当前存储的值是状态向量(包括当前状态和前一个状态)。状态机的下一个状态是状态向量和输入条件的函数。而摩尔型输出扬州工业职业技术学院毕业设计18只是状态向量的函数。状态机的逻辑一般是使用硬件描述语言中的CASE语句或者是等价语句(如IFELSE语句)来描述,所有当前状态和输入的组合方式都被枚举并且用合适的值来描述下一个状态和输出。322本地总线接口电路的实现根据前文对本地总线操作过程以及信号时序关系的分析,可以明确本地总线接口控制器的设计目标根据输入的控制信号LHOLD、ADS、BLAST生成符合本地总线时序要求的控制信号LHOLDA、READY。另外还需要在数据传输过程中依据读写两种情况分别产生读写请求信号RDREQ和WRREQ。不过此处产生的读写信号并不会直接用于对控制电路内部的器件进行读写,主要与译码电路输出的译码信号结合起来使用,用于判断对一个器件的操作是读操作还是写操作。对于LHOLD信号的应答问题,采用VERILOG硬件描述语言中的ALWAYS和ASSIGN语句就能简便高效的实现ALWAYS(POSEDGECLK)LHOLDA_R注册WINDRIVER查找PCI设备枚举资源锁定资源访问板卡资源解锁资源关闭WINDRIVER的内核模块。实现的基本方法是调用WINDRIVER提供的API函数来实现对硬件的操作。当在应用程序调用这些应用层的API函数时,这些函数会通过WINDRIVER的内核模块来真正实现对硬件的操控,不需要用户人工干预。图43清楚的表达出这种含义。扬州工业职业技术学院毕业设计25用户编写的代码WINDRIVER用户层函数库WINDRIVER内核模块硬件用户层应用层用户应用程序图43WINDRIVER体系结构图对于版本为60的WINDRIVER开发工具,其内核模块的文件名为WINDRVR6SYS。44重要API函数的参数设置通过调用WINDRIVERAPI函数可以实现PCI地址到本地地址的映射、数据传输、中断处理、配置PCI9054等一系列功能,因此对WINDRIVERAPI函数的功能、参数定义、返回值的分析及应用构成了驱动开发环节的主体性工作。常用函数的具体说明如下。(1)WD_LICENSEHWD,LIC功能注册WINDRIVER的内核模块。参数HWDWINDRIVER的内核模块的句柄号;LIC内容为有效LICENSE的字符串。返回值无(2)BOOLP9054_OPENP9054_HANDLEPHPLX,DWORDDWVENDORID,DWORDDWDEVICEID,DWORDNCARDNUM功能打开WINDRIVER的内核模块,检测、枚举、锁定P9054板卡资源。参数PHPLX存放P9054_OPEN函数在执行过程中获得的PCI9054设备的句柄号;DWVENDORID厂商编号,实际赋值为0X10B5;扬州工业职业技术学院毕业设计26DWDEVICEID设备编号,实际赋值为0X9054;NCARDNUM板卡编号,实际赋值为0。返回值打开设备成功返回TRUE,否则返回FALSE。(3)VOIDP9054_WRITEDWORDP9054_HANDLEHPLX,P9054_ADDRADDRSPACE,DWORDDWOFFSET,UINT32DATA功能以单周期方式向PCI板卡写入一个双字数据(32位)。参数HPLXPCI9054设备的句柄号;ADDRSPACE本地地址空间编号,实际赋值为0;DWOFFSET存放数据的存储单元的偏移地址;DATA待写入的数据。返回值无注相对应的读单个数据的函数为P9054_READDWORD()。(4)VOIDP9054_WRITEBLOCKP9054_HANDLEHPLX,DWORDDWOFFSET,PVOIDBUF,DWORDDWBYTES,P9054_ADDRADDRSPACE,P9054_MODEMODE功能以突发方式向PCI板卡写入一批数据。参数HPLXPCI9054设备的句柄号;DWOFFSET在PCI板卡上存放数据块的存储区域的起始地址;BUF在主机内存中存储待写入的数据块的缓冲区的起始地址;DWBYTES待传输数据块的字节数;ADDRSPACE本地地址空间编号,实际赋值为0;MODE传输数据的宽度,实际赋值为2,表示以32位方式传输。返回值无注相对应的读批量数据的函数为P9054_READBLOCK()。(5)VOIDP9054_WRITEREGP9054_HANDLEHPLX,DWORDDWREG,UINT32DWDATA功能向PCI9054芯片内部的配置寄存器写入数据。参数HPLXPCI9054设备的句柄号;DWREG内部寄存器的地址。具体各个寄存器地址参看PCI9054扬州工业职业技术学院毕业设计27的数据手册;DWDATA待写入的数据。返回值无注相对应的读配置寄存器的函数为P9054_READREG。(6)BOOLP9054_INTENABLEP9054_HANDLEHPLX,P9054_INT_HANDLERFUNCINTHANDLER功能使能PCI中断和本地中断。参数HPLXPCI9054设备的句柄号;FUNCINTHANDLER中断服务执行函数。返回值使能成功返回TURE,否则返回FALSE。(7)VOIDP9054_INTDISABLEP9054_HANDLEHPLX功能禁止PCI中断和本地中断。参数HPLXPCI9054设备的句柄号。返回值无(8)VOIDP9054_CLOSEP9054_HANDLEHPLX功能解锁资源并关闭WINDRIVER的内核模块。参数HPLXPCI9054设备的句柄号。返回值无补充说明在上述读写函数中,参数表中的偏移地址使用的是字节编址,而本地地址分配表中地址则是基于长字编址(每个长字为32位,一个长字即四个字节)。因此在对函数参数实际赋值时,不能直接用本地地址分配表中的地址为参数赋值,而是应该将该地址乘以4后再赋值(即左移两位)。45驱动程序的分发如果需要在一台没有安装过WINDRIVER软件的机器中使用PCI板卡,可以按照下述步骤进行。1、在目标计算机上安装WINDRIVER软件。2、将PCI板卡插到PCI插槽,运行WINDRIVER的驱动生成向导以生成硬件信息文件,该文件后缀为INF。如图44所示。扬州工业职业技术学院毕业设计28图44生成INF信息文件3、重新开机,系统会提示找到新硬件,进入硬件驱动安装向导程序。此时,需要使用上述的INF文件。4、如果按照上述方法安装后PCI板卡工作不正常,可以更换PCI插槽并按照上述步骤重新安装,一般情况下问题都可以解决。安装成功以后可以在操作系统的设备管理器中看到这项设备,如图45所示。图45设备管理器截图扬州工业职业技术学院毕业设计29第五章数据传输功能测试51测试软件概述综上所述,在分析PCI总线协议,PCI接口芯片工作方式、时序等一系列原理的基础上,设计者在FPGA芯片内部设计出本地总线接口逻辑电路,生成FIFO存储器、寄存器等逻辑资源并为这些资源分配对应的本地偏移地址。至此实现采集卡传输功能的硬件条件已经完全具备,下面利用VISUALC2005开发工具在计算机主机端编写测试程序,以用来测试该采集卡能否完成数据传输功能以及数据传输的正确性。在上章的分析可以看出,用WINDRIVER开发驱动的过程,实际上就是在应用程序中调用各个接口函数的过程,在本测试软件的编写过程中同样也不例外。软件的界面如图51所示。图51测试软件截图扬州工业职业技术学院毕业设计30该测试软件主要包括四部分测试内容(1)PCI设备的打开关闭功能。在具体完成打开操作前,注意要选择正确的设备。(2)读取PCI9054接口芯片内部寄存器的功能。数据采集卡上的串行EEPROM芯片存储这些寄存器的初值,在板卡上电的时候,将完成寄存器的配制。(3)利用从传输方式,与板卡本地端的资源(如寄存器)进行双向的单次数据传输。(4)与板卡本地端的资源(如FIFO存储器)进行双向的批量数据传输。上述测试内容既包含对PCI9054芯片内部资源的读取测试,也包含对芯片外部逻辑资源的读写测试;既包含读取数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论