基于故障注入的汽车功能安全测试方法浅析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于故障注入的汽车功能安全测试方法
浅析
摘要: 故障注入是ISO26262功能安全标准强烈推荐的一种安全测试方法,但未详细阐述。
本文结合实际测试经验,详细介绍了故障注入的测试流程,并对故障类型的确认、测试环境的选择进行详细描述,对进行功能安全故障注入测试有一定的指导意义。
关键词:功能安全、故障注入、FTTI
序言
随着汽车四化的快速发展,汽车的安全性也越来越重要,汽车功能安全标准ISO26262[1]制定了一套安全分析及设计方法论来降低系统性失效和随机硬件失效的风险到可接受水平,其中V模型右半部分的各个测试阶段都规定了需要采用故障注入的测试方法来验证相关项的设计是否满足安全要求,但未详细阐述具体的测试流程及方法。
1故障注入测试的定义
因电子电气系统在正常运行时不能触发安全机制,为此ISO26262标准针对功能安全等级为ASIL C/D的相关项,在软件单元验证、软件集成验证、嵌入式软件测试、系统集成测试、整车安全确认测试等阶段,都强烈推荐采用故障注入测试方法来提高安全要求的测试覆盖率,此外故障注入测试还可用于故障容错时间FTTI的确定[2]。
标准中对故障注入测试的定义如下:
评估要素内故障影响的方法,该方法通过注入故障、错误、或失效从而通过观测点对注入后的响应进行观测。
从定义中可以看出根据要素不同的抽象层级,根据安全分析,故障注入不一
定是要注入故障异常的根本原因,可以在故障传播路径上注入错误,甚至是失效。
2 故障注入的测试流程
根据故障注入测试的定义,故障注入测试的第一步是根据测试目的确定测试
的对象。
比如如果是验证硬件安全机制的有效性,则需要对硬件进行测试;如果
是确定安全目标的FTTI时间,则需要在安全机制未激活的情况下,对实车进行
故障注入测试。
第二步是根据测试对象的安全分析报告,确定故障类型,常用的安全分析方
法有FTA、FMEA、HAZOP等。
第三步是在考虑可行性及可观测性后,根据测试对象的故障类型及功能安全
要求设计测试场景,并完成测试场景评审。
测试场景中需要明确测试的环境、故
障注入方法、在什么位置注入故障、什么时候注入故障、故障注入测试过程时需
要观测哪些变量、测试是否通过的判定条件是什么、以及故障注入过程中的安全
注意等事项。
第四步是执行故障注入测试,分析测试结果数据,并输出测试报告。
最后一步是测试总结,如果测试未通过,则需要针对未通过测试的故障类型
修改或补充相应的功能安全机制,并完成回归测试。
3 故障注入的故障类型
故障注入的故障类型主要分两大类:软件故障及硬件故障。
软件故障有内存
故障、数据交换故障、时序故障、控制流故障等;硬件故障有传感器超范围、信
号振荡、信号卡滞等故障,电源过压、欠压等故障,通信节点丢失、消息损坏、
消息插入、消息丢失等故障。
一般的汽车电子电气系统主要由电源、线束、传感器、执行器、ECU等模块
组成,其中ECU硬件由微控制器、电源模块、时钟模块、内存模块、输入输出电路、通信接口电路等组成。
为保证安全分析的充分性,系统内每个模块均需纳入
安全分析的范围,如果需针对微控制器进行安全分析,可参照ISO26262的
Part11进行。
3故障注入的测试方法
针对软件单元验证及软件集成验证阶段,故障注入主要是在通过运行在宿主
机上的单元集成测试工具进行测试。
测试过程中通过篡改变量值、注入错误的信号、插入故障代码等方式实现。
如果软件是基于MBD的开发方式,则需要在宿主
机上运行模型测试工具,采用MIL/SIL的测试方法实现。
针对嵌入软件测试阶段,故障注入测试需要在目标板上进行,采用半实物仿
真环境的测试方法。
测试过程中通过硬线故障注入板卡实现外部硬线故障的注入;外部通信信号故障通过虚拟ECU或者Canoe等通信工具模拟发送故障信号实现;
寄存器、存储器等内部故障需要专用工具通过JTAG或者DSU接口实现对芯片内
部资源的篡改实现。
针对系统集成测试及整车安全确认测试阶段,故障注入测试主要在系统台架
或者实车上进行。
测试过程中针对硬线类故障,通过BOB盒子或者专用的故障注
入板卡实现;针对总线类故障,通过BOB盒子接入Canoe工具,用Capl语言编
程实现对报文信号值篡改、报文阻断等故障注入。
如果测试场景中需要对故障响应时间进行精确的判定,则需要同一个工具平
台上实现故障注入指令的发出与故障响应数据的采集,一般通过程控BOB与CANoe通过CAN通信配合实现,具体如图1所示。
图1 整车级故障注入测试环境
在进行测试环境选择时,需要充分考虑测试过程的安全性及故障注入测试对
被测对象的破坏性,如果故障注入会造成测试对象的损坏较大,建议在模拟仿真
环境下进行测试;如果一些极限工况存在安全隐患,则建议在安全可控的系统台
架或者整车台架上进行测试。
4总结
在汽车功能安全测试方法中,故障注入测试可有效地验证安全机制的有效性,通过安全分析,在相应测试环境中通过特定的方法注入特定的故障类型,可提高
功能安全要求的测试覆盖率。
本文详细介绍了故障注入测试的一般流程及测试过
程中的关键点及注意事项,可用于指导进行功能安全故障注入测试。
参考文献
[1] ISO26262-Road vehicles- Functional safety [S].2018
[2] Kwon H,Itabashi-Campbell R,Mclaughlin K . ISO26262 application to electric steering development with a focus on Hazard Analysis[J]. IEEE, 2013:655-661。