登录 | 注册 退出 投稿

【汽车芯片】使用SoC和MCU组合方法增强关键系统安全性的实例

牛小喀 2023-11-13

内容提要:本文介绍了一种设计符合SIL要求的设备的系统方法,该设备将不带安全实体的SoC与安全微控制器搭配作为平台解决方案。本文确定了重要的系统级考虑因素和学习范围,从基本输入输出系统(BIOS)增强到平台级连接选择再到监视器,并包含了失效预测。


摘要

机器的危害风险如果失效影响到人身就会变成危险。为了建立故障安全系统,行业实践要么在平台中添加冗余,要么在片上系统(SoC)内嵌入安全感知实体。不同的系统需要不同领域的安全完整性等级(SIL)认证。

本文介绍了一种设计符合SIL要求的设备的系统方法,该设备将不带安全实体的SoC与安全微控制器搭配作为平台解决方案。本文确定了重要的系统级考虑因素和学习范围,从基本输入输出系统(BIOS)增强到平台级连接选择再到监视器,并包含了失效预测。

一.简介

系统级危害管理对于部署到关键任务的设计变得更加重要。功能安全(FuSa)涵盖风险监控、故障检测和系统恢复。包含用于监控、检测失效和恢复系统的安全机制的系统设计,在汽车和其他安全关键应用中变得至关重要。通过纳入足够的设计考虑,它将使系统为故障安全应用做好准备。此处展示的应用表明,只需将SoC连接到外部微控制器(如图1所示),系统即可转变为可从危害中恢复的SIL兼容系统。当前功能安全的应用非常有限,二选一和诊断 (1oo2D) 的实现非常有限,一选一和诊断(1oo1D)成为需要更多实现方法来填补的空白领域。

图1.png

图1:FuSa平台总体框图

二.方法  

A.系统级硬件实现

从危害和风险分析以及安全完整性等级的角度来看,功能安全的理论和概念在ISO和IEC标准中得到了广泛认可。本文介绍了一种从硬件和软件角度实现功能安全的解决方案。通过该解决方案,将能够以按需失效概率(PFD)和每小时失效概率(PFH)来量化系统失效。通过使用MCU来收集和存储数据,可以实现诸如FMEDA(失效模式影响和诊断分析)之类的结构方法,该方法能够对失效进行分类,并根据失效率(FR)来计算失效。

在由2个处理器组成的1oo1D安全机制中。在该用例中,第一个处理器(SoC)可用于处理,而第二个处理器(MCU)用于诊断和恢复,如下图2所示。基本系统构建方法有助于清除图2和3中的开发区域,这有助于设计人员清楚地识别与1oo1D的差异。

图2.png

图2:1oo1与1oo1D之间的差异

在整个系统级别,利用英特尔体系结构(IA)平台,添加微控制器(MCU),将能够实现基本的功能安全。在下面的图3中,MCU将被分解为3个会话,分别是监控、触发和通信。

在监控阶段,基本平台排序信号允许MCU了解当前IA SoC工作条件,作为监控目的的一部分。

·CATERR-灾难性错误

·PROCHOT-处理器热

·THERMTRIP–热跳闸

·深度休眠电源正常

·恢复重置

·电源开关

一旦IA SoC无法对处理步骤做出反应,MCU的故障安全触发引脚将允许其监控IA SoC,并在触发故障安全模式时做出相应反应。

·FuSa_DIAGTEST_CN

·FuSa_DIAGTEST_PCHMODE

·ERROR_OK_2

·ERROR_OK_1

·ERROR_OK_ 0

而对于通信,它将有两种模式,在正常工作模式下,通信通道将充当握手来确认SoC和MCU的进度。在故障安全模式期间,触发通信通道会将所有信息和设置从SoC推送到MCU,然后再触发平台上的重置。重置完成后,所有设置和信息都将从MCU恢复到SoC,即使在发生硬挂起/故障处理后,也能提供无缝恢复。

图3.png

图3:显示SoC与MCU之间每个网络连接的详细信息

B.系统级固件实现

BIOS实现是此概念验证(PoC)的核心要素。如下图4所示,BIOS在启动过程结束时整合FuSa结果,并通过通用异步接收器/发送器(UART)将其发送到MCU进行使用。

图4.png

图4:本PoC中所示的BIOS和MCU启动过程

在此PoC中,我们选择UART 1作为从主机向外部MCU传输消息的协议。UART 0用于BIOS和操作系统启动日志捕获目的。为了在BIOS中执行UART读写,有一个名为“SerialIoUartLib”的库,调用函数SerialIoUartWrite(),参数如下:

001.png

这样,我们需要将“UartNumber”指定为1,并将缓冲区强制转换为来自FuSa移交Blob(HOB)的结果消息。作为参考,FuSa HOB具有以下结构,其中包含图4中FuSa Scan Init期间由BIOS构建的测试结果。BIOS能够通过FUSA测试结果并通过UART接口发送到MCU。

002.png

C.微控制器设置和流程

除了系统级硬件说明外,还展示了用于监控功能安全的基本控制流程的MCU流程。在此PoC中,Arduino UNO (5V)与IA SoC (3.3V)之间涉及一个电压电平转换器。

图5.png

图5:微控制器流程图

在流程开始时,MCU将通过FuSa_DIAGTEST_EN和FuSa_DIAGTEST_PCHMODE引脚发送信号,告知IA平台FuSa模式现已开启,如图5所示。

IA平台调度信号允许MCU了解SoC当前的工作状况,作为监控目的的一部分。如图5所示,MCU被编程为持续监控信号引脚。默认情况下,引脚信号状态设置为低电平。当信号变为高电平时,表示IA平台不正常。MCU将切换PWRBTN_B和POWER_ON引脚以重新启动IA平台,然后MCU将循环回到第一步并继续监控。通过ERROR_OK_0、ERROR_OK_1和ERROR_OK_2引脚进行编程以指示3种不同的错误状态。作为替代方案,通过二进制组合方法,我们可以对MCU进行编程,以使用相同数量的引脚解释7种不同的错误状态。

当所有引脚都处于低电平状态时,MCU将继续下一步。然后,它将通过UART或内部集成电路(I2C)连接读取从IA平台发送的文本数据。我们实现了简单的文本处理来检测特定的关键字。结果,MCU能够通过关键字检测并分类IA平台的不同状况。MCU被编程为根据条件做出不同的反应。在此PoC中,我们将液晶显示(LCD)模块与MCU集成,以可视化接收到的消息、MCU采取的操作,从而使调试过程更加容易。

三.结果与发现

为了进一步证明IA核心SoC和MCU能够作为一个监控实体结合在一起,正在模拟错误代码和条件,并且还对MCU进行编程以执行此类系统错误的处理。

以下是正在测试的3种不同注入,用于模拟SoC和MCU中的故障情况。

表1.png

表1:模拟错误注入响应

如表1所示,共享上面3种不同的潜在故障情况,我们可以证明MCU能够响应典型功能安全监控系统中的不同故障情况。该结果可以根据其他应用需求进行复制和扩展,例如下面描述的汽车(自动驾驶)和工业(工厂)用例。

在自动驾驶环境中,计算机系统对于帮助车辆做出决定至关重要,当系统突然过载/过热时,我们需要外部实体来重新启动系统或提示驾驶员接管车辆。在这种情况下,本文描述的方法将有助于使用MCU作为外部实体来实现该目的。

另一个案例研究是工厂自动化设置。如果出现任何电机和传感器失效,我们需要能够对它们进行分类,并为系统创建不同的处理方式。例如,如果电机失效可能对人类生命造成伤害,我们需要能够立即关闭系统,因此会触发最高优先级的处理(完全关闭平台)。另一方面,如果传感器失效可能导致数据不准确(可能需要校准),我们可以触发中低处理。

在表2中,描述了所要求的3000系统的失效概率。这量化了本文可以在1-3年内为现有系统创建的失效和可靠性系统的价值。通过对此类失效的正确处理,本文提出的方法可以确保即使SoC发生故障,系统仍然可以正常运行。这也将有助于达到SIL 3-4级合规性。

表2.png

表2:马尔可夫建模故障概率

对3000个系统的失效概率进行马尔可夫建模

总之,通过上述方法和详细实施以及结果,系统能够监视和检测失效并实现系统级重置恢复,从而使现有平台符合功能安全要求。出于既定的设计考虑,符合工业/汽车FuSa要求的系统级组件还将提高系统的可靠性。满足可追溯性要求的软件流程将改善故障安全系统的学习曲线,从而获得潜在的经验以及检测到的失效数量。

 

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




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


下一篇: 【汽车芯片】开发车规级FCBGA封装的挑战和途径
上一篇: 【汽车芯片】增强RISC-V片上系统的故障感知和可靠性
相关文章
返回顶部小火箭