你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 xxxxxx之时钟全安检测(三)

[复制链接]
incompletely 发布时间:2008-9-3 20:13
Flash 检测结束后只能表示代码是正确的,接着应当对内部SRAM进行检测,可是片内SRAM的可靠性相当高,至今为止我还没有见过一次因为内部SRAM硬件故障而产生的失败。因而Startup的SRAM检测跳过去不讲了。但运行时内存也可能受到外部干挠而发生位翻转,因而内存监控将在运行时再进行讲述。这里,将主要讲一下安全时钟系统的原理。
3 e, y" j. P; }5 I% F. N! O
$ h% m5 l. k/ i: C' X5 T" V7 ^4 ~6 e背景:
, R( ?& N) @6 t7 o; C) O; K- i+ E3 g4 Q% n  Z
时钟是系统的脉博,而时钟也是最经常发生故障的电路。极端情况下就是晶振损坏无法起震,有时也会产生跑频,导至几部PLL也无法锁定频率。如何监控时钟电路是否正常是非常必要的。
: p- x. P$ X1 f9 [/ X0 d! F/ `
STM32内部一共可以有四个晶震:LSI、HSI、LSE、HSE,分别为内部低速晶振(30K-60KHz)、内部高速晶振(8MHz)、外部低速晶振(32.768KHz)、外部高速晶振。' B( A8 q/ ~9 N
! J, G8 z( u+ G: }2 ]
LSI是RTC和IWDG(独立看门狗)的时钟源,而RTC也可以选择由LSE外接32K晶振来提供高精度的时钟源。但IWDG只能由LSI提供时钟。
/ l& `/ @7 ?/ v& q+ X. w( \
6 ~- y0 C2 d/ q. Y1 wHSI是内部8M振荡器,实际上会有一些偏差。上电复位初期便由他提供时钟,以后可以由软件将系统时钟切换到HSE。
: H& ]% q9 h6 k& b1 z' j6 i, \3 l1 ^6 S5 |
HSE是外接晶体,可以提供准确的时钟基准,如系统需要使用USB则最好由HSE经PLL得到。  i" q5 x! f8 M: X* V1 m" E
2 P. U6 b. q5 ~7 Z. [6 m# l
时钟安全系统(CSS):5 d& H. u4 E- T8 e  V0 D
/ v" x' I  d7 y  P- q: E5 V: d3 V! k' Q
STM32已提供了一个时钟失常恢复机制(CSS),当系统选择HSE作系工作时钟,并打开了CSS功能后,一旦HSE由于外部原因而停震时,将自动切换到内部HSI运行,并产生NMI中断,于是可以在NMI中断中进行安全处理。
# ~% |% a3 i, Z0 b' r
$ K* m" z- Z6 X7 A/ v" b跑频检测:  I8 o5 F: A9 J- T' c' K

/ e' [8 d  q* C/ z, `& Y3 q; O2 \当外部晶振跑频但没有停止时,CSS并不会生效,此时我们需要用软件来检测。* i1 R" s& q* v( ?! f& m

. L5 s7 b+ V' e/ J  ?5 B+ e4 t  F9 z/ d检测原理:
. ]3 g9 W* f- i1 q# H0 ]2 @) Q* [4 _1 V1 F
第一步,上电初期时打开LSI并使之作为RTC的时钟源,接着将系统时钟切换到HSI并设置Systick溢出为2ms,将RTC计数器清零,然后等待systick 2ms溢出标志到来,然后读取RTC的计数值:LSIPeriod。
) q$ n3 n" P8 y
9 p" b3 E1 E0 N: {4 b0 J第二步,选择HSE作为系统时钟,同样设置Systick 2ms溢出,将RTC计数器清零。接着等待systick 2ms到来,读取RTC计数值:RefHSEPeriod。
4 j; i& w5 L$ M8 j4 @; e; B/ \. b( ~) e" B2 m
第三步,比较:以上LSIPeriod和RefHSEPeriod均是在高速晶体计数2ms时的RTC计数,如果两个高速晶体准确,那这两个值应是相同或相近,比较这个值就知道上电时时钟是否异常。
* H1 v+ h  p5 }6 {$ }8 }
" E" A# ]% W# Z) d! T9 k运行时的检测:1 W9 H, g  [! H) D% o7 F% j
: {8 u$ y6 u5 U% J# J& r& @
假如你的系统正常工作时SysTick也恰好是2ms,那每隔2ms去取得RTC计数,并与上电时RefHSEPeriod进行比较来检测运行时的时钟误差。在安全系统中,看门狗是必不可少的部件,因为STM32的IWDG使用的是LSI,因而对LSI的检查也是需要的。假设LSI产生故障变慢或停止,实时取得的RTC计数都将产生误差,因而从另一个角度上又去保证了IWDG的可靠运行。. S0 M9 S) c* q% _3 J

4 k3 H7 A; n; d, W9 J& e. K+ K0 O出处:skyler
赞 收藏 评论0 发布时间:2008-9-3 20:13

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版