4. 启动介质与引导设备选择

航电计算平台的启动链从复位向量开始,而复位向量最终指向的物理存储介质,决定了整个平台“从哪里取第一段代码”。在工程实践中,可选的引导介质主要有四类:NOR Flash、NAND Flash、eMMC 和 SD 卡,此外还有网络引导(TFTP/PXE)作为补充手段。它们并不是可以随意互换的“存储选项”,而是分别对应不同的硬件接口、访问时序、可靠性等级和生命周期管理方式。选型时如果只看容量和价格,往往会在后期遇到启动时间超标、坏块管理复杂、无法在线升级或适航取证困难等问题。

四类介质的硬件接口与访问特征

NOR Flash 通常通过 SPI 或并行总线(如 CFI 接口)连接处理器。它的最大特点是支持片内执行(XIP),CPU 可以直接从 NOR 地址空间取指运行,无需先把代码搬运到 RAM。这使得 NOR 非常适合存放 BootROM 之后的第一级引导程序(如 U-Boot SPL 或自定义 Bootloader)。典型容量在 2MB~64MB 之间,读取速度快、随机访问延迟低,但写入和擦除速度慢、单位成本高。在航电平台中,NOR 常被用作“不可变”的引导起点,存放最关键的启动头和硬件初始化代码。

NAND Flash 通过并行或 SPI 接口连接,容量远大于 NOR(常见 128MB~4GB),单位成本低,但存在坏块、位翻转和需要 ECC 校验的问题。NAND 不支持 XIP,必须先把数据读到 RAM 中再执行。因此它通常用于存放内核镜像、文件系统或第二级引导程序。使用 NAND 时,处理器或控制器必须支持硬件 ECC,并且引导程序需要具备坏块管理和镜像冗余能力。在航电环境中,NAND 的可靠性需要通过磨损均衡和定期巡检来保证。

eMMC 可以理解为“NAND + 控制器 + 标准接口”的封装体。它通过 MMC 接口与处理器连接,内部集成了坏块管理、ECC、磨损均衡和分区管理。eMMC 的启动分区(Boot Partition)可以被配置为引导源,处理器上电后直接从 eMMC 的 Boot0/Boot1 分区读取引导代码。典型容量为 4GB~64GB,接口速率可达 HS400(约 400MB/s)。eMMC 的优点是集成度高、软件复杂度低、容量大,适合存放完整的操作系统镜像和日志数据;缺点是焊死在板上,一旦损坏难以更换,且内部管理对系统不可见。

SD 卡通过 SDIO 接口连接,物理上可插拔,常用于开发调试、现场升级或数据加载。SD 卡的优点是便携、通用、容量灵活;缺点是连接器在振动和温度循环下可能接触不良,且消费级 SD 卡的寿命和温度范围通常不满足航电环境要求。因此 SD 卡在航电平台中更多作为“维护接口”而非主引导介质。网络引导则通过以太网接口,利用 TFTP 或 PXE 从地面服务器加载镜像,适合批量生产和实验室调试,但依赖网络可用性,不适合作为飞行中的主引导路径。

启动介质硬件接口与选型维度对照 接口类型 · 访问方式 · 典型容量 · 可靠性 · 适用角色 NOR Flash 接口:SPI / 并行 CFI 访问:支持 XIP 片内执行 容量:2MB ~ 64MB 读速:快,随机延迟低 写/擦:慢,成本高 典型角色 第一级引导 / BootROM 后 硬件初始化代码 选型要点 不可变、高可靠 启动时间可预测 风险 容量小,无法存内核 擦写寿命有限 航电适用 主引导起点首选 需冗余镜像 NAND Flash 接口:并行 / SPI 访问:需搬移到 RAM 容量:128MB ~ 4GB 读速:中等,页读取 写/擦:较快,成本低 典型角色 内核镜像 / 文件系统 第二级引导程序 选型要点 需硬件 ECC 坏块管理 + 冗余 风险 坏块、位翻转 需磨损均衡 航电适用 大容量数据存储 需定期巡检 eMMC 接口:MMC / SDIO 访问:Boot 分区引导 容量:4GB ~ 64GB 速率:HS400 ~ 400MB/s 集成:ECC + 磨损均衡 典型角色 完整 OS 镜像 日志 / 配置数据 选型要点 软件复杂度低 分区管理标准化 风险 焊死不可更换 内部管理不可见 航电适用 主存储 + 引导 需选工业级/车规级 SD 卡 接口:SDIO / SPI 访问:可插拔 容量:4GB ~ 128GB 速率:UHS-I ~ 104MB/s 成本:低,通用性强 典型角色 开发调试 / 现场升级 数据加载 选型要点 便携、容量灵活 维护接口定位 风险 振动/温度下接触不良 消费级寿命不足 航电适用 非主引导路径 需宽温工业卡 网络引导 接口:以太网 协议:TFTP / PXE 容量:受服务器限制 速率:100M ~ 1Gbps 依赖:网络可用性 典型角色 批量生产 实验室调试 选型要点 镜像集中管理 快速迭代 风险 网络中断即失败 安全性需保障 航电适用 地面维护专用 非飞行主路径 选型决策顺序:启动时间要求 → 容量需求 → 可靠性等级 → 可维护性 → 成本与供货周期

选型依据:从启动时间、容量到可靠性

在航电计算平台中,选型的第一约束通常是启动时间。以某型飞控计算机为例,要求从上电到进入主应用不超过 2 秒。如果使用 NOR 存放第一级引导,SPI 时钟 50MHz 下读取 256KB 引导代码约需 40ms,加上硬件初始化和 DDR 训练,整体可控。如果改用 NAND 作为第一级引导,则需要先加载到内部 SRAM,再执行搬运,启动时间会增加数百毫秒,且 NAND 的页读取和 ECC 校验会引入不确定性。因此,对启动时间敏感的场合,NOR 作为第一级引导几乎是默认选择。

容量需求决定了第二级和第三级介质的选型。如果平台需要运行完整的 Linux 或 VxWorks 镜像,加上文件系统和日志分区,总容量通常在 2GB 以上,此时 eMMC 比 NAND 更合适,因为 eMMC 的控制器屏蔽了坏块管理和 ECC 细节,软件只需按块设备操作。如果平台只需要存放少量配置和日志,NAND 或 NOR 就足够。SD 卡则适合容量需求波动大、需要现场更换的场合,但必须选用宽温工业级产品,并设计防振卡座。

可靠性等级是航电选型与消费电子最大的区别。NOR 的位翻转率低,适合存放不可变代码;NAND 和 eMMC 都需要 ECC 和坏块管理,且 eMMC 的内部管理策略对系统不可见,因此需要选择明确标注工业级或车规级的产品,并要求供应商提供失效率数据。网络引导虽然不涉及本地存储磨损,但依赖网络链路和服务器,在飞行环境中不可用,只能作为地面维护手段。

典型配置示例与启动路径

下面给出一个航电计算平台的典型启动介质配置,用于说明各介质如何协同工作:

启动介质配置示例(教学假设):
  NOR Flash (SPI, 16MB)   → BootROM 后第一级引导:时钟/DDR/看门狗初始化
  eMMC (HS400, 32GB)      → Boot0 分区:第二级引导 + 内核镜像
                            User 分区:根文件系统 + 日志 + 配置
  SD 卡 (工业级, 32GB)    → 地面维护:镜像升级、数据导出
  以太网 (1000BASE-T)     → 地面调试:TFTP 加载测试镜像

启动路径:
  上电 → BootROM 从 NOR 读取 SPL → SPL 初始化 DDR
       → SPL 从 eMMC Boot0 读取 U-Boot → U-Boot 加载内核
       → 内核挂载 eMMC User 分区根文件系统 → 启动应用

在这个配置中,NOR 只存放最关键的初始化代码,容量小但可靠性高;eMMC 承担大容量存储和主要引导职责;SD 卡和网络引导作为维护通道,不参与正常飞行启动。这种分层设计既满足了启动时间要求,又兼顾了容量和可维护性。

在实际选型时,建议向处理器厂商确认 BootROM 支持的引导介质顺序。例如,某些 SoC 的 BootROM 固定按 NOR → eMMC → SD → 网络的顺序尝试,如果 NOR 中的引导头校验失败,会自动跳到 eMMC。理解这一顺序,可以合理设计冗余引导路径:在 NOR 中存放主引导,在 eMMC Boot0 中存放备份引导,当主引导损坏时自动切换。
NAND 和 eMMC 的坏块管理策略必须在引导程序中正确处理。如果第二级引导程序没有实现坏块跳过和镜像冗余,一旦引导块损坏,平台将无法启动。建议在 eMMC Boot0 和 Boot1 分区中存放两份相同的引导镜像,并在引导头中加入版本号和校验和,由 BootROM 或第一级引导自动选择有效副本。

总结来看,NOR、NAND、eMMC、SD 卡和网络引导在航电计算平台中各有明确分工:NOR 负责“可靠地开始”,eMMC 负责“完整地运行”,NAND 负责“低成本地存储”,SD 卡和网络引导负责“灵活地维护”。选型时先确定启动时间约束,再评估容量和可靠性等级,最后结合可维护性和供货周期做出决策。只有把介质特性与启动链各阶段的实际需求对应起来,才能构建出既满足实时性又具备容错能力的引导架构。