(57)【要約】【課題】エンジンの加速によりクランク信号の逓倍信号に同期して目標回数のＡＤ変換を実行できない場合にも、クランク信号の信号周期の間において極力実際のクランク軸の角度位置で目標回数分のＡＤ変換値を取得する。【解決手段】本開示の一態様は、角度カウンタ５２とＡＤ変換部７０と抜け判定部６０とタイミング設定部６０と補間部６０とを備えている。ＡＤ変換部は、エンジンの運転状態を検出するセンサの検出信号をクランク信号の信号周期の間で目標回数、ＡＤ変換するように、角度カウンタが所定のカウント数をカウントする毎に検出信号をＡＤ変換する。タイミング設定部は、ＡＤ変換の抜けが発生したと抜け判定部が判定すると、信号周期の間でクランク軸の角度位置に同期してＡＤ変換部が目標回数、ＡＤ変換すべき変換タイミングを設定する。補間部は、変換タイミングにおけるＡＤ変換値を、ＡＤ変換部がＡＤ変換したＡＤ変換値に基づいて補間する。【選択図】図１
2019035377.tif 000002
【特許請求の範囲】
【請求項１】
エンジンのクランク軸の回転に伴い所定の角度間隔で発生するクランク信号の信号周期を所定の逓倍数で除算した周期の逓倍信号に同期して、前記信号周期の間に前記逓倍数をカウントする角度カウンタ（５２）と、
エンジンの運転状態を検出するセンサの検出信号を前記信号周期の間で目標回数、ＡＤ変換するように、前記角度カウンタが所定のカウント数をカウントする毎に前記検出信号をＡＤ変換するように構成されたＡＤ変換部（７０）と、
前記クランク信号を検出すると、エンジンの加速により前記クランク信号の発生タイミングが早まったために、前記信号周期の間で前記ＡＤ変換部がＡＤ変換できないＡＤ変換の抜けが発生したか否かを判定するように構成された抜け判定部（６０、Ｓ４６６）と、
前記ＡＤ変換の抜けが発生したと前記抜け判定部が判定すると、前記信号周期の間で前記クランク軸の角度位置に同期して前記ＡＤ変換部が前記目標回数、ＡＤ変換すべき変換タイミングを設定するように構成されたタイミング設定部（６０、Ｓ４９０〜Ｓ４９４）と、
前記タイミング設定部が設定する前記変換タイミングにおけるＡＤ変換値を、前記ＡＤ変換部がＡＤ変換したＡＤ変換値に基づいて補間するように構成された補間部（６０、Ｓ５０２〜Ｓ５１４）と、
を備えるＡＤ変換処理装置。
【請求項２】
請求項１に記載のＡＤ変換処理装置であって、
前記補間部は、前記変換タイミングを挟む前後のタイミングで前記ＡＤ変換部がＡＤ変換したＡＤ変換値に基づいて、前記変換タイミングにおけるＡＤ変換値を補間するように構成されている、
ＡＤ変換処理装置。
【請求項３】
請求項１または２に記載のＡＤ変換処理装置であって、
前記角度カウンタが前記逓倍数をカウントする前に前記クランク信号が発生すると、前記角度カウンタが前記逓倍数をカウントするまで前記逓倍信号の周期を短くするように構成された周期短縮部（４４）をさらに備え、
前記抜け判定部は、前記ＡＤ変換部が前記逓倍信号に同期してＡＤ変換するタイミング間の時間と、前記ＡＤ変換部がＡＤ変換するために必要な変換時間とを比較して、前記ＡＤ変換の抜けが発生したか否かを判定するように構成されている、
ＡＤ変換処理装置。
【請求項４】
請求項１から３のいずれか一項に記載のＡＤ変換処理装置であって、
前記タイミング設定部は、前記エンジンが加速する加速度に基づいて、前記変換タイミングを設定するように構成されている、
ＡＤ変換処理装置。
【請求項５】
請求項４に記載のＡＤ変換処理装置であって、
前記タイミング設定部は、前記加速度に基づいて、時間と前記角度カウンタのカウンタ値との関係を２次式で表し、前記所定のカウント数をカウントしたときの前記角度カウンタの前記カウンタ値を前記２次式に代入して得られた前記時間を前記変換タイミングとして設定するように構成されている、
ＡＤ変換処理装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、クランク信号の周期を所定の逓倍数で除算した周期の逓倍信号に同期して、エンジンの運転状態を検出するセンサの検出信号をＡＤ変換する技術に関する。
に関する。
【背景技術】
【０００２】
エンジンの運転状態を高精度に制御するために、クランク信号の信号周期を逓倍数で除算した、クランク信号よりも周期の短い逓倍信号に同期して、エンジンの運転状態を制御することが知られている。
【０００３】
特許文献１に記載されている技術では、クランク信号よりも短い周期の逓倍信号に同期して、筒内圧センサの出力信号をＡＤ変換し、ＡＤ変換データが示す筒内圧の変化に基づいて気筒内の燃焼状態を解析している。
【０００４】
逓倍信号は、前回のクランク信号と今回のクランク信号との信号周期を逓倍数で除算した周期の信号であるから、エンジンが急激に加速すると、今回のクランク信号と次回のクランク信号との間で逓倍数の逓倍信号が発生する前に次のクランク信号が発生することがある。
【０００５】
すると、逓倍信号に同期してクランク信号同士の間で目標回数実行されるＡＤ変換のうち、クランク信号の信号周期の間においてＡＤ変換が何回か実行されずに抜けることになる。
【０００６】
特許文献１に記載されている技術では、エンジンの加速によりＡＤ変換が抜けると、ＡＤ変換した値を格納する格納先に、筒内圧センサの出力信号が取り得ない異常値として０が設定される。
【０００７】
そして、格納された筒内圧センサのＡＤ変換値を参照して異常燃焼の判定処理をするときに、ＡＤ変換が抜けてＡＤ変換値として０が格納されていると、ＡＤ変換が抜けたクランク角度位置におけるＡＤ変換値が、ＡＤ変換が抜けた前後のＡＤ変換値により補間される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第０５７９９８９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載の技術のように、クランク信号の信号周期を逓倍数で除算した逓倍信号に同期してＡＤ変換を実行する場合、エンジンが加速すると、逓倍信号が表すクランク角度に同期して実行されるＡＤ変換は、実際のクランク軸の角度位置とはずれた角度位置で実行される。
【００１０】
したがって、ＡＤ変換が抜けた前後の実際のクランク軸の角度位置とはずれた角度位置で実行されるＡＤ変換で得られたＡＤ変換値により、ＡＤ変換が抜けたと推定される角度位置におけるＡＤ変換値を補間すると、補間されたＡＤ変換値も実際のクランク軸の角度位置とはずれた角度位置のＡＤ変換値になるという課題がある。
【００１１】
本開示は、エンジンの加速によりクランク信号の逓倍信号に同期して目標回数のＡＤ変換を実行できない場合にも、クランク信号の信号周期の間において極力実際のクランク軸の角度位置で目標回数分のＡＤ変換値を取得する技術を提供する。
【課題を解決するための手段】
【００１２】
本開示の一態様は、角度カウンタ（５２）とＡＤ変換部（７０）と抜け判定部（６０、Ｓ４６６）とタイミング設定部（６０、Ｓ４９０〜Ｓ４９４）と補間部（６０、Ｓ５０２〜Ｓ５１４）とを備えている。
【００１３】
角度カウンタは、エンジンのクランク軸の回転に伴い所定の角度間隔で発生するクランク信号の信号周期を所定の逓倍数で除算した周期の逓倍信号に同期して、信号周期の間に逓倍数をカウントする。ＡＤ変換部は、エンジンの運転状態を検出するセンサの検出信号を信号周期の間で目標回数、ＡＤ変換するように、角度カウンタが所定のカウント数をカウントする毎に検出信号をＡＤ変換する。
【００１４】
抜け判定部は、クランク信号を検出すると、エンジンの加速によりクランク信号の発生タイミングが早まったために、信号周期の間でＡＤ変換部がＡＤ変換できないＡＤ変換の抜けが発生したか否かを判定する。
【００１５】
タイミング設定部は、ＡＤ変換の抜けが発生したと抜け判定部が判定すると、信号周期の間でクランク軸の角度位置に同期してＡＤ変換部が目標回数、ＡＤ変換すべき変換タイミングを設定する。
【００１６】
補間部は、タイミング設定部が設定する前記変換タイミングにおけるＡＤ変換値を、ＡＤ変換部がＡＤ変換したＡＤ変換値に基づいて補間する。
ここで、クランク信号の発生タイミングが早まりクランク信号の信号周期が短くなると、逓倍信号に同期してＡＤ変換部がＡＤ変換したタイミングは、クランク信号が表す実際の角度位置のタイミングよりも遅くなっている。
【００１７】
そこで、本開示の構成によれば、ＡＤ変換が抜けると、信号周期の間でクランク軸の角度位置に同期してＡＤ変換部が目標回数、ＡＤ変換すべき変換タイミングを設定し、変換タイミングにおけるＡＤ変換値を、ＡＤ変換部がＡＤ変換したＡＤ変換値に基づいて補間する。したがって、ＡＤ変換されたＡＤ変換値に基づいて、極力実際のクランク軸の角度位置に近いタイミングでＡＤ変換値を取得できる。
【００１８】
尚、この欄および特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１９】
【図１】本実施形態によるＡＤ変換処理装置を示すフロック図。
【図２】エッジ検出処理を示すフローチャート。
【図３】コンペアマッチ処理を示すフローチャート。
【図４】ＡＤ取得間隔時間算出処理を示すフローチャート。
【図５】抜け判定とＡＤ変換値補間処理を示すフローチャート。
【図６】ＡＤ取得タイミング補間処理を示すフローチャート。
【図７】ＡＤ変換値補間と格納処理を示すフローチャート。
【図８】ＡＤ変換処理を示すタイムチャート。
【図９】本実施形態の効果を説明するタイムチャート。
【図１０】クランク角度とＡＤ変換値との関係を示す特性図。
【発明を実施するための形態】
【００２０】
以下、本開示の実施形態を図に基づいて説明する。
［１．構成］
図１に示すＥＣＵ１０は車両に搭載され、入力回路１２、１４と、出力回路と、マイコン２０とを備えている。ＥＣＵはElectronic Control Unitの略であり、マイコンはマイクロコンピュータの略である。
【００２１】
入力回路１２は、クランク軸の回転に伴い所定の角度間隔で発生するクランク信号をクランク角センサから入力する。入力回路１４は、各気筒に設置された筒内圧センサが検出する検出信号を入力する。筒内圧センサは、エンジンの運転状態として各気筒の筒内圧を検出する。
【００２２】
クランク信号は、クランク軸とともに回転するクランクロータの外周に一定の角度間隔で設置された歯をクランク角センサが検出して発生するパルス信号である。クランクロータには、歯が連続して欠落した欠歯部が存在する。
【００２３】
したがって、クランク信号は、クランク軸が一定の角度回転する毎に発生するパルスを有するパルス列と、パルスが発生しておらずパルスとパルスとの角度間隔がパルス列よりも大きい欠歯部とを有している。欠歯部は、クランク軸の回転方向の基準位置を示している。
【００２４】
出力回路１６は、タイマ制御モジュール４０のコンペア部６２が出力する信号を、点火モジュール、噴射モジュールに出力する。点火モジュールは点火プラグと点火プラグの駆動回路である。噴射モジュールはインジェクタとインジェクタの駆動回路である。コンペア部６２が出力する信号は、点火モジュールが燃料への点火を実行する角度タイミング、ならびに噴射モジュールが燃料噴射を実行する角度タイミングを指示する。
【００２５】
マイコン２０は、メインＣＰＵ３０と、ＲＡＭ３２と、ＲＯＭ３４と、タイマ制御モジュール４０と、ＡＤ変換部７０と、ＤＭＡ部８０とを備えている。メインＣＰＵ３０とタイマ制御モジュール４０とは、汎用の処理装置である。
【００２６】
マイコン２０の各機能は、メインＣＰＵ３０とタイマ制御モジュール４０とがＲＯＭまたはフラッシュメモリ等の非遷移的実体的記録媒体に記憶されているプログラムを実行することにより実現される。このプログラムが実行されることにより、プログラムに対応する方法が実行される。
【００２７】
マイコン２０を構成するこれらの要素を実現する手法はソフトウェアに限るものではなく、その一部または全部の要素について、一つあるいは複数のハードウェアを用いて実現してもよい。例えば、上記機能がハードウェアである電子回路によって実現される場合、その電子回路は多数の論理回路を含むデジタル回路、またはアナログ回路、あるいはこれらの組合せによって実現してもよい。
【００２８】
メインＣＰＵ３０は、ＲＯＭ３４に記憶されている制御プログラムを実行することにより、エンジン制御を実行する。例えば、メインＣＰＵ３０は、エンジン制御として、点火制御と燃料の噴射制御とを次回実行する角度タイミングを、タイマ専用プロセッサ６０を介してコンペア部６２に設定する。
【００２９】
メインＣＰＵ３０のＲＡＭ３２には、メインＣＰＵ３０とタイマ専用プロセッサ６０とが共通に参照するデータが記憶される。
タイマ制御モジュール４０は、エッジ検出部４２と、角度クロック生成部４４と、カウンタ部５０と、タイマ専用プロセッサ６０と、コンペア部６２と、図示しないＲＡＭ、ＲＯＭとを備えている。
【００３０】
エッジ検出部４２は、クランク信号のパルスのエッジを検出する。エッジ検出部４２が検出するクランク信号のエッジは、立ち上がりまたは立ち下がりのいずれのエッジでもよい。エッジ検出部４２は、クランク信号のエッジを検出した時間を記憶している。
【００３１】
カウンタ部５０は、各種カウンタを備えている。カウンタ部５０は、例えば、角度カウンタ５２と時間カウンタ５４とを備えている。角度カウンタ５２は、角度クロック生成部４４が生成する角度クロックに同期して角度クロックのクロック数をカウントする。時間カウンタ５４は、タイマ専用プロセッサ６０の動作クロックに同期してクロック数をカウントする。
【００３２】
コンペア部６２は、図示しない種々のコンペアレジスタを備えている。コンペア部６２は、タイマ専用プロセッサ６０によりコンペアレジスタに設定された値と、設定された値に対応するカウンタ部５０の角度カウンタ５２または時間カウンタ５４の値とを比較する。
【００３３】
コンペア部６２は、コンペアレジスタの値と対応するカウンタの値とが一致すると、噴射モジュールと点火モジュールとに対する出力信号を出力回路１６に出力するか、ＡＤ変換部７０に筒内圧信号をＡＤ変換することを指令するか、タイマ専用プロセッサ６０に対し、コンペアレジスタの値と対応するカウンタの値とが一致することに対応する処理の実行を要求する。
【００３４】
タイマ専用プロセッサ６０は、実行イベントが発生すると、図示しないＲＯＭに記憶されている制御プログラムに基づいて、発生した順番に実行イベントに対応する処理を実行する。
【００３５】
例えば、タイマ専用プロセッサ６０は、メインＣＰＵ３０からの要求により、エンジン制御の実行タイミングを角度タイミングまたは時間タイミングでコンペア部６２に設定する。また、タイマ専用プロセッサ６０は、エッジ検出部４２がクランク信号のパルスのエッジを検出すると、後述するエッジ検出処理を実行する。
【００３６】
タイマ専用プロセッサ６０は、前記と今回とのクランク信号の信号周期であるエッジ間時間を所定の逓倍数であるエッジ間カウント数で除算した結果を、エッジ検出部４２が次回のクランク信号のエッジを検出するまでに角度クロック生成部４４が生成する角度クロックのクロック周期とする。つまり、角度クロックは、クランク信号の信号周期を所定の逓倍数で除算した逓倍信号である。
【００３７】
また、タイマ専用プロセッサ６０は、クランク信号の信号周期の間で目標回数、ＡＤ変換部７０がＡＤ変換するように、コンペア部６２のコンペアレジスタに、角度カウンタ５２が所定のカウント数をカウントしたときのカウンタ値を設定する。コンペア部６２は、コンペアレジスタに設定されたカウンタ値と角度カウンタ５２のカウンタ値とが一致すると、ＡＤ変換部７０に筒内圧信号をＡＤ変換するように指令する。
【００３８】
角度クロック生成部４４は内部に図示しない目標カウンタを備えている。目標カウンタには、エッジ検出部４２がクランク信号のエッジを検出する毎に、タイマ専用プロセッサ６０により、クランク信号の信号周期でカウントする目標エッジ間カウント数が加算された目標カウンタ値が設定される。
【００３９】
目標エッジ間カウント数は、予めＲＯＭ３４に設定されている。角度クロック生成部４４は、角度カウンタ５２のカウント数が目標カウンタに設定された目標カウンタ値に達するまで、タイマ専用プロセッサ６０が算出した周期で角度クロックを生成する。
【００４０】
角度クロック生成部４４は、クランク信号のエッジをエッジ検出部４２が検出する前に角度カウンタ５２のカウンタ値が目標カウンタに設定された目標カウンタ値に達すると、角度クロックの生成を停止する。
また、クランク信号のエッジをエッジ検出部４２が検出するときに角度カウンタ５２のカウンタ値が目標カウンタに設定された目標カウンタ値に達していない場合、角度クロック生成部４４は、角度カウンタ５２のカウンタ値が目標カウンタ値に速やかに達するように、角度クロックの周期を短縮させる。
【００４１】
ＡＤ変換部７０は、コンペア部６２からの指令により、入力回路１４が入力する筒内圧信号をＡＤ変換する。ＤＭＡ部８０は、ＡＤ変換部７０がＡＤ変換した筒内圧信号のＡＤ変換値をＲＡＭに転送する。
【００４２】
［２．処理］
（１）エッジ検出処理
エッジ検出部４２がクランク信号のエッジを検出すると、エッジ検出部４２はタイマ専用プロセッサ６０に図２のフローチャートが示すエッジ検出処理の実行を要求する。タイマ専用プロセッサ６０は、他の処理を実行中でなければ、エッジ検出部４２からの要求にしたがいエッジ検出処理を実行する。
【００４３】
タイマ専用プロセッサ６０は、Ｓ４００においてエッジ検出フラグをオンに設定し、Ｓ４０２において初回ＡＤ取得フラグをオンに設定する。
Ｓ４０４においてタイマ専用プロセッサ６０は、前回のクランク信号のエッジ情報をＲＡＭ３２に保存する。前回のエッジ情報は、前回クランク信号のエッジを検出したときの時間とエッジを検出したときの角度カウンタ５２の値である。
【００４４】
Ｓ４０６においてタイマ専用プロセッサ６０は、今回のクランク信号のエッジ情報を取得する。今回のクランク信号のエッジ情報は、今回クランク信号のエッジを検出したときの時間とエッジを検出したときの角度カウンタ５２の値である。
【００４５】
Ｓ４０８においてタイマ専用プロセッサ６０は、次式（１）により、前回のクランク信号のエッジと今回のクランク信号のエッジとの時間間隔であるエッジ間時間を算出する。
エッジ間時間＝今回のエッジ検出時間−前回のエッジ検出時間・・・（１）
Ｓ４１０においてタイマ専用プロセッサ６０は、前回のクランク信号と今回のクランク信号との間で角度カウンタ５２がカウントする１カウントの時間、つまり角度クロックの周期を、前回の１カウント時間としてＲＡＭ３２に記憶する。
【００４６】
Ｓ４１２においてタイマ専用プロセッサ６０は、次式（２）により、今回のクランク信号と次回のクランク信号との間で角度カウンタ５２が１カウントでカウントする１カウント時間を算出する。
【００４７】
角度カウンタの１カウント時間＝エッジ間時間／目標エッジ間カウント数
・・・（２）
式（２）のエッジ間時間は、Ｓ４０８において式（１）により算出された値であり、目標エッジ間カウント数は、クランク信号の間で角度カウンタ５２がカウントする目標のカウント数である。
【００４８】
Ｓ４１４においてタイマ専用プロセッサ６０は、Ｓ４１２で算出した１カウント時間を、角度クロック生成部４４が生成する角度クロックの周期として設定する。Ｓ４１６においてタイマ専用プロセッサ６０は、エッジ検出部４２が次回のクランク信号を検出するときに角度カウンタ５２がカウントしている次回の目標カウンタ値を次式（３）により算出する。
【００４９】
次回目標カウンタ値＝前回目標カウンタ値＋目標エッジ間カウント数  ・・・（３）
（２）コンペアマッチ処理
図３のコンペアマッチ処理は、コンペア部６２が、角度カウンタ５２のカウンタ値とＡＤ変換コンペアレジスタに設定された値とを比較して一致すると実行される。角度カウンタ５２のカウンタ値とＡＤ変換コンペアレジスタの値とが一致すると、ＡＤ変換部７０は筒内圧信号をＡＤ変換する。
【００５０】
Ｓ４２０においてタイマ専用プロセッサ６０は、ＡＤ取得間隔時間の算出処理を実行する。ＡＤ取得間隔時間の算出処理は、ＡＤ変換部７０が筒内圧信号をＡＤ変換する間隔時間を算出する処理であり、詳細については後述する。
【００５１】
Ｓ４２２においてタイマ専用プロセッサ６０は、Ｓ４２０で算出したＡＤ取得間隔時間が短いためにＡＤ変換を実行できないＡＤ変換の抜けが発生したか否かを判定する抜け判定処理と、ＡＤ変換したＡＤ変換値の補間処理とを実行する。抜け判定処理とＡＤ変換値の補間処理との詳細については後述する。
【００５２】
Ｓ４２４においてタイマ専用プロセッサ６０は、次式（４）により、次回ＡＤ変換部７０がＡＤ変換を実行するときの角度カウンタ５２のカウンタ値であるＡＤ取得カウンタ値を算出する。
【００５３】
ＡＤ取得カウンタ値（ｎ）
＝ＡＤ取得カウンタ値（ｎ−１）＋ＡＤ取得間カウント数  ・・・（４）
式（４）において、ＡＤ取得カウンタ値（ｎ−１）は今回のＡＤ取得カウンタ値を表しており、ＡＤ取得カウンタ値（ｎ）は次回のＡＤ取得カウンタ値を表している。
【００５４】
また、式（４）においてＡＤ取得間カウント数は、ＡＤ変換部７０がＡＤ変換を実行する間隔において角度カウンタ５２がカウントする所定のカウント数であり、固定値である。ＡＤ取得間カウント数は、クランク信号の信号周期の間でＡＤ変換部７０がＡＤ変換を実行するエッジ間ＡＤ取得回数で前述した目標エッジ間カウント数を除算した固定値である。本実施形態では、エッジ間ＡＤ取得回数は６に設定されている。
【００５５】
Ｓ４２６においてタイマ専用プロセッサ６０は、Ｓ４２４で算出したＡＤ取得カウンタ値（ｎ）をコンペア部６２の該当するコンペアレジスタに設定する。
（３）ＡＤ取得間隔時間算出処理
図４のＡＤ取得間隔時間算出処理は、図３のＳ４２０で実行される。
【００５６】
Ｓ４３０においてタイマ専用プロセッサ６０は、エッジ検出フラグがオンであるか否かを判定する。エッジ検出フラグは、エッジ検出部４２がクランク信号のエッジを検出するときに、図２のエッジ検出処理のＳ４００でオンに設定される。
【００５７】
そして、エッジ検出フラグは、エッジ検出部４２がクランク信号のエッジを検出して図２のエッジ検出処理でオンに設定されてから、２回目の本処理において、後述するＳ４４２でオフに設定される。
【００５８】
Ｓ４３０の判定がＮｏである、つまりエッジ検出フラグがオフの場合、Ｓ４３２においてタイマ専用プロセッサ６０は、次式（５）によりＡＤ取得間隔時間（ｎ）を算出する。
ＡＤ取得間隔時間（ｎ）＝１カウント時間×ＡＤ取得間カウント数  ・・・（５）
式（５）において１カウント時間は、図２のＳ４１２で算出された角度カウンタ５２の１カウント時間であり、角度クロックの周期を表している。
【００５９】
Ｓ４３０の判定がＹｅｓである、つまりエッジ検出フラグがオンの場合、Ｓ４３４においてタイマ専用プロセッサ６０は、初回ＡＤ取得フラグがオンか否かを判定する。初回ＡＤ取得フラグは、エッジ検出部４２がクランク信号のエッジを検出すると、図２のエッジ検出処理のＳ４０２でオンに設定される。
【００６０】
そして、初回ＡＤ取得フラグは、エッジ検出部４２がクランク信号のエッジを検出して図２のエッジ検出処理でオンに設定されてから、１回目の本処理において後述するＳ４４２でオフに設定される。
【００６１】
Ｓ４３４の判定がＮｏである、つまり初回ＡＤ取得フラグがオフであり、１回目の本処理が実行済みの場合、処理はＳ４４４に移行する。
Ｓ４３４の判定がＹｅｓである、つまり初回ＡＤ取得フラグがオンであり、エッジ検出部４２がクランク信号のエッジを検出してから１回目に本処理が実行される場合、Ｓ４３６においてタイマ専用プロセッサ６０は、次式（６）により、図２のＳ４１０で記憶された前回の１カウント時間で角度カウンタ５２がカウントした通常速度カウント数を算出する。
【００６２】
通常速度カウント数
＝エッジ検出カウンタ値−ＡＤ取得カウンタ値（ｎ−１）  ・・・（６）
式（６）において、エッジ検出カウンタ値は、今回エッジ検出部４２がクランク信号のエッジを検出したときの角度カウンタ５２のカウンタ値を示している。ＡＤ取得カウンタ値（ｎ−１）は、前回のコンペアマッチによりＡＤ変換が実行されたときの角度カウンタ５２のカウンタ値を示している。
【００６３】
図８に示すように、エッジ検出部４２がクランク信号のエッジを検出したときに、角度カウンタ５２が目標カウンタ値に達していれば、通常速度カウント数はＡＤ取得間カウント数に一致している。
【００６４】
これに対し、図９に示すように、エンジンが急激に加速したために、角度カウンタ５２が目標カウンタ値に達する前にエッジ検出部４２がクランク信号のエッジを検出すると、通常速度カウント数はＡＤ取得間カウント数よりも少なくなる。
【００６５】
Ｓ４３８においてタイマ専用プロセッサ６０は、角度カウンタ５２が目標カウンタ値に達する前にエッジ検出部４２がクランク信号のエッジを検出する場合の処理として、次にＡＤ変換が実行される図９のｎ＝４が示すタイミングまで、角度クロック生成部４４により角度クロックの周期が短縮されて角度カウンタ５２がカウントする駆け上がりカウント数を、次式（７）により算出する。
【００６６】
駆け上がりカウント数＝ＡＤ取得カウント数−通常速度カウント数  ・・・（７）
Ｓ４４０においてタイマ専用プロセッサ６０は、図８においては前回ＡＤ変換した時間と今回ＡＤ変換した時間との間隔時間、図９においては前回ＡＤ変換した時間と今回ＡＤ変換するとして設定されたｎ＝４で示すタイミングの時間との間隔時間を、次式（８）により算出する。
【００６７】
ＡＤ取得間隔時間（ｎ）
＝（前回１カウント時間×通常速度カウント数）
＋（駆け上がり１カウント時間×駆け上がりカウント数）    ・・・（８）
式（８）において駆け上がり１カウント時間は固定値であり、角度クロック生成部４４により通常の角度クロックの周期よりも短い時間が設定されている。
【００６８】
Ｓ４４２においてタイマ専用プロセッサ６０は、初回ＡＤ取得フラグをオフにする。
Ｓ４４４においてタイマ専用プロセッサ６０は、次式（９）が成立しているか否かを判定する。
【００６９】
ｎ＝エッジ間ＡＤ取得回数＋１      ・・・（９）
図８に示すようにエッジ検出部４２がクランク信号のエッジを検出したときに、角度カウンタ５２が目標カウンタ値に達していれば、本実施形態ではエッジ間ＡＤ取得回数は前述したように６であるから、式（９）においてｎ＝７である。ｎ＝７であれば、Ｓ４４４の判定はＹｅｓになる。
【００７０】
これに対し、図９に示すように、エンジンが急激に加速したために、角度カウンタ５２が目標カウンタ値に達する前にエッジ検出部４２がクランク信号のエッジを検出すると、ｎ＜７である。ｎ＜７であれば、Ｓ４４４の判定はＮｏになる。
【００７１】
Ｓ４４４の判定がＮｏである、つまりｎ＜７でありｎが（エッジ間ＡＤ取得回数＋１）よりも小さい場合、Ｓ４４６においてタイマ専用プロセッサ６０は、次式（１０）により、ＡＤ取得間隔時間（ｎ）を算出する。
【００７２】
ＡＤ取得間隔時間（ｎ）
＝駆け上がり１カウント時間×ＡＤ取得間カウント数  ・・・（１０）
ｎ＜７の場合、後述する図５の処理においてｎが加算されｎ＝７になるまで、Ｓ４４６が実行される。
【００７３】
Ｓ４４４の判定がＹｅｓである、つまりｎ＝７でありｎが（エッジ間ＡＤ取得回数＋１）に等しい場合、Ｓ４４８においてタイマ専用プロセッサ６０は、次式（１１）によりＡＤ取得間隔時間（ｎ）を算出する。
【００７４】
ＡＤ取得間隔時間（ｎ）
＝１カウント時間×ＡＤ取得間カウント数  ・・・（１１）
Ｓ４５０においてタイマ専用プロセッサ６０は、エッジ検出フラグをオフにする。これにより、次にエッジ検出部４２がクランク信号のエッジを検出するまで、Ｓ４３０の判定はＮｏになる。
【００７５】
（４）ＡＤ変換の抜け判定処理とＡＤ変換値の補間処理
図５のＡＤ変換の抜け判定処理とＡＤ変換値の補間処理は、図３のＳ４２２で実行される。
【００７６】
Ｓ４６０においてタイマ専用プロセッサ６０は、式（９）が示すｎ＝（エッジ間ＡＤ取得回数＋１）が成立しているか否かを判定する。本実施形態では、エッジ間ＡＤ取得回数＝６である。
【００７７】
Ｓ４６０の判定がＮｏである、つまりｎ＜７の場合、Ｓ４６２においてタイマ専用プロセッサ６０は、ｎを＋１する。
Ｓ４６０の判定がＹｅｓである、つまりｎ＝７の場合、図８ではエッジ検出部４２がクランク信号のエッジを検出してからＡＤ変換が２回実行されている。これに対し、ｎ＝７の場合、図９ではエッジ検出部４２がクランク信号のエッジを検出してからＡＤ変換が１回実行されている。
【００７８】
Ｓ４６０の判定がＹｅｓである、つまりｎ＝７の場合、Ｓ４６４においてタイマ専用プロセッサ６０は、ｉに０を設定する。そして、Ｓ４６６においてタイマ専用プロセッサ６０は、次式（１２）が成立するか否かを判定する。ＡＤ取得間隔時間（ｉ）は、図４のＡＤ取得間隔時間算出処理で算出された値である。
【００７９】
ＡＤ取得間隔時間（ｉ）≦ＡＤ変換実行時間    ・・・（１２）
式（１２）においてＡＤ変換実行時間は、ＡＤ変換部７０が筒内圧信号をＡＤ変換するために要する時間を表している。したがって、式（１２）が成立しない場合、そのときのｉに対応するＡＤ変換は実行されたことを示し、式（１２）が成立する場合、そのときのｉに対応するＡＤ変換は実行されなかったことを示している。
【００８０】
図８に示すように、エンジンが急激に加速せず、エッジ検出部４２がクランク信号のエッジを検出したときに、角度カウンタ５２が目標カウンタ値に達する場合には、ｉ＝０からｉ＝７まで式（１２）は成立する。
【００８１】
図９に示すように、エンジンが急激に加速したために、角度カウンタ５２が目標カウンタ値に達する前にエッジ検出部４２がクランク信号のエッジを検出する場合には、駆け上がり１カウント時間でＡＤ取得間隔時間が算出されたｉの値から、Ｓ４６６の判定はＹｅｓになる。Ｓ４６６の判定がＹｅｓの場合、処理はＳ４７２に移行する。
【００８２】
Ｓ４６６の判定がＮｏである、つまりＡＤ取得間隔時間（ｉ）がＡＤ変換実行時間よりも長い場合、Ｓ４６８においてタイマ専用プロセッサ６０は、ｉ＝ｎであるか否かを判定する。Ｓ４６８の判定がＹｅｓである、つまりｉ＝ｎの場合、すべてのＡＤ取得間隔時間（ｉ）について式（１２）が成立しているので、処理はＳ４７６に移行する。尚、Ｓ４６８においてｎ＝７である。
【００８３】
Ｓ４６８の判定がＮｏである、つまりｉ＝ｎではない場合、Ｓ４７０においてタイマ専用プロセッサ６０は、ｉを＋１して処理をＳ４６６に戻す。
Ｓ４７２においてタイマ専用プロセッサ６０は、ＡＤ取得タイミング補間処理を実行する。ＡＤ取得タイミング補間処理の詳細については後述する。
【００８４】
Ｓ４７４においてタイマ専用プロセッサ６０は、ＡＤ変換値補間処理と格納処理を実行する。ＡＤ変換値補間処理と格納処理の詳細については後述する。Ｓ４７４が終了すると、処理はＳ４７６に移行する。
【００８５】
尚、Ｓ４７２とＳ４７４とが実行されるのは、Ｓ４６６の判定がＹｅｓになるとき、つまり図９に示すように、エンジンが急激に加速したために、角度カウンタ５２が目標カウンタ値に達する前にエッジ検出部４２がクランク信号のエッジを検出し、ＡＤ変換部７０によるＡＤ変換がエッジ間ＡＤ取得回数、実行できずにＡＤ変換の抜けが生じるときである。
【００８６】
Ｓ４７６、Ｓ４７８においてタイマ専用プロセッサ６０は、次式（１３）、（１４）により、今回エッジ検出部４２がクランク信号のエッジを検出してＡＤ変換部７０がＡＤ変換したときのＡＤ取得情報が添え字の０から格納されるように、ＡＤ取得情報の格納位置を整理する。
【００８７】
ＡＤ取得情報（０）＝ＡＤ取得情報（ｎ−１）    ・・・（１３）
ＡＤ取得情報（１）＝ＡＤ取得情報（ｎ）        ・・・（１４）
Ｓ４８０においてタイマ専用プロセッサ６０は、Ｓ４７６、Ｓ４７８において添え字のｎが１まで設定されたので、ｎ＝２にして次のＡＤ取得情報（ｎ）の添え字を設定する。
【００８８】
（５）ＡＤ取得時間補間処理
図６のＡＤ取得時間補間処理は、図５のＳ４７２で実行される。
Ｓ４９０においてタイマ専用プロセッサ６０は、次式（１５）〜（１８）に基づいて、式（１５）のａが示す加速度を算出する。
【００８９】
ｖ＝ｖ０＋ａｔ                                ・・・（１５）
ｖ＝１／最新の１カウント時間                  ・・・（１６）
ｖ０＝１／前回の１カウント時間                ・・・（１７）
ｔ＝ＡＤ変換の実行時間                        ・・・（１８）
Ｓ４９２においてタイマ専用プロセッサ６０は、Ｓ４９０で算出したａが示す加速度と式（１７）で示されるｖ０とを次式（１９）に代入し、ｘとｔとの関係を２次式で表す。
【００９０】
ｘ＝ｖ０ｔ＋ａｔ２／２                        ・・・（１９）
式（１９）において、ｘは角度カウンタ５２のカウンタ値を示し、ｔは時間を表している。
【００９１】
Ｓ４９４においてタイマ専用プロセッサ６０は、式（１９）のｘに、式（４）で算出されたＡＤ取得カウンタ値（０）〜ＡＤ取得カウンタ（ｎ）を順次代入して、そのときのｔの値を補間ＡＤ取得時間（０）〜補間ＡＤ取得時間（ｎ）として算出する。これにより、図９において、白丸で示す実際にＡＤ変換された補間前のＡＤ取得時間に対し、式（１９）の２次式に基づいて補間された黒丸で示す補間ＡＤ取得時間が設定される。
【００９２】
（６）ＡＤ変換の抜け判定処理とＡＤ変換値の補間処理
図７のＡＤ変換値補間処理と格納処理は、図５のＳ４７４で実行される。
Ｓ５００の判定がＹｅｓになり、図９において角度カウンタ５２の駆け上がりが終了し、ｎ＝７のタイミングで示すＡＤ変換部７０によるＡＤ変換が終了すると、Ｓ５０２においてタイマ専用プロセッサ６０は、Ｔ０＜ｔ≦Ｔ１〜Ｔｍ−１＜ｔ≦Ｔｍの範囲に対応するＡＤ変換値補間式０（ｔ）〜ｍ−１（ｔ）を算出する。
【００９３】
尚、Ｔｋは、補間前のＡＤ取得時間（ｋ）を表しており、ｍ−１（ｔ）のｍは、エッジ検出部４２が前回クランク信号のエッジを検出してから本処理が実行されるまでに、実際にＡＤ変換部７０がＡＤ変換した回数である。図９ではｍ＝５である。
【００９４】
タイマ専用プロセッサ６０は、ＡＤ変換値補間式０（ｔ）〜ｍ−１（ｔ）を、ＡＤ変換された時間軸上の前後のＡＤ変換値と補間前のＡＤ取得時間とから、例えばラグランジュの１次補間式または２次補間式に基づいて算出する。
【００９５】
Ｓ５０４、Ｓ５０６においてタイマ専用プロセッサ６０は、ｊ、ｋに初期値の０を設定する。そして、Ｓ５０８において次式（２０）が満たされるまで、Ｓ５１０においてタイマ専用プロセッサ６０は、ｋを＋１する。
【００９６】
Ｔｋ＜補間ＡＤ取得時間（ｊ）≦Ｔｋ＋１                ・・・（２０）
Ｓ５０８の判定がＹｅｓである、つまり時間軸上で前後の補間前のＡＤ取得時間の範囲内に補間ＡＤ取得時間（ｊ）が存在すると、Ｓ５１２においてタイマ専用プロセッサ６０は、ｋに対応するＡＤ変換値補間式ｋ（ｔ）と補間ＡＤ取得時間（ｊ）から補間ＡＤ変換値（ｊ）を算出する。
【００９７】
タイマ専用プロセッサ６０は、Ｓ５１４においてｊが（エッジ間ＡＤ取得回数＋１）に達するまで、Ｓ５１６においてｊを＋１してＳ５０４〜Ｓ５１２の処理を実行する。
Ｓ５１４の判定がＹｅｓである、つまりｊが（エッジ間ＡＤ取得回数＋１）に達すると、Ｓ５１８においてタイマ専用プロセッサ６０は、補間ＡＤ変換値をＲＡＭ３２に格納するための格納先頭アドレスを算出する。格納先頭アドレスは、実際にＡＤ変換された最新のＡＤ変換値が格納されているアドレスから、（実際にＡＤ変換部７０がＡＤ変換した回数＋１）個のＡＤ変換値分前のアドレスである。
【００９８】
Ｓ５２０においてタイマ専用プロセッサ６０は、格納先頭アドレスから順次、Ｓ５１２で算出した補間ＡＤ変換値を格納する。
［３．効果］
以上説明した上記実施形態では、以下の効果を得ることができる。
【００９９】
（１）エンジンが急激に加速すると、ＡＤ変換される角度カウンタ５２のカウンタ値とＡＤ変換される時間との関係は、式（１９）が示すように２次式で表すことができる。
そこで、上記実施形態では、エンジンの急激な加速によりクランク信号の発生タイミングが早まったために、ＡＤ変換部７０がＡＤ変換できないＡＤ変換の抜けが発生すると、所定のカウント数毎にＡＤ変換されるときの角度カウンタ５２のカウンタ値とＡＤ変換される時間とを、２次式で近似する。そして、ＡＤ変換される角度カウンタ５２のカウンタ値に対応する時間を、ＡＤ変換される補間ＡＤ取得時間として算出する。
【０１００】
さらに、補間ＡＤ取得時間の前後でＡＤ変換部７０がＡＤ変換したＡＤ変換値に基づいて、補間ＡＤ取得時間におけるＡＤ変換値を補間して、ＡＤ変換の抜けを含め、クランク信号の信号周期の間でＡＤ変換される目標回数として、エッジ間ＡＤ取得回数のＡＤ変換値を算出する。
【０１０１】
これにより、エンジンの急激な加速によりＡＤ変換できないＡＤ変換の抜けが発生しても、ＡＤ変換できたＡＤ変換値に基づいて、図１０の四角が示すように、本来ＡＤ変換されるクランク角度の角度位置のタイミングにおいて、図１０の丸が示す実際のＡＤ変換値に極力近似したＡＤ変換値を取得できる。
【０１０２】
以上説明した上記実施形態では、ＥＣＵ１０がＡＤ変換処理装置に対応し、角度クロック生成部４４が周期短縮部に対応し、タイマ専用プロセッサ６０が抜け判定部とタイミング設定部と補間部とに対応する。
また、補間ＡＤ取得時間が変換タイミングに対応し、エッジ間ＡＤ取得回数が目標回数に対応し、ＡＤ取得間カウント数が所定のカウント数に対応し、角度クロックが逓倍信号に対応し、目標エッジ間カウント数が所定の逓倍数に対応する。
【０１０３】
また、Ｓ４６６が抜け判定部の処理に対応し、Ｓ４９０〜Ｓ４９４の処理がタイミング設定部の処理に対応し、Ｓ５０２〜Ｓ５１４の処理が補間部の処理に対応する。
【０１０４】
［４．他の実施形態］
（１）上記実施形態では、実際のＡＤ取得間隔時間とＡＤ変換部７０が筒内圧信号をＡＤ変換するために要する時間とを比較してＡＤ変換の抜けが発生したか否かを判定した。これ以外にも、ＡＤ変換部７０が筒内圧信号をＡＤ変換したＡＤ変換値をＤＭＡ部８０がＲＡＭ３２に格納する格納先の値がＡＤ変換値の範囲外であるか否かに基づいて、ＡＤ変換の抜けが発生したか否かを判定してもよい。
【０１０５】
この場合、ＡＤ変換値の格納先に予めＡＤ変換値の範囲外の値を初期値として設定しておくことが考えられる。
（２）補間ＡＤ変換値は、上記実施形態で使用したラグランジュの補間式以外にも、エンジンの加速に伴う筒内圧信号の変化を、エンジン運転状態に基づいて近似する近似式を使用して算出してもよい。
【０１０６】
（３）上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【０１０７】
（４）上述したＡＤ変換処理装置の他、当該ＡＤ変換処理装置を構成要素とするシステム、当該ＡＤ変換処理装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、ＡＤ変換処理方法など、種々の形態で本開示を実現することもできる。
【符号の説明】
【０１０８】
１０：ＥＣＵ（ＡＤ変換処理装置）、４４：角度クロック生成部（周期短縮部）、５２：角度カウンタ、６０：タイマ専用プロセッサ（抜け判定部、タイミング設定部、補間部）、７０：ＡＤ変換部
【図１】
2019035377.tif 000003
【図２】
2019035377.tif 000004
【図３】
2019035377.tif 000005
【図４】
2019035377.tif 000006
【図５】
2019035377.tif 000007
【図６】
2019035377.tif 000008
【図７】
2019035377.tif 000009
【図８】
2019035377.tif 000010
【図９】
2019035377.tif 000011
【図１０】
2019035377.tif 000012