一、基本概念
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 存儲器已經成為數字化生活中不可缺少的重要部分,它以其高速讀寫、可靠性以及低功耗等優點,被廣泛地應用於移動媒體、存儲卡、數碼相機等眾多應用領域。
原創文章,作者:HUJAZ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/371068.html