在嵌入式、物聯網、工控、車載等硬件系統中,啟動存儲器(Boot Flash)是決定設備能否上電即跑、穩(wěn)定可靠的核心器件。實際選型中,SD NAND、SPI NAND、NOR Flash是常見的非易失性存儲方案,但業(yè)界有一條明確共識:SD NAND幾乎不用于存放啟動代碼,而 SPI NAND和 NOR Flash是主流啟動介質。
這一差異并非單純成本或容量問題,而是由接口協議、CPU訪問機制、XIP能力、初始化流程、傳輸方式、可靠性設計共同決定。本文從啟動原理、數據傳輸、硬件交互、優(yōu)劣勢及場景適配四個維度,完整拆解三類存儲的核心區(qū)別,幫你徹底理解啟動存儲的選型邏輯。
一、先搞懂:嵌入式設備「啟動」的核心硬件要求
設備上電后,CPU/MCU要完成復位、取指、執(zhí)行,對啟動存儲有 4個剛性要求,缺一不可:
上電即訪問,無復雜前置初始化:CPU剛復位時,時鐘、外設、驅動均未配置,存儲必須能被硬件直接尋址讀取,無需軟件協議握手、狀態(tài)機配置。
支持 XIP(eXecute-In-Place,就地執(zhí)行):代碼可直接在 Flash中運行,無需先搬運到 RAM,滿足極小體積 BootROM、片上 RAM不足的場景。
字節(jié)級 /任意地址隨機讀取:CPU取指是單字節(jié) /指令級隨機跳轉,不允許僅支持塊 /頁批量讀取。
低延遲、時序確定、無壞塊 / FTL依賴:啟動階段無錯誤處理、壞塊管理、ECC校驗軟件,存儲必須保證地址穩(wěn)定、讀取可靠。
滿足以上條件,才能作為一級啟動介質(存放 Bootloader、第一階段啟動代碼);不滿足則只能作為數據存儲 /二級鏡像存儲(如系統固件、文件、日志)。
二、核心結論先行:三類存儲的啟動能力本質差異

下面從接口與傳輸方式、啟動限制、優(yōu)劣勢逐層拆解。
三、SD NAND:為什么不適合存放啟動代碼
SD NAND本質是封裝成 SD形態(tài)的 NAND Flash裸片,內置 SD控制器,對外遵循 SDIO 協議,看似引腳少、易用,但違背啟動存儲的硬件規(guī)則。
1. SD NAND數據傳輸與接口機制
接口:SDIO總線(CMD + DAT0~3 + CLK)
屬于主機 -從機協議型接口,不是簡單的地址 /數據總線,必須由主機 SD控制器發(fā)送標準命令交互:
上電發(fā)送 CMD0軟復位
CMD1 / CMD8做電壓識別、卡初始化
CMD9/CMD10獲取 CID/CSD配置
讀數據必須用 CMD17(單塊讀)+地址 +等待響應 +整頁傳輸
傳輸方式:半雙工、塊 /頁為最小單位
不支持單字節(jié)隨機讀,只能整頁(2KB/4KB)讀寫
讀寫必須經過命令 -響應 -數據三步握手,延遲高、時序不確定
數據方向切換需重新配置總線,無法像總線一樣隨時取指
2.三大問題:無法承擔啟動職責
無 XIP,完全不能就地執(zhí)行
CPU無法直接從 SD NAND取指,必須先通過驅動把整頁數據搬到 RAM,再從 RAM執(zhí)行。但啟動初期無驅動、無 RAM初始化,陷入 “先有雞還是先有蛋”死循環(huán)。
依賴 SD控制器與軟件協議,上電不可直接訪問
SDIO是復雜高速協議,需要時鐘配置、相位校準、狀態(tài)機切換,純硬件無法自動完成初始化,必須軟件參與,而上電第一步就是取指,不可能先運行驅動。
內置 FTL、壞塊、ECC,啟動階段不可控
SD NAND為兼容存儲卡場景,內置損耗均衡、壞塊替換、ECC校驗,邏輯地址與物理地址映射不透明,啟動代碼不能跨塊跳轉、地址不穩(wěn)定,極易出現上電讀失敗、指令錯亂。
3. SD NAND優(yōu)劣勢總結
優(yōu)勢:容量大(Gb級)、價格低、引腳少、兼容標準 SD卡槽、易用性高、適合大容量數據存儲
劣勢:無 XIP、協議復雜、上電不可用、可靠性不滿足啟動、僅做數據存儲
定位:數據盤、固件備份、日志、文件系統,絕對不參與一級啟動
四、SPI NAND:可以啟動,但本質是「加載型啟動」
SPI NAND是NAND Flash裸片 + SPI接口轉換,對外是標準 SPI(CS/CLK/MOSI/MISO),保留 NAND大容量低成本特性,同時解決了 SD NAND的協議壁壘。
1. SPI NAND數據傳輸與接口機制
接口:標準 SPI / QSPI / Octal SPI
通用同步串行接口,無復雜協議命令集,僅靠片選、時鐘、移位完成通信,MCU通用 SPI控制器即可驅動,無需專用 SDIO。
傳輸方式:串行移位、頁訪問、指令簡單
讀指令:0x03(慢速)/ 0x0B(快速)+ 3字節(jié)地址 +串行輸出數據
最小訪問單位仍是頁(2KB/4KB),不支持真正字節(jié)隨機讀
全雙工 /半雙工串行,速度由時鐘決定,支持四線 /八線提速
2.為什么 SPI NAND可以存啟動代碼?
上電硬件直接訪問,無需軟件協議初始化
SPI時序簡單,MCU硬件 BootROM可直接控制 SPI時序,不需要發(fā)送復雜 SD命令,上電即可發(fā)送讀指令。
MCU硬件支持「SPI啟動加載機制」
主流 MCU(STM32、ESP32、RV1106、全志、瑞芯微)內置 BootROM,硬件實現:
上電自動配置 SPI時鐘
發(fā)送讀指令,從固定地址讀取小體積 Bootloader(如 4KB/8KB)
硬件直接搬運到片內 SRAM,再跳轉到 SRAM執(zhí)行
雖無 XIP,但滿足「一級啟動加載」需求
SPI NAND本身不支持 XIP,但硬件加載流程固化在 BootROM,屬于「硬件預加載 → RAM執(zhí)行」,完美避開軟件依賴,實現可靠啟動。
優(yōu)劣勢總結

優(yōu)勢:容量大(1Gb~8Gb+)、成本低、引腳極少(4~10腳)、兼容通用 SPI、支持硬件啟動、適合中大容量啟動 +存儲
劣勢:無 XIP、頁訪問、隨機讀取慢、擦除以塊為單位、需依賴 MCU BootROM適配
定位:主流低成本大容量啟動介質(IoT、機頂盒、屏驅、工控)
五、NOR Flash:真正原生支持啟動,XIP王者
NOR Flash是最早為代碼存儲設計的非易失存儲,架構最接近 SRAM,是啟動最穩(wěn)定、最通用的方案,分并行 NOR(傳統)和 SPI NOR(主流小容量)。
1. NOR Flash數據傳輸與接口機制
(1)并行 NOR(經典啟動架構)
總線結構:獨立地址線 +數據線 +控制信號(CE/OE/WE)
與 CPU總線直連,地址直接映射,完全等同于訪問靜態(tài)內存。
傳輸方式:并行同步 /異步、字節(jié)級隨機讀取
最小單位:字節(jié)(8bit)
任意地址直接讀,無命令握手、無頁等待
讀取延遲 ns~us級,完全匹配 CPU取指速度
(2)SPI NOR(當前小容量主流)
接口:SPI/QSPI/Octal SPI
傳輸:串行,但保留字節(jié)訪問能力
優(yōu)勢:支持 XIP(模式 - 0 /模式 - 3),CPU可直接在 Flash上執(zhí)行代碼,無需搬運到 RAM
2.為什么 NOR Flash是最理想的啟動介質?
原生支持 XIP,上電即執(zhí)行
無需加載到 RAM,CPU直接取指運行,BootROM極小即可啟動,適合裸機、RTOS、極簡系統。
無復雜初始化,總線直接映射
并行 NOR上電即被 CPU尋址;SPI NOR由硬件自動配置時序,無協議依賴、無軟件參與。
字節(jié)級隨機讀取、低延遲、穩(wěn)定可靠
無頁訪問、無壞塊設計(工業(yè)級極少壞塊)、無 FTL、地址固定,完全滿足啟動代碼頻繁跳轉、隨機訪問需求。
3. NOR Flash優(yōu)劣勢總結
優(yōu)勢:支持 XIP、字節(jié)隨機讀、啟動最穩(wěn)定、延遲最低、兼容性最廣、全場景通用
劣勢:容量?。ㄍǔ?128Mb~2Gb)、價格高、并行 NOR引腳多、擦除速度慢
定位:關鍵啟動代碼、Bootloader、配置區(qū)、車規(guī) /工控 /高可靠場景
六、終極對比:傳輸方式與啟動能力核心差異(精華總結)
1.數據傳輸方式本質區(qū)別
SD NAND(SDIO)
協議型半雙工傳輸 →命令 -響應 -數據塊傳輸 →頁訪問 →不支持隨機讀 →必須軟件驅動
SPI NAND(SPI)
串行移位傳輸 →指令 +地址 +數據幀格式 →頁訪問 →硬件可直接讀 →無 XIP
NOR Flash(并行 / SPI NOR)
并行總線 /串行字節(jié)訪問 →地址直接映射 →字節(jié)隨機讀 →支持 XIP →上電即取指
2.啟動能力差異根源
SD NAND:協議太重、上電不可用、無 XIP、地址不透明 →不能啟動
SPI NAND:接口簡單、硬件可加載、無 XIP →可啟動(依賴 MCU硬件加載)
NOR Flash:總線直連、XIP、隨機讀、穩(wěn)定 →原生完美啟動
3.三類存儲優(yōu)劣勢總表
七、工程選型指南:該用誰?
必須用 NOR Flash
車規(guī)、醫(yī)療、工控、高可靠、低延遲
極簡系統、無 OS、RTOS、需 XIP
啟動代碼?。? 16MB)
優(yōu)先用 SD NAND
IoT、消費電子、機頂盒、智能屏
需要大容量(≥ 256MB)+啟動二合一
MCU支持 SPI啟動加載
不用 SD NAND存啟動代碼
僅用于:數據盤、日志、多媒體、升級固件備份
啟動必須由 NOR / SPI NAND負責,SD NAND只做數據層
八、結語:不是性能問題,是架構定位問題
SD NAND不能啟動,不是速度不夠,而是定位為「數據存儲設備」,采用 SDIO協議、塊訪問、FTL映射,完全為文件系統與大容量讀寫設計,違背 CPU啟動的總線級、隨機取指、上電即用規(guī)則。
SPI NAND通過簡單 SPI接口 +硬件 BootROM加載,折中實現大容量啟動;NOR Flash則以XIP、字節(jié)隨機讀、總線直連,成為最穩(wěn)定的啟動黃金標準。
一句話記住選型本質:
SD NAND是「盤」,SPI NAND是「可啟動的盤」,NOR Flash是「真正的啟動內存」。
審核編輯 黃宇
-
SPI
+關注
關注
17文章
1885瀏覽量
101179 -
SD NAND
+關注
關注
0文章
112瀏覽量
1816
發(fā)布評論請先 登錄
國產SPI NOR Flash接口閃存介紹
從NOR轉向使用CS SD NAND:為什么必須加入緩存(Cache)機制?
從NOR Flash到NAND Flash和SD NAND,從底層結構到應用差異
SD NAND 接口協議解析:SPI 與 SDIO 模式區(qū)別及適配方法
FAQ_MA35_Family_Linux 如何從沒有 NAND 的 SPI-NAND 啟動?
SPI NOR FLASH是什么,與SPI NAND Flash的區(qū)別
【嵌入式開發(fā)】SD卡—雷龍 SD NAND
什么是Flash閃存以及STM32使用NAND Flash
兆易創(chuàng)新推出GD5F1GM9系列高速QSPI NAND Flash
兆易創(chuàng)新推出GD5F1GM9系列高速QSPI NAND Flash
NAND Flash與SD NAND的存儲扇區(qū)架構差異
SD NAND 為何不能存啟動代碼,SPI NAND 與 NOR Flash 卻可以 —— 接口、傳輸、啟動機制全對比
評論