APP下载

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

2016-04-14

电子科技 2016年3期
关键词:存储系统

吴 凡

(成都蓉威电子技术开发公司 开发部,四川 成都 610091)



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

吴凡

(成都蓉威电子技术开发公司 开发部,四川 成都610091)

摘要为了有效解决恶劣工作环境下对体积有特殊要求的数据存储问题,设计了基于FPGA和NAND Flash的小尺寸嵌入式存储系统。系统选用FPGA为控制核心,以NAND Flash作为存储介质,采用LVDS接口存储和回放数据,通过以千兆网与计算机通信,以文件方式管理数据,并采用坏块管理和ECC技术保证数据完整性。实测表明,该系统具有高带宽、体积小等特点,同时具有实时存储、回放、加载、卸载和管理功能,并可在恶劣环境下稳定工作。

关键词存储系统;FPGA;NAND Flash;文件管理;千兆网

Design of Embedded Storage Device Based on FPGA and NAND Flash

WU Fan

(Development Department,Chengdu Electronic Technology Development Company,Chengdu 610091,China)

AbstractA 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 replay.Communicates 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.

Keywordsstorage system;FPGA;NAND Flash;file management;gigabit network

数据采集系统在进行数据采集和信号处理的同时,通常需要将关键数据存储下来用于监控设备的工作状态,遇到问题后能通过这些数据复原当时的工作场景,为分析问题和解决问题提供依据。通常需要存储系统具有容量大、速度快、以文件形式管理数据、体积小等特点。根据这一需求,本文提供了一套完整的数据存储、加载、卸载和回放软硬件方案;本方案具有体积小、存储速度快、自动化程度高和工作温度广等优点。系统以Xilinx公司Virtex-5系列FPGA为主控芯片,Micron公司的NAND Flash芯片MT29F64G08作为文件存储介质,Marvell公司的千兆网物理层控制器芯片88E1111作为网络桥接芯片与计算机进行通信。

1系统设计思路

系统采用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中读出,回放到信号处理设备,模拟数据存储场景,用来分析定位系统问题。

2硬件设计

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

图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、

10BASE-T,支持GMII、RGMII、SGMII、TBI、RTBI等接口,通过MDIO接口由FPGA进行配置。

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检测到系统电压低于门限电压时,通过板上电容供电将信息存入内部非易失性存储单元。

3FPGA设计

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

图2 FPGA原理框图

3.1LVDS接口控制

存储数据和回放数据通过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接口输出。

3.2千兆网接口控制

千兆网接口控制模块在系统复位后配置FPGA内部MAC硬核和外部PHY芯片的寄存器,采用UDP协议和计算机主控软件通信。接收时解析UDP包,将主控计算机命令封装成为带包头和包尾标识的数据包通过接收FIFO发送到文件管理模块。当判断发送FIFO非空时,从发送FIFO中读出数据包,填入MAC地址、网络类型等数据,构造UDP包,写入MAC硬核,发送到计算机。

3.3文件管理

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

(1)命令解析。命令解析采用主状态机加多个从状态机方式,完成命令解析、命令执行和命令回应等过程。主要命令有上报状态、查询文件列表、文件加载、文件卸载和文件回放等,其命令流程如图3所示。

图3 命令解析流程图

(2)文件管理。文件管理主要通过在NVRAM中维护文件信息表来管理NAND Flash中的数据。文件信息表分为系统信息区和文件信息区两部分,如图4所示。

图4 文件信息表

系统信息区存放存储系统的系统信息,包括存储总容量、已用容量、已有文件数和已用地址等。在文件信息区中按照文件序号存放各个文件的详细信息,包括文件有效标志、文件名、文件创建时间、文件起始地址、文件大小、文件关闭时间和文件结束地址等。系统信息区占用64 Byte,每个文件占用64 Byte,NVRAM大小为512 kB,可以存放8 000个以上文件。文件地址是逻辑地址,单位为64 kB,需通过Flash控制模块映射为物理地址。

3.4NAND Flash控制

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

图5 NAND Flash控制模块原理框图

单片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所示;

图6 NAND flash结构

(2)Target流水技术,由于一片NAND Flash含有两个Target,共用一路数据通道,但每个Target均有独立的片选信号CS#和准备好信号R/B#,因此可先传输Target1的2页数据,Target1开始编程,然后传输Target2的两页数据,Target2开始编程,再切换回Target1,如此流水操作。传输Target1数据耗时约为224 μs,与Target2的编程时间230 μs相当,相当于通过Target流水技术基本消除了数据传输时间,如图7所示;

图7 Target流水技术

(3)并行总线处理技术[10],同时对8片Flash进行读写,相当于写速度提升为单片Flash写速度的8倍。

4系统测试和数据分析

4.1文件加卸载测试

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

图8 文件加卸载测试

4.2文件存储回放测试

存储设备进入存储模式后,测试设备的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所示。

图9 文件存储测试

选择文件“store002”进行回放,存储系统读取该文件数据,通过回放接口输出到测试设备。测试设备的FPGA逻辑根据测试样式产生本地标准数据,与回放数据进行比对,并将比对结果上报主控软件。回放完成后观测输出状态窗口,回放错误计数为0,说明文件存储和回放功能正确,如图10所示。

图10 文件回放测试

5结束语

本文介绍了嵌入式存储系统基于FPGA技术和NAND Flash芯片构建,采用文件方式管理数据。通过在某型系统中实用表明,该系统体积小巧、使用方便、存储速度快,可在-40~+70 ℃温度下长时间稳定工作,能有效解决恶劣工作环境下对体积有苛刻要求的数据存储问题,并可用于车载和机载数据存储场合,且具备较高的实用价值。

参考文献

[1]Xilinx Corporation.Virtex-5 FPGA user guide[M].USA:Xilinx Corporation,2012.

[2]Xilinx Corporation.Virtex-5 FPGA embedded tri-Mode ethernet MAC user guide[M].USA:Xilinx Corporation,2011.

[3]Micron Corporation.NAND flash memory MT29F64G08AJABA[M].USA:Micron Corporation,2009.

[4]李大鹏,李雯,王晓华.基于FPGA的高速LVDS接口的实现[J].航空计算技术,2012,42(5):115-118.

[5]张小军,廖风强,王录涛,等.多通道高速串行LVDS信号解串器设计[J].电子测量技术,2013,36(4):63-67.

[6]张胜勇,高世杰,吴志勇,等.基于FPGA的NAND Flash坏块处理方法[J].计算机工程,2010,36(6):239-243.

[7]陆林燕,王鲁静,郑正奇.NAND Flash编程实现研究分析[J].计算机技术与发展,2008,18(3):118-124.

[8]邢开宇,曹晓曼,方火能.基于FPGA和NAND Flash的存储器ECC设计与实现[J].电子科技,2012,25(10):70-73.

[9]吕小微.基于FPGA的NAND Flash ECC校验[J].电子科技,2010,24(6):34-37.

[10]朱知博.基于NAND Flash的高速大容量存储系统设计[J].现代电子技术,2011,34(8):170-173.

中图分类号TP316.85

文献标识码A

文章编号1007-7820(2016)03-097-06

doi:10.16180/j.cnki.issn1007-7820.2016.03.025

作者简介:吴凡(1981—),男,硕士,工程师。研究方向:嵌入式存储系统。

收稿日期:2015- 07- 27

猜你喜欢

存储系统
分布式存储系统在企业档案管理中的应用
天河超算存储系统在美创佳绩
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统
基于电池管理系统的数据存储系统设计