首页> 中国专利> 使用时间标记事件诊断硬件和软件故障的方法和系统

使用时间标记事件诊断硬件和软件故障的方法和系统

摘要

本发明涉及使用时间标记事件诊断硬件和软件故障的方法和系统。交通车辆包括高分辨率时钟,包括两个或更多任务的电子网络(包括第一和第二任务),包括指令的内存,该指令使处理器使用时钟分类电子网络中的故障。步骤包括接收第一任务中产生的第一故障代码,接收响应于第二故障在电子系统的第二任务中产生的第二故障代码,使用执行时间表确认与第一和第二任务相关联的执行周期偏移,考虑第一周期是否与第二周期分开时间表确认的执行周期偏移。指令还使处理器经由上述分析的成对重复为除了第一和第二任务以外的至少一个任务组合确认多个故障的因果关系。

著录项

  • 公开/公告号CN102609342A

    专利类型发明专利

  • 公开/公告日2012-07-25

    原文格式PDF

  • 申请/专利号CN201110436886.0

  • 发明设计人 P.辛哈;D.达斯;

    申请日2011-12-23

  • 分类号G06F11/22;B60R16/02;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人薛峰

  • 地址 美国密执安州

  • 入库时间 2023-12-18 06:17:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-22

    授权

    授权

  • 2012-09-26

    实质审查的生效 IPC(主分类):G06F11/22 申请日:20111223

    实质审查的生效

  • 2012-07-25

    公开

    公开

说明书

技术领域

本发明总体涉及诊断硬件和软件故障的方法,更特别的是,涉及通过时间标记事件诊断硬件和软件故障的方法和系统。

背景技术

故障往往发生在多任务电子系统的一个或多个任务中。这种多任务系统的例子是现代汽车的电子系统。任务包括软件(如车载计算机的计算模块)和硬件(如感应器或到计算机的其他电子输入),或者如在智能传感器的情况下的上述器件的组合。

在许多情况下,在一个任务中的故障会导致在系统的一个或多个其他任务中的故障。当多个任务故障,会很难确定是否有任何故障有关(如一个故障导致另一个故障)。而且,如果有关的话,会很难准确地确定故障(一个或多个)(如果有的话)与其他故障(一个或多个)相关。这种挑战是复杂的,因为实际上早期故障任务发起的故障消息会发送和/或接收得比发送和/或接收后期故障任务的故障消息更晚,从而使得不可能仅基于产生的故障消息的定时准确地确认故障之间的相关性。

发明内容

本发明涉及一种交通车辆,其包括高分辨率时间部件,包括第一任务和第二任务的电子网络,所述电子网络配置成基于高分辨率时间部件利用时间触发通信系统;以及车载计算机。车载计算机包括处理器和有形非临时性计算机可读介质,其包括指令,所述指令在被所述处理器执行时,使所述处理器执行步骤以分类所述电子网络中的故障。所述步骤包括:(一)接收响应于第一任务的第一故障在所述电子系统的第一任务中产生的第一故障代码,其中所述第一故障代码确认(a)与所述第一故障相关联的所述电子网络的第一通信周期,和(b)对应于第一任务的第一消息的第一槽,其中所述第一故障代码发送给所述处理器。所述步骤还包括:(二)接收响应于第二任务的第二故障在所述电子系统的第二任务中产生的第二故障代码,其中所述第二故障代码确认(a)与所述第二故障相关联的所述电子网络的第二通信周期,和(b)对应于第二任务的第二消息的第二槽,其中所述第二故障代码发送给所述处理器。基于关于高分辨率的时间部件同步的时间,第一槽和第二槽分别填入第一故障代码和第二故障代码。所述步骤还包括:(三)使用执行时间表确认与所述第一任务和所述第二任务相关联的执行周期偏移,以及(四)考虑第一故障问题代码的第一周期是否与第二故障问题代码的第二周期分开时间表确认的执行周期偏移。步骤进一步包括:(五)如果第一周期不与第二周期分开执行周期偏移,确定第一故障不导致第二故障,(六)如果第一周期与第二周期分开执行周期偏移,基于任务依赖数据,考虑任何任务的运行是否依赖于任何其他任务的运行,(七)如果没有任务的运行依赖于其他任务的运行,确定第一故障和第二故障是巧合的,以及(八)如果至少一个任务的运行依赖于至少一个其他任务的运行,考虑第二任务的运行是否依赖于第一任务的运行。所述步骤还包括:(九)如果第二任务的运行依赖于第一任务的运行,确定第一任务的故障导致第二任务中的故障,以及(十)如果第二任务的运行不依赖于第一任务的运行,确定第一故障不导致第二故障。

本发明还涉及一种由观察装置的计算机处理器执行的方法,其利用时间触发通信系统和高分辨率时间部件来分类电子网络中的故障,所述方法包括:(一)所述处理器接收响应于第一任务的第一故障在所述电子系统的第一任务中产生的第一故障代码,其中所述第一故障代码确认:(a)与所述第一故障相关联的所述电子网络的第一通信周期,和(b)对应于第一任务的第一消息的第一槽,其中所述第一故障代码发送给所述处理器。所述方法还包括:(二)所述处理器接收响应于第二故障在所述电子系统的第二寻错任务中产生的第二故障问题代码。第二故障代码确认:(1)与所述第二故障相关联的所述电子网络的第二通信周期,和(2)对应于第二任务的第二消息的第二槽,其中所述第二故障代码发送给所述处理器。基于关于所述高分辨率时间部件同步的时间,所述第一槽和所述第二槽分别填入第一故障代码和第二故障代码。所述方法还包括:(三)所述处理器使用执行时间表确认与所述第一任务和所述第二任务相关联的执行周期偏移;以及(四)所述处理器考虑第一故障问题代码的第一周期是否与第二故障问题代码的第二周期分开所述时间表确认的执行周期偏移。所述方法还包括:(五)如果所述处理器确定第一周期不与第二周期分开所述执行周期偏移,所述处理器进一步确定第一故障不导致第二故障;以及(六)如果所述处理器确定第一周期与第二周期分开所述执行周期偏移,所述处理器基于任务依赖数据,考虑任何任务的运行是否依赖于任何其他任务的运行。所述方法还包括:(七)如果所述处理器确定没有任务的运行依赖于其他任务的运行,所述处理器进一步确定第一故障和第二故障是巧合的;以及(八)如果所述处理器确定至少一个任务的运行依赖于至少一个其他任务的运行,所述处理器考虑第二任务的运行是否依赖于第一任务的运行。所述方法还包括:(九)如果所述处理器确定第二任务的运行依赖于第一任务的运行,所述处理器进一步确定第一任务的故障导致第二任务中的故障;以及(十)如果所述处理器确定第二任务的运行不依赖于第一任务的运行,所述处理器进一步确定第一故障不导致第二故障。

本发明进一步涉及一种观察装置的有形非临时性计算机可读介质,其包括指令,所述指令在被所述处理器执行时,使所述处理器执行步骤以利用时间触发通信系统和高分辨率时间部件来分类电子网络中的故障。所述步骤包括:(一)接收响应于第一任务的第一故障在所述电子系统的第一任务中产生的第一故障代码,其中所述第一故障代码确认(1)与所述第一故障相关联的所述电子网络的第一通信周期,和(2)对应于第一任务的第一消息的第一槽,其中所述第一故障代码发送给所述处理器。所述步骤还包括:(二)接收响应于第二任务的第二故障在所述电子系统的第二任务中产生的第二故障代码,其中所述第二故障代码确认(1)与所述第二故障相关联的所述电子网络的第二通信周期,和(2)对应于第二任务的第二消息的第二槽,其中所述第二故障代码发送给所述处理器。基于关于高分辨率的时间部件同步的时间,第一槽和第二槽分别填入第一故障代码和第二故障代码。所述步骤还包括:(三)使用执行时间表确认与所述第一任务和所述第二任务相关联的执行周期偏移,以及(四)考虑第一故障问题代码的第一周期是否与第二故障问题代码的第二周期分开时间表确认的执行周期偏移。步骤进一步包括:(五)如果第一周期不与第二周期分开执行周期偏移,确定第一故障不导致第二故障,(六)如果第一周期与第二周期分开执行周期偏移,基于任务依赖数据,考虑任何任务的运行是否依赖于任何其他任务的运行,(七)如果没有任务的运行依赖于其他任务的运行,确定第一故障和第二故障是巧合的,以及(八)如果至少一个任务的运行依赖于至少一个其他任务的运行,考虑第二任务的运行是否依赖于第一任务的运行。所述步骤还包括:(九)如果第二任务的运行依赖于第一任务的运行,确定第一任务的故障导致第二任务中的故障,以及(十)如果第二任务的运行不依赖于第一任务的运行,确定第一故障不导致第二故障。

本发明的其他方面,部分将是显而易见的,部分将在后面指出。

本发明还提供了以下方案:

1. 一种由观察装置的计算机处理器执行的方法,其利用时间触发通信系统和高分辨率时间部件来分类电子网络中的故障,所述方法包括:

(一)所述处理器接收响应于第一任务的第一故障在所述电子系统的第一任务中产生的第一故障代码,其中所述第一故障代码确认:

与所述第一故障相关联的所述电子网络的第一通信周期,和

对应于第一任务的第一消息的第一槽,其中所述第一故障代码发送给所述处理器;

(二)所述处理器接收响应于第二故障在所述电子系统的第二寻错任务中产生的第二故障问题代码,其中第二故障代码确认:

与所述第二故障相关联的所述电子网络的第二通信周期,和

对应于第二任务的第二消息的第二槽,其中所述第二故障代码发送给所述处理器,

其中,基于关于所述高分辨率时间部件同步的时间,所述第一槽和所述第二槽分别填入第一故障代码和第二故障代码;

(三)所述处理器使用执行时间表确认与所述第一任务和所述第二任务相关联的执行周期偏移;

(四)所述处理器考虑第一故障问题代码的第一周期是否与第二故障问题代码的第二周期分开所述时间表确认的执行周期偏移;

(五)如果所述处理器确定第一周期不与第二周期分开所述执行周期偏移,所述处理器进一步确定第一故障不导致第二故障;

(六)如果所述处理器确定第一周期与第二周期分开所述执行周期偏移,所述处理器基于任务依赖数据,考虑任何任务的运行是否依赖于任何其他任务的运行;

(七)如果所述处理器确定没有任务的运行依赖于其他任务的运行,所述处理器进一步确定第一故障和第二故障是巧合的;

(八)如果所述处理器确定至少一个任务的运行依赖于至少一个其他任务的运行,所述处理器考虑第二任务的运行是否依赖于第一任务的运行;

(九)如果所述处理器确定第二任务的运行依赖于第一任务的运行,所述处理器进一步确定第一任务的故障导致第二任务中的故障;以及

(十)如果所述处理器确定第二任务的运行不依赖于第一任务的运行,所述处理器进一步确定第一故障不导致第二故障。

2. 如方案1所述的方法,其特征在于,进一步包括:

(十一)所述处理器考虑第一任务的运行是否依赖于第二任务的运行;

(十二)如果所述处理器确定第一任务的运行依赖于第二任务的运行,所述处理器进一步确定第二任务的故障导致第一任务中的故障;以及

(十三)如果所述处理器确定第一任务的运行不依赖于第二任务的运行,所述处理器进一步确定第二故障不导致第一故障。

3. 如方案1所述的方法,其特征在于:

所述执行循环偏移是初始周期偏移;

所述方法进一步包括:

重新执行步骤(三)以确认另一个周期偏移;以及

使用所述另一个周期偏移代替所述初始周期偏移来重新执行步骤(四)至(十)。

4. 如方案1所述的方法,其特征在于:

所述第一任务在第一周期时间表中运行,其定时由所述高分辨率时间部件所命令;以及

所述第二任务在第二周期时间表中运行,其定时由所述高分辨率时间部件所命令。

5. 如方案1所述的方法,其特征在于,进一步包括:

基于输入布置任务依赖数据的处理器,所述输入包括至少一个数据组,所述至少一个数据组由以下构成的数据组的集合中选择:

任务图;以及

源映射。

6. 如方案1所述的方法,其特征在于,进一步包括基于故障的分类而执行动作来改善网络的功能。

7. 如方案6所述的方法,其特征在于,所述动作包括:

基于分类从所述第一任务和所述第二任务中确认一个任务来屏蔽;以及

屏蔽所选择的任务。

8. 如方案1所述的方法,其特征在于,进一步包括执行成对分析,除了关于所述第一任务和所述第二任务的组合执行步骤(一)至(十)以外,其包括重复步骤(一)至(十),其中除了所述第一任务和所述第二任务的组合被替换成由以下构成的任务组合的集合中所选择的任务组合:

第二和第一任务;

第三和第二任务;

第一和第三任务;以及

第三和第四任务。

9. 一种观察装置的有形非临时性计算机可读介质,其包括指令,所述指令在被所述处理器执行时,使所述处理器执行步骤以利用时间触发通信系统和高分辨率时间部件来分类电子网络中的故障,所述步骤包括:

(一)接收响应于第一任务的第一故障在所述电子系统的第一任务中产生的第一故障代码,其中所述第一故障代码确认:

与所述第一故障相关联的所述电子网络的第一通信周期,和

对应于第一任务的第一消息的第一槽,其中所述第一故障代码发送给所述处理器;

(二)接收响应于第二任务的第二故障在所述电子系统的第二任务中产生的第二故障代码,其中所述第二故障代码确认:

与所述第二故障相关联的所述电子网络的第二通信周期,和

对应于第二任务的第二消息的第二槽,其中所述第二故障代码发送给所述处理器,

其中,基于关于高分辨率的时间部件同步的时间,第一槽和第二槽分别填入第一故障代码和第二故障代码;

(三)使用执行时间表确认与所述第一任务和所述第二任务相关联的执行周期偏移;

(四)考虑第一故障问题代码的第一周期是否与第二故障问题代码的第二周期分开时间表确认的执行周期偏移;

(五)如果第一周期不与第二周期分开执行周期偏移,确定第一故障不导致第二故障;

(六)如果第一周期与第二周期分开执行周期偏移,基于任务依赖数据,考虑任何任务的运行是否依赖于任何其他任务的运行;

(七)如果没有任务的运行依赖于其他任务的运行,确定第一故障和第二故障是巧合的;

(八)如果至少一个任务的运行依赖于至少一个其他任务的运行,考虑第二任务的运行是否依赖于第一任务的运行;

(九)如果第二任务的运行依赖于第一任务的运行,确定第一任务的故障导致第二任务中的故障;以及

(十)如果第二任务的运行不依赖于第一任务的运行,确定第一故障不导致第二故障。

10. 如方案9所述的有形非临时性计算机可读介质,其特征在于,所述指令进一步使所述处理器:

(十一)考虑第一任务的运行是否依赖于第二任务的运行;

(十二)如果第一任务的运行依赖于第二任务的运行,确定第二任务的故障导致第一任务中的故障;以及

(十三)如果第一任务的运行不依赖于第二任务的运行,确定第二故障不导致第一故障。

11. 如方案10所述的有形非临时性计算机可读介质,其特征在于:

所述执行循环偏移是初始周期偏移;以及

所述指令进一步使所述处理器:

重新执行步骤(三)以确认另一个周期偏移;以及

使用所述另一个周期偏移代替所述初始周期偏移来重新执行步骤(四)至(十)。

12. 如方案10所述的有形非临时性计算机可读介质,其特征在于,所述指令进一步使所述处理器:

基于输入布置任务依赖数据,所述输入包括至少一个数据组,所述至少一个数据组由以下构成的数据组的集合中选择:

任务图;以及

源映射。

13. 如方案10所述的有形非临时性计算机可读介质,其特征在于,所述指令进一步使所述处理器基于故障的分类而执行动作来改善网络的功能。

14. 如方案10所述的有形非临时性计算机可读介质,其特征在于,所述指令进一步使所述处理器执行成对分析,除了关于所述第一任务和所述第二任务的组合执行步骤(一)至(十)以外,其包括重复步骤(一)至(十),其中除了所述第一任务和所述第二任务的组合被替换成由以下构成的任务组合的集合中所选择的任务组合:

第二和第一任务;

第三和第二任务;

第一和第三任务;以及

第三和第四任务。

15. 一种交通车辆,包括:

高分辨率时间部件;

包括第一任务和第二任务的电子网络,所述电子网络配置成基于高分辨率时间部件利用时间触发通信系统;以及

车载计算机,所述车载计算机包括:

处理器;和

有形非临时性计算机可读介质,其包括指令,所述指令在被所述处理器执行时,使所述处理器执行步骤以分类所述电子网络中的故障,所述步骤包括:

(一)接收响应于第一任务的第一故障在所述电子系统的第一任务中产生的第一故障代码,其中所述第一故障代码确认:

与所述第一故障相关联的所述电子网络的第一通信周期,和

对应于第一任务的第一消息的第一槽,其中所述第一故障代码发送给所述处理器;

(二)接收响应于第二任务的第二故障在所述电子系统的第二任务中产生的第二故障代码,其中所述第二故障代码确认:

与所述第二故障相关联的所述电子网络的第二通信周期,和

对应于第二任务的第二消息的第二槽,其中所述第二故障代码发送给所述处理器,

其中,基于关于高分辨率的时间部件同步的时间,第一槽和第二槽分别填入第一故障代码和第二故障代码;

(三)使用执行时间表确认与所述第一任务和所述第二任务相关联的执行周期偏移;

(四)考虑第一故障问题代码的第一周期是否与第二故障问题代码的第二周期分开时间表确认的执行周期偏移;

(五)如果第一周期不与第二周期分开执行周期偏移,确定第一故障不导致第二故障;

(六)如果第一周期与第二周期分开执行周期偏移,基于任务依赖数据,考虑任何任务的运行是否依赖于任何其他任务的运行;

(七)如果没有任务的运行依赖于其他任务的运行,确定第一故障和第二故障是巧合的;

(八)如果至少一个任务的运行依赖于至少一个其他任务的运行,考虑第二任务的运行是否依赖于第一任务的运行;

(九)如果第二任务的运行依赖于第一任务的运行,确定第一任务的故障导致第二任务中的故障;以及

(十)如果第二任务的运行不依赖于第一任务的运行,确定第一故障不导致第二故障。

16. 如方案15所述的交通车辆,其特征在于,所述有形非临时性计算机可读介质的指令进一步使所述处理器:

(十一)考虑第一任务的运行是否依赖于第二任务的运行;

(十二)如果第一任务的运行依赖于第二任务的运行,确定第二任务的故障导致第一任务中的故障;以及

(十三)如果第一任务的运行不依赖于第二任务的运行,确定第二故障不导致第一故障。

17. 如方案15所述的交通车辆,其特征在于:

所述执行循环偏移是初始周期偏移;以及

所述有形非临时性计算机可读介质的指令进一步使所述处理器:

重新执行步骤(三)以确认另一个周期偏移;以及

使用所述另一个周期偏移代替所述初始周期偏移来重新执行步骤(四)至(十)。

18. 如方案15所述的交通车辆,其特征在于,所述有形非临时性计算机可读介质的指令进一步使所述处理器:

基于输入布置任务依赖数据,所述输入包括至少一个数据组,所述至少一个数据组由以下构成的数据组的集合中选择:

任务图;以及

源映射。

19. 如方案15所述的交通车辆,其特征在于,所述有形非临时性计算机可读介质的指令进一步使所述处理器基于故障的分类而执行动作来改善网络的功能。

20. 如方案15所述的交通车辆,其特征在于,所述有形非临时性计算机可读介质的指令进一步使所述处理器执行成对分析,除了关于所述第一任务和所述第二任务的组合执行步骤(一)至(十)以外,其包括重复步骤(一)至(十),其中除了所述第一任务和所述第二任务的组合被替换成由以下构成的任务组合的集合中所选择的任务组合:

第二和第一任务;

第三和第二任务;

第一和第三任务;以及

第三和第四任务。

附图说明

图1根据本发明的实施例示出了两个电子控制单元(ECU)的周期时间表和每个ECU的时间表的任务之一发出的诊断故障代码。

图2根据本发明的实施例示出了用于确定图1所示故障是否巧合、相关或不相关的示例性诊断方法。

具体实施方式

根据需要,在本文中公开了本公开的详细实施例。公开的实施例仅仅是可以在各种不同形式和可选形式及其组合中体现的示例。如本文中所用,例如“示例性”和类似术语泛指用作示例、范例、模型或样板的实施例。附图不一定是按比例的,并且某些特征例如可以被放大或缩小以示出特定部件的细节。在某些情况下,公知的部件、系统、材料或方法均未详细介绍,目的是为了避免使本公开不清楚。因此,本文中公开的具体结构和功能性的细节不应被解读为限制性的,而仅仅是作为解释权利要求的基础以及作为教导本领域技术人员以各种方式应用本公开的代表性基础。

尽管说明书中包括计算机可执行指令的主体内容,但是本公开也可以结合其他的程序模块和/或作为硬件和软件的组合实施。术语“应用”或其变形在本文中被广义地使用以包括例行程序、程序模块、程序、组件、数据结构、算法等。应用可以在各种系统配置上实施,包括单处理器或多处理器系统、基于微处理器的电子系统及其组合等。

一、本发明的总体概述

本发明描述通过时间标记故障事件来诊断硬件和/或软件故障的诊断模块和方法。更具体地,高分辨率同步时钟用来确认发生故障的一个或多个通信消息周期的槽。到诊断模块的其他输入包括系统任务图,系统源映射,用于系统的通信/执行时间表。使用这些输入,诊断模块确定是否两个或多个故障巧合,相关或不相关。

虽然本发明主要通过与汽车系统相关例子的方式描述,其中系统任务包括汽车的软件和硬件部件,本发明的教导不仅限于用于汽车,还可以用来诊断和改善其他电子和计算机系统。

二、示例性故障情况

现在转向附图,图1示出了系统100,其包括两个电子控制单元(ECU)110,112各自的周期时间表。ECU能够为汽车(未详细示出)的部分或其他带计算机系统。虽然两个ECU110,112(如计算节点)通过举例的方式示出,将认识到,本发明的教导同样可以用来诊断发生在一个ECU或三个或更多的ECU中的故障。

每个ECU110,112与同步时钟114相关联。ECU110,112与相同的同步时钟114相关联。每个ECU110,112中的本地时钟可以被连接到全局时钟114,并定期同步到全局时钟114(例如,每秒,或多或少),从而确保每个ECU110,112(例如,其任务)在同一时间的基础上运行。在一些实施例中,时钟同步是由一个或多个时钟同步算法管理的,算法是时间触发通信系统的一部分,该时间触发通信系统控制系统100内的通信,如下面进一步描述。

每个ECU110,112还包括多个任务T。每个ECU110,112的任务T在各自的周期,或ECU110,112的周期时间表116,118内运行。任务T的执行是参照同步时间而时间触发的。特别地,例如,每个任务T执行预先分配的时间槽,类似于系统100内的消息是如何在时间触发通信系统中在预先分配的时间槽中传送。

在一些实施例中,任务T周期执行。参照图1,例如,任务T如下执行:T1l,T1i,T1h,T1k,T1n,T1l,T1i,等。来自任务T的消息也同样周期发送出去。

在一些实施例中,至少一个任务T是一段计算机代码(这可以被称为计算任务),一部硬件(如传感器或其他电子产品),这可以被称为作为传感任务,或者是两者的结合。任务T可包括,例如,执行软件,传感器动作,执行器动作,或其他硬件装置执行功能,如专用集成电路(ASIC)。

虽然故障诊断结合在不同的ECU110,112和周期时间表116,118中运行的节点T描述,本发明的教导可用于诊断发生在相同的ECU,不同的ECU,相同的周期,不同的周期,或它们的组合中的故障,如三个故障发生在三个任务中,两个为一个ECU的相同周期,第三个故障发生在不同周期结束ECU的任务中。

周期时间表116,118内的运行定时由同步时钟(一个或多个)114控制。每个任务T的计时器或其他基于时间的变量可会定期参考同步时钟114更新或校正。预计同步时钟114本身可定期更新,如参考到另一个时钟,如全球定位系统(GPS)时钟,虽然这不是必须的。

每个任务T是软件模块,如ECU110,112的程序或子程序,ECU110,112的硬件模块,如电子装置,或ECU110,112的软硬件结合。构成任务T的示例性电子硬件模块是车辆传感器,如速度传感器。示例性软件模块是计算机应用,其存储在计算机可读介质(例如,汽车车载计算机)上。

特别地,示例性软件故障包括:(1)内存损坏故障,如堆栈溢出,缓冲区溢出,分段错误(又称内存不足),和寻呼故障,(2)时间安排漏洞,如错过释放时间,这可能由运行系统中的漏洞或中断的不恰当设计和/或异常导致,以及(3)由对无线传感器网络的恶意攻击触发的故障。示例性硬件故障包括:(a)设计漏洞/错误,如无序路径的不正确执行,以及(b)内存/总线故障,其由软错误导致,这反过来导致软件故障。

进一步参照图1,在每一个ECU110,112中的两个任务T之间的依赖关系120,122被明确显示。在一个任务运行时存在的任务之间的依赖关系(例如,第一ECU110中的任务T1l,第二ECU112中的任务T2l)以一些方式(或受某种方式受其影响)依赖于另一个任务运行(例如,第一ECU110中的任务T1k,第二ECU112的任务T2n)。例如,第一ECU110的任务T1l可以是软件模块,其需要来自第一ECU110的其他任务的T1k的输出来执行其运行,其中其他任务T1k是软件模块或软件/硬件模块。同样地,例如,第二ECU112的任务T2l可以是软件和/或硬件模块,其需要来自第二ECU112的其他任务T2n的输出以执行其运行,其中的其他任务T2n是软件和/或硬件模块。

虽然任务T1l依赖于任务T1k,依赖于任务T2n的任务T2l作为示例性依赖性而给出,任何不同的其他任务(例如,T1k,T1n,T1l,T1i,T1h,T2k,T2n,T2l,T2i,T2j中,仅作为示例性任务给出而不限制于此)之间的依赖性可存在并且同样根据本技术评估。

此外,任务T的运行可以某种方式依赖于(或以某种方式受其影响)一个或超过一个ECU110,112的一个或多个任务T的运行。

而且,第一ECU110中的任务T1和第二ECU112中的任务Tn的运行涉及存在于两个ECU中的同一任务Tk的运行。将进一步认识到,虽然Ti是两个ECU110,112的一部分,任务Ti中发生的故障(这在更下面描述)与仅一个周期118中的人物Ti的角色一起发生。

所示的依赖关系仅作为例子提供,并且其他依赖(未详细示出)可存在于示出为涉及依赖关系的任务和其他任务之间,其他对之间,或三个或更多个不同任务T之间。任何任务T的运行可依赖于多个其他任务T的运行,和/或多个任务T可依赖于单个其他任务T的运行。这种系统依赖性可以存储在任务图和/或源映射中,如下面进一步的详述。

系统100内的故障的准确诊断提供了各种益处。故障诊断包括发生故障和导致故障(如一个或多个其他任务,或任务内的处理)的一个或多个任务的确认。准确的故障诊断的示例性益处包括以下能力:补救或屏蔽故障以避免进一步发生,使能围绕故障的运行,以及重新映射系统架构,或以其他方式改变系统的架构,以减缓所确认的故障。有效的诊断包括确认当多个故障和存在这样的关系时任何两个或多个的故障之间的因果关系。在一些实施例中,给定已经发生了多个故障,任务成对分析(即一次比较两个任务)以确认故障中的故障部分依赖关系(关系)。推断部分依赖关系被编译以确定故障的因果顺序。

因果关系的准确确定不能仅根据运行依赖性,或甚至单独根据运行依赖性和故障定时。例如,即使在第一任务的故障(例如,第一ECU110的任务T1l)是在第一任务所依赖的第二任务的故障(例如,第一ECU110的任务T1k)之前,不能仅根据第二任务中的故障导致第一任务中的故障的这种信息以确定的或高水平置信度推断。例如,第一项任务的故障可已经完全独立于第二任务的故障,或从包括或不包括第二任务的故障组合导致。

每个节点T包括计算部件,其配置成生成响应于任务T中故障的代码。特别地,例如当故障发生时,寻错任务T生成问题代码或故障代码,如诊断问题代码(DTC),其确认寻错任务T。

DTC确认任务的方式能够依赖于正在使用的通信架构。例如汽车,示例性通信架构使用车辆内部通信网络上的时间触发(TT)消息发送。这些类型的架构(通常被称为时间触发通信系统)控制系统100内的通信,如下所述。示例性时间触发通信系统是一个TT以太网。

通常,在时间触发通信系统中,系统中的所有节点共享全球同步时间范畴。同步可通过例如定期时钟校正实现。而且,在时间触发通信系统中,时间被分割成槽,节点可以在预先限定的槽中传送消息(数据),在这种情况下,消息是时间标记的以指示槽。因此,如果消息在给定槽中发送,可以确定,如通过装置或人评估系统,该消息是由其被发送出去时所在的槽时间标记的。如果节点没有以其指定的标记发送消息,其他节点不能够在槽中通信。

DTC指示故障(如通过确认故障发生),以及故障的时间例(如通过包含通信或执行周期标识符)。

时间触发通信系统需要使用全球时间,如同步时钟114维持的时间,并使用容错中点算法。在某些情况下,组合的时间触发通信系统被使用。可使用任何一个或多个时间触发通信系统,如在汽车应用中常用的。

如提供的,这样的同步系统,或网络,用于调度实时任务,并在网络中并通过网络传送消息。外部装置能够用于确认消息的类型(例如,它们是否为DTC消息),并且确认消息是否包括关于通信周期(其中发生与DTC相关联的任何故障)的信息。示例性外部装置是CANoe分析器。准确的消息确认和解释可以通过有目的地引入故障或故障的其他原因以及产生运行的分析来测试。

消息可以包括传统的组成部分,如头部,承载部分和尾部。在一些实施例中,消息确认对应于消息的通信周期,如在消息头部和/或尾部中。此外,每个消息与时间代码,或时间标记相关联,指示其中有消息的槽(例如,DTC代码)在通信总线上被发送。

在优选的实施例中,同步时钟114具有非常高的分辨率,其使能非常精确的时间标记。虽然当前超高分辨率时钟已具有向下直到约50μsec的分辨率,具有更高分辨率的时钟被考虑并且能够实施到本发明的技术中。

在示例性实施例中,时间触发消息包括静态段和动态段,并且每个任务T分配静态(ST)段中的槽。通常,任务T在其各自的分配静态消息槽中传送时间标记的DTC。通过知道分配给每个任务的静态消息槽,中央处理器(例如,车载计算机)通过槽(其中发送DTC)确定发起DTC的任务T。

在一些实施例中,静态(ST)段通常被保留用于与时间触发消息一起使用,动态段(DYN)通常被保留用于事件触发消息。在某些情况下,如消息中具有有限的带宽时,静态槽不能从计算任务T分配用于承载段。在某些情况下,任务T可以在消息的动态段传送时间标记的DTC。如果来自特定任务T的DTC向通信周期静态段的尾部发出,在用于填入特定任务的分配静态段的时间过去之后,DTC也可在动态段中发送。

继续参照图1,示例性故障124,126示意地示出为分别发生在第一和第二ECU110,112的任务T1h和T2i中。响应于故障124,126,任务T1h和T2i产生各自的DTC128,130。每个DTC包括任务经历故障的指示,通信周期(其中故障发生或被报告),和时间标记(其指示发生故障的时间或DTC被产生。

例如,DTC的代码可为软件/电子错误通知(软件/电子DTC)的一部分,也确认ECU/传感器/致动器/等(任务)(其在DTC报告电子故障的情况下故障)或软件部件(任务)(其在DTC指示软件故障的情况下故障)。DTC代码指示故障类型,如软件内存故障,定时故障,ECU故障,内存故障,或其他。

DTC被发送至诊断模块,或观察装置132,如主体车辆的车载计算机的处理器。观察装置132根据下面进一步描述的本发明的诊断算法分析DTC以诊断相关故障。

当故障在相对接近的时间内发生时,如相互发生在同一个通信周期或在一个或几个周期内,有效的诊断包括确定故障是否为相关的,不相关的,或巧合的。然而,如上面所提供的,会难以确定这些关系的哪个是适当的。这种挑战是复杂的,因为实际上之前寻错任务发起的故障消息会发送得晚于之后寻错任务的故障消息,因此使其不可能仅基于产生故障消息的定时来确认故障之间的相关性。

三、诊断算法

图2根据本发明的实施例示出了对应于示例性诊断算法的方法200,其用于分类故障,如图1所示的故障124,126。

应该理解,方法200的步骤不是必须以任何特定顺序存在,并且替代顺序的一些或全部步骤的性能也是可行的并且被考虑。为了易于描述和示出,步骤已经以所示顺序存在。步骤可以被添加,省略和/或同时执行,而不脱离所附权利要求的范围。还应理解,所示方法200能够随时结束。

例如在某些实施中,这个过程的一些或所有步骤,和/或基本上等同的步骤通过存储在或包含在计算机可读介质上的计算机可读指示的执行而进行。例如,参照执行本发明的功能的处理器涉及任何一个或多个交互工作的计算部件,其执行指令,指令例如以算法的形式被提供在计算机可读介质上,如与观察装置132相关联的内存。

方法200的目标是确定适当的分类202,其描述系统100中两个或更多故障124,126的发生之中的关系或没有关系。特别地,方法200的算法促进准确地确定故障是否应被分类为不相关204,相关206,或巧合208,如下面进一步详细提供的。

在步骤210,处理器接收来自寻错任务T1h和T2i的DTC。来自这些任务T1h和T2i的DTC为了解释目的可以分别被称为d1:T1h;Slot_g;CC_p与d2:T2i;Slot_v;CC_m,其中p标识第一ECU110的通信周期(其中一个任务T1h的故障124发生)和/或周期(其中故障126被报告),和m标识第二ECU112的通信周期(其中另一个任务T2i的故障126发生)和/或周期(其中故障126被报告)。参考标记g指的是发送其中提供DTC d1的消息的槽,其为被分配的槽用于相对应的任务T1h,V指的是发送其中提供另一DTC d2的消息的槽,其为被分配的槽用于相对应的任务T2i

在步骤212,处理器确认或获得执行周期偏移O。在一些实施例中,处理器基于输入214确认偏移O,输入214包括通信/执行时间表。时间表可以包括时间驱动的表格,其具有任务执行和消息通信的释放时间。

如前所述,任务T能够在自然对应于全球同步时间的周期中运行。任务T的这种周期执行可称为执行周期。执行周期偏移O代表分开两个相关任务T(例如,依赖于来自其他节点的信息的两个节点之一的运行)的周期数。例如,如果第一周期(周期1)中的第一任务T产生的数据被消耗掉,或被第三周期(周期3)中的第二任务T使用,数据依赖性不是在周期中,并且特别地,这些任务之间的偏移O是二(2)。

在另一个例子中,如果时间表是T2,T1,——T2,T1等,其中T2在T1之前执行并且消耗T1在上一个周期的输出,周期偏移O将为一(1)。

在步骤216,处理器确定一个DTC的周期d1:T1h;Slot_g;CC_p是否与其他DTC d2:T2i;Slot_v;CC_m分开从步骤212接收217的执行周期偏移O,或者:

CC_p=CC_m+O?

如果在步骤216处理器确定一个DTC的周期d1:T1h;Slot_g;CC_p与其他DTC d2:T2i;Slot_v;CC_m分开执行周期偏移O,或者:

CC_p≠CC_m+O,

那么处理器确定任务Th的故障不导致其他任务Ti的故障。故障被确定为不相关的,因为它们发生在不同的处理步骤。如果一个故障与其他相关,第二个将会发生在相同的处理步骤中——例如,在从第一周期偏移了确定的偏移O值的周期中。

方法200可关于其他偏移O并从其他方面执行(例如,重新执行)。在某些情况下,至少一个任务(例如,Ti)保持一个或多个最近值(例如,5个最近值)的缓冲区,该最近值由至少一个其他任务(例如,Th)生成。一个任务(例如,Ti)因此使用一个或多个最近值(例如,5个最近值),该最近值由至少一个其他任务(例如,Th)产生。因此,方法200可以关于从其他任务接收的每个值从一个任务的方面执行。例如,如果来自五个紧邻前面和后面周期的五个(5个)最近值被使用,那么方法200可以为每个偏移O1-5执行一次。在一个实施例中,方法200从任务Th与第二Ti依赖的方面重新执行,如下面进一步说明,从而以不同方式确定任务是否相关。在至少某些这种情况下,目标是分析很多,大部分或所有相关任务组合,并进一步分析这些组合的多个偏移O。

如果在步骤216处理器确定一个DTC的周期d1:Ti;Slot_g;CC_p与其他DTC d2:Th;Slot_v;CC_m分开执行周期偏移O,或者:

CC_p=CC_m+O,

那么流程继续到步骤218,在该处,处理器考虑第二任务Ti是否依赖于第一项任务Th,或者:

Ti→Th

对于步骤218的考虑,处理器使用步骤212布置的任务依赖数据219。任务依赖数据219基于输入214布置,该输入214包括至少一个任务图和至少一个源映射。任务图可以确认任务,或计算任务,该任务在系统中运行,并且确认任务之间的关系(例如,依赖或影响)。图进一步确认任务排序和任务间通信。

源映射确认任务所需的源或计算任务的运行。示例性所需的源可以包括例如软件的任务,致动器,传感器,通信总线等。源映射也可以映射任务到ECU和映射消息到通信网络,以及映射系统硬件(例如,传感器/致动器)到ECU/通信网络。

任务图和源映射中确认的计算任务T之中的依赖或影响可以为任意多种类型。例如,任务图可包括两个任务之间的执行依赖性,其中第一个任务的输出是两个任务的第二个的执行所需要的。在这个例子中,如果第一任务故障,从而锁定(例如,停止运行),例如然后第二任务被锁定以不接收所需要的数据。

源映射可以确认两个任务之间的关系,如任务在哪里具有共同的源。共同源例如可以是来自主体汽车部件(如传感器)或第三任务的输入,其运行影响前两个任务每个的运行。

如果在步骤218,处理器确定没有任务Ti,Th依赖于其他任务Th,Ti,或者:

和,

那么处理器确定的故障是巧合的208。得到这个结论是因为如果任务Th,Ti的运行中不以任何方式在每个任务图和/或源映射中相互联系,那么不可能是一个故障导致另一个故障,或与另一个故障相关联。因此,两个故障的发生被认为是巧合208。

如果在步骤218中,处理器确定至少一个任务Ti,Th依赖于(或受其影响)其他任务Th,Ti,或者:

Th→Ti和/或Ti→Th

那么进行到步骤220,在该处,处理器确定Ti的运行是否依赖于Th的运行,或者:

Th→Ti

步骤218的确定基于步骤212布置的任务依赖数据219而被分析。如所提供的,任务依赖数据219基于任务图和/或源映射。

如果在步骤220,处理器确定了第一任务Ti的运行与其他任务Th的运行相关,或者:

Th→Ti

那么处理器确定一个任务Th的故障导致其他任务Ti的故障。这个确定是与因果关系的可能性相关的,其中有非常低的可能性是在特定模式(例如,联系周期关系)相关和故障的两个任务是不相关的。因此,本方法提供了强指标,如到评估装置或人,其指向系统100中发生了什么错误。

如果在步骤220,处理器确定了第一任务Ti的运行不与其他任务Th的运行相关,或者:

那么处理器确定每个任务Th的故障不导致其他任务Ti的故障。也就是说,从Ti与任务Th依赖的方面来看,处理器确定Th和Ti中的故障不相关204。如所提供的,方法200可关于其他偏移O并从其他方面执行(例如,重新执行),如从在步骤220的考虑中任务Th与第二Ti依赖的方面来看,从而以不同方式确定任务是否相关。

对于涉及多于两个寻错任务的情况,例如T1,T2,T3的情况下,方法200的迭代可以确认故障和其他任务之间的因果关系或没有关系。例如,其可以确定任务T1中的故障导致任务T2中的故障,任务T3中的故障是由T2中的故障导致的,和/或由T1中的故障导致的,视情况而定。

方法200可结束或重复,如与其他任务T组合和/或偏移O值相关,如上所提供。

四、本技术的使用例子

本技术能够用于在各种情况下诊断故障。四个示例性的情况是:(一)问答安全系统;(二)任务故障序列;(三)定时故障;以及(四)总线故障。

在(一)问答安全系统的情况下,本发明的技术用于打破了周期性依赖。在这种情况下(图中未显示),第一示例性任务A向第二任务B提出问题。在回答中,任务B以对问题的回答来答复A。基于B的回答,任务A向任务B提出另一个问题。使用本技术,如果发生故障的执行/通信周期是已知的,任务A和B中的故障源可以被诊断。如果故障发生在同一周期,B中故障的原因最有可能是任务A。如果故障发生在连续的周期,任务B中的故障最有可能是任务A中故障的原因。如果故障发生在不同的周期,那么故障最有可能不相关。

在(二)任务故障顺序的情况下,如果任务故障是由于传感器的特定故障顺序(从中在总线上获得数据),并且考虑任务可以配置为在每次传感器故障时调试自身,那么传感器故障顺序的确认对于根本原因分析来说是重要的甚至是至关重要。在确认和通信周期和时间槽(其中发生故障并在DTC消息中报告)的比较中,通过本技术促进传感器故障顺序的确认。

任务往往具有或为其他相关联的方式(例如,基于分析冗余)以估算的传感器的值,如通过查找表,数学模型,或者状态机,或其他方式。当检测到传感器故障,任务可以忽略来自故障传感器的值,并代替地使用来自分析模型中的值。

在(三)示例性定时故障的情况下,高优先级任务A错过了释放时间,但没有到最后期限,另一个任务B错过了释放时间和最后期限。DTC被提出用于错过任务A和B的释放时间,和错过任务B的最后期限,确认所有这些动作都发生在一个执行周期对于以确定A的延迟是否导致错过了任务B的最后期限来说是重要的,甚至是至关重要的。在这个例子中,偏移O设置为零(o),方法200被执行用于A和B。它们之间的时间安排依赖性在任务图中获得。利用设计师的上述输入,提出的方法200可以检测到这些故障是相关的。在(四)示例性总线故障的情况下,数据损坏在总线上发生,或与电磁干扰(EMI)或其他干扰一起发生。本技术使能确定一个基于时间的瞬间(例如通信周期或一个时间槽的一部分)中发生的损坏是否导致另一部分总线上读取的任务中的故障。发生错误的相关时间表和周期的确认对于根本原因分析来说是重要的,甚至是至关重要的。网络上的节点(例如中央总线监控器)能够确认被噪音破坏的时间槽,在DTC中寄存/发送相对应的数据。每个槽绑定到由一个任务到另一个任务发送的消息。因此,如果例如目标任务Td具有软件故障和记录/发送DTC,来自总线监控器的DTC被记录/接收,那么本方法200可以确认总线上的数据损坏导致任务Td故障。

五、准确诊断的应用

准确地确定在系统100中的多个故障之间是否存在关系允许系统100或系统的用户采取各种动作来改善系统运行。一些动作(如自动重新映射系统100中的部件)基本上能够实时完成,并且一些动作能够在进一步的分析之后执行。

寻错任务之间或任务和源之间的关系的准确确定提高了诊断质量,并促进了由于依赖电子/软件故障的表现而产生的故障的因果关系分析。在一些实施例,诊断是任务和源的运行时间重新配置的使能器。诊断还能够提供对系统设计或系统模拟应用程序,测试,验证的洞察,如通过分析系统性能,随后有目的地引入/引进故障/错误来证明设计的缓解机制。改善的诊断也增加了容错支持的置信度,其在高灵敏度应用程序(如安全性至关重要的应用程序)中是特别重要的,并且其中可以是运行时间重新配置的使能器。

诊断和/或诊断后动作可以本地对故障执行(如在发生故障的车辆的车载计算机中线上执行),和/或离线执行(如与故障位置远程执行,如车辆外)。对于车外诊断或诊断后动作,必要的数据(例如,DTC,任务图和源映射数据)可以多种方式传送到远程系统,如有线连接(例如在车库中),无线,或通过转移内存单元(如内存芯片或卡,其存储与车辆运行有关的某些信息)。一些诊断所需的数据可已经在远程计算机上提供,例如,任务图和/或源映射。来自车辆运行的数据(包括DTC)也可以提供给系统的用户(例如车辆的操作者)或评估系统100的人员(例如技术人员)。

诊断后动作可以包括确认寻错任务,将来自运行或连接性的任务或源移到一个或多个任务或源,更换任务或源,重新执行周期或功能,以确认故障(一个或多个)的存在或继续存在,或故障是短暂的,执行任务或源的维持,使能关于一个或多个故障的运行,屏蔽故障,以及重新映射,或以其他方式改变或动态重新配置系统100,以克服确认的故障的负面影响。

屏蔽故障的一个例子是第一任务使用估计值作为寻错任务的有效输出,代替了来自寻错任务的实际值,第一任务在寻错任务上依赖数据,如上面关于分析冗余所述的。

在重新映射的例子中,两个任务依赖于第一源,如车辆中的加速度信息的第一源,但它们并不依赖于彼此。这种依赖可以记录例如在源映射中。如果这两个任务经历故障,本发明的技术将确定故障并非巧合,而是不相关。

在这个例子中,系统100可进行编程以基于故障不相关的诊断来自动确认情况的校正动作。例如,处理器可以重新映射系统100,使得两个任务从第二车辆源接收车辆加速度数据。例如,第一车辆加速度源可以是加速度计,其他的加速度源可以是计算模块,其基于从车轮传感器接收到的车速数据的变化的计算加速度。不论什么原因,第一源可以是优选的,但映射任务到第二源允许继续运行,至少当时如此。

在关于故障使能运行的例子中,主体任务的功能包括从第一任务获得第一块所需数据,从第三任务获得第二块可选数据,从第四任务获得第三件所需数据。如果故障发生在主体任务和第三任务中,处理器能够准确地确定故障是相关的,并且基于这种诊断,重新配置主体任务的功能为不包括获得第二块数据,至少直到例如第二任务被修理或更换。

在此公开了本公开的各种实施例。公开的实施例仅仅是可以用各种不同和可选择的形式及其组合实施的示例。如本文中所用,例如“示例性”和类似术语泛指用作实例、范例、模型或样板的实施例。附图不一定是按比例的,并且某些特征例如可以被放大或缩小以示出特定部件的细节。在某些情况下,公知的部件、系统、材料或方法均未详细介绍,目的是为了避免使本公开不清楚。因此,本文中公开的具体结构和功能性的细节不应被解读为限制性的,而仅仅是作为解释权利要求的基础以及作为教导本领域技术人员的代表性基础。

法律并不要求并且经济上也不允许说明和讲述本申请权利要求的每一个可行实施例。因此,上述实施例仅仅是列出用于清楚理解本公开原理的实施方式的示例性说明。可以对上述实施例进行变形、修改和组合而并不背离权利要求的保护范围。所有这样的变形、修改和组合均被本公开和所附权利要求的保护范围包括在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号