單片機狂熱者,教你如何選擇對的嵌入式產品中的存儲器類型
摘要:Flash存儲器是一種非易失性內存,其作為數據、系統存儲的關鍵介質,在嵌入式系統中扮演著重要角色。常見的Flash有NAND Flash、Nor Flash、eMMC等,本文將簡單介紹不同Flash的區別及應用場景。
///插播一條:我自己在今年年初錄製了一套還比較系統的入門單片機教程,想要的同學找我拿就行了免費的,私信我就可以哦~點我頭像黑色字體加我地球呺也能領取哦。最近比較閒,帶做畢設,帶學生參加省級或以上比賽///
正文開始:
圖1 HD6Q-CORE ARM核心板板載Flash
1.NAND Flash
按照接口區分,NAND Flash分為串行和並行兩種,串行就是每次傳輸1 bit,並行就是每次傳輸多位。下圖的並行Flash采用8bit的數據位寬,並配合RE/WE等讀寫信號進行數據的讀寫。串行Flash管腳較少,多采用SPI或者QSPI接口進行通信。一般來講,並行Flash的容量要高於串行Flash。
圖2並行NAND Flash接口
圖3串行NAND Flash接口
按照顆粒密度區分,並行NAND Flash可以分為SLC、MLC、TLC、QLC等,其中SLC、MLC顆粒較為常用。
圖4 SLC、MLC、TLC、QLC
·第一代SLC(Single-Level Cell)每單元可存儲1比特數據(1bit/cell),性能好、壽命長,可經受10萬次編程/擦寫循環,但容量低、成本高,市場上用的比較少;
·第二代MLC(Multi-Level Cell)每單元可存儲2比特數據(2bits/cell),性能、壽命、容量、成各方面比較均衡,可經受1萬次編程/擦寫循環,目前主流的核心板廠商大都配置該類型的存儲;
·第三代TLC(Trinary-Level Cell)每單元可存儲3比特數據(3bits/cell),性能、壽命變差,只能經受3千次編程/擦寫循環,但是容量可以做得更大,成本也可以更低,大多數固態硬碟的選擇;
·第四代QLC(Quad-Level Cell)每單元可存儲4比特數據(4bits/cell),性能、壽命進一步變差,只能經受1000次編程/擦寫循環,但是容量更容易提升,成本也繼續降低。
2.Nor Flash
NOR Flash是一種非易失快閃記憶體技術,是Intel在1988年創建。是市場上兩種主要的非易失快閃記憶體技術之一。按照接口區分, Nor Flash也可以分為並行和串行兩種。由於並行Nor Flash易存在兼容性問題,現已逐漸淘汰,目前常用的Nor Flash通常指串行Flash,即SPI Flash,其接口定義和圖3一致。
與NAND Flash相比,Nor Flash容量較低,且讀寫速度和擦寫速度較慢。不同於NAND Flash的是,NOR Flash支持Execute ON Chip,程序可以直接在Flash片內執行,因此很適合作為嵌入式系統中的程序啟動介質。
表1 NAND Flash &Nor Flash存儲介質對比表
.eMMC
eMMC本質上還是Nand flash,數據接口支持1bit、4bit和8bit三種。eMMC=Nand flash +快閃記憶體控制芯片+標準接口封裝,其內部集成的快閃記憶體控制器具有讀寫協議、擦寫均衡、壞塊管理、ECC校驗、電源管理、時鐘管理、數據存取等功能,極大降低了Nand-flash的使用難度。
圖5 eMMC架構
在嵌入式系統中,Flash除了用來存放數據,還有一個重要的功能就是存放uboot啟動程序。一般來講,系統可以直接從Nor Flash啟動,而不能直接從NAND Flash啟動。系統要從NAND Flash啟動,則需要先將NAND Flash低4K的代碼拷貝到CPU內部的SRAM中,然後從SRAM中驅動。再將FLASH剩下的代碼拷貝到SDRAM中,從SDRAM開始執行main函數,啟動流程如下圖所示。
圖6 NAND Flash啟動方式
一般來講,當主控制所需搭配的存儲容量較低時(如256M、512M),通常選擇Nand flash。當主控制所需搭配的存儲容量較高時(如4GB、8GB甚至32GB),選擇eMMC將更具性價比。
武漢萬象奧科是國內嵌入式軟硬體技術積累最全面的方案商之一,作為Renesas、Microchip、芯馳、NXP、ST等原廠在國內的重要技術合作夥伴,專注於嵌入式軟硬體產品的研發、定製、設計、生產。