一种基于FPGA的NANDFlash容错系统的制作方法_2

文档序号:9922730阅读:来源:国知局
系列下的MT29F8G16。FPGA 和 MT29F8G16 通过 8 根控制信号线相连,分别为 CLE,ALE,CE,WE,RE,WP,R/B和一个16位的1 口。CLE是命令锁存信号,ALE是地址锁存信号,CE是片选信号,WE是写使能信号,RE是读使能信号,WP是写保护信号,R/B是状态信号(空或忙)。16位的1 口为地址、数据和命令时分复用总线。
[0024]如图3所示,Flash坏块管理子系统对Flash坏块的容错分为坏块检测、逻辑区域的划分和地址映射表的更新。开始坏块检测时,通过FPGA遍历Flash的所有块,查询每个块第一页第一个512字节对应spare area的第6个byte,若为非Oxff,则为出厂坏块。再对其他好块分别进行擦除、写入和读取操作,若擦除后写入和读取的数据一致,则标记为好块,否则标记为坏块。然后,将每块Flash划分为3个逻辑区域,分别为映射好块区、坏块区和信息存储区,信息存储区从好块区选取。检测完毕后,更新地址映射表,将所有好块的物理地址映射到好块区,所有坏块的物理地址映射到坏块区,并将地址映射表存储到信息存储区。
[0025]如图4所示,USB通信子系统包括USB控制芯片。USB控制芯片选用CYPRESS的CYUSB3014,该芯片是基于ARM的USB3.0外设控制芯片,选择同步Slave FIFO从机方式实现卩卩64对0¥1^83014的控制,采用19.2MHz无源晶振为其提供时钟输入。采用32MHz晶振作为看门狗定时器,用于中断USB控制芯片内部的ARM内核,自动唤醒休眠模式下的USB控制芯片和复位ARM内核。FPGA和CYUSB3014通过11根控制信号线相连。分别为IFCLK ,FLAGA ,FLAGB,FLAGC,FLAGD/SLCS#,SLOE,SLRD,SLffR,PKTEND,FD[ 15:0],FIF0ADR[ 1:0]。IFCLK为通信接口的时序时钟,由USB控制芯片提供;FLAGA?FLA⑶为USB控制芯片内部的FIFO状态管脚,用于指示FIFO的当前状态;SLCS#为Slave FIFO的片选信号,低电平有效;FD[ 15:0]为16位双向驱动数据总线,用于FPGA和USB接口的数据交换;FIF0ADR[ 1: O]用于选择与FD数据总线通信的端点地址;SLOE为使能信号,高电平时使能数据总线H)的输出;SLRD和SLWR为读写选通信号,控制数据的流向。PKTEND用于选择数据包的长度,置低可传零长度或短长度数据包。
[0026]FPGA通过USB通信子系统和上位机进行通信,一方面,可接收上位机发送的控制指令并执行,所述控制指令包括下载数据、读取数据、自动检测等。另一方面,Flash坏块管理子系统工作完成之后,FPGA可以通过USB通信子系统向上位机传输数据、使用信息等。
[0027]如图5所示,上位机通过USB3.0和USB通信子系统进行连接,其功能如下:
[0028](I)自动检测:点击自动检测按键,上位机通过USB通信子系统向FPGA发送自动检测控制信号,FPGA控制Flash坏块管理子系统对Flash阵列进行坏块检测、逻辑区域划分及建立地址映射表。
[0029](2)Flash阵列监测:执行完自动检测后,FPGA通过USB通信子系统把检测结果发送给上位机,并在上位机上显示Flash阵列的使用信息,包括好块区的空间大小、数据存储状态等O
[0030](3)数据下载:将需要存储的数据以文本的形式保存,点击数据下载按键,可以把文本数据下载到Flash阵列中。
[0031](4)数据读取:点击数据读取按键,可以从Flash阵列中读取存储的数据,并将数据保存到指定的文件夹中。
【主权项】
1.一种基于FPGA的NANDFlash容错系统,其特征在于,包括Flash坏块管理子系统、USB通信子系统和上位机。Flash坏块管理子系统由FPGA和Flash阵列组成,通过查询Flash在spare area的标志位检测出厂坏块,查询读、写和擦除操作的返回状态检测损耗坏块,并记录所有坏块的地址。将Flash分为3个逻辑区域,分别映射好块区、坏块区和信息存储区,并建立地址映射表,存储到信息存储区。FPGA作为核心控制器,通过USB通信子系统和上位机进行通信,可接收上位机发送的控制指令以及上传数据。通过上位机可以查询当前NANDFlash阵列的使用情况,包括好块区的空间大小、数据存储状态等,还可进行自动检测,更新地址映射表,并且可以读取Flash阵列中的存储数据以及将数据存储到Flash阵列中。2.根据权利要求1所述的一种基于FPGA的NANDFlash容错系统,其特征在于,所述Flash坏块管理子系统还包括FPGA配置电路和电源模块。电源模块用于将供电电压稳定到各个模块所需要的额定电压。FPGA配置电路和FPGA相连。FPGA选用的是Xilinx Virtex V芯片族中的XC5VLX330,FPGA配置电路选用的配置芯片为Platform Flash )(L系列下的XCF128XFT64C,选用40MHz晶振为其提供配置时钟,采用16位并行总线配置,配置方式选用从并配置,Is之内就可以完成系统配置。Flash阵列由16块Flash芯片组成,Flash芯片采用美光公司的NAND Flash系列下的MT29F8G16JPGA和MT29F8G16通过8根控制信号线相连,分别为CLE,ALE,CE,ffE,RE,WP,R/B和一个16位的1口 XLE是命令锁存信号,ALE是地址锁存信号,CE是片选信号,WE是写使能信号,RE是读使能信号,WP是写保护信号,R/B是状态信号(空或忙)。16位的1 口为地址、数据和命令时分复用总线。 所述Flash坏块管理子系统对Flash坏块的容错分为坏块检测、逻辑区域的划分和地址映射表的更新。开始坏块检测时,通过FPGA遍历Flash的所有块,查询每个块第一页第一个512字节对应spare area的第6个byte,若为非Oxff,贝Ij为出厂坏块。再对其他好块分别进行擦除、写入和读取操作,若擦除后写入和读取的数据一致,则标记为好块,否则标记为坏块。然后,将每块Flash划分为3个逻辑区域,分别为映射好块区、坏块区和信息存储区,信息存储区从好块区选取。检测完毕后,更新地址映射表,将所有好块的物理地址映射到好块区,所有坏块的物理地址映射到坏块区,并将地址映射表存储到信息存储区。3.根据权利要求1所述的一种基于FPGA的NANDFlash容错系统,其特征在于,所述USB通信子系统包括USB控制芯片。USB控制芯片选用CYPRESS的CYUSB3014,该芯片是基于ARM的USB3.0外设控制芯片,选择同步Slave FIFO从机方式实现FPGA对CYUSB3014的控制,采用19.2MHz无源晶振为其提供时钟输入。采用32MHz晶振作为看门狗定时器,用于中断USB控制芯片内部的ARM内核,自动唤醒休眠模式下的USB控制芯片和复位ARM内核。FPGA和CYUSB3014通过11根控制信号线相连。分别为 IFCLK,FLAGA,FLAGB,FLAGC,FLAGD/SLCS#,SLOE,SLRD,SLffR,PKTEND,FD[ 15:0],FIF0ADR[1:0]。IFCLK为通信接口的时序时钟,由USB控制芯片提供;FLAGA?FLAGD为USB控制芯片内部的FIFO状态管脚,用于指示FIFO的当前状态;SLCS#为Slave FIFO的片选信号,低电平有效;FD[15:0]为16位双向驱动数据总线,用于FPGA和USB接口的数据交换;FIF0ADR[ 1:0]用于选择与H)数据总线通信的端点地址;SLOE为使能信号,高电平时使能数据总线FD的输出;SLRD和SLWR为读写选通信号,控制数据的流向。PKTEND用于选择数据包的长度,置低可传零长度或短长度数据包。 FPGA通过USB通信子系统和上位机进行通信,一方面,可接收上位机发送的控制指令并执行,所述控制指令包括下载数据、读取数据、自动检测等。另一方面,Flash坏块管理子系统工作完成之后,FPGA可以通过USB通信子系统向上位机传输数据、使用信息等。4.根据权利要求1所述的一种基于FPGA的NAND Flash容错系统,其特征在于,所述上位机通过USB3.0和USB通信子系统进行连接,其功能如下: (1)自动检测:点击自动检测按键,上位机通过USB通信子系统向FPGA发送自动检测控制信号,FPGA控制Flash坏块管理子系统对Flash阵列进行坏块检测、逻辑区域划分及建立地址映射表。 (2)Flash阵列监测:执行完自动检测后,FPGA通过USB通信子系统把检测结果发送给上位机,并在上位机上显示Flash阵列的使用信息,包括好块区的空间大小、数据存储状态等。 (3)数据下载:将需要存储的数据以文本的形式保存,点击数据下载按键,可以把文本数据下载到Flash阵列中。 (4)数据读取:点击数据读取按键,可以从Flash阵列中读取存储的数据,并将数据保存到指定的文件夹中。
【专利摘要】本发明公开了一种基于FPGA的NAND Flash容错系统,包括Flash坏块管理子系统、USB通信子系统和上位机。Flash坏块管理子系统由FPGA和Flash阵列组成,通过查询Flash在spare area的标志位检测出厂坏块,查询读、写和擦除操作的返回状态检测损耗坏块,并记录所有坏块的地址。将Flash分为3个逻辑区域,分别为映射好块区、坏块区和信息存储区,并建立地址映射表,存储到信息存储区。FPGA作为核心控制器,通过USB通信子系统和上位机进行通信,可接收上位机发送的控制指令以及上传数据。通过上位机可以查询当前NAND Flash阵列的使用情况,包括好块区的空间大小、数据存储状态等,还可进行自动检测,更新地址映射表,并且可以读取Flash阵列中的存储数据以及将数据存储到Flash阵列中。
【IPC分类】G11C29/54, G11C29/56
【公开号】CN105702300
【申请号】CN201610015050
【发明人】张晓峰, 史治国, 陈积明
【申请人】浙江大学
【公开日】2016年6月22日
【申请日】2016年1月11日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1