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
Application number
JP55082921A
Other languages
Japanese (ja)
Other versions
JPS578349A (en
Inventor
Toshio Furuhashi
Masaaki Fujisawa
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 JP8292180A priority Critical patent/JPS578349A/en
Publication of JPS578349A publication Critical patent/JPS578349A/en
Publication of JPS632027B2 publication Critical patent/JPS632027B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Electrical Control Of Ignition Timing (AREA)
  • Output Control And Ontrol Of Special Type Engine (AREA)
  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

本発明はエンジンの点火時期制御方法に関す
る。エンジンはその燃焼室内に吸入される吸気量
を制御するスロツトルバルブを有し、このスロツ
トルバルブの開度により上記吸気量が制御され
る。この吸気量の制御状態はインテークマニホー
ルド圧を測定する圧力センサや、空気流量を測定
する流量センサや、スロツトルバルブ位置に応じ
た信号を出力するスロツトル開度センサなどによ
り検知される。これらのセンサの出力とエンジン
速度の情報により一般に燃料供給量や点火位置が
制御されることは知られている。 近年、エンジン制御にマイクロコンピユータが
使用されるようになり、上記吸気量の制御状態を
入力情報としてマイクロコンピユータに取込み、
この情報に基づいてエンジンの点火時期を制御す
ることが可能となつた。マイクロコンピユータは
メモリを有していることにより、従来のアナログ
回路に基づく制御に比べ、より複雑な特性を記憶
でき、このために制御精度が大幅に向上する利点
がある。これに伴ない点火位置が上記吸気量の制
御状態に応じ、より高精度にしかもより広範囲に
制御可能となつた。また演算処理速度が速いた
め、上記吸入空気量の制御状態に対する応答性も
非常に速くなつた。この技術は例えば特開昭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表に以上述べた各タスクの起動とその機能
を示す。
The present invention relates to an engine ignition timing control method. The engine has a throttle valve that controls the amount of intake air drawn into its combustion chamber, and the amount of intake air is controlled by the opening degree of the throttle valve. The control state of the intake air amount is detected by a pressure sensor that measures the intake manifold pressure, a flow rate sensor that measures the air flow rate, a throttle opening sensor that outputs a signal according to the throttle valve position, and the like. It is known that the fuel supply amount and ignition position are generally controlled based on the outputs of these sensors and engine speed information. In recent years, microcomputers have come to be used for engine control, and the control status of the intake air amount is input to the microcomputer as input information.
Based on this information, it has become possible to control the engine's ignition timing. Since microcomputers have memory, they have the advantage of being able to store more complex characteristics than conventional control based on analog circuits, which greatly improves control accuracy. As a result, the ignition position can be controlled with higher accuracy and over a wider range in accordance with the control state of the intake air amount. Furthermore, since the calculation processing speed is fast, the responsiveness to the control state of the intake air amount is also very fast. For example, this technology
It is disclosed in Publication No. 152716. These points make it possible to achieve higher engine output and faster engine response in response to changes in the amount of intake air. However, this has resulted in a sudden change in the torque of the engine's output shaft in response to rapid changes in the amount of intake air, which has brought about both great advantages and disadvantages. The problem with this is that the torque from the engine changes too faithfully and with a high response to commands from the driver, such as pressing the accelerator pedal, so if the driver is inexperienced, the commands due to his inexperience may suddenly change. A sudden change in the accelerator pedal, for example, will faithfully appear as a change in engine torque. This impairs smooth driving and makes driving that much more difficult. An object of the present invention is to provide an ignition timing control method for an engine that enables smooth operation. In the present invention, data on the ignition position obtained based on the control state of the intake air amount is used as the target value of the ignition position, and the ignition position where the previous ignition is actually ignited is brought closer to the target value by a certain predetermined value. is set as the new ignition position, and ignition is performed according to this new ignition position.
This suppresses unnecessary sudden fluctuations in torque due to inexperience of the driver. Furthermore, the embodiments described below also have the following features. In other words, conventional ignition position calculations are all performed in synchronization with engine rotation, and therefore, if engine rotational speed frequently fluctuates due to engine torque fluctuations, the amount of processing required of the computer will frequently fluctuate. For this reason, the processing capacity for engine control of the entire computer processing is unstable, and control accuracy is reduced. In other words, it is necessary to lower the evaluation of a computer's processing power and sacrifice its processing power to some extent from the beginning. In order to eliminate this problem, it is necessary to execute the ignition timing control program at regular intervals as much as possible. For this reason, there is a program executed to determine the ignition position according to the control state of intake air to the engine, and a program executed to correct the above program output by inputting the previous ignition timing as well. The program is separated into at least two types, and the former program is executed at regular intervals. By executing the latter program in synchronization with the engine's output shaft, the number of programs that are executed in synchronization with engine rotation can be minimized, and as a result, fluctuations in the amount of processing required of the computer can be reduced. . This will be explained below using examples. In this embodiment, a pressure sensor is used as a sensor for detecting the control state of the intake air amount of the engine, but as described above, an air flow rate sensor or a sensor for detecting the opening state of a throttle valve can also be used. FIG. 1 is a system diagram of the entire engine system. First, the flow of intake air guided to the cylinders of the engine will be explained. Air cleaner 2
The introduced air is compressed by a compressor 8 which is rotated at high speed by a turbine 6 of a turbocharger 4. Compressed air is introduced into each cylinder of the engine via a throttle valve 10 or an air bypass valve 14 provided in a throttle chamber. In FIG. 1, only one cylinder is representatively shown. This cylinder is provided with an intake valve 16.
When valve 6 is opened, a mixture consisting of air and fuel, which will be described later, is introduced. The throttle valve 10 is mechanically interlocked with an accelerator pedal 12 controlled by the driver, and the opening degree of the throttle valve is determined according to the amount of depression of the accelerator pedal. As a result, air resistance is controlled and the amount of air introduced into the cylinder is controlled. Next, the fuel supply system will be explained. fuel tank 2
Fuel is led from 0 to a fuel pump 24 via a filter 22, and the fuel pressurized by the fuel pump 24 is controlled by a fuel pressure control valve 26 so as to be maintained at a constant pressure with respect to the intake manifold pressure.
Fuel is introduced into the injection valve 28 at a pressure controlled by the fuel pressure control valve 26, and the injection valve is opened by an output pulse generated by the control unit 30, and fuel is supplied into the intake manifold. The fuel supplied into the intake manifold forms a mixture with intake air and is introduced into the cylinder via the intake valve 16. Next, the ignition system will be explained. The other end of the ignition coil, which is connected to the battery 40 via a key switch 42, is connected to the control unit 30. A power transistor provided in the control unit 30 supplies a charging current for charging the ignition coil with energy. Next, the charging current is cut off to generate a high voltage in the secondary coil of the ignition coil 44, and the high voltage is supplied to the spark plug 50 provided in each cylinder via the distributor 46. . The distributor 46 rotates in mechanical conjunction with an output shaft to which rotational force is applied by a piston 48 in the cylinder. The air-fuel mixture introduced into the cylinder is compressed by the piston 48, and combustion is started by the spark energy from the spark plug 50. The heat energy generated by the combustion of the air-fuel mixture is converted into mechanical energy, which is output through the output shaft of the engine. Next, the exhaust system will be explained. Combustion gas within the cylinder is led to the exhaust pipe 52 via an exhaust valve (not shown), causing the turbine 6 to rotate. It is then discharged to the atmosphere via the catalyst unit 54 and muffler 56. Note that the turbine 6 is provided with a bypass passage 60, and by controlling the opening of the bypass passage with a diaphragm 58, the turbine 6
The rotation speed is adjusted. Also, there is an EGR valve 62 between the exhaust pipe and intake manifold.
is provided, and exhaust gas is guided to the intake system. Explain the starter system. A starter motor 64 is connected to the output shaft of the engine as necessary. When the starter switch 66 is turned on, the starter motor is excited, and at the same time, the pinion provided on the starter shaft is coupled to the flywheel provided on the output shaft of the engine, thereby driving the pistons of the engine. This action converts thermal energy into mechanical energy within the engine's cylinders, and the engine uses this newly generated energy to move the output shaft. This causes the engine to become self-running, completing the starting operation. Next, the sensors for engine control will be explained. The control unit 30 has a knock sensor 7 as an input signal representing the status of each system of the engine.
2. Water temperature sensor 74, throttle switch 76,
The outputs of the pressure sensor 78, crank angle sensor 80, exhaust gas sensor 82, and starter switch 66 are input. Knock sensor 82 generates a pulse in response to a knocking condition in a known manner. Water temperature sensor 74 transmits an analog voltage to unit 30 based on the engine cooling water temperature. The throttle switch 76 outputs an "H" level output when the throttle is fully closed, and in other conditions,
Outputs “L” level output. The pressure sensor 78 outputs a voltage corresponding to the pressure above the throttle valve in the intake manifold. As is already known, the crank angle sensor 80 has a disc with two types of slits cut into it, which is fixed to the shaft of a distributor that rotates in synchronization with the output shaft of the engine, and the rotation of the disc is detected by a photocoupler. Ru. This generates a reference angle pulse (hereinafter referred to as REF pulse) and a unit rotation angle pulse (hereinafter referred to as POS pulse) in accordance with the rotation of the output shaft of the engine. In a four-cylinder engine, a reference angle (REF) pulse is generated every 90 degrees, and a unit (POS) pulse is generated, for example, every 2 degrees. Next, the control unit will be explained. FIG. 2 is a detailed circuit configuration diagram of the control unit 30 shown in FIG.
2 and read-only memory 104 (hereinafter referred to as ROM)
It is written as ) and random access memory 106
(hereinafter referred to as RAM) and an input/output circuit 108. The above CPU102 is ROM104
The input data from the input/output circuit 108 is operated on using various programs stored in the internal memory, and the operation results are returned to the input/output circuit 108 again. RAM 106 is used for intermediate storage necessary for these operations. CPU102, ROM104, RAM106,
Various types of data are exchanged between the input/output circuits 108 via a bus line 110 consisting of a data bus, a control bus, and an address bus. The input/output circuit 108 includes a first analog-digital converter ADC1 (hereinafter referred to as ADC1) and a second analog-digital converter ADC2.
(hereinafter referred to as ADC2), angle signal processing circuit 140 for detecting engine rotational speed, and discrete input/output circuit DIO (hereinafter referred to as DIO) for inputting and outputting 1-bit information. The ADC1 includes a battery voltage detection sensor 122 (hereinafter referred to as VBS) and a cooling water temperature sensor 74 (hereinafter referred to as VBS).
(hereinafter referred to as TWS) and atmospheric temperature sensor 124 (hereinafter referred to as TAS)
), the adjustment voltage generator 126 (hereinafter referred to as VRS), and the throttle angle sensor 128 (hereinafter referred to as θTHS)
) and exhaust gas sensor 82 (hereinafter referred to as λS)
The output from the multiplexer 130 (hereinafter referred to as MPX
MPX (multiplexer) 1
30 selects one of these and converts it into an analog/digital conversion circuit 132 (hereinafter referred to as ADC).
Enter. The digital value that is the output of the ADC 132 is held in a register 134 (hereinafter referred to as REG). In addition, the pressure sensor 78 (hereinafter referred to as VCS)
The signal is input to the ADC2, converted into digital data via an analog-to-digital conversion circuit 136 (hereinafter referred to as ADC), and set in a register 138 (hereinafter referred to as REG). From the angle sensor 80 (hereinafter referred to as ANGS)
REF (a signal indicating a reference crank angle, for example, 180 degrees crank angle) and POS (a signal indicating a unit angle, for example, 2 degrees crank angle) are output, and the angle signal processing circuit 1
40, where a measurement of engine speed is made. The DIO (discrete input/output circuit) includes a throttle switch 76 (hereinafter referred to as TH-SW) and a top gear switch 142 (hereinafter referred to as TH-SW).
TOP-SW) and starter switch 66
(hereinafter referred to as START-SW) is input. The details of this DIO will be described later using FIG. 28. Next, the pulse output circuit and control target based on the calculation results of the CPU will be explained. Control circuit 152 (denoted as INJC) for controlling the injection valve 28
is a circuit that converts the digital value of the calculation result into a pulse output. Therefore, a pulse having a pulse width corresponding to the fuel injection amount is generated by INJC152,
It is applied to the injector 28 via the AND gate 154. For details of INJC152, please refer to Parts 29-3.
This will be explained later using Figure 0. The ignition pulse generation circuit 156 (hereinafter referred to as IGNC) has a register (hereinafter referred to as ADV) for setting the ignition timing and a register (hereinafter referred to as DWL) for setting the primary current energization start time of the ignition coil.
These data are set by the CPU. AND gates 158, 16 to ignition 162 for generating pulses based on the set data and controlling the primary current of ignition coil 44 in FIG.
Apply this pulse through 0. This IGNC15
6 will be described later using FIG. 27. The opening rate of the bypass valve 14 is determined by the control circuit (hereinafter referred to as
ISCC) 164 via an AND gate 166.
ISCC164 is a register that sets the pulse width.
Register to set ISCD and repeat pulse period
Has ISCP. The detailed circuit of this ISCC will be explained with reference to FIG. Controls the EGR control valve 62 shown in FIG.
EGR amount control pulse generation circuit 168 (hereinafter referred to as EGRC)
) has a register EGRD for setting a value representing the pulse duty and a register EGRP for setting a value representing the pulse repetition period. This EGRC output pulse is AND gate 1
70 to the EGR control valve 62. This EGRC circuit will also be described later using FIG. Further, the 1-bit input/output signal is controlled by a circuit DIO (discrete input/output circuit). The input signal is TH-SW from the throttle switch.
Signal, TOP from top gear switch 142
SW signal, START from starter switch 66
- There is a SW signal. Further, the output signal includes a pulse output signal for driving the fuel pump 24. This DIO is provided with a register DDR 192 for determining whether a terminal is used as an input terminal or an output terminal, and a register DOUT 194 for latching output data. The mode register 172 is a register (hereinafter referred to as MOD) that holds instructions for commanding various states inside the input/output circuit 108. For example, by setting an instruction to this mode register 172,
AND gates 154, 158, 166, and 170 are all activated or deactivated. By setting the command in the mode register 172 in this way, INJC152 and IGNC1
56, ISCC164, and EGRC168 output stop and start can be controlled. Next, the programs stored in the ROM 104 will be explained. FIG. 3 shows a program system for the control circuit of FIG. When power supply voltage is applied to CPU 102 by key switch 42 (FIG. 1), CPU 10
2 enters a start mode 202 and executes an initialization program (INITIALIZ) 204. Next, execute the monitoring program (MONIT) 206 and perform the back ground job (BACK
GROUND JOB) 208 is executed. Examples of this bug ground job include the task of calculating the EGR amount (hereinafter referred to as EGR・TASK) and the task of calculating the opening degree of the bypass valve 14 (hereinafter referred to as ISC・TASK).
(denoted as TASK). During execution of this task, when an interrupt factor (hereinafter referred to as IRQ) occurs, the process jumps to point 222 to analyze the interrupt factor, and the interrupt factor analysis program 2
24 (hereinafter referred to as IRQ ANAL). This interrupt factor analysis (IRQ ANAL) program further includes ADC1 end interrupt processing (hereinafter referred to as ADCIEND).
IRQ) program 226, ADC2 end interrupt processing (hereinafter referred to as ADC2END IRQ) program 228, and certain period elapsed interrupt processing (hereinafter INTV)
It consists of an engine synchronous interrupt processing (hereinafter referred to as IRQ) program and an engine synchronous interrupt processing (hereinafter referred to as INTL IRQ) program, and issues a startup request (hereinafter referred to as QUEUE) to each task that needs to be started (described later). This interrupt analysis (IRQ ANAL) program 22
Each program in 4 ADC1 END IRQ226 and
ADC2 END IRQ228 and INTV IRQ230
Each task for which a start request (QUEUE) is issued by each program of INTL IRQ 232 is level zero task group 252, level 1 task group 254, level 2 task group 256, and level 3 task group 25.
8, or the tasks constituting each task group. Also INTV IRQ program 232
The task that generates a start request (QUEUE) when engine stoppage is further detected is an engine stoppage processing task 262 (hereinafter referred to as ENST TASK). When this ENST TASK 262 is executed, the control system enters the start mode again and returns to the starting point 202. The task scheduler 242 schedules tasks so that they are executed starting from the task group with the highest level (here, level zero is the highest) among the task group for which a start request (QUEUE) has occurred or the task group whose execution has been suspended. Determine the order of execution. When the execution of the task group is completed, the completion report program 2
60 (hereinafter referred to as EXIT), the completion is reported. Based on this completion report, the task group with the highest level among the task groups waiting for execution is executed next. When there are no more suspended tasks or tasks for which a QUEUE has been issued, the task scheduler 242 starts executing the background job 208 again. Furthermore, if an interrupt (IRQ) occurs while any of the level 0 task group to level 3 task group is being executed, the process returns to the starting point 222 of the interrupt analysis program. Table 1 shows the activation of each task described above and its functions.

【表】【table】

【表】 第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つ前に実際に点火される値に対し、
規定以上今回の点火位置が変化することがない。
このため点火位置の急変がなくなりエンジンのト
ルク変化も滑らかになる。 さらに本実施例によればエンジンへの吸入空気
の制御状態に基づく点火位置データの演算を一定
時間の経過に応じて行ない。一方この点火位置デ
ータの補正をエンジン回転に同期して行つてい
る。この為、実行時間の大部分は一定時間の経過
に応じて行なわれることとなり、コンピユータへ
の要求処理量がエンジン回転速度の変化の影響を
受けにくくなり、安定するこれによりコンピユー
タの能力の評価を高く設定でき制御能力が向上す
る。
[Table] In Table 1, interrupt analysis (IRQ ANAL) is a program for managing the control system.
Programs and task schedulers (TASK)
SCHDULER) program and exit report (EXIT)
There is a program. These programs (below
OS) is held at addresses A000 to A300 of the ROM 104 as shown in FIG. The address is expressed in hexadecimal notation. Additionally, AD1 as a level zero program
There are programs for capturing the output of AD2 (AD1IN), capturing the output of AD2 (AD2IN), and capturing the engine rotational speed output (RPMIN), which are usually started at 10 [mSEC] of a certain time elapse interrupt (INTV IRQ). Level 1 programs include fuel control (INJC), ignition timing control (IGNCAL), and conduction angle control (DWLCAL) programs, which are activated every 20 [mSEC] of a fixed time interrupt (INTV IRQ). There is a 02 feedback control (LAMBDA) program as a level 2 program, which is activated every 40 [mSEC] of a fixed time elapsed interrupt (INTV IRQ). There is a correction calculation (HOSEI) program as a level 3 program, which is activated every 100 [mSEC] of a certain time elapsed interrupt (INTV IRQ). There are also exhaust recirculation control (EGRCAL) and bypass air control (ISCCAL) programs as background jobs. The above level zero program is stored as PROG1 at addresses A600 to AAFF of the ROM 104 in FIG. 4, respectively. The level 1 program is stored as PROG2 at addresses AB00 to ABFF in the ROM 104. Level 2 program is PROG3
are stored in the ROM 104 from address AE00 to AEFF. Level 3 program is PROG4
They are stored in the ROM 104 from addresses AF00 to AFFF. Also, background job programs are held in B000 to B1FF. A list of start addresses for each program from PROG1 to PROG4 (hereinafter referred to as SETMR) is held from B200 to B2FF, and a value representing the start cycle of each program from PROG1 to PROG4 (hereinafter referred to as TTM) is stored in B200 to B2FF. Stored at addresses B300 to B3FF. These details are shown in FIG. Other data is stored at addresses B400 to B4FF of the ROM in FIG. 4 as necessary. This is followed by a data ignition timing map (ADV.
MAP), air-fuel ratio control map (AF.MAP), and exhaust gas control map (EGR.MAP). Explain the initialization program. Initialization INITIALIZ2 in Figure 3
The details of the 04 program will be explained using FIG. In step 282, a save area is set when an interrupt (IRQ) occurs. Next, in step 284, the RAM is
Clear all 106. In step 286, initial values are set in the registers of the input/output circuit 108. For example, for this initial value setting, angle sensor 1
There are 46 initial measurement time values, DDR settings for different uses of DIO terminal input and output, and timer settings for generating interrupts after a certain period of time (INTV IRQ). In step 288, ADC1 is activated, and
Release the prohibition for ADC1 end interrupt (ADC1 ENDIRQ). In this case, specify the multiplexer (MPX) input to ADC1,
Send a pulse to start ADC1. This allows the battery voltage detection sensor VBS12, which is one of the inputs of the multiplexer MPX of ADC1 in Figure 2, to
The output of 2 is selected and input to ADC1.
Return to step 290 and enter ADC1 END IRQ here.
have. ADC1 conversion operation is completed and REG134
When the digital value is set, the completion of the operation of ADC 164 is reported to status register STAUS 198, and ADC1 END IRQ is input to CPU 102. As a result, the program AD1 IN is executed and the output of the battery voltage sensor 132 is taken in. In step 292, it is confirmed whether all outputs from the sensors 122 to 82 have been taken in. In this case, the process returns to step 288 since the capture of the input from sensor 122 has only been completed. This step 288
Then, the multiplexer (MPX) 162 selects the next input, the output of the sensor 74. When the analog-to-digital conversion of the output of the water temperature sensor 74 is completed, the program AD1 is converted again in step 290.
IN (intake) is executed and register REG134
The digital value of the output of the water temperature sensor TWS 74 held in the ROM 104 is taken in and held in the data (DATA) area of the ROM 104. At step 292, the process returns to step 288. In this way, by going through the loop from step 288 to step 292, the digital values of the outputs from the sensors 122 to 82 are taken in one after another, and when the reading of the output value of the exhaust gas sensor λS 82 is completed, the process proceeds to step 294. In step 294, the ignition timing at startup is calculated and set. This ignition timing θADV (ST) is calculated as a function of the engine cooling water temperature TW. This function is shown in FIG. According to the characteristics shown in Figure 7, θADV
(ST) and the calculated result is shown in Figure 2.
Set in register ADV of IGNC156. At step 296, the air bypass
The initial value of the valve 14 is calculated. This calculation is performed based on the characteristics shown in FIG. 9, and the calculation output is set in the register ISCD of the control circuit ISCC 164. A fixed value is also set for ISCP. This fixed value is determined by the characteristics of the control valve. The characteristics shown in FIG. 8 are characteristic diagrams of INJD set values. In step 298, an initial value of on-duty, which is the fuel injection time, is calculated. This calculated value is calculated according to FIG.
2 register INJD. register
By setting INJD, execution of the initialization (INITIALIZ) program 204 shown in FIG. 3 ends. Next, the monitoring program 206 will be explained. FIG. 6 shows the MONIT program 206. The MONIT program 206 starts at step 302,
In step 302, the starter switch 6 of FIG.
This is done by monitoring the DIO5 input of DIO to see if DIO6 is in the ON state. If the starter switch 66 is in the ON state, the fifth bit DIO5 of DIO is "H". Conversely, when it is OFF, it is "L". Assuming that the engine has not yet started, the starter switch is OFF, and the process proceeds from step 302 to step 312, where it is determined whether or not the engine has been started. This determination is made, for example, by determining whether a starter flag is set. This starter flag is set in step 308. This starter flag is
Set to a specified location in RAM. The starter flag is not set before starting, so step 3
12 is NO, and the process returns to step 302 again.
The route goes from step 302 NO to step 312 NO and back to step 302 until the starter switch 152 is turned on. While going around this route, monitor the starter switch. When the starter switch is turned on, step 30
In step 2, the determination is YES, and the process proceeds to step 304.
At this point, determine whether the starter switch was already turned on. When proceeding to step 304 for the first time, it is immediately after detecting that the starter switch is ON, and the starter flag is not set, so the determination at step 304 is NO. Starter
If the flag is not set, the judgment is NO and the process proceeds to step 306, where preparations for starting are made.
For example, in this embodiment, the fuel pump 190
To start up, the zeroth bit of DOUT register 194 of DIO is set to "H". This turns on the fuel pump. Next, in step 306, the first bit of the DOUT register 194 is set to "H". As a result, the IGNC circuit 156
AND gate 160 provided at the output of is activated. Actually DOUT register 194
The setting of the zeroth bit and the first bit of is performed simultaneously. In step 308, a certain time elapsed interrupt (INTV
IRQ) is lifted. To cancel the inhibition of this certain time elapsed interrupt (INTV IRQ), for example, set the 4th bit of the MASK register 196 to “H” in Fig. 2.
This is done by making Further step 308
Set the starter flag. This starter flag already indicates that the starter switch is ON, and steps 304 and 312
This flag is used for judgment. In step 310, the control circuit INJC, the control circuit IGNC, and the control circuit which are the output system of the input/output circuit 108 are connected.
In order to put the AND gates at the output terminals of ISCC and the control circuit EGRC into operation, a mode register 172, which will be described later, is set to "H". This sends a pulse output to each control device. Step 31
The process returns to step 302 from 0, and in step 302 it is determined whether the starter switch 152 is ON. The starter switch is ON during starting, and the process advances to step 304 from YES. In this step 304, the starter flag is checked and
If the flag is set, it is assumed that the start has already started, and the process returns to step 302. While the starter motor is being driven in this manner, a loop formed by YES in steps 302 and YES in 304 is being executed. When the engine is started, starter switch 1
52 is turned off, the determination at step 302 is NO, and the process proceeds to step 312. The starter flag is checked in step 312, and since the starter flag is set, the process advances to step 314. In this step 314, an engine stall flag is set to detect engine stalling and release the prohibition of processing, and after this step 314, engine stalling can be detected at the engine stall detection step of the INTVIRQ and INTLIRQ processing programs. Next, proceed to the background job program 208. This program is detailed in FIG. In the figure, at step 410 it is determined whether throttle switch 76 is ON. if
If ON, exhaust gas recirculation control will not be performed. Therefore, proceed to step 412, where the register
Set EGRD to zero. Due to this
The opening rate of the EGR valve 62 becomes zero. On the other hand, in step 414, a predetermined value is set in ISCD. Therefore, the air bypass valve 14 of FIG. 1 is controlled according to the value set in the register ISCD. Air bypass valve 14, which controls the air flow rate in the bypass passage, is controlled according to specific operating conditions. That is, the air flow rate in the bypass passage is increased when driving in the winter when the temperature is low, when starting the engine when it is cold, when driving while using a car air condenser that places a load on the engine, etc. In step 414, the duty of the air bypass valve 14 is set in the register ISCD according to the cooling water temperature. The engine rotation speed during idling is controlled according to this value.
Upon completion of step 414, the process returns to step 410, and this flow is repeated. On the other hand, when the throttle switch 76 is not on, the air solenoid valve 22 is not closed, and exhaust gas recirculation control is performed instead. For this purpose, in step 418, the register ISCD is set to zero. In step 422, it is determined whether the cooling water temperature is higher than a certain value, for example, TA°C, and if it is higher, EGR is not applied. Therefore, in step 426, a value of zero is set for performing EGRCUT. Also, if the cooling water temperature is lower than a certain value (TA°C) in step 422, the process proceeds to step 424.
Proceed to. In step 424, it is determined whether the cooling water temperature is lower than TB°C. If it is low, then
Since EGR is not applied, EGRCUT is performed in step 426.
Set the value to zero. These values are set in the EGRD register at step 430. On the other hand, if the cooling water temperature TW is higher than TB degree and lower than TA degree, EGR is performed. The EGR amount at this time is determined by the output VC of the pressure sensor 78 and the engine rotation speed N. A map of the EGR amount based on the outputs VC and N is provided at addresses B700 to B7FF of the ROM in FIG. 4, and the EGR amount is determined by searching from this map. A search is performed in step 428, and this value is set in register EGRD in step 430. The EGR device 62 shown in FIG. 1 is driven according to the set value of the register EGRD. In the flowchart shown in FIG. 10, upon completion of step 430 or step 414,
The process returns to step 410 again. By doing so, the computer can always execute the flowchart from steps 410 to 414 or from steps 418 to 430 for controlling the air bypass valve 14. Therefore, assuming that an interrupt (IRQ) etc. does not occur, a program started at point 202 will back up through an initialization (INITIALIZ) program 204 and a monitoring (MONIT) program 206.
The ISC program or EGRCAL program, which is the ground job 208, will continue to be executed at all times. Monitoring (MONIT) program 206 and back
The ground job 208 is designed to be able to interrupt its processing by generating an interrupt (IRQ).
When the processing by interrupt (IRQ) is completed, execution of the above program is resumed. Next, the processing based on the occurrence of an interrupt (IRQ) in FIG. 3 will be explained. The interrupt (IRQ) factor analysis program 224 includes processing of ADC1 END IRQ 226, processing of ADC2 END IRQ 228, and INTV.
It consists of IRQ230 processing and INTL IRQ232 processing. Here, each program 226,
In order to execute each of steps 228, 230, and 232, first, it is determined what the request for the service based on the interrupt (IRQ) is. For this purpose, the contents of the status (STA TUS) register 198 in FIG. 2 are examined. By looking at the contents of this status (STA TUS) register, the cause of the interrupt (IRQ) can be determined. The programs 226, 228, 230, 232 are executed according to the cause of the occurrence, and the tasks (TASK) 252, 2 are executed.
A start request (QUEUE) is issued to a task (TASK) that needs to be executed among 54, 256, 258, and 262. However, if the occurrence of interrupts (IRQs) increases, the execution time of the management program (hereinafter referred to as OS) increases, and there is a drawback that it becomes difficult to take the calculation time for actual engine control. Therefore, in this example,
ADC1END IRQ 228 is generated only during execution of initialization (INITIALIZ) or monitoring (MONIT) programs 204 and 206, and is not generated at other times. That is, at step 314 shown in FIG. 6 of the MONIT program 206, the MASK register 196 of FIG.
ADC1END Sets the IRQ prohibition command to “L”. Also, set the mask (MASK) register so that ADC2END IRQ 226 is not generated from the beginning, that is, all interrupts are prohibited at the starting point 202, and the IRQ generation is prohibited by the general reset signal of the input/output circuit. .
After that, generation of ADC2END IRQ is prohibited by not issuing an instruction to cancel interrupt (IRQ) prohibition. Specific examples of the program 224 are shown in Figures 11 to 14.
As shown in the figure. If it is determined in step 450 from the interrupt (IRQ) entrance 222 that it is not the ADC1END IRQ, the process goes to step 452. On the other hand, it is determined whether the cause of the interrupt (IRQ) is the ADC1END IRQ, and if so, the program jumps from step 450 to step 290 of the initialization (INITIALIZ) program. In this embodiment, the ADC1 END IRQ is generated only during execution of the initialization (INITIALIZ) program 204 shown in FIG. 5. ADC1END IRQ is prohibited in any other state. If the determination at step 450 is "NO", the process advances to step 452. In step 452, the cause of the interrupt (IRQ) is a certain time elapsed interrupt (INTV IRQ) that occurs at a certain period.
determine whether If “YES”, proceed to step 454. Step 454 to Step 45
8 is combined with step 482 in FIG. 12 to detect the stopped state of the engine. Already step 45
At step 4, it is determined whether or not the engine stall state should be detected based on whether the engine stall detection flag is set. This engine stall detection flag is set only when it is necessary to detect engine stall. If this flag is reset in step 454, the engine stop detection is not performed and the process proceeds to step 460. On the other hand, if the flag is set, the process advances to step 456 to detect engine stoppage. In this step, the count value of the engine stall counter is updated to measure the elapsed time from the REF signal generated at the reference rotation angle of the engine output shaft. This engine stall counter is REF, which represents the reference rotation angle.
Since it is cleared after each signal, the stalled counter value represents the elapsed time since the previous REF signal occurrence.
If the engine stall count value has reached the specified value in step 458, it is determined that the engine has stopped, and the process advances to step 474 to execute the engine stall task (ENSTTASK) (FIG. 14). The contents of the engine stall task (ENSTTASK) are as follows.
In order to stop the fuel pump 24, the procedure shown in FIG.
Changing DIOO from “H” to “L”, 2nd
AND gates 154, 158, 166, 17 in the figure
0 to the halt state, setting the mode (MODE) register 172 to "L" and jumping to the starting point 202 of the program system. If it is determined in step 458 that the engine has not stopped, the process advances to step 460. Steps 460 to 470 are task level
It has a function to judge whether programs from zero to task level 3 have reached the start timing. First, check task level zero. To this end, in step 460, the contents of a predetermined address in the RAM representing number n of the task control word (TCW) are set to zero. task level
Zero task control word, bits b0-b5 of TCW0 in RAM 106 in FIG.
Increment counter 0 by +1. In this way, although the addition method is adopted in this embodiment, it is also possible to adopt the subtraction method. At step 462, the value of the counter of TCW0 is compared with the value of the task activation timer TTM0 of FIG. Here, TTM0 contains “1”.
Here, the certain time elapsed interrupt (INTV IRQ) is 10
Since it is assumed that it occurs every [mSEC],
“1” in TTM0 means that the task level zero program (252 in Figure 3)10
This indicates that it is activated every [mSEC].
The TCW0 counter (CNTR0) in Figure 15 and
TTM0 is compared in step 464, and if they match, the process goes to "YES". In this case, since they match, the process advances to step 466, and a flag "1" is set in bit b6 of the task control word TCW0.
In this embodiment, b6 of each TCW becomes a flag for the activation request (QUEUE) of that task. Step 46
In step 6, flag “1” was set in b6 of TCW0, so the counters set in b0 to b5 of this TCW0
Clear CNTR0. TCW at step 468
Increment n. That is, step 4
In step 68, the process moves to start timing search from task level zero to task level 1. Step 470
Determine whether task level 3 is finished. In other words, it is determined whether n=4. In this case, since n=1, the process returns to step 462. At step 462, the task control word for the task level 1 program, stored in RAM 106 in FIG.
Increment the contents of counter CNTR1 of TCW1 by "+1". In step 464, the steps shown in FIG.
Compare with TTM1 of ROM104. In this embodiment, the content of TTM1 is "2". In other words, the activation timing of task level 1 is 20 [mSEC]. Assuming that the content of the counter CNTR1 is "1", the determination at step 464 is "NO", that is, it is determined that it is not time to start the task level 1 program 254, and the process advances to step 468. Here, the task level to be searched again is updated, and the next task level is task level 2. Similarly, when task level 3 is completed, step 46
8, n=4, and in step 470, n=4.
The condition nMAX(4) is satisfied. And the task
Proceed to Stigiura 242. In step 452, a certain time elapsed interrupt (INTV
IRQ), the process advances to step 472. Here, it is determined whether a reference angle interrupt (INTL IRQ) occurs at each reference rotation angle of the engine's output shaft. In this case, the answer should always be YES, but if a malfunction occurs due to noise or the like, the answer will be NO at step 472, and the state will return to the state before the interrupt. On the other hand, in the case of reference angle interrupt (INTL IRQ), step 48 in Figure 12
Proceed to 2. Here, step 456, 4 in FIG.
58 to detect the stopped state of the engine. In other words, the engine stall counter is set to step 482.
Clear with . In step 484, it is determined whether the fuel pump is operating or not. If it is stopped, it means that the engine output shaft has rotated to the reference rotation angle, so in step 490, DIOO of DIO in FIG. 2 is set to "H". This will put the fuel pump into operation. At step 502, processing is performed to prevent sudden changes in engine torque due to sudden changes in ignition timing. Hereinafter referred to as DYNAMITSU LIMITATION (DYNAL). The details will be described later using FIG. 13. In step 504, the engine speed is read and it is determined whether the engine speed exceeds the maximum speed nMAX. If nMAX is exceeded, step 510 is performed to reduce the engine output torque.
Proceed to. Steps 520 to 524 are steps for thinning out ignition operations. In other words, AND in Figure 2
The gate 160 is intermittently activated. In step 520, it is determined whether the output of DIO1 is "H", and if it is "H", DIO1 is set to "L" in step 522 to stop ignition. If not, DIO1 is set to "H" in step 524. This causes intermittent ignition. In steps 506 to 514, it is determined whether the pressure P in the intake manifold exceeds the maximum pressure PMAX. It is dangerous if the pressure exceeds PMAX. This PMAX has a characteristic as shown in FIG. 18 with respect to the engine rotation speed. The characteristics shown in FIG. 18 are divided into bands of engine rotational speeds, for example NA to NM, and the lowest PMAX value in each band is selected as the representative value of that band, as shown in FIG. 19. It is stored in ROM addresses B800 to B80D. First, in step 506, the number Z is set to zero.
This Z represents the order of the bands NA to NM. At step 508, the band boundary value is read from the first address B80E+Z. In other words, initially the value of the boundary NO between bands NA and NB is address B80E.
read out. Therefore, in step 508, the engine rotational speed n is compared with the rotational speed value at the boundary between bands NA and NB stored at address B804. If the engine speed n is greater than this boundary value, the process proceeds to step 510, where Z is incremented. As a result, the value to be compared with the actual rotational speed n shifts to the value of N1 read from address B80F. This value of N1 is the boundary value between band NB and band NC. In this way, the actual engine speed n is compared with successively read boundary values, and the number Z is incremented each time. When the actual engine speed value n becomes smaller than the boundary value, the process proceeds from step 508 to step 5.
Proceed to step 12. In step 512, the value of Z which means this band order is used, the number from address B800 is determined by the value of Z, and the maximum pressure is set to B800.
It is read from the +Z address. This maximum pressure
PMAX and measured pressure P are compared, and this maximum pressure
If PMAX is exceeded, proceed to step 520 to reduce engine torque. On the other hand, when the manifold pressure is lower than the maximum pressure, the DIO1 output of DIO is set to "H", and the AND gate 160 (Figure 2)
is in the operating state. Then proceed to the task scheduler program. Explain the DYNAMITSU LIMITATION PROGRAM (DYNAL). FIG. 13 is a detailed flowchart of the dynamic limitation program (DYNAL) shown in FIG. 12. Table 1 in the Level 1 program described below
The target value θTARGET of ignition timing is calculated by the IGNCAL program shown in . The difference between this target value and the previous ignition timing θ(t-1) is calculated in step 532. In step 534, it is determined whether the magnitude of this difference Δθ is larger than the constant width ΔQMAX.
If ΔθKAX is not larger than ΔθKAX, the target value θTARGET is set as the current ignition timing in step 536 because the difference between the target value and the previous ignition timing is small. On the other hand, if it is determined in step 534 that the difference between the target value and the previous ignition timing is large, then step 53
8, 540, and 542, processing is performed to approach the target value only by a certain angle. That is, it is determined whether the target value θTAGET is larger or smaller than the previous ignition timing. This target value and the previous ignition position θ(t-1)
In this embodiment, is expressed by the number of POS pulses which are unit pulses from the sensor 80 between the reference rotation angle before the ignition position and the ignition angle. Therefore,
Satisfying the condition θTAGET>θ(t-1) means that the ignition timing needs to be moved to the retarded side; otherwise, it means that the ignition timing needs to be moved to the advanced side. In step 538, if the target value θTAGET is larger than the previous ignition position θ(t-1), in order to bring the current ignition position closer to the target value, a value θ(t-1)+Δθ1, which is obtained by adding a constant value Δθ1, is set this time. ignition position θ
(t). On the other hand, if not, θ(t-1)
The current ignition position θ(t) is obtained by subtracting the constant value Δθ2 from θ(t-1)−Δθ2. At step 544,
θ(t) obtained in any of steps 536, 540, and 542 is applied to the input/output circuit 108 of FIG.
Set to register ADV of IGNC156.
The process then continues to step 504 in FIG. Figure 14 is the ENST TASK.
This is a detailed flowchart of step 474 of FIG. As explained in step 474, the mode register (MODE) 172 is set to "L" in order to stop the fuel pump and stop all outputs from the input/output circuit 108 in FIG. Thereafter, it jumps to the start point 202 address. FIG. 16 is a detailed flowchart of the task scheduler 242, which determines at step 560 whether task level n needs to be executed. Initially, n is cleared, so n=0. task·
Determine the need for level zero program execution. That is, the existence of a start request (QUEUE) is checked in order of priority.
This can be determined by searching b6 and b7 of task control word TCW in RAM 106 in FIG. b6 is a startup request flag, and when it is set to "1", it can be seen that a startup request is "present". Also, b7 is a flag indicating that the process is being executed, and when "1" is set here, it indicates that the process is being executed and is currently suspended. accordingly
If at least either b6 or b4 is "1", execution is required and the process advances to step 568. At step 568, the flag b7 is determined, and if b7 is "1", execution is being suspended, and execution of the suspended task is resumed from point 570. b6 and
Even if both flags b7 are set, the determination at step 568 is still "YES" and the program is restarted from the interrupted program. Only b6 is “1”
, then the boot request flag for that level i.e. b6
is cleared in step 572, and then cleared in step 574.
Set the b7 flag (hereinafter referred to as the RUN flag) with . Steps 572 and 574
Indicates that the level has progressed from the startup request state to the execution state. At step 578, the task level
Find the start address of a program. This is obtained from the start address table TSA provided in the ROM 104 shown in FIG. 15 in correspondence with the TCW of each task level.
Task start address table (TASK START ADDRESS) in ROM 104 shown in Figure 5
(n+TASK・START・
The task is executed by determining a read address from the equation (starting address of ADDRESS) and jumping to this start address using the stored contents at this address as a start address. Returning to FIG. 16, if the determination in step 560 is "NO", this indicates that the search task level program has not been requested to start, nor has its execution been interrupted. In this case, the search will proceed to the next task level. In other words, the task level n becomes n+1, and the task level moves by one level. Here, it is checked whether n is MAX, that is, 4 in this case, and if it is not 4, the process returns to step 560. Repeat this and when n=4, the point 566
Return to the point where Back Ground Job left off. In other words, at point 566, task level zero ~
It turns out that all programs up to 3 do not need to be executed, and the process returns to the point where the background job was interrupted before the IRQ occurred. Figure 15 shows the task control system mentioned above.
This figure shows the relationship between the word TCW, the TTM representing the task start cycle in the ROM, and the task start address table. ROM corresponding to 0 to 3 of task control word TCW
There is a task activation period TTM in the TCW counter, and the TCW counter is
CNTR0~3 are updated individually and each task's
When the TTM matches, a flag is set in b6 of the TCW. This flag then searches the task start address TSA in the ROM for the start address of the task, and jumps to that start address. Selected programs 1 to 4 are executed. During this execution, a flag is set in b7 of the TCW corresponding to the program in the RAM 106. As long as this flag is set, it can be determined that the program is being executed.
In this way, task scheduler 2 in Figure 3
42, programs at levels 0 to 3 are executed. For example, if an interrupt (IRQ) occurs while any of the programs 252 to 258 at levels 0 to 3 is being executed, the task is interrupted again and the interrupt (IRQ) is processed. The task whose execution has just started due to the occurrence of an interrupt (IRQ) will eventually end its processing. In order to make an exit report, the exit report (EXIT) program 26
Jump to 0. The details of this exit report (EXIT) program are shown in FIG. This program consists of steps 592 and 594 for finding finished tasks. In steps 592 and 594, the task
Search from level zero to find the finished task level. This advances to step 596, where the flag b7 (RUN flag) of the task control word (TCW) of the completed task is reset. This means that the program has completely finished executing. Then, the process returns to the task scheduler again, and the next execution program is determined. FIG. 20 is a level 0 program. As shown in this program and Table 1, a startup request is issued every 10 milliseconds. ADC1 at step 650
At step 654, the next data to be acquired is selected, and at step 656, the ADC 1 is activated to acquire the next data. Also 652
The step is to use ADCEND IRQ before startup, and if the pre-start flag is set,
Since it has not yet started, restart the interrupt interruption (RTI), that is, return to the interrupted program. This program is the initialization (INITIALIZ) program 204 shown in FIG. In step 658, intake manifold pressure P, which is data of AD2, is fetched, and in step 670, ADC2 is activated to fetch the next data. Step 67
2 takes in the engine speed. After this, in step 674, it is determined whether the start-up is complete. If starting is completed, the process jumps to step 682. On the other hand, if this is not the case, it is determined in step 676 whether it is before starting or during starting. If the measured speed N of the engine has not reached the starting rotational speed, the engine has not yet been started, and the process jumps to step 682. If the engine is starting, the process moves to step 678, and the mode (MODE) register 172 is set to "H" in order to release the inhibition of output from the input/output circuit 108 shown in FIG. Then, a flag indicating that the engine is starting is set. Note that this level (LEVEL) zero task is requested to start every 10 mSEC, so it is executed approximately every 10 mSEC. Therefore, during startup, steps 678 and 68 are executed every 10 mSEC.
0 is executed. Once set, no actual harm will occur even if flags or data with the same purpose are set. Standard rotation angle interrupt (INTL IRQ) at step 680
In order to make it possible to accept the request, an "H" flag is set in the MASK register 196 shown in FIG. 2, and an engine stall detection flag is also set in order to detect engine stoppage. This detection flag is used in step 454 of FIG. In steps 682 and 684, if the engine speed is greater than the idle speed value NLL, the NLL flag is set. At step 686, it is determined whether the start-up is complete. If the measured value N is greater than the rotational speed at which it can be determined that the start has been completed, it is determined that the start has been completed, and a start complete flag is set. If not, reset the NLL flag. And this level (LEVEL)
The zero task has finished, and in order to report its completion,
Jump to the exit report (EXIT) program 260 and clear the b7 bit flag of RAM 106TCW0 in FIG. FIG. 21 shows a level 1 program, and in step 702 it is determined whether the program is being started. When starting, fuel is supplied during starting and ignition timing is determined, so step 70 is performed for these calculations.
Proceed to step 4. In step 704, starting fuel is determined based on the engine cooling water temperature value TW. Also, in step 706, the engine rotation speed N and water temperature TW are determined.
The ignition position θ is determined based on the following. On the other hand, if the engine is not starting, the fuel supply amount is determined from the intake manifold pressure P and engine speed N in step 708, and the control circuit INJC15 in FIG.
Set to the INJD register of 2. Next, steps 710 to 724 are a flowchart for calculating the ignition position. The ignition advance value W controlled here has a characteristic as shown in FIG. 22 with respect to the engine rotational speed N.
In other words, when the idle rotation speed becomes lower than the NLL value, the angle is advanced toward the advance value W2. This increases torque output and lowers the engine speed to the target value.
Get closer to NLL. It should be noted that at the target rotational speed NLL, the advance angle amount is small and the value is W1, and since the ignition advance angle is small with respect to the engine rotational speed, the torque output is small. Therefore, the engine rotational speed should be balanced around the target rotational speed NLL value. Note that the advance angle value when the throttle switch is open and access is depressed is not shown in FIG. in this case,
Specifically, it is determined by a function of manifold pressure P and engine rotation speed N. This relationship shows the address of ROM104 as an ADV map as shown in Figure 4.
Stored in B500~B5FF. In step 710, it is determined whether the throttle switch is closed, and if it is closed, in step 712 it is determined whether the address rotation speed is greater than NLL. If it is larger here, step 71
6, an angle θ corresponding to the ignition advance angle W shown in FIG. 22 is determined as a function of the engine rotational speed N.
As shown in FIG. 22, this value W is constant near NLL even if the rotational speed N increases, so as the rotational speed N increases, it becomes retarded compared to the maximum torque output characteristic. Therefore, the output torque decreases. However, when the rotational speed is significantly larger than the target rotational speed NLL, the angle is advanced in accordance with the rotational speed N as shown in FIG. This area is used when engine braking is applied at high speeds, and is determined by taking into consideration factors such as smooth driving and exhaust gas conditions. In any case, the ignition position is determined so that if the rotational speed N is greater than NLL, the deceleration characteristic is applied, and if not, the ignition position is determined so that the acceleration characteristic is applied. If the throttle switch is open, θ is determined from the pressure P and rotational speed in step 718. When this pressure P is larger than the specified value (pressure indicating the start of turbocharger operation), a correction coefficient θC is added to θ obtained in step 718 in step 722, and the value is set as θ. This correction coefficient θC is obtained in a level 3 task. Details will be described later. Step 724 is for correcting the time from receiving the ignition pulse until the ignition coil current control section including the power transistor operates, and the correction amount f(N) has a characteristic as shown in FIG. In other words, the delay in the control section is considered to be approximately a constant time, and the engine rotation angle corresponding to this time is determined as f(N),
At step 724, f(N) and θ are added,
Let this value be θTAGET. This θTAGET is the first
It is used in steps 532 to 544 of the dynamic limitation explained in FIG. Steps 726 to 734 are safety measures, and in step 726 the rotation speed N is the maximum rotation speed.
If NMAX is exceeded, the process jumps from step 726 to step 734 and turns off the fuel pump. If the maximum rotational speed NMAX has not been exceeded, the maximum value of the pressure is determined in step 728. This is the 12th
This operation is the same as the flow for determining PMAX through steps 506 to 512 in the figure. Pressure P is PMAX
If so, jump to step 734 to turn off the fuel pump. If not, turn on the fuel pump. Note that no problem will occur even if data is set in the input/output circuit to turn it on further when it is already in the on state. Thereafter, in step 736, the flow start point of the primary current in the ignition coil is calculated, and the level 1 program is terminated by jumping to the exit report (EXIT) program. Figure 24 is a level 3 program;
The correction amount θC used in the figure is determined. If the pressure becomes greater than the pressure at which the turbocharger started operating, the ignition position is shifted as the turbocharger operates. This shift value θC is obtained from the characteristics shown in FIG. In other words, using the intake air temperature TA as a parameter, when the intake air temperature is low, the ignition position is on the advance side, and as the intake air temperature rises, it moves to the lag side.
Therefore, the correction value θC becomes a larger positive value as the intake air temperature TA becomes higher. FIG. 26 is a detailed diagram of the control circuits EGRC168 and ISCC164 in FIG. 2. In Figure 2, ISCD and
Each register of EGRD represents the pulse width.
Corresponds to register 802. Also ISCP and EGRP
The register corresponding to 806 is 806. Assume that bit b0 of the mode (MODE) register 172 is set to "H". Therefore, AND gates 166 (Fig. 2) and 816 are both in operation. A timer 804 consisting of a counter circuit counts the clocks from an AND gate 816. This count value B is compared with the value of the register 806 by the comparator 810, and when the value of the count value B exceeds the value C of the register 806, the timer 804
is cleared. Therefore, the timer 804 repeats counting at a period determined by the value C of the register 806. Further, the count value of the timer 804 is compared with the value of the register 802 by a comparator 808. At this time, the value A of the register 802 is the count value B of the timer 804.
The flip-flop 812 is set under a larger condition, and reset under the condition that the value B is greater than or equal to the value A. Therefore, the set time of flip-flop 812 is determined by the value A of register 802. By increasing this value A, the flip-flop 81
The setting time for 2 is longer. Furthermore, as mentioned above, the count of timer 804 is repeated at a frequency corresponding to the set value of register 806, so that the set output of flip-flop 812 is repeatedly output according to the repetition period according to the set value of register 806. MODE register 1
Since the b0 bit of 72 (Fig2) goes to “H” level,
It is output via AND gate 166. When b0 of MODE register 172 is set to “L”
AND gates 166 and 816 are turned off, the output of flip-flop 812 is stopped, and at the same time the input to timer 804 is also stopped. Therefore, to the MODE register 172 shown in FIG.
By setting control data from the CPU,
The start or stop of the circuit operation shown in FIG. 26 can be controlled. FIG. 26 shows an example in which AND gates 166 and 816 are controlled by b0 of the MODE register, and b0 is the bit that controls ISCC 164 in FIG. The EGRC 168 in FIG. 2 has the same configuration as in FIG. 26, but the start/stop of the ISCC 164 operation is controlled by the b0 bit of the MODE register, and the EGRC 168 is controlled by the b2 bit. FIG. 27 is a detailed view of the IGNC 156 in FIG. The CPU sets the data that controls the starting point of primary current to the ignition coil to the DWL register.
Data representing ignition timing is set in the ADV register. Now set the DWL register value to A,
Let C be the set value of the ADV register. Now, the b1 bit of MODE Resta 172 is “H”
, AND gates 158 and 860 are in a communicating state, and the POS pulse is input to counter 850 through AND gate 860. This count value of 850 therefore increases with the engine crank angle and indicates the reference angle.
Cleared by REF pulse. Let this count value be B. When the count value is small, the output of comparator 852 (A>B) is applied to flip-flop 856 via an OR gate, and flip-flop 856 is reset. Therefore, no pulse output is output from AND gate 158. When the count value of the counter 850 increases, the count value of the counter 850 becomes larger than the value A of the DWL register, and the flip-flop 856 is set via the AND gate 864. This set output is
The primary coil current is applied to the ignition system through AND gate 158 and further through AND gate 160 of FIG. 2 to flow the ignition coil. When the count value becomes higher still, the flip-flop 856 is turned OFF again due to the C≦B output of the comparator 854.
As a result, the pulse output from the AND gate 858 is stopped, and a spark for ignition is generated. Details of DIO in FIG. 2 are shown in FIG. 28. In this diagram, DDR192 is from DIO input/output port DIO0.
This determines whether DIO7 is in the input state or output state. The signal from the bit set to “H” in DDR corresponds to 872~
It is added to the tristate of 886 and the tristate becomes conductive. As a result, the DOUT bit corresponding to the "H" bit of DDR is outputted via the corresponding tri-state. On the other hand, the signals on lines DIO0 to DIO7 can be freely read by the CPU via buffer amplifiers 892 to 904. Since the signal on the line corresponding to the non-conducting tristate among the tristates 872 to 886 depends on the external state, the external state can be read for this line. Figure 29 is a detailed diagram of INJC152 in Figure 2, and the REF pulse from the crank angle sensor is set at a certain angle (for example, 80 degrees or 90 degrees) before the top dead center of the crank angle.
Occurs at (degrees). Crank angle top dead center (TDC)
The relationship between REF and REF is shown in A and B of Fig. 30. now
Assuming that the b4 bit of the MODE register 172 is "H", the gates 910, 912,
154 (Fig2) is ON. Therefore, the count value of the counter 904 is as shown in FIG. 30C.
Cleared on every REF pulse. register 902
The value A is a register that receives and holds the value that determines the injection start point from the CPU. Value A of register 902 and count value B are set to comparator 906,
Set flip-flop 908. When flip-flop 908 is set
A pulse is sent from the AND gate 154 and sent to the injection valve 28. Furthermore, the gate 912 is opened and a timer 916 consisting of a counter counts the clock pulses. The INJD register 914 is the INJD register of FIG. 2, and the valve is opened for a time corresponding to the set value C of this register. That is, while the count value D of the timer 916 is smaller than C, the flip-flop 920 is set;
Under the condition of ≦D, the flip-flop 920 is reset and the injection pulse from the AND gate 154 is stopped. In this way, the starting point and valve opening time of fuel injection can be controlled. Furthermore, set b4 of MODE register 172 to zero (L)
By doing so, the output of gate 154 and all operations can be stopped. As explained above, according to the present invention, ignition position data based on the control state of intake air to the engine is not directly used for ignition control, but is based on the ignition position where the previous ignition was actually performed. Determine by adding or subtracting the specified value to the value.
Therefore, for the value actually ignited before the above,
The current ignition position will not change beyond the specified limit.
This eliminates sudden changes in the ignition position and smoothes engine torque changes. Furthermore, according to this embodiment, calculation of ignition position data based on the control state of intake air to the engine is performed as a certain period of time elapses. On the other hand, this ignition position data is corrected in synchronization with engine rotation. For this reason, most of the execution time is performed over a certain period of time, and the amount of processing required of the computer is less affected by changes in engine rotation speed, making it stable.This makes it possible to evaluate the ability of the computer. Can be set higher, improving control ability.

【図面の簡単な説明】[Brief explanation of the drawing]

第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…フリ
ツプフロツプ。
Figure 1 is an overall system diagram of the engine control system, Figure 2 is a block diagram of the control circuit in Figure 1, Figure 3 is a program system diagram, and Figure 4 is a diagram of the control circuit in Figure 2.
ROM program storage diagram, Figure 5 is a detailed diagram of the initialization (INTIALIZ) program 204 in Figure 3, Figure 6 is a detailed diagram of the monitoring (MONIT) program 206 in Figure 3, and Figure 7 is an ignition timing characteristic diagram. , FIG. 8 is a fuel supply characteristic diagram, FIG. 9 is a characteristic diagram of air bypass control, FIG. 10 is a detailed diagram of the background program 208 in FIG. 3, and FIG. 11 is a diagram of the programs 226, 228 in FIG. 230, FIG. 12 is a detailed diagram of the program 232 in FIG. 3, FIG. 13 is a detailed diagram of the dynamic limitation program (DYNAL) 502 in FIG. 12, and FIG. 14 is a detailed diagram of the program 262 in FIG. 3. 15 is a detailed diagram of the operation of FIG. 11, FIG. 16 is a detailed diagram of the program 242 of FIG. 3, FIG. 17 is a detailed diagram of the program 260 of FIG. 3, and FIG. Figure 19 is an explanatory diagram of the operation in Figure 12, Figure 20 is the program 25 in Figure 3.
2 detailed diagram, Figure 21 is the program 25 in Figure 3.
4 is a detailed diagram, FIG. 22 is an explanatory diagram of the operation of FIG. 21,
FIG. 23 is a characteristic diagram of ignition delay correction, FIG. 24 is a detailed diagram of the program 258 in FIG. 3, FIG. 25 is an explanatory diagram of the operation of FIG. 24, FIG. 26 is a detailed diagram of FIG. 2 is a detailed diagram of the control circuit 156 in FIG. 2, FIG. 28 is a detailed diagram of the control circuit 192 in FIG. 2, and FIG. 29 is a detailed diagram of the control circuit 152 in FIG.
FIG. 30 is a detailed diagram of the operation of FIG. 29. 2...Air cleaner, 4...Turbo charger,
6... Turbine, 8... Compressor, 10... Throttle valve, 12... Accelerator pedal, 14... Air bypass valve, 16... Intake valve, 20... Fuel tank, 22... Filter, 24... Fuel pump,
26...Fuel pressure control valve, 28...Injection valve, 30...Control unit, 40...Battery, 42...Key switch,
44...Ignition coil, 46...Distributor,
50... Spark plug, 49... Piston, 52... Exhaust pipe, 54... Catalyst unit, 56... Muffler, 60...
Bypass passage, 62... EGR valve, 64... Starter motor, 66... Starter switch, 72... Knock sensor, 74... Throttle sensor, 76... Throttle switch, 78... Pressure sensor, 80... Crank angle sensor, 82... Exhaust gas sensor, 102
...CPU, 104...ROM, 106...RAM, 10
8...I/O circuit, 110...Bus line, 126...
Adjustment voltage generator, 122... Voltage sensor, 124...
Atmospheric temperature sensor, 128...Throttle angle sensor, 1
30... Multiplexer, 132... Analog-digital conversion circuit, 134... Register, 136... Analog-digital conversion circuit, 138... Register, 1
42...Top gear switch, 152...Injector control circuit, 154...AND gate, 156...Ignition pulse generation circuit, 140...Angle signal processing circuit,
158...AND gate, 160...AND gate, 1
62...Ignition, 164...Bypass valve control circuit, 166...AND gate, 168...EGR
Volume control pulse generation circuit, 170...AND gate,
172...Mode register, 192...Register, 1
94...Register, 196...Mask register, 19
0...Status register, 204...Initialize program, 206...Monitoring program, 208
...Background job, 224...Interrupt factor analysis program, 226...ADC1 termination program, 2
28... ADC2 termination program, 230... Certain time elapsed interrupt (INTV IRQ) processing program, 23
2...Reference angle interrupt processing program (INTL IRQ),
262... Engine stall processing program, 242... Task scheduler program, 252... Level zero program, 254... Level 1 program, 25
6... Level 2 program, 258... Level 3 program, 256... Completion report program, 802...
Register, 804...Counter, 806...Register, 808...Comparator, 810...Comparator, 812...Flip-flop, 850...Counter, 852...Comparator, 854...Comparator, 586...Flip-flop, 872-886
... Tri-state circuit, 902 ... Register, 90
4...Counter, 906...Comparator, 908...
Flip-flop, 910...AND gate, 91
2...AND gate, 914...register, 916...
Counter, 918...Comparator, 920...Flip-flop.

Claims (1)

【特許請求の範囲】[Claims] 1 エンジンへ吸入される空気を導く吸気手段
と;前記エンジンへ吸入される空気の量を制御す
るスロツトルバルブと;前記エンジンへ吸入され
る空気の制御状態に基づいて所定の空燃比の混合
気が得られるように燃料量を演算し、更に前記エ
ンジンの燃焼室の混合気に点火するのに適した点
火位置を演算するコンピユーターと;前記コンピ
ユータの出力データに基づき燃料および点火のた
めのそれぞれの制御信号を発生する出力手段と;
それぞれの制御信号に応じて燃料を供給しさらに
点火を行なう燃料供給手段および点火手段とを有
するものにおいて、前記エンジンに吸入される空
気の制御状態に応じて第1の点火位置を新たに求
め、既に記憶されていた第1の点火位置を表わす
データの代りに新たに求められた第1の点火位置
を表わすデータを記憶するという処理を一定時間
経過する毎に実行する第1のステツプと;前記記
憶されている第1の点火位置を表わすデータを読
み出し、この値を予め定めた値だけ補正するとい
う処理を前記エンジンの出力軸の回転に同期して
実行する第2のステツプと、前記第2のステツプ
で求められた値に応じて前記出力手段へ点火位置
のデータを送る第3のステツプよりなることを特
徴とするエンジンの点火時期制御方法。
1. An intake means for guiding air to be taken into the engine; a throttle valve for controlling the amount of air taken into the engine; and an air-fuel mixture having a predetermined air-fuel ratio based on the control state of the air taken into the engine. a computer that calculates the amount of fuel so as to obtain the desired amount of fuel and further calculates an ignition position suitable for igniting the air-fuel mixture in the combustion chamber of the engine; output means for generating a control signal;
In the apparatus having a fuel supply means and an ignition means for supplying fuel and igniting according to respective control signals, a first ignition position is newly determined according to a control state of air taken into the engine, a first step of performing a process of storing data representing a newly obtained first ignition position in place of data representing the already stored first ignition position every time a certain period of time elapses; a second step of reading stored data representing a first ignition position and correcting this value by a predetermined value in synchronization with the rotation of the output shaft of the engine; A method for controlling ignition timing of an engine, comprising a third step of transmitting ignition position data to the output means in accordance with the value determined in the step.
JP8292180A 1980-06-20 1980-06-20 Control method of ignition timing in engine Granted JPS578349A (en)

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 (en) 1987-05-29 1987-05-29 Torque controller
JP4249930A Division JPH0751932B2 (en) 1992-09-18 1992-09-18 Torque control device for internal combustion engine

Publications (2)

Publication Number Publication Date
JPS578349A JPS578349A (en) 1982-01-16
JPS632027B2 true JPS632027B2 (en) 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 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02233917A (en) * 1989-03-06 1990-09-17 Ig Tech Res Inc Air-conditioning structure

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6111430A (en) * 1984-06-28 1986-01-18 Hitachi Constr Mach Co Ltd Control device for system inclusive of prime mover and hydraulic pump
JPS6181577A (en) * 1984-09-07 1986-04-25 Honda Motor Co Ltd Control system of internal-combustion engine
JPS61182464A (en) * 1985-02-08 1986-08-15 Mitsubishi Motors Corp Controlling method of ignition time of spark ignition engine
JPS61234269A (en) * 1985-04-10 1986-10-18 Nissan Motor Co Ltd Ignition timing control device
JPH0660622B2 (en) * 1987-06-17 1994-08-10 株式会社日立製作所 Ignition timing control device for internal combustion engine
JPS63198748A (en) * 1987-09-10 1988-08-17 Nippon Denso Co Ltd Engine speed control method
JP2530366B2 (en) * 1989-02-20 1996-09-04 三菱電機株式会社 Fuel control device for internal combustion engine

Citations (5)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02233917A (en) * 1989-03-06 1990-09-17 Ig Tech Res Inc Air-conditioning structure

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
JPH0250303B2 (en)
US4482962A (en) Engine control method
JPS6127571B2 (en)
JPH0370106B2 (en)
JPS6212384B2 (en)
JPS6256339B2 (en)
JPS6315465B2 (en)
JPS632027B2 (en)
JPS6350546B2 (en)
JPH0375740B2 (en)
JP3326945B2 (en) Control device for internal combustion engine
JP3191676B2 (en) Ignition timing control device for internal combustion engine
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 (en) Engine control device
JPS627373B2 (en)
JPH0217703B2 (en)
JPS6218748B2 (en)
JPH0138176B2 (en)
JPH05321802A (en) Torque controller for internal combustion engine
US4522178A (en) Method of fuel control in engine
JPS5895214A (en) Signal processing method for hot-wire flow rate sensor