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

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

[复制链接]
incompletely 发布时间:2008-9-3 20:13
Flash 检测结束后只能表示代码是正确的,接着应当对内部SRAM进行检测,可是片内SRAM的可靠性相当高,至今为止我还没有见过一次因为内部SRAM硬件故障而产生的失败。因而Startup的SRAM检测跳过去不讲了。但运行时内存也可能受到外部干挠而发生位翻转,因而内存监控将在运行时再进行讲述。这里,将主要讲一下安全时钟系统的原理。
4 w2 t  G$ t+ e' J: i: T3 F* s; F3 B
背景:* j& e9 O* s: k4 |5 g

2 S! |3 l( T6 m  l0 c% L4 K& T时钟是系统的脉博,而时钟也是最经常发生故障的电路。极端情况下就是晶振损坏无法起震,有时也会产生跑频,导至几部PLL也无法锁定频率。如何监控时钟电路是否正常是非常必要的。
+ p  A0 L) P0 T) w9 q" c& b  V
+ n+ f* U- ?0 y4 o* o0 U1 oSTM32内部一共可以有四个晶震:LSI、HSI、LSE、HSE,分别为内部低速晶振(30K-60KHz)、内部高速晶振(8MHz)、外部低速晶振(32.768KHz)、外部高速晶振。
: N( t) W' f1 B# l7 P0 k# \8 H5 b! Q* t% @9 ?2 b
LSI是RTC和IWDG(独立看门狗)的时钟源,而RTC也可以选择由LSE外接32K晶振来提供高精度的时钟源。但IWDG只能由LSI提供时钟。
% ~8 {8 g0 Q/ L0 j
$ s4 m, g  h$ q4 ^1 UHSI是内部8M振荡器,实际上会有一些偏差。上电复位初期便由他提供时钟,以后可以由软件将系统时钟切换到HSE。
& T! d, b- n# S3 E+ Y0 h& p
  A9 W  ~% Z% e. V8 qHSE是外接晶体,可以提供准确的时钟基准,如系统需要使用USB则最好由HSE经PLL得到。
0 [4 x3 x3 x9 Q) U8 g  X5 a& A+ j. h, m6 T9 }6 f, n
时钟安全系统(CSS):
, F$ A5 O% Z) s: t4 A' g/ [: T; d/ t
6 p3 I" }4 K5 d0 GSTM32已提供了一个时钟失常恢复机制(CSS),当系统选择HSE作系工作时钟,并打开了CSS功能后,一旦HSE由于外部原因而停震时,将自动切换到内部HSI运行,并产生NMI中断,于是可以在NMI中断中进行安全处理。
" d! B- {) J" F6 o/ Z) c  N" G, p3 M" {& f8 A/ z; u9 m1 G
跑频检测:+ X" b9 {4 S5 I9 X1 R
+ b; o( q- X) l" N: }
当外部晶振跑频但没有停止时,CSS并不会生效,此时我们需要用软件来检测。
6 l9 E, }6 \  w+ S& J- a1 S2 k3 B, K9 Z. l2 I, t, B  t, f
检测原理:* ]' e3 r( @. e$ ]# x
) ^8 O. u4 g& [2 k
第一步,上电初期时打开LSI并使之作为RTC的时钟源,接着将系统时钟切换到HSI并设置Systick溢出为2ms,将RTC计数器清零,然后等待systick 2ms溢出标志到来,然后读取RTC的计数值:LSIPeriod。
  D$ e& ~$ `; D! c2 J% {
7 m+ _& D' y* x5 s3 b8 |1 b; n第二步,选择HSE作为系统时钟,同样设置Systick 2ms溢出,将RTC计数器清零。接着等待systick 2ms到来,读取RTC计数值:RefHSEPeriod。
: [0 N3 r8 s/ J6 c; G% K
, M$ s0 s, q, i; ^" I第三步,比较:以上LSIPeriod和RefHSEPeriod均是在高速晶体计数2ms时的RTC计数,如果两个高速晶体准确,那这两个值应是相同或相近,比较这个值就知道上电时时钟是否异常。! f8 H1 _3 V" v2 R( G

6 L9 p3 ]. r9 O) \运行时的检测:
% Y: |7 @& r( r" w6 ^' @5 d
: M8 P9 Q# V  C假如你的系统正常工作时SysTick也恰好是2ms,那每隔2ms去取得RTC计数,并与上电时RefHSEPeriod进行比较来检测运行时的时钟误差。在安全系统中,看门狗是必不可少的部件,因为STM32的IWDG使用的是LSI,因而对LSI的检查也是需要的。假设LSI产生故障变慢或停止,实时取得的RTC计数都将产生误差,因而从另一个角度上又去保证了IWDG的可靠运行。
2 _9 k3 ?. w* @2 l3 b* v8 I! b4 v! f* r( c. G/ ?; s  Z
出处:skyler
收藏 评论0 发布时间:2008-9-3 20:13

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版