• 93查看
  • 0回复

[芯片硬件] 英飞凌TC3xx SMU概述

[复制链接]

该用户从未签到

发表于 17-4-2024 21:35:34 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


目录

1. Safety和Security

2. SMU概述

2.1 为什么设计SMU

2.2 SMU整体框架

2.3 SMU Alarm配置

2.4 SMU状态机

3.小结


1. Safety和Security

SMU是英飞凌TC3xx系列功能安全架构里最重要的组成部分,用于管理MCU故障状态下的行为。但在聊SMU之前,我们有必要搞清楚Safety和Security分别指的什么?虽然从字面看二者都有“安全”之意,但是它们关注的范畴和方向不是一样。

    Safety:功能安全,参考标准ISO26262、ISO21448;目的是尽量减少因系统设计问题导致的功能失效,同时也尽量保证功能按照预期功能实现,从而保证人财的安全;

英飞凌TC3xx SMU概述w1.jpg
    Security:信息安全,参考标准ISO21434、SAE J3061;目的是保护车辆和车内设备免受恶意攻击和未经授权的访问,如防止车辆被盗、防止车载系统被黑客入侵、确保车辆数据的机密性和完整性等;

英飞凌TC3xx SMU概述w2.jpg
    虽然Safety和Security有各自的重点和侧重点,但它们的共同目标都是保护车辆、乘员和其他道路使用者的安全;同时二者关系也非常紧密,例如车辆的信息系统受到黑客攻击或恶意软件感染,可能会导致车辆失去控制、系统故障或其他安全问题,从而危及车辆和乘员的安全。
而针对Security和Safety,TC3xx分别设计了HSM子系统和FUSA架构(包含SMU)来满足需求,如下图:
英飞凌TC3xx SMU概述w3.jpg
所以,今天我们就先聊聊SMU。2.SMU概述

2.1 为什么设计SMU

MCU一般由内核子系统、系统管理子系统、外设子系统、电源子系统等等组成;在设计时每个子系统不可能保证完全没有bug,也不能保证芯片在运行过程中不会出现随机硬件失效(例如ECC,位反转等);针对系统失效:可以通过持续和严格的过程改进来尽量避免:针对随机硬件失效:可以通过工艺设计预防、引入功能安全机制来探测和缓解;如下:
英飞凌TC3xx SMU概述w4.jpg
在TC3xx里,每个功能安全机制都会产生一个名叫“SMU alarm”的信号;试想,这么多的alarm如何管理?常规思路肯定是放到一个模块中来进行处理,为此SMU(Safety Management Unit)诞生了。2.2 SMU整体框架

在TC3xx中,SMU的框架路径如下图:
英飞凌TC3xx SMU概述w5.jpg
当功能安全机制探测到失效后,会产生SMU alarm事件(可以是脉冲也可以是电平)给到SMU,SMU根据用于预定义配置触发相应行为,具体如下:

    alarm在MCU内部行为:
      向CPUs发起中断请求产生NMI向CPUs发起CPU复位请求向SCU发起系统\应用复位请求
    向外部通知错误状态行为:
      通过ErrorPin(P 33.8和P21.2,一般用P33.8连接35584)


英飞凌TC3xx SMU概述w6.jpg
当然一个alarm可以同时选择使用内部和外部行为。 对于一个alarm的行为配置的选择,是要依据当前alarm对于整体系统的影响严重程度进行选择,例如常见的看门狗超时,一般默认都是reset;ram出现ecc错误,可以选择中断和重启;某些严重失效会引起MCU内部宕机,这时候就要选择FSP,一旦宕机,error pin对外输出波形异常,PMIC获取到事件,可以让系统功能降级,同时也可以重启MCU
进一步,SMU内部又分为了SMU_Core和SMU_Standby,如下图:
英飞凌TC3xx SMU概述w7.jpg
特点如下:

    SMU_core/stdby处于不同的时钟域和电源域SMU_core 处理绝大部分alarms 与SCU\RCU\IR\CPUx交互SMU_stdby 处理clock、power、温度等alarm
      处理SMU_core_alive alarm提供SMU self-test功能

个人理解,之所以这两个域互相隔离,是避免共因失效,至少smucore挂了,stanby还可以接管处理。

2.3 SMU Alarm配置

在TC3xx里Alarm以Group形式进行分组,在39x的手册里可以看到多达14组Alarm Group,每个alarm都有对应的功能安全机制,如下:
英飞凌TC3xx SMU概述w8.jpg
那么我们应该如何来配置alarm?敲重点了,根据内部行为和外部行为分别配置不同的寄存器,如下图:
英飞凌TC3xx SMU概述w9.jpg
以配置ALM1[0](第1组第0个功能安全机制)为例:每个Alarm group有三个配置寄存器,AGi(0-11)CFj(0-2), 每个配置寄存器CF0-31表示对应机制,功能安全机制0-31;如AG1CF0.CF0,对应group ALM[1] Configuration0中的CF0 以此类推 ;而相应alarm的behavior由这三个寄存器相应位共同决定:
英飞凌TC3xx SMU概述w10.jpg
而内部行为的配置码如下:
英飞凌TC3xx SMU概述w11.jpg
如果现在我们想把行为配置为SMU_RESET,那么对应AGCF寄存器就应该配置如下:AGCF[1][0].CF0 =0AGCF[1][1].CF0 =1AGCF[1][2].CF0 =1如果还想通过FSP向外报告MCU内存错误状态,就需要配置AGiFSP:AGFSP[1].FE0 = 1如下图:
英飞凌TC3xx SMU概述w12.jpg
为什么这里不讲stand by配置,有心的朋友应该已经发现了,smu standby寄存器放到了电源管理章节,就很神奇,估计是为了布线牺牲2.4 SMU状态机

SMU不是随时都会产生相应行为的,只有它进入RUN状态,才会处理alarm并触发相应行为;根据芯片手册,自身定义的状态机如下
英飞凌TC3xx SMU概述w13.jpg

英飞凌TC3xx SMU概述w14.jpg
因为,一般情况在OS运行前,我们要检查error pin状态,配置alarm行为,完成一切准备工作后,让SMU进入run,这才起到alarm处理的作用3.小结

本文主要描述了SMU的设计初衷,以及配置方法,但没有讲FSP的使用方法,因为在其官方推荐中它是要与TLF35584搭配使用,之前有相关文章进行描述,大家有兴趣可以回溯一下。


往期回顾:

1.汽车标定精选
汽车标定技术--标定概念详解
汽车标定技术--Bypass的前世今生
万字长文:汽车标定技术--XCP概述

2.AUTOSAR精选
AUTOSAR CryptoStack--CSM Job夹带了哪些私货
AUTOSAR 诊断栈分析(一)
AUTOSAR OS概述(一)

3.汽车网络安全精选
汽车信息安全--MCU启动常用密码算法
汽车网络安全方案需求分析
汽车信息安全--常见车规MCU安全启动方案
车载信息安全场景概述

4.汽车功能安全精选

5.汽车虚拟化精选

    汽车ECU虚拟化技术初探(一)

    汽车ECU虚拟化技术(二)--U2A虚拟化功能

6.杂七杂八

    Flash模拟EEPROM原理浅析

    征途漫漫:汽车MCU的国产替代往事

    车规MCU应用场景及国产替代进展

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 1-5-2024 04:39 , Processed in 0.267816 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.