ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

SEMPER NOR Flash获ASIL-D认证,车载存储安全选型实战解析

2026/8/29 15:28:27 拓冰建站 浏览量
SEMPER NOR Flash获ASIL-D认证,车载存储安全选型实战解析 我这两年做车载ECU相关的存储方案最常被同行问的一句话就是你选的这款Flash拿到ASIL-D认证了没以前这个问题很简单大家默认Flash这种外围器件不会直接威胁到功能安全随便选个车规级的凑合用就行。直到我自己在安全相关项目的FMEDA分析里因为一颗NOR Flash的故障覆盖率不够被审计卡了一个多月才真正意识到在ISO 26262里存储介质从来都不是边缘角色而恰恰是功能安全最容易翻车的一环。Infineon的SEMPER系列NOR Flash拿到ASIL-D功能安全认证这件事放在三五年前很难想象会成为一个行业头条。但现在它在车载电子圈掀起的讨论热度完全不亚于一颗新的主控SoC发布。原因很简单车里的ADAS、自动驾驶域控制器、数字仪表盘、网关甚至高配车型的智能大灯都在往更安全、更可靠的方向走而NOR Flash作为启动代码和关键数据的落脚点它的任何一次单比特翻转或读故障都可能让整个安全链路功亏一篑。这篇文章我就从这次认证切入把汽车功能安全等级、NOR和NAND怎么选、SEMPER到底靠什么拿下认证以及我们做实际方案时的落地建议一次性聊透。1. 一块存储芯片上的安全认证为什么能惊动整个车规圈1.1 功能安全的ASIL等级到底是什么汽车圈谈安全必提ISO 26262这是国际标准化组织专门为道路车辆电子电气系统制定的功能安全标准。它把整车安全目标按照危害的严重度、暴露概率和可控性划分为A、B、C、D四个等级其中D是天花板要求最极端。ASIL-D不是某一个模块必须做到什么水平而是从系统层面出发要求每个相关的软硬件单元都具备足够的安全完整性。放到存储器件上就意味着这颗芯片必须能在规定的生命周期内以可证明、可量化的方式及时检测并处理各种随机硬件故障或系统性故障。很多刚入行的同事会有一个误区ASIL-D认证是MCU或SoC才需要考虑的事情外挂存储芯片无非是擦写次数够、读速度够、温度范围够就行了。这个想法在我早期做项目时也差不多。直到我们做一套面向L2辅助驾驶系统的域控制器功能安全经理拿着剪贴板挨个核对BOM里每一颗器件的Safety Manual时这颗Flash没有完整的安全认证资料整个项目的Safety Case就押在这里下不来。那个阶段你才会体会到功能安全是一个从传感器到执行器的完整链条任何一环的可靠性证据缺失都会拖慢整台车的量产进度。ASIL-D落到Flash上到底意味着什么拆开看其实很具体。第一芯片需要有足够强的故障检测能力比如读路径上的ECC校验闪存单元阵列的故障检测以及电源电压的实时监控。第二芯片本身必须提供一套经过安全认证的使用模式开发者在普通模式下加一道初始化指令就能把它切换成一个带完整自检和故障报告的安全工作状态。第三器件必须满足基于随机硬件故障指标的量化要求也就是常说的SPFM、LFM这些指标要达到ISO 26262第5部分规定的阈值。这三点摆在一起已经不是在Flash裸片上贴一张车规级标签就能解决的事了。1.2 SEMPER系列把安全认证这件事做到了什么层级英飞凌在2020年前后正式宣布SEMPER系列NOR Flash获得ASIL-D功能安全认证而且是ISO 26262和IEC 61508双认证。IEC 61508是工业领域功能安全的基础标准车规的ISO 26262很多底层方法和逻辑都源于它。一款存储芯片同时拿到这两张证书基本意味着它在功能安全设计上不是针对某一个行业特调的而是API级别、机制级别都满足通用安全完整性要求。这个认证的含金量可以从几个维度来看。首先是发布时间SEMPER系列本身是英飞凌在2018年推出的全新架构NOR Flash专门面向汽车和工业应用设计而不是老产品线改名送检。其次是认证机构并不是厂商自己出一份测试报告就行必须要由独立的第三方功能安全认证机构按照标准进行评估出具认证证书后器件才能被称为ASIL-D ready。英飞凌这份认证走的是TÜV Rheinland等第三方机构的评估流程整套安全档案涵盖Safety Manual、FMEDA报告、安全分析数据和验证报告这些文件最终会以Safety Package的方式提供给下游客户做系统级的Safety Case集成。我见过不少芯片厂商拿满足车规AEC-Q100来模糊概念但AEC-Q100主要管的是电子元器件的可靠性测试标准温循、老化、ESD、闩锁等它和功能安全是两条完全不同的赛道。AEC-Q100合格意味着这颗料在恶劣环境下不容易坏功能安全认证则意味着这颗料在坏的前后系统能被可靠地告知和接管。SEMPER那张ASIL-D证书本质上是在可靠性之外额外加了一层系统可证明安全的保险。1.3 为什么说存储器的ASIL-D认证难度不输主控MCU和SoC的功能安全设计可以靠大量冗余CPU、锁步核、ECC内存、时钟和电压监控电路来实现这些手段在实现层面比较容易理解和验证。Flash就不一样了它本身就是存储介质一颗裸片动辄几亿个存储单元每个单元都可能发生随机故障、串扰、数据保持失效而你没法像CPU跑软件自检那样给每一个存储单元单独安排一个哨兵。所以Flash厂商通常在三个层面上做文章。第一层是阵列层面的安全机制比如每256字节或每512字节数据后面附带ECC比特读操作时自动纠错多比特错误主动报故障。第二层是芯片周边电路的监控包括电源电压欠压或过压检测、温度传感器、内部时钟监控确保芯片即便在高低温剧烈变化或供电波动时也不会出现静默的数据损坏。第三层是安全软件包允许Host端在系统初始化时对整个Flash执行GdBSGood die Bad die Screening自检并把结果记录在状态寄存器里系统MCU可以用一段安全例行程序轮询这个状态。这三层设计叠加起来的复杂度和验证成本实际上不比设计一颗小型MCU低多少。再加上ISO 26262对系统性失效和随机硬件失效的盲区分析都要求有详尽的文档支撑Flash这种底层介质要拿出能说服审计师的数据比如每百万小时故障率诊断覆盖率是多少就要做海量的加速老化测试和故障注入实验。SEMPER能把这些都做成体系化的产品能力并公之于众这背后确实是工程投入的体现。2. NOR Flash和NAND Flash的路线之争车载存储选型背后的逻辑2.1 咱先把两者的本质区别讲透很多人听到Flash就觉得它们是同一种东西其实NOR和NAND在工作原理、接口方式和可靠性特征上差异很大。最简单的理解方式NOR Flash的特点是按字节随机读特别快读速度高地址线完整就像一本可以随机翻页的书任何时候想读哪一页翻过去就行NAND Flash则像一卷电影胶片读取时必须按块或者按页顺序来随机访问能力弱但胜在单位容量成本低、写入速度快所以适合存放大量数据。从电路结构上看NOR的存储单元是并联的每位都接在位线上所以可以做到字节级随机读取但单元面积大容量做不大NAND的单元是串联的面积小容量能轻松做到几GB甚至更大但没有完整的随机寻址能力。车载系统里NOR一般用来存XIPExecute in Place代码也就是系统启动时MCU直接映射它的地址空间取指令执行不需要先把代码拷贝到RAM里这对上电瞬间的快速启动至关重要NAND则更多用来存比较大块的数据镜像、日志、行车记录素材这些。很多人会问我现在很多车上的MCU内部不是已经有Flash了吗为什么还要外挂一颗NOR原因就是内部Flash在容量、擦写次数和代码安全隔离上有很多限制。随着AUTOSAR、远程OTA、多级引导这些需求往里堆内部Flash动辄吃紧于是把关键代码放到外部NOR、把大块数据交给NAND或eMMC就成了主流做法。而SEMPER这种高端NOR切入的恰恰就是这第一层上电第一段代码的可靠性直接决定你的MCU能不能从启动时刻就处于一个安全可控的状态。2.2 车载场景下NOR Flash不可替代的三点理由第一是XIP执行。域控制器上电的那一瞬间主控芯片需要立刻执行初始化代码如果这段代码放在NAND里就必须先让NAND控制器做初始化、读页、纠错、搬运到RAM整套流程下来少说几百毫秒而当前主流安全方案对启动时间的要求越来越苛刻。NOR支持XIP之后上电即读即执行冷启动可以做到几十毫秒甚至更低。SEMPER的xSPI接口还支持DDR模式在单个SPI时钟周期内传输两个比特的数据进一步压缩代码加载时间这对于摄像头初始化、激光雷达校准这类时序敏感模块非常关键。第二是数据可靠性的保真度。NOR Flash的位翻转概率显著低于NAND这跟它的工作机理有关。NOR每个单元体积大、电荷保持能力更强在高温老化环境下数据保持特性比NAND稳定得多。对于存储安全启动代码、硬件配置表、校准参数这类一旦错一个bit系统就崩的关键数据低随机软错误率是刚需。SEMPER在此基础上又加了端到端ECCEnd-to-End ECC读出来的时候如果发现单比特错误DIE内部就自动纠正多比特错误则会在状态寄存器里明确报出来Host可以触发相应的安全处理路径。这个能力在NAND上当然也有但NAND管理的复杂度和软件开销完全是另一个量级。第三是故障模式的可控性。NAND在工作一段时间之后会出现坏块管理坏块几乎是文件系统或FTL层绕不开的工作NOR Flash的寿命模型更接近线性老化只要写次数没到规格书上限坏块概念基本可以忽略。做功能安全设计时故障模式越简单越可预测是铁律。你告诉审计师这颗NOR的故障模式只有读数据错误、写失败、速率漂移和你说要跑一套NAND坏块管理算法是完全不同的可信度。2.3 从热词搜索也能看出的选型焦虑最近nor flash和nand flash区别这类关键词搜索热度很高说明很多从业者依然在这一对基础概念上存在困惑。这不丢人因为现在的车载Memory拓扑确实比十多年前复杂太多一颗主控可能同时挂着Quad SPI的NOR做启动、SD/eMMC跑系统镜像、UFS做记录存储、还有一颗FRAM或EEPROM存关键配置。每个存储芯片在安全架构里的角色都不同它们需要的安全等级和配套机制也完全不一样。拿SEMPER这个家族本身来说它有标准Security和Secure两个不同层面的产品线一个是SEMPER Nano系列面向小容量、低功耗和更小的封装适合TWS耳机、智能传感器这些端侧设备另一个是SEMPER NOR系列主攻汽车和工业的更大容量。如果只看到NOR Flash四个字就以为任何容量和封装的SEMPER都能直接做到ASIL-D那就大错特错了。实际选型时需要先把系统里的存储角色画清楚哪颗负责启动代码、哪颗负责关键数据冗余、哪颗只是跑日志然后根据不同角色匹配不同的安全证据等级。这一步做得越早后面功能安全审计越省心。3. SEMPER系列凭什么通过ASIL-D认证安全机制的完整拆解3.1 端到端ECC只是起点故障报告链路才是精髓SEMPER的端到端ECC不是简单在裸片内部加几个校验位。它的设计思路是把检测-纠正-报告这三个动作串成一条完整的故障报告链路。读数据时芯片内部自动比较写入时的ECC校验码和读取时重新计算的校验码单比特错误当场修正并把修正行为记录到寄存器双比特或多比特错误无法修复芯片就把错误标志置位并通过状态寄存器或中断引脚通知Host。Host端的驱动只需要按约定周期轮询这个标志就能在上层软件里体现器件已经遇到了不可恢复错误赶紧进安全状态的逻辑。很多开发者在写Flash驱动的时候只关注读写擦这些基本命令很少有人会主动去读状态寄存器里的安全相关标志位。这在普通消费电子产品里确实无所谓但在功能安全项目里这就是审计师最喜欢挑刺的漏洞你的安全概念文档写了如果Flash报错要进Safe State结果软件里根本没有读取错误标志的例行程序这个概念就是一句空话。SEMPER这套机制的设计价值在于它把错误已经发生这件事以非常明确、可轮询、可中断的方式暴露给Host剩下的路由逻辑由系统软件来完成硬件和软件的边界非常干净。3.2 电压监控和GdBS自检从比特层面到系统层面的纵深防御SEMPER内部集成了针对VCC和VIO的电压监控电路一旦电压落到阈值以下内部逻辑会视危险程度触发不同的响应。轻度的电压偏差可能导致芯片进入写保护模式禁止新的编程和擦除操作避免在电源不稳的状态下把数据写得半半拉拉严重的则干脆让整个芯片处于复位状态输出高阻不给系统总线留下任何不确定的信号。这层机制对功能安全特别重要因为很多随机硬件故障的根因并不是存储阵列本身坏了而是供电瞬态导致内部逻辑状态跑飞把本是好的数据给写坏了。内置自检GdBSGood die Bad die Screening是SEMPER另一个被低估的功能。它在系统启动阶段可以对Flash阵列执行快速的栅氧化层缺陷筛查检测到异常的就及时报告让系统决定是否继续使用这颗器件还是进入安全降级模式。这非常像CPU启动时对缓存和寄存器做的Power-On Self-Test。认证文档里会把这套流程的具体操作序列、配置寄存器要求和使用限制写得非常详细开发者照做即可在系统层面获得对应的故障覆盖率贡献。3.3 通过SPI接口构建的安全能力闭环SEMPER走的是SPI/xSPI接口这和它支持XIP、支持DDR模式直接相关。别小看接口这层设计它的命令体系里专门为安全功能定义了一套扩展指令比如可以读取详细的故障状态、可以触发内部自检、可以查询器件配置的锁定状态。这套命令配合标准JEDEC SFDPSerial Flash Discoverable Parameters参数表让主机侧驱动可以用标准化的流程识别芯片能力、配置安全选项、获取诊断信息。从实践角度讲这意味着你把SEMPER接在一颗成熟的MCU上不需要为它单独写一套私有协议只要把SPI控制器按xSPI规范配置好然后用标准命令初始化参数表基本就能把安全能力跑起来。我在项目里习惯把这一步放在板级支持包的最早期阶段也就是汇编引导代码之后、主时钟稳定之前就通过轮询方式把Flash的安全状态寄存器读一遍。这时如果发现Flash报告了不可恢复错误直接从最底层拦截后面的Boot Flow不让系统带病启动。这个习惯我建议所有做功能安全域控制器的同行都养成。3.4 硬件安全概念怎么映射到MCU端的软件架构再往下走一步SEMPER的安全能力最终要靠MCU端软件去消费。比较合理的做法是在BSP层封装一个简单的Flash安全抽象模块模块对外提供三个核心接口——初始化时执行GdBS自检并返回通过/失败标志周期性轮询安全状态寄存器有错误就记录并触发系统事件上电阶段检查芯片是否处于正确的保护配置比如SRAM数据保护、OTP寄存器是否被意外改写。这个模块在AUTOSAR架构里可以放在MemIf或Flash Driver的位置在裸机架构里就放在Board Support目录里。关键是它要和系统级功能安全诊断通道打通不能让错误标志只是打印一条Log就没了而应该喂给E2E保护模块或Wdg看门狗管理模块最终导向系统定义的Safe State。这个链路不在SEMPER的芯片文档里它需要系统集成商自己设计。芯片的认证解决的是我能可靠地告诉你我出错了剩下的你听到报错后要做什么才是功能安全工程师真正的价值所在。4. 认证之外的那些事研发落地时的选型建议与踩坑记录4.1 不同容量、封装和温度等级别想当然SEMPER系列覆盖了从64Mb到1Gb的容量范围封装有WSON和BGA等好几种温度等级也按车规标准覆盖到-40℃到125℃。但这些细分型号并不都是同一时间拿到ASIL-D认证的。即使宣称整个产品家族支持ASIL-D功能安全同家族里不同料号的FMEDA参数和安全文档也可能存在细微差别。最稳妥的做法是在项目立项选型阶段就把目标料号的最终安全认证资料从英飞凌官网或本地FAE渠道拉取一遍核对证书上的型号范围是否包含你计划使用的精确料号不要只看产品线名称就默认都通过了。我踩过的一个比较经典的坑是用了一颗SEMPER Nano做MCU外部数据记录后来功能安全小组核对FMEDA时发现SEMPER Nano那条产品线主要面向消费和工业小型化应用场景认证覆盖的应用范围和主力SEMPER NOR并不完全一致。虽然它是车规级物料但在具体安全案例里能提供的证据等级和工作负荷条件与我们预期的等同主力SEMPER有明显差异结果只能重新调整设计方案。所以选型阶段必须逐型号核对这件事没有捷径。4.2 引脚布局、供电和复位设计对安全机制的影响三年前我做第一版原理图时为了走线方便把Flash的复位引脚直接连到了MCU一个普通GPIO上结果固件升级时偶尔触发Flash异常复位。后来排查发现问题出在GPIO在多路复用配置切换的瞬间产生了毛刺把Flash误复位了。SEMPER这类带安全功能的器件的复位和引脚控制对噪声和时序的要求比普通NOR更高因为安全机制本身就会监控这些引脚的状态。建议在设计阶段把所有控制引脚片选、复位、写保护都接到有内部上拉或者明确初始状态的GPIO上并全程保证它们在Flash初始化完成前不会出现不确定电平。供电部分同样要仔细处理。SEMPER内部有电压监控这意味着它希望自己的电源在启动过程中能快速稳定在规格范围内。如果供电轨上电斜率过慢芯片可能会一直处于欠压复位状态主机端表现为枚举不到Flash容易让人误判为硬件损坏。设计时优先选择带快速放电和软启动的电源芯片把上电时序放在整个板级时序设计早期就规划好。4.3 软件驱动层的轮询稳定性与故障转移我在上一节提到要周期性轮询Flash状态寄存器实际开发中这个轮询节奏也要仔细设计。太频繁了浪费CPU资源太稀疏了又可能错过一条关键故障。对于启动代码和关机流程期间的关键阶段我一般用查询方式在下一次命令执行前马上读取状态正常运行的稳态阶段则放到一个节流为10到50毫秒的循环任务里。如果系统对实时性要求特别高还可以用SEMPER的中断输出引脚让芯片在检测到严重错误时主动拉高/拉低一个GPIO来触发MCU的快速异常通道。还有一个容易忽略的点SEMPER有各种保护寄存器比如状态寄存器保护和OTP扇区锁。量产前一定要确认这些锁的配置是否已经固化到OTP里。如果有哪次固件升级误把某个保护位给开了后续擦写流程会莫名其妙地失败而且报错逻辑并不直观。防止的办法是在产线校准阶段就执行一次安全配置完整性检查把寄存器值读回来和基准配置做比对。4.4 结合功能安全审计的实战体会真正做功能安全提交时我们建了一套完整的Flash安全证据链至少包括SEMPER官方的Safety Manual对应料号的FMEDA报告芯片厂商提供的验证报告我们自己的集成测试报告包括故障注入测试、POR测试、电压跌落测试软件安全机制的单元测试和覆盖率报告。这五份文件放在一起审计师才能在系统层面确信Flash这颗器件的随机硬件失效已经被充分诊断和响应。故障注入测试尤其值得多说两句。很多团队做测试时不敢真正让Flash出故障总觉得这是把好端端的代码跑坏其实安全的重点是你敢不敢证明系统在故障发生后会按预设路径响应。我们的做法是在测试固件里专门写一个Debug Debug域直接往SEMPER状态寄存器里强行写入错误标志位然后观察MCU端能否在预期时间内进入安全状态。这种做法的覆盖率比单纯等硬件随机出故障高得多也方便在实验室反复验证。4.5 供应链和长期可采购性眼光也很重要功能安全项目有一个特点生命周期特别长。一辆车的SOP之后同一颗芯片可能要供应7到10年甚至更久。所以选Flash时除了看当前的认证状态还要关注英飞凌对这颗料长期供货的承诺和产品生命周期管理政策。SEMPER作为英飞凌面向汽车功能安全的主推产品线生命周期策略相对清晰但这不代表你可以在设计定型后完全不关注它的供货动态。我的习惯是在项目里保留一颗经过完整验证的备用料并定期和FAE确认主选料的生命周期状态避免上量之后突然收到EOL通知。这颗备用料最好和主料在封装、引脚和软件驱动上兼容。选型时优先检查同一封装家族里是否有多颗不同供货商替代料或者至少是同一厂商不同批次的可配置变体。这种冗余策略在功能安全项目里既是工程师常识也是供应链部门的硬性要求。5. 更远的展望从ASIL-D认证看车载存储下一步的演化方向5.1 更高安全等级和更高容量会不会冲突很多人担心SEMPER这类带有高等级功能安全认证的NOR Flash在容量上顶不上去撑不起下一代自动驾驶主控的需求。说实话这种担心部分成立。NOR Flash因为单元面积大在纯容量的军备竞赛里确实赢不了NAND和UFS但这不代表它会在车载系统里退出。恰恰相反在启动链路的最高安全等级场景比如功能安全岛MCU启动、安全网关的根信任根存储、A/B分区回滚保护这些宁可容量小、不可安全乱的位置高可靠NOR依然是唯一靠谱的选项。未来的车载存储拓扑大概率是一套分级存储池一颗高可靠、高安全等级的NOR或高耐久Flash做安全启动和关键配置一颗大容量NAND或eMMC做系统镜像和日志一颗更高性能UFS做高清地图和自动驾驶数据缓存。每一层的安全等级和性能需求都不一样你不太可能用一颗芯片解决所有问题。SEMPER这种产品的定位本质上是把最靠近安全核心的那一层做到极致而不是要和UFS比容量或速度。5.2 从认证到生态安全文档支持也许比芯片本身更值钱芯片本身的功能安全设计再好如果没有配套的Safety Package、FMEDA和操作系统适配层系统集成商也很难在项目里快速使用它。英飞凌在SEMPER这张ASIL-D证书背后实际上同步建立了一整套生态支持基于AUTOSAR的MCAL驱动适配主流MCU的BSP代码以及供GdBS自检和错误管理直接调用的安全固件例程。这些软件资产对工程师的价值有时候甚至超过硬件本身。我记得第一次移植SEMPER驱动到自家域控制器平台时光是照着Safety Manual把初始化序列、自检流程和错误处理状态机理顺就省下了一到两周的排错时间。如果你在某个项目里用到这颗芯片建议花时间把英飞凌官方的软件样例和驱动包全部拉下来即使不直接用也可以作为自己实现安全模块的参考。毕竟安全认证材料的语义解释顺序官方示例永远是最准确的理解起点。5.3 给正在做方案选型的同行几句实在话如果你正在为一个新的域控制器或智能驾驶项目选存储方案我的建议是别把ASIL-D当成一个单纯的技术规格它更像一种项目风险管理工具。选型阶段就拉通功能安全团队、硬件团队、软件团队和供应链把每颗存储芯片在安全架构里的角色明确下来然后对照安全文档逐项核对是否符合预期。这个过程虽然繁琐但会在后续的Safety Case和TG0阶段帮你省下成倍的时间。在技术指标之外也建议关注芯片厂商对长期软件维护和工具链更新的承诺。汽车项目量产之后固件更新、编译器版本升级、EMC测试整改都可能需要重新编译甚至重新验证驱动层代码。如果厂商的软件维护跟不上你的认证状态可能因为用了一个不再受支持的驱动版本而被审计师质疑。这一点上SEMPER所属的长期车规产品线做得相对扎实但我们在实际项目里仍然会在每个软件开发里程碑和英飞凌那边确认驱动版本和认证库快照的一致性。最后再分享一个我个人的使用习惯不论你的系统设计得多么完善都要保留一个简单、粗暴、可靠的后备路径。对存储子系统而言这个兜底路径就是一键进入擦写保护模式启动失败快速跳转到安全恢复引导。SEMPER的寄存器锁、写保护引脚和OTP配置就是为了让你在软件失控的极端情况下至少能把车推进一个能安全停车并尝试恢复的状态。做功能安全做到最后最重要的不是你做了多少复杂机制而是你有多敢在系统已经出问题的时候接受故障并做出正确决策。存储芯片的ASIL-D认证解决的就是这台车在最坏情况下能不能可靠地知道自己的存储出了问题这个底层问题。想明白这一点你再看SEMPER这张证书就会明白它真正值钱的地方在哪里了。