微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于NAND Flash的数据存储系统设计

基于NAND Flash的数据存储系统设计

时间:05-09 来源:互联网 点击:

引言
传统的存储设备虽然具有价格低廉的优势,但是在高温、高速、高冲击的测试环境中,往往存在设备存放空间有限、测试参数较多、采集速率高、环境复杂等因素。为了得到准确的测试数据,对存储设备的性能也提出了较高的要求,如高存储速度、大存储容量、小巧轻便、抗冲击等。此时传统的存储设备便无法完成复杂环境测试数据的存储任务。为解决这个问题,本文设计了基于NAND Flash的数据存储系统,该系统采用Xilinx公司提出的灵活、高效、低成本的解决方案SOPC,把通用的RISC处理器MicroBlaze与用户设计的特定功能逻辑电路集成到FPGA上,在FPGA的控制下将数据存储到NAND Flash存储设备中,实现了一个基于SOPC方案的嵌入式数据存储系统。
NAND Flash存储设备是Flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。NAND Flash存储器具有体积小、功耗低、读写速度快等优点,适用于大量数据的存储,被广泛应用到数码相机、MP3、U盘等嵌入式产品中。

1 系统整体设计方案
基于NAND Flash的数据存储系统结构框图如图1所示。

本文采用Samsung公司的NAND Flash芯片K9F4GOSUOA作为主要存储器件,控制器件使用Atmel公司的ATmega162和Xilinx公司Spartan-3E系列的XC3S500E,结合对NAND Flash的读、写、擦除等操作进行时序配置。A/D转换芯片使用Maxim公司的MAX1308。另外,为实现通过USB总线将数据从采集设备传送至PC,采用FTDI公司的FT245R芯片作为USB2.0接口控制器;并以LabVIEW为平台设计开发了专用“多通道数据分析软件”,用于对存储系统中数据后期的分析与处理。

2 NAND Flash阵列式存储原理
Flash存储器编程是以页为单位,单片NAND Flash的单页编程操作时,命令锁存信号CLE向端口写入编程操作命令,地址锁存信号ALE写入操作块地址,并传输2 KB数据到数据寄存器后,Flash进入编程阶段。此时其端口R/B信号被拉低,显示Flash正处于忙工作状态,直到编程结束,这段时间系统不能对该Flash再进行任何操作,一般该阶段典型的时间为200μs。如果使用单片Flash存储器进行存储,则需等待编程结束后才能再写入数据。这样大量的时间耗费在编程过程中,极大限制了系统存储速度的提高。
为提高系统的存储容量和存储速度,系统使用8片NAND Flash存储器,每4片为一组构成一个总线宽度为8位的存储阵列。控制信号中除设置独立的片选信号CE外,其他的控制信号为8片共用;两组Flash共用数据总线,存储数据时先对第一组Flash进行存储操作,待第一组存储完毕后再对第二组进行数据存储操作。Flash阵列式存储结构图如图2所示。


由以上分析可以看出,Flash存储数据的过程由写地址命令、数据传输以及Flash编程阶段组成。为提高系统整体的存储速度,减少系统等待时间,根据NAND Flash存储器的特点,借鉴时分多路复用技术,设计了Flash存储阵列,即利用上一片Flash的编程时间对下一片Flash
进行操作,将数据加载到该片数据寄存器中,以此类推实现四级的流水线。这样整个系统每个时刻都能对Flash加载数据,保证了数据存储的连续性。
时分多路复用(Time Division Multiplexing,TDM)是按传输信号的时间进行分割的,它使不同的信号在不同的时间内传送,将整个传输时间分为许多时间间隔,每个时间片被一路信号占用,这样既可以保证各传输信号的相互独立,又提高了系统的传输效率。借鉴该原理,可以将Flash的编程时间看成一个固定的时间段,将这个时间段分成4个时间片,在这4个时间片上分别对Flash阵列的一个模块中的4个Flash加载数据,输入存储系统的高速数据流看作是以传输一组数据所需时间的一个时间片。
具体的操作如下:首先加载数据到第1片Flash存储器中,该Flash进入编程状态;在第1片Flash的编程时段内,对第2片Flash进行数据加载操作;当第2片进入编程状态时,再对第3片进行数据加载操作;依次执行下去,待一次整体操作完成后4片Flash都已加载完数据。此时,第1片Flash的编程已经完成,处于准备就绪状态,可以写入新的数据,由此可以等效为Flash存储器的编程时间为0。这样就可以实现Flash阵列的连续传输数据,提高系统的整体速度。
多片Flash时分多路复用式数据存储原理如图3所示。

3 系统硬件实现
系统采用了Xilinx公司的FPGA进行SOPC开发,处理器选用了MicroBlaze软核,并配置相应的参数使标准IP核适应用户所设计的系统,结合外围电源电路、USB接口电路、程序配置电路,构成了一套稳定的数据存储系统。
3.1 FPGA片上系统的实现
FPGA程序主要的功能是:软件控制启动存储,在控制逻辑的作用下将前端A/D转换之后的数据先存入内部FIFO缓存中,同时启动DMA将缓存中的数据存储到外部NAND Flash存储阵列中。本文利用VHDL语言编写程序,在FPGA芯片上实现了数据的高速存储和传输控制。
3.2 USB接口电路模块
USB器件主要用于实现SOPC系统在联机模式下与主机通信以及数据的传输。USB芯片使用由FTDI公司推出的FT245R,该接口能够将USB接口信号转换为8位并行信号,上传至时钟频率为150 MHz的MicroBlaze处理器进行分析处理;并将处理器发送的数据转换成标准的USB接口数据传向PC机,完成SOPC系统与PC机之间的通信。USB接口电路如图4所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top