总结
在前面已经对S32K3对功能安全这一块相关的外设大致都介绍了一遍,这篇文章就来对S32K3与Safety有关的外设来个小的总结。首先把贴出前面的图,如下:
那么图中所有的安全机制都对应着K3的什么外设或者资源呢?
-
Redundant Hardware
S32K344有锁步核机制,另外还有RCCU冗余检查模块,检测到错误时,会报告错误给FCCU模块,对应FCCU的NCF[0]通道。 -
Protection against storage interference
对于资源访问保护这块,REG_PORT保护相关外设寄存器,MPU控制单核对内存的访问权限,XRDC控制所有Master对所有外设资源和Memory的访问权限。两者如果发生错误,则会触发Hardfault。 -
Program flow detection
对于程序保护,K3有最多3个,最少1个的软件看门狗SWT模块,SWT超时会引起功能性复位;另外还有INTM来最多监控4个中断,INTM发生超时,会报告错误给FCCU模块,对应FCCU的NCF[6]通道。如果搭配FS26这种SBC,还会有外部看门狗随时监控程序状态。 -
Data integrity
在数据从Slave—AXBS—Master的存储和传输过程中,分别有ECC, XBIC, EDC三种方式对数据的完整性进行保驾护航,如果发生错误则会汇报给FCCU模块,其中ECC错误对应FCCU的NCF[2:3]通道,XBIC和EDC错误对应FCCU的NCF[1]通道。 -
Clock Monitor
CMU有5个通道,分别对K3内部5个重要时钟源进行监控和测量,一发生问题,可触发中断,也可触发破坏性复位。 -
Power supply monitoring
PMC有LVR, HVD,LVD机制,如果监测到错误,则会触发中断或者触发破坏性复位,复位后复位原因记录在寄存器LVSC中,另外也会将错误报告给FCCU模块,对应NCF[4]通道。 -
Temperature monitoring
K3内置温度传感器,可通过ADC读出。 -
Self-test
K3有STCU2模块可进行Logic BIST和Memory BIST测试,如果发生错误,能将错误汇报给FCCU,对应NCF[5]通道,或者也能直接触发破坏性复位;K3也提供核自测机制,有配套的软件SCST;K3的ADC模块也有自测试功能。 -
Error reporting
EIM模块可主动给Memory总线上注入ECC错误, ERM则可以捕捉ECC错误,另外XBIC也提供了EDC错误的注入和捕捉功能。
另外所有报告被FCCU的错误,FCCU都可以产生ALARM中断,产生功能性复位,产生NMI中断,产生EOUT信号给外部SBC。这就是基本上所有跟Safety相关的外设资源了,总结出如下图: