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

“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

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

  • SCR register
    SCR register

6. 通电图

通电图

通电时间
通电时间

7. 参考设计

参考设计1

参考设计2

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

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

三、STM32测试例程

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

1. STM32F103读写代码

#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有所帮助。

============>认准这里哦

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农阿豪@新空间代码工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值