VxWorks下看门狗的定时器设计.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、本文档付费后,不意味着付费购买了版权,只能用于单位或个人使用,不得用于商业用途(如:【转卖】进行直接盈利和【编辑后售卖】进行间接盈利)。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:18428362892(电话支持时间:9:00-19:00)。
【Word版本下载可任意编辑】 PAGE 1 - / NUMPAGES 1 VxWorks下看门狗的定时器设计 摘 要:随着嵌入式电子产品越来越多的应用,实时性操作系统VxWorks得到广泛应用,而定时器正是实时性操作系统中不可或缺的重要组件。文章以VxWorks实时性操作系统中的看门狗机制为根底,提出了一种通用性强、效率高并且使用简单的共享看门狗定时机制。 0 引言 VxWorks是目前应用多的嵌入式实时操作系统之一,广泛应用于工业控制、医疗器械、通信、航空航天以及武器装备等领域。VxWorks是32位实时嵌入式操作系统,自20世纪80年代由风河公司推出以来,其良好的实时性、对多任务的支持、体积精简、可剪裁等优点得到众多公司、开发者及用户的喜爱。 在实时性要求高的应用系统中,定时器是经常被用到的重要器件。而对于VxWorks操作系统本身来说,并未提供一个通用、高效的定时器组件。文章所提出的共享看门狗定时机制就是针对这种情况实现的一种通用型定时器组件。 1 VxWorks定时的方法 1.1 使用taskDely函数 函数原型为:STATUS taskDelay(int ticks)该函数提供一种简单的任务休眠机制,常用于需要不定时或延时的应用中,其定时的单位为tick,默认情况下60(ticks)为1s (利用sysClkRateSet函数可以修改系统默认的时钟速率)。在任务中调用taskDelay函数可以在指定的ticks期间空出CPU的使用权,同时改变该任务的状态为DELAY.由于经常受到任务调度的影响,该定时机制并不。 1.2 看门狗watchDog VxWorks提供了一个看门狗定时器(watchDog timer),它由以下四个函数维护: wdCreate( ) 创立并初始化一个看门狗定时器;wdDelete( ) 终止并删除一个看门狗定时器;wdStart( ) 启动看门狗定时器;wdCancel( ) 暂停当前看门狗定时器运行。 利用wdCreate函数,在任何任务中都可以创立一个看门狗定时器,经过设置的时间段后,实现指定的C函数。 watchDog定时器作为系统时钟中断服务程序的一部分来维护。因此看门狗所定时执行的程序工作在系统中断级别具有很高的优先级,该程序必须遵守一般ISR程序的规定,不能使用任何可能被阻塞的程序。文章所介绍的高效定时器就是在看门狗定时器的根底上设计的。 1.3 POSIX标准的timer VxWorks同时也提供IEEE的POSIX 1003.1b标准定时器接口。POSIX标准保证了应用程序与操作系统之间接口的简易性,利用这些接口编程,可以使得应用程序很轻松地从一个操作系统移植到另外的操作系统。使用该定时机制,在指定时间段后,任务将向自身发送SIGNAL,该定时器是建立在时钟和信号之上。POSIX标准的timer定时器常常用来编写跨平台、需要在多个操作系统下运行、易移植的程序。 2 基于看门狗定的高效定时机制 2.1 共享看门狗高效定时器 在一些基于嵌入式实时系统的项目中,经常使用定时器来实现某一时间段后执行某一段程序或函数,而往往计时长度都存在差异,定时器的使用也往往来自不同任务,既要求实时性,又要保证资源竟争的有序性。鉴于这些特点,经常采用的一个定时任务使用一个看门狗定时器的模式已不再适用,如果按照这种模式构建定时器机制,在定时任务较多的情况下,由于看门狗定时器运行在中断级别,资源消耗就会变得很大,从而对系统的实时性产生影响。 共享看门狗定时器的定时机制可以解决这种资源严重浪费的现象。共享看门狗定时机制,顾名思义,就是多个定时任务通过共享同一个看门狗定时器来实现定时操作,其优点是资源消耗小、实时性好、无须产生额外的定时任务。 2.2 定时算法 共享看门狗高效定时器的基本原理是动态改变看门狗的定时任务。 如图1所示,系统中存在A、B、C三个定时任务。首先A任务提交一个500ms的定时任务,200ms后B提交一个200ms的定时任务,再100ms后C提交一个150ms的定时任务。除此之外再无其他计时,A、B、C运行情况如图1所示。 图1 共享看门狗定时器计时机制 图1 共享看门狗定时器计时机制(参见下页)定时器A在时间轴50ms处向共享定时器发起定时申请,共享定时器在其维护的定时列表中参加A的时延与执行程序的函数指针,并计算出定时器下一执行时刻TA(系统运行时间加上A的定时时延),此时由于还没有其他定时器申请定时任务,该列表中只存在A的定时信息。

您可能关注的文档

文档评论(0)

菲亚企业管理咨询服务(天津自贸试验区)有限公司

相关文档

相关课程推荐