JPS632027B2 - - Google Patents
Info
- Publication number
- JPS632027B2 JPS632027B2 JP55082921A JP8292180A JPS632027B2 JP S632027 B2 JPS632027 B2 JP S632027B2 JP 55082921 A JP55082921 A JP 55082921A JP 8292180 A JP8292180 A JP 8292180A JP S632027 B2 JPS632027 B2 JP S632027B2
- Authority
- JP
- Japan
- Prior art keywords
- engine
- program
- value
- task
- register
- 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.)
- Expired
Links
Landscapes
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Electrical Control Of Ignition Timing (AREA)
- Output Control And Ontrol Of Special Type Engine (AREA)
Description
本発明はエンジンの点火時期制御方法に関す
る。エンジンはその燃焼室内に吸入される吸気量
を制御するスロツトルバルブを有し、このスロツ
トルバルブの開度により上記吸気量が制御され
る。この吸気量の制御状態はインテークマニホー
ルド圧を測定する圧力センサや、空気流量を測定
する流量センサや、スロツトルバルブ位置に応じ
た信号を出力するスロツトル開度センサなどによ
り検知される。これらのセンサの出力とエンジン
速度の情報により一般に燃料供給量や点火位置が
制御されることは知られている。 近年、エンジン制御にマイクロコンピユータが
使用されるようになり、上記吸気量の制御状態を
入力情報としてマイクロコンピユータに取込み、
この情報に基づいてエンジンの点火時期を制御す
ることが可能となつた。マイクロコンピユータは
メモリを有していることにより、従来のアナログ
回路に基づく制御に比べ、より複雑な特性を記憶
でき、このために制御精度が大幅に向上する利点
がある。これに伴ない点火位置が上記吸気量の制
御状態に応じ、より高精度にしかもより広範囲に
制御可能となつた。また演算処理速度が速いた
め、上記吸入空気量の制御状態に対する応答性も
非常に速くなつた。この技術は例えば特開昭54−
152716号公報に開示されている。 これらの点より吸入吸気量の変化に応じ、より
高いエンジン出力とエンジンのより速い応答が得
られるようになつた。しかし、このことは吸入空
気量の急速な変化に応じ、エンジンの出力軸のト
ルクが急応答で変化することとなり、大きな利点
とともに弊害も生れてきた。 この弊害とは車を運転する運転者からのアクセ
ルペタル踏込み等の指令に、あまりに忠実に、し
かも高応答でエンジンからのトルクが変化するた
め、運転者が未熟な場合その未熟からくる指令の
急激な変化、例えばアクセルペタルの急変化がそ
のまま忠実にエンジントルク変化となつて現われ
る。このため、滑らかな運転が損われ、それだけ
運転が難しくなる。 本発明は滑らかな運転が可能となるエンジンの
点火時期制御方法を提供することである。 本発明は吸入空気量の制御状態に基づいて求め
られた点火位置のデータを点火位置の目標値と
し、一つ前の実際に点火される点火位置をある所
定値だけ目標値に近ずけた値を新しい点火位置と
してこの新しい点火位置に従つて点火を行なう。
この事により運転者の未熟からくる不必要なトル
クの急変動が押えられる。 さらにまた後述の実施例には次のような特徴点
もある。つまり従来の点火位置の計算は全てエン
ジン回転に同期して行われ、このためエンジンの
トルク変動によるエンジン回転速度の変動が頻繁
に起ると、コンピユータに要求される処理量が頻
繁に変動する。このため、コンピユータ処理全体
のエンジン制御のための処理能力が安定せず、制
御精度が低下する。つまりコンピユータへの処理
能力の評価を低くし、最初から処理能力をある程
度犠性にしておくことが必要となる。このような
ことを無くす為には点火時期制御プログラムを出
来るだけ一定時間毎に行うことが必要である。こ
のため、上記エンジンへの吸入空気の制御状態に
応じて点火位置を求めるために実行されるプログ
ラムと、上記プログラム出力をさらに一つ前の点
火時期をも入力として補正するために実行される
プログラムとに少くとも分離し、前者のプログラ
ムを一定時間の経過に応じて行ない。後者のプロ
グラムをエンジンの出力軸に同期して実行するこ
とにより、エンジンの回転に同期して実行するプ
ログラムを最少限に押えることができ、コンピユ
ータに要求される処理量の変動を結果として少く
できる。 以下実施例により説明する。尚本実施例ではエ
ンジンの吸気量の制御状態を検知するセンサとし
て圧力センサを用いているが、上述の如く、空気
流量センサやスロツトルバルブの開度状態を検出
するセンサでも使用可能である。 第1図はエンジン系統全体のシステム図であ
る。先ず、エンジンのシリンダへ導びかれる吸入
空気の流れについて説明する。エアークリーナ2
より導入された空気はターボチヤージヤ4のター
ビン6により高速回転されるコンプレツサ8によ
り圧縮される。圧縮された空気はスロツトルチヤ
ンバ内に設けられたスロツトルバルブ10あるい
はエアーバイパスバルブ14を介してエンジンの
各シリンダに導入される。第1図では1個のシリ
ンダのみ代表的に示した。このシリンダには吸気
バルブ16が設けられており、この吸気バルブ1
6の開弁時に空気および後述する燃料からなる混
合気が導入される。スロツトルバルブ10は運転
者によつて制御されるアクセルペタル12と機械
的に連動し、アクセルペタルの踏込量に応じてス
ロツトルバルブの開度が定まる。その結果、空気
抵抗が制御され、シリンダ内へ導入される空気量
が制御される。 次に燃料供給系につき説明する。燃料タンク2
0からフイルタ22を介して燃料ポンプ24へ燃
料が導びかれ、燃料ポンプ24で加圧された燃料
は燃圧制御弁26でインテークマニホールド圧に
対し、一定圧力に保持されるように制御される。
噴射弁28には燃圧制御弁26により制御された
圧力の燃料が導入され、制御ユニツト30で作ら
れた出力パルスにより噴射弁が開き、燃料がイン
テークマニホールド内に供給される。インテーク
マニホールド内に供給された燃料は、吸入空気と
共に混合気を形成し、吸気バルブ16を介してシ
リンダ内に導入される。 次に点火系につき説明する。バツテリ40にキ
ースイツチ42を介して接続された点火コイルの
他端は制御ユニツト30に接続されている。制御
ユニツト30内に設けられたパワートランジスタ
により点火コイルにエネルギ充電の為の充電電流
が供給される。次に該充電電流が遮断されること
により点火コイル44の2次コイルに高電圧を発
生し、該高電圧はデイストリビユータ46を介し
て各シリンダに設けられている点火プラグ50へ
供給される。上記デイストリビユータ46はシリ
ンダ内のピストン48により回転力が与えられる
出力軸と機械的に連動して回転する。 上述のシリンダに導入された混合気はピストン
48により圧縮され、点火プラグ50からの火花
エネルギにより燃焼を開始する。混合気の燃焼に
より生じる熱エネルギに変換され、エンジンの出
力軸を介して機械エネルギが出力される。 次に排気系について説明する。シリンダ内の燃
焼ガスは排気バルブ(図示せず)を介して排気管
52に導びかれ、タービン6を回転させる。その
後触媒ユニツト54およびマフラ56を介して大
気へ放出される。尚タービン6にはバイパス通路
60が設けられており、バイパス通路の開口をダ
イヤフラム58で制御することによりタービン6
の回転速度の調整が行なわれる。また排気管とイ
ンテークマニホールドとの間にEGRバルブ62
が設けられており、排気ガスが吸気系に導びかれ
る。スタータ系を説明する。エンジンの出力軸に
はスタータモータ64が必要に応じ、接続される
機構となつている。スタータスイツチ66がター
ンオンすることにより、スタータモータが励磁さ
れ、それと共にスタータ軸に設けられたピニオン
がエンジンの出力軸に設けられたフライホイルに
結合し、エンジンのピストンを駆動する。この動
作によりエンジンのシリンダ内で熱エネルギが機
械エネルギに変換され、エンジンはこの新たに発
生したエネルギで出力軸を動かす。このことによ
りエンジンは自走状態となり、スタート動作を完
了する。 次にエンジン制御のためのセンサにつき説明す
る。制御ユニツト30には上記エンジンの各系統
の状態を表わす入力信号としてノツクセンサ7
2、水温センサ74、スロツトルスイツチ76、
圧力センサ78、クランク角センサ80、排気ガ
スセンサ82、スタータスイツチ66の各出力が
入力される。ノツクセンサ82は既に知られてい
る方法によりノツキング状態に応じてパルスを発
生する。水温センサ74はエンジンの冷却水温に
基づくアナログ電圧をユニツト30へ伝える。ス
ロツトルスイツチ76はスロツトルの全閉状態で
“H”レベルの出力を出し、その他の状態で、
“L”レベルの出力を出す。圧力センサ78はイ
ンテークマニホールド内のスロツトルバルブ上統
の圧力に応じた電圧を出力する。 クランク角センサ80は既に知られている如く
2種のスリツトを切つた円板がエンジンの出力軸
シヤフトに同期して回るデイストリビユータのシ
ヤフトに固定され、該円板の回転がホトカプラに
より検知される。これによりエンジンの出力軸の
回転に応じ、基準角パルス(以下REFパルスと
記す。)と単位回転角パルス(以下POSパルスと
記す。)とを発生する。4気筒エンジンでは基準
角(REF)パルスは90度毎に、単位(POS)パ
ルスは例えば2度毎にそれぞれ発生する。 次に制御ユニツトについて説明する。第2図は
第1図の制御ユニツト30の詳細回路構成図であ
り、コンピユータ(以下CPUと記す。)CPU10
2とリード・オンリ・メモリ104(以下ROM
と記す。)とランダム・アクセス・メモリ106
(以下RAMと記す。)と入出力回路108とから
構成されている。上記CPU102はROM104
内に記憶された各種のプログラムにより、入出力
回路108からの入力データを演算し、その演算
結果を再び入出力回路108へ戻す。これらの演
算に必要な中間的な記憶はRAM106を使用す
る。CPU102、ROM104、RAM106、
入出力回路108間の各種データのやり取りはデ
ータ・バスとコントロール・バスとアドレス・バ
スからなるバスライン110によつて行なわれ
る。 入出力回路108には第1のアナログ・デイジ
タル・コンバータADC1(以下ADC1と記す)と
第2のアナログ・デイジタル・コンバータADC2
(以下ADC2と記す)とエンジン回転速度を検出
する角度信号処理回路140と1ビツト情報を入
出力する為のデイスクリート入出力回路DIO(以
下DIOと記す)との入力手段を待つ。 ADC1にはバツテリ電圧検出センサ122(以
下VBSと記す)と冷却水温センサ74(以下
TWSと記す)と大気温センサ124(以下TAS
と記す)と調整電圧発生器126(以下VRSと
記す)とスロツトル角センサ128(以下θTHS
と記す)と排気ガスセンサ82(以下λSと記す)
との出力がマルチ・プレクサ130(以下MPX
と記す)に加えられ、MPX(マルチプレクサ)1
30によりこの内の1つを選択してアナログ・デ
イジタル・変換回路132(以下ADCと記す)
へ入力する。ADC132の出力であるデイジタ
ル値はレジスタ134(以下REGと記す)に保
持される。 また圧力センサ78(以下VCSと記す)は
ADC2へ入力され、アナログ・デイジタル・変換
回路136(以下ADCと記す)を介してデイジ
タル変換され、レジスタ138(以下REGと記
す)へセツトされる。 角度センサ80(以下ANGSと記す)からは
REF(基準クランク角例えば180度クランク角を
示す信号)とPOS(単位角例えば2度クランク角
を示す信号)とが出力され、角度信号処理回路1
40へ加えられ、ここでエンジン速度の計測が行
なわれる。DIO(デイスクリート入出力回路)に
はスロツトル・スイツチ76(以下TH―SWと
記す)とトツプ・ギヤ・スイツチ142(以下
TOP―SWと記す)とスタータ・スイツチ66
(以下START―SWと記す)とが入力されてい
る。尚このDIOの詳細は第28図を用いて後述す
る。 次にCPUの演算結果に基づくパルス出力回路
および制御対象について説明する。噴射弁28を
制御するための制御回路152(INJCと記す)
は演算結果のデイジタル値をパルス出力に変換す
る回路である。従つて燃料噴射量に相当したパル
ス幅を有するパルスがINJC152で作られ、
ANDゲート154を介してインジエクタ28へ
印加される。尚INJC152の詳細は第29〜3
0図により後述する。 点火パルス発生回路156(以下IGNCと記
す)は点火時期をセツトするレジスタ(ADVと
記す)と点火コイルの1次電流通電開始時間をセ
ツトするレジスタ(DWLと記す)とを有し、
CPUよりこれらデータがセツトされる。セツト
されたデータに基づいてパルスを発生し、第1図
の点火コイル44の1次電流を制御するためのイ
グニツシヨン162へANDゲート158,16
0を介してこのパルスを加える。このIGNC15
6は第27図を用いて後述する。 バイパスバルブ14の開弁率は制御回路(以下
ISCCと記す)164からANDゲート166を介
して加えられるパルスによつて制御される。
ISCC164はパルス幅をセツトするレジスタ
ISCDと繰返しパルス周期をセツトするレジスタ
ISCPとを持つている。このISCCの詳細回路は第
26図で説明する。 第1図に示したEGR制御弁62を制御する
EGR量制御パルス発生回路168(以下EGRC
と記す)にはパルスのデユーテイを表わす値をセ
ツトするレジスタEGRDとパルスの繰返し周期を
表わす値をセツトするレジスタEGRPとを有して
いる。このEGRCの出力パルスはANDゲート1
70を介してEGR制御弁62に加えられる。こ
のEGRC回路も第26図を用いて後述する。 また1ビツトの入出力信号は回路DIO(デイス
クリート入出力回路)により制御される。入力信
号としてはスロツトルスイツチからのTH―SW
信号、トツプギアスイツチ142からのTOP―
SW信号、スタータスイツチ66からのSTART
―SW信号がある。また出力信号としては燃料ポ
ンプ24を駆動するためのパルス出力信号があ
る。このDIOは端子を入力端子として使用する
か、出力端子として使用するかを決定するための
レジスタDDR192と、出力データをラツチす
るためのレジスタDOUT194とが設けられて
いる。 モードレジスタ172は入出力回路108内部
の色色な状態を指令する命令を保持するレジスタ
(以下MODと記す)であり、例えばこのモード
レジスタ172に命令セツトすることにより、
ANDゲート154,158,166,170を
総て動作状態にさせたり、不動作状態にさせたり
する。このようにモードレジスタ172に命令を
セツトすることにより、INJC152やIGNC1
56、ISCC164、EGRC168の出力の停止
や起動を制御できる。 次にROM104に格納されているプログラム
につき説明する。 第3図は第2図の制御回路のプログラムシステ
ムである。キー・スイツチ42(第1図)により
電源電圧がCPU102に加えられるとCPU10
2はスタート・モード202となり、イニシヤラ
イズ・プログラム(INITIALIZ)204を実行
する。次に監視プログラム(MONIT)206を
実行し、バツク・グランド・ジヨブ(BACK
GROUND JOB)208を実行する。このバツ
グ・グラウンド・ジヨブとして例えばEGR量の
計算タスク(以下EGR・TASKと記す。)やバイ
パス弁14の開度を計算するタスク(以下ISC・
TASKと記す)を実行する。 このタスクの実行中、割込要因(以下IRQと記
す)が発生すると割込要因の分析を行なうため点
222へジヤンプし、割込要因分析プログラム2
24(以下IRQ ANALと記す)を実行する。こ
の割込要因分析(IRQ ANAL)のプログラムは
さらにADC1の終了割込処理(以下ADCIEND
IRQと記す)プログラム226とADC2の終了割
込処理(以下ADC2END IRQと記す)プログラ
ム228と一定期間経過割込処理(以下INTV
IRQと記す)プログラムとエンジンの同期割込処
理(以下INTL IRQと記す)プログラムからな
り、後述する各タスクの起動の必要なタスクにそ
れぞれ起動要求(以下QUEUEと記す)を出す。 この割込分析(IRQ ANAL)プログラム22
4内の各プログラムADC1 END IRQ226や
ADC2 END IRQ228やINTV IRQ230や
INTL IRQ232の各プログラムにより起動要
求(QUEUE)が出される各タスクはレベル・ゼ
ロ・タスク群252やレベル1タスク群254や
レベル2タスク群256やレベル3タスク群25
8であるか、あるいは該各タスク群を構成するタ
スクである。またINTV IRQプログラム232
によりさらにエンジンの停止が検出されると起動
要求(QUEUE)が発生するタスクはエンジン停
止時の処理タスク262(以下ENST TASKと
記す)である。このENST TASK262が実行
されると再び制御システムはスタート・モードと
なり、開始点202へ戻る。 タスク・スケジユーラ242は起動要求
(QUEUE)の発生しているタスク群かあるいは
実行中断タスク群の内、レベルの高いタスク群
(ここではレベル・ゼロを最高とする)から実行
するように、タスク群の実行序順を決定する。タ
スク群の実行が終了すると終了報告プログラム2
60(以下EXITと記す)により終了報告され
る。この終了報告により、再び実行待ちになつて
いるタスク群の内の最もレベルの高いタスク群を
次に実行する。 実行中断タスク群や起動要求(QUEUE)の発
生しているタスク群がなくなるとタスク・スケジ
ユーラ242より再びバツク・グラウンド・ジヨ
ブ208の実行へ移る。さらにレベル・ゼロ・タ
スク群からレベル3タスク群のどれかを実行中に
割込(IRQ)が発生すると割込分析プログラムの
開始点222へ戻る。 第1表に以上述べた各タスクの起動とその機能
を示す。
る。エンジンはその燃焼室内に吸入される吸気量
を制御するスロツトルバルブを有し、このスロツ
トルバルブの開度により上記吸気量が制御され
る。この吸気量の制御状態はインテークマニホー
ルド圧を測定する圧力センサや、空気流量を測定
する流量センサや、スロツトルバルブ位置に応じ
た信号を出力するスロツトル開度センサなどによ
り検知される。これらのセンサの出力とエンジン
速度の情報により一般に燃料供給量や点火位置が
制御されることは知られている。 近年、エンジン制御にマイクロコンピユータが
使用されるようになり、上記吸気量の制御状態を
入力情報としてマイクロコンピユータに取込み、
この情報に基づいてエンジンの点火時期を制御す
ることが可能となつた。マイクロコンピユータは
メモリを有していることにより、従来のアナログ
回路に基づく制御に比べ、より複雑な特性を記憶
でき、このために制御精度が大幅に向上する利点
がある。これに伴ない点火位置が上記吸気量の制
御状態に応じ、より高精度にしかもより広範囲に
制御可能となつた。また演算処理速度が速いた
め、上記吸入空気量の制御状態に対する応答性も
非常に速くなつた。この技術は例えば特開昭54−
152716号公報に開示されている。 これらの点より吸入吸気量の変化に応じ、より
高いエンジン出力とエンジンのより速い応答が得
られるようになつた。しかし、このことは吸入空
気量の急速な変化に応じ、エンジンの出力軸のト
ルクが急応答で変化することとなり、大きな利点
とともに弊害も生れてきた。 この弊害とは車を運転する運転者からのアクセ
ルペタル踏込み等の指令に、あまりに忠実に、し
かも高応答でエンジンからのトルクが変化するた
め、運転者が未熟な場合その未熟からくる指令の
急激な変化、例えばアクセルペタルの急変化がそ
のまま忠実にエンジントルク変化となつて現われ
る。このため、滑らかな運転が損われ、それだけ
運転が難しくなる。 本発明は滑らかな運転が可能となるエンジンの
点火時期制御方法を提供することである。 本発明は吸入空気量の制御状態に基づいて求め
られた点火位置のデータを点火位置の目標値と
し、一つ前の実際に点火される点火位置をある所
定値だけ目標値に近ずけた値を新しい点火位置と
してこの新しい点火位置に従つて点火を行なう。
この事により運転者の未熟からくる不必要なトル
クの急変動が押えられる。 さらにまた後述の実施例には次のような特徴点
もある。つまり従来の点火位置の計算は全てエン
ジン回転に同期して行われ、このためエンジンの
トルク変動によるエンジン回転速度の変動が頻繁
に起ると、コンピユータに要求される処理量が頻
繁に変動する。このため、コンピユータ処理全体
のエンジン制御のための処理能力が安定せず、制
御精度が低下する。つまりコンピユータへの処理
能力の評価を低くし、最初から処理能力をある程
度犠性にしておくことが必要となる。このような
ことを無くす為には点火時期制御プログラムを出
来るだけ一定時間毎に行うことが必要である。こ
のため、上記エンジンへの吸入空気の制御状態に
応じて点火位置を求めるために実行されるプログ
ラムと、上記プログラム出力をさらに一つ前の点
火時期をも入力として補正するために実行される
プログラムとに少くとも分離し、前者のプログラ
ムを一定時間の経過に応じて行ない。後者のプロ
グラムをエンジンの出力軸に同期して実行するこ
とにより、エンジンの回転に同期して実行するプ
ログラムを最少限に押えることができ、コンピユ
ータに要求される処理量の変動を結果として少く
できる。 以下実施例により説明する。尚本実施例ではエ
ンジンの吸気量の制御状態を検知するセンサとし
て圧力センサを用いているが、上述の如く、空気
流量センサやスロツトルバルブの開度状態を検出
するセンサでも使用可能である。 第1図はエンジン系統全体のシステム図であ
る。先ず、エンジンのシリンダへ導びかれる吸入
空気の流れについて説明する。エアークリーナ2
より導入された空気はターボチヤージヤ4のター
ビン6により高速回転されるコンプレツサ8によ
り圧縮される。圧縮された空気はスロツトルチヤ
ンバ内に設けられたスロツトルバルブ10あるい
はエアーバイパスバルブ14を介してエンジンの
各シリンダに導入される。第1図では1個のシリ
ンダのみ代表的に示した。このシリンダには吸気
バルブ16が設けられており、この吸気バルブ1
6の開弁時に空気および後述する燃料からなる混
合気が導入される。スロツトルバルブ10は運転
者によつて制御されるアクセルペタル12と機械
的に連動し、アクセルペタルの踏込量に応じてス
ロツトルバルブの開度が定まる。その結果、空気
抵抗が制御され、シリンダ内へ導入される空気量
が制御される。 次に燃料供給系につき説明する。燃料タンク2
0からフイルタ22を介して燃料ポンプ24へ燃
料が導びかれ、燃料ポンプ24で加圧された燃料
は燃圧制御弁26でインテークマニホールド圧に
対し、一定圧力に保持されるように制御される。
噴射弁28には燃圧制御弁26により制御された
圧力の燃料が導入され、制御ユニツト30で作ら
れた出力パルスにより噴射弁が開き、燃料がイン
テークマニホールド内に供給される。インテーク
マニホールド内に供給された燃料は、吸入空気と
共に混合気を形成し、吸気バルブ16を介してシ
リンダ内に導入される。 次に点火系につき説明する。バツテリ40にキ
ースイツチ42を介して接続された点火コイルの
他端は制御ユニツト30に接続されている。制御
ユニツト30内に設けられたパワートランジスタ
により点火コイルにエネルギ充電の為の充電電流
が供給される。次に該充電電流が遮断されること
により点火コイル44の2次コイルに高電圧を発
生し、該高電圧はデイストリビユータ46を介し
て各シリンダに設けられている点火プラグ50へ
供給される。上記デイストリビユータ46はシリ
ンダ内のピストン48により回転力が与えられる
出力軸と機械的に連動して回転する。 上述のシリンダに導入された混合気はピストン
48により圧縮され、点火プラグ50からの火花
エネルギにより燃焼を開始する。混合気の燃焼に
より生じる熱エネルギに変換され、エンジンの出
力軸を介して機械エネルギが出力される。 次に排気系について説明する。シリンダ内の燃
焼ガスは排気バルブ(図示せず)を介して排気管
52に導びかれ、タービン6を回転させる。その
後触媒ユニツト54およびマフラ56を介して大
気へ放出される。尚タービン6にはバイパス通路
60が設けられており、バイパス通路の開口をダ
イヤフラム58で制御することによりタービン6
の回転速度の調整が行なわれる。また排気管とイ
ンテークマニホールドとの間にEGRバルブ62
が設けられており、排気ガスが吸気系に導びかれ
る。スタータ系を説明する。エンジンの出力軸に
はスタータモータ64が必要に応じ、接続される
機構となつている。スタータスイツチ66がター
ンオンすることにより、スタータモータが励磁さ
れ、それと共にスタータ軸に設けられたピニオン
がエンジンの出力軸に設けられたフライホイルに
結合し、エンジンのピストンを駆動する。この動
作によりエンジンのシリンダ内で熱エネルギが機
械エネルギに変換され、エンジンはこの新たに発
生したエネルギで出力軸を動かす。このことによ
りエンジンは自走状態となり、スタート動作を完
了する。 次にエンジン制御のためのセンサにつき説明す
る。制御ユニツト30には上記エンジンの各系統
の状態を表わす入力信号としてノツクセンサ7
2、水温センサ74、スロツトルスイツチ76、
圧力センサ78、クランク角センサ80、排気ガ
スセンサ82、スタータスイツチ66の各出力が
入力される。ノツクセンサ82は既に知られてい
る方法によりノツキング状態に応じてパルスを発
生する。水温センサ74はエンジンの冷却水温に
基づくアナログ電圧をユニツト30へ伝える。ス
ロツトルスイツチ76はスロツトルの全閉状態で
“H”レベルの出力を出し、その他の状態で、
“L”レベルの出力を出す。圧力センサ78はイ
ンテークマニホールド内のスロツトルバルブ上統
の圧力に応じた電圧を出力する。 クランク角センサ80は既に知られている如く
2種のスリツトを切つた円板がエンジンの出力軸
シヤフトに同期して回るデイストリビユータのシ
ヤフトに固定され、該円板の回転がホトカプラに
より検知される。これによりエンジンの出力軸の
回転に応じ、基準角パルス(以下REFパルスと
記す。)と単位回転角パルス(以下POSパルスと
記す。)とを発生する。4気筒エンジンでは基準
角(REF)パルスは90度毎に、単位(POS)パ
ルスは例えば2度毎にそれぞれ発生する。 次に制御ユニツトについて説明する。第2図は
第1図の制御ユニツト30の詳細回路構成図であ
り、コンピユータ(以下CPUと記す。)CPU10
2とリード・オンリ・メモリ104(以下ROM
と記す。)とランダム・アクセス・メモリ106
(以下RAMと記す。)と入出力回路108とから
構成されている。上記CPU102はROM104
内に記憶された各種のプログラムにより、入出力
回路108からの入力データを演算し、その演算
結果を再び入出力回路108へ戻す。これらの演
算に必要な中間的な記憶はRAM106を使用す
る。CPU102、ROM104、RAM106、
入出力回路108間の各種データのやり取りはデ
ータ・バスとコントロール・バスとアドレス・バ
スからなるバスライン110によつて行なわれ
る。 入出力回路108には第1のアナログ・デイジ
タル・コンバータADC1(以下ADC1と記す)と
第2のアナログ・デイジタル・コンバータADC2
(以下ADC2と記す)とエンジン回転速度を検出
する角度信号処理回路140と1ビツト情報を入
出力する為のデイスクリート入出力回路DIO(以
下DIOと記す)との入力手段を待つ。 ADC1にはバツテリ電圧検出センサ122(以
下VBSと記す)と冷却水温センサ74(以下
TWSと記す)と大気温センサ124(以下TAS
と記す)と調整電圧発生器126(以下VRSと
記す)とスロツトル角センサ128(以下θTHS
と記す)と排気ガスセンサ82(以下λSと記す)
との出力がマルチ・プレクサ130(以下MPX
と記す)に加えられ、MPX(マルチプレクサ)1
30によりこの内の1つを選択してアナログ・デ
イジタル・変換回路132(以下ADCと記す)
へ入力する。ADC132の出力であるデイジタ
ル値はレジスタ134(以下REGと記す)に保
持される。 また圧力センサ78(以下VCSと記す)は
ADC2へ入力され、アナログ・デイジタル・変換
回路136(以下ADCと記す)を介してデイジ
タル変換され、レジスタ138(以下REGと記
す)へセツトされる。 角度センサ80(以下ANGSと記す)からは
REF(基準クランク角例えば180度クランク角を
示す信号)とPOS(単位角例えば2度クランク角
を示す信号)とが出力され、角度信号処理回路1
40へ加えられ、ここでエンジン速度の計測が行
なわれる。DIO(デイスクリート入出力回路)に
はスロツトル・スイツチ76(以下TH―SWと
記す)とトツプ・ギヤ・スイツチ142(以下
TOP―SWと記す)とスタータ・スイツチ66
(以下START―SWと記す)とが入力されてい
る。尚このDIOの詳細は第28図を用いて後述す
る。 次にCPUの演算結果に基づくパルス出力回路
および制御対象について説明する。噴射弁28を
制御するための制御回路152(INJCと記す)
は演算結果のデイジタル値をパルス出力に変換す
る回路である。従つて燃料噴射量に相当したパル
ス幅を有するパルスがINJC152で作られ、
ANDゲート154を介してインジエクタ28へ
印加される。尚INJC152の詳細は第29〜3
0図により後述する。 点火パルス発生回路156(以下IGNCと記
す)は点火時期をセツトするレジスタ(ADVと
記す)と点火コイルの1次電流通電開始時間をセ
ツトするレジスタ(DWLと記す)とを有し、
CPUよりこれらデータがセツトされる。セツト
されたデータに基づいてパルスを発生し、第1図
の点火コイル44の1次電流を制御するためのイ
グニツシヨン162へANDゲート158,16
0を介してこのパルスを加える。このIGNC15
6は第27図を用いて後述する。 バイパスバルブ14の開弁率は制御回路(以下
ISCCと記す)164からANDゲート166を介
して加えられるパルスによつて制御される。
ISCC164はパルス幅をセツトするレジスタ
ISCDと繰返しパルス周期をセツトするレジスタ
ISCPとを持つている。このISCCの詳細回路は第
26図で説明する。 第1図に示したEGR制御弁62を制御する
EGR量制御パルス発生回路168(以下EGRC
と記す)にはパルスのデユーテイを表わす値をセ
ツトするレジスタEGRDとパルスの繰返し周期を
表わす値をセツトするレジスタEGRPとを有して
いる。このEGRCの出力パルスはANDゲート1
70を介してEGR制御弁62に加えられる。こ
のEGRC回路も第26図を用いて後述する。 また1ビツトの入出力信号は回路DIO(デイス
クリート入出力回路)により制御される。入力信
号としてはスロツトルスイツチからのTH―SW
信号、トツプギアスイツチ142からのTOP―
SW信号、スタータスイツチ66からのSTART
―SW信号がある。また出力信号としては燃料ポ
ンプ24を駆動するためのパルス出力信号があ
る。このDIOは端子を入力端子として使用する
か、出力端子として使用するかを決定するための
レジスタDDR192と、出力データをラツチす
るためのレジスタDOUT194とが設けられて
いる。 モードレジスタ172は入出力回路108内部
の色色な状態を指令する命令を保持するレジスタ
(以下MODと記す)であり、例えばこのモード
レジスタ172に命令セツトすることにより、
ANDゲート154,158,166,170を
総て動作状態にさせたり、不動作状態にさせたり
する。このようにモードレジスタ172に命令を
セツトすることにより、INJC152やIGNC1
56、ISCC164、EGRC168の出力の停止
や起動を制御できる。 次にROM104に格納されているプログラム
につき説明する。 第3図は第2図の制御回路のプログラムシステ
ムである。キー・スイツチ42(第1図)により
電源電圧がCPU102に加えられるとCPU10
2はスタート・モード202となり、イニシヤラ
イズ・プログラム(INITIALIZ)204を実行
する。次に監視プログラム(MONIT)206を
実行し、バツク・グランド・ジヨブ(BACK
GROUND JOB)208を実行する。このバツ
グ・グラウンド・ジヨブとして例えばEGR量の
計算タスク(以下EGR・TASKと記す。)やバイ
パス弁14の開度を計算するタスク(以下ISC・
TASKと記す)を実行する。 このタスクの実行中、割込要因(以下IRQと記
す)が発生すると割込要因の分析を行なうため点
222へジヤンプし、割込要因分析プログラム2
24(以下IRQ ANALと記す)を実行する。こ
の割込要因分析(IRQ ANAL)のプログラムは
さらにADC1の終了割込処理(以下ADCIEND
IRQと記す)プログラム226とADC2の終了割
込処理(以下ADC2END IRQと記す)プログラ
ム228と一定期間経過割込処理(以下INTV
IRQと記す)プログラムとエンジンの同期割込処
理(以下INTL IRQと記す)プログラムからな
り、後述する各タスクの起動の必要なタスクにそ
れぞれ起動要求(以下QUEUEと記す)を出す。 この割込分析(IRQ ANAL)プログラム22
4内の各プログラムADC1 END IRQ226や
ADC2 END IRQ228やINTV IRQ230や
INTL IRQ232の各プログラムにより起動要
求(QUEUE)が出される各タスクはレベル・ゼ
ロ・タスク群252やレベル1タスク群254や
レベル2タスク群256やレベル3タスク群25
8であるか、あるいは該各タスク群を構成するタ
スクである。またINTV IRQプログラム232
によりさらにエンジンの停止が検出されると起動
要求(QUEUE)が発生するタスクはエンジン停
止時の処理タスク262(以下ENST TASKと
記す)である。このENST TASK262が実行
されると再び制御システムはスタート・モードと
なり、開始点202へ戻る。 タスク・スケジユーラ242は起動要求
(QUEUE)の発生しているタスク群かあるいは
実行中断タスク群の内、レベルの高いタスク群
(ここではレベル・ゼロを最高とする)から実行
するように、タスク群の実行序順を決定する。タ
スク群の実行が終了すると終了報告プログラム2
60(以下EXITと記す)により終了報告され
る。この終了報告により、再び実行待ちになつて
いるタスク群の内の最もレベルの高いタスク群を
次に実行する。 実行中断タスク群や起動要求(QUEUE)の発
生しているタスク群がなくなるとタスク・スケジ
ユーラ242より再びバツク・グラウンド・ジヨ
ブ208の実行へ移る。さらにレベル・ゼロ・タ
スク群からレベル3タスク群のどれかを実行中に
割込(IRQ)が発生すると割込分析プログラムの
開始点222へ戻る。 第1表に以上述べた各タスクの起動とその機能
を示す。
【表】
【表】
第1表において、制御システムを管理するため
のプログラムとして、割込分析(IRQ ANAL)
プログラムやタスクスケジユーラ(TASK
SCHDULER)プログラムや終了報告(EXIT)
プログラムがある。これらのプログラム(以下
OSと記す)は第4図の如くROM104のアドレ
スA000からアドレスA300に保持されている。尚
アドレスは16進法記載で表現されている。 さらにレベル・ゼロ・プログラムとしてAD1
の出力取込み(AD1IN)、AD2の出力取込み
(AD2IN)、エンジン回転速度出力取込み
(RPMIN)の各プログラムがあり、通常一定時
間経過割込(INTV IRQ)の10〔mSEC〕で起動
される。レベル1プログラムとして燃料制御
(INJC)、点火時期制御(IGNCAL)、通電角制
御(DWLCAL)プログラムがあり、一定時間経
過割込(INTV IRQ)の20〔mSEC〕ごとに起動
される。レベル2プログラムとして02フイードバ
ツク制御(LAMBDA)プログラムがあり、一定
時間経過割込(INTV IRQ)の40〔mSEC〕ごと
に起動される。レベル3プログラムとして補正計
算(HOSEI)プログラムがあり一定時間経過割
込(INTV IRQ)の100〔mSEC〕ごとに起動さ
れる。またバツク・グラウンド・ジヨブとして排
気環流制御(EGRCAL)とバイパスエアー制御
(ISCCAL)プログラムがある。上記レベル・ゼ
ロ・プログラムはPROG1としてそれぞれ第4図
のROM104のアドレスA600からAAFFに記憶
されている。レベル・1プログラムはPROG2と
してROM104のアドレスAB00からABFFに
記憶されている。レベル2プログラムはPROG3
としてROM104のアドレスAE00からAEFFに
記憶されている。レベル3プログラムはPROG4
としてROM104のアドレスAF00からAFFFに
記憶されている。またバツク・グラウンド・ジヨ
ブ・プログラムはB000からB1FFに保持されてい
る。なお上記プログラムPROG1からPROG4まで
の各プログラムのスタード・アドレスのリスト
(以下SETMRと記す)がB200からB2FFまでに
保持され、PROG1からPROG4までの各プログラ
ム起動周期を表わす値(以下TTMと記す)がア
ドレスB300からB3FFに記憶されている。これら
の詳細は第15図に示されている。 その他のデータは必要に応じ第4図のROMの
アドレスB400からB4FFに記憶される。それに続
いて演算のためのデータ点火時期マツプ(ADV.
MAP)や空燃比制御マツプ(AF.MAP)、排気
ガス制御マツプ(EGR.MAP)をそれぞれ記憶し
ている。 イニシヤライズプログラムを説明する。 第3図におけるイニシヤライズINITIALIZ2
04プログラムの詳細を第5図を用いて説明す
る。ステツプ282で割込(IRQ)発生時の退避
エリアを設定する。次にステツプ284でRAM
106を全てクリアする。ステツプ286で入出
力回路108のレジスタ内に初期値の設定を行な
う。この初期値設定として例えば、角度センサ1
46の計測時間の初期値やDIOの端子の入力と出
力の使い分けのDDRの設定や一定時間経割込
(INTV IRQ)発生のためのタイマの設定があ
る。 ステツプ288でADC1に起動をかけ、さらに
ADC1の終了割込(ADC1 ENDIRQ)の為の禁
止解除を行なう。この場合、ADC1に入力される
マルチプレクサ(MPX)の指定を行ない、
ADC1を起動するためのパルスを送る。これによ
り第2図のADC1のマルチプレクサMPXの入力
の1つであるバツテリ電圧検出センサVBS12
2の出力がセレクトされてADC1へ入力される。
ステツプ290へ戻つてここでADC1 END IRQ
を持つ。ADC1の変換動作が完了し、REG134
へデイジタル値がセツトされるとステータス・レ
ジスタSTAUS198へADC164の動作完了が
報告され、ADC1 END IRQがCPU102へ入
力される。これによりプログラムAD1 INが実行
され、バツテリ電圧センサ132の出力が取り込
まれる。 ステツプ292でセンサ122から82の出力
を全て取り込んだかを確認する。この場合センサ
122の入力の取り込みが完了されただけなの
で、ステツプ288へ戻る。このステツプ288
でマルチプレクサ(MPX)162は次の入力で
あるセンサ74の出力をセレクトする。水温セン
サ74の出力のアナログ・デイジタル変換が完了
すると再び、ステツプ290でプログラムAD1
IN(取り込み)が実行され、レジスタREG134
内に保持されている水温センサTWS74の出力
のデイジタル値が取り込まれてROM104のデ
ータ(DATA)エリアに保持される。ステツプ
292で再びステツプ288へ戻される。このよ
うにステツプ288からステツプ292のループ
を回ることによりセンサ122から82の出力の
デイジタル値が次々に取り込まれ、排気ガスセン
サであるλS82の出力値の取り込みが完了する
と、ステツプ294へ進む。 ステツプ294で始動時の点火時期の演算と設
定を行なう。この点火時期θADV(ST)はエンジ
ンの冷却水温TWの関数として演算する。この関
数を第7図に示す。第7図の特性に従つてθADV
(ST)を演算し、この演算された結果は第2図
IGNC156のレジスタADVにセツトされる。 ステツプ296で始動時のエアー・バイパス・
バルブ14の初期値の演算を行う。この演算は第
9図に示す特性に基づいて行なわれ、その演算出
力は制御回路ISCC164のレジスタISCDにセツ
トされる、尚ISCPについても固定値がセツトれ
る。この固定値は制御弁の特性で定まる値であ
る。第8図の特性はINJDのセツト値の特性図で
ある。 ステツプ298で燃料噴射時間であるオン・デ
ユーテイの初期値が演算される。この演算値は第
8図により行なわれるものであり、制御回路15
2のレジスタINJDに設定される。レジスタ
INJDのセツトにより、第3図のイニシヤライズ
(INITIALIZ)プログラム204の実行を終了す
る。 次に監視プログラム206を説明する。第6図
にMONITプログラム206を示す。MONITプ
ログラム206はステツプ302より開始され、
ステツプ302で第1図のスタータ・スイツチ6
6がON状態かどうかDIOのDIO5入力を監視する
ことにより行なわれる。もしスタータ・スイツチ
66がON状態であるとDIOの第5ビツトDIO5が
“H”となつている。また逆にOFFしていると
“L”となつている。今エンジンの始動前である
とするとスタータ・スイツチはOFFであり、ス
テツプ302からステツプ312へ進み、ここで
始動後かどうかを判断する。この判断は例えばス
タータ・フラグが立つているかどうかを判断す
る。このスタータ・フラグはステツプ308で立
てられるものである。このスタータ・フラグは
RAM内の所定位置にセツトされる。始動前はス
タータ・フラグが立つていないので、ステツプ3
12でNOとなり、再びステツプ302へ戻る。
スタータ・スイツチ152がONされるまでステ
ツプ302のNOからステツプ312のNOを通
つてステツプ302へ戻るルートを回る。このル
ートを回りながら、スタータ・スイツチの監視を
行なう。 スタータ・スイツチがONするとステツプ30
2で判断がYESとなり、ステツプ304へ進む。
ここで、既にスタータ・スイツチがONしていた
かどうかを判断する。初めてステツプ304へ進
んだ場合はスタータ・スイツチのONを検出した
直後であり、スタータフラグが立つていないので
ステツプ304で判断がNOとなる。スタータ・
フラツグの立つていない時は判断をNOとしてス
テツプ306へ進み、始動の為の準備がされる。
例えば本実施例では、フユーエル・ポンプ190
の起動のためにDIOのDOUTレジスタ194の
第ゼロ・ビツトに“H”をセツトする。これによ
りフユーエル・ポンプの電源が入る。次にステツ
プ306で、DOUTレジスタ194の第1ビツ
トを“H”とする。これによりIGNC回路156
の出力に設けられているANDゲート160が動
作状態になる。実際にはDOUTレジスタ194
の第ゼロビツトと第1ビツトのセツトは同時に行
なわれる。 ステツプ308で一定時間経過割込(INTV
IRQ)の禁止解除がなされる。この一定時間経過
割込(INTV IRQ)の禁止解除は例えば第2図
のMASKレジスタ196の第4ビツトを“H”
にすることにより行なう。さらにステツプ308
でスタータ・フラグを立てる。このスタータ・フ
ラグは既にスタータ・スイツチがONであること
を示していて、ステツプ304とステツプ312
でこのフラグを判断に用いる。 ステツプ310で入出力回路108の出力系で
ある制御回路INJCと制御回路IGNCと制御回路
ISCCと制御回路EGRCの出力端のANDゲートを
動作状態にするため、後で説明するモード・レジ
スタ172に“H”をセツトする。これにより各
制御装置へパルス出力が送られる。ステツプ31
0からステツプ302へ戻り、ステツプ302で
スタータ・スイツチ152がONかどうかが判断
される。始動中はスタータ・スイツチがONであ
り、YESからステツプ304へ進む。このステ
ツプ304で、スタータ・フラグをチエツクし、
フラグが立つていれば既にスタート中であるとし
てステツプ302へ戻る。 このようにスタータ・モータが駆動されている
間は、ステツプ302のYESと304のYESと
から作られるループを回つている。 エンジンが始動されるとスタータ・スイツチ1
52がOFFとなるので、ステツプ302の判断
はNOとなり、ステツプ312へ進む。ステツプ
312でスタータ・フラグがチエツクされ、スタ
ータ・フラグが立つているのでステツプ314へ
進む。このステツプ314で、エンジン停止の検
知と処理の禁止解除の為にエンスト・フラグがセ
ツトされ、このステツプ314以降エンジンの停
止はINTVIRQとINTLIRQ処理プログラムのエ
ンジンの停止検知ステツプで検知できる。 次にバツク・グラウンド・ジヨブのプログラム
208へ進む。このプログラムを第10図に詳述
する。 図において、ステツプ410でスロツトル・ス
イツチ76がONかどうかが判断される。もし
ONであれば排気ガス環流制御は行なわれない。 従つてステツプ412へ進み、ここでレジスタ
EGRDにゼロをセツトする。このことにより
EGR弁62の開弁率はゼロになる。一方ステツ
プ414でISCDに所定の値をセツトする。この
ため、レジスタISCDにセツトされた値に応じて
第1図のエアー・バイパス・バルブ14が制御さ
れる。バイパス通路の空気流量を制御するエア
ー・バイパス・バルブ14は特定の運転状態に応
じて制御される。すなわち気温の低い冬季の運
転、エンジンの冷えている始動時の運転およびエ
ンジンに負荷のかかるカーエアコンデンシヨナー
を使用中の運転等の場合にはバイパス通路の空気
流量を増加させる。ステツプ414で冷却水温に
応じてエアー・バイパス・バルブ14のデユーテ
イがレジスタISCDに設定される。この値に応じ
てアイドル時のエンジン回転速度が制御される。
このステツプ414の終了により再び410へ進
み、このフローを繰り返す。 一方スロツトル・スイツチ76がオンでない状
態ではエアーソレノイドバルブ22は閉弁され
ず、代りに排気ガス環流制御が行なわれる。この
ためにステツプ418でレジスタISCDにゼロを
セツトする。ステツプ422で冷却水温が一定値
例えばTA℃より高いかどうかを判断し、もし高
ければEGRを掛けないようにする。このためス
テツプ426でEGRCUTを行うための値ゼロを
設定する。またステツプ422で冷却水温が一定
値(TA℃)より低い値であればステツプ424
へ進む。ステツプ424で冷却水温がTB℃より
低いかどうかを判断する。もし低い場合、やはり
EGRを掛けないのでステツプ426でEGRCUT
を行う値ゼロを設定する。これらの値はステツプ
430でEGRDレジスタにセツトされる。 一方冷却水温TWがTB度より高くTA度より
低い場合EGRを行う。このときのEGR量は圧力
センサ78の出力VCとエンジン回転速度Nで定
まる。出力VCとNとによるEGR量のマツプは第
4図のROMのアドレスB700〜B7FFに設けられ
ており、このマツプから検索してEGR量を定め
る。ステツプ428で検索を行い、この値をステ
ツプ430でレジスタEGRDへセツトする。この
レジスタEGRDのセツト値に応じて第1図に示し
たEGR装置62は駆動される。 第10図に示したフローチヤートでは、ステツ
プ430あるいはステツプ414の終了により、
再びステツプ410へ戻る。このようにすること
によりコンピユータはエアー・バイパス・バルブ
14を制御するためのステツプ410からステツ
プ414までのフローチヤートかあるいはステツ
プ418からステツプ430までのステツプのフ
ローチヤートを常に実行できる。従つて割込
(IRQ)などの発生が生じないものとすれば、点
202よりスタートしたプログラムはイニシヤラ
イズ(INITIALIZ)プログラム204、監視
(MONIT)プログラム206を通つてバツク・
グラウンド・ジヨブ208であるISCプログラム
あるいはEGRCALプログラムを常に実行し続け
ることになる。 監視(MONIT)プログラム206やバツク・
グラウンド・ジヨブ208は割込(IRQ)を発生
させてその処理を中断できるようになつており、
割込(IRQ)による処理が終了すると再び上記プ
ログラムの実行を再開する。 次に第3図における割込(IRQ)の発生に基づ
く処理の説明を行なう。割込(IRQ)の要因分析
のプログラム224はADC1END IRQ226の
処理とADC2 END IRQ228の処理とINTV
IRQ230の処理と、INTL IRQ232の処理
とからなつている。ここで各プログラム226,
228,230,232のそれぞれを実行するた
めには先ず、割込(IRQ)に基づくサービスの要
求内容は何かを調べる。このため第2図のステー
タス(STA TUS)レジスタ198の内容が調
べられる。このステータス(STA TUS)レジ
スタの内容を見ることにより、割込(IRQ)の発
生要因が判明する。この発生要因に応じて上記各
プログラム226,228,230,232を実
行し、これによりタスク(TASK)252,2
54,256,258,262の内の実行が必要
なタスク(TASK)に起動要求(QUEUE)を出
す。 但し、割込(IRQ)の発生を多くすると管理プ
ログラム(以下OSと記す)の実行時間が多くな
り実質的なエンジン制御の為の演算時間がとれな
くなる欠点がある。従つてこの実施例では、
ADC1END IRQ228はイニシヤライズ
(INITIALIZ)あるいは監視(MONIT)プログ
ラム204と206の実行中のみ発生させ、その
他は発生させない。つまり監視(MONIT)プロ
グラム206の第6図で示したステツプ314で
第2図のマスク(MASK)レジスタ196に
ADC1END IRQの禁止命令である“L”をセツ
トする。またADC2END IRQ226は最初から
発生させない、つまりスタート点である202で
全ての割込みが禁止されるように入出力回路のゼ
ネラル・リセツト信号でIRQ発生禁止状態になる
ようにマスク(MASK)レジスタをセツトする。
その後割込(IRQ)禁止解除の命令を出さないよ
うにすることによりADC2END IRQの発生を禁
止する。 プログラム224の具体例を第11図〜第14
図に示す。割込(IRQ)の入口222よりステツ
プ450においてADC1END IRQでないことが
判断されると、ステツプ452へ行く。一方割込
(IRQ)の発生要因がADC1END IRQかどうかを
判断し、そうであればステツプ450よりイニシ
ヤライズ(INITIALIZ)プログラムのステツプ
290へジヤンプする。ADC1 END IRQが発生
するのはこの実施例では第5図のイニシヤライズ
(INITIALIZ)プログラム204の実行中のみで
ある。それ以外の状態ではADC1END IRQは禁
止される。ステツプ450の判断が“NO”の場
合ステツプ452へ進む。 ステツプ452で割込(IRQ)の要因が一定周
期で発生する一定時間経過割込(INTV IRQ)
かどうかを判断する。“YES”の場合、ステツプ
454へ進む。ステツプ454からステツプ45
8は第12図のステツプ482と組合せられてエ
ンジンの停止状態を検知する。既、ステツプ45
4で、エンジン停止状態を検知すべきかどうか
を、エンスト検知フラグがセツトされているかど
うかにより判断する。エンジン停止の検知が必要
な場合のみこのエンスト検知フラグがセツトされ
ている。ステツプ454でこのフラグがリセツト
の場合、エンジンの停止検知は行なわず、ステツ
プ460へ進む。一方フラグがセツトされている
場合、エンジン停止の検知を行なう為にステツプ
456へ進む。 このステツプでエンジン出力軸の基準回転角で
発生するREF信号からの時間経過を計測するた
めエンストカウンタのカウント値を更新する。こ
のエンストカウンタは基準回転角を表わすREF
信号毎にクリアされるので、エンストカウンタ値
は前のREF信号発生からの時間経過を表わす。
ステツプ458でエンストカウント値が規定値に
達している場合、エンジンが停止したと判断さ
れ、ステツプ474へ進みエンストタスク
(ENSTTASK)(第14図)を実行する。 エンストタスク(ENSTTASK)の内容は、
燃料ポンプ24を停止させるために第2図の
DIOOを“H”から“L”に変更すること、第2
図のANDゲート154,158,166,17
0を停止状態にするためにモード(MODE)レ
ジスタ172に“L”とセツトすることおよびプ
ログラムシステムのスタート点202へジヤンプ
することである。 またステツプ458でエンジンが停止していな
いと判断されるとステツプ460へ進む。ステツ
プ460からステツプ470はタスク・レベル・
ゼロからタスク・レベル3までのプログラムが起
動タイミングに達したかどうかの判断をする機能
を持つ。先ずタスク・レベル・ゼロを調べる。そ
の為にステツプ460でタスクコントロールワー
ド(TCW)の番号nを表わすRAM内の所定の
アドレスの内容をゼロにする。タスク・レベル・
ゼロのタスク・コントロール・ワードすなわち第
15図のRAM106内のTCW0のビツトb0〜b5
で構成されているカウンタ0をプラス1だけイン
クリメントする。このように本実施例では加算法
を採用したが、減算法を採用することも可能であ
る。ステツプ462でTCW0のカウンタの値と第
15図のタスク起動タイマTTM0の値とを比較
する。ここでTTM0には“1”が入つている。
ここで一定時間経過割込(INTV IRQ)は10
〔mSEC〕毎に発生するものとしているので、
TTM0に“1”が入つていることはタスク・レ
ベル・ゼロ・プログラム(第3図の252)10
〔mSEC〕毎に起動されることを表わしている。
第15図のTCW0のカウンタ(CNTR0)と
TTM0をステツプ464で比較し、一致する場
合“YES”へ進む。この場合は一致するのでス
テツプ466へ進み、タスク・コントロール・ワ
ードTCW0のビツトb6にフラグ“1”を立てる。
この実施例では各TCWのb6はそのタスクの起動
要求(QUEUE)のフラグとなる。ステツプ46
6でさらにTCW0のb6にフラグ“1”を立てた
のでこのTCW0のb0〜b5に設けられたカウンタ
CNTR0をクリアする。ステツプ468でTCW
のnをインクリメントする。すなわちステツプ4
68でタスク・レベル・ゼロからタスク・レベル
1の起動タイミング検索に移る。ステツプ470
でタスク・レベル3の終了かを判断する。つまり
n=4かを判断する。この場合n=1であるの
で、ステツプ462へ戻る。ステツプ462でタ
スク・レベル1のプログラムのタスク・コントロ
ール・ワードである第15図のRAM106内の
TCW1のカウンタCNTR1の内容を“+1”イン
クリメントする。ステツプ464で、第15図の
ROM104のTTM1と比較する。この実施例で
はTTM1の内容は“2”である。つまりタス
ク・レベル1の起動タイミングは20〔mSEC〕で
ある。今カウンタCNTR1の内容が“1”である
と仮定すると464の判断は“NO”つまりタス
ク・レベル1プログラム254は起動タイミング
ではないことが判断され、ステツプ468へ進
む。ここで再び検索されるタスク・レベルが更新
され、次はタスク・レベル2となる。同様にして
タスク・レベル3まで終了すると、ステツプ46
8でn=4となり、ステツプ470でn=
nMAX(4)の条件が満足される。そしてタスク・
スチジユーラ242へ進む。 ステツプ452で一定時間経過割込(INTV
IRQ)でなければステツプ472へ進む。ここで
エンジンの出力軸の基準回転角毎に発生する基準
角割込(INTL IRQ)かどうかを判断する。こ
の場合かならずYESになるはずであるがもしノ
イズ等で誤動作した場合ステツプ472でNOと
なり、割込前の状態へ戻る。一方基準角割込
(INTL IRQ)の場合、第12図のステツプ48
2へ進む。ここで第11図のステツプ456,4
58と組合せられてエンジンの停止状態を検知す
る。すなわちエンストカウンタをステツプ482
でクリアする。 ステツプ484で燃料ポンプが動作中かどうか
を判断し、もし停止していれば、エンジン出力軸
が基準回転角まで回転したことであるのでステツ
プ490で第2図のDIOのDIOOを“H”にする
ことにより燃料ポンプを動作状態にする。 ステツプ502で、点火時期の急変に基づくエ
ンジントルクの急変を防止するための処理を行な
う。以下ダイナミツクリミテーシヨン
(DYNAL)と記す。その詳細は第13図を用い
て後述する。 ステツプ504でエンジン回転数の読出しを行
ない、最高回転数nMAXを越えているかどうか
を判断する。nMAXを越えている場合、エンジ
ンの出力トルクを低下させる為にステツプ510
へ進む。ステツプ520〜524は点火動作の間
引を行うステツプである。つまり第2図のAND
ゲート160を間欠的に動作状態とする。ステツ
プ520でDIO1の出力が“H”かどうかを判断
し、“H”の場合は点火を停止する為にステツプ
522でDIO1を“L”にする。そうでない場合
はステツプ524でDIO1を“H”にする。 これにより間欠的に点火が行なわれる。 ステツプ506〜514でインテークマニホー
ルド内の圧力Pが最高圧力PMAXを越えている
かどうかを判断する。圧力がPMAXを越えると
危険である。このPMAXはエンジン回転速度に
対し、第18図の如き特性になつている。この第
18図の特性は例えばNA〜NMの各エンジン回
転速度のバンドに分けられて、その各バンドへ内
のPMAX値の最低値をそのバンドの代表値とし
て選び、第19図に示す如く、ROMのアドレス
のB800〜B80Dに記憶されている。 先ず、ステツプ506で番号Zをゼロにする。
このZは上記NA〜NMのバンドの順番を表わし
ている。ステツプ508で先頭番地B80E+Zの
番地からバンドの境界値を読出す。つまり最初は
バンドNAとNBの境界NOの値がアドレスB80E
より読出される。したがつてステツプ508でエ
ンジン回転速度nとアドレスB804に記憶されて
いるバンドNAとNBとの境界の回転速度値とが
比較される。エンジン回転速度nがこの境界値よ
り大きい場合ステツプ510へ進み、Zがインク
リメントされる。これにより実際の回転速度nと
比較される値は番地B80Fから読出されたN1の値
に移る。このN1の値はバンドNBとバンドNCと
の境界値である。このようにして実際のエンジン
回転速度nが、次々に読出される境界値と比較さ
れ、そのつど番号Zがインクリメントされる。そ
の境界値より実際のエンジン回転速度の値nが小
さくなつた時点でステツプ508からステツプ5
12へ進む。ステツプ512でこのバンド順番を
意味するZの値が用いられ、アドレスB800から
何番目かがZの値で決められ、最大圧力がB800
+Zのアドレスより読み出される。この最大圧力
PMAXと測定圧力Pが比較され、この最大圧力
PMAXを越えている場合エンジントルクを減少
させるためにステツプ520へ進む。一方マニホ
ールド圧が最大圧より小さい時はDIOのDIO1出
力を“H”とし、ANDゲート160(第2図)
を動作状態とする。そしてタスクスケジユーラプ
ログラムへ進む。 ダイナミツクリミテーシヨンプログラム
(DYNAL)を説明する。 第13図は第12図のダイナミツクリミテーシ
ヨンプログラム(DYNAL)の詳細フローチヤー
トである。後述するレベル1プログラム中の表1
に示したIGNCALプログラムにより点火時期の
目標値θTARGETが計算される。この目標値と
前回の点火時期であるθ(t−1)との差がステ
ツプ532で計算される。この差Δθの大きさが
一定幅ΔQMAXより大きいかをステツプ534
で判断し、このΔθKAXより大きくない場合、目
標値と前回の点火時期との差が小さいとの理由
で、ステツプ536で、目標値θTARGETを今
回の点火時期とする。 一方ステツプ534で目標値と前回の点火時期
との差が大きいと判断された場合、ステツプ53
8と540と542で一定角のみ目標値に近ずけ
る処理を行なう。すなわち目標値θTAGETが前
回の点火時期に対し、大きいか小さいかを判断す
る。この目標値や、前回の点火位置θ(t−1)
はこの実施例では点火位置より前の基準回転角か
ら点火角までの間のセンサ80からの単位パルス
であるPOSパルスの数で表わされる。従つて、
θTAGET>θ(t−1)の条件が満足されること
は点火時期が遅れ側に移す必要があることを意味
し、そうでない場合は進み側に移す必要があるこ
とを意味している。 ステツプ538で、目標値θTAGETが前回の
点火位置θ(t−1)より大きい場合、今回行う
点火位置を目標値に近づきる為に一定値Δθ1のみ
加算した値θ(t−1)+Δθ1を今回の点火位置θ
(t)とする。一方そうでない場合、θ(t−1)
から一定値Δθ2を減じたθ(t−1)−Δθ2が今回
の点火位置θ(t)とされる。ステツプ544で、
ステツプ536,540,542のいずれかで求
められたθ(t)を第2図の入出力回路108の
IGNC156のレジスタADVへセツトされる。
そして第12図のステツプ504へ続く。 第14図はエンストタスク(ENST TASK)
の詳細フローチヤートであり、第11図のステツ
プ474の詳細である。このステツプ474で説
明した如く、燃料ポンプを停止し、第2図の入出
力回路108の出力を全て停止するためにモード
レジスタ(MODE)172に“L”をセツトす
る。その後スタート点202のアドレスへジヤン
プする。 第16図はタスク・スケジユーラ242の詳細
フローチヤートであり、ステツプ560でタス
ク・レベルnの実行が必要かを判断する。最初は
nをクリアし、このためn=0である。タスク・
レベル・ゼロのプログラムの実行の必要について
判断する。すなわち、優先順位の高いタスクから
順に起動要求(QUEUE)の存在を調べてゆく。
これは第15図のRAM106のタスク・コント
ロール・ワードTCWのb6とb7を検索することに
より判断できる。b6は起動要求フラグでここに
“1”が立つていると起動要求が“有り”である
ことがわかる。またb7には実行中を示すフラグ
であり、ここに“1”が立つていると実行中であ
り現時点では中断されていることを示す。従つて
b6とb4の少なくともどちらかに“1”があれば
実行要となりステツプ568へ進む。 ステツプ568でb7のフラグを判断し、b7が
“1”であれば実行中断中であり点570よりそ
の中断していたタスクの実行を再開する。b6と
b7の両方にフラグが立つていてもやはりステツ
プ568の判断は“YES”となり、中断中のと
ころのプログラムから再開する。b6のみが“1”
の場合、そのレベルの起動要求フラグつまりb6
をステツプ572でクリアして、ステツプ574
でb7のフラグ(以下RUNフラグと記す)をセツ
トする。ステツプ572と574はそのタスク・
レベルの起動要求状態から実行状態に進んだこと
を示す。ステツプ578でそのタスク・レベル・
プログラムのスタート・アドレスを検索する。こ
れは第15図に示したROM104の内に各タス
ク・レベルのTCWに対応させて設けられたスタ
ートアドレステーブルTSAより求められ、つま
りステツプ560でのタスクレベルnの値に第1
5図に示したROM104内のタスクスタートア
ドレステーブル(TASK START ADDRESS)
の先頭番地を加算した(n+TASK・START・
ADDRESSの先頭番地)の式から読出し番地を
決め、この番地の記憶内容をスタートアドレスと
してこのスタート・アドレスへジヤンプすること
によりそのタスクの実行が行なわれる。 第16図へ戻つてステツプ560で“NO”と
判断された場合、この場合は検索のタスク・レベ
ルのプログラムには起動要求がでていなくしか
も、実行中断でもないことを示している。この場
合次のタスク・レベルの検索にうつる。つまりタ
スク・レベルのnがn+1となつてレベルが1つ
移動する。ここでnがMAXつまりここでは4で
あるかを見、4でなければ再びステツプ560へ
進む。これを繰り返し、n=4となると点566
よりバツク・グラウンド・ジヨブの中断点へ戻
る。つまり点566ではタスク・レベル・ゼロ〜
3までの全てのプログラムに実行の必要がないこ
とが判明したことになり、IRQの発生前のバツ
ク・グラウンド・ジヨブの中断点へ戻る。 第15図は上で述べたタスク・コントロール・
ワードTCWとROM内のタスク・起動周期を表
わすTTM、タスク・スタート・アドレス・テー
ブルの関係を示したものである。タスク・コント
ロール・ワードTCWの0〜3に対応してROM
内にタスク起動周期TTMがあり、一定時間経過
割込(INTV IRQ)ごとにTCWのカウンタ
CNTR0〜3が各々に更新され、各タスクの
TTMと一致したことにより、そのTCWのb6に
フラグが立つ、このフラグにより次にROM内の
タスク・スタート・アドレスTSAよりそのタス
クのスタート・アドレスが検索され、そのスター
ト・アドレスへジヤンプすることによりプログラ
ム1〜4の選ばれたプログラムが実行される。こ
の実行中はRAM106内のそのプログラムに対
応したTCWのb7にフラグが立つ。このフラグが
立つている間は実行中であることが判断できる。
このようにして第3図のタスク・スケジユーラ2
42により、レベル0〜3のプログラムが実行さ
れる。そして例えばレベル0〜3までのプログラ
ム252〜258のいずれかが実行されている時
に割込(IRQ)が発生すれば再びそのタスクを中
断して割込(IRQ)の処理になる。今割込
(IRQ)が発生により実行が開始されたタスクは
やがてその処理を終了する。これにより終了報告
を行うため、終了報告(EXIT)プログラム26
0へジヤンプする。 この終了報告(EXIT)プログラムの詳細を第
17図に示す。このプログラムは、終了タスクを
見つけるためのステツプ592と594からな
る。このステツプ592と594で先ずタスク・
レベルのゼロより検索し、終了したタスク・レベ
ルを見つける。これによりステツプ596へ進
み、ここで終了したタスクのタスク・コントロー
ル・ワード(TCW)のb7のフラグ(RUNフラ
グ)をリセツトする。これによりそのプログラム
の実行が完全に終つたことになる。そして再びタ
スク・スケジユーラへ戻り、次の実行プログラム
が決定される。 第20図はレベル0プログラムである。このプ
ログラムや第1表に示す通り、10ミリ・セツク毎
に起動要求が出される。ステツプ650でADC1
のデータの取込みを行ない、654で次の取込デ
ータを選択し、ステツプ656でADC1の次のデ
ータを取り込むための起動をかける。また652
のステツプは始動前にADCEND IRQを使用する
ためであり、始動前のフラグが立つている場合、
始動前であるため割込中断の再開(RTI)つまり
中断しているプログラムへ戻る。このプログラム
は第5図のイニシヤライズ(INITIALIZ)プロ
グラム204である。ステツプ658でAD2の
データであるインテークマニホールド圧Pを取り
込み、さらにステツプ670でADC2の次のデー
タ取り込みのための起動をかける。ステツプ67
2でエンジン速度を取り込む。この後、ステツプ
674で始動は完了したかどうか判断する。始動
完了であればステツプ682へジヤンプする。一
方そうでない場合はステツプ676で始動前か始
動中かを判断する。エンジンの測定速度Nが始動
回転速度に達していなければ始動前であり、ステ
ツプ682へジヤンプする。始動中であればステ
ツプ678へ移り、第2図の入出力回路108の
出力禁止を解除するためにモード(MODE)レ
ジスタ172に“H”をセツトする。そして始動
中を示すフラグをセツトする。尚このレベル
(LEVEL)ゼロタスクは10mSEC毎に起動要求が
出されるので、ほぼ10mSEC毎に実行される。従
つて始動中は10mSEC毎にステツプ678や68
0が実行される。一度セツトした後同じ主旨のフ
ラグやデータをセツトしても実害は起らない。ス
テツプ680で基準回転角割込(INTL IRQ)
を受付可能にするために、第2図のマスク
(MASK)レジスタ196へ“H”フラグをセツ
トし、さらにエンジン停止の検知を行なう為にエ
ンスト検知フラグをセツトする。この検知フラグ
は第11図のステツプ454で使用される。ステ
ツプ682と684でエンジン回転速度がアイド
ル回転値NLLより大きい場合NLLフラグをセツ
トする。 ステツプ686で始動が完了したかどうかを判
断する。測定値Nが始動完了と判断できる回転速
度より大きい場合は始動完と判断し、始動完フラ
グをセツトする。そうでない場合はNLLフラグ
をリセツトする。そしてこのレベル(LEVEL)
ゼロタスクは終了し、その終了報告を行なう為、
終了報告(EXIT)プログラム260へジヤンプ
し、第15図のRAM106TCW0のb7ビツトの
フラグをクリアする。 第21図はレベル1プログラムであり、ステツ
プ702で始動中かどうかを判断する。始動中の
場合、始動中の燃料を供給し、さらに点火時期を
決定するので、これらの計算の為にステツプ70
4へ進む。このステツプ704でエンジン冷却水
温の値TWに基づいて始動燃料を決定する。また
ステツプ706でエンジン回転速度Nと水温TW
とに基づいて点火位置θを決定する。 一方始動中でない場合はステツプ708でイン
テークマニホールド圧Pとエンジン速度Nとから
燃料供給量を求めて第2図の制御回路INJC15
2のINJDレジスタへセツトする。次にステツク
710〜724は点火位置の演算フローチヤート
である。ここで制御される点火進角値Wはエンジ
ン回転速度Nに対し第22図の如き特性になる。
つまりアイドル回転速度NLL値より低くなると
進角値W2に向けて進角させる。これによりトル
ク出力を増加させてエンジン回転数を目標値
NLLに近づける。尚目標回転速度NLLでは進角
量が少くW1値であり、エンジン回転速度に対し
点火進み角が少ないのでトルク出力が少い。従つ
て目標回転速度NLL値の付近でエンジンの回転
速度がバランスするはずである。尚スロツトルス
イツチが開いてアクセスが踏み込まれている時の
進角値は第22図に示されていない。この場合、
具体的にはマニホールド圧Pとエンジン回転速度
Nとの関数によつて決まる。この関係はADVマ
ツプとして第4図の如くROM104のアドレス
B500〜B5FFに格納されている。 ステツプ710でスロツトルスイツチが閉じて
いるかどうかを判断し、閉じている場合、ステツ
プ712でアドレス回転速度NLLより大きいか
どうかを見る。ここで大きい場合、ステツプ71
6でエンジン回転速度Nの関数として第22図に
示した点火進角Wに対応した角θが決められる。
この値Wは第22図の如く、回転速度Nが増加し
てもNLL付近では一定なので回転速度Nが増加
するほど最高トルク出力特性に比べ遅角状態とな
る。従つて出力トルクは減少する。しかし目標回
転速度NLLより大幅に大きい場合、第22図の
如く回転速度Nに対応して進角している。この領
域は高速回転でエンジンブレーキが掛けられたよ
うな場合に用いられるもので、運転の滑らかさと
排気ガス状態なども考慮して決められる。 いずれにしても回転速度NがNLLより大きい
場合は減速特性となり、そうでない場合は加速特
性となるように点火位置が定められる。 スロツトルスイツチが開いている場合、ステツ
プ718でθが圧力Pと回転速度より求められ
る。この圧力Pが規定値(ターボチヤージヤの動
作開始を示す圧)より大きい値のとき、ステツプ
718で求められたθに補正係数θCがステツプ
722で加算され、その値がθとされる。この補
正係数θCはレベル3のタスクで求められる。詳
細は後述する。 ステツプ724は点火パルスを受けてからパワ
トランジスタを含む点火コイル電流の制御部が動
作するまでの時間を補正するものであり、補正量
f(N)は第23図の如き特性になる。つまり制
御部の遅れはほぼ一定時間と考えられ、この時間
に対応したエンジン回転角をf(N)として求め、
ステツプ724でf(N)とθの加算を行ない、
この値をθTAGETとする。このθTAGETは第1
3図で説明したダイナミツクリミテーシヨンのス
テツプ532〜544で用いられる。 ステツプ726〜734は安全対策であり、ス
テツプ726で回転速度Nが最高回転速度
NMAX越えた場合ステツプ726からステツプ
734へジヤンプし、燃料ポンプをオフする。最
高回転速度NMAXを越えていない場合、ステツ
プ728で圧力の最大値を求める。これは第12
図のステツプ506〜512によりPMAXを求
めるフローと同じ動作である。圧力PがPMAX
より大きいとき、燃料ポンプをオフするためステ
ツプ734へジヤンプする。そうでない場合、燃
料ポンプをオンさせる。尚すでにオン状態のとき
さらにオンさせるよう入出力回路へデータセツト
しても問題は生じない。この後ステツプ736で
点火コイルの一次電流の流れ始め点を演算し、終
了報告(EXIT)プログラムへジヤンプしてレベ
ル1プログラムは終了する。 第24図はレベル3プログラムであり、第21
図で使用される補正量θCが求められる。ターボ
チヤージヤが動作を開始した時の圧より大きくな
つた場合、ターボチヤージヤの動作に伴い点火位
置がシフトされる。このシフト値θCは第25図
の特性より求められる。つまり吸気温度TAをパ
ラメータとし、吸気温が低い場合点火位置が進み
側にあり、吸気温が上るに従つて遅れ側に移る。
従つて補正値θCは吸気温TAが高くなるにつれて
正の大きな値となる。 第26図は第2図の制御回路EGRC168およ
びISCC164詳細図である。第2図でISCDと
EGRDの各レジスタはパルス幅を表わすもので、
レジスタ802に相当する。またISCPとEGRP
に相当するレジスタが806である。 今、モード(MODE)レジスタ172のビツ
トb0に“H”がセツトされているとする。この
ためANDゲート166(Fig2)と816が共に
動作状態である。カウンタ回路で構成されるタイ
マ804はANDゲート816からのクロツクを
計数する。この計数値Bはレジスタ806の値と
コンパレータ810で比較され、計数値Bの値が
レジスタ806の値C以上になるとタイマ804
はクリアされる。従つてタイマ804はレジスタ
806の値Cで定まる周期で計数をくり返す。 またタイマ804の計数値はレジスタ802の
値とコンパレータ808で比較される。このとき
レジスタ802の値Aがタイマ804の計数値B
より大なる条件でフリツプフロツプ812をセツ
トし、値Bが値A以上となる条件でリセツトされ
る。このためフリツプフロツプ812のセツト時
間はレジスタ802の値Aにより定まる。この値
Aを大きくすることによりフリツプフロツプ81
2のセツト時間は長くなる。 さらに上で述べた如く、タイマ804の計数は
レジスタ806のセツト値に応じた周波数で繰返
されるので、フリツプフロツプ812のセツト出
力はレジスタ806のセツト値により繰返し周期
に応じ、繰返し出力される。MODEレジスタ1
72(Fig2)のb0ビツトが“H”レベルにので
ANDゲート166を介して出力される。 MODEレジスタ172のb0を“L”にすると
ANDゲート166と816はOFFし、フリツプ
フロツプ812の出力は停止され、同時にタイマ
804への入力も停止される。 従つて第2図に示すMODEレジスタ172へ
CPUから制御データをセツトすることにより、
第26図の回路動作のスタートあるいは停止を制
御できる。第26図はMODEレジスタのb0によ
りANDゲート166と816が制御される例で
あるがb0は第2図のISCC164を制御するビツ
トである。第2図のEGRC168も第26図と同
様の構成であるが、ISCC164の動作のスター
トストツプはMODEレジスタのb0ビツトで制御
され、EGRC168はb2ビツトで制御される。 第27図は第2図IGNC156の詳細図であ
る。CPUより点火コイルの一次電流通電開始点
を制御するデータがDWLレジスタへセツトされ、
点火時期を表わすデータがADVレジスタへセツ
トされる。今DWLレジスタのセツト値をA、
ADVレジスタのセツト値をCとする。 今、MODEレスタ172のb1ビツトが“H”
であると、ANDゲート158と860は信号を
伝える状態になつており、POSパルスがANDゲ
ート860を介してカウンタ850へ入力され
る。この850のカウント値はこのため、エンジ
ンクランク角に応じて増大し、基準角を示す
REFパルスによりクリアされる。このカウント
値をBとする。カウント値が小さいときは比較器
852のA>Bの出力がORゲートを介してフリ
ツプフロツプ856へ加えられ、フリツプフロツ
プ856はリセツト状態となる。従つてANDゲ
ート158からはパルス出力が出ない。カウンタ
850のカウント値が大きくなるとDWLレジス
タの値Aよりカウンタ850のカウント値が大き
くなり、ANDゲート864を介してフリツプフ
ロツプ856はセツトされる。このセツト出力が
ANDゲート158を介しさらに第2図のANDゲ
ート160を介して点火装置に加えられ、点火コ
イルに一次コイル電流が流れる。カウント値がさ
らに高くなるとコンパレータ854のC≦B出力
よりフリツプフロツプ856は再びOFFする。
これによりANDゲート858からパルス出力は
停止し、点火のためのスパークが生じる。 第2図のDIOの詳細を第28図に示す。この図
でDDR192はDIOの入出力ポートDIO0から
DIO7を入力状態とするか出力状態とするかを決
定するものである。DDRの内“H”がセツトさ
れたビツトよりの信号がそれに対応した872〜
886のトライステートに加えられそのトライス
テートは導通状態となる。これによりDDRの
“H”のビツトに対応したDOUTのビツトは対応
しているトライステートを介して出力される。一
方ラインDIO0〜DIO7の信号はCPUよりバツフア
アンプ892〜904を介して自由に読み取るこ
とができる。トライステート872〜886の内
不導通となつているトライステートに対応したラ
インの信号は外部の状態に依存するので、このラ
インに対しては外部の状態を読み取ることができ
る。 第29図は第2図のINJC152の詳細図であ
り、クランク角センサよりのREFパルスはクラ
ンク角の上死点前の一定角(例えば80度とか、90
度)の所で生じる。クランク角の上死点(TDC)
とREFの関係を第30図のA,Bに示す。今
MODEレジスタ172のb4ビツトが“H”とな
つていると仮定するのでゲート910,912,
154(Fig2)はONしている。このため、カウ
ンタ904のカウント値は第30図Cに示す如く
REFパルス毎にクリアされる。レジスタ902
の値Aは噴射開始点を決める値をCPUより受け
て保持するレジスタである。レジスタ902の値
Aとカウント値Bは比較器906へセツトされ、
フリツプフロツプ908をセツトする。 フリツプフロツプ908がセツトされると
ANDゲート154よりパルスが送られて噴射弁
28へパルスが送られる。さらにゲート912が
開きカウンタよりなるタイマ916はクロツクパ
ルスを計数する。INJDレジスタ914は第2図
のINJDレジスタであり、このレジスタのセツト
値Cに対応する時間、弁は開弁する。すなわちタ
イマ916のカウント値DがCより小さい間はフ
リツプフロツプ920がセツトされているが、C
≦Dの条件でフリツプフロツプ920がリセツト
され、ANDゲート154からの噴射用パルスは
停止する。 このようにして燃料噴射の開始点と開弁時間が
制御できる。 さらにMODEレジスタ172のb4をゼロ(L)
にすることによりゲート154の出力および全て
の動作を停止できる。 以上説明した如く、本発明によれば、エンジン
への吸入空気の制御状態に基づく点火位置データ
をそのまま点火制御に使用するのではなく、1つ
前に実際に点火される点火位置をベースにしその
値に規定値を加算や減算することにより求める。
従つて上記1つ前に実際に点火される値に対し、
規定以上今回の点火位置が変化することがない。
このため点火位置の急変がなくなりエンジンのト
ルク変化も滑らかになる。 さらに本実施例によればエンジンへの吸入空気
の制御状態に基づく点火位置データの演算を一定
時間の経過に応じて行ない。一方この点火位置デ
ータの補正をエンジン回転に同期して行つてい
る。この為、実行時間の大部分は一定時間の経過
に応じて行なわれることとなり、コンピユータへ
の要求処理量がエンジン回転速度の変化の影響を
受けにくくなり、安定するこれによりコンピユー
タの能力の評価を高く設定でき制御能力が向上す
る。
のプログラムとして、割込分析(IRQ ANAL)
プログラムやタスクスケジユーラ(TASK
SCHDULER)プログラムや終了報告(EXIT)
プログラムがある。これらのプログラム(以下
OSと記す)は第4図の如くROM104のアドレ
スA000からアドレスA300に保持されている。尚
アドレスは16進法記載で表現されている。 さらにレベル・ゼロ・プログラムとしてAD1
の出力取込み(AD1IN)、AD2の出力取込み
(AD2IN)、エンジン回転速度出力取込み
(RPMIN)の各プログラムがあり、通常一定時
間経過割込(INTV IRQ)の10〔mSEC〕で起動
される。レベル1プログラムとして燃料制御
(INJC)、点火時期制御(IGNCAL)、通電角制
御(DWLCAL)プログラムがあり、一定時間経
過割込(INTV IRQ)の20〔mSEC〕ごとに起動
される。レベル2プログラムとして02フイードバ
ツク制御(LAMBDA)プログラムがあり、一定
時間経過割込(INTV IRQ)の40〔mSEC〕ごと
に起動される。レベル3プログラムとして補正計
算(HOSEI)プログラムがあり一定時間経過割
込(INTV IRQ)の100〔mSEC〕ごとに起動さ
れる。またバツク・グラウンド・ジヨブとして排
気環流制御(EGRCAL)とバイパスエアー制御
(ISCCAL)プログラムがある。上記レベル・ゼ
ロ・プログラムはPROG1としてそれぞれ第4図
のROM104のアドレスA600からAAFFに記憶
されている。レベル・1プログラムはPROG2と
してROM104のアドレスAB00からABFFに
記憶されている。レベル2プログラムはPROG3
としてROM104のアドレスAE00からAEFFに
記憶されている。レベル3プログラムはPROG4
としてROM104のアドレスAF00からAFFFに
記憶されている。またバツク・グラウンド・ジヨ
ブ・プログラムはB000からB1FFに保持されてい
る。なお上記プログラムPROG1からPROG4まで
の各プログラムのスタード・アドレスのリスト
(以下SETMRと記す)がB200からB2FFまでに
保持され、PROG1からPROG4までの各プログラ
ム起動周期を表わす値(以下TTMと記す)がア
ドレスB300からB3FFに記憶されている。これら
の詳細は第15図に示されている。 その他のデータは必要に応じ第4図のROMの
アドレスB400からB4FFに記憶される。それに続
いて演算のためのデータ点火時期マツプ(ADV.
MAP)や空燃比制御マツプ(AF.MAP)、排気
ガス制御マツプ(EGR.MAP)をそれぞれ記憶し
ている。 イニシヤライズプログラムを説明する。 第3図におけるイニシヤライズINITIALIZ2
04プログラムの詳細を第5図を用いて説明す
る。ステツプ282で割込(IRQ)発生時の退避
エリアを設定する。次にステツプ284でRAM
106を全てクリアする。ステツプ286で入出
力回路108のレジスタ内に初期値の設定を行な
う。この初期値設定として例えば、角度センサ1
46の計測時間の初期値やDIOの端子の入力と出
力の使い分けのDDRの設定や一定時間経割込
(INTV IRQ)発生のためのタイマの設定があ
る。 ステツプ288でADC1に起動をかけ、さらに
ADC1の終了割込(ADC1 ENDIRQ)の為の禁
止解除を行なう。この場合、ADC1に入力される
マルチプレクサ(MPX)の指定を行ない、
ADC1を起動するためのパルスを送る。これによ
り第2図のADC1のマルチプレクサMPXの入力
の1つであるバツテリ電圧検出センサVBS12
2の出力がセレクトされてADC1へ入力される。
ステツプ290へ戻つてここでADC1 END IRQ
を持つ。ADC1の変換動作が完了し、REG134
へデイジタル値がセツトされるとステータス・レ
ジスタSTAUS198へADC164の動作完了が
報告され、ADC1 END IRQがCPU102へ入
力される。これによりプログラムAD1 INが実行
され、バツテリ電圧センサ132の出力が取り込
まれる。 ステツプ292でセンサ122から82の出力
を全て取り込んだかを確認する。この場合センサ
122の入力の取り込みが完了されただけなの
で、ステツプ288へ戻る。このステツプ288
でマルチプレクサ(MPX)162は次の入力で
あるセンサ74の出力をセレクトする。水温セン
サ74の出力のアナログ・デイジタル変換が完了
すると再び、ステツプ290でプログラムAD1
IN(取り込み)が実行され、レジスタREG134
内に保持されている水温センサTWS74の出力
のデイジタル値が取り込まれてROM104のデ
ータ(DATA)エリアに保持される。ステツプ
292で再びステツプ288へ戻される。このよ
うにステツプ288からステツプ292のループ
を回ることによりセンサ122から82の出力の
デイジタル値が次々に取り込まれ、排気ガスセン
サであるλS82の出力値の取り込みが完了する
と、ステツプ294へ進む。 ステツプ294で始動時の点火時期の演算と設
定を行なう。この点火時期θADV(ST)はエンジ
ンの冷却水温TWの関数として演算する。この関
数を第7図に示す。第7図の特性に従つてθADV
(ST)を演算し、この演算された結果は第2図
IGNC156のレジスタADVにセツトされる。 ステツプ296で始動時のエアー・バイパス・
バルブ14の初期値の演算を行う。この演算は第
9図に示す特性に基づいて行なわれ、その演算出
力は制御回路ISCC164のレジスタISCDにセツ
トされる、尚ISCPについても固定値がセツトれ
る。この固定値は制御弁の特性で定まる値であ
る。第8図の特性はINJDのセツト値の特性図で
ある。 ステツプ298で燃料噴射時間であるオン・デ
ユーテイの初期値が演算される。この演算値は第
8図により行なわれるものであり、制御回路15
2のレジスタINJDに設定される。レジスタ
INJDのセツトにより、第3図のイニシヤライズ
(INITIALIZ)プログラム204の実行を終了す
る。 次に監視プログラム206を説明する。第6図
にMONITプログラム206を示す。MONITプ
ログラム206はステツプ302より開始され、
ステツプ302で第1図のスタータ・スイツチ6
6がON状態かどうかDIOのDIO5入力を監視する
ことにより行なわれる。もしスタータ・スイツチ
66がON状態であるとDIOの第5ビツトDIO5が
“H”となつている。また逆にOFFしていると
“L”となつている。今エンジンの始動前である
とするとスタータ・スイツチはOFFであり、ス
テツプ302からステツプ312へ進み、ここで
始動後かどうかを判断する。この判断は例えばス
タータ・フラグが立つているかどうかを判断す
る。このスタータ・フラグはステツプ308で立
てられるものである。このスタータ・フラグは
RAM内の所定位置にセツトされる。始動前はス
タータ・フラグが立つていないので、ステツプ3
12でNOとなり、再びステツプ302へ戻る。
スタータ・スイツチ152がONされるまでステ
ツプ302のNOからステツプ312のNOを通
つてステツプ302へ戻るルートを回る。このル
ートを回りながら、スタータ・スイツチの監視を
行なう。 スタータ・スイツチがONするとステツプ30
2で判断がYESとなり、ステツプ304へ進む。
ここで、既にスタータ・スイツチがONしていた
かどうかを判断する。初めてステツプ304へ進
んだ場合はスタータ・スイツチのONを検出した
直後であり、スタータフラグが立つていないので
ステツプ304で判断がNOとなる。スタータ・
フラツグの立つていない時は判断をNOとしてス
テツプ306へ進み、始動の為の準備がされる。
例えば本実施例では、フユーエル・ポンプ190
の起動のためにDIOのDOUTレジスタ194の
第ゼロ・ビツトに“H”をセツトする。これによ
りフユーエル・ポンプの電源が入る。次にステツ
プ306で、DOUTレジスタ194の第1ビツ
トを“H”とする。これによりIGNC回路156
の出力に設けられているANDゲート160が動
作状態になる。実際にはDOUTレジスタ194
の第ゼロビツトと第1ビツトのセツトは同時に行
なわれる。 ステツプ308で一定時間経過割込(INTV
IRQ)の禁止解除がなされる。この一定時間経過
割込(INTV IRQ)の禁止解除は例えば第2図
のMASKレジスタ196の第4ビツトを“H”
にすることにより行なう。さらにステツプ308
でスタータ・フラグを立てる。このスタータ・フ
ラグは既にスタータ・スイツチがONであること
を示していて、ステツプ304とステツプ312
でこのフラグを判断に用いる。 ステツプ310で入出力回路108の出力系で
ある制御回路INJCと制御回路IGNCと制御回路
ISCCと制御回路EGRCの出力端のANDゲートを
動作状態にするため、後で説明するモード・レジ
スタ172に“H”をセツトする。これにより各
制御装置へパルス出力が送られる。ステツプ31
0からステツプ302へ戻り、ステツプ302で
スタータ・スイツチ152がONかどうかが判断
される。始動中はスタータ・スイツチがONであ
り、YESからステツプ304へ進む。このステ
ツプ304で、スタータ・フラグをチエツクし、
フラグが立つていれば既にスタート中であるとし
てステツプ302へ戻る。 このようにスタータ・モータが駆動されている
間は、ステツプ302のYESと304のYESと
から作られるループを回つている。 エンジンが始動されるとスタータ・スイツチ1
52がOFFとなるので、ステツプ302の判断
はNOとなり、ステツプ312へ進む。ステツプ
312でスタータ・フラグがチエツクされ、スタ
ータ・フラグが立つているのでステツプ314へ
進む。このステツプ314で、エンジン停止の検
知と処理の禁止解除の為にエンスト・フラグがセ
ツトされ、このステツプ314以降エンジンの停
止はINTVIRQとINTLIRQ処理プログラムのエ
ンジンの停止検知ステツプで検知できる。 次にバツク・グラウンド・ジヨブのプログラム
208へ進む。このプログラムを第10図に詳述
する。 図において、ステツプ410でスロツトル・ス
イツチ76がONかどうかが判断される。もし
ONであれば排気ガス環流制御は行なわれない。 従つてステツプ412へ進み、ここでレジスタ
EGRDにゼロをセツトする。このことにより
EGR弁62の開弁率はゼロになる。一方ステツ
プ414でISCDに所定の値をセツトする。この
ため、レジスタISCDにセツトされた値に応じて
第1図のエアー・バイパス・バルブ14が制御さ
れる。バイパス通路の空気流量を制御するエア
ー・バイパス・バルブ14は特定の運転状態に応
じて制御される。すなわち気温の低い冬季の運
転、エンジンの冷えている始動時の運転およびエ
ンジンに負荷のかかるカーエアコンデンシヨナー
を使用中の運転等の場合にはバイパス通路の空気
流量を増加させる。ステツプ414で冷却水温に
応じてエアー・バイパス・バルブ14のデユーテ
イがレジスタISCDに設定される。この値に応じ
てアイドル時のエンジン回転速度が制御される。
このステツプ414の終了により再び410へ進
み、このフローを繰り返す。 一方スロツトル・スイツチ76がオンでない状
態ではエアーソレノイドバルブ22は閉弁され
ず、代りに排気ガス環流制御が行なわれる。この
ためにステツプ418でレジスタISCDにゼロを
セツトする。ステツプ422で冷却水温が一定値
例えばTA℃より高いかどうかを判断し、もし高
ければEGRを掛けないようにする。このためス
テツプ426でEGRCUTを行うための値ゼロを
設定する。またステツプ422で冷却水温が一定
値(TA℃)より低い値であればステツプ424
へ進む。ステツプ424で冷却水温がTB℃より
低いかどうかを判断する。もし低い場合、やはり
EGRを掛けないのでステツプ426でEGRCUT
を行う値ゼロを設定する。これらの値はステツプ
430でEGRDレジスタにセツトされる。 一方冷却水温TWがTB度より高くTA度より
低い場合EGRを行う。このときのEGR量は圧力
センサ78の出力VCとエンジン回転速度Nで定
まる。出力VCとNとによるEGR量のマツプは第
4図のROMのアドレスB700〜B7FFに設けられ
ており、このマツプから検索してEGR量を定め
る。ステツプ428で検索を行い、この値をステ
ツプ430でレジスタEGRDへセツトする。この
レジスタEGRDのセツト値に応じて第1図に示し
たEGR装置62は駆動される。 第10図に示したフローチヤートでは、ステツ
プ430あるいはステツプ414の終了により、
再びステツプ410へ戻る。このようにすること
によりコンピユータはエアー・バイパス・バルブ
14を制御するためのステツプ410からステツ
プ414までのフローチヤートかあるいはステツ
プ418からステツプ430までのステツプのフ
ローチヤートを常に実行できる。従つて割込
(IRQ)などの発生が生じないものとすれば、点
202よりスタートしたプログラムはイニシヤラ
イズ(INITIALIZ)プログラム204、監視
(MONIT)プログラム206を通つてバツク・
グラウンド・ジヨブ208であるISCプログラム
あるいはEGRCALプログラムを常に実行し続け
ることになる。 監視(MONIT)プログラム206やバツク・
グラウンド・ジヨブ208は割込(IRQ)を発生
させてその処理を中断できるようになつており、
割込(IRQ)による処理が終了すると再び上記プ
ログラムの実行を再開する。 次に第3図における割込(IRQ)の発生に基づ
く処理の説明を行なう。割込(IRQ)の要因分析
のプログラム224はADC1END IRQ226の
処理とADC2 END IRQ228の処理とINTV
IRQ230の処理と、INTL IRQ232の処理
とからなつている。ここで各プログラム226,
228,230,232のそれぞれを実行するた
めには先ず、割込(IRQ)に基づくサービスの要
求内容は何かを調べる。このため第2図のステー
タス(STA TUS)レジスタ198の内容が調
べられる。このステータス(STA TUS)レジ
スタの内容を見ることにより、割込(IRQ)の発
生要因が判明する。この発生要因に応じて上記各
プログラム226,228,230,232を実
行し、これによりタスク(TASK)252,2
54,256,258,262の内の実行が必要
なタスク(TASK)に起動要求(QUEUE)を出
す。 但し、割込(IRQ)の発生を多くすると管理プ
ログラム(以下OSと記す)の実行時間が多くな
り実質的なエンジン制御の為の演算時間がとれな
くなる欠点がある。従つてこの実施例では、
ADC1END IRQ228はイニシヤライズ
(INITIALIZ)あるいは監視(MONIT)プログ
ラム204と206の実行中のみ発生させ、その
他は発生させない。つまり監視(MONIT)プロ
グラム206の第6図で示したステツプ314で
第2図のマスク(MASK)レジスタ196に
ADC1END IRQの禁止命令である“L”をセツ
トする。またADC2END IRQ226は最初から
発生させない、つまりスタート点である202で
全ての割込みが禁止されるように入出力回路のゼ
ネラル・リセツト信号でIRQ発生禁止状態になる
ようにマスク(MASK)レジスタをセツトする。
その後割込(IRQ)禁止解除の命令を出さないよ
うにすることによりADC2END IRQの発生を禁
止する。 プログラム224の具体例を第11図〜第14
図に示す。割込(IRQ)の入口222よりステツ
プ450においてADC1END IRQでないことが
判断されると、ステツプ452へ行く。一方割込
(IRQ)の発生要因がADC1END IRQかどうかを
判断し、そうであればステツプ450よりイニシ
ヤライズ(INITIALIZ)プログラムのステツプ
290へジヤンプする。ADC1 END IRQが発生
するのはこの実施例では第5図のイニシヤライズ
(INITIALIZ)プログラム204の実行中のみで
ある。それ以外の状態ではADC1END IRQは禁
止される。ステツプ450の判断が“NO”の場
合ステツプ452へ進む。 ステツプ452で割込(IRQ)の要因が一定周
期で発生する一定時間経過割込(INTV IRQ)
かどうかを判断する。“YES”の場合、ステツプ
454へ進む。ステツプ454からステツプ45
8は第12図のステツプ482と組合せられてエ
ンジンの停止状態を検知する。既、ステツプ45
4で、エンジン停止状態を検知すべきかどうか
を、エンスト検知フラグがセツトされているかど
うかにより判断する。エンジン停止の検知が必要
な場合のみこのエンスト検知フラグがセツトされ
ている。ステツプ454でこのフラグがリセツト
の場合、エンジンの停止検知は行なわず、ステツ
プ460へ進む。一方フラグがセツトされている
場合、エンジン停止の検知を行なう為にステツプ
456へ進む。 このステツプでエンジン出力軸の基準回転角で
発生するREF信号からの時間経過を計測するた
めエンストカウンタのカウント値を更新する。こ
のエンストカウンタは基準回転角を表わすREF
信号毎にクリアされるので、エンストカウンタ値
は前のREF信号発生からの時間経過を表わす。
ステツプ458でエンストカウント値が規定値に
達している場合、エンジンが停止したと判断さ
れ、ステツプ474へ進みエンストタスク
(ENSTTASK)(第14図)を実行する。 エンストタスク(ENSTTASK)の内容は、
燃料ポンプ24を停止させるために第2図の
DIOOを“H”から“L”に変更すること、第2
図のANDゲート154,158,166,17
0を停止状態にするためにモード(MODE)レ
ジスタ172に“L”とセツトすることおよびプ
ログラムシステムのスタート点202へジヤンプ
することである。 またステツプ458でエンジンが停止していな
いと判断されるとステツプ460へ進む。ステツ
プ460からステツプ470はタスク・レベル・
ゼロからタスク・レベル3までのプログラムが起
動タイミングに達したかどうかの判断をする機能
を持つ。先ずタスク・レベル・ゼロを調べる。そ
の為にステツプ460でタスクコントロールワー
ド(TCW)の番号nを表わすRAM内の所定の
アドレスの内容をゼロにする。タスク・レベル・
ゼロのタスク・コントロール・ワードすなわち第
15図のRAM106内のTCW0のビツトb0〜b5
で構成されているカウンタ0をプラス1だけイン
クリメントする。このように本実施例では加算法
を採用したが、減算法を採用することも可能であ
る。ステツプ462でTCW0のカウンタの値と第
15図のタスク起動タイマTTM0の値とを比較
する。ここでTTM0には“1”が入つている。
ここで一定時間経過割込(INTV IRQ)は10
〔mSEC〕毎に発生するものとしているので、
TTM0に“1”が入つていることはタスク・レ
ベル・ゼロ・プログラム(第3図の252)10
〔mSEC〕毎に起動されることを表わしている。
第15図のTCW0のカウンタ(CNTR0)と
TTM0をステツプ464で比較し、一致する場
合“YES”へ進む。この場合は一致するのでス
テツプ466へ進み、タスク・コントロール・ワ
ードTCW0のビツトb6にフラグ“1”を立てる。
この実施例では各TCWのb6はそのタスクの起動
要求(QUEUE)のフラグとなる。ステツプ46
6でさらにTCW0のb6にフラグ“1”を立てた
のでこのTCW0のb0〜b5に設けられたカウンタ
CNTR0をクリアする。ステツプ468でTCW
のnをインクリメントする。すなわちステツプ4
68でタスク・レベル・ゼロからタスク・レベル
1の起動タイミング検索に移る。ステツプ470
でタスク・レベル3の終了かを判断する。つまり
n=4かを判断する。この場合n=1であるの
で、ステツプ462へ戻る。ステツプ462でタ
スク・レベル1のプログラムのタスク・コントロ
ール・ワードである第15図のRAM106内の
TCW1のカウンタCNTR1の内容を“+1”イン
クリメントする。ステツプ464で、第15図の
ROM104のTTM1と比較する。この実施例で
はTTM1の内容は“2”である。つまりタス
ク・レベル1の起動タイミングは20〔mSEC〕で
ある。今カウンタCNTR1の内容が“1”である
と仮定すると464の判断は“NO”つまりタス
ク・レベル1プログラム254は起動タイミング
ではないことが判断され、ステツプ468へ進
む。ここで再び検索されるタスク・レベルが更新
され、次はタスク・レベル2となる。同様にして
タスク・レベル3まで終了すると、ステツプ46
8でn=4となり、ステツプ470でn=
nMAX(4)の条件が満足される。そしてタスク・
スチジユーラ242へ進む。 ステツプ452で一定時間経過割込(INTV
IRQ)でなければステツプ472へ進む。ここで
エンジンの出力軸の基準回転角毎に発生する基準
角割込(INTL IRQ)かどうかを判断する。こ
の場合かならずYESになるはずであるがもしノ
イズ等で誤動作した場合ステツプ472でNOと
なり、割込前の状態へ戻る。一方基準角割込
(INTL IRQ)の場合、第12図のステツプ48
2へ進む。ここで第11図のステツプ456,4
58と組合せられてエンジンの停止状態を検知す
る。すなわちエンストカウンタをステツプ482
でクリアする。 ステツプ484で燃料ポンプが動作中かどうか
を判断し、もし停止していれば、エンジン出力軸
が基準回転角まで回転したことであるのでステツ
プ490で第2図のDIOのDIOOを“H”にする
ことにより燃料ポンプを動作状態にする。 ステツプ502で、点火時期の急変に基づくエ
ンジントルクの急変を防止するための処理を行な
う。以下ダイナミツクリミテーシヨン
(DYNAL)と記す。その詳細は第13図を用い
て後述する。 ステツプ504でエンジン回転数の読出しを行
ない、最高回転数nMAXを越えているかどうか
を判断する。nMAXを越えている場合、エンジ
ンの出力トルクを低下させる為にステツプ510
へ進む。ステツプ520〜524は点火動作の間
引を行うステツプである。つまり第2図のAND
ゲート160を間欠的に動作状態とする。ステツ
プ520でDIO1の出力が“H”かどうかを判断
し、“H”の場合は点火を停止する為にステツプ
522でDIO1を“L”にする。そうでない場合
はステツプ524でDIO1を“H”にする。 これにより間欠的に点火が行なわれる。 ステツプ506〜514でインテークマニホー
ルド内の圧力Pが最高圧力PMAXを越えている
かどうかを判断する。圧力がPMAXを越えると
危険である。このPMAXはエンジン回転速度に
対し、第18図の如き特性になつている。この第
18図の特性は例えばNA〜NMの各エンジン回
転速度のバンドに分けられて、その各バンドへ内
のPMAX値の最低値をそのバンドの代表値とし
て選び、第19図に示す如く、ROMのアドレス
のB800〜B80Dに記憶されている。 先ず、ステツプ506で番号Zをゼロにする。
このZは上記NA〜NMのバンドの順番を表わし
ている。ステツプ508で先頭番地B80E+Zの
番地からバンドの境界値を読出す。つまり最初は
バンドNAとNBの境界NOの値がアドレスB80E
より読出される。したがつてステツプ508でエ
ンジン回転速度nとアドレスB804に記憶されて
いるバンドNAとNBとの境界の回転速度値とが
比較される。エンジン回転速度nがこの境界値よ
り大きい場合ステツプ510へ進み、Zがインク
リメントされる。これにより実際の回転速度nと
比較される値は番地B80Fから読出されたN1の値
に移る。このN1の値はバンドNBとバンドNCと
の境界値である。このようにして実際のエンジン
回転速度nが、次々に読出される境界値と比較さ
れ、そのつど番号Zがインクリメントされる。そ
の境界値より実際のエンジン回転速度の値nが小
さくなつた時点でステツプ508からステツプ5
12へ進む。ステツプ512でこのバンド順番を
意味するZの値が用いられ、アドレスB800から
何番目かがZの値で決められ、最大圧力がB800
+Zのアドレスより読み出される。この最大圧力
PMAXと測定圧力Pが比較され、この最大圧力
PMAXを越えている場合エンジントルクを減少
させるためにステツプ520へ進む。一方マニホ
ールド圧が最大圧より小さい時はDIOのDIO1出
力を“H”とし、ANDゲート160(第2図)
を動作状態とする。そしてタスクスケジユーラプ
ログラムへ進む。 ダイナミツクリミテーシヨンプログラム
(DYNAL)を説明する。 第13図は第12図のダイナミツクリミテーシ
ヨンプログラム(DYNAL)の詳細フローチヤー
トである。後述するレベル1プログラム中の表1
に示したIGNCALプログラムにより点火時期の
目標値θTARGETが計算される。この目標値と
前回の点火時期であるθ(t−1)との差がステ
ツプ532で計算される。この差Δθの大きさが
一定幅ΔQMAXより大きいかをステツプ534
で判断し、このΔθKAXより大きくない場合、目
標値と前回の点火時期との差が小さいとの理由
で、ステツプ536で、目標値θTARGETを今
回の点火時期とする。 一方ステツプ534で目標値と前回の点火時期
との差が大きいと判断された場合、ステツプ53
8と540と542で一定角のみ目標値に近ずけ
る処理を行なう。すなわち目標値θTAGETが前
回の点火時期に対し、大きいか小さいかを判断す
る。この目標値や、前回の点火位置θ(t−1)
はこの実施例では点火位置より前の基準回転角か
ら点火角までの間のセンサ80からの単位パルス
であるPOSパルスの数で表わされる。従つて、
θTAGET>θ(t−1)の条件が満足されること
は点火時期が遅れ側に移す必要があることを意味
し、そうでない場合は進み側に移す必要があるこ
とを意味している。 ステツプ538で、目標値θTAGETが前回の
点火位置θ(t−1)より大きい場合、今回行う
点火位置を目標値に近づきる為に一定値Δθ1のみ
加算した値θ(t−1)+Δθ1を今回の点火位置θ
(t)とする。一方そうでない場合、θ(t−1)
から一定値Δθ2を減じたθ(t−1)−Δθ2が今回
の点火位置θ(t)とされる。ステツプ544で、
ステツプ536,540,542のいずれかで求
められたθ(t)を第2図の入出力回路108の
IGNC156のレジスタADVへセツトされる。
そして第12図のステツプ504へ続く。 第14図はエンストタスク(ENST TASK)
の詳細フローチヤートであり、第11図のステツ
プ474の詳細である。このステツプ474で説
明した如く、燃料ポンプを停止し、第2図の入出
力回路108の出力を全て停止するためにモード
レジスタ(MODE)172に“L”をセツトす
る。その後スタート点202のアドレスへジヤン
プする。 第16図はタスク・スケジユーラ242の詳細
フローチヤートであり、ステツプ560でタス
ク・レベルnの実行が必要かを判断する。最初は
nをクリアし、このためn=0である。タスク・
レベル・ゼロのプログラムの実行の必要について
判断する。すなわち、優先順位の高いタスクから
順に起動要求(QUEUE)の存在を調べてゆく。
これは第15図のRAM106のタスク・コント
ロール・ワードTCWのb6とb7を検索することに
より判断できる。b6は起動要求フラグでここに
“1”が立つていると起動要求が“有り”である
ことがわかる。またb7には実行中を示すフラグ
であり、ここに“1”が立つていると実行中であ
り現時点では中断されていることを示す。従つて
b6とb4の少なくともどちらかに“1”があれば
実行要となりステツプ568へ進む。 ステツプ568でb7のフラグを判断し、b7が
“1”であれば実行中断中であり点570よりそ
の中断していたタスクの実行を再開する。b6と
b7の両方にフラグが立つていてもやはりステツ
プ568の判断は“YES”となり、中断中のと
ころのプログラムから再開する。b6のみが“1”
の場合、そのレベルの起動要求フラグつまりb6
をステツプ572でクリアして、ステツプ574
でb7のフラグ(以下RUNフラグと記す)をセツ
トする。ステツプ572と574はそのタスク・
レベルの起動要求状態から実行状態に進んだこと
を示す。ステツプ578でそのタスク・レベル・
プログラムのスタート・アドレスを検索する。こ
れは第15図に示したROM104の内に各タス
ク・レベルのTCWに対応させて設けられたスタ
ートアドレステーブルTSAより求められ、つま
りステツプ560でのタスクレベルnの値に第1
5図に示したROM104内のタスクスタートア
ドレステーブル(TASK START ADDRESS)
の先頭番地を加算した(n+TASK・START・
ADDRESSの先頭番地)の式から読出し番地を
決め、この番地の記憶内容をスタートアドレスと
してこのスタート・アドレスへジヤンプすること
によりそのタスクの実行が行なわれる。 第16図へ戻つてステツプ560で“NO”と
判断された場合、この場合は検索のタスク・レベ
ルのプログラムには起動要求がでていなくしか
も、実行中断でもないことを示している。この場
合次のタスク・レベルの検索にうつる。つまりタ
スク・レベルのnがn+1となつてレベルが1つ
移動する。ここでnがMAXつまりここでは4で
あるかを見、4でなければ再びステツプ560へ
進む。これを繰り返し、n=4となると点566
よりバツク・グラウンド・ジヨブの中断点へ戻
る。つまり点566ではタスク・レベル・ゼロ〜
3までの全てのプログラムに実行の必要がないこ
とが判明したことになり、IRQの発生前のバツ
ク・グラウンド・ジヨブの中断点へ戻る。 第15図は上で述べたタスク・コントロール・
ワードTCWとROM内のタスク・起動周期を表
わすTTM、タスク・スタート・アドレス・テー
ブルの関係を示したものである。タスク・コント
ロール・ワードTCWの0〜3に対応してROM
内にタスク起動周期TTMがあり、一定時間経過
割込(INTV IRQ)ごとにTCWのカウンタ
CNTR0〜3が各々に更新され、各タスクの
TTMと一致したことにより、そのTCWのb6に
フラグが立つ、このフラグにより次にROM内の
タスク・スタート・アドレスTSAよりそのタス
クのスタート・アドレスが検索され、そのスター
ト・アドレスへジヤンプすることによりプログラ
ム1〜4の選ばれたプログラムが実行される。こ
の実行中はRAM106内のそのプログラムに対
応したTCWのb7にフラグが立つ。このフラグが
立つている間は実行中であることが判断できる。
このようにして第3図のタスク・スケジユーラ2
42により、レベル0〜3のプログラムが実行さ
れる。そして例えばレベル0〜3までのプログラ
ム252〜258のいずれかが実行されている時
に割込(IRQ)が発生すれば再びそのタスクを中
断して割込(IRQ)の処理になる。今割込
(IRQ)が発生により実行が開始されたタスクは
やがてその処理を終了する。これにより終了報告
を行うため、終了報告(EXIT)プログラム26
0へジヤンプする。 この終了報告(EXIT)プログラムの詳細を第
17図に示す。このプログラムは、終了タスクを
見つけるためのステツプ592と594からな
る。このステツプ592と594で先ずタスク・
レベルのゼロより検索し、終了したタスク・レベ
ルを見つける。これによりステツプ596へ進
み、ここで終了したタスクのタスク・コントロー
ル・ワード(TCW)のb7のフラグ(RUNフラ
グ)をリセツトする。これによりそのプログラム
の実行が完全に終つたことになる。そして再びタ
スク・スケジユーラへ戻り、次の実行プログラム
が決定される。 第20図はレベル0プログラムである。このプ
ログラムや第1表に示す通り、10ミリ・セツク毎
に起動要求が出される。ステツプ650でADC1
のデータの取込みを行ない、654で次の取込デ
ータを選択し、ステツプ656でADC1の次のデ
ータを取り込むための起動をかける。また652
のステツプは始動前にADCEND IRQを使用する
ためであり、始動前のフラグが立つている場合、
始動前であるため割込中断の再開(RTI)つまり
中断しているプログラムへ戻る。このプログラム
は第5図のイニシヤライズ(INITIALIZ)プロ
グラム204である。ステツプ658でAD2の
データであるインテークマニホールド圧Pを取り
込み、さらにステツプ670でADC2の次のデー
タ取り込みのための起動をかける。ステツプ67
2でエンジン速度を取り込む。この後、ステツプ
674で始動は完了したかどうか判断する。始動
完了であればステツプ682へジヤンプする。一
方そうでない場合はステツプ676で始動前か始
動中かを判断する。エンジンの測定速度Nが始動
回転速度に達していなければ始動前であり、ステ
ツプ682へジヤンプする。始動中であればステ
ツプ678へ移り、第2図の入出力回路108の
出力禁止を解除するためにモード(MODE)レ
ジスタ172に“H”をセツトする。そして始動
中を示すフラグをセツトする。尚このレベル
(LEVEL)ゼロタスクは10mSEC毎に起動要求が
出されるので、ほぼ10mSEC毎に実行される。従
つて始動中は10mSEC毎にステツプ678や68
0が実行される。一度セツトした後同じ主旨のフ
ラグやデータをセツトしても実害は起らない。ス
テツプ680で基準回転角割込(INTL IRQ)
を受付可能にするために、第2図のマスク
(MASK)レジスタ196へ“H”フラグをセツ
トし、さらにエンジン停止の検知を行なう為にエ
ンスト検知フラグをセツトする。この検知フラグ
は第11図のステツプ454で使用される。ステ
ツプ682と684でエンジン回転速度がアイド
ル回転値NLLより大きい場合NLLフラグをセツ
トする。 ステツプ686で始動が完了したかどうかを判
断する。測定値Nが始動完了と判断できる回転速
度より大きい場合は始動完と判断し、始動完フラ
グをセツトする。そうでない場合はNLLフラグ
をリセツトする。そしてこのレベル(LEVEL)
ゼロタスクは終了し、その終了報告を行なう為、
終了報告(EXIT)プログラム260へジヤンプ
し、第15図のRAM106TCW0のb7ビツトの
フラグをクリアする。 第21図はレベル1プログラムであり、ステツ
プ702で始動中かどうかを判断する。始動中の
場合、始動中の燃料を供給し、さらに点火時期を
決定するので、これらの計算の為にステツプ70
4へ進む。このステツプ704でエンジン冷却水
温の値TWに基づいて始動燃料を決定する。また
ステツプ706でエンジン回転速度Nと水温TW
とに基づいて点火位置θを決定する。 一方始動中でない場合はステツプ708でイン
テークマニホールド圧Pとエンジン速度Nとから
燃料供給量を求めて第2図の制御回路INJC15
2のINJDレジスタへセツトする。次にステツク
710〜724は点火位置の演算フローチヤート
である。ここで制御される点火進角値Wはエンジ
ン回転速度Nに対し第22図の如き特性になる。
つまりアイドル回転速度NLL値より低くなると
進角値W2に向けて進角させる。これによりトル
ク出力を増加させてエンジン回転数を目標値
NLLに近づける。尚目標回転速度NLLでは進角
量が少くW1値であり、エンジン回転速度に対し
点火進み角が少ないのでトルク出力が少い。従つ
て目標回転速度NLL値の付近でエンジンの回転
速度がバランスするはずである。尚スロツトルス
イツチが開いてアクセスが踏み込まれている時の
進角値は第22図に示されていない。この場合、
具体的にはマニホールド圧Pとエンジン回転速度
Nとの関数によつて決まる。この関係はADVマ
ツプとして第4図の如くROM104のアドレス
B500〜B5FFに格納されている。 ステツプ710でスロツトルスイツチが閉じて
いるかどうかを判断し、閉じている場合、ステツ
プ712でアドレス回転速度NLLより大きいか
どうかを見る。ここで大きい場合、ステツプ71
6でエンジン回転速度Nの関数として第22図に
示した点火進角Wに対応した角θが決められる。
この値Wは第22図の如く、回転速度Nが増加し
てもNLL付近では一定なので回転速度Nが増加
するほど最高トルク出力特性に比べ遅角状態とな
る。従つて出力トルクは減少する。しかし目標回
転速度NLLより大幅に大きい場合、第22図の
如く回転速度Nに対応して進角している。この領
域は高速回転でエンジンブレーキが掛けられたよ
うな場合に用いられるもので、運転の滑らかさと
排気ガス状態なども考慮して決められる。 いずれにしても回転速度NがNLLより大きい
場合は減速特性となり、そうでない場合は加速特
性となるように点火位置が定められる。 スロツトルスイツチが開いている場合、ステツ
プ718でθが圧力Pと回転速度より求められ
る。この圧力Pが規定値(ターボチヤージヤの動
作開始を示す圧)より大きい値のとき、ステツプ
718で求められたθに補正係数θCがステツプ
722で加算され、その値がθとされる。この補
正係数θCはレベル3のタスクで求められる。詳
細は後述する。 ステツプ724は点火パルスを受けてからパワ
トランジスタを含む点火コイル電流の制御部が動
作するまでの時間を補正するものであり、補正量
f(N)は第23図の如き特性になる。つまり制
御部の遅れはほぼ一定時間と考えられ、この時間
に対応したエンジン回転角をf(N)として求め、
ステツプ724でf(N)とθの加算を行ない、
この値をθTAGETとする。このθTAGETは第1
3図で説明したダイナミツクリミテーシヨンのス
テツプ532〜544で用いられる。 ステツプ726〜734は安全対策であり、ス
テツプ726で回転速度Nが最高回転速度
NMAX越えた場合ステツプ726からステツプ
734へジヤンプし、燃料ポンプをオフする。最
高回転速度NMAXを越えていない場合、ステツ
プ728で圧力の最大値を求める。これは第12
図のステツプ506〜512によりPMAXを求
めるフローと同じ動作である。圧力PがPMAX
より大きいとき、燃料ポンプをオフするためステ
ツプ734へジヤンプする。そうでない場合、燃
料ポンプをオンさせる。尚すでにオン状態のとき
さらにオンさせるよう入出力回路へデータセツト
しても問題は生じない。この後ステツプ736で
点火コイルの一次電流の流れ始め点を演算し、終
了報告(EXIT)プログラムへジヤンプしてレベ
ル1プログラムは終了する。 第24図はレベル3プログラムであり、第21
図で使用される補正量θCが求められる。ターボ
チヤージヤが動作を開始した時の圧より大きくな
つた場合、ターボチヤージヤの動作に伴い点火位
置がシフトされる。このシフト値θCは第25図
の特性より求められる。つまり吸気温度TAをパ
ラメータとし、吸気温が低い場合点火位置が進み
側にあり、吸気温が上るに従つて遅れ側に移る。
従つて補正値θCは吸気温TAが高くなるにつれて
正の大きな値となる。 第26図は第2図の制御回路EGRC168およ
びISCC164詳細図である。第2図でISCDと
EGRDの各レジスタはパルス幅を表わすもので、
レジスタ802に相当する。またISCPとEGRP
に相当するレジスタが806である。 今、モード(MODE)レジスタ172のビツ
トb0に“H”がセツトされているとする。この
ためANDゲート166(Fig2)と816が共に
動作状態である。カウンタ回路で構成されるタイ
マ804はANDゲート816からのクロツクを
計数する。この計数値Bはレジスタ806の値と
コンパレータ810で比較され、計数値Bの値が
レジスタ806の値C以上になるとタイマ804
はクリアされる。従つてタイマ804はレジスタ
806の値Cで定まる周期で計数をくり返す。 またタイマ804の計数値はレジスタ802の
値とコンパレータ808で比較される。このとき
レジスタ802の値Aがタイマ804の計数値B
より大なる条件でフリツプフロツプ812をセツ
トし、値Bが値A以上となる条件でリセツトされ
る。このためフリツプフロツプ812のセツト時
間はレジスタ802の値Aにより定まる。この値
Aを大きくすることによりフリツプフロツプ81
2のセツト時間は長くなる。 さらに上で述べた如く、タイマ804の計数は
レジスタ806のセツト値に応じた周波数で繰返
されるので、フリツプフロツプ812のセツト出
力はレジスタ806のセツト値により繰返し周期
に応じ、繰返し出力される。MODEレジスタ1
72(Fig2)のb0ビツトが“H”レベルにので
ANDゲート166を介して出力される。 MODEレジスタ172のb0を“L”にすると
ANDゲート166と816はOFFし、フリツプ
フロツプ812の出力は停止され、同時にタイマ
804への入力も停止される。 従つて第2図に示すMODEレジスタ172へ
CPUから制御データをセツトすることにより、
第26図の回路動作のスタートあるいは停止を制
御できる。第26図はMODEレジスタのb0によ
りANDゲート166と816が制御される例で
あるがb0は第2図のISCC164を制御するビツ
トである。第2図のEGRC168も第26図と同
様の構成であるが、ISCC164の動作のスター
トストツプはMODEレジスタのb0ビツトで制御
され、EGRC168はb2ビツトで制御される。 第27図は第2図IGNC156の詳細図であ
る。CPUより点火コイルの一次電流通電開始点
を制御するデータがDWLレジスタへセツトされ、
点火時期を表わすデータがADVレジスタへセツ
トされる。今DWLレジスタのセツト値をA、
ADVレジスタのセツト値をCとする。 今、MODEレスタ172のb1ビツトが“H”
であると、ANDゲート158と860は信号を
伝える状態になつており、POSパルスがANDゲ
ート860を介してカウンタ850へ入力され
る。この850のカウント値はこのため、エンジ
ンクランク角に応じて増大し、基準角を示す
REFパルスによりクリアされる。このカウント
値をBとする。カウント値が小さいときは比較器
852のA>Bの出力がORゲートを介してフリ
ツプフロツプ856へ加えられ、フリツプフロツ
プ856はリセツト状態となる。従つてANDゲ
ート158からはパルス出力が出ない。カウンタ
850のカウント値が大きくなるとDWLレジス
タの値Aよりカウンタ850のカウント値が大き
くなり、ANDゲート864を介してフリツプフ
ロツプ856はセツトされる。このセツト出力が
ANDゲート158を介しさらに第2図のANDゲ
ート160を介して点火装置に加えられ、点火コ
イルに一次コイル電流が流れる。カウント値がさ
らに高くなるとコンパレータ854のC≦B出力
よりフリツプフロツプ856は再びOFFする。
これによりANDゲート858からパルス出力は
停止し、点火のためのスパークが生じる。 第2図のDIOの詳細を第28図に示す。この図
でDDR192はDIOの入出力ポートDIO0から
DIO7を入力状態とするか出力状態とするかを決
定するものである。DDRの内“H”がセツトさ
れたビツトよりの信号がそれに対応した872〜
886のトライステートに加えられそのトライス
テートは導通状態となる。これによりDDRの
“H”のビツトに対応したDOUTのビツトは対応
しているトライステートを介して出力される。一
方ラインDIO0〜DIO7の信号はCPUよりバツフア
アンプ892〜904を介して自由に読み取るこ
とができる。トライステート872〜886の内
不導通となつているトライステートに対応したラ
インの信号は外部の状態に依存するので、このラ
インに対しては外部の状態を読み取ることができ
る。 第29図は第2図のINJC152の詳細図であ
り、クランク角センサよりのREFパルスはクラ
ンク角の上死点前の一定角(例えば80度とか、90
度)の所で生じる。クランク角の上死点(TDC)
とREFの関係を第30図のA,Bに示す。今
MODEレジスタ172のb4ビツトが“H”とな
つていると仮定するのでゲート910,912,
154(Fig2)はONしている。このため、カウ
ンタ904のカウント値は第30図Cに示す如く
REFパルス毎にクリアされる。レジスタ902
の値Aは噴射開始点を決める値をCPUより受け
て保持するレジスタである。レジスタ902の値
Aとカウント値Bは比較器906へセツトされ、
フリツプフロツプ908をセツトする。 フリツプフロツプ908がセツトされると
ANDゲート154よりパルスが送られて噴射弁
28へパルスが送られる。さらにゲート912が
開きカウンタよりなるタイマ916はクロツクパ
ルスを計数する。INJDレジスタ914は第2図
のINJDレジスタであり、このレジスタのセツト
値Cに対応する時間、弁は開弁する。すなわちタ
イマ916のカウント値DがCより小さい間はフ
リツプフロツプ920がセツトされているが、C
≦Dの条件でフリツプフロツプ920がリセツト
され、ANDゲート154からの噴射用パルスは
停止する。 このようにして燃料噴射の開始点と開弁時間が
制御できる。 さらにMODEレジスタ172のb4をゼロ(L)
にすることによりゲート154の出力および全て
の動作を停止できる。 以上説明した如く、本発明によれば、エンジン
への吸入空気の制御状態に基づく点火位置データ
をそのまま点火制御に使用するのではなく、1つ
前に実際に点火される点火位置をベースにしその
値に規定値を加算や減算することにより求める。
従つて上記1つ前に実際に点火される値に対し、
規定以上今回の点火位置が変化することがない。
このため点火位置の急変がなくなりエンジンのト
ルク変化も滑らかになる。 さらに本実施例によればエンジンへの吸入空気
の制御状態に基づく点火位置データの演算を一定
時間の経過に応じて行ない。一方この点火位置デ
ータの補正をエンジン回転に同期して行つてい
る。この為、実行時間の大部分は一定時間の経過
に応じて行なわれることとなり、コンピユータへ
の要求処理量がエンジン回転速度の変化の影響を
受けにくくなり、安定するこれによりコンピユー
タの能力の評価を高く設定でき制御能力が向上す
る。
第1図はエンジン制御システムの全体システム
図、第2図は第1図の制御回路のブロツク図、第
3図はプログラムシステム図、第4図は第2図の
ROMのプログラム格納図、第5図は第3図のイ
ニシヤライズ(INTIALIZ)プログラム204の
詳細図、第6図は第3図の監視(MONIT)プロ
グラム206の詳細図、第7図は点火時期特性
図、第8図は燃料供給特性図、第9図はエアーバ
イパス制御の特性図、第10図は第3図のバツク
グランドプログラム208の詳細図、第11図は
第3図のプログラム226,228,230の詳
細図、第12図は第3図のプログラム232の詳
細図、第13図は第12図のダイナミツクリミテ
ーシヨンプログラム(DYNAL)502の詳細
図、第14図は第3図のプログラム262の詳細
図、第15図は第11図の動作説明図、第16図
は第3図のプログラム242の詳細図、第17図
は第3図のプログラム260の詳細図、第18図
は第12図の動作説明図、第19図は第12図の
動作説明図、第20図は第3図のプログラム25
2の詳細図、第21図は第3図のプログラム25
4の詳細図、第22図は第21図の動作説明図、
第23図は点火遅れ補正の特性図、第24図は第
3図のプログラム258の詳細図、第25図は第
24図の動作説明図、第26図は第2図の詳細
図、第27図は第2図の制御回路156の詳細
図、第28図は第2図の制御回路192の詳細
図、第29図は第2図制御回路152の詳細図、
第30図は第29図の動作詳明図である。 2…エアークリーナ、4…ターボチヤージヤ、
6…タービン、8…コンプレツサ、10…スロツ
トルバルブ、12…アクセルペタル、14…エア
ーバイパスバルブ、16…吸気バルブ、20…燃
料タンク、22…フイルタ、24…燃料ポンプ、
26…燃圧制御弁、28…噴射弁、30…制御ユ
ニツト、40…バツテリ、42…キースイツチ、
44…点火コイル、46…デイストリビユータ、
50…点火プラグ、49…ピストン、52…排気
管、54…触媒ユニツト、56…マフラ、60…
バイパス通路、62…EGRバルブ、64…スタ
ータモータ、66…スタータスイツチ、72…ノ
ツクセンサ、74…スロツトルセンサ、76…ス
ロツトルスイツチ、78…圧力センサ、80…ク
ランク角センサ、82…排気ガスセンサ、102
…CPU、104…ROM、106…RAM、10
8…入出力回路、110…バスライン、126…
調整電圧発生器、122…電圧センサ、124…
大気温センサ、128…スロツトル角センサ、1
30…マルチプレクサ、132…アナログデイジ
タル変換回路、134…レジスタ、136…アナ
ログデイジタル変換回路、138…レジスタ、1
42…トツプギアスイツチ、152…インジエク
タ制御回路、154…ANDゲート、156…点
火パルス発生回路、140…角度信号処理回路、
158…ANDゲート、160…ANDゲート、1
62…イグニツシヨン、164…バイパスバルブ
制御回路、166…ANDゲート、168…EGR
量制御パルス発生回路、170…ANDゲート、
172…モードレジスタ、192…レジスタ、1
94…レジスタ、196…マスクレジスタ、19
0…ステータスレジスタ、204…イニシヤライ
ズプログラム、206…監視プログラム、208
…バツクグランドジヨブ、224…割込要因分析
プログラム、226…ADC1終了プログラム、2
28…ADC2終了プログラム、230…一定時間
経過割込(INTV IRQ)処理プログラム、23
2…基準角割込処理プログラム(INTL IRQ)、
262…エンスト処理プログラム、242…タス
クスケジユーラプログラム、252…レベルゼロ
プログラム、254…レベル1プログラム、25
6…レベル2プログラム、258…レベル3プロ
グラム、256…終了報告プログラム、802…
レジスタ、804…カウンタ、806…レジス
タ、808…コンパレータ、810…コンパレー
タ、812…フリツプフロツプ、850…カウン
タ、852…コンパレータ、854…コンパレー
タ、586…フリツプフロツプ、872〜886
…トライステート回路、902…レジスタ、90
4…カウンタ、906…コンパレータ、908…
フリツプフロツプ、910…ANDゲート、91
2…ANDゲート、914…レジスタ、916…
カウンタ、918…コンパレータ、920…フリ
ツプフロツプ。
図、第2図は第1図の制御回路のブロツク図、第
3図はプログラムシステム図、第4図は第2図の
ROMのプログラム格納図、第5図は第3図のイ
ニシヤライズ(INTIALIZ)プログラム204の
詳細図、第6図は第3図の監視(MONIT)プロ
グラム206の詳細図、第7図は点火時期特性
図、第8図は燃料供給特性図、第9図はエアーバ
イパス制御の特性図、第10図は第3図のバツク
グランドプログラム208の詳細図、第11図は
第3図のプログラム226,228,230の詳
細図、第12図は第3図のプログラム232の詳
細図、第13図は第12図のダイナミツクリミテ
ーシヨンプログラム(DYNAL)502の詳細
図、第14図は第3図のプログラム262の詳細
図、第15図は第11図の動作説明図、第16図
は第3図のプログラム242の詳細図、第17図
は第3図のプログラム260の詳細図、第18図
は第12図の動作説明図、第19図は第12図の
動作説明図、第20図は第3図のプログラム25
2の詳細図、第21図は第3図のプログラム25
4の詳細図、第22図は第21図の動作説明図、
第23図は点火遅れ補正の特性図、第24図は第
3図のプログラム258の詳細図、第25図は第
24図の動作説明図、第26図は第2図の詳細
図、第27図は第2図の制御回路156の詳細
図、第28図は第2図の制御回路192の詳細
図、第29図は第2図制御回路152の詳細図、
第30図は第29図の動作詳明図である。 2…エアークリーナ、4…ターボチヤージヤ、
6…タービン、8…コンプレツサ、10…スロツ
トルバルブ、12…アクセルペタル、14…エア
ーバイパスバルブ、16…吸気バルブ、20…燃
料タンク、22…フイルタ、24…燃料ポンプ、
26…燃圧制御弁、28…噴射弁、30…制御ユ
ニツト、40…バツテリ、42…キースイツチ、
44…点火コイル、46…デイストリビユータ、
50…点火プラグ、49…ピストン、52…排気
管、54…触媒ユニツト、56…マフラ、60…
バイパス通路、62…EGRバルブ、64…スタ
ータモータ、66…スタータスイツチ、72…ノ
ツクセンサ、74…スロツトルセンサ、76…ス
ロツトルスイツチ、78…圧力センサ、80…ク
ランク角センサ、82…排気ガスセンサ、102
…CPU、104…ROM、106…RAM、10
8…入出力回路、110…バスライン、126…
調整電圧発生器、122…電圧センサ、124…
大気温センサ、128…スロツトル角センサ、1
30…マルチプレクサ、132…アナログデイジ
タル変換回路、134…レジスタ、136…アナ
ログデイジタル変換回路、138…レジスタ、1
42…トツプギアスイツチ、152…インジエク
タ制御回路、154…ANDゲート、156…点
火パルス発生回路、140…角度信号処理回路、
158…ANDゲート、160…ANDゲート、1
62…イグニツシヨン、164…バイパスバルブ
制御回路、166…ANDゲート、168…EGR
量制御パルス発生回路、170…ANDゲート、
172…モードレジスタ、192…レジスタ、1
94…レジスタ、196…マスクレジスタ、19
0…ステータスレジスタ、204…イニシヤライ
ズプログラム、206…監視プログラム、208
…バツクグランドジヨブ、224…割込要因分析
プログラム、226…ADC1終了プログラム、2
28…ADC2終了プログラム、230…一定時間
経過割込(INTV IRQ)処理プログラム、23
2…基準角割込処理プログラム(INTL IRQ)、
262…エンスト処理プログラム、242…タス
クスケジユーラプログラム、252…レベルゼロ
プログラム、254…レベル1プログラム、25
6…レベル2プログラム、258…レベル3プロ
グラム、256…終了報告プログラム、802…
レジスタ、804…カウンタ、806…レジス
タ、808…コンパレータ、810…コンパレー
タ、812…フリツプフロツプ、850…カウン
タ、852…コンパレータ、854…コンパレー
タ、586…フリツプフロツプ、872〜886
…トライステート回路、902…レジスタ、90
4…カウンタ、906…コンパレータ、908…
フリツプフロツプ、910…ANDゲート、91
2…ANDゲート、914…レジスタ、916…
カウンタ、918…コンパレータ、920…フリ
ツプフロツプ。
Claims (1)
- 1 エンジンへ吸入される空気を導く吸気手段
と;前記エンジンへ吸入される空気の量を制御す
るスロツトルバルブと;前記エンジンへ吸入され
る空気の制御状態に基づいて所定の空燃比の混合
気が得られるように燃料量を演算し、更に前記エ
ンジンの燃焼室の混合気に点火するのに適した点
火位置を演算するコンピユーターと;前記コンピ
ユータの出力データに基づき燃料および点火のた
めのそれぞれの制御信号を発生する出力手段と;
それぞれの制御信号に応じて燃料を供給しさらに
点火を行なう燃料供給手段および点火手段とを有
するものにおいて、前記エンジンに吸入される空
気の制御状態に応じて第1の点火位置を新たに求
め、既に記憶されていた第1の点火位置を表わす
データの代りに新たに求められた第1の点火位置
を表わすデータを記憶するという処理を一定時間
経過する毎に実行する第1のステツプと;前記記
憶されている第1の点火位置を表わすデータを読
み出し、この値を予め定めた値だけ補正するとい
う処理を前記エンジンの出力軸の回転に同期して
実行する第2のステツプと、前記第2のステツプ
で求められた値に応じて前記出力手段へ点火位置
のデータを送る第3のステツプよりなることを特
徴とするエンジンの点火時期制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8292180A JPS578349A (en) | 1980-06-20 | 1980-06-20 | Control method of ignition timing in engine |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8292180A JPS578349A (en) | 1980-06-20 | 1980-06-20 | Control method of ignition timing in engine |
Related Child Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13122487A Division JPS6394079A (ja) | 1987-05-29 | 1987-05-29 | トルワ制御装置 |
| JP4249930A Division JPH0751932B2 (ja) | 1992-09-18 | 1992-09-18 | 内燃機関のトルク制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS578349A JPS578349A (en) | 1982-01-16 |
| JPS632027B2 true JPS632027B2 (ja) | 1988-01-16 |
Family
ID=13787702
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8292180A Granted JPS578349A (en) | 1980-06-20 | 1980-06-20 | Control method of ignition timing in engine |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS578349A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02233917A (ja) * | 1989-03-06 | 1990-09-17 | Ig Tech Res Inc | 冷暖房構造 |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6111430A (ja) * | 1984-06-28 | 1986-01-18 | Hitachi Constr Mach Co Ltd | 原動機と油圧ポンプを含む系の制御装置 |
| JPS6181577A (ja) * | 1984-09-07 | 1986-04-25 | Honda Motor Co Ltd | 内燃エンジンの制御装置 |
| JPS61182464A (ja) * | 1985-02-08 | 1986-08-15 | Mitsubishi Motors Corp | 火花点火機関の点火時期制御装置 |
| JPS61234269A (ja) * | 1985-04-10 | 1986-10-18 | Nissan Motor Co Ltd | 点火時期制御装置 |
| JPH0660622B2 (ja) * | 1987-06-17 | 1994-08-10 | 株式会社日立製作所 | 内燃機関の点火時期制御装置 |
| JPS63198748A (ja) * | 1987-09-10 | 1988-08-17 | Nippon Denso Co Ltd | エンジン回転速度制御方法 |
| JP2530366B2 (ja) * | 1989-02-20 | 1996-09-04 | 三菱電機株式会社 | 内燃機関の燃料制御装置 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS52100028A (en) * | 1976-02-18 | 1977-08-22 | Mitsubishi Electric Corp | Engine ignition timing adjusting device |
| JPS5472326A (en) * | 1977-11-18 | 1979-06-09 | Nippon Soken Inc | Ignition timing regulator for internal combustion engine |
| JPS54108135A (en) * | 1978-02-13 | 1979-08-24 | Hitachi Ltd | Electronic engine control equipment |
| JPS54145819A (en) * | 1978-05-04 | 1979-11-14 | Nippon Denso Co Ltd | Engine control |
| JPS5546057A (en) * | 1978-09-29 | 1980-03-31 | Hitachi Ltd | Electronic engine controller |
-
1980
- 1980-06-20 JP JP8292180A patent/JPS578349A/ja active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02233917A (ja) * | 1989-03-06 | 1990-09-17 | Ig Tech Res Inc | 冷暖房構造 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPS578349A (en) | 1982-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4450815A (en) | Internal combustion engine control apparatus | |
| US4337513A (en) | Electronic type engine control method and apparatus | |
| US4482962A (en) | Engine control method | |
| JPH0250303B2 (ja) | ||
| JPS6127571B2 (ja) | ||
| JPS6212384B2 (ja) | ||
| JPH0370106B2 (ja) | ||
| JPS6256339B2 (ja) | ||
| JPS6315465B2 (ja) | ||
| JPS6350546B2 (ja) | ||
| JPH0375740B2 (ja) | ||
| JPS6352225B2 (ja) | ||
| JP3326945B2 (ja) | 内燃機関の制御装置 | |
| JP3191676B2 (ja) | 内燃機関の点火時期制御装置 | |
| US4501249A (en) | Fuel injection control apparatus for internal combustion engine | |
| EP0030114B1 (en) | Method for starting an operation of an internal combustion engine and apparatus therefor | |
| EP0106366B1 (en) | Control method for internal combustion engines | |
| KR920003200B1 (ko) | 엔진제어장치 | |
| JPS6218748B2 (ja) | ||
| JPS627373B2 (ja) | ||
| JPH0138176B2 (ja) | ||
| JPH0751932B2 (ja) | 内燃機関のトルク制御装置 | |
| US4522178A (en) | Method of fuel control in engine | |
| JPS5895214A (ja) | 熱線式流量センサの信号処理方法 | |
| JP2749138B2 (ja) | 内燃機関の燃焼異常検出装置 |