首页 / 监控设备

监控设备失效专利 发明

技术内容

技术领域 本发明涉及一种监控设备。具体但不排他地,本发明涉及一种适 合于在时间触发嵌入式系统中检测任务超限(overrun)的监控设备。 背景技术 嵌入式处理器普遍存在:它们形成大量日常物品(汽车、飞机、 医疗设备、工厂系统、移动电话、DVD播放器、音乐播放器、微波炉、 玩具等)的核心组件。在一些情况下,可以分别针对特定功能来采用 多个嵌入式处理器。例如,典型的现代汽车可以包含大约五十个嵌入 式处理器。 在可预测行为成为重要考虑的应用中(如在汽车系统、航天系统、 医疗系统、工业系统,以及在许多电子产品和大型家用电器中),至关 重要的是使用可靠的系统,并且该系统以高度可预测的方式进行操作。 出于安全考虑,这很重要,但也是由于可靠设备在其使用寿命期间可 能引起减少的维护和/或维修成本(并导致用户的不便)。因此,重要 的是,这样的系统足够健壮,并且可以快速并容易地检测到故障,使 得可以采取适合的操作。 时间触发(TT)嵌入式系统是执行一组周期性任务的实时系统。 已提出了各种形式的TT体系结构,范围从具有协作任务调度的最简单 形式的“循环执行式”体系结构到采用抢占的单调速率的体系结构。 特别关注的是采用协作任务调度的TT系统。这些系统也被称为 “时间驱动的循环执行式”。采用时间触发协作(TTC)调度的嵌入式 系统能够具有高度可预测的行为模式,包括非常低水平的任务抖动。 当与TTC实现方式具有非常低资源要求的事实相结合时,该体系结构 是对成本敏感/安全相关应用(包括汽车控制)的合适选择。 不幸的是,在一个或多个任务超出其预测的“最差情况”执行时 间(WCET)的情况下,TTC系统的行为会变得不可预测。这种情况 被称为任务超限。在硬实时系统中,任务超限可能对所采用的系统并 可能对用户产生严重后果。因此,需要系统恢复机制,并且,响应于 对这种时间约束的违反必需立即触发该机制。为了实现这一点,需要 连续监控该系统的时间行为。 过去数十年,许多研究集中在对实时系统的运行时间行为的监 控。所采用的方法可以分为三类: ·基于硬件的监控方法 ·基于软件的监控方法 ·混合监控方法。 这三种方法分别具有其如下所述的优点和缺点。 基于硬件的监控涉及目标系统的非侵入式观察,但是通常昂贵而 复杂。与目标系统分离的监控系统需要附加硬件。监控系统通常包括 连接至目标系统并探查来自其总线、存储器系统和输入/输出信道的信 号的复杂体系结构。该监控系统然后使用该信息来模仿目标系统并从 而发现其状态。然而,该方法需要复杂的硬件,特别是对目标系统定 制的硬件。此外,由于现代微控制器中组件的小型化和集成,很难对 来自一些总线或存储器端口的信号进行测量。此外,微控制器具有有 限数目的管脚,这可能使以上方法变得不可行。 另一方面,基于软件的监控价格低廉、简单并灵活。在目标系统 的软件程序中感兴趣的点处插入探测码(也被称为软件传感器)。软件 传感器被设计为在那些感兴趣的点处对目标系统的状态进行记录。然 而,该布置将产生对目标系统的运行时间行为的某种程度的干扰,这 是由于软件传感器不仅与目标系统共享资源,而且不可避免地增加了 系统的计算复杂度。已开发了许多不同的技术,以尝试最小化这种所 谓的“探针效应”对目标系统行为的影响。一种方法是构造监控系统 作为目标系统的永久部分。这避免了必须移除软件探针而导致系统行 为畸变。另一种方法提出,仅当不能对数据值进行重构时才存储数据 值。此外,提出使用内嵌软件传感器来代替作为函数调用的传感器。 这两种技术可以优化软件监控方法的空间和时间方面。然而,软件监 控的探针效应由于其侵入属性而不能被完全消除。 混合监控方法使用软件和硬件监控的组合,并减轻了两种方法的 某些缺点。在这种方法中,软件监控系统捕获目标系统中感兴趣的事 件,并将这些事件传递至外部专用硬件设备,以进一步进行分析。因 此,这种方法可以最小化由软件监控方法引起的探针效应,并可以减 少与目标系统的硬件连接的需要。然而,仍需要特别定制的硬件平台 及其附带的成本。 因此,本发明的目的是提供一种可以改善上述问题中的一些或全 部的解决方案。 发明内容 根据本发明的第一方面,提供了一种用于处理器的监控设备,包 括: 用于对处理器的功耗进行监控的装置;以及 用于对所述功耗进行分析以检测处理器的异常操作的装置。 根据本发明的第二方面,提供了一种用于监控处理器的方法,包 括以下步骤: 对处理器的功耗进行监控;以及 对所述功耗进行分析以检测处理器的异常操作。 在优选实施例中,分析步骤可以包括:将采样功耗曲线与参考或 期望曲线进行比较。可以响应于比较的失配来产生触发,从而指示异 常操作。该触发可以用于提醒用户或重新启动系统的一部分或全部。 从处理器的角度,计算机程序仅是指令序列。处理器通过向其不 同逻辑门集合施加或移除电荷来执行不同指令。因此,处理器所消耗 的能量将取决于正在执行的指令。可能(但也可能性非常小)不同的 指令集将消耗相同量的能量,因此可能在正在执行计算机程序时,处 理器的功耗将随时间而变化。即使特定指令确实消耗相同量的能量, 也可能通过将实际功耗与系统正确操作时期望的功耗进行比较来确定 处理器是否正确工作。相应地,本发明使得能够简单地通过观察实际 功耗并将实际功耗与期望的功耗进行比较来检测故障。该比较可以针 对绝对值,更一般地,可以针对功耗随时间的模式。 与传统的基于硬件的监控方法相比较,本发明由于其不需要对目 标系统进行模仿或对各个信号的状态进行采样而实现起来更经济而且 简单。然而,本发明确实保留了基于硬件的监控系统的非侵入属性, 从而不会导致对目标系统的干扰(如由基于软件的系统的探针效应引 起的干扰)。 因此,取代对目标系统的内部信号的测量,本发明利用处理器的 功耗来被动地提取系统的时间状态。 本发明的优点在于,提供了一种用于系统中故障的快速检测的直 接技术。此外,本发明可以在不影响目标系统的性能的前提下用来监 控实时行为。 由于不需要改变目标处理器,根据本发明的单一监控设备可以与 多种目标系统兼容以便监控其功耗。 本发明的监控设备还包括用于向用户提醒异常操作的装置。 附加或备选地,该设备还可以包括:由于检测到异常操作而停止 处理器、复位处理器或发起系统恢复操作的装置。 本发明特别适用于监控时间触发的系统,这是由于这些系统通常 涉及要由处理器执行的周期性任务,从而处理器的功耗也可能是周期 性的。如所期望的,这允许在系统的功耗不是周期性时简单地检测到 故障。 更具体地,本发明的实施例可以被配置为与时间触发协作(TTC) 处理器一起使用,其中,所有任务被配置为在预定时钟周期(时钟周 期)间隔内运行直到完成为止,并且处理器被配置为在下个时钟周期 之前返回至空闲模式。典型地,在这种类型的系统中,通过周期性(即, 在每个时钟周期上)触发的中断服务例程(ISR)来发起任务。ISR针 对每个任务更新定时信息,并执行在该时钟周期间隔内应运行的所有 任务。每个任务被配置为在应发起运行的下个任务之前运行直到其完 成为止。可以在相同时钟周期间隔中运行的所有任务被配置为在时钟 周期间隔结束之前完成,使得可以将处理器置于空闲模式以等待下一 个ISR。相应地,在本发明的该实施例中,当处理器处于空闲模式并 没有任务正在运行或进行更新时,处理器的功耗应当周期性地为零(或 至少为最小值)。如果功耗不是周期性地处于这样的最小水平,则处理 器没有正确工作(即,任务可能已超过其WCET,导致时钟周期超限)。 监控设备可以被配置为检测这样的问题并相应地进行操作。这样,TTC 系统的处理器的功耗可以用于提取其定时行为。 因此,本发明提供了一种可以用来检测TTC嵌入式系统中任务超 限的简单的非侵入式技术。这种超限的检测是至关重要的,使得可以 实现系统恢复机制。 在本发明的实施例中,可以对由处理器上一个或多个外围组件所 消耗的功率进行监控,例如,I/O端口或如ADC转换器的片上组件。 本发明的实施例还可以被配置用于在包括任务抢占的系统中使 用。 由于本发明在监控处理器中的任务调度中特别有利,从而其可以 被认为是非侵入式调度代理(NISA)。 随时间变化的处理器功耗可以表示为P(t)=I(t)×V(t),其中,P是 由处理器消耗的功率,I是流过处理器的电流,V是处理器两端的电位 差,以上均是在时刻t处测量的。在本发明的实施例中,如果在任何时 刻t,V的变化是可忽略的,则V可以被认为是常数。因此,I(t)可以用 来指示处理器的功耗,并用来提取目标系统的时间行为。 根据上述内容,在本发明的特定实施例中,用于对处理器的功耗 进行监控的装置可以包括:对数值已知的电阻器(R)两端的电位差 (V)进行测量,该电阻器与处理器的功率输入串联。然后,根据欧 姆定律(I=V/R)来计算流过处理器的电流(I)。因此,随着时间的变 化,I的变化提供了对处理器功耗变化的指示。如果这种变化不是期望 的,则处理器可能呈现异常行为。 在系统开发期间,监控设备可以用作调试工具,但还对监控实时 系统非常有用。 更具体地,本发明在系统开发/调试期间是有用的,在系统开发/ 调试期间,本发明将提供有用的机制(使用在试验台上或使用在现场 中),以确保系统正确操作(并且,具体地,关于任务的最差情况执行 时间的假设是正确的)。 附图说明 现在将参照附图对本发明的特定实施例进行描述,在附图中: 图1示出了TTC调度器的操作; 图2示出了具有添加至所有任务执行时间的0.7ms时间延迟的本 发明实施例的实验测试结果; 图3示出了具有添加至所有任务执行时间的0.8ms时间延迟的本 发明实施例的实验测试结果; 图4示出了具有添加至所有任务执行时间的0.9ms时间延迟的本 发明实施例的实验测试结果; 图5示出了具有随机添加至任务3的执行时间的0.6ms时间延迟的 本发明实施例的实验测试结果; 图6示出了具有随机添加至任务3的执行时间的0.8ms时间延迟的 本发明实施例的实验测试结果;以及 图7示出了本发明实施例中采用的信号调节模块的示意图。 具体实施方式 本发明提供一种用于被动监控处理器以检测异常行为的设备和 方法。 在本发明的特定实施例中,目标处理器包括TTC系统。在TTC系 统中,任务在所调度的其处理时间或期限内是周期性或单次执行的。 这样地任务是非抢占的,意味着一旦开始它们就运行直至完成。这种 类型的系统可以在不同体系结构中实现,如超循环体系结构或基于定 时器的体系结构。 在如下述本发明实施例中所采用的基于定时器的体系结构中,周 期性(典型地,在每个时钟周期间隔中)触发中断服务例程(ISR), 以更新所有任务的定时信息(即,倒计时至它们应运行的时刻)。ISR 还在该特定时钟周期间隔中执行应运行的任务。 只要涉及这种嵌入式系统的功耗,在任务完成其在每个时钟周期 间隔中的执行之后,将系统设置为空闲状态并等待下一ISR发生。 以下示出了这种简单的TTC-ISR调度器的一些代码段。在该特定 示例中,前台处理中的“Update”函数是ISR。如上所述,调度器返回 至后台处理,以在完成ISR的执行之后将系统设置为空闲状态。 将任务完成期限设置为小于时钟周期间隔,使得可以在下个ISR 运行之前将调度器置于空闲模式。在多于一个任务在时钟周期间隔内 运行的情况下,还可以将任务执行的总持续时间设置为小于时钟周期 间隔,即,其组合的完成期限在时钟周期间隔结束之前。 在图1中示出了以上TTC调度器的正常操作。调度器在开始操作时 启动定时器。该定时器用于在每个时钟周期间隔开始处触发ISR (“Update”函数)10。如上所述,ISR的职责是对系统任务数组中每 个任务的与时间相关的变量进行更新。它还对准备用于ISR的中断标 记进行复位。在“Update”10函数完成之后,通过名为“Dispatch”12 的函数来执行应运行的任务。如果没有任务被调度执行或当调度的任 务16已完成其执行时,“Dispatch”12函数调用“Sleep”14函数,以将 系统设置为空闲状态。在空闲状态中,所有外围设备仍可操作;但是 处理器的活动停止。因此,处理器的功耗显著降低至最低水平。当下 个时钟周期间隔发生时,ISR唤醒处理器,使其功耗快速增加。然后, 调度器继续下个循环的操作。 在一些情况下,例如,当任务被调度为在时钟周期间隔内执行但 在其期限之前未完成其执行时,任务将继续运行,直到完成其执行。 如果这样的任务执行超出其时钟周期间隔,则ISR将不能完成,从而 在下个时钟周期到期时不能中断运行的任务。由于处理器在这种情况 下连续运行,其功耗将不会下降至最低水平。因此,本发明的监控设 备将检测到系统的功耗并非如所期望的那样是周期性的,因此可能发 生任务超限。 根据以上技术,可以对处理器的功耗进行监控,以反应支持定时 器中断和空闲模式的任何TTC嵌入式系统中的时间行为。相应地,本 发明适合于检测这种系统中的任务超限。 为了评估本发明的方法,申请人建立了如下所述的实验平台。该 平台由目标系统和根据本发明实施例的监控设备组成。 随时间变化的处理器功耗可以表示为P(t)=I(t)×V(t),其中,P是 处理器所消耗的功率,I是流过处理器的电流,V是处理器两端的电位 差,上述均在时刻t处测量。在该特定设置中,确定在任何时刻t,V的 变化不明显,从而V被认为是常数。因此,可以使用I(t)来指示处理器 的功耗,并提取目标系统的时间行为。 根据上述内容,以与处理器的功率输入串联的方式,将1Ω采样电 阻器插入目标系统中。因此,通过测量采样电阻器(R)两端的电位 差(V),并使用欧姆定律(I=V/R),可以确定流过处理器的电流(I)。事 实上,由于使用1Ω电阻器,在任何时刻t,I(t)的值简单地等于电阻器 两端的电位差V的值。 目标系统包括安装有Philips LPC210632位微控制器的Ashling EVAB7评估板,以及TTC系统。LPC2106微控制器包含ARM7TDMI-S 处理器和一组外围设备,如I2C串行接口和Watchdog定时器。该 LPC2106微控制器还支持空闲模式以停止处理器,以及允许处理器以 从10MHz至60MHz频率操作的片上锁相环(PPL)。Ashling EVAB7评 估板向微控制器提供两个分离的电源:提供给处理器1.8V电源和提供 给I/O的3.3V电源。在所述特定实施例中,对提供给处理器的1.8V电源 进行监控。然而,在其他实施例中,可以对I/O端口或如ADC转换器的 片上组件所消耗的功率进行监控。在这种情况下,所监控的信号不那 么纯净,可能需要进一步处理,以使得能够提取处关于系统操作(即, “空闲时间”)的信息。 监控系统包括National Instruments的NI PCI-6035E数据获取 (DAQ)卡和使用LabVIEW8实现的软件监控程序。DAQ卡能够以16 比特分辨率对模拟信号进行高达200KS/s的采样。该DAQ卡通过 National Instruments的CL-68LP连接块连接至采样电阻器,以对模拟功 率信息进行采样。监控程序采用预定图形界面(DAQ助手)来配置DAQ 卡并与DAQ卡进行通信。将DAQ卡所获得的数据采样通过DAQ助手发 送至监控程序。该监控程序顺序地以图形方式显示原始数据、将原始 数据存储在数据文件中,相对于用户输入(如时钟周期间隔的持续时 间、采样率、以及针对每个任务的WCET)来对原始数据进行分析, 并产生和存储分析报告。根据由用户输入的采样率和时钟周期间隔的 持续时间,监控程序确定要在时钟周期间隔内取得的采样数目。注意, 同样由用户输入的预设边界值用于与数据采样进行比较,以确定目标 系统是正在运行(即,值大于或等于边界)还是正在空闲(即,值小 于边界)。监控程序通过对时钟周期间隔内小于边界值的采样数目进行 计数,来评估时钟周期间隔内系统的空闲时间。基于该空闲时间,该 程序能够容易地确定任务超过所调度的其处理时间的限度或超过其最 差情况执行时间(WCET)。然而,空闲时间的精度取决于采样率的频 率。相应地,必须将用于本方法的采样率设置为适当的水平,以允许 将空闲时间确定在所需精度之内。 注意,本实施例中的监控系统应当在目标系统之前启动。这是由 于监控系统中的分析器假定在目标系统的调度器启动之前获得第一个 到达的数据采样。为了实现这一点,监控系统被配置为发送信号以触 发目标系统在监控系统本身启动之后随即启动。 通过在实验平台上以两种不同的实验来执行若干测试,对该方法 进行评估。该实验集中关注对该方法识别任务是否超过所调度的其处 理时间的限度或超过其WCET的能力进行测试。 在描述实验之前,考虑目标系统和监控系统的设置。在监控系统 中,将采样率调整为200KS/s(即,200,000采样每秒),该采样率产生 ±0.005ms的采样精度。对前210,000数据采样进行记录。然而,当执行 分析时,滤除在由监控系统检测到的第一个上升沿(指示目标系统中 第一个时钟周期间隔的开始)之前收集的数据。应当注意,目标系统 和监控系统的时钟在检测到第一上升沿时是同步的。由于每个实验的 持续时间较短,目标系统和监控系统的时钟漂移是可忽略的。因此, 无需对系统进行重新同步。根据经验选择6mV的边界值,以确定目标 系统处于空闲模式还是处于执行模式。 在目标系统中,将处理器设置为以29.4912MHz进行操作。将时钟 周期间隔设置为1ms,使得在每个时钟周期间隔内取200个采样。在目 标系统中提供5个不同的任务,如下: 1.使4个LED闪烁。 2.读取I/O端口。 3.读取实时时钟并将当前时间存储至缓冲器。 4.使用UART发送缓冲器中的数据。 5.使用SPI(串行外围接口总线)发送数据。 每个实验包含多个测试集。在每个测试集中,针对任务使用唯一 的参数值集合,如针对每个任务使用周期性运行时间的值。在进行新 测试之前,在目标系统和监控系统中均对这些参数值进行更新。 在第一个实验中,针对所有任务选择70%时钟周期间隔的WECT (即0.7ms)。此外,在特定时钟周期间隔之后,将固定时间延迟添加 至所有任务:该固定延迟具有从0至90%时钟周期间隔的值。由于添加 了固定延迟,任务可能超过其WCET,但是可能不会超出所调度的其 时钟周期间隔的限度。 在第二个实验中,采用来自第一个实验的多数设置。然而,为了 使该实验更接近实际情况,在每个测试中,在随机时刻将固定量的时 间延迟添加至所选任务。将具有随机数集合的唯一查找表分配至每个 测试。每个随机数与特定时钟周期间隔相关联,以确定是否应当将时 间延迟添加至在该时钟周期间隔中运行的所选任务。 第一个实验包括480个测试,第二个实验包括370个测试。监控系 统成功地捕获了测试中超出其WCET或超过所调度的其处理时间的任 务。以下讨论来自这些实验的一些结果。 第一个实验 表1示出了从第一个实验选出的测试集之一中针对目标系统的任 务信息。 表1:第一个实验中的测试集的任务信息 在该测试集中,在时钟周期989之后,将固定量的时间延迟添加 至所有任务执行时间。利用相应时间延迟0.7ms、0.8ms和0.9ms,将测 试执行三次。目标系统的行为由监控系统捕获,并在时钟周期997和时 钟周期1001之间,针对各个时间延迟,在图2、3和4中以测量电压对采 样编号的图形示出。 如图2所示,当将0.7ms时间延迟添加至T4、T2和T0的执行时间时, T4、T2和T0均超过其WCET但是在其相应的时钟周期间隔内完成。如 前所述,0.7ms的WCET用于该实验中的所有任务。 从图2中还可以看出,时钟周期997在第200147个采样处开始,而 非在第199400个采样处开始(使用每时钟周期200个采样来计算)。这 是由于由在目标系统之前启动的监控系统产生的上述预采样滤波。这 种情况同样出现在图3和4中,这是由于在图3中时钟周期997在第 200113个采样处开始,但是在图4中它在第200788个采样处开始。 如图3所示,当时间延迟增加至0.8ms时,任务T4和T2仍超过其 WCET,但在时钟周期间隔的期限内完成。然而,T0超过其WCET的 量使其错过其期限并超出时钟周期间隔的限度。 图4示出了当时间延迟针对所有任务增加至0.9ms时监控系统的 结果。这导致所有执行的任务T4、T2和T0错过其期限并超出其时钟周 期间隔的限度。从电压不能周期性地(即,在每个时钟周期间隔期间) 下降到其边界电平(6mV)以下这一事实可以清楚地看出这一点。相 应地,可以使用本发明的特定实施例来检测这些任务超限。 第二个实验 表2示出了从第二实验中选出的测试集之一中的目标系统的任务 信息。 表2-第二个实验中测试集的任务信息 在该测试集中,T3是所选任务,其中,可能将固定量的时间延迟 添加至T3的执行时间。这取决于与T3被调度在其中运行的时钟周期间 隔相关联的随机数。由监控系统捕获的两个不同的测试结果(针对 0.6ms和0.8ms时间延迟)分别在图5和6中示出。为了允许进行比较。 针对每个测试显示来自三段的结果,示出了不同的时钟周期间隔。在 每幅图中,左边的段示出了时钟周期15以及时钟周期16的开始部分, 中间段示出了时钟周期75和76以及时钟周期77的开始部分,并且右边 的段示出了时钟周期195和时钟周期196的开始部分。 在图5中,左边的段示出了在时钟周期15中正常执行的T3,并没 有违反时间约束。根据中间段可以确定,在时钟周期75中存在任务超 限。监控系统报告,在该时钟周期间隔中运行有三个任务(T2、T3和 T4)。显然,这些任务执行的总持续时间超过了时钟周期间隔,从而 导致时钟周期超限。右边的段示出,在时钟周期195中T3超过其WCET (0.7ms),但是在其期限(即在时钟周期间隔结束之前)之前完成其执 行。 在图6中,如左边的段所示,T3同样在时钟周期15中正常运行。 与图5的中间段不同,T2、T3和T4在该测试的时钟周期75中没有违反 任何定时约束。在时钟周期195中,右边的段确认T3正常执行而没有 违反任何定时约束。 因此能够确定,在第一测试的时钟周期75和195中(图6所示), 向T3添加了时间延迟,但是在该测试的时钟周期15中没有添加时间延 迟。还应当清楚,在第二测试中(图6所示),在时钟周期15、75和195 中的任何一个中,没有向T3添加时间延迟。 相应地,上述结果说明,所提出的监控方法能够用来检测TTC嵌 入式系统中的任务超限。确实,结合NI PCI-6035E DAQ使用LabVIEW 特别适合于实验室实验,这是由于其允许相对快的采样率和高分辨率 结果。然而,在实际中,该方案实现的监控系统可能是受成本限制的。 同样,继续使用较快采样率来获得实时的高分辨率采样需要较大计算 功率,这可能不是对所有应用都现实的。 相应地,本申请人想到所提出方法的实际实现方式,其目的在于 提供经济而可靠的解决方案。可以想到,这样的实际实现方式可以用 来在目标系统的整个寿命期中对其进行监控。 在本发明的实施例中,监控系统的硬件包括安装有基于ARM7的 LPC212932位微控制器的Keil MCB2100评估板。LPC2129微控制器包 含内部10比特模数转换器(ADC),该ADC具有高达400KS/s的采样率, 允许对从0至3.3伏的模拟信号进行测量。 因此,从0至3.3伏(参考),ADC分辨率是10比特。因此,在0至 3.3伏之间存在1023个单位。相应地,每个单位具有3.23mV的近似值。 当目标系统处于空闲状态时,采样电阻器两端的电压降(VD) (5mV)与当目标系统执行时的最低VD(16mV)之间的差值近似为 11mV。根据上述ADC分辨率,将5mV视为1个单位(<2×3.23mV), 将16mV视为4个单位(<5×3.23mV)。因此,在5至16mV的范围之间, 仅存在3个单位差值。如果边界值要将它们分开,则可以将边界设置为 大于5mV 1个单位并且小于16mV 2个单位,或反之。由于1023个单位 中的1个单位非常小并且容易受到噪声的破坏,该示例中的ADC分辨 率对于在可靠系统中使用而言不够高。 为了解决该问题,向该系统添加较小(低成本)信号调节模块20。 信号调节模块20在将采样电阻器两端的电压降(VD)传递至ADC之 前将其放大10倍(尽管可以将倍数设置为任何期望值)。从而当目标系 统处于空闲状态时VD变成50mV,当目标系统执行时变成160mV(原 先最小为16mV)。因此,两个状态之间的差值更大许多(110mV)。相 应地,对于监控系统而言,当前ADC分辨率变得足以精确地识别目标 系统状态(在50~160mV之间提供34个单位)。 由3个CA741CE运算放大器、4个电阻器以及3个电位计构造信号 调节模块20;对来自采样电阻器两端的电压信号进行放大(10倍)并 相减。随后将产生的信号馈送至ADC。图7示出了信号调节模块20的 示意图。ADC对信号进行数字化,并将信号的当前值与预定边界值进 行比较,以确定目标系统是否在运行。 与上述实验实现方式不同,实际监控系统需要尽可能长时间对目 标系统进行监控并使用最小计算功率。如上所述,实际监控系统被配 置为在目标系统之前启动。在目标系统上完成初始化过程之后,目标 系统上的调度器开始运行。同时,监控系统被配置为开始搜索上升沿 (指示在目标系统中第一个时钟周期间隔已经开始)。一旦找到第一个 上升沿,定时器启动,但将监控系统设置为空闲模式。每1/5个目标系 统的时钟周期间隔产生定时器中断,以使计数变量增加1。当该变量的 值等于4时,监控系统被唤醒并再次开始搜索上升沿。一旦找到上升沿, 定时器立即重新重启。监控系统然后对计数变量进行复位,并返回至 空闲模式。在下个时钟周期循环中执行相同的操作。然而,当目标系 统中的任务没有满足其期限时(即当发生时钟周期超限时),不能找到 上升沿。在这种情况下,监控系统被配置为发送信号以执行系统恢复 操作(即,重新启动目标系统)。 出于测试本系统的目的,当计数变量达到5时(即,在目标系统 的时钟周期间隔的结束处),监控系统重新启动定时器并复位计数变 量。此外,在监控系统返回至空闲状态之前,对时钟周期间隔编号进 行记录。然后将所记录的时钟周期间隔编号发送至主机以进行存储并 在测试结束时进行显示。以下示出涉及部分上述过程的“C”代码段。 If(ADC_Search_Start_Edge()){        //在搜索第一个上升沿之前将滤除目标系统                                      //的初始化并且启动定时器0(用于产生中断)   While(Tick_Count_G<MAX_TICK){     //采样1000个目标系统时钟周期      PCON=1;                      //监控系统处于空闲状态并将由定时器0唤醒      If(Inner_Tick_Count_G==4){   //目标系统时钟周期间隔的4/5         ADC_Search_Rising_Edge();  //搜索上升沿      }   }  MTimers_T0_Stop();                //停止定时器0  If(Tick_Index_G>0){               //检测到任务超限     Display_Message(“\nTask Overruns are detected at:\n\0”);//显示消息标题     UART1_O_Send_All();                                        //向主机发送消息     int i;     for(i=0;i<Tick_Index_G;i++){        Display_Data_2(Error_Tick_G[i]);                    //显示所记录的时钟周期编号        UART1_O_Send_All();                                 //向主机发送     }   }  else{                                                     //没有任务超限  Display_Message(“\nTask Overrun is not detected\n\0”); //显示消息标题     UART1_O_Send_All();                                   //向主机发送消息  }  Display_Message(“-End of operation-\n\0”);            //显示结束消息 因此,在该实施例中,当找到每个上升沿时,目标系统和监控系 统同步。此外,监控系统不需要在整个时钟周期间隔上进行采样,而 是仅在时钟周期间隔结束处的短时间段上进行采样。相应地,该实施 例中的监控系统能够节省计算功率和存储器空间,这也意味着其可以 以相对经济的方式来实现。 上述关于图2至6的实验测试用来对上述实际监控系统进行测试。 然而,监控系统仅对目标系统的正好1000个时钟周期间隔(从0至999 时钟周期)进行监控,并且测试仅集中于对任务超限的检测(即不包 括对超过其WCET的任务的检测)。如上所述,在该实施例中,将所测 量的信号相比于其原始值放大至10倍。相应地,选择80mV的边界值来 区分目标系统是在运行还是处于空闲模式。 执行如上所述的相同数目的测试,来评估该实施例的性能(即, 在第一个实验中为480个测试,在第二个实验中为370个测试)。将由 ARM7微控制器实现的本监控系统的结果与由LabVIEW实现的监控系 统的结果进行比较。如预期的,在每个测试中的前1000个时钟周期中, 两个监控系统均检测到目标系统中发生的任何任务超限。因此,参照 图2,在实际监控系统中没有检测到相应的任务超限;参照图4,在时 钟周期977,在实际监控系统中检测到任务超限;以及参照图5,在时 钟周期75,在实际监控系统中检测到任务超限。 因此,总体而言,根据本发明的监控设备实现了对时间触发的系 统的简单而有效的监控,以确保快速检测到故障,使得能够采取快速 操作,从而最小化不可预测的系统行为的影响。 本领域技术人员将认识到,在不背离本发明的范围的前提下,可 以对上述实施例进行各种修改。例如,尽管上述讨论主要涉及在TTC 嵌入式系统中使用的监控设备,但是本发明同样适用于系统的功耗可 以用来确定系统是否按其应有的方式操作的其他应用。

相关技术
迈克尔·约瑟夫·庞特发明人的其他相关专利技术