故障检测方法及装置与流程

文档序号:17932131发布日期:2019-06-15 00:58阅读:213来源:国知局
故障检测方法及装置与流程

本发明涉及自动驾驶技术领域,特别是涉及一种故障检测方法及装置。



背景技术:

随着社会的不断发展,人们的生活水平不断提高,人们对汽车的需求与日俱增。伴随着汽车保有量的快速增长,汽车给人们日常生活带来的问题也日益明显,其中,交通安全问题尤为突出,恶劣天气、道路缺陷、汽车故障以及驾驶人员操作不当等原因,均会导致交通事故发生。为了有效解决交通安全问题,自动驾驶技术应运而生,自动驾驶系统能够在很大程度上避免交通事故的发生。

现有的自动驾驶系统大都由激光雷达、车载摄像机、轮速传感器等硬件,以及与这些硬件相关联的驱动程序、通信程序等软件组成,自动驾驶系统安全稳定的运行,依赖于这些硬件和这些软件的正常运行,从而为了保障驾驶人员的行车安全,在汽车自动驾驶的过程中,需要实时检测组成自动驾驶系统的硬件及软件是否发生故障,并在检测出某个硬件或某个软件发生故障时,进行报警,从而及时提醒驾驶人员汽车发生故障,使驾驶人员手动驾驶汽车。因此,如何实时检测组成自动驾驶系统的每个硬件及每个硬件对应的软件是否发生故障是目前亟需解决的问题。



技术实现要素:

有鉴于此,本发明提供一种故障检测方法及装置,主要目的在于实时检测目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障。

为了达到上述目的,本发明主要提供如下技术方案:

第一方面,本发明提供了一种故障检测方法,该方法包括:

功能单元获取目标待检测硬件对应的状态代码,并根据所述状态代码生成所述目标待检测硬件对应的心跳状态码;

所述功能单元将所述心跳状态码添加至心跳信息中,并将所述心跳信息发送至中心处理单元;

所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障;

若是,则所述中心处理单元进行报警。

可选的,所述目标待检测硬件对应的状态代码为正常代码或报错代码;所述功能单元根据所述状态代码生成所述目标待检测硬件对应的心跳状态码,包括:

当所述目标待检测硬件对应的状态代码为所述正常代码时,所述功能单元根据所述正常代码生成所述目标待检测硬件对应的第一心跳状态码,其中,所述第一心跳状态码为零值;

当所述目标待检测硬件对应的状态代码为所述报错代码时,所述功能单元根据所述报错代码生成所述目标待检测硬件对应的第二心跳状态码,其中,所述第二心跳状态码为非零值。

可选的,所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障,包括:

当所述心跳状态码为所述第一心跳状态码时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件未发生故障;

当所述心跳状态码为所述第二心跳状态码时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障。

可选的,在所述功能单元将所述心跳状态码添加至心跳信息中之后,所述方法还包括:

所述功能单元将第一逻辑时钟值以及所述目标待检测硬件对应的唯一标识符添加至所述心跳信息中,其中,所述第一逻辑时钟值为所述功能单元的本地逻辑时钟的当前值。

可选的,在所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障之后,所述方法还包括:

当所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件未发生故障时,所述中心处理单元确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为正常状态,并根据所述唯一标识符、所述第一逻辑时钟值以及所述正常状态对本地设备状态表进行更新,其中,所述本地设备状态表中记录有每个待检测硬件对应的唯一标识符、每个所述待检测硬件对应的历史逻辑时钟值、每个所述待检测硬件的历史工作状态以及每个所述待检测硬件对应的待检测软件的历史工作状态;

当所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障时,所述中心处理单元确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为第一异常状态,并根据所述唯一标识符、所述第一逻辑时钟值以及所述第一异常状态对所述本地设备状态表进行更新。

可选的,在所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障之前,所述方法还包括:

所述中心处理单元根据所述唯一标识符在所述本地设备状态表中查找所述目标待检测硬件对应的历史逻辑时钟值,并判断所述第一逻辑时钟值是否大于所述历史逻辑时钟值;

若是,则进入所述中心处理单元根据所述心跳状态码判断所述待检测硬件及所述待检测硬件对应的待检测软件是否发生故障的步骤;

若否,则所述中心处理单元丢弃所述心跳信息。

可选的,所述方法还包括:

当所述中心处理单元超过预设时间未接收到所述功能单元发送的心跳信息时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障,并确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为第二异常状态;

所述中心处理单元根据所述第二异常状态对所述本地设备状态表进行更新,并进行报警。

可选的,在所述功能单元将所述心跳信息发送至中心处理单元之后,所述方法还包括:

所述中心处理单元向所述功能单元发送携带有第二逻辑时钟值的心跳应答信息,以便所述功能单元根据所述第二逻辑时钟值对本地逻辑时钟进行更新,其中,所述第二逻辑时钟值为所述中心处理单元的本地逻辑时钟的当前值。

第二方面,本发明还提供一种故障检测装置,该装置包括:

获取单元,用于功能单元获取目标待检测硬件对应的状态代码;

生成单元,用于所述功能单元根据所述状态代码生成所述目标待检测硬件对应的心跳状态码;

第一添加单元,用于所述功能单元将所述心跳状态码添加至心跳信息中;

第一发送单元,用于所述功能单元将所述心跳信息发送至中心处理单元;

第一判断单元,用于所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障;

报警单元,用于当所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件发生故障时,所述中心处理单元进行报警。

可选的,所述目标待检测硬件对应的状态代码为正常代码或报错代码;所述生成单元包括:

第一生成模块,用于当所述目标待检测硬件对应的状态代码为所述正常代码时,所述功能单元根据所述正常代码生成所述目标待检测硬件对应的第一心跳状态码,其中,所述第一心跳状态码为零值;

第二生成模块,用于当所述目标待检测硬件对应的状态代码为所述报错代码时,所述功能单元根据所述报错代码生成所述目标待检测硬件对应的第二心跳状态码,其中,所述第二心跳状态码为非零值。

可选的,所述第一判断单元包括:

第一判定模块,用于当所述心跳状态码为所述第一心跳状态码时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件未发生故障;

第二判定模块,用于当所述心跳状态码为所述第二心跳状态码时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障。

可选的,所述装置还包括:

第二添加单元,用于在所述功能单元将所述心跳状态码添加至心跳信息中之后,所述功能单元将第一逻辑时钟值以及所述目标待检测硬件对应的唯一标识符添加至所述心跳信息中,其中,所述第一逻辑时钟值为所述功能单元的本地逻辑时钟的当前值。

可选的,所述装置还包括:

第一更新单元,用于在所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障之后,当所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件未发生故障时,所述中心处理单元确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为正常状态,并根据所述唯一标识符、所述第一逻辑时钟值以及所述正常状态对本地设备状态表进行更新,其中,所述本地设备状态表中记录有每个待检测硬件对应的唯一标识符、每个所述待检测硬件对应的历史逻辑时钟值、每个所述待检测硬件的历史工作状态以及每个所述待检测硬件对应的待检测软件的历史工作状态;

第二更新单元,用于当所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障时,所述中心处理单元确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为第一异常状态,并根据所述唯一标识符、所述第一逻辑时钟值以及所述第一异常状态对所述本地设备状态表进行更新。

可选的,所述装置还包括:

第二判断单元,用于在所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障之前,所述中心处理单元根据所述唯一标识符在所述本地设备状态表中查找所述目标待检测硬件对应的历史逻辑时钟值,并判断所述第一逻辑时钟值是否大于所述历史逻辑时钟值;

所述第一判断单元,具体用于若所述第一逻辑时钟值大于所述历史逻辑时钟值,则所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障;

丢弃单元,用于若所述第一逻辑时钟值小于或等于所述历史逻辑时钟值,则所述中心处理单元丢弃所述心跳信息。

可选的,所述装置还包括:

确定单元,用于当所述中心处理单元超过预设时间未接收到所述功能单元发送的心跳信息时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障,并确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为第二异常状态;

第三更新单元,用于所述中心处理单元根据所述第二异常状态对所述本地设备状态表进行更新,并进行报警。

可选的,所述装置还包括:

第二发送单元,用于在所述功能单元将所述心跳信息发送至中心处理单元之后,所述中心处理单元向所述功能单元发送携带有第二逻辑时钟值的心跳应答信息,以便所述功能单元根据所述第二逻辑时钟值对本地逻辑时钟进行更新,其中,所述第二逻辑时钟值为所述中心处理单元的本地逻辑时钟的当前值。

为了实现上述目的,根据本发明的第三方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的故障检测方法。

为了实现上述目的,根据本发明的第四方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的故障检测方法。

借由上述技术方案,本发明提供的技术方案至少具有下列优点:

本发明提供的一种故障检测方法及装置,通过为目标待检测硬件预先虚拟并配置的功能单元获取目标待检测硬件对应的状态代码,并根据该状态代码生成目标待检测硬件对应的心跳状态码,以及在将该心跳代码添加至心跳信息后,将该心跳信息发送至预先虚拟的中心处理单元中,以便中心处理单元在接收到该心跳信息后,根据该心跳信息中携带的心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障,并在确定目标待检测硬件及目标待检测软件发生故障时,进行报警。本发明能够在汽车自动驾驶的过程中,通过预先虚拟的功能单元和中心处理单元,实时检测组成自动驾驶系统的目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障,并在检测出目标待检测硬件及目标待检测软件发生故障时,进行报警,从而能够及时提醒驾驶人员汽车发生故障,使驾驶人员手动驾驶汽车,进而能够保障驾驶人员的行车安全。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种故障检测方法流程图;

图2示出了本发明实施例提供的另一种故障检测方法流程图;

图3示出了本发明实施例提供的一种故障检测装置的组成框图;

图4示出了本发明实施例提供的另一种故障检测装置的组成框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供一种故障检测方法,如图1所示,该方法包括:

101、功能单元获取目标待检测硬件对应的状态代码,并根据状态代码生成目标待检测硬件对应的心跳状态码。

其中,目标待检测硬件为自动驾驶系统中需要进行故障检测的多个待检测硬件中的任意一个,多个待检测硬件可以但不限于为:激光雷达、车载摄像机、轮速传感器等等;其中,在待检测硬件及其对应的待检测软件运行的过程中,待检测硬件会产生用于表征待检测硬件及其对应的待检测软件的运行状态的状态代码,例如,当待检测硬件及其对应的待检测软件均处于正常运行状态时,该待检测硬件产生状态代码a,当待检测硬件处于异常运行状态,而该待检测硬件对应的待检测软件处于正常运行状态时,该待检测硬件产生状态代码b等等;其中,待检测硬件对应的待检测软件可以但不限于为:与该待检测硬件相关联的驱动程序、通信程序等等;其中,预先虚拟出多个功能单元以及一个中心处理单元,并分别为每个待检测硬件配置一个功能单元,功能单元用于获取其对应的待检测硬件的状态代码,并根据获取到的状态代码生成该待检测硬件对应的心跳状态码,以及在将该心跳状态码添加至心跳信息后,将该心跳信息发送至中心处理单元,中心处理单元用于接收多个功能单元发送的心跳信息,并根据每个心跳信息中携带的心跳状态码确定每个待检测硬件和每个待检测硬件对应的待检测软件是否发生故障,以及在确定某个待检测硬件或某个待检测软件发生故障时,进行报警。

在本发明实施例中,目标待检测硬件对应的功能单元在获取得到目标待检测硬件对应的状态代码(即在目标待检测硬件及其对应的目标待检测软件运行的过程中,目标待检测硬件产生的、用于表征目标待检测硬件及目标待检测硬件对应的目标待检测软件的运行状态的状态代码)后,根据该状态代码生成目标待检测硬件对应的心跳状态码。

具体的,在本步骤中,目标待检测硬件对应的状态代码可以为正常代码或报错代码,当目标待检测硬件对应的功能单元获取得到的状态代码为正常代码时,该功能单元根据该正常代码能够生成一个取值为零值的心跳状态码;当目标待检测硬件对应的功能单元获取得到的状态代码为报错代码时,该功能单元根据该报错代码能够生成一个取值为非零值的心跳状态码,但不限于此。

102、功能单元将心跳状态码添加至心跳信息中,并将心跳信息发送至中心处理单元。

在本发明实施例中,目标待检测硬件对应的功能单元在根据目标待检测硬件对应的状态代码,生成目标待检测硬件对应的心跳状态码后,将该心跳状态码添加至心跳信息中,并将该心跳信息发送至中心处理单元,以便后续中心处理单元在接收到该心跳信息后,根据该心跳信息中携带的心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障。

103、中心处理单元根据心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障。

在本发明实施例中,中心处理单元在接收到目标待检测硬件对应的功能单元发送的心跳信息后,根据该心跳信息中携带的心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障。

具体的,在本步骤中,由于,当目标待检测硬件对应的功能单元获取得到的状态代码为正常代码时,该功能单元会根据该正常代码生成一个取值为零值的心跳状态码,而当目标待检测硬件对应的功能单元获取得到的状态代码为报错代码时,该功能单元会根据该报错代码生成一个取值为非零值的心跳状态码,因此,中心处理单元在接收到目标待检测硬件对应的功能单元发送的心跳信息后,当该心跳信息中携带的心跳状态码取值为零值时,中心处理单元便可判定目标待检测硬件及目标待检测硬件对应的目标待检测软件未发生故障;当该心跳信息中携带的心跳状态码取值为非零值时,中心处理单元便可判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障,但不限于此。

104、若是,则中心处理单元进行报警。

在本发明实施例中,当中心处理单元判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障时,中心处理单元便会进行报警,从而提醒驾驶人员汽车发生故障。

本发明实施例提供的一种故障检测方法,通过为目标待检测硬件预先虚拟并配置的功能单元获取目标待检测硬件对应的状态代码,并根据该状态代码生成目标待检测硬件对应的心跳状态码,以及在将该心跳代码添加至心跳信息后,将该心跳信息发送至预先虚拟的中心处理单元中,以便中心处理单元在接收到该心跳信息后,根据该心跳信息中携带的心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障,并在确定目标待检测硬件及目标待检测软件发生故障时,进行报警。本发明实施例能够在汽车自动驾驶的过程中,通过预先虚拟的功能单元和中心处理单元,实时检测组成自动驾驶系统的目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障,并在检测出目标待检测硬件及目标待检测软件发生故障时,进行报警,从而能够及时提醒驾驶人员汽车发生故障,使驾驶人员手动驾驶汽车,进而能够保障驾驶人员的行车安全。

以下为了更加详细地说明,本发明实施例提供了另一种故障检测方法,特别是功能单元根据目标待检测硬件对应的状态代码生成目标待检测硬件对应的心跳状态码的具体方法以及中心处理单元根据目标待检测硬件对应的心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障的具体方法,具体如图2所示,该方法包括:

201、功能单元获取目标待检测硬件对应的状态代码。

其中,关于步骤201、功能单元获取目标待检测硬件对应的状态代码,可以参考图1对应部分的描述,本发明实施例此处将不再赘述。

202、功能单元根据目标待检测硬件对应的状态代码生成目标待检测硬件对应的心跳状态码。

其中,功能单元获取得到的、目标待检测硬件对应的状态代码为正常代码或报错代码。

在本发明实施例中,目标待检测硬件对应的功能单元在获取得到目标待检测硬件对应的状态代码后,根据该状态代码生成目标待检测硬件对应的心跳状态码。以下将对功能单元如何根据目标待检测硬件对应的状态代码生成目标待检测硬件对应的心跳状态码进行详细说明。

1、当目标待检测硬件对应的状态代码为正常代码时,功能单元根据正常代码生成目标待检测硬件对应的第一心跳状态码。

其中,第一心跳状态码为零值。

在本发明实施例中,当目标待检测硬件对应的功能单元获取得到的状态代码为正常代码时,该功能单元根据该正常代码能够生成一个取值为零值的心跳状态码,即第一心跳状态码。

2、当目标待检测硬件对应的状态代码为报错代码时,功能单元根据报错代码生成目标待检测硬件对应的第二心跳状态码。

其中,第二心跳状态码为非零值。

在本发明实施例中,当目标待检测硬件对应的功能单元获取得到的状态代码为报错代码时,该功能单元根据该报错代码能够生成一个取值为非零值的心跳状态码,即第二心跳状态码。

需要进行说明的是,在实际应用过程中,目标待检测硬件处于异常运行状态和目标待检测硬件对应的目标待检测软件处于异常运行状态时,目标待检测硬件会产生不同的报错代码,并且,不同的目标待检测软件处于异常运行状态时,目标待检测硬件会产生不同的报错代码,因此,功能单元根据不同的报错代码可以生成不同的第二心跳状态码,例如,当目标待检测硬件处于异常运行状态,而目标待检测硬件对应的目标待检测软件处于正常运行状态时,目标待检测硬件会产生报错代码a,目标待检测硬件对应的功能单元在获取得到报错代码a后,根据报错代码a能够生成一个取值为1的第二心跳状态码;当目标待检测硬件对应的驱动程序处于异常运行状态,而目标待检测硬件和目标待检测硬件对应的其他目标待检测软件处于正常运行状态时,目标待检测硬件会产生报错代码b,目标待检测硬件对应的功能单元在获取得到报错代码b后,根据报错代码b能够生成一个取值为2的第二心跳状态码;当目标待检测硬件对应的通信程序处于异常运行状态,而目标待检测硬件和目标待检测硬件对应的其他目标待检测软件处于正常运行状态时,目标待检测硬件会产生报错代码c,目标待检测硬件对应的功能单元在获取得到报错代码c后,根据报错代码c能够生成一个取值为3的第二心跳状态码等等,从而使得在后续步骤中,当中心处理单元根据取值为非零值的第二心跳状态码判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障时,还可以根据第二心跳状态码的具体取值判定具体是目标待检测硬件发生故障,还是目标待检测硬件对应的某个目标待检测软件发生故障。

203、功能单元将心跳状态码、第一逻辑时钟值以及目标待检测硬件对应的唯一标识符添加至心跳信息中,并将心跳信息发送至中心处理单元。

其中,第一逻辑时钟值为目标待检测硬件对应的功能单元的本地逻辑时钟的当前值;目标待检测硬件对应的唯一标识符添用于唯一标识目标待检测硬件。

在本发明实施例中,目标待检测硬件对应的功能单元在根据目标待检测硬件对应的状态代码,生成目标待检测硬件对应的心跳状态码后,将该心跳状态码、第一逻辑时钟值(即该功能单元的本地逻辑时钟的当前值)和目标待检测硬件对应的唯一标识符添加至心跳信息中,并将该心跳信息发送至中心处理单元,以便后续中心处理单元在接收到该心跳信息后,根据该第一逻辑时钟值判断该心跳信息是否为历史信息,并在判定该心跳信息并非为历史信息后,根据该心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障,以及在判定目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障后,根据判定结果、该唯一标识符以及该第一逻辑时钟值对本地设备状态表进行更新,其中,本地设备状态表中记录有自动驾驶系统中需要进行故障检测的每个待检测硬件对应的唯一标识符、每个待检测硬件对应的历史逻辑时钟值、每个待检测硬件的历史工作状态以及每个待检测硬件对应的待检测软件的历史工作状态。

204、中心处理单元根据目标待检测硬件对应的唯一标识符在本地设备状态表中查找目标待检测硬件对应的历史逻辑时钟值,并判断第一逻辑时钟值是否大于历史逻辑时钟值。

其中,目标待检测硬件对应的历史逻辑时钟值为:目标待检测硬件对应的功能单元上一次向中心处理单元发送的心跳信息中携带的逻辑时钟值。

在本发明实施例中,中心处理单元在接收到目标待检测硬件对应的功能单元发送的心跳信息后,根据该心跳信息中携带的唯一标识符在本地设备状态表中查找目标待检测硬件对应的历史逻辑时钟值,并判断该心跳信息中携带的第一逻辑时钟值是否大于该历史逻辑时钟值,从而判断该心跳信息是否为历史信息,进而可以避免中心处理单元对历史信息进行误处理的情况发生。

进一步的,在本发明实施例中,中心处理单元在接收到目标待检测硬件对应的功能单元发送的心跳信息后,中心处理单元可以向该功能单元发送携带有第二逻辑时钟值的心跳应答信息,以便该功能单元根据该第二逻辑时钟值对本地逻辑时钟进行更新,其中,第二逻辑时钟值为中心处理单元的本地逻辑时钟的当前值。

205a、若是,则中心处理单元根据心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障。

在本发明实施例中,中心处理单元在经过步骤204判定目标待检测硬件对应的功能单元发送的心跳信息并非为历史信息后,根据该心跳信息中携带的心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障。以下将对中心处理单元如何根据心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障进行详细说明。

1、当心跳状态码为第一心跳状态码时,中心处理单元判定目标待检测硬件及目标待检测软件未发生故障。

在本发明实施例中,由于,当目标待检测硬件对应的功能单元获取得到的状态代码为正常代码时,该功能单元会根据该正常代码生成一个取值为零值的心跳状态码(即第一心跳状态码),因此,中心处理单元在接收到该功能单元发送的心跳信息后,当该心跳信息中携带的心跳状态码为第一心跳状态码时,中心处理单元便可判定目标待检测硬件及目标待检测硬件对应的目标待检测软件未发生故障。

2、当心跳状态码为第二心跳状态码时,中心处理单元判定目标待检测硬件及目标待检测软件发生故障。

在本发明实施例中,由于,当目标待检测硬件对应的功能单元获取得到的状态代码为报错代码时,该功能单元会根据该报错代码生成一个取值为非零值的心跳状态码(即第二心跳状态码),因此,中心处理单元在接收到该功能单元发送的心跳信息后,当该心跳信息中携带的心跳状态码为第二心跳状态码时,中心处理单元便可判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障。

需要进行说明的是,在实际应用过程中,由于,目标待检测硬件处于异常运行状态和目标待检测硬件对应的目标待检测软件处于异常运行状态时,目标待检测硬件会产生不同的报错代码,并且,不同的目标待检测软件处于异常运行状态时,目标待检测硬件会产生不同的报错代码,而功能单元根据不同的报错代码可以生成不同的第二心跳状态码,因此,当中心处理单元根据取值为非零值的第二心跳状态码判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障时,还可以根据第二心跳状态码的具体取值判定具体是目标待检测硬件发生故障,还是目标待检测硬件对应的某个目标待检测软件发生故障。

进一步的,在本发明实施例中,中心处理单元在根据心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障后,还可以根据判定结果、目标待检测硬件对应的唯一标识符、第一逻辑时钟值对本地设备状态表进行更新,具体过程为:(1)当中心处理单元判定目标待检测硬件及目标待检测硬件对应的目标待检测软件未发生故障时,中心处理单元确定目标待检测硬件及目标待检测软件的当前工作状态为正常状态,并根据目标待检测硬件对应的唯一标识符、第一逻辑时钟值以及正常状态对本地设备状态表进行更新,即根据该唯一标识符在本地设备状态表查找目标待检测硬件对应的历史逻辑时钟值、目标待检测硬件对应的历史工作状态以及目标待检测软件对应的历史工作状态,并使用第一逻辑时钟值更新目标待检测硬件对应的历史逻辑时钟值以及使用正常状态更新目标待检测硬件对应的历史工作状态和目标待检测软件对应的历史工作状态,其中,目标待检测硬件对应的历史工作状态和目标待检测软件对应的历史工作状态为:中心处理单元上一次接收到目标待检测硬件对应的功能单元发送的心跳信息,并根据该心跳信息中携带的心跳状态码判断目标待检测硬件及目标待检测软件是否发生故障后,根据判定结果确定的目标待检测硬件对应的工作状态和目标待检测软件对应的工作状态;当中心处理单元判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障时,中心处理单元确定目标待检测硬件及目标待检测软件的当前工作状态为第一异常状态,并根据目标待检测硬件对应的唯一标识符、第一逻辑时钟值以及第一异常状态对本地设备状态表进行更新,即根据该唯一标识符在本地设备状态表查找目标待检测硬件对应的历史逻辑时钟值、目标待检测硬件对应的历史工作状态以及目标待检测软件对应的历史工作状态,并使用第一逻辑时钟值更新目标待检测硬件对应的历史逻辑时钟值以及使用第一异常状态更新目标待检测硬件对应的历史工作状态和目标待检测软件对应的历史工作状态。需要进行说明的是,在实际应用过程中,当中心处理单元根据第二心跳状态码的具体取值判定具体是目标待检测硬件发生故障,还是目标待检测硬件对应的某个目标待检测软件发生故障后,中心处理单元可以根据判定结果确定是目标待检测硬件的当前工作状态为第一异常状态,还是目标待检测硬件对应的某个目标待检测软件的当前工作状态为第一异常状态,从而在根据目标待检测硬件对应的唯一标识符、第一逻辑时钟值、目标待检测硬件的当前工作状态以及每个目标待检测软件的当前工作状态对本地设备状态表进行更新后,能够使本地设备状态表中记录的信息更为准确,进而使得维修人员在对发生故障的汽车进行维修时,根据本地设备状态表中记录的信息便可直接获知具体是哪个硬件或哪个硬件对应的软件发生故障。

进一步的,在本发明实施例中,中心处理单元在判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障后,或在判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障,并且判定其他待检测硬件及其他待检测硬件对应的待检测软件发生故障之后,中心处理单元可以根据发生故障的待检测硬件及待检测软件的数量和类型,对汽车当前发生的故障进行定级,并在进行报警的同时,将定级结果进行输出显示,以便提醒驾驶人员汽车当前发生故障的严重性。

206a、若是,则中心处理单元进行报警。

其中,关于步骤206a、若是,则中心处理单元进行报警,可以参考图1对应部分的描述,本发明实施例此处将不再赘述。

对于本发明实施例,与步骤205a并列的步骤205b、若否,则中心处理单元丢弃心跳信息。

在本发明实施例中,中心处理单元在经过步骤204判定目标待检测硬件对应的功能单元发送的心跳信息为历史信息后,便可丢弃该心跳信息,从而可以避免中心处理单元对历史信息进行误处理的情况发生。

进一步的,在本发明实施例中,当中心处理单元超过预设时间未接收到目标待检测硬件对应的功能单元发送的心跳信息时,中心处理单元判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障,并确定目标待检测硬件及目标待检测软件的当前工作状态为第二异常状态,此时,中心处理单元可以根据第二异常状态对本地设备状态表进行更新(即根据目标待检测硬件对应的唯一标识符在本地设备状态表查找目标待检测硬件对应的历史工作状态以及目标待检测软件对应的历史工作状态,并使用第二异常状态更新目标待检测硬件对应的历史工作状态和目标待检测软件对应的历史工作状态),并进行报警。

为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的故障检测方法。

为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的故障检测方法。

进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种故障检测装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于实时检测目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障,具体如图3所示,该装置包括:

获取单元301,用于功能单元获取目标待检测硬件对应的状态代码;

生成单元302,用于所述功能单元根据所述状态代码生成所述目标待检测硬件对应的心跳状态码;

第一添加单元303,用于所述功能单元将所述心跳状态码添加至心跳信息中;

第一发送单元304,用于所述功能单元将所述心跳信息发送至中心处理单元;

第一判断单元305,用于所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障;

报警单元306,用于当所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件发生故障时,所述中心处理单元进行报警。

进一步的,如图4所示,所述目标待检测硬件对应的状态代码为正常代码或报错代码;生成单元302包括:

第一生成模块3021,用于当所述目标待检测硬件对应的状态代码为所述正常代码时,所述功能单元根据所述正常代码生成所述目标待检测硬件对应的第一心跳状态码,其中,所述第一心跳状态码为零值;

第二生成模块3022,用于当所述目标待检测硬件对应的状态代码为所述报错代码时,所述功能单元根据所述报错代码生成所述目标待检测硬件对应的第二心跳状态码,其中,所述第二心跳状态码为非零值。

进一步的,如图4所示,第一判断单元305包括:

第一判定模块3051,用于当所述心跳状态码为所述第一心跳状态码时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件未发生故障;

第二判定模块3052,用于当所述心跳状态码为所述第二心跳状态码时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障。

进一步的,如图4所示,该装置还包括:

第二添加单元307,用于在所述功能单元将所述心跳状态码添加至心跳信息中之后,所述功能单元将第一逻辑时钟值以及所述目标待检测硬件对应的唯一标识符添加至所述心跳信息中,其中,所述第一逻辑时钟值为所述功能单元的本地逻辑时钟的当前值。

进一步的,如图4所示,该装置还包括:

第一更新单元308,用于在所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障之后,当所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件未发生故障时,所述中心处理单元确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为正常状态,并根据所述唯一标识符、所述第一逻辑时钟值以及所述正常状态对本地设备状态表进行更新,其中,所述本地设备状态表中记录有每个待检测硬件对应的唯一标识符、每个所述待检测硬件对应的历史逻辑时钟值、每个所述待检测硬件的历史工作状态以及每个所述待检测硬件对应的待检测软件的历史工作状态;

第二更新单元309,用于当所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障时,所述中心处理单元确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为第一异常状态,并根据所述唯一标识符、所述第一逻辑时钟值以及所述第一异常状态对所述本地设备状态表进行更新。

进一步的,如图4所示,该装置还包括:

第二判断单元310,用于在所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障之前,所述中心处理单元根据所述唯一标识符在所述本地设备状态表中查找所述目标待检测硬件对应的历史逻辑时钟值,并判断所述第一逻辑时钟值是否大于所述历史逻辑时钟值;

第一判断单元305,具体用于若所述第一逻辑时钟值大于所述历史逻辑时钟值,则所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障;

丢弃单元311,用于若所述第一逻辑时钟值小于或等于所述历史逻辑时钟值,则所述中心处理单元丢弃所述心跳信息。

进一步的,如图4所示,该装置还包括:

确定单元312,用于当所述中心处理单元超过预设时间未接收到所述功能单元发送的心跳信息时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障,并确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为第二异常状态;

第三更新单元313,用于所述中心处理单元根据所述第二异常状态对所述本地设备状态表进行更新,并进行报警。

进一步的,如图4所示,该装置还包括:

第二发送单元314,用于在所述功能单元将所述心跳信息发送至中心处理单元之后,所述中心处理单元向所述功能单元发送携带有第二逻辑时钟值的心跳应答信息,以便所述功能单元根据所述第二逻辑时钟值对本地逻辑时钟进行更新,其中,所述第二逻辑时钟值为所述中心处理单元的本地逻辑时钟的当前值。

本发明实施例提供的一种故障检测方法及装置,通过为目标待检测硬件预先虚拟并配置的功能单元获取目标待检测硬件对应的状态代码,并根据该状态代码生成目标待检测硬件对应的心跳状态码,以及在将该心跳代码添加至心跳信息后,将该心跳信息发送至预先虚拟的中心处理单元中,以便中心处理单元在接收到该心跳信息后,根据该心跳信息中携带的心跳状态码判断目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障,并在确定目标待检测硬件及目标待检测软件发生故障时,进行报警。本发明实施例能够在汽车自动驾驶的过程中,通过预先虚拟的功能单元和中心处理单元,实时检测组成自动驾驶系统的目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障,并在检测出目标待检测硬件及目标待检测软件发生故障时,进行报警,从而能够及时提醒驾驶人员汽车发生故障,使驾驶人员手动驾驶汽车,进而能够保障驾驶人员的行车安全;同时,本发明实施例还能够在中心处理单元超过预设时间未接收到目标待检测硬件对应的功能单元发送的心跳信息时,判定目标待检测硬件及目标待检测硬件对应的目标待检测软件发生故障,并进行报警,从而可以避免由于目标待检测硬件或目标待检测软件发生故障,使功能单元无法获取得到目标待检测硬件对应的状态代码,而导致中心处理单元无法判定目标待检测硬件及目标待检测软件发生故障的情况发生,进而进一步提高了实时检测目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障的准确率。

所述故障检测装置包括处理器和存储器,上述获取单元、生成单元、第一添加单元、第一发送单元、第一判断单元和报警单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实时检测目标待检测硬件及目标待检测硬件对应的目标待检测软件是否发生故障。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现以上实施例中任一项所述的故障检测方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以上实施例中任一项所述的故障检测方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:

功能单元获取目标待检测硬件对应的状态代码,并根据所述状态代码生成所述目标待检测硬件对应的心跳状态码;

所述功能单元将所述心跳状态码添加至心跳信息中,并将所述心跳信息发送至中心处理单元;

所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障;

若是,则所述中心处理单元进行报警。

进一步的,所述目标待检测硬件对应的状态代码为正常代码或报错代码;所述功能单元根据所述状态代码生成所述目标待检测硬件对应的心跳状态码,包括:

当所述目标待检测硬件对应的状态代码为所述正常代码时,所述功能单元根据所述正常代码生成所述目标待检测硬件对应的第一心跳状态码,其中,所述第一心跳状态码为零值;

当所述目标待检测硬件对应的状态代码为所述报错代码时,所述功能单元根据所述报错代码生成所述目标待检测硬件对应的第二心跳状态码,其中,所述第二心跳状态码为非零值。

进一步的,所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障,包括:

当所述心跳状态码为所述第一心跳状态码时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件未发生故障;

当所述心跳状态码为所述第二心跳状态码时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障。

进一步的,在所述功能单元将所述心跳状态码添加至心跳信息中之后,所述方法还包括:

所述功能单元将第一逻辑时钟值以及所述目标待检测硬件对应的唯一标识符添加至所述心跳信息中,其中,所述第一逻辑时钟值为所述功能单元的本地逻辑时钟的当前值。

进一步的,在所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障之后,所述方法还包括:

当所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件未发生故障时,所述中心处理单元确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为正常状态,并根据所述唯一标识符、所述第一逻辑时钟值以及所述正常状态对本地设备状态表进行更新,其中,所述本地设备状态表中记录有每个待检测硬件对应的唯一标识符、每个所述待检测硬件对应的历史逻辑时钟值、每个所述待检测硬件的历史工作状态以及每个所述待检测硬件对应的待检测软件的历史工作状态;

当所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障时,所述中心处理单元确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为第一异常状态,并根据所述唯一标识符、所述第一逻辑时钟值以及所述第一异常状态对所述本地设备状态表进行更新。

进一步的,在所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障之前,所述方法还包括:

所述中心处理单元根据所述唯一标识符在所述本地设备状态表中查找所述目标待检测硬件对应的历史逻辑时钟值,并判断所述第一逻辑时钟值是否大于所述历史逻辑时钟值;

若是,则进入所述中心处理单元根据所述心跳状态码判断所述待检测硬件及所述待检测硬件对应的待检测软件是否发生故障的步骤;

若否,则所述中心处理单元丢弃所述心跳信息。

进一步的,所述方法还包括:

当所述中心处理单元超过预设时间未接收到所述功能单元发送的心跳信息时,所述中心处理单元判定所述目标待检测硬件及所述目标待检测软件发生故障,并确定所述目标待检测硬件及所述目标待检测软件的当前工作状态为第二异常状态;

所述中心处理单元根据所述第二异常状态对所述本地设备状态表进行更新,并进行报警。

进一步的,在所述功能单元将所述心跳信息发送至中心处理单元之后,所述方法还包括:

所述中心处理单元向所述功能单元发送携带有第二逻辑时钟值的心跳应答信息,以便所述功能单元根据所述第二逻辑时钟值对本地逻辑时钟进行更新,其中,所述第二逻辑时钟值为所述中心处理单元的本地逻辑时钟的当前值。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:功能单元获取目标待检测硬件对应的状态代码,并根据所述状态代码生成所述目标待检测硬件对应的心跳状态码;所述功能单元将所述心跳状态码添加至心跳信息中,并将所述心跳信息发送至中心处理单元;所述中心处理单元根据所述心跳状态码判断所述目标待检测硬件及所述目标待检测硬件对应的目标待检测软件是否发生故障;若是,则所述中心处理单元进行报警。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1