登录 | 注册 退出 投稿

【汽车芯片】通过FMEDA故障注入验证SPI安全架构

专栏作者 2023-10-30

内容提要:为了获得芯片的功能安全认证,芯片上的每个模块都应该拥有围绕其的安全架构,并且应该对其进行功能安全验证。本文执行基于失效模式影响和诊断分析(FMEDA)的故障注入,以验证ISO 26262建议的SPI安全架构。对于SPI块中的单点故障,诊断覆盖率达到97.2%,这足以实现整个芯片的单点故障指标(SPFM)99%


近年来,电动汽车(EV)中先进技术的集成不断增加,因此评估所部署技术的风险变得至关重要。功能安全是汽车所需要的,以确保人类生命安全。电池管理系统(BMS)芯片是电动汽车的重要组件之一,它使用串行外设接口(SPI)作为外设,与外部IC进行通信,以监控电动汽车中使用的电池状态。为了获得该芯片的功能安全认证,芯片上的每个模块都应该拥有围绕其的安全架构,并且应该对其进行功能安全验证。本文执行基于失效模式影响和诊断分析(FMEDA)的故障注入,以验证ISO 26262建议的SPI安全架构。对于SPI块中的单点故障,诊断覆盖率达到97.2%,这足以实现整个芯片的单点故障指标(SPFM)为99%。

1.简介

随着先进电子技术将汽车行业推向更高水平,汽车原始设备制造商(OEM)需要经过安全认证的半导体。汽车中E/E系统的自动化正在演变成一个复杂的过程,旨在提供许多先进的功能,如电动助力转向、ADAS、制动系统、安全气囊等,这些都需要安全保证。由于这些尖端技术融入了汽车,制造商现在有必要评估和检查与他们想要使用的技术相关的风险。功能安全是汽车所需要的,以确保人类生命安全。功能安全(FuSa)是指即使发生意外事件,整个系统也将继续可靠地按预期工作。此外,系统保证不存在不可接受的人身伤害或损坏危险。现代汽车的功能之所以成为可能,是因为其中使用了大量电子产品。这带来了汽车行业对FuSa半导体芯片的需求。对于片上系统(SoC),特别是当进入亚微米设计时,敏感性变得更大。高水平的安全性可以使该产品脱颖而出并改变消费者对其看法。

BMS是电动汽车中使用的此类SoC之一,应满足功能安全标准。BMS可以控制可充电电池环境、保护电池免于超出其安全工作参数、监控电池状况、报告派生的辅助数据、平衡和验证电池的电子系统。考虑一些BMS芯片不具备测量电流能力的场景,测量电流的外部IC尝试发送需要馈送到BMS芯片的电流数据。或者,监控电池电压。为了相互发送和/或接收信息,这些IC必须能够相互通信。因此,通信协议对于具有多个IC的BMS能够相互通信至关重要。SPI是一种在微控制器及其外设之间提供易于实现且成本极低的接口的协议。SPI协议使用主设备生成的串行时钟来同步主设备和从设备的传输和接收。一个设备被视为总线的主设备(在这种情况下,BMS是主设备),所有其他设备(外围IC甚至其他微控制器)被视为是从设备。

ISO 26262要求对随机硬件失效引起的危害率进行计算估计。在产品开发阶段,硬件和软件的开发实际上是首先尝试在系统级别分析BMS,然后在组件级别分析,得出从功能安全概念出发的安全要求,开发系统架构,并定义失效检测和避免的安全机制。使用FMEDA可以识别可能的失效模式以及这些失效对多个系统级别的影响,这通常是理解系统安全的第一步。故障是分析的起点,它可能会在以后导致错误和失效。为了确保ISO 26262的安全要求,BMS中的每个功能都设计了安全机制。SPI是BMS中的外设,围绕它设计了安全架构,针对功能中的每种失效模式都有安全机制。为汽车行业的各种目的而设计的任何满足最高级别安全标准的安全架构都应该使用故障注入进行验证。通过将故障引入设计并对其进行监控以了解其对故障的反应,可以使用故障注入技术来评估被测设计的可靠性。数字故障注入在RTL/GLS(网表)上运行,通过在顶层验证期间在每个块的输入/输出端口和内部节点注入故障来实现。然后检查注入的故障是否可以被安全机制检测到。诊断覆盖率(DC)是检测危险失效的安全措施的基准,本文将针对SPI安全架构进行计算。

2.功能安全标准

国际电工委员会(IEC)61508是一个解决所有产品和行业功能安全的单一标准。国际电工委员会发布了一项全球标准,概述了使用、设计、部署和维护安全相关的技术。电气、电子和可编程电子安全相关系统(E/E/PE或E/E/PES)的功能安全是该文档的标题。IEC 61508是基本的功能安全标准,适用于所有领域。尽管该标准适用于所有行业,但每个行业都有其微妙之处,这就是为什么许多行业都基于IEC 61508创建了自己的标准。本文验证的设计是属于汽车行业的BMS。

A.ISO 26262

ISO 26262是汽车行业关注安全关键系统的全球标准,该标准主要源自IEC 61508。它用于汽车中的E/E系统,包括硬件和软件组件。它概述了系统的安全相关功能以及开发过程中使用的程序、技术和工具必须满足的要求。随着汽车行业变得越来越复杂,必须付出更多努力来提供符合安全要求的系统。ISO 26262的目标是为汽车中的所有E/E系统提供单一安全标准。产品的功能安全在开发过程中由ISO 26262在系统、硬件和软件层面进行系统管理。它具有汽车安全生命周期,概述了生产的每个阶段,从管理到开发到生产到运营到服务到退役。汽车安全完整性等级(ASIL)用于建立ISO 26262的适用标准,以减少不可接受的残余风险,并进一步用作识别汽车行业风险类别的独特的基于风险的方法。定义架构、设计开发、验证、集成、确认程序的规范,以保证达到可接受的安全级别。

B.汽车安全集成级别

ASIL是ISO 26262合规性的重要组成部分。系统的设计和开发必须遵守ASIL,这是在芯片开发阶段开始时确定的。根据任何潜在危险检查系统的计划功能。该风险的估计基于暴露概率、驾驶员可能的可控性以及发生关键事件时可能结果的严重性,从而得出ASIL。无论系统中使用何种技术,ASIL完全取决于对驾驶员和其他道路使用者的伤害。任何安全要求都被分配了ASIL等级A、B、C或D。带有“D”的系统被认为是最安全的关键,并受到最严格的测试标准的约束,而带有“A”的过程被认为是安全性最低的。ISO 26262标准中概述了最低测试标准。这使得选择测试方法变得更加简单。基于ASIL级别,应计算并进一步满足单点故障度量(SPFM)、潜在故障度量(LFM)和硬件失效概率度量(PMHF),如表1所示。

表1.png

表1.每个ASIL的硬件架构指标的目标值

SPFM衡量系统针对单点故障(SPF)和残余故障(RF)的安全性,SPFM越高,安全性越好。例如,如果SPI接收到损坏的数据,如果没有检测到,总是会导致不正确的输出,并且肯定会导致严重情况。对于ASIL D,应该实现99%的SPFM,简单来说,应该检测到99%以上的单点故障。SPFM可以计算为针对所考虑的芯片上每个块的SPF计算的诊断覆盖率的加权平均值。权重与芯片上块所占的面积成正比。潜在故障指标衡量系统针对多点故障(MPF)故障的安全性,LFM越高,安全性越好。对于ASIL D,应检测并缓解90%以上的MPF。随机硬件失效的概率度量是在系统的整个运行寿命期间每小时发生系统失效的平均概率。对于ASIL D,应实现≤10 FIT的PMHF。其中,实时失效(FIT)率由十亿(10^9)设备运行小时内预计发生的随机失效数量决定。

本文重点通过评估SoC级别设计的安全性来执行SPI的功能安全验证,以满足符合ISO26262:2018的FuSa标准。在达到ASIL D的顶级目标。这里,要达到此级别,应实现大于97%的SPF DC,该值是根据用于计算SPFM的加权平均公式确定的,基于此,有可用的行业标准工具来计算LFM和PMHF。为了定义验证程序,采用了ISO 26262:2018的一些条款:

1.ISO 26262-5:2018第7.4.3条——应通过演绎和归纳分析对硬件设计进行安全分析,以确定失效原因和故障影响。

2.ISO 26262-5:2018第7.4.4条——应根据ISO 26262-5:2018第7.4.3条使用硬件设计验证方法(例如硬件设计演练、检查和仿真)来验证硬件设计,以满足与安全相关的特殊特性,以在生产和服务期间实现功能安全。

3.ISO 26262-5:2018第7.4.5条——如果安全分析显示这些特性相关,则应指定与安全相关的特殊特性。

4.ISO 26262-5:20182-11:2018的第4.8.1条——半导体组件级别的故障注入是一种已知的方法,当安全概念涉及半导体组件时,可用于支持生命周期的多项活动。

5.ISO 26262-11:2018的第4.8.2条——有助于验证计划的故障注入的特征或变量。

6.ISO 26262-11:2018第4.8.3条——故障注入结果可用于验证ISO 26262-11-2018第4.8.1条中列出的安全概念和基本假设(例如,安全机制的有效性、诊断范围和安全故障数量)。

7.ISO 26262-11:2018第5.1.10条——使用故障注入仿真进行验证可用于永久性故障和瞬态故障。利用设计模型的故障注入可以成功地用于协助验证安全故障并计算其数量和失效模式覆盖率。注入故障并利用明确指定的观察点来确定故障是否造成可测量的影响。此外,它还可用于辅助计算和验证失效模式覆盖率的值。注入能够引起可测量影响的故障,并确定这些故障是否在最大故障处理时间间隔内被安全机制检测到或控制。

C.故障注入术语:

故障注入是功能安全验证的一个不可或缺的步骤和有价值的技术。本文是一个汽车应用,特别关注基于仿真的故障注入平台。基于仿真的故障注入是一种自动故障注入仿真,用于仿真“现场故障”以验证安全架构。通过Verilog系统,随机故障注入仿真平台可以实现故障模型,如:卡在0、卡在1和位翻转,并将它们随机插入设计中以分析故障覆盖率。通过执行故障注入,会产生错误的输出信号,这是错误,这将进一步导致失效。基于仿真的故障注入环境由故障注入器、故障库、控制器和数据分析器组成。

在基于仿真的故障注入故障中,可以将故障建模为永久性故障和瞬态故障。永久性故障是一种持续性失效,例如电线、引脚或轨道之间的短路,该故障持续存在,直到修复或更换故障组件为止。现实世界中永久性故障的例子包括磁盘头崩溃、软件错误和电源烧坏。永久性故障,在系统中继续存在,直到该错误得到修复。进一步在基于仿真的故障注入中,可以通过两种不同的方式对永久性故障进行建模:

1.卡在0或SA0:从故障注入开始到仿真结束,强制信号值为0。

2.卡在1或SA1:从故障注入开始到仿真结束,强制信号值为1。

瞬态故障是指短时间断电后恢复,或短时间出现后不再存在的故障。在基于仿真的故障注入中,可以通过两种不同的方式对瞬态故障进行建模:

1.单事件翻转或SEU:该模型反转顺序元素的输出值,并保留修改后的值,并为其分配新值。该故障模型可应用于存储器、触发器和锁存器等时序元件的输出。

2.单事件瞬态或SET:该模型反转信号的值,并将修改后的值保留指定的时间段。该故障模型可以应用于任何类型的信号,例如网络或寄存器。

在故障注入活动中,执行多次故障注入运行以生成安全指标。每次故障注入仿真运行都执行正常的仿真和故障仿真。正常的仿真是必须运行以生成故障注入参考值的初始仿真,而故障仿真是对注入到设计中的任何故障进行分类的后续仿真。在此过程中,在正常仿真运行期间捕获观测点的参考值(在良好仿真之前定义)。这些观察点有助于更好地对一个或多个网络/节点处的注入故障进行分类。

1.功能选通脉冲:所考虑的设计中的所有主要输出都将用于检测节点/端口上注入的故障是否会导致功能失效。

2.检查器选通:这些输出将用于检测安全机制是否检测到节点/端口上注入的故障。安全机制的所有输出都是检查器频闪。

需要功能选通和检查选通来对注入的故障进行分类。传播到功能选通灯的故障是危险的,并且会检测到传播到检查器选通灯的故障。注入的故障可以分为以下几类:

1.危险且已检测到(DD):任何传播到功能选通灯和检查选通灯的注入故障都被视为DD。如果故障被分类为DD,那么安全架构能够检测到危险故障。

2.危险且未检测到(DU):任何注入的故障仅传播到功能选通脉冲,但不传播到检查选通脉冲,均被视为DU。如果故障被分类为DU,则安全架构无法检测危险故障。

3.未观察到和检测到(UD):任何注入的故障仅传播到检查器选通脉冲,但不传播到功能选通脉冲,均被视为UD。如果故障被归类为UD,那么安全架构会更加谨慎。

4.未观察到和未检测到(UU):任何注入的故障都不会传播到任何功能选通脉冲,并且检查器选通脉冲被视为UU。如果故障被分类为UU,那么,这是由于缺少激励,在提供适当的激励时可能最终会成为DD/DU/UD。

诊断覆盖率是检测危险失效的安全措施的基准。可以表示为:

3.安全架构及其FSV

A.SPI安全架构

单主通信协议称为SPI。这意味着只有一个设备开始与其他从属设备通信。它是一种高速同步串行IO端口,可移位串行位流(数据)的长度,并以编程的位传输速率传输或接收它。当SPI主设备想要向从设备发送数据时,串行时钟将以主设备和从设备都可以控制的时钟频率激活。从设备通过将相应的从设备选择线压低来进行选择。SPI可以支持主设备与其外围设备之间的双工通信,因为主设备在对MISO线进行采样的同时,会在MOSI线上生成数据。重要的是要记住,要使通信正常工作,主设备和从设备对必须使用相同的参数集,例如SCLK频率、CPOL和CPHA。状态、控制和数据寄存器、移位器逻辑、波特率发生器、主/从控制逻辑和端口控制逻辑构成了SPI设计的大部分。SPI的设计与摩托罗拉股份有限公司的SPI模块指南中详细介绍的极为相似。

在安全概念中,将在系统级为SPI设计定义功能安全要求。SPI的功能安全要求是通过SPI路径(发送和接收)提供数据丢失保护,该路径需要功能安全并防止故障。通过BMS的数据流可以从外部IC流向BMS SPI,也可以通过BMS SPI从BMS内部存储流向外部IC。FMEDA中提到了SPI路径中任何可能导致功能失效、违反功能安全要求的故障。SPI、其配置/模式选择、I/O引脚中的任何故障都可能导致数据完整性、真实性、及时性(例如,数据传输启动和完成)和配置错误。此外,中断生成、识别和服务中的任何故障都可能表现为无法识别事件和修改信号流,从而导致数据采集、传输和处理中的失效。因此,应设计安全机制以保护已定义的功能安全要求。

B.SPI FMEDA

首先,FMEDA是通过提出问题“我们要避免什么?”来执行的,以及“它怎么会发生?” 并且还通过询问“可能会出现什么问题?”之外的问题来添加“诊断”部分。FMEDA包括诊断覆盖率分析,以识别在缺乏安全机制的情况下有可能违反安全目标的失效模式,然后识别防止失效模式违反安全目标的安全机制。网表可用后,块级别的FMEDA就完成了,这有助于实现这些机制,以便检测底层的所有失效模式。目标是计算违反安全目标的失效模式覆盖率。功能分析构成了FMEDA的基础。

表2.png
表2.SPI FMEDA

4.执行

A.安全机制

安全机制是片上功能,可检测和减轻或使设计容忍故障,并在检测到故障时报告这些故障。这些机制可以是纯硬件、纯软件或混合。在设计阶段提出的用于保护SPI免受失效影响的安全机制纯粹是软件安全机制。在块级执行FMEDA后,将实施这些机制,以便检测底层的所有失效模式。当SPI操作发生时,这些必须并行实现。拟议的安全机制是:

1.数据的CRC校验:CRC提供错误码片。检测导致预期数据不匹配的故障。

2.中断计数和及时性检查:检测任何丢失或虚假中断,从而导致中断生成中的随机失效。

3.寄存器切换验证:检测导致错误配置并导致数据传输错误的故障。

B.基于仿真的故障注入

为了支持功能安全验证,Cadence vManager安全客户端用于使用定义明确的流程自动执行故障注入活动。通过使用输入文件,人们可以驱动安全客户端和客户端内运行的内部核心引擎,即Xcelium故障仿真器。输入文件是定义总体参数的配置文件、标识故障检测目标的故障列表、标识故障诊断目标的故障清单、指定要在单个会话中运行的一个或多个测试的测试清单以及运行活动所需的其他脚本文件。

vManager安全客户端支持各种活动流类型,使用的是串行流和并发流。在串行中:在故障仿真运行期间注入一个故障(即,可以在关闭并重新打开运行后注入下一个故障)。故障仿真的数量等于要注入的故障的数量,这是该流程的一个缺点,并且由于大量的仿真而消耗更多的CPU内存。在并发流中,为故障仿真会话每次运行注入多个故障。该流程的优点是它是一种吞吐量解决方案,其中多个故障一起注入和仿真,并且还同时仿真正常功能和故障仿真。工具保留电路中每个节点的错误值和良好值的列表。该流程的缺点是,导致大量仿真事件的过度活跃故障不会传播到各自的观察点。此类故障在并发仿真的故障数据库中被标记为不可仿真(NS)。此外,如果错误的仿真未在计算出良好仿真值的时间内收敛,则错误将报告为DU。

对于SPI模块,所有功能输出都被定义为功能选通脉冲——MISO、MOSI、SCLK、SS以及相应的输入和输出使能。所有安全机制输出均被定义为检查选通脉冲——CRC检查、及时性检查、寄存器切换配置检查以及中断计数和时序检查。所有测试用例均针对具有安全机制的各种SPI操作模式实施。SPI网表中所有单元端口的SA0和SA1故障类型的故障检测,在仿真开始后80ns注入,超时系数为10,这意味着故障仿真最多应执行良好仿真时间的10倍。

5.结果与讨论

A.并发运行

并发仿真是考虑组大小为2000个而完成的,这表明注入和仿真的多个故障仅限于每组2000个。总共9702个故障可以被检测到设计中,其中119个在结构分析后报告为安全,9583个可测试,其中6264个是主要故障。故障仿真完成后,会生成会话报告,如图1所示,实现了83.84%的DC。

图1.png

图1.并发仿真日志

B.串行运行

尽管并发流是一种吞吐量解决方案,但它具有本文前面提到的许多缺点。因此,在上一次运行中报告为DU的故障节点被提取出来,并作为故障列表文件中串行运行的输入。故障仿真完成后,生成会话报告,如图2所示,合并并发和串行运行结果后,DC达到93.57%。

图2.png

图2

C.DU分析

获得的DC不够,必须改进,这可以通过减少报告为DU的故障数量来实现。为此,必须对报告的每个节点进行详细的DU分析,这只有在充分理解架构设计的情况下才有可能,并找到一种方法来检测它们或将它们分类为安全,即使它们干扰功能频闪,但没有违反安全规定。vManager安全客户端还支持调试方式,通过这些方式可以使用波形重新运行报告的DU,这有助于将良好的仿真波形与故障仿真波形进行比较,以及注入的故障何时影响SPI的不同信号和逻辑块。

为了实现目标ASIL D,通过执行详细的DU分析,通过识别检测机制将其移至DD类别,或通过分析故障影响将其移至安全类别,从而对SPI块中的单点故障实现97.2%的诊断覆盖率,这使得整个芯片足以实现99%的SPFM。

6.结论

基于FMEDA,实施安全机制,并使用vManager安全客户端执行基于仿真的数字故障注入以进行安全机制(诊断)验证。这里,注入网表的每个单元端口处的永久故障,定义一组功能和检查选通脉冲,将故障分类为DD、DU、UD、UU和安全。使用该工具支持的串行流和并发流,对总共9702个仪表故障实现了93.5%的诊断覆盖率,其中6047个报告为DD,414个报告为DU。为了实现目标ASIL D,通过执行详细的DU分析,通过识别检测机制将其移至DD类别,或通过分析故障影响将其移至安全类别,从而对SPI块中的单点故障实现97.2%的诊断覆盖率,这使得整个芯片足以实现99%的SPFM。

7.未来范围

基于更快地完成功能安全验证所面临的挑战,有一些方法可以在更短的时间内达到相同的结果,并为其他设计提供建议。

1.执行并发运行,然后提取故障列表以运行串行运行需要更多时间来创建和执行设置。因此,可以通过要求工具供应商通过单一设置同时运行并发和串行活动来创建混合流程,并在并发运行将故障报告为NS和DU时立即在内部提取串行运行的故障列表。然后生成合并数据报告,节省大量执行时间。

2.对于更复杂的设计,具有>40000个故障,对所有可能的故障进行故障注入并不是一个好方法,而应该使用采样方法,工具在设计中随机注入指定值的故障。然后分析较少故障的结果并修改测试用例以获得这组故障所需的DC。执行2到3次迭代,通常DC值会收敛。

3.为了更快地执行DU 分析,可以使用形式化方法来了解可以检测到注入的故障或将其分类为安全的激励。

 

33.png
详询“牛小喀”微信:NewCarRen


44.png

详询“牛小喀”微信:NewCarRen



作者:牛喀网专栏作者
牛喀网文章,未经授权不得转载!


下一篇: 【汽车芯片】增强RISC-V片上系统的故障感知和可靠性
上一篇: 【汽车芯片】利用车辆控制网络进行汽车芯片测试的机制
相关文章
返回顶部小火箭