某车载数据记录设备的高速大容量存储系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
某车载数据记录设备的高速大容量存储系统设计
【摘要】该数据记录设备的存储系统采用FPGA为控制核心,存储介质选用NAND FLASH 存储芯片,采用乒乓工作思想,利用并行处理技术和流水线技术实现了多片低速FLASH时高速数据的存储,提高了整个系统的存储容量和存储速度。
【关键词】并行处理;流水线思想;NAND;FLASH;FPGA
Abstract:In the recording system of the data recording device,FPGA is taken as the control core and NAND FLASH as the storage medium. The application of parallel processing technology and pipeline technology makes high speed data storage achieved by several low speed flash ,which improves the storage capacity and speed of whole system.
Keywords:parallel processing technology;pipeline technology;NAND;FLASH;FPGA
数据记录设备由于它使用半导体存储芯片作为存储介质,所以其存储密度高、无转动部件、可靠性高、体积小、重量轻,因而逐渐成为车载的数据记录器的主流方案。闪速存储器(简称闪存)作为一种新兴的半导体存储器件,以其独有的特点得到了迅猛的发展,具有非易失、可靠性高、功耗小、寿命长、密度大、成本低、适应恶劣的环境,具有抗震动、抗冲击、温度适应范围宽等特点。
1.高速大容量存储系统设计
本设计采用高速大容量存储卡的组成机制和系统实现方案采用固态FLASH (存为存储介质,FPGA(现场可编程门阵列)为存储阵列的控制核心,针对外部高速数据的输入,实现用高密度、相对低速的FLASH存储器对高速数据的可靠存储。要实现数据的正常常通信,需要一个控制核心来控制众多的FLASH芯片,以便将接口和FLASH阵列内部的数据实现互传。它主要包括接口电路、中心逻辑控制电路FPGA、FLASH存储器、电压稳压模块电路等。
存储系统将采样的数据传给FLASH存储卡保存,完成数据的存储。FLASH 存储卡有一个高速的USB2.0接口,可以方便的和计算机之间进行数据交换。我们对存储卡的控制也都是通过USB接口实现的。存储系统的结构示意图如图1.1所示:
图1.1 存储系统结构示意图
设计将采用三星公司的K9WBG08U1M存储芯片。该芯片为NAND FLASH 芯片,工作在2.7V-3.6V电压下,有4GB的存储容量,内部由2个2GB的FLASH 构成,每片FLASH由8192个块组成,每块有64页,每页能存储(4096+128)
个字节的数据,页编程时间为200us,块擦除时间为1.5ms。
要实现低速模块对高速数据的处理,一般采用的是乒乓工作的原理。所谓乒乓处理,是指当设计的时序要求很高,低速器件满足不了高速输入的传输要求时,通过将数据进行串并转换,用多个操作模块并行处理、乒乓工作,从而达到多个低速器件共同完成对高速输入的分流。
按照操作FLASH的传统方法,存储完一片FLASH后,再进行下一片FLASH 的操作,这样最高存储速度也只是单片FLASH的存储速度即5.1MB/s,显然无法适用于高速数据传输存储的场合。通过并行处理技术可以很直观的提高存储速度,具体实现方法是:将N片低速FLASH芯片并联起来,使用相同的控制线、片选线和读写信号线,构成一个多位宽的FLASH组。这样N片FLASH并行工作,进行相同的操作,存储量可达到单片FLASH的N倍,所以理论上存储速度也是单片FLASH的N倍。
流水工作思想是一种控制FLASH阵列的结构示意、FLASH存储阵列、FLASH共享数据总线。借鉴这种技术在进行FLASH存储时,可以大大节省存储时间,提高存储速度。FLASH每页数据的加载时间和编程时间是器件本身所决定的,当加载完一页数据后,FLASH就进入忙状态,此时需要等待加载的数据自动编程,即将数据从寄存器中写入存储单元内,这期间不能进行其余的操作,当编程结束后,FLASH才恢复空闲状态,此后才能进行下一页数据的加载,然后再进行编程。因此如果可以善加利用编程时间,使FLASH在进行本页数据编程的同时去执行下一页数据的加载,这样便可节省存储时间,提高速度。加载完一页数据的时间约为102.5μs,最大编程时间为700μs,这样在每页的编程时间内可以完成7次的FLASH加载操作(700/102.5≈7)。
2.主机与存储板的通信桥梁
为了增强板卡使用的通用性,我们同时使用USB和CPCI总线接口做为主机和存储板之间的通信桥梁,以便在不同的使用环境下都能和主机实现有效的数据通信。
CY7C68013芯片提供了两种和外部交换数据的方式:可编程接口GPIF (General Programmable Interface)和Slave FIFOS,通过配置芯片的寄存器就可以选择其中一种方式。因为如果选用主方式,CY7C68013片内RAM太小,无法下载固件代码,还需另外设置片外扩展EPROM,增加了电路的复杂度,而且由于我们可以用FPGA来控制USB芯片,因此我们选择从方式工作访问比较灵活简单。
该系统需要两个驱动程序,即通用驱动和下载固件的驱动。通用驱动完成与外设和用户程序的通信及控制。而下载固件的驱动则只负责在外设连接USB总线后把特定的固件程序下载到FX2的RAM中。
3.存储板的电路设计
3.1 电源设计
底板可以提供3.3V、5V、+12V、-12V和接地引脚。12V、-12V电源插针只有一根,只能为每块板卡提供500mA的电流。由于FLASH、USB芯片都工作在3.3V,相应FPGA上的大部分I/0电压也为3.3V,因此我们通过J1接插头选择底板3.3V供电。FPGA内核的电压为1.2V,需要把3.3V电压转换成1.2V。电源模块电路图如图3.1所示。
图3.1 电源模块电路
此电源模块可以为系统提供3.3V电压标准电压,从而为系统正常运行提供保障。
3.2 FPGA和外部ROM的配置电路
FPGA是基于SRAM的可编程器件,掉电后FPGA上的配置信息全部丢失,所以FPGA构造的存储系统在每次上电后都依赖于外部存储器来配置才能实现对系统的控制,本课题采用XCF01SVO20作为外部ROM。配置电路图如图3.2所示。
3.3 高速存储芯片阵列电路
本课题采用流水线设计思想,对单片K9WBG08U1M FLASH芯片而言,存储速度最高可达5.1MB/s,4片速度可达20MB/s以上,完全满足设计要求。并行总线电路图连接如图3.3所示。
参考文献
[1]朱知博.基于NAND FLASH的高速大容量存储系统设计[J].现代电子技术,2011(08):170-173.
[2]刘成明,李新娥,张艳兵.基于FPGA 的存储测试系统的设计[J].山西电子技术,2011(4):1-2.
[3]杨海涛,苏涛.基于FPGA的高速大容量固态存储设备设计[J].国外电子元器件,2007(5):1-2.
沈小林,男,副教授,硕士生导师,研究方向:控制理论与控制工程,导航、制导与控制,检测技术与自动化装置。
刘长明,男,讲师,研究方向:控制理论与控制工程。