一、基本概念
Flash存储器,也称闪存,是一种非易失性存储器,用于存储数据。它采用固态存储技术,不需要动态维护电容或磁性材料来保存数据,能够在无电源情况下保留数据。Flash存储器的存储单元是FLASH存储单元,每个存储单元可以存储一位二进制数据,通常将多个存储单元组合起来形成一个字节、一个字、或者一组数据块。Flash存储器和DRAM有些相似,它也使用了存储单元的阵列。
Flash存储器相比于硬盘,具有读写速度快、体积小、耐用、低功耗、抗震抗压等优势。它在数字相机、存储卡、闪存盘、移动设备等场合得到了广泛应用。
二、分类
按照存储方式和结构分类,Flash存储器分为两类:
1. NOR Flash
NOR Flash 存储器由 Intel 公司在 1988 年开发。它采用并行读写方式,可进行部分擦除。在 NOR Flash 存储器中,存储单元和检索引擎是分开的,每个存储单元都可以被独立编程,但只能进行一次全片擦除,费用相对较高。
uint32_t nor_flash_address = 0x08000000; uint32_t nor_flash_data = 0xAA; HAL_StatusTypeDef status; status = HAL_NOR_Program(&hnor, &nor_flash_address, &nor_flash_data); // NOR FLASH编程
2. NAND Flash
NAND Flash 存储器改进了 NOR 存储器的缺陷,采用串行方式读写数据,可以进行片内全擦除。在 NAND Flash 存储器中,检索引擎集成进了存储单元中,每次擦除是按块擦除。
uint32_t nand_flash_page_address = 0x00; uint32_t nand_flash_data_input = 0xAA; NAND_Write_Page(&hnand1, &nand_write_handle, &nand_flash_page_address, data, PAGE_SIZE>>2u); // NAND FLASH写入
三、使用注意事项
在使用 Flash 存储器时,需要注意以下几点:
1. 重复写入次数限制
Flash 存储器拥有有限的重复写入次数,常规 NAND FLASH 存储器大约为 10 万次,而 NOR FLASH 存储器的重复写入次数相对更高一些,大约达到了 100 万次。因此,在使用时需要限制重复写入次数。
2. 擦除次数限制
Flash 存储器的擦除次数也是有限的。根据 NAND FLASH 的规格书要求,擦除次数一般为 10000-100000,但对于低成本 NAND FLASH 存储器,其擦除次数仅有 1000-10000 次,因此需要在使用过程中做好记录和控制。
3. 常规擦除不完整
由于 Flash 存储器的固有物理结构,擦除时会出现不完整现象,被误写或未写的部分可能导致错误。事实上,由于被误写和未写的部分, Flash 存储器的错误率会有大幅上升,通常在1%以上。
四、结论
总之,Flash 存储器已经成为数字化生活中不可缺少的重要部分,它以其高速读写、可靠性以及低功耗等优点,被广泛地应用于移动媒体、存储卡、数码相机等众多应用领域。