0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SD NAND 为何不能存启动代码,SPI NAND 与 NOR Flash 却可以 —— 接口、传输、启动机制全对比

吕辉 来源:jf_40298777 作者:jf_40298777 2026-02-09 11:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式物联网、工控、车载等硬件系统中,启动存储器(Boot Flash)是决定设备能否上电即跑、稳定可靠的核心器件。实际选型中,SD NAND、SPI NAND、NOR Flash是常见的非易失性存储方案,但业界有一条明确共识:SD NAND几乎不用于存放启动代码,而 SPI NAND和 NOR Flash是主流启动介质

这一差异并非单纯成本或容量问题,而是由接口协议、CPU访问机制、XIP能力、初始化流程、传输方式、可靠性设计共同决定。本文从启动原理、数据传输、硬件交互、优劣势及场景适配四个维度,完整拆解三类存储的核心区别,帮你彻底理解启动存储的选型逻辑。

一、先搞懂:嵌入式设备「启动」的核心硬件要求

设备上电后,CPU/MCU要完成复位、取指、执行,对启动存储有 4个刚性要求,缺一不可:

上电即访问,无复杂前置初始化:CPU刚复位时,时钟、外设、驱动均未配置,存储必须能被硬件直接寻址读取,无需软件协议握手、状态机配置。

支持 XIP(eXecute-In-Place,就地执行):代码可直接在 Flash中运行,无需先搬运到 RAM,满足极小体积 BootROM、片上 RAM不足的场景。

字节级 /任意地址随机读取:CPU取指是单字节 /指令级随机跳转,不允许仅支持块 /页批量读取。

低延迟、时序确定、无坏块 / FTL依赖:启动阶段无错误处理、坏块管理、ECC校验软件,存储必须保证地址稳定、读取可靠。

满足以上条件,才能作为一级启动介质(存放 Bootloader、第一阶段启动代码);不满足则只能作为数据存储 /二级镜像存储(如系统固件、文件、日志)。

二、核心结论先行:三类存储的启动能力本质差异

wKgZO2mJUYGAQY_0AAA7vPv6cs4474.png

下面从接口与传输方式、启动限制、优劣势逐层拆解

三、SD NAND:为什么不适合存放启动代码

SD NAND本质是封装成 SD形态的 NAND Flash裸片,内置 SD控制器,对外遵循 SDIO 协议,看似引脚少、易用,但违背启动存储的硬件规则。

1. SD NAND数据传输与接口机制

接口:SDIO总线(CMD + DAT0~3 + CLK)

属于主机 -从机协议型接口,不是简单的地址 /数据总线,必须由主机 SD控制器发送标准命令交互:

上电发送 CMD0软复位

CMD1 / CMD8做电压识别、卡初始化

CMD9/CMD10获取 CID/CSD配置

读数据必须用 CMD17(单块读)+地址 +等待响应 +整页传输

传输方式:半双工、块 /页为最小单位

不支持单字节随机读,只能整页(2KB/4KB)读写

读写必须经过命令 -响应 -数据三步握手,延迟高、时序不确定

数据方向切换需重新配置总线,无法像总线一样随时取指

2.三大问题:无法承担启动职责

无 XIP,完全不能就地执行

CPU无法直接从 SD NAND取指,必须先通过驱动把整页数据搬到 RAM,再从 RAM执行。但启动初期无驱动、无 RAM初始化,陷入 “先有鸡还是先有蛋”死循环。

依赖 SD控制器与软件协议,上电不可直接访问

SDIO是复杂高速协议,需要时钟配置、相位校准、状态机切换,纯硬件无法自动完成初始化,必须软件参与,而上电第一步就是取指,不可能先运行驱动。

内置 FTL、坏块、ECC,启动阶段不可控

SD NAND为兼容存储卡场景,内置损耗均衡、坏块替换、ECC校验,逻辑地址与物理地址映射不透明,启动代码不能跨块跳转、地址不稳定,极易出现上电读失败、指令错乱。

3. SD NAND优劣势总结

优势:容量大(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字节地址 +串行输出数据

最小访问单位仍是页(2KB/4KB),不支持真正字节随机读

全双工 /半双工串行,速度由时钟决定,支持四线 /八线提速

2.为什么 SPI NAND可以存启动代码?

上电硬件直接访问,无需软件协议初始化

SPI时序简单,MCU硬件 BootROM可直接控制 SPI时序,不需要发送复杂 SD命令,上电即可发送读指令。

MCU硬件支持「SPI启动加载机制」

主流 MCU(STM32ESP32、RV1106、全志、瑞芯微)内置 BootROM,硬件实现:

上电自动配置 SPI时钟

发送读指令,从固定地址读取小体积 Bootloader(如 4KB/8KB)

硬件直接搬运到片内 SRAM,再跳转到 SRAM执行

虽无 XIP,但满足「一级启动加载」需求

SPI NAND本身不支持 XIP,但硬件加载流程固化在 BootROM,属于「硬件预加载 → RAM执行」,完美避开软件依赖,实现可靠启动。

优劣势总结

wKgZO2mJUYGAejpyAAA7vPv6cs4017.png

优势:容量大(1Gb~8Gb+)、成本低、引脚极少(4~10脚)、兼容通用 SPI、支持硬件启动、适合中大容量启动 +存储

劣势:无 XIP、页访问、随机读取慢、擦除以块为单位、需依赖 MCU BootROM适配

定位:主流低成本大容量启动介质(IoT、机顶盒、屏驱、工控)

五、NOR Flash:真正原生支持启动,XIP王者

NOR Flash是最早为代码存储设计的非易失存储,架构最接近 SRAM,是启动最稳定、最通用的方案,分并行 NOR(传统)和 SPI NOR(主流小容量)。

1. NOR Flash数据传输与接口机制

(1)并行 NOR(经典启动架构)

总线结构:独立地址线 +数据线 +控制信号(CE/OE/WE)

与 CPU总线直连,地址直接映射,完全等同于访问静态内存。

传输方式:并行同步 /异步、字节级随机读取

最小单位:字节(8bit)

任意地址直接读,无命令握手、无页等待

读取延迟 ns~us级,完全匹配 CPU取指速度

(2)SPI NOR(当前小容量主流)

接口:SPI/QSPI/Octal SPI

传输:串行,但保留字节访问能力

优势:支持 XIP(模式 - 0 /模式 - 3),CPU可直接在 Flash上执行代码,无需搬运到 RAM

2.为什么 NOR Flash是最理想的启动介质?

原生支持 XIP,上电即执行

无需加载到 RAM,CPU直接取指运行,BootROM极小即可启动,适合裸机、RTOS、极简系统。

无复杂初始化,总线直接映射

并行 NOR上电即被 CPU寻址;SPI NOR由硬件自动配置时序,无协议依赖、无软件参与

字节级随机读取、低延迟、稳定可靠

无页访问、无坏块设计(工业级极少坏块)、无 FTL、地址固定,完全满足启动代码频繁跳转、随机访问需求。

3. NOR Flash优劣势总结

优势:支持 XIP、字节随机读、启动最稳定、延迟最低、兼容性最广、全场景通用

劣势:容量小(通常 128Mb~2Gb)、价格高、并行 NOR引脚多、擦除速度慢

定位:关键启动代码、Bootloader、配置区、车规 /工控 /高可靠场景

六、终极对比:传输方式与启动能力核心差异(精华总结)

1.数据传输方式本质区别

SD NAND(SDIO)

协议型半双工传输 →命令 -响应 -数据块传输 →页访问 →不支持随机读 →必须软件驱动

SPI NAND(SPI)

串行移位传输 →指令 +地址 +数据帧格式 →页访问 →硬件可直接读 →无 XIP

NOR Flash(并行 / SPI NOR)

并行总线 /串行字节访问 →地址直接映射 →字节随机读 →支持 XIP →上电即取指

2.启动能力差异根源

SD NAND:协议太重、上电不可用、无 XIP、地址不透明 →不能启动

SPI NAND:接口简单、硬件可加载、无 XIP →可启动(依赖 MCU硬件加载)

NOR Flash:总线直连、XIP、随机读、稳定 →原生完美启动

3.三类存储优劣势总表

七、工程选型指南:该用谁?

必须用 NOR Flash

车规、医疗、工控、高可靠、低延迟

极简系统、无 OS、RTOS、需 XIP

启动代码小(< 16MB)

优先用 SD NAND

IoT、消费电子、机顶盒、智能屏

需要大容量(≥ 256MB)+启动二合一

MCU支持 SPI启动加载

不用 SD NAND存启动代码

仅用于:数据盘、日志、多媒体、升级固件备份

启动必须由 NOR / SPI NAND负责,SD NAND只做数据层

八、结语:不是性能问题,是架构定位问题

SD NAND不能启动,不是速度不够,而是定位为「数据存储设备」,采用 SDIO协议、块访问、FTL映射,完全为文件系统与大容量读写设计,违背 CPU启动的总线级、随机取指、上电即用规则。

SPI NAND通过简单 SPI接口 +硬件 BootROM加载,折中实现大容量启动;NOR Flash则以XIP、字节随机读、总线直连,成为最稳定的启动黄金标准。

一句话记住选型本质:

SD NAND是「盘」,SPI NAND是「可启动的盘」,NOR Flash是「真正的启动内存」。


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1906

    浏览量

    102436
  • SD NAND
    +关注

    关注

    0

    文章

    131

    浏览量

    1894
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NAND科普:MK米客方德 SD NANDSPI NAND的区别和应用

    SD NANDSPI NAND都有NAND FLASH
    的头像 发表于 05-19 15:47 499次阅读
    <b class='flag-5'>NAND</b>科普:MK米客方德 <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b> 和 <b class='flag-5'>SPI</b> <b class='flag-5'>NAND</b>的区别和应用

    低功耗国产SPI NAND Flash存储芯片优势解析

    在嵌入式存储领域,SPI NAND Flash正凭借其大容量与简单接口的独特组合,成为越来越多成本敏感型设计的首选方案。与传统并行NAND
    的头像 发表于 05-15 15:41 126次阅读

    智能儿童玩具存储方案选型:SPI NOR/NAND/SD NAND 性能 / 成本 / 可靠性对比

    根本上杜绝了这样情况的发生。经过一系列市场调研和技术分析,最终我们选用了CS创世 CSNP4GCR01-BPW作为我们的存储芯片,它可以通过 SPI/SD 接口直连全志 F1C100S
    发表于 04-14 17:12

    NOR FLASHNAND FLASH对比

    FLASH芯片的擦写次数一般来说都是有限的,目前主流产品的擦写寿命普遍在10万次左右。当FLASH芯片接近使用寿命终点时,写操作可能会出现失败。不过,需要注意NAND FLASH采用整
    的头像 发表于 03-31 16:58 658次阅读

    NOR FlashNAND flash有什么区别

    在嵌入式系统、移动设备与存储领域,NOR FlashNAND Flash是两种最常见的非易失性存储技术。尽管它们都属于闪存(Flash E
    的头像 发表于 03-11 15:08 879次阅读
    <b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>和<b class='flag-5'>NAND</b> <b class='flag-5'>flash</b>有什么区别

    NOR FlashNAND FlashSD NAND,从底层结构到应用差异

    nor flash,nor nand,sd nand,spi
    的头像 发表于 03-05 18:24 557次阅读
    从<b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b> 到 <b class='flag-5'>NAND</b> <b class='flag-5'>Flash</b> 和<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>,从底层结构到应用差异

    NOR FlashNAND FlashSD NAND,从底层结构到应用差异

    )   磨损均衡与垃圾回收   OP(预留空间)策略   当这些机制完善后,尤其是 SLC NAND,其性能和寿命远优于 NOR,且容量价格优势明显。   六、CS SD
    发表于 03-05 18:23

    SPI NOR FlashSPI NAND Flash存储芯片的区别

    SPI NOR FlashSPI NAND Flash并非相互替代,而是互补关系。
    的头像 发表于 01-29 16:58 1063次阅读
    <b class='flag-5'>SPI</b> <b class='flag-5'>NOR</b> <b class='flag-5'>Flash</b>和<b class='flag-5'>SPI</b> <b class='flag-5'>NAND</b> <b class='flag-5'>Flash</b>存储芯片的区别

    单片机Flash是什么类型

    廉价。 用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除
    发表于 01-04 07:10

    NOR转向使用CS SD NAND:为什么必须加入缓存(Cache)机制

    在传统使用 NOR Flash 的系统中,工程师通常习惯“随写随”:写入数据粒度小,可以随机写入,不需要复杂的缓存或写入管理机制。不过随着
    的头像 发表于 12-16 17:11 1548次阅读
    从<b class='flag-5'>NOR</b>转向使用CS <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>:为什么必须加入缓存(Cache)<b class='flag-5'>机制</b>?

    NOR FlashNAND FlashSD NAND,从底层结构到应用差异

    )   磨损均衡与垃圾回收   OP(预留空间)策略   当这些机制完善后,尤其是 SLC NAND,其性能和寿命远优于 NOR,且容量价格优势明显。   六、CS SD
    发表于 12-08 17:54

    SD NAND 接口协议解析:SPI 与 SDIO 模式区别及适配方法

    SD NAND 之所以能被 STM32、GD32 等 MCU 控制,核心是通过 “接口协议” 建立沟通规则 —— 就像两个人交流需要共同语言,SPI 和 SDIO 就是
    的头像 发表于 10-31 14:46 1837次阅读
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b> <b class='flag-5'>接口</b>协议解析:<b class='flag-5'>SPI</b> 与 SDIO 模式区别及适配方法

    FAQ_MA35_Family_Linux 如何从没有 NANDSPI-NAND 启动

    FAQ_MA35_Family_Linux 从没有 NANDSPI-NAND 启动
    发表于 09-02 07:30

    SPI NOR FLASH是什么,与SPI NAND Flash的区别

    SPI NOR FLASH是什么?   SPI NOR FLASH是一种非易失性存储器,它通过串
    的头像 发表于 08-21 09:26 2001次阅读

    什么是Flash闪存以及STM32使用NAND Flash

    NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些。 易于使用 可以非常直接地使用基于NOR的闪存,可以像其他存储器那样
    发表于 07-03 14:33