Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPS6126082B2 - - Google Patents
[go: Go Back, main page]

JPS6126082B2 - - Google Patents

Info

Publication number
JPS6126082B2
JPS6126082B2 JP53157781A JP15778178A JPS6126082B2 JP S6126082 B2 JPS6126082 B2 JP S6126082B2 JP 53157781 A JP53157781 A JP 53157781A JP 15778178 A JP15778178 A JP 15778178A JP S6126082 B2 JPS6126082 B2 JP S6126082B2
Authority
JP
Japan
Prior art keywords
ignition
output
terminal
signal
energization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP53157781A
Other languages
Japanese (ja)
Other versions
JPS5582302A (en
Inventor
Susumu Akyama
Kenzo Ito
Hiroyasu Fukaya
Haruhiko Ogiso
Juji Hirabayashi
Takahide Kawamura
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.)
Denso Corp
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
NipponDenso Co 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 Toyota Motor Corp, NipponDenso Co Ltd filed Critical Toyota Motor Corp
Priority to JP15778178A priority Critical patent/JPS5582302A/en
Publication of JPS5582302A publication Critical patent/JPS5582302A/en
Publication of JPS6126082B2 publication Critical patent/JPS6126082B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Control Of The Air-Fuel Ratio Of Carburetors (AREA)
  • Exhaust Gas After Treatment (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Feedback Control In General (AREA)
  • Exhaust-Gas Circulating Devices (AREA)
  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
  • Magnetically Actuated Valves (AREA)
  • Flow Control (AREA)

Description

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

本発明は例えば自動車用エンジンの制御装置等
における駆動部材として用いるオン−オフ作動型
の電磁弁のデユーテイ比制御方法に関する。 一般に例えばエンジン制御装置においては吸気
量、単位時間当りの回転数、吸気負圧等の情報に
基づいてマイクロコンピユータの中央処理ユニツ
ト(CPU)にて制御対象の電磁弁の最適なオン
−オフ(ON−OFF)割合つまり目標デユーテイ
を計算し、この計算結果に基づいて電磁弁のオン
−オフを制御している。従来においては、この
CPUの計算値で電磁弁を制御する場合、第31
図に示すようにCPU60の計算値をCPU60か
らのセツト指令信号にてラツチ700に一時記憶
し、所定制御周期(例えば50ms)に対応するク
ロツク信号(例えば50msのクロツク)によつて
制御回路701からラツチ700の記憶内容(計
算値)をダウンカウンタ702にロード指令し、
その直後に制御回路701からダウンカウンタ7
02にダウンカウント開始指令しダウンカウンタ
702の内容が“0”でないとき、フリツプフロ
ツプ703をセツトし、ダウンカウンタ702に
おいて一定周期のダウンカウントクロツクにて計
算値をダウンカウントしていき、カウント終了信
号でフリツプフロツプ703をリセツトし、この
フリツプフロツプ703のQ出力信号で電磁弁を
制御するのが通常である。しかしこのものではラ
ツチ、ダウンカウンタ、制御回路を必要として回
路構成が複雑となる問題がある。一方、このよう
なラツチ、ダウンカウンタ、制御回路を廃止し、
直接CPUにダウンカウントの機能を実行させ、
CPUより直接に電磁弁のオンオフを制御させる
方法も考えられるが、この方法ではダウンカウン
トのための周期が小さいためCPUの処理能力か
らみて不可能であり、仮にダウンカウント処理を
実行させるとするとダウンカウントの周期は大き
くなり、電磁弁の制御応答の低下を招くという問
題がある。 本発明は上記点に鑑みてなされたものでオン−
オフ作動型の電磁弁のオンとオフとの割合を決定
する予め計算された目標デユーテイ比に基づいて
この電磁弁をオンにすべきか若しくはオフにすべ
きかを所定周期毎にCPUにて判別し、この判別
結果によりこの所定周期毎にこの電磁弁をオン若
しくはオフに制御することにより電磁弁のデユー
テイ比を制御する方法であつて、前記判別結果の
過去の一定な所定回転における前記電磁弁オンの
回転とオフの回転との割合が前記目標デユーテイ
比より大きいか小さいかを前記所定周期毎に比較
することによつて前記電磁弁をオンにすべきかオ
フにすべきかを前記所定周期毎に判別することを
特徴としており、CPUにて電磁弁のオンオフ制
御直接指令できることで回路の簡素化を可能にし
しかも電磁弁の制御応答を向上させることを目的
としたものである。 以下本発明の一実施例を図を参照しながら説明
していく。第1図は本発明を4気筒エンジンにつ
いて、適用した場合の全体の構成図を示す。1は
エンジンの吸入空気量を検出する吸気量センサで
例えばこの例では熱線式センサを用いたものであ
る。2は吸気温センサ、3はエンジン冷却水の温
度を検出する水温センサである。13はキヤブレ
ータであり、エアブリード制御用の電磁弁(以下
VSV)15がマイクロコンピユータ6からの指
令に基づきオン−オフ(ON−OFF)制御され、
つまりデユーテイ比が制御され、これによりエア
ブリード14に追加する空気量つまり混合気の空
燃比を制御する構成となつている。9,10,1
1,12は排気ガス再循環(以下EGR)を制御
する構成部品で、11はバキユームモジユレー
タ、10はEGR第1バルブ、9はEGR第2バル
ブ、12はEGR第2バルブ制御用の負圧切換電
磁弁(VSV)である。4はエンジン2回転に1
回転する従来のデイストリビユータで、ハウジン
グに回転(角)センサ5が内蔵されたものであ
る。コンピユータ6は回転センサ5及び吸気量セ
ンサ1の出力からエンジン状態を検知し、その時
点での最適のEGR率(EGR量/シリンダ内の全
ガス量)を内蔵記憶装置(ROM)から読み出
し、補間計算し、さらに吸気温センサ2、水温セ
ンサ3、コンピユータ内部に取り付けられた大気
圧センサ20の出力値に応じて補正する。この補
正されたEGR率を図示のEGRシステムで達成す
るためEGR第2バルブ9のダイアフラム室91
の圧力が目標最適EGR率に対応する計算値にな
るよう、EGR用VSV12をON(負圧を導入)
OFF(大気を導入)してフイードバツク制御す
る。EGR第2バルブ9の大気室96は大気に導
通しており、大気室96とダイアフラム室91と
の圧力差に応じて、バルブ97と一体化したダイ
アフラム92がスプリング91の反発力とつりあ
う位置まで動き、したがつてバルブ97は第1図
で右側に動き、排気マニホールドに接続されてい
る排気通路95から定圧室94を通じて吸気マニ
ホールドに排気が導入される。EGR第1バルブ
10及びバキユームモジユレータ11の作用によ
り定圧室94はほぼ一定圧(大気圧)に保持され
る。21はコンピユータ内部に取り付けられ実際
のEGR率つまりはEGR第2バルブ9のダイアフ
ラム室91内の圧力を検出するダイアフラム室圧
センサである。本例では点火系に従来の高圧分配
器を廃し、コイルを2個使用したデイスレスダブ
ルコイル方式を採用しており、8がイグナイタ、
7がイグニツシヨンコイルである。コンピユータ
6は回転センサ5及び吸気量センサ1の出力から
エンジン状態を検知し、その時点での最適の点火
角は内蔵記憶装置(ROM)から読み出し、補間
計算し、さらに水温センサの値、暖機時加速状
態、EGR率で補正し、通電時間はバツテリー電
圧によつてROMから読み出され、補間計算され
る。コンピユータ6はこの計算結果に従つて、回
転センサ5の信号を参照して実際の点火時期、通
電ON時期を実時間制御している。16はエンジ
ン、17はコンピユータ6の操作パネル、18は
コンピユータ用電源、19はバツテリー、22は
スタータスイツチを示す。 第2図に上記マイクロコンピユータ6を詳細に
説明するためのブロツク図を示す。60は点火時
期、EGR率(ダイアフラム室圧)等を算出する
中央処理ユニツト(CPU)でTI社製9900シリー
ズを用いている。71はプログラム、各エンジン
条件における最適の進角値、EGR率等を記憶し
ている読み出し専用記憶ユニツト(ROM)、70
はプログラムの動作中、使用される一時記憶ユニ
ツト(RAM)を示す。第1図に示した回転セン
サー5はエンジンクランクシヤフト2回転に1回
転するデイストリビユータシヤフトに取り付けら
れた円盤と電磁ピツクアツプから構成されてい
る。円盤は等間隔で円周方向にN→S→N…の順
に順次磁化されており、さらにTDC(エンジン
上死点)検出用に2個の磁石が互いに180゜の間
隔で埋め込まれている。したがつて2個のピツク
アツプ50,51の出力にはデイストリビユータ
1回転でクランク角信号として24個のパルスと
TDC信号として2個のパルスがえられる。この
ピツクアツプ出力の波形整形回路はデイストリビ
ユータ4に内蔵されており、コンピユータにはク
ランク角信号端子51、及びTDC信号端子50
から、それぞれ第3図のa及びbに示すような
TTLレベルの信号が入力される。 クランク角カウンタ部61はこの2つの信号に
よりクランクシヤフトの現在位置をCPU60に
転送する。CPU60はこの位置情報とタイマー
部62によりエンジン回転数を計算している。 吸気量センサー1、吸気温センサ2、エンジン
冷却水温センサ3、大気圧センサ20、ダイアフ
ラム室圧センサ21、バツテリー19からそれぞ
れ入力されるアナログ電圧信号はアナログ入力ポ
ート65でA/D変換され、DMA制御部66に
よりRAM70にDMA転送される。したがつて、
本例ではCPU60はA/D変換に直接関与せず
計算上必要となつた時点でRAM70のあらかじ
め定められたアドレスをアクセスすれば、必要な
最新データを利用できる。デイジタル入力ポート
64にはエンジン始動用のスタータが作動中であ
ることを示すスタータスイツチ22の信号と、そ
の他固定進角スイツチ等コンピユータ内に取りつ
けられた各パラメータ設定用スイツチ73の信号
とが入力されている。CPU60はROM71に記
憶されたプログラムに基づき、エンジンクランク
位置と同期して、点火時期、コイル通電開始時期
(通電時間)を計算し、その結果に基づいて通電
点火制御部69に通電、点火位置データを出力す
る。通電点火制御部69はこのデータとクランク
角信号に従つてイグナイタ8にON,OFF信号を
第3図iのように出力する。本例では点火用高電
圧の分配の必要ないいわゆるデイスレスダブルコ
イル方式であるため4気筒のうちの1,4気筒用
の第1イグナイタ80へのコイルB信号80と
2,3気筒用の第2イグナイタ81へのコイルA
信号を出力するようになつている。又、CPU6
0は時間に同期して計算された目標最適EGR率
とEGR第2バルブ9のダイアフラム室圧PD及び
大気圧PAから求めた現在(つまり実際)のEGR
率に従つてEGR(第2バルブ9の制御)用の
VSV12、並びにエアーブリード14の制御用
のVSV15をON,OFFするための信号をEGR
VSV駆動回路68、エアーブリードVSV駆動回
路67にそれぞれ出力する。割込み制御回路63
はクランク角同期、時間同期の処理を実現するた
めの割込み信号を発生させるためのものである。
72はCPUと上記各回路部との情報転送に使用
するコモンバスである。尚このシステムでは、
DMA制御部66を用いて、必要に応じて操作
(フロント)パネル17を接続することにより、
RAM70へのデータ書込み、ROM71,RAM
70のデータ読出しが可能となる。又CPUの状
態(RUN,HOLD)をフロントパネル17から
制御できるようになつている。 以下上記回路部のより詳細な内容を順次説明し
ていく。クランク角カウンタ部61の詳細回路図
を第4図に示す。クランク角カウンタ部61はエ
ンジンのクランクシヤフトの2回転に1回転する
通常のデイストリビユータ4のシヤフトに取り付
けられた回転センサ5のセンサ50,51により
発生する2つの信号5a,5bによりクランクシ
ヤフトの現在位置を12進で示すものである。回転
センサ5のクランク角信号5bはローパスフイル
タ106,107及びトランジスタ109、シユ
ミツド入力NAND素子111により整形されD型
フリツプフロツプ114(例えばTI社製
SN74LS74)に入力される。フリツプフロツプ1
14はCPU60からのクランク角READ命令に
よるデータ転送中にカウンタ125の内容がカウ
ントアツプにより変化するのを防ぐためのもの
で、クランク角READ中(信号端子401が論理
“0”)はクランク角信号5bの取り込みクロツク
400の供給をAND素子113により停止して
いる。フリツプフロツプ114のQ出力は同期式
4bitカウンタ125(例えばRCA社製
CD4520B)のCK(クロツク)端子に入力されて
いる。このカウンタ125は3進部の2bitカウン
タと4進部の2bitカウンタをNANDゲート12
8,124で直列接続したもので全体として(3
×4=)12進数のカウンタとして動作する。カウ
ンタ125の内容はクランクシヤフトの位置に対
応し、クランク角信号51のトレーリングエツジ
毎にカウントアツプされる。CPU60からのク
ランク角READ命令により、カウンタ125の内
容がバツフア126(例えばTI社製
SN74LS244)を通してデータバス404に出力
される。回転センサ5のセンサ50のTDC信号
5aはクランクシヤフトの#1,4気筒のTDC
位置を示す信号であり、クランクシヤフトが
#1,4気筒上死点を通過する毎に、第3図aに
示すごとく1パルスを出力している。このTDC
信号5aはクランク角信号5bと同様に、抵抗1
00、コンデンサ101,トランジスタ103、
シユミツト入力NAND素子105により波形整形
され、D型フリツプフロツプ118(例えば
RCA社製CD4013B)のD(データ入力)端子に
入力される。フリツプフロツプ118のCK端子
1はクランク角信号が入力され、Q出力はD型フ
リツプフロツプ119のD端子に接続されてい
る。したがつてTDC信号5aが論理“1”に反
転後の最初のクランク角信号のトレーリングエツ
ジでフリツプフロツプ119,120のNAND素
子121により1パルス(パルス幅はCK2信号4
07の周波数で決まる)を発生させ、カウンタ1
25をRESET(カウンタの内容=“0000”)す
る。すなわちTDCが“0000”に対応し、クラン
ク角90゜CAは“0100”に対応する。カウンタ1
25のRESETは、システムのイニシヤライズ信
号であるT.RESET信号402及びCPU60から
のRESET命令406からも行なわれる。尚、第
4図〜第13図までの回路図で*印のついたもの
はTTL論理素子、その他の論理素子はC−MOS
論理素子を使用している。これはCPU60が高
速で動作するため、インタフエースがC−MOS
では時間的に無理がある為である。 次にタイマー部62について第5図により説明
する。CPU60から端子400を介して供給さ
れる周波数3MHzのクロツクCK1はD型フリツプ
フロツプ200,201によつて3分周される。
このクロツクCK2はさらに4bitカウンタ202に
供給され、8分周された後、8bitカウンタ208
にクロツクとして供給される。8bitカウンタ20
7,208は16bitリアルタイムタイマーを構成
しており、0〜524280μsまでの時間とカウント
する。このタイマーは端子403を通してクラン
ク角カウンタ部61のクランク角パルスのリーデ
イングエツジにより8bitラツチ209,210
(例えばRCA社製CD4508B)にそのときの時間が
ラツチされる。ラツチされた時間はCPU60か
ら端子408を通して送られるタイマーREAD命
令によりバツフア211,212さらにデータバ
ス404を通じてCPU60に転送される。フリ
ツプフロツプ204,205は端子403の信号
のリーデイングエツジで2μsの幅のラツチ用ス
トローブパルスを出力する。3入力AND206
は16bitタイマー207,208のカウトアツプ
時とタイムラツチ時が重なるのを防ぐためのもの
で、カウンタ202のLSB出力が“0”のときは
ラツチのタイミングを最大1μs遅らせている。 次に第6図を参考にして割込み制御部63を説
明する。まず端子403よりクランク角信号が入
る度にギア割込フラグ(D型フリツプフロツプ)
302が“1”にsetされ、インバータバツフア
306をへて端子444を通してCPU60に割
込み要求信号を出す。この割込みが受けつけられ
ると後述するギア割込処理プログラムにより端子
440を通してCPU60からギア割込フラグは
resetされる。同様にギア割込プログラム中にプ
ログラム割込ポートが“1”にsetされると端子
441を通じてプログラム割込みフラグ(D型フ
リツプフロツプ)301がsetされ、CPU60に
割込み要求を送る。このフラグもCPU60から
の命令により端子442を通じてresetされる。
さらにタイマー部62の16bitタイマー207,
208から端子415を通じて供給された
8.192msのクロツクにより8ms割込みフラグCD型
フリツプフロツプ)がsetされ端子446により
CPU60に割込み要求が伝えられる。すなわち
この割込みは8.192msごとに生じ、ソフトウエア
のタイムベースとして使用される。この割込みも
CPU60からの命令によりresetされる。 次にDMA制御部66を第7図、第10図に示
す。端子409,410,411,412,41
3はCPU60に対してプログラムの実行を一時
停止させるためのHOLD要求信号(端子437)
を作るためのもので第5図のタイマー部62から
の出力信号が入力される。タイマー部62の
16bitリアルタイムタイマー207,208のビ
ツト2(端子413)及びビツト3(端子41
2)がともに“1”のときANDゲート603の
出力は“1”となる。すなわち第8図Oに示すよ
うな波形となる。同様に3入力AND605の出
力は第8図Pに示される通りである。尚、618
〜622,644〜646はCMOS入力保護用の
抵抗である。本例に示すDMAは8チヤンネルを
もつており、約1msごとに全てのチヤンネルと
RAM70間のデータ転送を行なう。8チヤンネ
ルのうち最初の7チヤンネル(第8図OでCH0
〜6)はA/D変換されたデータの転送用であり
最後の1チヤンネルCH7は操作パネル17との
データ転送に用いられる。A/D変換データの場
合、第8図Oで、最初の96μsecでA/D変換し
次の32μsecでデータ転送する。ANDゲート60
3が“1”になると、操作パネル17から、コン
ピユータへの外部HOLD要求信号がない場合(端
子427が“1”)、ANDゲート605の出力は
“0”(したがつて608の出力が“1”)となる
ため、レジスタ624(例えばTI社製74LS175)
のD入力が“1”となる。レジスタ624のCK
入力にはCPU60から3MHzのクロツクが端子4
26を通して供給されている。レジスタ624の
D入力が“1”に変化した直後は、レジスタ62
4のQ出力が“0”であるため、ANDゲート6
42の出力が“0”、NANDゲート601の出力
が“1”となり、レジスタ624のCK入力に3M
Hzクロツクがそのまま加わり、レジスタ624の
D入力が“1”に変化した次のクロツクで“1”
がレジスタ624にとまりこまれQ出力は第8図
qに示すごとく“1”となる。624のQ出力が
“1”になると、ANDゲート642の出力が
“1”に変化し、トライステート出力のNANDゲ
ート643(例えばTI社製74LS38)の出力が
“0”となり、CPU60に対し、DMA開始のため
のHOLD要求信号(“0”)を出力する。(第8図
t参照)CPU60は端子431からのこの
HOLD要求信号をそのとき実行しているマシンサ
イクルの終了後、受けつけ端子425にHOLDA
信号“1”を出力する。(第8図u)。端子437
が“0”でHOLD要求信号が出力されていて
HOLDA端子425信号が“1”になるまでは
NANDゲート601の出力が“0”の為、3MHz
クロツク(端子426)はレジスタ625のCK
端子に供給されない。HOLDAが“1”になると
レジスタ625のCK端子にクロツクが入力さ
れ、“1”がレジスタ625に取りこまれ、Q出
力は“1”となる。さらに次のクロツクでレジス
タ626のQ出力が“1”、その次のクロツクで
レジスタ627の出力が“0”となる。レジス
タ627の出力が“0”になるとNANDゲート
643の出力は“ハイインピーダンス”となり、
HOLD要求が解除され、DMAサイクルが完了す
る。HOLDA信号が“1”になると、ANDゲート
638が“1”となり、トライステート出力
NANDゲート641の出力が、HOLD要求信号
が“0”、HOLDA信号が“1”期間中だ
け“0”となり、第8図vに示すようにRAM7
0にメモリー使用選択信号(、436)
を出す。 さらにレジスタ625のQ出力が“1”、レジ
スタ626の出力が“1”の時だけ、ANDゲ
ート639が“1”となり、CH0〜CH6が選択
されている間は3入力ANDゲート605の出力
は“0”であるから、インバータ612の出力は
“1”であり、トライステートNANDゲート64
0には第8図wに示すようにメモリーのRAM7
0へのWRiTE信号(、端子435)が出力
される。また、メモリー使用選択信号が
“0”の間は、NANDゲート628の出力、すな
わちメモリーへのREAD信号(DBiN、端子43
1)は“0”である。HOLDA信号が“1”の間
(DMAサイクル中)は、CPu60は停止してお
り、、DBiN、等の制御ライン、アド
レスバス、データバスのCPu側からのドライブは
“ハイインピーダンス”状態にある。したがつて
この間はDMA制御部66からRAM70に対して
直接データ転送を行なう。CH0〜CH6のA/D
変換データの転送の場合、インバータ606の出
力は“1”であり、端子420、すなわちNAND
ゲート629の出力には、第8図vのと
同様な信号が出力され、その信号は第9図のA/
D変換データレジスタ、518,519第10図
のA/D変換アドレスレジスタ530,531の
ストローブ入力1,2に加えられている。つ
まりが“0”の期間、A/D変換された
データはデータバス404上に出力され、また
CH0〜CH6に対応するアドレスがアドレスバス
440上に出力される。これらバス上に出力され
たデータは信号により、RAM70に書き込
まれる。操作パネル17からの外部HOLD要求信
号(端子427)がある(“1”)場合にはCH0
〜CH6のA/D変換DMAサイクルは行なわれな
い。すなわち、NANDゲート607の出力が
“0”となり、ANDゲート603の出力が“1”
となつてもレジスタ624のD入力は“0”の状
態のままであるためDMAサイクルは開始されな
い。次に操作(フロント)パネル17とRAM7
0とのデータ転送を行なうCH7のDMAサイクル
を説明する。端子428はフロントパネルからの
R/W信号、端子429はデータ転送要求信号、
端子430は連続READ信号、端子414はタイ
マー部62から供給される128msのクロツク信号
である。まず、操作パネル17からRAM70へ
データ書込み要求が生じた場合、端子428,4
29,430は“0”となる。ANDゲート60
5及び603の出力が“1”、(第8図O,P)と
なり、CH7のDMAサイクルが開始される。レジ
スタ615,616により、端子429の“1”
から“0”への立ち上がりで幅10msの正極性パ
ルスがANDゲート617の出力に一つ生ずる。
このパルスはNANDゲート609で128μsの負
極性パルスとなり、NAND608,AND604
をへてレジスタ624のD入力に32μsの正極性
パルスとして入力される。操作パネル17から
RAM70へのWRITE要求の場合、,
HOLDA,,,DBiNの各制御ライン
は、前記A/D変換データのDMAデータ転送と
まつたく同様に駆動される。(第8図t〜w)さ
らに操作(フロント)パネル17に対し、RAM
70に転送すべきアドレス、データを格納してい
るレジスタの内容をそれぞれアドレスバス、デー
タバス上に出力させる信号端子434,432に
が“0”の期間、第8図xに示すように
正極性のパルスを出力する。 操作パネル17からRAM70,ROM71に対
するデータ読込み要求があつたときは、端子42
9,430が“0”、428が“1”となる。こ
の場合のDMAサイクルでは、コンピユータ制御
ラインのうち信号(端子435)はメモリ使
用選択信号信号(端子436)が“0”
である期間も“1”のままであるかわりに、
ANDゲート611の出力は“1”であるため、
DBiN信号(端子431)が“1”である。その
他の制御ライン,HOLDA,,に
ついては、前記A/D変換データの転送サイク
ル、フロントパネルからのデータ書込みサイクル
と同様である。連続READ信号(端子430)が
“1”のときは、NAND613の出力は128msの
クロツクが発生する。これはNANDゲート614
により、128msごとのフロントパネル17から
RAM70,ROM71に対するデータ読込み要求
と等価なので、128msに1回、RAM70,ROM
71からフロントパネル17へDMAデータ転送
サイクルが、前記のごとく生じる。尚、フロント
パネル17よりのDMAサイクルは外部HOLD要
求信号(端子427)があつても実行される。 次に、アナログ入力ポート65について第9図
を参照しながら説明する。各センサーの入力端子
1〜3,19〜21のすぐ後に接続された抵抗と
コンデンサのフイルター500〜513は、信号
ラインに重畳している雑音成分を除去するための
もので、ある。6つのセンサ入力は8チヤンネル
のマルチプレクサ514(例えば、CD4051B)
の入力C0〜C5にそれぞれ接続され、そのうち
の1つの入力がアドレス入力A,B,Cのレベル
により選択される。すなわち、例えばA,B,C
が“0”“0”“0”のときC0入力が整ばれ、
“1”“0”“0”のときC1入力が選ばれる。マ
ルチプレクサ514のアドレス入力A,B,Cは
レベルコンバータ(例えばCD40109B)515を
へて、タイマー部62のリアルタイムタイマー2
07,208に接続されている。したがつて、
128μsごとにC0→C1→C2→……C0を選
択されるチヤンネルがスイツチされ、1つのチヤ
ンネルは1msに1回選択される。端子421もリ
アルタイムタイマー207,208に接続されて
おり、64μsのクロツクを発生する。すなわちマ
ルチプレクサ514のアドレスがスイツチされる
と同時に端子412は“0”から“1”に立ち上
がる。そのときインバータ520,524,
NAND素子523,抵抗521,コンデンサ52
2により数μsのA/Dスタートパルスが発生
し、遂次比較型A/Dコンバータ517(例えば
Bur Brown社製ADC80AG)のCONV・CMD端子
に入力され、A/D変換が始まる。マルチプレク
サ514の出力にはアドレス入力A,B,Cの値
に応じて選択された1つの入力がそのまま出力さ
れオペアンプ516(例えば日本電気製μ
PC151A)による電流増幅後、A/Dコンバータ
517のアナログ入力端子に入力される。A/D
コンバータ517はCON・CMD端子に変換スタ
ート信号が印加された後、約40μsかけて前記ア
ナログ入力を12bitデイジタルデータに変換し、
B0〜B11に出力する。変換されたデイジタル
データは前記DMA制御部66により、変換スタ
ート信号印加後96μs後に始まるDMAデータ転
送サイクルでP.AM70の選択されたチヤンネル
に対応するアドレスにB0〜B11の12bitデー
タがバツフア518,519を通じて書き込まれ
る。 次に通電点火制御部69を第11図、第12図
及び第3図により詳述する。CPu60はクランク
角カウンタ部61からの情報及びクランク角信号
が入る度に生じる割込み(ギヤ割込み)によりク
ランクシヤフトの現在位置を360÷12=30(゜
CA)の精度で認識している。プログラムにより
計算された最適な通電時期点火時期をどのように
して実現するかを#1,4気筒について説明す
る。#2,3気筒についても同様に説明できる。
まず通電については、最適通電角θを次式に示す
ように分解する。
The present invention relates to a duty ratio control method for an on-off type solenoid valve used as a drive member in, for example, a control device for an automobile engine. In general, for example, in an engine control device, the central processing unit (CPU) of a microcomputer selects the optimum on/off (ON -OFF) ratio, that is, the target duty, is calculated, and the on/off of the solenoid valve is controlled based on this calculation result. Conventionally, this
When controlling the solenoid valve using the calculated value of the CPU, the 31st
As shown in the figure, the calculated value of the CPU 60 is temporarily stored in the latch 700 in response to a set command signal from the CPU 60, and is output from the control circuit 701 in response to a clock signal (for example, a 50 ms clock) corresponding to a predetermined control cycle (for example, 50 ms). Instructs the down counter 702 to load the memory contents (calculated value) of the latch 700,
Immediately after that, the down counter 7 is sent from the control circuit 701.
02, and when the contents of the down counter 702 are not "0", the flip-flop 703 is set, and the down counter 702 counts down the calculated value with a down count clock of a constant cycle, and then outputs a count end signal. Normally, the flip-flop 703 is reset and the Q output signal of the flip-flop 703 is used to control the solenoid valve. However, this method requires a latch, a down counter, and a control circuit, resulting in a complicated circuit configuration. On the other hand, by eliminating such latches, down counters, and control circuits,
Directly executes the down count function on the CPU,
It is also possible to directly control the on/off of the solenoid valve from the CPU, but this method is impossible in terms of the processing capacity of the CPU because the down-counting cycle is small. There is a problem in that the counting period increases, leading to a decrease in the control response of the solenoid valve. The present invention has been made in view of the above points.
The CPU determines whether the solenoid valve should be turned on or off at predetermined intervals based on a pre-calculated target duty ratio that determines the ratio between on and off of the off-actuated solenoid valve, A method for controlling the duty ratio of a solenoid valve by controlling the solenoid valve to turn on or off at each predetermined period based on the determination result, the method comprising: controlling the duty ratio of the solenoid valve by controlling the solenoid valve to turn on or off at each predetermined cycle, It is determined at each predetermined period whether the solenoid valve should be turned on or off by comparing at each predetermined period whether the ratio of rotation to off rotation is larger or smaller than the target duty ratio. This feature allows the CPU to directly issue on/off control commands for the solenoid valve, which enables the simplification of the circuit and improves the control response of the solenoid valve. An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 shows an overall configuration diagram when the present invention is applied to a four-cylinder engine. Reference numeral 1 denotes an intake air amount sensor for detecting the intake air amount of the engine, and for example, in this example, a hot wire type sensor is used. 2 is an intake air temperature sensor, and 3 is a water temperature sensor that detects the temperature of engine cooling water. 13 is a carburetor, which is a solenoid valve for air bleed control (hereinafter referred to as
VSV) 15 is controlled on-off (ON-OFF) based on commands from the microcomputer 6,
In other words, the duty ratio is controlled, thereby controlling the amount of air added to the air bleed 14, that is, the air-fuel ratio of the air-fuel mixture. 9,10,1
1 and 12 are components that control exhaust gas recirculation (hereinafter referred to as EGR), 11 is a vacuum modulator, 10 is an EGR first valve, 9 is an EGR second valve, and 12 is a component for controlling the EGR second valve. This is a negative pressure switching solenoid valve (VSV). 4 is 1 for every 2 revolutions of the engine
This is a conventional rotating distributor with a rotation (angle) sensor 5 built into the housing. The computer 6 detects the engine condition from the outputs of the rotation sensor 5 and the intake air amount sensor 1, reads the optimal EGR rate (EGR amount/total gas amount in the cylinder) at that time from the built-in storage device (ROM), and interpolates it. It is calculated and further corrected according to the output values of the intake air temperature sensor 2, the water temperature sensor 3, and the atmospheric pressure sensor 20 installed inside the computer. In order to achieve this corrected EGR rate with the EGR system shown, the diaphragm chamber 91 of the second EGR valve 9
Turn on the EGR VSV12 (introduce negative pressure) so that the pressure becomes the calculated value corresponding to the target optimal EGR rate.
Turn off (introduce atmosphere) and perform feedback control. The atmospheric chamber 96 of the second EGR valve 9 is in communication with the atmosphere, and depending on the pressure difference between the atmospheric chamber 96 and the diaphragm chamber 91, the diaphragm 92 integrated with the valve 97 reaches a position where it balances the repulsive force of the spring 91. 1, so that the valve 97 moves to the right in FIG. 1, and exhaust gas is introduced from the exhaust passage 95 connected to the exhaust manifold through the constant pressure chamber 94 into the intake manifold. The constant pressure chamber 94 is maintained at a substantially constant pressure (atmospheric pressure) by the actions of the EGR first valve 10 and the vacuum modulator 11. A diaphragm chamber pressure sensor 21 is installed inside the computer and detects the actual EGR rate, that is, the pressure inside the diaphragm chamber 91 of the second EGR valve 9. In this example, the ignition system eliminates the conventional high-voltage distributor and adopts a dayless double coil system using two coils, 8 being the igniter,
7 is the ignition coil. The computer 6 detects the engine condition from the outputs of the rotation sensor 5 and the intake air amount sensor 1, reads out the optimum ignition angle at that point from the built-in storage device (ROM), performs interpolation calculations, and also calculates the optimum ignition angle based on the value of the water temperature sensor and the warm-up angle. The time acceleration state and EGR rate are corrected, and the energization time is read from the ROM based on the battery voltage and calculated by interpolation. In accordance with this calculation result, the computer 6 refers to the signal from the rotation sensor 5 to control the actual ignition timing and energization ON timing in real time. 16 is an engine, 17 is an operation panel for the computer 6, 18 is a power source for the computer, 19 is a battery, and 22 is a starter switch. FIG. 2 shows a block diagram for explaining the microcomputer 6 in detail. 60 is a central processing unit (CPU) that calculates ignition timing, EGR rate (diaphragm chamber pressure), etc., and uses the 9900 series manufactured by TI. 71 is a read-only memory unit (ROM) that stores programs, optimum advance angle values for each engine condition, EGR rate, etc.;
indicates the temporary storage unit (RAM) used during program operation. The rotation sensor 5 shown in FIG. 1 is composed of a disc attached to a distributor shaft that rotates once every two revolutions of the engine crankshaft, and an electromagnetic pickup. The discs are magnetized in the order of N→S→N at equal intervals in the circumferential direction, and two magnets are embedded at 180 degrees from each other for TDC (engine top dead center) detection. Therefore, the outputs of the two pickups 50 and 51 contain 24 pulses as a crank angle signal for one revolution of the distributor.
Two pulses are obtained as the TDC signal. This pickup output waveform shaping circuit is built into the distributor 4, and the computer has a crank angle signal terminal 51 and a TDC signal terminal 50.
, as shown in Figure 3 a and b, respectively.
A TTL level signal is input. The crank angle counter section 61 transfers the current position of the crankshaft to the CPU 60 using these two signals. The CPU 60 calculates the engine rotation speed using this position information and the timer section 62. Analog voltage signals input from the intake air amount sensor 1, intake air temperature sensor 2, engine coolant temperature sensor 3, atmospheric pressure sensor 20, diaphragm room pressure sensor 21, and battery 19 are A/D converted at the analog input port 65, and then converted to DMA. The control unit 66 performs DMA transfer to the RAM 70. Therefore,
In this example, the CPU 60 is not directly involved in A/D conversion, and can utilize the latest data required by accessing a predetermined address in the RAM 70 when necessary for calculation. The digital input port 64 receives a signal from the starter switch 22 indicating that the starter for starting the engine is in operation, and signals from other parameter setting switches 73 installed in the computer, such as a fixed advance angle switch. ing. Based on the program stored in the ROM 71, the CPU 60 calculates the ignition timing and coil energization start timing (energization time) in synchronization with the engine crank position, and based on the results, energizes the energization ignition control section 69 and provides ignition position data. Output. The energization ignition control section 69 outputs ON and OFF signals to the igniter 8 as shown in FIG. 3i in accordance with this data and the crank angle signal. In this example, since the so-called dayless double coil method is used, which does not require distribution of high voltage for ignition, the coil B signal 80 is sent to the first igniter 80 for the first and fourth cylinders among the four cylinders, and the coil B signal 80 is sent to the first igniter 80 for the second and third cylinders. Coil A to 2 igniter 81
It is designed to output a signal. Also, CPU6
0 is the current (actual) EGR determined from the target optimal EGR rate calculated in synchronization with time, the diaphragm chamber pressure PD of the second EGR valve 9, and the atmospheric pressure PA.
for EGR (control of second valve 9) according to the rate.
EGR signal to turn on and off VSV12 and VSV15 for controlling air bleed 14.
It outputs to a VSV drive circuit 68 and an air bleed VSV drive circuit 67, respectively. Interrupt control circuit 63
is for generating an interrupt signal to realize crank angle synchronization and time synchronization processing.
72 is a common bus used for information transfer between the CPU and each of the above circuit sections. Furthermore, in this system,
By using the DMA control unit 66 and connecting the operation (front) panel 17 as necessary,
Writing data to RAM70, ROM71, RAM
70 data can be read. Further, the state of the CPU (RUN, HOLD) can be controlled from the front panel 17. More detailed contents of the above-mentioned circuit section will be sequentially explained below. A detailed circuit diagram of the crank angle counter section 61 is shown in FIG. The crank angle counter section 61 uses two signals 5a and 5b generated by the sensors 50 and 51 of the rotation sensor 5 attached to the shaft of the normal distributor 4, which rotates once every two revolutions of the crankshaft of the engine. This shows the current position in decimal notation. The crank angle signal 5b of the rotation sensor 5 is shaped by low-pass filters 106, 107, a transistor 109, and a semiconductor input NAND element 111, and is shaped by a D-type flip-flop 114 (for example, manufactured by TI).
SN74LS74). flipflop 1
14 is for preventing the contents of the counter 125 from changing due to count-up during data transfer by the crank angle READ command from the CPU 60. During the crank angle READ (signal terminal 401 is logic "0"), the crank angle signal is 5b's input clock 400 is stopped by the AND element 113. The Q output of flip-flop 114 is synchronous.
4bit counter 125 (for example, manufactured by RCA)
CD4520B) is input to the CK (clock) terminal. This counter 125 is a 2-bit counter in the ternary part and a 2-bit counter in the quaternary part by the NAND gate 12.
8,124 connected in series, total (3
×4=) Operates as a decimal counter. The contents of counter 125 correspond to the position of the crankshaft and are counted up at each trailing edge of crank angle signal 51. A crank angle READ command from the CPU 60 causes the contents of the counter 125 to be changed to the buffer 126 (for example, manufactured by TI).
SN74LS244) is output to the data bus 404. The TDC signal 5a of the sensor 50 of the rotation sensor 5 is the TDC of the #1 and #4 cylinders of the crankshaft.
This is a signal indicating the position, and one pulse is output as shown in Fig. 3a every time the crankshaft passes the top dead center of the #1 and #4 cylinders. This TDC
Similar to the crank angle signal 5b, the signal 5a is connected to the resistor 1.
00, capacitor 101, transistor 103,
The waveform is shaped by the Schmitt input NAND element 105, and the D-type flip-flop 118 (for example
It is input to the D (data input) terminal of the RCA CD4013B). A crank angle signal is input to the CK terminal 1 of the flip-flop 118, and the Q output is connected to the D terminal of the D-type flip-flop 119. Therefore, at the trailing edge of the first crank angle signal after the TDC signal 5a is inverted to logic "1", the NAND element 121 of the flip-flops 119 and 120 generates one pulse (the pulse width is equal to the CK2 signal 4).
(determined by the frequency of 07), and counter 1
25 (counter contents = “0000”). In other words, TDC corresponds to "0000" and crank angle 90°CA corresponds to "0100". counter 1
25 is also performed from the T.RESET signal 402, which is a system initialization signal, and the RESET command 406 from the CPU 60. In the circuit diagrams from Figures 4 to 13, the ones marked with an * are TTL logic elements, and the other logic elements are C-MOS.
It uses logic elements. This is because the CPU60 operates at high speed, so the interface is C-MOS.
This is because it is not possible due to time constraints. Next, the timer section 62 will be explained with reference to FIG. A clock CK 1 with a frequency of 3 MHz supplied from the CPU 60 via the terminal 400 is divided by three by the D-type flip-flops 200 and 201.
This clock CK 2 is further supplied to a 4-bit counter 202, divided by 8, and then sent to an 8-bit counter 208.
supplied as a clock. 8bit counter 20
7,208 constitutes a 16-bit real-time timer, which counts time from 0 to 524280 μs. This timer is activated by the 8-bit latch 209, 210 by the leading edge of the crank angle pulse of the crank angle counter section 61 through the terminal 403.
(For example, RCA CD4508B) at that time is latched. The latched time is transferred to the CPU 60 through the buffers 211, 212 and the data bus 404 in response to a timer READ command sent from the CPU 60 through the terminal 408. Flip-flops 204 and 205 output a 2 μs wide latch strobe pulse at the leading edge of the signal at terminal 403. 3 input AND206
This is to prevent the count-up time and time latch time of the 16-bit timers 207 and 208 from overlapping, and when the LSB output of the counter 202 is "0", the latch timing is delayed by a maximum of 1 μs. Next, the interrupt control section 63 will be explained with reference to FIG. First, every time a crank angle signal is input from terminal 403, a gear interrupt flag (D-type flip-flop)
302 is set to "1", and an interrupt request signal is output to the CPU 60 through the inverter buffer 306 and the terminal 444. When this interrupt is accepted, the gear interrupt flag is sent from the CPU 60 through the terminal 440 by the gear interrupt processing program described later.
will be reset. Similarly, when the program interrupt port is set to "1" during the gear interrupt program, the program interrupt flag (D flip-flop) 301 is set through the terminal 441, and an interrupt request is sent to the CPU 60. This flag is also reset through the terminal 442 by a command from the CPU 60.
Furthermore, the 16 bit timer 207 of the timer section 62,
208 through terminal 415
The 8.192ms clock sets the 8ms interrupt flag (CD type flip-flop), and the
An interrupt request is transmitted to the CPU 60. That is, this interrupt occurs every 8.192ms and is used as a time base for the software. This interrupt also
It is reset by an instruction from the CPU 60. Next, the DMA control section 66 is shown in FIGS. 7 and 10. Terminals 409, 410, 411, 412, 41
3 is a HOLD request signal (terminal 437) for the CPU 60 to temporarily stop program execution.
The output signal from the timer section 62 shown in FIG. 5 is inputted thereto. of the timer section 62
Bit 2 (terminal 413) and bit 3 (terminal 41) of the 16-bit real-time timers 207 and 208
2) are both "1", the output of the AND gate 603 becomes "1". That is, the waveform becomes as shown in FIG. 8O. Similarly, the output of the 3-input AND 605 is as shown in FIG. 8P. In addition, 618
~622, 644~646 are resistors for CMOS input protection. The DMA shown in this example has 8 channels, and all channels are connected every 1 ms.
Transfers data between RAMs 70. The first 7 channels out of 8 channels (CH0 in O in Figure 8)
-6) are for transferring A/D converted data, and the last channel CH7 is used for data transfer with the operation panel 17. In the case of A/D converted data, A/D conversion is performed in the first 96 μsec and the data is transferred in the next 32 μsec, as shown in FIG. 8O. AND gate 60
3 becomes "1", if there is no external HOLD request signal from the operation panel 17 to the computer (terminal 427 is "1"), the output of AND gate 605 becomes "0" (therefore, the output of 608 becomes "0"). 1”), so register 624 (for example, 74LS175 manufactured by TI)
The D input of becomes "1". CK of register 624
For input, 3MHz clock from CPU60 is connected to terminal 4.
26. Immediately after the D input of the register 624 changes to “1”, the register 624
Since the Q output of 4 is “0”, AND gate 6
The output of NAND gate 601 becomes “0”, the output of NAND gate 601 becomes “1”, and 3M is input to the CK input of register 624.
The Hz clock is added as is, and the D input of register 624 changes to "1" at the next clock.
is stored in the register 624, and the Q output becomes "1" as shown in FIG. 8q. When the Q output of 624 becomes "1", the output of AND gate 642 changes to "1", and the output of tri-state output NAND gate 643 (for example, 74LS38 manufactured by TI) becomes "0", which causes the CPU 60 to Outputs a HOLD request signal (“0”) for starting DMA. (See Figure 8 t) The CPU 60 receives this signal from the terminal 431.
The HOLD request signal is sent to the receiving terminal 425 after the end of the machine cycle currently being executed.
Outputs signal “1”. (Figure 8 u). terminal 437
is “0” and the HOLD request signal is output.
Until the HOLDA terminal 425 signal becomes “1”
3MHz because the output of NAND gate 601 is “0”
The clock (terminal 426) is the CK of register 625.
Not supplied to terminal. When HOLDA becomes "1", a clock is input to the CK terminal of the register 625, "1" is taken into the register 625, and the Q output becomes "1". Further, at the next clock, the Q output of the register 626 becomes "1", and at the next clock, the output of the register 627 becomes "0". When the output of the register 627 becomes "0", the output of the NAND gate 643 becomes "high impedance",
The HOLD request is released and the DMA cycle is completed. When the HOLDA signal becomes "1", the AND gate 638 becomes "1" and the tri-state output
The output of the NAND gate 641 becomes "0" only while the HOLD request signal is "0" and the HOLDA signal is "1", and as shown in FIG.
Memory use selection signal to 0 (, 436)
issue. Furthermore, only when the Q output of the register 625 is "1" and the output of the register 626 is "1", the AND gate 639 becomes "1", and while CH0 to CH6 are selected, the output of the 3-input AND gate 605 is Since it is “0”, the output of the inverter 612 is “1”, and the tristate NAND gate 64
0 is the memory RAM7 as shown in Figure 8 w.
The WRiTE signal (, terminal 435) to 0 is output. In addition, while the memory use selection signal is "0", the output of the NAND gate 628, that is, the READ signal to the memory (DBiN, terminal 43
1) is “0”. While the HOLDA signal is "1" (during a DMA cycle), the CPU 60 is stopped, and the drives from the CPU side of control lines such as , DBiN, address bus, and data bus are in a "high impedance" state. Therefore, during this period, data is transferred directly from the DMA control unit 66 to the RAM 70. A/D of CH0~CH6
In the case of transfer of conversion data, the output of the inverter 606 is “1” and the output of the inverter 606 is “1”, and the output of the inverter 606 is “1”,
The output of the gate 629 is a signal similar to that shown in FIG.
D conversion data registers 518 and 519 are added to strobe inputs 1 and 2 of A/D conversion address registers 530 and 531 in FIG. In other words, the A/D converted data is output on the data bus 404 during the period when the
Addresses corresponding to CH0 to CH6 are output onto address bus 440. The data output on these buses is written into the RAM 70 by signals. CH0 when there is an external HOLD request signal (terminal 427) from the operation panel 17 (“1”)
~CH6 A/D conversion DMA cycle is not performed. In other words, the output of the NAND gate 607 becomes "0" and the output of the AND gate 603 becomes "1".
Even so, the D input of register 624 remains in the "0" state, so the DMA cycle is not started. Next, the operation (front) panel 17 and RAM 7
The DMA cycle of CH7 that performs data transfer with 0 will be explained. Terminal 428 is an R/W signal from the front panel, terminal 429 is a data transfer request signal,
Terminal 430 is a continuous READ signal, and terminal 414 is a 128 ms clock signal supplied from timer section 62. First, when a data write request occurs from the operation panel 17 to the RAM 70, the terminals 428, 4
29,430 becomes "0". AND gate 60
The outputs of 5 and 603 become "1" (O, P in FIG. 8), and the DMA cycle of CH7 is started. The registers 615 and 616 set the terminal 429 to “1”.
One positive pulse with a width of 10 ms is generated at the output of the AND gate 617 at the rise from to "0".
This pulse becomes a 128μs negative polarity pulse at the NAND gate 609, and the NAND608, AND604
The signal is then input to the D input of the register 624 as a 32 μs positive pulse. From the operation panel 17
In the case of a WRITE request to RAM70,
Each of the control lines HOLDA, . (Fig. 8 t to w) Furthermore, for the operation (front) panel 17, the RAM
During the period when the signal terminals 434 and 432, which output the contents of the register storing the address and data to be transferred to the address bus and the data bus respectively, are "0", the polarity is positive as shown in FIG. 8x. outputs a pulse of When a data read request is received from the operation panel 17 to the RAM 70 or ROM 71, the terminal 42
9,430 becomes "0" and 428 becomes "1". In the DMA cycle in this case, the signal (terminal 435) on the computer control line is set to "0" as the memory use selection signal (terminal 436).
Instead of remaining “1” for a period of time,
Since the output of AND gate 611 is “1”,
The DBiN signal (terminal 431) is "1". The other control lines HOLDA, . . . are the same as the A/D conversion data transfer cycle and the data write cycle from the front panel. When the continuous READ signal (terminal 430) is "1", the output of the NAND 613 generates a 128 ms clock. This is NAND gate 614
From front panel 17 every 128ms
This is equivalent to a data read request to RAM70 and ROM71, so once every 128ms, RAM70 and ROM
A DMA data transfer cycle from 71 to front panel 17 occurs as described above. Incidentally, the DMA cycle from the front panel 17 is executed even if there is an external HOLD request signal (terminal 427). Next, the analog input port 65 will be explained with reference to FIG. Filters 500 to 513 made of resistors and capacitors connected immediately after the input terminals 1 to 3 and 19 to 21 of each sensor are for removing noise components superimposed on the signal line. The six sensor inputs are connected to an eight-channel multiplexer 514 (e.g. CD4051B).
are connected to inputs C0 to C5, respectively, and one of the inputs is selected by the level of address inputs A, B, and C. That is, for example, A, B, C
When is “0”, “0”, “0”, C0 input is set,
When it is "1", "0", or "0", the C1 input is selected. The address inputs A, B, and C of the multiplexer 514 pass through a level converter (for example, CD40109B) 515 and are connected to the real-time timer 2 of the timer section 62.
It is connected to 07,208. Therefore,
The selected channels are switched in the order C0→C1→C2→...C0 every 128 μs, and one channel is selected once every 1 ms. Terminal 421 is also connected to real time timers 207 and 208 and generates a 64 μs clock. That is, at the same time as the address of multiplexer 514 is switched, terminal 412 rises from "0" to "1". At that time, inverters 520, 524,
NAND element 523, resistor 521, capacitor 52
2, an A/D start pulse of several μs is generated, and the sequential comparison type A/D converter 517 (e.g.
It is input to the CONV/CMD terminal of Bur Brown's ADC80AG) and A/D conversion begins. One input selected according to the values of address inputs A, B, and C is output as is to the output of the multiplexer 514, and the operational amplifier 516 (for example, NEC μ
After current amplification by the PC 151A), the current is input to the analog input terminal of the A/D converter 517. A/D
After the conversion start signal is applied to the CON/CMD terminal, the converter 517 converts the analog input into 12-bit digital data in about 40 μs,
Output to B0 to B11. The converted digital data is transferred to buffers 518, 519 of 12 bit data of B0 to B11 at the address corresponding to the selected channel of P.AM 70 in a DMA data transfer cycle starting 96 μs after application of the conversion start signal by the DMA control unit 66. written through. Next, the energization ignition control section 69 will be explained in detail with reference to FIGS. 11, 12, and 3. The CPU 60 calculates the current position of the crankshaft by using information from the crank angle counter 61 and an interrupt (gear interrupt) that occurs every time a crank angle signal is input.
It is recognized with the accuracy of CA). How to achieve the optimal energization timing and ignition timing calculated by the program will be explained for the #1 and #4 cylinders. The same explanation can be given for #2 and #3 cylinders.
First, regarding energization, the optimum energization angle θ is decomposed as shown in the following equation.

【表】 θ:通電角 θ:30゜CA単位でCPuの認識できる通電開
始クランク角(0〜11(30゜CA)すな
わち回転角センサー5の各ギア位置と対
応 θ:30゜CA以下の端数 τ:30゜CA以下の端数θをそのときの回転
数Nに基づき8μsの単位で時間に換算
したもの。 そして、上式により算出されたギア位置θ
り1つ手前のギア位置(θ−1)で生じた前記
ギア割込みにおいてCPu60は第3図Cの如く
#1,4コイル通電命令(端子453)及び通電
ダウンカウンタ値セツト命令(端子450)を出
力する。端子453に印加されたパルスはインバ
ータ908により反転し、フリツプフロツプ90
9をセツトする。また端子450に印加されたパ
ルスにより、そのとき同時にデータバス404に
CPuから出力されたiの内容が16bit通電ダウン
カウンタ900,901にセツトされる。90
0,901はそれぞれ8bitのダウンカウンタ(例
えばRCA社製CD40103B)で直列に接続して
16bitダウンカウンタを構成している。この16bit
のダウンカウント値は8μsの精度で0〜
0.52428secの値が可能である。したがつて3rpm
程度の回転数までオーバーフローなしに1義的に
ダウンカウントが可能である。フリツプフロツプ
909がセツトされると出力は“0”となり
NANDゲート910の出力、すなわちD型フリツ
プフロツプ911のD入力は“1”となる。フリ
ツプフロツプ911のCK(クロツク)入力は端
子403を通してクランク角信号に接続されてい
るので、#1,4コイル通電命令及び通電ダウン
カウンタ値セツト命令の出力後、次のクランク角
パルスでフリツプフロツプ911はセツトされ
る。第3図dはフリツプフロツプ911のQ出力
の信号波形を示す。フリツプフロツプ911がセ
ツトされると出力は“0”となるのでダウンカ
ウンタ900,901はダウンカウント可能とな
り又、4ビツト分周器925のリセツト入力を解
除するのでダウンカウンタ900,901のCK
入力にダウンカウント用クロツクが供給され、ダ
ウントが開始される。分周器925(例えば
RCA社製CD4520B)はタイマー部62の4bitダ
ウンカウンタ202から端子455により2μs
のクロツクの供給を受け、これを4分周して8μ
sのダウンカウントクロツクを発生させている。
リアルタイムタイマー207,208から直接8
μsのクロツクを利用していないのは、精度、特
にτ=0,1のときの精度を確実にするためであ
る。さて、16bitダウンカウンタ900,901
がダウンカウントを終了すると、その終了信号
“0”がダウンカウンタ900のCO/ZD端子か
ら出力されインバータ904、ANDゲート90
6、NANDゲート915をへて、フリツプフロツ
プ909,911をリセツトし(第3図d参
照)、さらにインバータ914をへてダウンカウ
ンタ900,901をリセツトするのでCO/ZD
端子は再び“1”にもどる。したがつてANDゲ
ート906の出力、すなわち端子456は第3図
lに示すごとく、負極性のパルスとなる。又、フ
リツプフロツプ911の出力は“1”となるの
でダウンカウンタ900,901のカウントはス
トツプし、カウントダウンクロツクの供給もスト
ツプする。尚、ANDゲート906のもう一方の
入力にはダウンカウントクロツクをインバータ9
05で反転したものが印加されており、ANDゲ
ート906の出力はダウンカウント終了信号より
4μs遅れて“1”となる。これはカウントダウ
ンクロツク印加直後、ダウンカウンタ900の
CO/ZD端子に生じる可能性のある負極性のパル
ス(200ns程度)による誤動作を防止するための
ものである。ANDゲート906の出力パルスは
端子456を通して第12図のANDゲート93
3,935に加わる。今、第11図のフリツプフ
ロツプ909のQ出力はR(リセツト)入力が
“1”に反転するまで“1”であり、第12図の
ANDゲート933の入力は端子457により、
フリツプフロツプ909のQ出力に接続されてい
るのでANDゲート933の出力には端子456
に印加されたパルスがそのまま生じ、#1,4コ
イル(コイルB)制御フリツプフロツプ938が
セツトされる。938の出力が“1”に変化す
ると、インバータバツフア939の出力は
“0”、したがつてトランジスタ942,947は
OFF、トランジスタ952はONとなり第1イグ
ナイタ80の入力端子とIGGND端子82間に電
流が流れ#1,4気筒用のコイルは通電を開始す
る。尚、ダイオード948,953はトランジス
タ保護用であり、抵抗940,941,943〜
946,949〜951,954は点火ノイズの
減衰のためソリツド抵抗である。第11図の
NANDゲート907の一方の入力は分周器925
の2μsのクロツクを供給する端子に接続されて
いる。したがつてANDゲート906の出力が
“1”に変化しても、ダウンカウンタ900,9
01,フリツプフロツプ909,911のリセツ
トは2μsだけ遅れて実施される。これはフリツ
プフロツプ938のセツトパルスのパルス幅を確
保するためである。点火角(時期)θBxについ
ても(1)式と同様に分解する。
[Table] θ: Energization angle θ 1 : Crank angle at which energization starts that can be recognized by the CPU in units of 30° CA (0 to 11 (30° CA), corresponding to each gear position of the rotation angle sensor 5) θ 2 : 30° CA or less Fraction τ: The fraction θ 2 less than 30° CA is converted into time in units of 8 μs based on the rotation speed N at that time.Then, the gear position one position before the gear position θ 1 calculated by the above formula When the gear interrupt occurs at (θ 1 -1), the CPU 60 outputs the #1 and #4 coil energization command (terminal 453) and the energization down counter value set command (terminal 450) as shown in FIG. 3C. The applied pulse is inverted by an inverter 908 and the flip-flop 90
Set 9. Also, the pulse applied to terminal 450 causes data bus 404 to be simultaneously
The contents of i output from CPU are set in 16-bit energization down counters 900 and 901. 90
0 and 901 are each connected in series with an 8-bit down counter (for example, RCA CD40103B).
It constitutes a 16bit down counter. This 16bit
The down count value is 0 to 8 μs precision.
A value of 0.52428sec is possible. Therefore 3rpm
It is possible to count down to a certain number of rotations without overflow. When flip-flop 909 is set, the output becomes “0”.
The output of the NAND gate 910, that is, the D input of the D-type flip-flop 911 becomes "1". Since the CK (clock) input of the flip-flop 911 is connected to the crank angle signal through the terminal 403, the flip-flop 911 is set at the next crank angle pulse after the #1 and #4 coil energization command and the energization down counter value set command are output. be done. FIG. 3d shows the signal waveform of the Q output of flip-flop 911. When the flip-flop 911 is set, the output becomes "0", so the down counters 900 and 901 can count down, and since the reset input of the 4-bit frequency divider 925 is released, the CK of the down counters 900 and 901 is reset.
A down-count clock is supplied to the input, and down-down is started. Frequency divider 925 (e.g.
RCA CD4520B) is 2 μs from the 4-bit down counter 202 of the timer section 62 via the terminal 455.
clock is supplied, and the frequency is divided by 4 to 8μ.
s down count clock is generated.
Directly from real time timer 207, 208 8
The reason why a μs clock is not used is to ensure accuracy, especially when τ=0, 1. Now, 16bit down counter 900,901
When the down counter ends, the end signal “0” is output from the CO/ZD terminal of the down counter 900, and the inverter 904 and the AND gate 90
6. Pass through the NAND gate 915 to reset the flip-flops 909 and 911 (see Figure 3 d), and further pass through the inverter 914 to reset the down counters 900 and 901, so CO/ZD
The terminal returns to "1" again. Therefore, the output of AND gate 906, ie, terminal 456, becomes a negative pulse as shown in FIG. 3l. Further, since the output of the flip-flop 911 becomes "1", the counting of the down counters 900 and 901 is stopped, and the supply of the count down clock is also stopped. Note that the down count clock is connected to the other input of the AND gate 906 by the inverter 9.
05 is applied, and the output of the AND gate 906 becomes "1" 4 μs later than the down count end signal. This occurs immediately after the countdown clock is applied, when the down counter 900
This is to prevent malfunctions caused by negative pulses (about 200ns) that may occur at the CO/ZD terminal. The output pulse of AND gate 906 is passed through terminal 456 to AND gate 93 in FIG.
Add to 3,935. Now, the Q output of the flip-flop 909 in FIG. 11 is "1" until the R (reset) input is inverted to "1", and the Q output of the flip-flop 909 in FIG.
The input of AND gate 933 is via terminal 457.
Since it is connected to the Q output of flip-flop 909, the output of AND gate 933 is connected to terminal 456.
The pulses applied to the #1 and #4 coils (coil B) control flip-flop 938 are set. When the output of the inverter buffer 938 changes to "1", the output of the inverter buffer 939 becomes "0", so the transistors 942 and 947 change to "1".
OFF, the transistor 952 turns ON, and current flows between the input terminal of the first igniter 80 and the IGGND terminal 82, and the coils for the #1 and #4 cylinders start energizing. Note that the diodes 948 and 953 are for transistor protection, and the resistors 940, 941, 943 to
946,949 to 951,954 are solid resistors for attenuating ignition noise. Figure 11
One input of NAND gate 907 is frequency divider 925
It is connected to a terminal that supplies a 2 μs clock. Therefore, even if the output of the AND gate 906 changes to "1", the down counters 900, 9
01, flip-flops 909 and 911 are reset with a delay of 2 μs. This is to ensure the pulse width of the set pulse of flip-flop 938. The ignition angle (timing) θ B x is also decomposed in the same manner as in equation (1).

【表】 θBX:#1,4コイル(コイルB)の点火角 θBX1:30゜CA単位でCPuの認識できる点火ク
ランク角、(0〜11×30゜CA) θBx2:30゜CA以下の端数 τx:30゜CA以下の端数θBxをそのときの回転
数Nに基づき8μsの単位で時間に換
算したもの。 (2)式で算出されたギア位置(θBx1)より1つ手
前のギア位置(θBX−1)にエンジンのクランク
シヤフトが到達したとき生じる回転センサ5(セ
ンサ51)のクランク角信号51の立ち上がりに
よるギア割込みでCPu60は点火命令(端子45
4、第3図fを出力し、16bit点火ダウンカウン
タ902,903にτxを設定する。クランクシ
ヤフト位置がθBx1に到達するとフリツプフロツ
プ922がセツトされる。16bitダウンカウンタ
902,903は8μsのクロツクでダウンカウ
ントを開始し、ダウンカウントが終了すると同時
に第3図hに示すような正極性パルスが端子45
9に生じる。第3図gはフリツプフロツプ922
のQ出力の波形であり、ダウンカウント中のみ
“1”となる。第12図のデコーダ930(例え
ばRCA社製CD4556B)のA,B入力はそれぞれ
第4図のクランク角カウンタ部61のカウンタ1
25の上位2ビツト(ビツト2,3)に端子40
5を介して接続されている。したがつてクランク
角が0〜90゜CA、270〜360゜CA)とき、NAND
ゲート931の出力が“1”に、90〜270゜CAの
ときNANDゲート932の出力が“1”となる。
#1,4気筒の点火クランク角は通常290〜360°
CAであり、#2,3気筒の点火クランク角は110
゜〜180゜CAである。したがつて点火について
は、CPuからの識別信号がなくても、どちらのコ
イルの点火命令かは上記のごとく、クランク角が
わかれば、特定できるわけである。さて今の場合
NANDゲート931の出力の方が“1”となり
ANDゲート934の出力に端子459からのパ
ルスが生じフリツプフロツプ938をリセツト
し、出力は“1”に第3図iに示すように変化
する。 したがつてトランジスタ942,947が
ON,トランジスタ952がOFFとなり、第1イ
グナイタ80の入力端子とGND端子82間に流
れていた電流は遮断され、#1,4気筒のうちい
ずれか圧縮工程にある気筒の点火プラグに高圧が
発生し、点火が行なわれる。 以上#1,4気筒用のコイルBイグナイタ信号
について説明したが#2,3気筒用のコイルAイ
グナイタ信号についても全く同様にして制御され
る。 次にEGR−VSV駆動回路68について第13
図により詳細に説明する。CPu60が後述するそ
の内蔵プログラムによりEGR制御用のVSV12
をONすべきことを判断すると、端子470に
“0”を出力する。するとトランジスタ802,
806がONとなり、EGRVSV12の端子とバツ
テリーGND端子19間にコイル励磁電流が流れ
EGR制御用VSV12はONとなる。逆にCPu60
が端子470に“1”を出力すると、トランジス
タ802,806がOFFとなり、EGRVSV12
の端子とバツテリーGND端子19間には電流が
流れず、EGR制御用VSV12はOFFとなる。エ
アーブリードVSV駆動回路67は第13図と全
く同様でCPu60からの“0”,“1”の出力でエ
アーブリード制御用VSV15をON,OFF作動さ
せる。 以上で本発明の一例を示すシステムのバードウ
エアの説明を終了し以下制御アルゴリズムすなわ
ちソフトウエアを説明していく。 本例のシステムはそれぞれ優先順位をもつ3つ
の割込みを持つ。それを第14図に示す。3つの
割込みは優先レベルの高い順にギア割込み、プロ
グラム割込み、8ms割込みである。メインルーチ
ンはこれら各割込みの処理中でないとき、実行さ
れる。吸入空気量Ga、水温Tw、吸気温Taダイ
アフラム室圧PD、大気圧PA、バツテリー電圧V
BについてはA/D変換されたのち、それぞれ
1msに1回CPu60を数μs停止させ、その間に
あらかじめ定められたRAM70内のメモリーア
ドレスにDMA制御部により直接転送される。し
たがつて、プログラムはA/D変換には全く関与
せず、上記データが必要な時は所定のアドレスを
アクセスするだけでよい。以下各プログラムにつ
いて順次説明する。まず割込みのない場合、実行
されるメインルーチンのフローチヤートを第15
図に示す。コンピユータ6の電源ON又はフロン
トパネル17のRESETスイツチの押下によりメ
インルーチンが起動され、ステツプ1001でイ
ニシヤライズ、すなわちプログラムの初期化
(RAMのclear、パラメータに所定の値を設定、
各割込みの許可等)が実行される。 次にステツプ1002で第16図に詳細を示す
ベース処理が実行される。ベース処理ではA/D
変換されたデータをもとに冷却水温Tw、吸気温
Taが一次元マツプから線形補間されステツプ1
020,1023、ステツプ1021,1022
で冷却水温Twから一次元マツプにより線形補間
され、水温進角θTw、EGRの水温補正係数KTw
が算出される。さらにステツプ1026で加速進
角係数γACCが(3)式により計算され γAcc=CAccX(80−Tw) −(3) CAcc:定数 求められる。ステツプ1024では同様に吸気温
AからEGRの吸気温補正係数KTAが一次元マツ
プにより線形補間計算され、ステツプ1025で
は大気圧PAのA/D変換データからEGR大気圧
補正係数KPが一次元マツプにより線形補間計算
される。ベース処理実行後、メインルーチンは条
件判断ステツプ1003に進む。このステツプ1
003ではフラグf8が0かどうかを調べ、0なら
ベース処理ステツプ1002にもどり、0でなけ
ればステツプ1004に進む。このフラグf8は第
29図に示す8ms割込みで1ずつ増加し、メイン
ルーチンで8ms処理ステツプ1005を実行する
毎に1つずつ減少する。したがつて8ms処理ステ
ツプ1005は通常8ms毎に1回実行される。
8ms処理の詳細を第17図に示す。ステツプ10
30でA/D変換されたバツテリー電圧VBから
一次元マツプにより線形補間計算により要求通電
時間τONが求められる。ステツプ1031では
フラグ50が1ずつ増加される。8ms処理ステ
ツプ1005終了後、メインルーチンは判断ステ
ツプ1006に進む。ステツプ1006ではフラ
グ50が6かそれ以上ならばステツプ1007
に進み6減算され、続いて50ms処理ステツプ1
008が実行される。50が5以下ならステッ
プ1003にもどる。通常80ms(正確には6×
8,192=49.152ms)に1回実行されるこの50ms
処理ステツプ1008を第18図に示す。ステツ
プ1040〜46は加速進角の演算を示す。加速
の検出は(4)式の △Ga/N=(Ga/N)−(Ga/N)500−(4) Ga:吸入空気量,N:回転数 ように現在の(Da/N)0と500ms前のデー
タ(Ga/N)500の差をステツプ1040で求
め、ステツプ1041にてその差がある値C以上
であるかどうかにより加速の判定を行なう。加速
と判定されれば θAcc′=γAcc×△Ga/N −(5) γAcc:(3)式参照 ステツプ1043において(5)式で新しい加速進
角θAccが計算される。加速進角θAccは、加速
検出後、1回転毎に一定角度ずつ(0.1〜1゜
CA)遅角していく。したがつてステツプ104
5で現在の加速進角値θAccと加速検出により新
たに計算された加速進角値θAcc′のうち大きい
方を新しいθAccとする。又ステツプ1042に
て減速を検出した場合(ステツプ1042)θ
Accは直ちに0となる。ステツプ1047〜10
51はEGR処理ステツプである。本例に示す
EGR制御法は前述のように第1図のEGR第2バ
ルブ9のダイアフラム室91圧を回転数Nと一回
転あたりの吸入空気量Ga/Nにより定められる
最適EGR率に対応する負圧に設定することによ
り、バルブ92のリストを制御し、最適EGR率
を得る方法である。ステツプ1047では最適
EGR率に対応する負圧Pdrefが(6)式により算出さ
れる。 Pdref= A+KTw×KTa×Kp×(Pdmap−
A)−(6) Pdmap: (N,Ga/N)から三次元マツプ
により4点線形補間計算で求めた値(負圧) KTw:EGR水温補正係数(第16図参照) KTa:EGR吸気温補正係数(第16図参照) Kp:EGR大気圧補正係数(第16図参照) A: プリセツト圧、ダイアフラム室(第1図
91)の圧力がスプリング93の反発力に抗
して弁92が動き始める臨界圧力。 さらにEGR第2バルブ9のダイアフラム室圧
(負圧)の現在値Pdrealはステツプ1048で(7)
式により計算される。 Pdreal=PA−PD −(7) PA:大気圧(絶対圧) PD:ダイアフラム室圧(絶対圧力) 以下のステツプでは実際のダイアフラム室圧
Pdrealが最適制御値Pdrefに一致するよう第1図
のVSV12をON,OFF制御する。すなわちステ
ツプ1049で実際のダイアフラム室圧Pdrealが
制御値Pdrefより小さければEGR用VSV12を
ONにし、レギユレートされたマニホールド負圧
を導入してPdrealを大きくし、逆にPdrealが
Pdrefより大きくなるとVSVをOFFして、大気圧
を導入し、Pdrealを小さくする。次にステツプ1
052では(8)式に従つてダイアフラム室圧Pdreal
からEGR進角値θEGRが計算される。 θEGR=CθEGR×(Pdreal−A) −(8) (ただしPdreal−A<0ならθEGR=0) CθEGR:定数 A :プリセツト圧 ステツプ1053以下は第1図のエアーブリー
ド用VSV15を制御するプログラムステツプを
示す。この場合EGR率が大きいほどVSV15の
OFF期間が長くなりエアーブリード14の空気
量が減少し、空燃比(A/F)が小さくなるよう
制御される。この場合ステツプ1053でエアー
ブリード用VSV15のON−OFFの目標デユーテ
イ比Drefが(9)式によりまず計算される。 Dref=CDREF×(Pdreal−A) −(9) (ただしPdreal−A<0ならDref=0) CDREF:定数 A :プリセツト圧 RAM70の所定のアドレスに記憶される16bit
の記憶内容Hairの各bitは最上位bitから古い順に
エアーブリードVSVの過去16回のON(“1”)、
OFF(“0”)の履歴を表わす。NONは過去16回
の履歴でON(“1”)の回数を表わす。したがつ
て現在のデユーテイ比Drealは、判断ステツプ1
057での今回の判断の期待値をON,OFFとも
1/2と仮定すると、ステツプ1056に示すよう
に計算できる。NONの最新値はHairを1bit左へシ
フトさせ最も古いビツトを調べ、“1”のときは
1減算し、“0”のときはそのままとすればよい
(ステツプ1053〜1055)。EGRVSV12
の制御の場合と同様に、現在のデユーテイ比
Drealが制御目標値Drefより小さければエアーブ
リードVSV15をONしてDrealを大きくし、(ス
テツプ1059)ステツプ1060でNONを1
増加させ、Hairの最新ビツトを1にしている。
逆にDrealがDrefより大きければVSVをOFFして
Drealを小さくする。(ステツプ1058)。した
がつてエンジンに供給される混合気の空燃比は
EGR量に応じて設定する値に制御される。エア
ーブリードVSV15のON,OFFデユーテイ比を
算出し、VSVのON,OFFをCPuで直接制御する
本例では、第31図の如きダウンカウンタ等を用
いてデユーテイ比を制御する通常の方式に比較し
て、ハードウエア(回路)が小規模となり、しか
も電磁弁のデユーテイ比制御サイクル(制御周
期)を同じように選んだ場合は応答性も向上す
る。特に本例では過去16回の履歴から現在のデユ
ーテイ比を算出しており、デユーテイ比計算のた
めのサンプルは50ms毎の計算について常に最新
値を用いており、たとえば800ms(50ms×16)
に1回だけ目標デユーテイ比を計算し、それに基
づくON,OFFのシーケンスを50msごとに実行
する方法に比して、応答性は格段に優れている。
以上でEGRに関連する処理プログラムの説明を
完了し、以下ギア割込み、プログラム割込みにつ
いて説明する。 まずギア割込みについて第19図により説明す
る。ギア割込みは最も優先順位の高い割込みで最
優先に処理される。このギア割込みの起動は前述
の第6図に示す割込み制御部63の端子44から
のクランク角パルスにより行なわれる。したがつ
てギア割込みはTDCから30゜CAごとに起動され
る。起動されるとステツプ1100でギア割込み
をリセツト(第6図のフリツプフロツプ302の
リセツト)し、第5図に示すタイマー部62でク
ランク角パルスによりリアルタイムタイマー20
7,208からレジスタ209,210にラツチ
されたラツプ値をCPu60に読み込む。この操作
によりCPu60はクランク角パルスの生じた正確
な時間が8μsの精度で検知でき、30゜CA毎の
クランク位置の通過時刻が検知できる。さらに第
4図に示すクランク角カウンタ部61のクランク
角カウンタ125のREAD操作によりCPu60は
現在のクランク位置を30゜CAの精度で検知でき
る。ただし以下に述べるクランク位置の現在値と
は、これに1を加算したものである。 ステツプ1101は通電点火処理のための第1
表に示す2つの計算値ストレージテーブルiGT
1,iGT2のうちいずれか新しい方を選択するた
めの判断ステツプである。フラグTABが“0”
ならばテーブルiGT1,“0”でなければテーブ
ルiGT2が最新のテーブルであることを示す。
[Table] θ BX : Ignition angle of #1 and 4 coils (coil B) θ BX1 : Ignition crank angle that can be recognized by CPu in 30° CA units, (0 to 11 x 30° CA) θ B x 2 : 30° Fraction τ x below CA: 30° Fraction θ Bx below CA is converted into time in units of 8 μs based on the rotational speed N at that time. The crank angle signal of the rotation sensor 5 (sensor 51) that is generated when the engine crankshaft reaches the gear position (θ BX −1 ) one position before the gear position (θ B x 1 ) calculated by equation (2) CPU60 issues an ignition command (terminal 45) due to the gear interrupt caused by the rising edge of
4. Output the signal f in FIG. 3 and set τx in the 16-bit ignition down counters 902 and 903. When the crankshaft position reaches θ B x 1 , flip-flop 922 is set. The 16-bit down counters 902 and 903 start counting down with an 8 μs clock, and at the same time as the down counting ends, a positive pulse as shown in FIG.
Occurs on 9th. FIG. 3g is a flip-flop 922
This is the waveform of the Q output of , and becomes "1" only during down-counting. The A and B inputs of the decoder 930 (for example, RCA CD4556B) shown in FIG. 12 are connected to the counter 1 of the crank angle counter section 61 shown in FIG.
Terminal 40 is connected to the upper two bits (bits 2 and 3) of 25.
5. Therefore, when the crank angle is 0~90°CA, 270~360°CA), NAND
The output of the gate 931 becomes "1", and the output of the NAND gate 932 becomes "1" when the angle is 90 to 270 degrees CA.
The ignition crank angle for #1 and 4 cylinders is usually 290 to 360°.
It is CA, and the ignition crank angle of #2 and 3 cylinders is 110
゜~180゜CA. Therefore, as for ignition, even if there is no identification signal from the CPU, it is possible to determine which coil the ignition command is for as long as the crank angle is known, as described above. Well, in this case
The output of NAND gate 931 becomes “1”
A pulse from terminal 459 is generated at the output of AND gate 934, resetting flip-flop 938, and the output changes to "1" as shown in FIG. 3i. Therefore, transistors 942 and 947
ON, the transistor 952 turns OFF, the current flowing between the input terminal of the first igniter 80 and the GND terminal 82 is cut off, and high pressure is generated in the spark plug of either #1 or #4 cylinder that is in the compression process. Then, ignition takes place. The coil B igniter signals for the #1 and #4 cylinders have been described above, but the coil A igniter signals for the #2 and #3 cylinders are also controlled in exactly the same manner. Next, the 13th section regarding the EGR-VSV drive circuit 68.
This will be explained in detail with reference to the drawings. CPU60 uses VSV12 for EGR control by its built-in program which will be described later.
When it is determined that the switch should be turned on, it outputs "0" to the terminal 470. Then the transistor 802,
806 turns ON, and coil excitation current flows between the EGRVSV12 terminal and battery GND terminal 19.
The EGR control VSV12 is turned on. On the contrary, CPu60
outputs “1” to terminal 470, transistors 802 and 806 turn off, and EGRVSV12
No current flows between the terminal and the battery GND terminal 19, and the EGR control VSV 12 is turned off. The air bleed VSV drive circuit 67 is exactly the same as that shown in FIG. 13, and turns the air bleed control VSV 15 ON and OFF with the outputs of "0" and "1" from the CPU 60. This completes the explanation of the hardware of the system that represents an example of the present invention, and the control algorithm, ie, software, will be explained below. The example system has three interrupts, each with its own priority. This is shown in FIG. The three interrupts are gear interrupt, program interrupt, and 8ms interrupt in descending order of priority level. The main routine is executed when these interrupts are not being processed. Intake air amount Ga, water temperature Tw, intake temperature Ta, diaphragm room pressure P D , atmospheric pressure P A , battery voltage V
For B , after A/D conversion, each
The CPU 60 is stopped for several microseconds once every 1 ms, and during that time, the data is directly transferred to a predetermined memory address in the RAM 70 by the DMA control unit. Therefore, the program is not involved in A/D conversion at all, and only needs to access a predetermined address when the above data is needed. Each program will be explained in turn below. First, the flowchart of the main routine that is executed when there is no interrupt is shown in Fig. 15.
As shown in the figure. The main routine is started by turning on the power of the computer 6 or pressing the RESET switch on the front panel 17, and in step 1001 initializes the program (clears RAM, sets predetermined values for parameters, etc.)
(e.g. permission of each interrupt) is executed. Next, in step 1002, base processing, detailed in FIG. 16, is executed. A/D in base processing
Cooling water temperature Tw, intake temperature based on the converted data
Ta is linearly interpolated from the one-dimensional map and step 1
020, 1023, step 1021, 1022
Linear interpolation is performed using a one-dimensional map from the cooling water temperature Tw, and the water temperature advance angle θTw and the EGR water temperature correction coefficient KTw are
is calculated. Further, in step 1026, the acceleration advance angle coefficient γACC is calculated using equation (3), where γAcc=CAccX(80−Tw)−(3) CAcc: a constant. Similarly, in step 1024, the EGR intake temperature correction coefficient KT A is calculated from the intake air temperature T A by linear interpolation using a one-dimensional map, and in step 1025, the EGR atmospheric pressure correction coefficient K P is calculated from the A/D conversion data of the atmospheric pressure P A. Linear interpolation calculations are performed using a one-dimensional map. After executing the base processing, the main routine advances to condition determination step 1003. This step 1
At step 003, it is checked whether the flag f8 is 0. If it is 0, the process returns to the base processing step 1002, and if it is not 0, the process proceeds to step 1004. This flag f8 is incremented by 1 at the 8 ms interrupt shown in FIG. 29, and decremented by 1 each time the 8 ms processing step 1005 is executed in the main routine. Therefore, the 8ms processing step 1005 is normally executed once every 8ms.
Details of the 8ms processing are shown in FIG. Step 10
The required energization time τON is determined from the A/D converted battery voltage VB at 30 by linear interpolation calculation using a one-dimensional map. At step 1031, the flag 50 is incremented by one. After completing the 8ms processing step 1005, the main routine proceeds to decision step 1006. In step 1006, if flag 50 is 6 or more, step 1007 is executed.
6 is subtracted, followed by 50ms processing step 1
008 is executed. If 50 is less than or equal to 5, the process returns to step 1003. Usually 80ms (6× to be exact)
This 50ms is executed once every 8,192=49.152ms)
Processing step 1008 is illustrated in FIG. Steps 1040 to 46 show calculation of the acceleration advance angle. Acceleration detection is performed using equation (4), △Ga/N = (Ga/N) 0 - (Ga/N) 500 - (4) Ga: intake air amount, N: rotational speed, and the current (Da/N) In step 1040, the difference between 0 and data (Ga/N) 500 500 ms ago is determined, and in step 1041, acceleration is determined based on whether the difference is greater than a certain value C. If it is determined that acceleration is occurring, θAcc' = γAcc x △Ga/N - (5) γAcc: see equation (3) At step 1043, a new acceleration advance angle θAcc is calculated using equation (5). The acceleration advance angle θAcc increases by a certain angle (0.1 to 1°) every rotation after acceleration is detected.
CA) It will be delayed. Therefore, step 104
In step 5, the larger of the current acceleration advance value θAcc and the acceleration advance value θAcc' newly calculated by acceleration detection is set as the new θAcc. Also, if deceleration is detected in step 1042 (step 1042) θ
Acc becomes 0 immediately. Steps 1047-10
51 is an EGR processing step. Shown in this example
As mentioned above, the EGR control method sets the pressure in the diaphragm chamber 91 of the second EGR valve 9 in Fig. 1 to a negative pressure corresponding to the optimum EGR rate determined by the rotation speed N and the intake air amount Ga/N per rotation. This is a method of controlling the list of valves 92 and obtaining the optimum EGR rate. Optimal at step 1047
Negative pressure Pdref corresponding to the EGR rate is calculated using equation (6). Pdref= A+KTw×KTa×Kp×(Pdmap−
A)-(6) Pdmap: Value obtained from (N, Ga/N) by 4-point linear interpolation calculation using a three-dimensional map (negative pressure) KTw: EGR water temperature correction coefficient (see Figure 16) KTa: EGR intake temperature Correction coefficient (see Figure 16) Kp: EGR atmospheric pressure correction coefficient (see Figure 16) A: Preset pressure, pressure in the diaphragm chamber (91 in Figure 1) moves the valve 92 against the repulsive force of the spring 93. Critical pressure to start. Furthermore, the current value Pdreal of the diaphragm chamber pressure (negative pressure) of the EGR second valve 9 is determined in step 1048 (7).
Calculated by the formula. Pdreal=P A - P D - (7) P A : Atmospheric pressure (absolute pressure) P D : Diaphragm chamber pressure (absolute pressure) In the following steps, the actual diaphragm chamber pressure
The VSV 12 in FIG. 1 is controlled ON and OFF so that Pdreal matches the optimal control value Pdref. That is, if the actual diaphragm chamber pressure Pdreal is smaller than the control value Pdref in step 1049, the EGR VSV12 is activated.
ON, regulated manifold negative pressure is introduced to increase Pdreal, and vice versa.
When it becomes larger than Pdref, VSV is turned off, atmospheric pressure is introduced, and Pdreal is reduced. Next step 1
At 052, the diaphragm chamber pressure Pdreal is determined according to equation (8).
The EGR advance angle value θEGR is calculated from . θEGR=CθEGR×(Pdreal-A) -(8) (However, if Pdreal-A<0, θEGR=0) CθEGR: Constant A: Preset pressure Step 1053 and below are the program steps for controlling the air bleed VSV15 in Figure 1. show. In this case, the higher the EGR rate, the higher the VSV15.
The OFF period becomes longer, the amount of air in the air bleed 14 decreases, and the air-fuel ratio (A/F) is controlled to become smaller. In this case, in step 1053, the target ON-OFF duty ratio Dref of the air bleed VSV 15 is first calculated using equation (9). Dref=CDREF×(Pdreal-A) −(9) (However, if Pdreal-A<0, Dref=0) CDREF: Constant A: Preset pressure 16 bits stored at a predetermined address in RAM 70
Memory contents Each bit of Hair is the past 16 ONs (“1”) of Air Bleed VSV in order from the highest bit to the oldest bit,
Indicates the history of OFF (“0”). NON represents the number of ON (“1”) times in the past 16 history. Therefore, the current duty ratio Dreal is determined by the judgment step 1.
The expected value of this judgment in 057 is both ON and OFF.
Assuming 1/2, it can be calculated as shown in step 1056. To find the latest value of NON, shift Hair by 1 bit to the left, check the oldest bit, subtract 1 if it is "1", and leave it as is if it is "0" (steps 1053 to 1055). EGRVSV12
As with the control of the current duty ratio
If Dreal is smaller than the control target value Dref, turn on the air bleed VSV15 to increase Dreal (step 1059), and in step 1060 set NON to 1.
Increase the latest bit of Hair to 1.
Conversely, if Dreal is larger than Dref, turn off VSV.
Make Dreal smaller. (Step 1058). Therefore, the air-fuel ratio of the mixture supplied to the engine is
It is controlled to a value set according to the amount of EGR. In this example, the ON/OFF duty ratio of the air bleed VSV15 is calculated and the VSV ON/OFF is directly controlled by the CPU, compared to the normal method of controlling the duty ratio using a down counter as shown in Figure 31. Therefore, the hardware (circuit) becomes small-scale, and if the duty ratio control cycles (control periods) of the solenoid valves are selected in the same way, the responsiveness is also improved. In particular, in this example, the current duty ratio is calculated from the history of the past 16 times, and the sample for calculating the duty ratio always uses the latest value for calculations every 50ms. For example, 800ms (50ms x 16)
The response is much better than the method of calculating the target duty ratio only once per month and executing the ON/OFF sequence based on it every 50ms.
This concludes the explanation of the processing program related to EGR, and the gear interrupt and program interrupt will be explained below. First, the gear interrupt will be explained with reference to FIG. Gear interrupts have the highest priority and are processed with the highest priority. Activation of this gear interrupt is performed by a crank angle pulse from the terminal 44 of the interrupt control section 63 shown in FIG. 6 mentioned above. Therefore, the gear interrupt is activated every 30°CA from TDC. When activated, the gear interrupt is reset in step 1100 (resetting the flip-flop 302 in FIG. 6), and the real-time timer 20 is activated by the crank angle pulse in the timer section 62 shown in FIG.
The wrap values latched in the registers 209 and 210 from 7 and 208 are read into the CPU 60. By this operation, the CPU 60 can detect the exact time when the crank angle pulse occurs with an accuracy of 8 μs, and can detect the passing time of the crank position every 30° CA. Further, by the READ operation of the crank angle counter 125 of the crank angle counter section 61 shown in FIG. 4, the CPU 60 can detect the current crank position with an accuracy of 30° CA. However, the current value of the crank position described below is the value obtained by adding 1 to this value. Step 1101 is the first step for energizing ignition processing.
Two calculated value storage table iGT shown in table
This is a judgment step for selecting the newer one among 1 and iGT2. Flag TAB is “0”
If it is, table iGT1, and if it is not "0", it indicates that table iGT2 is the latest table.

【表】【table】

【表】【table】

【表】【table】

【表】 第1表にその内容を示す計算値ストレージテー
ブルiGTは後述するプログラム割込みで算出され
る。したがつてテーブルiGTの各データ更新中に
ギア割込みが生じる可能性があるため、テーブル
iGTはiGT1とiGT2の2セツト確保している。テ
ーブルiGT1による通電点火処理ステツプ110
2を第20,21図に示す。テーブルiGT2によ
る通電点火処理ステツプ1103も使用するデー
タがテーブルiGT1の代わりにテーブルiGT2で
ある以外はステツプ1102と同等である。以下
20,21図を参照しながら通電点火処理を説明
する。まずステツプ1110でイグニツシヨンコ
イル7のうちのコイルA(#2,3気筒用イグニ
ツシヨンコイル)の状態を調べる。コイルA状態
Aは第2表に示すコイル制御テーブルCCTの1
つのフラグで“0”が通電前、“2”が通電中、
“4”が点火後を表わす。すなわち第3表に示す
固定位置処理ステツプ1104のギア位置11
(コイルBのTDCに対しATDC300゜CA)でSA
は“0”にコイルA通電ON処理ステツプ111
2で“2”にコイルA点火処理ステツプ1123
で“4”にセツトされる。コイルA状態SA
“0”で通電前の場合、後述のプログラム割込み
で計算された通電ギア位置の最新値θとコイル
A(#2,3気筒)のTDC(上死点)に対する
現在のギア位置Aをステツプ1111で比較
し、A≧θならばコイルA通電ON処理ステツ
プ1112に進み、Aが通電ギア位置にまで達
していないときは第21図のコイルBの処理ルー
チンに進む。コイルA通電ON処理ステツプ11
12を第22図に示す。ステツプ1140でA
>θA=θかを調べている。A>θ
成立するのは加速時、点火角θxが大きく進角し
た時、バツテリー電圧が急激に低下した時等、通
電ギア位置の最新値が1つ前の値より早くなつた
場合である。このときは現在位置が通電すべき位
置を既に過ぎているのでステツプ1142,11
44に示すごとく次のクランク角パルスですぐコ
イルAが通電されるようステツプ1144で第1
1図の通電ダウンカウンタ900,901に
“0”がセツトされ、ステツプ1145でコイル
A通電命令が出力されている。A=θが成立
した通常の場合はステツプ1143に進み通電ダ
ウンカウンタに計算値τをセツトし、ステツプ1
145でコイルA通電命令を出力する。そうする
と、第11図の回路動作の説明で前述したように
次のクランク角パルスでスタートするダウンカウ
ント終了後、第3図iに示すごとくコイルAイグ
ナイタ信号は“1”→“0”に反転する。ステツ
プ1141,1142で設定されるコイルA通電
角θAは最新の実際に通電を開始したクランク角
を表わし、以下のステツプで使用される。 ステツプ1146で前述のコイルA状態SA
“2”にセツトされる。さらにステツプ1113
でコイルA点火計算フラグAが“0”にセツト
される。このフラグAは失火を防ぎ、通電ON時
間を確保するために、プログラム割込みにおける
ESA計算ステツプで算出された点火角θxを実
際に通電を開始したクランク角θAで修正計算す
ることを要求するフラグである。修正計算の要求
すなわちフラグAは上述の通電開始時と後述の
ESA計算の実行直後に“0”にセツトされる。
次にコイルA状態SAが“2”すなわち通電中の
場合はステツプ1114に進み、点火処理を行う
ギア位置かどうかを判定する。点火進角は必ず
BTDC0〜70゜CAの範囲内であるのでコイルA点
火処理はギア位置9〜11(すなわち#2,3気
筒TDCを0゜CAとするとBTDC30゜,60゜,90
゜CA)のみで行なえばよい。したがつて本例で
はθOFF=9である。ステツプ1114でコイ
ルA現在位置A≧θOFFを満足すればステツプ
1115に、さもなければ第21図のコイルBの
処理ルーチンに進む。ステツプ1115でコイル
A点火計算フラグAが“0”ならば前述の点火
角θxの修正計算が実行される。まずステツプ1
116で実際の通電角θAとプログラム割込みで
計算された許容最小ドウエル角(エンジンの正常
燃焼に必要とされる最小限の通電時間をそのとき
の回転数に基づきクランク角に換算したもの)
θ′ONから、通電時間からみた許容最大進角点火
角がθAxとして計算される。この値とプログラ
ム割込みのESA計算ステツプで算出された最適
点火角θxがステツプ1119で比較され、θx
≦θAxならばθAxがθx>θAxならばθxを
改めて実際のコイルA制御点火角θAxとして第
2表に示されるコイル制御テーブルCCTに書き
込まれる。つまり、失火を防ぐことを最優先と
し、点火進角の最新値が進角しすぎた場合には、
通電時間を確保するため、ステツプ1116で計
算したθAxを進角の上限としている。ただしス
テツプ1117,1118に示すように上死点
(TDC)以後に最大許容進角点火角がくる場合に
は、上死点(θMAx=360゜CA)を実際の点火
角θAxにしている。一般にコンピユータでクラ
ンク角に同期して計算し点火時期を制御する場
合、従来の方法では1回の通電点火計算で1回以
上の通電、点火を制御し、通電点火計算で同時に
算出された通電ON時期、点火時期がそのまま実
際の制御に採用され、通電中にさらに通電点火計
算によつて新しい点火時期が計算されることはな
かつた。 しかし、コンピユータの高速化に伴い、特に低
回転では1点火について2回以上の通電点火計算
を起動し、そのうち最新の計算値を採用すること
も可能になつてきた。回転数が600〜6000rpmと
1桁変動する実際の自動車用エンジン等の制御の
場合、従来、高回転時の通電点火計算の計算時間
の制約から早めに通電点火計算が起動されていた
ことを考慮すれば、1点火に対し何回も通電点火
計算を起動し、そのうちで実際の制御に間に合う
最新の計算値を採用する方法は、加速時の過渡応
答性を格段に改善し、ドライバビリテイの向上に
寄与する。本例ではクランク一回転で4回通電点
火計算が起動されているが、より高速のコンピユ
ータを用いれば、クランク角パルスが生ずる30℃
A毎に計算を実行することも可能となる。本例に
は触れてないが通電点火計算をクランク角同期で
はなく時間同期(例えば本例の8ms処理ステツ
プ)又はメインルーチン等で行なう方法(フオー
ドのEEC等)でも第20図のステツプ1116
〜1121に示す実際の点火時期の再計算が必要
となる。特に本例のようにダブルコイル方式を採
用し、通電ON時期を、通常のシングルコイル方
式(0〜180℃A)に比して2倍(0〜360℃A)
早めに設定できる場合はそのメリツト活用のた
め、通電ON時期と点火時期が大きく離れる可能
性があり、失火等通電時間に起因する異常燃焼を
軽減するためには、上述の点火時期の再調整は不
可欠である。ステツプ1121では実際のコイル
A制御点火角θAxから制御点火ギア位置θAx1
(2)式により算出し、コイルA点火計算フラグA
を“1”にもどす。 次にステツプ1122に進む。ステツプ111
5でAが“0”でなければ直接このステツプ1
122にプログラムは移る。ステツプ1122で
はコイルA制御点火ギア位置θAx1と現在のギア
位置Aが比較される。A≧θAx1ならばコイル
A点火処理ステツプ1123に進み、A<θAx1
ならばなにもせず、第21図のコイルBの処理ル
ーチンに進む。ステツプ1123の詳細フローチ
ヤートを第24図に示す。第24図は第22図と
ほぼ同様で、まずステツプ1160でA>θAx1
A=θAx1かを調べている。A>θAx1が成立
するのはこのギア割込みの直前にESA計算ステ
ツプが終了し、新しい点火時期の値が使用可能と
なり、かつ前の計算値に比して新しい計算値が進
角した場合である。この場合現在位置が点火すべ
きギア位置を通りすぎているので、ステツプ11
62,1163で第11図に示す通電点火制御部
69の点火ダウンカウンタ902,903に
“0”をセツトされ、ステツプ1164で点火命
令が出力されるので、次のクランク角信号で直ち
にコイルA点火信号がイグナイタ8の第2イグナ
イタ81に送られる。A=θAx1の場合は通電点
火制御部69の点火ダウンカウンタ902,90
3にセツトされる点火ダウンカウンタ値τxは(2)
式すなわち(2A)式によりステツプ1161で
算出される。τxは前述のように隣り合う τx=τx(θAx−θAx1) −(2A) θAx:コイルA制御点火角 θAx1:コイルA制御点火ギア位置 ギア位置の間(間隔30℃A)の任意の点を小さ
い方のギア位置からの所要時間で表わしたもので
ある。ステツプ1163でτxを点火ダウンカウ
ンタにセツトし、ステツプ1164でコイルA点
火命令を出力する。その結果、前述のように点火
命令出力後の次のクランク角パルスでダウンカウ
ントがスタートし、ダウンカウントを終了すると
第3図iに示すようにコイルAイグナイタ信号が
“1”→“0”に反転し点火が起こる。次にステ
ツプ1165でコイルA状態SAが“4”にセツ
トされ、コイルA点火処理ステツプは完了する。
以上でコイルAの処理ルーチンの解説を終了し、
第21図に示すコイルBの処理ルーチンに移る。
コイルBの処理ルーチンもコイルAの処理ルーチ
ンと全く同様である。ギアの現在位置Bは#14
気筒(コイルB)のTDCを基準としたものであ
るので、現在位置Aとは180℃Aずれており(10)式
が成立する。 BA+6(mod12) …(10) コイルBの通電ON処理ステツプを第23図
に、点火処理ステツプを第25図に示す。以上で
ギア割込みにおける通電点火処理ステツプ110
2,1103の説明を終え、次に固定位置処理ス
テツプ1104を説明する。前述の第3表にその
内容を示す固定位置処理ルーチンは、回転数の計
算、プログラム割込みの起動、点火遅延角θDL
、加速進角θACCの計算を行なう。第3表に示
すギア位置はステツプ1100のクランク角カウ
ンタのREAD操作から求められ、通電点火処理ル
ーチンのBそのものである。クランク角パルス
は30℃A毎につまりクランクシヤフト1回転につ
き12パルス発生するので、Bは0〜11の値をと
る。このBの値により、第3表に示すさまざま
な処理が実行される。まずギア位置“0”
(#1,4気筒のTDC)及び“6”(#2,3気
筒のTDC)では平均回転時間τm(60℃Aの回
転時間)が後述の過去2回の30℃Aの回転時間の
加算で求められる。このτmから点火遅延角θDL
が(11)式により求められる。これはイグナイタに
よる点火信号の遅れをクランク角度に換算したも
のである。 θDLY=tDLY/τm …(11) tDLY:イグナイタによる点火信号の遅れ時間
(40〜100μs) さらに第18図の50ms処理で算出された加速
進角θACCは半回転ごとに一定角度(0.05〜0.5℃
A)ずつ減算すなわち遅角していく。本例では回
転数の算出は30℃A間の回転に要する時間τN
もとに行なつている。計測区間は第3表に示すよ
うにB=1〜2(30〜60℃A),B=4〜5
(120〜150℃A),B=7〜8(210〜240℃A),
B=10〜11(300〜330℃A)の1回転4区間で
ある。ただし( )内は#1,4気筒のTDCを
0℃Aとしたときのクランク角を表わす。本例の
計測方法を30〜60℃Aの回転時間計測を例として
以下に説明する。ギア位置30℃A及び60℃Aの通
過時間t30,t60は第19図に示すギア割込
みの最初のステツプ1100のタイマーラツチ
READで求められる。 したがつて回転時間τNは(12)式で求められる。
しかしながら通常の回転数計測 τN=t60−t30(単位:8μs) …(12) 方法ではギア位置30℃Aのクランク角パルスで
回転時間計測タイマーをリセツト、スタートさせ
60℃Aのクランク角パルスでタイマーをストツプ
させ、同時に起動された回転数計測ルーチンでタ
イマーの内容をCPuに読み込むのが一般的であ
る。この方法を6気筒エンジンに適用した1例を
第30図に示す。第30図の例では120℃Aの回
転時間計測を行なつているので、タイマーレジス
タを2個必要としている。またリセツト、スター
ト、ストツプの制御回路、及び、タイマーレジス
タ1,2の切換回路が必要となる。これに対し本
実施例のように1つのリアルタイムタイマーをも
ち、クランク角パルスで、そのときのタイマーの
値をレジスタにラツチする方法を第30図に適用
すれば、0,120,240℃Aの各ラツチされた値間
の減算で回転時間が計測でき、回路が非常に簡単
となる。特に1点火に対し何回も通電点火計算を
行なう場合、通電点火計算ごとに最新の回転数を
用いて計算を行なう必要性から、回転数の計測区
間がたとえば0〜120℃A,60〜180℃A等のよう
にオーバーラツプする可能性がある。というの
は、エンジンの燃焼サイクルによる回転変動の影
響を最小限にするため回転数の計測区間はあまり
短くできないためである。 この場合、第30図に示すようなタイマーレジ
スタのスタート、ストツプによる回転時間計測の
方法を採用すると、タイマーレジスタの数が多く
なり、かつ切換えの回路が非常に複雑になる。こ
れに対し本実施例に示す方法を採用すれば、回路
的には本実施例と全く同一の回路そのままで実現
でき、プログラムによる減算が増加するだけとい
う大きな利点をもつ。 固定位置処理のもう一つの機能としてプログラ
ム割込みの起動が実行される。これはESA計算
すなわち通電点火計算を行なうルーチンで第3表
に示すようにギア位置“2”(B=60℃A)
“5”(B=150℃A),“8”(B=240℃A),
“11”(B=330℃A)のときすなわち回転数計測
終了直後起動される。 起動は第6図に示す割込み制御部63のフリツ
プフロツプ301を端子441からの信号でセツ
トすることにより実現され、プログラム割込要求
信号(端子445)が“0”となる。プログラム
割込みの優先順位はギア割込みの次なので、第1
9図のギア割込み処理ルーチンの終了後直ちにプ
ログラム割込みがかかり、ESA計算等が実行さ
れる。以上ギア割込みの処理ルーチンを説明した
がこの割込みはその性格上、クランク角パルスの
幅(30℃A)内で処理を終了する必要がある。と
いうのは、処理が停滞すると正確なギア位置が失
なわれるからである。したがつて処理時間は、実
用上最も厳しい、回転数6000rpmの30℃Aすなわ
ち約800μs以内に押えなければならない。 最後にプログラム割込み処理ルーチンを第26
図に示す。このプログラム割込み処理ルーチンは
本来ギア割込みで処理すべきプログラムである。
なぜなら通電点火計算の最も主要なパラメータで
ある回転数Nの計測はギア割込みで行なわれ回転
数計測直後のステツプで通電点火計算を開始すれ
ば、最も制御の応答性がよくなる。しかしながら
このプログラム割込み処理ルーチンは実行に最大
約1.5ms程度必要である。したがつて、前述のよ
うにギア割込みの許容処理時間が800μsである
ので、プログラム割込み処理ルーチンをギア割込
み処理ルーチンに包含させることはできない。現
在、コンピユータの処理速度は着実に高速になつ
ているので通電点火計算の処理時間も短くなるこ
とが期待される。しかし同時に、点火時期のより
正確な制御のため、クランク角の位置信号(クラ
ンク角パルス)は増加する傾向にあり、それに伴
なつてギア割込みの許容処理時間も短くなる可能
性がある。又、エンジン制御の多様化、ち密化の
傾向から制御内容が複雑になり、その結果処理時
間が長くなる傾向がある。したがつて特に本例の
ようにCPuから、命令を出力し、次のクランク角
パルスでダウンカウントを開始するという制御方
法を採用した場合、ギア割込みで処理すべき内容
が多くなり、それに伴なつて処理時間も増加する
ので、プログラム割込みは不可欠となる。一方プ
ログラム割込み以外の下位レベルのルーチンたと
えばメインルーチンで通電点火計算を処理する方
法もあるが、この方法では前述のようにギア割込
みで計測された回転数Nの反映が遅れ点火システ
ムの応答性が悪化する。以下、第26図により、
プログラム割込みの処理ルーチンを説明してい
く、まずステツプ1200では第6図に示す割込
み制御部63の端子442にリセツト信号を印加
し、フリツプフロツプ301をリセツトし、プロ
グラム割込み要求信号端子445を“1”にもど
す。次にステツプ1201に進み、処理識別フラ
グPiPを調べ“0”すなわち前回のプログラム割
込みでQ2処理を実行していればステツプ120
2に、“1”すなわちQ1処理を実行していればス
テツプ1204に進む。ステツプ1202,12
04ではそれぞれQ1処理フラグQ1とQ2処理フ
ラグQ2が調べられ、“1”ならばそれぞれQ1
理ステツプ1203、Q2処理ステツプ1205
に進み、“0”ならばプログラム割込み処理ルー
チンを完了する。Q1処理フラグQ1は第3表の
ギア割込みのうちの固定位置処理でギア位置
“2”(B=60℃A)“8”(B=240℃A)で
“1”にセツトされ、Q1処理ステツプ1203の
実行で“0”にリセツトされる。 Q2処理フラグQ2はギア位置“5”(B=150
℃A)“11”(B=330℃A)で“1”にセツトさ
れ、Q2処理1205の実行で“0”にリセツト
される。Q1処理ステツプ1203、Q2処理ステ
ツプ1205の内容を第27図に示す。Q2処理
の場合、ステツプ1211以降の通電点火計算は
低回転たとえば4000rpm以下で実行される。すな
わちステツプ1220でギア割込みで計算された
平均回転時間τmとtH(4000rpm相当の30℃A
回転時間)が比較され、低回転領域、τm≧tH
のときはステツプ1211に進み、以下通電点火
計算が実行され、高回転領域τm<tHのとき
は、計算は実行せずQ2処理を終わる。ステツプ
1211では前述のギア割込みの固定位置処理で
説明した。クランク角パルスの通過時間から回転
数Nが求められる。ギア位置“2”(B=60℃
A)起動のQ1処理の場合Nは(12)式で求めたτN
の逆数から(13)式により求められる。 N=8/τN×30/360×60×106(rpm) …(13) (τNの単位は8μs) 次にステツプ1212で第1図に示すスタータ
ースイツチ23からの信号を調べ“ON”ならば
固定の値θCRを点火角θxに入れ“OFF”なら
ばステツプ1213に進み、回転数N4とDMA手
法を用いてRAM70の所定の番地の書き込まれ
た吸入空気量Gaとから一回転あたりの吸入空気
量Ga/Nを求める。ステツプ1214において
は、ROM71内に格納した回転数Nと吸入空気
量Ga/Nに対応して与えられる基本進角θMAP
を表わすマツプから、ステツプ1211,121
3で求めた(N,Ga/N)について下記(14),
(15)式を満たすマツプ上の4点の値θMAP1
(N1,(Ga/N)),θMAP2=(N1,(Ga/N)
),θMAP3=N2(Ga/N),θMAP4
(N2,(Ga/N))をまず読み取る。この実施
例では基本進角を表わすマツプは、第4表のよう
にGa/Nについては0.001(g/cm3,rpm)から
0.016(g/cm3rpm)まで0.001(g/cm3・rpm)
きざみにて、又Nについては500(rpm)から
1000(rpm)までは100(rpm)きざみに1000
(rpm)から6000(rpm)までは500(rpm)きざ
みにて基本進角を表わすデータが格納(第4表で
は詳細な値は省略してある)されており、(16×
16=)256ポイントの二次元マツプである。
[Table] The calculated value storage table iGT whose contents are shown in Table 1 is calculated by a program interrupt described later. Therefore, a gear interrupt may occur during each data update of table iGT.
Two sets of iGT have been secured: iGT 1 and iGT 2 . Current ignition processing step 110 using table iGT1
2 is shown in Figures 20 and 21. The energization ignition processing step 1103 using table iGT2 is also the same as step 1102 except that the data used is table iGT2 instead of table iGT1. The energization ignition process will be explained below with reference to FIGS. 20 and 21. First, in step 1110, the state of coil A (ignition coil for #2 and #3 cylinders) of the ignition coils 7 is checked. Coil A state S A is 1 of coil control table CCT shown in Table 2.
There are two flags: “0” is before energizing, “2” is when energizing,
“4” represents after ignition. That is, gear position 11 of fixed position processing step 1104 shown in Table 3
(ATDC300°CA with respect to TDC of coil B) S A
is set to “0” in coil A energization ON processing step 111
2 to “2” Coil A ignition processing step 1123
is set to "4". When coil A state S A is “0” and is not energized, the latest value θ 1 of the energized gear position calculated by the program interrupt described later and the current value of coil A (#2, 3 cylinders) with respect to TDC (top dead center) The gear position A of is compared in step 1111, and if A ≧ θ 1 , the process proceeds to step 1112 for coil A energization ON processing, and if A has not reached the energized gear position, the process proceeds to the processing routine for coil B shown in Fig. 21. . Coil A energization ON processing step 11
12 is shown in FIG. A at step 1140
> θ 1 or A = θ 1 . A > θ 1 is established when the latest value of the energized gear position is earlier than the previous value, such as during acceleration, when the ignition angle θx is greatly advanced, or when the battery voltage suddenly decreases. be. At this time, the current position has already passed the position where the current should be applied, so steps 1142 and 11 are performed.
44, the first coil A is energized at step 1144 with the next crank angle pulse.
The energization down counters 900 and 901 in FIG. 1 are set to "0", and a coil A energization command is output in step 1145. In the normal case where A = θ 1 is established, the process proceeds to step 1143, sets the calculated value τ in the energization down counter, and returns to step 1.
At 145, a coil A energization command is output. Then, as described above in the explanation of the circuit operation in Fig. 11, after the down count starts with the next crank angle pulse, the coil A igniter signal is reversed from "1" to "0" as shown in Fig. 3 i. . The coil A energization angle θ A set in steps 1141 and 1142 represents the latest crank angle at which energization actually started, and is used in the following steps. At step 1146, the aforementioned coil A state S A is set to "2". Further step 1113
The coil A ignition calculation flag A is set to "0". This flag A is set at program interrupt in order to prevent misfires and secure the power ON time.
This flag requests that the ignition angle θx calculated in the ESA calculation step be corrected and calculated using the crank angle θA at which energization actually started. The request for correction calculation, that is, flag A , occurs at the start of energization described above and at the time described below.
Set to “0” immediately after execution of ESA calculation.
Next, if the coil A status S A is "2", that is, it is energized, the process proceeds to step 1114, and it is determined whether the gear position is where ignition processing is performed. Make sure to set the ignition advance angle
Since BTDC is within the range of 0 to 70° CA, coil A ignition processing is performed at gear positions 9 to 11 (i.e., assuming #2 and 3 cylinder TDC is 0° CA, BTDC is 30°, 60°, 90°).
゜CA) is sufficient. Therefore, in this example, θOFF=9. If the current position A of coil A ≧θOFF is satisfied in step 1114, the process proceeds to step 1115; otherwise, the process proceeds to the processing routine for coil B in FIG. 21. If the coil A ignition calculation flag A is "0" in step 1115, the aforementioned correction calculation of the ignition angle θx is executed. First step 1
116, the actual energization angle θ A and the allowable minimum dwell angle calculated from the program interrupt (the minimum energization time required for normal combustion of the engine, converted into a crank angle based on the rotational speed at that time)
From θ'ON, the maximum allowable advance ignition angle in terms of the current-on time is calculated as θ A x. This value and the optimum ignition angle θx calculated in the ESA calculation step of the program interrupt are compared in step 1119, and θx
If ≦θ A x, θ A x, and if θx>θ A x, θx is rewritten as the actual coil A control ignition angle θ A x in the coil control table CCT shown in Table 2. In other words, the top priority is to prevent misfires, and if the latest value of the ignition advance is too advanced,
In order to secure the energization time, θ A x calculated in step 1116 is set as the upper limit of the advance angle. However, as shown in steps 1117 and 1118, if the maximum allowable advance ignition angle comes after top dead center (TDC), the top dead center (θM A x = 360° CA) is set to the actual ignition angle θ A x. ing. Generally, when using a computer to calculate and control ignition timing in synchronization with the crank angle, the conventional method is to control one or more energizations and ignitions with one energization ignition calculation, and to control the energization and ignition at least once during the energization ignition calculation. The timing and ignition timing were used as they were for actual control, and a new ignition timing was not calculated by the energization ignition calculation during energization. However, as computers become faster, it has become possible to start two or more energization ignition calculations for one ignition, especially at low engine speeds, and use the latest calculated value. In the case of controlling actual automobile engines, etc., where the rotation speed fluctuates by one order of magnitude from 600 to 6000 rpm, consider that conventionally, the energized ignition calculation was started early due to calculation time constraints for the energized ignition calculation at high rotation speeds. Therefore, the method of starting energization ignition calculation many times for one ignition and adopting the latest calculated value that is in time for actual control will greatly improve transient response during acceleration and improve drivability. Contribute to improvement. In this example, the energization ignition calculation is started four times per crank rotation, but if a faster computer is used, the crank angle pulse will be generated at 30°C.
It is also possible to perform calculations for each A. Although not mentioned in this example, a method in which the energization ignition calculation is performed not in crank angle synchronization but in time synchronization (e.g., the 8ms processing step in this example) or in the main routine (e.g., EEC of the hood) can also be performed at step 1116 in Fig. 20.
It is necessary to recalculate the actual ignition timing shown in ~1121. In particular, by adopting a double coil system as in this example, the energization ON timing is doubled (0 to 360℃A) compared to the normal single coil system (0 to 180℃A).
If it can be set earlier, to take advantage of that advantage, there is a possibility that the energization ON timing and the ignition timing will be far apart.In order to reduce abnormal combustion caused by the energization time such as misfires, readjusting the ignition timing as described above is necessary. It is essential. In step 1121, the control ignition gear position θ A x 1 is calculated from the actual coil A control ignition angle θ A x.
Calculated using formula (2), coil A ignition calculation flag A
Return to “1”. The process then proceeds to step 1122. Step 111
If A is not “0” in 5, directly proceed to this step 1.
The program moves to step 122. In step 1122, the coil A control ignition gear position θ A x 1 is compared with the current gear position A. If A ≧θ A x 1 , proceed to coil A ignition processing step 1123, and A < θ A x 1
If so, do nothing and proceed to the processing routine for coil B in FIG. 21. A detailed flowchart of step 1123 is shown in FIG. FIG. 24 is almost the same as FIG. 22, and first, in step 1160, A > θ A x 1
or A = θ A x 1 . A > θ A x 1 holds because the ESA calculation step ended just before this gear interrupt, the new ignition timing value became available, and the new calculated value was advanced compared to the previous calculated value. This is the case. In this case, the current position passes the gear position where ignition should be performed, so step 11
At steps 62 and 1163, the ignition down counters 902 and 903 of the energization ignition control section 69 shown in FIG. A signal is sent to the second igniter 81 of the igniter 8. If A = θ A x 1 , the ignition down counters 902, 90 of the energization ignition control section 69
The ignition down counter value τx set to 3 is (2)
It is calculated in step 1161 using the equation (2A). τx are adjacent as described above. τx = τx (θ A x - θ A x 1 ) - (2A) θ A x: Coil A controlled ignition angle θ A x 1 : Coil A controlled ignition gear position Between the gear positions ( It is expressed as the time required from the smaller gear position to an arbitrary point at an interval of 30°C (A). At step 1163, τx is set in the ignition down counter, and at step 1164, a coil A ignition command is output. As a result, as mentioned above, the down count starts at the next crank angle pulse after the ignition command is output, and when the down count ends, the coil A igniter signal changes from "1" to "0" as shown in Figure 3i. It reverses and ignition occurs. Next, in step 1165, coil A status S A is set to "4", and the coil A ignition processing step is completed.
This concludes the explanation of the processing routine of coil A.
The process moves to the processing routine for coil B shown in FIG.
The processing routine for coil B is also completely similar to the processing routine for coil A. Gear current position B is #14
Since it is based on the TDC of the cylinder (coil B), it is shifted by 180°A from the current position A , and equation (10) holds true. B = A + 6 (mod12) (10) The steps for turning on the current to coil B are shown in FIG. 23, and the steps for igniting the coil B are shown in FIG. 25. The above completes step 110 of energization ignition processing in gear interrupt.
After completing the explanation of step 2 and 1103, the fixed position processing step 1104 will be explained next. The fixed position processing routine, whose contents are shown in Table 3 above, calculates the rotation speed, activates a program interrupt, and calculates the ignition delay angle θ DL.
Y , acceleration advance angle θ ACC are calculated. The gear positions shown in Table 3 are obtained from the READ operation of the crank angle counter in step 1100, and are exactly B of the energization ignition processing routine. Since the crank angle pulse is generated every 30°C, or 12 pulses per revolution of the crankshaft, B takes a value from 0 to 11. Depending on the value of B , various processes shown in Table 3 are executed. First gear position “0”
(TDC of #1, 4 cylinders) and "6" (TDC of #2, 3 cylinders), the average rotation time τm (60℃A rotation time) is the sum of the past two 30℃A rotation times described below. is required. From this τm, the ignition delay angle θ DL
Y is determined by equation (11). This is the ignition signal delay caused by the igniter converted into a crank angle. θ DLY = t DLY / τm … (11) t DLY : Delay time of ignition signal by igniter (40 to 100 μs) Furthermore, acceleration advance angle θ ACC calculated by the 50 ms processing in Fig. 18 is a constant angle ( 0.05~0.5℃
A) Subtract or retard the angle. In this example, the rotation speed is calculated based on the time τ N required for rotation at 30°C. The measurement interval is B = 1~2 (30~60℃A), B = 4~5 as shown in Table 3.
(120-150℃A), B = 7-8 (210-240℃A),
B = 10-11 (300-330°C A), 4 sections per revolution. However, the numbers in parentheses indicate the crank angle when the TDC of #1 and #4 cylinders is 0°C. The measurement method of this example will be explained below using rotation time measurement at 30 to 60°C as an example. The transit times t30 and t60 for gear positions 30°C and 60°C correspond to the timer latch of the first step 1100 of the gear interrupt shown in FIG.
Required with READ. Therefore, the rotation time τN can be obtained from equation (12).
However, in the normal rotation speed measurement τ N =t60-t30 (unit: 8μs)...(12) method, the rotation time measurement timer is reset and started with a crank angle pulse at a gear position of 30℃A.
It is common to stop the timer with a crank angle pulse of 60°C, and read the contents of the timer into the CPU using a rotational speed measurement routine that is started at the same time. An example in which this method is applied to a six-cylinder engine is shown in FIG. In the example shown in FIG. 30, since the rotation time is measured at 120°C, two timer registers are required. Also, reset, start, and stop control circuits and a switching circuit for timer registers 1 and 2 are required. On the other hand, if the method of this embodiment, which has one real-time timer and latches the timer value at that time in a register using a crank angle pulse, is applied to Fig. 30, Rotation time can be measured by subtracting between each latched value, making the circuit extremely simple. In particular, when performing energization ignition calculations many times for one ignition, it is necessary to use the latest rotation speed for each energization ignition calculation, so the rotation speed measurement interval is, for example, 0 to 120℃A, 60 to 180℃. There is a possibility of overlap, such as ℃A. This is because the rotational speed measurement interval cannot be made too short in order to minimize the influence of rotational fluctuations due to the combustion cycle of the engine. In this case, if a method of measuring rotation time by starting and stopping a timer register as shown in FIG. 30 is adopted, the number of timer registers will increase and the switching circuit will become very complex. On the other hand, if the method shown in this embodiment is adopted, it can be implemented using the same circuit as in this embodiment, and has the great advantage that the number of subtractions performed by the program only increases. Another function of fixed position processing is the activation of program interrupts. This is a routine that performs ESA calculation, that is, energization ignition calculation, and as shown in Table 3, gear position "2" ( B = 60℃A)
“5” ( B = 150℃A), “8” ( B = 240℃A),
It is activated when "11" ( B = 330℃A), that is, immediately after the rotation speed measurement is completed. Activation is realized by setting the flip-flop 301 of the interrupt control section 63 shown in FIG. 6 with a signal from the terminal 441, and the program interrupt request signal (terminal 445) becomes "0". The priority of program interrupts is after gear interrupts, so
Immediately after the gear interrupt processing routine shown in FIG. 9 is completed, a program interrupt occurs, and ESA calculation etc. are executed. The gear interrupt processing routine has been described above, but due to its nature, the processing must be completed within the width of the crank angle pulse (30°A). This is because when the process stalls, accurate gear position is lost. Therefore, the processing time must be kept within 30° C. at a rotation speed of 6000 rpm, which is the most practical limit, or about 800 μs. Finally, the program interrupt processing routine is executed in the 26th step.
As shown in the figure. This program interrupt processing routine is originally a program that should be processed by gear interrupts.
This is because the measurement of the rotational speed N, which is the most important parameter in the energization ignition calculation, is performed at a gear interrupt, and if the energization ignition calculation is started at a step immediately after the rotational speed measurement, the responsiveness of the control will be the best. However, this program interrupt handling routine requires a maximum of about 1.5 ms to execute. Therefore, since the allowable processing time for gear interrupts is 800 μs as described above, the program interrupt processing routine cannot be included in the gear interrupt processing routine. Currently, the processing speed of computers is steadily increasing, so it is expected that the processing time for energization ignition calculations will also become shorter. However, at the same time, in order to more accurately control the ignition timing, the crank angle position signal (crank angle pulse) tends to increase, and the allowable processing time for gear interrupts may accordingly become shorter. Furthermore, as engine control becomes more diverse and more detailed, control contents tend to become more complex, and as a result, processing time tends to increase. Therefore, especially when adopting a control method like this example in which the CPU outputs a command and starts counting down at the next crank angle pulse, there will be a large number of contents to be processed by the gear interrupt. Since this increases processing time, program interrupts are essential. On the other hand, there is a method of processing the energization ignition calculation in a lower-level routine other than the program interrupt, such as the main routine, but with this method, as mentioned above, the reflection of the rotation speed N measured by the gear interrupt is delayed and the responsiveness of the ignition system is affected. Getting worse. Below, according to Figure 26,
The program interrupt processing routine will be explained. First, in step 1200, a reset signal is applied to the terminal 442 of the interrupt control section 63 shown in FIG. 6, the flip-flop 301 is reset, and the program interrupt request signal terminal 445 is set to "1". Return to. Next, proceed to step 1201, check the process identification flag PiP, and if it is "0", that is, the Q2 process was executed at the previous program interrupt, step 120 is executed.
2, if it is "1", that is, the Q1 process is being executed, the process advances to step 1204. Steps 1202, 12
In 04, the Q1 processing flag Q1 and the Q2 processing flag Q2 are checked, and if they are "1", the Q1 processing step 1203 and the Q2 processing step 1205 respectively.
If the flag is "0", the program interrupt processing routine is completed. Q1 processing flag Q1 is set to "1" at gear position "2" ( B = 60℃A) and "8" ( B = 240℃A) in the fixed position processing of the gear interrupts in Table 3. It is reset to "0" by executing Q1 processing step 1203. Q2 processing flag Q2 is gear position “5” ( B = 150
It is set to "1" at C A) "11" ( B = 330 C A), and is reset to "0" by executing Q2 processing 1205. The contents of Q1 processing step 1203 and Q2 processing step 1205 are shown in FIG. In the case of the Q2 process, the energization ignition calculations after step 1211 are executed at low rotation speeds, for example, 4000 rpm or less. In other words, the average rotation time τm and tH (30°C
rotation time) are compared, and in the low rotation region, τm≧tH
When this is the case, the process proceeds to step 1211, where the energization and ignition calculation is executed, and when τm<tH in the high rotation region, the calculation is not executed and the Q2 process ends. Step 1211 was explained in the above-mentioned gear interrupt fixed position processing. The rotational speed N is determined from the passing time of the crank angle pulse. Gear position “2” ( B = 60℃
A) In the case of Q1 processing of startup, N is τN obtained by equation (12)
It is obtained from the reciprocal of , using equation (13). N=8/τN×30/360×60×10 6 (rpm) ...(13) (The unit of τN is 8 μs) Next, in step 1212, the signal from the starter switch 23 shown in FIG. 1 is checked and if it is “ON”. If the fixed value θ CR is set to the ignition angle θx and it is “OFF”, the process proceeds to step 1213, and the intake air amount Ga written in the predetermined address of the RAM 70 is calculated per rotation using the rotation speed N 4 and the DMA method. Find the intake air amount Ga/N. In step 1214, the basic advance angle θM AP given corresponding to the rotational speed N and the intake air amount Ga/N stored in the ROM 71 is determined.
Steps 1211 and 121 from the map representing
Regarding (N, Ga/N) obtained in 3, the following (14),
Values of 4 points on the map that satisfy equation (15) θM AP1 =
(N 1 , (Ga/N) 1 ), θM AP2 = (N 1 , (Ga/N)
2 ), θM AP3 = N 2 (Ga/N) 1 , θM AP4 =
(N 2 , (Ga/N) 2 ) is first read. In this example, the map representing the basic advance angle is from 0.001 (g/cm 3 , rpm) for Ga/N as shown in Table 4.
0.016 (g/cm 3 rpm) to 0.001 (g/cm 3 rpm)
In increments, and for N from 500 (rpm)
1000 (rpm) in 100 (rpm) steps up to 1000 (rpm)
(rpm) to 6000 (rpm), data representing the basic advance angle is stored in steps of 500 (rpm) (detailed values are omitted in Table 4).
16=) It is a two-dimensional map with 256 points.

【表】 N1<N<N2 −(14) (Ga/N)<(Ga/N)<(Ga/N) −(15) ステツプ1214では次に上記4点の値から、
まずNについて(16),(17)式により線形補間計
算する。 θMAP5=θMAP3−θMAP1/N−N ×(N−N1)+θMAP1 −(16) θMAP6=θMAP4−θMAP2/N−N (N−N2)+θMAP −(17) 次に(Ga/N)について線形補間計算を
(18)式により行ない基本進角θMAPをうる。ス
テツプ θMAP=θMAP6−θMAP5/(Ga/N)
(Ga/N) {(Ga/N)− (Ga/N)}+θMAP5 −(18) 1215では基本進角に各種補正進角を加え
(19)式により点火角θxが求まる。 θx=TDC−(θMAP+θEGR +θACC+θWT +θDLY) −(19) θEGR:EGR進角…(8)式参照、50msec処理 θACC:加速進角…(5)式参照、50msec処理 回定位置処理 θWT:水温進角…メインルーチン θDLY:点火遅延角…(11)式参照、固定 位置処理 ステツプ1218及び1215実行後、第28
図に示すESA計算ステツプ1216に進む。第
28図に示すESA計算ステツプにおいて、ステ
ツプ1230〜1233では点火角がθMiN
(TDC−70℃A)からθMAx(TDC)の範囲内
に調整する処理を行う。次にステツプ1234で
点火ギア位置θx1を(2)式により算出する。ステツ
プ1235では第17図に示す8ms処理ルーチン
でバツテリー電圧より算出された通電ON時間τ
ONがステツプ1211で計算された回転数Nに
より通電ONの継続角、すなわちドウエル角θON
に換算される。このθONを用いてステツプ12
36で許容最小ドウエル角θ′ONが計算される。
本例ではθ′ONはθONの75%の値で代用してい
る。続いてステツプ1237では点火角θxとド
ウエル角θONから通電角θが計算される。ステ
ツプ1238,1239でθ≧0となるよう通電
の上限に調整する。ステツプ1240では通電角
θに基づき通電ギア位置θと通電ダウンカウン
タ値τが(1)式のように算出される。 最後に前述の点火計算フラグAA,点火計算
フラグBBが“0”にセツトされる。Q1処理、
Q2処理で算出された計算値は第1表に示す計算
値ストレージテーブルiGTに書き込まれる。この
計算値ストレージテーブルは2つあり、(iGT
1,iGT2)、フラグTABが“0”ならばiGT
2に“1”ならばiGT1に書き込まれ、書き込み
完了後ステツプ1217でフラグTABを反転
させている。 なお、上記実施例では電磁弁15はキヤブレー
タ13のエアブリード14の空気流量を補正する
ものに適用した場合であつたが、キヤブレータ1
3の燃料通路の燃料量を制御するものとして、
EGRバルブ9の開度を制御するものとして、或
いはエンジンの排気系に供給する二次空気の量を
制御するものとして、更にはエンジンのスロツト
ル弁をバイパスする空気の量を制御するものとし
て等、種々の制御装置用に適用できることはいう
までもない。 また、上記実施例では、CPU60は50ms処理
プログラムにて目標デユーテイ比Drefの計算を
実行し、その計算値に従つてこの50ms処理プロ
グラムにて50ms毎に電磁弁のオン・オフ(ON,
OFF)を判別し指令するものであつたが、8ms
毎に実行される8ms処理プログラムにて目標デユ
ーテイ比の計算値Drefに従つて電磁弁のON,
OFF判別制御を実行することも可能である。こ
の場合の効果例によつて本発明方法の効果を第3
2図を参照して説明する。第32図において電磁
弁の制御周期は8.192×6=49.152ms、分解能は
8.192msである。又図中↓点は50ms処理プログラ
ムにより制御目標デユーテイ比Drefが計算され
た時点を示し、各計算値に対し2つの方法により
電磁弁をON,OFF制御するための出力をa,b
に示す。第32図aの波形図に示す方法はラツ
チ、ダウンカウンタ、制御回路を用いた第31図
に示す従来の方法をそのままCPuによるプログラ
ムで処理する方法であり、ラツチに目標デユーテ
イ比Drefをセツトする代わりに、8ms処理プログ
ラムにより、8.192ms毎に電磁弁にON,OFFを
指令する。これに対し第32図bは本発明思想に
基づく方法の波形図を示しており、8ms処理プロ
グラムにより制御目標デユーテイ比DrefにA〜
Eに示すような各区間における実際のデユーテイ
比Drealが達するように電磁弁をON,OFF制御
する。つまり、8ms処硫プログラムにより、次の
8.192msの間、電磁弁をONしたときの過去
49.152msの実際のデユーテイ比Drealと次の
8.192msの間、電磁弁をOFFしたときの過去
49.152ms間における実際のデユーテイ比D′realの
うちどちらか制御目標値Drefに近いか判断し、
近くなるように電磁弁ON,OFFを制御する。第
32図によれば、制御目標値Drefが5/6から1/2
に変化したとき、波形図aの方法では8.192×5
=40.96,41ms後(すなわち5区間D)、目標値
に達するのに対し、波形図bの本発明方法では
8.192×2≒16ms後(すなわち区間A)に、目標
値に達する。上例に示すごとく本発明の方法は波
形図aに示す方法に比べ応答性が格段に改善され
る。ただし、本発明の方法のように8ms毎に
ON,OFFを目標デユーテイ比Dref、実際のデユ
ーテイ比Drealにより判別しなくとも、制御目標
デユーテイ比Drefが1つ前の計算値に比較し
て、増加したら次の制御周期を電磁弁のONから
始め、減少したらOFFから制御を始める方法で
も応答性は改善されるが、この場合オーバーシユ
ート、アンダーシユートが問題になる。
[Table] N 1 <N < N 2 - (14) (Ga/N) 1 < (Ga/N) < (Ga/N) 2 - (15) In step 1214, next, from the values of the above four points,
First, N is calculated by linear interpolation using equations (16) and (17). θM AP5 = θM AP3 -θM AP1 /N 2 -N 1 × (N-N 1 ) + θM AP1 - (16) θM AP6 = θM AP4 - θM AP2 /N 2 -N 1 (N-N 2 ) + θM AP - (17) Next, perform linear interpolation calculation for (Ga/N) using equation (18) to obtain the basic advance angle θM AP . Step θM AP = θM AP6 - θM AP5 / (Ga/N) 2 -
(Ga/N) 1 {(Ga/N) - (Ga/N)} + θM AP5 - (18) In 1215, the ignition angle θx is determined by adding various correction advance angles to the basic advance angle using equation (19). θx = TDC - (θM AP + θEGR + θ ACC + θ WT + θ DLY ) - (19) θEGR: EGR advance angle...see equation (8), 50msec processing θ ACC : Acceleration advance angle...see equation (5), 50msec processing rotation Position processing θ WT : Water temperature advance...main routine θ DLY : Ignition delay angle...see equation (11), fixed Position processing After executing steps 1218 and 1215, the 28th
Proceed to the ESA calculation step 1216 shown in the figure. In the ESA calculation steps shown in FIG. 28, in steps 1230 to 1233, the ignition angle is
(TDC-70°C A) to θM A x (TDC). Next, in step 1234, the ignition gear position θx1 is calculated using equation (2). In step 1235, the energization ON time τ calculated from the battery voltage in the 8ms processing routine shown in FIG.
ON is determined by the rotation speed N calculated in step 1211, the duration angle of energization ON, that is, the dwell angle θON
It is converted to . Step 12 using this θON
At 36, the minimum allowable dwell angle θ'ON is calculated.
In this example, θ'ON is substituted with a value of 75% of θON. Subsequently, in step 1237, the conduction angle θ is calculated from the ignition angle θx and the dwell angle θON. In steps 1238 and 1239, the upper limit of energization is adjusted so that θ≧0. In step 1240, the energizing gear position θ1 and the energizing down counter value τ are calculated based on the energizing angle θ as shown in equation (1). Finally, the aforementioned ignition calculation flag A A and ignition calculation flag B B are set to "0". Q1 processing,
The calculated value calculated in the Q2 process is written to the calculated value storage table iGT shown in Table 1. There are two computed value storage tables (iGT
1, iGT2), if flag TAB is “0”, iGT
If 2 is "1", it is written to iGT1, and after the writing is completed, flag TAB is inverted in step 1217. In the above embodiment, the solenoid valve 15 was applied to correct the air flow rate of the air bleed 14 of the carburetor 13;
As a device for controlling the amount of fuel in the fuel passage No. 3,
As a device for controlling the opening degree of the EGR valve 9, as a device for controlling the amount of secondary air supplied to the exhaust system of the engine, further as a device for controlling the amount of air bypassing the throttle valve of the engine, etc. Needless to say, it can be applied to various control devices. Further, in the above embodiment, the CPU 60 executes calculation of the target duty ratio Dref using the 50ms processing program, and according to the calculated value, the solenoid valve is turned on/off (ON,
OFF), but the 8ms
The solenoid valve is turned on and off according to the calculated value Dref of the target duty ratio in the 8ms processing program that is executed every time.
It is also possible to execute OFF discrimination control. The effect of the method of the present invention can be explained in the third example by the effect example in this case.
This will be explained with reference to FIG. In Figure 32, the control period of the solenoid valve is 8.192×6=49.152ms, and the resolution is
It is 8.192ms. Also, the ↓ point in the figure indicates the time point when the control target duty ratio Dref is calculated by the 50ms processing program, and the output for controlling the solenoid valve ON and OFF using two methods for each calculated value is a and b.
Shown below. The method shown in the waveform diagram of Fig. 32a is a method in which the conventional method shown in Fig. 31, which uses a latch, a down counter, and a control circuit, is processed by a program using the CPU, and the target duty ratio Dref is set in the latch. Instead, the 8ms processing program commands the solenoid valve to turn ON and OFF every 8.192ms. On the other hand, FIG. 32b shows a waveform diagram of the method based on the idea of the present invention, in which the control target duty ratio Dref is changed from A to Dref by the 8ms processing program.
The solenoid valve is controlled ON and OFF so that the actual duty ratio Dreal in each section as shown in E is reached. In other words, with the 8ms sulfurization program, the following
The past when the solenoid valve was turned on for 8.192ms
The actual duty ratio Dreal of 49.152ms and the following
Past when the solenoid valve was turned off for 8.192ms
Determine which of the actual duty ratios D′real during 49.152ms is closer to the control target value Dref,
Control the solenoid valves ON and OFF so that they are close to each other. According to Fig. 32, the control target value Dref is from 5/6 to 1/2.
When the value changes to 8.192×5 using the method shown in waveform diagram a.
= 40.96, the target value is reached after 41ms (that is, 5 sections D), whereas in the method of the present invention shown in waveform diagram b,
The target value is reached after 8.192×2≈16ms (that is, section A). As shown in the above example, the method of the present invention has significantly improved responsiveness compared to the method shown in waveform diagram a. However, like the method of the present invention, every 8ms
Even if ON and OFF are not determined based on the target duty ratio Dref and the actual duty ratio Dreal, the control target duty ratio Dref can be compared with the previous calculated value, and if it increases, the next control cycle will start from the solenoid valve ON. , responsiveness can also be improved by starting control from OFF when it decreases, but in this case overshoot and undershoot become a problem.

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

第1図は本発明の一実施例を示す構成図、第2
図は第1図に示すマイクロコンピユータのブロツ
ク図、第3図並びに第8図は第2図各部の説明の
ための波形図、第4〜7図並びに第9〜13図は
それぞれ第2図各部の電気回路図、第14図は第
2図に示す中央処理ユニツト(CPu)の作動説明
図、第15〜29図は第2図に示すCPuのプログ
ラムの内容を示すフローチヤート、第30図第3
1図並びに第32図は本発明の説明のために引用
する構成図並びに波形図である。 6……マイクロコンピユータ、60……中央処
理ユニツト(CPU)、14……エアブリード、1
5……電磁弁。
FIG. 1 is a configuration diagram showing one embodiment of the present invention, and FIG.
The figure is a block diagram of the microcomputer shown in Figure 1, Figures 3 and 8 are waveform diagrams for explaining each part of Figure 2, and Figures 4 to 7 and 9 to 13 are each part of Figure 2. 14 is an explanatory diagram of the operation of the central processing unit (CPu) shown in FIG. 2, FIGS. 15 to 29 are flowcharts showing the contents of the program of the CPu shown in FIG. 2, and FIG. 3
1 and 32 are a configuration diagram and a waveform diagram cited for explaining the present invention. 6...Microcomputer, 60...Central processing unit (CPU), 14...Air bleed, 1
5... Solenoid valve.

Claims (1)

【特許請求の範囲】[Claims] 1 オン−オフ作動型の電磁弁のオンとオフとの
割合を決定する予め計算された目標デユーテイ比
に基づいてこの電磁弁をオンにすべきか若しくは
オフにすべきかを所定周期毎にマイクロコンピユ
ータの中央処理ユニツトにより判別し、この判別
結果によりこの所定周期毎にこの電磁弁をオン若
しくはオフに制御することにより電磁弁のデユー
テイ比を制御する方法であつて、前記判別結果の
過去の一定な所定回数における前記電磁弁オンの
回数とオフの回数との割合が前記目標デユーテイ
比より大きいか小さいかを前記所定周期毎に比較
することによつて前記電磁弁をオンにすべきかオ
フにすべきかを前記所定周期毎に判別することを
特徴とする電磁弁のデユーテイ比制御方法。
1 A microcomputer determines whether the solenoid valve should be turned on or off at predetermined intervals based on a pre-calculated target duty ratio that determines the ratio between on and off of an on-off type solenoid valve. A method for controlling the duty ratio of a solenoid valve by making a determination using a central processing unit and controlling the solenoid valve to turn on or off at predetermined intervals based on the determination result, the method comprising: Whether the solenoid valve should be turned on or off is determined by comparing whether the ratio of the number of times the solenoid valve is turned on and the number of times the solenoid valve is turned off is larger or smaller than the target duty ratio at each predetermined period. A method for controlling a duty ratio of a solenoid valve, characterized in that the determination is made at each predetermined period.
JP15778178A 1978-12-18 1978-12-18 Duty ratio control method of solenoid valve Granted JPS5582302A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15778178A JPS5582302A (en) 1978-12-18 1978-12-18 Duty ratio control method of solenoid valve

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15778178A JPS5582302A (en) 1978-12-18 1978-12-18 Duty ratio control method of solenoid valve

Publications (2)

Publication Number Publication Date
JPS5582302A JPS5582302A (en) 1980-06-21
JPS6126082B2 true JPS6126082B2 (en) 1986-06-19

Family

ID=15657148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15778178A Granted JPS5582302A (en) 1978-12-18 1978-12-18 Duty ratio control method of solenoid valve

Country Status (1)

Country Link
JP (1) JPS5582302A (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5715164A (en) * 1980-07-02 1982-01-26 Nippon Carbureter Co Ltd Solenoid valve
JPS5781604A (en) * 1980-11-07 1982-05-21 Mitsuwa Seiki Co Ltd Control method for hydraulic actuator
JPS5790707A (en) * 1980-11-26 1982-06-05 Mitsuwa Seiki Co Ltd Digital control method
JPS5781607A (en) * 1980-11-07 1982-05-21 Mitsuwa Seiki Co Ltd Digital control method
JPS57103982A (en) * 1980-12-22 1982-06-28 Nissan Motor Co Ltd Method of driving electromagnetic valve driving apparatus
JPS58193961A (en) * 1982-05-10 1983-11-11 Toyota Motor Corp Automatic transmission for automobile
JPS59134801U (en) * 1983-02-24 1984-09-08 株式会社チノ− Controller output circuit
JPS603704A (en) * 1983-06-22 1985-01-10 Honda Motor Co Ltd Solenoid valve control method
JPS61248949A (en) * 1985-04-26 1986-11-06 Nissan Motor Co Ltd Line pressure control device of automatic transmission
JP3851140B2 (en) * 2001-10-30 2006-11-29 ボッシュ株式会社 Driving method of electromagnetic proportional control valve for flow control

Also Published As

Publication number Publication date
JPS5582302A (en) 1980-06-21

Similar Documents

Publication Publication Date Title
JPS6243071B2 (en)
US4379333A (en) Method and system for operating a power-producing machine at maximum torque under varying operating conditions
US4414946A (en) Control system for an operating event in a vehicular power train
US4376428A (en) Spark timing control system for internal combustion engine
US4280189A (en) Input signal processor used in electronic engine control apparatus
US4322800A (en) Method of reducing fuel consumption rate in internal combustion engines
JPS6126082B2 (en)
JPS6410663B2 (en)
JPS61272470A (en) Ignition timing controlling method for internal-combustion engine
JPS598656B2 (en) fuel injector
JPS61275572A (en) Ignition timing control method of internal combustion engine
US4380982A (en) Ignition timing control method
US4741310A (en) Ignition timing control system for internal combustion engine
JPS591350B2 (en) Electronic ignition timing control device for internal combustion engines
JPH0380982B2 (en)
JPS61169666A (en) Internal combustion engine ignition timing control method
US4552110A (en) Electronic ignition control system
JPS6155610B2 (en)
JPS63134859A (en) Ignition control device for internal combustion engine
JPS6231189B2 (en)
JPS61218774A (en) Ignition controller for internal-combustion engine
JPS6248065B2 (en)
JP3360360B2 (en) Ignition timing control device for internal combustion engine
JPS6038066Y2 (en) Internal combustion engine ignition timing control device
JPS608331B2 (en) Fuel control device for internal combustion engines