1. AURIX安全软件测试与量产验证工程导入
英飞凌AURIX TC系列(TC2xx/TC3xx/TC4xx)是面向汽车功能安全的高性能多核微控制器,广泛用于EPS、制动、域控、BMS等ASIL-D场景。与通用MCU不同,AURIX的安全软件测试与量产验证不是"跑通功能"就结束,而是一条从需求到量产的证据链:安全需求被分解为软件安全机制,安全机制被测试用例覆盖,测试结果被追溯,量产件被逐颗验证并留下可审计记录。本课程的目标,是让学员掌握这条链路上每个环节的工程做法,而不是停留在概念层面。
课程要解决的三类问题
第一类是"测什么"。AURIX的安全机制分布在硬件与软件交界处:锁步核(Lockstep Core)比较逻辑、SRAM/Flash的ECC、SMU(安全管理单元)的报警路由、时钟与电压监控、MPU内存保护、看门狗(Safety WDT/CPU WDT)、DMA与总线保护等。软件测试必须针对这些机制设计激励与观测点,例如通过注入ECC错误观察SMU是否按预期触发ALARM,而不是只测应用层功能。
第二类是"怎么测"。AURIX提供多种测试手段:基于调试接口(DAP/JTAG)的在线调试、基于LBIST/MBIST的自检、基于软件注入的故障模拟、基于HIL的闭环测试,以及面向量产的边界扫描与内建自测。不同手段覆盖的故障模型不同,需要组合使用。
第三类是"怎么证明"。功能安全要求可追溯、可复现、可审计。测试用例要能追溯到安全需求,测试结果要能追溯到具体软件版本与硬件批次,量产验证要能追溯到每一颗芯片的测试数据。
完整工程链路
从工程视角看,AURIX安全软件测试与量产验证可以拆成六个阶段,它们之间存在明确的输入输出关系,而不是简单的线性步骤。
需求与安全概念阶段:输入是整车/系统安全目标(如ASIL-D的FTTI),输出是技术安全需求(TSR)和软件安全需求(SSR)。这一阶段要确定哪些安全机制由软件实现、哪些由硬件实现、哪些由软硬件协同实现。
软件架构与安全机制设计阶段:输入是SSR,输出是软件架构与安全机制配置。例如确定SMU报警如何路由到端口、看门狗的超时窗口如何设置、ECC错误如何分级处理。这一阶段的输出直接决定后续测试的观测点。
单元与集成测试阶段:输入是软件模块与安全机制配置,输出是测试用例与测试报告。测试重点是安全机制的独立功能与交互行为,例如故障注入后SMU响应时间是否满足FTTI。
系统与HIL测试阶段:输入是集成后的软件与目标硬件,输出是系统级测试结果。这一阶段要验证安全机制在真实时序、真实负载下的行为,例如多核并发时的锁步比较、DMA与CPU竞争总线时的保护响应。
量产验证阶段:输入是量产软件与量产测试规范,输出是每颗芯片的测试记录。AURIX支持通过固件调用内建自测、通过DAP执行边界扫描、通过SMU读取自检结果。量产验证的核心是"逐颗可追溯"。
审计与追溯阶段:输入是各阶段的工作产物,输出是安全案例(Safety Case)。这一阶段不是"最后补文档",而是贯穿全程的证据管理。
关键术语
ASIL:汽车安全完整性等级,从A到D,D最高。AURIX TC3xx常用于ASIL-D系统,但具体达到的等级取决于系统设计,不是芯片本身"自带ASIL-D"。
FTTI:故障容忍时间间隔,指从故障发生到必须进入安全状态的最长时间。它是安全机制响应时间的设计约束,也是测试判据的核心参数。
SMU:安全管理单元,负责收集各安全机制的报警(Alarm),按配置路由到端口、中断或复位。测试SMU的关键是验证报警的触发条件、路由路径和响应时间。
Lockstep:锁步核,主核与校验核执行相同指令并比较结果,不一致时触发报警。测试需要覆盖比较逻辑本身、延迟比较窗口以及错误注入路径。
ECC:纠错码,用于SRAM和Flash。单比特错误可纠正(SEC),双比特错误可检测(DED)。测试要区分可纠正与不可纠正错误的处理路径。
LBIST/MBIST:逻辑内建自测与内存内建自测,用于上电自检或周期性自检。量产验证中常通过固件触发并读取结果。
DAP:调试访问端口,用于在线调试、边界扫描和量产测试。它是量产验证的重要接口。
交付物与工具链
本课程涉及的交付物分为四类。需求与设计类包括TSR/SSR清单、安全机制配置表、SMU路由表;测试与验证类包括测试用例集、故障注入脚本、HIL测试报告;量产与追溯类包括量产测试规范、逐颗测试记录、追溯矩阵;工具链类包括AURIX Development Studio、Trace32/DAP、HIL与故障注入平台。
一个具体的入门示例
以SRAM ECC测试为例。假设某TC3xx项目中,安全需求要求"SRAM单比特错误可纠正且不触发安全状态,双比特错误必须在10ms内触发SMU报警并进入安全状态"。
测试设计时,首先确定观测点:ECC状态寄存器、SMU报警寄存器、安全状态输出引脚。然后设计注入方式:通过调试接口或软件写入特定地址,构造单比特翻转和双比特翻转。单比特翻转可通过写入已知数据后翻转一位实现;双比特翻转需翻转两位。注入后读取ECC状态寄存器,确认SEC/DED标志;再读取SMU报警寄存器,确认报警是否触发;最后用示波器或时间戳测量从注入到报警输出的时间。
判据是:单比特场景下,SEC标志置位、DED标志清零、SMU无报警;双比特场景下,DED标志置位、SMU报警触发、响应时间小于10ms。如果响应时间超标,需要检查SMU路由配置和中断优先级。