有关智能汽车MCU功能安全,NXP总结了6个经典问题,请收藏!
“
”
Q1: 什么是安全机制? 为什么微控制器需要安全机制?
ISO26262标准里,有安全措施(safety measure)和安全机制(safety mechanism)两个概念:
汽车问题Safety Measure:activity or technical solution to avoid or control systematic failures and to detect random hardware failures or control random hardware failures, or mitigate their harmful effects;
Safety mechanism:technical solution implemented by E/E functions or elements, or by other technologies, to detect faults or control failures in order to achieve or maintain a safe state.
Safety measure的概念定义更宽泛,包含safety mechanism的定义范畴,大家时常提及的MCU的安全机制或产品设计中的安全机制,应该是safety mechanism这个概念。
在产品中实现安全机制,可防止失效事件导致单点故障或减少残余故障,并防止故障潜伏。支持功能安全应用的MCU,一定提供了诸多安全机制,如:ECC/Lockstep/Watchdog/CMU/BIST等。
安全机制必不可少,行业内还出现支持ASIL B或ASIL D应用的MCU,两者最核心的差异就在可用安全机制的多少上。
Q2: 有软件安全机制和硬件安全机制的区分吗?
大部分安全机制是要求软硬件配合完成的,但也有少部分纯硬件安全机制或纯软件安全机制。
比如常见的Lockstep安全机制,可认为是一种硬件安全机制,在MCU上此机制的实现基本对用户应用层软件透明。
Lockstep锁步核校验
∙主核和检查核都可以从XBAR和缓存阵列读数据
∙只有主核对XBAR和缓存阵列进行写操作
∙主核和检查核都可对缓冲控制读写数据
∙主核的输出会送到XBAR和RCCU
∙检查核的输出只能送到RCCU
∙检查核位于安全域,物理上与主核隔离
一些基本由用户软件自行实现的安全机制,比如CAN通信中的Frame Counter,是在多帧传输中为了防止桢丢失或者帧错乱通过应用层软件对报文进行的编码或加密,这种安全机制可认为是纯软件的安全机制。
Q3:安全机制与故障容错时间有关系吗?
安全机制就是为了在故障容错时间内,有效检测故障控制失效影响,并维持系统的安全状态。安全机制的设计与使用必须考虑故障容错时间。目前MCU安全目标对应的故障容错时间一般为10ms,用户在使用功能安全MCU时一定要考虑这个时间,并且零部件产品级的故障容错时间需要大于MCU的FTTI。
再结合实例讨论一下SPC5744P 模数转换器的安全机制和故障容错时间的关系。SPC5744P 的ADC提供了自测试模式,通过寄存器配置与操作,某个测试通道可获取参考电压与带隙基准电压的比值,正常情况下,这个比值应该是一个预期中的固定常量,当参考电压有波动或者带隙电压失效后,通过该自测试可及时发现问题,提示用户ADC转换数据已经不可信。
这个自测试的功能就是一条安全机制,使用该安全机制就需要充分考虑故障容错时间。用户产品层某个安全相关功能若使用到该ADC,假设对应的安全目标的故障容错时间为100ms,那么建议用户必须在100ms以内至少启用一次SPC5744P提供的这条ADC Self Test,以保证在Delta Time =100ms 时间内,ADC均可认为在正常工作;另外一层意义上
讲,如果某条安全机制不能在系统故障容错时间之内检测到失效事件及影响,这也是没有意义的安全机制,对用户的功能安全开发无实际帮助。
发布评论