用于瞬时帧超限期间的控制器功能的连续运行的方法
【专利摘要】本发明涉及用于瞬时帧超限期间的控制器功能的连续运行的方法。公开了一种在帧超限期间适应性重新配置控制器功能的方法。检测帧超限状况。多个任务中的相应任务被识别为帧超限的最大促成因素。识别与被识别出的任务相关联的模式以便校正帧超限。被识别出的任务内的功能被再分配至一个或多个其它任务,直到帧超限状况被校正。根据所述被识别出的模式来识别再分配的相应功能。
【专利说明】
用于瞬时帧超限期间的控制器功能的连续运行的方法
技术领域
[0001]本教导涉及控制器功能。
【背景技术】
[0002] 控制器中的失效故障需要快速响应以校正故障从而继续操作,尤其是关键操作和 安全操作。帧超限(frame overrun)发生于当信号的处理延迟超出其在控制器上的采样周 期并且被识别为控制器故障时。在这样的状况下,系统将或者试图关停以防止与迟到的控 制命令相关的不期望行为,或者重置控制器以希望从故障中恢复。
[0003] 在关停状况下,控制器被关停并且当故障发生的同时特征将不再可用;然而,如果 特征是关键操作,则关停状况将不是优选的选择,因为车辆的继续运行需要该特征。
[0004] 在重置状况下,系统必须等待直到控制器重置其自身。在重置状况中,存在控制器 功能不可用的一段持续时间。控制器的功能在任意持续时间期间关于关键/安全特征不可 用都是不希望的,原因在于即使在失效状况中,控制器也应该能够失效运行。因此,需要一 种在帧超限期间使功能继续以继续操作的方法。
【发明内容】
[0005] 实施例的优点在于在帧超限状况期间由控制器控制的特征的不间断运行。该技术 从多个任务中识别对帧超限影响最大的任务,并且将该任务内的功能再分配给在帧超限状 况期间具有比引起超限状况的任务的循环时间更慢的循环时间的其它任务。因此,引起帧 超限状况的任务被允许通过在其预期工作循环内完成功能来校正其自身,原因在于其相应 的功能中的一些临时地在以较慢速率运行的其它任务内执行,从而允许这种相应任务维持 其预期的工作循环。任务将继续再分配功能直到帧超限状况被校正。在校正之后,每个任务 将恢复至其原始配置。
[0006] 实施例考设想在帧超限期间适应性地重新配置控制器功能的方法。检测帧超限状 况。多个任务当中的相应任务被识别为帧超限的最大促成因素。识别与所识别的任务相关 联的缓解模式以校正帧超限。所识别的任务内的功能被再分配给第二任务,直到帧超限状 况被校正。根据所识别的模式识别相应任务内被再分配的功能。
[0007] 本发明还包括以下技术方案: 方案1. 一种在帧超限期间适应性重新配置控制器功能的方法,所述方法包括以下步 骤: 检测帧超限状况; 从多个任务中识别哪个相应任务是所述帧超限的最大促成因素; 识别与被识别出的任务相关联的缓解模式以校正所述帧超限;以及 将所述被识别出的任务内的功能再分配至第二任务直到所述帧超限状况被校正,其中 根据被识别出的所述模式来识别所述相应任务内的被再分配的功能。
[0008] 方案2.根据方案1所述的方法,其中,检测所述帧超限状况包括下述步骤: 每一次针对相应任务检测到帧超限状况时增加相应任务的超限计数; 确定所述超限计数超过计数阈值。
[0009] 方案3.根据方案2所述的方法,其中,响应于当前执行时间超过任务周期,增加所 述超限计数。
[0010] 方案4.根据方案2所述的方法,其中,响应于在预定持续时间期间实际执行时间 大于任务周期相应数量的次数,增加所述超限计数。
[0011] 方案5.根据方案1所述的方法,其中,从多个任务中识别哪个相应任务是最大促 成因素包括,将每个任务的实际执行时间与每个任务的预期执行时间相比较。
[0012] 方案6.根据方案5所述的方法,其中,将每个任务的所述实际执行时间与每个任 务的所述预期执行时间相比较还包括以下步骤: 针对每个任务计算所述当前执行时间和所述预期执行时间之间的差; 针对每个任务通过将所述差除以所述预期执行时间来计算百分比;以及 识别所述多个任务当中具有最大百分比的工作负载因子。
[0013] 方案7.根据方案6所述的方法,还包括针对每个任务的所述工作负载因子识别类 别的步骤。
[0014] 方案8.根据方案6所述的方法,其中,所述工作负载因子的多个百分比范围被映 射到相应类别。
[0015] 方案9.根据方案1所述的方法,其中,模式选择模块识别哪个模式受到影响以便 将功能再分配到其它任务。
[0016] 方案10.根据方案9所述的方法,其中,所述模式选择模块接收来自预期工作负载 表格、来自当前工作负载表格、来自帧超限检测模块和来自模式选择表格的输入,以便识别 用于将功能再分配到其它任务的模式。
[0017] 方案11.根据方案9所述的方法,其中,每个任务包括用于执行所述任务内的功能 的例程。
[0018] 方案12.根据方案11所述的方法,其中,所述任务包括条件操作数,所述条件操作 数基于来自所述模式选择模块的被识别出的所述模式确定是否禁止在所述任务中识别出 的第一组功能。
[0019] 方案13.根据方案12所述的方法,其中,所述被识别为所述帧超限的最大促成因 素的任务包括用于禁止所述第一组功能的执行的条件操作数,其中所述第一组功能被再分 配至第二任务以便执行所述第一组功能。
[0020] 方案14.根据方案13所述的方法,其中,相比于所述被识别为最大促成因素的任 务,第二任务以更慢的循环时间运行。
[0021] 方案15.根据方案14所述的方法,其中,所述第二任务包括用于在所述帧超限期 间禁止第二组功能的执行的条件操作数,其中当发生所述帧超限时,所述第二组功能被再 分配至第三任务,其中相比于再分配的所述功能所来自的任务,所述第三任务以更慢的循 环时间运行。
[0022] 方案16.根据方案15所述的方法,其中,包括用于基于启用的相应模式来禁止相 应的一组功能的条件操作数的相应任务将所述相应的一组功能再分配至下一相应任务以 便执行。
[0023] 方案17.根据方案16所述的方法,其中,相比于再分配的所述功能所来自的所述 相应任务,针对再分配功能被识别出的所述下一相应任务以更慢的循环时间运行。
[0024] 方案18.根据方案1所述的方法,还包括以下步骤: 确定所述帧超限状况被校正;以及 响应于校正所述帧超限状况禁用与所述帧超限相关联的被识别出的所述模式。
[0025] 方案19.根据方案18所述的方法,其中,响应于禁用被识别出的所述模式,中断向 其它任务再分配功能。
【附图说明】
[0026] 图1是控制系统构造的示例性总体框图。
[0027] 图2是用于帧超限和检测技术的方法的流程图。
[0028] 图3是用于再分配任务内的功能的示例性框图。
【具体实施方式】
[0029] 图1示出示例性控制系统的总体框图。系统包括接收来自多个传感器14的数据信 号的控制器12。基于从多个传感器14接收到的数据信号,控制器12向致动器16输出控制信 号。之后,致动器16根据控制器12传送的控制信号修改车辆功能。
[0030] 帧超限是当控制器12经历的处理时间长于数据刷新周期并且不能够以数据被供 应到控制器12的速率来处理进入的数据时的状况。这会发生在当车辆的运行状况(例如,发 动机转速)导致控制计算增加,从而增加控制器要求的读取的数量时,当达到控制器12的处 理能力时,这会迫使经历更长的处理延迟的其它优先权较低的计算超时。该状况也会发生 在当处理器的温度在控制器12内升高并且处理能力降低时。在任一状况下,控制器12或者 关停、重置其自身,或者在相应任务内功能被放弃(dropped)的情形中超时。在这样的状况 下,特征的功能或者永久地或暂时地丧失。例如,如果帧超限发生在任务内的功能影响车辆 的加速的情形中,则如果该功能是由于帧超限而被任务中止的功能,则驾驶员的加速要求 可能被忽略。这能够导致顾客不满,或者导致由于驾驶员假定车辆未恰当运行而将车辆送 修。
[0031] 图2示出用于检测帧超限并且校正帧超限的方法的流程图。在步骤20中,由控制器 接收来自传感器和类似装置的进入数据。
[0032]在步骤21中,控制器测量任务响应时间并且确定控制器中是否正在发生帧超限。 任务响应时间被限定为任务开始和任务结束之间的持续时间,其包括所有干扰,诸如中断、 调度程序锁定(scheduler locking)、被其它优先权更高的任务抢先等等。通过比较任务响 应时间和相应任务的周期确定帧超限。任务执行时间被限定为任务在没有故障和干扰的情 况下完成其操作的持续时间。向每个任务指定预定预期执行时间以计算工作负荷增加。在 正常的执行中,任务响应时间可以变化,但是不应该超过任务周期。
[0033]使用阈值以减轻实际响应时间仅超出任务周期少量次数的情况中计数超限的麻 烦。阈值能够被用于过滤一些测量噪声。在利用阈值时,向每个任务指定预定数量的允许的 帧超限。阈值优选地是表示帧超限多少次之后必须校正帧超限的整数。替代性地,可以使用 非整数。每次检测到帧超限,就针对该任务增加作为帧超限的计数。对于一些控制功能,由 于采样过密,因此允许更少量的帧超限;但是当达到阈值时,必须调整工作负载以维持稳定 控制。
[0034] 在步骤22中,基于在步骤21中是否满足更新超限计数的条件来更新超限计数。
[0035] 在步骤23中,做出关于超限计数是否大于计数阈值的决策。如果总计数大于计数 阈值,则例程前进到步骤24。如果做出没有超过超限计数阈值的决策,则例程返回到步骤 20,在此控制器继续针对帧超限进行监测。
[0036] 在步骤24中,针对每个任务确定工作负载效能,以便识别在每个任务当中引入执 行时间的最大增加的任务。方向是识别所有任务当中引起其执行时间最显著增加的任务, 并且将其功能中的一些再分配至以较低速率运行的其它任务直到帧超限消失。为完成该步 骤,针对每个任务确定工作负载因子。工作负载因子由下列公式确定:
其中当前_执行_时间:是任务(i)的实际执行时间,并且预期_执行_时间:是任务(i)的 预期的预定执行。
[0037] 针对每个相应任务以百分比形式识别相应的工作负载因子。对任务指定类别,所 述类别代表该任务的工作负载因子的水平。例如,对于落入0-2%范围内的所计算的任务 Tskl的工作负载因子,指定的类别是"Cl_Tskl";如果工作负载因子处于2%_7%的范围内,则 类别是"C2_Tskl"。类似地,如果所计算的任务Tsk2的工作负载因子处于0%-6%的范围内,则 指定的类别是"Cl_Tsk2"。应该理解的是,本文描述的范围是示例性的并且范围和所指定的 类别二者均可以被不同地配置。
[0038] 在每个工作负载因子被计算并且被指定类别之后,产生识别针对每个任务向每个 工作负载因子指定的类别的表格。表格也关联了用于每个类别的控制器运行时间缓解模 式。缓解模式表明功能将如何被分配到不同任务中。表格示出如下:
表1 在步骤25中,识别出带有最高工作负载因子的任务。然后该工作负载因子被用于确定 类别。这将在表1中唯一地识别单一记录,这将导致控制器的目标缓解模式运行。如表1中所 示,如果与任务Tskl相关联的6%的工作负载增加被识别为具有导致帧超限的最大执行时间 变化,则类别被确定为C2_Tskl,并且因此,模式M21被识别为控制器的缓解模式。
[0039] 在步骤26中,基于所识别的模式,识别将运行相应功能的相关任务(也被称为可运 行对象(runnable))。基于将针对相应模式被执行的相关任务,通过在相应任务中执行功能 并且禁止在其它任务中执行功能来再分配功能。图3示出用于再分配功能以便解除帧超限 的示例性框图。框50代表识别预期工作负载的示例性预期工作负载表。框51代表识别当前 工作负载的示例性预期工作负载表。
[0040]帧超限检测模块52检查来自预期工作负载表50和当前工作负载表51二者的数据, 并且如上所述识别引起帧超限的相应任务。
[0041 ]模式选择模块53接收来自预期工作负载表50、当前工作负载表51、模式选择表54 和帧超限检测模块52的输入,并且确定;例程应该进入何种模式以便校正帧超限。
[0042]在框55中,识别选定的模式,并且选择相应的目标任务或多个相应的目标任务56 来执行以便将功能再分配至其它任务从而解除帧超限。所识别的目标任务将具有较慢的循 环时间(执行时间),其相比于原始任务提供用于接收和处理数据的更多的时间。例如,如果 引起帧超限的任务每5 msec读取和处理一次数据,则目标任务可以每10 msec读取和处理 一次数据。因此,仅每10 msec获得一次数据,这不仅减少了在一定持续时间内处理器所接 收到的数据的量,而且还允许处理器有更多的时间来处理包括来自被再分配的功能的数据 的数据。
[0043]基于选定的模式,执行一个或多个任务56。任务包括条件操作数,其确定关于任务 哪些功能应该被执行和哪些功能应该被禁止执行。下文示出引起帧超限的示例性任务:
以下是被用于减少帧超限的目标任务的示例:
在上文的示例中,任务Tskl正引起帧超限,这表明当前处理器在当前方案下不能应对 正被处理的数据量,并且模式Mil被模式选择模块识别为用于校正帧超限的模式。如原始任 务Tsk2中所示,除非启用模式Mil,否则总是执行功能R15和R16。因此,如果由任务Tskl引起 发生帧超限,则启用模式Mil并且在任务Tskl中减轻某些功能需要以便该任务校正帧超限; 否则,该任务将继续以帧超限模式运行。因此,功能R15和R16被转换到相比于任务Tskl具有 更慢的循环时间的另一任务(例如Tsk2)。
[0044] 如任务Tsk2中所示,仅当选择模式Mil时执行功能R15和R16。即,当未启用模式Mil 时,任务Tsk2将不执行功能R15和R16;然而,当启用模式Ml 1时,任务Tsk2将执行从任务Tskl 被临时放弃的功能R15和R16。这允许曾每5 msec被执行一次的功能R15和R16将每10 msec 被执行一次。因此,代替完全放弃功能R15和R16,功能R15和R16作为更慢的循环时间下的另 一任务的一部分被执行,这允许功能仍被执行并且允许与任务Tskl相关联的帧超限校正其 自身,原因在于其暂时要执行更少功能。
[0045]也应该注意到的是,在任务Tsk2中,为了承担功能R15和R16的附加工作负载,当启 用模式Ml 1时,在任务Tsk2中不执行功能R22和R23。这些相应功能被再分配给另一任务,例 如Tsk3,使得任务Tsk2没有因为功能R15和R16的额外工作负载而落后并且引起帧超限。因 此,与放弃功能R22和R23不同,这些功能被再分配给以比任务Tsk2更慢的循环时间运行的 另一任务Tsk3。如果帧超限未校正其自身,则Tsk3可以将功能再分配到下一循环时间更慢 的任务。这将继续直到关于最初引起帧超限的任务(其是任务Tskl)校正了帧超限。
[0046] -旦校正了帧超限,则系统将使其本身恢复到原始配置。因此,将取消选择相应模 式,并且在帧超限之前每个任务将根据原始配置运行。在控制器的设计阶段期间通过分析 离线地限定任务结构。因此,在控制器中实施之前,已预想到并且彻底分析了所有将功能再 分配至另一任务的功能再分配。下文的表格示出了再分配表格的示例,其示出了受影响的 模式、受影响的任务(任务_源)、在再分配中受影响的任务中的相应功能(可运行对象)以及 受影响的功能将被再分配到的目标任务(任务_目标):
表2 再次参考图2,在步骤27中,如在以上段落中描述的那样,在存在帧超限时,在其它任务 中再分配相应功能。只要识别出相应模式,则在本文列出的条件下可以执行或可以不执行 相应任务内的相应特征。
[0047] 在步骤28中,做出帧超限是否被校正的决策。如果帧超限未被校正,则返回到步骤 27以继续基于所识别的模式在任务当中再分配功能。如果在步骤28中做出超限未被校正的 决策,则例程前进到步骤29,在该处系统恢复到其当不存在帧超限时的原始配置。通过取消 选择被选取以校正帧超限的相应模式来执行到其原始配置的恢复。因此,基于由模式选择 模块识别的相应模式来启用和配置再分配方案。每个任务中列出的条件在设计时被预先确 定,并且由当前启用的模式列出每个任务中执行哪些功能和不执行哪些功能的决策。
[0048] 本文描述的优点在于,被预先确定以便再分配控制器内的功能从而校正帧超限而 不必须永久的放弃功能的执行方案。功能被再分配,更确切地说是将功能再分配到不同循 环时间以减轻引起帧超限的相应任务内的工作负载,这允许该任务赶上其当前工作负载。 诸如车辆的驾驶员的系统用户应该不能够注意到将功能再分配到下一个更慢的循环时间, 原因在于功能仍被执行,只是临时在下一个更慢的时间间隔被执行。
[0049] 虽然已经详细描述了本发明的某些实施例,但是熟悉本发明所涉及的领域的那些 技术人员将认识到各种替代性设计和实施例以用于实践由所附权利要求限定的本发明。
【主权项】
1. 一种在帧超限期间适应性重新配置控制器功能的方法,所述方法包括以下步骤: 检测帧超限状况; 从多个任务中识别哪个相应任务是所述帧超限的最大促成因素; 识别与被识别出的任务相关联的缓解模式以校正所述帧超限;以及 将所述被识别出的任务内的功能再分配至第二任务直到所述帧超限状况被校正,其中 根据被识别出的所述模式来识别所述相应任务内的被再分配的功能。2. 根据权利要求1所述的方法,其中,检测所述帧超限状况包括下述步骤: 每一次针对相应任务检测到帧超限状况时增加相应任务的超限计数; 确定所述超限计数超过计数阈值。3. 根据权利要求2所述的方法,其中,响应于当前执行时间超过任务周期,增加所述超 限计数。4. 根据权利要求2所述的方法,其中,响应于在预定持续时间期间实际执行时间大于任 务周期相应数量的次数,增加所述超限计数。5. 根据权利要求1所述的方法,其中,从多个任务中识别哪个相应任务是最大促成因素 包括,将每个任务的实际执行时间与每个任务的预期执行时间相比较。6. 根据权利要求5所述的方法,其中,将每个任务的所述实际执行时间与每个任务的所 述预期执行时间相比较还包括以下步骤: 针对每个任务计算所述当前执行时间和所述预期执行时间之间的差; 针对每个任务通过将所述差除以所述预期执行时间来计算百分比;以及 识别所述多个任务当中具有最大百分比的工作负载因子。7. 根据权利要求6所述的方法,还包括针对每个任务的所述工作负载因子识别类别的 步骤。8. 根据权利要求6所述的方法,其中,所述工作负载因子的多个百分比范围被映射到相 应类别。9. 根据权利要求1所述的方法,其中,模式选择模块识别哪个模式受到影响以便将功能 再分配到其它任务。10. 根据权利要求9所述的方法,其中,所述模式选择模块接收来自预期工作负载表格、 来自当前工作负载表格、来自帧超限检测模块和来自模式选择表格的输入,以便识别用于 将功能再分配到其它任务的模式。
【文档编号】G06F9/48GK106095539SQ201610267699
【公开日】2016年11月9日
【申请日】2016年4月27日 公开号201610267699.7, CN 106095539 A, CN 106095539A, CN 201610267699, CN-A-106095539, CN106095539 A, CN106095539A, CN201610267699, CN201610267699.7
【发明人】S.王, C.刘, J.G.德安布罗西奥
【申请人】通用汽车环球科技运作有限责任公司