版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE大学毕业设计(论文)题目:基于ARM的PCI总线通信功能设计指导教师:职称:学生姓名:学号:专业:院(系):完成时间:2011年5月25日年月日
摘要本文详细介绍了基于AT91RM9200单片机的PCI总线通信功能的设计,包括硬件设计和软件设计两部分。通信功能的设计着重于单片机与上位机之间通过PCI总线进行的数据传送。本次设计在于用比较容易掌握的单片机来实现PCI控制器的功能,在PCI总线的简单运用场合,大大简化了设计的复杂程度。设计的实现是利用单片机的I/O口与PCI总线的控制信号线以及地址/数据信号线等直接相连,用对单片机的编程来控制数据的传输。文中介绍了PCI总线的基本概念,一些重要信号的定义,以及PCI总线事务的时序。单片机部分介绍了型号的选择,选择了AT91RM9200单片机的理由和AT91RM9200单片机的基本知识。本次设计选择AM29LV160和57V561620作为AT91RM9200外接存储器。设计的结果是成功的完成了原理图绘制和PCB版图的设计,和实验仿真。关键词:PCI总线单片机
AbstractThispaperintroducesindetailthecommunicationfunctiondesignofthePCIbusbasedonAT91RM9200MCU,includinghardwaredesignandsoftwaredesign.CommunicationfunctiondesignfocusesonthedatatransferbetweenSCMandPCbyPCIbus.ThedesignistouseMCUtorealizethefunctionofPCIcontroller,whichiseasiertomaster.InthesimpleuseofthePCIbus,thisdesignwillgreatlysimplifythecomplexity.TherealizationofthedesignistomaketheI/OportofMCUdirectlyconnectedwiththecontrolandaddress/datasignallinesofthePCIbus.ItcontrolsthedatatransmissionbyprogrammingMCU.ThispaperintroducesthebasicconceptofPCIbus,someimportantsignals,andthedefinitionofthetimingPCIbusaffairs.Thisarticleatfirstintroducesthechoiceofmicrocontrollermodel,andthenintroducesthereasonthatAT91RM9200isselectedandthebasicknowledgeofAT91RM9200.IchooseAM29LV160HYand57V561620asthememoryofAT91RM9200.Theresultofthedesigniscompleting
thedrawingofschematicdiagram,thedesignofPCBlayoutandsimulation.Keywords:PCIbus;MCU
目录TOC\o"1-3"\f\h\z\u第一章绪论 11.1引言 11.2设计方案 2HYPERLINK\l"_Toc294169064"1.2.1设计框图 21.2.2设计要求 2第二章器件相关知识 32.1PCI总线 32.1.1PCI总线的基本概念 32.1.2PCI总线的主要性能 42.1.3PCI总线的特点 42.1.4PCI总线的部分信号定义 52.1.5PCI总线事务的时序 82.2单片机 PAGEREF_Toc294169073\h92.2.1单片机芯片型号的选择 92.2.2AT91RM9200芯片简介 92.2.3AT91RM9200的主要模块及存储器的选择 10第三章硬件设计部分 113.1原理图的绘制 113.1.1AT91RM9200 4169079\h113.1.2AT91RM9200单片机所需电路 123.1.3HY57V561620 153.1.4AM29LV160 PAGEREF_Toc294169082\h163.1.5PCI总线 173.2PCB版图设计 173.2.1元件的封装 173.2.2PCB版图设计 17第四章软件设计部分 194.1软件编程流程图 194.2单片机初始化过程 194.2.1BootLoader流程 204.2.2BootLoader各个子流程阐述 20HYPERLINK\l"_Toc294169092"第五章软件仿真与实验 23第六章设计总结 25致谢 26参考文献 PAGEREF_Toc294169095\h27附录A 28附录B 29附录C 30PAGE30第一章绪论1.1引言PCI总线是一种高性能的局部总线,是为了满足外设间以及外设与主机间高速数据传输而提出来的。PCI总线为系统提供了一个高速的数据传输通道,系统的各设备可以直接或者间接的连接其上,设备间通过局部总线可以完成数据的快速传递。在数字图形、图像和语音处理,以及高速实时数据采集与处理等对数据传输率要求较高的应用中,采用PCI总线来进行数据传输,可以解决原有的标准总线数据传输率低带来的瓶颈问题。目前,PCI总线是个人电脑中使用最为广泛的接口,即使后续的PCIExpress总线逐步取代PCI总线成为PC局部总线的主流,也不能掩盖PCI总线的光芒。从软件层面上看,PCIExpress总线与PCI总线基本兼容;从硬件层面上看,PCIExpress总线在很大程度上继承了PCI总线的设计思路。因此,PCI总线依然是软硬件工程师在进行处理器系统的开发与设计时必须掌握的一条局部总线。对我们来说,研究PCI总线是有着十分重要的现实意义的。利用软硬件具体实现了通过PCI总线进行的通信,就可以熟练掌握PCI总线的通信过程,对PCI总线有更深层次的理解。PCI总线规范允许在计算机内安装多达10个遵从PCI规范的扩展卡。此外,PCI总线系统要求有一个PCI控制卡,必须安装在PCI插槽内。在本次的设计中,利用单片机来实现PCI控制卡和外接设备的功能,单片机通过PCI总线与上位机之间进行通信。具体来说就是,单片机通过PCI总线向上位机发送数据,上位机通过PCI总线来接收单片机发来的数据,上位机也可以通过PCI总线向单片机发送数据,上位机和单片机之间通过PCI总线实现双向通信。利用单片机进行设计是在保证用PCI总线实现通信功能的基础上,尽可能的简化外接设备,以使PCI总线的应用更加方便。单片机即嵌入式控制器(EMCU),是将CPU,存储器和各种输入输出接口集成在一块半导体硅片上具有一台计算机属性的集成电路芯片。单片机自问世以来,以其极高的性能价格比,受到人们的重视和关注,发展很快。单片机体积小,重量轻,抗干扰能力强,环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。由于这些优点,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电子、电力电子、机电一体化设备等各个方面。而且,近些年来,单片机发展很快,能实现的功能越来越强大,所以掌握单片机的结构和使用编程方法也是必不可少的。选用单片机在本次设计中也是一大特色,既可以熟练掌握PCI总线的工作过程,也可以在设计过程中增强单片机的运用能力。在选择哪一个具体型号单片机的时候,对目前广泛应用的几种单片机的不同功能也有了很多的了解,对于以后的工作和学习有了很大的帮助。本次设计包括PCI总线基础知识的学习,单片机型号的选择,原理图的绘制,PCB版图的设计,仿真与总结。1.2设计方案1.2.1设计框图单片机通过PCI总线与上位机实现通信的设计框图如图1所示:图1设计框图1.2.2设计要求要使通信功能能够顺利实现,选用的单片机必须满足以下要求:1.能够传送一个32的数据;2.工作频率至少是PCI总线工作频率的三倍,才能满足时序匹配;3.单片资源丰富,接口应该足够PCI总线使用4.在满足以上两点的情况下选择功能比较少,易于掌握的单片机;5.选择市面上比较常见,价格也相对便宜的单片机。
第二章器件相关知识2.1PCI总线2.1.1PCI总线的基本概念PCI是由Intel公司1991年推出的一种局部总线。局部总线英文全称是PeripheralComponentInterconnection。PCI是一种由Intel公司推出的用于定义局部总线的规范。从结构上看,PCI是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。管理器提供了信号缓冲,使之能支持10种外设,并能在高时钟频率下保持高性能,它为显卡,声卡,网卡,MODEM等设备提供了连接接口,它的工作频率为33MHz/66MHz。PCI总线也支持总线主控技术,允许智能设备在需要时取得总线控制权,以加速数据传送。PCI系统总线的构成如图2所示:图2PCI总线构成PCI是是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型,在目前流行的台式机主板上,ATX结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽,可见其应用的广泛性。电脑中的PCI插槽如图3所示,图中白色的插槽即为PCI插槽。图3PCI插槽最早提出的PCI总线工作在33MHz频率之下,传输带宽达到了133MB/s,基本上满足了当时处理器的发展需要。随着对更高性能的要求,1993年又提出了64bit的PCI总线,后来又提出把PCI总线的频率提升到66MHz。目前广泛采用的是32bit、33MHz的PCI总线,64bit的PCI插槽更多应用于服务器产品。本次设计中采用的是32bit、33MHz的PCI总线。当PCI总线进行操作时,发起者(Master)先置REQ#,当得到仲裁器(Arbiter)的许可时(GNT#),会将FRAME#置低,并在AD总线上放置Slave地址,同时C/BE#放置命令信号,说明接下来的传输类型。所有PCI总线上的设备都需对此地址译码,被选中的设备要置DEVSEL#以声明自己被选中。然后当IRDY#与TRDY#信号都已经置低,可以传输数据。当Master数据传输结束前,将FRAME#置高以表明只剩最后一组数据要传输,并在传完数据后放开IRDY#以释放总线控制权。2.1.2PCI总线的主要性能(1)支持10台外设;(2)总线时钟频率33.3MHz/66MHz;(3)最大数据传输速率133MB/s;(4)时钟同步方式;(5)与CPU及时钟频率无关;(6)总线宽度32位(5V)/64位(3.3V);(7)能自动识别外设。2.1.3PCI总线的特点PC机上的PCI总线以33MHz的时钟频率操作,采用32位数据总线,数据传输带宽可高达133MB/s,能支持奔腾级电脑的图形数据传输。PCI总线采用地址/数据总线复用方式,在总线规模较小的前提下,保证了总线的高性能。PCI总线是一种可自动配置的总线,即具有即插即用功能。PCI总线是独立于CPU的局部总线,因此,在进行PCI总线接口的开发与应用时,可以不必关心CPU的具体结构和时序,只需按照PCI总线标准设计即可。PCI总线有如下显著的特点:(1)线性突发传输;(2)同步总线操作;(3)多总线主控方式;(4)不受处理器限制;(5)兼容性强;(6)预留了发展空间;(7)自动配置功能;(8)编码总线命令;(9)地址/数据总线复用;(10)高性能价格比;(11)立足现在放眼未来的标准。2.1.4PCI总线的部分信号定义PCI总线是一条共享总线,在一条PCI总线上可以挂接多个PCI设备。这些PCI设备通过一系列信号与PCI总线相连,这些信号由地址/数据信号、控制信号、仲裁信号、中断信号等多种信号组成。PCI总线信号的定义与分类如图4所示(1)系统信号=1\*GB3①CLK(clock)(IN)PCI系统时钟信号,输入。PCI总线上的所有操作都是与PCI时钟信号同步的,系统在CLK的上升沿采样PCI上设备的所有输入信号。时钟信号的频率范围是0MHz~33MHz,或33.33MHz~66.66MHz。而66MHz时钟仅支持3.3V的信号环境。时钟仅在节省电源状态下才会停止。=2\*GB3②RST#(reset)(IN)复位信号,输入,低电平有效。当复位信号有效时,将所有PCI专用的寄存器、定时器和信号复位到指定状态。一般情况下,全部输出信号处于高阻状态。图4PCI总线信号的定义和分类(2)地址和数据信号=1\*GB3①AD[31:0]信号PCI总线复用地址与数据信号。PCI总线事务在启动后的第一个时钟周期传送地址,这个地址是PCI总线域的存储器地址或者I/O地址;而在下一个时钟周期传送数据。传送地址的时钟周期也被称为地址周期,而传送数据的时钟周期也被称为数据周期。PCI总线支持突发传送,即在一个地址周期之后,可以紧跟多个数据周期。=2\*GB3②C/BE[3::0]#总线复用命令与字节选通引脚在地址周期中,C/BE[3:0]信号表示PCI总线的命令。在数据周期,C/BE[3:0]引脚输出字节选通信号,其中C/BE3、C/BE2、C/BE1和C/BE0与数据的字节3、2、1和0对应。使用这组信号可以对PCI设备进行单个字节、字和双字访问。PCI总线通过C/BE[3:0]#信号定义了多个总线事务,四条线可表示16种不同的总线命令。(3)接口控制信号在PCI总线中,接口控制信号的主要作用是保证数据的正常传递,并根据PCI主从设备的状态,暂停、终止或者正常完成当前总线事物,其主要信号如下。=1\*GB3①FRAME#信号该信号指示一个PCI总线事物的开始与结束。当PCI设备获得总线的使用权后,将置该信号为有效,即置为低,启动PCI总线事务,当结束总线事务时,将置该信号无效,即置为高。PCI设备只有通过仲裁获得当前PCI总线的使用权后,才能驱动该信号=2\*GB3②IRDY#信号该信号由PCI主设备(包括HOST主桥)驱动,该信号有效时表示PCI主设备的数据已经准备完毕。如果当前PCI总线事务为写事务,表示数据已经在AD[31:0]上有效;如果为读事务,表示PCI目标设备已经准备好接收缓冲,目标设备可以将数据发送到AD[31:0]上。=3\*GB3③TRDY#信号该信号由目标设备驱动,该信号有效时表示目标设备已经将数据准备完毕。如果当前PCI总线事务为写事务,表示目标设备已经准备好接收缓冲,可以将AD[31:0]上的数据写入目标设备;如果为读事务,表示PCI设备需要的数据已经在AD[31:0]上有效。该信号可以和IRDY#信号联合使用,在PCI总线事务上插入等待周期,对PCI总线的数据传送进行控制。=4\*GB3④IDSEL信号PCI总线在进行配置读写总线事务时,使用该信号选择PCI目标设备。配置读写总线事务与存储器读写总线事务在实现上略有不同。在PCI总线中,存储器读写总线事务使用地址译码方式访问外部设备。而配置读写总线事务使用“ID译码方式”访问PCI设备,即通过PCI设备的总线号、设备号和寄存器号来访问PCI设备的配置空间。(4)仲裁信号PCI设备使用该组信号进行总线仲裁,并获得PCI总线的使用权。只有PCI主设备需要使用该组信号,而PCI从设备可以不使用总线仲裁信号。这组信号由REQ#和GNT#组成。其中PCI主设备的REQ#和GNT#信号与PCI总线的仲裁器直接相连,如图5所示。图5仲裁器与PCI设备的连接关系2.1.5PCI总线事务的时序图6PCI总线事务的时序PCI总线使用它的各种信号进行数据和配置信息的传递,一个PCI总线事务的基本访问时序如图6所示,与PCI总线事务相关的控制信号有FRAME#、IRDY#、TRDY#、DEVSEL#等其他信号。当一个PCI主设备需要使用PCI总线时,首先需要发送REQ#信号,通过总线仲裁获得总线的使用权,即GNT#信号有效后,使用以下步骤完成一个完整PCI总线事务,对目标设备进行存储器或者I/O地址空间的读写访问。(1)当PCI主设备获得总线使用权之后,将在CLK1的上升沿置FRAME#信号有效,启动PCI总线事务。当PCI总线事务结束后,FRAME#信号将被置为无效。(2)PCI总线周期的第一个时钟周期(CLK1的上升沿到CLK2的上升沿之间)为地址周期。在地址周期中,PCI主设备将要访问的目的地址和总线命令分别驱动到AD[31:0]和C/BE#信号上。如果当然总线命令是配置读写,那么IDSEL信号线也被置为有效。(3)当IRDY#、TRDY#和DEVSEL#信号都有效后,总线事务将使用数据周期进行数据传递。当IRDY#和TRDY#信号没有同时有效时,PCI总线不能进行数据传递,PCI总线使用这两个信号进行传送控制。(4)PCI总线支持突发周期,因此在地址周期之后可以有多个数据周期,可以传送多组数据。而且目标设备并不知道突发周期的长度,如果目标设备不能继续接收数据,可以disconnect(断连)当前总线事务。值得注意的是,只有存储器读写总线事务可以使用突发周期。2.2单片机2.2.1单片机芯片型号的选择在绪论中已经介绍了单片机选择的一些要求,要想利用PCI总线进行通信,所选择的单片机的工作速度必须要跟得上PCI总线的工作速度。在众多的单片机中,ARM单片机的速度是非常快的,一般在100MHz以上,PCI总线的工作频率为33MHz,即使ARM采用精简指令系统,速度也能够与PCI总线相匹配,等待的情况应该极少出现。而且ARM单片机的应用广泛,能够实现的功能比较多,所以选择ARM单片机一定能满足设计的要求。目前国内应用较广泛的单片机有三星公司的S3C2440、S3C2410X和Atmel公司的AT91RM9200等。这三个型号的单片机都满足设计的要求,AT91RM9200的工作频率为180MHz,S3C2440工作频率可达400MHz,S3C2410的工作也可以达到200MHz以上。三星公司的S3C系列的LCD显示模块做的非常好,引脚相对来说比较多,运用起来比较复杂,也会造成功能浪费。AT91RM9200有32位的I/O口PA[0:31],方便与PCI总线的32位地址/数据相连。所以我选择AT91RM9200作为本次设计中使用的单片机。2.2.2AT91RM9200芯片简介AT91RM9200是完全围绕ARM920TARMThumb处理器构建的系统。它有丰富的系统与应用外设及标准的接口,从而为低功耗、低成本、高性能的计算机比较宽的范围应用提供一个单片解决方案。AT91RM9200包括一个高速片上SRAM工作区及一个低等待时间的外部总线接口(EBI),以完成应用所要求的片外存储器和内部存储器映射外设配置的无缝连接。EBI有同步DRAM(SDRAM)、BurstFlash及静态存储器的控制器,并设计了专用电路以方便与SmartMedia、CompactFlash及NANDFlash连接。高级中断控制器(AIC)通过多向量,中断源优先级划分及缩短中断处理传输时间来提高ARM920T处理器的中断处理性能。外设数据控制器(PDC)向所有的串行外设提供DMA通道,使其与片内或片外存储器传输数据时不用经过处理器。这就减少了传输连续数据流时处理器的开销。包含双指针的PDC控制器极大的简化了AT91RM9200的缓冲器链接。并行I/O(PIO)控制器与作为通用数据的I/O复用外设输入/输出口线,以最大程度上适应器件的配置。每条口线上包含有一个输入变化中断、开漏能力及可编程上拉电阻。电源管理控制器(PMC)通过软件控制有选择的使能/禁用处理器及各种外设来使系统的功耗保持最低。它用一个增强的时钟产生器来提供包括慢时钟(32kHz)在内的选定时钟信号,以随时优化功耗与性能。AT91RM9200集成了许多标准接口,包括USB2.0全速主机和设备端口及与多数外设和在网络层广泛使用的10/100Base-T以太网媒体访问控制器(MAC)。此外,它还提供一系列符合工业标准的外设,可在音频、电信、Flash卡红外线及智能卡中使用。为完善性能,AT91RM9200集成了包括JTAG-ICE、专门UART调试通道(DBGU)及嵌入式的实时追踪的一系列的调试功能。这些功能使得开发、调试所有的应用特别是受实时性限制的应用成为可能。2.2.3AT91RM9200的主要模块及存储器的选择AT91RM9200的主要模块有电源、时钟、振荡器与PLL、ICE与JTAG、ETM、复位/测试、存储控制器、调试单元、AIC、PIO、EBI、SMC、EBI支持CompactFlash、EBI支持智能媒体、SDRAM控制器、BurstFlash控制器、多媒体接口、USART、USB器件端口、USBHostPort、以太网MAC、同步串行控制器、定时器/计数器、SPI、两线接口。AT91RM9200里面没有存储器,有存储器控制器,在使用时需要外接SDRAM和FLASH闪存。考虑到设计的要求,SDRAM选择16位的HY57V561620,Flash闪存选择16位的Am29LV160。
第三章硬件设计部分3.1原理图的绘制绘制好的原理图见附录A和附录B。3.1.1AT91RM9200如图7所示为原理图中的AT91RM9200部分,设计中采用的是AT91RM9200的PQFP封装,共208个引脚。图7原理图中的AT91RM9200设计中用到的引脚为:=1\*GB3①地址线A[0:25]=2\*GB3②数据线D[0:31]=3\*GB3③SDRAM信号接口引脚其中包括SDWE、CAS、RAS、SDCKE、SDCK、NCS1引脚。=4\*GB3④Flash闪存接口信号引脚其中包括NCS0、NRD、NWE0、SYSNRST引脚。=5\*GB3⑤JTAG仿真信号接口引脚其中包括TDI、TMS、TCK、TDO、NTRST引脚。=6\*GB3⑥I/O口线设计中用到了PA[0:31]和PC中的一部分与PCI总线相连。=7\*GB3⑦晶体振荡电路接口引脚包括VDDPLL(给PLL供电)和GNDPLL、VDDOSC(给振荡电路供电)和GNDOSC引脚。=8\*GB3⑧中断及复位引脚等包括IRQ0、NRST等引脚。=9\*GB3⑨电源与接地引脚其中电源除了晶振电路中的两类外,还有三类:VDDCORE引脚用于向内核供电,包括处理器、存储器与外设,接1.8V;VDDIOM引脚给外部总线接口I/O口线供电,接3.3V;VDDIOP引脚给外设I/O口线与USB收发器供电,接3.3V。3.1.2AT91RM9200单片机所需电路(1)复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分/合过程中引起的抖动而影响复位。本次设计中对可靠性要求不高,用简易的RC复位电路即可。如图8所示,为AT91RM9200单片机的上电复位电路。图8上电复位电路(2)晶体振荡电路AT91RM9200在使用时,用户必须在XIN引脚提供外部时钟信号,需要注意的是,外部时钟信号必须满足相关电源供给VDDPLL(即在1.65V到1.95V间),不能超过50MHz。图9.a、9.b、9.c、9.d给出了晶体振荡电路的完整图形。图9.a晶体振荡电路滤波部分图9.b晶体振荡电路快晶振部分图9.c晶体振荡电路慢晶振部分图9.d晶体振荡电路滤波部分(3)电源转换电路AT91RM9200单片机的电源都是由PCI总线提供的,PCI总线中只有5V和3.3V两种电源,而AT91RM9200需要3.3V和1.8V两种电源,所以需要进行电源转换。设计中,电源转换是利用LM1117-1.8来完成的,把PCI总线中5V的电源转换成1.8V的电源,接到VDDCORE上。需要注意的是,从PCI总线出来的5V和3.3V电源在使用前都要先接去耦电容,可以起到抗干扰的作用。去藕电容就是起到一个电池的作用,满足驱动电路电流的变化,避免相互间的耦合干扰。具体的电路如图10所示,图中的C16就是一个去耦电容。图10电源转换电路(4)JTAG接口电路JTAG是单片机的仿真接口,用于测试和仿真。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。相关JTAG引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。设计中采用的是14针的接口,如图11所示是AT91RM9200的JTAG接口。图11JTAG接口电路另外,AT91RM9200的JTAGSEL引脚根据不同的仿真器要置高或置低,用一个3针插座和跳线帽来选择,如图12所示。图12JTAGSEL引脚外接电路3.1.3HY57V561620图13HY57V561620的连接电路HY57V561620芯片是单片机AT91RM9200的外接数据存储器,存储容量为4M,是一个16位的SDRAM。在需要传32的数据时,可以将32的数据分解成两个16位的数据来传送。它采用的是54脚的TSOP封装。与AT91RM9200的连接关系如图13所示。HY57V561620的数据线接AT91RM9200的数据线的前16位,地址线与AT91RM9200地址线的连接关系如图中所示。另外还有SDRAM接口与单片机相连。LDQM与UDQM用不到,接地就可以了。3.1.4AM29LV160图14AM29LV160的电路连接AM29LV160是AT91RM9200的外接程序存储器,存储容量为2M,是一个16位的Flash闪存。它采用的是44脚的SOP封装。与AT91RM9200的连接关系如图14所示。AM29LV160芯片的数据线与单片机AT91RM9200数据线的后16位相连。地址线与AT91RM9200的连接关系如图中所示。CE#、OE#、WE#、RESET#、分别接AT91RM9200单片机的NCS0、NRD、NWE、SYSNRST引脚。3.1.5PCI总线PCI总线的金手指分A面和B面,共122个引脚,一般在B面放置元器件。PCI总线有两种电源,5V和3.3V,设计中只在进行电源转换的时候用到了一个5V的电源,所以剩下的5V接一个电容接地就可以了。3.3V的电源全部都用,在使用前接一个去耦电容,抗干扰。PCI总线上的CLK是同步信号,所以要接到AT91的I/O口上,实现和其他信号的同步。设计中,PCI总线不使用JTAG,所以TDI和TDO短接在一起。其他控制信号以及地址/数据线接AT91RM9200的I/O口,通过编程来实现控制功能。另外,中断INTA#接单片机的中断接口IRQ0。具体的电路图见附录B。3.2PCB版图设计设计中原理图和PCB版图的设计都是用Protel99SE软件完成的。原理图的设计完成后就是PCB版图的设计了,画PCB图的时候要考虑到元件的封装,元件的布局和布线等问题。3.2.1元件的封装(1)、电阻:0805贴片(2)、电容:1206贴片;电解电容:RB.2/.4插件(3)、晶振:XTAL1插件(4)、三针插座:SIP3插件(5)、电感:0805贴片(6)、LM117-1.8:TO-220插件(7)、AT91RM9200:PQFP贴片(8)、HY57V561620:TSOP贴片(9)、AM29LV160:SOP贴片3.2.2PCB版图设计由于电路图的元器件较多,电源、地线也较多,所以设计成四层电路板,PCI总线金手指的B面是最上层,放置元器件,A面是最底层,中间两层是电源层和地层。PCB版图绘制过程:(1)、规划电路板。(2)、设置参数。(3)、装入网络表及元件封装。(4)、元件的布局元件的布局可以使用Protel99SE的自动布局,但是最好是自己根据原理图来布局,这样会使布局更加合理。(5)、自动布线Protel99SE有自动布线的功能。(6)、手工调整。自动布线结束后,往往存在令人不满意的地方,需要手工调整。(7)、放置过孔,将地线放在第二层,电源线放在第三层。(8)、镀铜。(9)、文件保存及输出。设计成功的PCB版图见附录C。
第四章软件设计部分4.1软件编程流程图单片机向上位机传递数据的流程图如图15所示。上位机向单片机传数据的流程图如图16所示图15单片机向上位机传递数据的流程图图16上位机向单片机传递数据的流程图4.2单片机初始化过程由ARM汇编指令编写的嵌入式系统的初始化程序是BootLoader。汇编编写的嵌入式系统初始化程序一般包含在BootLoader中的第一阶段的代码中,它和嵌入式硬件系统的硬件密切相关,BootLoader中这部分初始化程序必须由汇编语言来实现。4.2.1BootLoader流程BootLoader第一阶段的汇编初始化程序主要完成以下功能:(1)、建立异常中断矢量表(2)、初始化堆栈(3)、把程序从Flash复制到RAM中(4)、跳转到第二阶段的C语言入口点,开始第二阶段的初始化和系统引导。BootLoader的流程如图17所示。图17AT91RM9200BootLoader流程4.2.2BootLoader各个子流程阐述(1)、定义常量ARM920T支持7种操作模式:用户模式、快速中断模式、普通中断模式、管理模式、数据存取中止异常模式、指令未定义模式及系统模式。BootLoader需要为每种模式建立堆栈,这需要初始化其程序状态寄存器和堆栈指针并且为每个模式建立堆栈。定义常量即定义各个模式。(2)、编译初始化文件编译选项程序流程如图18所示。图18文件编译选项程序流程如图所示,首先伪指令GBLL定义一个全局的逻辑变量,默认的初始化为F,然后做出判断。ARM有两种工作状态。在arm:32位这种工作状态下执行对准的ARM指令,而在Thumb:16位这种工作状态下执行半对准的Thumb指令。(3)、MACRO定义源文件里有一个宏定义:MOV_PC_LR宏定义,源代码如下:MARCOMOV_PC_LR[THUMBCODEbxlrCODE16movpc,lr]MEND关键字MARCO代表定义了一个宏,是宏定义的起始处,宏的名称是MOV_PC_LR,MEND代表宏定义的结束。(4)、CODE段开始伪指令AREA表示一个段的开始,段可以分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据。CODE指的是代码段。ENTRY伪指令用于指定汇编程序的入口点,这是汇编程序的入口标志。在一个完整的汇编程序中至少要有一个ENTRY,但在一个源文件里最多只能有一个ENTRY。(5)、异常向量初始化代码必须设置好异常向量表。(6)、主时钟使能AT91RM9200复位启动后,默认情况下,主时钟是禁止的。但是正常工作时,必须使能主时钟,利用汇编实现。(7)、系统低电平初始化AT91F_LowLevelInit系统初始化子函数要完成的任务是:系统时钟设定、Flash和SDRAM的初始化及DBGU端口的初始化。系统初始化的目的是为后面代码段的执行及随后的内核的执行准备好一些基本的硬件环境。(8)、初始化堆栈BootLoader要为ARM920T的七种操作模式建立堆栈。由于处理器的每种运行模式都有自己独立的物理堆栈寄存器R13,在用户应用程序的初始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间,这样,当程序的运行进入异常模式时,可以将要保护的寄存器放入R13所指向的堆栈,当程序从异常中返回时,则从对应的堆栈中恢复,采用这种方式可以保护异常发生后程序正常执行。(9)、RO、RW、ZI段初始化映像文件一般由域组成,域由最多三个输出段(RO、RW、ZI)组成,RO为代码段,RW是已被初始化的全局变量,ZI是未初始化的全局变量。RO是只读的,在运行的时候不可以改变,因此,在运行的时候,RO段可以驻留在Flash里,但是为了能将BootLoader在线升级,RO段必须运行在RAM里;RW是可以读写的,在运行的时候必须被装在到RAM里,因此BootLo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海工商职业技术学院《安全评估分析》2025-2026学年第一学期期末试卷(A卷)
- 2026年阜阳室内设计教学
- 西医外科护理科研进展
- 初中文明礼仪教育主题班会说课稿2025
- 上饶卫生健康职业学院《安全生产技术》2025-2026学年第一学期期末试卷(A卷)
- 2025年动力电池回收产业政策应对案例分析
- 上海音乐学院《安全系统工程》2025-2026学年第一学期期末试卷(A卷)
- 上海音乐学院《AutoCAD》2025-2026学年第一学期期末试卷(B卷)
- 直流弧焊发电机说课稿2025学年中职专业课-变压器与电动机-电气设备运行与控制-装备制造大类
- 上海震旦职业学院《安全生产技术与管理》2025-2026学年第一学期期末试卷(A卷)
- 社工考试综合能力笔记(中级)
- GB/T 2637-2016安瓿
- GB/T 22892-2008足球
- 生物化学与分子生物学实验(终版)
- 2023年邵东县林业系统事业单位招聘笔试题库及答案解析
- 社区康复题库精
- 化工课件-石油化工企业设计防火标准合规性检查培训
- 养老保险欠费补缴注销申报表
- CNAS质量体系文件(质量手册程序文件)
- DB3303∕T 018-2020 糯米山药种植技术规程
- 院内新技术开展申请 腹股沟疝腹膜前间隙无张力修补术
评论
0/150
提交评论