flash & eep区别
flash | eep |
---|---|
按扇区操作 | 按字节操作 |
写入需要擦除 | 写入不需要擦除 |
按块擦除 | 按字节擦除 |
操作速度快 | 操作速度慢 |
寿命短,擦写10万次 | 寿命长很多,擦写100万次 |
成本低 | 成本高 |
规格容量大 | 一般规格容量小 |
外挂一般为spi | 外挂一般为iic,也有spi |
功耗高 | 功耗低 |
nor flash & nand flash区别
- flash分为nor flash和nand flash。
nor flash | nand flash |
---|---|
数据线和地址线分开,可以实现ram一样的随机寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦. | 数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。(nandflash按块来擦除,按页来读,norflash没有页) |
读取速度更快 | nandflash引脚上复用,因此读取速度比nor flash慢一点 |
擦写速度较慢 | 擦除和写入速度比nor flash快很多。 |
体积大,成本高 | nand flash内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的flash都是nand型的。小容量的2~12M的flash多是nor型的。 |
寿命短 | 使用寿命上,nand flash的擦除次数是nor的数倍。 |
nor flash 一旦损坏便无法再用。 | nand flash可以标记坏块,从而使软件跳过坏块。 |
nor flash可以进行字节寻址,所以程序可以在nor flash中运行。嵌入式系统多用一个小容量的nor flash存储引导代码 | 用一个大容量的nand flash存放文件系统和内核。 |
NOR型存储内容以编码为主,其功能多与运算相关 | NAND型主要功能是存储资料,如数码相机中所用的记忆卡。 |
flash模拟eep意义
- 灵活性:
- Flash存储器通常比EEPROM容量更大,而且价格更便宜。因此,将Flash存储器模拟为EEPROM可以提供更大的存储容量,同时保持相对低廉的成本。这使得在需要大量存储空间但又不希望花费太多成本的情况下成为可能。
- 易于编程:
- EEPROM通常以字节为单位进行编程和擦除,而Flash存储器则以扇区或块为单位进行擦除。通过将Flash存储器模拟为EEPROM,可以更轻松地实现字节级别的编程和擦除,使得编程更加灵活和方便。
- 数据保护:
- EEPROM通常具有更高的写入/擦除耐久性和更低的数据保护特性,适用于频繁写入操作的应用。但是,由于Flash存储器通常具有更大的存储密度,因此通过模拟EEPROM,可以在保留数据保护特性的同时,利用Flash的高容量存储数据。
- 易于集成:
- 在某些嵌入式系统中,已经包含了Flash存储器用于程序存储等目的。通过将Flash存储器模拟为EEPROM,可以利用现有的Flash存储器来兼容EEPROM的应用需求,而无需额外的硬件成本或空间。
- 适用范围:
- 模拟EEPROM的Flash存储器通常用于需要频繁读写、需要大容量存储但又希望保持成本较低的应用中,如数据存储、配置参数保存、日志记录等。
flash模拟eep模拟机制
-
初始化
- 初始化两个分区,一个是当前存储分区,一个为历史待擦除分区
-
写
- 每一条数据记录的数据结构为 虚拟地址(初始化地址范围)+字节数据内容(初始化位数)
- 一个buff经过接口写入flash会被拆卸成一个一个 虚拟地址+字节数据内容 单元被保存起来
- 每一个数据单元都是不断地在此分区往后存储,即使虚拟地址相同
- 通过状态机管理分区写入
- ERASED 该page为空,没有存储数据
- RECEIVE 当前page从其他已满的page中接收数据
- ACTIVE 当前page用于存储新数据
- VALID Page 已满;该状态会一直持续到有效数据传递给接收page完成
- ERASING 有效数据已经传完,当前page准备擦除
- 该分区写满后,将该分区所有有效数据单元(有效即指,虚拟地址最新),搬运到新的分区,继续执行以上操作
-
读
- 接口向下传递读取地址,从分区尾向前读,第一个遇到的虚拟地址,就是最新的数据,提取之。