基于FPGA和NAND Flash的嵌入式存储系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA和NAND Flash的嵌入式存储系统设计
吴凡
【摘要】为了有效解决恶劣工作环境下对体积有特殊要求的数据存储问题,设计了基于FPGA和NAND Flash的小尺寸嵌入式存储系统.系统选用FPGA为控制核心,以NAND Flash作为存储介质,采用LVDS接口存储和回放数据,通过以千兆网与计算机通信,以文件方式管理数据,并采用坏块管理和ECC技术保证数据完整性.实测表明,该系统具有高带宽、体积小等特点,同时具有实时存储、回放、加载、卸载和管理功能,并可在恶劣环境下稳定工作.
【期刊名称】《电子科技》
【年(卷),期】2016(029)003
【总页数】5页(P97-101)
【关键词】存储系统;FPGA;NAND Flash;文件管理;千兆网
【作者】吴凡
【作者单位】成都蓉威电子技术开发公司开发部,四川成都610091
【正文语种】中文
【中图分类】TP316.85
Abstract A small size embedded storage system based on FPGA and NAND Flash is designed for special data storage requirements in size under harsh working conditions.The system selects FPGA as the control core,NAND flash as the storage medium,and LVDS interface for data
storages and municates with computers are performed via gigabit network,and data are managed as files with data integrity guaranteed by bad-block management and ECC technology.The experimental results show that the system has the characteristics of high bandwidth and small size,is capable of real-time
storage,replay,loading,unloading and management,and can work steadily in the harsh environment.
Keywords storage system;FPGA;NAND Flash;file management;gigabit network
数据采集系统在进行数据采集和信号处理的同时,通常需要将关键数据存储下来用于监控设备的工作状态,遇到问题后能通过这些数据复原当时的工作场景,为分析问题和解决问题提供依据。

通常需要存储系统具有容量大、速度快、以文件形式管理数据、体积小等特点。

根据这一需求,本文提供了一套完整的数据存储、加载、卸载和回放软硬件方案;本方案具有体积小、存储速度快、自动化程度高和工作温度广等优点。

系统以Xilinx公司Virtex-5系列FPGA为主控芯片,Micron公司的NAND Flash芯片MT29F64G08作为文件存储介质,Marvell公司的千兆网物理层控制器芯片88E1111作为网络桥接芯片与计算机进行通信。

系统采用FPGA夹层卡(FPGA Mezzanine Card,FMC)结构,长不超过80 mm,宽不超过70 mm,高不超过15 mm,采用8片NAND Flash,总存储容量为64 GB,采用TSOP封装,方便利用FMC插座背面的空间,存储数据接口和回放数据接口均采用LVDS接口。

系统以1片FPGA作为控制核心,LVDS接口控制、千兆网接口控制、NAND Flash控制(坏块管理、ECC和损耗平衡)和文件管理都在FPGA中完成。

系统的设计功能为:(1)存储。

接收前端信号采集设备的输入数据,自动或在主控软件控制下按
照文件方式将数据写入NAND Flash;(2)卸载。

通过千兆网和PC机连接,接收主控命令,卸载指定文件;(3)加载。

通过千兆网和PC机连接,从PC机加载文件;(4)回放。

将主控指定的文件从NAND Flash中读出,回放到信号处理设备,模拟数据存储场景,用来分析定位系统问题。

系统硬件原理框图,如图1所示。

其中LVDS是存储数据和回放数据的接口,千兆网是和计算机连接的接口,接收主控
指令,加卸载文件。

FPGA芯片选用Xilinx公司的XC5VLX50T,含有28 800个触发器,28 800个6输入查找表,60个36 kB块存储器,4个千兆网介质访问控制(Media Access Control,MAC)硬核,360个IO管脚[1]。

千兆以太网的MAC层由FPGA内部的MAC硬核实现[2],不占用逻辑资源,PHY芯片选用Marvell公司的88E1111,可支持1000BASE-T、100BASE-TX、
NAND Flash选用Micron公司的MT29F64G08AJABA,单片容量为8 GB。

方案
使用的Flash芯片内部分为两片,每一片通过芯片的片选信号使能,每一片为一个target,每个target有两个逻辑单元(Logical Unit,LUN),每个LUN有两个PLANE,每个PLANE有2 048个块,每一块中有128页,每一页可以存储4 096 Byte数据[3]。

8片NAND Flash组成阵列,同时进行读、写或擦除操作。

选用Cypress公司的非易失性随机访问存储器(Non-Volatile Random Access Memory,NVRAM)芯片CY14B104M存储文件信息表,具有掉电保存功能。

系统加电工作时,NVRAM的读写速度与普通SRAM相当,NVRAM检测到系统电压低于
门限电压时,通过板上电容供电将信息存入内部非易失性存储单元。

系统FPGA包含LVDS接口控制、千兆网接口控制、文件处理和NAND Flash控
制4个模块,文件处理是FPGA的控制中心,如图2所示。

存储数据和回放数据通过LVDS接口进入FPGA,分别使用8路数据、1路使能和1路时钟,时钟频率125 MHz,双沿传输方式,接口数据速率为250 MB·s-1。

LVDS接
口控制通过IBUFDS和OBUFDS原语完成LVDS差分信号和单端信号的转换,通过IDDR和ODDR原语完成DDR信号和SDR信号的转换。

接收存储数据时通过IDELAY原语调整数据线和时钟线的延时值以进行稳定采样[4-5],通过存储FIFO送给文件管理模块,回放数据从回放FIFO读出,转换为DDR信号后通过LVDS接口输出。

千兆网接口控制模块在系统复位后配置FPGA内部MAC硬核和外部PHY芯片的寄存器,采用UDP协议和计算机主控软件通信。

接收时解析UDP包,将主控计算机命令封装成为带包头和包尾标识的数据包通过接收FIFO发送到文件管理模块。

当判断发送FIFO非空时,从发送FIFO中读出数据包,填入MAC地址、网络类型等数据,构造UDP包,写入MAC硬核,发送到计算机。

文件管理模块有两个主要功能:命令解析和文件管理。

(1)命令解析。

命令解析采用主状态机加多个从状态机方式,完成命令解析、命令执行和命令回应等过程。

主要命令有上报状态、查询文件列表、文件加载、文件卸载和文件回放等,其命令流程如图3所示。

(2)文件管理。

文件管理主要通过在NVRAM中维护文件信息表来管理NAND Flash中的数据。

文件信息表分为系统信息区和文件信息区两部分,如图4所示。

系统信息区存放存储系统的系统信息,包括存储总容量、已用容量、已有文件数和已用地址等。

在文件信息区中按照文件序号存放各个文件的详细信息,包括文件有效标志、文件名、文件创建时间、文件起始地址、文件大小、文件关闭时间和文件结束地址等。

系统信息区占用64 Byte,每个文件占用64 Byte,NVRAM大小为512 kB,可以存放8 000个以上文件。

文件地址是逻辑地址,单位为64 kB,需通过Flash控制模块映射为物理地址。

NAND Flash控制模块主要功能有控制调度、坏块管理[6]、地址映射[7]、数据缓存、错误检查和纠正(Error Correcting Code,ECC)校验[8-9]以及接口时序控制,功
能框图如图5所示。

单片NAND Flash一页大小为4 kB,一页的平均编程时间为230 μs,由此计算单片NAND Flash的写入速度只能达到17.8 MB·s-1,为提高速度,系统采用以下3种技术:
(1)多Plane同时写。

因为NAND Flash每个LUN含有2个Plane,每个Plane有独立的数据寄存器,所以可一次传输2页数据(Plane0和Plane1),然后下发命令同时编程,相当于写Flash速度提升为单Plane写的两倍,如图6所示;
(2)Target流水技术,由于一片NAND Flash含有两个Target,共用一路数据通道,但每个Target均有独立的片选信号CS#和准备好信号R/B#,因此可先传输Target1的2页数据,Target1开始编程,然后传输Target2的两页数据,Target2开始编程,再切换回Target1,如此流水操作。

传输Target1数据耗时约为224 μs,与Target2的编程时间230 μs相当,相当于通过Target流水技术基本消除了数据传输时间,如图7所示;
(3)并行总线处理技术[10],同时对8片Flash进行读写,相当于写速度提升为单片Flash写速度的8倍。

从计算机选择一个文件test.ld加载到存储系统,加载速度超过80 MB·s-1,加载完成后,选择该文件卸载到计算机,卸载速度超过40 MB·s-1,通过Beyond Compare软件比较卸载后的文件和原始文件,两者完全一致,说明文件加载和卸载功能正确,如图8所示。

存储设备进入存储模式后,测试设备的FPGA逻辑产生存储测试数据,通过ChipScope监控测试设备,存储测试数据以18 Byte为1个数据包,最后4 Byte为从零开始逐一递增的计数器,每个数据包加一,停止存储后,从文件列表中观测可知:存储文件名为“store002”,存储起始时间为“2013年5月3日7点59分57秒”,存储结束时间为“2013年5月3日8点0分11秒”,存储文件长度为3 591 492
kB,计算后可得存储速度为233.8 MB·s-1,如图9所示。

选择文件“store002”进行回放,存储系统读取该文件数据,通过回放接口输出到测试设备。

测试设备的FPGA逻辑根据测试样式产生本地标准数据,与回放数据进行比对,并将比对结果上报主控软件。

回放完成后观测输出状态窗口,回放错误计数为0,说明文件存储和回放功能正确,如图10所示。

本文介绍了嵌入式存储系统基于FPGA技术和NAND Flash芯片构建,采用文件方式管理数据。

通过在某型系统中实用表明,该系统体积小巧、使用方便、存储速度快,可在-40~+70 ℃温度下长时间稳定工作,能有效解决恶劣工作环境下对体积有苛刻要求的数据存储问题,并可用于车载和机载数据存储场合,且具备较高的实用价值。

相关文档
最新文档