CN116578524A - 多核控制器、控制方法、车辆控制系统及可读存储介质 - Google Patents

多核控制器、控制方法、车辆控制系统及可读存储介质 Download PDF

Info

Publication number
CN116578524A
CN116578524A CN202310848527.9A CN202310848527A CN116578524A CN 116578524 A CN116578524 A CN 116578524A CN 202310848527 A CN202310848527 A CN 202310848527A CN 116578524 A CN116578524 A CN 116578524A
Authority
CN
China
Prior art keywords
layer
hardware
interface
interface information
target layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310848527.9A
Other languages
English (en)
Other versions
CN116578524B (zh
Inventor
冯伟龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Contemporary Amperex Technology Co Ltd
Original Assignee
Contemporary Amperex Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Contemporary Amperex Technology Co Ltd filed Critical Contemporary Amperex Technology Co Ltd
Priority to CN202310848527.9A priority Critical patent/CN116578524B/zh
Publication of CN116578524A publication Critical patent/CN116578524A/zh
Application granted granted Critical
Publication of CN116578524B publication Critical patent/CN116578524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例涉及控制领域,提供了一种多核控制器、控制方法、车辆控制系统及可读存储介质。所述多核控制器包括多个微处理器,每个所述微处理器包括应用层和硬件驱动层;其中,多个所述微处理器共用一个硬件抽象层;多个所述微处理器中的所述应用层通过所述硬件抽象层控制多个所述微处理器中的所述硬件驱动层。通过上述多核控制器,在后续对应用层中功能的修改或更新等维护过程中,只需维护应用层与硬件抽象层之间的接口即可,无需考虑其他核中应用层的开发标准和接口定义,从而降低了多核控制器的维护成本和维护难度。

Description

多核控制器、控制方法、车辆控制系统及可读存储介质
技术领域
本申请涉及控制领域,尤其涉及一种多核控制器、控制方法、车辆控制系统及可读存储介质。
背景技术
随着电子行业的发展,整车的电子架构不断升级,控制器慢慢转向多核架构,使原先分散化的不同核的功能模块得以集成。目前,不同核之间的数据交互通过应用层实现。实际应用中,不同核的应用层所实现的功能可能不同,开发标准和接口定义等也可能不同。因此,在后期维护过程中,各个核中应用层的更新、修改等都需要考虑其他核中应用层的开发标准和接口定义,导致多核架构维护成本较高。
发明内容
本申请提供一种多核控制器、控制方法、车辆控制系统及可读存储介质,解决了现有技术中多核控制器的维护成本较高的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种多核控制器,包括多个微处理器,每个所述微处理器包括应用层和硬件驱动层;
其中,多个所述微处理器共用一个硬件抽象层;
多个所述微处理器中的所述应用层通过所述硬件抽象层控制多个所述微处理器中的所述硬件驱动层。
本申请实施例中,多个微处理器共用一个硬件抽象层,相当于对多核控制器中的各个核的硬件抽象层进行了统一,不同核中应用层和硬件驱动层之间的数据传输可以通过统一的硬件抽象层实现。通过上述方式,在后续对应用层中功能的修改或更新等维护过程中,只需维护应用层与硬件抽象层之间的接口即可,无需考虑其他核中应用层的开发标准和接口定义,从而降低了多核控制器的维护成本和维护难度。
在第一方面的一种实现方式中,每个所述微处理器中的所述应用层包括第一交互接口,所述硬件抽象层包括与所述第一交互接口相匹配的第二交互接口,所述第一交互接口与所述第二交互接口连接;
所述应用层与所述硬件抽象层通过所述第一交互接口和所述第二交互接口交互数据。
本申请实施例中,硬件抽象层包括多个第二交互接口,不同的第一交互接口匹配不同的第二交互接口。换言之,每个微处理器中的应用层都有其对应的数据交互通道,以使其能够与硬件抽象层进行数据交互,相当于将交互接口统一设置在了硬件抽象层上。通过上述方式,不同微处理器中应用层可以通过硬件抽象层进行数据交互,实现了应用层之间的解耦,从而降低了多核控制器的维护成本和维护难度。
在第一方面的一种实现方式中,每个所述微处理器中的所述硬件驱动层包括第三交互接口,所述硬件抽象层包括与所述第三交互接口相匹配的第四交互接口,所述第三交互接口与所述第四交互接口连接;
所述硬件驱动层与所述硬件抽象层通过所述第三交互接口和所述第四交互接口交互数据。
本申请实施例中,硬件抽象层包括多个第三交互接口,不同的第三交互接口匹配不同的第四交互接口。换言之,每个微处理器中的硬件驱动层都有其对应的数据交互通道,以使其能够与硬件抽象层进行数据交互,相当于将交互接口统一设置在了硬件抽象层上。通过这种方式,微处理器中应用层可以通过硬件抽象层与不同微处理器中的硬件驱动层进行数据交互,实现了应用层之间的解耦,从而降低了多核控制器的维护成本和维护难度。
在第一方面的一种实现方式中,每个所述微处理器中的所述应用层包括至少一个第一模块,所述第一模块用于实现算法功能;
其中,不同的微处理器中的所述应用层包括的功能模块不同。
上述实现方式中,不同的微处理器中的应用层可以实现不同的功能。在实现了应用层之间解耦的基础上,进一步实现了功能解耦。后续可以根据需求针对性地对相应的应用层中的功能进行修改或更新等维护,无需对多核控制器的全部功能进行维护,降低了多核控制器的维护成本。
在第一方面的一种实现方式中,每个所述微处理器中的所述硬件驱动层包括至少一个第二模块,所述第二模块用于驱动硬件装置。
在第一方面的一种实现方式中,所述硬件抽象层包括至少一个第三模块,每个所述第三模块对应一个所述第二模块,所述第三模块用于将与所述第三模块对应的第二模块所驱动的硬件装置的功能封装为接口函数、以供所述应用层进行调用;
其中,所述硬件抽象层中包括的所述第三模块的个数与多个所述微处理器的所述硬件驱动层包括的所述第二模块的类型的总个数相同。
本申请实施例中,硬件抽象层包括的每个第三模块都对应硬件驱动层的一个第二模块,不同的第三模块对应不同的第二模块。换言之,硬件抽象层中集成了每个微处理器中硬件驱动层的每个第二模块对应的接口函数。通过这种方式,微处理器中应用层可以通过硬件抽象层与不同微处理器中的硬件驱动层进行数据交互,实现了应用层之间的解耦,从而降低了多核控制器的维护成本和维护难度。
在第一方面的一种实现方式中,每个所述微处理器中的所述应用层还包括第五交互接口;
其中,任意两个所述微处理器中的所述应用层通过所述第五交互接口交互数据。
本申请实施例中,应用层不仅能够通过硬件抽象层与硬件驱动层交互数据,还能够通过其他微处理器中的应用层与硬件驱动层交互数据。通过这种方式,实现了交互通道的冗余控制;当某个交互通道出现故障时,应用层还能够通过其他交互通道进行数据交互,保证了数据交互的成功率,从而保证了控制的可靠性。
第二方面,提供一种控制方法,应用于如第一方面任一项所述的多核控制器中的所述硬件抽象层,所述控制方法包括:
在监测到第一目标层发送的第一接口信息的情况下,根据所述第一接口信息从多个所述微处理器的硬件驱动层中确定出第二目标层,其中,所述第一目标层为任意一个所述微处理器中的应用层;
根据所述第一接口信息控制所述第二目标层。
本申请实施例中,通过统一的硬件抽象层,多核控制器中每个微处理器的应用层不仅能够与自身的硬件驱动层进行数据交互,还能够与其他微处理器的硬件驱动层进行数据交互。通过上述方式,实现了应用层之间的解耦,从而降低了多核控制器的维护成本和维护难度。
在第二方面的一种实现方式中,所述第一接口信息携带第一标记,所述第一标记用于指示待控制的硬件驱动层所属的微处理器;
所述根据所述第一接口信息从多个所述微处理器的硬件驱动层中确定出第二目标层,包括:
从所述第一接口信息中识别出所述第一标记;
根据所述第一标记从多个所述微处理器的硬件驱动层中确定出所述第二目标层。
硬件抽象层集成了与多个微处理器中应用层交互的接口,以及与多个微处理器中硬件驱动层交互的接口。通过第一标记,硬件抽象层能够清楚、快捷地识别出应用层所需交互的硬件驱动层,避免数据混淆,从而提高了控制的可靠性,同时提高了控制效率。
在第二方面的一种实现方式中,所述第一接口信息包括控制参数;
所述根据所述第一接口信息控制所述第二目标层,包括:
若所述第一目标层与所述第二目标层属于相同的微处理器,则根据所述第一接口信息中的所述控制参数控制所述第二目标层。
在第二方面的一种实现方式中,所述第一接口信息包括控制参数;
所述根据所述第一接口信息控制所述第二目标层,包括:
若所述第一目标层与所述第二目标层属于不同的微处理器,则根据所述第一接口信息的紧急程度确定控制方式;
根据所述控制方式和所述第一接口信息中的控制参数控制所述第二目标层。
上述实现方式中,在应用层与不同微处理器中硬件驱动层之间进行交互的情况下,由于涉及到不同微处理器的数据,根据进行的紧急程度采用不同的控制方式,能够在避免数据冲突的前提下,更加灵活地进行数据交互。
在第二方面的一种实现方式中,所述第一接口信息包括第二标记,所述第二标记用于指示控制方式;
所述根据所述第一接口信息的紧急程度确定控制方式,包括:
从所述第一接口信息中识别出所述第二标记;
根据所述第二标记确定所述第一接口信息的紧急程度;
根据所述第一接口信息的紧急程度确定控制方式。
通过第二标记,硬件抽象层能够清楚、快捷地识别出第一接口信息的紧急程度,从而提高了控制效率。
在第二方面的一种实现方式中,所述根据所述控制方式和所述第一接口信息中的控制参数控制所述第二目标层,包括:
在所述控制方式为第一方式的情况下,根据所述控制参数控制所述第二目标层,以使所述第二目标层根据所述控制参数调用相应的硬件装置、并返回执行结果;
接收所述第二目标层返回的所述执行结果;
根据所述执行结果向所述第一目标层反馈第二接口信息。
本申请实施例中,第一方式相当于同步处理的方式,即应用层每发送一条第一接口信息,则等待,直到硬件驱动层返回一条对应的执行结果。通过这种方式,在交互需求较为紧急的情况下,能够将数据交互任务作为首要任务,以保证数据交互的及时性。
在第二方面的一种实现方式中,所述硬件抽象层层包括缓存空间;
所述根据所述控制方式和所述第一接口信息中的控制参数控制所述第二目标层,包括:
在所述控制方式为第二方式的情况下,将所述控制参数存储到所述缓存空间;
在每次监测到所述第二目标层发送的第三接口信息的情况下,根据当前所述缓存空间中的所述控制参数控制所述第二目标层,以使所述第二目标层根据所述控制参数调用相应的硬件装置、并返回执行结果,其中,所述第二目标层每隔第一预设周期发送一次所述第三接口信息;
接收所述第二目标层返回的所述执行结果;
将所述执行结果存储到所述缓存空间;
在每次监测到所述第一目标层发送的第四接口信息的情况下,根据当前所述缓存空间中的所述执行结果向所述第一目标层反馈第五接口信息,其中,所述第一目标层每隔第二预设周期发送一次所述第四接口信息。
本申请实施例中,第二方式相当于异步处理的方式,即应用层发送一条第一接口信息之后,可以先处理其他任务,然后周期性地轮询硬件抽象层的缓存空间,以获取硬件驱动层返回的执行结果。通过这种方式,在交互需求不紧急的情况下,应用层可以优先处理其他任务,避免因等待硬件驱动层返回执行结果而造成对其他任务的影响,从而提高了控制效率。
在第二方面的一种实现方式中,所述缓存空间包括第一区域和第二区域;
所述将所述控制参数存储到所述缓存空间,包括:
将所述控制参数存储到所述第一区域;
所述将所述执行结果存储到所述缓存空间,包括:
将所述执行结果存储到所述第二区域。
本申请实施例中,相当于将应用层发送的指令与硬件驱动层返回的执行结果分区存储。对于第一区域,应用层只能写入数据,硬件驱动层只能读出数据;对于第二区域,应用层只能读出数据,硬件驱动层只能写入数据。通过上述实现方式,避免了数据混淆。
在第二方面的一种实现方式中,所述方法还包括:
在每次监测到所述第二目标层发送的第三接口信息的情况下,判断当前所述第一区域中数据的数据长度是否大于预设长度;
若当前所述第一区域中数据的数据长度大于预设长度,则生成第三标记;
在接收到所述第二目标层返回的所述执行结果之后,删除所述第三标记。
本申请实施例中,若第一区域中数据的数据长度大于预设长度,表示硬件驱动层无法一次性地全部读取第一区域中的数据。这种情况下,通过第三标记指示硬件驱动层正在读取第一区域中的数据,可以有效防止应用层在硬件驱动层读取过程中向第一区域写入数据,从而有效避免了数据混淆。
在第二方面的一种实现方式中,所述将所述控制参数存储到所述第一区域,包括:
判断当前是否存在所述第三标记;
若当前不存在所述第三标记,则将所述控制参数存储到所述第一区域。
本申请实施例中,通过第三标记指示硬件驱动层正在读取第一区域中的数据,可以有效防止应用层在硬件驱动层读取过程中向第一区域写入数据,从而有效避免了数据混淆。
第三方面,本申请实施例提供了一种车辆控制系统,所述车辆控制系统包括如第一方面任一项所述的多核控制器以及多个硬件装置,所述多核控制器分别连接多个所述硬件装置;
其中,所述多核控制器用于根据如第二方面任一项所述的控制方法控制所述硬件装置。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第二方面中任一项所述的控制方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第二方面中任一项所述的控制方法。
可以理解的是,上述第三方面至第五方面的有益效果可以参见上述第二方面中的相关描述,在此不再赘述。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读对下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在全部附图中,用相同的附图标号表示相同的部件。在附图中:
图1是本申请实施例提供的多核控制器的结构示意图;
图2是本申请另一实施例提供的多核控制器的结构示意图;
图3是本申请实施例提供的交互接口的示意图;
图4是本申请实施例提供的多核控制器的架构示意图;
图5是本申请另一实施例提供的多核控制器的结构示意图;
图6是本申请实施例提供的控制方法的流程示意图;
图7是本申请实施例提供的一种控制方式的时序控制图;
图8是本申请实施例提供的另一种控制方式的时序控制图;
图9是本申请另一实施例提供的控制方法的流程示意图。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本申请实施例的描述中,技术术语“第一”“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请实施例的描述中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请实施例的描述中,术语“多个”指的是两个以上(包括两个),同理,“多组”指的是两组以上(包括两组),“多片”指的是两片以上(包括两片)。
在本申请实施例的描述中,除非另有明确的规定和限定,技术术语“安装”“相连”“连接”“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;也可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请实施例中的具体含义。
随着电子行业的发展,整车的电子架构不断升级,控制器慢慢转向多核架构,使原先分散化的不同核的功能模块得以集成。其中,多核控制器是指包括多个微处理器(也称核)的控制器。参见图1,是本申请实施例提供的多核控制器的结构示意图。作为示例而非限定,如图1所示,多核控制器1包括两个微处理器11。每个微处理器均包括应用层111、硬件抽象层112和硬件驱动层113(也称底层)。其中,硬件抽象层位于应用层和硬件驱动层之间,其实质为接口层,用于将硬件抽象化,以供应用层调用。
目前,不同核之间的数据交互通过应用层实现。如图1所示,在不同微处理器的应用层之间建立通信通道。一个应用场景下,当应用层111需要与硬件驱动层113数据交互时,第一个微处理器11的应用层111将指令发送给第二个微处理器11的应用层111,第二个微处理器11的应用层111通过第二个微处理器11的硬件抽象层112将指令发送给第二个微处理器11的硬件驱动层113;第二个微处理器11的硬件驱动层113将指令的执行结果再通过第二个微处理器11的硬件抽象层112发送给第二个微处理器11的应用层111,由第二个微处理器11的应用层111发送给第一个微处理器11的应用层111。
实际应用中,不同微处理器的应用层所实现的功能可能不同,开发标准和接口定义等也可能不同。因此,在后期维护过程中,各个微处理器中应用层的更新、修改等都需要考虑其他核中应用层的开发标准和接口定义,导致多核架构维护成本较高。
为了解决上述问题,本申请实施例提供了一种多核控制器。本申请实施例中,将多核控制器中各个微处理器的硬件抽象层进行了统一,不同微处理器中应用层和硬件驱动层之间的数据传输可以通过统一的硬件抽象层实现,从而降低了多核控制器的维护成本。
本申请实施例中,多核控制器包括多个微处理器,每个所述微处理器包括应用层和硬件驱动层;
其中,多个所述微处理器共用一个硬件抽象层;
多个所述微处理器中的所述应用层通过所述硬件抽象层控制多个所述微处理器中的所述硬件驱动层。
参见图2,是本申请另一实施例提供的多核控制器的结构示意图。如图2所示,多核控制器2包括两个微处理器11(图2中仅示出了2个微处理器)。每个微处理器11包括应用层111和硬件驱动层113。两个微处理器11共用一个硬件抽象层23。应用层111通过硬件抽象层23与硬件驱动层113进行数据交互。
本申请实施例中,多个微处理器共用一个硬件抽象层,相当于对多核控制器中的各个核的硬件抽象层进行了统一,不同核中应用层和硬件驱动层之间的数据传输可以通过统一的硬件抽象层实现。通过上述方式,在后续对应用层中功能的修改或更新等维护过程中,只需维护应用层与硬件抽象层之间的接口即可,无需考虑其他核中应用层的开发标准和接口定义,从而降低了多核控制器的维护成本和维护难度。
在一些实施例中,每个所述微处理器中的所述应用层包括第一交互接口,所述硬件抽象层包括与所述第一交互接口相匹配的第二交互接口,所述第一交互接口与所述第二交互接口连接;所述应用层与所述硬件抽象层通过所述第一交互接口和所述第二交互接口交互数据。
参见图3,是本申请实施例提供的交互接口的示意图。作为示例而非限定,如图3所示,微处理器11中的应用层111的第一交互接口2111与硬件抽象层23的第二交互接口231连接。
可以理解的是,在交互接口的其他实现方式中,硬件抽象层可以仅包括一个第二交互接口,将该第二交互接口分发给各个应用层,即各个微处理器的应用层均通过相同的交互接口与硬件抽象层通信。实际应用中,不同的应用层采用的开发标准和接口定义可能不同,但若采用这种方式,后续对应用层的维护时需要对应用层的接口进行转换,使其符合硬件抽象层的接口,这将增加后续的维护成本。
而本申请实施例中,硬件抽象层包括多个第二交互接口,不同的第一交互接口匹配不同的第二交互接口。换言之,每个微处理器中的应用层都有其对应的数据交互通道,以使其能够与硬件抽象层进行数据交互,相当于将交互接口统一设置在了硬件抽象层上。通过上述方式,不同微处理器中应用层可以通过硬件抽象层进行数据交互,实现了应用层之间的解耦,从而降低了多核控制器的维护成本和维护难度。
在一些实施例中,每个所述微处理器中的所述硬件驱动层包括第三交互接口,所述硬件抽象层包括与所述第三交互接口相匹配的第四交互接口,所述第三交互接口与所述第四交互接口连接;所述硬件驱动层与所述硬件抽象层通过所述第三交互接口和所述第四交互接口交互数据。
如图3所示,微处理器11中的硬件驱动层113的第三交互接口2121与硬件抽象层23的第四交互接口233连接。
可以理解的是,在交互接口的其他实现方式中,硬件抽象层可以仅包括一个第四交互接口,将该第四交互接口分发给各个硬件驱动层,即各个微处理器的硬件驱动层均通过相同的交互接口与硬件抽象层通信。实际应用中,相同微处理器中的应用层和硬件驱动层之间的开发标准和接口定义一致,而不同的应用层采用的开发标准和接口定义可能不同。但若采用这种方式,后续对应用层的维护时需要对应用层的接口进行转换,使其与硬件驱动层的接口定义相一致,以符合硬件抽象层的接口,这将增加后续的维护成本。
而本申请实施例中,硬件抽象层包括多个第四交互接口,不同的第四交互接口匹配不同的第三交互接口。换言之,每个微处理器中的硬件驱动层都有其对应的数据交互通道,以使其能够与硬件抽象层进行数据交互,相当于将交互接口统一设置在了硬件抽象层上。通过这种方式,微处理器中应用层可以通过硬件抽象层与不同微处理器中的硬件驱动层进行数据交互,实现了应用层之间的解耦,从而降低了多核控制器的维护成本和维护难度。
在一些实施例中,每个所述微处理器中的所述应用层包括至少一个第一模块,所述第一模块用于实现算法功能;其中,不同的微处理器中的所述应用层包括的功能模块不同。
本申请实施例中,第一模块中可以包括应用程序,应用程序被执行时可以实现相应的功能。
以车辆控制应用场景中的多核控制器为例,多核控制器中的多个微处理器可以分别用于执行对车辆的不同部位的控制。示例性的,参见图4,是本申请实施例提供的多核控制器的架构示意图。作为示例而非限定,如图4所示,多核处理器2应用于车辆控制,该多核处理器2包括两个微处理器11。其中一个微处理器11用于执行对车辆的车身控制,另一个微处理器11用于执行对车辆中电池的控制。
相应的,微处理器11中的应用层111可以包括多个用于实现对车辆车身控制的功能模块,微处理器11中的应用层111可以包括多个用于实现对车辆电池控制的功能模块。例如,如图4所示,第一个微处理器11的应用层111中包括三个第一模块3111。其中,第一个微处理器11中的第一个第一模块3111用于实现对车身的控制功能,第一个微处理器11中的第二个第一模块3111用于实现对变速箱的管理功能,第一个微处理器11中的第三个第一模块3111用于实现对车辆模式的控制功能。第二个微处理器11的应用层111中包括3个第一模块3111。其中,第二个微处理器11中的第一个第一模块3111用于实现车辆电池的快充控制功能,第二个微处理器11中的第二个第一模块3111用于实现车辆电池的状态计算功能,第二个微处理器11中的第三个第一模块3111用于实现对车辆电池的电池保护控制功能。
需要说明的是,上述只是多核控制器中不同应用层实现功能的示例。实际应用中,当多核控制器应用于不同场景时,其可以实现不同的控制功能,也可以对多核控制器中的不同微处理器的功能做不同的划分。当然,微处理器中应用层所能实现的功能(即包含的第一模块)也可以有多种形式。
上述实现方式中,不同的微处理器中的应用层可以实现不同的功能。在实现了应用层之间解耦的基础上,进一步实现了功能解耦。后续可以根据需求针对性地对相应的应用层中的功能进行修改或更新等维护,无需对多核控制器的全部功能进行维护,降低了多核控制器的维护成本。
在一些实施例中,每个所述微处理器中的所述硬件驱动层包括至少一个第二模块,所述第二模块用于驱动硬件装置。
硬件驱动层是直接与硬件打交道的一层,它为操作系统和应用层提供硬件驱动或底层核心支持。硬件驱动层中的第二模块可以包括驱动程序,该驱动程序被执行时能够实现对相应的硬件装置的驱动。
例如,在嵌入式系统中,驱动程序可以称为板级支持包(Board Support Package,BSP),其是包括构建嵌入式操作系统所需的引导程序(Bootloader)、内核(Kernel)、根文件系统(Rootfs)和工具链(Toolchain)的软件资源包。BSP具有在嵌入式系统上电后初始化系统的基本硬件环境的功能,其中,基本硬件可以包括微处理器、存储器、中断控制器、定时器等。
再例如,在车辆控制应用场景中的多核控制器中,硬件驱动层所驱动的硬件装置可以包括数字输入输出装置、模数转换装置和脉宽调制器等与车辆控制相关的硬件。
本申请实施例中的硬件抽象层包括至少一个第三模块,每个所述第三模块对应一个所述第二模块,所述第三模块用于将与所述第三模块对应的第二模块所驱动的硬件装置的功能封装为接口函数、以供所述应用层进行调用;其中,所述硬件抽象层中包括的所述第三模块的个数与多个所述微处理器的所述硬件驱动层包括的所述第二模块的类型的总个数相同。
硬件抽象层本质上是一组对硬件进行操作的应用程序接口,是对硬件功能抽象的结果。硬件抽象层将硬件驱动层所驱动的硬件装置的功能封装为接口函数,以供应用层调用。
示例性的,如图4所示,多核控制器2中每个微处理器11的硬件驱动层113包括三个第二模块3121。由于第一个微处理器11中的第一个第二模块3121和第二个微处理器中的第一个第二模块3121所驱动的硬件装置相同,第一个微处理器11中的第二个第二模块3121和第二个微处理器中的第二个第二模块3121所驱动的硬件装置相同,第一个微处理器11中的第三个第二模块3121和第二个微处理器中的第三个第二模块3121所驱动的硬件装置相同,则硬件抽象层23中包括三个第三模块331。其中,第一个第三模块331用于将第一个微处理器11中的第一个第二模块3121和第二个微处理器中的第一个第二模块3121所驱动的硬件装置的功能封装为接口函数,第二个第三模块331用于将第一个微处理器11中的第二个第二模块3121和第二个微处理器中的第二个第二模块3121所驱动的硬件装置的功能封装为接口函数,第三模块331用于将第一个微处理器11中的第三个第二模块3121和第二个微处理器中的第三个第二模块3121所驱动的硬件装置的功能封装为接口函数。
可以理解的是,由于本申请实施例中,多核控制器中的多个微处理器共用一个硬件抽象层,因此,多核控制器中各个硬件驱动层所驱动的每个硬件装置在硬件抽象层都有其对应的接口函数。换言之,硬件抽象层中集成了每个微处理器中硬件驱动层的每个第二模块对应的接口函数。通过这种方式,微处理器中应用层可以通过硬件抽象层与不同微处理器中的硬件驱动层进行数据交互,实现了应用层之间的解耦,从而降低了多核控制器的维护成本和维护难度。
基于上述实施例所述的多核控制器的结构,不同微处理器的应用层均通过硬件抽象层与硬件驱动层进行数据交互。在一些应用场景中,若某个微处理器的应用层与硬件抽象层之间的交互接口出现故障,则该应用层无法与硬件驱动层进行数据交互。
为了解决上述问题,在一些实施例中,每个所述微处理器中的所述应用层还包括第五交互接口;其中,任意两个所述微处理器中的所述应用层通过所述第五交互接口交互数据。
示例性的,参见图5,是本申请另一实施例提供的多核控制器的结构示意图。作为示例而非限定,如图5所示,多核控制器2包括两个微处理器11。其中,微处理器11中的应用层111包括第五交互接口4111。两个应用层111之间通过第五交互接口4111交互数据。
本申请实施例中,应用层不仅能够通过硬件抽象层与硬件驱动层交互数据,还能够通过其他微处理器中的应用层与硬件驱动层交互数据。通过这种方式,实现了交互通道的冗余控制;当某个交互通道出现故障时,应用层还能够通过其他交互通道进行数据交互,保证了数据交互的成功率,从而保证了控制的可靠性。
基于上述多核控制器的结构,下面介绍一种控制方法。
参见图6,是本申请实施例提供的控制方法的流程示意图。本申请实施例中的控制方法应用于如上述实施例中任一项所述的多核控制器中的所述硬件抽象层。作为示例而非限定,如图6所示,所述控制方法可以包括以下步骤:
S601,在监测到第一目标层发送的第一接口信息的情况下,根据所述第一接口信息从多个所述微处理器的硬件驱动层中确定出第二目标层,其中,所述第一目标层为任意一个所述微处理器中的应用层。
以图5所示多核控制器为例,假设硬件抽象层监测到第一个微处理器11的应用层111发送的第一接口信息,则第一个微处理器11的应用层111记为第一目标层。假设该第一接口信息表示第一个微处理器11的应用层111需要与第二个微处理器11中的硬件驱动层113交互数据,则第二个微处理器的硬件驱动层113记为第二目标层。
一些实现方式中,第一接口信息中携带有用于表示发送者所属微处理器的信息。可选的,多核控制器中每个微处理器具有相应的唯一编号。第一接口信息中携带有微处理器的编号。这样,硬件抽象层接收到第一接口信息后,可以根据第一接口信息携带的微处理器的编号识别出发送者所属的微处理器。例如,应用层发送的第一接口信息中表示编号的标志位为“1”,表示所属第一个微处理器。硬件抽象层根据应用层发送的第一接口信息中表示编号的标志位上的数字“1”识别出发送者(应用层)属于第一个微处理器,即发送者为应用层。
在一些实施例中,所述第一接口信息携带第一标记,所述第一标记用于指示待控制的硬件驱动层所属的微处理器。相应的,步骤S601包括:
从所述第一接口信息中识别出所述第一标记;根据所述第一标记从多个所述微处理器的硬件驱动层中确定出所述第二目标层。
一种实现方式中,多核控制器中每个微处理器具有相应的唯一编号。第一标记可以为微处理器的编号。这样,硬件抽象层接收到第一接口信息后,可以根据第一接口信息中的第一标记识别出所需参与数据交互的硬件驱动层所属的微处理器。例如,应用层发送的第一接口信息中第一标记为“2”,表示所属第二个微处理器。硬件抽象层根据应用层发送的第一接口信息中的第一标记“2”识别出所需参与数据交互的硬件驱动层属于第二个微处理器,即第一个微处理器的应用层需要与第二个微处理器的硬件驱动层交互数据。
本申请实施例中,硬件抽象层集成了与多个微处理器中应用层交互的接口,以及与多个微处理器中硬件驱动层交互的接口。通过第一标记,硬件抽象层能够清楚、快捷地识别出应用层所需交互的硬件驱动层,避免数据混淆,从而提高了控制的可靠性,同时提高了控制效率。
S602,根据所述第一接口信息控制所述第二目标层。
所述第一接口信息包括控制参数。该控制参数用于指示第二目标层执行相应的任务。例如,若需要控制第二目标层中的模数转换模块,控制参数可以包括转换精度等配置信息以及获取结果等指令。若需要控制第二目标层中的脉宽调制器,控制参数可以包括脉宽调制信号的占空比等配置信息以及获取信号等指令。
本申请实施例中,通过统一的硬件抽象层,多核控制器中每个微处理器的应用层不仅能够与自身的硬件驱动层进行数据交互,还能够与其他微处理器的硬件驱动层进行数据交互。通过上述方式,实现了应用层之间的解耦,从而降低了多核控制器的维护成本和维护难度。
基于此,若应用层与自身的硬件驱动层进行数据交互,往往不存在数据冲突的情况;而若应用层与其他微处理器中的硬件驱动层进行数据交互,则容易出现数据冲突的情况。为了解决上述问题,在一些实施例中,相应的,步骤S602包括两种情况:
情况一、若所述第一目标层与所述第二目标层属于相同的微处理器,则根据所述第一接口信息中的所述控制参数控制所述第二目标层。
情况二、若所述第一目标层与所述第二目标层属于不同的微处理器,则根据所述第一接口信息的紧急程度确定控制方式;根据所述控制方式和所述第一接口信息中的控制参数控制所述第二目标层。
上述实现方式中,在应用层与不同微处理器中硬件驱动层之间进行交互的情况下,由于涉及到不同微处理器的数据,根据进行的紧急程度采用不同的控制方式,能够在避免数据冲突的前提下,更加灵活地进行数据交互。
本申请实施例中,第一接口信息的紧急程度用于表示第一接口信息所对应的控制任务的紧急程度。例如,对于一些实时控制任务,其紧急程度较高;对于一些离线控制任务,其紧急程度较低。
一种实现方式中,所述第一接口信息包括第二标记,所述第二标记用于指示控制方式;所述根据所述第一接口信息的紧急程度确定控制方式,包括:
从所述第一接口信息中识别出所述第二标记;根据所述第二标记确定所述第一接口信息的紧急程度;根据所述第一接口信息的紧急程度确定控制方式。
示例性的,第一接口信息可以为一组字符串,该字符串中不同位置对应不同标记。例如,字符串中的第一个字符为用于表示发送者所述微处理器的编号;字符串中的第二个字符为第一标记,即表示第二目标层所属微处理器的编号;字符串中的第三个字符为第二标记,即表示控制方式。可以理解的是,若字符串的第一个字符与第二个字符的内容相同,即第一目标层与第二目标层属于相同的微处理器,字符串中的第三个字符可以为空或者为用于表示不限定控制方式的预设字符。硬件抽象层通过对第一接口信息的字符串的识别,可以获得发送者所述微处理器的编号、第二目标层所属微处理器的编号、以及控制方式等信息。
需要说明的是,上述只是第一接口信息的示例,实际应用中,第一接口信息还可以有其他形式,如数组、二进制编码等。
通过第二标记,硬件抽象层能够清楚、快捷地识别出第一接口信息的紧急程度,从而提高了控制效率。
对于情况二,本申请实施例中提供两种控制方式:
控制方式1,根据所述控制方式和所述第一接口信息中的控制参数控制所述第二目标层,可以包括:
根据所述控制参数控制所述第二目标层,以使所述第二目标层根据所述控制参数调用相应的硬件装置、并返回执行结果;接收所述第二目标层返回的所述执行结果;根据所述执行结果向所述第一目标层反馈第二接口信息。
以图2所示的多核控制器为例,第一个微处理器11中的应用层111控制第二个微处理器11中的硬件驱动层113。参见图7,是本申请实施例提供的一种控制方式的时序控制图。如图7所示,第一个微处理器11的应用层111向硬件抽象层23发送第一接口信息;硬件抽象层23根据第一接口信息中的控制参数向第二个微处理器的硬件驱动层113发送控制指令;之后,第一个微处理器11的应用层111和第二个微处理器的硬件驱动层113均等待执行结果;第二个微处理器的硬件驱动层113接收到控制指令后,执行相应的控制任务,得到执行结果,并将该执行结果返回给硬件抽象层23;硬件抽象层23根据执行结果向第一个微处理器的应用层111反馈第二接口信息。
本申请实施例中,第一方式相当于同步处理的方式,即应用层每发送一条第一接口信息,则等待,直到硬件驱动层返回一条对应的执行结果。通过这种方式,在交互需求较为紧急的情况下,能够将数据交互任务作为首要任务,以保证数据交互的及时性。
控制方式2,所述硬件抽象层层包括缓存空间。相应的,根据所述控制方式和所述第一接口信息中的控制参数控制所述第二目标层,可以包括:
在所述控制方式为第二方式的情况下,将所述控制参数存储到所述缓存空间;
在每次监测到所述第二目标层发送的第三接口信息的情况下,根据当前所述缓存空间中的所述控制参数控制所述第二目标层,以使所述第二目标层根据所述控制参数调用相应的硬件装置、并返回执行结果,其中,所述第二目标层每隔第一预设周期发送一次所述第三接口信息;
接收所述第二目标层返回的所述执行结果;
将所述执行结果存储到所述缓存空间;
在每次监测到所述第一目标层发送的第四接口信息的情况下,根据当前所述缓存空间中的所述执行结果向所述第一目标层反馈第五接口信息,其中,所述第一目标层每隔第二预设周期发送一次所述第四接口信息。
继续以图2所示的多核控制为例,第一个微处理器11中的应用层111控制第二个微处理器11中的硬件驱动层113。参见图8,是本申请实施例提供的另一种控制方式的时序控制图。如图8所示,第一个微处理器11的应用层111向硬件抽象层23发送第一接口信息,之后第一个微处理器11的应用层111可以执行其他任务;硬件抽象层23将第一接口信息中的控制参数存储到硬件抽象层23的缓存空间235中;当第二个微处理器11的硬件驱动层113向硬件抽象层23发送第三接口信息,硬件抽象层23根据缓存空间235中存储的控制参数依次向第二个微处理器11的硬件驱动层113发送控制指令;第二个微处理器11的硬件驱动层113根据控制指令执行相应的控制任务,得到执行结果,并将执行结果发送给硬件抽象层23;硬件抽象层23将执行结果存储到缓存空间235;当第一个微处理器11的应用层111向硬件抽象层23发送第四接口信息,硬件抽象层23根据缓存空间235中的执行结果向第一个微处理器11的应用层111反馈第五接口信息。
本申请实施例中,第二方式相当于异步处理的方式,即应用层发送一条第一接口信息之后,可以先处理其他任务,然后周期性地轮询硬件抽象层的缓存空间,以获取硬件驱动层返回的执行结果。通过这种方式,在交互需求不紧急的情况下,应用层可以优先处理其他任务,避免因等待硬件驱动层返回执行结果而造成对其他任务的影响,从而提高了控制效率。
一些实现方式中,第一目标层发送的控制参数与第二目标层返回的执行结果共用相同的存储区域。这种方式下,控制参数与执行结果容易产生数据混淆,导致控制可靠性较差。
为了解决上述问题,在一些实施例中,所述缓存空间包括第一区域和第二区域;
所述将所述控制参数存储到所述缓存空间,包括:
将所述控制参数存储到所述第一区域;
所述将所述执行结果存储到所述缓存空间,包括:
将所述执行结果存储到所述第二区域。
示例性的,假设缓存空间对应的存储地址为0x100-0x1000,将其中的0x100-0x500记为第一区域,将0x501-0x1000记为第二区域。对于第一区域,只能写入控制参数;对于第二区域,只能写入执行结果。
本申请实施例中,相当于将应用层发送的指令与硬件驱动层返回的执行结果分区存储。对于第一区域,应用层只能写入数据,硬件驱动层只能读出数据;对于第二区域,应用层只能读出数据,硬件驱动层只能写入数据。通过上述实现方式,避免了数据混淆。
实际应用中,第一区域中存储的控制参数的数据长度可能较长,超出了第二目标层一次性所能读取的数据长度。该情况下,硬件抽象层需要多次、分批地将第一区域中的数据发送给第二目标层。由于控制方式2为异步处理方式,在第二目标层读取第一区域中数据的过程中,第一目标层可能需要向第一区域中写入数据。这就容易导致数据混淆的情况,即第二目标层还未读取完数据,第一目标层已经向第一区域中写入了新的数据,新的数据覆盖了原有的数据。导致控制任务处理失败。
为了解决上述问题,在一些实施例中,所述方法还包括:
在每次监测到所述第二目标层发送的第三接口信息的情况下,判断当前所述第一区域中数据的数据长度是否大于预设长度;
若当前所述第一区域中数据的数据长度大于预设长度,则生成第三标记;在接收到所述第二目标层返回的所述执行结果之后,删除所述第三标记;
若当前所述第一区域中数据的数据长度小于或等于预设长度,则不生成第三标记。
其中,预设长度根据第二目标层一次性能够读取的数据长度确定。
一种实现方式中,可以单独设置标记位。例如,可以将第一区域的首地址对应的存储空间设置为标记位,第一目标层写入的数据从第一区域的第二个地址处开始存储。另一种实现方式中,可以不单独设置标记位。例如,可以在第二目标层第一次读取第一区域中的数据后,在第一区域的首地址处添加第三标记。
本申请实施例中,若第一区域中数据的数据长度大于预设长度,表示硬件驱动层无法一次性地全部读取第一区域中的数据。这种情况下,通过第三标记指示硬件驱动层正在读取第一区域中的数据,可以有效防止应用层在硬件驱动层读取过程中向第一区域写入数据,从而有效避免了数据混淆。
在一些实施例中,所述将所述控制参数存储到所述第一区域,包括:
判断当前是否存在所述第三标记;
若当前不存在所述第三标记,则将所述控制参数存储到所述第一区域;
若当前存在所述第三标记,则向第一目标层发送提示信息,以使第一目标层在下一个周期重新发送控制参数。
本申请实施例中,通过第三标记指示硬件驱动层正在读取第一区域中的数据,可以有效防止应用层在硬件驱动层读取过程中向第一区域写入数据,从而有效避免了数据混淆。
如上所述的S602的两种情况,硬件抽象层传递的是第一目标层的控制参数以及第二目标层的执行结果。在第一目标层和第二目标层属于不同的微处理器的情况下,第一目标层无需知道第二目标层的实现细节,只需等待第二目标层的执行结果即可。通过这种方式,多核控制器中的各个微处理器无需公开各自的算法和底层数据等,有效提高了多核控制器的数据安全性。
示例性的,参见图9,是本申请另一实施例提供的控制方法的流程示意图。如图9所示,控制方法包括以下步骤:
S901,第一目标层向硬件抽象层发送第一接口信息。
S902,硬件抽象层判断第一目标层与所需交互的第二目标层是否属于相同的微处理器。
判断过程请参见S601实施例中的描述。
S903,若是,则硬件抽象层根据第一接口信息中的控制参数控制所述第二目标层。
请参见上述情况一实施例中的描述。
S904,若否,则硬件抽象层根据第一接口信息中的第二标记确定紧急程度。
请参见上述情况二实施例中的描述。
S905,若较为紧急,则采用第一方式。
第一方式请参见上述控制方式1的实施例。
S906,若不紧急,则采用第二方式。
第二方式请参见上述控制方式2的实施例。
本申请实施例中,通过统一的硬件抽象层,多核控制器中每个微处理器的应用层不仅能够与自身的硬件驱动层进行数据交互,还能够与其他微处理器的硬件驱动层进行数据交互。通过上述方式,实现了应用层之间的解耦,从而降低了多核控制器的维护成本和维护难度。
另外,在应用层与不同微处理器中硬件驱动层之间进行交互的情况下,由于涉及到不同微处理器的数据,根据进行的紧急程度采用不同的控制方式,能够在避免数据冲突的前提下,更加灵活地进行数据交互。
可以理解的是,上述实施例中,以第一目标层为应用层、第二目标层为硬件驱动层为例进行说明。另一种应用情形可以为,第一目标层为硬件驱动层、第二目标层为应用层。另一种应用情形还可以为,第一目标层和第二目标层为不同微处理器的应用层。对于上述应用情形,其实现方式与上述实施例所述的实现方式相同,在此不再赘述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例提供了一种车辆控制系统,所述车辆控制系统包括如上述各实施例中所述的多核控制器以及多个硬件装置,所述多核控制器分别连接多个所述硬件装置;其中,所述多核控制器用于根据如上述各实施例所述的控制方法控制所述硬件装置。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述各实施例中的控制方法。
本实施例还提供了一种计算机程序产品,该计算机可读存储介质存储有程序代码,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的控制方法。
本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本申请并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。

Claims (19)

1.一种多核控制器,其特征在于,包括多个微处理器,每个所述微处理器包括应用层和硬件驱动层;
其中,多个所述微处理器共用一个硬件抽象层;
多个所述微处理器中的所述应用层通过所述硬件抽象层控制多个所述微处理器中的所述硬件驱动层。
2.如权利要求1所述的多核控制器,其特征在于,每个所述微处理器中的所述应用层包括第一交互接口,所述硬件抽象层包括与所述第一交互接口相匹配的第二交互接口,所述第一交互接口与所述第二交互接口连接;
所述应用层与所述硬件抽象层通过所述第一交互接口和所述第二交互接口交互数据。
3.如权利要求2所述的多核控制器,其特征在于,每个所述微处理器中的所述硬件驱动层包括第三交互接口,所述硬件抽象层包括与所述第三交互接口相匹配的第四交互接口,所述第三交互接口与所述第四交互接口连接;
所述硬件驱动层与所述硬件抽象层通过所述第三交互接口和所述第四交互接口交互数据。
4.如权利要求1至3任一项所述的多核控制器,其特征在于,每个所述微处理器中的所述应用层包括至少一个第一模块,所述第一模块用于实现算法功能;
其中,不同的微处理器中的所述应用层包括的功能模块不同。
5.如权利要求1所述的多核控制器,其特征在于,每个所述微处理器中的所述硬件驱动层包括至少一个第二模块,所述第二模块用于驱动硬件装置。
6.如权利要求5所述的多核控制器,其特征在于,所述硬件抽象层包括至少一个第三模块,每个所述第三模块对应一个所述第二模块,所述第三模块用于将与所述第三模块对应的第二模块所驱动的硬件装置的功能封装为接口函数、以供所述应用层进行调用;
其中,所述硬件抽象层中包括的所述第三模块的个数与多个所述微处理器的所述硬件驱动层包括的所述第二模块的类型的总个数相同。
7.如权利要求1所述的多核控制器,其特征在于,每个所述微处理器中的所述应用层还包括第五交互接口;
其中,任意两个所述微处理器中的所述应用层通过所述第五交互接口交互数据。
8.一种控制方法,其特征在于,应用于如权利要求1至7任一项所述的多核控制器中的所述硬件抽象层,所述控制方法包括:
在监测到第一目标层发送的第一接口信息的情况下,根据所述第一接口信息从多个所述微处理器的硬件驱动层中确定出第二目标层,其中,所述第一目标层为任意一个所述微处理器中的应用层;
根据所述第一接口信息控制所述第二目标层。
9.如权利要求8所述的控制方法,其特征在于,所述第一接口信息携带第一标记,所述第一标记用于指示待控制的硬件驱动层所属的微处理器;
所述根据所述第一接口信息从多个所述微处理器的硬件驱动层中确定出第二目标层,包括:
从所述第一接口信息中识别出所述第一标记;
根据所述第一标记从多个所述微处理器的硬件驱动层中确定出所述第二目标层。
10.如权利要求8或9所述的控制方法,其特征在于,所述第一接口信息包括控制参数;
所述根据所述第一接口信息控制所述第二目标层,包括:
若所述第一目标层与所述第二目标层属于相同的微处理器,则根据所述第一接口信息中的所述控制参数控制所述第二目标层。
11.如权利要求8或9所述的控制方法,其特征在于,所述第一接口信息包括控制参数;
所述根据所述第一接口信息控制所述第二目标层,包括:
若所述第一目标层与所述第二目标层属于不同的微处理器,则根据所述第一接口信息的紧急程度确定控制方式;
根据所述控制方式和所述第一接口信息中的控制参数控制所述第二目标层。
12.如权利要求11所述的控制方法,其特征在于,所述第一接口信息包括第二标记,所述第二标记用于指示控制方式;
所述根据所述第一接口信息的紧急程度确定控制方式,包括:
从所述第一接口信息中识别出所述第二标记;
根据所述第二标记确定所述第一接口信息的紧急程度;
根据所述第一接口信息的紧急程度确定所述控制方式。
13.如权利要求11所述的控制方法,其特征在于,所述根据所述控制方式和所述第一接口信息中的控制参数控制所述第二目标层,包括:
在所述控制方式为第一方式的情况下,根据所述控制参数控制所述第二目标层,以使所述第二目标层根据所述控制参数调用相应的硬件装置、并返回执行结果;
接收所述第二目标层返回的所述执行结果;
根据所述执行结果向所述第一目标层反馈第二接口信息。
14.如权利要求11所述的控制方法,其特征在于,所述硬件抽象层包括缓存空间;
所述根据所述控制方式和所述第一接口信息中的控制参数控制所述第二目标层,包括:
在所述控制方式为第二方式的情况下,将所述控制参数存储到所述缓存空间;
在每次监测到所述第二目标层发送的第三接口信息的情况下,根据当前所述缓存空间中的所述控制参数控制所述第二目标层,以使所述第二目标层根据所述控制参数调用相应的硬件装置、并返回执行结果,其中,所述第二目标层每隔第一预设周期发送一次所述第三接口信息;
接收所述第二目标层返回的所述执行结果;
将所述执行结果存储到所述缓存空间;
在每次监测到所述第一目标层发送的第四接口信息的情况下,根据当前所述缓存空间中的所述执行结果向所述第一目标层反馈第五接口信息,其中,所述第一目标层每隔第二预设周期发送一次所述第四接口信息。
15.如权利要求14所述的控制方法,其特征在于,所述缓存空间包括第一区域和第二区域;
所述将所述控制参数存储到所述缓存空间,包括:
将所述控制参数存储到所述第一区域;
所述将所述执行结果存储到所述缓存空间,包括:
将所述执行结果存储到所述第二区域。
16.如权利要求15所述的控制方法,其特征在于,所述方法还包括:
在每次监测到所述第二目标层发送的第三接口信息的情况下,判断当前所述第一区域中数据的数据长度是否大于预设长度;
若当前所述第一区域中数据的数据长度大于预设长度,则生成第三标记;
在接收到所述第二目标层返回的所述执行结果之后,删除所述第三标记。
17.如权利要求16所述的控制方法,其特征在于,所述将所述控制参数存储到所述第一区域,包括:
判断当前是否存在所述第三标记;
若当前不存在所述第三标记,则将所述控制参数存储到所述第一区域。
18.一种车辆控制系统,其特征在于,所述车辆控制系统包括如权利要求1至7任一项所述的多核控制器以及多个硬件装置,所述多核控制器分别连接多个所述硬件装置;
其中,所述多核控制器用于根据如权利要求8至17任一项所述的控制方法控制所述硬件装置。
19.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求8至17任一项所述的控制方法。
CN202310848527.9A 2023-07-12 2023-07-12 多核控制器、控制方法、车辆控制系统及可读存储介质 Active CN116578524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310848527.9A CN116578524B (zh) 2023-07-12 2023-07-12 多核控制器、控制方法、车辆控制系统及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310848527.9A CN116578524B (zh) 2023-07-12 2023-07-12 多核控制器、控制方法、车辆控制系统及可读存储介质

Publications (2)

Publication Number Publication Date
CN116578524A true CN116578524A (zh) 2023-08-11
CN116578524B CN116578524B (zh) 2023-12-15

Family

ID=87538186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310848527.9A Active CN116578524B (zh) 2023-07-12 2023-07-12 多核控制器、控制方法、车辆控制系统及可读存储介质

Country Status (1)

Country Link
CN (1) CN116578524B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117931483A (zh) * 2024-03-21 2024-04-26 宁德时代新能源科技股份有限公司 操作系统及生成方法、电子设备、存储介质和程序产品

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010041956A1 (en) * 1996-12-16 2001-11-15 William S. Wong Automobile information system
CN101354693A (zh) * 2008-09-11 2009-01-28 重庆邮电大学 一种异构多核处理器的核间通信调度系统及方法
JP2009252194A (ja) * 2008-04-11 2009-10-29 Nec Electronics Corp データ処理装置、ハードウェアアクセス方法、及びハードウェアアクセスプログラム
CN102830785A (zh) * 2011-06-17 2012-12-19 上海果壳电子有限公司 设备端输入交互的快速响应系统及实现方法
CN106502681A (zh) * 2016-10-31 2017-03-15 广东欧珀移动通信有限公司 一种传感器的注册方法、装置及移动终端
WO2018206793A1 (en) * 2017-05-11 2018-11-15 Tredzone Multicore processing system
CN210760282U (zh) * 2019-10-17 2020-06-16 吉林大学 一种基于分布式驱动车辆的整车控制器
CN111857661A (zh) * 2020-07-15 2020-10-30 北京无线电测量研究所 机载雷达主控软件框架设计方法、机载雷达、计算机设备
CN112751737A (zh) * 2019-10-31 2021-05-04 重庆长安汽车股份有限公司 一种车机端can报文传输方法
CN114969694A (zh) * 2022-05-31 2022-08-30 湖南三一智能控制设备有限公司 系统控制方法、装置、控制系统及车辆
CN115794680A (zh) * 2022-11-29 2023-03-14 普华基础软件股份有限公司 一种基于硬件克隆技术的多核操作系统及其控制方法
CN115794688A (zh) * 2022-11-23 2023-03-14 深圳海星智驾科技有限公司 一种车载设备控制方法及系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010041956A1 (en) * 1996-12-16 2001-11-15 William S. Wong Automobile information system
JP2009252194A (ja) * 2008-04-11 2009-10-29 Nec Electronics Corp データ処理装置、ハードウェアアクセス方法、及びハードウェアアクセスプログラム
CN101354693A (zh) * 2008-09-11 2009-01-28 重庆邮电大学 一种异构多核处理器的核间通信调度系统及方法
CN102830785A (zh) * 2011-06-17 2012-12-19 上海果壳电子有限公司 设备端输入交互的快速响应系统及实现方法
CN106502681A (zh) * 2016-10-31 2017-03-15 广东欧珀移动通信有限公司 一种传感器的注册方法、装置及移动终端
WO2018206793A1 (en) * 2017-05-11 2018-11-15 Tredzone Multicore processing system
CN210760282U (zh) * 2019-10-17 2020-06-16 吉林大学 一种基于分布式驱动车辆的整车控制器
CN112751737A (zh) * 2019-10-31 2021-05-04 重庆长安汽车股份有限公司 一种车机端can报文传输方法
CN111857661A (zh) * 2020-07-15 2020-10-30 北京无线电测量研究所 机载雷达主控软件框架设计方法、机载雷达、计算机设备
CN114969694A (zh) * 2022-05-31 2022-08-30 湖南三一智能控制设备有限公司 系统控制方法、装置、控制系统及车辆
CN115794688A (zh) * 2022-11-23 2023-03-14 深圳海星智驾科技有限公司 一种车载设备控制方法及系统
CN115794680A (zh) * 2022-11-29 2023-03-14 普华基础软件股份有限公司 一种基于硬件克隆技术的多核操作系统及其控制方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117931483A (zh) * 2024-03-21 2024-04-26 宁德时代新能源科技股份有限公司 操作系统及生成方法、电子设备、存储介质和程序产品

Also Published As

Publication number Publication date
CN116578524B (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
CN116578524B (zh) 多核控制器、控制方法、车辆控制系统及可读存储介质
EP4207707A1 (en) Data transmission system, data transmission method, smart vehicle and device
CN114077462A (zh) 软件操作系统调用Android HIDL接口的方法、装置、设备及介质
CN116455694A (zh) 一种波特率设置方法、装置、设备和存储介质
CN114244917B (zh) 一种数据传输方法、装置及系统
CN110223620B (zh) 驱动控制方法、组件及显示装置
CN112905313B (zh) 任务处理方法、装置及电子设备
CN108197043B (zh) 一种智能车机的外设硬件的控制系统及方法
CN115827285B (zh) 一种跨平台通信方法、系统、装置、设备及介质
CN111459519A (zh) 一种mcu升级方法及装置
CN114077562A (zh) 一种1553b总线控制器协议处理ip核
CN116719586A (zh) 软件模块调用方法、装置、设备、存储介质和程序产品
CN117055923A (zh) 一种固件升级系统、方法、装置、电子设备及存储介质
CN116319499A (zh) 车辆的诊断方法、装置、电子设备及存储介质
CN108153564B (zh) 界面管理方法、设备及系统和计算机可读存储介质
CN114844740A (zh) 双芯片间通信方法及芯片
CN110661852B (zh) 云环境中的业务处理方法及装置
CN112306912B (zh) 串行接口设备驱动装置、嵌入式处理器和视频控制器
CN117112048B (zh) 基于XML文件的UDS Clinet实现方法
US11782702B2 (en) Generation of code for a system
CN116820798B (zh) 数据处理方法、装置以及车辆
CN102567034B (zh) 驱动程序管理系统
CN115543343B (zh) 变量跨线程操作方法及装置
CN116880982A (zh) Ros2确定性调度方法、装置、电子设备、存储介质及车辆
WO2023142091A1 (zh) 计算任务调度装置、计算装置、计算任务调度方法和计算方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant