版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于LPC总线的故障诊断卡设计及验证系所:电子工程系专业:电子信息工程(集成电路设计与系统方向)学生姓名:学生学号:指导教师:导师职称:讲师完成日期:2014年4月28日大连东软信息学院Dalian大连东软信息学院毕业设计(论文)摘要IV基于LPC总线的故障诊断卡设计及验证摘要在实际工作中,经常要面对计算机主板故障的检测,尤其是针对嵌入式计算机的主板,在不能进行系统拆解的条件下对主板进行功能性鉴定,将有故障的主板进行快速的故障定位,最后生成检测报告,以便使用者能够高效确定该类问题的处置和返修方案。现在市面上大多数存在的都是以PCI插口为基础的LPC主板故障检测卡,这种以FPGA为核心的主板检测卡,通过插在计算机主板上的PCI插槽,就可以检测主板的状况,并以数字的形式将检测代码显示到七段LED显示屏上,价格相对便宜,使用时也十分方便。但是往往有些笔记本之类高度集成的主板却无法使用这种PCI插口的检测卡。该文中介绍的就是一种基于LPC总线的主板故障检测卡,该设计使用的并不是通过现在的PC机等主板上的PCI插槽的方式来实现故障检测卡的工作,因为当下的笔记本电脑主板或者是军工类计算机的主板都是没有PCI插槽的,所以想要实现LPC总线的工作,就必须另辟蹊径,之所以该类主板上面没有PCI插槽,是因为这类主板都是需要高度集成的,如果加入一个PCI插槽,会相应的增加很多的面积,因为这个原因,我们可以通过其他的方式来实现该功能,本设计中采用更加省地方的插针方法,通过插针,实现LPC总线数据的传输,从而实现了主板故障检测卡与主板之间的连接,使我们能够更方便,更快捷的使用检测卡来检测故障。关键词:嵌入式计算机主板,快速故障定位,故障检测,加电自检检测卡大连东软信息学院毕业设计(论文)AbstractAMainboardPOSTCardBasedOnLPCBusAbstractOndailyworkinglife,peopleoftenencounterthesituationoftestingthetechnicalconditionofmainboardonacomputer,especiallyfortheembeddedmainboards.Forthenon-disassemblingones,peopleneedstoevaluateitsperformance,quicklylocatefaultsonamainboard,andgeneratethefinalreportfortheconvenientofmanagerstodeterminedispositionandafter-salesservices.Nowadays,themostlyexistingfaultPOSTcardsareLPCmainboard,basedonPCIslots.ThiskindofmainboardPOSTcardiscenteredasFPGA,testingtheconditionofmainboardbyinserteditonPCIslots.Italsoshowstestingcodeasnumbersontheseven-segmentLEDscreen,characterizedascheapandeasyhandling.However,therearesomehighlycondensedmainboardscannotusesuchkindofPCIPOSTcardlikePC.ThisarticleismainlyintroducingamainboardPOSTcardbasedonLPCbus.ThedesigntoperformfaulttestingisnotrealizedthroughPCIslotonthemainboardofaPC,becausethereisnoPCIslotsonPCormilitaryprojectedcomputer.Hence,wemustfindotherwaytofulfillfunctionofLPCbus.ThereasonwhynoPCIslotisonthosemainboard,itisbecausethattheyarehighlycondensed.IfonemorePCIslotisadded,itwillneedmorespaceaccordingly.Therefore,wecanreplaceitwithothermeans.Thearticledesignadoptsamorespace-savingway.ThroughcontactpintofulfillthedatatransitionbetweenLPCbus,linkingthemainboardwiththemainboardfaultPOSTcard,whichmakesamoreconvenientandquickwaytousePOSTcardtodetectfaults.Keywords:embeddedcomputermainboard,quicklyfaultlocation,faulttesting,poweronselftestcard大连东软信息学院毕业设计(论文)目录目录TOC\o"1-3"\u摘要 IAbstract II第1章绪论 11.1课题研究背景与意义 11.2课题研究内容与方法 11.3课题研究现状 2第2章关键技术介绍 32.1POST上电自检过程 32.2OrCADCapture软件 32.3QuartusII软件 32.4ISE软件 42.5Multisim软件 72.6LPC总线 10第3章系统设计与需求分析 123.1系统设计目标 123.2系统功能需求 123.2.1插针数据接口部分 133.2.2FPGA部分 133.2.3显示(LED)部分 143.3系统非功能需求 153.4系统开发环境 163.5系统可行性分析 163.5.1技术可行性 163.5.2经济可行性 16第4章系统实现 174.1环境配置 174.2功能模块实现 174.3PCB设计部分实现 22第5章系统测试 26第6章结论 28参考文献 29致谢 31大连东软信息学院毕业设计(论文)-第1章绪论1.1课题研究背景与意义计算机在日常中的应用变的越来越普遍,这也就导致了计算机出现的故障越来越多,各种各样的问题,无论是简单还是困难,都会随之而来,人们有的时候在将计算机送去维修的过程中,也许还会遇到各种各样的麻烦,而且在资金方面以及在人力物力方面都会存在着各种各样的不方便,那么有没有一种器件或者是一种工具能够让一些不是很专业的计算机使用者在计算机出现问题的时候,大致的判断出主板存在的问题,是否需要送至专业人员处进行检修,这样的话无论在哪一方面都会使得使用计算机的人方便不少。在日常维修计算机的时候,或许是在显示之前,或许是在显示之后,总会遇到各种各样的问题,虽然有的时候我们可以通过系统自带的蜂鸣功能来判定问题,但是时间长了会发现,往往一些细微的故障或者是不常见的故障,仅仅依靠蜂鸣来判断是远远不够的,所以该设计制作的就是一个名为主板诊断卡的一种Debug工具,通过这样的一个POST卡虽然不能够对主板存在的问题进行维修,却可以帮助一些非专业人员或者是维修人员更方便更快捷的定位主板存在的故障。本课题采用的是LPC的总线类型来实现故障的检测。经实践后,基于LPC总线的主板故障检测卡所提供的报错能力远超系统自身的蜂鸣器报错,能够帮助维修者更快捷更准确的定位计算机主板的故障。1.2课题研究内容与方法本课题主要研究的是基于X86处理器的主板故障检测卡,利用Inter公司自己推出的Lowpincount总线使计算机可以连接检测卡,其中只需要7个必须LPC总线的引脚就可以使故障检测卡能够连接到计算机的南桥,从而实现故障检测卡的检测功能。计算机在启动时,BIOS会进行一个POST加电自检,在对计算机基础硬件的设备进行检测后,发出一个对应的检测代码,然后发出reset信号,进行下一个设备的自检,在此之后再次发出一个对应的检测代码,当检测到硬件出现问题的时候,故障检测卡会停留在一个对应的代码上,通过故障检测代码对照表可以得知是哪个硬件出现问题,从而对故障进行排查和维修。因为BIOS生成的诊断进度代码会提交给南桥上的I/O端口80H,所以,诊断卡的设计需要对80H端口发出的信号进行解码,然后芯片把解码的信号通过七段显示器显示出来。1.3课题研究现状计算机已经成为了日常生活中不可缺少的一部分了,有家庭专用的PC机,有方便携带的笔记本,也有日益抢占市场的平板电脑等等,这些计算机的出现,大大的给我们提供了一定的方便,但是,当对应计算机的主板出现了故障的时候,使用者就会面临着许多的问题,现在市场上最多的都是一种基于LPC总线的故障检测卡,这种检测卡绝大多数都是利用PCI插口,但是,时间长了会发现一个问题,那就是绝大多数的台式机主板上面会有两个或者以上的PCI插槽,但是,在笔记本电脑上,或者是一些军工类计算机的主板上,根本没有PCI这样一个相对来说十分占地方的插槽,由于这些主板需要高度集成主板上的元器件,所以有一部分笔记本甚至会引出一个MiniPCI插槽,以此来替换相对庞大的PCI插槽。当主板出现故障的时候,主板故障检测卡可以很轻松的对主板故障进行定位。故障检测卡功能是通过LPC总线来进行实现的,所以如果人们想要在这些主板上使用故障检测卡,就可以剔除PCI插口中的无用部分,仅仅保留LPC总线所需要用到的部分,然后通过插针这样的微小器件(伪PCI连接器件)连接主板检测卡,从而实现计算机主板故障检测的功能。该设计就是通过对PCI插槽进行分解,然后提取出其中的LPC总线,将LPC总线的数据传输由原先的PCI插槽转变为插针的形式,用来迎合一些提供插针LPC总线的嵌入式主板,从而大大减小在主板维修时所耗费的时间。大连东软信息学院毕业设计(论文)第2章关键技术介绍2.1POST上电自检过程POST上电自检:在计算机正常开机前,一定会有一个自检的过程,在这个自检的过程中,计算机会在开机前判断一些必要的设备是否是可以正常工作,这个过程我们叫做POST上电自检,它是预先设置在BIOS中的一个功能,自检的顺序依次为,加电→CPU→ROMBIOS→systemclock→DMA→64KbRAM→IRQ→displaycard等,这些过程被称作为关键性部件测试,当任何一个关键性部件出现了问题,计算机便会处于挂起的状态,必须断电后再次加电或者对计算机进行重启后才能进行下一次操作,关键性部件出现的故障被称作为“核心故障”,产生这些故障的器件主要是:主板、CPU、显卡、内存、电源等等。等到上述关键性部件的检测完毕后,计算机会对其余非关键性部件进行检测,如:内存,I/O接口,CMOS设置,软盘硬盘的驱动器,即插即用设备等,最后在屏幕上显示出计算机的相关信息和出现错误的报告。2.2OrCADCapture软件OrCAD是一套电子设计自动化的套装软件,多用于个人电脑,电子工程师大多数用来设计电路图和相关的图表,设计PCB电路板的印刷图,或者是进行电路的模拟。OrCADCapture基于Windows操作环境,是一款电路设计软件。利用Capture,能够实现电路原理图的绘制,以及为制作可编程逻辑设计和PCB版图提供仿真信息。OrCADCapture的标准PCB原理图输入方式,是当下世界上十分流行的原理图输入工具。它的用户设计界面简单直观。OrCADCaptureCIS的元件信息系统十分强大,可以在线和集中管理元件的数据库,从而使得电路设计变得更加有效率。OrCADCapture提供了可调整的、完整的原理图设计的方法,能够更好的应用于PCB版图的设计创建,重用和管理。OrCAD能够从一开始就帮助设计师抓住设计意图,从而将PCB布局布线和原理图的设计相结合,较好的完成设计任务。无论是在模拟电路、复杂的FPGA、CPLD、PCB、PCB改版的原理图进行修改,还是在层次模块的设计,OrCADCaoture都能快速的为设计师提供输入工具。所以CadenceOrCADCapture是具有多功能性的PCB输入工具。2.3QuartusII软件QuartusII是Altera公司制作的综合性开发软件,支持原理图、VHDL、VerilogHDL和AHDL等各种设计输入的形式,软件内自有的仿真器和综合器,可以完全担任设计输入一直到硬件配置的相对完整的PLD设计流程。QuartusII可以在Linux、XP以及Unix上使用,不仅可以通过使用Tcl脚本进行设计流程,还为用户提供了完善的图形界面设计。更方便用户的使用。该软件的运行速度相对较快,页面相对统一,功能比较集中,而且易学易用。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使得一些成熟的模块可以被用户充分的利用,使设计的复杂性变得更加简化,设计的速度更加快。可以更好的支持第三方的EDA工具,用户可以随意使用自己熟悉的第三方工具在设计的各个阶段。此外,QuartusII通过DSPBuilder工具与Matlab/Simulink相结合,可以使实现各种DSP的系统变得更加方便;支持Altera的SOPC(片上可编程系统)开发,集系统级设计、可编程逻辑设计和嵌入式开发合一体,该开发平台具有较好的综合性。MaxplusII作为Altera的第一代PLD设计的软件,它因为出色的简单操作性,被人们广泛的进行应用。当下Altera已经不再对MaxplusII进行更新支持,QuartusII和它相比,改变的不仅仅是对支持器件的类型进行丰富化,以及图形界面。Altera在QuartusII中加入了很多像SignalTapII、ChipEditor和RTLViewer的辅助设计工具,继承了HardCope以及SOPC的设计流程,并且沿用了MaxplusII简单易用的使用方法和相对友好的界面。AlteraQuartusII这种可编程逻辑设计环境,依靠它简单直观的接口以及相对完善的设计能力,使得设计者越来越欢迎这款软件。2.4ISE软件ISE的全称为IntegratedSoftwareEnvironment,即“集成软件环境”,是Xilinx公司开发的硬件设计工具。相对比较容易使用的、首屈一指的PLD设计环境,ISE将相对先进的操作技术与易使用性、灵活性的图形界面相结合,不管经验如何,都可以让使用人员在最短的时间,花费最少的精力,达到最好的硬件设计。下面主要概述一下ISE的基本开发流程,和在开发过程中,各个阶段都需要用到的一些工具软件。利用Xilinx公司的ISE开发设计软件,其工程设计的流程,具体可以分为五个步骤:分别是输入(DesignEntry)、综合(Synthesis)、实现(Implementation)、验证(Verification)和下载(Download)。(1)图形或文本输入(DesignEntry)图形或文本输入分别为原理图、状态机、波形图、硬件描述语言(HDL),是工程设计的开始,ISE所集成的设计的相应工具主要包括HDL编辑器(HDLEditor)、状态机编辑器(StateCAD)、原理图编辑器(ECS)、IP核生成器(CoreGenerator)和测试激励生成器(HDLBencher)等。硬件描述语言(HDL)和原理图是最常用的输入方法。原理图的设计输入方法是一种十分常用并且是最基本的方法,尤其是利用连接线,将元件库的各种图形符号连接,之后在ISE软件所对应的图形编辑器中画出设计的原理图,ISE中具有各种电路元件所对应的元件库,包括门电路、触发器、锁存器、计数器、多种中规模电路、多种功能相对较强的宏功能模块等,用户只需要点击对应的器件就能够调入图形的编辑器中。这种方法所具有的优点是十分直观、便于理解的,并且其元件库资源十分丰富。但是在一些大型的设计中,利用这种方法可维护性变得很差,不利于模块的建设和重用。更加严重的缺点是:当被选用的芯片进行升级换代后,所有之前的原理图都需要作一些相应的改动。所以在ISE软件中,大型设计一般不用此法。为了能够克服原理图中输入方法所存在的缺点,目前在一些大型的工程设计中,ISE软件中最常用的设计是HDL的设计输入法,其中影响较为广泛的HDL语言分别为VHDL和VerilogHDL。它们存在的共同优点是更加利于自上而下进行设计,这样能够更加利于其模块的复用与划分,可移植性好,通用性强,设计不会因为芯片工艺和结构的改变而改变,更利于向ASIC的移植,故在ISE软件的使用中推荐使用HDL设计输入法。状态机的输入和波形的输入是现有的辅助设计输入中十分常见的两种,波形输入法在使用时,需要绘制出的输出波形只需要有激励波形就可以,ISE软件之后就能够智能地根据响应的关系从而进行设计;在状态机输入被使用时,仅仅需要设计者画出对应的状态转化图,ISE软件就能够轻松的生成相应的HDL代码以及原理图,使用起来十分方便。其中ISE工具包中的StateCAD就能够完成状态机的输入功能。但是需要特别指出的是,后面两种设计的方法只能用在某些特殊的情况下,以此来缓解设计师的工作压力,但是并不代表适合所有的设计。(2)综合(Synthesis)综合是将行为层次以及功能所要表达的电子系统转变为对应一些低层次的模块的组合。一般来说,硬件描述语言VHDL的综合运行,也就是将所描述的VHDL模型、算法、行为和功能描述转变为相应的FPGA/CPLD基本结构的网表文件,这也就构成了相对应的映射描述。在XilinxISE中,综合工具主要分为Synplicity公司开发的Synplify/SynplifyPro,Synopsys公司将开发的FPGACompilerII/Express,以及ExemplarLogic公司开发的LeonardoSpectrum和XilinxISE软件中的XST等,对HDL语言进行翻译,还有原理图等输入翻译成与、或以及非门,寄存器,RAM等网表的基本逻辑单元(逻辑连接),并根据目标优化所需的逻辑连接,输出edf和edn文件,CPLD/FPGA的制造商进行布局布线并且实现。(3)实现(Implementation)实现是相应的模型基于所选芯片,最终输出逻辑网表,并且连接到一个特定的设备上。XilinxISE进行实现的过程分别为:翻译(Translate)、映射(Map)、布局布线(Place&Route)等3个步骤。ISE集成所能够用到的实现工具有很多,比如说约束编辑器(ConstraintsEditor)、区域和引脚约束编辑器(PACE)、FPGA底层编辑器(FGPAEditor)、时序分析器(TimingAnalyzer)、芯片观察窗(ChipViewer)以及布局规划器(Floorplanner)等。(4)验证(Verification)验证(Verification)也包含了很多方面,最被人们常见的是仿真的集成功能验证(Simulation),以及后仿真的验证等等,模拟测试对设计电路对应的逻辑功能进行仿真,这个仿真过程叫做功能仿真,对照仿真测试结果看是否达到设计要求,通常是通过相应的波形图更直观地显示系统的输入信号和输出信号之间的关系。全面适配了目标设备之后,可以对设计进行综合后仿真,综合后仿真接近设备的实际特征,可以更加准确的显示出信号输入和输出数据之间的时间延迟。ISE的仿真可以配合第三方软件,一般所用的工具有很多,比如ModelTech公司开发的仿真工具ModelSim6.5,一些测试激励生成器HDLBencher,Synopsys公司开发的VCS等。这些软件都能够通过仿真,在第一时间发现设计中存在的错误,更有利于解决设计中的错误,从而使设计进度更加迅速,对提高设计的可靠性很有利。每当一个仿真的步骤出现了问题,就需要定位错误的所在,然后根据定位返回到相应的错误步骤,对设计进行更改或者将设计推翻重来。(5)下载(Download)下载(Download)也就是编程(Program),当设计开发进行到最后一步的时候,剩下的就是将已经通过了仿真的程序代码下载到对应的开发板上,在线调试已经仿真过的程序,或者是把调试生成的配置文件烧录到芯片中,然后进行对应的功能测试。在ISE中进行下载烧录的工具主要是iMPACT。2.5Multisim软件Multisim是一款以windows为基础,被美国国家仪器有限公司所推崇的仿真工具,一般用于设计板级的模拟以及数字电路所对应的工具。它包含的输入方式主要有电路原理图的输入以及硬件描述语言的输入,而且该软件具有较为完善的仿真分析能力。软件和硬件工程师们在设计电路的原理图的时候,完全可以利用Multisim软件进行交互式的搭建,然后对电路进行最后的仿真。Multisim将SPICE仿真的内容化复杂为简单,这样,使用的工程师即使没有对SPICE仿真技术有十分深入的了解,也可以很好的对设计进行仿真、捕获以及分析等操作,这种情形也更加迎合现在的电子学教育的目标。PCB设计工程师以及电子学的教师等等可以通过Multisim和虚拟的仪器技术来完成从理论到原理图的设计过程,然后再进行仿真,原型设计,最后对项目测试,直至完成一个完整的设计过程。Multisim是InteractiveImageTechnologies交互式技术形象(虚拟电子工作平台)公司推出的一款以Windows操作系统为基础的仿真工具主要应用于板级电路的设计工作,这款软件具有较完善的仿真分析能力,而且为了使其能够在更多场合发挥更好的作用,Multisim发布了很多的版本信息,这样使用者可以根据自己的能力或者是需要使用的功能来对软件的版本进行选择。(1)Multisim对元器件的管理每一款EDA软件的质量和易用性都是使用者相当看重的,而决定这些的因素,则是该软件中有多少存在的元器件可以供用户使用,以及提供的元器件的模型是否准确。Multisim这款软件就给使用者提供了相当多的元器件,这些原器件相对都是比较准确的,并且使用者可以根据自己的需要来进行元器件的筛选和使用,这样的开放式管理使得软件更加友好,使使用者更加方便。Multisim用来管理元器件的部分是库,使用者可以通过主菜单下的工具栏内的DatabaseManagement来打开对应元器件库的管理窗口,从而管理软件中的元器件库。在数据库管理窗口中的Database中我们可以发现两个不同的数据库,分别为MultisimMaster和User,其中User选项是作为使用者自建的数据库,用来放置用户自定义的元器件,而MultisimMaster这个选项中所放置的是软件本身自带的元器件的信息。使用者可以对User选项中的元器件进行编辑,但是对MultisimMaster中的信息只有浏览的权利,并不能对其中的信息进行编辑和修改。当选择了MultisimMaster之后,窗口中的编辑按钮全部变成无法选定的灰色,这也就强制的限制使用者对软件自带的信息进行修改。但是使用者可以通过ButtoninToolbar这个选项来实现对不同类别器件的表示方法进行查询。之后使用者可以根据这些信息,在User数据库的模式下,对自己编辑和创建的元器件进行编辑管理。在MultisimMaster的元器件分为两种,分别是实际和虚拟元器件,两者之间有根本的差别,其中实际元器件类型是与实际元器件的各方面,例如型号,参数,封装等等都是一一对应的,没有数值和类型的改变,如果把这种器件用在设计中,可以保证设计最后的仿真是偏向于真是情况的,一般不会出现太大的不对应和数值的误差,另外可以不通过任何手段就将设计导出,然后对PCB进行设计,大大减小了项目实现的工作量。另外一种,也就是虚拟元器件利用的参数是这种器件的典型值,无法与实际的器件进行数据的对应,使用者可以改变模型的参数来方便自己的设计,但是这种类型只能够用于仿真,对其功能或者是性能进行验证和测试,不能够实际使用,所以称为虚拟器件。两者的工具栏,会话窗口等等的表示方法也有一定的区别。在工具栏中打开元器件,虽然一些虚拟元器件的图标的形状样式和实际器件的图标都是一样的,但是按钮的底色却有所不同,实际器件的按钮是没有底色的,而虚拟器件则有底色。细心观察的话还是比较容易辨别的。(2)编辑特点Multisim这款EDA工具软件主要的功能是用于电子电路的设计和仿真。属于是一款可以在个人的情况下就可以使用的电子设计工具,并且运行在Windows操作系统下,相对来说具有比较完整的集成化设计环境。对于更好的解决理论的学习和实际操作实验这两者的相互融洽性,无论是在计算机的仿真,还是在虚拟仪器技术方面,Multisim软件都可以起到不错的作用,初学者可以很轻松的用软件进行仿真,并且将刚刚学到的理论数据和相关知识再现出来,等到熟练了,还可以利用虚拟的仪器技术,在一定的操作下创造出属于个人的仪表,在电子学教学中,Multisim软件轻易的成为了众多软件中的佼佼者。(3)直观的图形界面在软件中,其操作的界面就如同一个电子实验的操作台,使用者可以直接拖放一些绘制电路图所能够用到的元器件,以及一些仿真能够用到的测试仪器到使用的屏幕上,可以通过鼠标的点击来实现各个元器件之间的连接关系,该软件的仪器与实物基本相似,具有同样的控制面板以及操作的方式方法,最后得出的测量数据,得到的波形以及生成的特性曲线跟现实的仪器上面看到的基本一样。(4)丰富的元器件该软件提供的元器件中,超过一万七千多种元件都是世界上的主流元件提供商所提供的,同时,如果想要对元件的各种具体参数进行修改和编辑也是相对比较方便的。具有创建模型的功能,分为两种,一种是通过模型生成器,一种是用其中的代码模式来创建使用者所需要的元器件。(5)强大的仿真能力软件仿真的引擎相对来说还是比较强大的,采用的是SPICE3F5以及Xspice的内核,通过Electronicworkbench(电子仿真平台)进行优化,其内置的设计功能可以优化数字模式以及混合模式的仿真性能。优化的类型有很多,比如SPICE仿真,MCU仿真的优化,VHDL以及射频仿真的优化,电路向导的优化等。(6)具有独特的射频(RF)模块软件中提供给使用者一些射频电路基本的设计分析以及仿真验证。射频模块是通过射频特殊元件(RF-specific包括自定义的RF-SPICE的模型)、用来创建使用者根据需要自定的RF模型的一个模型的生成器、两个分别名为频谱分析仪(SpectrumAnalyzer)以及网络分析仪(NetworkAnalyzer)的射频特殊元件的仪器、一些射频特殊元件的分析(例如电路的特性、噪声系数以及匹配网络所对应的单元)等部分组成的。(7)具有强大的微控制单元(MCU)模块Multisim可以支持的单片机芯片的种类一共有四种,支持仿真的设备分别有外部的RAM、ROM、外置键盘,LCD等等外置的一些设备,并分别对所支持的四种芯片提供汇编以及编译。所创建的设计的项目可以使用C语言代码,汇编代码,或者是十六进制代码,并且在第三方工具的源代码方面也是兼容的。其中包含的高级调试功能很多,如设置断点,查看或者编辑内部的RAM以及具有特殊功能的寄存器,还有单步运行等功能都是可以轻松实现的。(8)具有相对完善的后处理功能Multisim软件具有相对完善的后处理功能,比如说对分析后的结果进行一些数学的运算操作。进行运算的种类有很多,比如说常见的有算数运算,指数与对数的运算,向量的运算以及逻辑的运算等等,还有一些是不太常见的,例如三角运算,符合运算等等。支持的运算操作越多,分析的结果也就越准确,所以Multisim在后处理方面还是做的相当不错的。(9)可以生成详细的报告以及报表在设计中,往往一份详细的报告或者是报表可以令使用者的工作量相对减轻不少。Multisim软件就是这样一款软件,它为用户提供了七种可生成的报告类型,这七种报告类型分别为:元器件等等数据的详细报告、使用材料的清单、网络的报表、设计中多余门电路的报告、使用的模型所生成数据的报告、设计中对原理图进行统计的报告以及交叉报告。(10)兼容性相对来说非常好的信息转换功能Multisim软件为使用者提供了设计信息的转换功能,在设计师进行设计的时候,肯定会用到不同种类的程序,而每个程序之间都有想对应的内部结构和算法,一般是不能够直接将数据使用在其他程序上面的,这个功能的作用主要是提供给使用者转换设计中的原理图和仿真的一些数据到其他程序上的方法,可以将设计的原理图输出到PCB布线的程序中,例如Ultiboard软件、P-CAD、Protel或者是OrCAD等这些PCB设计软件。还可以将仿真后的结果和数据经过转换,使其可以直接应用到MathCAD、Excel或者是LabVIEW等等这些软件中去。网表文件等等也是可以经过转换然后应用到其他文件中的。使得设计师能够在设计中省去一些不必要的麻烦。2.6LPC总线LPC总线的出现是INTEL公司为了替代ISA总线与X-bus总线等一些低速总线而推出的多路复用总线,从而使传统总线设备的对应开销大大减小,而且总线对软件透明,其接口没有特别的配置和驱动,支持可变数目的等待状态,在系统管理模式下可以进行存储器和I/O周期再试,支持唤醒等其他电源状态。LPC总线具有较广的应用范围,可以应用于音频、超级I/O、BIOS固件存储器、通用应用存储器以及嵌入式控制器。LPC总线与PCI总线同步,工作在33MHz,可用于实现南桥与外围低速设备的连接。LPC(lowpincount)即低引脚总线,有6个可选的引脚和7个必需的引脚,比ISA总线的30个或者30个以上的引脚少很多,而且连接更为方便,速度更快。而本课题的研究只需要用到其中的7个必需的引脚即可实现。分别为LAD[3:0]4位的数据、地址、控制复位信号,reset复位信号,CLK33MHz的时钟信号,FRAME#发起或终止一个数据传输周期的控制信号。LPC总线协议有多种传输数据类型,它的每个CLK只能传输4位数据其特点是:reset完成系统的复位,由主控设备来驱动对应的FRAME#信号,开始和结束对应的数据传输。LAD信号管理数据的传输,其中包括,循环方向、循环类型、芯片选择、数据、地址、等待状态等。典型的传输时序如下图2.1所示。图2.1LPC总线的基本传输时序图
第3章系统设计与需求分析3.1系统设计目标通过内部智能程序对目标对象进行检测及诊断,并将诊断结果代码一一显示出来,结合POST代码含义说明,用户就能很快地找出主板故障所在。尤其在不能引导操作系统、黑屏、蜂鸣器不叫时,使用本卡更能体现其便利性及高效能,快速有效解决令人头痛而繁杂的电脑故障将事半功倍。利用Inter公司的LPC总线,将计算机主板与故障检测卡连接起来,一般的LPC总线存在于PCI插槽中,故障检测卡通过PCI插槽来读取主板80H端口发送出来的数据。在故障检测卡的设计中,基于LPC总线的设计方法至关重要,其中需要7个LPC总线的引脚,这七个引脚对应的信号分别为:LAD[3:0]这个4位的数据、地址、控制复位信号,一个reset复位信号(该信号主要用于将各个LPC设备内所存在的内部寄存器进行初始化)、一个作为同步PCI和LPC总线功能的33MHz的CLK时钟信号,以及一个FRAME#对一个数据传输的周期进行发起或者终止操作的控制信号。因为该设计将要使用到一些没有PCI插槽的笔记本或者军工类高度集成的主板上,所以,将驱使故障检测卡正常工作的这七个必须信号分离出来后,分别将数据通过一个2x13针脚的插针插槽传输到设计的故障检测卡中,故障检测卡通过译码等操作,然后利用LED七段显示器显示出来。通过OrCAD软件进行PCB的设计、布局布线等操作后,将生成的gerber文件送至PCB制造商进行制造,对需要使用的元器件进行筛选,购买。对做出的PCB板进行元器件焊接后,完成硬件描述语言的编辑,烧录到所选用的FPGA芯片中,对POST卡进行全功能测试,测试通过后,清洗,直至做出POST卡实体。3.2系统功能需求该设计因为需要使用到一些没有PCI插槽的笔记本或者军工类高度集成的主板上,所以不能够直接使用PCI插槽,转而使用更加节省面积的插针,这样只需要在主板中预留出一个2x13个针脚的插槽就可以实现LPC总线的功能。在故障检测卡上,需要选用的可编程逻辑芯片分别为CPLD和FPGA,但是考虑到芯片的可擦写次数以及功能的需要,最后决定选为FPGA芯片,FPGA芯片为主板故障检测卡的精髓所在,译码等过程通过后,再通过LED以使用者可以识别的方式显示出来。经过以上的需求调研,确定该设计主要分为以下3个部分,分别为插针数据接口(伪LPC接口)部分、FPGA部分以及显示(两个七段LED灯)部分。3.2.1插针数据接口部分这一部分主要的作用是通过一个插针来实现检测卡和计算机南桥的数据传输,通过FPGA(复杂可编程逻辑器件)的控制,接收到计算机南桥通过80H口发送的检测代码。本设计中采用相对简单的线路,除了信号线对应连接,还包括接地线和电源线的正确连接。根据LPC总线的协议要求,检测卡中采用3.3V及5V两种电压来实现电路板上各个部分器件的正常工作。经查阅资料,在电压接入处加入一些0.1u的电容,用来滤波。从而使电路中电压更加稳定。插针的每个pin的定义如图3.1。图3.1每个pin的定义3.2.2FPGA部分FPGA部分是整个设计最主要的部分,主要负责接收通过南桥80H接口处传来的代码、对代码进行相应的转换、处理、存储以及输入输出等功能。它将从插针处得到的数据进行接收、锁存(筛选,分频)和译码,最后把相应的信号发送到LED并且显示出来。POST卡的基本原理图如图3.2所示。图3.2POST卡基本原理框图解码器完成的实际上就是LPC总线对应的控制功能,通过FPGA芯片来实现,用VerilogHDL语言对FPGA芯片进行编程和烧录,使其完成地址的译码功能,串行到并行不同数据类型的转换。发送总线的翻转信号,完成LED灯的译码。LPC控制的实现的状态转换图如图3.3图3.3LPC控制状态图(1)HOST将FRAME#置为低电平,传输的循环开始并且发出合适的信息到LAD上。(2)HOST开始设置和循环对应的信息,像循环的类型、循环的方向等等。(3)HOST开始传输地址,接下来是数据,并且LPC总线切换去检测设备的循环完成与否。(5)外部设备通过LAD表示当前总线是否在进行数据的传送以及循环的状态。(5)外部设备将LPC总线的控制权转交给HOST,并且结束本次循环。3.2.3显示(LED)部分LED显示的信号线路一共有18个,因为是两个七段显示器,所以有两个使能信号,分别为LED_EN1和LED_EN2,每个控制的信号都会分别传送到两个七段显示器中,所以LED_(A~H)又一分二成为两个信号。其中在设计的时候给使能信号加入两个100K的上拉电阻,保证信号更加稳定。图3.4FPGA芯片LED管脚图3.5LED七段显示器信号图3.3系统非功能需求在这块主板故障检测卡中,还加入了一个串口功能,可以对串口进行测试,充当了一个串口检测卡,可以对串口发送出的信号进行自短接,使得主板可以正常的进行232,485信号的自接发,由计数器和显示器来判断串口功能是否正常,是否会出现丢包或者是出现错误包的情况。3.4系统开发环境硬件环境:AlteraCycloneIIEPM1270T14415N软件环境:QuartusII12.1/ModelsimSE6.53.5系统可行性分析3.5.1技术可行性用硬件描述语言完成的一些电路设计,可以经过相对容易的布局,很快的烧录到FPGA上进行功能测试,是现代IC验证和设计的主流方向。FPGA可以被用来实现基本的逻辑门级电路以及更复杂的组合功能。例如解码器,数学方程式。在绝大多数FPGA里,这些元件包含了许多记忆元件,像触发器和其他完整的记忆模块。系统设计员可以通过可编辑连接将FPGA内部按需要连接起来,就如同一个电路测试板被放置在了一个可编程芯片中。一个成品的FPGA出厂后,连接和逻辑块可以按照设计者的意愿而改变,FPGA可以完全胜任其所需要的相关逻辑功能。FPGA总的来说相对与ASIC(专用集成电路)的速度要慢许多,不能够完成相对复杂的设计,但是功耗却低了许多。FPGA还有许多优于其他芯片的能力,例如可以被快速成品,可以几乎无限次的对程序中的错误进行修正或者是进行烧录,造价也相对更加便宜。3.5.2经济可行性该设计采用了性价比相对较高的FPGA芯片来实现故障检测的功能,极大化的简化了电路,并且FPGA相对功耗较低,体积较小,可以减小系统的故障率,PCB板卡的大小控制在10cm*10cm内,尽量让检测卡最简化,不仅能保证设计的短周期,而且在降低设计成本方面也有很好的表现。大连东软信息学院毕业设计(论文)第4章系统实现4.1环境配置硬件环境:AlteraCycloneIIEPM1270T14415N软件环境:QuartusII12.1/ModelsimSE6.5/CadenceRelease16.34.2功能模块实现(1)LPC总线接口以及配置对应时序和波形的实现LPC总线接口配置对应时序和波形产生都是通过对FPGA芯片EPM1270T14415N编程得到的。由LPC总线协议能够设计出LPC接口的控制模块状态转换图,状态变化具体的过程如图4.1所示。图4.1LPC总线接口控制模块的状态转换图根据LPC总线接口状态的变化以及时序波形配置要求,采用VerilogHDL硬件描述语言对FPGA芯片进行描述,通过ISE和ModelsimSE软件编译、仿真、综合,并通过QuartusII下载到芯片中,从而实现FPGA的初始化配置功能。相关代码如下:--thisresultisusedinLPCprocessext_sum<=r_cnt+1;--r_data(3downto0)<="1010";--r_data(7downto4)<="0101";LPC:process(lclk,lreset_n)begin--processLPCiflreset_n='0'then--asynchronousreset(activelow)CS<=RESETs;lad_i<="ZZZZ";elsiflclk'eventandlclk='1'then--risingclockedgecaseCSiswhenRESETs=>lad_i<="ZZZZ";iflframe_n='0'thenCS<=STARTs;r_lad<=lad_i;elseCS<=RESETs;endif;whenSTARTs=>iflframe_n='0'thenr_lad<=lad_i;CS<=STARTs;elsifr_lad="0000"then--mustidentifyCYCTYPEiflad_i(3downto1)="011"then--IOWRITEWILLHAPPENcontrol(9downto2)<="11111110";CS<=RESETs;r_cnt<="000";elsiflad_i(3downto1)="010"thencontrol(9downto2)<="11111101";r_cnt<="000";CS<=RESETs;elsiflad_i(3downto1)="001"thencontrol(9downto2)<="11111011";r_cnt<="000";CS<=ADDRs;elsiflad_i(3downto1)="000"thencontrol(9downto2)<="11110111";r_cnt<="000";CS<=RESETs;elsecontrol(9downto2)<="00000000";CS<=RESETs;endif;endif;whenADDRs=>ifr_cnt="011"thenr_cnt<="000";iflad_i="0000"andr_addr(11downto0)=x"008"thenCS<=DATAs;elseCS<=RESETs;endif;elser_cnt<=ext_sum;r_addr<=r_addr(11downto0)&lad_i;CS<=ADDRs;endif;whenDATAs=>ifr_cnt="000"thenr_data(3downto0)<=lad_i;r_cnt<=ext_sum;CS<=DATAs;elsifr_cnt="001"thenr_data(7downto4)<=lad_i;r_cnt<="000";CS<=TARs;elser_cnt<="000";CS<=RESETs;endif;whenTARs=>ifr_cnt="000"andlad_i="1111"then CS<=TARs; r_cnt<=ext_sum; elsifr_cnt="001"then CS<=SYNCs; r_cnt<="000"; r_wait<="0000"; else CS<=RESETs; r_cnt<="000"; endif;whenSYNCs=>iflad_i="0000"thencontrol(9downto6)<="1111";lad_i<="1111";--########################CS<=LOCAL_TARs;--#######################TARselsiflad_i="0101"thenCS<=SYNCs;control(9downto6)<="1100";elsiflad_i="0110"thenCS<=SYNCs;control(9downto6)<="0011";else r_cnt<="000"; r_wait<="0000";CS<=RESETs;endif;whenLOCAL_TARs=>--############################ifr_cnt="001"then--############################lad_i<="ZZZZ";--############################r_cnt<="000";--############################CS<=RESETs;--############################else--############################ r_cnt<=ext_sum;--############################lad_i<="ZZZZ";--############################CS<=LOCAL_TARs;--############################endif;--############################endcase;endif;endprocessLPC;endrtl;(2)7段LED数码管显示解码数据的实现经过FPGA芯片的译码等处理后,给出的两个使能信号分别控制两个七段LED数码管,而产生的lad_0[7:0]信号分别控制两个7段数码管,每当南桥的80H地址发出一个对应的POSTCODE,FPGA芯片就会对其解码,并且用LED数码管显示出来,让使用者可以更直观的看到主板出现的故障代码。LED部分相关代码如下:architecturertloflpcistypestateis(RESETs,STARTs,ADDRs,TARs,SYNCs,DATAs,LOCAL_TARs);--simpleLCPstatessignalCS:state;signalr_lad:std_logic_vector(3downto0);--adress23bitsonflashsignalr_data:std_logic_vector(7downto0);signalr_addr:std_logic_vector(15downto0);signalr_cnt:std_logic_vector(2downto0);signalr_wait:std_logic_vector(3downto0);signalcontrol:std_logic_vector(9downto0);signalext_sum:std_logic_vector(2downto0);signaltime:std_logic_vector(12downto0);begin--rtlcontrol(1downto0)<="11";lad_i<="ZZZZ";--PassthewholeLPCaddresstothesystem--lpc_addr<=r_addr(23downto0);--lpc_data_o<=r_data;led_en(0)<=time(12)or(nottime(11));led_en(1)<=time(12)ortime(11);--led_en(1downto0)<="00";process(lclk)beginiflclk'eventandlclk='1'thentime<=time+1;iftime(12downto11)="00"thencaser_data(3downto0)iswhen"0000"=>lad_o<="11111100";when"0001"=>lad_o<="00001100";when"0010"=>lad_o<="11011010";when"0011"=>lad_o<="11110010";when"0100"=>lad_o<="01100110";when"0101"=>lad_o<="10110110";when"0110"=>lad_o<="10111110";when"0111"=>lad_o<="11100000";when"1000"=>lad_o<="11111110";when"1001"=>lad_o<="11110110";when"1010"=>lad_o<="11101110";when"1011"=>lad_o<="00111110";when"1100"=>lad_o<="10011100";when"1101"=>lad_o<="01111010";when"1110"=>lad_o<="10011110";when"1111"=>lad_o<="10001110";whenothers=>lad_o<="01101110";endcase;elsiftime(12downto11)="01"thencaser_data(7downto4)iswhen"0000"=>lad_o<="11111100";when"0001"=>lad_o<="00001100";when"0010"=>lad_o<="11011010";when"0011"=>lad_o<="11110010";when"0100"=>lad_o<="01100110";when"0101"=>lad_o<="10110110";when"0110"=>lad_o<="10111110";when"0111"=>lad_o<="11100000";when"1000"=>lad_o<="11111110";when"1001"=>lad_o<="11110110";when"1010"=>lad_o<="11101110";when"1011"=>lad_o<="00111110";when"1100"=>lad_o<="10011100";when"1101"=>lad_o<="01111010";when"1110"=>lad_o<="10011110";when"1111"=>lad_o<="10001110";whenothers=>lad_o<="01101110";endcase;elselad_o<="00000000";endif; endif;endprocess;4.3PCB设计部分实现首先需要使用CadenceOrcad来进行原理图的制作,打开对应的软件,如图4.2。图4.2打开Orcad软件根据之前的设计,对原理图进行绘制,新建一个原理图project,并对元器件进行相应的绘制。在界面中可以明显的看到它的层次关系,如图4.3。图4.3项目的层次关系在绘制过程中按P放置元件,W绘制相应导线,Orcad的库文件,常用的元件在Discrete.olb目录里,其他的元器件也是可以搜索的,如果没有的话就需要自己进行制作了。原理图完成,结果如图4.4。图4.4检测卡PCB原理图当原理图画完之后就需要填写对应的封装信息,对原理图中的元器件进行双击,会出现一个页面,按照规则填入对应的封装信息,如图4.5。图4.5元件的封装信息封装信息等填写完毕,最小化原理图,选中层次表中的.dsn文件,并且生成网表文件,如图4.6。图4.6生成网表文件网表文件生成以后,就可以进行元器件的布局与布线了,当布局布线完成后我们可以通过打开.brd文件来对已经画好的PCB版图进行查看和修改,如图4.7。图4.7布局布线完毕的PCB版图其中正反面的3D视图如图4.8和图4.9。图4.8正面3D版图图4.9反面3D版图当PCB版图绘制完毕,进行各种规则的检查,修改完善后输出gerber文件,将文件送至PCB制造厂商处进行PCB板制造。制造回来后对元器件进行焊接和测试。直至正常使用。大连东软信息学院毕业设计(论文)第5章系统测试对生产焊接完毕的检测卡进行全功能测试,首先检查外观是否完好,在外观完好的情况下对个别电容进行阻抗测试,看看是否有短路的现象出现,尤其是3.3V和5V的供电电路,如果出现会导致芯片烧毁。当这些都测试完毕,开始主板故障检测卡的功能测试,找到对应的测试主板,将事先准备好的排针连接主板故障检测卡和计算机的主板,将主板连入ATX电源,给主板上电,使主板开机,这时可以看到主板检测卡也随之点亮,并且开始跑码,最后当计算机正常进入软开机的模式,检测卡的LED屏幕停留在00或者是FF,表示检测卡可以正常工作。如图5.1。图5.1正常开机后LED显示00为了使测试结果更加准确,对已经确定问题的计算机主板进行测试,首先找到一块内存插口不良的主板,正常情况下主板故障检测卡应该跑的码为38,对此主板进行检测,得到的结果也
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年物业绿化管理外包合同
- 起床了小班主题教案
- 广告招商合同范本
- 寄宿制工作计划3篇
- 世说新语读书笔记范文800字左右
- 励志题目演讲稿300字10篇
- 创新网站建设方案5篇
- 《冬天》中班教案
- 2024年度工作总结
- 2025年系列活性精脱硫剂合作协议书
- 语言学纲要(学习指导修订版)
- (2024年)常见传染病诊断国家标准培训(完整版)
- 2023老年大学教师职责及选聘管理办法
- 标准普尔家庭资产象限图讲解(四大账户)通用课件
- 干部基本信息审核认定表
- 民间文学概论课件
- 响应面分析软件DesignExpert使用教程
- 2023-2024学年广东省深圳市重点中学高考适应性考试历史试卷含解析
- 麻醉药品管理培训课件
- 中建履约过程风险发函时点提示及函件指引(2023年)
- 不锈钢管理制度
评论
0/150
提交评论