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

用于控制具有多核处理器的发动机控制单元的方法

文献发布时间:2023-06-19 12:19:35


用于控制具有多核处理器的发动机控制单元的方法

技术领域

本发明涉及汽车领域,并且涉及操纵机动车辆的内燃发动机运行的发动机控制单元的控制。

背景技术

大多数当前的机动车辆具有通常位于发动机罩下方的发动机控制单元。该发动机控制单元与传感器相连,从而可以获取关于发动机状态的信息(温度、压力、振动、各种部件的位置等)。通过考虑由这些传感器收集的数据,发动机控制单元通过控制诸如燃料喷射器、可能的火花塞、布置在与发动机相关联的各种流体回路中的阀等致动器来操纵内燃发动机。为了确保其功能,发动机控制单元包括用于处理信息的电子装置,例如微处理器。

近来的机动车辆车载了越来越多的传感器,且它们的发动机控制单元被编程为以越来越复杂和精细的方式操纵传感器。因此,从其计算能力的角度来看,也就是说从其微处理器的能力来看,发动机控制单元的尺寸通常在增加。在这种情况下,最近的研究已经导致在发动机控制单元中使用多核微处理器,即具有同时运行的多个物理核心的微处理器。因此,多个程序可以并行且彼此独立地被执行。

然而,由于发动机控制单元的功能是操纵复杂的物理部件(诸如内燃发动机),其故障率必须接近于零,因为其故障会导致失灵,而失灵可能导致直至发动机的损坏,以及对车辆乘客造成安全问题。因此,发动机控制单元内的数字操作的可靠性至关重要。利用由多核微处理器提供的可能性(并行执行多个程序)只能在保证提供的这些可能性不会导致可靠性损失的情况下进行。然而,某些操作是特别关键的,因为它们必须在高频率下进行。例如,在高发动机转速下,按发动机的旋转计算的循环操作就是这种情况。

在现有技术中,为了使这些操作安全,用于控制具有多核微处理器的发动机控制单元的方法通常使用信号台原理(principe de sémaphore),即当任务的可执行文件读取或修改一个变量时,它会锁定该变量,使得其他可执行文件无法同时读取或修改该变量。从安全性的角度来看,这些方法是令人满意的,但会导致相当长的延迟时间,因为可执行文件因此是按顺序执行的,且这些方法因此不能充分利用由多核处理器提供的并行处理能力。

发明内容

本发明提供了一种用于控制发动机控制单元的方法,当使用至少两个微处理器核心时,该方法使操作安全。

为此,本发明涉及一种用于控制发动机控制单元的方法,该发动机控制单元连接到与车辆的内燃发动机相关联的传感器和致动器,该发动机控制单元包括至少两个微处理器核心,该控制方法包括执行循环任务的步骤,该任务的执行由再发事件触发,该再发事件以与发动机旋转相关联的周期重复,该循环任务由分在母型副任务和至少一个子型副任务中的可执行文件组成,其中母型副任务由再发事件触发并由一个微处理器核心执行,子型副任务在母型副任务之后由另一个微处理器核心执行。

该方法包括以下步骤:

- 当第二周期的母型副任务开始时,确定在第一周期的最后一个子型副任务中剩余待执行的可执行文件的数量;

- 当第一周期的最后一个子型副任务完成时,确定在第二周期的母型副任务中已经执行的可执行文件的数量。

根据本发明的这种方法对于按发动机旋转计算的循环任务(也就是说,当这种循环任务的执行由以与发动机旋转相关的周期重复的事件触发时)特别有利。因此,该相同的循环任务会以周期重复,该周期随着发动机转速的增加而缩短。因此,在高转速下,该循环任务的新循环在前一个任务开始后很快再次开始。

该方法将在一个循环中要执行的每个任务分成分配在微处理器的各个核心上的各个副任务。将任务划分为副任务使得可以在可用的微处理器核心之间分配计算负载。这种划分是有利的,因为它允许利用所有可用的计算手段,并允许更快和更强大的处理,以及允许平衡多种微处理器核心之间的计算负载。

该方法允许循环任务的串连变得安全。当一个循环的最后一个子型副任务结束,下一循环的母型副任务开始时,该方法确定子型副任务中还有多少可执行文件需要执行,以及母型副任务中已经执行的可执行文件的数量。因此,识别了最后一个子型副任务和下一循环的母型副任务之间的重叠周期。

根据本发明的方法可以允许对发动机控制单元进行诊断。因此,可以以规则的间隔或按时地研究副任务在循环任务串连时的重叠,以识别在已经被识别的重叠阶段期间会彼此冲突的可执行文件。具体来说,当子型副任务和下一个循环的母型副任务重叠时,如果同时执行可执行文件,它们可能会发生冲突。可能发生冲突的可执行文件例如为修改同一个变量的可执行文件。

根据本发明的方法还允许在同一个任务中更安全地划分可执行文件。具体来说,识别了在任务重叠期间待执行的可执行文件。动态地(在运行期间)或静态地(在维护阶段),已知为并发的可执行文件可以在任务内移位以便在该重叠范围之外被执行。

因此,根据本发明的方法允许更好地了解发动机控制单元的潜在故障,并且使得可以避免这些故障,特别是那些与在重叠时间段期间并发的可执行文件的执行相关的故障。

因此,发动机控制单元以及发动机本身受益于更精确和更可靠的控制。例如,如果母型任务包括允许计算下一次燃料喷射必须在哪个气缸中执行的可执行文件,则发动机控制单元防止在与下一循环的母型任务重叠期间执行的子型任务的可执行文件相对于当前循环使用不正确的气缸号(其将由新的母型任务计算)。因此,汽油的注入量是最佳的,污染产品的排放或消耗得到更好的控制。

用于控制发动机控制单元的方法可以单独或组合地具有以下附加特征:

- 在确定在第一周期的最后一个子型副任务中剩余待执行的可执行文件的数量的步骤之后,该方法包括将可执行文件的该数量存储在存储器中的步骤;

- 在确定在第二周期的母型副任务中已经执行的可执行文件的数量的步骤之后,该方法包括将可执行文件的该数量存储在存储器中的步骤;

- 存储在存储器中的可执行文件的数量进一步保存在诊断存储器中;

- 该方法包括诊断步骤,其包括读取诊断存储器;

- 确定在第一周期的最后一个子型副任务中剩余待执行的可执行文件的数量的步骤包括实施子型副任务的可执行文件计数器;

- 子型副任务的可执行文件计数器的初始值对应于子型副任务中的可执行文件的总数,该计数器在执行子型副任务的每个可执行文件时递减;

- 确定在第二周期的母型副任务中已经执行的可执行文件的数量的步骤包括实施母型副任务的可执行文件计数器;

- 母型副任务的可执行文件计数器的初始值为零,该计数器在执行每个可执行文件时递增。

附图说明

现在将参照附图描述本发明的一个优选示例性实施例,其中:

图1示出了能够实施根据本发明的控制方法的发动机控制单元。

图2是图示了不具有重叠周期的两个循环任务的串连的图。

图3类似于图2,并且图示了具有重叠周期的任务串连的情况。

图4是图2的详细视图。

图5是图3的详细视图。

具体实施方式

图1示意性地示出了用于操纵机动车辆的内燃发动机的发动机控制单元1。

发动机控制单元1连接到一系列传感器3,例如位置传感器、温度传感器、压力传感器、流量传感器等。发动机控制单元1还连接到控制输出4,控制输出4能够控制涉及操纵发动机的致动器。这些致动器例如是火花塞、燃料喷射器、阀等。

发动机控制单元1以已知的方式编程,以便一方面获取由传感器3提供的测量值,另一方面控制致动器以确保发动机的运行。

发动机控制单元1包括微处理器2,在本示例中,微处理器2设有两个核心C1,C2。除了诸如随机存取存储器、各种总线(未示出)等允许微处理器2运行的传统元件之外,单元1包括第一可执行文件计数器RTF和第二可执行文件计数器RTM,它们旨在实现下面描述的方法。这些可执行文件计数器RTF和RTM各自与可执行文件的存储器11、12相关联。诊断存储器13使得可以对可执行文件的存储器11、12进行保存。

图2示出了在微处理器2中运行的循环任务。

微处理器2是传统的多核微处理器。发动机控制单元1包括适于实现为发动机控制单元1设计的计算机程序的操作系统。因此,使微处理器2执行对应于由发动机控制单元1实现的各种功能的任务(任务也称为“执行线程”)。这些任务中的一个例如可以是控制燃料喷射顺序、控制火花塞点火顺序或控制阀的打开。这些任务中的其中一些是循环的,并且按发动机的旋转计算;例如,喷射任务和点火任务就是这种情况。在这些情况下,任务的执行由通过传感器3中的一个识别的事件触发,该事件与发动机的旋转相关联。例如,发动机的活塞中的一个到达其上止点或另外的预定位置的事实是触发燃料在相应气缸中的喷射顺序的事件。因此,这些循环任务是由一个事件触发的,该事件以与发动机转速相关的周期重复。因此,发动机旋转速度的增加导致两次事件之间经过的时间缩短。

在图2中,触发器事件14A显示在图表的开头。该事件14A触发任务FA。继续上面给出的示例,事件14A是发动机的活塞存在于上止点处或接近该上止点的位置处,并且任务FA是将燃料喷射到相应气缸中的任务。该事件是循环的,因为它在发动机的每个旋转循环中重复(当活塞返回到该相同位置时)。

在图2中,事件14B对应于在下一个发动机循环期间发生的相同事件。因此,事件14A、14B以取决于发动机旋转转速的周期8A、8B相继。

在图2的示例中,发动机转速是恒定的,并且周期8A、8B的持续时间大于任务FA、FB的运行持续时间。

在本示例中,由于微处理器2是双核心C1、C2微处理器,每个任务FA、FB的执行在微处理器2的不同核心C1、C2之间进行分配。在图2的示意图中,上部的条带带有参考C1并对应于由第一核心C1执行的操作,而下部的条带带有参考C2并对应于由微处理器2的第二核心C2执行的操作。因此,每个任务FA,FB被分成两个副任务,称为“母型副任务”FA1、FB1和“子型副任务”FA2、FB2。母型副任务FA1,FB1在第一核心C1上执行,而子型副任务FA2,FB2由第二核心C2执行。

对于每个任务FA、FB,母型副任务FA1、FB1和子型副任务FA2、FB2以链式方式串连,也就是说,子型副任务FA2、FB2直到母型副任务FA1、FB1完成才开始。

图3显示了当发动机旋转速度已经增加时与图2相同的元件。两个事件14A、14B、14C之间的周期9A、9B、9C小于图2的周期8A、8B。

在图3的该示例中,周期9A、9B、9C现在小于用于执行任务FA、FB、FC所需的时间。因此,每个子型副任务FA2、FB2结束的时候而下一个循环的母型副任务FB1、FC1已经开始了。因此,在周期9A、9B、9C的任务FA、FB、FC和下一周期的任务之间存在时间重叠区10(在图3中用影线示出)。

图4和图5更详细地示出了允许管理该重叠区10的方法。

图4和图5是相似的,并且每个都示出了第一周期的子型副任务FA2和下一周期的母型副任务FB1。图4对应于图2的配置,其中周期8A、8B具有足够的持续时间,使得子型副任务FA2和下一周期的母型副任务FB1不重叠。图5对应于图3的配置,其中缩短减的周期9A、9B导致子型副任务FA2和下一周期的母型副任务FB1的重叠。

在图4和图5中,已经显示了任务的细节。这些任务具体由在这些图中示意性地显示的可执行文件R组成。诸如燃料喷射操作的任务通常包括大约五十个可执行文件R,每个可执行文件是一个函数(简单的数学运算)或可由微处理器2执行的一组函数。指示将发生下一次燃料喷射的发动机气缸号的变量的更新是可执行文件R的一个示例。

用于控制发动机控制单元1的方法实施针对子型副任务FA2的可执行文件的第一可执行文件计数器RTF,以及针对母型副任务FB1的可执行文件的第二可执行文件计数器RTM。

在图4和图5中,可执行文件计数器RTF和RTM显示在副任务FA2、FB1下,其值由所述计数器连续地获取。

当子型副任务FA2开始时,计数器RTF取等于子型副任务FA2的可执行文件的总数的初始值。在执行子型副任务FA2的第一个可执行文件时,计数器RTF因此等于6(在图示的示例中)。计数器RTF是从第一个可执行文件开始递减的计数器:每个新的可执行文件R的执行导致计数器RTF递减。在执行第二个可执行文件R时,计数器RTF递减到值5,以此类推。在最后一个可执行文件R的执行过程中,计数器RTF等于1,并且在该最后一个可执行文件R的执行结束时,计数器RTF取值0。

至于第二可执行文件计数器RTM,它是一个增量计数器,并且与母型副任务FB1的可执行文件R的计数相关联。在母型副任务FB1开始之前,计数器RTM取初始值零。在执行母型副任务FB1的第一个可执行文件R时,计数器RTM取值1。计数器RTM从值0开始,并且对于在母型副任务FB1期间执行的每个新的可执行文件R增加一个单位。通过开始执行最后一个可执行文件R,计数器RTM取值5(在图示的示例中,母型副任务FB1包括5个可执行文件R)。

在任务FA的末尾,也就是子型副任务FA2的末尾,发动机控制单元1将读取计数器RTM的值。同样,在下一个循环的任务FB开始的时刻,也就是说当母型副任务FB1开始时,发动机控制单元1将读取计数器RTF的值。

在图4的示例中,其中子型副任务FA2和母型副任务FB1不重叠,计数器RTM在其被读取的时刻(在子型副任务FA2的末尾处)等于0,并且计数器RTF在其被读取的时刻(在母型副任务FB1的开始处)等于0。

参考图5,子型副任务FA2和下一个循环的母型副任务FB1重叠。在这种情况下,当母型副任务FB1开始时,计数器RTF等于4。当子型副任务FA2的执行结束时,计数器RTM的值等于3。

在该示例中,计数器RTF的值表示当母型副任务FB1开始时,子型副任务FA2仍有4个可执行文件R有待执行。计数器RTM的值表示当子型副任务FA2完成时,下一个循环的母型副任务FB1已经执行了3个可执行文件R(更准确地说,前两个可执行文件R已经完全执行,第三个可执行文件正在执行中)。

与可执行文件计数器RTF和RTM相关的计数器存储器11、12使得能够存储由发动机控制单元1读取的最后值。在子型副任务FA2结束时,计数器RTM的值被读取并存储在存储器12中,而在母型副任务FB1开始时,计数器RTF的值被读取并存储在存储器11中。当计数器RTM和RTF大于零时,诊断存储器13保存由存储器11、12存储的计数器RTM和RTF的所有值。

在对发动机控制单元1进行诊断的过程中,可能会查阅诊断存储器13,以找出过去哪些任务的串连中存在重叠10,以及在该重叠期间执行了哪些可执行文件。该诊断可按时地或周期性地进行。在周期性地进行该诊断的情况下,可以修改任务的组织,使得当被认为是关键的可执行文件R形成重叠区10的一部分时,这些可执行文件R可以被移动到子型副任务FA2的开端或母型副任务FB1的末尾,从而不再出现在重叠区10中。这种任务重组也可以从一个循环到下一个循环以动态的方式进行。

在不脱离本发明的范围的情况下,可以实现上述示例的变型。例如,所描述的示例涉及配备有包括两个核心C1、C2的微处理器2的发动机控制单元;然而,本发明也适用于允许并行执行副任务的所有数字处理装置,并且例如适用于具有多个微处理器和/或具有大于2的任何数量的核心的处理器的发动机控制单元。在数字处理装置数量大于2的情况下,例如4核微处理器,母型副任务FA1将产生与可用于处理它的微处理器的核心一样多的级联的子型任务。例如,如果一个微处理器包括4个核心,母型副任务将在第一核心上执行,并可能产生在第二核心上执行的第一个子型副任务,这个子型副任务本身在完成时产生在第三个核心上执行的第二个子型副任务,然后第四个子型副任务在第四个核心上执行。然后,根据本发明的方法将在最后一个子型副任务和下一个循环的母型副任务的串连期间实施可执行文件计数器RTF和RTM。

相关技术
  • 用于控制具有多核处理器的发动机控制单元的方法
  • 用于使具有不同的安全等级的软件在多核处理器系统中共存的方法
技术分类

06120113250408