报价
HOME
报价
正文内容
nand flash 字节写入 作为嵌入式工程师的你,这些FLASH你应该明白吧
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

作为嵌入式工程师的你,这些FLASH你应该明白吧

嵌入式开发得弄明白各种Flash

1、Flash Memory的简介

大家好,我是一哥,今天来介绍下嵌入式的各种Flash。所谓Flash,是内存(Memory)的一种,但兼有RAM和ROM 的优点,是一种可在系统(In-System)进行电擦写,掉电后信息不丢失的存储器,同时它的高集成度和低成本使它成为市场主流。

Flash 芯片是由内部成千上万个存储单元组成的,每个单元存储一个bit。具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。

作为一种非易失性存储器,Flash在系统中通常用于存放 程序 代码、常量表以及一些在系统掉电后需要保存的用户数据等。

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程和毕业设计指导,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像白色字体加我也能领取哦,记得回复一哥///

常用的Flash为8位或16位的数据宽度,编程电压为单3.3V。主要的生产厂商为INTEL、ATMEL、AMD、HYUNDAI等。Flash 技术根据不同的应用场合也分为不同的发展方向,有擅长存储代码的NOR Flash和擅长存储数据的NAND Flash。一下对NOR Flash和NAND Flash的技术分别作了相应的介绍。

2、Flash Memory主要特性

与传统的硬盘存储器相比,Flash Memory 具有质量轻、能耗低、体积小、抗震能力强等的优点,但也有不少局限性,主要如下:

///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程和毕业设计指导,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像白色字体加我也能领取哦,记得回复一哥///

.需要先擦除再写入Flash Memory 写入数据时有一定的限制。它只能将当前为 1 的比特改写为 0,而无法将已经为 0 的比特改写为 1,只有在擦除的操作中,才能把整块的比特改写为 1。

块擦除次数有限Flash Memory 的每个数据块都有擦除次数的限制(十万到百万次不等),擦写超过一定次数后,该数据块将没法可靠存储数据,成为坏块。

为了最大化的延长 Flash Memory 的寿命,在软件上须要做擦写均衡(Wear Leveling),通过分散写入、动态映射等伎俩均衡使用各个数据块。同时,软件还须要进行坏块管理(Bad Block Management,BBM),标识坏块,不让坏块参与数据存储。(注:除了擦写导致的坏块外,Flash Memory 在出产过程也会产生坏块,即固有坏块。)

.读写干扰由于硬件实现上的物理特性,Flash Memory 在进行读写操作时,有可能会导致邻近的其他比特发生位翻转,导致数据异常。这种异常可以通过重新擦除来恢复。Flash Memory 应用中通常会使用 ECC 等算法进行错误检测和数据修正。

.电荷泄漏存储在 Flash Memory 存储单元的电荷,如果长期没有使用,会发生电荷泄漏,导致数据错误。不过这个时间比较长,一般十年左右。此种异常是非永久性的,重新擦除可以恢复。

3、Nor Flash 和 Nand Flash

根据硬件上存储原理的不同,Flash Memory 主要可以分为 NOR Flash 和 NAND Flash 两类。主要的差异如下所示:

·NAND Flash 读取速度与 NOR Flash 相近,根据接口的不同有所差异;

·NAND Flash 的写入速度比 NOR Flash 快很多;

·NAND Flash 的擦除速度比 NOR Flash 快很多;

·NAND Flash 最大擦次数比 NOR Flash 多;

·NOR Flash 支持片上执行,可以在上面直接运行代码;

·NOR Flash 软件驱动比 NAND Flash 简单;

·NOR Flash 可以随机按字节读取数据,NAND Flash 需要按块进行读取。

·大容量下 NAND Flash 比 NOR Flash 成本要低很多,体积也更小;(注:NOR Flash 和 NAND Flash 的擦除都是按块块进行的,执行一个擦除或者写入操作时,NOR Flash 大约需要 5s,而 NAND Flash 通常不超过 4ms。)

1、NOR Flash

NOR Flash 依据与 CPU 端接口的不同,能够分为 Parallel NOR Flash 和 Serial NOR Flash 两类。

Parallel NOR Flash 能够接入到 Host 的 SRAM/DRAM Controller 上,所存储的内容能够直接映射到 CPU 地址空间,不须要拷贝到 RAM 中即可被 CPU 访问,因而支持片上执行。Serial NOR Flash 的成本比 Parallel NOR Flash 低,主要通过 SPI 接口与 Host 连接。

鉴于 NOR Flash 擦写速度慢,成本高等特性,NOR Flash 主要应用于小容量、内容更新少的场景,例如 PC 主板 BIOS、路由器系统存储等。

2、NAND Flash

NAND Flash 需要通过专门的 NFI(NAND Flash Interface)与 Host 端进行通信,如下图所示:

NAND Flash 依据每个存储单元内存储比特个数的不同,能够分为 SLC(Single-Level Cell)、MLC(Multi-Level Cell) 和 TLC(Triple-Level Cell) 三类。其中,在一个存储单元中,SLC 能够存储 1 个比特,MLC 能够存储 2 个比特,TLC 则能够存储 3 个比特。

NAND Flash 的一个存储单元内部,是通过不同的电压等级,来表示其所存储的信息的。在 SLC 中,存储单元的电压被分为两个等级,分别表示 0 和 1 两个状态,即 1 个比特。在 MLC 中,存储单元的电压则被分为 4 个等级,分别表示 00 01 10 11 四个状态,即 2 个比特位。同理,在 TLC 中,存储单元的电压被分为 8 个等级,存储 3 个比特信息。

NAND Flash 的单个存储单元存储的比特位越多,读写性能会越差,寿命也越短,但是成本会更低。Table 1 中,给出了特定工艺和技术水平下的成本和寿命数据。

相比于 NOR Flash,NAND Flash 写入性能好,大容量下成本低。目前,绝大部分手机和平板等移动设备中所使用的 eMMC 内部的 Flash Memory 都属于 NAND Flash。PC 中的固态硬盘中也是使用 NAND Flash。

4、ROW Flash和Managed Flash

由于 Flash Memory 存在按块擦写、擦写次数的限制、读写干扰、电荷泄露等的局限,为了最大程度的发挥 Flash Memory 的价值,通常需要有一个特殊的软件层次,实现坏块管理、擦写均衡、ECC、垃圾回收等的功能,这一个软件层次称为 FTL(Flash Translation Layer)。

在具体实现中,根据 FTL 所在的位置的不同,可以把 Flash Memory 分为 Raw Flash 和 Managed Flash 两类。

1、Raw Flash

在此类应用中,在 Host 端通常有专门的 FTL 或者 Flash 文件系统来实现坏块管理、擦写均衡等的功能。Host 端的软件复杂度较高,但是整体方案的成本较低,常用于价格敏感的嵌入式产品中。

通常我们所说的 NOR Flash 和 NAND Flash 都属于这类型。

2、Managed Flash

Managed Flash 在其内部集成了 Flash Controller,用于完成擦写均衡、坏块管理、ECC校验等功能。相比于直接将 Flash 接入到 Host 端,Managed Flash 屏蔽了 Flash 的物理特性,对 Host 提供规范化的接口,能够减少 Host 端软件的复杂度,让 Host 端专注于上层业务,省去对 Flash 进行特殊的处理。

想要学习单片机的朋友 ,做毕业设计的同学,关注我们,回复一哥,与导师一起学习成长,共同进步,还有更多资料领取。

说了这么多,大家记得留意下方评论第一条(或者私信我)有干货~

-END-

*本文系网络转载,版权归原作者所有,如有侵权请联系删除

Labview实验:SPI的读写(Flash)

SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。

SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

一,SPI部分内容介绍

1,SPI内部示意图

MISO 主设备数据输入,从设备数据输出;

MOSI 主设备数据输出,从设备数据输入;

SCLK时钟信号,由主设备产生;

CS从设备片选信号,由主设备控制。

2,SPI工作原理

(1)主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。

(2)串行移位寄存器通过MOSI信号线将字节传送给从机,从机也将自己的串行移位寄存器中的内容通过MISO信号线返回给主机。这样,两个移位寄存器中的内容就被交换。

(3)外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。

二,程序编写实验

与IIC的读写程序相类似。

用开关KEY_UP的按下与松开来切换不同的字符串分别写入Flash,再通过LCD显示出来。

实验预期效果:程序启动运行后,LCD显示出一组字符串,代表从Flash中读取出来的数据;当按下KEY_UP,LCD显示出另一组字符串,代表Flash又重写入另一组数据;KEY_UP再松开,LCD显示出原先的字符串。

程序编写,只需要一个主VI。

(一)程序步骤:

1,LCD初始化

2,SPI2初始化

3,Flash ID读取

4,Flash字节数组写入

5,Flash字节数组读取

6,LCD清除背景

7,LCD字符串显示

程序编写:

1,LCD初始化

2,SPI2初始化

硬件SPI W25Q64连接图:

3,Flash ID读取

4,Flash字节数组写入

KEY_UP按下或松开,分别给Flash写入不同的字符串:字符串转换成字节数组再写入。

5,Flash字节数组读取

字节数组转换成字符串,将送至LCD显示。

6,LCD清除背景

7,LCD字符串显示

完整的程序

三,编译,下载到开发板,程序运行后,进行KEY_UP按键操作,效果如预期。

相关问答

STM32写 flash 怎么总是写不进?

你检查一下代码,看看是否存在一下问题:看看写flash前是否已经解锁flash,写完后是否完成上锁。你写入flash的地址是否正确,不能超出flash地址范围(不同芯片...

gd32怎么写数据到 flash ?

要在GD32微控制器中将数据写入闪存,首先需要确保闪存中的数据清除。然后,可以通过将数据存储在某个变量中,使用内置的FLASH编程库函数将数据写入闪存。这些函...

嵌入式 Flash 读写操作该如何进行设计?

Flash存储芯片的通讯方式以SPI居多,在实现flash读写时就是要实现SPI的通讯协议,与EEPROM不同的是,SPI在操作时是按照PAGE页进行整页擦除写入的,这一点需要注...F...

eeprom与 FLASH 的区别?

EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory)和FLASH是两种不同的非易失性存储器件,它们之间的区别如下:编程和擦除方式不同...

nvram和 flash 区别?

NVRAM和FLASh区别如下:NVRAM(Non-VolatileRandomAccessMemory):非易失性随机访问存储器。电子设备能快速地访问该存储空间的内容(大多数情况下此类设备....

cc2530擦除 flash 后收不到数据?

解决方法:片内flash擦除及写入的时序由芯片内自动控制,当发出擦除或写入指令时。CPU暂时停止工作,外围设备(串行口、ADC、Timer等仍处于活动状态)。外围设...

norflash和 nandflash 的区别?

NANDflash和NORflash的区别一、NANDflash和NORflash的性能比较flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的....

j- flash 使用教程?

一、使用J-Flash读单片机的Flash数据,并保存。打开J-Flash,选择好单片机的型号二、使用J-Flash读单片机的optionbyte。当把Flash中的数据读回后,就可以顺便...

STM32中,寄存器可按字、半字、 字节 的方式访问怎么理解?

这个问题问的有点不太理解,因为ARM是32位的,其寄存器也都是按32位来预先定义了。因此,就ARM的寄存器而言,都是按32位来读写的。不过其它部分FLASH,如ROM、RA...

FLASH 和EEPROM的区别?

1、擦写方式不同FLASH在写新的数据前必须先擦除,而且经常是只允许整页擦除,没有办法擦除一个字节,换句话说,只能成块的读写,特别是写。EEPROM写之前不需要...

 特蕾娅  筠连中学 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部