JP6583118B2 - エンジン制御装置 - Google Patents

エンジン制御装置 Download PDF

Info

Publication number
JP6583118B2
JP6583118B2 JP2016083931A JP2016083931A JP6583118B2 JP 6583118 B2 JP6583118 B2 JP 6583118B2 JP 2016083931 A JP2016083931 A JP 2016083931A JP 2016083931 A JP2016083931 A JP 2016083931A JP 6583118 B2 JP6583118 B2 JP 6583118B2
Authority
JP
Japan
Prior art keywords
pulse
clock
time
angle
generated
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.)
Active
Application number
JP2016083931A
Other languages
English (en)
Other versions
JP2017193992A (ja
Inventor
鈴木 拓也
拓也 鈴木
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
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2016083931A priority Critical patent/JP6583118B2/ja
Publication of JP2017193992A publication Critical patent/JP2017193992A/ja
Application granted granted Critical
Publication of JP6583118B2 publication Critical patent/JP6583118B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Combined Controls Of Internal Combustion Engines (AREA)

Description

本開示は、エンジンのクランク軸の回転に伴って発生するクランク信号よりも周期の短い角度クロックを生成する技術に関する。
エンジンのクランク軸の回転に伴って発生するクランク信号が表すクランク軸の回転角度位置に基づいて、エンジンを制御する技術が知られている。そして、特許文献1に開示されているように、クランク信号の周期を逓倍数で除算してクランク信号よりも周期の短い角度クロックを生成し、角度クロックに基づいてクランク信号に基づくよりも高精度にエンジン制御を実行する技術が知られている。
クランク信号は、エンジンのクランク軸が一定の角度回転する毎に発生するパルスを有するパルス列と、パルスが欠落しておりパルスとパルスとの角度間隔がパルス列よりも大きい欠落部とを有している。
特許文献1では、CPUがクランク信号のパルス数をソフトウェアでカウントし、角度クロック生成用の専用のハードウェアが角度クロックを生成している。CPUがクランク信号のパルス数をカウントする場合、欠落部であるか否かをソフトウェアで判定し、欠落部においてパルス列と同じ角度間隔でパルスが発生するものとして、ソフトウェアでパルス数をカウントしている。
特開2015−151945号公報
特許文献1に記載の技術に対し、専用のハードウェアではなく汎用の処理装置で角度クロックを生成することが考えられる。汎用の処理装置は角度クロックを生成する専用のハードウェアを備えていないので、角度クロックはソフトウェアにより生成される。
角度クロッを生成する処理装置は、クランク信号のパルスが発生すると、例えば、今回のパルスと前回のパルスとのパルス周期を逓倍数で除算した値を、今回のパルスと次回のパルスとの間で生成する角度クロックのクロック周期とする。角度クロッを生成する処理装置は、他の処理装置から欠落部であると判定したことを通知されると、欠落部の角度間隔に応じたクロック数の角度クロックを生成する。
ここで、例えば欠落部においてそれぞれの処理装置において他のソフトウェア処理が実行されていると、ソフトウェアによる欠落部の判定処理が遅れ、欠落部における角度クロックの生成処理の実行が遅れることがある。
欠落部における角度クロックの生成が遅れ、角度クロックが生成されない期間が生じると、角度クロックが示す角度位置に基づいて実行されるエンジン制御の開始が遅れ、エンジン制御が適切なタイミングで実行されないという問題がある。
本開示の一側面は、エンジンのクランク軸の回転に伴って発生するクランク信号よりも周期の短い角度クロックの生成が停止している期間を極力短くする技術を提供することに
ある。
本開示の一態様であるエンジン制御装置は、欠落判定装置(30)とクロック生成装置(50)とを備えている。
欠落判定装置は、エンジンのクランク軸が一定の角度回転する毎に発生するパルスを有するパルス列と、パルスが欠落しておりパルスとパルスとの角度間隔がパルス列よりも大きい欠落部とを有するクランク信号において、今回発生したパルスが欠落部の開始を示す開始パルスであるか否かをソフトウェアにより判定するように構成された欠落判定部(32、S420〜S438)を備えている。
クロック生成装置は、周期算出部(58、S400〜S408、S466〜S470、S480〜S488、S510〜S514)と、角度カウンタ(54)と、クロック生成部(60)と、停止判定部(56、58、S500〜S504)と、目標設定部(58、S456、S458、S462、S464、S506、S508)と、を備えている。
周期算出部は、パルスが発生する毎に、ソフトウェアにより、今回発生したパルスと前回発生したパルスとのパルス周期をパルスとパルスとの角度間隔に応じて予め設定された逓倍数で除算した値を角度クロックのクロック周期として算出するように構成されている。角度カウンタは、角度クロックのクロック数をカウントする。
クロック生成部は、パルスが発生する毎に設定される目標カウント数に角度カウンタが達するまで、周期算出部が算出するクロック周期で角度クロックを生成するように構成されている。停止判定部は、欠落部においてクロック生成部による角度クロックの生成が停止しているか否かを、ハードウェアとソフトウェアとのうち少なくともハードウェアにより判定するように構成されている。
目標設定部は、今回発生したパルスが開始パルスであると欠落判定部が判定すると、欠落部の終了を示す終了パルスが発生するときに角度カウンタが達する目標カウント数をソフトウェアにより設定するように構成されている。
そして、今回発生したパルスが開始パルスであると欠落判定部が判定しておらず、欠落部において角度クロックの生成が停止していると停止判定部が判定する場合、目標設定部は、終了パルスが発生するときに角度カウンタが達する目標カウント数をソフトウェアにより設定するように構成され、周期算出部は、終了パルスが発生するまでにクロック生成部が生成する角度クロックのクロック周期を算出する用に構成されている。
この構成によれば、欠落部において角度クロックの生成が停止していると停止判定部が少なくともハードウェアにより判定すると、目標設定部は、終了パルスが発生するときにクロックカウンタが達する目標カウント数をソフトウェアにより設定する。終了パルスが発生するときにクロックカウンタが達する目標カウント数が設定されることにより、クロック生成部は角度クロックの生成を開始する。
したがって、欠落部において角度クロックの生成が停止していても、極力早く角度クロックの生成を開始し、角度クロックの生成が停止している期間を極力短くすることができる。
尚、この欄および特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
第1実施形態のエンジン制御装置を示すブロック図。 タイマ専用プロセッサによるパルス検出処理を示すフローチャート。 メインCPUによる欠歯判定処理を示すフローチャート。 タイマ専用プロセッサによる欠歯事前処理を示すフローチャート。 タイマ専用プロセッサによる異常時処理を示すフローチャート。 正常時のクロック生成処理を示すタイムチャート。 異常時のクロック生成処理を示すタイムチャート。 第2実施形態のタイマ専用プロセッサによるパルス検出処理を示すフローチャート。 タイマ専用プロセッサによる異常判定処理を示すフローチャート。 異常時のクロック生成処理を示すタイムチャート。
以下、本開示の実施形態を図に基づいて説明する。
[1.第1実施形態]
[1−1.構成]
図1に示すECU10は車両に搭載され、入力回路12と、出力回路14と、マイコン20とを備えている。ECUはElectronic Control Unitの略であり、マイコンはマイクロコンピュータの略である。
入力回路12は、クランク角センサからクランク信号を入力し、カム角センサからカム信号を入力する。ECU10は、クランク信号とカム信号とに基づいて、エンジンの気筒判別を行う。クランク信号は、クランク軸とともに回転するクランクロータの外周に一定の角度間隔で設置された歯をクランク角センサが検出して発生するパルス信号である。クランクロータには、歯が連続して欠落した欠歯部が存在する。
したがって、クランク信号は、クランク軸が一定の角度回転する毎に発生するパルスを有するパルス列と、パルスが発生しておらずパルスとパルスとの角度間隔がパルス列よりも大きい欠歯部とを有している。欠歯部は、クランク軸の回転方向の基準位置を示している。本実施形態では、2個の歯が欠歯部で欠落している。したがって、欠歯部におけるパルス間の角度間隔は、パルス列におけるパルス間の角度間隔の3倍である。
カム信号は、カム軸とともに回転するカムロータの外周にクランク信号の欠歯部と対応する位置に発生するパルスを有している。
出力回路14は、タイマ制御モジュール50のコンペア部56が出力する信号を、点火モジュール、噴射モジュールに出力する。点火モジュールは点火プラグと点火プラグの駆動回路である。噴射モジュールはインジェクタとインジェクタの駆動回路である。コンペア部56が出力する信号は、点火モジュールが燃料への点火を実行する角度タイミング、ならびに噴射モジュールが燃料噴射を実行する角度タイミングを指示する。
マイコン20は、メインCPU30と、メインCPU30用の専用RAM40と、ROM42と、共有RAM44と、タイマ制御モジュール50と、を備えている。メインCPU30とタイマ制御モジュール50とは、汎用の処理装置である。
マイコン20の各機能は、メインCPU30とタイマ制御モジュール50とがROMまたはフラッシュメモリ等の非遷移的実体的記録媒体に記憶されているプログラムを実行することにより実現される。このプログラムが実行されることにより、プログラムに対応する方法が実行される。
メインCPU30は、ROM42に記憶されている制御プログラムを実行することにより、角度クロックの生成を含むエンジン制御を実行する。例えば、メインCPU30は、角度クロックの生成以外のエンジン制御として、点火制御と燃料の噴射制御とを次回実行する角度タイミングを、タイマ専用プロセッサ58を介してコンペア部56に設定する。
メインCPU30の専用RAM40には、メインCPU30が角度クロック生成を含むエンジン制御で使用するデータが記憶される。例えば、専用RAM40には、後述するエッジカウンタ、最大エッジ位置、欠歯部の開始パルスのエッジ位置、欠歯部の開始パルスの前に発生するパルスのエッジ位置等が記憶される。
共有RAM44には、メインCPU30とタイマ専用プロセッサ58とが共通に参照するデータが記憶される。例えば、共有RAM44には、後述する欠歯フラグ1、欠歯フラグ2、欠歯数、異常処理フラグ等が記憶される。
タイマ制御モジュール50は、エッジ検出部52と、カウンタ部54と、コンペア部56と、タイマ専用プロセッサ58と、クロック生成部60と、図示しないRAM、ROMとを備えている。
エッジ検出部52は、クランク信号のパルスのエッジを検出する。エッジ検出部52が検出するパルスのエッジは、立ち上がりまたは立ち下がりのいずれのエッジでもよい。エッジ検出部52は、クランク信号のパルスのエッジを検出した時刻を記憶している。
カウンタ部54は、各種カウンタを備えている。カウンタ部54は、例えば、クロック生成部60が生成する角度クロックに同期して角度クロックのクロック数をカウントする角度カウンタ、ならびにタイマ専用プロセッサ58の動作クロックに同期してクロック数をカウントする時間カウンタを備えている。
コンペア部56は、タイマ専用プロセッサ58から設定された値と、設定された値に対応するカウンタ部54の角度カウンタおよび時間カウンタとを比較する。設定された値とカウンタとが一致すると、コンペア部56は、噴射モジュールと点火モジュールとに対する出力信号を出力回路14に出力するか、タイマ専用プロセッサ58に対し、設定された値とカウンタとが一致したことに対応する処理の実行を要求する。
タイマ専用プロセッサ58は、実行イベントが発生すると、図示しないROMに記憶されている制御プログラムに基づいて、発生した順番に実行イベントに対応する処理を実行する。
例えば、タイマ専用プロセッサ58は、メインCPU30からの要求により、エンジン制御の実行タイミングを角度タイミングまたは時間タイミングでコンペア部56に設定する。また、タイマ専用プロセッサ58は、エッジ検出部52がクランク信号のパルスのエッジを検出する毎に、前回検出されたパルスと今回検出されたパルスとの間のエッジ間時間を、パルスとパルスとの角度間隔に応じて設定されるエッジ間カウント数で除算する。
前述したように、本実施形態では、欠歯部の開始を示す開始パルスと欠歯部の終了を示す終了パルスとの角度間隔はパルス列のパルス間の角度間隔の3倍である。したがって、欠歯部においてエッジ間時間を除算するエッジ間カウント数は、パルス列においてエッジ間時間を除算するエッジ間カウント数の3倍になる。
タイマ専用プロセッサ58は、前記と今回とのエッジ間時間をエッジ間カウント数で除
算した結果を、エッジ検出部52が次回のパルスのエッジを検出するまでにクロック生成部60が生成する角度クロックのクロック周期とする。
クロック生成部60は内部に図示しない目標値カウンタを備えている。目標値カウンタは、エッジ検出部52がクランク信号のエッジを検出する毎に、クランク信号のパルス列のパルス間の角度間隔に対応するエッジ間カウント数をハードウェアにより加算して目標値カウンタに目標カウント数を設定する。エッジ検出部52が検出したエッジが欠歯部の開始パルスであっても、目標値カウンタは、同じエッジ間カウント数を加算する。
エッジ間カウント数は予め目標値カウンタに設定されている。本実施形態では、エッジ間カウント数として、例えば4が設定されている。クロック生成部60は、角度カウンタのカウント数が目標値カウンタに設定された目標カウント数に達するまで、タイマ専用プロセッサ58が算出した周期で角度クロックを生成する。
クロック生成部60は、クランク信号の次のパルスのエッジをエッジ検出部52が検出する前に角度カウンタのカウント数が目標値カウンタに達すると、角度クロックの生成を停止する。また、クロック生成部60は、クランク信号の次のパルスのエッジをエッジ検出部52が検出するときに角度カウンタのカウント数が目標カウント数に達していない場合、目標カウント数に達するように角度クロックの周期を短くする。
[1−2.処理]
エンジン制御装置として機能するECU10が実行する各種処理について、以下に説明する。
(1)エッジ検出処理
エッジ検出部52がクランク信号のエッジを検出すると、エッジ検出部52はタイマ専用プロセッサ58に図2のフローチャートが示すエッジ検出処理の実行を要求する。タイマ専用プロセッサ58は、他の処理を実行中でなければ、エッジ検出部52からの要求にしたがいエッジ検出処理を実行する。
S400においてタイマ専用プロセッサ58は、次式(1)に基づき、今回のエッジ検出時刻と前回のエッジ検出時刻との時間差をエッジとエッジとの間のエッジ間時間として算出する。今回のエッジが欠歯部の終了パルスのエッジの場合、式(1)から算出されるエッジ間時間は、今回のエッジが欠歯部の終了パルス以外のパルスのエッジの場合よりも長くなる。
エッジ間時間=今回のエッジ検出時刻−前回のエッジ検出時刻・・・(1)
タイマ専用プロセッサ58は、S400の終了後、エッジ検出部52が今回エッジを検出した時刻を前回のエッジ検出時刻として記憶する。
S402においてタイマ専用プロセッサ58は、欠歯フラグ1がオフであるか否かを判定する。後述する図3の欠歯判定処理において、メインCPU30は、欠歯部の開始パルスのエッジを検出すると欠歯フラグ1をオンに設定し、開始パルス以外のエッジを検出すると欠歯フラグ1をオフに設定する。
エッジとエッジとの間において、図2のエッジ検出処理は図3の欠歯判定処理よりも前に実行される。したがって、メインCPU30が欠歯部の開始パルスのエッジを検出して欠歯フラグ1をオンに設定している状態で、エッジ検出部52が図2のエッジ検出処理の実行をタイマ専用プロセッサ58に要求するトリガとなるエッジは、欠歯部の終了パルスのエッジである。
これに対し、メインCPU30が欠歯部の開始パルス以外のエッジを検出して欠歯フラグ1をオフに設定している状態で、エッジ検出部52が図2のエッジ検出処理の実行をタイマ専用プロセッサ58に要求するトリガとなるエッジは、欠歯部の終了パルス以外のエッジである。
S402の判定がYesであり、欠歯フラグ1がオフの場合、S404においてタイマ専用プロセッサ58は、次式(2)に基づいて角度クロックの周期を算出する。
角度クロックの周期=エッジ間時間/4 ・・・(2)
式(2)のエッジ間時間はS400で算出された値である。また、S404は欠歯フラグ1がオフの場合に実行されるので、今回、図2のエッジ検出処理を実行するトリガとなるエッジは、欠歯部の終了パルス以外のエッジである。
したがって、エッジ間時間の間に角度カウンタが角度クロックのパルス数をカウントするエッジ間カウント数は、本実施形態では4である。そこで、式(2)において、エッジ間時間を4で除算することにより、角度クロックの周期を算出できる。S404の実行後、処理はS408に移行する。
S402の判定がNoであり、欠歯フラグ1がオンの場合、S406においてタイマ専用プロセッサ58は、次式(3)に基づいて角度クロックの周期を算出する。
角度クロックの周期=エッジ間時間/12 ・・・(3)
式(3)のエッジ間時間はS400で算出された値である。また、S406は欠歯フラグ1がオンの場合に実行されるので、今回、図2のエッジ検出処理を実行するトリガとなるエッジは、欠歯部の終了パルスのエッジである。
したがって、エッジ間時間の間に角度カウンタが角度クロックのパルス数をカウントするエッジ間カウント数は12=4×3である。そこで、式(3)において、エッジ間時間を12で除算することにより、角度クロックの周期を算出できる。S406の実行後、処理はS408に移行する。
S408においてタイマ専用プロセッサ58は、S404またはS406で算出した周期を、今回発生したクランク信号のパルスと次回発生するクランク信号のパルスとの間でクロック生成部60が生成する角度クロックの周期として設定する。
ここで、図6に示すように、エッジ検出部52がクランク信号のパルスのエッジを検出すると、クロック生成部60において、ハードウェアにより目標値カウンタ200にパルス列のエッジ間カウント数を加算して更新する。これにより、クロック生成部60は、目標値カウンタ200の値に達するまで角度クロックを生成する。そして、角度カウンタ210は、目標値カウンタ200まで角度クロックをカウントする。
そして、エッジ検出部52は、クランク信号のパルのエッジを検出すると、タイマ専用プロセッサ58にエッジ検出処理300の実行を要求する。後述するように、エッジ検出処理300においてタイマ専用プロセッサ58は、メインCPU30に欠歯判定処理302の実行を要求する。
後述するように、欠歯判定処理302においてメインCPU30は、今回エッジ検出部52が検出したエッジが欠歯部の開始パルスのエッジであるか否かを判定する。欠歯部の開始パルスのエッジであれば、メインCPU30は、タイマ専用プロセッサ58に欠歯事前処理304の実行を要求する。
後述するように、欠歯事前処理304においてタイマ専用プロセッサ58は、目標値カウンタにパルス列のエッジ間カウント数の2倍の値をソフトウェアにより加算して更新する。これにより、欠歯部においてパルス列のエッジ間カウント数の3倍の値が目標値カウンタに設定される。これにより、欠歯部において角度クロックは途切れることなく生成される。
しかし、図7に示すように、エッジ検出部52がエッジを検出してエッジ検出処理310の実行をタイマ専用プロセッサ58に要求したときに、タイマ専用プロセッサ58が他処理を実行中のためにエッジ検出処理310の実行が遅れることがある。
また、エッジ検出処理310において欠歯判定処理312の実行を要求されたときにメインCPU30が他処理を実行中のために、欠歯判定処理312の実行が遅れることがある。すると、メインCPU30が欠歯判定処理312において要求するタイマ専用プロセッサ58による欠歯事前処理314の実行が遅れる。その結果、欠歯部において角度クロックが生成されない期間が生じるおそれがある。
特に、エンジンの回転数が上昇すると欠歯部の時間間隔は短くなる。この場合、欠歯判定処理と欠歯事前処理との実行が遅れると、欠歯部において角度クロックが生成されない期間が生じやすくなる。
そこで、図7に示すように、欠歯部の開始パルスの前に発生するパルスのエッジが検出されることにより実行されるエッジ検出処理320において、次式(4)に基づいて異常判定時間を算出する。式(4)のエッジ間時間として、S400で算出した時間を使用する。
異常判定時間=エッジ間時間×2+最大遅延時間 ・・・(4)
図7に示すように、異常判定時間の間に欠歯事前処理314が実行されないと、欠歯部において角度クロックの生成が停止していると判定できる。この場合、後述する異常事処理322が実行される。
式(4)でエッジ間時間を2倍しているのは、欠歯部の開始パルスの前に発生するパルスのエッジからのエッジ間時間と、欠歯部の開始パルスのエッジからのエッジ間時間とを加算するためでる。そして、最大遅延時間は、エンジンの減速によりエッジの検出時刻が遅れると考えられる最大値に設定されている。
ここで、欠歯部において実行されるエッジ検出処理310において、式(4)から算出される異常判定時間によりエッジ検出処理320で算出された異常判定時間が更新されると、図7において異常判定時間が後方にずれる。
したがって、欠歯部において実行されるエッジ検出処理310により異常判定時間が算出されないように、S410においてタイマ専用プロセッサ58は、欠歯フラグ2がオンであるか否かを判定する。
欠歯フラグ2は、メインCPU30が後述する欠歯判定処理において欠歯部の開始エッジの前のエッジを検出するとオンに設定する。メインCPU30が欠歯部の開始エッジの前のエッジを検出して欠歯フラグ2をオンに設定している状態で、エッジ検出部52が図2のエッジ検出処理の実行をタイマ専用プロセッサ58に要求するトリガとなるエッジは、欠歯部の開始パルスのエッジである。
したがって、欠歯フラグ2がオンのときに実行されるエッジ検出処理では、異常判定時
間の算出を回避する必要がある。そこで、S410の判定がYesであり、欠歯フラグ2がオンの場合、タイマ専用プロセッサ58は、S412〜S416を実行せずS418に処理を移行する。S410の判定がNoであり、欠歯フラグ2がオフの場合、タイマ専用プロセッサ58は、S412〜S416を実行する。
S412においてタイマ専用プロセッサ58は、欠歯部において角度クロックの生成が停止しているか否かを判定するための異常判定時間を、式(4)に基づいて算出する。
S414においてタイマ専用プロセッサ58は、次式(5)に基づき、S412で算出した異常判定時間を今回のエッジ検出時刻に加算して異常判定時刻を算出する。
異常判定時刻=今回のエッジ検出時刻+異常判定時間 ・・・(5)
S416においてタイマ専用プロセッサ58は、コンペア部56に異常判定時刻を設定する。後述するように、コンペア部56は、タイマ専用プロセッサ58が設定した異常判定時刻に、カウンタ部54の対応する時間カウンタが達すると、欠歯部で角度クロックの生成が停止している異常に対する異常時処理の実行をタイマ専用プロセッサ58に要求する。
言い換えると、コンペア部56は、欠落部において開始パルスからの経過時間が角度クロックの停止を判定するための停止判定時間に達すると、異常時処理の実行をタイマ専用プロセッサ58に要求する。この場合、停止判定時間は、式(4)の異常判定時間からエッジ間時間を減算した時間である。
尚、欠歯部の開始パルスと開始パルスの前に発生するパルスとを除くパルスのエッジが検出されるときにS412〜S416が実行されるときも、式(5)において、式(4)で算出した異常判定時間を今回のエッジ検出時刻に加算して異常判定時刻が設定される。しかし、異常判定時刻に時間カウンタが達することは欠歯部以外のパルス間ではないと考えられるので、S412〜S416を実行しても問題はない。
S418においてタイマ専用プロセッサ58は、メインCPU30に欠歯判定処理の実行を要求する。
(2)欠歯判定処理
タイマ専用プロセッサ58から欠歯判定処理の実行を要求されると、図3のS420においてメインCPU30の欠歯判定部32は、現在のエッジカウンタの値が360°CAの間においてクランク信号のパルスをカウントする最大値であるか否かを判定する。
S420の判定がNoであり、エッジカウンタの値が最大値ではない場合、S422において欠歯判定部32はエッジカウンタを+1する。S420の判定がYesであり、エッジカウンタが最大値の場合、S424において欠歯判定部32は、エッジカウンタを0に設定する。
欠歯判定部32がS422またはS424を実行することにより、エッジカウンタはエッジ検出部52が今回検出したクランク信号のエッジ位置に対応した値に設定される。
S426において欠歯判定部32は、エッジカウンタの値が欠歯部の開始パルスのエッジに対応するか否かを判定する。
S426の判定がYesであり、エッジカウンタの値が欠歯部の開始パルスのエッジに対応する場合、S428において欠歯判定部32は、欠歯フラグ1をオンに設定する。さらに、S430において欠歯判定部32は、タイマ専用プロセッサ58に欠歯事前処理の実行を要求し、S440に処理を移行する。
S426の判定がNoであり、エッジカウンタの値が欠歯部の開始パルのエッジに対応しない場合、S432において欠歯判定部32は、エッジカウンタの値が欠歯部の開始パルスの前に発生するパルスのエッジに対応するか否かを判定する。
S432の判定がYesであり、エッジカウンタの値が欠歯部の開始パルスの前に発生するパルスのエッジに対応する場合、S434において欠歯判定部32は、欠歯フラグ2をオンに設定し処理をS438に移行する。
S432の判定がNoであり、エッジカウンタの値が欠歯部の開始パルスの前に発生するパルスのエッジに対応しない場合、S436において欠歯判定部32は、欠歯フラグ2をオフに設定し、処理をS438に移行する。
S438において欠歯判定部32は、欠歯フラグ1をオフに設定する。S440においてメインCPU30は、点火制御の実行、噴射制御の実行の角度同期イベントの実行タイミングをコンペア部56に設定する。コンペア部56は、対応する角度カウンタが設定された角度同期イベントの実行タイミングになると、噴射モジュール、点火モジュールに実行信号を出力する。
(3)欠歯事前処理
メインCPU30から欠歯事前処理の実行を要求されると、図4のS450においてタイマ専用プロセッサ58は、異常処理フラグがオンであるか否かを判定する。異常処理フラグは、図2のエッジ検出処理でコンペア部56に設定された異常判定時刻にカウンタ部54の対応する時間カウンタが達すると、次の図5で説明する異常時処理においてオンに設定される。
異常処理フラグがオンの場合、図5の異常時処理において、タイマ専用プロセッサ58が図4の欠歯事前処理の代わりに、欠歯部における目標値カウンタの設定を実行したことを示している。
したがって、S450の判定がYesであり、異常処理フラグがオンの場合、S452においてタイマ専用プロセッサ58は、異常処理フラグをオフに設定し、その他の処理は実行せずに本処理を終了する。
異常処理フラグがオフの状態で図4の欠歯事前処理が実行されることは、メインCPU30が図3の欠歯判定処理を実行したことにより、図4の欠歯事前処理が実行されていることを表している。したがって、図4の欠歯事前処理において、タイマ専用プロセッサ58は、欠歯部の終了パルスが発生するときに角度カウンタが達する目標値カウンタの値を設定する必要がある。
そこで、S450の判定がNoであり、異常処理フラグがオフの場合、S454においてタイマ専用プロセッサ58は、コンペア部56に設定した異常判定時刻をクリアする。これにより、コンペア部56は、異常判定時刻と対応する時間カウンタとの比較を実行しない。
S456においてタイマ専用プロセッサ58は、次式(6)に基づいて、欠歯部の開始パルスにおいて、クロック生成部60の目標値カウンタにハードウェアにより設定したパルス列のエッジ間カウント数に加算する残りのカウント数である欠歯カウント数を算出する。式(6)において、エッジ間カウント数はパルス列のエッジ間カウント数であり、欠歯数は本実施形態では2である。
欠歯カウント数=エッジ間カウント数×欠歯数 ・・・(6)
そしてS458においてタイマ専用プロセッサ58は、次式(7)に基づいて、欠歯部の終了パルスが発生するときに角度カウンタが達する目標値カウンタの値を算出し、目標値カウンタに設定する。
目標値カウンタ=目標値カウンタ+欠歯カウント数 ・・・(7)
(4)異常時処理
カウンタ部54の時間カウンタが図2のエッジ検出処理により設定された異常判定時刻に達すると、タイマ専用プロセッサ58は、図5の異常事処理の実行をコンペア部56から要求される。
S460においてタイマ専用プロセッサ58は、コンペア部56に設定した異常判定時刻をクリアする。これにより、コンペア部56は、時間カウンタと異常判定時刻との比較を停止する。図5のS462、S464は図4のS456、S458と同一処理であるから説明を省略する。
S466においてタイマ専用プロセッサ58は、次式(8)に基づいて、時間カウンタが異常判定時刻に達してからエッジ検出部52が欠歯部の終了パルスのエッジを検出するまでの残り時間を算出する。欠歯部において、開始パルスのエッジ検出時刻から時間カウンタが異常判定時刻に達するまでには、(エッジ間時間+最大遅延時間)が経過している。
残り時間=欠歯時間−(エッジ間時間+最大遅延時間)
=エッジ間時間×2−最大遅延時間 ・・・(8)
式(8)において使用するエッジ間時間は、最新のエッジ検出処理で算出されたパルス列のエッジ間時間である。そして、欠歯時間は最新のエッジ間時間を3倍した時間である。したがって、エッジ検出部52が欠歯部の終了パルスのエッジを検出するまでの残り時間は、エッジ間時間の2倍から最大遅延時間を減算した時間になる。
S468においてタイマ専用プロセッサ58は、式(8)で算出した残り時間の間に、クロック生成部60が生成する角度クロックの周期を次式(9)に基づいて算出する。
角度クロック周期=残り時間/欠歯カウント数 ・・・(9)
欠歯部では、エッジ検出部52がエッジを検出したときにハードウェアにより目標値カウンタに加算されたパルス列のエッジ間カウント数のクロックが発生している。したがって、残り時間をS462で算出される欠歯カウント数で除算すれば、残り時間でクロック生成部60が生成する角度クロックの周期が算出できる。
式(8)で算出される残り時間は、欠歯部で異常時処理が実行されない場合よりも短いので、式(9)により算出される周期も短くなる。したがって、図7に示すように、角度カウンタは残り時間の間で目標カウント数まで速やかにカウントアップする。
S470においてタイマ専用プロセッサ58は、S468で算出した周期を、角度クロックの周期として設定する。S472においてタイマ専用プロセッサ58は、異常処理フラグをオンにする。
異常処理フラグがオンに設定されることにより、図4の欠歯事前処理において、目標カウント数が再度設定されることを防止できる。
[1−3.効果]
以上説明した第1実施形態では、以下の効果を得ることができる。
(1)欠歯部において角度クロックの生成が停止していることをコンペア部56がハードウェアにより検出し、コンペア部56がタイマ専用プロセッサ58に目標値カウンタの値と、欠歯部の残り時間で生成する角度クロックの周期とを設定する異常時処理の実行を要求する。
これにより、メインCPU30のソフトウェアによる欠歯判定処理の実行と、欠歯判定処理から要求されるタイマ専用プロセッサ58のソフトウェアによる欠歯事前処理の実行とが他のソフトウェア処理のために遅れても、角度クロックの生成が停止している期間を極力短くすることができる。
その結果、図7に示すように、メインCPU30が点火制御により設定した角度カウンタの値により設定される点火タイミングが角度クロックが生成されないために遅れても、遅れを極力短くすることができる。
(2)欠歯部において角度クロックの生成が停止していることが検出されると、クランク信号の次のパルスが発生するまでの残り時間を、正常であれば生成される残りの角度クロックのクロック数で除算して角度クロックの周期を算出する。これにより、クランク信号の次のパルスが発生するときに、正しいカウント数の角度クロックが生成されている。
以上説明した第1実施形態において、欠歯部が欠落部に対応し、ECU10がエンジン制御装置に対応し、メインCPU30が欠落判定装置に対応し、欠歯判定部32が欠落判定部に対応する。
また、タイマ制御モジュール50がクロック生成装置に対応し、カウンタ部54が角度カウンタに対応し、タイマ専用プロセッサ58が周期算出部と目標設定部とに対応し、コンペア部56が停止判定部に対応し、クロック生成部60がクロック生成部と目標設定部とに対応する。
また、第1実施形態において、S400〜S408、S466〜S470が周期算出部としてのタイマ専用プロセッサ58の処理に対応し、S420〜S438が欠歯判定部32の処理に対応し、S456、S458、S462、S464が目標設定部としてのタイマ専用プロセッサ58の処理に対応する。
[2.第2実施形態]
[2−1.構成]
第2実施形態のエンジン制御装置としてのECUの構成は、第1実施形態のECU10の構成と実質的に同一であるから、説明を省略する。
[2−2.処理]
第2実施形態では、欠歯部において角度クロックの生成が停止していることを、目標値カウンタが更新されず目標値カウンタと角度カウンタとが一致している経過時間に基づいて検出する点が第1実施形態と異なっている。
第2実施形態では、以下に説明するエッジ検出処理と異常判定処理以外に、第1実施形態と同じ欠歯判定処理と欠歯事前処理とを実行する。ただし、第2実施形態では、第1実施形態の欠歯フラグ2は使用しないので、図3に示す欠歯判定処理のS432〜S436は省略される。
(1)エッジ検出処理
エッジ検出部52は、クランク信号のパルスのエッジを検出すると、タイマ専用プロセ
ッサ58に図8のフローチャートが示すエッジ検出処理の実行を要求する。タイマ専用プロセッサ58は、他の処理を実行中でなければ、エッジ検出部52からの要求にしたがいエッジ検出処理を実行する。
図8のS480〜S488、S492は図2のS400〜S408、S418と実質的に同一処理であるから説明を省略する。
S490においてタイマ専用プロセッサ58は、エッジ検出部52がクランク信号のパルスのエッジを検出したときにクロック生成部60においてハードウェアにより目標値カウンタに設定した目標カウント数をコンペア部56に設定する。これにより、コンペア部56は、目標カウント数に角度カウンタが達すると、角度クロックの生成が停止している時間を計測する異常判定処理の実行をタイマ専用プロセッサ58に要求する。
(2)異常判定処理
タイマ専用プロセッサ58は、目標カウント数に角度カウンタが一致すると、コンペア部56からのハードウェアによる要求により図9の異常判定処理を実行する。図10の符号330が異常判定処理に対応する。
S500においてタイマ専用プロセッサ58は、目標値カウンタと角度カウンタとが一致しているか否かを判定する。S500の判定がNoであり、目標値カウンタと角度カウンタとが不一致になると本処理は終了する。
S500の判定がYesであり、目標値カウンタと角度カウンタとが一致している場合、S502においてタイマ専用プロセッサ58は、目標値カウンタと角度カウンタとが一致している時間を計測するために、一致時間を+1する。
S504においてタイマ専用プロセッサ58は、目標値カウンタと角度カウンタとが一致している一致時間が、欠歯部で角度クロックの停止を判定するための継続時間以上であるか否かを判定する。S504の判定がNoであり、一致時間が継続時間未満の場合、処理はS500に移行する。継続時間には、例えば、第1実施形態の最大遅延時間が設定される。
一致時間が継続時間以上になる前に、欠歯判定部32が欠歯判定処理を実行して今回のパルスが欠歯部の開始パルスであると判定し、タイマ専用プロセッサ58が欠歯事前処理を実行すると、目標値カウンタに欠歯カウント数が加算されて更新される。すると、S500の判定がNoになり、S506〜S516の処理は実行されずに本処理は終了する。
S504の判定がYesであり、図10に示すように、一致時間が継続時間以上になると、S506〜S516の処理が実行される。S506〜S516の処理は、図5のS462〜S472の処理と実質的に同一であるから説明を省略する。
[2−3.効果]
以上説明した第2実施形態では、第1実施形態の効果(1)、(2)と同じ効果を得ることができる。ただし、第2実施形態では、第1の実施形態の効果(1)における「異常時処理の実行を要求する。」を「異常判定処理の実行を要求する。」と読み替える。
以上説明した第2実施形態において、S480〜S488、S510〜S514が周期算出部としてのタイマ専用プロセッサ58の処理に対応し、S500〜S504が停止判定部としてのタイマ専用プロセッサ58の処理に対応し、S506、S508が目標設定部としてのタイマ専用プロセッサ58の処理に対応する。
第2実施形態では、目標カウント数に角度カウンタが一致すると、コンペア部56からのハードウェアによる要求により、タイマ専用プロセッサ58が図9の異常判定処理を実行する。したがって、コンペア部56も停止判定部に対応する。
[3.他の実施形態]
(1)上記実施形態では、クロック信号のパルス間の周期を除算する逓倍数を、基準となるパルス列のパルス間では4に設定した。当然のことながら、逓倍数は4に限るものではなく、パルス列のパルス間の角度間隔の大きさ、ならびに要求される角度クロックの分解能に応じて適宜設定される。
(2)上記実施形態における一つの構成要素が有する複数の機能を複数の構成要素によって実現したり、一つの構成要素が有する一つの機能を複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を一つの構成要素によって実現したり、複数の構成要素によって実現される一つの機能を一つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。尚、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
(3)上述したエンジン制御装置10の他、当該エンジン制御装置10を構成要素とするエンジン制御システム、当該エンジン制御装置10としてコンピュータを機能させるためのエンジン制御プログラム、このエンジン制御プログラムを記録した記録媒体、エンジン制御方法など、種々の形態で本発明を実現することもできる。
10:ECU(エンジン制御装置)、20:マイコン、30:メインCPU(欠落判定装置)、32:欠歯判定部(欠落判定部)、50:タイマ制御モジュール(クロック生成装置)、54:カウンタ部(クロックカウンタ)、56コンペ部(停止判定部)、58:タイマ専用プロセッサ(周期算出部、目標値設定部、停止判定部)、60:クロック生成部

Claims (6)

  1. 欠落判定装置(30)とクロック生成装置(50)とを備えるエンジン制御装置(10)において、
    前記欠落判定装置は、
    エンジンのクランク軸が一定の角度回転する毎に発生するパルスを有するパルス列と、前記パルスが欠落しており前記パルスと前記パルスとの角度間隔が前記パルス列よりも大きい欠落部とを有するクランク信号において、今回発生した前記パルスが前記欠落部の開始を示す開始パルスであるか否かをソフトウェアにより判定するように構成された欠落判定部(32、S420〜S438)を備え、
    前記クロック生成装置は、
    前記パルスが発生する毎に、ソフトウェアにより、今回発生した前記パルスと前回発生した前記パルスとのパルス周期を前記パルスと前記パルスとの角度間隔に応じて予め設定された逓倍数で除算した値を角度クロックのクロック周期として算出するように構成された周期算出部(58、S400〜S408、S480〜S488)と、
    前記角度クロックのクロック数をカウントする角度カウンタ(54)と、
    前記パルスが発生する毎に設定される目標カウント数に前記角度カウンタが達するまで、前記周期算出部が算出する前記クロック周期で前記角度クロックを生成するように構成されたクロック生成部(60)と、
    前記欠落部において前記クロック生成部による前記角度クロックの生成が停止しているか否かを、ハードウェアとソフトウェアとのうち少なくともハードウェアにより判定するように構成された停止判定部(56、58、S500〜S504)と、
    今回発生した前記パルスが前記開始パルスであると前記欠落判定部が判定すると、前記欠落部の終了を示す終了パルスが発生するときに前記角度カウンタが達する前記目標カウント数をソフトウェアにより設定するように構成された目標設定部(58、S456、S458)と、
    を備え、
    今回発生した前記パルスが前記開始パルスであると前記欠落判定部が判定しておらず、前記欠落部において前記角度クロックの生成が停止していると前記停止判定部が判定する場合、前記目標設定部(S462、S464、S506、S508)は、前記終了パルスが発生するときに前記角度カウンタが達する前記目標カウント数をソフトウェアにより設定するように構成され、前記周期算出部(S466〜S470、S510〜S514)は、前記終了パルスが発生するまでに前記クロック生成部が生成する前記角度クロックの前記クロック周期を算出する用に構成されている、
    エンジン制御装置。
  2. 請求項1に記載のエンジン制御装置において、
    前記クロック生成部は、前記パルス列の前記パルスと前記パルスとの角度間隔において前記クロック生成部が生成する前記角度クロックのクロック数を、前記パルスが発生する毎にハードウェアにより前記目標カウント数に加算し、
    前記目標設定部(S456、S458)は、今回発生した前記パルスが前記開始パルスであると前記欠落判定部が判定すると、前記終了パルスと前記開始パルスとの角度間隔から前記パルス列の前記パルス間の角度間隔を減算した角度間隔において前記クロック生成部が生成する前記角度クロックのクロック数をソフトウェアにより前記目標カウント数に加算することにより、前記終了パルスが発生するときに前記角度カウンタが達する前記目標カウント数を設定する、
    エンジン制御装置。
  3. 請求項1または2に記載のエンジン制御装置において、
    前記パルスが発生する毎に前記周期算出部が前記クロック周期を算出すると、前記欠落
    判定部は今回発生した前記パルスが前記開始パルスであるか否かを判定する、
    エンジン制御装置。
  4. 請求項1から3のいずれか一項に記載のエンジン制御装置において、
    前記停止判定部は、今回発生した前記パルスが前記開始パルスであると前記欠落判定部が判定していない状態で、前記欠落部において前記開始パルスからの経過時間が前記角度クロックの停止を判定するための停止判定時間に達すると、前記欠落部において前記角度クロックの生成が停止していると判定する、
    エンジン制御装置。
  5. 請求項1から3のいずれか一項に記載のエンジン制御装置において、
    前記停止判定部(S500〜S504)は、前記欠落部において前記角度カウンタが前記目標カウント数と一致している一致時間が前記角度クロックの停止を判定するための継続時間以上になると、前記欠落部において前記角度クロックの生成が停止していると判定する、
    エンジン制御装置。
  6. 請求項4または5に記載のエンジン制御装置において、
    前記周期算出部は、前記欠落部において前記角度クロックの生成が停止していると前記停止判定部が判定したタイミングから前記終了パルスが発生するタイミングまでの残り時間を、前記終了パルスにおける前記目標カウント数に前記角度カウンタが達するために前記残り時間の間に前記クロック生成部が生成する前記角度クロックのクロック数で除算した値を前記クロック周期として算出する、
    エンジン制御装置。
JP2016083931A 2016-04-19 2016-04-19 エンジン制御装置 Active JP6583118B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016083931A JP6583118B2 (ja) 2016-04-19 2016-04-19 エンジン制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016083931A JP6583118B2 (ja) 2016-04-19 2016-04-19 エンジン制御装置

Publications (2)

Publication Number Publication Date
JP2017193992A JP2017193992A (ja) 2017-10-26
JP6583118B2 true JP6583118B2 (ja) 2019-10-02

Family

ID=60154827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016083931A Active JP6583118B2 (ja) 2016-04-19 2016-04-19 エンジン制御装置

Country Status (1)

Country Link
JP (1) JP6583118B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7251058B2 (ja) * 2018-06-13 2023-04-04 株式会社デンソー 車載制御装置

Also Published As

Publication number Publication date
JP2017193992A (ja) 2017-10-26

Similar Documents

Publication Publication Date Title
JP4586903B2 (ja) エンジン制御装置
JP4687481B2 (ja) エンジン制御装置
JP3508676B2 (ja) エンジン制御装置
JP2008190344A (ja) エンジン制御装置およびプログラム
JP6911627B2 (ja) Ad変換処理装置
JP6583118B2 (ja) エンジン制御装置
JP2001280193A (ja) エンジン制御装置
JP2001200747A (ja) エンジン制御装置
JP5304724B2 (ja) エンジン制御装置
JP6237303B2 (ja) クランク角検出装置
JP2018135785A (ja) エンジン制御装置
JP2007026028A (ja) マイクロコンピュータの異常検出装置
JP2015098854A (ja) エンジン制御装置
JP2017210942A (ja) エンジン制御装置およびエンジン制御方法
JP3791367B2 (ja) エンジン制御装置
JP2015214938A (ja) 電子制御装置
JP2023079051A (ja) エンジン制御装置
KR100432606B1 (ko) 크랭크 신호의 호환 장치
JP2019214977A (ja) 車載制御装置
JP2019183741A (ja) 電子制御装置
JP5799891B2 (ja) Ad変換処理装置
JP2013104387A (ja) エンジン制御装置
JP5674500B2 (ja) パルス信号検出方法、パルス信号検出回路、内燃機関の点火装置およびプログラム
JP2005315169A (ja) クランク軸回転同期の処理装置及びエンジン制御装置
JPH07259711A (ja) 2気筒内燃機関の点火装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190725

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190819

R151 Written notification of patent or utility model registration

Ref document number: 6583118

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250