基于FPGA的双口RAM在双CPU通信中的应用及设计稿毕业论文.doc_第1页
基于FPGA的双口RAM在双CPU通信中的应用及设计稿毕业论文.doc_第2页
基于FPGA的双口RAM在双CPU通信中的应用及设计稿毕业论文.doc_第3页
基于FPGA的双口RAM在双CPU通信中的应用及设计稿毕业论文.doc_第4页
基于FPGA的双口RAM在双CPU通信中的应用及设计稿毕业论文.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计 题 目 名 称基于FPGA的双口RAM在双CPU通信中的应用及设计摘要本文从现代通信系统的要求出发,详细研究了利用双口RAM来实现双 CPU之间高速的并行数据通信,指出了设计中需要解决的几个关键问题并给出了相应的解决方法。 随着电子技术的飞速发展,大量的高速数据采集和在线测试对现代工业测控系统和仪器仪表的功能和性能提出了更高的要求,双CPU并行工作双单片机系统方式得到广泛应用。为了使2个单片机能够快速有效交换信息充分利用系统资源,采用双口RAM实现存储器共享是目前较为流行的方法。大容量高速FPGA 器件具有集成度高、体积小、灵活可重配置、实验风险小等优点。在复杂数字系统中得到越来越广泛的应用,数字电路设计采用 1 片 FPGA 器件存储设备和一些电气接口匹配电路的解决方案已成为主流选择方案。用FPGA来实现双口 RAM 的功能可以很好地解决并行性和速度问题,而且其灵活的可配置特性使得基于FPGA的双口RAM易于进行修改测试及系统升级可降低设计成本和缩短开发周期。在嵌入式多CPU系统中,CPU间的通信可以采用串行、并行、系统总线及双口RAM等方式。前三种通信方式存在的共同特点是传输速度慢,在大数据量的情况下可能造成数据处理时间延长,实时性差,甚至出现数据拥塞现象。因此采用双口RAM的方式在系统间数据交换是一种简便有效的方法。由于“基于FPGA的双口RAM”对我国嵌入式多CPU系统中CPU间的通信有重大影响,所以相关的研究比较多,综合起来主要是对“基于FPGA的双口RAM”背景下我国嵌入式多CPU系统中CPU间的通信所面临的机遇与挑战以及应对策略进行了论述。本文主要研究的是在现代智能控制系统中,因为信息量的增加和实时性要求的提高,经常需要对信息或数据的高速采集和处理,提高控制系统的信息处理能力,避免极易造成数据处理中的“瓶颈”现象,在嵌入式多CPU系统中,数据通信问题成为制约其性能提高的主要因素,然而基于FPGA的双口RAM的高速数据通信和共享能力为解决在双CPU通信中的问题提供了方便。关键字:FPGA;双口RAM;双CPU;并行数据通信AbstractDeparture from the requirements of modern communication systems, a detailed study of pairs of RAM to achieve the dual-CPU high-speed parallel data communication. Pointed out the need to be addressed in the design of several key issues and gives the appropriatesolution.With the rapid development of electronic technology, alargenumberofhigh-speeddata acquisition and online test to mention higher demands on the modem industrial control systems and instrumentation functionality and performance, CPU working parallel pairs of single-chip systems to be widely used. In order to make the two microcontrollers to quickly and efficiently exchange information to make full use of system resources. Dual port RAM memory sharing is more popular high-capacity high-speed FPGA devices with high integration, small size flexible and reconfigurable experimental risk of small advantages. More widely used digital circuit design using an FPGA device storage devices and electrical interface matching circuit solutions has become a mainstream option FPGA to implement the functionality of the dual-port RAM can solve complex digital system spar all elism and speed issues. And its flexible configuration features makes it easy to modify testing and system upgrades can reduce design costs and shorten the development cycle of FPGA-baseddual-port RAM.Embedded multi-CPU system, the communication between the CPU can use serial parallel system bus and dual-port RAM way. The common characteristics of the first three means of communication is the transmission speed is show, in the case of the large amount of data may cause the data processing time, real-time or even data congestion. Therefore the dual-port RAM in the system data exchange is a simple and effective way.Since the communication between the FPGA dual-port RAM, the CPU of embedded multi-CPU system have a significant impact, so the more relevant research, and together the FPGA dual-port RAM-based context of the embedded multi-CPU system , the communication between the CPU facing opportunities and challenges and coping strategies are discussed.Keywords:FPGA;dual-port RAM;dual-CPU;paralleldata communication目录摘要IAbstractII目录III1绪论1 2 FPGA的基本原理及设计方法2 2.1 FPGA的基本结构及逻辑实现原理2 2.2 FPGA工作原理2 2.3 FPGA芯片结构3 2.3.1可编程输入输出单元(IOB)3 2.3.2可配置逻辑块(CLB)4 2.3.3数字时钟管理模块(DCM)4 2.3.4嵌入式块RAM(BRAM)42.4丰富的布线资源5 2.5底层内嵌功能单元5 2.6内嵌专用硬核5 2.6.1编辑本段的基本特点6 3 双口RAM简介7 3.1双端口RAM的优势7 3.2双口RAM在FPGA中的实现7 3.3基于FPGA的双口RAM应用9 3.4存储结构及工作原理10 3.4.1存储体10 3.4.2地址译码器11 3.4.3读/写控制器11 3.4.4输入/输出端11 3.4.5仲裁控制器11 4双CPU124.1CPU简介12 4.1.1 CPU的内部结构12 4.1.2 CPU的工作流程134.1.3数据与指令在CPU中的运行13 4.2 W77E58的特点及功能13 4.2.1兼容性13 4.2.2高速性14 4.2.3中断源14 4.2.4两个增强全双工串口14 4.2.5可软件编程的访问外部存储器的存取速度15 4.2.6内存15 4.2.7可编程看门狗定时器(Watchdog Timer)15 4.2.8双16位数据指针(Dual 16-bit Data Pointers)15 4.3双口 RAM 并行通信的设计17 4.4系统关键问题的解决18 4.4.1系统故障冗余设计18 4.4.2交叉事务处理设计18 4.4.3存储空间组成及访问19 4.5设计双 CPU 系统的要解决的关键技术20 4.5.1确保双 CPU 工作的协同和可靠20 4.5.2合理设计交叉事务的实时处理软硬件20 4.5.3双口RAM存储空间的组成及访问21 4.5.4可靠性策略21 4.5.5交叉事务的实时处理22 5双CPU在通信中的应用23 5.1数据通信系统23 5.2数字程控电话交换机24 5.2.1话路系统24 5.2.2中央控制系统25 5.2.3程控交换机的软件组成25参考文献27 结束语28致谢29 附录30 1绪论在现代智能控制系统中,随着信息量的增加和实时性要求的提高,经常需要对信息或数据的高速采集和处理,这就要求在设计控制系统时充分关注它的信息处理能力,否则极易造成数据处理中的“瓶颈”现象,从而达不到设计要求。基于多CPU并行处理的嵌入式系统,不仅可以增强系统的控制能力和信息处理能力,提高系统的自动化和智能化水平,而且可以适应各种控制领域复杂的现场环境。在嵌入式多 CPU系统中,数据通信问题成为制约其性能提高的主要因素,而双口RAM的高速数据通信和共享能力为解决这一问题提供了方便。双口RAM不仅是一种高性能的静态存储器,还是一种性能卓越的高速通信器件。它可以在两侧端口之间实现多 CPU 高速并行通信。这是双口 RAM 芯片的另一个主要应用特色。对“基于FPGA的双口RAM”背景下双CPU通信产业中所面临挑战的研究。在“基于FPGA的双口RAM”环境下,掌握行业渗透,这必将打破现有的串行、并行、系统总线竞争格局,将给嵌入式多CPU系统带来巨大的挑战, 因此把此项内容作为研究对象的人也比较多。在嵌入式多CPU系统中,CPU间的通信可以采用串行、并行、系统总线及双口RAM等方式。前三种通信方式存在的共同特点是传输速度慢,在大数据量的情况下可能造成数据处理时间延长,实时性差,甚至出现数据拥塞现象。由于双口RAM的数据处理能力大大增强,传统传输渠道的价值和地位降低,传统通信业务必将受到影响 1 。 对“基于FPGA的双口RAM”背景下双CPU通信所面临机遇及发展趋势。“基于FPGA的双口RAM”具有重要的战略意义,需抓住机遇,迎接挑战,扬长避短,积极制定一系列应对政策,来提升自己的技术水平,且以此作为研究对象的人也很多。现场可编程逻辑门阵列FPGA是一种通用型用户可编程器件,一块FPGA芯片包含丰富的逻辑门、寄存器及IO口资源,FPGA结构灵活、集成度高、通用性强,通过FPGA构造专用的双口RAM具有前瞻性。其发展的一些新动向,归纳起来有以下几点:更高性能,芯片朝着高密度、低压、低功耗的方向挺进。更低成本,FPGA动态可重构技术意义深远。少有人提及,我将试图着力对此加以探究,为之前研究的不足做必要的补充。2 FPGA的基本原理及设计方法2.1 FPGA的基本结构及逻辑实现原理FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块 2 。 系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。 FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。2.2 FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程 3 。 2.3 FPGA芯片结构目前主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。FPGA芯片主要由7部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。 图2.1 FPGA芯片的内部结构每个模块的功能如下: 2.3.1可编程输入输出单元(IOB) 可编程输入/输出单元简称I/O单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。FPGA内的I/O按组分类,每组能够独立地支持不同的I/O标准。通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻。目前,I/O口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。 外部输入信号可以通过IOB模块的存储单元输入到FPGA的内部,也可以直接输入FPGA 内部。当外部输入信号经过IOB模块的存储单元输入到FPGA内部时,其保持时间(Hold Time)的要求可以降低,通常默认为0。 为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有 一种VCCO,但不同bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。 2.3.2可配置逻辑块(CLB) CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性会依器件的不同而不同,但是每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些 选型电路(多路复用器等)和触发器组成。开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。在Xilinx公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成。每个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。 Slice是Xilinx公司定义的基本逻辑单位,一个Slice由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND),一个异或门可以使一个Slice实现 2bit全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作;4输入函数发生 器用于实现4输入LUT、分布式RAM或16比特移位寄存器(Virtex-5系列芯片的Slice中的两个输入函数为6输入,可以实现6输入LUT或 64比特移位寄存器);进位逻辑包括两条快速进位链,用于提高CLB模块的处理速度 4 。 2.3.3数字时钟管理模块(DCM) 业内大多数FPGA均提供数字时钟管理(Xilinx的全部FPGA均具有这种特性)。Xilinx推出最先进的FPGA提供数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。 2.3.4嵌入式块RAM(BRAM) 大多数FPGA都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器 (CAM)以及FIFO等常用存储结构。CAM存储器在其内部的每个存储单元中都有一个比较逻辑,写入 CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块RAM,还可以将 FPGA中的LUT灵活地配置成RAM、ROM和FIFO等结构。在实际应用中,芯片内部块RAM的数量也是选择芯片的一个重要因素。 单片块RAM的容量为18k比特,即位宽为18比特、深度为1024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量(位宽,深度)不能大于18k比特;其次,位宽最大不能超过36比特。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。 2.4丰富的布线资源 布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片 Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。 在实际中设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。 2.5底层内嵌功能单元 内嵌功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核(Soft Core)。现在越来越丰富的内嵌功能单元,使得单片FPGA成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。 DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。Xilinx公司生产的芯片上集成了 DLL,Altera公司的芯片集成了PLL,Lattice公司的新型芯片上同时集成了PLL和DLL。PLL 和DLL可以通过IP核生成的工具方便地进行管理和配置。 2.6内嵌专用硬核 内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高FPGA的乘法速度,主流的FPGA 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速度。 Xilinx公司的高端产品不仅集成了Power PC系列CPU,还内嵌了DSP Core模块,其相应的系统级设计工具是EDK和Platform Studio,并依此提出了片上系统(System on Chip)的概念。通过PowerPC、Miroblaze、Picoblaze等平台,能够开发标准的DSP处理器及其相关应用,达到SOC的开发目的。 2.6.1编辑本段的基本特点 采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。 FPGA可做其它全定制或半定制ASIC电路的中试样片。 FPGA内部有丰富的触发器和I/O引脚。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。 3 双口RAM简介双口RAM是在1个SRAM存储器上具有两套完全独立的数据线、地址线和读写控制线,并允许两个独立的系统同时对其进行随机性访问的存储器,即共享式多端口存储器。双口RAM最大的特点是存储数据共享。1个存储器配备两套独立的地址、数据和控制线,允许两个独立的CPU或控制器同时异步地访问存储单元 5 。因为数据共享,所以必须具有访问仲裁控制。内部仲裁逻辑控制提供以下功能:对同一地址单元访问的时序控制;存储单元数据块的访问权限分配:信令交换逻辑(例如中断信号)等。双口RAM可用于提高RAM的吞吐率,适用于实时数据缓存。IDT7132是16 kb8高速双口静态RAM,存取速度小于20 ns。该器件具有真正的双端口,可以同时进行数据存取,两个端口具有独立的控制信号线、地址线和数据线,另外通过主从选择可以方便地扩存储容量和数据宽度。通过器件的信号量标志器,左、右两端口可以实现器件资源共享。3.1双端口RAM的优势IDT7132由美国公司生产,是一种的双端口芯片,它最重要的特点是每个芯片有两组数据、地址及控制总线。只要不是同时访问同一个存储单元,就允许两个端口对片内任何单元进行独立的读 写操作而互不干扰如果两个端口同时访问同一存储单元 ,则由片内仲裁逻辑决定访问权属于哪个端口 6 。访问时为一到多个档次。在硬件设计中,经常需要两个 有权访问同一块存储区 ,如果使用常规的单端口存储器,那么当某一 正在进行访问时,另一无法访问,严重降低了工作效率,而且不论采用 信号使 某一“挂起”的方法 ,还是采用两套总线二选一的方法,都给逻辑设计增添了负担。相比之下 ,使用双端口的好处至少有两点首先 ,可将两个的总线与双端口的两个端口分别相联,逻辑设计简洁明撩 其次,只要安排得当,使双端口无冲突地为两个端口服务,则可使访问效率比常规单端口提高一倍。3.2双口RAM在FPGA中的实现本设计采用自顶而下的设计思想。选用Xilinx公司的Spartan-6 FPGA器件,基于低功耗45 nm、9-金属铜层、双栅极氧化层工艺技术,提供高级功耗管理技术,150 000个逻辑单元,集成式PCI Express模块,高级存储器支持。250 MHz DSP slice和3125 Gbs低功耗收发器。通过Verilog HDL语言对双口RAM功能的描述就能在一片FPGA器件内实现8位16字节的双口RAM,并进行读写操作控制。双口RAM读写操作控制Verilog HDL代码如下:library IEEE; use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;entity ram is generic(width: integer := 16; - used to change the memory datas width depth: integer := 8); - used to change the memery address width during - instantiation. port( clk : in std_logic; -clock addr : in std_logic_vector(depth - 1 downto 0); -address bus cs : in std_logic; -chip select oe : in std_logic; -output enable -high for write -low for read data_i: in std_logic_vector(width - 1 downto 0); -write data bus data_o: out std_logic_vector(width - 1 downto 0) -read data bus );end ram;architecture Behavioral of ram istype ram is array(2 * depth - 1 downto 0) of std_logic_vector(width - 1 downto 0);signal ram1 : ram;begin process(clk) begin if(clkevent and clk = 1) then if(cs = 0) then if(oe = 0) then data_o = ram1(conv_integer(addr); else ram1(conv_integer(addr) = data_i; end if; end if; end if; end process;end Behavioral;3.3基于FPGA的双口RAM应用双口RAM在数字系统中应用广泛。高速数据采集系统中,一般的数据传输系统在大数据量情况下会造成数据堵塞现象。在一些实时控制场合,实时算法经常需要由几个DSP串行或并行工作以提高系统的运行速度和实时性。以双口RAM构成的数据接口可以在两个处理器之间进行高速可靠的信息传输。在许多宽带信号处理领域(如无线通信、多媒体系统、卫星通信、雷达系统等),FPGA技术已代替DSP实现许多前端的数字信号处理算法 14 。用FPGA来实现数字信号处理能很好地解决并行性和速度问题,而且其灵活的可配置特性,使得FPGA构成的数字信号处理系统易于修改、测试及系统升级,降低设计成本,缩短开发周期。数据采集系统高速、实时发展趋势,对数据的传输和控制速度提出较高要求。而采用双口RAM可有效提高速度,解决速度匹配问题 7 。设计l块数据采集系统板,用FPGA实现双口RAM功能,并且控制AD采样与转换,以及数据写入双口RAM。利用单片机控制双口RAM的存取,构成一个独立的数据采集系统,并可以通过串行接口把数据发送给PC机。首先,时钟产生启动信号,FPGA向采样开关发出选通信号,选定模拟开关采样,第0路模拟量进入,经AD转换后变为8位数字量并存储于双口RAM中,ADC0809反馈给FPGA内控制电路并告知转换完毕,FPGA内控制电路再选通第1路模拟量进入,重复上述过程。经过0.1 ms后,时钟又产生一个脉冲启动信号。FPGA又重新从第O路模拟量选通。在时钟脉冲信号0.1 ms过程中,FPGA顺序通过07路模拟开关,在每次选通时须判断是否为第7路模拟量,若是则FPGA不再响应AD反馈信号,而是等待0.1ms的时钟脉冲信号到达再重新开始工作。单片机用于与外部PC机通信,PC机查询是否在双端口RAM中有新数据,并经接口电路读人数据。其中双口RAM具有2组独立的数据、地址和控制总线,可对任何一个端口进行独立的操作。若未采用双口RAM,FPGA采取中断方式对CPU传输数据时,CPU就会停止当前工作而去处理外部请求,当处理完外部事件后再回到原来被中止处,继续原来的工作,这样会影响CPU的速度。因此引入双口RAM存储FPGA传送来的数据,然后CPU再从双口RAM中读数,从而提高效率。本数据采集系统采用基于FPGA双口RAM、单片机等实现数据运行处理和控制功能,使系统的通信和处理能力大大加强,保证了系统的实时性,可以灵活地通过多种方式控制数据读写。3.4存储结构及工作原理 双口 RAM 是一种高性能的双端口静态随机存取器。在使用读/写存取器时,既可以随时按所给定地址从 RAM 的存储单元中将数据取出(也称为读出),也可以随时将数据存入(也称为写入)到 RAM 的给定存储单元中去 3 。因为可以方便地对 RAM 进行读/写操作,所以使用起来非常灵活。静态双口RAM的每一位信息存储在一个触发器中,电源存在时,信息不会丢失。但是一旦停电或发生其它故障时,RAM 中的信息就不复存在,因而不能长期保存数据,也不便将内存信息携带到别处。 双口 RAM 存储结构如图3.4所示。双口 RAM 通常由四部分组成:存储体(存储矩阵)、地址译码器、读/写控制器和仲裁器。 图3.4 双口RAM结构简图3.4.1存储体 存储体是双口 RAM 的核心。它由许多存储单元组成,每个存储单元都能存储一位二进制数码(0 或1),这些存储单元被排列成矩阵形式称为存储矩阵。在译码器和读/写控制电路的控制下,既可以向存储单元写入 1或 0,又可以从存储单元中将存储的数据读出 8 。 3.4.2地址译码器 地址译码器是一种 N 中取一译码器,它将输入的地址代码译成某一条字线的输出信号,使连接在这条字线上的存储单元与读/写控制电路接通,然后对这些单元进行读或写。 3.4.3读/写控制器 当一个地址码经地址译码器译码后选中存储矩阵相应的存储单元时,就由读/写控制电路控制操作状态,决定究竟是对存储单元进行读出还是写入操作。双口 RAM 的读/写控制功能如表 3.1 所示。表3.1 双口RAM读/写控制功能控制信号输入端口信号模式#CER/#W#OEI/O无 HXX高阻片选无效LLX数据写入写入内存LHL数据写出读取内存XXH高阻输出无效当片选信号#CE 无效(#CE=1)时,输入/输出端呈高阻状态,双口 RAM 处于维持状态,既不能读也不能写。只有片选信号#CE 有效(#CE=O)时,才允许对双口 RAM 进行读/写操作;此时,若读/写控制信号R/#W=1,#OE=0 时执行读操作,若 R/#W=0 时执行写操作 9 。 3.4.4输入/输出端 双口 RAM 通过 UO 端与 CPU 交换信息,进行读操作时 UO 端为输出端,写操作时 I/O 端为输入端。I/O端是一线两用,由读/写控制器控制。双口 RAM 芯片两侧各有几个 I/O 端口,完全取决于地址单元中包含的位数。如双口 RAM 芯片 IDT7132 是 32K 8 位,这意味着芯片中32K个地址单元,而每个地址单元存放的是 8 位二进制数,故两侧各有8 个I/O 端口。 3.4.5仲裁控制器 仲裁控制器由多种仲裁方式组合而成,如令牌仲裁、硬件仲裁以及终端仲裁。本设计采用测试序列和时间片的软件仲裁方法实现,需要占用CPU的处理时间,且在仲裁过程中有可能受到外部干扰。因此对软件编程的可靠性有较高的要求。本设计通过硬件方式进行总线仲裁。使仲裁所需时间大为缩短,可靠性 得到提高。4双CPU 4.1CPU简介双CPU是指计算机系统拥有两块独立的物理CPU,整套系统靠主板协调两块同时工作,性能理论上是单CPU的两倍。所谓双核心处理器,简单地说就是在一块CPU基板上集成两个处理器核心,并通过并行总线将各处理器核心连接起来。双核心并不是一个新概念,而只是CMP(Chip Multi Processors ,单芯片多处理器) 中最基本、最简单、最容易实现的一种类型。 换言之双核心处理器就是基于单个半导体的一个处理器上拥有两个一样功能的处理器核心。这样就将两个物理处理器核心整合入一个核中,在任务繁重时,两个核心能相互配合,让CPU发挥最大效力。两个能互补的核心运行起来性能是非常不错的,例如使用Intel奔腾D双核处理器就相当于你有了两台采用奔腾4的主机。如果说超线程是用软件来模拟出双核的效果,那么现在所说的双核心就是真正意义上的两个核心。他弥补了超线程适用系统比较少的缺点,可以广泛用于windows操作系统的多个版本;他还有效的解决了双核运算中出现的缓存分离与数据冲突错误问题 10 。CPU的主要任务是执行各种命令,完成各种运算和控制功能,是计算机的大脑,决定着整个计算机系统的类型、性能和速度。人们常说的286、386、486、586、Pentium、酷睿、酷睿2等都是指CPU,CPU由运算器和控制器组成。W77E58是一个快速8051 兼容微控制器;它的内核经过重新设计,提高了时钟速度和存储器访问周期速度。经过这种改进以后,在相同的时钟频率下,它的指令执行速度比标准8051 要快许多。一般来说,按照指令的类型,W77E58的指令执行速度是标准8051的1.5-3倍。整体看,W77E58的速度比标准的8051快2.5倍。在相同的吞吐量及低频时钟情况下,电源消耗也降低。由于采用全静态CMOS设计,W77E58能够在低时钟频率下运行。工作电压为4.5v-5.5v,具有 1KB片上外部数据存储器,当用户使用片上SRAM代替外部SRAM,可节省更多I/O口。4.1.1 CPU的内部结构(1)算术逻辑单元ALU (2)寄存器组 RS(3)控制单元(4)总线(Bus)4.1.2 CPU的工作流程首先,CPU的内部结构可以分为控制单元、逻辑运算单元和存储单元(包括内部总线及缓冲器)三大部分。CPU的工作原理就像一个工厂对产品的加工过程:进入工厂的原料(程序指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储单元)中,最后等着拿到市场上去卖(交由应用程序使用)。4.1.3数据与指令在CPU中的运行通常情况下,一条指令可以包含按明确顺序执行的许多操作,CPU的工作就是执行这些指令,完成一条指令后,CPU的控制单元又将告诉指令读取器从内存中读取下一条指令来执行。这个过程不断快速地重复。4.2 W77E58的特点及功能 W77E58是台湾华邦公司生产的与MCS51系列单片机兼容的可多次编程的快速微处理器,在它内部集成有32K的可重复编程的flash ROM、256字节的片内存储器、1K的 用MOVX指令访问的SRAM可编程的看门狗定时器、3个16位定时器、2个增强型的 全双工串行口、片内RC振荡器、双16位数据指针等诸多功能11 。在很多场合,几乎不用扩展外围芯片就能够满足系统要求,而且,由于它采用了全新设计的微处理 器内核,去除多余的时钟和存储周期,因此,在相同的晶振频率下,根据不同的 指令类型,其运行速度一般比传统8051系列快1.5到3倍,一般情况下,平均可达 2.5倍以上。另外,由于W77E58采用全静态CMOS设计,能工作在低速晶振频率下,因此,和普通的8051相比,若W77E58采用低速工作频率,在相同的指令吞吐量下,W77E58的节电性能也将大大提高。4.2.1兼容性 77E58的指令功能完全兼容于80C52(包括对状态位和标志位的影响),只有一点 不同的就是在普通80C52的指令系统中,没有操作指令(op-code)A5H,而在W77 E58的指令系统中,增加了一条指令DEC DPTR(数据指针DPTR减一),其操作指令(op-code)为A5H。而且,W77E58也具有80C52的全部资源和功能,包括4个8位I /O口,3个16位定时器,全双工串口,中断源等。W77E58的增加的新功能都是用 普通80C52所保留的特殊功能寄存器实现的,不与普通80C52的资源产生任何冲突,因此,W77E58可以直接用在已设计好的80C52系统中使用,而为原有系统编写的程序几乎不做任何改动,系统就可正常工作,需要注意的只是由于新的高速内核所造成的指令执行时间的改变及访问外部存储器的读写速度的限制。W77E58的封装 也完全兼容于80C52,它所增加的与硬件有关的功能都是复用80C52的P1口,并且 W77E58 的44pin PLCC/QFP封装比普通的80C51多一组4位的I/O口。 4.2.2高速性 77E58的外部工作时钟频率可达40MHz,而且,由于W77E58采用了重新设计的微处理器内核,去除了多余的时钟和存储周期,运行速度大大提高,这不仅仅是运行 晶振频率的提高,而是将普通8051的每个机器周期(machine cycle)包含12个 时钟周期(clock period)缩减到每个机器周期包含4个时钟周期,这样,即使 在相同的时钟频率下,根据不同的指令类型,其运行速度一般比传统8051提高1. 5到3倍 12 。因此,若程序中需要软件定时,其执行时间须根据W77E58的指令的执行 时间应重新计算,一般情况下,每一个机器周期有一次取指(包括操作码和操作 数)操作,由于在W77E58的256个操作码指令中,有128个是单字节指令,因此,W77E58的指令有一半的执行时间只须一个机器周期,即4个时钟周期。4.2.3中断源 77E58除了具有80C52的6个中断源外,又另外增加了6个中断源,共有12个可定义两种优先级的中断源,每个中断源都有独立的中断使能位、中断优先权位、中断标志位和中断向量。 但是,为了同80C52兼容,所有新增加的中断的优先级都在 原有中断的优先级之后,其中断优先级及中断向量如下表1所示,除了同80C52有 相同的两个外部中断INT0和INT1外,W77E58又增加了4个外部中断INT2、INT3、I NT4、INT5。同80C52一样,外部中断INT0和INT1有边沿触发和电平触发两种触发 方式,当中断被响应后,其中断标志位由硬件自动清除;而外部中断INT2到INT5 只有边沿触发方式,其中断标志位可被独立设为由硬件或软件清除,缺省设置为 由软件清除,当然,用户可根据需要通过修改相对应的特殊寄存器,将外部中断 INT2到INT5设为由硬件清除中断标志位。 4.2.4两个增强全双工串口 和80C52相比,W77E58除了具有同80C52一样的全双工串口外,W77E58又增加了一个全双工串口,其外部引脚RXD1、TXD1和P1.2、P1.3复用。然而,这两个串口除 了具有同原有80C52的串口相同的功能外,又增加了两个增强型的特点,即多机通 讯自动地址识别和帧错误检测功能,但是需要注意的是,这两个串口也有一点细微的差别,那就是串口0(原有保留串口)可以用定时器0和定时器1作为波特率发生器,而串口1只能使用定时器1作为波特率发生器。 (1) 自动帧错误检测 自动帧错误检测指的是在数据传输的过程中,如果由于噪音等随机干扰造成接收方接收不到正确的停止位,W77E58能够自动检测出并设置标志FE(FE_1),此标 志被定位在SCON.7(SCON1.7),用户可以访问,并且必须软件清除。 (2) 多机通讯自动地址识别 在标准的8051系列单片机中,当进行多机通讯时,发送9位数据,最后一位只当作地址/数据识别位,但是并不能区分准确地址,准确地址须靠软件识别,而在W77 E58中,增加了地址特殊寄存器SADDR和地址屏蔽特殊寄存器SADEN,只有SADEN中 的某一位为1,计算实际地址时相对应的SADDR的位才有效,若SADEN中某一位是0 ,则进行实际地址计算时忽略对应的SADDR中的位。例如:SADDR:10100100、SADEN:11111010、实际地址:10101X1X 。在进行多机通讯时,只有接收到的地址帧和根据SADDR、SADEN计算出的地址完全 相同时,从机才会置位中断标志,这完全由硬件自动完成,而不是象标准8051系列那样必须靠软件完成13。 4.2.5可软件编程的访问外部存储器的存取速度 标准的8051在执行MOVX指令访问外部存储器时,执行时间固定为2个机器周期,而W77E5

温馨提示

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

评论

0/150

提交评论