讲稿-10 Watchdog的使用原理.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
S3C2410A的系统时钟和总线时钟设置 在S3C2410A中,有一个系统时钟和两个标准总线时钟。它们分别是FCLK,HCLK,PCLK。FCLK是CPU的主频,HCLK是系统总线(AHB)的主频,PCLK是外部总线(PHB)的主频。 S3C2410A的时钟源由外部输入,一般是12MHZ。通过PLL模块,可以得到高达270MHZ的FCLK。然后通过分频,得到相应的HCLK和PCLK。PLL是Phase-Locked Loop的缩写,中文含意为锁相环。主要作用是将外部输入时钟倍频到处理器需要的时钟频率。 无论是PLL的倍频,还是分频,都可以通过对相应控制寄存器的设置,来达到所需的频率。 FCLK的设置寄存器 我们实际上只要记住下面这个公式,就可以计算出FCLK 的值。FCLK=fout*(MDIV+8)/((PDIV+2)*2**(SDIV)) **表示乘 方的意思。fout表示输入频率。我们所使用的试验箱中, MDIV PDIV SDIV分别被设置为192 4 1 fout是12MHZ,故 FCLK是200MHZ。 最简单的设置语句是 rMPLLCON = (192 12) | (4 4) | 1; HCLK和PCLK配置寄存器 实时时钟计数器 在一个嵌入式系统中,实时时钟单元可以提供可靠的时 钟,包括时,分,秒和年,月,日。即使系统处于关机状态 下,它也能够正常工作,其外围需要不多的辅助电路。 S3C2410A的实时时钟单元功能十分强大,它具有如下特 点: 时钟数据采用BCD编码 能够对闰年的年月日进行自动处理 具有告警功能,当系统处于关机状态时,能产生告警中断 具有独立的电源输入。 提供毫秒级时钟中断,该中断可以用于嵌入式操作系统的内核时钟。 告警控制寄存器 实时时钟计数器寄存器 看门狗的功能及工作原理 嵌入式系统运行时受到外部干扰或者系统错误, 程序有时会出现“跑飞”,从而导致整个系统瘫痪。为 了防止这一现象的发生,在对系统稳定性要求较高 的的场合往往要加入看门狗电路。看门狗的作用是 当系统“跑飞”而进入死循环时,恢复系统的运行。 实时时钟寄存器 看门狗的功能及工作原理 基本原理为:设本系统程序完整运行一个周期的 时间为tp,看门狗的定时周期为ti,且tpti,程序运 行一个周期后,就修改定时器的计数值(“喂 狗”)。只要程序正常运行,定时器就不会溢出。 如果由于干扰等原因使系统不能在tp时刻修改定时 器的计数值,则定时器将在ti时刻溢出,引发系统 复位,使得系统得以重新运行,从而起到监控作 用。 S3C2410A的看门狗控制原理 S3C2410A的看门狗控制原理 上图是看门狗电路示意图。输入时钟为PCLK,它 经过两级分频,最后将分频作为该定时器的输入时 钟,当计数器期满后可以产生中断或者复位信号。 看门狗定时器的输入时钟周期为: t_w=1/(PCLK/(Prescaler+1)/Division_factor) 看门狗的定时周期为 T=WTCNT*t_w。 看门狗控制寄存器WTCON 看门狗定时器的计数寄存器 该寄存器为看门狗定时器的计数器,其值表示该定 时器的当前计数值,即到下一次计数满还需要经历的 时钟数。当该定时器工作在看门狗模式时使用该寄存 器,每次期满前需要重新设置其值,以防止发生复 位。 看门狗应用的编程分析 我们通过分析一个简单的看门狗应用程序,来熟悉 2410A中的看门狗的原理。 本程序完成的功能如下: 首先设置一个看门狗定时器,它的预分频值是255, 时钟分频因子是11(1/128)。而看门狗的计数长度为 0x1000。那么整个看门狗的定时长度是 1/(PCLK/0x100/0x80) *0x1000 ,而PCLK是50mhz, 所以定时长度是2.68秒。 看门狗应用的编程分析 程序分两个版。 第一版功能是:当设置和启动看门狗之后,程序 就只运行一个无限循环语句while(1); 这样,过了一 段时间,由于没有喂狗动作(重置看门狗计数寄存 器),系统会自动复位。编程人员可以通过超级终 端观察到这个复位过程。 看门狗应用的编程分析 第二版的功能是:设置实时时钟计数器中断。在 中断程序中,每隔二秒,就重新喂狗一次,防止看门 狗复位。 下面对程序的主要代码进行分析: BoardInitStart(); //系统初始化,MMU初始化 这个函数用来初始化整个系统,最重要的是初始 化存储器管理单元。ARM9的处理器都带着用于管 理存储单元的协处理器,又叫MMU。关于MMU如 何编程请参看有关资料。 SystemClockInit(); //系统时钟初始化 看门狗应用的编程分析 SystemClockInit(); //系统时钟初

文档评论(0)

fc86033 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档