JPH0138176B2 - - Google Patents
Info
- Publication number
- JPH0138176B2 JPH0138176B2 JP56024203A JP2420381A JPH0138176B2 JP H0138176 B2 JPH0138176 B2 JP H0138176B2 JP 56024203 A JP56024203 A JP 56024203A JP 2420381 A JP2420381 A JP 2420381A JP H0138176 B2 JPH0138176 B2 JP H0138176B2
- Authority
- JP
- Japan
- Prior art keywords
- engine
- task
- control
- starting
- state
- 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
- 239000007858 starting material Substances 0.000 claims description 51
- 239000000446 fuel Substances 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 30
- 238000004880 explosion Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 description 48
- 230000008569 process Effects 0.000 description 42
- 230000004913 activation Effects 0.000 description 38
- 238000002347 injection Methods 0.000 description 24
- 239000007924 injection Substances 0.000 description 24
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 8
- 239000000498 cooling water Substances 0.000 description 8
- 101100434411 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADH1 gene Proteins 0.000 description 6
- 101150102866 adc1 gene Proteins 0.000 description 6
- 239000007789 gas Substances 0.000 description 6
- YWXYYJSYQOXTPL-SLPGGIOYSA-N isosorbide mononitrate Chemical compound [O-][N+](=O)O[C@@H]1CO[C@@H]2[C@@H](O)CO[C@@H]21 YWXYYJSYQOXTPL-SLPGGIOYSA-N 0.000 description 6
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 101150042711 adc2 gene Proteins 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005336 cracking Methods 0.000 description 3
- 239000002828 fuel tank Substances 0.000 description 3
- 238000010438 heat treatment Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 241000234435 Lilium Species 0.000 description 2
- 238000002485 combustion reaction Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 101710096660 Probable acetoacetate decarboxylase 2 Proteins 0.000 description 1
- 101100001056 Schizosaccharomyces pombe (strain 972 / ATCC 24843) adn1 gene Proteins 0.000 description 1
- 238000003915 air pollution Methods 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002826 coolant Substances 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005485 electric heating Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 239000003502 gasoline Substances 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
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/02—Circuit arrangements for generating control signals
- F02D41/04—Introducing corrections for particular operating conditions
- F02D41/06—Introducing corrections for particular operating conditions for engine starting or warming up
- F02D41/062—Introducing corrections for particular operating conditions for engine starting or warming up for starting
Landscapes
- Engineering & Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Mechanical Engineering (AREA)
- General Engineering & Computer Science (AREA)
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Description
本発明は、マイクロコンピユータ制御方式の自
動車エンジンにおけるスタータモータによらない
エンジン始動時での制御方式に関する。 大気汚染の防止による環境保全やエネルギー資
源の枯渇に関心が高まるにつれ、自動車用ガソリ
ンエンジンの運転状態を総合的に制御して排気ガ
スの状態を良くし、燃比の改善が図れるようにし
た制御装置が望まれるようになり、そのため、マ
イコン(マイクロコンピユータ)を用い、冷却水
温センサ、排気ガス中の酸素濃度を与えるO2セ
ンサなど、エンジンの運転状態を表わす各種のデ
ータを与えるセンサからの信号が取り込み、燃料
供給量や点火時期、又は排気ガス環流量やアイド
ル回転数など種々の制御を行なつて常に最適なエ
ンジンの運転状態が総合的に得られるようにした
電子式のエンジン制御システム(EECという)
が使用されるようになつてきた。 一方、自動車用エンジンに必要な制御機能は、
適用される自動車の種類或いは用途に応じて様々
に変化するから、上記のようなEECにおけるマ
イコンのソフトウエアとしては、コスト面或いは
制御性の向上といつた観点から、車種或いは用途
に応じて汎用性に富んだもの、すなわち各種の制
御機能の修正、変更および追加が可能でしかもそ
れが容易なものが要請されている。 そこで、このような要請に応えて図面の第1図
ないし第14図に示すようなシステムが従来から
提案されていた。 以下、この従来のシステムについて説明する
と、第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からデイ
ストリビユータ60を介して点火タイミングに合
わせて高電圧が供給される。 また、クランク軸66にはエンジンの回転に応
じて基準クランク角毎におよび一定角度(例えば
0.5度)毎に基準角信号およびポジシヨン信号を
出すクランク角センサ68が設けられている。 このクランク角センサ68の出力、水温センサ
56の出力56A及び発熱体24からの電気信号
はマイクロコンピユータなどからなる制御回路6
4に入力され、制御回路64で演算処理され、こ
の制御回路64の出力によつてインジエクタ12
及び点火コイル58が駆動される。 以上の構成に基づき制御されるエンジン系統に
おいて、スロツトルチヤンバ4にはスロツトルの
絞り弁16を跨いで吸気管6に連通するバイパス
26が設けられ、このバイパス26には開閉制御
されるバイパスバルブ62が設けられている。こ
のバイパスバルブ62の駆動部には、前記制御回
路64の制御入力が供給され、開閉制御されるよ
うになつている。 このバイパスバルブ62は絞り弁16を迂回し
て設けられたバイパス26に臨ませられ、パルス
電流によつて開閉制御がなされる。このバイパス
バルブ62は弁のリフト量によりバイパス26の
断面積を変更するもので、このリフト量は制御回
路64の出力によつて駆動系が駆動され制御され
る。即ち、制御回路64においては駆動系の制御
のため開閉周期信号が発生され、駆動系はこの開
閉周期信号によつてバイパスバルブ62のリフト
量を調節するための制御信号をバイパスバルブ6
2の駆動部に付与するものである。 クランク軸66に結合したエンジン軸72には
スタータモータ74が設けられ、さらにクラツチ
76、トランスミツシヨンギヤ78、デフアレン
シヤルギヤ80を介して自動車の車輪82が結合
している。そしてクラツチ76はクラツチペダル
84によつて操作される。 なお、この第1図には示されていないが、吸気
管6と排気管10との間には排気環流弁(以下、
EGR弁という)が設けられており、制御回路6
4からの制御パルスのデユーテイによつて定まる
開弁量に応じて排気ガスが排気管10から吸気管
6へ導入される。 制御回路64にはバツテリ88からキースイツ
チ86を介して電源が供給される。さらに、この
制御回路64によりフユーエルポンプ32および
表示ランプなどの表示系の制御も行なわれてい
る。 スタータモータ74は運転者がスタータスイツ
チ152をオン操作することにより回転し、エン
ジン軸72を駆動するが、このときのスタータモ
ータ74による駆動状態はライン96によつて制
御回路64に取り込まれる。また、これとは別の
方法として、運転者によつてオン・オフ操作され
るスイツチ94を設け、このスイツチ94の出力
に応じて制御回路64がライン98を介してスタ
ータスイツチ152を動作させるようにしてもよ
い。 第2図は制御回路64で代表的に示した制御シ
ステムの全体構成図で、セントラルプロセツシン
グユニツト(CPU)102、リードオンメモリ
(ROM)104、ランダムアクセスメモリ
(RAM)106、それに入出力回路108とか
ら構成されている。上記CPU102はROM10
4内に記憶された各種のプログラムにより、入出
力回路108からの入力データを演算し、その演
算結果を再び入出力回路108へ戻す。これらの
演算に必要な中間的な記憶はRAM106を使用
する。CRU102、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と記す)、それ
にスイツチ94とが入力される。 次にCPUの演算結果に基づくパルス出力回路
および制御対象について説明する。インジエクタ
制御回路(INJCと記す)134は演算結果のデ
イジタル値をパルス出力に変換する回路である。
従つて燃料噴射量に相当したパルス幅を有するパ
ルスがINJC134で作られ、ANDゲート136
を介してインジエクタ12へ印加される。 点火パルス発生回路138(以下IGNCと記
す)は点火時期をセツトするレジスタ(ADVと
記す)と点火コイルの1次電流通電開始時期をセ
ツトするレジスタ(DWLと記す)とを有し、
CPUよりこれらデータがセツトされる。セツト
されたデータに基づいてパルスを発生し、点火コ
イルに接続された増幅器92へANDゲート14
0を介してこのパルスを加える。 バイパスバルブ62の開弁率は制御回路(以下
ISCCと記す)142からANDゲート144を介
して加えられるパルスによつて制御される。
ISCC142はパルス幅をセツトするレジスタ
ISCDと繰返しパルス周期をセツトするレジスタ
ISCPとを持つている。 EGR制御弁を制御するトランジスタ90を制
御するEGR量制御パルス発生回路180(以下
EGRCと記す)にはパルスのデユーテイを表わす
値をセツトするレジスタEGRDとパルスの繰返し
周期を表わす値をセツトするレジスタEGRPとを
有している。このEGRCの出力パルスはANDゲ
ート156を介してトランジスタ90に加えられ
る。 また1ビツトの入出力信号は回路DIOにより制
御される。入力信号としてはIDLE―SW信号、
TOP―SW信号、START―SW信号がある。ま
た出力信号としては燃料ポンプ32を駆動するた
めのパルス出力信号がある。このDIOは端子を入
力端子として使用するか、出力端子として使用す
るかを決定するためのレジスタDDRと、出力デ
ータをラツチするためのレジスタDOUTとが設
けられている。 レジスタ160は入出力回路108内部の色々
な状態を指令する命令を保持すつレジスタ(以下
MODと記す)であり、例えばこのレジスタに命
令をセツトすることにより、ANDゲート136,
140,144,156を総てターンオンさせた
り、ターンオフさせたりする。このようにMOD
レジスタ160に命令をセツトすることにより、
INJCやIGNC,ISCCの出力の停止や起動を制御
できる。 第3図は第2図の制御回路のプログラムシステ
ムの基本構成を示す図である。 図においてイニシヤル処理プログラム202、
割込処理プログラム206、マクロ処理プログラ
ム228およびタスクデイスパツチヤ208はタ
スク群を管理するための管理プログラムである。
イニシヤル処理プログラム202はマイクロコン
ピユータを作動させるための前処理を行なうため
のプログラムであり例えば、RAM106の記憶
内容をクリアしたり入出力インターフエイス回路
108のレジスタ類の初期値を設定したり、さら
にはエンジン制御を行なうのに必要な前処理を行
なうための入力情報例えば冷却水温Tw、バツテ
リ電圧等のデータを取込むための処理を行なう。
また、割込処理プログラム206は各種の割込を
受け付け、その割込要因を分析し、タスク群21
0ないし226の内の必要なタスクを起動させる
ための起動要求をタスクデイスパツチヤ208に
出す。割込要因には後述するごとく電源電圧、冷
却水温度等の入力情報をAD変換終了後に発生す
るAD変換割込(ADC)、エンジン回転に同期し
て発生するイニシヤル割込(INTL)、又設定さ
れた一定時間毎に、例えば100ms毎に発生するイ
ンターバル割込(INTV)、更にはエンジンのス
トツプ状態を検出し、発生するエンスト割込
(ENST)等がある。 タスク群210乃至226の各タスクには優先
順位を表わすタスク番号が割合てられており、各
タスクはタスクレベル0乃至2の何れかのタスク
レベルに属する。即ち、タスク1乃至タスク2は
タスクレベル0に、タスク3乃至タスク5はタス
クレベル1に、更にタスク6乃至タスク8はタス
クレベル2に各々属する。 タスクデイスパツチヤ208は前記各種割込の
起動要求を受けこれらの起動要求に対応する各種
タスクに付けられた優先順位に基づきCPUの占
有時間を割り当てる。 ここでタスクデイスパツチヤ208によるタス
クの優先制御は下記の方法に拠る。(1)優先度の低
いタスクを中断し、優先度の高いタスクへの実行
権の移行はタスクレベル間のみで行なう。なおこ
こではレベル0が最も優先度が高いものとする。
(2)同じタスクレベル内で、現在実行中又は中断中
のタスクがある場合は、該タスクが最も優先度が
高く該タスクが終了するまで他のタスクは動作で
きない。(3)同じタスクレベル内で複数のタスクに
起動要求がある場合には、タスク番号が小さい程
優先度が高いものとする。タスクデイスパツチヤ
208の処理内容は後述するがこの例では上記優
先制御を行なうためにタスク単位にRAMにソフ
トタイマを設け、又タスクレベル単位にタスクを
管理する制御ブロツクをRAM中に設定するよう
に構成している。そして上記各タスクの実行終了
毎にそのタスクの実行終了報告をマクロ処理プロ
グラム228によりタスクデイスパツチヤ208
に行なうようにしている。 次にタスクデイスパツチヤ208の処理内容に
ついて第4図乃至第10図に基づき説明する。第
4図にはタスクデイスパツチヤ208の管理する
RAMに設けられたタスク制御ブロツクが示され
ている。このタスク制御ブロツクがタスクレベル
の数だけ設けられておりこの例はタスクレベル0
乃至2の3つ設けられている。各制御ブロツクに
は各々8ビツトが割り当てられ、その内0乃至2
ビツト目(Q0〜Q2)までが起動要求タスク表示
を行なう起動ビツトであり、7ビツト目(R)が
同一タスクレベル中の何れかのタスクが現在実行
中であるか又は中断中であるかを示す実行ビツト
を表わす。そして前記起動ビツトQ0乃至Q2はそ
れぞれ各タスクレベル中で実行優先度の高い順に
配列されており、例えば第5図中でタスク4に該
当する起動ビツトはタスクレベル1のQ0である。
ここでタスクの起動要求があつた場合には起動ビ
ツトの何れかにフラグが立てられ、一方タスクデ
イスパツチヤ208は出力された起動要求を高い
レベルのタスクに該当する起動ビツトより順に検
索し、出された起動要求に該当するフラグをリセ
ツトすると共に実行ビツトにフラグ1を立て、該
当タスクを起動させるための処理を行なう。 第5図はタスクデイスパツチヤ208の管理す
るRAM106に設けられたスタートアドレステ
ーブルである。スタートアドレスSA0乃至SA8
は第3図に示したタスク群210乃至226の各
タスク0乃至8に該当するスタートアドレスを示
す。各スタートアドレス情報には16ビツトが割合
てられ、これらのスタートアドレス情報は後述す
る如くタスクデイスパツチヤ208により起動要
求のあつた該当タスクを起動するのに使用され
る。 次に第6図および第7図にタスクデイスパツチ
ヤの処理フローを示す。第6図に於いてステツプ
300でタスクデイスパツチヤの処理が開始され
るとステツプ302でタスクレベルlに属するタ
スクが実行中断中か否かが判断される。即ち、実
行ビツトに1が立つていたらマクロ処理プログラ
ム228により未だタスク終了報告がタスクデイ
スパツチヤ208に出されていない状態であり、
実行中だつたタスクがより優先レベルが高い割込
みが生じたために中断させられている状態を示
す。従つて、実行ビツトにフラグ1が立つていた
らステツプ314にジヤンプし、中断タスクを再
開する。 一方、実行ビツトにフラグ1が立つていない即
ち実行表示フラグがリセツトされている場合には
ステツプ304に移行し、レベルlに起動待ちタ
スクがあるか否かが判断される。即ち、レベルl
の起動ビツトを対応するタスクの実行優先度の高
い順、即ちQ0,Q1,Q2の順に検索する。タスク
レベルlに属する起動ビツトにフラグ1が立つて
いない場合はステツプ306に移行し、タスクレ
ベルの更新が行なわれる。即ちタスクレベルlは
+1インクリメントされl+1とする。ステツプ
306でタスクレベルの更新が行なわれるとステ
ツプ308に移行しタスクレベルの全レベルがチ
エツクされたか否かが判断される。全レベルのチ
エツクが行なわれていない、即ちl=2でない場
合にはステツプ302に戻り同様に上記手順で処
理が行なわれる。ステツプ308でタスクレベル
の全レベルがチエツクされている場合にはステツ
プ310に移行し、割込み解除が行なわれる。即
ち、ステツプ302乃至ステツプ308までの処
理期間中は割込みを禁止しているのでこのステツ
プで割込み解除が為される。そして次のステツプ
312で次の割込みを持つ。 次に前記ステツプ304でタスクレベルlに起
動待ちタスクがある場合、即ちタスクレベルlに
属する起動ビツトにフラグ1が立つている場合に
はステツプ400に移行する。ステツプ500及
び502のループでタスクレベルlのどの起動ビ
ツトにフラグ1が立つているか対応する優先実行
度の高いレベルの順に即ちQ0,Q1,Q2の順で検
索する。該当する起動ビツトを割出したらステツ
プ404に移行し、ステツプ404ではそのフラ
グの立つている起動ビツトをリセツトし、その該
当タスクレベルのlの実行ビツト(以下Rビツ
ト)にフラグ1を立てる。更にステツプ406で
は起動タスク番号の割出しを行ないステツプ40
8で第5図に示したRAMに設けられたスタート
アドレステーブルにより該当する起動タスクのス
タートアドレス情報を取出す。 次にステツプ410では該当起動タスクを実行
するか否かの判断が行なわれる。ここでは取出し
たスタートアドレス情報が特定の値例えば0であ
れば該当タスクの実行は行なわれなくてよいと判
断される。この判断ステツプはエンジン制御を行
なう前記タスク群の内各車種により選択的に特定
のタスクのみの機能を持たせるのに必要なもので
ある。ステツプ410で該当タスクの実行が停止
であると判断された場合にはステツプ414に移
行し、該当タスクレベルlのRビツトをリセツト
する。そして更にステツプ302に戻りタスクレ
ベルlは中断中であるか否かが判断される。これ
は同一タスクレベルl中に複数の起動ビツトにフ
ラグが立つている場合があり得るのでステツプ4
14でRビツトをリセツトした後ステツプ302
に移行するように構成されている。 一方ステツプ410で該当タスクの実行が停止
できない場合即ち実行する場合にはステツプ41
2へ移行し該当タスクへジヤンプし、タスクの実
行が行なわれる。 次に第8図はマクロ処理プログラム228の処
理フローを示す図である。このプログラムは終了
タスクを見つけるためのステツプ562と564
から成る。このステツプ562と564で先ずタ
スクレベルの0より検索し終了したタスクレベル
を見つける。これによりステツプ568へ進みこ
こで終了したタスクのタスク制御ブロツクの7ビ
ツト目の実行(RUN)フラグをリセツトする。
これによりそのタスクの実行が完全に終わつた事
になる。そして再びタスクデイスパツチヤ208
に戻り次の実行タスクが決定される。 次にタスクデイスパツチヤ208によりタスク
優先制御が行なわれる場合のタスクの実行と中断
の様子を第9図に基づき説明する。ここで起動要
求Nmnに於けるmはタスクレベルを表わし、n
はタスクレベルm中に於ける優先度の順位を表わ
すものとする。今CPUは管理プログラムOSを実
行していたとすると、この管理プログラムOSの
実行中に起動要求N21が発生した場合には時刻T1
で起動要求N21が該当するタスク、即ちタスク6
の実行が開始される。ここでタスク6の実行中に
時刻T2でより実行優先度の高いタスクの起動要
求N01が生じた場合には管理プログラムOSに実
行が移り既に述べた所定の処理を行なつた後に時
刻T3で起動要求N01に該当するタスク、即ちタス
ク0の実行が開始される。このタスク0の実行中
に更に時刻T4で起動要求N11が入つた場合には一
旦、管理プログラムOSに実行が移り所定の処理
が行なわれた後再び時刻T5で中断されていたタ
スク0の実行が再開される。たしてタスク0の実
行が時刻T6で終了すると再び管理プログラムOS
に実行が移りここでマクロ処理プログラム228
によりタスクデイスパツチヤ208へタスク0の
実行終了護告がなされた時刻T7で再び起動待ち
になつていた起動要求N11に該当するタスク3の
実行が開始される。このタスク3の実行中時刻
T8で同じタスクレベル1のより優先度の低い起
動要求N12が入つた場合にはタスク3の実行は一
旦中断され実行は管理プログラムOSに移り所定
の処理が為された後、時刻T9でタスク3の実行
が再開される。そして時刻T10でタスク3の実行
が終了するとCPUの実行は管理プログラムOSに
移り前記マクロ処理プログラム228によりタス
クデイスパツチヤ208へタスク3の実行終了報
告が為され、次いで時刻T11でより優先レベルの
低い起動要求N12に該当するタスク4の実行が開
始され、時刻T12でタスク4の実行が終了すると
実行は管理プログラムOSに移り所定の処理が為
された後、今まで中断されていた起動要求N21に
該当するタスク6の実行が時刻T12から再開され
る。 以上の様にしてタスクの優先制御が行なわれ
る。 タスクの優先制御に於ける状態遷移を第10図
に示す。Idle状態は起動待ちの状態であり、タス
クにまだ起動要求が出されていない。次に起動要
求が出されるとタスク制御ブロツクの起動ビツト
にフラグが立ち、起動が必要ということが表示さ
れる。Idle状態からQueue状態へ移動する時間は
各タスクのレベルにより定まつている。更に
Queue状態になつても実行され順序は優先度によ
り定まる。そのタスクが実行状態に入るのは管理
プログラムOSの内のタスクデイスパツチヤ20
8でタスク制御ブロツクの起動ビツトのフラグが
リセツトされ、Rビツト(7ビツト目)にフラグ
が立つてからである。これによりタスクの実行が
始められる。この状態がRUN状態である。そし
て実行が終るとタスク制御ブロツクのRビツトの
フラグがクリアされ、終了報告を終了する。これ
によりRUN状態は終り、再びIdle状態となり次
の起動要求が出るのを待つ。しかし、タスクの実
行中即ちRUN中に割込みIRQが発生すると、そ
のタスクは実行を中断しなければならない。この
ためCPUの内容が待避され、実行が中断する。
この状態がReady状態である。次にこのタスクが
再び実行される状態になると待避エリアつり、待
避していた内容を再びCPUへ戻し、実行が再開
される。つまりReady状態から再びRUN状態へ
戻る。この様に各レベルプログラムは第12図の
4つの状態を繰り返する。第12図は代表的な流
れであるがReady状態でタスク制御ブロツクの起
動ビツトにフラグが立つ可能性がある。これは例
えば起動中断中にそのタスクの次の起動要求タイ
ミングになつてしまつた場合である。この時には
Rビツトのフラグが優先されて先ず、中断中のタ
スクを終了させる。これによりRビツトのフラグ
が消え、起動ビツトのフラグによりIdle状態を通
らずにQueue状態となる。 この様にタスク0〜8は各々第10図の何れか
の状態にある。 次に第11図は第5図のプログラムシステムの
具体例を示している。図に於いて管理プログラム
OSはイニシヤル処理プログラム202、割込み
処理プログラム206、タスクデイスパツチヤ2
08及びマクロ処理プログラム228より成る。 割込み処理プログラム206には各種の割込み
処理プログラムがあり、イニシヤル割込み処理
(以下INTL割込処理という)602はエンジン
回転に同期して発生するイニシヤル割込み信号に
よつて、エンジン1回転当たりエンジン気筒数の
半分、即ち4気筒なら2回イニシヤル割込みが発
生する。このイニシヤル割込みによつてEGIタス
ク612で計算した燃料の噴射時間を入出力イン
ターフエース回路108のEGIレジスタに設定す
る。AD変換割込み処理604は2種類あり1つ
はAD変換器1割込み(以下ADC1と略す)及び
AD変換器2割込み(以下ADC2と略す)であ
る。AD変換器1は8ビツトの精度を有し、電源
電圧、冷却水温度、吸気温度及び使用調整などの
入力に用いられ、マルチプレクサー120に対す
る入力ポイントの指定を行なうと同時に変換を開
始し、変換終了後にADC1割込みを発生する。
なお本割込みはクラツキング前にのみ使用する。
又AD変換器128は空気流量の入力に用いられ
る変換終了後にADC2割込みを発生する。なお、
本割込みもクラツキング前にのみ使用する。 次にインターバル割込み処理プログラム(以下
INTV割込み処理プログラムと示す。)606で
はINTV割込み信号はINTVレジスタに設定した
時間例えば10ms毎に発生し、一定周期で起動す
べきタスクの時間監視用基本信号として用いられ
る。本割込み信号によつて、ソフトタイマの更新
を行ない、規定周期に達したタスクを起動する。
更にエンスト割込み処理プログラム(以下ENST
割込み処理プログラムと記す。)608ではエン
ジンのストツプ状態を検出するもので、INTL割
込み信号を検出すると、計数を開始し所定時間例
えば1秒以内に次にINTL割込み信号を検出でき
なかつた時、ENST割込みが発生する。そして
ENST割込みが3回、例えば3秒経過しても
INTL割込み信号が検出できなかつた場合にエン
ストが起つたものと判断し点火コイルへの通電及
び燃料ポンプの停止を行なう。これらの処理の後
スタータスイツチ152がオンするまで待機す
る。上記割込み要因に対する処理概要を表1に示
す。
動車エンジンにおけるスタータモータによらない
エンジン始動時での制御方式に関する。 大気汚染の防止による環境保全やエネルギー資
源の枯渇に関心が高まるにつれ、自動車用ガソリ
ンエンジンの運転状態を総合的に制御して排気ガ
スの状態を良くし、燃比の改善が図れるようにし
た制御装置が望まれるようになり、そのため、マ
イコン(マイクロコンピユータ)を用い、冷却水
温センサ、排気ガス中の酸素濃度を与えるO2セ
ンサなど、エンジンの運転状態を表わす各種のデ
ータを与えるセンサからの信号が取り込み、燃料
供給量や点火時期、又は排気ガス環流量やアイド
ル回転数など種々の制御を行なつて常に最適なエ
ンジンの運転状態が総合的に得られるようにした
電子式のエンジン制御システム(EECという)
が使用されるようになつてきた。 一方、自動車用エンジンに必要な制御機能は、
適用される自動車の種類或いは用途に応じて様々
に変化するから、上記のようなEECにおけるマ
イコンのソフトウエアとしては、コスト面或いは
制御性の向上といつた観点から、車種或いは用途
に応じて汎用性に富んだもの、すなわち各種の制
御機能の修正、変更および追加が可能でしかもそ
れが容易なものが要請されている。 そこで、このような要請に応えて図面の第1図
ないし第14図に示すようなシステムが従来から
提案されていた。 以下、この従来のシステムについて説明する
と、第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からデイ
ストリビユータ60を介して点火タイミングに合
わせて高電圧が供給される。 また、クランク軸66にはエンジンの回転に応
じて基準クランク角毎におよび一定角度(例えば
0.5度)毎に基準角信号およびポジシヨン信号を
出すクランク角センサ68が設けられている。 このクランク角センサ68の出力、水温センサ
56の出力56A及び発熱体24からの電気信号
はマイクロコンピユータなどからなる制御回路6
4に入力され、制御回路64で演算処理され、こ
の制御回路64の出力によつてインジエクタ12
及び点火コイル58が駆動される。 以上の構成に基づき制御されるエンジン系統に
おいて、スロツトルチヤンバ4にはスロツトルの
絞り弁16を跨いで吸気管6に連通するバイパス
26が設けられ、このバイパス26には開閉制御
されるバイパスバルブ62が設けられている。こ
のバイパスバルブ62の駆動部には、前記制御回
路64の制御入力が供給され、開閉制御されるよ
うになつている。 このバイパスバルブ62は絞り弁16を迂回し
て設けられたバイパス26に臨ませられ、パルス
電流によつて開閉制御がなされる。このバイパス
バルブ62は弁のリフト量によりバイパス26の
断面積を変更するもので、このリフト量は制御回
路64の出力によつて駆動系が駆動され制御され
る。即ち、制御回路64においては駆動系の制御
のため開閉周期信号が発生され、駆動系はこの開
閉周期信号によつてバイパスバルブ62のリフト
量を調節するための制御信号をバイパスバルブ6
2の駆動部に付与するものである。 クランク軸66に結合したエンジン軸72には
スタータモータ74が設けられ、さらにクラツチ
76、トランスミツシヨンギヤ78、デフアレン
シヤルギヤ80を介して自動車の車輪82が結合
している。そしてクラツチ76はクラツチペダル
84によつて操作される。 なお、この第1図には示されていないが、吸気
管6と排気管10との間には排気環流弁(以下、
EGR弁という)が設けられており、制御回路6
4からの制御パルスのデユーテイによつて定まる
開弁量に応じて排気ガスが排気管10から吸気管
6へ導入される。 制御回路64にはバツテリ88からキースイツ
チ86を介して電源が供給される。さらに、この
制御回路64によりフユーエルポンプ32および
表示ランプなどの表示系の制御も行なわれてい
る。 スタータモータ74は運転者がスタータスイツ
チ152をオン操作することにより回転し、エン
ジン軸72を駆動するが、このときのスタータモ
ータ74による駆動状態はライン96によつて制
御回路64に取り込まれる。また、これとは別の
方法として、運転者によつてオン・オフ操作され
るスイツチ94を設け、このスイツチ94の出力
に応じて制御回路64がライン98を介してスタ
ータスイツチ152を動作させるようにしてもよ
い。 第2図は制御回路64で代表的に示した制御シ
ステムの全体構成図で、セントラルプロセツシン
グユニツト(CPU)102、リードオンメモリ
(ROM)104、ランダムアクセスメモリ
(RAM)106、それに入出力回路108とか
ら構成されている。上記CPU102はROM10
4内に記憶された各種のプログラムにより、入出
力回路108からの入力データを演算し、その演
算結果を再び入出力回路108へ戻す。これらの
演算に必要な中間的な記憶はRAM106を使用
する。CRU102、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と記す)、それ
にスイツチ94とが入力される。 次にCPUの演算結果に基づくパルス出力回路
および制御対象について説明する。インジエクタ
制御回路(INJCと記す)134は演算結果のデ
イジタル値をパルス出力に変換する回路である。
従つて燃料噴射量に相当したパルス幅を有するパ
ルスがINJC134で作られ、ANDゲート136
を介してインジエクタ12へ印加される。 点火パルス発生回路138(以下IGNCと記
す)は点火時期をセツトするレジスタ(ADVと
記す)と点火コイルの1次電流通電開始時期をセ
ツトするレジスタ(DWLと記す)とを有し、
CPUよりこれらデータがセツトされる。セツト
されたデータに基づいてパルスを発生し、点火コ
イルに接続された増幅器92へANDゲート14
0を介してこのパルスを加える。 バイパスバルブ62の開弁率は制御回路(以下
ISCCと記す)142からANDゲート144を介
して加えられるパルスによつて制御される。
ISCC142はパルス幅をセツトするレジスタ
ISCDと繰返しパルス周期をセツトするレジスタ
ISCPとを持つている。 EGR制御弁を制御するトランジスタ90を制
御するEGR量制御パルス発生回路180(以下
EGRCと記す)にはパルスのデユーテイを表わす
値をセツトするレジスタEGRDとパルスの繰返し
周期を表わす値をセツトするレジスタEGRPとを
有している。このEGRCの出力パルスはANDゲ
ート156を介してトランジスタ90に加えられ
る。 また1ビツトの入出力信号は回路DIOにより制
御される。入力信号としてはIDLE―SW信号、
TOP―SW信号、START―SW信号がある。ま
た出力信号としては燃料ポンプ32を駆動するた
めのパルス出力信号がある。このDIOは端子を入
力端子として使用するか、出力端子として使用す
るかを決定するためのレジスタDDRと、出力デ
ータをラツチするためのレジスタDOUTとが設
けられている。 レジスタ160は入出力回路108内部の色々
な状態を指令する命令を保持すつレジスタ(以下
MODと記す)であり、例えばこのレジスタに命
令をセツトすることにより、ANDゲート136,
140,144,156を総てターンオンさせた
り、ターンオフさせたりする。このようにMOD
レジスタ160に命令をセツトすることにより、
INJCやIGNC,ISCCの出力の停止や起動を制御
できる。 第3図は第2図の制御回路のプログラムシステ
ムの基本構成を示す図である。 図においてイニシヤル処理プログラム202、
割込処理プログラム206、マクロ処理プログラ
ム228およびタスクデイスパツチヤ208はタ
スク群を管理するための管理プログラムである。
イニシヤル処理プログラム202はマイクロコン
ピユータを作動させるための前処理を行なうため
のプログラムであり例えば、RAM106の記憶
内容をクリアしたり入出力インターフエイス回路
108のレジスタ類の初期値を設定したり、さら
にはエンジン制御を行なうのに必要な前処理を行
なうための入力情報例えば冷却水温Tw、バツテ
リ電圧等のデータを取込むための処理を行なう。
また、割込処理プログラム206は各種の割込を
受け付け、その割込要因を分析し、タスク群21
0ないし226の内の必要なタスクを起動させる
ための起動要求をタスクデイスパツチヤ208に
出す。割込要因には後述するごとく電源電圧、冷
却水温度等の入力情報をAD変換終了後に発生す
るAD変換割込(ADC)、エンジン回転に同期し
て発生するイニシヤル割込(INTL)、又設定さ
れた一定時間毎に、例えば100ms毎に発生するイ
ンターバル割込(INTV)、更にはエンジンのス
トツプ状態を検出し、発生するエンスト割込
(ENST)等がある。 タスク群210乃至226の各タスクには優先
順位を表わすタスク番号が割合てられており、各
タスクはタスクレベル0乃至2の何れかのタスク
レベルに属する。即ち、タスク1乃至タスク2は
タスクレベル0に、タスク3乃至タスク5はタス
クレベル1に、更にタスク6乃至タスク8はタス
クレベル2に各々属する。 タスクデイスパツチヤ208は前記各種割込の
起動要求を受けこれらの起動要求に対応する各種
タスクに付けられた優先順位に基づきCPUの占
有時間を割り当てる。 ここでタスクデイスパツチヤ208によるタス
クの優先制御は下記の方法に拠る。(1)優先度の低
いタスクを中断し、優先度の高いタスクへの実行
権の移行はタスクレベル間のみで行なう。なおこ
こではレベル0が最も優先度が高いものとする。
(2)同じタスクレベル内で、現在実行中又は中断中
のタスクがある場合は、該タスクが最も優先度が
高く該タスクが終了するまで他のタスクは動作で
きない。(3)同じタスクレベル内で複数のタスクに
起動要求がある場合には、タスク番号が小さい程
優先度が高いものとする。タスクデイスパツチヤ
208の処理内容は後述するがこの例では上記優
先制御を行なうためにタスク単位にRAMにソフ
トタイマを設け、又タスクレベル単位にタスクを
管理する制御ブロツクをRAM中に設定するよう
に構成している。そして上記各タスクの実行終了
毎にそのタスクの実行終了報告をマクロ処理プロ
グラム228によりタスクデイスパツチヤ208
に行なうようにしている。 次にタスクデイスパツチヤ208の処理内容に
ついて第4図乃至第10図に基づき説明する。第
4図にはタスクデイスパツチヤ208の管理する
RAMに設けられたタスク制御ブロツクが示され
ている。このタスク制御ブロツクがタスクレベル
の数だけ設けられておりこの例はタスクレベル0
乃至2の3つ設けられている。各制御ブロツクに
は各々8ビツトが割り当てられ、その内0乃至2
ビツト目(Q0〜Q2)までが起動要求タスク表示
を行なう起動ビツトであり、7ビツト目(R)が
同一タスクレベル中の何れかのタスクが現在実行
中であるか又は中断中であるかを示す実行ビツト
を表わす。そして前記起動ビツトQ0乃至Q2はそ
れぞれ各タスクレベル中で実行優先度の高い順に
配列されており、例えば第5図中でタスク4に該
当する起動ビツトはタスクレベル1のQ0である。
ここでタスクの起動要求があつた場合には起動ビ
ツトの何れかにフラグが立てられ、一方タスクデ
イスパツチヤ208は出力された起動要求を高い
レベルのタスクに該当する起動ビツトより順に検
索し、出された起動要求に該当するフラグをリセ
ツトすると共に実行ビツトにフラグ1を立て、該
当タスクを起動させるための処理を行なう。 第5図はタスクデイスパツチヤ208の管理す
るRAM106に設けられたスタートアドレステ
ーブルである。スタートアドレスSA0乃至SA8
は第3図に示したタスク群210乃至226の各
タスク0乃至8に該当するスタートアドレスを示
す。各スタートアドレス情報には16ビツトが割合
てられ、これらのスタートアドレス情報は後述す
る如くタスクデイスパツチヤ208により起動要
求のあつた該当タスクを起動するのに使用され
る。 次に第6図および第7図にタスクデイスパツチ
ヤの処理フローを示す。第6図に於いてステツプ
300でタスクデイスパツチヤの処理が開始され
るとステツプ302でタスクレベルlに属するタ
スクが実行中断中か否かが判断される。即ち、実
行ビツトに1が立つていたらマクロ処理プログラ
ム228により未だタスク終了報告がタスクデイ
スパツチヤ208に出されていない状態であり、
実行中だつたタスクがより優先レベルが高い割込
みが生じたために中断させられている状態を示
す。従つて、実行ビツトにフラグ1が立つていた
らステツプ314にジヤンプし、中断タスクを再
開する。 一方、実行ビツトにフラグ1が立つていない即
ち実行表示フラグがリセツトされている場合には
ステツプ304に移行し、レベルlに起動待ちタ
スクがあるか否かが判断される。即ち、レベルl
の起動ビツトを対応するタスクの実行優先度の高
い順、即ちQ0,Q1,Q2の順に検索する。タスク
レベルlに属する起動ビツトにフラグ1が立つて
いない場合はステツプ306に移行し、タスクレ
ベルの更新が行なわれる。即ちタスクレベルlは
+1インクリメントされl+1とする。ステツプ
306でタスクレベルの更新が行なわれるとステ
ツプ308に移行しタスクレベルの全レベルがチ
エツクされたか否かが判断される。全レベルのチ
エツクが行なわれていない、即ちl=2でない場
合にはステツプ302に戻り同様に上記手順で処
理が行なわれる。ステツプ308でタスクレベル
の全レベルがチエツクされている場合にはステツ
プ310に移行し、割込み解除が行なわれる。即
ち、ステツプ302乃至ステツプ308までの処
理期間中は割込みを禁止しているのでこのステツ
プで割込み解除が為される。そして次のステツプ
312で次の割込みを持つ。 次に前記ステツプ304でタスクレベルlに起
動待ちタスクがある場合、即ちタスクレベルlに
属する起動ビツトにフラグ1が立つている場合に
はステツプ400に移行する。ステツプ500及
び502のループでタスクレベルlのどの起動ビ
ツトにフラグ1が立つているか対応する優先実行
度の高いレベルの順に即ちQ0,Q1,Q2の順で検
索する。該当する起動ビツトを割出したらステツ
プ404に移行し、ステツプ404ではそのフラ
グの立つている起動ビツトをリセツトし、その該
当タスクレベルのlの実行ビツト(以下Rビツ
ト)にフラグ1を立てる。更にステツプ406で
は起動タスク番号の割出しを行ないステツプ40
8で第5図に示したRAMに設けられたスタート
アドレステーブルにより該当する起動タスクのス
タートアドレス情報を取出す。 次にステツプ410では該当起動タスクを実行
するか否かの判断が行なわれる。ここでは取出し
たスタートアドレス情報が特定の値例えば0であ
れば該当タスクの実行は行なわれなくてよいと判
断される。この判断ステツプはエンジン制御を行
なう前記タスク群の内各車種により選択的に特定
のタスクのみの機能を持たせるのに必要なもので
ある。ステツプ410で該当タスクの実行が停止
であると判断された場合にはステツプ414に移
行し、該当タスクレベルlのRビツトをリセツト
する。そして更にステツプ302に戻りタスクレ
ベルlは中断中であるか否かが判断される。これ
は同一タスクレベルl中に複数の起動ビツトにフ
ラグが立つている場合があり得るのでステツプ4
14でRビツトをリセツトした後ステツプ302
に移行するように構成されている。 一方ステツプ410で該当タスクの実行が停止
できない場合即ち実行する場合にはステツプ41
2へ移行し該当タスクへジヤンプし、タスクの実
行が行なわれる。 次に第8図はマクロ処理プログラム228の処
理フローを示す図である。このプログラムは終了
タスクを見つけるためのステツプ562と564
から成る。このステツプ562と564で先ずタ
スクレベルの0より検索し終了したタスクレベル
を見つける。これによりステツプ568へ進みこ
こで終了したタスクのタスク制御ブロツクの7ビ
ツト目の実行(RUN)フラグをリセツトする。
これによりそのタスクの実行が完全に終わつた事
になる。そして再びタスクデイスパツチヤ208
に戻り次の実行タスクが決定される。 次にタスクデイスパツチヤ208によりタスク
優先制御が行なわれる場合のタスクの実行と中断
の様子を第9図に基づき説明する。ここで起動要
求Nmnに於けるmはタスクレベルを表わし、n
はタスクレベルm中に於ける優先度の順位を表わ
すものとする。今CPUは管理プログラムOSを実
行していたとすると、この管理プログラムOSの
実行中に起動要求N21が発生した場合には時刻T1
で起動要求N21が該当するタスク、即ちタスク6
の実行が開始される。ここでタスク6の実行中に
時刻T2でより実行優先度の高いタスクの起動要
求N01が生じた場合には管理プログラムOSに実
行が移り既に述べた所定の処理を行なつた後に時
刻T3で起動要求N01に該当するタスク、即ちタス
ク0の実行が開始される。このタスク0の実行中
に更に時刻T4で起動要求N11が入つた場合には一
旦、管理プログラムOSに実行が移り所定の処理
が行なわれた後再び時刻T5で中断されていたタ
スク0の実行が再開される。たしてタスク0の実
行が時刻T6で終了すると再び管理プログラムOS
に実行が移りここでマクロ処理プログラム228
によりタスクデイスパツチヤ208へタスク0の
実行終了護告がなされた時刻T7で再び起動待ち
になつていた起動要求N11に該当するタスク3の
実行が開始される。このタスク3の実行中時刻
T8で同じタスクレベル1のより優先度の低い起
動要求N12が入つた場合にはタスク3の実行は一
旦中断され実行は管理プログラムOSに移り所定
の処理が為された後、時刻T9でタスク3の実行
が再開される。そして時刻T10でタスク3の実行
が終了するとCPUの実行は管理プログラムOSに
移り前記マクロ処理プログラム228によりタス
クデイスパツチヤ208へタスク3の実行終了報
告が為され、次いで時刻T11でより優先レベルの
低い起動要求N12に該当するタスク4の実行が開
始され、時刻T12でタスク4の実行が終了すると
実行は管理プログラムOSに移り所定の処理が為
された後、今まで中断されていた起動要求N21に
該当するタスク6の実行が時刻T12から再開され
る。 以上の様にしてタスクの優先制御が行なわれ
る。 タスクの優先制御に於ける状態遷移を第10図
に示す。Idle状態は起動待ちの状態であり、タス
クにまだ起動要求が出されていない。次に起動要
求が出されるとタスク制御ブロツクの起動ビツト
にフラグが立ち、起動が必要ということが表示さ
れる。Idle状態からQueue状態へ移動する時間は
各タスクのレベルにより定まつている。更に
Queue状態になつても実行され順序は優先度によ
り定まる。そのタスクが実行状態に入るのは管理
プログラムOSの内のタスクデイスパツチヤ20
8でタスク制御ブロツクの起動ビツトのフラグが
リセツトされ、Rビツト(7ビツト目)にフラグ
が立つてからである。これによりタスクの実行が
始められる。この状態がRUN状態である。そし
て実行が終るとタスク制御ブロツクのRビツトの
フラグがクリアされ、終了報告を終了する。これ
によりRUN状態は終り、再びIdle状態となり次
の起動要求が出るのを待つ。しかし、タスクの実
行中即ちRUN中に割込みIRQが発生すると、そ
のタスクは実行を中断しなければならない。この
ためCPUの内容が待避され、実行が中断する。
この状態がReady状態である。次にこのタスクが
再び実行される状態になると待避エリアつり、待
避していた内容を再びCPUへ戻し、実行が再開
される。つまりReady状態から再びRUN状態へ
戻る。この様に各レベルプログラムは第12図の
4つの状態を繰り返する。第12図は代表的な流
れであるがReady状態でタスク制御ブロツクの起
動ビツトにフラグが立つ可能性がある。これは例
えば起動中断中にそのタスクの次の起動要求タイ
ミングになつてしまつた場合である。この時には
Rビツトのフラグが優先されて先ず、中断中のタ
スクを終了させる。これによりRビツトのフラグ
が消え、起動ビツトのフラグによりIdle状態を通
らずにQueue状態となる。 この様にタスク0〜8は各々第10図の何れか
の状態にある。 次に第11図は第5図のプログラムシステムの
具体例を示している。図に於いて管理プログラム
OSはイニシヤル処理プログラム202、割込み
処理プログラム206、タスクデイスパツチヤ2
08及びマクロ処理プログラム228より成る。 割込み処理プログラム206には各種の割込み
処理プログラムがあり、イニシヤル割込み処理
(以下INTL割込処理という)602はエンジン
回転に同期して発生するイニシヤル割込み信号に
よつて、エンジン1回転当たりエンジン気筒数の
半分、即ち4気筒なら2回イニシヤル割込みが発
生する。このイニシヤル割込みによつてEGIタス
ク612で計算した燃料の噴射時間を入出力イン
ターフエース回路108のEGIレジスタに設定す
る。AD変換割込み処理604は2種類あり1つ
はAD変換器1割込み(以下ADC1と略す)及び
AD変換器2割込み(以下ADC2と略す)であ
る。AD変換器1は8ビツトの精度を有し、電源
電圧、冷却水温度、吸気温度及び使用調整などの
入力に用いられ、マルチプレクサー120に対す
る入力ポイントの指定を行なうと同時に変換を開
始し、変換終了後にADC1割込みを発生する。
なお本割込みはクラツキング前にのみ使用する。
又AD変換器128は空気流量の入力に用いられ
る変換終了後にADC2割込みを発生する。なお、
本割込みもクラツキング前にのみ使用する。 次にインターバル割込み処理プログラム(以下
INTV割込み処理プログラムと示す。)606で
はINTV割込み信号はINTVレジスタに設定した
時間例えば10ms毎に発生し、一定周期で起動す
べきタスクの時間監視用基本信号として用いられ
る。本割込み信号によつて、ソフトタイマの更新
を行ない、規定周期に達したタスクを起動する。
更にエンスト割込み処理プログラム(以下ENST
割込み処理プログラムと記す。)608ではエン
ジンのストツプ状態を検出するもので、INTL割
込み信号を検出すると、計数を開始し所定時間例
えば1秒以内に次にINTL割込み信号を検出でき
なかつた時、ENST割込みが発生する。そして
ENST割込みが3回、例えば3秒経過しても
INTL割込み信号が検出できなかつた場合にエン
ストが起つたものと判断し点火コイルへの通電及
び燃料ポンプの停止を行なう。これらの処理の後
スタータスイツチ152がオンするまで待機す
る。上記割込み要因に対する処理概要を表1に示
す。
【表】
イニシヤル処理プログラム202及びマクロ処
理プログラム228については記述の通りの処理
を行なう。 上記各種の割込みにより起動されるタスク群は
次の通りである。タスクレベル0に属するタスク
としてはAD2入力タスク(以下ADIN2タスク
と記す)610、燃料噴射制御タスク(以下EGI
タスクと記す)612及び始動モニタタスク
(MONITタスクと言う)614がある。又タス
クレベル1に属するタスクとしてはAD1入力タ
スク(以上ADN1タスクと記す)616、時間
係数処理タスク(以下AFSIAタスク)618が
ある。更にタスクレベル2に属するタスクとして
はアイドル回転制御タスク(以下ISCタスクと記
す)620、補正計算タスク(以下HOSEIタス
クと記す)622及び始動前処理タスク(以下
ISTRTタスクと記す)624がある。 上記各タスクレベルの割り当てとタスクの機能
を表2に示す。
理プログラム228については記述の通りの処理
を行なう。 上記各種の割込みにより起動されるタスク群は
次の通りである。タスクレベル0に属するタスク
としてはAD2入力タスク(以下ADIN2タスク
と記す)610、燃料噴射制御タスク(以下EGI
タスクと記す)612及び始動モニタタスク
(MONITタスクと言う)614がある。又タス
クレベル1に属するタスクとしてはAD1入力タ
スク(以上ADN1タスクと記す)616、時間
係数処理タスク(以下AFSIAタスク)618が
ある。更にタスクレベル2に属するタスクとして
はアイドル回転制御タスク(以下ISCタスクと記
す)620、補正計算タスク(以下HOSEIタス
クと記す)622及び始動前処理タスク(以下
ISTRTタスクと記す)624がある。 上記各タスクレベルの割り当てとタスクの機能
を表2に示す。
【表】
【表】
表2から明らかなように各種割込みにより起動
される各タスクの起動周期は予め定められており
これらの情報はROM104に格納されている。 以下第12図乃至第14図に基づきINTV割込
み処理について説明する。第12図はRAM10
6に設けられたソフトタイマテーブルであり、こ
のソフトタイマテーブルには各種割込みにより起
動される異なる起動周期の数だけのタイマブロツ
クが設けられている。ここでタイマブロツクとは
ROM104に各納されているタスクの起動周期
に関する時間情報が転送される記憶エリアを指し
ている。同図に於いて左端に記載されている
TMBはRAM106に於けるソフトタイマテー
ブルの先頭番地を意味する。このソフトタイマテ
ーブルの各タイマブロツクにはエンジン始動時に
ROM104より前記起動周期に関する時間情
報、即ちINTV割込みを例えば10ms毎に行なう
場合にはその整数倍の値が転送され、格納され
る。 次に第13図にINTV割込み処理606の処理
フローを示す。同図に於いてステツプ626でプ
ログラムが起動されるとステツプ628でRAM
106に設けられたソフトタイマテーブルのイニ
シヤルライズが行なわれる。即ち、インデツクス
レジスタの内容iを0にし前記ソフトタイマテー
ブルの番地TMB+0のタイマブロツクに記憶さ
れている残り時間T1を調べる。ここでこの場合
にはT1=T0である。次にステツプ630で上記
ステツプ628で調べたソフトタイマが停止中で
あるか否かが判断される。即ち、ソフトタイマテ
ーブルに記憶されている残り時間T1がT1=0で
ある場合にはソフトタイマは停止中であると判断
され、該ソフトタイマにより起動されるべき該当
タスクは停止中であると判断され、ステツプ64
0にジヤンプし、ソフトタイマテーブルの更新が
行なわれる。 一方、ソフトタイマテーブルの残り時間T1が
T1≠0である場合にはステツプ632に移行し
前記タイマブロツクの残り時間の更新が行なわれ
る。即ち、残り時間T1から−1だけデイクリメ
ントされる。次にステツプ634では前記タイマ
テーブルのソフトタイマが起動周期に達したか否
かが判断される。即ち残り時間T1がT1=0であ
る場合には起動周期に達したと判断されその場合
にはステツプ636に移行する。又ソフトタイマ
が起動周期に達していないと判断される場合には
ステツプ640にジヤンプし、ソフトタイマテー
ブルの更新が行なわれる。前記ソフトタイマテー
ブルが起動周期に達している場合にはステツプ6
36でソフトタイマテーブルの残り時間T1を初
期化する。即ち、ROM104よりRAM106
へ該当タスクの起動周期の時間情報を転送する。
そしてステツプ636で前記ソフトタイマテーブ
ルの残り時間T1を初期化した後、ステツプ63
8でそのソフトタイマテーブルに該当するタスク
の起動要求を行なう。次にステツプ640でソフ
トタイマテーブルの更新を行なう。即ち、インデ
ツクスレジスタの内容を+1インクリメントす
る。更にステツプ642では全部のソフトタイマ
テーブルをチエツクしたか否かが判断される。即
ち、第12図に示したようにこの例ではソフトタ
イマテーブルをN+1個だけ設けてあるのでイン
デツクスレジスタの内容iがi=N+1である場
合には全ソフトタイマテーブルのチエツクが完了
したと判断されステツプ644でINTV割込み処
理プログラム606は終了する。一方ステツプ6
42で全ソフトタイマテーブルがチエツクされて
いないと判断された場合にはステツプ630に戻
り、前述と同様の処理が行なわれる。 以上の様にして各種の割込みに応じて該当タス
クの起動要求が出され、それに基づいて該当タス
クの実行が為されるが、表2に掲げられたタスク
群が常にすべてが実行されるのではなく、エンジ
ンの運転情報に基づいてROM104に設けられ
ている前記タスク群の起動周期に関する時間情報
を選択してRAM106のソフトタイマテーブル
中に転送し格納する。そして与えられたそのタス
クの起動周期が例えば20msであるとすれば、そ
の時間毎にタスクが起動されるがそのタスクの起
動が運転条件に応じて継続して行なう必要がある
ものであれば常にそのタスクに該当するソフトタ
イマテーブルは更新して初期化される。次にエン
ジンの運転条件に応じて各種割込みにより前記タ
スク群が起動停止される様子を第14図に示すタ
イムチヤートにより説明する。スタータスイツチ
152の操作によりパワーオンの状態になると
CPUが作動し、ソフトウエアフラグIST及びソフ
トウエアフラグEMに1が立てられる。ソフトウ
エアフラグISTはエンジンが始動前の状態にある
ことを示すフラグであり、ソフトウエアフラグ
EMはENST割込みを禁止するためのフラグであ
る。これらの2つのフラグによりエンジンが始動
前の状態にあるか或いは始動中か又は始動後の状
態にあるのかの判別が為される。さてスタータス
イツチ152の操作によりパワーオンの状態にな
ると先ず最初にADINIタスクが起動され各種セ
ンサによりエンジンの始動に必要なデータ例えば
冷却水温度、バツテリ電圧等の入力情報がマルチ
プレクサ120を介してAD変換器122に取込
まれ、これらのデータの一巡入力毎にHOSEIタ
スクが起動され前記入力情報に基づき補正計算が
行なわれる。又前記ADIN1タスクによりAD変
換器122に各種センサからのデータの一巡入力
毎にISTRTタスクが起動されエンジン始動中に
必要な燃料噴射量の計算がなされる。以下の3つ
のタスク、即ちADIN1タスク、HOSEIタスク
及びISTRTタスクはイニシヤル処理プログラム
202により起動されるものである。 スタータスイツチ152がON状態になると
ISTRTタスクの割込み信号によりADIN1タス
ク、MONITタスク及びADIN2タスクの3つの
タスクに起動が掛けられる。即ち、これらのタス
クはスタータスイツチ152がON状態になつて
いる期間(エンジンのクラツキング時)のみ実行
される必要がある。この期間ではROM104か
らRAM106に設けられた前記タスクにそれぞ
れ該当するソフトタイマテーブルに所定の起動周
期の時間情報が転送され格納される。そしてこの
期間は前記ソフトタイマテーブルの起動周期の残
り時間T1は初期化され起動周期の設定が繰り返
し行なわれる。MONITタスクはエンジン始動時
の燃料噴射量を計算するためのタスクでありエン
ジン始動後は不要なタスクであるので所定の回数
だけタスクの実行を終了したらソフトタイマの起
動を停止し、そのタスク終了時に発せられる停止
信号により上記以外のエンジン始動後に必要なタ
スク群の起動を行なう。ここでタスクの停止をソ
フトタイマにより行なうにはそのタスクの終了に
於ける判断時点でそのタスクが終了したことを示
す信号によりそのタスクの該当するソフトタイマ
テーブルに0を格納する、即ちソフトタイマの内
容をクリアすることによりタスクの停止を行なう
ものである。 以上の如く、この従来例では、タスクの起動停
止をソフトタイマにより簡単に行なえるように構
成したので、異なる起動周期を有する複数のタス
クに対し能率的且つ信頼性有する管理を行なうこ
とが可能となり、汎用性に富んだEECを得るこ
とができる。 ところで、以上の説明からも明らかなように、
EECを備えた自動車用のエンジンにおいても、
このような内燃機関を始動させるためには、通
常、スタータモータ74(第1図)を用いてエン
ジンの軸72を回転させ、それと同時に燃料の供
給や点火時期を始動に適した状態に制御してい
る。 しかしながら、エンジンの始動をスタータモー
タだけに頼つていた場合には、スタータモータの
故障やバツテリ電圧が低下した場合などにエンジ
ンの始動が不可能になつてしまう。そこで、
EECを備えたエンジンであつても、このような
場合には、クラツチペダルを踏んでクラツチを解
放にした状態で自動車を入力、坂道、或いは他の
自動車などを利用して走行させ、自動車が走行し
ている状態でクラツチを接続することにより自動
車の慣性で車輪からのトルクによりエンジンを回
転させて始動を行なわせる、いわゆる押し掛け始
動が可能になるようにすることが望ましい。 ところが、上記した従来のEECにおいては、
押し掛け始動に際してエンジンの制御が何も行な
われないため、押し掛けによつてはエンジンの始
動を満足に行なうことができないという欠点があ
つた。 また、自動車などの走行時においては、クラツ
チを切つたり、トランスミツシヨンギヤをニユー
トラルにした状態でエンジンが停止してしまう場
合がある。しかして、このような場合には、自動
車走行に伴なう慣性のためトランスミツシヨンギ
ヤを入れ、クラツチを入ればエンジンは車輪から
のトルクにより回転するから、そのまま始動され
て自動車の走行は継続的に可能な筈であるが、上
記したEECによるエンジンでは、このような場
合にはエンジンの制御が始動に適した状態になら
ないため始動が困難で、スタータモータによる始
動を行なわなければならなくなつて連続した走行
が行なえなくなつてしまうという欠点があつた。 なお、エンジン始動に関連する技術としては、
例えば特開昭54−109521号公報の開示を挙げるこ
とができる。 本発明の目的は、上記した従来技術の欠点を除
き、エンジンの押し掛け始動が可能で自動車の運
行状態にさらに柔軟に対応できるようにした
EECによる自動車エンジンの始動制御方式を提
供するにある。 この目的を達成するため、本発明は、スタータ
モータによらないエンジンの始動状態を検出して
燃料供給量などをエンジン始動に適した状態に制
御し、この制御状態をエンジンの完爆が検出され
るまで継続させるようにした点を特徴とする。 以下、本発明による始動方式の実施例を図面に
ついて説明する。 第15図は本発明の一実施例による動作を示し
たフローチヤートで、第1図ないし第14図に示
した従来例におけるプログラムの一つとして組込
まれたものである。 この第15図のフローチヤートに従つたプログ
ラムは、2つの大きな機能からなり、その一方は
エンジンの始動開始を検知する機能で、図におけ
るステツプ(以下、単にSと記す)702から7
12の部分によつて遂行され、他方はエンジンの
始動終了を検知し、エンジンの制御状態を、スタ
ータモータによらないエンジンの始動動作状態に
適した制御条件から通常の運転領域に移行させる
機能で、図ではS714〜S732の部分によつ
て遂行されるものであり、さらに詳しくいえば、
S702〜S708からなる部分が、エンジンの
始動動作がスタータモータによる始動であるか、
スタータモータによらない始動であるかを識別す
る第1の判定手段として機能し、S714〜S7
30からなる部分が、始動動作状態にあるエンジ
ンの完爆を検出する第2の判定手段として機能
し、さらにS732はスタータモータによらない
エンジンの始動動作状態が満足しているか否かを
監視する第3の判定手段として機能することにな
る。このとき、S720は、制御機能によるエン
ジンの制御条件を、スタータモータによらないエ
ンジンの始動動作状態に適した制御条件に設定す
る始動運転制御手段として働くことになり、さら
に、これらの手段が、この第15図から明らかな
ように、第1の判定手段の識別結果に応じて上記
始動運転制御手段によるエンジン制御状態に設定
した後、第2の判定手段の完爆判定結果により上
記の設定を解除すると共に、第3の判定手段によ
る判定結果が否定となつたときには、制御処理を
リセツトさせ、これら第1と第2の判定手段によ
る処理を終了させるように組合わさせていること
により、スタータモータによらないエンジンの始
動操作を行つたときには、このときでのエンジン
の状態に対応した最適な燃料噴射量が自動的に得
られ、この結果、この実施例によれば、常に確実
に、しかも短時間で容易にエンジンの押し掛け始
動を行なうことができると共に、スタータモータ
によらないエンジンの始動操作を行つたにもかか
わらず、エンジンを始動させることができなかつ
たときには、エンジンの始動に関係した制御をリ
セツトさせ、これにより、例えば燃料噴射用のポ
ンプを確実に停止させるなどの、安全性確保に欠
せない処理が自動的に得られることになるのであ
るが、これらの点について、以下、さらに詳しく
説明する。 既に説明したように、自動車エンジンの始動に
はスタータモータと押し掛けによる場合があり、
本発明ではこれを識別する必要がある。そこで、
この実施例では、まずS702でスタータモータ
が駆動されているか否かをスタータスイツチ15
2がONか否かによつて判断される。 S702での結果がYESとなつたときには、
スタータモータによる始動と判断してS710に
跳ぶが、NOとなつたときにはS704と706
に進んで押し掛け状態にあるか否かを判断する。
まず、S704でエンジンの回転数Nを取り込
み、ついでS706に進んでエンジン回転数Nが
押し掛け判定回転数Njより大となつているか否
かを調べる。この判定回転数Njとしては、エン
ジンが始動可能な回転数、例えば10〜50rpmの回
転数が選ばれている。従つてS706での結果が
YESとなつたときには、エンジンが自動車の車
輪からのトルクによつて駆動され、しかもその回
転数が始動に充分な値に達していることを表わす
から、押し掛け始動に入つたものとしてS708
に進み、押し掛けフラグをセツトする。 一方、S706での結果がNOとなつたときに
は、スタータモータ及び押し掛けによる始動条件
のいずれもがまだ満されていないことになるの
で、S702に戻る。 さて、S702で結果がYESになつたとき、
及びS708を通つたときにはスタータモータ又
は押し掛けのいずれかの始動状態に入つたことを
意味するから、S710に進んでフユーエルポン
プ32(第1図)を動作させてエンジンに対する
燃料の供給を開始する。ついでS712に進み、
INTV割込み処理プログラム606の禁止を解除
して必要な制御動作の開始を可能にする。 以上によりエンジンの始動を検出する機能が遂
行され、ついでエンジンの始動が終了して通常の
運転領域に移行させるためのステツプに入り、ま
ずS714で押し掛けフラグがセツトされている
か否かによつて押し掛け始動中であるか否かを調
べる。そして判断結果がNOのときにはS716
に進み、スタータスイツチがOFFになつている
か否かを調べてエンジンが完爆したか否かを判断
する。これはスタータモータによつてエンジンの
始動が行なわれたときには、エンジンが完爆すれ
ば運転者は当然スタータスイツチをOFFにする
であろうとの認識に基づいている。 S716での判断結果がNOとなつたときに
は、まだスタータモータによる始動中であること
を意味すらから、次のS718に向い、スタータ
モータによる始動に適した燃料噴射量のセツトを
行なう。 一方、S714での結果がYESとなつたとき
にはS720に進んで押し掛け始動に適した燃料
噴射量のセツトが行なわれる。 また、S716においての結果がYESとなつ
たらS722に向い、ENST割込の禁止を解除し
てからEXITに抜け、このフローに従つたプログ
ラムを終了する。なお、運転者がエンジンの始動
が完了していないにもかかわらずスタータスイツ
チを戻してしまい、スタータモータの駆動を停止
してしまつたときにもS716からS722に進
んでしまうが、このときにはENST割込により処
理されることになる。 さて、S718或いはS720で燃料噴射量の
セツトが行なわれた後はS724に進み、追し掛
けフラグがセツトされているか否かを調べて追し
掛け始動中か否かが判断される。 このS724での結果がNOのときには、スタ
ータモータによる始動中であり、しかもまだ完爆
していない状態を表わすから、S714に戻り、
完爆するまではS714からS716,718,
724を通るループ内を繰り返すことになる。 また、S724での結果がYESとなつたとき
には、S726でエンジン回転数Nを取り込んで
からS728に進み、エンジン回転数Nがエンジ
ン完爆時の回転数Npに達したか否かをN≧Npに
よつて調べ、押し掛け始動による完爆判定を行な
う。 このS728での結果がYESとなつたときに
は押し掛けによる始動が完了したものとみなせる
から、次のS730に進んで押し掛けフラグをリ
セツトしてからS714に戻り、S722を通つ
てEXITに抜ける。なお、このときの回転数Np
の値としては、エンジンが完爆時に得られる回転
数にセツトすればよく、例えば300〜400rpmが選
ばれている。 一方、S728での結果がNOとなつたときに
は、押し掛け始動によりエンジンが回転させられ
ている状態にはあるが、まだ完爆には到つていな
いことを表わすから、S732に進んでエンジン
の回転数Nが押し掛け始動が可能な回転数Njに
達しているか否かを調べ、結果がNOとなつたと
きには押し掛け始動が継続が断念されたものと判
断してプログラムをリセツトし、最初に戻る。 一方、S732での結果がYESのときには、
まだエンジンが車輪からのトルクによつて所定の
回転数以上の速度で回転させられていることを示
すから、押し掛け動作が継続されているものと判
断してS714に戻される。 このように、第15図に示した動作が遂行され
れば、エンジンが押し掛け始動状態に入つたとき
にも、スタータモータによつて始動を行なつたと
きと同じように必要な制御が行なわれ、エンジン
始動時の制御を適確に行なつて始動を容易にする
と共に始動完後了の制御にスムーズに移行させる
ことができ、EECを備えた自動車用エンジンに
おいても、必要なときには押し掛けによるエンジ
ンの始動を容易に行なつて柔軟な自動車の運行を
行なうことができる上、押し掛け始動操作など、
スタータモータによらないエンジンの始動操作を
行つたにもかかわらず、エンジンが始動しなかつ
たときや、押し掛け始動操作などを中途で放棄し
た場合などには、このエンジン始動に関連した制
御処理は確実にリセツトされ、この結果、燃料噴
射用のポンプの運転停止など、安全性確保に欠か
せない処理が的確に得られることになる。 次に、本発明の他の実施例を第16図及び第1
7図のフローチヤートによつて説明する。 この実施例は、第15図に示した実施例におけ
る2つの機能を異つたレベルのタスクに分離した
もので、エンジンの始動開始を検知する機能(第
15図の実施例ではS702〜S712の部分が
果している機能)を第11図のISTRTタスク6
24で、そしてエンジンの始動終了を検知し、エ
ンジンの制御状態を通常の運転領域に移行させる
機能(第15図の実施例ではS714〜S732
の部分が果している機能)を第11図のMONIT
タスク614でそれぞれ遂行するようにしたもの
である。 まず、第16図は第11図におけるISTRTタ
スク624に組込まれたプログラムによるフロー
チヤートで、タスクデイスパツチヤ208により
レベル2のタスクとして起動されると、最初のS
802において基準となる燃料噴射量を決めるた
めの噴射時間tEGISをエンジン冷却水温TWの函数
として計算する。この噴射時間tEGISと水温TWの
関係は第18図に示すようになつており、エンジ
ンの温度が低いときには多量の燃料をシリンダ内
に送り込んで始動を容易にするためのもので、そ
のため、水温センサ56から取り込んだデータ
TWからテーブルなどを当つて時間tEGISを求める
ようになつている。 続くS804〜S814までは第15図のS7
02からS712と同じでエンジンの始動がスタ
ータモータによるものか、押し掛けによるものか
を判定して始動の準備を行なついている。 その後、S816で始動フラグのセツトを行な
つてからEXITに抜け、このタスクを終了する。 次に第17図は第11図のMONITタスク61
4に組込まれたプログラムによるフローチヤート
で、タスクデイスパツチヤ208によりレベル0
のタスクとして起動され、まずS902に進んで
始動フラグのセツト状態によりエンジンが始動中
であるか否かを調べる。なお、この始動フラグは
第16図のS816でセツトされるものである。 続くS904とS906は第15図のS71
4,S716と同じで、S904ではエンジンの
始動が押し掛けによるものか否かを判断し、S9
06はスタータスイツチのOFF状態でエンジン
の完爆判定を行なうものである。 S904で結果がYES、つまり押し掛け始動
中に判断されたときにはS908を通つて燃料噴
射時間係数KTを1.0に設定する。 一方、S904で結果がNO、つまりスタータ
モータによる始動と判定されてS906からS9
10に進んだときには、燃料噴射時間係数KTを
クランキング経過時間tCの函数として計算する。
このクランキング経過時間tCによつて燃料噴射時
間係数KTを計算しているのは、スタータモータ
によつて始動を行なつた場合、何らかの理由によ
り完爆までに長い時間が掛つたときなどに燃料の
供給量が積算され、ますます始動が困難になつた
り、エンジン破壊の危険を生じたりするのを防止
するためであり、例えば第19図のようにスター
タモータによるクランキング経過時間tCが5secに
達するまでは係数KTが1.0で、それ以後は時間tC
の経過に伴つて係数KTが直線状に減少してゆく
ようにしてある。 こうしてS908、或いはS910によつて時
間係数KTを求めたらS914に進み、今度はエ
ンジン回転数Nによる燃料噴射時間係数KNを計
算する。このときの係数KNの求め方は例えば第
20図に示すような特性に従つて行なわれるよう
になつている。 S914に続いてS916では係数KT、KNに
よる燃料噴射時間tEGISの補正が行なわれ、必要な
燃料噴射時間tisが計算されてINJC134(第2
図)のINJDにセツトされ、その結果、インジエ
クタ12が制御されてエンジンに対する燃料の供
給制御が行なわれる。 一方、S906において、結果がYESと判断
されたときにはS912に進み、始動フラグをリ
セツトしてからEXITに抜け、このタスクを終了
する。 さて、S916で燃料噴射時間tisの計算を終
つたらS918〜S924に向うが、この部分は
第15図のS724〜S732による部分と同じ
機能を果す部分で、まずS918で押し掛け始動
中か否かを押し掛けフラグのセツト状態で判断
し、結果がNOのときにはそのままEXITに抜け、
次の起動タイミングを待つ。また、S918で結
果がYESとなつたらS920に進み、エンジン
回転数Nが完爆したとみなされる回転数Npに達
しているか否かを調べ、YESのときにはS92
2を通つて押し掛けフラグをリセツトしてから
EXITに抜ける。 また、S920で結果がNOとなつたときには
S924に向い、エンジンの回転数Nが押し掛け
判定回転数Njに達しているか否かを調べ、結果
がYESのときにはEXITに抜け、NOときには
RESET200(第11図)に抜けてイニシヤル
処理202からやり直すようにする。 従つて、この実施例によつても第15図の実施
例と同じく押し掛けによるエンジンの始動動作に
対して充分に対応した制御を行なうことができ、
押し掛けによる始動を容易に確実に行なうことが
できる。 また、この実施例によれば、必要なタスクを2
つの異つた起動周期のタスクに分離しているか
ら、第1図ないし第14図に示した従来例の特徴
を充分に活かすことができ、マイコンの利用度を
高くすることができる。 なお、以上の実施例では、押し掛け始動に入つ
たことの判定及びそれによるエンジンの完爆判定
をいずれもエンジンの回転数Nが所定の判定値
Nj及び規定値Npに達したか否かによつて判断し
ている(第15図のS706,S728,S73
2,第16図のS808,第17図のS920,
S924)が、本発明はこれに限らず、エンジン
の吸入吸気量、エンジンの吸気負圧などが所定の
判定値及び規定値に達したか否かによつて押し掛
け始動に入つたことやそれによるエンジンの完爆
を判定するようにしても同じような作用効果を得
ることができる。なお、このとき、エンジン回転
数による判定結果と併用するようにしてもよい。 また、第17図に示した実施例では、燃料噴射
量を決める噴射時間tisにクランキング経過時間
係数KTを導入しているが、これを省略しても実
用上からは大きな問題を生じない場合には、S9
10を除いて構成を簡単にすることができる。 以上説明したように、本発明によれば、EEC
を備えたエンジンを塔載した自動車であつても、
車輪からのトルクによるエンジン始動を容易に、
しかも確実に行なわせることができるから、従来
技術の欠点を除いてバツテリ電圧低下時にも押し
掛けにより自動車の走行が可能な上、走行中にお
けるエンジン停止時にもそのまま慣性による始動
を行なつて継続的な走行が可能なEECによる自
動車エンジンの始動方法を提供することができ
る。
される各タスクの起動周期は予め定められており
これらの情報はROM104に格納されている。 以下第12図乃至第14図に基づきINTV割込
み処理について説明する。第12図はRAM10
6に設けられたソフトタイマテーブルであり、こ
のソフトタイマテーブルには各種割込みにより起
動される異なる起動周期の数だけのタイマブロツ
クが設けられている。ここでタイマブロツクとは
ROM104に各納されているタスクの起動周期
に関する時間情報が転送される記憶エリアを指し
ている。同図に於いて左端に記載されている
TMBはRAM106に於けるソフトタイマテー
ブルの先頭番地を意味する。このソフトタイマテ
ーブルの各タイマブロツクにはエンジン始動時に
ROM104より前記起動周期に関する時間情
報、即ちINTV割込みを例えば10ms毎に行なう
場合にはその整数倍の値が転送され、格納され
る。 次に第13図にINTV割込み処理606の処理
フローを示す。同図に於いてステツプ626でプ
ログラムが起動されるとステツプ628でRAM
106に設けられたソフトタイマテーブルのイニ
シヤルライズが行なわれる。即ち、インデツクス
レジスタの内容iを0にし前記ソフトタイマテー
ブルの番地TMB+0のタイマブロツクに記憶さ
れている残り時間T1を調べる。ここでこの場合
にはT1=T0である。次にステツプ630で上記
ステツプ628で調べたソフトタイマが停止中で
あるか否かが判断される。即ち、ソフトタイマテ
ーブルに記憶されている残り時間T1がT1=0で
ある場合にはソフトタイマは停止中であると判断
され、該ソフトタイマにより起動されるべき該当
タスクは停止中であると判断され、ステツプ64
0にジヤンプし、ソフトタイマテーブルの更新が
行なわれる。 一方、ソフトタイマテーブルの残り時間T1が
T1≠0である場合にはステツプ632に移行し
前記タイマブロツクの残り時間の更新が行なわれ
る。即ち、残り時間T1から−1だけデイクリメ
ントされる。次にステツプ634では前記タイマ
テーブルのソフトタイマが起動周期に達したか否
かが判断される。即ち残り時間T1がT1=0であ
る場合には起動周期に達したと判断されその場合
にはステツプ636に移行する。又ソフトタイマ
が起動周期に達していないと判断される場合には
ステツプ640にジヤンプし、ソフトタイマテー
ブルの更新が行なわれる。前記ソフトタイマテー
ブルが起動周期に達している場合にはステツプ6
36でソフトタイマテーブルの残り時間T1を初
期化する。即ち、ROM104よりRAM106
へ該当タスクの起動周期の時間情報を転送する。
そしてステツプ636で前記ソフトタイマテーブ
ルの残り時間T1を初期化した後、ステツプ63
8でそのソフトタイマテーブルに該当するタスク
の起動要求を行なう。次にステツプ640でソフ
トタイマテーブルの更新を行なう。即ち、インデ
ツクスレジスタの内容を+1インクリメントす
る。更にステツプ642では全部のソフトタイマ
テーブルをチエツクしたか否かが判断される。即
ち、第12図に示したようにこの例ではソフトタ
イマテーブルをN+1個だけ設けてあるのでイン
デツクスレジスタの内容iがi=N+1である場
合には全ソフトタイマテーブルのチエツクが完了
したと判断されステツプ644でINTV割込み処
理プログラム606は終了する。一方ステツプ6
42で全ソフトタイマテーブルがチエツクされて
いないと判断された場合にはステツプ630に戻
り、前述と同様の処理が行なわれる。 以上の様にして各種の割込みに応じて該当タス
クの起動要求が出され、それに基づいて該当タス
クの実行が為されるが、表2に掲げられたタスク
群が常にすべてが実行されるのではなく、エンジ
ンの運転情報に基づいてROM104に設けられ
ている前記タスク群の起動周期に関する時間情報
を選択してRAM106のソフトタイマテーブル
中に転送し格納する。そして与えられたそのタス
クの起動周期が例えば20msであるとすれば、そ
の時間毎にタスクが起動されるがそのタスクの起
動が運転条件に応じて継続して行なう必要がある
ものであれば常にそのタスクに該当するソフトタ
イマテーブルは更新して初期化される。次にエン
ジンの運転条件に応じて各種割込みにより前記タ
スク群が起動停止される様子を第14図に示すタ
イムチヤートにより説明する。スタータスイツチ
152の操作によりパワーオンの状態になると
CPUが作動し、ソフトウエアフラグIST及びソフ
トウエアフラグEMに1が立てられる。ソフトウ
エアフラグISTはエンジンが始動前の状態にある
ことを示すフラグであり、ソフトウエアフラグ
EMはENST割込みを禁止するためのフラグであ
る。これらの2つのフラグによりエンジンが始動
前の状態にあるか或いは始動中か又は始動後の状
態にあるのかの判別が為される。さてスタータス
イツチ152の操作によりパワーオンの状態にな
ると先ず最初にADINIタスクが起動され各種セ
ンサによりエンジンの始動に必要なデータ例えば
冷却水温度、バツテリ電圧等の入力情報がマルチ
プレクサ120を介してAD変換器122に取込
まれ、これらのデータの一巡入力毎にHOSEIタ
スクが起動され前記入力情報に基づき補正計算が
行なわれる。又前記ADIN1タスクによりAD変
換器122に各種センサからのデータの一巡入力
毎にISTRTタスクが起動されエンジン始動中に
必要な燃料噴射量の計算がなされる。以下の3つ
のタスク、即ちADIN1タスク、HOSEIタスク
及びISTRTタスクはイニシヤル処理プログラム
202により起動されるものである。 スタータスイツチ152がON状態になると
ISTRTタスクの割込み信号によりADIN1タス
ク、MONITタスク及びADIN2タスクの3つの
タスクに起動が掛けられる。即ち、これらのタス
クはスタータスイツチ152がON状態になつて
いる期間(エンジンのクラツキング時)のみ実行
される必要がある。この期間ではROM104か
らRAM106に設けられた前記タスクにそれぞ
れ該当するソフトタイマテーブルに所定の起動周
期の時間情報が転送され格納される。そしてこの
期間は前記ソフトタイマテーブルの起動周期の残
り時間T1は初期化され起動周期の設定が繰り返
し行なわれる。MONITタスクはエンジン始動時
の燃料噴射量を計算するためのタスクでありエン
ジン始動後は不要なタスクであるので所定の回数
だけタスクの実行を終了したらソフトタイマの起
動を停止し、そのタスク終了時に発せられる停止
信号により上記以外のエンジン始動後に必要なタ
スク群の起動を行なう。ここでタスクの停止をソ
フトタイマにより行なうにはそのタスクの終了に
於ける判断時点でそのタスクが終了したことを示
す信号によりそのタスクの該当するソフトタイマ
テーブルに0を格納する、即ちソフトタイマの内
容をクリアすることによりタスクの停止を行なう
ものである。 以上の如く、この従来例では、タスクの起動停
止をソフトタイマにより簡単に行なえるように構
成したので、異なる起動周期を有する複数のタス
クに対し能率的且つ信頼性有する管理を行なうこ
とが可能となり、汎用性に富んだEECを得るこ
とができる。 ところで、以上の説明からも明らかなように、
EECを備えた自動車用のエンジンにおいても、
このような内燃機関を始動させるためには、通
常、スタータモータ74(第1図)を用いてエン
ジンの軸72を回転させ、それと同時に燃料の供
給や点火時期を始動に適した状態に制御してい
る。 しかしながら、エンジンの始動をスタータモー
タだけに頼つていた場合には、スタータモータの
故障やバツテリ電圧が低下した場合などにエンジ
ンの始動が不可能になつてしまう。そこで、
EECを備えたエンジンであつても、このような
場合には、クラツチペダルを踏んでクラツチを解
放にした状態で自動車を入力、坂道、或いは他の
自動車などを利用して走行させ、自動車が走行し
ている状態でクラツチを接続することにより自動
車の慣性で車輪からのトルクによりエンジンを回
転させて始動を行なわせる、いわゆる押し掛け始
動が可能になるようにすることが望ましい。 ところが、上記した従来のEECにおいては、
押し掛け始動に際してエンジンの制御が何も行な
われないため、押し掛けによつてはエンジンの始
動を満足に行なうことができないという欠点があ
つた。 また、自動車などの走行時においては、クラツ
チを切つたり、トランスミツシヨンギヤをニユー
トラルにした状態でエンジンが停止してしまう場
合がある。しかして、このような場合には、自動
車走行に伴なう慣性のためトランスミツシヨンギ
ヤを入れ、クラツチを入ればエンジンは車輪から
のトルクにより回転するから、そのまま始動され
て自動車の走行は継続的に可能な筈であるが、上
記したEECによるエンジンでは、このような場
合にはエンジンの制御が始動に適した状態になら
ないため始動が困難で、スタータモータによる始
動を行なわなければならなくなつて連続した走行
が行なえなくなつてしまうという欠点があつた。 なお、エンジン始動に関連する技術としては、
例えば特開昭54−109521号公報の開示を挙げるこ
とができる。 本発明の目的は、上記した従来技術の欠点を除
き、エンジンの押し掛け始動が可能で自動車の運
行状態にさらに柔軟に対応できるようにした
EECによる自動車エンジンの始動制御方式を提
供するにある。 この目的を達成するため、本発明は、スタータ
モータによらないエンジンの始動状態を検出して
燃料供給量などをエンジン始動に適した状態に制
御し、この制御状態をエンジンの完爆が検出され
るまで継続させるようにした点を特徴とする。 以下、本発明による始動方式の実施例を図面に
ついて説明する。 第15図は本発明の一実施例による動作を示し
たフローチヤートで、第1図ないし第14図に示
した従来例におけるプログラムの一つとして組込
まれたものである。 この第15図のフローチヤートに従つたプログ
ラムは、2つの大きな機能からなり、その一方は
エンジンの始動開始を検知する機能で、図におけ
るステツプ(以下、単にSと記す)702から7
12の部分によつて遂行され、他方はエンジンの
始動終了を検知し、エンジンの制御状態を、スタ
ータモータによらないエンジンの始動動作状態に
適した制御条件から通常の運転領域に移行させる
機能で、図ではS714〜S732の部分によつ
て遂行されるものであり、さらに詳しくいえば、
S702〜S708からなる部分が、エンジンの
始動動作がスタータモータによる始動であるか、
スタータモータによらない始動であるかを識別す
る第1の判定手段として機能し、S714〜S7
30からなる部分が、始動動作状態にあるエンジ
ンの完爆を検出する第2の判定手段として機能
し、さらにS732はスタータモータによらない
エンジンの始動動作状態が満足しているか否かを
監視する第3の判定手段として機能することにな
る。このとき、S720は、制御機能によるエン
ジンの制御条件を、スタータモータによらないエ
ンジンの始動動作状態に適した制御条件に設定す
る始動運転制御手段として働くことになり、さら
に、これらの手段が、この第15図から明らかな
ように、第1の判定手段の識別結果に応じて上記
始動運転制御手段によるエンジン制御状態に設定
した後、第2の判定手段の完爆判定結果により上
記の設定を解除すると共に、第3の判定手段によ
る判定結果が否定となつたときには、制御処理を
リセツトさせ、これら第1と第2の判定手段によ
る処理を終了させるように組合わさせていること
により、スタータモータによらないエンジンの始
動操作を行つたときには、このときでのエンジン
の状態に対応した最適な燃料噴射量が自動的に得
られ、この結果、この実施例によれば、常に確実
に、しかも短時間で容易にエンジンの押し掛け始
動を行なうことができると共に、スタータモータ
によらないエンジンの始動操作を行つたにもかか
わらず、エンジンを始動させることができなかつ
たときには、エンジンの始動に関係した制御をリ
セツトさせ、これにより、例えば燃料噴射用のポ
ンプを確実に停止させるなどの、安全性確保に欠
せない処理が自動的に得られることになるのであ
るが、これらの点について、以下、さらに詳しく
説明する。 既に説明したように、自動車エンジンの始動に
はスタータモータと押し掛けによる場合があり、
本発明ではこれを識別する必要がある。そこで、
この実施例では、まずS702でスタータモータ
が駆動されているか否かをスタータスイツチ15
2がONか否かによつて判断される。 S702での結果がYESとなつたときには、
スタータモータによる始動と判断してS710に
跳ぶが、NOとなつたときにはS704と706
に進んで押し掛け状態にあるか否かを判断する。
まず、S704でエンジンの回転数Nを取り込
み、ついでS706に進んでエンジン回転数Nが
押し掛け判定回転数Njより大となつているか否
かを調べる。この判定回転数Njとしては、エン
ジンが始動可能な回転数、例えば10〜50rpmの回
転数が選ばれている。従つてS706での結果が
YESとなつたときには、エンジンが自動車の車
輪からのトルクによつて駆動され、しかもその回
転数が始動に充分な値に達していることを表わす
から、押し掛け始動に入つたものとしてS708
に進み、押し掛けフラグをセツトする。 一方、S706での結果がNOとなつたときに
は、スタータモータ及び押し掛けによる始動条件
のいずれもがまだ満されていないことになるの
で、S702に戻る。 さて、S702で結果がYESになつたとき、
及びS708を通つたときにはスタータモータ又
は押し掛けのいずれかの始動状態に入つたことを
意味するから、S710に進んでフユーエルポン
プ32(第1図)を動作させてエンジンに対する
燃料の供給を開始する。ついでS712に進み、
INTV割込み処理プログラム606の禁止を解除
して必要な制御動作の開始を可能にする。 以上によりエンジンの始動を検出する機能が遂
行され、ついでエンジンの始動が終了して通常の
運転領域に移行させるためのステツプに入り、ま
ずS714で押し掛けフラグがセツトされている
か否かによつて押し掛け始動中であるか否かを調
べる。そして判断結果がNOのときにはS716
に進み、スタータスイツチがOFFになつている
か否かを調べてエンジンが完爆したか否かを判断
する。これはスタータモータによつてエンジンの
始動が行なわれたときには、エンジンが完爆すれ
ば運転者は当然スタータスイツチをOFFにする
であろうとの認識に基づいている。 S716での判断結果がNOとなつたときに
は、まだスタータモータによる始動中であること
を意味すらから、次のS718に向い、スタータ
モータによる始動に適した燃料噴射量のセツトを
行なう。 一方、S714での結果がYESとなつたとき
にはS720に進んで押し掛け始動に適した燃料
噴射量のセツトが行なわれる。 また、S716においての結果がYESとなつ
たらS722に向い、ENST割込の禁止を解除し
てからEXITに抜け、このフローに従つたプログ
ラムを終了する。なお、運転者がエンジンの始動
が完了していないにもかかわらずスタータスイツ
チを戻してしまい、スタータモータの駆動を停止
してしまつたときにもS716からS722に進
んでしまうが、このときにはENST割込により処
理されることになる。 さて、S718或いはS720で燃料噴射量の
セツトが行なわれた後はS724に進み、追し掛
けフラグがセツトされているか否かを調べて追し
掛け始動中か否かが判断される。 このS724での結果がNOのときには、スタ
ータモータによる始動中であり、しかもまだ完爆
していない状態を表わすから、S714に戻り、
完爆するまではS714からS716,718,
724を通るループ内を繰り返すことになる。 また、S724での結果がYESとなつたとき
には、S726でエンジン回転数Nを取り込んで
からS728に進み、エンジン回転数Nがエンジ
ン完爆時の回転数Npに達したか否かをN≧Npに
よつて調べ、押し掛け始動による完爆判定を行な
う。 このS728での結果がYESとなつたときに
は押し掛けによる始動が完了したものとみなせる
から、次のS730に進んで押し掛けフラグをリ
セツトしてからS714に戻り、S722を通つ
てEXITに抜ける。なお、このときの回転数Np
の値としては、エンジンが完爆時に得られる回転
数にセツトすればよく、例えば300〜400rpmが選
ばれている。 一方、S728での結果がNOとなつたときに
は、押し掛け始動によりエンジンが回転させられ
ている状態にはあるが、まだ完爆には到つていな
いことを表わすから、S732に進んでエンジン
の回転数Nが押し掛け始動が可能な回転数Njに
達しているか否かを調べ、結果がNOとなつたと
きには押し掛け始動が継続が断念されたものと判
断してプログラムをリセツトし、最初に戻る。 一方、S732での結果がYESのときには、
まだエンジンが車輪からのトルクによつて所定の
回転数以上の速度で回転させられていることを示
すから、押し掛け動作が継続されているものと判
断してS714に戻される。 このように、第15図に示した動作が遂行され
れば、エンジンが押し掛け始動状態に入つたとき
にも、スタータモータによつて始動を行なつたと
きと同じように必要な制御が行なわれ、エンジン
始動時の制御を適確に行なつて始動を容易にする
と共に始動完後了の制御にスムーズに移行させる
ことができ、EECを備えた自動車用エンジンに
おいても、必要なときには押し掛けによるエンジ
ンの始動を容易に行なつて柔軟な自動車の運行を
行なうことができる上、押し掛け始動操作など、
スタータモータによらないエンジンの始動操作を
行つたにもかかわらず、エンジンが始動しなかつ
たときや、押し掛け始動操作などを中途で放棄し
た場合などには、このエンジン始動に関連した制
御処理は確実にリセツトされ、この結果、燃料噴
射用のポンプの運転停止など、安全性確保に欠か
せない処理が的確に得られることになる。 次に、本発明の他の実施例を第16図及び第1
7図のフローチヤートによつて説明する。 この実施例は、第15図に示した実施例におけ
る2つの機能を異つたレベルのタスクに分離した
もので、エンジンの始動開始を検知する機能(第
15図の実施例ではS702〜S712の部分が
果している機能)を第11図のISTRTタスク6
24で、そしてエンジンの始動終了を検知し、エ
ンジンの制御状態を通常の運転領域に移行させる
機能(第15図の実施例ではS714〜S732
の部分が果している機能)を第11図のMONIT
タスク614でそれぞれ遂行するようにしたもの
である。 まず、第16図は第11図におけるISTRTタ
スク624に組込まれたプログラムによるフロー
チヤートで、タスクデイスパツチヤ208により
レベル2のタスクとして起動されると、最初のS
802において基準となる燃料噴射量を決めるた
めの噴射時間tEGISをエンジン冷却水温TWの函数
として計算する。この噴射時間tEGISと水温TWの
関係は第18図に示すようになつており、エンジ
ンの温度が低いときには多量の燃料をシリンダ内
に送り込んで始動を容易にするためのもので、そ
のため、水温センサ56から取り込んだデータ
TWからテーブルなどを当つて時間tEGISを求める
ようになつている。 続くS804〜S814までは第15図のS7
02からS712と同じでエンジンの始動がスタ
ータモータによるものか、押し掛けによるものか
を判定して始動の準備を行なついている。 その後、S816で始動フラグのセツトを行な
つてからEXITに抜け、このタスクを終了する。 次に第17図は第11図のMONITタスク61
4に組込まれたプログラムによるフローチヤート
で、タスクデイスパツチヤ208によりレベル0
のタスクとして起動され、まずS902に進んで
始動フラグのセツト状態によりエンジンが始動中
であるか否かを調べる。なお、この始動フラグは
第16図のS816でセツトされるものである。 続くS904とS906は第15図のS71
4,S716と同じで、S904ではエンジンの
始動が押し掛けによるものか否かを判断し、S9
06はスタータスイツチのOFF状態でエンジン
の完爆判定を行なうものである。 S904で結果がYES、つまり押し掛け始動
中に判断されたときにはS908を通つて燃料噴
射時間係数KTを1.0に設定する。 一方、S904で結果がNO、つまりスタータ
モータによる始動と判定されてS906からS9
10に進んだときには、燃料噴射時間係数KTを
クランキング経過時間tCの函数として計算する。
このクランキング経過時間tCによつて燃料噴射時
間係数KTを計算しているのは、スタータモータ
によつて始動を行なつた場合、何らかの理由によ
り完爆までに長い時間が掛つたときなどに燃料の
供給量が積算され、ますます始動が困難になつた
り、エンジン破壊の危険を生じたりするのを防止
するためであり、例えば第19図のようにスター
タモータによるクランキング経過時間tCが5secに
達するまでは係数KTが1.0で、それ以後は時間tC
の経過に伴つて係数KTが直線状に減少してゆく
ようにしてある。 こうしてS908、或いはS910によつて時
間係数KTを求めたらS914に進み、今度はエ
ンジン回転数Nによる燃料噴射時間係数KNを計
算する。このときの係数KNの求め方は例えば第
20図に示すような特性に従つて行なわれるよう
になつている。 S914に続いてS916では係数KT、KNに
よる燃料噴射時間tEGISの補正が行なわれ、必要な
燃料噴射時間tisが計算されてINJC134(第2
図)のINJDにセツトされ、その結果、インジエ
クタ12が制御されてエンジンに対する燃料の供
給制御が行なわれる。 一方、S906において、結果がYESと判断
されたときにはS912に進み、始動フラグをリ
セツトしてからEXITに抜け、このタスクを終了
する。 さて、S916で燃料噴射時間tisの計算を終
つたらS918〜S924に向うが、この部分は
第15図のS724〜S732による部分と同じ
機能を果す部分で、まずS918で押し掛け始動
中か否かを押し掛けフラグのセツト状態で判断
し、結果がNOのときにはそのままEXITに抜け、
次の起動タイミングを待つ。また、S918で結
果がYESとなつたらS920に進み、エンジン
回転数Nが完爆したとみなされる回転数Npに達
しているか否かを調べ、YESのときにはS92
2を通つて押し掛けフラグをリセツトしてから
EXITに抜ける。 また、S920で結果がNOとなつたときには
S924に向い、エンジンの回転数Nが押し掛け
判定回転数Njに達しているか否かを調べ、結果
がYESのときにはEXITに抜け、NOときには
RESET200(第11図)に抜けてイニシヤル
処理202からやり直すようにする。 従つて、この実施例によつても第15図の実施
例と同じく押し掛けによるエンジンの始動動作に
対して充分に対応した制御を行なうことができ、
押し掛けによる始動を容易に確実に行なうことが
できる。 また、この実施例によれば、必要なタスクを2
つの異つた起動周期のタスクに分離しているか
ら、第1図ないし第14図に示した従来例の特徴
を充分に活かすことができ、マイコンの利用度を
高くすることができる。 なお、以上の実施例では、押し掛け始動に入つ
たことの判定及びそれによるエンジンの完爆判定
をいずれもエンジンの回転数Nが所定の判定値
Nj及び規定値Npに達したか否かによつて判断し
ている(第15図のS706,S728,S73
2,第16図のS808,第17図のS920,
S924)が、本発明はこれに限らず、エンジン
の吸入吸気量、エンジンの吸気負圧などが所定の
判定値及び規定値に達したか否かによつて押し掛
け始動に入つたことやそれによるエンジンの完爆
を判定するようにしても同じような作用効果を得
ることができる。なお、このとき、エンジン回転
数による判定結果と併用するようにしてもよい。 また、第17図に示した実施例では、燃料噴射
量を決める噴射時間tisにクランキング経過時間
係数KTを導入しているが、これを省略しても実
用上からは大きな問題を生じない場合には、S9
10を除いて構成を簡単にすることができる。 以上説明したように、本発明によれば、EEC
を備えたエンジンを塔載した自動車であつても、
車輪からのトルクによるエンジン始動を容易に、
しかも確実に行なわせることができるから、従来
技術の欠点を除いてバツテリ電圧低下時にも押し
掛けにより自動車の走行が可能な上、走行中にお
けるエンジン停止時にもそのまま慣性による始動
を行なつて継続的な走行が可能なEECによる自
動車エンジンの始動方法を提供することができ
る。
第1図ないし第14図はマイクロコンピユータ
による電子式エンジン制御システムの一例を示
し、第1図はエンジンを含む制御系の全体構成
図、第2図は制御システムのブロツク図、第3図
はその制御プログラムを示すシステム構成図、第
4図はタスクデイスパツチヤの管理するRAMに
設けられたタスク管理ブロツクのテーブルを示す
説明図、第5図は各種割込みにより起動されるタ
スク群のスタートアドレステーブルを示す説明
図、第6図及び第7図はタスクデイスパツチヤの
処理動作を示すフローチヤート、第8図はマクロ
処理プログラムを示すフローチヤート、第9図は
タスク優先制御の一例を示す説明図、第10図は
第9図の優先制御におけるタスクの状態遷移図、
第11図は第3図の構成をさらに具体的に示した
システム構成図、第12図はRAMに設けられた
ソフトタイマテーブルを示す説明図、第13図は
INTV割込み処理プログラムを示すフローチヤ
ー、第14図は動作説明図のタイミングチヤート
である。第15図ないし第20図はいずれも本発
明の実施例で、第15図は本発明の一実施例によ
る動作を説明するフローチヤート、第16図及び
第17図は本発明の他の実施例による動作を説明
するフローチヤート、第18図ないし第20図は
動作説明用の特性図である。 102……マイクロコンピユータのCPU、1
04……ROM、106……RAM、108……
入出力回路、152……スタータスイツチ。
による電子式エンジン制御システムの一例を示
し、第1図はエンジンを含む制御系の全体構成
図、第2図は制御システムのブロツク図、第3図
はその制御プログラムを示すシステム構成図、第
4図はタスクデイスパツチヤの管理するRAMに
設けられたタスク管理ブロツクのテーブルを示す
説明図、第5図は各種割込みにより起動されるタ
スク群のスタートアドレステーブルを示す説明
図、第6図及び第7図はタスクデイスパツチヤの
処理動作を示すフローチヤート、第8図はマクロ
処理プログラムを示すフローチヤート、第9図は
タスク優先制御の一例を示す説明図、第10図は
第9図の優先制御におけるタスクの状態遷移図、
第11図は第3図の構成をさらに具体的に示した
システム構成図、第12図はRAMに設けられた
ソフトタイマテーブルを示す説明図、第13図は
INTV割込み処理プログラムを示すフローチヤ
ー、第14図は動作説明図のタイミングチヤート
である。第15図ないし第20図はいずれも本発
明の実施例で、第15図は本発明の一実施例によ
る動作を説明するフローチヤート、第16図及び
第17図は本発明の他の実施例による動作を説明
するフローチヤート、第18図ないし第20図は
動作説明用の特性図である。 102……マイクロコンピユータのCPU、1
04……ROM、106……RAM、108……
入出力回路、152……スタータスイツチ。
Claims (1)
- 【特許請求の範囲】 1 エンジンの運転状態を検出する各種のセンサ
からのデータを入力するマイクロコンピユータ
と、該マイクロコンピユータの出力データに基づ
いてエンジンの運転状態を制御する制御機能とを
備えた電子式エンジン制御装置において、エンジ
ンの始動動作がスタータモータによる始動かスタ
ータモータによらない始動かを識別する第1の判
定手段と、始動動作状態にあるエンジンの完爆を
検出する第2の判定手段と、スタータモータによ
らないエンジンの始動動作状態が満足しているか
否かを監視する第3の判定手段と、上記制御機能
によるエンジンの制御条件をスタータモータによ
らないエンジンの始動動作状態に適した制御条件
に設定する始動運転制御手段とを設け、上記第1
の判定手段の識別結果に応じて上記始動運転制御
手段によるエンジン制御状態に設定した後、上記
第2の判定手段の完爆判定結果により上記の設定
を解除すると共に、上記第3の判定手段による判
定結果が否定となつたときには、上記第1と第2
の判定手段による処理を終了させるように構成し
たことを特徴とする自動車エンジンの始動制御装
置。 2 特許請求の範囲第1項において、上記第1の
判定手段が、スタータスイツチがOFF状態にあ
るときでのエンジン回転数及びエンジン吸入空気
量それにエンジン吸気負圧のうち少なくとも1を
表わすデータに基づいてスタータモータによらな
いエンジンの始動動作であることを判定するよう
に構成されていることを特徴とする自動車エンジ
ンの始動制御装置。 3 特許請求の範囲第1項において、上記第2の
判定手段が、エンジン回転数、エンジン吸入空気
量、エンジン吸気負圧、それにエンジン気筒内圧
力のうちの少なくとも1を表わすデータに基づい
て判定結果を与える手段で構成されていることを
特徴とする自動車エンジンの始動制御装置。 4 特許請求の範囲第1項において、上記始動運
転制御手段による制御条件が、エンジンに対する
燃料供給量および点火時期の少なくとも1の制御
条件となるように構成されていることを特徴とす
る自動車エンジンの始動制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56024203A JPS57140541A (en) | 1981-02-23 | 1981-02-23 | Control method of starting automobile engine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56024203A JPS57140541A (en) | 1981-02-23 | 1981-02-23 | Control method of starting automobile engine |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS57140541A JPS57140541A (en) | 1982-08-31 |
JPH0138176B2 true JPH0138176B2 (ja) | 1989-08-11 |
Family
ID=12131751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56024203A Granted JPS57140541A (en) | 1981-02-23 | 1981-02-23 | Control method of starting automobile engine |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS57140541A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020170343A1 (ja) * | 2019-02-19 | 2020-08-27 | 株式会社五十嵐電機製作所 | 汎用型ロータリーエンコーダ及びそれを用いたサーボモータ |
DE102019005876A1 (de) * | 2019-08-22 | 2021-02-25 | Tdk-Micronas Gmbh | Integrierte Drehwinkelbestimmungssensoreinheit in einem Messsystem zur Drehwinkelbestimmung |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5812642U (ja) * | 1981-07-15 | 1983-01-26 | 日産自動車株式会社 | 燃料制御装置 |
JPS5882042A (ja) * | 1981-11-10 | 1983-05-17 | Mazda Motor Corp | エンジン始動時の空燃比制御装置 |
JPS6022046A (ja) * | 1983-07-19 | 1985-02-04 | Toyota Motor Corp | 内燃機関の燃料噴射制御方法 |
JPS6060226A (ja) * | 1983-09-12 | 1985-04-06 | Fujitsu Ten Ltd | 内燃機関の制御装置 |
WO2024142214A1 (ja) * | 2022-12-27 | 2024-07-04 | 三菱自動車工業株式会社 | ハイブリッド車両の始動制御装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS626097A (ja) * | 1985-07-01 | 1987-01-13 | 戸田建設株式会社 | 加泥式シ−ルド機 |
-
1981
- 1981-02-23 JP JP56024203A patent/JPS57140541A/ja active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS626097A (ja) * | 1985-07-01 | 1987-01-13 | 戸田建設株式会社 | 加泥式シ−ルド機 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020170343A1 (ja) * | 2019-02-19 | 2020-08-27 | 株式会社五十嵐電機製作所 | 汎用型ロータリーエンコーダ及びそれを用いたサーボモータ |
DE102019005876A1 (de) * | 2019-08-22 | 2021-02-25 | Tdk-Micronas Gmbh | Integrierte Drehwinkelbestimmungssensoreinheit in einem Messsystem zur Drehwinkelbestimmung |
Also Published As
Publication number | Publication date |
---|---|
JPS57140541A (en) | 1982-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0065221B1 (en) | Internal combustion engine control apparatus | |
US4482962A (en) | Engine control method | |
JPS6212384B2 (ja) | ||
JPH0250303B2 (ja) | ||
US4363097A (en) | Electronic type engine control method | |
JPS6350546B2 (ja) | ||
JPH0375740B2 (ja) | ||
US4501249A (en) | Fuel injection control apparatus for internal combustion engine | |
JPH0138176B2 (ja) | ||
KR920003200B1 (ko) | 엔진제어장치 | |
EP0030114B1 (en) | Method for starting an operation of an internal combustion engine and apparatus therefor | |
EP0106366B1 (en) | Control method for internal combustion engines | |
EP0106367A2 (en) | Fuel injection control apparatus for internal combustion engine | |
JPS6218748B2 (ja) | ||
JPS632027B2 (ja) | ||
US4522178A (en) | Method of fuel control in engine | |
JPS5974339A (ja) | 燃料噴射装置 | |
JPS5895214A (ja) | 熱線式流量センサの信号処理方法 | |
JPH0118443B2 (ja) | ||
JPS58150047A (ja) | 内燃機関の燃料噴射制御装置 | |
JPH0118256B2 (ja) | ||
JPS5974337A (ja) | 燃料噴射装置 | |
JPS5841242A (ja) | 自動車用電子式エンジン制御装置 | |
JPH01195943A (ja) | エンジンのアイドル回転数制御方法 | |
JPS5841361A (ja) | 電子式エンジン制御装置 |