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

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

3天内不再提示

GD32 FATFS+FTL Nand解决方案

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-09-08 13:55 次阅读

1. 方案简介

Nand flash有非易失、存储容量大、寿命长等优点;同时具有存在坏块、擦除次数有限、易出现error bit的缺点;并且具有擦除以block(块)为单位,写入以page(页)为单位,读取以sector(512 byte)为单位的特点。

基于上述原因,对Nand flash的应用不仅要避免坏块、均衡块擦除次数、纠正error bit,而且需要按照其读写擦的特点进行应用。若没有一套管理软件针对nand的特性,则对其应用将非常困难。

FTL(Flash Transform Layer)是基于nand flash的管理算法软件,可解决上述提出的所有问题,将Nand flash模拟成如。

wKgZomT6tyuALfWtAABfyq_CB1s924.jpg

▲ 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嵌入式文件系统分别做性能测试,测试结果如下:

wKgZomT6tyyAI7WHAACQe5W9Zuo218.jpg

B) FTL方案在相同平台下(GD32F450+SPI2G颗粒)与YAFFS嵌入式文件系统分别做内存消耗统计,统计结果如下:

wKgaomT6ty6AfBD-AACDOsW9t_0437.jpg

C) FTL方案在相同平台下(GD32F450+SPI2G颗粒)与YAFFS嵌入式文件系统分别做磨损均衡测试,统计结果如下:(注:block 1023为坏块)

wKgZomT6ty-AabZvAABrE3tQcO4904.jpg

4. 开发资料

推荐用于功能评估的开发板型号为GD32450i-EVAL和GD32303E-EVAL,支持SPI/EXMC两种接口nand flash。

我们可提供评估套件、用户指南、硬件原理图、软件代码等整套的开发资料,请联系您当地的GigaDevice销售办事处或GD32授权代理商获取。

5. 典型应用

对于一些要求存储容量较高的使用场景,FTL使用尤为突出。如图片、音频视频的保存、重要信息的保存等。

工业领域,如电表、水表信息的存储;汽车电子领域,如设备运行状态信息存储;消费电子领域,如摄像监控视频、图片存储。

审核编辑:汤梓红

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

    关注

    16

    文章

    1543

    浏览量

    134791
  • FlaSh
    +关注

    关注

    10

    文章

    1550

    浏览量

    146646
  • 兆易创新
    +关注

    关注

    23

    文章

    548

    浏览量

    79845
  • GD32
    +关注

    关注

    7

    文章

    333

    浏览量

    23740
收藏 人收藏

    评论

    相关推荐

    基于GD32 MCU的电机驱动方案详解

    兆易创新 GD32 MCU 在电机驱动应用上,经过多年技术沉淀,在无刷电机和步进电机的应用中,形成自身完整可靠的解决方案,愿能为用户提供更多的服务。
    发表于 07-03 16:43 7018次阅读

    GD32 MCU移植

    gd32是一款国产单片机。该芯片在很多方面和STM32有异曲同工之处。资料不是很多! GD32在外设方面、和STM32没有多大区别。 只是需要注意资源的引脚分配。虽然和STM32使用方式一样、但是也存在GD自带的一些设计理念。
    发表于 03-23 13:40

    GD32和STM32有哪些不同的地方

    一、前言GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32和STM32有很多地方都是一样的,不过GD32毕竟是不同的
    发表于 08-09 07:03

    什么是GD32

    一、前言什么GD32GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32和STM32有很多地方都是一样的,不过
    发表于 08-12 07:46

    GD32可以替换STM32吗

    什么是GD32GD32与STM32的区别在哪?GD32可以替换STM32吗?
    发表于 10-20 07:03

    GD32与STM32有哪些异同呢

    GD32与STM32有哪些相同点?GD32与STM32有哪些不同点?GD32与STM32兼容性怎样?
    发表于 10-21 09:26

    GD32芯片包添加步骤有哪些

    **GD32芯片包添加步骤**GD32开发环境可以有多个选择,常见的开发编译环境有:Keil4,keil5,IAR。本教程针对keil5如何添加GD32系列mcu芯片型号做出讲解。1.首先
    发表于 11-22 08:30

    GD32系列总结

    GD32系列总结 - 时钟树总结及CubeMX生成代码写在前面时钟树HSE振荡器时钟(高速外部时钟信号)HSE用户外部时钟(旁路模式)HSE外部晶体/陶瓷谐振器HSI振荡器时钟PLL时钟LSE时钟
    发表于 02-11 07:11

    GD32和STM32的区别

    一、前言GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32和STM32有很多地方都是一样的,不过GD32毕竟是不同的
    发表于 11-18 20:51 46次下载
    <b class='flag-5'>GD32</b>和STM32的区别

    GD32选型手册

    GD32选型手册
    发表于 06-17 14:49 62次下载

    gd32和stm32哪个好?

    gd32和stm32哪个好? GD32和STM32是两种常见的微控制器系列,是开发者们常用的开发板核心。尽管它们相似之处很多,但它们也存在着差异,本文将深入探讨GD32和STM32,分享它们的优缺点
    的头像 发表于 08-16 11:32 1031次阅读

    GD32和AT32哪个好?

    GD32和AT32哪个好? GD32和AT32是两种不同的微控制器型号,它们都是国内开发的芯片。GD32系列由国内芯片制造商GigaDevice Semiconductor开发,而AT32系列则由
    的头像 发表于 08-16 11:32 1430次阅读

    GD32与STM32兼容吗?

    GD32与STM32兼容吗? GD32与STM32是两个不同的微控制器系列,是由两个不同的公司设计和生产的。GD32系列是由国内的长沙国芯微电子设计和生产的,而STM32系列则是由欧洲
    的头像 发表于 08-16 11:32 2299次阅读

    GD32如何替换STM32?

    GD32如何替换STM32?
    的头像 发表于 09-18 10:58 1493次阅读
    <b class='flag-5'>GD32</b>如何替换STM32?

    GD32和STM32有何区别?GD32如何替换STM32呢?

    GD32和STM32有何区别?GD32如何替换STM32呢? GD32和STM32是两种不同的微控制器系列,一般被用于嵌入式系统开发。GD32是中国华大基因(Gigadevice)公司
    的头像 发表于 11-22 18:18 3311次阅读