电子控制装置及栈使用方法与流程

文档序号:13741901阅读:140来源:国知局
电子控制装置及栈使用方法与流程

本发明涉及使用栈(stack)区域的电子控制装置及栈使用方法。



背景技术:

在电子控制装置中,ram(randomaccessmemory;随机存取存储器)的一部分作为栈区域使用。这种栈区域用于临时地保存电子控制装置中的处理中的数据等的情况(例如,参照专利文献1)。

现有技术文献

专利文献

专利文献1:日本特开2008-184912号公报



技术实现要素:

发明要解决的问题

在iso(intemationalorganizationforstandardization;国际标准化组织)26262中,确定了有关车辆的功能安全的基准。在该基准中,确定了称为asil(automotivesafetyintegritylevel;汽车安全完整性级别)的安全性的级别。安全性的级别为5级,以安全性的基准高的顺序为asil-d、asil-c、asil-b、asil-a、qm。而且,在实现所述功能安全的基础上,例如,对每个任务分配安全性的级别,要求被分配了级别低的任务的故障对级别更高的任务不产生影响。

因此,在电子控制装置中,要求因分配了安全性高的级别(例如,asil-d)的任务而临时保存在栈区域中的栈数据,不被分配了安全性更低的级别(例如,qm)的任务访问。

因此,提供可强化对栈数据的访问限制的电子控制装置及栈使用方法。

解决问题的方案

为了解决所述课题,电子控制装置包括存储器及处理器,处理器在执行任务时,对于该任务,使用在存储器中被确保的多个栈区域之中、被预先分配给所述任务的至少一个栈区域。

发明的效果

根据所述电子控制装置,可以强化对栈数据的访问限制,由此可以实现功能安全。

附图说明

图1是表示电子控制装置的实施方式的框图。

图2是表示所述电子控制装置的栈区域的结构的图。

图3是表示所述电子控制装置的栈区域的结构的图。

图4是表示所述电子控制装置执行任务时的流程的图。

图5是表示所述电子控制装置执行监视栈区域的使用的任务时的流程的图。

图6是表示所述电子控制装置监视栈区域的使用的定时的图。

具体实施方式

以下,基于附图说明本发明的实施方式。

图1是表示装载在汽车中的电子控制装置100的实施方式的图。该电子控制装置100进行车辆的各种各样的控制,例如,进行内燃机的控制。电子控制装置100包括:多个cpu(centralprocessingunit;中央处理器)110;多个本地存储器120;以及全局存储器130。

cpu110可以读出电子控制装置100上连接的各种传感器的检测值等,计算车辆控制用的目标值。具体而言,cpu110中,被输入包含未图示的曲柄角度传感器、凸轮角传感器、水温传感器、节气门传感器、气流传感器、空燃比传感器的各种传感器等的信号。然后,cpu110例如参照控制用的图(map),运算在电子控制油门阀、燃油喷射阀、点火线圈等的各种控制上需要的数据。

所述cpu110上,连接着对各cpu110的每一个设置的本地存储器120、以及所有的cpu110可访问的全局存储器130。这种本地存储器120以一对一方式对应于各cpu110,仅用于对应的cpu110的执行。在这种本地存储器120中,设置了以lifo(lastinfirstout)方式保持数据的栈区域122和其他的各种存储器区域。

电子控制装置100在执行任务时,具有对栈区域的访问限制不同的多个模式。这种访问限制按照基于安全性的基准的级别而确定。在本实施方式中,作为多个模式,有监控模式(svm:supervisormode)和用户模式(um:usermode),通过对各模式分配访问权限,实现访问限制。而且,在svm时,执行安全性级别为asil-d、c、b、a的其中任一个的任务,在um时,执行安全性级别为qm的任务。换句话说,在电子控制装置100中,任务基于安全性级别等的规定规则被分类为组,以对应于组的模式来执行。

本地存储器120中设置的栈区域122被划分为qm用栈区域124和asil用栈区域126这两个区域。即,在本地存储器120中确保2个栈区域。而且,被分配了um的任务仅可访问qm用栈区域124,被禁止对asil用栈区域126的访问。被分配了svm的任务可访问asil用栈区域126及qm用栈区域124。这样的对每个任务的访问的限制,可以由存储器管理单元等的硬件实现。再者,在本实施方式中,作为访问的类别有读入、写入、执行这三种,这些所有的访问都被禁止或都被许可。但是,例如,可以进行许可一部分访问的设定,使得写入及执行被禁止而仅许可读入。此外,在各模式中,可以对每个栈区域,并且对每个访问类别,进行许可或禁止的设定。

再者,在本实施方式中,在本地存储器120中确保2个栈区域,但电子控制装置100可以在本地存储器120中确保3个以上的栈区域。

接着,参照图2及图3详细地说明栈区域122。

在栈区域122中,例如,数据被存储在地址增大的方向上。在图2及图3中,上方向是地址的值增大的方向。而且,在栈区域122中,从地址小的一方起以asil用栈区域126、qm用栈区域124的顺序,分配存储器区域。即,栈区域122在存储数据的方向侧,设置重要度更低的栈区域。换句话说,在分割的栈区域之中从重要度高的栈区域起存储栈数据的方向上分配各栈区域122。

此外,如图2记载的,在这种栈区域122中,可以根据模式切换第1栈指针和第2栈指针,第1栈指针表示asil用栈区域126最新存储的数据asil-2,第2栈指针表示qm用栈区域124最新存储的数据qm-3。图2表示执行svm的任务的情况。这种情况下,电子控制装置100可以任意地切换并使用第1栈指针及第2栈指针。而且,在执行svm的任务时,可访问qm用栈区域124及asil用栈区域126。此外,图3表示在执行um的任务的情况。这种情况下,电子控制装置100仅使用第2栈指针。然后,在执行um的任务时,禁止对asil用栈区域126的访问。

这样一来,在电子控制装置100中,在cpu110执行任务时,选定在本地存储器120中被确保的多个栈区域之中至少一个栈区域,作为用于该任务的栈区域。而且,对根据安全性级别等的规定规则分类了任务的每个组设定任务使用的至少一个栈区域。由此,实现电子控制装置100中的功能安全。

此外,在由这样构成的电子控制装置100执行的任务中,在权限比被分配的模式高的方向上不能进行模式变更。例如,um的任务不进行从um向svm的模式变更。

这里,参照图4说明所述电子控制装置100执行任务时的流程。

首先,该流程通过模式为svm而起动。此时,由于流程通过svm而开始,所以电子控制装置100使用表示了asil用栈区域126的最新存储的数据的第1栈指针。然后,电子控制装置100执行初始程序(s101)。

接着,在程序的执行时,电子控制装置100有时执行um的任务,与此相伴将模式从svm切换为um。此时,首先,电子控制装置100将栈指针切换为表示qm用栈区域124的最新存储的数据的第2栈指针(s102)。然后,电子控制装置100将模式从svm切换为um(s103)。

然后,在模式转移到um后,电子控制装置100执行um的任务,此时使用qm用栈区域124作为栈区域(s104)。

例如,作为um的任务,是从油门踏板开度运算目标扭矩,基于该目标扭矩,运算电子控制油门的目标节气门开度的目标扭矩运算任务。以下,说明执行目标扭矩运算任务的例子。

在该目标扭矩运算任务中,电子控制装置100首先从油门踏板传感器读入油门踏板开度的输出。此外,电子控制装置100从油门踏板开度运算目标扭矩。然后,电子控制装置100运算目标节气门开度以达到算出的目标扭矩,并基于该目标节气门开度控制电子控制油门。

接着,在这样的电子控制油门的控制中,需要探测是否发生异常。因此,电子控制装置100除目标扭矩外计算当前的扭矩,将目标扭矩和当前的扭矩进行对比,判定是否发生异常。这里,进行这样的判定的任务的安全性的级别比qm高(例如,asil-c)。因此,该任务在um中无法执行,需要在svm中执行。因此,电子控制装置100通过发出中断指令,使svm的异常探测任务(中断处理1)中断,判定是否发生异常。

在中断处理1中,首先,该异常探测任务在svm中执行,所以电子控制装置100需要使用表示asil用栈区域126的数据的第1栈指针。在本实施方式中,在中断前执行um的任务,使用第2栈指针,所以电子控制装置100将栈指针切换为第1栈指针,以可以使用asil用栈区域126作为栈区域(s201)。接着,电子控制装置100基于来自各种传感器的输出,计算当前的扭矩。然后,电子控制装置100将目标扭矩与当前的扭矩进行对比,判定是否发生了异常(s202)。

而且,除所述异常的判定之外,电子控制装置100还判定在任务的执行顺序和执行定时上是否有异常,执行进行其处置的任务。该任务的安全性级别比qm高(例如,asil-c)。因此,该任务需要在svm中执行。因此,在中断处理1的步骤202中的处理中,在需要进行这样的功能动作的异常判定的情况下,电子控制装置100还执行功能动作的异常判定任务即中断处理2。该功能动作的异常判定任务在svm中执行,所以电子控制装置100首先判定第1栈指针是否正被使用。在本实施方式中,由于在中断处理1中进行功能动作的异常判定,所以第1栈指针已经被使用,可使用asil用栈区域126作为栈区域。因此,电子控制装置100不切换栈指针(s301)。然后,电子控制装置100执行所述功能动作的异常判定任务(s302)。功能动作的异常判定任务结束后返回的处理是svm中的处理,所以电子控制装置100不从第1栈指针切换栈指针而返回到中断处理1(s303)。

电子控制装置100再开始中断处理1。然后,如果中断处理1结束,则返回的任务是um的任务,所以电子控制装置100将栈指针切换为第2栈指针,仅使用qm用栈区域124作为栈区域(s203)。之后,电子控制装置100再开始目标扭矩运算任务。

这里,在电子控制装置100中的控制中,有对需要向程序的重写等的特殊模式的模式转移,有时从um向被分配了重要度更高的svm转移。但是,在电子控制装置100中,um的任务无法从qm模式转移为svm。这里,在本实施方式中,通过使svm的任务中断的中断处理而实现从重要度低的模式向重要度高的模式的转移。具体而言,电子控制装置100发出中断命令(s105),由此使svm的任务中断,进行从um向svm的模式转移(s401)。然后,在模式转移后,svm的任务将栈指针切换为第1栈指针,使用asil用栈区域126作为栈区域进行处理(s106),电子控制装置100执行特殊模式中的处理等。

如以上那样,电子控制装置100在多个栈区域被确保的基础上,根据所执行的任务进行中断处理,适当切换栈指针及栈区域来执行程序。

这里,在多个栈区域被确保的情况中,电子控制装置100可以在任务被执行时,监视是否根据该任务所属的组而适当地使用了栈区域。

进行这样的监视的任务,在中断处理中执行。参照图5及图6说明该中断处理。

图5是在执行中断处理1及中断处理2的流程中,进一步作为中断处理,执行监视是否适当地使用栈区域的任务(中断处理4)的情况下的概念图。再者,上述说明的中断处理1及中断处理2是作为定时的中断而执行的处理。

图5中所示的流程,从开始了定时的中断即所述中断处理1的状态起开始。然后,由于执行中断处理1,所以电子控制装置100将栈指针切换为第1栈指针,使用asil用栈区域126作为栈区域进行处理(s501)。然后,在执行任务之前,电子控制装置100将表示执行的任务的执行任务信息记录在适当的存储器中(s502)。之后,电子控制装置100执行中断处理1(s503)。

这里,在中断处理1的执行中,在与执行定时性的中断的定时不相关的定时,执行监视执行中的任务是否根据该任务所属的组而使用预先分配的栈区域的、中断处理4。在本实施方式中,电子控制装置100在进行曲柄角度传感器等的引擎旋转传感器中的上升沿及下降沿的检测的定时,执行中断处理4。

在该中断处理4中,电子控制装置100参照将属于组的任务和用于该组的任务的预先分配的栈区域相关联的表,监视在中断处理1中执行中的任务是否根据该任务所属的组而使用预先分配的栈区域。

例如,首先,电子控制装置100读出执行任务信息(s601)。然后,电子控制装置100参照对每个组将属于组的任务和根据该组而预先分配的栈区域的地址的范围相关联的表。此外,电子控制装置100基于执行任务信息所属的组,从表中读出根据该组而预先分配的栈区域的地址的范围。然后,如果栈指针表示在所述读出的预先分配的地址的范围内,则电子控制装置100判定为根据执行任务所属的组而使用预先分配的栈区域。另一方面,如果栈指针表示在所述读出的预先分配的地址的范围外,则电子控制装置100判定为没有根据执行任务所属的组而使用预先分配的栈区域。然后,在判定为根据执行任务所属的组而使用预先分配的栈区域的情况下,电子控制装置100将中断结束并返回到原来的处理。另一方面,在判定为没有根据执行任务所属的组而使用预先分配的栈区域的情况下,电子控制装置100例如对外部装置通知错误,或对未图示的非易失性的存储器(闪存等)记录错误(s602)。

接着,若进行栈监视的中断处理4结束,则电子控制装置100将处理返回到中断处理1。然后,如前述,电子控制装置100在中断处理1的执行中将功能动作的异常判定任务即中断处理2作为定时性的中断来执行。中断处理2是svm的任务,栈区域使用asil用栈区域126。在中断处理1中,第1栈指针已经被使用,所以电子控制装置100不切换栈指针(s504)。然后,与s502同样,电子控制装置100记录中断处理2的执行任务信息(s505)。之后,电子控制装置100执行中断处理2。

这里,在中断处理2的执行中,电子控制装置100检测例如引擎旋转传感器中的边沿,执行进行栈监视的中断处理4。电子控制装置100在该中断处理4中,读出执行任务信息(s603)。电子控制装置100基于读出的执行任务信息,判定执行任务是否使用根据所属的组所预先分配的栈区域,进行与s602同样的处理(s604)。之后,电子控制装置100使中断处理4结束,返回到执行中断处理2。

在进行这样的任务监视的一例子中,参照图6说明时间、执行任务、使用栈区域、栈监视任务的执行定时之间的关系。

首先,说明执行任务和被使用的栈区域之间的关系。在时间t1执行定时中断即中断处理1。这种情况下,被使用的栈区域是asil用栈区域126。接着,在时间t2执行中断处理2。这种情况下,与中断处理1同样,被使用的栈区域是asil用栈区域126。然后,在时间t3,中断处理2结束,返回到中断处理1。进而,在时间t4,中断处理1结束,返回到通常任务。此时,栈指针被切换,表示qm用栈区域124。然后,在时间t5,在通常任务执行中因定时中断而执行中断处理1。相对于此,栈监视任务,在引擎旋转传感器中的边沿的检测时(t11~t16)发生中断,执行栈监视任务。这里,引擎旋转传感器中的边沿的检测定时,与定时中断即中断处理1及中断处理2的中断的定时不相关。这样,通过在与定时中断定时无关的、引擎旋转传感器中的边沿的检测定时,执行栈监视任务,可以在非定时的随机的定时监视栈区域的使用。

再者,在本说明书中说明了由2个cpu110构成的双处理器,但在由分别具有本地存储器120的3个以上的cpu110构成的多处理器中,也可以适用本实施方式中记载的栈区域。此外,在多核处理器中对每个核连接本地存储器的情况下,可以在该各本地存储器中设置本实施方式中记载的栈区域。

在本实施方式中,说明了划分为2个重要级别并在2个模式下执行的情况,但电子控制装置100也可以设置3个以上的重要级别的分类,根据该重要级别的分类的数划分模式并且确保多个栈区域。

本说明书中的定时性不仅指所谓确定的时间间隔的含义,还包含所谓在确定的步骤之中确定的定时的含义。

标号说明

100...电子控制装置、120...本地存储器、122...栈区域。

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