经常有人会问起生活是什么?其实答案很简单,生活就是上帝给你关闭了一扇门的同时^顺手又帮你关紧了窗。
人艰不拆呀!言归正传,本篇(将会拆分为两篇讲述,分别为肆-01和肆-02)我们继续聊聊功能安全,本期主要聊一聊安全机制相关内容,一起来学习吧!
01
前言
由于没有解决系统性软件错误的“灵丹妙药”,下面的错误处理机制可以帮助我们打开检测和处理各种类型错误的思路的大门。因此,我们可以合并许多技术来处理显示的错误。我们将讨论控制器或系统逻辑部分的错误处理,见下面图一。
图一:传感器,逻辑&执行器
02
错误(ERRORs)的类型
1- Data: 当错误表现为变量、参数或者消息的值时;
2- Program Flow:当程序执行的路径与预期路径不符合时;
3- Access:当程序未经许可访问分区时;
4- Timing:消息到达的早、晚或者根本没有到达;
5- Asymmetric:一个组件用相同的输入产生不同的输出的错误;
因此,我们会提供上述错误的处理机制。
03
错误处理机制(EHMs)
错误处理机制:检测(Detection)、隔离(Isolation)、恢复(Recovery),(这三者简称DIR)可以用于一般的错误处理或者出于安全考虑的错误处理。
1- DETECTION:如何发现故障发生了,比如温度值超出了范围;
2- ISOLATION:如何防止错误系统影响依赖于错误系统的其他系统;(这里有点拗口,也就说当一个系统有错误发生了,如何预防其他与之有关联的系统不受此错误系统的影响);
3- RECOVERY:如何从故障中恢复并且使系统正常工作或功能降级;
我们有许多的机制可以检测、隔离和恢复错误,也可以一个机制包含多种能力:检测、隔离和恢复上述的五种错误类型。如下面的图二,错误的软件处理机制。
图二:错误处理机制(左是机制,右是目的)
下面,我们来聊一聊上述的处理机制:
Plausibility Check(合理性校验)
合理性校验,即验证一组变量是否适用于特定条件。原则上有两种不同类型的合理性校验:有效性校验和数值比较。有效性校验通过控制变量是否在特定范围内或等于某个值来检测错误。比较可以通过检测多个值并且明确差异从而检测错误。为了隔离错误,可以使用有效性校验来指出哪个变量是错误的。示例:当车速=2km/h,发动机转速=3450,因此车辆转速不合理,因为发动机转速不能达到此值,而车速仅为2km/h。因此,要使用合理性校验,请使用不同的输入信号源/元数据/模型/方程来验证被测信号的合理性。换言之,合理性的同义词就是它有意义吗?小提示:你可以用这个方程来预测被测事件与实际数据的相关性。合理性校验这一机制,可以考虑单独写一篇文章。