掌桥专利:专业的专利平台
掌桥专利
首页

冗余控制方法、装置、设备、系统及自动驾驶车辆

文献发布时间:2023-06-19 18:46:07


冗余控制方法、装置、设备、系统及自动驾驶车辆

技术领域

本公开涉及计算机技术领域,尤其涉及自动驾驶、车载系统和域控制器领域,具体涉及一种冗余控制方法、装置、电子设备、计算机可读存储介质、计算机程序产品和系统。

背景技术

冗余系统是指为提高系统的安全性及可靠性,重复配置部分重要部件,使两套相同且相对独立配置的部件连接组成的系统。当系统中某一部件发生故障时,冗余配置的部件可以承担故障部件的工作。

随着对汽车安全需求的进一步提高,越来越多的汽车电子零部件开始采用包含双电子控制单元(Electronic Control Unit,ECU)的冗余控制系统,以应对恶劣环境及各种因素对汽车控制系统带来的干扰。

在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。

发明内容

本公开提供了一种冗余控制方法、装置、电子设备、计算机可读存储介质、计算机程序产品和系统。

根据本公开的一方面,提供了一种冗余控制方法,应用于冗余控制系统中的第一控制器,所述冗余控制系统包括所述第一控制器和第二控制器,所述方法包括:获取所述第一控制器的当前状态;响应于所述当前状态为第一状态:获取所述第二控制器的状态监测结果,其中,所述状态监测结果指示所述第二控制器是否进入所述第一状态;基于所述状态监测结果,确定所述第一控制器的第一目标状态并进行状态切换,其中,所述第一目标状态与所述第二控制器进入所述第一状态后的下一个状态相同;以及响应于所述当前状态为第二状态,基于针对所述第一控制器的第一事件,确定所述第一控制器的第二目标状态并进行状态切换。

根据本公开的一方面,提供了一种冗余控制装置,应用于冗余控制系统中的第一控制器,所述冗余控制系统包括所述第一控制器和第二控制器,所述装置包括:获取模块,被配置为获取所述第一控制器的当前状态;第一响应模块,包括:获取单元,被配置为响应于所述当前状态为第一状态,获取所述第二控制器的状态监测结果,其中,所述状态监测结果指示所述第二控制器是否进入所述第一状态;确定单元,被配置为基于所述状态监测结果,确定所述第一控制器的第一目标状态并进行状态切换,其中,所述第一目标状态与所述第二控制器进入所述第一状态后的下一个状态相同;以及第二响应模块,被配置为响应于所述当前状态为第二状态,基于针对所述第一控制器的第一事件,确定所述第一控制器的第二目标状态并进行状态切换。

根据本公开的一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述冗余控制方法。

根据本公开的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行上述冗余控制方法。

根据本公开的一方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现上述冗余控制方法。

根据本公开的一方面,提供了一种冗余控制系统,包括:第一控制器;以及与所述第一控制器通信连接的第二控制器,其中,所述第一控制器和所述第二控制器中的任一者被配置为执行上述冗余控制方法。

根据本公开的一方面,提供了一种自动驾驶车辆,包括上述电子设备。

根据本公开的一个或多个实施例,能够提高冗余控制系统的可靠性。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。

图1示出了根据本公开的实施例的可以在其中实施本文描述的各种方法的示例性系统的示意图;

图2示出了根据本公开的实施例的冗余控制方法的流程图;

图3示出了根据本公开的一些实施例的第一控制器的状态切换图;

图4示出了根据本公开的实施例的冗余控制装置的结构框图;

图5示出了根据本公开的实施例的冗余控制系统的结构示意图;

图6示出了根据本公开的一些实施例的第一控制器和第二控制器的连接示意图;以及

图7示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个要素与另一要素区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。

在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。

ECU作为现代汽车的核心电子元件之一,被称为“行车电脑”。ECU能够随时监控汽车运行的各种状态(比如停车、加速等)以及输入的各种数据(比如刹车、换挡等),并按照预先设计的程序处理各类信息,将处理后的参数发送给相关执行器件以执行各种预定的控制功能。

为满足安全需求,可以在车辆上设置冗余的ECU,形成包含双ECU的冗余控制系统。冗余控制系统中的其中一个ECU可以是主ECU,另一个ECU作为主ECU的备份,即,备ECU。相较于仅包含单个ECU的控制系统来说,冗余控制系统能够进一步保障车辆的安全性,但提升了控制系统的复杂度。在这种情况下,如何保证冗余控制系统的可靠性成为亟待解决的问题。

针对上述问题,本公开实施例提供了一种针对冗余控制系统的冗余控制方法。该方法能够使得主控制器与备控制器既能适时地进行状态同步,又能保持相对独立的运行状态,提高了整个系统的可靠性与安全性,保证系统的平稳运行。

下面将结合附图详细描述本公开的实施例。

图1示出了根据本公开的实施例可以将本文描述的各种方法和装置在其中实施的示例性系统100的示意图。参考图1,该系统100包括机动车辆110、服务器120以及将机动车辆110耦接到服务器120的一个或多个通信网络130。

在本公开的实施例中,机动车辆110可以包括根据本公开实施例的冗余控制系统。

服务器120可以运行一个或多个服务或软件应用。在某些实施例中,服务器120还可以提供其他服务或软件应用,这些服务或软件应用可以包括非虚拟环境和虚拟环境。在图1所示的配置中,服务器120可以包括实现由服务器120执行的功能的一个或多个组件。这些组件可以包括可由一个或多个处理器执行的软件组件、硬件组件或其组合。机动车辆110的用户可以依次利用一个或多个客户端应用程序来与服务器120进行交互以利用这些组件提供的服务。应当理解,各种不同的系统配置是可能的,其可以与系统100不同。因此,图1是用于实施本文所描述的各种方法的系统的一个示例,并且不旨在进行限制。

服务器120可以包括一个或多个通用计算机、专用服务器计算机(例如PC(个人计算机)服务器、UNIX服务器、中端服务器)、刀片式服务器、大型计算机、服务器群集或任何其他适当的布置和/或组合。服务器120可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其他计算架构(例如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活池)。在各种实施例中,服务器120可以运行一个或多个服务或软件应用。

服务器120中的计算单元可以运行包括上述任何操作系统以及任何商业上可用的服务器操作系统的一个或多个操作系统。服务器120还可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一个,包括HTTP服务器、FTP服务器、CGI服务器、JAVA服务器、数据库服务器等。

在一些实施方式中,服务器120可以包括一个或多个应用程序,以分析和合并从机动车辆110接收的数据馈送和/或事件更新。服务器120还可以包括一个或多个应用程序,以经由机动车辆110的一个或多个显示设备来显示数据馈送和/或实时事件。

网络130可以是本领域技术人员熟知的任何类型的网络,其可以使用多种可用协议中的任何一种(包括但不限于TCP/IP、SNA、IPX等)来支持数据通信。仅作为示例,一个或多个网络130可以是卫星通信网络、局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟专用网络(VPN)、内部网、外部网、区块链网络、公共交换电话网(PSTN)、红外网络、无线网络(包括例如蓝牙、Wi-Fi)和/或这些与其他网络的任意组合。

系统100还可以包括一个或多个数据库150。在某些实施例中,这些数据库可以用于存储数据和其他信息。例如,数据库150中的一个或多个可用于存储诸如音频文件和视频文件的信息。数据存储库150可以应用在各种位置。例如,由服务器120使用的数据存储库可以在服务器120本地,或者可以远离服务器120且可以经由基于网络或专用的连接与服务器120通信。数据存储库150可以是不同的类型。在某些实施例中,由服务器120使用的数据存储库可以是数据库,例如关系数据库。这些数据库中的一个或多个可以响应于命令而存储、更新和检索到数据库以及来自数据库的数据。

在某些实施例中,数据库150中的一个或多个还可以由应用程序使用来存储应用程序数据。由应用程序使用的数据库可以是不同类型的数据库,例如键值存储库,对象存储库或由文件系统支持的常规存储库。

机动车辆110可以包括传感器111用于感知周围环境。传感器111可以包括下列传感器中的一个或多个:视觉摄像头、红外摄像头、超声波传感器、毫米波雷达以及激光雷达(LiDAR)。不同的传感器可以提供不同的检测精度和范围。摄像头可以安装在车辆的前方、后方或其他位置。视觉摄像头可以实时捕获车辆内外的情况并呈现给驾驶员和/或乘客。此外,通过对视觉摄像头捕获的画面进行分析,可以获取诸如交通信号灯指示、交叉路口情况、其他车辆运行状态等信息。红外摄像头可以在夜视情况下捕捉物体。超声波传感器可以安装在车辆的四周,用于利用超声波方向性强等特点来测量车外物体距车辆的距离。毫米波雷达可以安装在车辆的前方、后方或其他位置,用于利用电磁波的特性测量车外物体距车辆的距离。激光雷达可以安装在车辆的前方、后方或其他位置,用于检测物体边缘、形状信息,从而进行物体识别和追踪。由于多普勒效应,雷达装置还可以测量车辆与移动物体的速度变化。

机动车辆110还可以包括通信装置112。通信装置112可以包括能够从卫星141接收卫星定位信号(例如,北斗、GPS、GLONASS以及GALILEO)并且基于这些信号产生坐标的卫星定位模块。通信装置112还可以包括与移动通信基站142进行通信的模块,移动通信网络可以实施任何适合的通信技术,例如GSM/GPRS、CDMA、LTE等当前或正在不断发展的无线通信技术(例如5G技术)。通信装置112还可以具有车联网或车联万物(Vehicle-to-Everything,V2X)模块,被配置用于实现例如与其它车辆143进行车对车(Vehicle-to-Vehicle,V2V)通信和与基础设施144进行车辆到基础设施(Vehicle-to-Infrastructure,V2I)通信的车与外界的通信。此外,通信装置112还可以具有被配置为例如通过使用IEEE802.11标准的无线局域网或蓝牙与用户终端145(包括但不限于智能手机、平板电脑或诸如手表等可佩戴装置)进行通信的模块。利用通信装置112,机动车辆110还可以经由网络130接入服务器120。

机动车辆110还可以包括控制装置113。控制装置113可以包括与各种类型的计算机可读存储装置或介质通信的处理器,例如中央处理单元(CPU)或图形处理单元(GPU),或者其他的专用处理器等。控制装置113可以包括用于自动控制车辆中的各种致动器的自动驾驶系统。自动驾驶系统被配置为经由多个致动器响应来自多个传感器111或者其他输入设备的输入而控制机动车辆110(未示出的)动力总成、转向系统以及制动系统等以分别控制加速、转向和制动,而无需人为干预或者有限的人为干预。控制装置113的部分处理功能可以通过云计算实现。例如,可以使用车载处理器执行某一些处理,而同时可以利用云端的计算资源执行其他一些处理。控制装置113可以被配置以执行基于本公开的控制方法的各种实施例。此外,控制装置113可以被实现为根据本公开的机动车辆侧(客户端)的计算设备的一个示例。

图1的系统100可以以各种方式配置和操作,以使得能够应用根据本公开所描述的各种方法和装置。

根据一些实施例,机动车辆110可以被划分为多个控制域,例如可以根据功能划分为动力域、底盘域、车身域、座舱域及自动驾驶域。每一个控制域可以包括一个或多个控制装置113。根据一些实施例,每个控制域中的控制装置113可以实现为包括两个或以上控制器(例如ECU)的冗余控制系统。冗余控制系统中的任一控制器均可以执行本公开实施例的冗余控制方法,使得自身与另一控制器既能进行状态同步,又能保持相对独立地运行,提高了整个系统的可靠性。

图2示出了根据本公开实施例的冗余控制方法200的流程图。方法200的各个步骤的执行主体可以是第一控制器。第一控制器可以是冗余控制系统中的任一控制器。

基于本公开的实施例的冗余控制系统包括第一控制器和第二控制器,第一控制器和第二控制器互为主备,即第一控制器为主控制器时,第二控制器为备控制器,反之亦然。因此,方法200的执行主体(第一控制器)可以为冗余控制系统中的主控制器,也可以为备控制器。

如图2所示,方法200包括步骤S210-S230。

在步骤S210中,获取第一控制器的当前状态。

响应于当前状态为第一状态,执行步骤S221和S222。

在步骤S221中,获取第二控制器的状态监测结果。状态监测结果指示第二控制器是否进入第一状态。

在步骤S222中,基于状态监测结果,确定第一控制器的第一目标状态并进行状态切换。第一目标状态与第二控制器进入第一状态后的下一个状态相同。

响应于当前状态为第二状态,执行步骤S230。

在步骤S230中,基于针对第一控制器的第一事件,确定第一控制器的第二目标状态并进行状态切换。

根据本公开的实施例,当第一控制器处于第一状态时,基于第二控制器的状态监测结果来确定其接下来的工作状态,以使第一控制器与第二控制器的状态同步;当第一控制器处于第二状态时,基于其自身事件来进行状态切换,该切换过程与第二控制器的状态切换过程相独立。该冗余控制方法使得第一控制器与第二控制器既能适时地进行状态同步,又能保持独立运行,提高了整个系统的可靠性,保证系统始终平稳运行。

以下详细介绍方法200的各个步骤。

在步骤S210中,获取第一控制器的当前状态。

根据一些实施例,第一控制器的当前状态可以为第一状态或第二状态。第一状态指的是需要与第二控制器进行状态同步的状态。第二状态指的是第一控制器可以独立工作,而不需要与第二控制器进行状态同步的状态。

在第一控制器处于第一状态的情况下,需要根据第二控制器的当前状态确定自身的下一个状态(即,第一目标状态),以使第一控制器与第二控制器在第一目标状态实现状态同步,即,第一目标状态与第二控制器进入第一状态后的下一个状态相同。

响应于第一控制器处于第一状态时,执行步骤S221和S222。

在步骤S221中,获取第二控制器的状态监测结果。状态监测结果指示第二控制器是否进入第一状态。在步骤S222中,基于状态监测结果,确定第一控制器的第一目标状态并进行状态切换。即,将第一控制器的状态由第一状态切换至第一目标状态。第一目标状态与第二控制器进入第一状态后的下一个状态相同。由此,第一控制器与第二控制器可以在第一目标状态下实现状态同步。

根据一些实施例,冗余控制系统被电源系统供电,第一状态可以是响应于针对电源系统的第二事件而进入的。根据该实施例,冗余控制系统中的第一控制器与第二控制器由同一个电源系统供电,能够提高系统的集成度,便于维修和更换系统部件。在由针对电源系统的第二事件所触发的第一状态下,使第一控制器与第二控制器进行状态同步,能够使第一控制器与第二控制器的电力情况同步,降低系统控制的复杂度,提高系统的稳定性。

根据一些实施例,第二事件可以包括上电事件和断电事件。

根据一些实施例,在第二事件为上电事件的情况下,第一状态可以是响应于上电事件成功进行初始化后所进入的初始化同步状态,即第一状态为初始化同步状态。相应地,基于状态监测结果,确定第一控制器的第一目标状态并进行状态切换包括:响应于在第一控制器进入初始化同步状态后的第一时间内监测到第二控制器进入初始化同步状态,确定第一目标状态为正常工作状态并进行状态切换,以使第一控制器与第二控制器同步进入正常工作状态。

根据上述实施例,响应于上电事件,冗余控制系统被供电。第一控制器被供电后进入初始化状态,以进行初始化(包括硬件自检、软件初始化等操作)。第一控制器在初始化成功后进入初始化同步状态,即第一状态。在初始化同步状态下,第一控制器通过监测第二控制器的状态以及第二控制器进入初始化同步状态的时间,判断自身所进入的下一状态(即,第一目标状态)。第一时间从第一控制器进入初始化同步状态起开始计算。若第二控制器在第一时间内也进入初始化同步状态,则初始化同步成功,第一控制器与第二控制器同时跳转到正常工作状态,为系统提供完整的功能。例如,第一时间可以设置为30s。若第二控制器在第一控制器进入初始化同步状态后的30s内,也进入初始化同步状态,则初始化同步成功,两者同步进入正常工作状态。

根据一些实施例,在第二事件为上电事件的情况下,基于状态监测结果,确定第一控制器的第一目标状态并进行状态切换还可以包括:响应于在第一控制器进入初始化同步状态后的第一时间内未监测到第二控制器进入初始化同步状态,确定第一目标状态为降级工作状态并进行状态切换。即,若第二控制器在第一时间内未进入初始化同步状态,则第一控制器与第二控制器初始化同步失败,第一控制器自行切换至降级工作状态,提供降级功能,以保证系统能够安全运行。例如,第一时间可以设置为30s。若第二控制器在第一控制器进入初始化同步状态后的30s内,未进入初始化同步状态,则初始化同步失败,第一控制器进入降级工作状态。

根据上述实施例,先进入初始化同步状态的控制器会在该状态下监测另一个控制器的状态,并根据另一个控制器进入初始化同步状态的时间确定下一个跳转的状态,该设置是为了防止两个控制器中任一个控制器出现故障,无法实现状态跳转,另一个控制器在初始化同步状态下等待时间过久,使控制系统无法提供控制功能。通过设置最大等待时间(即第一时间),在一个控制器故障的情况下,另一个控制器可以进入降级工作状态为系统提供降级功能,保证系统的安全运行。

根据一些实施例,在第二事件为断电事件的情况下,第一状态为响应于断电事件成功完成断电准备工作后所进入的断电前同步状态,即第一状态为断电前同步状态。相应地,基于状态监测结果,确定第一控制器的第一目标状态并进行状态切换包括:响应于在第一控制器进入断电前同步状态后的第二时间内监测到第二控制器进入断电前同步状态,确定第一目标状态为关机状态并进行状态切换,以使第一控制器与第二控制器同步进入关机状态。

根据上述实施例,响应于断电事件,冗余控制系统被断电。第一控制器被断电后进入关机准备状态,以进行断电准备工作(包括内存写入、硬件关断等操作)。第一控制器在成功完成断电准备工作后进入断电前同步状态。在断电前同步状态下,第一控制器通过监测第二控制器的状态以及第二控制器进入断电前同步状态的时间,判断自身所进入的下一状态(即,第一目标状态)。第二时间从第一控制器进入断电前同步状态起开始计算。若第二控制器在第二时间内也进入断电前同步状态,则断电前同步成功,第一控制器与第二控制器同时关机,以降低系统的功耗。例如,第二时间可以设置为30s。,若第二控制器在第一控制器进入断电前同步状态后的30s内,也进入断电前同步状态,则断电前同步成功,两者同步进入关机状态。

根据一些实施例,在第二事件为断电事件的情况下,基于状态监测结果,确定第一控制器的第一目标状态并进行状态切换还可以包括:响应于在第一控制器进入断电前同步状态后的第二时间内未监测到第二控制器进入断电前同步状态,确定第一目标状态为休眠状态并进行状态切换。即,若第二控制器在第二时间内未进入断电前同步状态,则断电前同步失败,第一控制器自行切换至休眠(hibernate)状态,以降低系统能耗。例如,第二时间可以设置为30s。若第二控制器在第一控制器进入断电前同步状态后的30s内,未进入断电前同步状态,则断电前同步失败,第一控制器自行进入休眠状态。

根据上述实施例,先进入断电前同步状态的控制器会在该状态下监测另一个控制器的状态,并根据另一个控制器进入断电前同步状态的时间确定下一个跳转的状态,该设置是为防止两个控制器中任一个控制器出现故障,无法实现状态跳转,使系统不能正常关闭,影响系统下一次正常开机。通过设置最大等待时间(即第二时间),在一个控制器故障的情况下,另一个控制器可以进入休眠状态,及时进行相应系统和部件的关闭,降低系统的能耗。

需要说明的是,本公开实施例中的第一时间、第二时间可以根据需要设置,本公开对二者的取值不作限制。第一时间与第二时间可以相同,也可以不同。

根据一些实施例,第二状态是第一控制器的独立工作状态。在第一控制器处于第二状态的情况下,第一控制器可以独立工作,基于自身事件(即第一事件)来进行状态切换,无需与第二控制器的状态保持同步。也就是说,在第一控制器处于第二状态的情况下,第一控制器的切换过程与第二控制器的状态切换过程无关。可以理解,第二状态为第一控制器的独立工作状态,此时两个控制器处于相对独立的运行状态,能够提高系统的灵活性。

响应于第一控制器处于第二状态,执行步骤S230。

在步骤S230中,基于针对第一控制器的第一事件,确定第一控制器的第二目标状态并进行状态切换。

根据一些实施例,第二状态可以包括以下至少一项:初始化状态、正常工作状态、降级工作状态、睡眠状态、故障状态、开发状态或关机准备状态。

在初始化状态下,第一控制器进行开机后的初始化。

在正常工作状态下,第一控制器能够提供完整的功能。

在降级工作状态下,第一控制器提供的功能是有限的。相较于正常工作状态,第一控制器在降级工作状态下提供的功能更少、复杂程度更低。

在睡眠状态下,第一控制器中仅存储装置被供电,其他电路断电,可以降低功耗、节省电力。

在故障状态下,第一控制器无法提供功能。

在开发状态下,开发人员或测试人员可以对第一控制器的硬件或软件进行配置。

在关机准备状态下,第一控制器进行关机前的准备工作。

根据一些实施例,第一事件可以为基于管理需求发送的系统请求,例如睡眠请求、唤醒请求、复位请求和模式切换请求(例如开发者模式与用户模式之间的切换)等。第一事件也可以为第一控制器自身的系统故障事件,例如由于电磁干扰或接触不良导致的暂时性故障,或是自身传感器等硬件原因导致的故障等。第一事件还可以为监测到的第二控制器的当前状态,并基于监测到的状态进行自身状态的切换。第一事件及相应的切换条件可以根据需求自行设置,此处不作过多限定。

根据一些实施例,在第二状态为初始化状态的情况下,基于针对第一控制器的第一事件,确定第一控制器的第二目标状态并进行状态切换包括:获取第一控制器的当前工作模式,响应于当前工作模式为开发者模式,确定第二目标状态为开发状态并进行状态切换。根据该实施例,能够为冗余控制系统提供开发者模式。当处于开发者模式时,第一控制器进入开发状态,以支持产品(例如,图1所示的机动车辆110)交付前的开发和测试需求。在开发状态下,可以根据需求开启较高的安全等级以方便一些极限工况的测试。

根据一些实施例,冗余控制系统被配置为车辆的域控制器系统,由此能够提高域控制器系统的可靠性,保证车辆的安全运行。

根据一些实施例,第一控制器与第二控制器中的任一控制器为冗余控制系统中的主控制器,另一控制器为备控制器。即,第一控制器为主控制器时,第二控制器为备控制器,反之亦然。冗余控制系统中可能包括多个主控制器以及相对应的备控制器,由此可以控制机动车辆执行多种不同的功能。

基于冗余控制方法200,图3示出了根据本公开一些实施例的第一控制器的状态切换图(第二控制器的状态切换图与第一控制器相同)。图3所示的状态切换图可以理解为冗余系统中的任一控制器的状态机。

如图3所示,第一控制器的状态包括初始化状态(Init)310、初始化同步状态(InitSyn)320、正常工作状态(Normal)330、睡眠状态(Sleep)340、关机准备状态(PreOff)350、断电前同步状态(OffSyn)360、关机状态(Off)370、故障状态(Error)380、降级工作状态(Limit)390以及开发状态(Product)311。

响应于冗余控制系统上电,第一控制器进入初始化状态310。处于初始化状态310时,第一控制器执行硬件初始化自检和软件初始化等操作。若初始化成功则进入初始化同步状态320,若初始化失败则切换至故障状态380。如果检测到系统的当前工作模式为开发者模式,则切换至开发状态311。

当第一控制器处于开发状态311时,可以根据测试需求开启较高的安全等级以方便一些极限工况的测试。在此状态下,如果接收到关机请求,则切换至关机准备状态350。

当第一控制器处于初始化同步状态320时,进行主备控制器初始化同步,以达到同时进入正常工作状态为系统提供功能的目的。从第一控制器进入该状态开始计时,在规定的最大等待时间(对应于上文的第一时间)内,若监测到第二控制器也进入初始化同步状态320,则与第二控制器一起跳转至正常工作状态330。若在规定的最大等待时间内,未监测到第二控制器进入初始化同步状态320,则自行跳转至降级工作状态390。

当第一控制器处于正常工作状态330时,主备控制器都处于全功能模式。在此状态下,若第一控制器检测到自身硬件或传感器等相关组件出现故障,则切换至故障状态380。若接收到系统的睡眠请求,则切换至睡眠状态340。若监测到第二控制器处于故障状态380,则自行切换至降级工作状态390。

当第一控制器处于睡眠状态340时,只运行部分必要组件(例如内存、硬盘等存储装置),降低特定工况下的功耗。在此状态下,若接收到系统的唤醒请求,则跳转至正常工作状态330。若接收到系统的关机请求,则跳转至关机准备状态350,准备关机。

当第一控制器处于关机准备状态350时,执行相应的内存写入操作及硬件的关断操作,在此状态下若接收到系统的复位请求,则执行软件复位,跳转至初始化状态310。若未接收到系统的复位请求,则在内存写入操作及硬件的关断操作执行完毕后,跳转至断电前同步状态360,准备关机。

当第一控制器处于断电前同步状态360时,进行主备控制器断电前同步,以达到同时断电的目的。从第一控制器进入该状态开始计时,在规定的最大等待时间(对应于上文的第二时间)内,若监测到第二控制器也进入断电前同步状态360,则与第二控制器一起切换至关机状态370完成关机。若在规定的最大等待时间内,未监测到第二控制器进入断电前同步状态360,则自行休眠。此时未休眠的第二控制器由于接收不到已休眠的第一控制器的通信信息,也会立刻切换至休眠状态,以使第一控制器与第二控制器同步进入关机状态370。

第一控制器进入关机状态370后,需要等待下一次系统上电。

第一控制器处于故障状态380,指示自身在当前工作周期内(从系统上电到系统关闭为一个工作周期)故障无法自行恢复。若第一控制器在此状态下接收到系统的关机请求,则跳转至关机准备状态,准备关机。

第一控制器进入降级工作状态390的原因是第二控制器处于故障状态、通信信号原因或自身由于传感器等硬件原因只能提供降级功能。如果第一控制器是由于自身的电磁干扰或者接触不良导致等暂时性故障而进入降级工作状态390,当暂时性故障解除后,第一控制器即可切换至正常工作状态330。若第一控制器在降级工作状态390下发生永久性故障,当前工作周期内无法恢复,则切换至故障状态380。若第一控制器在该状态下接收到系统的睡眠请求,则切换至睡眠状态340。

可以理解,为便于理解本公开的实施例的冗余控制方法,上述冗余控制系统的工作状态及状态切换条件仅为示例性的,具体的状态设置以及切换条件可以根据实际情况进行设置及更改。

根据本公开的实施例,还提供了一种冗余控制装置。图4示出了根据本公开实施例的冗余控制装置400的结构框图。如图4所示,装置400包括获取模块410、第一响应模块420和第二响应模块430,其中第一响应模块420包括获取单元421和确定单元422。

获取模块410被配置为获取第一控制器的当前状态。

第一响应模块420包括:获取单元421,被配置为响应于当前状态为第一状态,获取第二控制器的状态监测结果,其中,状态监测结果指示第二控制器是否进入第一状态;确定单元422,被配置为基于状态监测结果,确定第一控制器的第一目标状态并进行状态切换,其中,第一目标状态与第二控制器进入第一状态后的下一个状态相同。

第二响应模块430被配置为响应于当前状态为第二状态,基于针对第一控制器的第一事件,确定第一控制器的第二目标状态并进行状态切换。

根据一些实施例,冗余控制系统被电源系统供电,第一状态是响应于针对电源系统的第二事件而进入的。

根据一些实施例,第二事件包括上电事件,第一状态包括响应于上电事件成功进行初始化后所进入的初始化同步状态,确定单元421被进一步配置为:响应于在第一控制器进入初始化同步状态后的第一时间内监测到第二控制器进入初始化同步状态,确定第一目标状态为正常工作状态并进行状态切换,以使第一控制器与第二控制器同步进入正常工作状态。

根据一些实施例,确定单元421被进一步配置为:响应于在第一控制器进入初始化同步状态后的第一时间内未监测到第二控制器进入初始化同步状态,确定第一目标状态为降级工作状态并进行状态切换

根据一些实施例,第二事件包括断电事件,第一状态包括响应于断电事件成功完成断电准备工作后所进入的断电前同步状态,确定单元421被进一步配置为:响应于在第一控制器进入断电前同步状态后的第二时间内监测到第二控制器进入断电前同步状态,确定第一目标状态为关机状态并进行状态切换,以使第一控制器与第二控制器同步进入关机状态。

根据一些实施例,确定单元421被进一步配置为:响应于第二控制器未在第一控制器进入断电前同步状态后的第二时间内进入断电前同步状态,确定第一目标状态为休眠状态并进行状态切换。

应当理解,图4中所示的装置400的各个模块或单元可以与图2所描述的方法200中的各个步骤相对应。由此,上述方法200中所描述的操作、特征和优点同样适用于装置400及其包括的各个模块以及单元。为了简洁起见,某些操作、特征和优点在此不再赘述。

虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。

还应当理解,本文中所描述的各种技术可以在软件、硬件、元件或程序模块中实现。上述图4中所描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,模块410-430中的一个或多个模块可以一起被实现在片上系统(System on Chip,SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(Central Processing Unit,CPU)、微控制器、微处理器、数字信号处理器(Digital Signal Processor,DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。

根据本公开的实施例,还提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器,该存储器存储有可被上述至少一个处理器执行的指令,该指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行本公开实施例的冗余控制方法。

根据本公开的实施例,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开实施例的冗余控制方法。

根据本公开的实施例,还提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现本公开实施例的冗余控制方法。

根据本公开的实施例,还提供了一种冗余控制系统。该冗余控制系统包括第一控制器以及与第一控制器通信连接的第二控制器。其中,第一控制器和第二控制器中的任一者被配置为执行本公开实施例的冗余控制方法。

根据本公开的实施例,还提供了一种自动驾驶车辆,该自动驾驶车辆包括上述电子设备。可以理解,该自动驾驶车辆也包括上述冗余控制系统。

图5示出了根据本公开实施例的冗余控制系统的结构示意图。如图5所示,冗余控制系统500包括:第一控制器510;以及与第一控制器510通信连接的第二控制器520,其中,第一控制器510和第二控制器520中的任一者被配置为执行本公开实施例的冗余控制方法200。

根据本公开的一些实施例,第一控制器510与第二控制器520分别为冗余控制系统500中的主控制器和备控制器,即当第一控制器510为冗余控制系统的主控制器时,第二控制器520为冗余控制系统的备控制器,反之亦然。冗余控制系统大部分时间由主控制器为车辆(例如,图1中的机动车辆110)提供功能,当主控制器出现故障时,由备控制器提供相应功能。主控制器与备控制器的结构相同或相似,但处理速度和能力可能存在一定差异。

图6示出了根据本公开的一些实施例的第一控制器与第二控制器的连接示意图。如图6所示,第一控制器610与第二控制器620之间通过SPI(Serial PeripheralInterface,串行外设接口)通信方式进行通信。基于第一控制器610与第二控制器620的通信,第一控制器610或第二控制器620可以实现本公开实施例的冗余控制方法200。在图6所示的实施例中,第一控制器610为冗余控制系统600中的主控制器,第二控制器620为备控制器。

SPI接口为全双工三线同步串行外围接口,采用主从模式(Master-Slave)架构。来自第一控制器610或第二控制器620的数据在时钟上升沿或下降沿同步,使两个控制器之间可以同时传输数据。如图6所示,CS 611和CS 621为片选信号引脚,此处可固定为低电平,即低电平有效。SCLK 612和SCLK622为时钟信号引脚,第一控制器610与第二控制器620之间传输数据或信号与第一控制器610产生的时钟信号同步。

第一控制器610中的数据通过MOSI 613引脚,经过SDI 623引脚传输至第二控制器620,例如第一控制器610可以通过MOSI 613引脚将自身的状态监测结果发送给第二控制器620,第二控制器620通过SDI 623引脚接收第一控制器610发送的状态监测结果。同时,第二控制器620中的数据通过SDO 624引脚,经过MISO 614引脚传输至第一控制器610,例如第二控制器620可以通过SDO 624引脚将自身的状态监测结果发送给第一控制器610,第一控制器610通过MISO 614引脚接收第二控制器620发送的状态监测结果。基于对方的状态监测结果,第一控制器610和第二控制器620可以执行相应的状态同步或状态切换操作,以实现根据本公开的实施例的冗余控制方法200。

在SPI通信中,主控制器和备控制器可以选择时钟极性和时钟相位。根据时钟极性和时钟相位的选择(时钟极性可以为1也可以为0,时钟相位可以为1也可以为0),共有四种SPI模式。通过SPI传输的数据一般为底层硬件库中的相关数据,例如同步数据等,可根据具体的需求进行进一步配置。

根据本公开的一些实施例,第一控制器与第二控制器之间还可以通过CAN(Controller Area Network,控制器局域网络)通信方式进行通信。基于第一控制器610与第二控制器620的通信,第一控制器610或第二控制器620可以实现本公开实施例的冗余控制方法200。通过CAN总线的通信方式可以作为SPI通信方式的补充。SPI通信方式主要用于底层同步,CAN通信方式则可以用于应用层同步。CAN通信方式是固定周期发送信号,信号包括与系统状态相关的变量值信号。例如,备控制器通过主控制器发出的变量信号值,可以判断出此时主控制器所处的工作状态,而这些信息也作为备控制器自身状态切换的判断条件之一,反之亦然。通过这种方式,主控制器与备控制器能够实时的获取对方的状态,从而根据实际情况来进行自身状态的维护。

可以理解,第一控制器与第二控制器之间的通信方式不限制于上述所提及的SPI通信方式和CAN通信方式,此处不再一一赘述。

参考图7,现将描述可以作为本公开的服务器或客户端的电子设备700的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM703中,还可存储电子设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。

电子设备700中的多个部件连接至I/O接口705,包括:输入单元706、输出单元707、存储单元708以及通信单元709。输入单元706可以是能向电子设备700输入信息的任何类型的设备,输入单元706可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元707可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元708可以包括但不限于磁盘、光盘。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙

计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如方法200。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到电子设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的方法200的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本公开的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。

技术分类

06120115686919