功能安全之系统阶段-系统架构
我们来浅析下功能安全系统阶段重要话题------"系统架构"
目录概览:
- 系统架构的作用
- 系统架构类型
- 系统架构层级的相关安全机制梳理
1. 系统架构的作用
架构的思维包括抽象思维、分层思维、结构化思维和演化思维。通过将复杂系统分解为小的单元来简化开发。并且会在解决问题的过程中权衡利弊找到最优解(在设计时通常会结合选型分析报告综合来判断)。
在ISO26262标准中Part 6.4.3提到了系统架构设计的总则是:由技术系统实现的所选系统层面解决方案,系统架构设计旨在同时满足所分配的技术安全要求和非安全要求。
综上所述,系统架构设计是我们在产品开发中不可忽视的重要阶段,下面我们着重探讨"系统的架构类型"和"系统架构层级相关的安全机制"。
2. 系统架构类型
2.1 架构模型
根据ISO26262中的定义,相关项由一个或者多个系统组成,而一个系统应该至少包括1个传感器、1个控制单元和1个执行器,
系统组成示意
如下图所示:
在一个系统中有几种经典的架构,通常会见到这几个名词fail-safe、fail-silent和fail-operational。画个图来简单示意下这几种架构设计的相互关系。如下图所示,Fail-Safe包含:fail-operational 和 fail-silent两种,它们都属于是安全的失效。
fail-safe 、fail-silent、fail-operational关系图
Fail-Safe : 该架构通常芯片设计层级使用较多,当芯片发生error时,芯片会执行POWER down、Reset、紧急运行等的操作。或者当程序轮询监控到对应的寄存器有问题时请求MCU判断执行后续操作(MCU的操作要在合理的FTTI之内完成才有效),从而使得IC进入安全的静默(silent)状态。
Fail-Operational: 该架构通常整车层级和系统层级使用较多,该架构通常应用MooN(D)架构可以实现不同形式的fail-operational架构。简单的Fail-Operational可以理解为当通道1失效后,作为冗余的通道2还可以接替它的工作,使得整个系统处于安全的状态。
针对MooN(D) 系统架构在此篇不做细化的分析,在后续文章中有机会我们再细聊,我举个域控制器中我们实际研发的例子让大家感受下MOON(D)的概念。
MooN(D) 解释说明图
1oo2D 域控制器架构示例:
下图是常用的域控制器的架构方案。(MCU对于2个SOC的监控是独立的,它有不同的寄存器ID对应)
域控制器1oo2D示意图
此架构方案由并联的两个通道组成,在其中一个失效后,启用另外一个。冗余的传感器可以是雷达模组或者其他传感器的系统。对于该系统而言在MCU检测出main SOC出问题时启动fullback 的SOC并关闭main SOC(前提是两个SOC的设计不会发生DFA的相关性失效)以此来保证系统的正常运行。
2.2 软件经典的架构讨论
说到软件架构讨论,不得不提一下经典的E-Gas 模型。E-gas属于我们上述所说的1oo1D的架构
三层概念图(带锁步核)
(1)Level 1层: 功能应用层,实现设计的基本功能的软件(层级),较为复杂
(2)Level 2层: 功能监控层,基于功能层级(Level 1)的输出结果的监控, 并且会计算程序流控制
(3)Level 3层: 控制器监控层,控制器监控是指软件和硬件结构之间的相互作用。它可以检测功能控制器(控制器核心,RAM/ROM中受影响的区域)的错误操作。
注释:监控模块是独立于域控制器的
E-gas本质是每个层各司其职、相互只是调用关系,可以减少联系、做到各层按照对应需求的ASIL等级去开发。它能够清晰地实现递进式的层级设计及安全监控,对于复杂的系统来讲可以借鉴该思路。
3. 系统架构层级的相关安全机制梳理
上文NO2.1开头提到一个系统的简单组成至少包括:一个传感器、一个处理器和一个执行器,那么在系统层级我们来分析下它都有哪些安全机制。
3个模块之间少不了有通讯或者系统层级需要有程序的烧录等情况出现,模块可能会通过CAN,CAN-FD,UART,I2C,SPI,PHY等进行片内或片外、板内或板外的通讯或者程序的烧录,下面以串口UART举例说明通讯模块的安全机制都有哪些。
注释:以上是基于ISO26262标准及经验的总结,仅供参考,具体项目还需实际分析及动态调整。
对于软件层级(Auto sar)来说它的核心安全机制可以分为以下几类供大家参考:
(1)内存分区
(2)逻辑监控
(3)E2E 保护
(4)Timing Monitor
(5)CRC等
注释:对于细化的安全机制的分析我们会在后续的文章中逐步提及,在此不做赘述。
结论: 功能安全是系统架构设计中不可忽视的重要方面。通过在设计阶段就充分考虑安全需求,采用分层的安全策略,设计安全关键组件,以及进行严格的安全验证和确认,可以有效地提高系统的安全性。同时,系统架构还应该具备易于维护和更新的特性,以应对长期的安全挑战。通过这些措施,可以确保系统在面对故障和风险时,能够保持在一个安全的状态,从而保护人员和财产的安全。
参考书籍:ak-egas-v6-0-en
功能安全技术基础