0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过采用EP2C35F672器件实现NAND FLASH控制器的设计

电子设计 来源:郭婷 作者:电子设计 2019-08-09 08:02 次阅读

1 引言

在便携式电子产品如U盘、MP3播放器、数码相机中,常常需要大容量、高密度的存储器,而在各种存储器中,NAND FLASH以价格低、密度高、效率高等优势成为最理想的器件。但NAND FLASH的控制逻辑比较复杂,对时序要求也十分严格,而且最重要的是NAND FLASH中允许存在一定的坏块(坏块在使用过程中还可能增加),这就给判断坏块、给坏块做标记和擦除等操作带来很大的难度,于是就要求有一个控制器,使系统用户能够方便地使用NAND FLASH,为此提出了一种基于FPGA的NAND FLASH控制器的设计方法,并用VHDL给予实现,Modelsim得出仿真结果,并在ALTERA公司的EP2C35F672器件中得到验证。FPGA与NAND FLASH接口图如图1所示。

通过采用EP2C35F672器件实现NAND FLASH控制器的设计

2 NAND FLASH操作

NAND FLASH器件的管脚分为控制信号、I/O二类,地址和数据是复用I/O管脚。通常NAND FLASH器件包括一定数目BLOCK,每个BLOCK包括一定数目的PAGE,每个NAND FLASH器件把BLOCK,PAGE按照行列地址进行寻址,基于这种特殊的结构。

2.1 READ ID

NAND FLASH器件ID包括:Manufacture ID,device ID以及容量大小,这些重要的信息是判断NAND FLASH的重要凭证,因此将这些信息读出来加以判断就显得特别重要。在CLE为高,WE#上升沿,在I/O输入90H命令让NAND FLASH进入读ID状态,接着在ALE为高,WE#上升沿,在I/O输入00H地址,在等待tWHR将RE#置为读,在RE#连续4个上升沿将ID读出。仿真图如图2所示。

通过采用EP2C35F672器件实现NAND FLASH控制器的设计

2.2 判断坏块

NAND FLASH作为一种特殊的储存器件,内部集成电路使得BLOCK与BLOCK是相互独立的,因此一定数目坏块的存在不会影响其他BLOCK。但坏块总数是有一定的限制的,超过一定的数目后器件将认为不能再使用。在出厂前厂家会在器件的每个BLOCK的第一页和第二页的列地址为2048标注上坏的信息,FFh代表此BLOCK是好,非FFh代表此BLOCK是坏。但是这些重要信息在执行Erase和Programming命令的时候会被擦除掉,因此,我们在做这些操作之前应该将坏块识别出来如图3所示,并加以标注或者用好的块来代替,以方便以后的访问。随着使用时间的推移,坏块的数目还会增加,因此我们必须随时更新坏块链表。坏块识别时序仿真图如图4所示。

通过采用EP2C35F672器件实现NAND FLASH控制器的设计

通过采用EP2C35F672器件实现NAND FLASH控制器的设计

3擦除操作

一般芯片进行PROGRAM/ERASE的次数是100 000 cycles,第一个BLOCK次数更多,一般可用于存放boot code或者重要的信息。由于擦除操作是以BLOCK为基准,也就是每执行一次擦除操作将会擦除指定的BLOCK,所以在执行擦除时必须注意共享区域里的重要信息如坏块标识、ECC校验等。以免被擦除掉,擦除掉了及时恢复,擦除操作仿真如图5所示。

通过采用EP2C35F672器件实现NAND FLASH控制器的设计

4编程操作及其他操作

编程操作和擦除操作相似,只不过编程操作是以页为单位,在执行编程操作时同样也要注意共享区域里的重要信息以免被覆盖掉,重要信息被覆盖后要及时恢复。其他操作如复位还有有些芯片厂家各自新的操作等,但总体来说主流芯片都支持以上几种操作。

5 结 语

在实际应用中,使用ALTERA公司的Cyclone2 FP-GA器件进行设计,设计输入采用VHDL来完成,实现了上述的NAND FLASH控制器接口电路。此外,由于采用了通用性设计思想,可以对不同厂家不同的芯片进行控制和操作,具有一定的通用性


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593336
  • 控制器
    +关注

    关注

    112

    文章

    15245

    浏览量

    171264
  • 仿真
    +关注

    关注

    50

    文章

    3873

    浏览量

    132171
收藏 人收藏

    评论

    相关推荐

    EP2S60F672详细资料

    EP2S60F672详细资料哪位大侠有啊,给我发一个
    发表于 08-11 22:14

    C8051F35X单片机内部Flash存储的擦写方法

    【作者】:陈富安;张莹;【来源】:《电子设计工程》2010年02期【摘要】:为避免在程序运行时向单片机内置的Flash写入数据导致复位,采用调用锁定与关键码的操作方法对C8051F35X型单片机
    发表于 04-24 09:45

    标准NAND FLASH控制器

    NAND FLASH Controller IP Core标准NAND FLASH Controller标准NAND
    发表于 02-17 11:11

    关于Altera DE2C35F672C6 视频图像采集的问题

    想问下 怎样 用 Altera DE2C35F672C6 进行视频图像采集。一个摄像头采集,一个液晶显示采集的图像?谢谢各位啊 新手不会,希望能附上工程{:4:}
    发表于 04-27 21:57

    如何通过单片机控制 Nand Flash

    是前者。(为什么呢?因为该单片机集成了蓝牙,该设备同时需要可以在上位机显示实时数据。)问题来了:1,如何实现通过单片机写,通过控制器读的切换?互相之间不能影响。
    发表于 09-24 14:09

    标准NAND FLASH控制器/超高速NAND FLASH阵列控制器

    NAND FLASH Controller IP Core标准NAND FLASH Controller标准NAND
    发表于 03-01 18:49

    DE2 FPGA开发板出手 Altera官方正品 EP2C35F672C8N 九成新,配件齐全 698元

    `DE2 FPGA开发板出手 Altera官方正品 EP2C35F672C8N 九成新,配件齐全 698元,可以小刀。南京地区可以当面交易。功能齐全,无任何问题,有兴趣的请联系QQ:865021481`
    发表于 04-29 21:43

    请问单片机如何控制nand flash

    的初步计划是前者。(为什么呢?因为该单片机集成了蓝牙,该设备同时需要可以在上位机显示实时数据。)问题来了:1,如何实现通过单片机写,通过控制器读的切换?互相之间不能影响。
    发表于 08-29 09:40

    2410 NAND FLASH控制器自身的ECC模块

    在2410的NAND控制器里有硬件ECC模块,看2410的手册中是这么介绍的:ECC generator block executes the followings:1. When MCU
    发表于 05-20 02:32

    浅析U-Boot NAND FLASH驱动

    _scan()实现NAND FLASH初始化工作。4.其中board_nand_init()实现S3C
    发表于 07-08 03:56

    EP2S60F484I4N 原厂直供***

    EP2S60F484I3N国宇航芯特价订货EP2S60F484C5N国宇航芯特价订货EP4S40G2F40I2N国宇航芯特价订货EP4S40G2F40I3N国宇航芯特价订货
    发表于 01-06 09:07

    什么是NAND Flash?如何去使用NAND Flash控制器

    什么是NAND FlashNAND Flash在嵌入式系统中的作用是什么?如何去使用NAND Flas
    发表于 06-21 06:56

    一种在片上系统中实现Nand Flash控制器的方法

    一种在片上系统中实现Nand Flash控制器的方法     摘要:Nand
    发表于 01-12 10:15 871次阅读
    一种在片上系统中<b class='flag-5'>实现</b><b class='flag-5'>Nand</b> <b class='flag-5'>Flash</b><b class='flag-5'>控制器</b>的方法

    基于PicoBlaze的Nand Flash控制器实现

    提出了一种基于 PicoBlaze 的Nand Flash控制器实现方法。PicoBlaze是Xilinx公司开发的8位嵌入式微控制器IP
    发表于 06-13 15:48 41次下载
    基于PicoBlaze的<b class='flag-5'>Nand</b> <b class='flag-5'>Flash</b><b class='flag-5'>控制器</b>的<b class='flag-5'>实现</b>

    NAND Flash控制器的设计与验证

    Flash控制器正成为一种趋势。 本文讨论了Flash Memory的两种主流实现技术即NAND Fl
    发表于 03-29 10:07 19次下载
    <b class='flag-5'>NAND</b> <b class='flag-5'>Flash</b><b class='flag-5'>控制器</b>的设计与验证