一种故障恢复方法、装置及电子设备与流程

文档序号:33403383发布日期:2023-03-08 20:21阅读:54来源:国知局
一种故障恢复方法、装置及电子设备与流程

1.本技术涉及嵌入式技术领域,特别涉及一种故障恢复方法、装置及电子设备。


背景技术:

2.对于嵌入式系统而言,传统故障处理方案有以下两种,一是采用中央处理器(central processing unit,cpu)自带软件的看门狗功能进行系统重置。但是当内核崩溃导致看门狗死机时,会导致系统无法重置。
3.二是采用外置硬件看门狗在故障时对嵌入式系统进行重置的方案,此种方案能解决上述软件看门狗存在的问题。但是嵌入式系统一般会在文件系统启动之后再启动硬件看门狗,这就使得外置硬件看门狗无法在系统启动的固件引导阶段和内核加载阶段对系统进行监控。并且这种外置硬件看门狗一般只能复位cpu,无法对其他外设模块进行断电恢复。


技术实现要素:

4.本技术实施例提供了一种故障恢复方法、装置及电子设备,用以解决现有技术中存在的无法对外设模块进行断电恢复的问题。
5.第一方面,本技术实施例提供了一种故障恢复方法,应用于嵌入式设备,所述嵌入式设备包括第一控制单元、第二控制单元、电源控制单元以及m1个第一外设模块,包括:所述第一控制单元监测所述第二控制单元通过m1个检测通道发送的心跳包;所述m1个检测通道与所述第二控制单元负责监测故障状态的m1个第一外设模块一一对应;所述第一控制单元在预设时间内未接收到所述第二控制单元通过第一检测通道发送的心跳包,确定所述第一检测通道对应的第一外设模块发生故障;所述第一检测通道是所述m1个检测通道的任意一个;所述第一控制单元向所述电源控制单元发送第一故障控制指令;所述第一故障控制指令用于使所述电源控制单元对所述第一检测通道对应的第一外设模块进行断电恢复。
6.基于上述方案,第一控制单元可以通过监测是否接收到通过m1个检测通道发送的心跳包来确定,m1个第一外设模块中是否存在发生故障的外设模块。并且可以通过发送第一故障控制指令来对发生故障的第一外设模块进行断电恢复,从而解决了现有技术中存在的无法对外设模块进行断电恢复的问题。
7.一种可能的实现方式中,所述第一控制单元为微控制单元(microcontroller unit,mcu),所述第二控制单元为中央处理单元(central processing unit,cpu),或者所述第一控制单元为cpu,所述第二控制单元为mcu。
8.基于上述方案,嵌入式设备中的cpu可以通过检测各个检测通道的心跳包来确定mcu负责监控故障状态的外设模块是否发生故障。mcu也可以通过检测各个检测通道的心跳包来确定cpu负责监控故障状态的外设模块是否发生故障。从而监测嵌入式设备中的各个外设模块是否发生故障,并对故障的外设模块进行断电恢复。
9.一种可能的实现方式中,所述第一故障控制指令携带所述第一检测通道对应的第一外设模块的上电延时时间;所述上电延时时间小于或者等于所述第一检测通道对应的第
一外设模块所支持的最大断电时长,所述上电延时时间用于指示断电时间与重新上电时间之间的间隔时间。
10.基于上述方案,由于各个外设模块支持的最大断电时间并不相同,因此可以通过第一故障控制指令中携带上电延时时间,使得电源管理单元对第一外设模块进行断电恢复在不影响第一外设模块正常使用下进行,提高了嵌入式设备的稳定性。
11.一种可能的实现方式中,所述嵌入式设备还包括m2个第二外设模块,所述方法还包括:所述第一控制单元监测所述m2个第二外设模块的故障情况;检测到所述m2个第二外设模块中任一第二外设模块未发生故障时,通过所述任一第二外设模块对应的第二检测通道向所述第二控制单元发送心跳包。
12.基于上述方案,由于嵌入式设备中的外设模块可能包括第一控制单元负责监控故障状态的,也可能包括第二控制单元负责监控故障状态的。因此为了确定第一控制单元负责监控故障状态的外设模块的故障情况,还可以在第二外设模块未发生故障时通过各个第二外设模块对应的检测通道发送心跳包,使得第二控制单元可以在第二外设模块发生故障时对第二外设模块进行断电恢复。从而监测嵌入式设备中的各个外设模块是否发生故障,并对故障的外设模块进行断电恢复。
13.一种可能的实现方式中,确定所述第一检测通道对应的第一外设模块发生故障之后,所述方法还包括:在所述第一控制单元向电源控制单元发送第一故障控制指令的次数大于或等于次数阈值时,所述第一控制单元向所述电源控制单元发送第二故障控制指令;所述第二故障控制指令用于使所述电源控制单元对所述嵌入式设备进行断电恢复。
14.基于上述方案,在对嵌入式设备中的某一外设模块或某些外设模块进行多次断电恢复后,若某一外设模块仍存在故障情况,则可以对整个嵌入式设备进行断电恢复。从而提高嵌入式设备的稳定性。
15.一种可能的实现方式中,所述第一控制单元监测所述第二控制单元通过m1个检测通道发送的心跳包之前,还包括:确定所述嵌入式设备处于启动过程的文件系统运行阶段。
16.基于上述方案,由于在固件引导阶段和内核加载阶段时,嵌入式设备中的外设模块还未启动,因此在第一控制单元监测第二控制单元通过m1个检测通道发送的心跳包之前,还可以确定嵌入式设备处于启动过程的文件系统运行阶段。
17.一种可能的实现方式中,所述嵌入式设备处于启动过程的固件引导阶段或内核加载阶段时,所述方法还包括:所述第一控制单元监测所述第二控制单元通过第三检测通道发送的心跳包;所述第三检测通道为用于监测所述第二控制单元是否故障的检测通道。
18.基于上述方案,通过在固件引导阶段和内核加载阶段时,采用第三检测通道对第二控制单元的故障状态进行监测,可以避免由于第二控制单元发生故障,导致嵌入式设备崩溃无法启动的情况发生。
19.一种可能的实现方式中,所述嵌入式设备处于启动过程的固件引导阶段或内核加载阶段时,所述方法还包括:在所述第一控制单元未发生故障时,通过第四检测通道向所述第二控制单元发送心跳包。
20.基于上述方案,通过在固件引导阶段和内核加载阶段时,采用第四检测通道对第一控制单元的故障状态进行监测,可以避免由于第一控制单元发生故障,导致嵌入式设备崩溃无法启动的情况发生。
21.第二方面,本技术实施例提供了一种故障恢复装置,应用于嵌入式设备的第一控制单元,所述嵌入式设备还包括第二控制单元、电源控制单元以及m1个第一外设模块,所述装置包括:处理单元,用于监测所述第二控制单元通过m1个检测通道发送的心跳包;所述m1个检测通道与所述第二控制单元负责监测故障状态的m1个第一外设模块一一对应;所述处理单元,还用于在预设时间内未接收到所述第二控制单元通过第一检测通道发送的心跳包,确定所述第一检测通道对应的第一外设模块发生故障;所述第一检测通道是所述至少一个检测通道的任意一个;通信单元,用于向所述电源控制单元发送第一故障控制指令;所述第一故障控制指令用于使所述电源控制单元对所述第一检测通道对应的第一外设模块进行断电恢复。
22.一种可能的实现方式中,所述第一控制单元为微控制单元mcu,所述第二控制单元为中央处理单元cpu,或者所述第一控制单元为cpu,所述第二控制单元为mcu。
23.一种可能的实现方式中,所述第一故障控制指令携带所述第一检测通道对应的第一外设模块的上电延时时间;所述上电延时时间小于或者等于所述第一检测通道对应的第一外设模块所支持的最大断电时长,所述上电延时时间用于指示断电时间与重新上电时间之间的间隔时间。
24.一种可能的实现方式中,所述嵌入式设备还包括m2个第二外设模块,所述处理单元,还用于监测所述m2个第二外设模块的故障情况;检测到所述m2个第二外设模块中任一第二外设模块未发生故障时,所述通信单元用于通过所述任一第二外设模块对应的第二检测通道向所述第二控制单元发送心跳包。
25.一种可能的实现方式中,所述处理单元确定所述第一检测通道对应的第一外设模块发生故障之后,在所述第一控制单元向电源控制单元发送第一故障控制指令的次数大于或等于次数阈值时,所述通信单元,还用于向所述电源控制单元发送第二故障控制指令;所述第二故障控制指令用于使所述电源控制单元对所述嵌入式设备进行断电恢复。
26.一种可能的实现方式中,所述处理单元监测所述第二控制单元通过m1个检测通道发送的心跳包之前,所述处理单元,还用于确定所述嵌入式设备处于启动过程的文件系统运行阶段。
27.一种可能的实现方式中,所述嵌入式设备处于启动过程的固件引导阶段或内核加载阶段时,所述处理单元,还用于监测所述第二控制单元通过第三检测通道发送的心跳包;所述第三检测通道为用于监测所述第二控制单元是否故障的检测通道。
28.一种可能的实现方式中,所述嵌入式设备处于启动过程的固件引导阶段或内核加载阶段时,在所述处理单元确定所述第一控制单元未发生故障时,所述通信单元,还用于通过第四检测通道向所述第二控制单元发送心跳包。
29.第三方面,本技术实施例提供了一种电子设备,包括:
30.存储器,用于存储计算机指令;
31.处理器,与所述存储器连接,用于执行所述存储器中的计算机指令,且在执行所述计算机指令时实现如第一方面中任一项所述的方法。
32.第四方面,本技术实施例提供了一种计算机可读存储介质,包括:
33.所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面中任一项所述的方法。
34.上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
35.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例。
36.图1为本技术实施例提供的故障恢复方法应用的系统结构示意图之一;
37.图2为本技术实施例提供的故障恢复方法应用的系统结构示意图之一;
38.图3为本技术实施例提供的故障恢复方法应用的系统结构示意图之一;
39.图4为本技术实施例提供的故障恢复方法应用的系统结构示意图之一;
40.图5为本技术实施例提供的故障恢复方法应用的系统结构示意图之一;
41.图6为本技术实施例提供的故障恢复方法应用的系统结构示意图之一;
42.图7为本技术实施例提供的一种故障恢复方法的示例性流程图之一;
43.图8为本技术实施例提供的检测通道示意图之一;
44.图9为第一故障控制指令确定方法的流程图之一;
45.图10为第一故障控制指令确定方法的流程图之一;
46.图11为本技术实施例提供的检测通道示意图之一;
47.图12为本技术实施例提供的第三检测通道和第四检测通道示意图;
48.图13为本技术实施例提供的不同启动阶段的故障检测策略示意图;
49.图14a为本技术实施例提供的一种故障恢复方法的示例性流程图之一;
50.图14b为本技术实施例提供的一种故障恢复方法的示例性流程图之一;
51.图14c为本技术实施例提供的一种故障恢复方法的示例性流程图之一;
52.图15为本技术实施例提供的一种故障恢复方法的示例性流程图之一;
53.图16为本技术实施例提供的一种故障恢复装置示意图;
54.图17为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
55.为了便于理解本技术实施例提供的技术方案,下面介绍本技术实施例涉及的专业术语。
56.(1)心跳包,就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。
57.(2)固件引导阶段(bootloader),bootloader是在操作系统内核运行之前运行。主要完成第一阶段系统的引导和初始化工作,可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像基本输入输出系统(basic input output system,bios)那样的固件程序(注,有的嵌入式cpu也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由bootloader来完成。
58.(3)内核加载阶段,主要负责创建进程、绑定进程、划分内存、加载文件系统等基本工作。根据设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。当解压缩内核完成后,系统将解压后的内核放置在内存之中,并启动一系列的初始化函数来初始化各种设备,从而完成linux核心环境的建立。
59.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术技术方案的一部分实施例,而不是全部的实施例。基于本技术文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术技术方案保护的范围。
60.本技术实施例中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本技术实施例不做限制。
61.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。
62.嵌入式系统,在运行过程中经常出现系统崩溃死机的情况。对于这种情况,目前行业内一般采用系统自带的软件看门狗进行监控,但这种方式只能在内核未完全死机,软件看门狗运行正常的情况下起作用。在系统完全崩溃的情况下,软件看门狗也已经死机不会起作用。还有一种方案是采用外置硬件看门狗,此种方案能解决软件看门狗存在的问题,但是由于bootloader加载内核时间比较久,一般会在文件系统启动之后再启动硬件看门狗,这就使得外置硬件看门狗无法在系统启动的固件引导阶段和内核加载阶段对系统进行监控。并且这种外置硬件看门狗一般只能复位cpu,对外设模块无法直接断电。
63.有鉴于此,本技术实施例提供了一种故障恢复方法,该方法可以应用于包括第一控制单元、第二控制单元、电源控制单元以及m1个外设模块的嵌入式设备。该方法包括:第一控制单元可以监测第二控制单元通过m1个检测通道发送的心跳包,并且第一控制单元在预设时间内未接收到第二控制单元通过某一检测通道发送的心跳包时,可以确定该检测通道对应的外设模块发生故障。然后第一控制单元可以向电源控制单元发送故障控制指令,使电源控制单元对该外设模块进行断电恢复。通过上述方法可以对未接收到心跳包的检测通道对应的外设模块进行断电恢复,从而解决现有技术中无法对外设模块进行断电恢复的问题。
64.参阅图1-图6为本技术实施例提供的故障恢复方法应用的嵌入式设备结构示意图之一。如图1所示的嵌入式设备100可以包括第一控制单元101、第二控制单元102、电源管理单元103、通信接口104以及m1个第一外设模块。其中m1个第一外设模块可以包括第一外设模块1051、第一外设模块1052
……
以及第一外设模块105m1,m1为大于或等于1的整数。第二控制单元102可以用于监测m1个第一外设模块是否出现故障。并在各个第一外设模块未出现故障时,通过该第一外设模块对应的通信接口104向第一控制单元101发送心跳包。其中,
通信接口104可以是检测通道,并且可以包括m1个检测通道:检测通道1001、检测通道1002
……
检测通道100m1。其中,m1个检测通道与m1个第一外设模块一一对应。例如第一外设模块1051可以对应检测通道1001,第一外设模块1052可以对应检测通道1002,以此类推。第一控制单元101可以用于通过各个检测通道接收第二控制单元102发送的心跳包,并在预设时间内某个检测通道未接收到心跳包时,确定该检测通道对应的第一外设模块发生故障,向电源管理单元103发送故障控制指令。电源管理单元103可以用于根据故障控制指令对该检测通道对应的第一外设模块进行断电恢复。通信接口104可以用于各个模块之间进行信息交互,或者还可以用于嵌入式设备100与其它设备之间进行信息交互。通信接口104可以是收发器、电路、总线、模块、管脚或其它类型的通信接口。m1个第一外设模块可以是指由第二控制单元102负责监测故障状态的,用于使嵌入式设备可以实现各种功能的模块。例如,蓝牙模块、wifi模块、串口模块、i/o模块、继电器模块等。
65.举例来说,第一控制单元101在预设时间内未通过检测通道1001接收到心跳包,则可以确定第一外设模块1051发生了故障,使电源管理单元103可以对第一外设模块1051进行断电恢复。若在预设时间内未通过检测通道1002接收到心跳包,则可以确定第一外设模块1052发生了故障,则电源管理单元103可以对第一外设模块1052进行断电恢复,以此类推。
66.在一个示例中,图1中的嵌入式设备100可以为通信终端200,在这种场景下,通信终端200的结构可以如图2所示,可以包括mcu201,cpu202,电源管理单元103,通信接口104以及6个第一外设模块:蜂窝车联网(cellular vehicle to everything,c-v2x)通信模块2051、wifi模块2052、全球导航卫星系统(global navigation satellite system,gnss)定位模块2053、以太网通信模块2054、rs232串口通信模块2055和can通信模块2056。其中,mcu201可以为图1中的第一控制单元101,cpu202可以为图1中的第二控制单元102。c-v2x通信模块2051、wifi模块2052、gnss定位模块2053、以太网通信模块2054、rs232串口通信模块2055以及can通信模块2056分别用于使通信终端200实现c-v2x通信、wifi通信、gnss定位、以太网通信、rs232串口通信以及can通信功能。通信接口104可以包括6个检测通道:检测通道2001、检测通道2002
……
检测通道2006。其中,c-v2x通信模块2051可以对应检测通道2001,wifi模块2052可以对应检测通道2002,gnss定位模块2053可以对应检测通道2003,以太网通信模块2054可以对应检测通道2004,rs232串口通信模块2055可以对应检测通道2005,以及can通信模块2056可以对应检测通道2006。
67.举例来说,若在预设时间内未通过检测通道2003接收到心跳包,则可以确定gnss定位模块2053发生了故障,使电源管理单元103可以对gnss定位模块2053进行断电恢复。
68.应了解,mcu201、cpu202以及电源管理单元103的作用可以参见图1中的相关描述,在此不再赘述。
69.如图3所示的嵌入式设备100可以包括第一控制单元101、第二控制单元102、电源管理单元103、通信接口104以及m2个第二外设模块。其中,m2为大于或等于1的整数。m2个第二外设模块可以包括第二外设模块1061、第二外设模块1062
……
以及第二外设模块106m2。第一控制单元101可以用于监测m2个第二外设模块是否出现故障。并在各个第二外设模块未出现故障时,通过该第二外设模块对应的检测通道向第二控制单元102发送心跳包。第二控制单元102可以用于通过各个检测通道接收第一控制单元101发送的心跳包,并在预设时
间内某个检测通道未接收到心跳包时,确定该检测通道对应的第二外设模块发生故障,向电源管理单元103发送故障控制指令。电源管理单元103可以用于根据故障控制指令对该检测通道对应的第二外设模块进行断电恢复。通信接口104可以包括m2个检测通道:检测通道1011、检测通道1012
……
检测通道101m1。其中,m2个检测通道与m2个第二外设模块一一对应。例如第二外设模块1061可以对应检测通道1011,第二外设模块1062可以对应检测通道1012,以此类推。第二外设模块106可以是指由第一控制单元101负责监测故障状态的,用于使嵌入式设备可以实现各种功能的模块。例如,蓝牙模块、wifi模块、串口模块、i/o模块、继电器模块等。
70.举例来说,第二控制单元102在预设时间内未通过检测通道1011接收到心跳包,则可以确定第二外设模块1061发生了故障,则电源管理单元103可以对第二外设模块1061进行断电恢复。若在预设时间内未通过检测通道1012接收到心跳包,则可以确定第二外设模块1062发生了故障,则电源管理单元103可以对第二外设模块1062进行断电恢复,以此类推。
71.在一个示例中,图1中的嵌入式设备100可以为通信终端400,在这种场景下,通信终端400的结构可以如图4所示,可以包括mcu201,cpu202,电源管理单元103,通信接口104以及1个第二外设模块:串行外设接口(serial peripheral interface,spi)模块4061。其中,mcu201可以为图1中的第一控制单元101,cpu202可以为图1中的第二控制单元102。spi模块4061用于使通信终端400实现与其他设备的通信功能。通信接口104可以包括检测通道3001,与spi模块4061对应。若mcu201未通过检测通道4001接收到心跳包,则可以确定spi模块4061发生故障,使电源管理单元对spi模块4061进行断电恢复。应了解,mcu201、cpu202、电源管理单元103以及通信接口104的作用可以参见图1中的相关描述,在此不再赘述。
72.如图5所示的嵌入式设备100可以包括第二控制单元102、第一控制单元101、电源管理单元103、通信接口104、m1个第一外设模块和m2个第二外设模块。其中,m1个第一外设模块包括第一外设模块1051-第一外设模块105m1,m2个第二外设模块包括第二外设模块1061-第二外设模块106m2。这种场景下,嵌入式设备100的各个组成部分的作用可以参见图1和图3中的相关描述,在此不再赘述。
73.在一个示例中,图1中的嵌入式设备100可以为通信终端600,在这种场景下,通信终端600的结构可以如图6所示,可以包括mcu201,cpu202,电源管理单元103,通信接口104、6个第一外设模块和1个第二外设模块,其中,第一外设模块包括c-v2x通信模块2051、wifi模块2052、gnss定位模块2053、以太网通信模块2054、rs232串口通信模块2055以及can通信模块2056。第二外设模块包括spi模块4061。其中,通信终端600的各个组成部分的作用可以参见图2和图4中的相关描述,在此不再赘述。
74.需要说明的是,图1-图6所示的嵌入式设备的结构仅为示例性的,m1个第一外设模块也可以位于第二控制单元102中,m2个第一外设模块也可以位于第一控制单元101中,本技术对此不作限定。
75.参阅图7为本技术实施例提供的一种故障恢复方法的示例性流程图之一,该方法可以应用于图1、图3或图5所示的第一控制单元101中,可包括以下流程:
76.s701,第一控制单元监测第二控制单元通过m1个检测通道发送的心跳包。
77.一种可能的实现方式中,第一控制单元可以是mcu,第二控制单元可以是cpu。或者
第一控制单元是cpu,第二控制单元是mcu。
78.在一些实施例中,第二控制单元为cpu时,第一外设模块可以是蓝牙模块、wifi模块、串口模块等cpu负责监控故障状态的模块。第二控制单元为mcu时,第一外设模块可以是通讯模块、继电器模块等mcu负责监控故障状态的模块。应了解,cpu负责监控故障状态的模块以及mcu负责监控故障状态的模块还可以包括其他模块,本技术对此不作限定。
79.在一个示例中,m1个第一外设模块中各个第一外设模块的类型可以是不同的。例如,第二控制单元是cpu且m1等于3时,嵌入式设备100中包括的3个第一外设模块可以分别为:蓝牙模块、wifi模块、串口模块。
80.s702,第一控制单元在预设时间内未接收到第二控制单元通过第一检测通道发送的心跳包,确定第一检测通道对应的第一外设模块发生故障。
81.其中,第一检测通道是m1个检测通道的任意一个。
82.一种可能的实现方式中,m1个检测通道与m1个第一外设模块的对应关系可以是预存在嵌入式设备中的。第一控制单元在某一检测通道未接收到心跳包时,可以根据该对应关系确定该检测通道对应的第一外设模块发生故障。
83.另一种可能的实现方式中,嵌入式设备中可以预先存储检测通道与优先级的对应关系,其中优先级可以是根据第一外设模块的优先级设置的,例如实时性要求越高的第一外设模块,其优先级越高。示例性的,优先级可以用1-m1表示,优先级最高的可以表示为1,优先级最低的可以表示为m1。
84.在一个示例中,如图8所示,m1个检测通道可以是根据优先级从1-m1的顺序排列的,也即检测通道1可以对应优先级1,检测通道2可以对应优先级2,以此类推。然后可以对m1个第一外设模块中各个第一外设模块按照优先级从高到低的顺序进行排列,确定各个第一外设模块对应的检测通道。举例来说,某嵌入式设备中的第一外设模块可以包括蓝牙模块、串口模块和wifi模块。假设对第一外设模块按照实时性要求排序后,可以确定串口模块实时性要求最高,则可以将其优先级设为1。其次是wifi模块,则可以将其优先级设为2。最后是蓝牙模块,则可以将其优先级设为3。然后根据各个第一外设模块的优先级可以确定串口模块对应的检测通道为检测通道1,wifi模块对应的检测通道为检测通道2,蓝牙模块对应的检测通道为检测通道3。
85.在一些实施例中,第一控制单元可以通过根据预设时间为每个检测通道设置接收定时器的方式确定是否在预设时间内未收到心跳包。具体的,第一控制单元在某一检测通道的接收定时器已超时,但还未收到心跳包时,则可以确定在预设时间内未接收到第二控制单元通过该检测通道发送的心跳包。
86.s703,第一控制单元向电源控制单元发送第一故障控制指令。
87.其中,第一故障控制指令用于使电源控制单元对第一检测通道对应的第一外设模块进行断电恢复。
88.一种可能的实现方式中,第一故障控制指令可以携带第一检测通道对应的第一外设模块的上电延时时间。其中,上电延时时间小于或者等于第一检测通道对应的第一外设模块所支持的最大断电时长,上电延时时间用于指示断电时间与重新上电时间之间的间隔时间。
89.在一个示例中,每个第一外设模块的上电延时时间可以是预先根据第一外设模块
所支持的最大断电时长设置的。举例来说,第一故障控制指令用于指示对蓝牙模块进行断电恢复时,可以携带蓝牙模块的上电延时时间。其中,若蓝牙模块所支持的最大断电时长为50ms,则蓝牙模块的上电延时时间可以设置为小于或等于50ms的时长,如50ms,40ms,30ms等。假设蓝牙模块的上电延时时间为50ms,则对蓝牙模块进行断电恢复时,可以是在蓝牙模块断电后,计时50ms的后重新上电。
90.基于上述方案,第一控制单元可以通过监测是否接收到通过m1个检测通道发送的心跳包来确定,m1个第一外设模块中是否存在发生故障的外设模块。并且可以通过发送第一故障控制指令来对发生故障的第一外设模块进行断电恢复,从而解决了现有技术中存在的无法对外设模块进行断电恢复的问题。
91.下面,为了能够更加清晰地理解本技术实施例提出的方案,将结合具体地实施例对本技术提供的一种故障恢复方法进行介绍。
92.在一个示例中,每个第一外设模块的上电延时时间可以是根据预设的检测通道与上电延时时间之间的对应关系确定的。
93.在一些实施例中,m1个检测通道与m1个第一外设模块的对应关系预存在嵌入式设备中时,参见图9为本技术实施例提供的第一故障控制指令确定方法的流程图之一。包括以下流程:
94.s901,根据第一检测通道确定上电延时时间。
95.在第一控制单元确定第一检测通道对应的第一外设模块发生故障后,第一控制单元可以根据预先存储的预设的检测通道与上电延时时间之间的对应关系确定第一检测通道对应的上电延时时间。具体方法可以参见上述方法实施例中的相关描述,在此不再赘述。
96.s902,确定第一故障控制指令。
97.第一控制单元可以根据上电延时时间以及第一外设模块确定第一故障控制指令,以使电源管理单元在接收到该第一故障控制指令后可以对第一外设模块进行断电恢复。例如第一故障控制指令可以携带第一外设模块的名称或标识,以及第一外设模块的上电延时时间。
98.在另一些实施例中,嵌入式设备中预先存储m1个检测通道与优先级之间的对应关系时,参见图10为本技术实施例提供的第一故障控制指令确定方法的流程图之一。包括以下流程:
99.s1001,优先级判断。
100.在第一控制单元确定第一检测通道对应的第一外设模块发生故障后,第一控制单元可以根据预先存储的检测通道与优先级的对应关系确定第一检测通道对应的优先级。
101.s1002,根据优先级确定上电延时时间。
102.根据预先存储的优先级与上电延时时间的对应关系确定s1001确定的优先级对应的上电延时时间。
103.s1003,确定第一故障控制指令。
104.根据确定的上电延时时间以及第一外设模块确定第一故障控制指令,以使电源管理单元在接收到该第一故障控制指令后可以对第一外设模块进行断电恢复。例如第一故障控制指令可以携带该第一外设模块的名称或标识,以及该第一外设模块的上电延时时间。
105.为了提高嵌入式设备的稳定性,在对嵌入式设备中的某一外设模块或某些外设模
块进行多次断电恢复后,若某一外设模块仍存在故障情况,则可以对整个嵌入式设备进行断电恢复。
106.具体的,第一控制单元在确定第一检测通道对应的第一外设模块发生故障之后,还可以确定第一控制单元向电源控制单元发送第一故障控制指令的次数。在第一控制单元向电源控制单元发送第一故障控制指令的次数大于或等于次数阈值时,第一控制单元向电源控制单元发送第二故障控制指令。第二故障控制指令用于使电源控制单元对嵌入式设备进行断电恢复。应了解,次数阈值可以是根据实际情况或经验预设的,本技术对此不作限定。
107.在一个示例中,第一控制单元向电源控制单元发送第一故障控制指令的次数中,可以是均由同一第一外设模块发生故障导致的。举例来说,第一控制单元可以在预设时间内未收到检测通道2发送的心跳包时,确定检测通道2对应的蓝牙模块发生故障。然后通过向电源控制单元发送第一故障控制指令,对蓝牙模块进行断电恢复。断电恢复后,第一控制单元可能在预设时间内还是未收到检测通道2发送的心跳包,此时继续向电源控制单元发送第一故障控制指令,对蓝牙模块进行断电恢复。假设次数阈值为2,则在第一控制单元发送两次用于对蓝牙模块进行断电恢复的第一故障控制指令后,在下一次第一控制单元在预设时间内仍未收到检测通道2发送的心跳包时,可以向电源控制单元发送第二故障控制指令,对嵌入式设备进行断电恢复。
108.在另一个示例中,第一控制单元向电源控制单元发送第一故障控制指令的次数中,可以是由不同的第一外设模块发生故障导致的。举例来说,第一控制单元可以在预设时间内未收到检测通道2发送的心跳包时,确定检测通道2对应的蓝牙模块发生故障。然后通过向电源控制单元发送第一故障控制指令,对蓝牙模块进行断电恢复。断电恢复后,第一控制单元可能在预设时间内未收到检测通道3发送的心跳包,确定监测通道3对应的串口模块发生故障,然后可以向电源控制单元发送第一故障控制指令,对串口模块进行断电恢复。假设次数阈值为2,则在第一控制单元发送了一次用于对蓝牙模块进行断电恢复的第一故障控制指令,以及一次用于对串口模块进行断电恢复的第一故障控制指令后,在下一次第一控制单元在预设时间内未收到任一检测通道发送的心跳包时,均可以向电源控制单元发送第二故障控制指令,对嵌入式设备进行断电恢复。
109.为了避免频繁地对嵌入式设备进行断电恢复,第一控制单元向电源控制单元发送第二故障控制指令之前,还可以确定上一次第二故障控制指令的发送时间。并在当前时间距上一次第二故障控制指令的发送时间大于或等于时间阈值时,向电源控制单元发送第二故障控制指令。在当前时间距上一次第二故障控制指令的发送时间小于时间阈值时,不向电源控制单元发送第二故障控制指令。应了解,时间阈值可以是根据实际情况或经验进行设置的,本技术对此不作限定。
110.在一些实施例中,如图3-图6所示,嵌入式设备100中还可以包括m2个第二外设模块。第一控制单元可以监测m2个第二外设模块的故障情况,并在m2个第二外设模块中任一第二外设模块未发生故障时,通过该第二外设模块对应的第二检测通道向第二控制单元发送心跳包。举例来说,m2为2时,第一控制单元可以检测2个第二外设模块的故障情况,分别为第二外设模块a和第二外设模块b,且第二外设模块a对应检测通道1,第二外设模块b对应的检测通道2。则第一控制单元可以在第二外设模块a未发生故障时通过检测通道1向第二
控制单元发送心跳包,在第二外设模块b未发生故障时通过检测通道2向第二控制单元发送心跳包。
111.在一些实施例中,m2个第二外设模块中各个第二外设模块的类型可以是不同的。例如,第一控制单元为mcu且m2等于2时,嵌入式设备中包括的2个第二外设模块可以分别为:通讯模块和继电器模块。
112.一种可能的实现方式中,m2个检测通道与m2个第二外设模块的对应关系可以是预存在嵌入式设备中的。第一控制单元在某一检测通道未接收到心跳包时,可以根据该对应关系确定该检测通道对应的第一外设模块发生故障。需要说明的是m2个检测通道与上述m1个检测通道是不相同的检测通道。
113.在一些实施例中,对于m2个检测通道,嵌入式设备中也可以预先存储检测通道与优先级的对应关系,其中,优先级的具体设置方法可以参见如图7所示的方法实施例中的相关描述,在此不再赘述。
114.在一个示例中,如图11所示,m2个检测通道可以是根据优先级从1-m2的顺序排列的,也即检测通道1可以对应优先级1,检测通道2可以对应优先级2,以此类推。然后可以对m2个第二外设模块中各个第二外设模块按照优先级从高到低的顺序进行排列,确定各个第二外设模块对应的检测通道。根据各个第二外设模块的优先级确定检测通道的具体实施方式可以参见图7所示的方法实施例中的相关描述,在此不再赘述。
115.在一些实施例中,第一控制单元可以定时监测各个第二外设模块是否存在故障情况,也即在第二外设模块正常时,第一控制单元可以定时通过该第二外设模块对应的检测通道发送心跳包。举例来说,对于第二外设模块中的通讯模块,可以在通讯模块启动后设置每50ms监测一次是否存在故障情况,并在不存在故障情况时通过通讯模块对应的检测通道,向第二控制单元发送心跳包。
116.一种可能的实现方式中,为了监控第一控制单元和第二控制单元是否发生故障,第一控制单元还可以在第一控制单元未发生故障时通过第四检测通道向第二控制单元发送心跳包。与此同时,第一控制单元还可以监测第二控制单元通过第三检测通道发送的心跳包。其中,第三检测通道为用于监测第二控制单元是否故障的检测通道。
117.在一些实施例中,嵌入式设备中预先存储检测通道与优先级之间的对应关系时,如图12所示,第三检测通道和第四检测通道可以是优先级最高的检测通道,优先级可以设置为0。
118.参见图13为本技术实施例提供的不同启动阶段的故障检测策略示意图。嵌入式设备的启动过程可以大致分为三个阶段:固件引导阶段、内核加载阶段和文件系统运行阶段。如图13所示,第一控制单元在固件引导阶段和内核加载阶段可以通过单一检测通道进行故障检测。第一控制单元在文件系统运行阶段可以通过多检测通道进行故障检测。
119.具体的,由于在固件引导阶段和内核加载阶段时,嵌入式设备中的外设模块还未启动,因此在第一控制单元监测第二控制单元通过m1个检测通道发送的心跳包之前,还可以确定嵌入式设备处于启动过程的文件系统运行阶段。也就是说,在进入文件系统运行阶段时,第一控制单元可以开始监测第二控制单元通过m1个检测通道发送的心跳包。同样的,对于第二外设模块,在进入文件系统运行阶段时,第一控制单元可以开始监测所述m2个第二外设模块的故障情况,并在m2个第二外设模块未发生故障时,通过m2个第二外设模块各
自对应的检测通道向第二控制单元发送心跳包。
120.在固件引导阶段和内核加载阶段时,为了避免由于第二控制单元发生故障,导致嵌入式设备崩溃无法启动的情况发生,可以采用第三检测通道对第二控制单元的故障状态进行监测。具体的,第一控制单元可以在固件引导阶段和内核加载阶段时监测第二控制单元通过第三检测通道发送的心跳包,并在预设时间内未接收到心跳包时,用于对嵌入式设备进行断电恢复。
121.同样地,在固件引导阶段和内核加载阶段时,为了避免嵌入式设备由于第一控制单元发生故障,导致嵌入式设备崩溃无法启动的情况发送。在固件引导阶段和内核加载阶段时,第一控制单元可以在第一控制单元未发生故障时,通过第四检测通道定时向第二控制单元发送心跳包。以使第二控制单元在预设时间内未通过第四检测通道收到心跳包时,确定第一控制单元发生故障。
122.下面,为了能够更加清晰地理解本技术实施例提出的方案,将结合具体地实施例对本技术提供的一种故障恢复方法进行介绍。
123.参阅图14a-14c,为本技术实施例提供的一种故障恢复方法的示例性流程图之一,具体包括:
124.s1401,定时发送心跳包。
125.在嵌入式设备中的各个第二外设模块启动后,第一控制单元可以定时监测各个第二外设模块的故障状态,并在各个第二外设模块未发生故障时通过第二外设模块对应的检测通道发送心跳包。
126.s1402,监测心跳包。
127.第一控制单元可以监测通过各个第一外设模块对应的检测通道发送的心跳包。具体方法可以参见如图7所示的方法实施例中的相关描述,在此不再赘述。
128.需要说明的是,s1401和s1402并无固定的先后顺序,第一控制单元也可以先执行s1402再执行s1401。
129.s1403,第一检测通道的接收定时是否超时。
130.若超时,也即在预设时间内第一控制单元未通过第一检测通道接收到心跳包,则执行图14b中的s1404。若未超时,也即在预设时间内第一控制单元通过第一检测通道接收到了心跳包,则返回执行s1402。
131.s1404,确定第一外设模块故障。
132.第一控制单元可以在预设时间内第一控制单元未通过第一检测通道接收到心跳包时,确定第一外设模块故障。
133.s1405,确定是否对嵌入式设备进行断电恢复。
134.第一控制单元可以通过确定第三检测通道在预设时间内未接收到心跳包,或者发送第一故障控制指令的次数是否大于或等于次数阈值,或者上一次发送第二故障控制指令的发送时间距当前时间是否大于或等于时间阈值。具体判断方法可以参见上述方法实施例中的相关描述,在此不再赘述。
135.第一控制单元若确定对嵌入式设备进行断电恢复,则执行s1406。若确定不对嵌入式设备进行断电恢复,则执行图14c中的s1407。
136.s1406,向电源管理单元发送第二故障控制指令。
137.第一控制单元可以通过向电源管理单元发送第二故障控制指令,使电源管理单元对嵌入式设备进行断电恢复。
138.s1407,确定第一外设模块的上电延时时间。
139.确定第一外设模块的上电延时时间的方法可以参见图9或图10所示方法实施例中的相关描述,在此不再赘述。
140.s1408,向电源管理单元发送第一故障控制指令。
141.第一控制单元可以通过向电源管理单元发送第一故障控制指令,使电源管理单元对第一外设模块进行断电恢复。确定第一故障控制指令的方法可以参见图9或图10所示方法实施例中的相关描述,在此不再赘述。
142.在一种可能的实现方式中,如图15所示,第二控制单元对第二外设模块以及第一控制单元进行故障检测时可以执行如图14a-14c所示的流程。并且第一控制单元通过各个检测通道发送的心跳包即为第二控制单元监测的心跳包,反之亦然。此外,图15中第二控制单元在确定第二检测通道对应的第二外设模块发生故障时,可以向电源管理单元发送第三故障控制指令,使电源管理单元对该第二外设模块进行断电恢复。第三故障控制指令是根据该第二外设模块及其上电延时时间确定的,例如第三故障控制指令可以携带该第二外设模块的名称或标识,以及该第二外设模块的上电延时时间。需要说明的是,第二外设模块的上电延时时间与第一外设模块上电延时时间的确定方法相同,可以参见上述方法实施例中的相关描述,在此不再赘述。
143.基于上述方法的同一构思,参见图16,为本技术实施例提供的一种故障恢复装置1600,装置1600能够执行上述方法中的各个步骤,为了避免重复,此处不再详述。该装置1600可以应用于嵌入式设备的第一控制单元,所述嵌入式设备还包括第二控制单元、电源控制单元以及m1个第一外设模块,包括通信单元1601和处理单元1602。在一种场景下:
144.处理单元1602,用于监测所述第二控制单元通过m1个检测通道发送的心跳包;所述m1个检测通道与所述第二控制单元负责监测故障状态的m1个第一外设模块一一对应;所述处理单元1602,还用于在预设时间内未接收到所述第二控制单元通过第一检测通道发送的心跳包,确定所述第一检测通道对应的第一外设模块发生故障;所述第一检测通道是所述至少一个检测通道的任意一个;通信单元1601,用于向所述电源控制单元发送第一故障控制指令;所述第一故障控制指令用于使所述电源控制单元对所述第一检测通道对应的第一外设模块进行断电恢复。
145.一种可能的实现方式中,所述第一控制单元为微控制单元mcu,所述第二控制单元为中央处理单元1602cpu,或者所述第一控制单元为cpu,所述第二控制单元为mcu。
146.一种可能的实现方式中,所述第一故障控制指令携带所述第一检测通道对应的第一外设模块的上电延时时间;所述上电延时时间小于或者等于所述第一检测通道对应的第一外设模块所支持的最大断电时长,所述上电延时时间用于指示断电时间与重新上电时间之间的间隔时间。
147.一种可能的实现方式中,所述嵌入式设备还包括m2个第二外设模块,所述处理单元1602,还用于监测所述m2个第二外设模块的故障情况;检测到所述m2个第二外设模块中任一第二外设模块未发生故障时,所述通信单元1601用于通过所述任一第二外设模块对应的第二检测通道向所述第二控制单元发送心跳包。
148.一种可能的实现方式中,所述处理单元1602确定所述第一检测通道对应的第一外设模块发生故障之后,在所述第一控制单元向电源控制单元发送第一故障控制指令的次数大于或等于次数阈值时,所述通信单元1601,还用于向所述电源控制单元发送第二故障控制指令;所述第二故障控制指令用于使所述电源控制单元对所述嵌入式设备进行断电恢复。
149.一种可能的实现方式中,所述处理单元1602监测所述第二控制单元通过m1个检测通道发送的心跳包之前,所述处理单元1602,还用于确定所述嵌入式设备处于启动过程的文件系统运行阶段。
150.一种可能的实现方式中,所述嵌入式设备处于启动过程的固件引导阶段或内核加载阶段时,所述处理单元1602,还用于监测所述第二控制单元通过第三检测通道发送的心跳包;所述第三检测通道为用于监测所述第二控制单元是否故障的检测通道。
151.一种可能的实现方式中,所述嵌入式设备处于启动过程的固件引导阶段或内核加载阶段时,在所述处理单元1602确定所述第一控制单元未发生故障时,所述通信单元1601,还用于通过第四检测通道向所述第二控制单元发送心跳包。
152.基于上述方法的同一构思,参见图17,为本技术实施例提供的一种电子设备的结构示意图,该电子设备包括至少一个处理器1702,以及与至少一个处理器1702连接或称耦合的存储器1701,此外,电子设备还可以包括通信接口1703。电子设备可以通过通信接口1703和其它设备进行信息交互。
153.示例性的,所述通信接口1703可以是收发器、电路、总线、模块、管脚或其它类型的通信接口。当该电子设备为芯片类的装置或者电路时,该电子设备中的通信接口1703也可以是输入输出电路,可以输入信息(或称,接收信息)和输出信息(或称,发送信息),处理器为集成的处理器或者微处理器或者集成电路或则逻辑电路,处理器可以根据输入信息确定输出信息。
154.本技术实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1702可能和存储器1701、通信接口1703协同操作。本技术中不限定上述处理器1702、存储器1701以及通信接口1703之间的具体连接介质。
155.可选的,参见图17,所述处理器1702、所述存储器1701以及所述通信接口1703之间通过总线相互连接。所述总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图17中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
156.在本技术实施例中,存储器1701作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1701可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器1701是能
够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器1701还可以是电路或者其它任意能够实现存储功能的装置,用于存储指令、计算机程序和/或数据。
157.在本技术实施例中,处理器1702可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的故障恢复方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
158.通过对处理器1702进行设计编程,可以将前述实施例中介绍的故障恢复方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的故障恢复方法的步骤,如何对处理器1702进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
159.在一个或多个实施例中,存储器1701存储有可被至少一个处理器1702执行的指令,至少一个处理器1702通过调用存储器1701存储的指令或者计算机程序,可以实现上述任一方法的步骤。
160.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述任一方法的步骤。
161.在一些实施例中,本技术提供的故障恢复方法的各个方面还可以实现为一种计算机程序产品的形式,其包括程序代码,当计算机程序产品在电子设备上运行时,程序代码用于使该电子设备执行本说明书上述描述的任一方法中的步骤。
162.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
163.虽然以上描述了本技术的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本技术的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本技术的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本技术的保护范围。尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
164.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1