首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >“Flash 闪存”基础知识及 “SD NAND Flash”产品测试指南

“Flash 闪存”基础知识及 “SD NAND Flash”产品测试指南

作者头像
用户8589624
发布2025-11-14 11:27:49
发布2025-11-14 11:27:49
2320
举报
文章被收录于专栏:nginxnginx

“Flash 闪存”基础知识及 “SD NAND Flash”产品测试指南

一、“FLASH闪存”是什么?

1. 简介

FLASH闪存是属于内存器件的一种,“Flash”。闪存则是一种非易失性(Non-Volatile)内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。

各类 DDR、SDRAM 或者 RDRAM 都属于挥发性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存。

2. 分类

NOR和NAND是市场上两种主要的非易失闪存技术。

在1984年,东芝公司的发明人舛冈富士雄首先提出了快速闪存存储器(此处简称闪存)的概念。与传统电脑内存不同,闪存的特点是NVM,其记录速度也非常快。

Intel是世界上第一个生产闪存并将其投放市场的公司。1988年,公司推出了一款256K bit闪存芯片。它如同鞋盒一样大小,并被内嵌于一个录音机里。后来的这种闪存被统称为NOR闪存。它结合EPROM和EEPROM两项技术,并拥有一个SRAM接口。

第二种闪存称为NAND闪存。它由日立公司于1989年研制,并被认为是NOR闪存的理想替代者。NAND闪存的写周期比NOR闪存短90%,它的保存与删除处理的速度也相对较快。NAND的存储单元只有NOR的一半,在更小的存储空间中NAND获得了更好的性能。

3. 特点

性能方面,flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为1。

由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,而擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。

执行擦除时块尺寸的不同进一步拉大了NOR和NAND之间的性能差距。统计表明,选择存储解决方案时,设计师必须权衡以下的各项因素:

  • NOR的读速度比NAND稍快一些。
  • NAND的写入速度比NOR快很多。
  • NAND的4ms擦除速度远比NOR的5s快。
  • 大多数写入操作需要先进行擦除操作。
  • NAND的擦除单元更小,相应的擦除电路更少。

可靠性方面,采用flash介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。

耐用性方面,NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。

易于使用方面,NOR的闪存可以像其他存储器那样直接连接并运行代码,而NAND需要复杂的I/O接口,使用NAND器件时,必须先写入驱动程序。

4. 虚拟化

FLASH闪存是一种内存技术,与RAM不同,在断电时它仍旧可以保留所存储的信息。虽然FLASH闪存的读写操作速度不如RAM,但性能远高于典型的硬盘。FLASH闪存技术非常适合随机I/O,适用于虚拟服务器环境中存在的大量随机I/O。

目前有三种类型的FLASH闪存,耐久性各不相同:

  • 单阶存储单元(SLC)FLASH闪存在每个单元写一位数据,耐久性最好。
  • 多阶存储单元(MLC)FLASH闪存在每个单元写多位数据,耐久性排名第二。
  • 三阶存储单元(TLC)在每个单元写三位数据,耐久性最差。

二、SD NAND Flash

这里我以贴片式TF卡“CSNP32GCR01-AOW”型号为例介绍。

SD NAND
SD NAND
1. 概述

CSNP32GCR01-AOW是基于NAND闪存和SD控制器的32Gb密度嵌入式存储。该产品与原始NAND相比,有许多优点,包括嵌入式坏块管理和更强的嵌入式ECC。即使在异常断电的情况下,它仍然可以安全地保存数据。

2. 特点
  • 接口:标准SD规范2.0版,带有1-I/O和4-I/O。
  • 电源:Vcc=2.7V-3.6V。
  • 默认模式:可变时钟频率0-25 MHz,最高12.5 MB/秒接口速度(使用4条并行数据线)。
  • 高速模式:可变时钟频率0-50 MHz,最高25 MB/秒接口速度(使用4条并行数据线)。
  • 工作温度:-25°C至+85°C。
  • 储存温度:-40°C至+85°C。
  • 备用电流:<250uA。
  • 开关功能命令:支持高速、电子商务和未来功能。
  • 内容保护机制:符合SDMI标准的最高安全性。
  • 内置写保护功能:永久和临时。
3. 引脚分配
引脚分配
引脚分配
4. 数据传输模式
数据传输模式
数据传输模式
5. SD NAND寄存器

SDNAND接口中定义了六个寄存器:OCR、CID、CSD、RCA、DSR和SCR。这些信息只能通过相应的命令访问。

  • CID register
CID register
CID register
  • SCR register
SCR register
SCR register
6. 通电图
通电图
通电图

通电时间

通电时间
通电时间
7. 参考设计
参考设计1
参考设计1
参考设计2
参考设计2

Tips:RDAT和RCMD(10K~100 kΩ)是上拉电阻器,当SDNAND处于状态时,保护CMD和DAT线路不受总线浮动的影响;在高阻抗模式下,即

使上拉电阻未使用,它们也会影响数据传输。

三、STM32测试例程

下面是STM32读写SD NAND的简单测试代码,包含基本的初始化、读取数据和写入数据。

1. STM32F103读写代码
代码语言:javascript
复制
#include "stm32f10x.h"

// SD NAND flash commands
#define CMD_READ   0x00
#define CMD_WRITE  0x01
#define CMD_ERASE  0x02

void SD_Init(void) {
    // Initialization code for SD NAND
}

void SD_Write(uint32_t address, uint8_t* data, uint32_t length) {
    // Write data to SD NAND
}

void SD_Read(uint32_t address, uint8_t* buffer, uint32_t length) {
    // Read data from SD NAND
}

int main(void) {
    uint8_t data[512];
    uint8_t readBuffer[512];

    SD_Init();

    // Write data
    SD_Write(0x0000, data, sizeof(data));

    // Read data
    SD_Read(0x0000, readBuffer, sizeof(readBuffer));

    while (1) {
        // Main loop
    }
}

以上示例代码仅供参考,具体实现需要根据具体的SD NAND Flash模块和STM32开发板来调整。希望本篇能够对读者了解和使用SD NAND Flash有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • “Flash 闪存”基础知识及 “SD NAND Flash”产品测试指南
    • 一、“FLASH闪存”是什么?
      • 1. 简介
      • 2. 分类
      • 3. 特点
      • 4. 虚拟化
    • 二、SD NAND Flash
      • 1. 概述
      • 2. 特点
      • 3. 引脚分配
      • 4. 数据传输模式
      • 5. SD NAND寄存器
      • 6. 通电图
      • 7. 参考设计
    • 三、STM32测试例程
      • 1. STM32F103读写代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档