MCU如何实现功能安全

原标题:MCU如何实现功能安全

来源 | 汽车安全研究中心

摘要:汽车正在不断加强安全措施,汽车电子件所使用的安全MCU也需要遵循ISO26262标准。本文以飞思卡尔公司32位Qorivva微控制器(MCU)MPC574x提供的主要设计功能为基础,帮助用户认识理解MCU如何满足ISO26262提出的安全要求。

功能安全要求:

功能安全与最大限度地减少系统故障引起的危险有关。系统故障可能由于硬件/软件错误引起,可能是永久性的,也可能是瞬时性的。下面描述了发生错误时可能出现的反应:

● 故障-危险:发生故障时可能造成危险;

● 故障-不一致:发生故障时提供的结果可能明显不一致;

● 故障-停止运行:发生故障时完全停止运行;

● 故障-安全:发生故障时返回或保持安全状态;

● 故障-可以运行:发生故障时继续正常工作;

● 故障-静音:发生故障时不打扰任何人;

● 故障-指示:向环境指示发生了故障。

在系统中实施功能安全通常意味着故障能被整个系统或司机处理,从而确保最大限度地减少系统故障引起的危险。

MPC574x提供的主要功能安全:

下面深入讨论针对汽车安全应用的MCU的主要安全特性。

核心锁步:

确保SoC中的内核能够安全运行是功能安全的主要要求之一,这是因为几乎所有的操作都以其为中心。在Qorivva微控制器MPC574x中,通过采用一个与主内核锁步运行的检查内核来实现安全运行。这意味着,检查内核执行与主内核相同的指令,内核的地址和数据总线在检查单元进行对比,以检测运行偏差。将检测到的错误报告给错误收集和应对模块。由于锁步,从软件的角度来看,两个内核作为一个单独的内核运行,减少软件实施。

查看下面的图1所示的框图。

除了内核,eDMA、中断控制器、缓存等其他安全相关模块可在系统中进行复制。所有此类复制必须在芯片上保持物理隔离,这样,常见故障(CCF)便不会影响两个实例的运行。

存储器中提供的端到端ECC(E2EECC)保护:

在海明间距为4的情况下实现ECC(纠错码)和SECDED(单纠错和双纠错),可保护所有的存储器存储操作。ECC在数据、地址信号上实现,并通过写操作与数据一起存储在存储器中。发起读操作时,ECC在检索到的数据和请求的地址上重新进行计算,并通过已存储的ECC进行验证。

在Qorivva MPC574x器件中,没有仅用于存储器的ECC,但它提供了E2EECC,可检测总线主设备和总线客户端之间的所有数据路径上的数据损坏,提供至少99%的覆盖率。

机制如下:

1) 来自主设备的数据通过 ECC-SECDED 代码进行编码。该数据编码包括寻址信息覆盖。

2) 路径的各个模块包括本地机制,如确保控制数据的正确发送和正确地址解码。

上述方法可确保数据路径上没有数据损坏。然后主设备提供的ECC被用于RAM和闪存,因此存储器不需要额外的ECC计算,ECC从一端(总线主设备)传到另一端(存储器)。

系统中有一个中央存储器错误管理单元,负责采集和报告与在SRAM、外设系统RAM及闪存上所使用的ECC逻辑相关的错误事件。每当发生可纠正(单位)或不可纠正(多位)的错误时,MEMU都会收到一个错误信号,然后记录错误地址,设置相应的错误标记并报告给FCCU。在需要特殊更正数时或进一步分析软件中这样的错误时,可以使用。

故障收集和控制单元(FCCU):

FCCU是一个可编程的单元,监控MCU的完整性状态,提供灵活的安全状态控制,在设备发生故障时通过可控的方式使设备处于安全状态。收集和控制操作不需要 CPU 的干预。

FCCU简易框图如图2所示:

FCCU提供一个有限状态机,根据系统中发生的错误以及对这些错误采取的行动/无为,从一个状态迁移到另一个状态。根据故障配置,FCCU可能会触发复位、屏蔽/非屏蔽中断、外部故障指示、或不反应。该SoC 还提供两个外部指示引脚 (EOUT0/1),可以就系统中发生的故障与外部环境进行通信,并遵循各类静态或切换协议。

自我测试控制单元:

这是针对在启动/关机时运行的设备的自我诊断措施,以确保在应用运行过程中设备不会出现延时/休眠故障而破坏其运行。通常来说,自我检测根据数字逻辑(称为 LBIST)在嵌入式存储器( 称为 MBIST)上执行,有足够的覆盖率,可满足所要求的系统安全完整性等级(SIL)。

1. 在 STCU 重置事件后,SSCM 检测到设备自我检测尚未运行。

2. SSCM 从非易失性闪存存储器 (NVM) 读取自我检测参数。

3. SSCM 将自我检测参数加载到 STCU 中,并将控制传送到 STCU。

4. STCU 管理 MBIST 并更新其内部状态。

5. STCU 管理 LBIST 并更新其内部状态(可能有其他LBIST和MBIST的顺序或并行执行)。

6. 如果检测到故障,STCU 便将测试故障报告给 FCCU 或重置设备。

7. 在完成自我测试后,STCU 便示意重置模块,引导顺序推进到下一阶段。

时钟监控和辅助时钟:

为了检测安全运行中内外部时钟电路故障,通过辅助时钟监控主时钟。该辅助时钟由内部RC振荡器提供,只要器件重置便可使用。有了辅助时钟,即使内部PLL由于某些原因而发生故障,也能保证系统有时钟可以运行许多安全机制,确保继续运行。该IRC振荡器可进行微调,使时钟在不同的PVT(流程、电压和温度)下保持一致。

时钟监控单元:

CMU是监控系统PLL输出频率的模块,如果发生时钟丢失或被监控的时钟超出低频或高频边界时,便会显示故障、重置或中断。CMU将辅助时钟(见上文)作为参考来对时钟进行监控,同时根据外部晶体振荡器监控辅助时钟。CMU简易框图如图 4 所示。

如图4所示,如果发生振荡器时钟丢失事件或被监控时钟发生低频/高频事件,CMU会向重置和FCCU模块提供信号。只有当一段时间内FCCU未反应的情况下,才激活重置模块路径。因此,重置和FCCU的信号路径在MCU内组成了冗余故障指示路径,以确保FCCU的故障无法阻止所有的故障报告。FCCU模块的配置决定事件是否会造成中断或重置。

电源管理控制器:

Qorivva MCU 提供的 PMC 采用电压监控电路和 BIST。有两种电压监控器,即低压检测 (LVD) 和高压检测 (HVD) 监控器。所有与安全相关的电压都受到内部监控,防止电压超出这些范围。

PMC中实施的BIST在启动时或通过软件检测PMC中关键的带隙电压/其他功能。

由于安全相关电压故障可能导致MCU故障指示机制(例如 FCCU和错误输出板)在反应前关闭,其电压错误指示将直接导致设备跳变到故障安全状态(执行重置),而无需FCCU干预。

总结:

设备实施功能安全特性需要MCU提供冗余,这可能增加功耗和芯片尺寸。但是,如果与强大的硬件系统连接的MCU能够提供故障安全、故障静音或故障指示状态,带来的好处非常多,尤其在减少软件复杂性方面。

本文引用地址:

http://www.eepw.com.cn/article/143322.htm

本文作者:Arun Mishra Markus Baumeister 飞思卡尔半导体公司 首席设计师 安全架构师

参考文献:

[1]Chalupa L.新一代汽车电机控制:趋势与解决方案

[2]Freescale.MPC574x 参考手册

[3]飞思卡尔SafeAssure计划

[R/OL].www.freescale.com/safeassure

汽车安全研究中心点评:

选用什么样的MCU,能帮你快速设计出满足ISO26262 ASIL D要求的汽车电子产品?MCU的安全机制有哪些?相信读者看完本文后,能找到答案。

MCU的运行离不开存储器、处理器、时钟、电源等基本要素,只有保证了基本要素的功能安全,才能保证整个MCU的功能安全。所以理解MCU的功能安全,需要从其基本要素的理解入手!

其实,我们在做功能安全产品开发时,本文提到的安全机制设计思路,也适用于其它安全相关要素的选择和使用。返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
免费获取
今日搜狐热点
今日推荐