GD32 FATFS+FTL Nand解决方案
2024-11-06 来源:elecfans
1. 方案简介
Nand flash有非易失、存储容量大、寿命长等优点;同时具有存在坏块、擦除次数有限、易出现error bit的缺点;并且具有擦除以block(块)为单位,写入以page(页)为单位,读取以sector(512 byte)为单位的特点。
基于上述原因,对Nand flash的应用不仅要避免坏块、均衡块擦除次数、纠正error bit,而且需要按照其读写擦的特点进行应用。若没有一套管理软件针对nand的特性,则对其应用将非常困难。
FTL(Flash Transform Layer)是基于nand flash的管理算法软件,可解决上述提出的所有问题,将Nand flash模拟成如。
▲ FTL软件架构图
2. 功能描述
FTL(Flash Transform Layer)是基于nand flash的管理算法软件,具有地址映射管理,垃圾回收,坏块管理和磨损均衡等功能。
• 地址映射:上层应用使用逻辑地址来访问,FTL把逻辑地址映射到不同物理地址上,管理着每个逻辑地址最新的数据存放的物理位置。
• 垃圾回收:随着数据的写入,闪存设备上有些块的部分数据已经无效了,需要把有效的数据从块上搬走,然后擦除用来接收新的数据。
• 磨损均衡:因为每个块的P/E次数是有限的,某些块可能被重复使用而损坏了,而有些块数据很少被访问,所以一直没有进行操作过。为了避免这种情况,FTL加入磨损均衡的功能,大致是通过控制垃圾回收和空块池的管理,从而平衡每个块的使用次数。
• 坏块管理:由于Flash本身就存在部分坏块,在使用的过程中部分块会变坏,所以FTL在管理的时候需要避开这些无用块,把使用后变得不稳定块上的数据及时拷贝到稳定位置。
BCH软件实现error bit错误检查和纠正功能,对于Nand flash本身不带ECC “Error Correcting Code”功能的方案中是不可或缺的。BCH软件对用户写入flash的数据进行编码,当用户读取写入flash的数据时,按照编码规则对数据进行解码,当发现error bit时,对error bit进行纠正,保证数据可靠性。
3. 主要特性
相对于目前存在的Nand flash管理软件方案,FTL具有读写速度快、内存消耗小、擦除块磨损均衡好的特点。
A) FTL方案在相同平台下(GD32F450+SPI2G颗粒)与YAFFS嵌入式文件系统分别做性能测试,测试结果如下:
B) FTL方案在相同平台下(GD32F450+SPI2G颗粒)与YAFFS嵌入式文件系统分别做内存消耗统计,统计结果如下:
C) FTL方案在相同平台下(GD32F450+SPI2G颗粒)与YAFFS嵌入式文件系统分别做磨损均衡测试,统计结果如下:(注:block 1023为坏块)
4. 开发资料
推荐用于功能评估的开发板型号为GD32450i-EVAL和GD32303E-EVAL,支持SPI/EXMC两种接口nand flash。
我们可提供评估套件、用户指南、硬件原理图、软件代码等整套的开发资料,请联系您当地的GigaDevice销售办事处或GD32授权代理商获取。
5. 典型应用
对于一些要求存储容量较高的使用场景,FTL使用尤为突出。如图片、音频、视频的保存、重要信息的保存等。
工业领域,如电表、水表信息的存储;汽车电子领域,如设备运行状态信息存储;消费电子领域,如摄像监控视频、图片存储。