《毕业设计(论文)基于FPGA的串行flash读写设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于FPGA的串行flash读写设计.doc(35页珍藏版)》请在三一办公上搜索。
1、基于FPGA的串行flash读写设计摘要:FPGA凭借其方便灵活、可重复编程等优点而日益被广泛应用;闪速存储器(Flash Memory)是一类非易失性存储器NVM(Non-Volatile Memory)即使在供电电源关闭后仍能保持片内信息。数字电路设计中经常需要使用大容量存储器,串行Flash存储速度快、体积小、功耗低且价格低廉,可在线电擦写,信息在掉电后不会丢失、连线简单。随着微电子技术的迅猛发展,FPGA在数字电路设计中所发挥的作用越来越大,广泛应用于系统实现及功能验证。利用FPGA直接控制Flash接口时序,不仅节约了专用编程器的开支,而且方便灵活、便于移植。使用硬件描述语言编写的接
2、口时序,可重复利用,可移植性强。FPGA的灵活性和串行Flash的体积小的特点相结合,具有设计灵活、成本低廉、实用性强等优势,并具有重要的参考价值。关键词:FPGA;串行Flash;灵活性;实用性;重复利用Based on FPGA design of serial flash literacy designABSTRACT: The FPGA with its flexibility, can repeat programming advantages and increasingly widely applied; Flash Memory (Flash) is a kind of wit
3、h the beltpassword nonvolatile storage NVM (Non - with Volatile in the power supply, even can still keep slice off inside information. Digital circuit design often need to use mass storage, serial Flash storage speed, small volume, low power consumption and low prices, CaXie, information online elec
4、tricity after falling off the electricity never lost, attachment simple. With the rapid development of the microelectronics technology in digital circuit design, FPGA role of more and more big, widely used in system function and realization verification. Using the FPGA direct control flash interface
5、 timing, not only save the special-purpose programmer expense, and is convenient and flexible, for transplantation. Use hardware description language preparation interface timing, reusable, portability is strong. The FPGA flexibility and serial Flash volume small, the characteristics of its design c
6、ombined with flexible, low cost, practical wait for an advantage, and has important reference value. Keywords: FPGA; Serial Flash; Flexibility; Practical; reuse 目录目录3第一章 绪论4第二章 串行Flash读写设计的总体方案62.2.1可编程逻辑器件的发展历史与开发工具62.2.2 FPGA芯片的基本工作原理与基本架构82.4.4由EEPROM派生的闪速存储器142.5 FPGA和flash芯片选型152.5.1 FPGA芯片选型15
7、2.5.2 Flash芯片选型16第三章 串行flash读写设计系统的硬件设计173.1 A/D芯片及周边部分电路183.2 FPGA芯片及周边电路193.2.1 FPGA的I/O口部分电路193.2.2 FPGA的时钟源及锁相环接口电路203.2.3 FPGA的配置电路223.3 M25P80的原理及时序图243.3.1写使能指令253.3.2读写状态寄存器253.3.3读数据指令253.3.4页面编辑指令263.3.5擦除指令273.4电源及接地电路27第四章 串行flash读写设计系统的软件设计304.1 FPGA芯片的Verilog HDL程序设计304.1.1硬件描述语言Verilo
8、g HDL概述304.2 串行Flash读写设计的软件设计314.2.1 Flash正常工作时必须严格按照Flash的时序控制信号。31致谢34参考文献35第1章 绪论1.1研究背景及意义FPGA凭借其方便灵活、可重复编程等优点而日益被广泛应用;闪速存储器(Flash Memory)是一类非易失性存储器NVM(Non-Volatile Memory)即使在供电电源关闭后仍能保持片内信息。而诸如DRAM、SRAM这类易失性存储器,当供电电源关闭时片内信息随即丢失。 Flash Memory集其它类非易失性存储器的特点:与EPROM相比较,闪速存储器具有明显的优势在系统电可擦除和可重复编程,而不需
9、要特殊的高电压(某些第一代闪速存储器也要求高电压来完成擦除和/或编程操作);与EEPROM相比较,闪速存储器具有成本低、密度大的特点。其独特的性能使其广泛地运用于各个领域,包括嵌入式系统,如PC及外设、电信交换机、蜂窝电话、网络互联设备、仪器仪表和汽车器件,同时还包括新兴的语音、图像、数据存储类产品,如数字相机、数字录音机和个人数字助理(PDA)。 数字电路设计中经常需要使用大容量存储器,串行Flash存储速度快、体积小、功耗低且价格低廉,可在线电擦写,信息在掉电后不会丢失、连线简单。随着微电子技术的迅猛发展,FPGA在数字电路设计中所发挥的作用越来越大,广泛应用于系统实现及功能验证。利用FP
10、GA直接控制flash接口时序,不仅节约了专用编程器的开支,而且方便灵活、便于移植。使用硬件描述语言编写的接口时序,可重复利用,可移植性强。FPGA的灵活性和串行Flash的体积小的特点相结合,具有设计灵活、成本低廉、实用性强等优势,并具有重要的参考价值。1.2 Flash Memory国内外应用现状及研究现状存储器的发展都具有更大、更小、更低的趋势,这在闪速存储器行业表现得尤为淋漓尽致。随着半导体制造工艺的发展,主流闪速存储器厂家采用0.18m,甚至0.15m的制造工艺。借助于先进工艺的优势,Flash Memory的容量可以更大:NOR技术将出现256Mb的器件,NAND和AND技术已经有
11、1Gb的器件;同时芯片的封装尺寸更小:从最初DIP封装,到PSOP、SSOP、TSOP封装,再到BGA封装,Flash Memory已经变得非常纤细小巧;先进的工艺技术也决定了存储器的低电压的特性,从最初12V的编程电压,一步步下降到5V、3.3V、2.7V、1.8V单电压供电。这符合国际上低功耗的潮流,更促进了便携式产品的发展。另一方面,新技术、新工艺也推动Flash Memory的位成本大幅度下降:采用NOR技术的Intel公司的28F128J3价格为25美元,NAND技术和AND技术的Flash Memory将突破1MB 1美元的价位,使其具有了取代传统磁盘存储器的潜质。世界闪速存储器市
12、场发展十分迅速,其规模接近DRAM市场的1/4,与DRAM和SRAM一起成为存储器市场的三大产品。Flash Memory的迅猛发展归因于资金和技术的投入,高性能低成本的新产品不断涌现,刺激了Flash Memory更广泛的应用,推动了行业的向前发展。 1.3课题的主要研究内容本课题的主要内容是基于FPGA的串行flash存储器的设计研究,并兼顾程序的易用性以方便以后模块的移植。该课题设计到FPGA的应用,flash存储器的读和写等知识。并利用QUARTUS II 实现相关模块的设计,在FPGA上实现对串行flash存储器的控制,使其具有读和写的功能。第2章Flash读写设计的总体方案2.1系
13、统的总体设计方案串行A/D转换完成后,首先将转换好的二进制数据送入FPGA的异步FIFO,这一步主要完成数据的缓冲。另外,由于A/D芯片的时钟与flash芯片的时钟是由不同的时钟源提供的,所以将A/D芯片转换好的数据先存入FPGA的异步FIFO中还解决了异步数据信号跨时钟域的传输问题,避免了数字电路因该问题可能出现的亚稳态现象。随后,M25P80读取FPGA中异步FIFO中的数据,并通过M25P80接口将数据送入上位机中,通过上位机软件完成数据的读和写等功能。该串行flash读写设计系统的框图如图2.1所示:图2.1 串行flash读写设计系统框图 该系统框图中,FPGA在整个系统中起到了主控
14、制器的作用,并能够通过其内部集成的锁相环PLL为A/D芯片和flash芯片提供时钟源。A/D芯片转换后的二进制数据在FPGA的控制下先经由FPGA内部的缓冲,再经由flash芯片内部的收发器,最终,通过USB接口的D+和D-管脚按照差分信号方式传输,上传到上位机中。22 FPGA技术概述2.2.1可编程逻辑器件的发展历史与开发工具 随着嵌入式技术的飞速发展,对嵌入式系统的应用需求也呈现出不断增长的态势,因此,嵌入式技术也相应的取得了重要的进展,系统设备也不断向高速化、集成化、低功耗方向发展。现场可编程门阵列(Field Programmable Gate Array,FPGA)经过近20年的发
15、展,到目前已成为数字系统设计的主要硬件平台。它是专用集成电路(ASIC)中集成度最高的一种,其主要特点是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写,修改和升级FPGA不需要额外改变PCB电路板,只是在计算机上修改和更新程序,使硬件设计工作转化为软件开发工作,缩短了系统的设计周期,提高了实现的灵活性并降低了成本,因此获得了广大硬件工程师的青睐,形成了巨大的可编程逻辑器件的产业规模。目前主流的FPGA芯片的规模非常大,甚至有的FPGA能够达到数千万门以上的规模。基于这些高复杂度可编程逻辑器件的开发,很大程度上要依靠电子设计自动化(Electronic Design A
16、utomation,EDA)来完成。可编程逻辑器件的EDA工具以计算机软件为主,将典型的单元电路封装起来形成固定模块并形成标准的硬件描述语言(Hardware Description Language,HDL)供设计人员使用。HDL是架设在设计人员和物理电路中的一座桥,它将设计人员大脑中的高层次逻辑抽象和物理上的低层次电路实现连接在一起。FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程。一个完整的FPGA开发设计流程包括:电路功能设计、设计输入、功能真、综合、布局布线、布线后仿真、板级仿真以及芯片编程与调试等主要步骤。(1)电路功能设计在系统设计之前,首先要进行的
17、是方案论证和FPGA芯片选择等准备工作。一般都采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接使用EDA元件库为止。(2)设计输入设计输入是将所设计的系统或电路以开发软件要求的某种形式表达出来,并输入给EDA工具的过程。常用的方法有硬件描述语言(HDL)和原理图输入方法等。目前,在实际开发中应用最广的就是HDL输入法,而在大型工程中,主要使用行为HDL,其2数据采集系统的总体设计方案,其主流语言是Verilog HDL和VHDL。(3)功能仿真功能仿真,也称为前仿真,是在编译之前对用户设计的电路进行逻辑验证,此时的仿真
18、没有延迟信息,仅对初步的功能进行检测。仿真前,要么利用波形编辑器和HDL等建立波形文件和测试向量,仿真结果将会生成报告文件和输出信号波形,从中便可以各个节点信号的变化。如果发现错误,则返回设计以修改逻辑设计。(4)综合所谓综合,就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。就目前层次来看,综合优化是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。(5)布局布线布局布线是设计实现中最重要的过程,设计实现是将综合生成的逻辑网表配置到具体的FPG
19、A芯片上。布局逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最有和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确的连接各个元件。(6)时序仿真时序仿真是指将布局布线的延时信息反注解到设计网表中来检测有无时序违规现象。时序仿真包含的延时信息最全,也最精确,能较好的反映芯片的实际工作情况。(7)板级仿真板级仿真主要应用于高速电路的设计中,对高速信号系统的完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。(8)芯片编程与调试芯片编程与调试是指产生使用的数据文件,然后将编辑数据下载到FPGA芯片中。2.2.2
20、FPGA芯片的基本工作原理与基本架构FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点4。 由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构,查找表可以很好的满足这一要求。目前主流FPGA都采用了基于SARM工艺的查找表结构。查找表(Look-Up Table,LUT)本质上就是一个RAM,当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计
21、算逻辑电路的所有可能结果,并把真值表事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。由于基于LUT的FPGA具有很高的集成度,其器件密度数万门到数千万门不等,可以完成极其复杂的时序逻辑电路与组合逻辑电路,因此适用于高速、高密度的高端数字逻辑电路设计领域。其组成部分主要包括编程/输入输出单元、基本可编程逻辑单元、内嵌SARM、丰富的布线资源、底层嵌入功能单元、内嵌专用单元等。FPGA是由存放在片内的RAM来设置其工作状态的,因此工作需要对片内RAM进行编程。用户可根据不同的配置模式,采用不同的编程方式。FPGA有如下几种配置模式:(1
22、)并行模式:并行PROM、Flash配置FPGA。(2)主从模式:一片PRAM配置多片FPGA。(3)串行模式:串行PROM配置FPGA。(4)外设模式:将PROM作为微处理的外设,由微处理器对其编程。目前,FPGA市场占有率最高的两大公司Xilinx和Altera生产的FPGA都是基于SARM工艺的,需要在使用时外接一个片外存储器以保存程序。上电时,FPGA将外部存储器中的数据读入片内RAM,完成配置后,进入工作状态;掉电后FPGA恢复为白片,内部逻辑消失。以Altera公司的Cyclone II系列的EP2C20为例,简要介绍下FPGA器件内部的结构与资源分布,如图2.2所示:图2.2 C
23、yclone II资源分布示意图(EP2C20)在Cyclone II系列器件内部,资源是按照行列的方式呈现二维分布的,这些资源主要包括逻辑单元与逻辑阵列、M4K存储块、乘法器等。(1)逻辑单元与逻辑阵列逻辑单元是在FPGA器件内部,用于完成用户逻辑的最小单元,它主要由以下部件组成:一个输入的查找表、一个可编程的寄存器、一条进位链和一条寄存器级连链。查找表的功能是用于完成用户需要的逻辑功能,CYCLONE II系列器件中的查找表是4输入1输出的查找表。可编程的寄存器可以被配置为D触发器、T触发器、JK触发器或者SR锁存器。每个寄存器包含有4个输入信号:数据输入、时钟输入、时钟使能输入以及复位输
24、入。其中,内部逻辑,外部引脚能够驱动寄存器的时钟输入、时钟使能输入和复位输入、时钟输入和复位输入也可以通过全局时钟树驱动。逻辑阵列的主题是16个逻辑单元,另外还有一些逻辑阵列内部的控制信号以及互联通路,使得逻辑阵列具有一些特性。本地互联通路是逻辑阵列的重要组成部分,它在16个逻辑单元之间起高速路由的作用,为一个逻辑阵列内部的逻辑单元提供高速的连接链路。逻辑阵列还包括一些控制信号:两个时钟信号,两个时钟使能信号、两个异步复位信号、一个同步复位信号和一个同步加载信号。(2)内部连接通路在FPGA器件内部存在各种连接通路,用于连接器件内部的不同模块,因为FPGA期间内不得资源是按照行列的方式分布的,
25、所以连接通路也分为行连接和列连接两种。(3)时钟资源Cyclone II系列器件中时钟资源主要包括全局时钟树和锁相环PLL两个部分。全局时钟树负责把时钟分配到器件内部的各个单元,控制器件内部的所有单元。锁相环PLL则可以完成分频、倍频、移相等有关时钟的基本操作。(4)内部存储器Cyclone II系列FPGA的内部存储器容量有了大幅提高,做多可以达到115200bit。(5)输入/输出引脚Cyclone II器件的输入/输出引脚被分为几组,每个输入/输出组都有单独的供电电源,因而用户可以为不同的输入输出组提供不同的电压,从而在不同的输入/输出组内使用不同的输入输出标准。2.3 通信的SPI概念
26、2.3.1 SPI:高速同步串行口SPI:高速同步串行口。是一种标准的四线同步双向串行总线。SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如M25P80.SPI总线
27、系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时
28、,也就是半双工方式)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。(1)SDO 主设备数据输出,从设备数据输入(2)SDI 主设备数据输入,从设备数据输出(3)SCLK 时钟信号,由主设备产生(4)CS 从设备使能信号,由主设备控制其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存
29、在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采
30、集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。2.3.2接口包括以下四种信号:(1)MOSI 主器件数据输出,从器件数据输入(2)MISO 主器件数据输入,从器件数据输出(3)SC
31、LK 时钟信号,由主器件产生(4)/SS 从器件使能信号,由主器件控制在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。 2.4 Flash Memory技术概况 全球闪速存储器的主要供应商有AMD、ATMEL、Fujistu、Hitachi、Hyundai、Intel、Micron、Mitsubishi、Samsung、SST、SHARP、TOSHIBA,由于各自技术架构的不同,分为几大阵营。2.4.1 NOR技术NOR NOR技术(亦称为Linear技术)闪速存储器是最早出现的Flash Memory,目前仍是多数供应商支持的技术架构。它源于传统的EPROM器件
32、,与其它Flash Memory技术相比,具有可靠性高、随机读取速度快的优势,在擦除和编程操作较少而直接执行代码的场合,尤其是纯代码存储的应用中广泛使用,如PC的BIOS固件、移动电话、硬盘驱动器的控制存储器等。DINORDINOR(Divided bit-line NOR)技术是Mitsubishi与Hitachi公司发展的专利技术,从一定程度上改善了NOR技术在写性能上的不足。DINOR技术Flash Memory和NOR技术一样具有快速随机读取的功能,按字节随机编程的速度略低于NOR,而块擦除速度快于NOR。DINOR技术Flash Memory在执行擦除操作时无须对页进行预编程,且编程
33、操作所需电压低于擦除操作所需电压,这与NOR技术相反。2.4.2 NAND技术NANDSamsung、TOSHIBA和Fujistu支持NAND技术Flash Memory。这种结构的闪速存储器适合于纯数据存储和文件存储,主要作为SmartMedia卡、CompactFlash卡、PCMCIA ATA卡、固态盘的存储介质,并正成为闪速磁盘技术的核心。UltraNAND AMD与Fujistu共同推出的UltraNAND技术,称之为先进的NAND闪速存储器技术。它与NAND标准兼容:拥有比NAND技术更高等级的可靠性;可用来存储代码,从而首次在代码存储的应用中体现出NAND技术的成本优势;它没有
34、失效块,因此不用系统级的查错和校正功能,能更有效地利用存储器容量。2.4.3 AND技术AND技术是Hitachi公司的专利技术。Hitachi和Mitsubishi共同支持AND技术的Flash Memory。AND技术与NAND一样采用“大多数完好的存储器”概念,目前,在数据和文档存储领域中是另一种占重要地位的闪速存储技术。 存储器的发展都具有更大、更小、更低的趋势,这在闪速存储器行业表现得尤为淋漓尽致。随着半导体制造工艺的发展,主流闪速存储器厂家采用0.18m,甚至0.15m的制造工艺。借助于先进工艺的优势,Flash Memory的容量可以更大:NOR技术将出现256Mb的器件,NAN
35、D和AND技术已经有1Gb的器件;同时芯片的封装尺寸更小:从最初DIP封装,到PSOP、SSOP、TSOP封装,再到BGA封装,Flash Memory已经变得非常纤细小巧;先进的工艺技术也决定了存储器的低电压的特性,从最初12V的编程电压,一步步下降到5V、3.3V、2.7V、1.8V单电压供电。这符合国际上低功耗的潮流,更促进了便携式产品的发展。另一方面,新技术、新工艺也推动Flash Memory的位成本大幅度下降:采用NOR技术的Intel公司的28F128J3价格为25美元,NAND技术和AND技术的Flash Memory将突破1MB 1美元的价位,使其具有了取代传统磁盘存储器的潜
36、质。世界闪速存储器市场发展十分迅速,其规模接近DRAM市场的1/4,与DRAM和SRAM一起成为存储器市场的三大产品。Flash Memory的迅猛发展归因于资金和技术的投入,高性能低成本的新产品不断涌现,刺激了Flash Memory更广泛的应用,推动了行业的向前发展。2.4.4由EEPROM派生的闪速存储器EEPROM具有很高的灵活性,可以单字节读写(不需要擦除,可直接改写数据),但存储密度小,单位成本高。部分制造商生产出另一类以EEPROM做闪速存储阵列的Flash Memory,如ATMEL、SST的小扇区结构闪速存储器(Small Sector Flash Memory)和ATMEL
37、的海量存储器(Data-Flash Memory)。这类器件具有EEPROM与NOR技术Flash Memory二者折衷的性能特点:(1) 读写的灵活性逊于EEPROM,不能直接改写数据。在编程之前需要先进行页擦除,但与NOR技术Flash Memory的块结构相比其页尺寸小,具有快速随机读取和快编程、快擦除的特点。(2) 与EEPROM比较,具有明显的成本优势。(3) 存储密度比EEPROM大,但比NOR技术Flash Memory小,如Small Sector Flash Memory的存储密度可达到4Mb,而32Mb的DataFlash Memory芯片有试用样品提供。正因为这类器件在性
38、能上的灵活性和成本上的优势,使其在如今闪速存储器市场上仍占有一席之地。Small Sector Flash Memory采用并行数据总线和页结构(1页为128或256B),对页执行读写操作,因而既具有NOR技术快速随机读取的优势,又没有其编程和擦除功能的缺陷,适合代码存储和小容量的数据存储,广泛地用以替代EPROM。DataFlash Memory是ATMEL的专利产品,采用SPI串行接口,只能依次读取数据,但有利于降低成本、增加系统的可靠性、缩小封装尺寸。主存储区采取页结构。主存储区与串行接口之间有2个与页大小一致的SRAM数据缓冲区。特殊的结构决定它存在多条读写通道:既可直接从主存储区读,
39、又可通过缓冲区从主存储区读或向主存储区写,两个缓冲区之间可以相互读或写,主存储区还可借助缓冲区进行数据比较。适合于诸如答录机、寻呼机、数字相机等能接受串行接口和较慢读取速度的数据或文件存储应用。2.5 FPGA和flash芯片选型2.5.1 FPGA芯片选型FPGA的两大供应商分别是Altera公司和Xilinx公司,这两家公司均来自美国,占据了可编程器件的主流市场。本设计是基于Altera公司的Cyclone II芯片进行的,它属于目前主流的中端FPGA芯片。Cyclone II芯片采用了90nm工艺,相对于130nm工艺的Cyclone系列来讲,片内的逻辑单元的数量大幅增加,最多可以达到6
40、8416个逻辑单元,片内的存储器容量最多增加至1.1Mbit,用户可用引脚最多增加至622个。Cyclone II系列器件内部带有乘法器,这些乘法器能用于完成高速乘法操作,使得Cyclone II系列器件的数字信号处理能力得到了增强。此外,Cyclone II系列器件还支持Nios II嵌入式处理器,在一个FPGA芯片内部可以嵌入1个或多个Nios II处理器。结合本设计的实际情况后决定采用Cyclone II的EP2C8Q208C8这款FPGA芯片,该芯片选用了208管脚的PQFP封装,它内部具有8256个逻辑单元,18个乘法器,2个锁相环,总引脚208个,用户可用引脚达到了182个。2.5
41、.2 Flash芯片选型Flash是一种具有电可擦除的可编程ROM,可以分为两大类:并行Flash和串行Flash。并行Flash存储量大,速度快;而串行Flash存储量相对较小,但体积小,连线简单,可减小电路面积,节约成本,二者各有其优缺点,可依据实际需要选取。本文开发的系统对速度的要求不是很高,而对电路板的面积要求则较为苛刻,因此系统设计选用了串行FlashM25P80。 M25P80是意法半导体推出的一款高速8 Mbit串行Flash,共由16部分组成,每一部分有256页,每页有256个字节。M25P80具有先进的写保护机制,读取数据的最大时钟速率为40 MHz。M25P80的工作电压范
42、围为2.7 V3.6 V,具有整体擦除和扇区擦除、灵活的页编程指令和写保护功能,数据保存至少20年,每个扇区可承受100 000次擦写循环。并行Flash封装通常需要28个以上的引脚,因此,额外支出大,而M25P80采用SO8封装,需要的引脚数较少,从而节省了电路板空间,功率、系统噪声和整体成本等都会大幅度降低,既经济又实用。第3章 串行flash读写设计系统的硬件设计系统硬件设计部分中,在完成系统时钟源、电源等必要电路的设计基础上,重点就完成系统内各个部件的接口电路的设计,通过这部分的设计,基本的硬件平台就建立来了。系统部件间的硬件电路接口设计连接的示意电路图如图3.1所示:图3.1部件间硬
43、件接口示意电路图 如图3.1所示,A/D与FPGA芯片之间的连接,由于A/D采用了串行口设计,所以连接时只需要把串行时钟SCLK、片选CS和串行数据SData引脚与FPGA的I/O引脚相连接即可。FPGA与flash芯片之间的连接是由时钟信号IFCLK,控制信号FIFO_Full、FIFO_WR_en和FIFO_ADDR1:0以及数据信号FIFO_DATA15:0共同构成的。其中,FIFO_Full用来向FPGA提供端点FIFO的满标志状态,FIFO_WR_en用来向FPGA提供端点FIFO的写使能信号,两位FIFO_ADDR1:0用来选择 M25P80的4个端点FIFO中的某一个作为当前操作
44、对象,16位的FIFO_DATA15:0用来传输16位的数据。FPGA与 M25P80芯片之间的连接模式是Slave FIFO模式,Slave FIFO接口即可由内部提供时钟信号,也可由外部提供。内部时钟源可被固件程序编程设置为30MHz或48MHz,这时内部时钟可通过IFCLK引脚向外部提供输出。如果串行flash芯片的固件程序将其编程设置为使用外部时钟源,则IFCLK可以由外部的5MHz至48MHz之间的任意频率的时钟源来驱动。在这里选择的是外部由FPGA的锁相环PLL来产生40MHz的时钟信号用以驱动IFCLK引脚。3.1 A/D芯片及周边部分电路A/D芯片在此选用了德州仪器公司的10位
45、串行接口芯片TLV1572,8管脚的SOIC封装,它外部较少的管脚不仅能够很方便的实现与其它器件连接,并且它体积小,可以节省很多布线资源。TLV1572的最高采样速率为1.25MSPS,其积分非线性误差INL1LSB,可以采用2.7V至5.5V的供电电源。在这里选择的5V模拟电源供电。参考电压的取值范围这里为2.7V至5V。如图3.2所示:图3.2 A/D芯片及周边电路基准电压源是模拟集成电路中极为重要的组成部分,它可以为串联型稳压电路、A/D和D/A转换器提供基准电压源,也是大多数传感器的稳压供电电源或激励源。另外,基准电压源也可以作为标准电池、仪器表头的刻度标准和精密电流源。TL431是一
46、个性能优良的基准电压集成电路,主要应用于稳压、仪器仪表、可调电源和开关电源中,是稳压二极管的良好替代品。其主要特点是可调输出电压范围大,为2.5V至36V,输出阻抗小,约为0.2欧姆。如图3.3所示:按照TL341数据手册提供的输出的稳压电压的计算公式,TL341的3号引脚的电压值Vo=(1+W1/R18)Vref,其中Vref为2.5V。目前按照A/D芯片正常工作的要求提供3V稳压电压,则W1/R18比值应为0.2,R18目前阻值为1K,那么可以调节W1滑动变阻器值为200欧姆。图3.3 参考电压电路3.2 FPGA芯片及周边电路3.2.1 FPGA的I/O口部分电路这些I/O接口是除去FP
47、GA的电源管脚、时钟及锁相环管脚、接地管脚及特殊应用管脚等固定用途之外,用户能够直接使用I/O管脚接口,这些接口用来提供给系统复位,A/D芯片和Flash芯片的时钟、数据和控制信号的29,30。如图3.4所示:I/Onum(LVDSnumn):可用作输入或输出,或者双向口,同时也可以作为LVDS差分对的负端。Num表示管脚序号。在原理图的绘制之前应该通盘考虑整个系统的布线情况,然后再按照芯片手册提供的芯片的引脚逐个安排每个引脚的连接,否则将会出现在PCB布线过程中无法布通导线的情况。在I/O线资源富裕的情况下将多余的引脚通过扩展的插针形式向外引出,这样就便于后期的升级扩展,以及系统的调试之用。图3.4 FPGA的I/O口部分电路3.2.2 FPGA的时钟源及锁相环接口电路系统时钟由50MHz的有源晶振提供,按照模拟地和数字地分开的原则,锁相环PLL的模拟地和数字地是通过两个网络分开进行布线的,如图3.5所示:图3.5 FPGA的时钟源和锁相环接口电路 VCCA_PLL:锁相环引脚模拟电压输入。用以向锁相环提供1.2V的模拟电压。 VCCD_PLL:锁相环引脚数字电压输入。用以向锁相环提供1.2V的数字电压。 GNDA_PLL:锁相环模拟地。 GNDD_PLL:锁相环数字地。 CLKnum(LVDSCLKnump):锁相环时钟输入。支持LVDS时钟输入,p接正端,num表示PLL序