JPH0118443B2 - - Google Patents
Info
- Publication number
- JPH0118443B2 JPH0118443B2 JP55006802A JP680280A JPH0118443B2 JP H0118443 B2 JPH0118443 B2 JP H0118443B2 JP 55006802 A JP55006802 A JP 55006802A JP 680280 A JP680280 A JP 680280A JP H0118443 B2 JPH0118443 B2 JP H0118443B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- engine
- hereinafter referred
- interrupt
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D41/00—Electrical control of supply of combustible mixture or its constituents
- F02D41/24—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
- F02D41/26—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
- F02D41/263—Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor the program execution being modifiable by physical parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Mechanical Engineering (AREA)
- General Engineering & Computer Science (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Feedback Control In General (AREA)
- Control By Computers (AREA)
Description
本発明はエンジン制御方法に関し、さらに具体
的にはマイクロコンピユータを使用した自動車の
エンジン制御方法に関する。 最近ではエンジンの制御機能を向上させる目的
でマイクロコンピユータを使用したエンジンの総
合的制御が行なわれつつある。 マイクロコンピユータを使用したエンジン制御
システムに高精度の制御機能を持たせる為にはソ
フトウエアとして割込処理プログラム、特に一定
周期毎に実行されるインターバル割込処理プログ
ラムを多数、必要とされる。この結果、インター
バル割込により起動される各種制御プログラム
(以下、タスクと記す。)を管理する管理プログラ
ム(OS)によるセントラルプロセツシングユニ
ツト(以下、CPUと記す。)の占有時間の増大を
招来する。(特開昭53−146034号公報参照)。 本発明の目的はタスクの起動を管理するのに必
要な管理時間を短かくすることが可能なエンジン
の制御方法を提供することにある。 本発明の特徴は上記エンジン制御システムのタ
スク群の起動周期を管理し、起動周期に達した事
により起動要求フラグをセツトし、このフラグに
より該起動周期のタスクを実行するものにおい
て、起動周期の設定をそれより短かい起動周期タ
スクの実行回数で行なうようにしたことである。
このことにより起動管理に必要な時間が起動周期
の長いタスクに対して大幅に減少し、処理効率が
上昇する。 以下、本発明を図面に示した実施例に基づき詳
細に説明する。 第1図にはエンジン系統全体の制御装置が示さ
れている。図において、吸入空気はエアクリーナ
2、スロツトルチヤンバ4、吸気管6を通り、シ
リンダ8へ供給される。シリンダ8で燃焼したガ
スは、シリンダ8から排気管10を通り、大気中
へ排出される。 スロツトルチヤンバ4には、燃料を噴射するた
めのインジエクタ12が設けられており、このイ
ンジエクタ12から噴出した燃料はスロツトルチ
ヤンバ4の空気通路内で霧化され、吸入空気と混
合して混合気を形成し、この混合気は吸気管6を
通つて、吸気弁20の開弁により、シリンダ8の
燃焼室へ供給される。 インジエクタ12の出口近傍には絞り弁14,
16が設けらている。絞り弁14は、アクセルペ
ダルと機械的に連通するように構成され、運転者
により駆動される。一方、絞り弁16はダイヤフ
ラム18により駆動されるように配置され、空気
流量が小の領域で全閉状態となり、空気流量が増
大するにつれてダイヤフラム18への負圧が増大
することにより絞り弁16は開き始め、吸入抵抗
の増大を抑止する。 スロツトルチヤンバ4の絞り弁14,16の上
流には空気通路22が設けられ、この空気通路2
2には熱式空気流量計を構成する電気的発熱体2
4が配設され、空気流速と発熱体の伝熱量との関
係から定まる空気流速に応じて変化する電気信号
が取り出される。発熱体24は空気通路22内に
設けられているので、シリンダ8のバツクフアイ
ア時に生じる高温ガスから保護されると共に、吸
入空気中のごみなどによつて汚染されることから
も保護される。この空気通路22の出口はベンチ
ユリの最狭部近傍に開口され、その入口はベンチ
ユリの上流側に開口されている。 インジエクタ12に供給される燃料は、燃料タ
ンク30から、フユーエルポンプ32、フユーエ
ルダンパ34及びフイルタ36を介して燃圧レギ
ユレータ38へ供給される。一方、燃圧レギユレ
ータ38からはインジエクタ12へパイプ40を
介して加圧燃料が供給され、そのインジエクタ1
2から燃料が噴射される吸気管6の圧力と上記イ
ンジエクタ12への燃量圧の差が常に一定になる
ように、燃圧レギユレータ38から燃料タンク3
0へリターンパイプ42を介して燃料が戻される
ようになつている。 吸気弁20から吸入された混合気はピストン5
0により圧縮され、点火プラグ52によるスパー
クにより燃焼し、この燃焼は運動エネルギに変換
される。シリンダ8は冷却水54により冷却さ
れ、この冷却水の温度は水温センサ56により計
測され、この計測値はエンジン温度として利用さ
れる。点火プラグ52には点火コイル58より点
火タイミングに合わせて高電圧が供給される。 また、図示しないクランク軸にはエンジンの回
転に応じて基準クランク角毎におよび一定角度
(例えば0.5度)毎に基準角信号およびポジシヨン
信号を出すクランク角センサが設けられている。 このクランク角センサの出力、水温センサ56
の出力56A及び発熱体24からの電気信号はマ
イクロコンピユータなどからなる制御回路64に
入力され、制御回路64で演算処理され、この制
御回路64の出力によつてインジエクタ12及び
点火コイル58が駆動される。 以上の構成に基づき制御されるエンジン系統に
おいて、スロツトルチヤンバ4にはスロツトルの
絞り弁16を跨いで吸気管6に連通するバイパス
26が設けられ、このバイパス26には開閉制御
されるバイパスバルブ62が設けられている。こ
のバイパスバルブ62の駆動部には、前記制御回
路64の制御入力が供給され、開閉制御されるよ
うになつている。 このバイパスバルブ62は絞り弁16を迂回し
て設けられたバイパス26に臨ませられ、パルス
電流によつて開閉制御がなされる。このバイパス
バルブ62は弁のリフト量によりバイパス26の
断面積を変更するもの、このリフト量は制御回路
64の出力によつて駆動系が駆動され制御され
る。即ち、制御回路64においては駆動系の制御
のため開閉周期信号が発生され、駆動系はこの開
閉周期信号によつてバイパスバルブ64のリフト
量を調節するための制御信号をバイパスバルブ6
2の駆動部に付与するものである。 第2図、第1図の点火装置の説明図であり、増
幅器68を介してパワー・トランジスタ72へパ
ルス電流が供給され、この電流によりトランジス
タ72はONする。これによりバツテリ66より
点火コイル68へ一次コイル電流が流れる。この
パルス電流の立ち下がりでトランジスタ74は遮
断状態となり、点火コイル58の2次コイルに高
電圧を発生する。 この高電圧は配電器70を介してエンジンの各
シリンダにある点火プラグ52のそれぞれにエン
ジン回転に同期して高電圧を配電する。 第3図は排気ガス環流(以下EGRと記す)シ
ステムを説明するためのもので、負圧源80の一
定負圧が制圧弁84を介して制御弁86へ加えて
いる。制圧弁84はトランジスタ90に加えられ
繰返しパルスのONデユーテイ比率に応じ、負圧
源の一定負圧を大気88へ開放にする対する比率
を制御し、制御弁86への負圧の印加状態を制御
する。従つて制御弁86へ加えられる負圧はトラ
ンジスタ90のONデユーテイ比率で定まる。こ
の定圧弁84の制御負圧により排気管10から吸
気管6へのEGR量が制御される。 第4図は制御システムの全体構成図である。
CPU102とリード・オンリ・メモリ104
(以下ROMと記す)とランダム・アクセス・メ
モリ106(以下RAMと記す)と入出力回路1
08とから構成されている。上記CPU102は
ROM104内に記憶された各種のプログラムに
より、入出力回路108からの入力データを演算
し、その演算結果を再び入出力回路108へ戻
す。これらの演算に必要な中間的な記憶はRAM
106を使用する。CPU102,ROM104,
RAM106、入出力回路108間の各種データ
のやり取りはデータ・バスとコントロール・バス
とアドレス・バスからなるバスライン110によ
つて行なわれる。 入出力回路108には第1のアナログ・デイジ
タル・コンバータ(以下ADC1と記す)と第2
のアナログ・デイジタル・コンバータ(以下
ADC2と記す)と角度信号処理回路126と1
ビツト情報を入出力する為のデイスクリート入出
力回路(以下DIOと記す)との入力手段を持つ。 ADC1にはバツテリ電圧検出センサ132
(以下VBSと記す)と冷却水温センサ56(以下
TWSと記す)と大気温センサ112(以下TAS
と記す)と調整電圧発生器114(以下VRSと
記す)とスロツトル角センサ116(以下θTHS
と記す)とλセンサ118(以下λSと記す)と
の出力がマルチ・プレクサ120(以下MPXと
記す)に加えられ、MPX120によりこの内の
1つを選択してアナログ・デイジタル・変換回路
122(以下ADCと記す)へ入力する。ADC1
22の出力であるデイジタル値はレジスタ124
(以下REGと記す)に保持される。 また流量センサ24(以下AFSと記す)は
ADC2へ入力され、アナログ・デイジタル・変
換回路128(以下ADCと記す)を介してデイ
ジタル変換されレジスタ130(以下REGと記
す)へセツトされる。 角度仲センサ146(以下ANGSと記す)か
らは基準クランク角例えば180度クランク角を示
す信号(以下REFと記す)と微少角例えば1度
クランク角を示す信号(以下POSと記す)とが
出力され、角度信号処理回路126へ加えられ、
ここで波形整形される。 DIOにはアイドル・スイツチ148(以下
IDLE―SWと記す)とトツプ・ギヤ・スイツチ
150(以下TOP―SWと記す)とスタータ・ス
イツチ152(以下START―SWと記す)とが
入力される。 次にCPUの演算結果に基づくパルス出力回路
および制御対象について説明する。インジエクタ
制御回路(INJCと記す)は演算結果のデイジタ
ル値をパルス出力に変換する回路である。従つて
燃料噴射量に相当したパルス幅を有するパルスが
INJC134で作られ、ANDゲート136を介し
てインジエクタ12へ印加される。 点火パルス発生回路138(以下IGNCと記
す)は点火時期をセツトするレジスタ(ADVと
記す)と点火コイルの1次電流通電開始時間をセ
ツトするレジスタ(DWLと記す)とを有し、
CPUよりこれらデータがセツトされる。セツト
されたデータに基づいてパルスを発生し、第2図
に詳述した増幅器68へANDゲート140を介
してこのパルスを加える。 バイパスバルブ62の開弁率は制御回路(以下
ISCCと記す)142からANDゲート144を介
して加えられるパルスによつて制御される。
ISCC142はパルス幅をセツトするレジスタ
ISCDと繰返しパルス周期をセツトするレジスタ
ISCPとを持つている。 第3図に示したEGR制御弁86を制御するト
ランジスタ90を制御するEGR量制御パルス発
生回路180(以下EGRCと記す)にはパルスの
デユーテイを表わす値をセツトするレジスタ
EGRDとパルスの繰返し周期を表わす値をセツト
するレジスタEGRPとを有している。このEGRC
の出力パルスはANDゲート156を介してトラ
ンジスタ90に加えられる。 また1ビツトの入出力信号は回路DIOにより制
御される。入力信号としてはIDLE―SW信号、
TOP―SW信号、START―SW信号がある。ま
た出力信号としては燃料ポンプを駆動するための
パルス出力信号がある。このDIOは端子を入力端
子として使用するか、出力端子として使用するか
を決定するためのレジスタDDRと、出力データ
をラツチするためのレジスタDOUTとが設けら
れている。 レジスタ160は入出力回路108内部の色々
な状態を指令する命令を保持するレジスタ(以下
MODと記す)であり、例えばこのレジスタに命
令をセツトすることにより、ANDゲート136,
140,144,156を総てターンオンさせた
り、ターンオフさせたりする。このようにMOD
レジスタ160に命令をセツトすることにより、
INJCやIGNC,ISCCの出力の停止や起動を制御
できる。 第5図は第4図の制御回路のプログラムシステ
ムの基本構成を示す図である。 図においてイニシヤル処理プログラム202、
割込処理プログラム206、マクロ処理プログラ
ム228およびタスクデイスパツチヤ208はタ
スク群を管理するための管理プログラムである。
イニシヤル処理プログラム202はマイクロコン
ピユータを作動させるための前処理を行なうため
のプログラムであり、例えば、RAM106の記
憶内容をクリアしたり入出力インターフエイス回
路108のレジスタ類の初期値を設定したり、さ
らにはエンジン制御を行なうのに必要な前処理を
行なうための入力情報例えば冷却水温Tw、バツ
テリ電圧等のデータを取込むための処理を行な
う。また、割込処理プログラム206は各種の割
込を受け付け、その割込要因を分析し、タスク群
210ないし226の内の必要なタスクを起動さ
せるための起動要求をタスク制御テーブルにセツ
トすると共にタスクデイスパツチヤ208に出
す。割込要因には電源電圧、冷却水温度等の入力
情報をAD変換終了後に発生するAD変換割込
(ADC)、エンジン回転に同期して発生するイニ
シヤル割込(INTL)、又設定された一定時間毎
に、例えば10ms毎に発生するインターバル割込
(INTV)、更にはエンジンのストツプ状態を検出
し、発生するエンスト割込(ENST)等がある。 タスク群210乃至226の各タスクには優先
順位を表わすタスク番号が割合てられており、各
タスクはタスクレベル0乃至2の何れかのタスク
レベルに属する。即ち、タスク0乃至タスク2は
タスクレベル0に、タスク3乃至タスク5はタス
クレベル1に、更にタスク6乃至タスク8はタス
クレベル2に各々属する。 タスクデイスパツチヤ208は前記各種割込に
基づく起動要求を受けこれらの起動要求に対応す
る各種タスクに付けられた優先順位に基づき
CPUの占有時間を割り当てる。 ここでタスクデイスパツチヤ208によるタス
クの優先制御は下記の方法に拠る。(1)優先度の低
いタスクを中断し、優先度の高いタスクへの実行
権の移行はタスクレベル間のみで行なう。なおこ
こではレベル0が最も優先度が高いものとする。
(2)同じタスクレベル内で、現在実行中又は中断中
のタスクがある場合は、該タスクが最も優先度が
高く該タスクが終了するまで他のタスクは動作で
きない。(3)同じタスクレベル内で複数のタスクに
起動要求がある場合には、タスク番号が小さい程
優先度が高いものとする。タスクデイスパツチヤ
208の処理内容は後述するが本発明の一実施例
では上記優先制御を行なうためにタスク単位に
RAMにタスク制御テーブルを設けるように構成
している。そして上記各タスクの実行終了毎にそ
のタスクの実行終了報告をマクロ処理プログラム
228に行ないタスク制御テーブルに記録する。 次にタスクデイスパツチヤ208の処理内容に
ついて第6図乃至第9図に基づき説明する。第6
図はタスクデイスパツチヤ208の管理する
RAMに設けられたタスク制御テーブルを示す。
このタスク制御テーブルにはブロツクがタスクレ
ベルに対応して設けられており、本実施例ではタ
スクレベル0乃至2の3組設けられている。各ブ
ロツクには各々8ビツトが割り当てられ、その内
0乃至2ビツト目(Q0〜Q2)までが起動要求タ
スク表示を行なう起動ビツトであり、7ビツト目
(R)が同一タスクレベル中の何れかのタスクが
現在中断中(実行中も含む)であるかを示す実行
ビツトを表わす。そして前記起動ビツトQ0乃至
Q2はそれぞれ各タスクレベル中で実行優先度の
高い順に配列されており、例えば第5図中でタス
ク4に該当する起動ビツトはタスクレベル1の
Q0である。ここでタスクの起動要求があつた場
合タスクに対応した起動ビツトにフラグが割込処
理プログラムで立てられ、一方タスクデイスパツ
チヤ208は出された起動要求を高いレベルのタ
スクに該当する起動ビツトより順に検索し、出さ
れた起動要求に該当するフラグをリセツトすると
共に実行ビツトにフラグ1を立て、該当タスクを
起動させるための処理を行なう。 第7図はタスクデイスパツチヤ208の管理す
るRAM106に設けられたスタートアドレステ
ーブルである。スタートアドレスSA0乃至SA8は
第5図に示したタスク群210乃至226の各タ
スク0乃至8に該当するスタートアドレスを示
す。各スタートアドレス情報には16ビツトが割合
てられ、これらのスタートアドレス情報は後述す
る如くタスクデイスパツチヤ208により起動要
求のあつた該当タスクを起動するのに使用され
る。 次に第8図乃至第9図にタスクデイスパツチヤ
の処理フローを説明する。第8図に於いてステツ
プ300でタスクデイスパツチヤの処理が開始さ
れるとステツプ302でタスクレベルlに属する
タスクが実行中断中か否かが判断される。ここで
スタート時はl=0であり、レベルゼロより検索
する。実行ビツト(第6図のR0ビツト)に1が
立つていたらマクロ処理プログラム228により
未だタスク終了報告がタスクデイスパツチヤ20
8に出されていない状態のプログラムがレベルゼ
ロのタスク内にあることを意味し、このタスクは
実行が中断されていたものである。すなわちこの
実行中だつたタスクがより優先レベルが高い割込
みが生じたために中断させられている状態を示す
ものである。従つて、実行ビツト(R0)にフラ
グ1が立つていたらステツプ302より314に
ジヤンプし、中断タスクを再開する。 一方、実行ビツト(R0)にフラグ1が立つて
いない、即ち実行表示フラグがリセツトされてい
る場合にはステツプ304に移行し、レベルl=
0のタスク内に起動待ちタスクがあるか否かが判
断される。即ち、レベルl=0の起動ビツトを対
応するタスクの実行優先度の高い順、即ちQ0,
Q1,Q2の順に検索する。タスクレベルlに属す
る起動ビツトにフラグ1が立つていない場合はス
テツプ306に移行し、タスクレベルの高レベル
から低レベルへの更新が行なわれる。即ちタスク
レベルl=0は+1インクリメントされl+1→
lとする。ステツプ306でタスクレベルの更新
が行なわれるとステツプ308に移行しタスクレ
ベルの全レベルがチエツクされたか否かが判断さ
れる。全レベルのチエツクが行なわれていない、
即ちl=3でない場合にはステツプ302に戻り
同様に上記手順で処理が行なわれる。ステツプ3
08でタスクレベルの全レベルがチエツクされて
いる場合にはステツプ310に移行し、割込み解
除が行なわわれる。即ち、ステツプ302乃至ス
テツプ308までの処理期間中は割込みを禁止し
ているのでこのステツプで割込み解除が為され
る。そして次のステツプ312で次の割込みを待
つ。このステツプ312でバツクグランドのタス
クを行なうようにしても良い。 次に前記ステツプ304でタスクレベルlに起
動待ちタスクがある場合、即ちタスクレベルlに
属する起動ビツトにフラグ1が立つている場合に
は第9図のステツプ400に移行する。ステツプ
400及び402のループで、タスクレベルlの
どの起動ビツトにフラグ1が立つているかを検索
する。対応する優先実行度の高いレベルの順に即
ちQ0,Q1,Q2の順で検索するように、先ず相対
タスク番号mをゼロにする。ステツプ401で
Qm=1かを判断する。またステツプ402で次
のタスク番号へ移るためにmをインクリメントす
る。該当する起動ビツトを割出したらステツプ4
04に移行し、ステツプ404ではそのフラグの
立つている起動ビツトをリセツトし、その該当タ
スクレベルのlの実行ビツト(以下Rビツト)に
フラグ1を立てる。更にステツプ406では起動
タスク番号をレベルlと相対タスク番号mより式
n=l×3+mを用いて割出し、ステツプ408
でこのタスク番号nからROMの絶対アドレスを
指定し、(このアドレスはスタートアドレステー
ブルの記憶番地となる。)第7図に示したRAM
に設けられたスタートアドレステーブルにより該
当する起動タスクのスタートアドレス情報を取出
す。 次にステツプ410では該当起動タスクを実行
するか否かの判断が行なわれる。ここでは取出し
たスタートアドレス情報が特定の値、例えば0で
あれば該当タスク実行は行なわなくてよいと判断
される。この判断ステツプはエンジン制御を行な
う前記タスク群の内、各車種により選択的に特定
のタスクのみの機能を持たせるのに必要なもので
ある。ステツプ410で該当タスクの実行が停止
であると判断された場合にはスステツプ414に
移行し、該当タスクレベルlのRビツトをリセツ
トする。そして更にステツプ302に戻りタスク
レベルl内のタスクに起動要求のでているタスク
があるか否かが判断される。これは同一タスクレ
ベルl中に複数の起動ビツトにフラグが立つてい
る場合があり得るのでステツプ414でRビツト
をリセツトした後ステツプ302に移行するよう
に構成されている。 一方ステツプ410で該当タスク実行が停止で
ない場合即ち実行する場合にはステツプ412へ
移行し該当タスクへジヤンプし、タスクの実行が
行なわれる。 次に第10図はマクロ処理プログラム228の
処理フローを示す図である。このプログラムは終
了マスクを見つけるためのステツプ562と56
4から成る。このステツプ562と564で先ず
タスクレベルの0より検索し、終了したタスクレ
ベルを見つける。これによりステツプ568へ進
みここで終了したタスクのタスク制御ブロツクの
7ビツト目の実行(RUN)フラグをリセツトす
る。これによりそのタスクの実行が完全に終わつ
た事になる。そして再びタスクデイスパツチヤ2
08に戻り次の実行タスクが決定される。 次に第11図に第5図のプログラムシステムの
具体的実施例を示す。図に於いて管理プログラム
OSはイニシヤル処理プログラム202、割込み
処理プログラム206、タスクデイスパツチヤ2
08及びマスク処理プログラム228より成る。 割込み処理プログラム206には各種の割込み
処理プログラムがあり、イニシヤル割込み処理
(以下INTL割込み処理という)602はエンジ
ン回転に同期して発生するイニシヤル割込み信号
によつて、エンジン1回転当たりエンジン気筒数
の半分、即ち4気筒なら2回イニシヤル割込みが
発生する。このイニシヤル割込みによつてFGIタ
スク612で計算した燃料の噴射時間を入出力イ
ンターフエイス回路108のINJDレジスタに設
定する。AD変換割込み処理604は2種類あり
1つはAD変換器1割込み(以下ADC1と略す)
及びAD変換器2割込み(以下ADC2と略す)で
ある。AD変換器1は8ビツトの精度を有し、電
源電圧、冷却水温度、吸気温度及び使用調整など
の入力に用いられ、マルチプレクサー120に対
する入力ポイントの指定を行なうと同時に変換を
開始し、変換終了後にADC1割込みを発生する。
なお本割込みはクランキング前にのみ使用する。
又AD変換器128は空気流量の入力に用いられ
変換終了後にADC2割込みを発生する。なお、
本割込みもクランキング前にのみ使用する。 次にインターバル割込み処理プログラム(以下
INTV割込み処理プログラムと示す。)606で
はINTV割込み信号はINTVレジスタに設定した
時間例えば10ms毎に発生し、一定周期で起動す
べきタスクの時間監視用基本信号として用いられ
る。本割込み信号によつて、ソフトタイマの更新
を行ない、規定周期に達したタスクを起動する。
更にエンスト割込み処理プログラム(以下ENST
割込み処理プログラムと記す。)608ではエン
ジンのストツプ状態を検出するもので、INTL割
込み信号を検出すると、計数を開始し所定時間例
えば1秒以内に次にINTL割込み信号を検出でき
なかつた時、ENST割込みが発生する。例えば1
秒経過してもINTL割込み信号が検出できなかつ
た場合にエンストが起つたものと判断し点火コイ
ルへの通電及び燃料ポンプの停止を行なう。これ
らの処理の後スタータスイツチ152がオンする
まで待機する。上記割込み要因に対する処理概要
を表1に示す。
的にはマイクロコンピユータを使用した自動車の
エンジン制御方法に関する。 最近ではエンジンの制御機能を向上させる目的
でマイクロコンピユータを使用したエンジンの総
合的制御が行なわれつつある。 マイクロコンピユータを使用したエンジン制御
システムに高精度の制御機能を持たせる為にはソ
フトウエアとして割込処理プログラム、特に一定
周期毎に実行されるインターバル割込処理プログ
ラムを多数、必要とされる。この結果、インター
バル割込により起動される各種制御プログラム
(以下、タスクと記す。)を管理する管理プログラ
ム(OS)によるセントラルプロセツシングユニ
ツト(以下、CPUと記す。)の占有時間の増大を
招来する。(特開昭53−146034号公報参照)。 本発明の目的はタスクの起動を管理するのに必
要な管理時間を短かくすることが可能なエンジン
の制御方法を提供することにある。 本発明の特徴は上記エンジン制御システムのタ
スク群の起動周期を管理し、起動周期に達した事
により起動要求フラグをセツトし、このフラグに
より該起動周期のタスクを実行するものにおい
て、起動周期の設定をそれより短かい起動周期タ
スクの実行回数で行なうようにしたことである。
このことにより起動管理に必要な時間が起動周期
の長いタスクに対して大幅に減少し、処理効率が
上昇する。 以下、本発明を図面に示した実施例に基づき詳
細に説明する。 第1図にはエンジン系統全体の制御装置が示さ
れている。図において、吸入空気はエアクリーナ
2、スロツトルチヤンバ4、吸気管6を通り、シ
リンダ8へ供給される。シリンダ8で燃焼したガ
スは、シリンダ8から排気管10を通り、大気中
へ排出される。 スロツトルチヤンバ4には、燃料を噴射するた
めのインジエクタ12が設けられており、このイ
ンジエクタ12から噴出した燃料はスロツトルチ
ヤンバ4の空気通路内で霧化され、吸入空気と混
合して混合気を形成し、この混合気は吸気管6を
通つて、吸気弁20の開弁により、シリンダ8の
燃焼室へ供給される。 インジエクタ12の出口近傍には絞り弁14,
16が設けらている。絞り弁14は、アクセルペ
ダルと機械的に連通するように構成され、運転者
により駆動される。一方、絞り弁16はダイヤフ
ラム18により駆動されるように配置され、空気
流量が小の領域で全閉状態となり、空気流量が増
大するにつれてダイヤフラム18への負圧が増大
することにより絞り弁16は開き始め、吸入抵抗
の増大を抑止する。 スロツトルチヤンバ4の絞り弁14,16の上
流には空気通路22が設けられ、この空気通路2
2には熱式空気流量計を構成する電気的発熱体2
4が配設され、空気流速と発熱体の伝熱量との関
係から定まる空気流速に応じて変化する電気信号
が取り出される。発熱体24は空気通路22内に
設けられているので、シリンダ8のバツクフアイ
ア時に生じる高温ガスから保護されると共に、吸
入空気中のごみなどによつて汚染されることから
も保護される。この空気通路22の出口はベンチ
ユリの最狭部近傍に開口され、その入口はベンチ
ユリの上流側に開口されている。 インジエクタ12に供給される燃料は、燃料タ
ンク30から、フユーエルポンプ32、フユーエ
ルダンパ34及びフイルタ36を介して燃圧レギ
ユレータ38へ供給される。一方、燃圧レギユレ
ータ38からはインジエクタ12へパイプ40を
介して加圧燃料が供給され、そのインジエクタ1
2から燃料が噴射される吸気管6の圧力と上記イ
ンジエクタ12への燃量圧の差が常に一定になる
ように、燃圧レギユレータ38から燃料タンク3
0へリターンパイプ42を介して燃料が戻される
ようになつている。 吸気弁20から吸入された混合気はピストン5
0により圧縮され、点火プラグ52によるスパー
クにより燃焼し、この燃焼は運動エネルギに変換
される。シリンダ8は冷却水54により冷却さ
れ、この冷却水の温度は水温センサ56により計
測され、この計測値はエンジン温度として利用さ
れる。点火プラグ52には点火コイル58より点
火タイミングに合わせて高電圧が供給される。 また、図示しないクランク軸にはエンジンの回
転に応じて基準クランク角毎におよび一定角度
(例えば0.5度)毎に基準角信号およびポジシヨン
信号を出すクランク角センサが設けられている。 このクランク角センサの出力、水温センサ56
の出力56A及び発熱体24からの電気信号はマ
イクロコンピユータなどからなる制御回路64に
入力され、制御回路64で演算処理され、この制
御回路64の出力によつてインジエクタ12及び
点火コイル58が駆動される。 以上の構成に基づき制御されるエンジン系統に
おいて、スロツトルチヤンバ4にはスロツトルの
絞り弁16を跨いで吸気管6に連通するバイパス
26が設けられ、このバイパス26には開閉制御
されるバイパスバルブ62が設けられている。こ
のバイパスバルブ62の駆動部には、前記制御回
路64の制御入力が供給され、開閉制御されるよ
うになつている。 このバイパスバルブ62は絞り弁16を迂回し
て設けられたバイパス26に臨ませられ、パルス
電流によつて開閉制御がなされる。このバイパス
バルブ62は弁のリフト量によりバイパス26の
断面積を変更するもの、このリフト量は制御回路
64の出力によつて駆動系が駆動され制御され
る。即ち、制御回路64においては駆動系の制御
のため開閉周期信号が発生され、駆動系はこの開
閉周期信号によつてバイパスバルブ64のリフト
量を調節するための制御信号をバイパスバルブ6
2の駆動部に付与するものである。 第2図、第1図の点火装置の説明図であり、増
幅器68を介してパワー・トランジスタ72へパ
ルス電流が供給され、この電流によりトランジス
タ72はONする。これによりバツテリ66より
点火コイル68へ一次コイル電流が流れる。この
パルス電流の立ち下がりでトランジスタ74は遮
断状態となり、点火コイル58の2次コイルに高
電圧を発生する。 この高電圧は配電器70を介してエンジンの各
シリンダにある点火プラグ52のそれぞれにエン
ジン回転に同期して高電圧を配電する。 第3図は排気ガス環流(以下EGRと記す)シ
ステムを説明するためのもので、負圧源80の一
定負圧が制圧弁84を介して制御弁86へ加えて
いる。制圧弁84はトランジスタ90に加えられ
繰返しパルスのONデユーテイ比率に応じ、負圧
源の一定負圧を大気88へ開放にする対する比率
を制御し、制御弁86への負圧の印加状態を制御
する。従つて制御弁86へ加えられる負圧はトラ
ンジスタ90のONデユーテイ比率で定まる。こ
の定圧弁84の制御負圧により排気管10から吸
気管6へのEGR量が制御される。 第4図は制御システムの全体構成図である。
CPU102とリード・オンリ・メモリ104
(以下ROMと記す)とランダム・アクセス・メ
モリ106(以下RAMと記す)と入出力回路1
08とから構成されている。上記CPU102は
ROM104内に記憶された各種のプログラムに
より、入出力回路108からの入力データを演算
し、その演算結果を再び入出力回路108へ戻
す。これらの演算に必要な中間的な記憶はRAM
106を使用する。CPU102,ROM104,
RAM106、入出力回路108間の各種データ
のやり取りはデータ・バスとコントロール・バス
とアドレス・バスからなるバスライン110によ
つて行なわれる。 入出力回路108には第1のアナログ・デイジ
タル・コンバータ(以下ADC1と記す)と第2
のアナログ・デイジタル・コンバータ(以下
ADC2と記す)と角度信号処理回路126と1
ビツト情報を入出力する為のデイスクリート入出
力回路(以下DIOと記す)との入力手段を持つ。 ADC1にはバツテリ電圧検出センサ132
(以下VBSと記す)と冷却水温センサ56(以下
TWSと記す)と大気温センサ112(以下TAS
と記す)と調整電圧発生器114(以下VRSと
記す)とスロツトル角センサ116(以下θTHS
と記す)とλセンサ118(以下λSと記す)と
の出力がマルチ・プレクサ120(以下MPXと
記す)に加えられ、MPX120によりこの内の
1つを選択してアナログ・デイジタル・変換回路
122(以下ADCと記す)へ入力する。ADC1
22の出力であるデイジタル値はレジスタ124
(以下REGと記す)に保持される。 また流量センサ24(以下AFSと記す)は
ADC2へ入力され、アナログ・デイジタル・変
換回路128(以下ADCと記す)を介してデイ
ジタル変換されレジスタ130(以下REGと記
す)へセツトされる。 角度仲センサ146(以下ANGSと記す)か
らは基準クランク角例えば180度クランク角を示
す信号(以下REFと記す)と微少角例えば1度
クランク角を示す信号(以下POSと記す)とが
出力され、角度信号処理回路126へ加えられ、
ここで波形整形される。 DIOにはアイドル・スイツチ148(以下
IDLE―SWと記す)とトツプ・ギヤ・スイツチ
150(以下TOP―SWと記す)とスタータ・ス
イツチ152(以下START―SWと記す)とが
入力される。 次にCPUの演算結果に基づくパルス出力回路
および制御対象について説明する。インジエクタ
制御回路(INJCと記す)は演算結果のデイジタ
ル値をパルス出力に変換する回路である。従つて
燃料噴射量に相当したパルス幅を有するパルスが
INJC134で作られ、ANDゲート136を介し
てインジエクタ12へ印加される。 点火パルス発生回路138(以下IGNCと記
す)は点火時期をセツトするレジスタ(ADVと
記す)と点火コイルの1次電流通電開始時間をセ
ツトするレジスタ(DWLと記す)とを有し、
CPUよりこれらデータがセツトされる。セツト
されたデータに基づいてパルスを発生し、第2図
に詳述した増幅器68へANDゲート140を介
してこのパルスを加える。 バイパスバルブ62の開弁率は制御回路(以下
ISCCと記す)142からANDゲート144を介
して加えられるパルスによつて制御される。
ISCC142はパルス幅をセツトするレジスタ
ISCDと繰返しパルス周期をセツトするレジスタ
ISCPとを持つている。 第3図に示したEGR制御弁86を制御するト
ランジスタ90を制御するEGR量制御パルス発
生回路180(以下EGRCと記す)にはパルスの
デユーテイを表わす値をセツトするレジスタ
EGRDとパルスの繰返し周期を表わす値をセツト
するレジスタEGRPとを有している。このEGRC
の出力パルスはANDゲート156を介してトラ
ンジスタ90に加えられる。 また1ビツトの入出力信号は回路DIOにより制
御される。入力信号としてはIDLE―SW信号、
TOP―SW信号、START―SW信号がある。ま
た出力信号としては燃料ポンプを駆動するための
パルス出力信号がある。このDIOは端子を入力端
子として使用するか、出力端子として使用するか
を決定するためのレジスタDDRと、出力データ
をラツチするためのレジスタDOUTとが設けら
れている。 レジスタ160は入出力回路108内部の色々
な状態を指令する命令を保持するレジスタ(以下
MODと記す)であり、例えばこのレジスタに命
令をセツトすることにより、ANDゲート136,
140,144,156を総てターンオンさせた
り、ターンオフさせたりする。このようにMOD
レジスタ160に命令をセツトすることにより、
INJCやIGNC,ISCCの出力の停止や起動を制御
できる。 第5図は第4図の制御回路のプログラムシステ
ムの基本構成を示す図である。 図においてイニシヤル処理プログラム202、
割込処理プログラム206、マクロ処理プログラ
ム228およびタスクデイスパツチヤ208はタ
スク群を管理するための管理プログラムである。
イニシヤル処理プログラム202はマイクロコン
ピユータを作動させるための前処理を行なうため
のプログラムであり、例えば、RAM106の記
憶内容をクリアしたり入出力インターフエイス回
路108のレジスタ類の初期値を設定したり、さ
らにはエンジン制御を行なうのに必要な前処理を
行なうための入力情報例えば冷却水温Tw、バツ
テリ電圧等のデータを取込むための処理を行な
う。また、割込処理プログラム206は各種の割
込を受け付け、その割込要因を分析し、タスク群
210ないし226の内の必要なタスクを起動さ
せるための起動要求をタスク制御テーブルにセツ
トすると共にタスクデイスパツチヤ208に出
す。割込要因には電源電圧、冷却水温度等の入力
情報をAD変換終了後に発生するAD変換割込
(ADC)、エンジン回転に同期して発生するイニ
シヤル割込(INTL)、又設定された一定時間毎
に、例えば10ms毎に発生するインターバル割込
(INTV)、更にはエンジンのストツプ状態を検出
し、発生するエンスト割込(ENST)等がある。 タスク群210乃至226の各タスクには優先
順位を表わすタスク番号が割合てられており、各
タスクはタスクレベル0乃至2の何れかのタスク
レベルに属する。即ち、タスク0乃至タスク2は
タスクレベル0に、タスク3乃至タスク5はタス
クレベル1に、更にタスク6乃至タスク8はタス
クレベル2に各々属する。 タスクデイスパツチヤ208は前記各種割込に
基づく起動要求を受けこれらの起動要求に対応す
る各種タスクに付けられた優先順位に基づき
CPUの占有時間を割り当てる。 ここでタスクデイスパツチヤ208によるタス
クの優先制御は下記の方法に拠る。(1)優先度の低
いタスクを中断し、優先度の高いタスクへの実行
権の移行はタスクレベル間のみで行なう。なおこ
こではレベル0が最も優先度が高いものとする。
(2)同じタスクレベル内で、現在実行中又は中断中
のタスクがある場合は、該タスクが最も優先度が
高く該タスクが終了するまで他のタスクは動作で
きない。(3)同じタスクレベル内で複数のタスクに
起動要求がある場合には、タスク番号が小さい程
優先度が高いものとする。タスクデイスパツチヤ
208の処理内容は後述するが本発明の一実施例
では上記優先制御を行なうためにタスク単位に
RAMにタスク制御テーブルを設けるように構成
している。そして上記各タスクの実行終了毎にそ
のタスクの実行終了報告をマクロ処理プログラム
228に行ないタスク制御テーブルに記録する。 次にタスクデイスパツチヤ208の処理内容に
ついて第6図乃至第9図に基づき説明する。第6
図はタスクデイスパツチヤ208の管理する
RAMに設けられたタスク制御テーブルを示す。
このタスク制御テーブルにはブロツクがタスクレ
ベルに対応して設けられており、本実施例ではタ
スクレベル0乃至2の3組設けられている。各ブ
ロツクには各々8ビツトが割り当てられ、その内
0乃至2ビツト目(Q0〜Q2)までが起動要求タ
スク表示を行なう起動ビツトであり、7ビツト目
(R)が同一タスクレベル中の何れかのタスクが
現在中断中(実行中も含む)であるかを示す実行
ビツトを表わす。そして前記起動ビツトQ0乃至
Q2はそれぞれ各タスクレベル中で実行優先度の
高い順に配列されており、例えば第5図中でタス
ク4に該当する起動ビツトはタスクレベル1の
Q0である。ここでタスクの起動要求があつた場
合タスクに対応した起動ビツトにフラグが割込処
理プログラムで立てられ、一方タスクデイスパツ
チヤ208は出された起動要求を高いレベルのタ
スクに該当する起動ビツトより順に検索し、出さ
れた起動要求に該当するフラグをリセツトすると
共に実行ビツトにフラグ1を立て、該当タスクを
起動させるための処理を行なう。 第7図はタスクデイスパツチヤ208の管理す
るRAM106に設けられたスタートアドレステ
ーブルである。スタートアドレスSA0乃至SA8は
第5図に示したタスク群210乃至226の各タ
スク0乃至8に該当するスタートアドレスを示
す。各スタートアドレス情報には16ビツトが割合
てられ、これらのスタートアドレス情報は後述す
る如くタスクデイスパツチヤ208により起動要
求のあつた該当タスクを起動するのに使用され
る。 次に第8図乃至第9図にタスクデイスパツチヤ
の処理フローを説明する。第8図に於いてステツ
プ300でタスクデイスパツチヤの処理が開始さ
れるとステツプ302でタスクレベルlに属する
タスクが実行中断中か否かが判断される。ここで
スタート時はl=0であり、レベルゼロより検索
する。実行ビツト(第6図のR0ビツト)に1が
立つていたらマクロ処理プログラム228により
未だタスク終了報告がタスクデイスパツチヤ20
8に出されていない状態のプログラムがレベルゼ
ロのタスク内にあることを意味し、このタスクは
実行が中断されていたものである。すなわちこの
実行中だつたタスクがより優先レベルが高い割込
みが生じたために中断させられている状態を示す
ものである。従つて、実行ビツト(R0)にフラ
グ1が立つていたらステツプ302より314に
ジヤンプし、中断タスクを再開する。 一方、実行ビツト(R0)にフラグ1が立つて
いない、即ち実行表示フラグがリセツトされてい
る場合にはステツプ304に移行し、レベルl=
0のタスク内に起動待ちタスクがあるか否かが判
断される。即ち、レベルl=0の起動ビツトを対
応するタスクの実行優先度の高い順、即ちQ0,
Q1,Q2の順に検索する。タスクレベルlに属す
る起動ビツトにフラグ1が立つていない場合はス
テツプ306に移行し、タスクレベルの高レベル
から低レベルへの更新が行なわれる。即ちタスク
レベルl=0は+1インクリメントされl+1→
lとする。ステツプ306でタスクレベルの更新
が行なわれるとステツプ308に移行しタスクレ
ベルの全レベルがチエツクされたか否かが判断さ
れる。全レベルのチエツクが行なわれていない、
即ちl=3でない場合にはステツプ302に戻り
同様に上記手順で処理が行なわれる。ステツプ3
08でタスクレベルの全レベルがチエツクされて
いる場合にはステツプ310に移行し、割込み解
除が行なわわれる。即ち、ステツプ302乃至ス
テツプ308までの処理期間中は割込みを禁止し
ているのでこのステツプで割込み解除が為され
る。そして次のステツプ312で次の割込みを待
つ。このステツプ312でバツクグランドのタス
クを行なうようにしても良い。 次に前記ステツプ304でタスクレベルlに起
動待ちタスクがある場合、即ちタスクレベルlに
属する起動ビツトにフラグ1が立つている場合に
は第9図のステツプ400に移行する。ステツプ
400及び402のループで、タスクレベルlの
どの起動ビツトにフラグ1が立つているかを検索
する。対応する優先実行度の高いレベルの順に即
ちQ0,Q1,Q2の順で検索するように、先ず相対
タスク番号mをゼロにする。ステツプ401で
Qm=1かを判断する。またステツプ402で次
のタスク番号へ移るためにmをインクリメントす
る。該当する起動ビツトを割出したらステツプ4
04に移行し、ステツプ404ではそのフラグの
立つている起動ビツトをリセツトし、その該当タ
スクレベルのlの実行ビツト(以下Rビツト)に
フラグ1を立てる。更にステツプ406では起動
タスク番号をレベルlと相対タスク番号mより式
n=l×3+mを用いて割出し、ステツプ408
でこのタスク番号nからROMの絶対アドレスを
指定し、(このアドレスはスタートアドレステー
ブルの記憶番地となる。)第7図に示したRAM
に設けられたスタートアドレステーブルにより該
当する起動タスクのスタートアドレス情報を取出
す。 次にステツプ410では該当起動タスクを実行
するか否かの判断が行なわれる。ここでは取出し
たスタートアドレス情報が特定の値、例えば0で
あれば該当タスク実行は行なわなくてよいと判断
される。この判断ステツプはエンジン制御を行な
う前記タスク群の内、各車種により選択的に特定
のタスクのみの機能を持たせるのに必要なもので
ある。ステツプ410で該当タスクの実行が停止
であると判断された場合にはスステツプ414に
移行し、該当タスクレベルlのRビツトをリセツ
トする。そして更にステツプ302に戻りタスク
レベルl内のタスクに起動要求のでているタスク
があるか否かが判断される。これは同一タスクレ
ベルl中に複数の起動ビツトにフラグが立つてい
る場合があり得るのでステツプ414でRビツト
をリセツトした後ステツプ302に移行するよう
に構成されている。 一方ステツプ410で該当タスク実行が停止で
ない場合即ち実行する場合にはステツプ412へ
移行し該当タスクへジヤンプし、タスクの実行が
行なわれる。 次に第10図はマクロ処理プログラム228の
処理フローを示す図である。このプログラムは終
了マスクを見つけるためのステツプ562と56
4から成る。このステツプ562と564で先ず
タスクレベルの0より検索し、終了したタスクレ
ベルを見つける。これによりステツプ568へ進
みここで終了したタスクのタスク制御ブロツクの
7ビツト目の実行(RUN)フラグをリセツトす
る。これによりそのタスクの実行が完全に終わつ
た事になる。そして再びタスクデイスパツチヤ2
08に戻り次の実行タスクが決定される。 次に第11図に第5図のプログラムシステムの
具体的実施例を示す。図に於いて管理プログラム
OSはイニシヤル処理プログラム202、割込み
処理プログラム206、タスクデイスパツチヤ2
08及びマスク処理プログラム228より成る。 割込み処理プログラム206には各種の割込み
処理プログラムがあり、イニシヤル割込み処理
(以下INTL割込み処理という)602はエンジ
ン回転に同期して発生するイニシヤル割込み信号
によつて、エンジン1回転当たりエンジン気筒数
の半分、即ち4気筒なら2回イニシヤル割込みが
発生する。このイニシヤル割込みによつてFGIタ
スク612で計算した燃料の噴射時間を入出力イ
ンターフエイス回路108のINJDレジスタに設
定する。AD変換割込み処理604は2種類あり
1つはAD変換器1割込み(以下ADC1と略す)
及びAD変換器2割込み(以下ADC2と略す)で
ある。AD変換器1は8ビツトの精度を有し、電
源電圧、冷却水温度、吸気温度及び使用調整など
の入力に用いられ、マルチプレクサー120に対
する入力ポイントの指定を行なうと同時に変換を
開始し、変換終了後にADC1割込みを発生する。
なお本割込みはクランキング前にのみ使用する。
又AD変換器128は空気流量の入力に用いられ
変換終了後にADC2割込みを発生する。なお、
本割込みもクランキング前にのみ使用する。 次にインターバル割込み処理プログラム(以下
INTV割込み処理プログラムと示す。)606で
はINTV割込み信号はINTVレジスタに設定した
時間例えば10ms毎に発生し、一定周期で起動す
べきタスクの時間監視用基本信号として用いられ
る。本割込み信号によつて、ソフトタイマの更新
を行ない、規定周期に達したタスクを起動する。
更にエンスト割込み処理プログラム(以下ENST
割込み処理プログラムと記す。)608ではエン
ジンのストツプ状態を検出するもので、INTL割
込み信号を検出すると、計数を開始し所定時間例
えば1秒以内に次にINTL割込み信号を検出でき
なかつた時、ENST割込みが発生する。例えば1
秒経過してもINTL割込み信号が検出できなかつ
た場合にエンストが起つたものと判断し点火コイ
ルへの通電及び燃料ポンプの停止を行なう。これ
らの処理の後スタータスイツチ152がオンする
まで待機する。上記割込み要因に対する処理概要
を表1に示す。
【表】
イニシヤル処理プログラム202及びマクロ処
理プログラム228については記述の通りの処理
を行なう。 上記各種の割込みにより起動されるタスク群は
次の通りである。タスクレベル0に属するタスク
としてはAD2入力タスク(以下ADIN2タスクと
記す)、燃料噴射制御タスク(以下EGIタスクと
記す)及び始動モニタタスク(MONITタスクと
言う)がある。又タスクレベル1に属するタスク
としてはAD1入力タスク(以上ADIN1タスクと
記す)、時間係数処理タスク(以下AFSIタスク)
がある。更にタスクレベル2に属するタスクとし
てはアイドル回転制御タスク(以下ISCタスクと
記す)、補正計算タスク(以下HOSEIタスクと記
す)及び始動前処理タスク(以下ISTRTタスク
と記す)がある。 上記各タスクレベルの割り当てとタスクの機能
を表2に示す。
理プログラム228については記述の通りの処理
を行なう。 上記各種の割込みにより起動されるタスク群は
次の通りである。タスクレベル0に属するタスク
としてはAD2入力タスク(以下ADIN2タスクと
記す)、燃料噴射制御タスク(以下EGIタスクと
記す)及び始動モニタタスク(MONITタスクと
言う)がある。又タスクレベル1に属するタスク
としてはAD1入力タスク(以上ADIN1タスクと
記す)、時間係数処理タスク(以下AFSIタスク)
がある。更にタスクレベル2に属するタスクとし
てはアイドル回転制御タスク(以下ISCタスクと
記す)、補正計算タスク(以下HOSEIタスクと記
す)及び始動前処理タスク(以下ISTRTタスク
と記す)がある。 上記各タスクレベルの割り当てとタスクの機能
を表2に示す。
【表】
【表】
表2から明らかなように各種割込みにより起動
される各タスクの起動周期は予め定められており
これらの情報はROM104に格納されている。 次に第12図及び第13図に基づいて第11図
のソフトタイマテーブルを用いずにINTV割込の
起動をかける場合について説明する。 第12図はRAM106に設けられるソフトタ
イマフラグである。このソフトタイマフラグは
各々、ほぼ一定周期で起動されるようにタスク群
を管理するために設定されている。 場合によつては起動周期のうち異なる起動周期
の数だけのビツト数のみでも良い。ビツトを(以
下、これをフラグビツトと記す。)例えばF1〜
F8の8ビツトで構成されているとする。 そして、各フラグビツトは例えばフラグビツト
F1は10m sec、F2は20m sec、F3は40m
sec、……、F8は1280m secと倍数系列の起動
周期に対応づけられている。 これらの起動周期は倍数系列の数値であれば任
意に変更可能である。 さて、一定周期で起動されるタスク群とそれら
の起動周期との関係の一例を表3、表4に示す。
される各タスクの起動周期は予め定められており
これらの情報はROM104に格納されている。 次に第12図及び第13図に基づいて第11図
のソフトタイマテーブルを用いずにINTV割込の
起動をかける場合について説明する。 第12図はRAM106に設けられるソフトタ
イマフラグである。このソフトタイマフラグは
各々、ほぼ一定周期で起動されるようにタスク群
を管理するために設定されている。 場合によつては起動周期のうち異なる起動周期
の数だけのビツト数のみでも良い。ビツトを(以
下、これをフラグビツトと記す。)例えばF1〜
F8の8ビツトで構成されているとする。 そして、各フラグビツトは例えばフラグビツト
F1は10m sec、F2は20m sec、F3は40m
sec、……、F8は1280m secと倍数系列の起動
周期に対応づけられている。 これらの起動周期は倍数系列の数値であれば任
意に変更可能である。 さて、一定周期で起動されるタスク群とそれら
の起動周期との関係の一例を表3、表4に示す。
【表】
【表】
起動されるタスクと起動周期との関係が表1の
場合には前記ソフトタイマフラグののフラグビツ
トF1〜F6とタスク1〜タスク6とが対応してい
る。 また表2の場合には前記フラグビツトF1,F2
が夫々、タスク1,2に、フラグビツトF3がタ
スク3,4,5に、更にフラグビツトF4がタス
ク6,7に、フラグビツトF5,F6が夫々タスク
8,9に対応している。 そして本実施例では異なる起動周期のうち最小
の起動周期(以下、最小起動周期という。)に該
当するタスク、即ち本実施例では10m sec毎に起
動されるタスク0をインターバル割込により起動
し、該タスクの起動に伴い前記ソフトタイマフラ
グの判定結果に基づいて順次、倍数系列の起動周
期で他のタスクを起動するものである。 上記の処理内容を第13図の処理フローに基づ
き説明する。同図の処理フローでは一例としてタ
スク1の起動によりタスク2を起動する場合につ
いて示してあるが、他の場合、例えばタスク2に
よりタスク3を起動する場合も同様である(但
し、表1の場合に限る。尚、表2の場合について
は後述する。)。 同図において、ステツプ700でインターバル
割込によりタスク1が起動されると、次のステツ
プ702でソフトタイマフラグSTFのフラグビ
ツトF1が1であるか否かの判定が行われる。こ
こで前記ソフトタイマフラグSFTにおいて起動
されるべきタスクの起動周期に該当するフラグビ
ツトには“1”が立てられており、起動されない
タスクの起動周期に該当するフラグビツトは
“0”の状態にあるものとする。 さてステツプ702でソフトタイマフラグ
SFTのフラグビツトF1が“1”であると判定さ
れた場合にはステツプ704に移行し、フラグビ
ツトF1を“0”にし、次のステツプ708で再
度、前記フラグビツトF1が“1”であるか否か
の判定が行われる。 既にステツプ704でフラグビツトF1を“0”
にしてあるので、ステツプ708ではフラグビツ
トF1は“1”でないと判定され、次のステツプ
712に移行し、タスク1の本来の処理が行わ
れ、ステツプ714でタスク1は終了する。 他方、次の周期でタスク1がステツプ700で
起動される場合には既にソフトタイマフラグ
SFTのフラグビツトF1は既述の如く、ステツプ
704で“0”にされている為にステツプ702
ではフラグビツトF1は“0”であると判定され、
ステツプ706に移行する。 ステツプ706ではフラグビツトF1を“1”
にし、ステツプ708に移行する。ステツプ70
8で再度、フラグビツトF1が“1”であるか否
かの判定を行い、既にステツプ706でフラグビ
ツトF1を“1”にしてあるので、ステツプ71
0に移行する。 ステツプ710はタスク2の起動(第6図のタ
スク2に該当するQフラグを1にする。)を行い、
ステツプ712に移行し、タスク1の本来の処理
を行いステツプ714でタスク1を終了する。 以上の如くステツプ704,706で1周期
(この場合、タスク1の起動周期である20m sec)
毎にフラグビツトF1は“1”、“0”の状態を交
互に繰り返し、タスク1の起動時にフラグビツト
F1が“0”である場合、即ちタスク1の起動周
期の2倍の周期でタスク2は起動される。 従つて前掲の表1に示したようなタスク1乃至
タスク6を順次、起動する場合にはタスク1乃至
タスク5の冒頭または末尾にステツプ702〜7
12からなるプログラムを挿入することにより
(但し、ソフトタイマフラグの判定の対象となる
フラグビツトはF2〜F5に夫々、置換されるもの
とする。)可能となる。 次に表2の場合にはタスク1,2,3,6,
8,9については上述したステツプ702〜71
2からなるプログラムを各タスクに挿入すること
により順次、倍数系列の起動周期で起動される
が、タスク3と同一起動周期であるタスク4,5
及びタスク6と同一起動周期であるタスク7につ
いては既述した如くタスクデイスパツチヤ208
の管理するRAM106に設けられたタスク制御
ブロツクにおいて上記タスク4,5,7に該当す
る起動ビツトにフラグ1を立てることにより起動
される。 本実施例によれば第11図に示した如き起動周
期の異なる数だけのソフトタイマブロツクを
RAMに設ける必要がなくなるので、その分を他
の制御に振り当てることが可能となる。 第14図は第5図あるいは第11図の割込処理
プログラム206およびタスクデイスパツチヤー
の追加フローチヤートである。割込処理プログラ
ム206でINTVIRQであることがステツプ89
0で判断されると、ステツプ892へ進みレベル
0のQ0ビツトを1とする。これによりタスク0
である表2のADIN2の起動要求が登録されたこ
とになる。次にタスクデイスパの208へ進む。 ステツプ894は第8図および第9図のステツ
プ410までを示し、この動作は上で述べた通り
である。第9図のステツプ410でYESと判断
されるとステツプ896へ進む。このステツプ8
96〜910までは、第12図のソフトタイマカ
ウンタの更新を行なうソフトである。ステツプ8
96でソフトタイマの更新のクロツクとなるタス
クかどうかを判断する。表3の場合、タスク0〜
4がステツプ896でYESとなる。一方表4の
場合、タスク0,1,2,5,7,がYESとな
り、その他はNOとなる。ステツプ896で、F1
〜F8のFnのnを決定する。表3でタスク0のと
きn=1となり、F1についての更新判断を行う。
ステツプ902で第13図の702の如く、F1
が1かどうか判断する。YESであれば、ステツ
プ904でFnであるF1をゼロとし、一方NOで
あれば、ステツプ906でFnであるF1を1とす
る。FnであるF1が1となると、ステツプ910
で該当するタスクのQが1にされ、起動要求の登
録がなされる。この例では表3のタスク1に該当
するQである。このようにして起動要求が出さ
れ、第9図のステツプ411へと実行が進む。 次にIRQの発生回路を第15図に示す。レジス
タ735とカウンタ736と比較器737とフリ
ツプフロツプ738はINTVIRQの発生回路であ
り、レジスタ735にINTVIRQの発生周期例え
ば本実施例では10〔ms〕がセツトされる。これに
対しクロツクパルスがカウンタ736へセツトさ
れ、そのカウント値がレジスタ735と一致する
とフリツプフロツプ738をセツト状態とする。
このセツト状態でカウンタ736をクリアし、再
びカウントを再開する。従つて一定時間(10m
sec)ごとにINTVIRQが発生する。 レジスタ741とカウンタ742と比較器74
3、フリツプフロツプ744はエンジンの停止を
検知するENSTIRQの発生回路である。レジスタ
741とカウンタ742と比較器743は上の説
明と同様であり、カウント値がレジスタ741の
値に達するとENSTIRQを発生する。しかしエン
ジンの回転中はクランク角センサより一定クラン
ク角毎に発生するREFパルスによりカウンタ7
42がクリアされるのでカウンタ742のカウン
ト値がレジスタ741の値に達しないので
ENSTIRQは発生しない。 フリツプフロツプ738に発生したINTVIRQ
やフリツプフロツプ744に発生したENSTIRQ
さらにADC1やADC2で発生したIRQはそれぞれ
フリツプフロツプ740,746,764,76
8へセツトされる。またフリツプフロツプ73
7,745,762,766にはIRQを発生させ
るか禁止するかの信号がセツトされる。フリツプ
フロツプ737,745,762,766に
“H”がセツトされていればANDゲート748,
750,770,772は能動となり、IRQが発
生するとORゲートよりただちにIRQが発生する。 従つてフリツプフロツプ737,745,76
2,766のそれぞれに“H”を入るか“L”を
入るかによつてIRQの発生を禁止したり、禁止を
解除したりできる。またIRQが発生するとフリツ
プフロツプ740,746,764,768の内
容をCPUに取り込むことにより、IRQ発生の原
因が解かる。 IRQに応じてCPUがプログラムを実行し始め
た場合、そのIRQ信号はクリアする必要があるの
で実行を始めたIRQに関するフリツプフロツプ7
40,746,764,768の1つをクリアす
る。 以上に述べた本発明の実施例では自動車のエン
ジン制御に関して説明したがこれに限定されたも
のでなく他の計算機制御に適用可能であることは
勿論である。 以上、本発明は管理プログラムで行うべきイン
ターバル割込処理をタスクに分担させるように構
成したので、管理プログラムで担当する割込処理
に要する時間が減少し、割込処理能の向上、延い
ては制御性の向上が図れる。 第16図は本発明の他の実施例であり、ステツ
プ890でINTVIRQかどうかの判断を行なう。
このステツプは第14図のステツプ890と同様
である。ステツプ920でFnのnを1とする。
つまりFnをF1とし、F1についての処理を行うこ
とを決定する。ステツプ922でF1について第
13図の内容をしらべ前の状態がF1=1であれ
ば、ステツプ926でF1=0にし、F1=0であ
ればステツプ924でF1=1にする。ステツプ
928でn=8かを判断する。つまり第12図の
すべてのソフトタイマカウンタのビツトについて
の処理が終つたかを判断する。この場合n=1な
のでNOとなり、ステツプ930でn=2にわか
る。つまり次からF2のビツトの処理を行なう。
同様にしてn=8となるとすべてのビツトの処理
が終つたことになり、第12図のソフトタイマカ
ウンタの更新が完了する。 次にステツプ934〜942で、ソフトタイマ
カウンタに基づく各タスクの起動要求の登録が行
なわれる。先ず、ステツプ932で、INTVIRQ
が10m sec毎に発生するので、起動周期が10m
secのタスクのQを総て1にする。ステツプ93
4でn=1とするとことによりF1の処理を開始
する。第12図のF1ビツトか1かどうかをステ
ツプ936で判断し、F1=1であれば、ステツ
プ938へ進む。このステツプでソフトタイマカ
ウンタのF1ビツトに対応したタスク総の起動要
求フラグQを1とする。そしてステツプ940へ
進む。一方ステツプ936でNOであれば、その
ままステツプ940へ進む。ステツプ940で
Fnのn=8かどうかを判断する。この場合はn
=1なので、判断はNOとなる。ステツプ942
へ進み、n=1からn=2へ更新される。これに
よりF2の処理になる。同様にF8の処理まで進め
ば、ステツプ940の判断がYESとなり第16
図のフローは終了する。このフローは割込処理2
06のINTVIRQ処理である。ステツプ940か
らタスクデイスパツチヤーへ処理が進む。この第
16図の処理では第9図のステツプ410と41
1間の処理は不要であり、ステツプ410で
YESであれば、直ちにステツプ411へ進む。
場合には前記ソフトタイマフラグののフラグビツ
トF1〜F6とタスク1〜タスク6とが対応してい
る。 また表2の場合には前記フラグビツトF1,F2
が夫々、タスク1,2に、フラグビツトF3がタ
スク3,4,5に、更にフラグビツトF4がタス
ク6,7に、フラグビツトF5,F6が夫々タスク
8,9に対応している。 そして本実施例では異なる起動周期のうち最小
の起動周期(以下、最小起動周期という。)に該
当するタスク、即ち本実施例では10m sec毎に起
動されるタスク0をインターバル割込により起動
し、該タスクの起動に伴い前記ソフトタイマフラ
グの判定結果に基づいて順次、倍数系列の起動周
期で他のタスクを起動するものである。 上記の処理内容を第13図の処理フローに基づ
き説明する。同図の処理フローでは一例としてタ
スク1の起動によりタスク2を起動する場合につ
いて示してあるが、他の場合、例えばタスク2に
よりタスク3を起動する場合も同様である(但
し、表1の場合に限る。尚、表2の場合について
は後述する。)。 同図において、ステツプ700でインターバル
割込によりタスク1が起動されると、次のステツ
プ702でソフトタイマフラグSTFのフラグビ
ツトF1が1であるか否かの判定が行われる。こ
こで前記ソフトタイマフラグSFTにおいて起動
されるべきタスクの起動周期に該当するフラグビ
ツトには“1”が立てられており、起動されない
タスクの起動周期に該当するフラグビツトは
“0”の状態にあるものとする。 さてステツプ702でソフトタイマフラグ
SFTのフラグビツトF1が“1”であると判定さ
れた場合にはステツプ704に移行し、フラグビ
ツトF1を“0”にし、次のステツプ708で再
度、前記フラグビツトF1が“1”であるか否か
の判定が行われる。 既にステツプ704でフラグビツトF1を“0”
にしてあるので、ステツプ708ではフラグビツ
トF1は“1”でないと判定され、次のステツプ
712に移行し、タスク1の本来の処理が行わ
れ、ステツプ714でタスク1は終了する。 他方、次の周期でタスク1がステツプ700で
起動される場合には既にソフトタイマフラグ
SFTのフラグビツトF1は既述の如く、ステツプ
704で“0”にされている為にステツプ702
ではフラグビツトF1は“0”であると判定され、
ステツプ706に移行する。 ステツプ706ではフラグビツトF1を“1”
にし、ステツプ708に移行する。ステツプ70
8で再度、フラグビツトF1が“1”であるか否
かの判定を行い、既にステツプ706でフラグビ
ツトF1を“1”にしてあるので、ステツプ71
0に移行する。 ステツプ710はタスク2の起動(第6図のタ
スク2に該当するQフラグを1にする。)を行い、
ステツプ712に移行し、タスク1の本来の処理
を行いステツプ714でタスク1を終了する。 以上の如くステツプ704,706で1周期
(この場合、タスク1の起動周期である20m sec)
毎にフラグビツトF1は“1”、“0”の状態を交
互に繰り返し、タスク1の起動時にフラグビツト
F1が“0”である場合、即ちタスク1の起動周
期の2倍の周期でタスク2は起動される。 従つて前掲の表1に示したようなタスク1乃至
タスク6を順次、起動する場合にはタスク1乃至
タスク5の冒頭または末尾にステツプ702〜7
12からなるプログラムを挿入することにより
(但し、ソフトタイマフラグの判定の対象となる
フラグビツトはF2〜F5に夫々、置換されるもの
とする。)可能となる。 次に表2の場合にはタスク1,2,3,6,
8,9については上述したステツプ702〜71
2からなるプログラムを各タスクに挿入すること
により順次、倍数系列の起動周期で起動される
が、タスク3と同一起動周期であるタスク4,5
及びタスク6と同一起動周期であるタスク7につ
いては既述した如くタスクデイスパツチヤ208
の管理するRAM106に設けられたタスク制御
ブロツクにおいて上記タスク4,5,7に該当す
る起動ビツトにフラグ1を立てることにより起動
される。 本実施例によれば第11図に示した如き起動周
期の異なる数だけのソフトタイマブロツクを
RAMに設ける必要がなくなるので、その分を他
の制御に振り当てることが可能となる。 第14図は第5図あるいは第11図の割込処理
プログラム206およびタスクデイスパツチヤー
の追加フローチヤートである。割込処理プログラ
ム206でINTVIRQであることがステツプ89
0で判断されると、ステツプ892へ進みレベル
0のQ0ビツトを1とする。これによりタスク0
である表2のADIN2の起動要求が登録されたこ
とになる。次にタスクデイスパの208へ進む。 ステツプ894は第8図および第9図のステツ
プ410までを示し、この動作は上で述べた通り
である。第9図のステツプ410でYESと判断
されるとステツプ896へ進む。このステツプ8
96〜910までは、第12図のソフトタイマカ
ウンタの更新を行なうソフトである。ステツプ8
96でソフトタイマの更新のクロツクとなるタス
クかどうかを判断する。表3の場合、タスク0〜
4がステツプ896でYESとなる。一方表4の
場合、タスク0,1,2,5,7,がYESとな
り、その他はNOとなる。ステツプ896で、F1
〜F8のFnのnを決定する。表3でタスク0のと
きn=1となり、F1についての更新判断を行う。
ステツプ902で第13図の702の如く、F1
が1かどうか判断する。YESであれば、ステツ
プ904でFnであるF1をゼロとし、一方NOで
あれば、ステツプ906でFnであるF1を1とす
る。FnであるF1が1となると、ステツプ910
で該当するタスクのQが1にされ、起動要求の登
録がなされる。この例では表3のタスク1に該当
するQである。このようにして起動要求が出さ
れ、第9図のステツプ411へと実行が進む。 次にIRQの発生回路を第15図に示す。レジス
タ735とカウンタ736と比較器737とフリ
ツプフロツプ738はINTVIRQの発生回路であ
り、レジスタ735にINTVIRQの発生周期例え
ば本実施例では10〔ms〕がセツトされる。これに
対しクロツクパルスがカウンタ736へセツトさ
れ、そのカウント値がレジスタ735と一致する
とフリツプフロツプ738をセツト状態とする。
このセツト状態でカウンタ736をクリアし、再
びカウントを再開する。従つて一定時間(10m
sec)ごとにINTVIRQが発生する。 レジスタ741とカウンタ742と比較器74
3、フリツプフロツプ744はエンジンの停止を
検知するENSTIRQの発生回路である。レジスタ
741とカウンタ742と比較器743は上の説
明と同様であり、カウント値がレジスタ741の
値に達するとENSTIRQを発生する。しかしエン
ジンの回転中はクランク角センサより一定クラン
ク角毎に発生するREFパルスによりカウンタ7
42がクリアされるのでカウンタ742のカウン
ト値がレジスタ741の値に達しないので
ENSTIRQは発生しない。 フリツプフロツプ738に発生したINTVIRQ
やフリツプフロツプ744に発生したENSTIRQ
さらにADC1やADC2で発生したIRQはそれぞれ
フリツプフロツプ740,746,764,76
8へセツトされる。またフリツプフロツプ73
7,745,762,766にはIRQを発生させ
るか禁止するかの信号がセツトされる。フリツプ
フロツプ737,745,762,766に
“H”がセツトされていればANDゲート748,
750,770,772は能動となり、IRQが発
生するとORゲートよりただちにIRQが発生する。 従つてフリツプフロツプ737,745,76
2,766のそれぞれに“H”を入るか“L”を
入るかによつてIRQの発生を禁止したり、禁止を
解除したりできる。またIRQが発生するとフリツ
プフロツプ740,746,764,768の内
容をCPUに取り込むことにより、IRQ発生の原
因が解かる。 IRQに応じてCPUがプログラムを実行し始め
た場合、そのIRQ信号はクリアする必要があるの
で実行を始めたIRQに関するフリツプフロツプ7
40,746,764,768の1つをクリアす
る。 以上に述べた本発明の実施例では自動車のエン
ジン制御に関して説明したがこれに限定されたも
のでなく他の計算機制御に適用可能であることは
勿論である。 以上、本発明は管理プログラムで行うべきイン
ターバル割込処理をタスクに分担させるように構
成したので、管理プログラムで担当する割込処理
に要する時間が減少し、割込処理能の向上、延い
ては制御性の向上が図れる。 第16図は本発明の他の実施例であり、ステツ
プ890でINTVIRQかどうかの判断を行なう。
このステツプは第14図のステツプ890と同様
である。ステツプ920でFnのnを1とする。
つまりFnをF1とし、F1についての処理を行うこ
とを決定する。ステツプ922でF1について第
13図の内容をしらべ前の状態がF1=1であれ
ば、ステツプ926でF1=0にし、F1=0であ
ればステツプ924でF1=1にする。ステツプ
928でn=8かを判断する。つまり第12図の
すべてのソフトタイマカウンタのビツトについて
の処理が終つたかを判断する。この場合n=1な
のでNOとなり、ステツプ930でn=2にわか
る。つまり次からF2のビツトの処理を行なう。
同様にしてn=8となるとすべてのビツトの処理
が終つたことになり、第12図のソフトタイマカ
ウンタの更新が完了する。 次にステツプ934〜942で、ソフトタイマ
カウンタに基づく各タスクの起動要求の登録が行
なわれる。先ず、ステツプ932で、INTVIRQ
が10m sec毎に発生するので、起動周期が10m
secのタスクのQを総て1にする。ステツプ93
4でn=1とするとことによりF1の処理を開始
する。第12図のF1ビツトか1かどうかをステ
ツプ936で判断し、F1=1であれば、ステツ
プ938へ進む。このステツプでソフトタイマカ
ウンタのF1ビツトに対応したタスク総の起動要
求フラグQを1とする。そしてステツプ940へ
進む。一方ステツプ936でNOであれば、その
ままステツプ940へ進む。ステツプ940で
Fnのn=8かどうかを判断する。この場合はn
=1なので、判断はNOとなる。ステツプ942
へ進み、n=1からn=2へ更新される。これに
よりF2の処理になる。同様にF8の処理まで進め
ば、ステツプ940の判断がYESとなり第16
図のフローは終了する。このフローは割込処理2
06のINTVIRQ処理である。ステツプ940か
らタスクデイスパツチヤーへ処理が進む。この第
16図の処理では第9図のステツプ410と41
1間の処理は不要であり、ステツプ410で
YESであれば、直ちにステツプ411へ進む。
第1図はエンジン系統全体の制御装置を示す構
成図、第2図は第1図の点火装置の説明図、第3
図は排気ガス環流システムを説明するための構成
図、第4図はエンジン制御システムの全体構成
図、第5図は本発明に係わるエンジン制御方法の
プログラムシステムの基本的構成を示す図、第6
図はタスクデイスパツチヤの管理するRAMに設
けられたタスク制御ブロツクのテーブルを示す
図、第7図は各種割込みにより起動されるタスク
群のスタートアドレステーブルを示す図、第8図
及び第9図はタスクデイスパツチヤの処理フロー
を示す図、第10図はマクロ処理プログラムの処
理フローを示す図、第11図はソフトのシステム
図、第12図はソフトタイマカウンタ、第13図
はINTVIRQの処理フロー図、第14図はソフト
タイマカウンタの更新と起動要求登録の処理フロ
ー図、第15図は割込発生回路図、第16図は本
発明の他の実施例を示すフロー図である。 102……CPU、104……ROM、106…
…RAM、108……入出力回路。
成図、第2図は第1図の点火装置の説明図、第3
図は排気ガス環流システムを説明するための構成
図、第4図はエンジン制御システムの全体構成
図、第5図は本発明に係わるエンジン制御方法の
プログラムシステムの基本的構成を示す図、第6
図はタスクデイスパツチヤの管理するRAMに設
けられたタスク制御ブロツクのテーブルを示す
図、第7図は各種割込みにより起動されるタスク
群のスタートアドレステーブルを示す図、第8図
及び第9図はタスクデイスパツチヤの処理フロー
を示す図、第10図はマクロ処理プログラムの処
理フローを示す図、第11図はソフトのシステム
図、第12図はソフトタイマカウンタ、第13図
はINTVIRQの処理フロー図、第14図はソフト
タイマカウンタの更新と起動要求登録の処理フロ
ー図、第15図は割込発生回路図、第16図は本
発明の他の実施例を示すフロー図である。 102……CPU、104……ROM、106…
…RAM、108……入出力回路。
Claims (1)
- 1 エンジンの運転状態を検出する各種センサ
と、該センサからの出力信号をデイジタル処理す
る演算回路と、該演算回路を操作するプログラム
を記憶する記憶手段と、該演算回路の演算結果に
基づきエンジン制御を行う制御機構とからなり、
前記プログラムをその制御機能に基づいて分類
し、分類されたタスク群のエンジンに及ぼす影響
に応じてその起動周期を各々に設定し、設定され
た周期に基づいて各タスクに起動要求を出すもの
において、前記起動周期を最小起動周期の2のn
乗倍(n=0,1,2……)の関係になるように
設定し、前記起動周期のうち最小起動周期の計測
をインターバル割込により行い、この最小起動周
期に応じて実行されるタスクの実行回数によりそ
れより長い起動周期の計測を行ない、この計測さ
れた起動周期に応じて実行されるタスクの実行回
数によりさらに長い起動周期を計測するようにし
たことを特徴とするエンジンの制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP680280A JPS56105507A (en) | 1980-01-25 | 1980-01-25 | Control method of engine |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP680280A JPS56105507A (en) | 1980-01-25 | 1980-01-25 | Control method of engine |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS56105507A JPS56105507A (en) | 1981-08-22 |
| JPH0118443B2 true JPH0118443B2 (ja) | 1989-04-05 |
Family
ID=11648310
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP680280A Granted JPS56105507A (en) | 1980-01-25 | 1980-01-25 | Control method of engine |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS56105507A (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3224286A1 (de) * | 1982-06-28 | 1983-12-29 | Robert Bosch Gmbh, 7000 Stuttgart | Steuervorrichtung mit einem mikrorechner |
| JPS5994112A (ja) * | 1982-11-19 | 1984-05-30 | Nippon Telegr & Teleph Corp <Ntt> | 時分割位置決め制御装置 |
| DE19500957A1 (de) * | 1994-07-19 | 1996-01-25 | Bosch Gmbh Robert | Verfahren zur Steuerung von technischen Vorgängen oder Prozessen |
| JP4813410B2 (ja) * | 2007-03-28 | 2011-11-09 | 住友建機株式会社 | 道路舗装機械におけるスクリード部合材侵入防止用仕切装置の加熱構造 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5374221A (en) * | 1976-12-14 | 1978-07-01 | Mitsubishi Electric Corp | Chopper control device |
-
1980
- 1980-01-25 JP JP680280A patent/JPS56105507A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS56105507A (en) | 1981-08-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6212384B2 (ja) | ||
| JPS6239261B2 (ja) | ||
| US4282573A (en) | Processor interrupt device for an electronic engine control apparatus | |
| US4274141A (en) | Method and apparatus for controlling an internal combustion engine, particularly the starting up of the engine | |
| US4310888A (en) | Technique for controlling the starting operation of an electronic engine control apparatus | |
| US4337513A (en) | Electronic type engine control method and apparatus | |
| US4363097A (en) | Electronic type engine control method | |
| JPS6350546B2 (ja) | ||
| JPH0375740B2 (ja) | ||
| KR920003200B1 (ko) | 엔진제어장치 | |
| KR880001665B1 (ko) | 연료분사제어장치 | |
| EP0030114B1 (en) | Method for starting an operation of an internal combustion engine and apparatus therefor | |
| JPS6343579B2 (ja) | ||
| JPS6218748B2 (ja) | ||
| JPS5974340A (ja) | 燃料噴射装置 | |
| JPH0138176B2 (ja) | ||
| KR920003201B1 (ko) | 내연기관용 연료분사장치 | |
| JPS5895214A (ja) | 熱線式流量センサの信号処理方法 | |
| US4522178A (en) | Method of fuel control in engine | |
| JPH0118256B2 (ja) | ||
| JPH0318026B2 (ja) | ||
| JPS6356420B2 (ja) | ||
| JPS58150047A (ja) | 内燃機関の燃料噴射制御装置 | |
| JPS6240645B2 (ja) | ||
| JPS5841361A (ja) | 電子式エンジン制御装置 |