以前我做项目,有时用Flash,有时用EEPROM,搞得我有点懵逼。
然后在网上搜了一些资料,看完以后还是不能理解透彻,直到项目做多了,才彻底搞懂。
Flash和EEPROM都是非易失性存储器,就是你设备掉电重启后,数据还会保留,如果是RAM的话掉电数据直接就丢了。
下面从几个方面去介绍下Flash和EEPROM的区别:
1.读取方式
Flash和EEPROM都采用随机读取,可以通过地址直接访问存储器中的数据。
2.写入方式
Flash和EEPROM的写入方式不一样,EEPROM可以按字节进行写入,而Flash通常需要按块进行写入。
还有就是,在Flash中,要写入一个数据,需要先擦除一整个块,然后再将新数据写入该块。
3.擦除方式
Flash和EEPROM的擦除方式不一样,EEPROM可以按字节进行擦除,而Flash一般需要按块进行擦除。
也就是说,在Flash中,要擦除一个数据,通常需要先擦除一整个块,然后再将该块中需要保留的数据重新写入,比EEPROM操作麻烦一些。
4.擦写速度
EEPROM的擦写速度比Flash慢得多,擦写速度会受到许多因素的影响,包括使用的存储器型号、使用的接口类型、写入和擦除的数据量、芯片温度等等。
5.存储密度
Flash比EEPROM的存储密度更高,可以存储更多的数据。
6.寿命
Flash和EEPROM的寿命长短取决使用方式、应用场景等等。
一般来说,EEPROM的寿命可能会更长一些,因为它可以进行单独的字节单位的写入和擦除,而Flash需要进行整个页面或扇区的擦除。
这意味着EEPROM可以更灵活地管理存储器,并减少对存储单元的擦写次数。
但是,这并不意味着所有情况下EEPROM的寿命都会更长。
7.价格
Flash比EEPROM更便宜。
8.通讯接口不同
Flash很多是用SPI协议接口、EEPROM很多是IIC协议接口。
9.数据保护方式
Flash具有硬件和软件保护功能,而EEPROM只有软件保护功能。
10.总结
Flash更适合存储代码和常量,就是不需要频繁更新、数据量大的场景,比如说音频数据、图片数据、程序等等。
EEPROM适合存储需要频繁更新数据、数据量小的场景,比如系统参数配置等等。