JPH08328615A - Controller for automobile - Google Patents
Controller for automobileInfo
- Publication number
- JPH08328615A JPH08328615A JP13315795A JP13315795A JPH08328615A JP H08328615 A JPH08328615 A JP H08328615A JP 13315795 A JP13315795 A JP 13315795A JP 13315795 A JP13315795 A JP 13315795A JP H08328615 A JPH08328615 A JP H08328615A
- Authority
- JP
- Japan
- Prior art keywords
- task
- time
- execution
- control
- tasks
- 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.)
- Pending
Links
Landscapes
- Combined Controls Of Internal Combustion Engines (AREA)
- Control By Computers (AREA)
- Programmable Controllers (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は自動車に搭載される制御
装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a control device mounted on an automobile.
【0002】[0002]
【従来の技術】従来の自動車に搭載される制御装置は、
特願昭55−6802号や、特願昭62−331334号明細書に示さ
れるように、制御対象となるシステム毎におのおの対応
する制御装置を設け、各制御装置内のプログラムはそれ
ぞれ対象となる制御項目ごとにタスクに分割され、これ
らの各タスクの起動周期をあらかじめ設定された最小起
動周期Δtのn倍の関係になるように設定し、同時に組
み込まれたOSが各タスクに要求される起動周期で各タ
クスを起動,実行し制御対象となるシステムに最適の制
御を行っていた。これら従来の制御装置は、一般に各製
品毎に専用の制御装置を備えており、各制御装置にとっ
ては制御対象となるシステムが各制御装置に対しおのお
の一つであるため、分割された各プログラムタスクの実
行優先度や実行周期は、制御対象システム毎に自由に最
適化を行うことができ、各タスクの起動タイミング等の
問題に対処することができた。2. Description of the Related Art A conventional controller mounted on a vehicle is
As shown in Japanese Patent Application No. 55-6802 and Japanese Patent Application No. 62-331334, a corresponding control device is provided for each system to be controlled, and the programs in each control device are targeted. Each control item is divided into tasks, and the activation cycle of each of these tasks is set so as to have a relationship of n times the preset minimum activation cycle Δt, and the OS installed at the same time is required for each task. Each task was started and executed in a cycle to perform optimal control for the system to be controlled. These conventional control devices generally have a dedicated control device for each product, and since each control device has one system to be controlled for each control device, each divided program task The execution priority and execution cycle of can be freely optimized for each controlled system, and problems such as the start timing of each task can be addressed.
【0003】[0003]
【発明が解決しようとする課題】一方、マイクロコンピ
ュータの処理能力の向上,集積度向上に伴うメモリ容量
の増大により、従来、おのおの異なる制御装置により行
われていた複数の制御システムの制御が統合され、一つ
の自動車用制御装置で複数の制御システム、例えばエン
ジン制御システム,オートマッチクトランスミッション
(AT)制御システム,自動定速制御システム(ASC
D),アンチロック制御システム(ABS)等のシステム
について、これらのシステム中、複数のシステムを一つ
の制御装置で統合制御する複合制御装置が実現されつつ
ある。On the other hand, the control of a plurality of control systems, which has been conventionally performed by different control devices, has been integrated due to the increase in the memory capacity accompanying the improvement in the processing capability of the microcomputer and the increase in the degree of integration. , A plurality of control systems with one vehicle controller, such as an engine control system, an automatic match transmission (AT) control system, an automatic constant speed control system (ASC
D), anti-lock control system (ABS), and other systems, a composite control device for integrally controlling a plurality of systems among these systems is being realized.
【0004】しかし、これら複合制御装置では、システ
ム統合数の増大に伴いプログラムタスクの数も増大し、
同一起動周期あるいはそのn倍の起動周期に設定された
各タスクについて、実行優先度の低いタスクは他の実行
優先度の高いタスクの実行終了後順次起動されるため、
実行優先度の低いタスクは実行優先度の高いタスクの実
行時間の影響を受け、実行優先度の低いタスクの起動周
期が不規則に変動する等の問題が発生する。この起動周
期の変動は、同一起動周期あるいはそのn倍の起動周期
に設定されたタスクの数が多いほど変動の影響が大きく
なり、特にその制御実行タイミングの変動により排ガス
性能の悪化や、燃費/運転性の悪化等を招くエンジンの
点火制御や燃料制御等のシステムでは、これら起動周期
の変動は致命的な問題となり得る。However, in these composite control devices, the number of program tasks increases as the number of integrated systems increases,
For each task set to the same activation cycle or n times the activation cycle, a task with a low execution priority is sequentially activated after execution of another task with a high execution priority is completed.
A task with a low execution priority is affected by the execution time of a task with a high execution priority, which causes a problem such that the activation cycle of the task with a low execution priority fluctuates irregularly. The larger the number of tasks set in the same start cycle or the start cycle that is n times the start cycle, the greater the effect of the change in the start cycle. Especially, the change in the control execution timing deteriorates the exhaust gas performance and reduces the fuel consumption / fuel consumption. In a system such as engine ignition control or fuel control that causes deterioration of drivability, these fluctuations in the starting cycle can be a fatal problem.
【0005】一方、これら複合制御装置では、上述の通
り一つの制御装置に含まれるプログラムタスク数が増大
するとともに、一体化された制御システムが原則として
おのおの独立してあるいは連携して異なった動作を行う
ため、各プログラムタスクの起動周期や実行優先度は、
相互に一体化されている他のシステム実行状況を考慮し
た設定が必要となり、最適化に対する自由度が制約され
ることにより、実行優先度の低いタスクの起動周期の不
規則変動が避けられないという問題があった。本発明の
目的は、プログラムタスク数の多い複合制御装置でも実
行優先度の低いタスクの起動周期不規則変動を最小限に
おさえ、制御システムの制御精度,制御性能を向上させ
ることにある。On the other hand, in these combined control devices, as described above, the number of program tasks included in one control device increases, and the integrated control system basically performs different operations independently or in cooperation with each other. Therefore, the start cycle and execution priority of each program task are
It is necessary to make settings that take into consideration the execution status of other systems that are integrated with each other, and the degree of freedom for optimization is restricted, so that irregular fluctuations in the activation cycle of tasks with low execution priority cannot be avoided. There was a problem. An object of the present invention is to improve the control accuracy and control performance of the control system while minimizing irregular fluctuations in the activation cycle of tasks having a low execution priority even in a composite control device having a large number of program tasks.
【0006】[0006]
【課題を解決するための手段】上記の目的を達成するた
め、本発明は制御プログラムをその制御機能に基づいて
おのおののタスクに分割し、予め決められた基準周期Δ
tの整倍数となるよう各タスクの起動周期を設定し、設
定された起動周期に基づいて各タクスの起動を開始する
方式のOSで、各タスクを複数のn個のタスク群G1,
G2〜Gnに分類し、繰り返し起動する各タクス群G
1,G2〜Gnのおのおのの起動開始時刻を、基準周期
Δt毎に訪れる仮想的な基準時刻t0に対し、基準周期
Δt以内でかつ各タスク群に対応した遅れ時間d1,d
2〜dnだけ遅れたそれぞれ異なった起動開始時刻t
1,t2〜tnに起動開始し、かつ、各タスク群G1,
G2〜Gnの起動開始時刻t1,t2〜tnは、タスク
群よりも以前に起動開始したタスク群が実行終了してか
ら起動開始するよう遅れ時間d1,d2〜dnを設定す
る。In order to achieve the above object, the present invention divides a control program into each task based on its control function, and a predetermined reference period Δ
In the OS of a system in which the activation cycle of each task is set to be an integer multiple of t, and the activation of each task is started based on the set activation cycle, each task is divided into a plurality of n task groups G1,
Each tax group G is classified into G2 to Gn and repeatedly activated.
The start time of each of G1, G2 to Gn is a delay time d1, d within the reference period Δt and corresponding to each task group with respect to the virtual reference time t0 that comes every reference period Δt.
Different start start times t delayed by 2 to dn
1, start from t2 to tn, and each task group G1,
The activation start times t1 and t2 to tn of G2 to Gn set the delay times d1 and d2 to dn so that the activation of the task group started earlier than the task group is started after the completion of the execution.
【0007】[0007]
【作用】複数のn個のタスク群G1,G2〜Gnは、一
般にそれぞれ異なった実行優先度を持った複数のタスク
を含むが、一つのタスク群Gnについてみるとタスク群
Gnは基準周期Δt毎に起動要求の有無がチェックさ
れ、起動要求が出ているタスクがあると、その中で最も
実行優先度の高いタスクから順次実行される。したがっ
て、タスク群Gnの起動開始タイミングtnに対し、タ
スク群Gnの中で相対的に実行優先度の高い(優先度行
列の先頭付近の)タスクはタスク実行タイミングの変動
が非常に小さい。The plurality of n task groups G1, G2 to Gn generally include a plurality of tasks each having a different execution priority. However, with respect to one task group Gn, the task group Gn is at every reference period Δt. It is checked whether or not there is a start request, and if there is a task for which a start request is issued, the task with the highest execution priority among them is executed sequentially. Therefore, a task having a relatively high execution priority (near the head of the priority matrix) in the task group Gn with respect to the activation start timing tn of the task group Gn has a very small fluctuation in the task execution timing.
【0008】これに対し従来は、全ての起動要求が出て
いるタスクが、その実行優先度に従って基準周期Δt毎
に、起動要求が発生している全てのタスクが実行終了す
るまで順次継続的に実行される。一般に、各タスクは、
入力条件や、実行回数に応じてその処理内容が変化し、
それに応じて実行時間も変化する。実行優先度の高い、
すなわち、優先度行列の先頭付近のタスク以外の多く
は、タスクより実行優先度の高いタスクの実行時間の累
積時間経過後起動する結果となり、その起動タイミング
は毎回変化し起動周期が不規則に変動することになる。On the other hand, conventionally, all the tasks for which activation requests have been issued are continuously and continuously according to their execution priority every reference cycle Δt until the execution of all tasks for which activation requests have been completed. To be executed. In general, each task
The processing content changes depending on the input condition and the number of executions,
The execution time also changes accordingly. High execution priority,
In other words, many tasks other than the ones near the top of the priority matrix will be activated after the cumulative execution time of the tasks with higher execution priority has elapsed, the activation timing will change each time, and the activation cycle will fluctuate irregularly. Will be done.
【0009】一方、本発明で、各タスク群毎に遅れ時間
d1,d2〜dnだけ遅れたそれぞれ異なった起動開始
時刻t1,t2〜tnを設定することにより、先のタス
ク群Gn−1の実行が終了するために必要な時間経過
後、次のタスク群Gnを起動開始することにより、各タ
スクが同時に重複して実行されることもなく、また先の
タスク群Gn−1の実行時間の変動に関わらず、次のタ
スク群Gnはあらかじめ与えられた起動タイミングtn
より起動開始することができる。On the other hand, in the present invention, by setting different starting start times t1 and t2 to tn delayed by delay times d1 and d2 to dn for each task group, execution of the preceding task group Gn-1 is performed. By activating the next task group Gn after the time required for the end of the task is finished, the tasks are not simultaneously executed in duplicate, and the execution time of the previous task group Gn-1 fluctuates. Regardless of the next task group Gn, the start timing tn given in advance
It can be started more.
【0010】[0010]
【実施例】図1に自動車用OSの基本構成例を示す。本
OSでは、プログラムは基本的に二つの部分から構成さ
れる。一つはRESETにより起動し、以後バックグラ
ウンドプロセス的に実行されるメインルーチン、他はタ
イマ割り込み(IRQ)により起動し、一定時間ごとに
実行されるタイマルーチンである。以下、各ルーチンの
動作についてさらに詳しく説明する。まず、メインルー
チンについては、RESET起動後、直ちに、イニシャ
ライズ処理を行う。このステップはメモリを含むCPU
自身やその他制御装置内の各種初期設定を行い、以後、
他のプログラムルーチンが正しく動作することができる
よう制御装置内の条件を整えるためにRESET後一度
だけ実行されるステップである。本メインルーチンは、
イニシャライズ処理後、無限ループに突入し、以後何も
しない。EXAMPLE FIG. 1 shows an example of the basic configuration of an automobile OS. In this OS, the program basically consists of two parts. One is a main routine that is activated by RESET and is subsequently executed as a background process, and the other is a timer routine that is activated by a timer interrupt (IRQ) and is executed at regular time intervals. The operation of each routine will be described in more detail below. First, in the main routine, the initialization process is performed immediately after RESET is activated. This step is CPU including memory
After performing various initial settings within itself and other control devices,
This is a step that is executed only once after RESET in order to prepare the conditions in the controller so that other program routines can operate correctly. This main routine is
After the initialization process, it enters an infinite loop and does nothing thereafter.
【0011】一方、タイマルーチンは、一定周期たとえ
ば1msごとに起動され、各起動タイミングごとに何れ
のタスクに起動要求が発生しているかをチェックする。
さらに各起動要求が発生しているタスクに対し、それぞ
れの実行優先順序にしたがって、これらのタスクを、順
次、起動する役割を果たす。本実施例では、タスクレベ
ルが3レベル、各タスクレベル当たりのタスク数が3、
計9個のタスクを割り付けることが可能な構成を持って
いる。各タスクレベル間では、タスクレベル0の実行優
先度がもっとも高く、タスクレベル2の実行優先度がも
っとも低い。これらタスクレベル間はそれぞれプリエン
プティブ、すなわち、実行優先度の低いタスクが実行中
に、より実行優先度の高いタスクの実行要求が発生した
場合、実行優先度の低いタスクは一時的に実行が中断さ
れ、実行優先度の高いタスクが先に実行される。実行優
先度の低いタスクは、実行優先度の高いタスクの実行終
了後、中断された点より改めて実行が継続される。一
方、それぞれのタスクレベル内では、より小さいタスク
No.を持つタスクの実行優先度が高い。ただし同一タス
クレベル内は、各タスクは相互にプリエンプティブでは
ない。すなわち、同時に複数の同一タスクレベル内タス
クに起動要求が発生した場合、もっとも実行優先度が高
いタスクが初めに起動する。同一タスクレベル内では一
つのタスクのみが実行可能であり、同一タスクレベル内
の他のタスクは現在の実行中のタスクが実行終了するま
で、その実行が待たされる。On the other hand, the timer routine is activated every fixed period, for example, every 1 ms, and checks which task has an activation request at each activation timing.
Further, it plays a role of sequentially activating the tasks for which each activation request has been generated, in accordance with their respective execution priority orders. In this embodiment, the task level is 3 levels, the number of tasks per task level is 3,
It has a configuration that can assign a total of 9 tasks. Among the task levels, the task level 0 has the highest execution priority and the task level 2 has the lowest execution priority. Each of these task levels is preemptive, that is, if an execution request for a task with a higher execution priority occurs while a task with a lower execution priority is executing, the task with a lower execution priority is temporarily suspended. , The task with the highest execution priority is executed first. The task with the lower execution priority continues to be executed from the point where it was interrupted after the execution of the task with the higher execution priority is completed. On the other hand, within each task level, the task having a smaller task No. has a higher execution priority. However, within the same task level, the tasks are not mutually preemptive. That is, when activation requests are simultaneously issued to a plurality of tasks within the same task level, the task with the highest execution priority is activated first. Only one task can be executed within the same task level, and other tasks within the same task level are kept waiting until the currently executing task is completed.
【0012】要求されるシステム制御を実現するため、
実際の制御システムでは必要とされる機能を持ったプロ
グラムを複数のタスクとして別々に定義し、各タスクに
適切な実行周期と実行優先度を与えてプログラム実行
し、システムに要求される制御仕様を実現する。エンジ
ンおよびATを統合した制御システムのタスク割付例を
図2に示す。図2でエンジン制御用は、IGNは10m
sごとに実行される点火制御のためのタスク、EGIは
同じく10msごとに実行される燃料制御のためのタス
ク、CMPは20msごとに実行される制御補正値計算
のためのタスクである。またAT制御用として、ATA
は20msごとに実行されるタスクでありAT制御項目
のなかで比較的早い周期での演算が要求される項目を含
んだタスク、ATBは同じくAT用のタスクで80ms
ごとに実行され比較的遅い周期での演算で十分な項目を
含んだタスク、一方、MONは40msごとに実行され
る外部ツールとの通信のためのタスクであり、エンジン
・AT双方共通に使用されるタスクである。図2では、
タスク02,タスク12,タスク22は実際のタスクに
は割り付けられておらず空である。In order to realize the required system control,
In an actual control system, a program with the required functions is defined separately as multiple tasks, each task is given an appropriate execution cycle and execution priority, and the program is executed to specify the control specifications required for the system. To be realized. FIG. 2 shows an example of task allocation of the control system in which the engine and AT are integrated. In Fig. 2, for engine control, IGN is 10m
EGI is a task for ignition control executed every s, EGI is a task for fuel control executed every 10 ms, and CMP is a task for calculating control correction value executed every 20 ms. For AT control, ATA
Is a task that is executed every 20 ms, and includes a task that requires an operation in a relatively early cycle among AT control items, and ATB is a task for AT that is 80 ms.
A task that is executed for each engine and contains a sufficient number of items that can be calculated in a relatively slow cycle. On the other hand, MON is a task that is executed every 40 ms for communication with an external tool and is commonly used by both the engine and AT. Is a task. In Figure 2,
Task 02, task 12, and task 22 are empty and are not assigned to actual tasks.
【0013】以上、図2に示したタスク割付例に対し、
時間軸上でどのように各タスクが起動されるかを図3に
より説明する。図3で、横軸は経過時間であり目盛りは
タスクディスパッチ、すなわち、タスクの切換えが発生
する10msごとにふられている。また、この10ms
ごとの回数を数え、図2で割付けられる周期で各タスク
を起動するためのディスパッチカウンタ(二進表示)を
備えている。10msごとのタスクは毎ディスパッチ毎
に起動され、一方、20msごとのタスクはディスパッ
チカウンタの値が「×××1」となるタイミングで(×
は1/0任意の値を表す)、40msごとのタスクは
「××10」となるタイミングで、80msごとのタスク
は「×100」となるタイミングでそれぞれ起動するこ
とにより各要求される起動周期を満たすことができる。
以上の条件にしたがって、図3に示すようにタスク0
0,タスク10は10ms毎に、タスク11,タスク2
0は20ms毎、タスク01は40ms毎、タスク21
は80ms毎に起動される。以上の動作を実現するため
のタイマルーチンの実施例を図4により説明する。本ル
ーチンは、図1で説明したようにタイマ割り込み(IR
Q)により1ms毎に自動的に起動される。本ルーチン
が起動すると、まず、ステップ420により、10ms
毎のタスクディスパッチ周期が来たかどうかが評価され
る。ステップ420で、10msカウンタが10でなけ
れば10msに対応するタイミングではないので何もせ
ず、本タイマルーチンを終了する。一方、10msカウ
ンタが10であれば、タスクディスパッチを実行すべき
10ms毎のタイミングであるので、ステップ421に
進む。ステップ421では次の10msを再カウントす
るために10msカウンタを0クリアする。次に、ステ
ップ422で各20,40,80ms等の実行タイミン
グを判断するためのディスパッチカウンタをインクリメ
ントする。本ディスパッチカウンタは、以後プログラム
が実行を続ける限りインクリメントされ続け、そのオー
バーフローは無視される。このオーバーフローは本ディ
スパッチカウンタが先に説明したように、ビットパター
ンの組み合わせに基づいた単なるタスク実行時期を得る
ために使われているだけなのでオーバーフローの発生は
問題ない。つぎのステップ423で本ディスパッチカウ
ンタの値が評価され、図2で指定された各タスクの実行
周期に基づき、図3で説明した条件で各対応するタスク
に起動要求が出される。ステップ430から422がこ
れらタスクの起動要求に基づき実際の各タスクを起動す
るステップである。すなわち、ステップ430はタスク
レベル0から2に関して順次判断を繰り返すループ、ス
テップ440はタスクNo.X0からX2に関し順次判断
を繰り返すループを示している。ステップ441では各
タスクについて起動要求が発生しているかどうかをチェ
ックし、対応するタスクに起動要求が発生していれば、
ステップ442に進んで対応するタスクを実際に起動実
行する。該当するタスクが実行されると、対応する起動
要求は自動的にクリアされる。最後にステップ450に
より10ms毎のタスクディスパッチ周期を作り出すた
めの10msカウンタがインクリメントされ本タイマル
ーチンを終了する。As described above, with respect to the task allocation example shown in FIG.
How each task is activated on the time axis will be described with reference to FIG. In FIG. 3, the horizontal axis is the elapsed time, and the scale is shown every 10 ms when task dispatch, that is, task switching occurs. Also, this 10ms
It is provided with a dispatch counter (binary display) for counting the number of times for each task and activating each task in the cycle assigned in FIG. The task every 10 ms is started at every dispatch, while the task every 20 ms is executed at the timing (×) when the value of the dispatch counter becomes “××× 1”.
Represents an arbitrary value of 1/0), a task every 40 ms is activated at a timing of “× 10”, and a task every 80 ms is activated at a timing of “× 100”. Can meet.
According to the above conditions, task 0 as shown in FIG.
0, task 10 every 10 ms, task 11, task 2
0 every 20 ms, task 01 every 40 ms, task 21
Is activated every 80 ms. An embodiment of the timer routine for realizing the above operation will be described with reference to FIG. This routine executes the timer interrupt (IR
It is automatically started every 1 ms by Q). When this routine starts, first, in step 420, 10 ms
It is evaluated whether or not each task dispatch cycle has come. If the 10 ms counter is not 10 at step 420, the timing does not correspond to 10 ms, so nothing is done and this timer routine ends. On the other hand, if the 10 ms counter is 10, it means that the task dispatch is to be executed every 10 ms, and therefore the process proceeds to step 421. In step 421, the 10 ms counter is cleared to 0 to recount the next 10 ms. Next, at step 422, the dispatch counter for judging the execution timing of 20, 40, 80 ms, etc. is incremented. This dispatch counter continues to be incremented as long as the program continues executing, and its overflow is ignored. As described above, this overflow is used only to obtain the task execution time based on the combination of bit patterns, so that the overflow does not occur. In the next step 423, the value of the dispatch counter is evaluated, and based on the execution cycle of each task designated in FIG. 2, an activation request is issued to each corresponding task under the conditions described in FIG. Steps 430 to 422 are steps for starting each actual task based on the request for starting these tasks. That is, step 430 shows a loop in which the judgment is sequentially repeated for task levels 0 to 2, and step 440 is a loop in which the judgment is sequentially repeated for tasks No. X0 to X2. In step 441, it is checked whether or not a start request has been issued for each task, and if a start request has been issued for the corresponding task,
In step 442, the corresponding task is actually activated and executed. When the corresponding task is executed, the corresponding activation request is automatically cleared. Finally, in step 450, a 10 ms counter for creating a task dispatch cycle every 10 ms is incremented and this timer routine ends.
【0014】従来の方式による問題点を明確にするた
め、図3の中の「実行期間A」示した時間領域につい
て、各タスクの起動状況を図5によりさらに詳細に説明
する。図5で、横軸の経過時刻は図3と同一であり、1
0ms毎の目盛りを持っている。まず、10msが経過
したタイミングでOS、すなわち、タイマルーチンが動
作し、タスクディスパッチの処理が行われる。本10m
sのタイミングでは、図3に示したようにタスク00,
タスク10,タスク11,タスク20の起動要求が発生
し、これらの中で最も実行優先度が高いタスク00が最
初に起動される。本タスク00が実行を終了すると、一
旦、OSであるタイマルーチンに戻り、次の起動要求が
発生しているタスマがチェックされる。本実施例では起
動要求が発生しているタスクで実行優先度がつぎに高い
タスクはタスク10であり、図5に示すように本タスク
10が次に起動される。以下同様にタスク11,タスク
20が順次起動され、これらのタスクの実行が終了する
と、他に起動要求を発生しているタスクはないのでプロ
グラムはOSのレベルに戻り、次の起動要求が発生する
までOS上の待動作に入る。次の20msのタイミング
では、同様にタスク割付けにしたがいタスク00,タス
ク01,タスク10に起動要求が発生し図5のように各
タスクが順次実行され、またさらに次の30msではタ
スク00,タスク10,タスク11,タスク20が同様
に順次実行される。ここでタスク10に着目すると、タ
スク10は10ms毎のタスクとして割付けられ、各1
0ms毎のタイミングで起動されるが、詳細にみると図
5のタスク10実行周期(1)、タスク10実行周期
(2)に示すごとくタスク10の実行周期は、より実行
優先度が高い他のタスクの実行時間の影響を受け、その
実行周期は一定ではない。これが、各タスクは10ms
毎のタイミングで起動がかけられるが、各10msのタ
イミング毎にすべてのタスクが実行優先度の順番にした
がって順次起動するため、自分の実行優先度よりも実行
優先度が高いタスクの有無や、それらタスクの実行終了
に要する時間の影響を直接受け、実行優先度の低いタス
クは厳密には一定の実行周期が得られず、実行時間間隔
のゆらぎが発生する。これらのゆらぎの発生は、タスク
の実行優先度が低いほどその影響が大きく、制御対象物
との時間的対応が重要な制御項目や、正確な時間間隔を
要求される制御要素にとって、非常に大きな問題であっ
た。In order to clarify the problem of the conventional method, the activation status of each task in the time domain shown in "execution period A" in FIG. 3 will be described in more detail with reference to FIG. In FIG. 5, the elapsed time on the horizontal axis is the same as that in FIG.
It has a scale every 0 ms. First, at the timing when 10 ms has elapsed, the OS, that is, the timer routine operates, and the task dispatch processing is performed. Book 10m
At the timing of s, as shown in FIG.
A request to activate the task 10, task 11, and task 20 occurs, and task 00, which has the highest execution priority among these, is activated first. When this task 00 finishes executing, it once returns to the timer routine which is the OS, and the tasma for which the next activation request is generated is checked. In this embodiment, the task having the next highest execution priority among the tasks for which the activation request has been issued is the task 10, and this task 10 is activated next as shown in FIG. Similarly, the task 11 and the task 20 are sequentially activated, and when the execution of these tasks is completed, there is no other task that has issued the activation request, so the program returns to the OS level and the next activation request is generated. Waiting operation on the OS starts. At the timing of the next 20 ms, similarly, task 00, task 01, and task 10 are activated in accordance with the task allocation, and the tasks are sequentially executed as shown in FIG. , Task 11 and task 20 are similarly sequentially executed. Focusing on task 10, task 10 is assigned as a task every 10 ms, and
It is activated at a timing of every 0 ms, but in detail, as shown in task 10 execution cycle (1) and task 10 execution cycle (2) of FIG. It is affected by the task execution time and its execution cycle is not constant. This is 10ms for each task
It is activated at every timing, but every task is activated at every 10 ms timing in order of execution priority, so there is a task with higher execution priority than its own execution priority, Strictly affected by the time required to complete the execution of a task, a task with a low execution priority cannot strictly obtain a constant execution cycle, resulting in fluctuations in the execution time interval. The occurrence of these fluctuations has a greater effect as the task execution priority is lower, and is extremely large for control items for which time correspondence with a control target is important and control elements requiring accurate time intervals. It was a problem.
【0015】次に図6によりこの問題を解決するための
本発明の一実施例を説明する。図6は従来の実施例図4
に対応する本発明の実施例であり、図4と同様にタイマ
割り込みにより1ms毎に自動的に起動される。図6に
おけるステップ620からステップ623はそれぞれ図
4におけるステップ420からステップ423に対応
し、その動作は図4とまったく同じである。一方、図6
のステップ630は実行時間間隔のゆらぎを削減するた
めに、10msカウンタの値がそれぞれd1,d2ある
いはd3と等しいかどうかチェックする。本実施ではd
1=1ms,d2=3ms,d3=7msにそれぞれ定
義している。10msカウンタ=d1が成立したという
ことは、すなわち、基本起動周期10msのカウント開
始タイミングから1msが経過した時刻であることを示
している。同様に、10msカウンタ=d2は基本起動
周期10msのカウント開始タイミングから3ms経過
した時刻を、また10msカウンタ=d3は7ms経過
した時刻であることを示している。10msカウンタ=
d1が成立し基本起動周期10msのカウント開始タイ
ミングから1msが経過した時刻であれば、ステップ6
40〜642に進みタスクレベル0内で起動要求が発生
しているタスクが順次起動実行する。すなわち、ステッ
プ640はタスクレベル0内のタスクであるタスク00
からタスク02について順次判断を繰り返すループであ
り、ステップ641で実際に対応する各タスクに起動要
求が発生しているかどうか判断する。対応するタスクに
起動要求が発生していればステップ642に進み、タス
クレベル0の対応するタスクを起動実行する。以下同様
に10msカウンタ=d2が成立すなわち基本起動周期
10msのカウント開始タイミングから3msが経過し
た時刻ではタスクレベル1内の各タスクについて、10
msカウンタ=d3が成立、すなわち、基本起動周期1
0msのカウント開始タイミングから7msが経過した
時刻ではタスクレベル2内の各タスクについて起動要求
が発生しているタスクが起動する。以上の全処理が終了
すれば、最後に図4と同様ステップ670により10m
sカウンタがインクリメントされ、本タイマルーチンが
終了する。Next, an embodiment of the present invention for solving this problem will be described with reference to FIG. FIG. 6 shows a conventional embodiment FIG.
This is an embodiment of the present invention corresponding to, and is automatically activated every 1 ms by a timer interrupt as in FIG. Steps 620 to 623 in FIG. 6 correspond to steps 420 to 423 in FIG. 4, respectively, and the operation is exactly the same as that in FIG. On the other hand, FIG.
The step 630 of (1) checks whether the value of the 10 ms counter is equal to d1, d2 or d3, respectively, in order to reduce the fluctuation of the execution time interval. In this implementation, d
It is defined as 1 = 1 ms, d2 = 3 ms, and d3 = 7 ms, respectively. The establishment of the 10 ms counter = d1 means that the time is 1 ms after the count start timing of the basic startup cycle of 10 ms. Similarly, 10 ms counter = d2 indicates the time when 3 ms has elapsed from the count start timing of the basic activation cycle of 10 ms, and 10 ms counter = d3 indicates the time when 7 ms has elapsed. 10ms counter =
If d1 is satisfied and 1 ms has elapsed from the count start timing of the basic startup cycle of 10 ms, step 6 is performed.
In steps 40 to 642, the tasks for which the activation request has been issued within the task level 0 are sequentially activated and executed. That is, step 640 is task 00, which is a task in task level 0.
Is a loop for sequentially repeating the determination from task to task 02. In step 641, it is determined whether or not a start request is actually issued to each corresponding task. If an activation request is generated for the corresponding task, the process proceeds to step 642, and the corresponding task of task level 0 is activated and executed. Similarly, at the time when 10 ms counter = d2 is satisfied, that is, when 3 ms has elapsed from the count start timing of the basic startup cycle of 10 ms, each task in task level 1 has 10
ms counter = d3 is established, that is, basic startup cycle 1
At the time when 7 ms has passed from the count start timing of 0 ms, the task for which the activation request has been issued is activated for each task in task level 2. When all the above processes are completed, 10 m is finally reached by step 670 as in FIG.
The s counter is incremented and this timer routine ends.
【0016】図6で説明した本発明の実施例を図7によ
り時間軸の面から改めて説明する。図7は従来の実施例
を示す図5に対応するタイミングチャートである。本図
で10msの時刻t0では、図5と同様にタスク00,
タスク10,タスク11,タスク20が起動要求が出さ
れる。しかし、この10msの時刻t0では図5で実行
されたような実際のタスクの起動は行わない。これは、
本10msの時刻t0では各タスクの起動要求発生判断
処理(図6におけるステップ610からステップ62
3)や図示していない他のシステム制御に必要となる処
理が優先的に実行される可能性があり、それらの処理時
間による各タスク実行時間間隔のゆらぎへの影響除くた
めである。つぎのタイマルーチンの実行時刻であるt
1、すなわち、10msカウンタ=d1が成立する条件
になるとタスクレベル0に含まれるタスクで起動要求が
発生している唯一のタスクであるタスク00が起動し実
行される。ただし他のタスクレベル1およびタスクレベ
ル2に属する残りのタスクはこの時点で起動要求が発生
しているにも関わらず起動しない。次に時間が経過し時
刻がt2になると10msカウンタd2の条件が成立
し、タスクレベル1内のタスクで起動要求がでているタ
スクであるタスク10,タスク11がそれぞれの実行優
先度の定義に従って起動実行される。一方、その後時間
がt3の時刻になると10msカウンタd3の条件が成
立し、タスクレベル2内のタスクで起動要求がでている
タスクであるタスク20が起動実行され、初めの10m
sの時刻t0で起動要求が出されたタスク00,タスク
10,タスク11,タスク20の実行がすべてが終了し
たことになる。次の20msあるいは30msのタイミ
ングでも同様に各タスクの起動要求が発生し、それぞれ
時刻t1,t2,t3で対応するタスクが起動実行され
る。ここで、各タイミング10ms,20ms,30m
s等におけるそれぞれの時刻t1,t2,t3までの遅
れ時間d1,d2,d3はそれぞれ常に一定である(本
実施例では、d1=1ms,d2=3ms,d3=7m
s一定)。従って、たとえばタスクレベル1内の10m
s間隔で実行されるタスクであるタスク10に着目する
とタスク10は常に時刻t2の時点で起動実行されるた
め、それらの実行周期は図7のタスク10実行周期
(1),タスク10実行周期(2)で示す通り他のタス
ク等の影響受けず常に10ms一定となる。これらは、
タスク10のみでなく、タスクレベル0およびタスクレ
ベル2内で最も実行優先度が高いタスクであるタスク0
0,タスク20についてもまったく同様である。The embodiment of the present invention described with reference to FIG. 6 will be described again in terms of time axis with reference to FIG. FIG. 7 is a timing chart corresponding to FIG. 5 showing a conventional embodiment. In this figure, at time t0 of 10 ms, task 00,
The task 10, task 11, and task 20 are requested to be activated. However, at time t0 of 10 ms, the actual task activation as executed in FIG. 5 is not performed. this is,
At time t0 of this 10 ms, the activation request generation determination process of each task (step 610 to step 62 in FIG. 6) is executed.
This is because there is a possibility that processing required for 3) or other system control (not shown) may be preferentially executed, and the effect of those processing times on fluctuations in task execution time intervals. T, which is the execution time of the next timer routine
Under the condition that 1 is satisfied, that is, 10 ms counter = d1, the task included in task level 0, task 00, which is the only task for which an activation request is issued, is activated and executed. However, the remaining tasks belonging to the other task levels 1 and 2 do not start even though the start request is generated at this point. Next, when the time elapses and the time becomes t2, the condition of the 10 ms counter d2 is satisfied, and the task 10 and the task 11 which are the tasks in the task level 1 which are requested to start are defined according to the respective execution priority definitions. It is started and executed. On the other hand, when the time thereafter reaches time t3, the condition of the 10 ms counter d3 is satisfied, and the task 20 which is the task in the task level 2 for which the activation request is issued is activated and executed.
All of the executions of the task 00, the task 10, the task 11, and the task 20 for which the activation request is issued at the time t0 of s are completed. Similarly, at the next timing of 20 ms or 30 ms, the activation request for each task is generated, and the corresponding tasks are activated and executed at times t1, t2, and t3, respectively. Here, each timing 10ms, 20ms, 30m
The delay times d1, d2, d3 up to the respective times t1, t2, t3 in s etc. are always constant (d1 = 1 ms, d2 = 3 ms, d3 = 7 m in this embodiment).
s constant). Therefore, for example, 10m in task level 1
Focusing on the task 10 which is a task executed at s intervals, the task 10 is always activated and executed at the time t2. Therefore, the execution cycles thereof are the task 10 execution cycle (1) and the task 10 execution cycle (1) shown in FIG. As shown in 2), it is always constant for 10 ms without being affected by other tasks. They are,
Not only task 10, but also task 0, which has the highest execution priority in task level 0 and task level 2.
The same applies to 0 and task 20.
【0017】従来の方式では、実行優先度が低いタスク
はタスクよりも実行優先度が高いすべてのタスクの影響
を直接受けるため、実行優先度が低いタスクほどその実
行時間間隔が大きかったが、本発明によれば、実行優先
度が低いタスクであっても同一タスクレベル内かつタス
クよりも実行優先度が高いタスクだけの影響を受けるの
みであり、相対的に実行優先度が低いタスクであっても
その実行時間間隔のゆらぎを大幅に削減することができ
る。ただし、本発明の効果を十分発揮させるためには、
各タスクレベル毎に、それらのタスクレベル内のプログ
ラムの実行が完全に終了するだけの時間経過後、次のタ
スクレベルの起動実行が開始されるようそれぞれのタイ
ミングt1,t2,t3すなわちそれぞれの遅れ時間d
1,d2,d3を設定する必要がある。本実施例では (d2−d1)>(タスク00の実行時間+タスク01
の実行時間) (d3−d2)>(タスク10の実行時間+タスク11
の実行時間) の条件を満たすよう各d1,d2,d3を設定すること
で本条件を満足することができる。In the conventional method, since a task having a lower execution priority is directly influenced by all tasks having a higher execution priority than a task, a task having a lower execution priority has a longer execution time interval. According to the invention, even a task with a low execution priority is affected only by tasks within the same task level and with a higher execution priority than the task, and it is a task with a relatively low execution priority. Can significantly reduce the fluctuation of the execution time interval. However, in order to fully exert the effect of the present invention,
For each task level, the timings t1, t2, t3, that is, the respective delays, are set so that the start-up execution of the next task level is started after the time for the execution of the programs in those task levels to be completely completed. Time d
It is necessary to set 1, d2 and d3. In this embodiment, (d2-d1)> (task 00 execution time + task 01
Execution time) (d3-d2)> (task 10 execution time + task 11
This execution condition can be satisfied by setting d1, d2, and d3 so as to satisfy the following condition.
【0018】以上の構成により、実行優先度が低いタス
クであっても実行時間間隔のゆらぎを大幅に削減するこ
とができる。With the above configuration, it is possible to greatly reduce the fluctuation of the execution time interval even for a task having a low execution priority.
【0019】本実施例では、タスクディスパッチ周期で
ある10msは基準周期Δtに対応し、一方、各タスク
レベルに含まれるそれぞれのタスクが、それぞれタスク
群G1,G2,G3に対応する。本実施例では、各タス
クレベル毎にそれぞれのタスクをタスク群としてグルー
ピングしたが、もちろんこれらのタスク群グルーピング
はタスクレベルによる分類という分け方にこだわる必要
はなく、図6ステップ630〜662に示した動作を必
要に応じ修正することで、任意のタスク群分類に対して
同様の実行遅れ特性を適用することができる。In the present embodiment, the task dispatch period of 10 ms corresponds to the reference period Δt, while each task included in each task level corresponds to each of the task groups G1, G2 and G3. In the present embodiment, each task is grouped as a task group for each task level, but of course these task group groupings do not have to be classified according to the task level, and shown in steps 630 to 662 in FIG. The same execution delay characteristics can be applied to any task group classification by modifying the operation as necessary.
【0020】[0020]
【発明の効果】本発明によれば、各タスク群内で最も実
行優先度の高いタスクは常に同一の起動周期で起動する
ことができ、また、プログラムタスク数の多い複合制御
装置における実行優先度が低いタスクであっても、タス
クの実行タイミングに影響を受ける他のタスクの数を実
質的に大幅に削減できる。従って実行優先度の低いタス
クであっても、その起動周期不規則変動を最小限に止
め、制御システムの制御精度,制御性能を向上させるこ
とができる。According to the present invention, the task having the highest execution priority in each task group can always be activated in the same activation cycle, and the execution priority in the complex control device having a large number of program tasks Even if the task is low, the number of other tasks affected by the task execution timing can be substantially reduced. Therefore, even for a task having a low execution priority, it is possible to minimize irregular fluctuations in the activation cycle thereof and improve the control accuracy and control performance of the control system.
【図1】一般的な自動車用OSのブロック図。FIG. 1 is a block diagram of a general automobile OS.
【図2】エンジンおよびATを統合的に制御する制御装
置におけるタスク割り付け例を示すタスク割り付け説明
図。FIG. 2 is a task allocation explanatory diagram showing an example of task allocation in a control device that integrally controls an engine and an AT.
【図3】図2で与えられた一定周期で実行されるタスク
の実行タイミングを示す実行周期割り付け説明図。FIG. 3 is an explanatory diagram of execution cycle allocation showing execution timings of tasks executed in a constant cycle given in FIG.
【図4】各タスクの起動制御を実現するOS内タイマル
ーチンの従来例を示すPADのフローチャート。FIG. 4 is a PAD flow chart showing a conventional example of a timer routine in an OS that realizes activation control of each task.
【図5】従来の方式による各タスクの起動時刻を説明す
るタイミングチャート。FIG. 5 is a timing chart for explaining the starting time of each task according to the conventional method.
【図6】各タスクの起動制御を実現するOS内タイマル
ーチンの本発明実施例を示すPADのフローチャート。FIG. 6 is a PAD flow chart showing an embodiment of the present invention of an in-OS timer routine for realizing activation control of each task.
【図7】本発明一実施例による各タスクの起動時刻を説
明するタイミングチャート。FIG. 7 is a timing chart for explaining activation times of respective tasks according to an embodiment of the present invention.
630〜662…遅れ時間d1,d2〜dnだけ遅れ起
動開始時刻t1,t2〜tnを実現するプログラムステ
ップ。630-662 ... Program steps for realizing the delayed activation start times t1, t2-tn by the delay times d1, d2-dn.
Claims (4)
信号をディジタル処理する演算回路,前記演算回路を操
作するプログラムを記憶する記憶手段,前記演算回路の
演算結果に基づき自動車に搭載された制御要素の制御手
段からなり、前記プログラムはその制御機能に基づいて
おのおののタスクに分割し、予め決められた基準周期Δ
tの整倍数となるよう各タスクの起動周期を設定し、設
定された起動周期に基づいて各タスクの起動を開始する
ものにおいて、各タスクはタスク群G1,G2〜Gnに
分割され、繰り返し起動する各タスク群G1,G2〜G
nのおのおのの起動開始時刻は、前記基準周期Δt毎に
訪れる仮想的な基準時刻t0に対し、おのおの対応した
遅れ時間d1,d2〜dnだけそれぞれ遅れた起動開始
時刻t1,t2〜tnであることを特徴とする自動車用
制御装置。1. An arithmetic circuit for digitally processing output signals from various sensors mounted on an automobile, a storage means for storing a program for operating the arithmetic circuit, and a control mounted on the automobile based on an arithmetic result of the arithmetic circuit. The program is composed of element control means, and the program is divided into respective tasks based on its control function, and a predetermined reference period Δ
In the one in which the activation cycle of each task is set to be a multiple of t and the activation of each task is started based on the set activation cycle, each task is divided into task groups G1, G2 to Gn, and repeatedly activated. Each task group G1, G2-G
The start start time of each of n is the start start time t1, t2 to tn delayed by the corresponding delay time d1, d2 to dn, respectively, with respect to the virtual reference time t0 that comes every reference period Δt. A control device for an automobile characterized by:
はそれぞれ基準周期Δtよりも短い遅れ時間である自動
車用制御装置。2. The delay times d1, d2 to dn of claim 1.
Are vehicle control devices each having a delay time shorter than the reference period Δt.
はそれぞれ互いに異なる遅れ時間である自動車用制御装
置。3. The delay times d1, d2 to dn of claim 1.
Are control devices for automobiles, each having a different delay time.
は、それぞれd1<d2<…<dnの関係が成立し、か
つ各遅れ時間d1,d2〜dnは、 (d2−d1) >タスク群G1の実行時間 (d3−d2) >タスク群G2の実行時間 : : (dn−dn−1)>タスク群Gn−1の実行時間 の条件が成り立つように設定された自動車用制御装置。4. The delay times d1, d2 to dn of claim 1.
Respectively, the relationship of d1 <d2 <... <dn is established, and the delay times d1, d2 to dn are (d2-d1)> execution time of task group G1 (d3-d2)> execution of task group G2. Time :: (dn-dn-1)> Execution time of task group Gn-1 A vehicle control device that is set to satisfy the condition.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13315795A JPH08328615A (en) | 1995-05-31 | 1995-05-31 | Controller for automobile |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13315795A JPH08328615A (en) | 1995-05-31 | 1995-05-31 | Controller for automobile |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08328615A true JPH08328615A (en) | 1996-12-13 |
Family
ID=15098036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13315795A Pending JPH08328615A (en) | 1995-05-31 | 1995-05-31 | Controller for automobile |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08328615A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754576B2 (en) | 2002-01-11 | 2004-06-22 | Denso Corporation | Electronic control unit having different mask return processes |
JP2005528604A (en) * | 2002-05-31 | 2005-09-22 | マイクロリス コーポレイション | System for digital capacitance diaphragm gauge and method of operating the embedded system |
JP2007233930A (en) * | 2006-03-03 | 2007-09-13 | Shimadzu System Solutions Co Ltd | Simulator for distributed control system |
JP2010225072A (en) * | 2009-03-25 | 2010-10-07 | Yamatake Corp | Controller and control method of control system |
-
1995
- 1995-05-31 JP JP13315795A patent/JPH08328615A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754576B2 (en) | 2002-01-11 | 2004-06-22 | Denso Corporation | Electronic control unit having different mask return processes |
JP2005528604A (en) * | 2002-05-31 | 2005-09-22 | マイクロリス コーポレイション | System for digital capacitance diaphragm gauge and method of operating the embedded system |
US7720628B2 (en) | 2002-05-31 | 2010-05-18 | Brooks Instrument, Llc | Digitally controlled sensor system |
JP4812300B2 (en) * | 2002-05-31 | 2011-11-09 | ブルックス・インストルメント・エルエルシー | System for digital capacitance diaphragm gauge and method of operating the embedded system |
JP2007233930A (en) * | 2006-03-03 | 2007-09-13 | Shimadzu System Solutions Co Ltd | Simulator for distributed control system |
JP2010225072A (en) * | 2009-03-25 | 2010-10-07 | Yamatake Corp | Controller and control method of control system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6260058B1 (en) | Process for controlling technological operations or processes | |
JP2000347883A (en) | Virtual computer device | |
JP2793993B2 (en) | Program runaway detection method in microcomputer | |
JPH08328615A (en) | Controller for automobile | |
JP2001202258A (en) | Rear time processor | |
EP0880094A2 (en) | Control system | |
GB2411024A (en) | Interrupt processing control | |
US9128757B2 (en) | Method and lightweight mechanism for mixed-critical applications | |
US20050177668A1 (en) | Interrupt pre-emption and ordering within a data processing system | |
US6754576B2 (en) | Electronic control unit having different mask return processes | |
CN108845870B (en) | Probabilistic real-time task scheduling method based on pWCET shaping | |
JP2004516547A (en) | Suspension control device | |
WO2005013130A1 (en) | Real time control system | |
US5162999A (en) | Process and device for adjusting operating parameters of an internal combustion engine | |
KR100454164B1 (en) | Control unit | |
JP4731126B2 (en) | Interrupt control circuit | |
JP7263746B2 (en) | Information processing equipment | |
JPH0960552A (en) | Control device for automobile | |
JPH0877039A (en) | Test method | |
JPH05204667A (en) | Task execution control device in computer system | |
JP3257932B2 (en) | Engine control method | |
Tomisawa et al. | Trends in powertrain integrated control and development of optimum microcomputers | |
JPH08249194A (en) | Task scheduling method | |
JP2850691B2 (en) | Engine digital control unit | |
JP2021105368A (en) | Engine control device |