前言
我们已经介绍过TC3xx芯片自带的很多的功能安全异常监控机制了,本文将继续介绍TC3xx芯片内部的时钟监控机制。
AUTOSAR架构下内部看门狗复位检测
TC3xx芯片的总线内存保护
TC3xx芯片ACCEN寄存器保护详解
如何监控TC3xx芯片PFlash的ECC错误
TC3xx芯片SMU模块详解
TC3xx芯片RAM的错误检测
TC3xx芯片MPU介绍
TC3xx芯片电压监控和温度监控
目录
缩略词
简写 | 全称 |
OSC | Oscillator Circuit |
PLL | Phase-Locked Loop |
DCO | Digitally Controlled Oscillator |
正文
TC3xx芯片监控时钟模块的以下时钟源:fPLL0, fPLL1, fPLL2, fSPB, fBACK.
这些时钟中的每一个都由自己的计数器(Counter)进行监控。对于PLL和SPB时钟,back-up时钟用作监控/检查时钟的不同时钟源。为了监控back-up时钟,fPLL0被用作不同的时钟。
实时监控的基本原理是检测被监控的时钟在由不同的观测/监控时钟生成的特定参考时隙内切换。如果监控的时钟切换,则认为它是活动的。
应将监测的时钟除以一定的因子,以提供可在监测时钟域中正确采样的低频信号。即,划分必须以这样一种方式进行调整,即生成的信号具有比采样/监测时钟更低的频率,但在监测器参考时间窗口内至少切换一次。分频因子还必须考虑被监测和监测时钟的允许时钟频率范围及其有效合。
监控时钟每512个时钟周期产生一个触发脉冲。每次触发时,都会再次执行切换检查,如果失败,则会生成SMU警报。因此,故障反应时间与参考定时窗口的持续时间相关。
为了确保EVR33和EVRC调节器的安全运行,还对备份时钟进行了监控,因为它是这些块的工作时钟。为了适应作为该监视器的不同时钟的fPLL0,需要相应地设置监视阈值的上限和下限。
backup时钟监视器简单地计数512个fPLL0时钟周期的时间窗口内的备份时钟周期的数量。如果计数的循环数高于上限或低于下限阈值,则会生成警报(Alarm)。此检查不断重复。
时钟监视Alarm生成为水平型(level type, Alarm产生后最少会维持一个循环时间,而不是突变的产生或者消失);即,只要错误条件持续存在(clock not alive or out of bounce),就产生警报(asserted alarm)。如果错误情况在下一个参考循环重新启动(触发)之前得到解决,则警报将再次被取消断言。这确保了警报生成足够长,以便SMU处理它,即至少一个参考计数器周期。
此外,所有监视器都可以通过配置寄存器启用/禁用和测试。如果监控器被禁用,它们将清除所有内部状态标志和计数器,以避免再次启用监控器时出现错误警报。
因为配置寄存器、被监控的时钟分频器和监控逻辑彼此异步,所以在组件之间插入了同步逻辑。
时钟激活计数器产生两个独立的报警(alarm alive fpllx, alarm alive fback);back-up时钟激活监测器在SPB时钟域内生成报警信号,而fPLL0、fPLL1、fPLL2和fspb时钟激活监测器则在back-up时钟域内部生成组合报警信号。额外的back-up时钟监视器在SPB时钟域内生成警报(alarm range fback)。
系统中的所有CPU都可以访问时钟监视器寄存器。然而,建议仅使用一个CPU来控制时钟。由于CPU0是每次重置后活动且可用的CPU,因此这是最佳选择。
CCUCON3寄存器主要配置是否使能时钟监控。
CCUCON4寄存器主要配置监控阈值。
LOTHR = 512 / fPLL0 * 0.9 * 100
UPTHR = 512 / fPLL0*1.1 * 100
注意:fPLL0的单位为MHz,比如fPLL0= 300 MHz,则LOTHR = 153.6
Alarms |
ALM8[2] - Back-up clock alive alarm ALM21[15] - PLLx/fSPB Alive Alarm (provided on fBACK clock with x = 0..2) ALM7[20] - SPB Bus Error ALM21[7] - Safety flip-flop uncorrectable error detected. ALM6[4] - Safety flip-flop uncorrectable error detected. ALM6[5] - Safety flip-flop uncorrectable error detected. ALM6[8] - PLL Safety flip-flop uncorrectable error detected. ALM6[24] - Safety flip-flop correctable error detected. ALM6[25] - Safety flip-flop uncorrectable error detected. ALM10[20] - CCU Safety flip-flop correctable error detected. ALM10[21] - Miscellaneous Safety flip-flop uncorrectable error detected ALM8[0] - OSC clock frequency out of range ALM8[1] - Back-up clock out-of-range alarm ALM6[4] - SCU Safety FF uncorrectable error detected ALM6[8]: SYS_PLL/PER_PLL SFF uncorrectable error detected ALM8[3] - System PLL DCO loss of lock event ALM8[4] - Peripheral PLL DCO loss of lock event ALM7[20] - SPB Bus Error Event |
时钟监控Alarm产生后,只要在Error info中能识别出是哪一个Clock出问题即可。如何识别是哪一个Alarm产生,参考:AUTOSAR架构下内部看门狗复位检测
本文介绍了TC3xx芯片自带的时钟监控原理及其需要配置的寄存器。至于异常监控的软硬件架构实现可以参考:
如何监控TC3xx芯片PFlash的ECC错误
TC3xx芯片RAM的错误检测
End
「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」
点击文章最后左下角的阅读原文可以获取更多信息
或者复制如下链接到浏览器获取更多信息
https://blog.csdn.net/qq_36056498/article/details/132125693
文末福利
2.为便于技术交流,创建了汽车电子嵌入式技术交流群,可尽情探讨AP,CP,DDS,SOME/IP等前沿热点话题,后台回复“加群”即可加入;
注:本文引用了一些第三方工具和文档,若有侵权,请联系作者删除!
推荐阅读
汽车电子嵌入式精彩文章汇总第一期:20210530-20230703
汽车电子嵌入式精彩文章汇总第2期
TC3xx芯片GTM模块-CMU,CCM,TBU详解
TC3xx芯片GTM模块-TOM详解
AUTOSAR架构下PWM模块配置实践
TC3xx芯片GTM模块-TIM详解
AUTOSAR架构下ICU模块配置实践
TC3xx芯片电源管理系统PMS详解
TC3xx DMA模块详解
TC3xx芯片SMU模块详解
如何监控TC3xx芯片PFlash的ECC错误
TC3xx芯片RAM的错误检测
TC3xx芯片的总线内存保护
AUTOSAR架构下MCAL Modules软件分区问题分析
AUTOSAR架构下内部看门狗复位检测
嵌入式基础:环形缓冲区ring buffer
编译链接专题第1篇-make和makefile介绍
编译链接专题第2篇-初识makefile结构
编译链接专题第3篇-初识makefile中的伪目标
编译链接专题第4篇-变量和变量的不同赋值方式
编译链接专题第5篇-预定义变量的使用
编译链接专题第6篇-变量的高级主题(上)
编译链接专题第7篇-变量的高级主题(下)
编译链接专题第8篇-条件判断语句
End
欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!
汽车电子嵌入式
微信扫描二维码,关注我的公众号