JPS63314352A - エンジン制御装置 - Google Patents

エンジン制御装置

Info

Publication number
JPS63314352A
JPS63314352A JP62331334A JP33133487A JPS63314352A JP S63314352 A JPS63314352 A JP S63314352A JP 62331334 A JP62331334 A JP 62331334A JP 33133487 A JP33133487 A JP 33133487A JP S63314352 A JPS63314352 A JP S63314352A
Authority
JP
Japan
Prior art keywords
task
tasks
priority
interrupt
execution
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
JP62331334A
Other languages
English (en)
Other versions
JPH0318026B2 (ja
Inventor
Matsuo Amano
松男 天野
Toru Sugawara
徹 菅原
Masumi Imai
今井 真澄
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62331334A priority Critical patent/JPS63314352A/ja
Publication of JPS63314352A publication Critical patent/JPS63314352A/ja
Publication of JPH0318026B2 publication Critical patent/JPH0318026B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Combined Controls Of Internal Combustion Engines (AREA)
  • Control By Computers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は自動車のエンジン制御装置に関し、更に具体的
にはマイクロコンピュータを使用したエンジン制御装置
に関する。
〔従来の技術〕
最近ではマイクロコンピュータによりエンジンの総合的
制御を行うことが実施されつつある。マイクロコンピュ
ータによりエンジンの総合的制御を高精度で行うにはソ
フトウェアとしてはエンジンの運転状況に応じて複数の
、起動周期の異なるプログラム(以下、タスクという。
)群の起動。
停止の管理が十分に行われるように構成されることが要
請される。
〔発明が解決しようとする問題点〕
しかしながら現在の処、上記のようなマイクロコンピュ
ータによるエンジンの総合的制御を行うものにおいては
上記タスク群の管理は粗雑なものであり、特にエンジン
の過渡的運転状態、即ちエンジン始動時、アイドル時ま
たは加速運転時には円滑なタスクの引き継ぎを行うこと
が不可能である為に自動車において要請される5例えば
排気ガス対策等に合致したエンジン制御が行われない欠
点がある。
また、タスクの優先制御にあっても、特開昭54−58
116公報等に提案されているように。
タスクを優先度に基づいて複数のタスクレベル(優先レ
ベル)に分類し、割込優先制御はタスクレベル単位で一
律に行なうようにしている。しかし、この方法によれば
、1つのタスクレベルに属する複数のタスクが一括して
実行されることになるので、例えば起動周期が異なるタ
スクを同一のタスクレベルに含ませることができない。
このため、エンジンの制御特性に応じて要求される各タ
スクの起動周期と優先度にそれぞれ対応させたきめ細か
なタスク管理ができないという問題があった。
本発明の目的は、エンジンの制御機能から要求される各
タスクの実行を、タスクの起動周期と優先度とにそれぞ
れ対応させて優先制御を行なえる構成とし、エンジンの
過渡的運転状態における高精度のエンジン制御を可能と
するエンジン制御装置を提供することにある。
〔問題点を解決するための手段〕
本発明は、上記目的を達成するため、 (1)入力されるインターバル割込要求を含む複数の割
込要求をそれぞれ一旦蓄積する手段と、該手段の出力端
に設けられ与えられる割込禁止指令に応じて前記割込要
求の発生を阻止するゲート手段とを有してなる割込要求
発生手段と;(2)  エンジンの制御機能毎に分類さ
れ、それぞれ所定の起動周期で実行される複数のタスク
が格納されたメモリと、 (3)前記割込要求発生手段から出力されるインターバ
ル割込要求に基づいて計数されたタスクの起動周期に係
る経過時間データが格納されるソフトタイマテーブルと
; (4)前記割込要求発生手段から出力されるインターバ
ル割込要求により実行中のタスクの実行を中断させ、前
記ソフトタイマテーブルの経過時間データの計数動作を
行ない、該計数動作の内容により各タスクが起動周期に
達したか否かを判定し、起動周期に達したタスクの起動
要求を示すフラグをタスク制御テーブルに立てる割込処
理手段と;(5)前記タスク制御テーブルを検索し中断
されたタスクを含め起動要求フラグが立てられているタ
スクの中で所定の優先規準にしたがってタスクを選択し
て当該タスクの実行指令を出力するタスクディスパッチ
ャとを備えてなり; (6)前記タスクはそれぞれ優先度が定められるととも
に複数のタスクを含んでなる複数のタスクレベルに分類
され、かつ該タスクレベルはそれぞれ優先度が定められ
たものとされ; (7)前記タスク制御テーブルは前記各タスクに対応さ
せて前記起動要求フラグが立てられるフラグ領域を有し
、該フラグ領域は前記タスクレベル毎に区画されるとと
もに当該タスクレベルに属する複数のタスクを優先度の
高い順に配列されてなり、 (8)前記所定の優先規準は、優先度の高、低による実
行権の移行は前記タスクレベル間のみで行なうものとし
、同一タスクレベル内における中断中のタスクは当該タ
スクの優先度に拘らず同一タスクレベル内では最も優先
度が高いものとし、同一タスクレベル内に属する2以上
のタスクに対する起動要求については当該タスクの優先
度に基づいて実行すべきタスクを選択するものとしたこ
と;を特徴とするエンジン制御装置にある。
〔作用〕
このように構成されることから、各タスクの実行はまず
割込処理手段によりソフトタイマテーブルの起動周期に
基づき管理され1次にタスクディスパッチャにより起動
周期に達したタスク相互間で優先制御がなされることに
なる。したがって、起動周期に達していないタスクは同
一のタスクレベルに屈していても実行されることがない
ことから、不必要なタスクの実行をすることがなくなる
ばかりでなく、他の優先度の低いタスクにとっては優先
割込みによる中断時間が短縮されることになる。そして
、エンジンの制御機能等の要求に応じて、自由にタスク
の起動周期と優先制御を組立てることができるので、き
め細かな効率のよい制御を実現でき、これにより過渡状
態の制御を高精度化できる。
また、タスクレベル間では優先度に応じて実行権を移行
するが、同一タスクレベル内においては。
中断中のタスクが最も優先度が高いものとして優先制御
するようにしたことから、タスクの中断回数等が低減さ
れる。これにより中断に伴う待避処理時間が減るのでタ
スクの実行効率が高まることになり、さらに過渡状態等
の制御精度を高めることになるのである。
〔実施例〕
以下、本発明を図面に示した実施例に基づき詳細に説明
する。
第1図にはエンジン系統全体の制御装置が示されている
。図において、吸入空気はエアクリーナ2、スロットル
チャンバ4、吸気管6を通り、シリンダ8へ供給される
。シリンダ8で燃焼したガスは、シリンダ8から排気管
10を通り、大気中へ排出される。
スロットルチャンバ4には、燃料を噴射するためのイン
ジェクタ12が設けられており、このインジェクタ12
から噴出した燃料はスロットルチャンバ4の空気通路内
で霧化され、吸入空気と混合して混合気を形成し、この
混合気は吸気管6を通って、吸気弁20の開弁により、
シリンダ8の燃焼室へ供給される。
インジェクタ12の出口近傍には絞り弁14゜16が設
けられている。絞り弁14は、アクセルペタルと機械的
に連動するように構成され、運転者により駆動される。
一方、絞り弁16はダイヤフラム18により駆動される
ように配置され、空気流量が小の領域で全開状態となり
、空気流量が増大す名につれてダイヤフラム18への負
圧が増大することにより絞り弁16は開き始め、吸入抵
抗の増大を抑止する。
スロットルチャンバ4の絞り弁14.16の上流には空
気通路22が設けられ、この空気通路22には熱線式空
気流量計を構成する電気的発熱体24が配設され、空気
流速と発熱体の伝熱社との関係から定まる空気流速に応
じて変化する正気信号が取り出される。発熱体24は空
気通路22内に設けられているので、シリンダ8のバツ
クファイア時に生じる高温ガスから保護されると共に、
吸入空気中のごみなどによって汚染されることからも保
護される。この空気通路22の出口はベンチュリの最狭
部近傍に開口され、その入口はベンチュリの上流側に開
口されている。
インジェクタ12に供給される燃料は、燃料タンク30
から、フューエルポンプ32、フユ一二ルダンパ34及
びフィルタ36を介して燃圧レギュレータ38へ供給さ
れる。一方、燃圧レギュレータ38からはインジェクタ
12ヘパイブ40を介して加圧燃料が供給され、そのイ
ンジェクタ12から燃料が噴射される吸気管6の圧力と
上記インジェクタ12への燃址圧の差が常に一定になる
ように、燃圧レギュレータ38から燃料タンク30ヘリ
ターンパイプ42を介して燃料が戻されるようになって
いる。
吸気弁20から吸入された混合気はピストン50により
圧縮され、点火プラグ52によるスパークにより燃焼し
、この燃焼は運動エネルギに変換される。シリンダ8は
冷却水54により冷却され、この冷却水の温度は水温セ
ンサ56により計測され、この計測値はエンジン温度と
して利用される。
点火プラグ52には点火コイル58より点火タイミング
に合わせて高電圧が供給される。
また、図示しないクランク軸にはエンジンの回転に応じ
て基準クランク角毎におよび一定角度(例えば0.5度
)毎に基準角信号およびポジション信号を出すクランク
角センサが設けられている。
このクランク角センサの出力、水温センサ56の出力5
6A及び発熱体24からの電気信号はマイクロコンピュ
ータなどからなる制御回路64に入力され、制御回路6
4で演算処理され、この制御回路64の出力によってイ
ンジェクタ12及び点火コイル58が駆動される。
以上の構成に基づき制御されるエンジン系統において、
スロットルチャンバ4にはスロットルの絞り弁16を跨
いで吸気管6に連通ずるバイパス26が設けられ、この
バイパス26には開閉制御されるバイパスバルブ62が
設けられている。このバイパスバルブ62の駆動部には
、前記制御回路64の制御入力が供給され、開閉制御さ
れるようになっている。
このバイパスバルブ62は絞り弁16を迂回して設けら
れたバイパス26に臨ませられ、パルス電流によって開
閉制御がなされる。このバイパスバルブ62は弁のリフ
ト量によりバイパス26の断面積を変更するもので、こ
のリフト量は制御回路64の出力によって駆動系が駆動
され制御される。即ち、制御回路64においては駆動系
の制御のため開閉周期信号が発生され、駆動系はこの開
閉周期信号によってバイパスバルブ62のリフト量を調
節するための制御信号をバイパスバルブ62の駆動部に
付与するものである。
第2図は第1図の点火装置の説明図であり、増幅器68
を介してパワー・トランジスタ72ヘパルス電流が供給
され、この電流によりトランジスタ72はONする。こ
れによりバッテリ66より点火コイル58へ一次コイル
電流が流れる。このパルス′社流の立ち下がりでトラン
ジスタ72は遮断状態となり、点火コイル58の2次コ
イルに高電圧を発生する。
この高電圧は配電器70を介してエンジンの各シリンダ
にある点火プラグ52のそれぞれにエンジン回転に同期
して高電圧を配電する。
第3図は排気ガス環流(以下EGRと記す)システムを
説明するためのもので、負圧源80の一定負圧が制圧弁
84を介して制御弁86へ加えている。制圧弁84はト
ランジスタ90に加えられる繰返しパルスのONデユー
ティ比率に応じ、負圧源の一定負圧を大気88へ開放に
対する比率を制御し、制御弁86への負圧の印加状態を
制御する。従って制御弁86へ加えられる負圧はトラン
ジスタ90のONデユーティ比率で定まる。この制圧弁
84の制御負圧により排気管10から吸気管6へのEG
R量が制御される。
第4図は制御システムの全体構成図である。
CPU102とリード・オンリ・メモリ104(以下R
OMと記す。)とランダム・アクセス・メモリ106(
以下RAMと記す。)と入出力回路108とから構成さ
れている。上記CPUIO2はROM104内に記憶さ
れた各種のプログラムにより、入出力回路108からの
入力データを演算し、その演算結果を再び入出力回路1
08へ戻す。これらの演算に必要な中間的な記憶はRA
M106を使用する。CPU102.ROMlO4、R
AM106.入出力回路108間の各種デ−タのやり取
りはデータ・バスとコントロール・バスとアドレス・バ
スからなるパスライン110によって行われる。
入出力回路108には第1のアナログ・ディジタル・コ
ンバータ(以下ADC1と記す)と第2のアナログ・デ
ィジタル・コンバータ(以下ADC2と記す)と角度信
号処理回路126と1ビツト情報を入出力する為のディ
スクリート入出力回路(以下DIOと記す)との入力手
段を持つ。
ADClにはバッテリ電圧検出センサ132(以下VB
Sと記す)と冷却水温センサ56(以下TWSと記す)
と大気温センサ112(以下TASと記す)と調整電圧
発生器114(以下VH8と記す)とスロットル角セン
サ116(以下θTH8と記す)とλセンサ118(以
下λSと記す)との出力がマルチ・プレクサ120(以
下MPXと記す)に加えられ、MPX120によりこの
内の1つを選択してアナログ・ディジタル・変換回路1
22(以下ADCと記す)へ入力する。
ADC122の出力であるディジタル値はレジスタ12
4(以下REGと記す)に保持される。
また流量センサ24(以下AFSと記す)はADC2へ
入力され、アナログ・ディジタル・変換回路128(以
下ADCと記す)を介してディジタル変換されレジスタ
130(以下REGと記す)へセットされる。
角度センサ146(以下ANGSと記す)からは基準ク
ランク角例えば180度クランク角を示す信号(以下R
EFと記す)と微少角例えば1度クランク角を示す信号
(以下PO8と記す)とが出力され、角度信号処理回路
126へ加えられ。
ここで波形整形される。
DIOにはアイドル・スイッチ148(以下よりLE−
8Wと記す)とトップ・ギヤ・スイッチ150(以下T
oP−8Wと記す)トスタータ・スイッチ152(以下
5TART−8Wと記す)とが入力される。
次にCPUの演算結果に基づくパルス出力回路および制
御対象について説明する。インジェクタ制御回路134
(1,NJCと記す)は演算結果のディジタル値をパル
ス出力に変換する回路である。
従って燃料噴射量に相当したパルス幅を有するパルスが
INJC134で作られ、ANDゲート136を介して
インジェクタ12へ印加される。
点火パルス発生回路138(以下l0NGと記す)は点
火時期をセットするレジスタ(ADVと記す)と点火コ
イルの1次電流通電開始時間をセットするレジスタ(D
WLと記す)とを有し、CPUよりこれらデータがセッ
トされる。セットされたデータに基づいてパルスを発生
し、第2図に詳述した増幅器68へANDゲート140
を介してこのパルスを加える。
バイパスバルブ62の開弁率は制御回路(以下l5CC
と記す)142からANDゲート144を介して加えら
れるパルスによって制御される。
l5CC:142はパルス幅をセットするレジスタl5
CDと繰返しパルス周期をセットするレジスタI SC
Pとを持っている。
第3図に示したEGR制御井86を制御するトランジス
タ90を制御するEGR量制御パルス発生回路154(
以下EGRCと記す)にはパルスのデユーティを表わす
値をセットするレジスタEGRDとパルスの繰返し周期
を表わす値をセットするレジスタEGRPとを有してい
る。このEGRCの出力パルスはANDゲー1〜156
を介してトランジスタ90に加えられる。
また1ビツトの入出力信号は回路DIOにより制御され
る。入力信号としてはIDLE−5W信号、TOP−8
W信号、5TART−8W信号がある。また出力信号と
しては燃料ポンプを駆動するためのパルス出力信号があ
る。このDIOは端子を入力端子として使用するか、出
力端子として使用するかを決定するためのレジスタDD
Rと、出力データをラッチするためのレジスタDOUT
とが設けられている。
レジスタ160は入出力回路108内部の色々な状態を
指令する命令を保持するレジスタ(以下MODと記す)
であり1例えばこのレジスタに命令をセットすることに
より、ANDゲート136 。
140.144,156を総てターンオンさせたリ、タ
ーンオフさせたりする。このようにMODレジスタ16
0に命令をセットすることにより、INJCやIGNC
,l5CCの出力の停止や起動を制御できる。
第5図は第4図の制御回路のプログラムシステムの基本
構成を示す図である。
図においてイニシャル処理プログラム202、割込処理
プログラム206、マクロ処理プログラム228および
タスクディスパッチャ208はタスク群を管理するため
の管理プログラムである。
イニシャル処理プログラム202はマイクロコンピュー
タを作動させるための前処理を行うためのプログラムで
あり例えば、RA、M2O3の記憶内容をクリアしたり
入出力インターフェイス回路108のレジスタ類の初期
値を設定したり、さらにはエンジン制御を行うのに必要
な前処理を行うための入力情報例えば冷却水温Tw、バ
ッテリー電圧等のデータを取込むための処理を行う。ま
た。
割込処理プログラム206は各種の割込みを受は付け、
その割込要因を分析し、タスク群210ないし226の
内の必要なタスクを起動させるための起動要求をタスク
ディスパッチャ208に出す。
割込要因には後述するごとく電源電圧、冷却水温度等の
入力情報をAD変換終了後に発生するAD変換割込(A
DC) 、エンジン回転に同期して発生するイニシャル
割込(INTL)、又設定された一定時間毎に、例えば
Ioms毎に発生するインターバル割込(INTV)、
更にはエンジンのストップ状態を検出し、発生するエン
ス1〜割込(E N S T)等がある。
タスク群210乃至226の各タスクには優先順位を表
わすタスク番号が割り当てられており、各タスクはタス
クレベル0乃至2の何れかのタスクレベルに属する。即
ち、タスクO乃至タスク2はタスクレベル0に、タスク
3乃至タスク5はタスクレベル1に2更にタスク6乃至
タスク8はタスクレベル2に各々属する。
タスクディスパッチャ208は前記各種割込の起動要求
を受は付けこれらの起動要求に対応する各種タスクに付
けられた優先順位に基づきCPUの占有時間を割り当て
る。
ここでタスクディスパッチャ208によるタスクの優先
制御は下記の方法に拠る。(1)優先度の低いタスクを
中断し、優先度の高いタスクへの実行権の移行はタスク
レベル間のみで行う。なおここではレベルOが最も優先
度が高いものとする。
(2)同じタスクレベル内で、現在実行中又は中断中の
タスクがある場合は、該タスクが最も優先度が高く該タ
スクが終了するまで他のタスクは動作できない。(3)
同じタスクレベル内で複数のタスクに起動要求がある場
合には、タスク番号が小さい程優先度が高いものとする
。タスクディスパッチャ208の処理内容は後述するが
本発明では上記優先制御を行うためにタスク単位にRA
Mにソフトタイマを設け、又タスクレベル単位にタスク
を管理する制御ブロックをRAM中に設定するように構
成している。そして上記各タスクの実行終了毎にそのタ
スクの実行終了報告をマクロ処理プログラム228によ
りタスクディスパッチャ208に行うようにしている。
次にタスクディスパッチャ208の処理内容について第
6図乃至第12図に基づき説明する。第6図はタスクデ
ィスパッチャ208の管理するRAMに設けられたタス
ク制御ブロックが示されている。このタスク制御ブロッ
クがタスクレベルの数だけ設けられており本実施例では
タスクレベルO乃至2の3つ設けられている。各制御ブ
ロックには各々8ビツトが割り当てられ、その内0乃至
2ビツト目(Q、〜Q、)までが起動要求タスク表示を
行う起動ビットであり、7ビツト目(R)が同一タスク
レベル中の何れかのタスクが現在実行中であるか又は中
断中であるかを示す実特ビットを表わす。そして前記起
動ビットQ。乃至Q2はそれぞれ各タスクレベル中で実
行優先度の高い順に配列されており、例えば第5図中で
タスク4に該当する起動ビットはタスクレベル1のQ、
である。
ここでタスクの起動要求があった場合には起動ビットの
何れかにフラグが立てられ、一方タスクディスパッチャ
208は出された起動要求を高いレベルのタスクに該当
する起動ビットより順に検索し、出された起動要求に該
当するフラグをリセットすると共に実行ビットにフラグ
1を立て、該当タスクを起動させるための処理を行う。
第7図はタスクディスパッチャ208の管理するRAM
106に設けられたスタートアドレステーブルである。
スタートアドレスSAO乃至SA8は第5図に示したタ
スク群210乃至226の各タスクO乃至8に該当する
スタートアドレスを示す。各スタートアドレス情報には
16ビツトが割り当てられ、これらのスタートアドレス
情報は後述する如くタスクディスパッチャ208により
起動要求のあった該当タスクを起動するのに使用される
次に第8図乃至第9図にタスクディスパッチャの処理フ
ローを示す。第8図に於いてステップ300でタスクデ
ィスパッチャの処理が開始されるとステップ302でタ
スクレベルQに属するタスクが実行中断中か否かが判断
される。即ち、実行ビットに1が立っていたらマクロ処
理プログラム228により未だタスク終了報告がタスク
ディスパッチャ208に出されていない状態であり、実
行中だったタスクがより優先レベルが高い割込みが生じ
たために中断させられている状態を示す。
従って、実行ビットにフラグ1が立っていたらステップ
314にジャンプし、中断タスクを再開する。
一方、実行ビットにフラグ1が立っていない即ち実行表
示フラグがリセットされている場合にはステップ304
に移行し、レベル悲に起動待ちタスクがあるか否かが判
断される。即ち、レベル0の起動ビットを対応するタス
クの実行優先度の高い順、即ちQ。t Qt+ Qzの
順に検索する。タスクレベルQに属する起動ビットにフ
ラグ1が立っていない場合はステップ306に移行し、
タスクレベルの更新が行われる。即ちタスクレベルQは
+1インクリメントされ1+1とする。ステップ306
でタスクレベルの更新が行われるとステップ308に移
行しタスクレベルの全レベルがチェックされたか否かが
判断される。全レベルのチェックが行われていない、即
ち0=2でない場合にはステップ302に戻り同様に上
記手順で処理が行われる。ステップ308でタスクレベ
ルの全レベルがチェックされている場合にはステップ3
10に移行し、割込み解除が行われる。即ち、ステップ
302乃至ステップ308までの処理期間中は割込みを
禁示しているのでこのステップで割込み解除が為される
。そして次のステップ312で次の割込みを待つ。
次に前記ステップ304でタスクレベル0に起動待ちタ
スクがある場合、即ちタスクレベル2に属する起動ビッ
トにフラグ1が立っている場合にはステップ400に移
行する。ステップ400及び402のループでタスクレ
ベルQのどの起動ビットにフラグ1が立?ているか対応
する優先実行度の高いレベルの順に即ちQ、、Q、、Q
2の順で検索する。該当する起動ビットを割出したらス
テップ404に移行し、ステップ404ではそのフラグ
の立っている起動ビットをリセットし、その該当タスク
レベルQの実行ビット(以下Rビット)にフラグ1を立
てる。更にステップ406では起動タスク番号の割出し
を行いステップ408で第7図に示したRAMに設けら
れたスタートアドレステーブルにより該当する起動タス
クのスタートアドレス情報を取り出す。
次にステップ410では該当起動タスクを実行するか否
かの判断が行われる。ここでは取り出したスタートアド
レス情報が特定の値例えば0であれば該当タスクの実行
は行わなくてよいと判断される。この判断ステップはエ
ンジン制御を行う前記タスク群の内容車種により選択的
に特定のタスクのみの機能を持たせるのに必要なもので
ある。
ステップ410で該当タスクの実行が停止であると判断
された場合にはステップ414に移行し、該当タスクレ
ベルaのRビットをリセットする。
そして更にステップ302に戻りタスクレベルQは中断
中であるか否かが判断される。これは同一タスクレベル
a中に複数の起動ビットにフラグが立っている場合があ
り得るのでステップ414でRビットをリセットした後
ステップ302に移行するように構成されている。
一方ステップ410で該当タスクの実行が停止でない場
合即ち実行する場合にはステップ412へ移行し該当タ
スクへジャンプし、タスクの実行が行われる。
次に第10図はマクロ処理プログラム228の処理フロ
ーを示す図である。このプログラムは終了タスクを見つ
けるためのステップ562と564から成る。このステ
ップ562と564で先ずタスクレベルのOより検索し
終了したタスクレベルを見つける。これによりステップ
568へ進みここで終了したタスクのタスク制御ブロッ
クの7ビツト目の実行(RUN)フラグをリセットする
これによりそのタスクの実行が完全に終わった事になる
。そして再びタスクディスパッチャ208に戻り次の実
行タスクが決定される。
次にタスクディスパッチャ208によりタスク優先制御
が行われる場合のタスクの実行と中断の様子を第11図
に基づき説明する。ここで起動要求Nmnに於けるmは
タスクレベルを表わし、nはタスクレベルm中に於ける
優先度の順位を表わすものとする。今CPUは管理プロ
グラムO8を実行していたとすると、この管理プログラ
ムO8の実行中に起動要求N2.が発生した場合には時
刻T、で起動要求N2.に該当するタスク、即ちタスク
6の実行が開始される。ここでタスク6の実行中に時刻
T2でより実行優先度の高いタスクの起動要求N。、が
生じた場合には管理プロゲラ110Sに実行が移り既に
述べた所定の処理を行った後に時刻T、で起動要求N。
1に該当するタスク、即ちタスク0の実行が開始される
。このタスクOの実行中に更に時刻T4で起動要求N1
、が入った場合には一旦、管理プログラムO8に実行が
移り所定の処理が行われた後再び時刻T5で中断されて
いたタスクOの実行が再開される。そしてタスクOの実
行が時刻T、、で終了すると再び管理プログラムO5に
実行が移りここでマクロ処理プログラム228によりタ
スクディスパッチャ208へタスクOの実行終了報告が
なされ時刻T7で再び起動待ちになっていた起動要求N
11に該当するタスク3の実行が開始される。このタス
ク3の実行中時刻T、lで同じタスクレベル1のより優
先度の低い起動要求N1□が入った場合にはタスク3の
実行は一旦中断され実行は管理プログラムO8に移り所
定の処理が為された後1時刻T、でタスク3の実行が再
開される。そして時刻T、。でタスク3の実行が終了す
るとCPUの実行は管理プログラムO8に移り前記マク
ロ処理プログラム228によりタスクディスパッチャ2
08へタスク3の実行終了報告が為され、次いで時刻T
11でより優先レベルの低い起動要求N 12に該当す
るタスク4の実行が開始され、時刻T1.でタスク4の
実行が終了すると実行は管理プログラムO8に移り所定
の処理が為された後、今まで中断されていた起動要求N
、□に該当するタスク6の実行が時刻Ttiから再開さ
れる。
以上の様にしてタスクの優先制御が行われる。
タスクの優先制御に於ける状態遷移を第12図に示す。
Idle状態は起動待ちの状態であり、タスクにまだ起
動要求が出されていない。次に起動要求が出されるとタ
スク制御ブロックの起動ビットにフラグが立ち、起動が
必要ということが表示される。I die状態からQu
eue状態へ移動する時間は各タスクのレベルにより定
まっている。更にQueue状態になっても実行される
順序は優先度により定まる。そのタスクが実行状態に入
るのは管理プログラムO8の内のタスクディスパッチャ
208でタスク制御ブロックの起動ビットのフラグがリ
セットされ、Rビット(7ビツト目)にフラグが立って
からである。これによりタスクの実行が始められる。こ
の状態がRUN状態である。そして実行が終るとタスク
制御ブロックのRビットのフラグがクリアされ、終了報
告を終了する。これによりRUN状態は終り、再びId
le状態となり次の起動要求が出るのを待つ。しかし、
タスクの実行中即ちRUN中に割込みIRQが発生する
と、そのタスクは実行を中断しなければならない。
このためCPUの内容が待避され、実行が中断する。こ
の状態がReady状態である。次にこのタスクが再び
実行される状態になると待避エリアより。
待避していた内容を再びCPUへ戻し、実行が再開され
る。つまりReady状態から再びRUN状態へ戻る。
この様に各レベルプログラムは第12図の4つの状態を
繰り返す。第12図は代表的な流れであるがReady
状態でタスク制御ブロックの起動ビットにフラグが立つ
可能性がある。これは例えば起動中断中にそのタスクの
次の起動要求タイミングになってしまった場合である。
この時にはRビットのフラグが優先されて先ず、中断中
のタスクを終了させる。これによりRビットのフラグが
消え、起動ビットのフラグによりIdle状態を通らず
にQ ueue状態となる。
この様にタスク0〜8は各々第12図の何れかの状態に
ある。
次に第13図は第5図のプログラムシステムの具体的実
施例を示している。図に於いて管理プログラムO8はイ
ニシャル処理プログラム202、割込み処理プログラム
206、タスクディスパッチャ208及びマクロ処理プ
ログラム228より成る。
割込み処理プログラム206には各種の割込み処理プロ
グラムがあり、イニシャル割込み処理(以下INTL割
込み処理という)602はエンジン回転に同期して発生
するイニシャル割込み信号によって、エンジン1回転当
たりエンジン気筒数の半分、即ち4気筒なら2回イニシ
ャル割込みが発生する。このイニシャル割込みによって
EGIタスク612で計算した燃料の噴射時間を入出力
インターフェイス回路108のEGIレジスタに設定す
る。AD変換割込み処理604は2種類あり1つはAD
変換器1割込み(以下ADC1と略す)及びAD変換器
2割込み(以下ADC2と略す)である、AD変換器1
は8ビツトの精度を有し、電源電圧、冷却水温度、吸気
温度及び使用調整などの入力に用いられ、マルチプレク
サ−120に対する入カポインドの指定を行うと同時に
変換を開始し、変換終了後にADCI割込みを発生する
。なお本割込みはクランキング前にのみ使用する。又A
D変換器128は空気流量の入力に用いられ変換終了後
にADC2割込みを発生する。
なお、本割込みもクランキング前にのみ使用する。
次にインターバル割込み処理プログラム(以下INTV
割込み処理プログラムと示す、)606ではINTV割
込み信号はINTVレジスタに設定した時間例えば10
+ms毎に発生し、一定周期で起動すべきタスクの時間
監視用基本信号として用いられる。本割込み信号によっ
て、ソフトタイマの更新を行い、規定周期に達したタス
クを起動する。更にエンスト割込み処理プログラム(以
下ENST割込み処理プログラムと記す、)608では
エンジンのストップ状態を検出するもので、INTL割
込み信号を検出すると、計数を開始し所定時間例えば1
秒以内に次のINTL割込み信号を検出できなかった時
、ENST割込みが発生する。そしてENST割込みが
3回、例えば3秒経過してもINTL割込み信号が検出
できなかった場合にエンストが起ったものと判断し点火
コイルへの通電及び燃料ポンプの停止を行う。これらの
処理の後スタータスイッチ152がオンするまで待機す
る6上記割込み要因に対する処理概要を表1に示す。
表 1  割込要因に対する処理概要 イニシャル処理プログラム202及びマクロ処理プログ
ラム228については記述の通りの処理を行う。
上記各種の割込みにより起動されるタスク群は次の通り
である。タスクレベル0に属するタスクとしてはAD2
人カタカタスク下ADIN2タスクと記す)、燃料噴射
制御タスク(以下EGIタスクと記す)及び始動モニタ
タスク(MON I Tタスクと言う)がある。又タス
クレベル1に属するタスクとしてはAD1入カタカタス
ク上ADIN1タスクと記す)、時間係数処理タスク(
以下AFS工A工人タスクある。更にタスクレベル2に
屈するタスクとしてはアイドル回転制御タスク(以下I
SCタスクと記す)、補正計算タスク(以下HO3EI
タスクと記す)及び始動前処理タスク(以下l5TRT
と記す)がある。
上記各タスクレベルの割り当てとタスクの機能を表2に
示す。
表2から明らかなように各種割込みにより起動される各
タスクの起動周期は予め定められておりこれらの情報は
ROM104に格納されている。
以下第14図乃至第16図に基づきINTV割込み処理
について説明する。第14図はRAM 106に設けら
れたソフトタイマテーブルであり。
このソフトタイマテーブルには各種割込みにより起動さ
れる異なる起動周期の数だけのタイマブロックが設けら
れている。ここでタイマブロックとはROM104に格
納されているタスクの起動周期に関する時間情報が転送
される記憶エリアを指している。同図に於いて左端に記
載されているTMBはRAM106に於けるソフトタイ
マテーブルの先頭番地を意味する。このソフトタイマテ
ーブルの各タイマブロックにはエンジン始動時にROM
104より前記起動周期に関する時間情報、即ちINT
V割込みを例えば10m5毎に行う場合にはその整数倍
の値が転送され、格納される。
次に第15図にINTV割込み処理606の処理フロー
を示す。同図に於いてステップ626でプログラムが起
動されるとステップ628でRAM106に設けられた
ソフトタイマテーブルのイニシャライズが行われる。即
ち、インデックスレジスタの内容iを0にし前記ソフト
タイマテーブルの番地TMB+Oのタイマブロックに記
憶されている残り時間T1を調べる。ここでこの場合に
はT1=T、である。次にステップ630で上記ステッ
プ628で調べたソフトタイマが停止中であるか否かが
判断される。即ち、ソフトタイマテーブルに記憶されて
いる残り時間T□がT工=0である場合にはソフトタイ
マは停止中であると判断され、該ソフトタイマにより起
動されるべき該当タスクは停止中であると判断され、ス
テップ640にジャンプし、ソフトタイマテーブルの更
新が行われる。
一方、ソフトタイマテーブルの残り時間1゛1がT1≠
0である場合にはステップ632に移行し前記タイマブ
ロックの残り時間の更新が行われる。
即ち、残り時間T工から−1だけディクリメントされる
。次にステップ634では前記タイマテープルのソフト
タイマが起動周期に達したか否かが判断される。即ち残
り時間T1がT1=0である場合には起動周期に達した
と判断されその場合にはステップ636に移行する。又
ソフトタイマが起動周期に達していないと判断される場
合にはステップ640にジャンプし、ソフトタイマテー
ブルの更新が行われる。前記ソフトタイマテーブルが起
動周期に達している場合にステップ636でソフトタイ
マテーブルの残り時間T、を初期化する。
即ち、ROM104よりRAM106へ該当タスクの起
動周期の時間情報を転送する。そしてステップ636で
前記ソフトタイマテーブルの残り時間T1を初期化した
後、ステップ638でそのソフトタイマテーブルに該当
するタスクの起動要求を行う。次にステップ640でソ
フトタイマテーブルの更新を行う。即ち、インデックス
レジスタの内容を+1インクリメントする。更にステッ
プ642では全部のソフトタイマテーブルをチェックし
たか否かが判断される。即ち、第14図に示したように
本実施例ではソフトタイマテーブルをN+1個だけ設け
であるのでインデックスレジスタの内容iがi = N
 + 1である場合には全ソフトタイマテーブルのチェ
ックが完了したと判断されステップ644でINTV割
込み処理プログラム606は終了する。一方ステップ6
42で全ソフトタイマテーブルがチェックされていない
と判断された場合にはステップ630に戻り、前述と同
様の処理が行われる。
以上の様にして各種の割込みに応じて該当タスクの起動
要求が出され、それに基づいて該当タスクの実行が為さ
れるが1表2に掲げられたタスク群が常にすべてが実行
されるのではなく、エンジンの運転情報に基づいてRO
M104に設けられている前記タスク群の起動周期に関
する時間情報を選択してRAM 106のソフトタイマ
テーブル中に転送し格納する。そして与えられたそのタ
ス”りの起動周期が例えば20m5であるとすれば、そ
の時間毎にタスクが起動されるがそのタスクの起動が運
転条件に応じて継続して行う必要があるものであれば常
にそのタスクに該当するソフトタイマテーブルは更新し
て初期化される。次にエンジンの運転条件に応じて各種
割込みにより前記タスク群が起動停止される様子を第1
6図に示すタスクチャートにより説明する。スタータス
イッチ152の操作によりパワーオンの状態になるとC
PUが作動し、ソフトウェアフラグIST及びソフトウ
ェアフラグEMに1が立てられる。ソフトウェアフラグ
ISTはエンジンが始動前の状態にあることを示すフラ
グであり、ソフトウェアフラグEMはENST割込みを
禁止するためのフラグである。これらの2つのフラグに
よりエンジンが始動前の状態にあるか或いは始動中か又
は始動後の状態にあるかの判別が為される。さてスター
タスイッチ152の操作によりパワーオンの状態になる
と先ず最初にタスクADINIが起動され各種センサに
よりエンジンの始動に必要なデー多例えば冷却水温度、
バッテリ電圧等の入力情報がマルチプレクサ−120を
介してAD変換器122に取込まれ、これらのデータの
一巡入力毎にタスクHO8EIタスク補正が起動され前
記入力情報に基づき補正計算が行われる。又前記タスク
ADIN1によりAD変換器122に各種センサからの
データの一巡入力毎にタスクl5TRTが起動されエン
ジン始動中に必要な燃料噴射量の計算がなされる。以上
の3つのタスク、即ちタスクADIN1.タスクHO8
EI及びタスクl5TRTはイニシャル処理プログラム
202により起動されるものである。
スタータスイッチ152がON状態になるとタスクl5
TRTの割込み信号によりタスクADINl、タスクM
ONIT及びタスクADIN2の3つのタスクに起動が
掛けられる。即ち、これらのタスクはスタータスイッチ
152がON状態になっている期間(エンジンのクラン
キング時)のみ実行される必要がある。この期間ではR
OM 104からRAM106に設けられた前記タスク
にそれぞれ該当するソフトタイマテーブルに所定の起動
周期の時間情報が転送され格納される。そしてこの期間
は前記ソフトタイマテーブルの起動周期の残り時間T1
は初期化され起動周期の設定が繰り返し行われる。タス
クMONITはエンジン始動時の燃料噴射量を計算する
ためのタスクでありエンジン始動後は不要なタスクであ
るので所定の回数だけタスクの実行を終了したらソフト
タイマの起動を停止し、そのタスク終了時に発せられる
停止信号により上記以外のエンジン始動後に必要なタス
ク群の起動を行う。ここでタスクの停止をソフトタイマ
により行うにはそのタスクの終了に於ける判断時点でそ
のタスクが終了したことを示す信号によりそのタスクの
該当するソフトタイマテーブルにOを格納する。即ちソ
フトタイマの内容をクリアすることによりタスクの停止
を行うものである。以上の如く本実施例ではタスクの起
動停止をソフトタイマにより簡単に行えるように構成し
たので異なる起動周期を有する複数のタスくに対し能率
的且つ信頼性有る管理を行うことが可能となる。
次にIRQの発生回路を第17図に示す。レジスタ73
5とカウンタ736と比較器737とフリップフロップ
738はINTV  IRQの発生回路であり、レジス
タ735にINTV  IRQの発生周期例えば本実施
例ではl0m5がセットされる。これに対しクロックパ
ルスがカウンタ736ヘセツトされ、そのカウント値が
レジスタ735と一致するとフリップフロップ738を
セット状態とする。このセット状態でカウンタ736を
クリアし、再ばカウントを再開する。従って一定時間(
10mSEC)ごとにINTV  IRQが発生する。
レジスタ741とカウンタ742と比較器743、フリ
ップフロップ744はエンジンの停止を検知するENS
T  IRQの発生回路である。レジスタ741とカウ
ンタ742と比較器743は上の説明と同様であり、カ
ウント値がレジスタ741の値に達するENST  I
RQが発生する。
しかしエンジンの回転中はクランク角センサより一定ク
ランク角毎に発生するREFパルスによりカウンタ74
2がクリアされるのでカウンタ742のカウント値がレ
ジスタ741の値に達しないのでENST  IRQは
発生しない。
フリップフロップ738に発生したI NTVIRQや
フリップフロップ744に発生したENST  IRQ
さらにADClやADC2で発生したIRQはそれぞれ
フリップフロップ740,746.764,768ヘセ
ツトされる。またフリップフロップ739,745,7
62,766にはIRQを発生させるか禁止するかの信
号がセットされる。フリップフロップ739,745,
762.766に′H″がセットされていればANDゲ
ート748,750,770,772は能動となり、I
RQが発生するとORゲートよりただちにIRQが発生
する。
従ってフリップフロップ739,745,762.76
6のそれぞれにl(H11を入れるがLL L″′を入
れるかによってIRQの発生を禁止したり。
禁止を解除したりできる。またIRQが発生するとフリ
ップフロップ740,746,764,768の内容を
CPUに取込むことにより、IRQ発生の原因が解かる
IRQに応じてCPUはプログラムを実行し始た場合、
そのIRQ信号はクリアする必要があるので実行を始め
たIRQに関するフリップフロップ740,746,7
64,768の1つをクリアする。
〔発明の効果〕
以上説明したように、本発明によれば、タスクを起動周
期の異同に拘らず優先度に対応させて複数のタスクレベ
ルに区分し、各タスクの実行を起動周期と優先度に基づ
いて、それぞれ割込処理手段とタスクディスパッチャと
により各別に制御し、起動周期はソフトタイマテーブル
により管理する構成としたことから、エンジンの制御機
能等の要求に応じて、自由にタスクの起動周期と優先制
御を組立てることができるので、きめ細かな効率のよい
制御を実現でき、これにより過渡状態の制御を高精度化
できるという効果がある。
また、上記に加え、タスクレベル間では優先度に応じて
実行権を移行するが、同一タスクレベル内においては、
中断中のタスクが最も優先度が高いものとして優先制御
するようにしたことがら、タスクの中断回数等が低減さ
れる。これにより中断に伴う待避処理時間が減るのでタ
スクの実行効率が高まることになり、さらに過渡状態等
の制御精度を高めることになるという効果がある。なお
副次的にハードウェアの待避エリアを低減できるという
効果がある。
【図面の簡単な説明】
第1図はエンジン系統全体の制御装置を示す構成図、第
2図ぼ第1図の点火装置の説明図、第3図は排気ガス還
流システムを説明するための構成図、第4図はエンジン
制御システムの全体構成図、第5図は本発明に係わるエ
ンジン制御方法のプログラムシステムの基本的構成を示
す図、第6図はタスクディスパッチャの管理するRAM
に設けられたタスク制御ブロックのテーブルを示す図、
第7図は各種割込みにより起動されるタスク群のスター
トアドレステーブルを示す図、第8図及び第9図はタス
クディスパッチャの処理フローを示す図、第10図はマ
クロ処理プログラムの処理フローを示す図、第11図は
タスク優先制御の一例を示す図、第12図は上記タスク
優先制御に於けるタスクの状態遷移を示す図、第13図
は第5図に於ける具体的実施例を示す図、第14図はR
AMに設けられたソフトタイマテーブルを示す図、第1
5図はINTV割込み処理プログラムの処理フローを示
す図、第16図はエンジンの運転状態に応じて各種タス
クの起動停止が行われる様子を示したタイミングチャー
ト、第17図は割込みIRQの発生回路である。 102・・・CPU、104・・・ROM、106・・
・RAM。 代理人 弁理士 鵜 沼 辰 之 第2図 第3図 第5図 RESET        IRQ 第6図 タスク 第7図 スクート 第8図 19図 第10図 ”1514図 第15図 第17図 PLJ

Claims (1)

    【特許請求の範囲】
  1. (1)入力されるインターバル割込要求を含む複数の割
    込要求をそれぞれ一旦蓄積する手段と、該手段の出力端
    に設けられ与えられる割込禁止指令に応じて前記割込要
    求の発生を阻止するゲート手段とを有してなる割込要求
    発生手段と、 エンジンの制御機能毎に分類され、それぞれ所定の起動
    周期で実行される複数のタスクが格納されたメモリと、 前記割込要求発生手段から出力されるインターバル割込
    要求に基づいて計数されたタスクの起動周期に係る経過
    時間データが格納されるソフトタイマテーブルと、 前記割込要求発生手段から出力されるインターバル割込
    要求により実行中のタスクの実行を中断させ、前記ソフ
    トタイマテーブルの経過時間データの計数動作を行ない
    該計数動作の内容により各タスクが起動周期に達したか
    否かを判定し、起動周期に達したタスクの起動要求を示
    すフラグをタスク制御テーブルに立てる割込処理手段と
    、前記タスク制御テーブルを検索し中断されたタスクを
    含め起動要求フラグが立てられているタスクの中で所定
    の優先規準にしたがってタスクを選択して当該タスクの
    実行指令を出力するタスクディスパッチャとを備えてな
    り、 前記タスクはそれぞれ優先度が定められるとともに複数
    のタスクを含んでなる複数のタスクレベルに分類され、
    かつ該タスクレベルはそれぞれ優先度が定められたもの
    とされ、 前記タスク制御テーブルは前記各タスクに対応させて前
    記起動要求フラグが立てられるフラグ領域を有し、該フ
    ラグ領域は前記タスクレベル毎に区画されるとともに当
    該タスクレベルに属する複数のタスクを優先度の高い順
    に配列されてなり、前記所定の優先規準は、優先度の高
    、低による実行権の移行は前記タスクレベル間のみで行
    なうものとし、同一タスクレベル内における中断中のタ
    スクは当該タスクの優先度に拘らず同一タスクレベル内
    では最も優先度が高いものとし、同一タスクレベル内に
    属する2以上のタスクに対する起動要求については当該
    タスクの優先度に基づいて実行すべきタスクを選択する
    ものとしたことを特徴とするエンジン制御装置。
JP62331334A 1987-12-25 1987-12-25 エンジン制御装置 Granted JPS63314352A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62331334A JPS63314352A (ja) 1987-12-25 1987-12-25 エンジン制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62331334A JPS63314352A (ja) 1987-12-25 1987-12-25 エンジン制御装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP11294979A Division JPS5638541A (en) 1979-09-05 1979-09-05 Controlling method for engine

Publications (2)

Publication Number Publication Date
JPS63314352A true JPS63314352A (ja) 1988-12-22
JPH0318026B2 JPH0318026B2 (ja) 1991-03-11

Family

ID=18242521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62331334A Granted JPS63314352A (ja) 1987-12-25 1987-12-25 エンジン制御装置

Country Status (1)

Country Link
JP (1) JPS63314352A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065645A (ja) * 2009-09-18 2011-03-31 Square Enix Co Ltd マルチコアプロセッサシステム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50128429A (ja) * 1974-03-28 1975-10-09
JPS5340105A (en) * 1976-09-24 1978-04-12 Nippon Denso Co Ltd Automobile control unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50128429A (ja) * 1974-03-28 1975-10-09
JPS5340105A (en) * 1976-09-24 1978-04-12 Nippon Denso Co Ltd Automobile control unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065645A (ja) * 2009-09-18 2011-03-31 Square Enix Co Ltd マルチコアプロセッサシステム

Also Published As

Publication number Publication date
JPH0318026B2 (ja) 1991-03-11

Similar Documents

Publication Publication Date Title
US4482962A (en) Engine control method
US4337513A (en) Electronic type engine control method and apparatus
US4373489A (en) Spark timing control system
JPS6212384B2 (ja)
US4363097A (en) Electronic type engine control method
JPS6350546B2 (ja)
JPH0375740B2 (ja)
US4501249A (en) Fuel injection control apparatus for internal combustion engine
KR920003200B1 (ko) 엔진제어장치
EP0106366B1 (en) Control method for internal combustion engines
US4528964A (en) Fuel injection control apparatus for internal combustion engine
JPS5974339A (ja) 燃料噴射装置
JPS63314352A (ja) エンジン制御装置
JPH0138176B2 (ja)
JPH0118256B2 (ja)
JPH0118443B2 (ja)
JPS5895214A (ja) 熱線式流量センサの信号処理方法
US4522178A (en) Method of fuel control in engine
JPS58150047A (ja) 内燃機関の燃料噴射制御装置
JPS5974337A (ja) 燃料噴射装置
JPS6356420B2 (ja)
JPS5974338A (ja) 燃料噴射装置
JPH01195943A (ja) エンジンのアイドル回転数制御方法
KR850000119B1 (ko) 전자식 엔진 제어방법
JPS6240645B2 (ja)