JPH0237528B2 - - Google Patents

Info

Publication number
JPH0237528B2
JPH0237528B2 JP56040349A JP4034981A JPH0237528B2 JP H0237528 B2 JPH0237528 B2 JP H0237528B2 JP 56040349 A JP56040349 A JP 56040349A JP 4034981 A JP4034981 A JP 4034981A JP H0237528 B2 JPH0237528 B2 JP H0237528B2
Authority
JP
Japan
Prior art keywords
task
hot wire
engine
flow rate
interrupt
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 - Lifetime
Application number
JP56040349A
Other languages
Japanese (ja)
Other versions
JPS57156523A (en
Inventor
Sadayasu Ueno
Kanemasa Sato
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP56040349A priority Critical patent/JPS57156523A/en
Publication of JPS57156523A publication Critical patent/JPS57156523A/en
Publication of JPH0237528B2 publication Critical patent/JPH0237528B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F1/00Measuring the volume flow or mass flow of fluid or fluent solid material wherein the fluid passes through a meter in a continuous flow
    • G01F1/68Measuring the volume flow or mass flow of fluid or fluent solid material wherein the fluid passes through a meter in a continuous flow by using thermal effects

Landscapes

  • Physics & Mathematics (AREA)
  • Fluid Mechanics (AREA)
  • General Physics & Mathematics (AREA)
  • Measuring Volume Flow (AREA)

Description

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

本発明は、熱線式流量センサに係り、特にホイ
ートストンブリツジを利用して空気、液体等の流
速または流量を検知するセンサに関する。 最近ではエンジンの制御機能を向上させる目的
でマイクロコンピユータを使用したエンジンの総
合的制御が行われつつある。 一方、自動車の車種および用途に応じてエンジ
ンに必要な制御機能は様々であり、それゆえマイ
クロコンピユータを使用したエンジン制御システ
ムではエンジン制御装置を操作するソフトウエア
として車種および用途に応じて汎用性ある、すな
わち各種の制御機能の修正、変更および追加が可
能であるものがコスト面あるいは制御性の向上と
いつた観点から要請される。 従来、内燃機関が吸入する空気量は、吸気マニ
フオルド圧から間接的に、あるいは直接空気流量
を検出して吸気行程中のトータル量を求める方法
がとられていた。前者は間接的方法であるため精
度が悪く、機関の機差や劣化の影響を受け、また
応答性が悪いという欠点を有しており、後者は精
度が高く(読み値±1%)、ダイナミツク・レン
ジが広い(1:50)流量センサを必要とし、コス
ト高となる欠点を有していた。流量センサとし
て、いわゆる熱線式流量センサを用いると低コス
ト化が可能であり、またその出力特性の非線型性
は相対誤差を均一化して広いダイナミツク・レン
ジを許容する特長があり望ましい。 そして、この熱線式流量センサを取りつけたエ
ンジン系の全体構成が第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には後述する熱線式流量計24が着脱自在に設
けられており、空気流速と発熱体の伝熱量との関
係から定まる空気流速に応じて変化する電気信号
が取り出される。この熱線式流量計24は空気通
路22内に設けられているので、シリンダ8のバ
ツクフアイア時に生じる高温ガスから保護される
と共に、吸入空気中のごみなどによつて汚染され
ることからも保護される。この空気通路22の出
口はベンチユリの最狭部近傍に開口され、その入
口はベンチユリの上流側に開口されている。 また、この絞り弁14,16には、第3図には
図示されていないが、絞り弁14,16の開度を
検出するスロツトル角センサが設けられており、
このスロツトル角センサからの検出信号が後述す
る第6図図示スロツトル角センサ116から取り
込まれ、第1のアナログ・デイジタル・コンバー
タのマルチプレクサ120に入力される。 インジエクタ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においては駆動系の制御
のため開閉周期信号が発生され、駆動系はこの開
閉周期信号によつてバイパスバルブ62のリフト
量を調節するための制御信号をバイパスバルブ6
2の駆動部に付与するものである。 前記熱線式流量計24は第2図に示される如
く、円筒状に形成される空気案内部材2201の
円筒内部には、熱線抵抗体2204と、熱線抵抗
体2205とが、第3図に示す如く近傍段違い平
行に設けられている。上段が熱線抵抗体2204
であり、下段が温度補償用抵抗体2205であ
る。この空気案内部材2201は、パイパス通路
22内に入つてきた空気の乱流を整流するための
ものであり、円筒内部は、空気流が整流されるよ
うに空気流入口が曲線となりベンチユリを形成し
ている。 この空気案内部材2201は、熱線式流量計が
バイパス通路内に設けられる場合は必要とせず、
スロツトルチヤンバ4内に設けられる場合に特に
必要なものである。 また、熱線抵抗体2204及び温度補償用抵抗
体2205は、第3図に示す如く絶縁支持体であ
るボビン2206に抵抗体を巻きつけた巻線抵抗
体である。 また、空気案内部材2201は、支持部材22
02によつて支持され、支持部材2202はドラ
イバーモジユール2203の取付フランジ220
7に固定されている。支持部材2202は第2図
では円筒状に形成されているが、必ずしも円筒で
ある必要はない。この支持部材2202内には熱
線抵抗体2204及び温度補償用抵抗体2205
に接続されるリード線2207が設けられてい
る。このリード線2207には電子回路が接続さ
れ、電子回路は、ドライバーモジユール2203
に内装されている。ドライバーモジユール220
3は、支持部材2202の固着されている取付フ
ランジ2208と、電子回路を保護するハウジン
グ2209を有している。このハウジング220
9の側面には、外部制御装置と接続するためのコ
ネクタ2210が設けられている。 このような熱線式流量計によつて計測するエン
ジン吸入空気量は、一定ではなく、第4図に示す
如く小さな脈動を有しており、流量センサからの
出力信号は吸入空気流に対し非線型関係を有し、
応答する出力信号から吸入行程の空気量を空気流
量の積算の形で求める必要があり、この積算をす
るには複雑な演算処理が必要である。すなわち、
ホツトワイヤ出力電圧vは、質量流量をqAとする
と、 と求まり、(1)式はさらに、 v2=C1+C2A ……(2) となる。いま、回転数N=0、質量流量qA=0の
ときのホツトワイヤ出力電圧vをv=v0とする
と、(2)式は、 v2 0=C1 ……(3) となる。したがつて、(2)式、(3)式より、 v2=v2 0+C2A ……(4) qA=1/C2 2(v2−v2 02 ……(5) と、瞬時瞬時の質量流量qAが(5)式によつて求めら
れる。したがつて、1吸気工程間の平均空気量
QAは、次のようになる。 また、1吸気工程当たりの燃料噴射量QFは、
Nを回転数、Kを定数とすると、 QF=KQA/N ……(7) したがつて、QAを求めることにより1回転当
りの燃料噴射量QAが回転数によつて決定される
訳である。そこで、この平均空気量QAをマイク
ロコンピユータで取り込むには、前述の如く、吸
入空気量は脈動しており、しかも、吸入空気量に
対応したホツトワイヤ出力電圧の値より吸入空気
量をサンプリングして演算するためには、前述の
(5)式の如き演算をしなければならず、マイクロコ
ンピユータは、燃料噴射制御(以下、EGIと称
す)だけでなく、点九進角制御(以下、IGNと
称す)、アイドル回転数制御(以下、ISCと称
す)、排気環流制御(以下、EGRと称す)、O2
イードバツク制御等の制御をもしなければならな
いため、回転数が数十回転の場合は、可能である
が、回転数が上がつてくれば吸入空気量の演算だ
けしかできなくなる。 そこで、エンジン回転数を3つのモードの回転
数に分け、各モード内におけるエンジン回転数の
ホツトワイヤ駆動回路の出力信号のマイクロコン
ピユータへの取り込みを各モードによつて定めた
クランク回転角度に同期させてそのクランク回転
角度に相当する時間で取り込ませることにより回
転数の変動によつてマイクロコンピユータの他の
制御ができなくなることを防ぎ、かつ燃料噴射制
御を確実に行おうということが考えられている。
しかしながら、熱線式流量センサは、負荷が低い
ときにはホツトワイヤの応答性を考慮しても真の
空気量を測定することは可能であるが、負荷が高
くなるとエンジンとしては脈動が大きくなつてき
て、真の空気量を測定できなくなつてくる。これ
は、スロツトルバルブの開度と共にエンジンの吸
排気弁の開きの影響による吸入空気の脈動が、流
量センサ取付位置にまで影響を及ぼしてくること
によるものである。この脈動が生じるか否かは負
荷すなわち吸気管内圧力によつて決まる。この流
量センサによつて真の吸入空気量が測定できなく
なる程の脈動を生じる吸気管内圧力は(−)100
mHgである。この吸気管内圧力と吸入空気量QA
との、また、吸気管内圧力とスロツトル開度との
関係が第5図に示されている。 すなわち、横軸が吸気管内圧力(負荷)を示
し、縦軸が吸入空気量QAとスロツトル開度であ
る。図において、いま、エンジン回転数を100r.
p.mとしたときの吸気管内圧力と吸入空気量QA
の関係がAに示されている。この吸気管内圧力と
吸入空気流量QAとの関係は直線性を有している。
同様に、エンジン回転数5000r.p.mのときの吸気
管内圧力と吸入空気流量QAとの関係がBに示さ
れている。この5000r.p.mの線Bも直線性を有し
ている。また、このエンジン回転数1000r.p.mの
ときのスロツトル開度と吸気管内圧力との関係が
曲線Cに示されており、エンジン回転数5000r.p.
mのときのスロツトル開度と吸気管内圧力との関
係が曲線Dに示されている。図中吸入空気流量
QAがほぼ「0」のときは吸気管内圧力は(−)
500mHgであり、このときスロツトル開度は
「0」すなわち、アイドリング状態である。この
熱線式流量センサの特性を示す直線A、Bか、吸
気管内圧力が(−)100mHgのところで切れてい
るのは、(−)100mHg以上の圧力のところでは
脈動が大きく真の吸入空気流量QAを測定できな
いからである。これに対し、スロツトル開度は、
吸気管内圧力と全く無関係であるところから曲線
C,Dの示す如く(−)100mHg以後もスロツト
ルセンサの特性は示される。 したがつて、吸気管内圧力が(−)100mHg以
上の領域では真の吸入空気流量QAが熱線式流量
センサでは測定できないため、従来は、吸気管内
圧力(−)100mHg以上の領域における熱線式流
量センサからの検出値に、ソフトウエアによつて
補正を加えて吸入空気流量QAとして燃料量を決
定していた。そのため、脈動によつて、加速のは
ずが燃料量が少ないためエンジンブレーキがかか
つたり、減速(すなわち、アクセルを離した状
態)であるのに燃料量が多くなつたため加速して
しまうといつたエンジン回転数が充分制御できな
いといつた欠点を有していた。 そこで、エンジンによる空気流に脈動の生じる
領域を、脈動の影響を受けないスロツトル開度と
エンジン回転数より、あらかじめスロツトル開度
と吸気管内圧力との関係より求めた吸入空気流量
をエンジン回転数とスロツトル開度との関係で表
わした補償吸入空気流量を用いて燃料量を制御す
ることによつてエンジンによる空気脈動が生じ、
熱線式流量センサによつて真の吸入空気流量を測
定できない領域であつても最適なエンジンの燃料
制御を行なう方法が考えられている。しかしなが
ら、従来の熱線式流量計は、前記した如く、絶縁
支持体であるボビンに抵抗体を巻きつけた巻線抵
抗体を用いているため適正な空気流量が得られな
いという欠点を有している。すなわち、周知の如
く、熱線式流量計の原理は、電流を流して一定温
度に加熱した抵抗体を流体の流路中に置くと、液
体流量によつて抵抗体から奪われる熱量が変化す
るが、奪われた熱量を変化に応じて補給し抵抗体
を一定温度に保持する為に電流を制御しこの電流
を電圧に変換して流体流量とするものである。 従来の熱線式流量計において、急激な流量増加
があつた場合、抵抗体の温度が急激に低下し一定
温度に保持する為電流は急激に増加するが、その
後抵抗体を絶縁支持する絶縁支持体の材質として
セラミツクスが用いられており熱伝導率が小さい
為温度の高い抵抗体からの熱伝導量が少なく、急
激な流量増加で低下した絶縁支持体の温度が抵抗
体と均衡する迄に時間がかかりその間上記の電流
は増加し続けて平衡に達せず応答が著しく遅くな
るという問題を有していた。 本発明の目的は、空気量(流量)の急激な変化
に対して応答性の良い熱線式流量計を提供するこ
とにある。 本発明は、熱伝導率の大きい金属に絶縁性皮膜
を施した棒状又は管状支持体に線状抵抗体をコイ
ル状に巻き付けて形成することにより、空気量の
急激な変化に対して線状抵抗体から管状支持体へ
の熱伝導量を多くして速やかに線状抵抗体と管状
支持体の温度を均衡せしめ線状抵抗体に流れる電
流を平衡値に収束させて応答性を改良するもので
ある。 以下、本発明の実施例について説明する。 第6図には、本発明の一実施例を示す熱線式流
量計の熱線抵抗体2220の全体が示されてい
る。 図において、管状金属支持体2221の外周表
面には絶縁皮膜2222が形成されている。この
絶縁皮膜2222の上に線状抵抗体2223がコ
イル状に巻きつけられており、この線状抵抗体2
223の上には保護皮膜2224が施されてい
る。また、管状金属支持体2221の一端には電
極2225が設けられている。 このように構成されている熱線抵抗体2220
の金属支持体2221にはステンレス鋼管で、外
径0.2φ、内径0.1φ、長さ5mmのが用いられてお
り、また、絶縁皮膜2222として耐熱セラミツ
ク皮膜が塗布焼付又はプラズマ溶射によつて設け
られている。また、保護皮膜2224としては、
ガラス材が塗布焼付されている。絶縁皮膜222
2の厚さは50μm、保護皮膜2224の厚さは
15μmである。 本実施例を熱線式流量計に用いた場合の特性図
が第7図に示されている。すなわち、図中、Aは
線径70μφ、長さ50mmの白金線を裸線の状態で3
点支持した構造の単線形熱線抵抗体の特性を示
し、Bが本実施例、Cが、アルミナパイプ(外径
0.5φ、内径0.3φ、長さ20mm)にリード線として白
金イリジウム線(0.2φ、長さ2.5mm)を白金ペー
ストでアルミナパイプの内径に挿入し焼付固定し
たボビンを用いこれに白金線を捲回しガラス皮膜
を形成したセラミツクボビン形熱線抵抗体の特性
を示したものである。 図において、Aは過渡応答の時定数が流量変化
として5m秒、従来のボビン形であるCは45m秒
である。これに対し、本実施例は約18m秒であ
る。Aが最も優れているが、実際には、バツクフ
アイヤや耐震性、機械的強度の面より用いること
が不可能である。また、従来のボビン形であるC
は、加熱時と冷却時の時定数の差異が大きくなる
ため脈動流を正確に把握できない。 また、前記熱線抵抗体のボビンの長さと太さの
関係の温度分布状態が第8図a,bに示されてい
る。第8図aは、ボビン長が小さく、比較的太い
場合を示しており、このときの温度分布は、中央
が高くなつている。一方、第8図bはボビン長が
大きく太さが少ない場合であり、第8図a,b共
に線状抵抗体の長さは同一の場合で、中央に集中
する比率が低くなつている。したがつて、長さに
対する太さの比l/dは大きい方が良い。 第9図は、第1図の点火装置の説明図であり、
増幅器68を介してパワー・トランジスタ72へ
パルス電流が供給され、この電流によりトランジ
スタ72はONする。これによりバツテリ66よ
り点火コイル68へ一次コイル電流が流れる。こ
のパルス電流の立ち下がりでトランジスタ74は
遮断状態となり、点火コイル58の2次コイルに
高電圧を発生する。 この高電圧は配電器70を介してエンジンの各
シリンダにある点火プラグ52のそれぞれにエン
ジン回転に同期して高電圧を配電する。 第10図は排気ガス環流(以下EGRと記す)
システムを説明するためのもので、負圧源80の
一定負圧が制圧弁84を介して制御弁86へ加え
ている。制圧弁84はトランジスタ90に加えら
れ繰返しパルスのONデユーテイ比率に応じ、負
圧源の一定負圧を大気88へ開放に対する比率を
制御し、制御弁86への負圧の印加状態を制御す
る。従つて制御弁86へ加えられる負圧はトラン
ジスタ90のONデユーテイ比率で定まる。この
定圧弁84の制御負圧により排気弁10から吸気
管6へのEGR量が制御される。 第11図は制御システムの全体構成図である。
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と記す)と大気温センサ122(以下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(以下
IDIE−SWと記す)とトツプ・ギヤ・スイツチ1
50(以下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とを持つている。 第4図に示した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の出力の停止や起動を制御
できる。 第12図は第11図の制御回路のプログラムシ
ステムの基本構成を示す図である。 図においてイニシヤル処理プログラム202、
割込処理プログラム206、マクロ処理プログラ
ム228およびタスクデイスパツチヤ208はタ
スク群を管理するための管理プログラムである。
イニシヤル処理プログラム202はマイクロコン
ピユータを作動させるための前処理を行うための
プログラムであり例えば、RAM106の記憶内
容をクリアしたり入出力インターフエイス回路1
08のレジスタ類の初期値を設定したり、さらに
はエンジン制御を行うのに必要な前処理を行うた
めの入力情報例えば冷却水温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)同じタスクレベル内で複数のタスクに起
動要求がある場合には、タスク番号が小さい程優
先度が高いものとする。タスクデイスパツチヤ2
08の処理内容は後述するが本発明では上記優先
制御を行うためにタスク単位にRAMにソフトタ
イマを設け、又タスクレベル単位にタスクを管理
する制御ブロツクをRAM中に設定するように構
成している。そして上記各タスクの実行終了毎に
そのタスクの実行終了報告をマクロ処理プログラ
ム228によりタスクデイスパツチヤ208に行
うようにしている。 次にタスクデイスパツチヤ208の処理内容に
ついて第13図乃至第19図に基づき説明する。
第13図はタスクデイスパツチヤ208の管理す
るRAMに設けられたタスク制御ブロツクが設け
られている。このタスク制御ブロツクがタスクレ
ベルの数だけ設けられており本実施例ではタスク
レベル0乃至2の3つ設けられている。各制御ブ
ロツクには各々8ビツトが割り当てられ、その内
0乃至2ビツト目(Q0〜Q2)までが起動要求タ
スク表示を行う起動ビツトであり、7ビツト目
(R)が同一タスクレベル中の何れかのタスクが
現在実行中であるか又は中断中であるかを示す実
行ビツトを表わす。そして前記起動ビツトQ0
至Q2はそれぞれ各タスクレベル中で実行優先度
の高い順に配列されており、例えば第12図中で
タスク4に該当する起動ビツトはタスクレベル1
のQ0である。ここでタスクの起動要求があつた
場合には起動ビツトの何れかにフラグが立てら
れ、一方タスクデイスパツチヤ208は出された
起動要求を高いレベルのタスクに該当する起動ビ
ツトより順に検索し、出された起動要求に該当す
るフラグをリセツトすると共に実行ビツトにフラ
グ1を立て、該当するタスクを起動させるための
処理を行う。 第14図はタスクデイスパツチヤ208の管理
するRAM106に設けられたスタートアドレス
テーブルである。スタートアドレスSA0乃至SA
8は第12図に示したタスク群210乃至226
の各タスク0乃至8に該当するスタートアドレス
を示す。各スタートアドレス情報には16ビツトが
割合てられ、これらのスタートアドレス情報は後
述する如くタスクデイスパツチヤ208により起
動要求のあつた該当タスクを起動するのに使用さ
れる。 次に第15図乃至第16図にタスクデイスパツ
チヤの処理フローを示す。第14図に於いてステ
ツプ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では起動タスク番号の
割出しを行いステツプ408で第14図に示した
RAMに設けられたスタートアドレステーブルに
より該当する起動タスクのスタートアドレス情報
を取出す。 次にステツプ410では該当起動タスクを実行す
るか否かの判断が行われる。ここでは取出したス
タートアドレス情報が特定の値例えば0であれば
該当タスクの実行は行わなくてよいと判断され
る。この判断ステツプはエンジン制御を行う前記
タスク群の内各車種により選択的に特定のタスク
のみの機能を持たせるのに必要なものである。ス
テツプ410で該当タスクの実行が停止であると判
断された場合にはステツプ414に移行し、該当タ
スクレベルlのRビツトをリセツトする。そして
更にステツプ302に戻りタスクレベルlは中断中
であるか否かが判断される。これは同一タスクレ
ベルl中に複数の起動ビツトにフラグが立つてい
る場合があり得るのでステツプ414でRビツトを
リセツトした後ステツプ302に移行するように構
成されている。 一方ステツプ410で該当タスクの実行が停止で
ない場合即ち実行する場合にはステツプ412へ移
行し該当タスクへジヤンプし、タスクの実行が行
われる。 次に第17図はマクロ処理プログラム228の
処理フローを示す図である。このプログラムは終
了タスクを見つけるためのステツプ562と564から
成る。このステツプ562と564で先ずタスクレベル
の0より検索し終了したタスクレベルを見つけ
る。これによりステツプ568へ進びここで終了し
たタスクのタスク制御ブロツクの7ビツト目の実
行(RUN)フラグをリセツトする。これにより
そのタスクの実行が完全に終わつた事になる。そ
して再びタスクデイスパツチヤ208に戻り次の
実行タスクが決定される。 次にタスクデイスパツチヤ208によりタスク
優先制御が行われる場合のタスクの実行と中断の
様子を第13図に基づき説明する。ここで起動要
求Nnoに於けるmはタスクレベルを表わし、nは
タスクレベルm中に於ける優先度の順位を表わす
ものとする。今CPUは管理プログラムOSを実行
していたとすると、この管理プログラムOSの実
行中に起動要求N21が発生した場合には時刻T1
起動要求N21に該当するタスク、即ちタスク6の
実行が開始される。ここでタスク6の実行中に時
刻T2でより実行優先度の高いタスクの起動要求
N01が生じた場合には管理プログラムOSに実行
が移り既に述べた所定の処理を行つた後に時刻
T3で起動要求N01に該当するタスク、即ちタスク
0の実行が開始される。このタスク0の実行中に
更に時刻T4で起動要求N11が入つた場合には一
旦、管理プログラムOSに実行が移り所定の処理
が行われた後再び時刻T5で中断されていたタス
ク0の実行が再開される。そしてタスク0の実行
が時刻T0で終了すると再び管理プログラムOSに
実行が移りここでマクロ処理プログラム228に
によりタスクデイスパツチヤ208へタスク0の
実行終了報告がなされ時刻T7で再び起動待ちに
なつていた起動要求N11に該当するタスク3の実
行が開始される。このタスク3の実行中時刻T3
で同じタスクレベル1のより優先度の低い起動要
求N12が入つた場合にはタスク3の実行は一旦中
断され実行は管理プログラムOSに移り所定の処
理が為された後、時刻T9でタスク3の実行が再
開される。そして時刻T10でタスク3の実行が終
了するとCPUの実行は管理プログラムOSに移り
前記マクロ処理プログラム228によりタスクデ
イスパツチヤ208へタスク3の実行終了報告が
為され、次いで時刻T11でより優先レベルの低い
起動要求N12に該当するタスク4の実行が開始さ
れ、時刻T12でタスク4の実行が終了すると実行
は管理プログラムOSに移り所定の処理が為され
た後、今まで中断されていた起動要求N21に該当
するタスク6の実行が時刻T13から再開される。 以上の様にしてタスクの優先制御が行われる。 タスクの優先制御に於ける状態遷移を第13図
に示す。Idle状態は起動待ちの状態であり、タス
クにまだ起動要求が出されていない。次に起動要
求が出されるとタスク制御ブロツクの起動ビツト
にフラグが立ち、起動が必要ということが表示さ
れる。Idle状態からQueue状態へ移動する時間は
各タスクのレベルにより定まつている。更に
Queue状態になつても実行され順序は優先度によ
り定まる。そのタスクが実行状態に入るのは管理
プログラムOSの内のタスクデイスパツチヤ20
8でタスク制御ブロツクの起動ビツトのフラグが
リセツトされ、Rビツト(7ビツト目)にフラグ
が立つてからである。これによりタスクの実行が
始められる。この状態がRUN状態である。そし
て実行が終るとタスク制御ブロツクのRビツトの
フラグがクリアされ、終了報告を終了する。これ
によりRUN状態は終り、再びIdle状態となり次
の起動要求が出るのを待つ。しかし、タスクの実
行中即ちRUN中に割込みIRQが発生すると、そ
のタスクは実行を中断しなければならない。この
ためCPUの内容が待避され、実行が中断する。
この状態がReady状態である。次にこのタスクが
再び実行される状態になると待避エリアより、待
避していた内容を再びCPUへ戻し、実行が再開
される。つまりReady状態から再びRUN状態へ
戻る。この様に各レベルプログラムは第18図の
4つの状態を繰り返す。第18図は代表的な流れ
であるがReady状態でタスク制御ブロツクの起動
ビツトにフラグが立つ可能性がある。これは例え
ば起動中断中にそのタスクの次の起動要求タイミ
ングになつてしまつた場合である。この時にはR
ビツトのフラグが優先されて先ず、中断中のタス
クを終了させる。これによりRビツトのフラグが
消え、起動ビツトのフラグによりIdle状態を通ら
ずにQueue状態となる。 この様にタスク0〜8は各々第19図の何れか
の状態にある。 次に第20図は第12図のプログラムシステム
の具体的実施例を示している。図に於いて管理プ
ログラムOSはイニシヤル処理プログラム202、
割込み処理プログラム206、タスクデイスパツ
チヤ208及びマクロ処理プログラム228より
成る。 割込み処理プログラム206には各種の割込み
処理プログラムがあり、イニシヤル割込み処理
(以下INTL割込み処理という)602はエンジ
ン回転に同期して発生するイニシヤル割込み信号
によつて、エンジン1回転当たりエンジン気筒数
の半分、即ち4気筒なら2回イニシヤル割込みが
発生する。このイニシヤル割込みによつてEGIタ
スク612で計算した燃料の噴射時間を入出力イ
ンターフエイス回路108のEGIレジスタに設定
する。AD変換割込み処理604は2種類あり1
つはAD変換器1割込み(以下ADC1と略す)及
びAD変換器2割込み(以下ADC2と略す)であ
る。AD変換器1は8ビツトの精度を有し、電源
電圧、冷却水温度、吸気温度及び使用調整などの
入力に用いられ、マルチプレクサー120に対す
る入力ポイントの指定を行うと同時に変換を開始
し、変換終了後にADC1割込みを発生する。な
お本割込みはクランキング前にのみ使用する。又
AD変換器128は空気流量の入力に用いられ変
換終了後にADC2割込みを発生する。なお、本
割込みもクランキング前にのみ使用する。 次にインターバル割込み処理プログラム(以下
INTV割込み処理プログラムと示す。)606で
はINTV割込み信号はINTVレジスタに設定した
時間例えば10ms毎に発生し、一定周期で起動す
べきタスクの時間監視用基本信号として用いられ
る。本割込み信号によつて、ソフトタイマの更新
を行い、規定周期に達したマスクを起動する。更
にエンスト割込み処理プログラム(以下ENST割
込み処理プログラムと記す。)608ではエンジ
ンのストツプ状態を検出するもので、INTL割込
み信号を検出すると、計数を開始し所定時間例え
ば1秒以内に次のINTL割込み信号を検出できな
かつた時、ENST割込みが発生する。そして
ENST割込みが3回、例えば3秒経過しても
INTL割込み信号が検出できなかつた場合にエン
ストが起つたものと判断し点火コイルへの通電及
び燃料ポンプの停止を行う。これらの処理の後ス
タータスイツチ152がオンするまで待機する。
上記割込み要因に対する処理概要を表1に示す。
The present invention relates to a hot wire flow sensor, and particularly to a sensor that uses a Wheatstone bridge to detect the flow velocity or flow rate of air, liquid, etc. Recently, comprehensive control of engines using microcomputers is being carried out for the purpose of improving engine control functions. On the other hand, the control functions required for the engine vary depending on the vehicle type and purpose, and therefore, in an engine control system using a microcomputer, the software that operates the engine control device is versatile depending on the vehicle type and purpose. That is, a device that allows various control functions to be modified, changed, and added is required from the viewpoint of cost or improved controllability. Conventionally, the amount of air taken into an internal combustion engine has been determined by indirectly detecting the intake manifold pressure or by directly detecting the air flow rate to determine the total amount during the intake stroke. The former method has the drawbacks of poor accuracy because it is an indirect method, is affected by engine differences and deterioration, and has poor responsiveness, while the latter method has high accuracy (reading value ±1%) and - Requires a flow rate sensor with a wide range (1:50), which has the disadvantage of high cost. It is desirable to use a so-called hot-wire flow rate sensor as the flow rate sensor because it enables cost reduction, and its nonlinear output characteristics equalizes relative errors and allows a wide dynamic range. FIG. 1 shows the overall configuration of an engine system equipped with this hot wire flow rate sensor. In the figure, intake air passes through an air cleaner 2, a throttle chamber 4, an intake pipe 6, and is supplied to a cylinder 8. The gas burned in the cylinder 8 passes through the exhaust pipe 10 from the cylinder 8 and is discharged into the atmosphere. The throttle chamber 4 is provided with an injector 12 for injecting fuel, and the fuel injected from the injector 12 is exposed in the air passage of the throttle chamber 4 and mixed with intake air. A mixture is formed, and this mixture is supplied to the combustion chamber of the cylinder 8 through the intake pipe 6 when the intake valve 20 is opened. A throttle valve 14 is located near the outlet of the injector 12.
16 are provided. The throttle valve 14 is configured to be in mechanical communication with the accelerator pedal and is driven by the driver. On the other hand, the throttle valve 16 is arranged so as to be driven by the diaphragm 18, and is fully closed when the air flow rate is small.As the air flow rate increases, the negative pressure on the diaphragm 18 increases, so that the throttle valve 16 It begins to open and suppresses the increase in inhalation resistance. An air passage 22 is provided upstream of the throttle valves 14 and 16 of the throttle chamber 4.
2 is detachably provided with a hot wire flow meter 24, which will be described later, and extracts an electrical signal that changes in accordance with the air flow rate determined from the relationship between the air flow rate and the amount of heat transferred from the heating element. Since the hot-wire flowmeter 24 is installed in the air passage 22, it is protected from high-temperature gas generated when the cylinder 8 backfires, and is also protected from being contaminated by dust in the intake air. . The outlet of this air passage 22 is opened near the narrowest part of the bench lily, and the inlet thereof is opened on the upstream side of the bench lily. Although not shown in FIG. 3, the throttle valves 14 and 16 are provided with throttle angle sensors that detect the opening degrees of the throttle valves 14 and 16.
A detection signal from this throttle angle sensor is taken in from a throttle angle sensor 116 shown in FIG. 6, which will be described later, and is input to a multiplexer 120 of the first analog-to-digital converter. Fuel supplied to the injector 12 is supplied from a fuel tank 30 to a fuel pressure regulator 38 via a fuel pump 32, a fuel damper 34, and a filter 36. On the other hand, pressurized fuel is supplied from the fuel pressure regulator 38 to the injector 12 via a pipe 40.
From the fuel pressure regulator 38 to the fuel tank 3 so that the difference between the pressure in the intake pipe 6 where fuel is injected from the fuel tank 3 and the fuel pressure to the injector 12 is always constant.
Fuel is returned to zero via a return pipe 42. The air-fuel mixture taken in from the intake valve 20 is transferred to the piston 5
0 and is combusted by the spark from the ignition plug 52, and this combustion is converted into kinetic energy. The cylinder 8 is cooled by cooling water 54,
The temperature of this cooling water is measured by a water temperature sensor 56, and this measured value is used as the engine temperature. A high voltage is supplied to the ignition plug 52 from an ignition coil 58 in accordance with the ignition timing. Further, the crankshaft (not shown) is provided with a crank angle sensor that outputs a reference angle signal and a position signal at every reference crank angle and every fixed angle (for example, 0.5 angle) according to the rotation of the engine. The output of this crank angle sensor, water temperature sensor 56
The output 56A and the electrical signal from the heating element 24 are input to a control circuit 64 consisting of a microcomputer, etc., and are processed by the control circuit 64, and the injector 12 and the ignition coil 58 are driven by the output of this control circuit 64. Ru. In the engine system controlled based on the above configuration, the throttle chamber 4 is provided with a bypass 26 that straddles the throttle valve 16 and communicates with the intake pipe 6, and this bypass 26 has a bypass valve that is controlled to open and close. 62 are provided. A control input from the control circuit 64 is supplied to the driving section of the bypass valve 62, so that opening and closing of the bypass valve 62 is controlled. This bypass valve 62 faces the bypass 26 provided by bypassing the throttle valve 16, and is controlled to open and close by pulsed current. This bypass valve 62 changes the cross-sectional area of the bypass 26 by the lift amount of the valve, and this lift amount is controlled by driving a drive system by the output of the control circuit 64. That is, in the control circuit 64, an opening/closing cycle signal is generated to control the drive system, and the drive system uses this opening/closing cycle signal to send a control signal to the bypass valve 62 for adjusting the lift amount of the bypass valve 62.
This is applied to the second drive unit. As shown in FIG. 2, the hot wire flowmeter 24 has a cylindrical air guide member 2201 with a hot wire resistor 2204 and a hot wire resistor 2205 inside the cylinder, as shown in FIG. They are arranged parallel to each other. The upper row is the hot wire resistor 2204
The lower part is the temperature compensation resistor 2205. This air guiding member 2201 is for rectifying the turbulent flow of air that has entered the bypass passage 22, and inside the cylinder, the air inlet is curved to form a bench lily so that the air flow is rectified. ing. This air guide member 2201 is not required when the hot wire flowmeter is installed in the bypass passage.
This is especially necessary when it is installed within the throttle chamber 4. Further, the hot wire resistor 2204 and the temperature compensating resistor 2205 are wire-wound resistors in which the resistor is wound around a bobbin 2206, which is an insulating support, as shown in FIG. Further, the air guide member 2201 is connected to the support member 22
02, the support member 2202 is supported by the mounting flange 220 of the driver module 2203.
It is fixed at 7. Although the support member 2202 is formed in a cylindrical shape in FIG. 2, it does not necessarily have to be cylindrical. Inside this support member 2202 is a hot wire resistor 2204 and a temperature compensation resistor 2205.
A lead wire 2207 is provided to be connected to. An electronic circuit is connected to this lead wire 2207, and the electronic circuit is connected to the driver module 2203.
It's decorated. driver module 220
3 has a mounting flange 2208 to which a support member 2202 is fixed, and a housing 2209 that protects the electronic circuit. This housing 220
A connector 2210 for connecting to an external control device is provided on the side surface of 9. The amount of engine intake air measured by such a hot wire flow meter is not constant, but has small pulsations as shown in Figure 4, and the output signal from the flow sensor is nonlinear with respect to the intake air flow. have a relationship,
It is necessary to calculate the amount of air in the intake stroke from the responsive output signal in the form of integrating the air flow rate, and this integration requires complex arithmetic processing. That is,
The hot wire output voltage v is given by the mass flow rate q A. Then, formula (1) further becomes v 2 = C 1 + C 2A ……(2). Now, if the hot wire output voltage v is v=v 0 when the rotational speed N=0 and the mass flow rate q A =0, equation (2) becomes v 2 0 =C 1 . . . (3). Therefore, from equations (2) and (3), v 2 = v 2 0 + C 2A ……(4) q A = 1/C 2 2 (v 2 −v 2 0 ) 2 ……( 5) and the instantaneous mass flow rate q A can be obtained from equation (5). Therefore, the average amount of air during one intake stroke
Q A becomes as follows. Also, the fuel injection amount Q F per intake stroke is
If N is the rotational speed and K is a constant, then Q F = KQ A /N... (7) Therefore, by finding Q A , the fuel injection amount Q A per rotation is determined by the rotational speed. This is the reason. Therefore, in order to capture this average air amount Q A with a microcomputer, the intake air amount is pulsating as mentioned above, and the intake air amount must be sampled from the value of the hot wire output voltage corresponding to the intake air amount. In order to calculate the above
Calculations such as equation (5) must be performed, and the microcomputer is required to perform not only fuel injection control (hereinafter referred to as EGI), but also point nine advance angle control (hereinafter referred to as IGN), and idle speed control (hereinafter referred to as IGN). This is possible when the rotational speed is several tens of revolutions, but it is possible if the rotational speed is several tens of revolutions. As the level increases, all you can do is calculate the amount of intake air. Therefore, the engine speed is divided into three modes, and the input of the output signal of the hot wire drive circuit of the engine speed in each mode to the microcomputer is synchronized with the crank rotation angle determined by each mode. It has been considered to prevent other controls of the microcomputer from becoming impossible due to fluctuations in the rotational speed and to perform fuel injection control reliably by taking in the time corresponding to the crank rotation angle.
However, when the load is low, hot wire flow sensors can measure the true amount of air, even taking into account the responsiveness of the hot wire, but as the load increases, the pulsation of the engine increases, making it difficult to measure the true air flow rate. It becomes impossible to measure the amount of air in the air. This is because the pulsation of the intake air due to the opening of the throttle valve as well as the opening of the intake and exhaust valves of the engine affects the mounting position of the flow rate sensor. Whether this pulsation occurs or not depends on the load, that is, the pressure inside the intake pipe. The pressure inside the intake pipe that causes pulsations that make it impossible to measure the true intake air amount with this flow rate sensor is (-)100
mHg. This intake pipe pressure and intake air amount Q A
FIG. 5 shows the relationship between the intake pipe internal pressure and the throttle opening. That is, the horizontal axis shows the intake pipe internal pressure (load), and the vertical axis shows the intake air amount Q A and the throttle opening. In the figure, the engine speed is now 100r.
A shows the relationship between the intake pipe internal pressure and the intake air amount Q A when expressed as pm. The relationship between this intake pipe internal pressure and the intake air flow rate Q A has linearity.
Similarly, B shows the relationship between the intake pipe pressure and the intake air flow rate Q A when the engine speed is 5000 rpm. This 5000 rpm line B also has linearity. Curve C shows the relationship between the throttle opening and intake pipe pressure when the engine speed is 1000r.pm, and when the engine speed is 5000r.p.m.
Curve D shows the relationship between the throttle opening and the intake pipe pressure at m. Intake air flow rate in the diagram
When Q A is almost 0, the pressure inside the intake pipe is (-)
500 mHg, and at this time the throttle opening is "0", that is, the throttle is in an idling state. Lines A and B, which show the characteristics of this hot wire flow sensor, are cut off at a pressure in the intake pipe of (-) 100 mHg because the pulsation is large at pressures above (-) 100 mHg, and the true intake air flow rate Q This is because A cannot be measured. On the other hand, the throttle opening is
As shown by curves C and D, the characteristics of the throttle sensor are exhibited even after (-) 100 mHg, since it is completely unrelated to the pressure inside the intake pipe. Therefore, the true intake air flow rate Q A cannot be measured with a hot wire flow rate sensor in a region where the pressure inside the intake pipe is (-) 100 mHg or more. The detected value from the sensor was corrected by software to determine the fuel amount as the intake air flow rate Q A. Therefore, due to the pulsation, the engine may brake when the fuel amount is low when it should be accelerating, or the engine may accelerate when the fuel amount is increased even though it is decelerating (i.e., the accelerator is released). The drawback was that the engine speed could not be controlled sufficiently. Therefore, in order to determine the area where pulsation occurs in the airflow caused by the engine, we use the throttle opening and engine rotational speed, which are not affected by pulsations, to calculate the intake air flow rate, which is determined in advance from the relationship between the throttle opening and the intake pipe pressure, as the engine rotational speed. By controlling the fuel amount using the compensated intake air flow rate expressed in relation to the throttle opening, air pulsation is generated by the engine.
A method has been considered to perform optimal engine fuel control even in a region where the true intake air flow rate cannot be measured using a hot-wire type flow sensor. However, as mentioned above, conventional hot wire flowmeters have the disadvantage of not being able to obtain an appropriate air flow rate because they use a wire-wound resistor in which a resistor is wound around a bobbin that is an insulating support. There is. In other words, as is well known, the principle of a hot wire flowmeter is that when a resistor heated to a constant temperature by passing an electric current is placed in a fluid flow path, the amount of heat taken from the resistor changes depending on the flow rate of the liquid. In order to replenish the amount of heat taken away according to the change and maintain the resistor at a constant temperature, the current is controlled, and this current is converted into voltage and used as the fluid flow rate. In conventional hot wire flowmeters, when there is a sudden increase in flow rate, the temperature of the resistor drops rapidly and the current increases rapidly to maintain it at a constant temperature. Ceramics is used as the material for the insulating support, and as it has low thermal conductivity, the amount of heat transferred from the high temperature resistor is small, and it takes time for the temperature of the insulating support, which has dropped due to a sudden increase in flow rate, to reach equilibrium with the resistor. During this time, the above-mentioned current continues to increase and does not reach equilibrium, resulting in a problem that the response becomes extremely slow. An object of the present invention is to provide a hot wire flowmeter that is responsive to sudden changes in air volume (flow rate). The present invention provides linear resistance against sudden changes in air volume by winding a linear resistor in a coil around a rod-shaped or tubular support made of metal with high thermal conductivity and coated with an insulating film. It increases the amount of heat conduction from the body to the tubular support to quickly balance the temperature of the linear resistor and the tubular support, converges the current flowing through the linear resistor to an equilibrium value, and improves responsiveness. be. Examples of the present invention will be described below. FIG. 6 shows the entirety of a hot wire resistor 2220 of a hot wire flowmeter showing one embodiment of the present invention. In the figure, an insulating film 2222 is formed on the outer peripheral surface of a tubular metal support 2221. A linear resistor 2223 is wound in a coil shape on this insulating film 2222.
A protective film 2224 is applied on top of 223. Further, an electrode 2225 is provided at one end of the tubular metal support 2221. Hot wire resistor 2220 configured in this way
The metal support 2221 is a stainless steel tube with an outer diameter of 0.2φ, an inner diameter of 0.1φ, and a length of 5 mm, and a heat-resistant ceramic coating is provided as the insulating coating 2222 by coating and baking or plasma spraying. ing. Further, as the protective film 2224,
The glass material is coated and baked. Insulating film 222
The thickness of 2224 is 50 μm, and the thickness of protective film 2224 is
It is 15 μm. A characteristic diagram when this embodiment is used in a hot wire flowmeter is shown in FIG. That is, in the figure, A is a platinum wire with a wire diameter of 70 μφ and a length of 50 mm in the bare wire state.
The characteristics of a single linear hot wire resistor with a point-supported structure are shown, B is the present example, and C is an alumina pipe (outer diameter
A platinum iridium wire (0.2φ, length 2.5mm) is inserted as a lead wire into the inner diameter of the alumina pipe using platinum paste, and the platinum wire is wrapped around it using a bobbin fixed by baking. This figure shows the characteristics of a ceramic bobbin type hot wire resistor with a rolled glass film formed thereon. In the figure, A has a transient response time constant of 5 msec as a flow rate change, and C, which is a conventional bobbin type, has a time constant of 45 msec. In contrast, in this embodiment, the time is approximately 18 msec. Although A is the most excellent, it is actually impossible to use due to its backup fire, earthquake resistance, and mechanical strength. In addition, the conventional bobbin type C
In this case, the difference in time constant between heating and cooling becomes large, making it impossible to accurately grasp the pulsating flow. Further, the temperature distribution state of the relationship between the length and thickness of the bobbin of the hot wire resistor is shown in FIGS. 8a and 8b. FIG. 8a shows a case where the bobbin length is small and relatively thick, and the temperature distribution at this time is high at the center. On the other hand, FIG. 8b shows the case where the bobbin length is large and the thickness is small, and both FIGS. 8a and 8b show the case where the length of the linear resistors is the same, and the ratio of concentration in the center is low. Therefore, the larger the ratio l/d of thickness to length, the better. FIG. 9 is an explanatory diagram of the ignition device of FIG. 1,
A pulsed current is supplied to power transistor 72 via amplifier 68, and this current turns transistor 72 on. As a result, a primary coil current flows from the battery 66 to the ignition coil 68. The fall of this pulse current turns the transistor 74 into a cut-off state, and generates a high voltage in the secondary coil of the ignition coil 58. This high voltage is distributed via the power distributor 70 to each of the spark plugs 52 in each cylinder of the engine in synchronization with the engine rotation. Figure 10 shows exhaust gas recirculation (hereinafter referred to as EGR)
To illustrate the system, a constant negative pressure from a negative pressure source 80 is applied to a control valve 86 via a pressure control valve 84. The pressure control valve 84 is applied to the transistor 90 and controls the ratio of the constant negative pressure of the negative pressure source to the atmosphere 88 according to the ON duty ratio of the repetitive pulse, and controls the state of application of the negative pressure to the control valve 86. Therefore, the negative pressure applied to the control valve 86 is determined by the ON duty ratio of the transistor 90. The controlled negative pressure of the constant pressure valve 84 controls the amount of EGR flowing from the exhaust valve 10 to the intake pipe 6. FIG. 11 is an overall configuration diagram of the control system.
CPU 102 and read-only memory 104
(hereinafter referred to as ROM), random access memory 106 (hereinafter referred to as RAM), and input/output circuit 1
It consists of 08. The above CPU 102 is
Using various programs stored in the ROM 104, input data from the input/output circuit 108 is operated, and the operation results are returned to the input/output circuit 108 again. The intermediate storage required for these operations is RAM.
106 is used. CPU102, ROM104,
Various types of data are exchanged between the RAM 106 and the input/output circuit 108 via a bus line 110 consisting of a data bus, a control bus, and an address bus. The input/output circuit 108 includes a first analog-to-digital converter (hereinafter referred to as ADC1) and a second analog-to-digital converter (hereinafter referred to as ADC1).
analog to digital converter (hereinafter referred to as
ADC2) and angle signal processing circuits 126 and 1
It has an input means with a discrete input/output circuit (hereinafter referred to as DIO) for inputting and outputting bit information. ADC1 has a battery voltage detection sensor 132
(hereinafter referred to as VBS) and cooling water temperature sensor 56 (hereinafter referred to as VBS)
(hereinafter referred to as TWS) and atmospheric temperature sensor 122 (hereinafter referred to as TAS)
), the adjustment voltage generator 114 (hereinafter referred to as VRS), and the throttle angle sensor 116 (hereinafter referred to as θTHS)
The outputs of the λ sensor 118 (hereinafter referred to as λS) are applied to a multiplexer 120 (hereinafter referred to as MPX), and the MPX 120 selects one of them and converts it into an analog-to-digital conversion circuit 122 (hereinafter referred to as λS). (hereinafter referred to as ADC). ADC1
The digital value that is the output of 22 is stored in register 124.
(hereinafter referred to as REG). In addition, the flow rate sensor 24 (hereinafter referred to as AFS)
The signal is input to the ADC 2, converted into a digital signal via an analog-to-digital conversion circuit 128 (hereinafter referred to as ADC), and set in a register 130 (hereinafter referred to as REG). The angle sensor 146 (hereinafter referred to as ANGS) outputs a signal indicating a reference crank angle, for example, 180 degrees crank angle (hereinafter referred to as REF), and a signal indicating a minute angle, for example, 1 degree crank angle (hereinafter referred to as POS). The signal is applied to the angle signal processing circuit 126, where the waveform is shaped. DIO has an idle switch 148 (hereinafter
IDIE-SW) and top gear switch 1
50 (hereinafter referred to as TOP-SW) and a starter switch 152 (hereinafter referred to as START-SW) are input. Next, the pulse output circuit and control target based on the calculation results of the CPU will be explained. The injector control circuit (denoted as INJC) is a circuit that converts the digital value of the calculation result into a pulse output. Therefore, a pulse with a pulse width corresponding to the fuel injection amount is
It is generated by INJC 134 and applied to injector 12 via AND gate 136. The ignition pulse generation circuit 138 (hereinafter referred to as IGNC) has a register (hereinafter referred to as ADV) for setting the ignition timing and a register (hereinafter referred to as DWL) for setting the primary current energization start time of the ignition coil.
These data are set by the CPU. A pulse is generated based on the set data and is applied via AND gate 140 to amplifier 68, detailed in FIG. The opening rate of the bypass valve 62 is determined by the control circuit (hereinafter referred to as
ISCC) 142 via an AND gate 144.
ISCC142 is a register that sets the pulse width.
Register to set ISCD and repeat pulse period
Has ISCP. The EGR amount control pulse generation circuit 180 (hereinafter referred to as EGRC) that controls the transistor 90 that controls the EGR control valve 86 shown in FIG. 4 has a register that sets a value representing the duty of the pulse.
It has EGRD and a register EGRP for setting a value representing the pulse repetition period. This EGRC
The output pulse of is applied to transistor 90 via AND gate 156. Further, the 1-bit input/output signal is controlled by the circuit DIO. The input signal is IDLE-SW signal,
There is a TOP-SW signal and a START-SW signal. Further, the output signal includes a pulse output signal for driving the fuel pump. This DIO is provided with a register DDR for determining whether a terminal is used as an input terminal or an output terminal, and a register DOUT for latching output data. The register 160 is a register (hereinafter referred to as a register) that holds instructions for commanding various states inside the input/output circuit 108.
For example, by setting an instruction in this register, the AND gate 136,
140, 144, and 156 are all turned on or turned off. MOD like this
By setting the instruction in register 160,
You can control the stop and start of INJC, IGNC, and ISCC output. FIG. 12 is a diagram showing the basic configuration of a program system for the control circuit shown in FIG. 11. In the figure, an initial processing program 202,
The interrupt processing program 206, macro processing program 228, and task dispatcher 208 are management programs for managing task groups.
The initial processing program 202 is a program for performing preprocessing for operating the microcomputer, for example, clearing the memory contents of the RAM 106 or
It performs processing to set initial values of registers of 08, and to take in input information such as cooling water temperature Tw, battery voltage, etc. for preprocessing necessary for engine control. Also,
The interrupt processing program 206 accepts various interrupts, analyzes the cause of the interrupt, and issues an activation request to the task dispatcher 208 to activate a necessary task among the task groups 210 to 226.
As described later, interrupt factors include AD that occurs after AD conversion of input information such as power supply voltage and cooling water temperature.
Conversion interrupt (ADC), initial interrupt (INTL) that occurs in synchronization with engine rotation, interval interrupt (INTV) that occurs at set fixed time intervals, for example every 10ms, and even engine stop status. Detects and generates an engine stall interrupt (ENST)
etc. Each task in the task groups 210 to 226 is assigned a task number representing a priority order, and each task belongs to one of task levels 0 to 2. That is, tasks 0 to 2 belong to task level 0, tasks 3 to 5 belong to task level 1, and tasks 6 to 8 belong to task level 2. The task dispatcher 208 receives activation requests for the various interrupts, and allocates CPU occupation time based on the priorities assigned to the various tasks corresponding to these activation requests. Here, task priority control by the task dispatcher 208 is based on the following method. (1) Abort a low-priority task and transfer execution rights to a high-priority task only between task levels. It is assumed here that level 0 has the highest priority. (2)
If there is a task currently being executed or suspended within the same task level, this task has the highest priority and no other tasks can operate until this task is completed. (3) If there are activation requests for multiple tasks within the same task level, the smaller the task number, the higher the priority. Task Day Patschiya 2
The processing contents of step 08 will be described later, but in the present invention, a soft timer is provided in the RAM for each task in order to perform the above-mentioned priority control, and a control block for managing tasks in each task level is set in the RAM. There is. Each time the execution of each task is completed, the macro processing program 228 reports the completion of the execution of the task to the task dispatcher 208. Next, the processing contents of the task dispatcher 208 will be explained based on FIGS. 13 to 19.
FIG. 13 shows a task control block provided in the RAM managed by the task dispatcher 208. The number of task control blocks equal to the number of task levels is provided, and in this embodiment, three task control blocks are provided at task levels 0 to 2. Eight bits are assigned to each control block, of which the 0th to 2nd bits (Q 0 to Q 2 ) are activation bits that display the activation request task, and the 7th bit (R) is the activation bit that indicates the activation request task. The execution bit indicates whether any task is currently being executed or suspended. The activation bits Q 0 to Q 2 are arranged in descending order of execution priority within each task level. For example, the activation bit corresponding to task 4 in FIG. 12 is arranged at task level 1.
Q is 0 . If there is a request to start a task, a flag is set in one of the start bits, and the task dispatcher 208 searches for the issued start request in order from the start bits corresponding to higher-level tasks and selects the start bits. It resets the flag corresponding to the activated activation request, sets flag 1 in the execution bit, and performs processing to activate the corresponding task. FIG. 14 shows a start address table provided in RAM 106 managed by task dispatcher 208. Start address SA0 to SA
8 is the task group 210 to 226 shown in FIG.
The start addresses corresponding to each task 0 to 8 are shown. 16 bits are allocated to each start address information, and these start address information are used by the task dispatcher 208 to start the corresponding task for which a start request has been made, as will be described later. Next, FIGS. 15 and 16 show the processing flow of the task dispatcher. In FIG. 14, when task dispatcher processing is started in step 300, it is determined in step 302 whether or not execution of a task belonging to task level 1 is being suspended. That is, if the execution bit is set to 1, it means that the macro processing program 228 has not yet issued a task completion report to the task dispatcher 208.
Indicates a state in which a task that was currently being executed is interrupted due to an interrupt with a higher priority level. Therefore, if flag 1 is set in the execution bit, the process jumps to step 314 and resumes the suspended task. On the other hand, if flag 1 is not set in the execution bit, that is, if the execution display flag is reset, the process moves to step 304, and it is determined whether there is a task waiting to be activated at level l. That is, the activation bits of level l are searched in the order of the execution priority of the corresponding task, that is, in the order of Q 0 , Q 1 , and Q 2 . If flag 1 is not set in the activation bit belonging to task level 1, the process moves to step 306, and the task level is updated. That is, the task level l is incremented by +1 to l+1. When the task level is updated in step 306, the process moves to step 308, where it is determined whether all task levels have been checked. If all levels have not been checked, i.e. l=2, step
Returning to 302, the process is performed in the same manner as above. If all task levels have been checked in step 308, the process moves to step 310, where the interrupt is canceled. That is, since interrupts are prohibited during the processing period from step 302 to step 308, the interrupt is canceled at this step. Then, in the next step 312, the next interrupt is generated. Next, in step 304, if there is a task waiting to be activated at task level 1, that is, if the flag 1 is set in the activation bit belonging to task level 1, the process moves to step 400. In the loop of steps 500 and 502, which activation bit of task level l is set as flag 1 is searched in the order of the corresponding high priority execution level, that is, in the order of Q 0 , Q 1 , and Q 2 . Once the relevant activation bit has been determined, the process moves to step 404, where the flagged activation bit is reset and a flag 1 is set to the execution bit (hereinafter referred to as the R bit) of l of the relevant task level. Furthermore, in step 406, the starting task number is determined, and in step 408, the task number shown in FIG. 14 is determined.
The start address information of the corresponding startup task is retrieved from the start address table provided in the RAM. Next, in step 410, a determination is made as to whether or not to execute the corresponding startup task. Here, if the extracted start address information is a specific value, for example 0, it is determined that the corresponding task does not need to be executed. This determination step is necessary to selectively provide the function of only a specific task to each vehicle type among the group of tasks that perform engine control. If it is determined in step 410 that the execution of the relevant task has been stopped, the process moves to step 414, where the R bit of the relevant task level 1 is reset. Then, the process returns to step 302 and it is determined whether the task level l is suspended. Since there may be cases in which a plurality of activation bits are flagged during the same task level, the R bit is reset in step 414 and then the process proceeds to step 302. On the other hand, if the execution of the relevant task is not stopped in step 410, that is, if it is to be executed, the process moves to step 412, jumps to the relevant task, and executes the task. Next, FIG. 17 is a diagram showing the processing flow of the macro processing program 228. This program consists of steps 562 and 564 to find the finished task. In steps 562 and 564, the task level is searched starting from 0 to find the completed task level. As a result, the process advances to step 568, where the execution (RUN) flag in the 7th bit of the task control block of the completed task is reset. This means that the task has completed execution. Then, the process returns to the task dispatcher 208 again and the next task to be executed is determined. Next, the execution and interruption of tasks when task priority control is performed by the task dispatcher 208 will be explained with reference to FIG. Here, m in the activation request N no represents the task level, and n represents the priority order within the task level m. Assuming that the CPU is currently executing the management program OS, if startup request N 21 occurs while this management program OS is running, the task corresponding to startup request N 21 , that is, task 6, will be executed at time T 1 . Begins. Here, while task 6 is being executed, a request to start a task with a higher execution priority is made at time T 2 .
If N 01 occurs, execution moves to the management program OS, and after performing the predetermined processing described above, the time is
At T3 , execution of the task corresponding to startup request N01 , ie, task 0, is started. If a startup request N 11 is received at time T 4 during the execution of task 0, execution will once again be transferred to the management program OS and predetermined processing will be performed, and then task 0, which was suspended at time T 5 , will be executed again. execution is resumed. When the execution of task 0 ends at time T 0 , the execution is transferred again to the management program OS, where the macro processing program 228 reports the completion of execution of task 0 to the task dispatcher 208, and at time T 7 it waits for startup again. Execution of task 3 corresponding to activation request N11 that was previously executed is started. Execution time T 3 of this task 3
When a startup request N12 of the same task level 1 with a lower priority is received, the execution of task 3 is temporarily interrupted and the execution is transferred to the management program OS, after which the predetermined processing is performed, and the task is restarted at time T9 . 3 is resumed. When the execution of task 3 is completed at time T 10 , the execution of the CPU is transferred to the management program OS, and the macro processing program 228 reports the completion of execution of task 3 to the task dispatcher 208, and then at time T 11 , the execution of task 3 is transferred to a higher priority level. The execution of task 4 corresponding to the low startup request N 12 is started, and when the execution of task 4 is completed at time T 12 , the execution is transferred to the management program OS and the predetermined processing is performed, which has been suspended until now. Execution of task 6 corresponding to activation request N 21 is resumed from time T 13 . Priority control of tasks is performed in the manner described above. FIG. 13 shows state transitions in task priority control. The Idle state is a state where the task is waiting to be started, and no start request has been issued to the task yet. The next time a startup request is issued, a flag is set on the startup bit of the task control block, indicating that startup is necessary. The time it takes to move from the Idle state to the Queue state is determined by the level of each task. Furthermore
They are executed even in the Queue state, and the order is determined by priority. The task enters the execution state at the task dispatcher 20 in the management program OS.
This is after the activation bit flag of the task control block is reset in step 8 and the R bit (seventh bit) is set. This will start executing the task. This state is the RUN state. When the execution is completed, the R bit flag of the task control block is cleared, and the completion report is ended. This ends the RUN state and returns to the Idle state, waiting for the next startup request. However, if an interrupt IRQ occurs during execution of a task, that is, during RUN, the task must suspend execution. As a result, the contents of the CPU are saved and execution is interrupted.
This state is the Ready state. Next, when this task is ready to be executed again, the saved contents are returned to the CPU from the save area and execution is resumed. In other words, it returns from the Ready state to the RUN state again. In this way, each level program repeats the four states shown in FIG. Although FIG. 18 shows a typical flow, there is a possibility that the start bit of the task control block will be flagged in the Ready state. This is the case, for example, when the timing of the next activation request for the task comes while the activation is being suspended. At this time R
The bit flag is given priority and the suspended task is terminated first. As a result, the R bit flag disappears, and the startup bit flag causes the device to enter the Queue state without passing through the Idle state. In this way, tasks 0 to 8 are each in one of the states shown in FIG. Next, FIG. 20 shows a specific embodiment of the program system shown in FIG. 12. In the figure, the management program OS is the initial processing program 202,
It consists of an interrupt processing program 206, a task dispatcher 208, and a macro processing program 228. The interrupt processing program 206 includes various interrupt processing programs, and the initial interrupt processing (hereinafter referred to as INTL interrupt processing) 602 uses an initial interrupt signal that is generated in synchronization with engine rotation to interrupt half of the number of engine cylinders per engine rotation. That is, if it is a 4-cylinder engine, the initial interrupt will occur twice. By this initial interrupt, the fuel injection time calculated by the EGI task 612 is set in the EGI register of the input/output interface circuit 108. There are two types of AD conversion interrupt processing 6041
One is the AD converter 1 interrupt (hereinafter abbreviated as ADC1) and the AD converter 2 interrupt (hereinafter abbreviated as ADC2). The AD converter 1 has an accuracy of 8 bits and is used for inputting power supply voltage, cooling water temperature, intake air temperature, usage adjustment, etc., and starts conversion at the same time as specifying the input point to the multiplexer 120. Generates ADC1 interrupt after completion. Note that this interrupt is used only before cranking. or
The AD converter 128 is used to input the air flow rate and generates an ADC2 interrupt after the conversion is completed. Note that this interrupt is also used only before cranking. Next, the interval interrupt processing program (below
It is referred to as INTV interrupt processing program. ) 606, the INTV interrupt signal is generated at intervals of, for example, 10 ms, set in the INTV register, and is used as a basic signal for time monitoring of tasks to be started at regular intervals. This interrupt signal updates the soft timer and activates the mask that has reached the specified period. Furthermore, an engine stall interrupt processing program (hereinafter referred to as the ENST interrupt processing program) 608 detects the engine stop state, and when an INTL interrupt signal is detected, it starts counting and waits for the next INTL interrupt signal within a predetermined period of time, for example, one second. An ENST interrupt occurs when it cannot be detected. and
Even if ENST interrupt occurs 3 times, e.g. 3 seconds have elapsed
If the INTL interrupt signal cannot be detected, it is determined that an engine stall has occurred, and the ignition coil is energized and the fuel pump is stopped. After these processes, the process waits until the starter switch 152 is turned on.
Table 1 shows an overview of the processing for the above interrupt factors.

【表】【table】

【表】 イニシヤル処理プログラム202及びマクロ処
理プログラム228については前述の通りの処理
を行う。 上記各種の割込みにより起動されるタスク群は
次の通りである。タスクレベル0に属するタスク
としては空気量処号処理タスク(以下ASタスク
と記す)、燃料噴射制御タスク(以下EGIタスク
と記す)及び始動モニタタスク(MONITタスク
と言う)がある。又タスクレベル1に属するタス
クとしてはAD1入力タスク(以下ADIN1タス
クと記す)、時間係数処理タスク(以下AFSIAタ
スク)がある。更にタスクレベル2に属するタス
クとしてはアイドル回転制御タスク(以下ISCタ
スクと記す)、補正計算タスク(以下HOSEIタス
クと記す)及び始動前処理タスク(以下ISTRT
タスクと記す)がある。 上記各タスクレベルの割り当てとタスクの機能
を表2に示す。
[Table] The initial processing program 202 and macro processing program 228 perform the processing as described above. The task groups activated by the various interrupts mentioned above are as follows. Tasks belonging to task level 0 include an air amount processing task (hereinafter referred to as AS task), a fuel injection control task (hereinafter referred to as EGI task), and a start monitor task (hereinafter referred to as MONIT task). Tasks belonging to task level 1 include an AD1 input task (hereinafter referred to as ADIN1 task) and a time coefficient processing task (hereinafter referred to as AFSIA task). Furthermore, the tasks belonging to task level 2 are the idle rotation control task (hereinafter referred to as ISC task), the correction calculation task (hereinafter referred to as HOSEI task), and the start preprocessing task (hereinafter referred to as ISTRT).
There are tasks (written as tasks). Table 2 shows the assignment of each task level and the function of the task.

【表】【table】

【表】 表2から明らかなように各種割込みにより起動
される各タスクの起動周期は予め定められており
これらの情報はROM104に格納されている。 次に、ホツトワイヤ流量センサの信号処理方法
を示すINTL割込み処理について説明する。 ホツトワイヤ流量センサの信号は、INTL割込
によつて取込むものであり、その取込タイミング
は、エンジン回転数によつて3つのモードに分け
て各モードで異なる。すなわち、第15図に示す
如く、モード0は、回転数Nが、N<1600rpm、
モード1は、回転数Nが1600rpm≦N≦
3200rpm、モード2は、回転数Nが3200rpm<N
とし、4気筒エンジンについて示している。した
がつて、クランク回転角度180゜で1吸気工程であ
る。モード0は、本実施例ではN=1600rpmにつ
いて、また、モード1は、N=3200rpmについ
て、また、モード2は、N=6400rpmについてそ
れぞれ示されている。したがつて、モード0に対
し、モード1は同一時間で2倍の回転角度回転
し、さらにモード2では、モード0の4倍、モー
ド1の2倍の回転角度で回転することになり、そ
れが第21図において示されている。 このホツトワイヤ流量センサの信号処理方法
は、モード0におけるエンジン回転数の範囲で10
個のサンプリングを行うよう設定する。すなわ
ち、モード0のときは、クランク回転角度18゜に
相当する時間毎にサンプリングを行い、モード1
のときは、回転数Nが2倍となつているため、取
込みタイミングが、クランク回転角度36゜に相当
する時間毎となり、さらにモード2のときは、回
転数Nがモード0のときの4倍となつているた
め、クランク回転角度72゜に相当する時間毎にサ
ンプリングを行う。したがつて、各モード共に、
1吸気工程におけるクランク回転角度になおす
と、モード0において取込んだデータと同じクラ
ンク回転角度でデータを取込んだのと同じことに
なる。このようにエンジン回転数によつてデータ
取込タイミングを変えることにより、データ処理
時間は、エンジン回転数の変動によつて左右され
ることがない。 このようなホツトワイヤ流量センサの信号取込
みのINTL割込処理フローが第22図に示されて
いる。 図において、まず、ステツプ801において、
INTLが割込か否かを判断する。INTL割込の場
合はステツプ802において、アナログカウンタが
0(零)か否かを判定する。アナログカウンタが
0(零)の場合にはステツプ803においてA/D変
換器を起動させて空気量vの取込を開始する。v
の取込を開始するとステツプ804において、エン
ジン回転数とエンジン回転数モードとから次の空
気量vの取込のためのタイマの時間セツトを行
う。ステツプ804においてタイマ時間セツトが行
われると、ステツプ805においてEGIREGのセツ
ト、IGNREGのセツト等が行われ、次にステツ
プ806においてINTLIRQのみ割込禁止の解除を
行いINTL割込み処理プログラムは終了する。ス
テツプ802において、アナログカウンタがゼロで
ない場合にはステツプ805に移る。 また、ステツプ801において、INTL割込でな
い場合には、ステツプ807において、QA用のタイ
マ割込みか否かを判定する。タイマ割込の場合に
はステツプ808においてタイマ割込禁止フラグが
セツトされているか否かの判定を行う。禁止フラ
グがセツトされている場合には終了。また、禁止
フラグがセツトされていない場合には、ステツプ
809において、vの取込をやつて、アナログカウ
ンタを+1にする。次にステツプ810において、
vの取込が完了したか否か(アナログカウンタで
示される取込回数が規定回数の取込完了か否か)
を判定する。vの取込が完了するとステツプ811
において、タイマの停止をし、ステツプ812にお
いてアナログカウンタをリセツトする。 また、ステツプ810において、取込みが完了し
ていない場合には、ステツプ813において、vを
起動する。次にステツプ814において、v2の計算
をしてRAMに格納する。 また、ステツプ807において、タイマ割込みで
ないと判定するとステツプ815においてADC割込
みか否かを判定する。ステツプ815においてADC
割込みである場合には、ステツプ816において、
IST=1か否かを判定し、IST=1の場合には、
ステツプ817においてvの取込を行う。このvは
押がけの検出に使用するものである。また、ステ
ツプ815においてAD割込でない場合、ステツプ
816においてIST=1でない場合には、共に第2
0図のINTV割込処理606に移る。 次に、第20図図示空気量信号処理(AC)6
10のタスクについて説明する。空気量信号処理
タスクは第18図に示す如く、ステツプ901にお
いてタスクを起動する。タスクが起動されると、
ステツプ902において、vの取込禁止フラグをセ
ツトする。次に、ステツプ903において、(v22
計算を行いRAMへ格納する。次にステツプ904
において、取込禁止フラグをリセツトする。取込
禁止フラグをリセツトすると、ステツプ905にお
いてステツプ903RAMに格納された値(V22
積算して平均化する。積算して平均化するとステ
ツプ906において、熱線式流量センサから吸入空
気流量QAを計算する。このステツプ906において
吸入空気流量QAを計算すると、ステツプ907にお
いて、エンジン回転数を取込み、ステツプ908に
おいてスロツトルセンサ開度を取込む。このエン
ジン回転数とスロツトルセンサからの開度の入力
があるとステツプ909においてエンジン回転数と
スロツトル開度とから負荷計算を行う。この負荷
計算をすると、ステツプ910において、運転エン
ジンの状態が補償領域にあるか否かを判定し、補
償領域であると判定するとステツプ911において、
ステツプ909において負荷計算に用いられたエン
ジン回転数とスロツトル開度とから補償QAを計
算する。この補償QAは、第24図に示す如くマ
ツプ状に形成され、ROMに記憶されているもの
である。第24図図示マツプは、横軸にスロツト
ル開度が、縦軸にエンジン回転数がとられスロツ
トル開度とエンジン回転数との交点が補償QA
ある。この制御マツプは、実験によりあらかじめ
求められたものである。このように、ステツプ
910において補償領域の場合と判定するとステツ
プ911において補償QAが燃料量制御に用いられス
テツプ912に移る。また、ステツプ910において補
償領域でないと判定するとステツプ912において
エンジンの加速状態か否かを判定する。このステ
ツプ912において加速状態であると判定するとス
テツプ913において加速噴射した後、第20図に
おけるマクロ処理228に移る。 以下、第25図乃至第28図に基づきINTV割
込み処理について説明する。第20図はRAM1
06に設けられたソフトタイマテーブルであり、
このソフトタイマテーブルには各種割込みにより
起動される異なる起動周期の数だけのタイマブロ
ツクが設けられている。ここでタイマブロツクと
はROM104に格納されているタスクの起動周
期に関する時間情報が転送される記憶エリアを指
している。同図に於いて左端に記憶されている
TMBはRAM106に於けるソフトタイマテー
ブルの先頭番地を意味する。このソフトタイマテ
ーブルの各タイマブロツクにはエンジン始動時に
ROM104より前記起動周期に関する時間情
報、即ちINTV割込みを例えば10ms毎に行う場
合にはその整数数倍の値が転送され、格納され
る。 次に第26図にINTV割込み処理606の処理
フローを示す。同図に於いてステツプ626でプロ
グラムが起動されるとステツプ628でRAM10
6に設けられたソフトタイマテーブルのイニシヤ
ルライズが行われる。即ち、インデツクスレジス
タの内容iを0にし前記ソフトタイマテーブルの
番地TMB+0のタイマブロツクに記憶されてい
る残り時間T1を調べる。ここでこの場合にはT1
=T0である。次にステツプ630で上記ステツプ
628で調べたソフトタイマが停止中であるか否か
が判断される。即ち、ソフトタイマテーブルに記
憶されている残り時間T1がT1=0である場合に
はソフトタイマは停止中であると判断され、該ソ
フトタイマにより起動されるべき該当タスクは停
止中であると判断され、ステツプ640にジヤンプ
し、ソフトタイマテーブルの更新が行われる。 一方、ソフトタイマテーブルの残りの時間T1
がT1≠0である場合にはステツプ632に移行し前
記タイマブロツクの残り時間の更新が行われる。
即ち、残り時間T1から−1だけデイクリメント
される。次にステツプ634では前記タイマテーブ
ルのソフトタイマが起動周期に達したか否かが判
断される。即ち残り時間T1がT1=0である場合
には起動周期に達したと判断されその場合にはス
テツプ636に移行する。又ソフトタイマが起動周
期に達していないと判断される場合にはステツプ
640にジヤンプし、ソフトタイマテーブルの更新
が行われる。前記ソフトタイマテーブルが起動周
期に達している場合にはステツプ636でソフトタ
イマテーブルの残り時間T1を初期化する。即ち、
ROM104よりRAM106へ該当タスクの起
動周期の時間情報を転送する。そしてステツプ
636で前記ソフトタイマテーブルの残り時間T1
初期化した後、ステツプ638でそのソフトタイマ
テーブルに該当するタスクの起動要件を行う。次
にステツプ640でソフトタイマテーブルの更新を
行う。即ち、インデツクスレジスタの内容を+1
インクリメントする。更にステツプ642では全部
のソフトタイマテーブルをチエツクしたか否かが
判断される。即ち、第20図に示したように本実
施例ではソフトタイマテーブルをN+1個だけ設
けてあるのでインデツクスレジスタの内容iがi
=N+1である場合には全ソフトタイマテーブル
のチエツクが完了したと判断されステツプ644で
INTV割込み処理プログラム606は終了する。
一方ステツプ642で全ソフトタイマテーブルがチ
エツクされていないと判断された場合にはステツ
プ630に戻り、前述と同様の処理が行われる。 以上の様にして各種の割込みに応じて該当タス
クの起動要求が出され、それに基づいて該当タス
クの実行が為されるが、表2に掲げられたタスク
群が常にすべてが実行されるのではなく、エンジ
ンの運転情報に基づいてROM104に設けられ
ている前記タスク群の起動周期に関する時間情報
を選択してRAM106のソフトタイマテーブル
中に転送し格納する。そして与えられたそのタス
クの起動周期が例えば20msであるとすれば、そ
の時間毎にタスクが起動されるがそのタスクの起
動が運転条件に応じて継続して行う必要があるも
のであれば常にそのタスクに該当するソフトタイ
マテーブルは更新して初期化される。次にエンジ
ンの運転条件に応じて各種割込みにより前記タス
ク群が起動停止される様子を第22図に示すタイ
ムチヤートにより説明する。スタータスイツチ1
52の操作によりパワーオンの状態になると
CPUが作動し、ソフトウエアフラグIST及びソフ
トウエアフラグEMに1が立てられる。ソフトウ
エアフラグISTはエンジンが始動前の状態にある
ことを示すフラグであり、ソフトウエアフラグ
EMはENST割込みを禁止するためのフラグであ
る。これらの2つのフラグによりエンジンが始動
前の状態にあるか或いは始動中か又は始動後の状
態にあるのかの判別が為される。さてスタータス
イツチ152の操作によりパワーオンの状態にな
ると先ず最初にタスクADIN1が起動され各種セ
ンサによりエンジンの始動に必要なデータ例えば
冷却水温度、バツテリ電圧等の入力情報がマルチ
プレクサ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を格納する、即ちソフトタイマの内容をクリ
アすることによりタスクの停止を行うものであ
る。したがつて、タスクの起動停止をソフトタイ
マにより簡単に行えるように構成したので異なる
起動周期を有する複数のタスクに対し能率的且つ
信頼性有る管理を行うことが可能となる。 次にIRQの発生回路と第28図に示す。レジス
タ735とカウンタ736と比較器737とフリ
ツプフロツプ738はINTV IRQの発生回路で
あり、レジスタ735にINTV IRQの発生周期
例えば本実施例では10〔ms〕がセツトされる。
これに対しクロツクパルスがカウンタ736へセ
ツトされ、そのカウント値がレジスタ735と一
致するとフリツプフロツプ738をセツト状態と
する。このセツト状態でカウンタ736をクリア
し、再びカウントを再開する。従つて一定時間
(10msec)ごとにINTV IRQが発生する。 レジスタ741とカウンタ742と比較器74
3、フリツプフロツプ744はエンジンの停止を
検知するENST IRQの発生回路である。レジス
タ741とカウンタ742と比較器743は上の
説明と同様であり、カウント値がレジスタ741
の値に達するとENST IRQを発生する。しかし
エンジンの回転中はクランク角センサより一定ク
ランク角毎に発生するREFパルスによるカウン
タ742がクリアされるのでカウンタ742のカ
ウント値がレジスタ741の値に達しないので
ENST IRQは発生しない。 フリツプフロツプ738に発生したINTV
IRQやフリツプフロツプ744に発生したENST
IRQさらにADC1やADC2で発生したIRQはそ
れぞれフリツプフロツプ740,746,76
4,768へセツトされる。またフリツプフロツ
プ737,745,762,766にはIRQを発
生させるか禁止するかの信号がセツトされる。フ
リツプフロツプ737,745,762,766
に“H”がセツトされていればANDゲート74
8,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つをクリアす
る。 したがつて、本実施例によれば、熱慣性が小さ
くすることができ、しかもボビン材の熱伝導率が
大きいために抵抗体表面の温度分布を均一にする
ことができる。 また、本実施例によれば、流量の変動があつて
も応答良く検出が可能となる。 本発明によれば、線状抵抗体の支持体に熱伝導
率の大きい金属を用いることにより、空気量の急
激な変化に対して速やかに線状抵抗体と管状支持
体の温度を均衡せしめることが出来るので、流量
測定の応答性が改良される。
[Table] As is clear from Table 2, the activation cycle of each task activated by various interrupts is determined in advance, and this information is stored in the ROM 104. Next, INTL interrupt processing, which shows the signal processing method of the hot wire flow rate sensor, will be explained. The signal from the hot wire flow rate sensor is taken in by an INTL interrupt, and the take-in timing is divided into three modes depending on the engine speed and differs in each mode. That is, as shown in FIG. 15, in mode 0, the rotation speed N is N<1600 rpm,
In mode 1, the rotation speed N is 1600rpm≦N≦
3200rpm, mode 2, rotation speed N is 3200rpm<N
This is for a 4-cylinder engine. Therefore, a crank rotation angle of 180 degrees corresponds to one intake stroke. In this example, mode 0 is shown for N=1600 rpm, mode 1 is shown for N=3200 rpm, and mode 2 is shown for N=6400 rpm. Therefore, mode 1 rotates twice as much as mode 0 in the same amount of time, and mode 2 rotates four times as much as mode 0 and twice as much as mode 1. is shown in FIG. The signal processing method of this hot wire flow sensor is as follows:
Set to perform sampling. In other words, in mode 0, sampling is performed every time corresponding to a crank rotation angle of 18 degrees, and in mode 1
In this case, since the rotational speed N is doubled, the acquisition timing is every time corresponding to a crank rotation angle of 36 degrees, and in mode 2, the rotational speed N is four times as much as in mode 0. Therefore, sampling is performed at intervals corresponding to a crank rotation angle of 72°. Therefore, for each mode,
When converted to the crank rotation angle in one intake stroke, it is the same as data captured at the same crank rotation angle as the data captured in mode 0. By changing the data acquisition timing depending on the engine speed in this way, the data processing time is not affected by fluctuations in the engine speed. The INTL interrupt processing flow for signal acquisition of such a hot wire flow rate sensor is shown in FIG. In the figure, first, in step 801,
Determine whether INTL is an interrupt. In the case of an INTL interrupt, it is determined in step 802 whether the analog counter is 0 (zero). If the analog counter is 0 (zero), the A/D converter is activated in step 803 to start taking in the air amount v. v
When the intake of the air amount v starts, in step 804, a timer is set for the next intake of the air amount v based on the engine rotation speed and the engine rotation speed mode. When the timer time is set in step 804, EGIREG, IGNREG, etc. are set in step 805, and then in step 806, interrupt prohibition is canceled only for INTLIRQ, and the INTL interrupt processing program ends. In step 802, if the analog counter is not zero, the process moves to step 805. Further, if it is determined in step 801 that it is not an INTL interrupt, it is determined in step 807 whether or not it is a timer interrupt for Q A. In the case of a timer interrupt, it is determined in step 808 whether or not a timer interrupt prohibition flag is set. Ends if the prohibition flag is set. Also, if the prohibition flag is not set, the step
At 809, take in v and set the analog counter to +1. Next, in step 810,
Whether or not the import of v has been completed (whether or not the number of imports indicated by the analog counter has completed the specified number of imports)
Determine. When the import of v is completed, step 811
At step 812, the timer is stopped and the analog counter is reset at step 812. Further, if it is determined in step 810 that the capture has not been completed, v is activated in step 813. Next, in step 814, v 2 is calculated and stored in RAM. Further, if it is determined in step 807 that it is not a timer interrupt, it is determined in step 815 whether or not it is an ADC interrupt. ADC at step 815
If it is an interrupt, in step 816,
Determine whether IST=1 or not, and if IST=1,
In step 817, v is captured. This v is used to detect pushing. Also, if it is not an AD interrupt in step 815, step
If IST=1 in 816, both
The process moves to INTV interrupt processing 606 in FIG. Next, Fig. 20 shows air amount signal processing (AC) 6
The ten tasks will be explained. The air amount signal processing task is activated in step 901, as shown in FIG. When the task is launched,
In step 902, a capture prohibition flag for v is set. Next, in step 903, (v 2 ) 2 is calculated and stored in RAM. Next step 904
At this point, the capture prohibition flag is reset. After resetting the capture prohibition flag, in step 905, the values (V 2 ) 2 stored in the RAM are integrated and averaged. After integrating and averaging, in step 906, the intake air flow rate Q A is calculated from the hot wire flow rate sensor. After calculating the intake air flow rate Q A in step 906, the engine rotation speed is taken in step 907, and the throttle sensor opening degree is taken in step 908. When the engine speed and the throttle opening are input from the throttle sensor, in step 909 the load is calculated from the engine speed and the throttle opening. After performing this load calculation, it is determined in step 910 whether the operating engine condition is in the compensation region, and if it is determined to be in the compensation region, in step 911,
In step 909, compensation Q A is calculated from the engine speed and throttle opening used for load calculation. This compensation Q A is formed in the form of a map as shown in FIG. 24 and is stored in the ROM. In the map shown in FIG. 24, the horizontal axis represents the throttle opening, the vertical axis represents the engine speed, and the intersection between the throttle opening and the engine speed is the compensation Q A. This control map has been determined in advance through experiments. In this way, the steps
If it is determined in step 910 that it is in the compensation region, compensation Q A is used for fuel amount control in step 911, and the process moves to step 912. Further, if it is determined in step 910 that it is not in the compensation area, it is determined in step 912 whether or not the engine is in an accelerating state. If it is determined in step 912 that the fuel is in an accelerated state, accelerated injection is performed in step 913, and then the process moves to macro processing 228 in FIG. The INTV interrupt processing will be explained below based on FIGS. 25 to 28. Figure 20 shows RAM1
It is a soft timer table provided in 06,
This soft timer table is provided with as many timer blocks as the number of different activation cycles activated by various interrupts. Here, the timer block refers to a storage area to which time information regarding the activation cycle of tasks stored in the ROM 104 is transferred. It is stored at the left end in the same figure.
TMB means the starting address of the soft timer table in RAM 106. Each timer block in this soft timer table has a
From the ROM 104, time information regarding the activation cycle, that is, when an INTV interrupt is performed every 10 ms, for example, a value that is an integer multiple of the INTV interrupt is transferred and stored. Next, FIG. 26 shows the processing flow of INTV interrupt processing 606. In the same figure, when the program is started at step 626, RAM10 is started at step 628.
The soft timer table provided at 6 is initialized. That is, the content i of the index register is set to 0 and the remaining time T1 stored in the timer block at address TMB+0 of the soft timer table is checked. Here in this case T 1
= T 0 . Next, in step 630, repeat the above steps.
It is determined whether the soft timer checked in 628 is stopped. That is, if the remaining time T 1 stored in the soft timer table is T 1 = 0, it is determined that the soft timer is stopped, and the corresponding task to be started by the soft timer is stopped. It is determined that this is the case, and the process jumps to step 640, where the soft timer table is updated. Meanwhile, the remaining time T 1 in the soft timer table
If T 1 ≠0, the process moves to step 632 and the remaining time of the timer block is updated.
That is, the remaining time T1 is decremented by -1. Next, in step 634, it is determined whether the soft timer in the timer table has reached its activation period. That is, if the remaining time T 1 is T 1 =0, it is determined that the activation period has been reached, and in that case, the process moves to step 636. Also, if it is determined that the soft timer has not reached its activation cycle, the step
640, and the soft timer table is updated. If the soft timer table has reached its activation period, the remaining time T1 of the soft timer table is initialized at step 636. That is,
The time information of the activation cycle of the relevant task is transferred from the ROM 104 to the RAM 106. and step
After initializing the remaining time T1 of the soft timer table in step 636, the activation requirements for the task corresponding to the soft timer table are performed in step 638. Next, in step 640, the soft timer table is updated. In other words, the contents of the index register are increased by +1.
Increment. Further, in step 642, it is determined whether all soft timer tables have been checked. That is, as shown in FIG. 20, since only N+1 soft timer tables are provided in this embodiment, the content i of the index register is
= N+1, it is determined that all soft timer tables have been checked, and the process proceeds to step 644.
The INTV interrupt processing program 606 ends.
On the other hand, if it is determined in step 642 that all soft timer tables have not been checked, the process returns to step 630 and the same processing as described above is performed. As described above, a request to start the corresponding task is issued in response to various interrupts, and the corresponding task is executed based on the request, but it is possible that all of the task groups listed in Table 2 are always executed. Instead, time information regarding the activation cycle of the task group provided in the ROM 104 is selected based on the engine operating information, and is transferred and stored in the soft timer table of the RAM 106. If the activation cycle of a given task is, for example, 20ms, the task will be activated at each interval, but if the task needs to be activated continuously depending on the operating conditions, then the task will be activated at all times. The soft timer table corresponding to that task is updated and initialized. Next, the manner in which the task group is started and stopped by various interrupts according to engine operating conditions will be explained with reference to a time chart shown in FIG. 22. Starter switch 1
When the power is turned on by operating step 52,
The CPU operates and 1 is set in the software flag IST and software flag EM. The software flag IST is a flag that indicates that the engine is in a state before starting.
EM is a flag to disable ENST interrupts. These two flags are used to determine whether the engine is in a pre-starting state, in a starting state, or in a post-starting state. Now, when the power is turned on by operating the starter switch 152, the task ADIN1 is activated first, and input information such as cooling water temperature, battery voltage, etc. necessary for starting the engine is inputted via the multiplexer 120 to AD conversion by various sensors. The data is input into the device 122, and the task is
The HOSEI task correction is activated and correction calculations are performed based on the input information. Also, the task ADIN1
As a result, the task ISTRT is activated every time data from various sensors are input to the AD converter 122 once, and the fuel injection amount required during engine startup is calculated. The above three tasks, namely task ADIN1,
Tasks HOSEI and ISTRT are started by the initial processing program 202. When the starter switch 152 turns ON, the task ADIN1 and
Three tasks, task MONIT and task ADIN2, are activated. That is, these tasks need to be executed only while the starter switch 152 is in the ON state (during cranking of the engine). During this period, from ROM104
Time information of a predetermined activation cycle is transferred and stored in a soft timer table corresponding to each of the tasks provided in the RAM 106. During this period, the remaining time T1 of the activation cycle in the soft timer table is initialized and the activation cycle is repeatedly set. Task MONIT is a task to calculate the fuel injection amount when starting the engine, and is unnecessary after the engine starts. Therefore, after the task has been executed a predetermined number of times, the soft timer will stop starting, and when the task ends, The issued stop signal activates a group of tasks other than those mentioned above that are required after the engine is started. To stop a task using a soft timer, a signal indicating that the task has ended is used to store 0 in the corresponding soft timer table of the task at the time when the task is determined to have ended. The task is stopped by clearing the contents. Therefore, since the configuration is such that tasks can be easily activated and stopped using a soft timer, it is possible to efficiently and reliably manage a plurality of tasks having different activation cycles. Next, the IRQ generation circuit is shown in FIG. A register 735, a counter 736, a comparator 737, and a flip-flop 738 are an INTV IRQ generation circuit, and the INTV IRQ generation period is set in the register 735, for example, 10 [ms] in this embodiment.
In response, a clock pulse is set to counter 736, and when the count value matches register 735, flip-flop 738 is set. In this set state, the counter 736 is cleared and counting is restarted. Therefore, INTV IRQ is generated at regular intervals (10 msec). Register 741, counter 742, and comparator 74
3. Flip-flop 744 is an ENST IRQ generation circuit that detects engine stoppage. The register 741, counter 742, and comparator 743 are the same as those described above, and the count value is
Generates ENST IRQ when the value of is reached. However, while the engine is rotating, the counter 742 is cleared by the REF pulse generated by the crank angle sensor at every fixed crank angle, so the count value of the counter 742 does not reach the value of the register 741.
ENST IRQ will not occur. INTV occurred on flip-flop 738
ENST generated on IRQ or flip-flop 744
IRQ and IRQ generated by ADC1 and ADC2 are flip-flops 740, 746, and 76, respectively.
It is set to 4,768. Furthermore, signals for generating or inhibiting IRQ are set in flip-flops 737, 745, 762, and 766. Flip-flop 737, 745, 762, 766
If “H” is set in the AND gate 74
8,750,770,772 becomes active and IRQ
When , an IRQ is generated immediately from the OR gate. Therefore, flip-flops 737, 745, 76
Depending on whether "H" or "L" is input to each of 2,766, generation of IRQ can be inhibited or inhibited. Furthermore, when an IRQ occurs, the contents of flip-flops 740, 746, 764, and 768 are loaded into the CPU, so that the cause of the IRQ can be determined. When the CPU starts executing a program according to the IRQ, the IRQ signal needs to be cleared, so the flip-flop 7 related to the IRQ that started execution
Clear one of 40,746,764,768. Therefore, according to this embodiment, the thermal inertia can be reduced, and since the bobbin material has high thermal conductivity, the temperature distribution on the surface of the resistor can be made uniform. Further, according to this embodiment, even if there is a fluctuation in the flow rate, it is possible to detect it with good response. According to the present invention, by using a metal with high thermal conductivity for the support of the linear resistor, the temperature of the linear resistor and the tubular support can be quickly balanced against sudden changes in the amount of air. As a result, the responsiveness of flow rate measurement is improved.

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

第1図にはエンジン系統全体の制御装置を示す
構成図、第2図は従来の熱線式流量計の斜視図、
第3図は第2図の断面図、第4図はクランク軸回
転角度に対するホツトワイヤ出力電圧Vの出力特
性図、第5図は吸気管内圧力と吸入空気流量QA
スロツトル開度との特性図、第6図は本発明の実
施例を示す熱線抵抗体の断面構成図、第7図は第
6図図示実施例と従来例との比較特性図、第8図
a,bは第6図図示実施例の形状に対する温度分
布状態を示す図、第9図は第1図の点火装置の説
明図、第10図は排気ガス環流システムを説明す
るための構成図、第11図はエンジン制御システ
ムの全体構成図、第12図は本発明に係わるエン
ジン制御方法のプログラムシステムの基本的構成
を示す図、第13図はタスクデイスパツチヤの管
理するRAMに設けられたタスク制御ブロツクの
テーブルを示す図、第14図は各種割込みにより
起動されるタスク群のスタートアドレステーブル
を示す図、第15図及び第16図はタスクデイス
パツチヤの処理フローを示す図、第17図はマク
ロ処理プログラムの処理フローを示す図、第18
図はタスク優先制御の一例を示す図、第19図は
上記タスク優先制御に於けるタスクの状態遷移を
示す図、第20図は第12図に於ける具体的フロ
ーを示す図、第21図はホツトワイヤ出力電圧取
込タイミングを示す図、第22図は本発明の実施
例を示す吸入空気流量のINTL処理フローチヤー
ト、第23図は第22図図示補償QAの補償QA
ツプ図、第24図は空気量信号処理タスクのフロ
ーチヤート、第25図はRAMに設けられたソフ
トタイマテーブルを示す図、第26図はINTV割
込み処理プログラムの処理フローを示す図、第2
7図はエンジンの運転状態に応じて各種タスクの
起動停止が行われる様子を示したタイミングチヤ
ート、第28図は割込みIRQの発生回路である。 24……熱線式流量計、2220……熱線抵抗
体、2221……金属支持体、2222……絶縁
皮膜、2223……線状抵抗体、2224……保
護皮膜、2225……電極。
Fig. 1 is a configuration diagram showing the control device for the entire engine system, Fig. 2 is a perspective view of a conventional hot wire flowmeter,
Fig. 3 is a cross-sectional view of Fig. 2, Fig. 4 is an output characteristic diagram of the hot wire output voltage V with respect to the crankshaft rotation angle, Fig. 5 is the intake pipe internal pressure and intake air flow rate Q A ,
Figure 6 is a cross-sectional configuration diagram of a hot wire resistor showing an embodiment of the present invention, Figure 7 is a comparative characteristic diagram between the embodiment shown in Figure 6 and a conventional example, Figure 8 a , b is a diagram showing the temperature distribution state with respect to the shape of the illustrated embodiment in FIG. 6, FIG. 9 is an explanatory diagram of the ignition device in FIG. 1, FIG. Figure 11 is an overall configuration diagram of an engine control system, Figure 12 is a diagram showing the basic configuration of a program system for an engine control method according to the present invention, and Figure 13 is a diagram showing a task control system provided in RAM managed by a task dispatcher. FIG. 14 is a diagram showing the start address table of task groups activated by various interrupts. FIGS. 15 and 16 are diagrams showing the processing flow of the task dispatcher. FIG. 17 is a diagram showing the macro Diagram showing the processing flow of the processing program, No. 18
Figure 19 shows an example of task priority control, Figure 19 shows the state transition of tasks in the task priority control, Figure 20 shows the specific flow in Figure 12, and Figure 21. 22 is a diagram showing the hot wire output voltage acquisition timing, FIG. 22 is an INTL processing flowchart of intake air flow rate showing an embodiment of the present invention, and FIG. 23 is a compensation Q A map diagram of compensation Q A shown in FIG. 22. Figure 24 is a flowchart of the air amount signal processing task, Figure 25 is a diagram showing the soft timer table provided in the RAM, Figure 26 is a diagram showing the processing flow of the INTV interrupt processing program, and Figure 25 is a diagram showing the processing flow of the INTV interrupt processing program.
FIG. 7 is a timing chart showing how various tasks are started and stopped depending on the operating state of the engine, and FIG. 28 is an interrupt IRQ generation circuit. 24... Hot wire flowmeter, 2220... Hot wire resistor, 2221... Metal support, 2222... Insulating film, 2223... Linear resistor, 2224... Protective film, 2225... Electrode.

Claims (1)

【特許請求の範囲】 1 電流加熱した熱線と温度補償用抵抗と2つの
抵抗によつてホイーストンブリツジを構成し、常
に該ホイーストンブリツジの不平衡電圧が零にな
るように制御電流を流して前記熱線を定温度制御
し、管内の空気流量変化による前記熱線の温度変
化を定温度にする制御電流を空気流量として検出
する熱線式流量センサにおいて、前記熱線は熱伝
導率の大きい金属に絶縁性皮膜を施した棒状又は
管状支持体に線状抵抗体をコイル状に巻きつけて
形成したことを特徴とする熱線式流量センサ。 2 特許請求の範囲第1項記載の発明において、
上記絶縁性皮膜は、セラミツク、ガラス等の無機
質材であることを特徴とする熱線式流量センサ。
[Claims] 1. A Wheatstone bridge is constructed by a hot wire heated by an electric current, a temperature compensation resistor, and two resistors, and a control current is applied so that the unbalanced voltage of the Wheatstone bridge is always zero. In a hot wire type flow sensor that controls the temperature of the hot wire at a constant temperature by flowing the hot wire, and detects a control current as an air flow rate to keep the temperature change of the hot wire constant due to changes in the air flow rate in the tube, the hot wire is made of a metal with high thermal conductivity. A hot wire flow rate sensor characterized in that it is formed by winding a wire resistor in a coil around a rod-shaped or tubular support coated with an insulating film. 2 In the invention described in claim 1,
The hot wire flow sensor is characterized in that the insulating film is made of an inorganic material such as ceramic or glass.
JP56040349A 1981-03-23 1981-03-23 Hot wire type flow rate sensor Granted JPS57156523A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56040349A JPS57156523A (en) 1981-03-23 1981-03-23 Hot wire type flow rate sensor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56040349A JPS57156523A (en) 1981-03-23 1981-03-23 Hot wire type flow rate sensor

Publications (2)

Publication Number Publication Date
JPS57156523A JPS57156523A (en) 1982-09-27
JPH0237528B2 true JPH0237528B2 (en) 1990-08-24

Family

ID=12578154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56040349A Granted JPS57156523A (en) 1981-03-23 1981-03-23 Hot wire type flow rate sensor

Country Status (1)

Country Link
JP (1) JPS57156523A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0758211B2 (en) * 1983-02-18 1995-06-21 株式会社日立製作所 Intake air flow meter for automobile engine
JP2511426B2 (en) * 1986-10-08 1996-06-26 株式会社日立製作所 Hot wire air flow meter
US5020214A (en) * 1987-09-30 1991-06-04 Hitachi, Ltd. Method of manufacturing a hot wire air flow meter

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57149929A (en) * 1981-03-13 1982-09-16 Hitachi Ltd Temperature sensor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57149929A (en) * 1981-03-13 1982-09-16 Hitachi Ltd Temperature sensor

Also Published As

Publication number Publication date
JPS57156523A (en) 1982-09-27

Similar Documents

Publication Publication Date Title
US4523284A (en) Method of controlling internal combustion engine
EP0017219B1 (en) Electronic type engine control method and apparatus
US4310888A (en) Technique for controlling the starting operation of an electronic engine control apparatus
JPS6060024B2 (en) Engine control method
US4482962A (en) Engine control method
GB2054212A (en) Method of controlling air-fuel ratio for internal combustion engine
JPH0112931B2 (en)
US4564907A (en) Electronic control apparatus for internal combustion engine
JPS6350546B2 (en)
JPH0213137B2 (en)
US4501249A (en) Fuel injection control apparatus for internal combustion engine
JPS611847A (en) Internal-combustion engine control apparatus
JPH0237528B2 (en)
JPH0429860B2 (en)
JPH0217703B2 (en)
JPS5895214A (en) Signal processing method for hot-wire flow rate sensor
US4522178A (en) Method of fuel control in engine
JPS61155641A (en) Fuel injection amount control device
JPS5974339A (en) Fuel injector
JPH0118443B2 (en)
JPS61265334A (en) Method of controlling air-fuel ratio of internal combustion engine
JPS623302B2 (en)
JPH0118256B2 (en)
JPS6240645B2 (en)
KR840001328B1 (en) Method of controlling air-fuel ratio of internal combustion engine