(57)【要約】【課題】追従カウンタにおけるカウント動作回数の補正誤りを抑制可能な電子制御装置を提供する。【解決手段】電子制御装置１は、基準カウンタ１３５と、動作判断部１３８によるカウントアップの実行または待機の判断に従い、基準カウンタを追従するアングルカウンタ１３６とを備える。動作判断部１３８は、リセットを跨いだクランク角への補正である旨を示すフラグが関係フラグレジスタ１３７に設定されている場合には、そのフラグに従いカウントアップの実行または待機の判断を行う。【選択図】図２
2020148120.tif 000002
【特許請求の範囲】
【請求項１】
設定された数値からカウント動作し、所定数値ごとのリセットを跨いで物理量をカウントする基準カウンタ（１３５）と、
前記基準カウンタの数値を追従してカウント動作し、前記所定数値ごとのリセットを跨いで前記物理量をカウントする追従カウンタ（１３６）と、
前記基準カウンタの数値の示す前記物理量を更新するカウンタ更新部（１１２）と、
前記基準カウンタの数値と前記追従カウンタの数値との大小関係に基づいて、前記追従カウンタのカウント動作の実行または待機を判断する動作判断部（１３８）と、
前記基準カウンタの数値の示す前記物理量と、前記追従カウンタの数値が示す前記物理量との大小関係を示すフラグを保持する関係フラグレジスタ（１３７）と、
前記カウンタ更新部により前記基準カウンタの数値が更新される場合に、その更新で新たに前記基準カウンタに設定される数値の示す前記物理量に従って前記フラグを設定するフラグ設定部（１１４）と、を備え、
前記動作判断部は、前記フラグが設定されている場合には、前記フラグに従ってカウント動作の実行または待機を判断する電子制御装置。
【請求項２】
前記動作判断部は、前記基準カウンタの数値と前記追従カウンタの数値との大小関係が実行に対応する大小関係である場合であっても、前記関係フラグレジスタに待機に対応する大小関係を示すフラグが設定されている場合には、カウント動作を待機させる請求項１に記載の電子制御装置。
【請求項３】
前記動作判断部は、前記基準カウンタの数値と前記追従カウンタの数値との大小関係が待機に対応する大小関係である場合であっても、前記関係フラグレジスタに実行に対応する大小関係を示すフラグが設定されている場合には、カウント動作を実行させる請求項１に記載の電子制御装置。
【請求項４】
前記追従カウンタは、カウント動作の実行に同期してアングルクロックを出力し、
前記動作判断部は、前記関係フラグレジスタに待機に対応する大小関係を示すフラグが設定されている場合には、カウント動作を待機させると共に前記アングルクロックの出力を待機させる請求項２に記載の電子制御装置。
【請求項５】
前記追従カウンタは、カウント動作の実行に同期してアングルクロックを出力し、
前記動作判断部は、前記関係フラグレジスタに実行に対応する大小関係を示すフラグが設定されている場合には、カウント動作を実行させると共に前記アングルクロックを出力させる請求項３に記載の電子制御装置。
【請求項６】
設定された数値からカウント動作し、所定数値ごとのリセットを跨いで物理量をカウントする基準カウンタ（１３５）と、
前記基準カウンタの数値を追従してカウント動作し、前記所定数値ごとのリセットを跨いで前記物理量をカウントする追従カウンタ（１３６）と、
前記基準カウンタの数値と前記追従カウンタの数値との大小関係に基づいて、前記追従カウンタのカウント動作の実行または待機を判断する動作判断部（１３８）と、
前記基準カウンタの数値の示す前記物理量と、前記追従カウンタの数値が示す前記物理量との大小関係を示すフラグを保持する関係フラグレジスタ（１３７）と、を備え、
前記動作判断部は、前記フラグが設定されている場合には、前記フラグに従ってカウント動作の実行または待機を判断するマイクロコンピュータ。
【請求項７】
前記動作判断部は、前記基準カウンタの数値と前記追従カウンタの数値との大小関係が実行に対応する大小関係である場合であっても、前記関係フラグレジスタに待機に対応する大小関係を示すフラグが設定されている場合には、カウント動作を待機させる請求項６に記載のマイクロコンピュータ。
【請求項８】
前記動作判断部は、前記基準カウンタの数値と前記追従カウンタの数値との大小関係が待機に対応する大小関係である場合であっても、前記関係フラグレジスタに実行に対応する大小関係を示すフラグが設定されている場合には、カウント動作を実行させる請求項６に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、内燃機関の制御に用いられる電子制御装置、およびマイクロコンピュータに関する。
【背景技術】
【０００２】
特許文献１には、内燃機関の制御に用いられる電子制御装置が開示されている。特許文献１の電子制御装置は、アングルクロック部を備えている。アングルクロック部は、クランク信号のエッジ周期の逓倍により、エッジ周期よりも高い分解能でクランク角の遷移を示すアングルクロックを生成するタイマ回路である。アングルクロックは、点火処理等の実行タイミングの制御に用いられる、クランク角の変動量と連動した回数出力されるクロック信号である。アングルクロック部は、基準カウンタと、アングルカウンタとを有している。
【０００３】
基準カウンタには、エッジ発生ごとに、そのエッジの発生したクランク角に相当する数値がセットされる。基準カウンタは、次のエッジ発生までの期間において、セットされた数値から、次にエッジの発生するクランク角に相当する数値に向けて順次カウントアップする。基準カウンタのカウントアップは、直前のエッジ周期を逓倍した周期の逓倍クロックごとに発生する。基準カウンタは、エッジ発生時のセットにより数値を更新されるにあたり、数値の不連続な変動を生じうる。従って基準カウンタは、数値の抜けや重複が発生する場合があり、直接アングルクロックを生成できない。
【０００４】
アングルカウンタは、エッジの発生に拘わらずカウントアップを一ずつ行い、連続的に数値を変動させるカウンタである。アングルカウンタは、逓倍クロックにより基準カウンタのカウントアップが発生すると、カウントアップした数値を追従して自身もカウントアップする。アングルカウンタは、カウントアップごとにアングルクロックを出力することにより、クランク角の変動量に連動した回数のアングルクロックを出力する。
【０００５】
アングルカウンタは、基準カウンタに不連続な変動が生じた場合、自身の数値と基準カウンタの数値との大小関係に応じて挙動を変化させる。具体的には、アングルカウンタは、自身の数値が基準カウンタの数値未満の場合には、高速で一ずつカウントアップして基準カウンタの数値を追従する。アングルカウンタは、自身の数値が基準カウンタの数値以上の場合には、カウントアップを停止して待機する。これにより、アングルカウンタの数値に加えて、カウントアップ回数、すなわちアングルクロックの出力回数が実際のクランク角に合わせて補正される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１９０３４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一方、各カウンタは、保持可能な数値のハードウェア的な上限により、所定角度分の回数のカウントアップごとの数値のリセットを必要とする。電子制御装置は、こうしたリセットの周期に応じて、クランク角を各カウンタの保持可能な範囲の数値に置き換えてカウントさせる。これにより電子制御装置は、各カウンタのリセットに拘わらず、見かけ上継続してクランク角をカウントさせる。
【０００８】
しかし、カウントさせているクランク角をこうしたリセットを跨いで補正させる場合、アングルカウンタのカウントアップ回数がクランク角に合わせて適切に補正されない場合があった。すなわち、異なるクランク角であっても、各カウンタの保持するハードウェア的な数値に置き換えた場合の数値が一致しうる。従ってアングルカウンタのような追従カウンタでは、保持するハードウェア的な数値が正しく補正されても、カウントアップの回数が誤って補正されるおそれがあった。
【０００９】
本開示は、追従カウンタにおけるカウント動作回数の補正誤りを抑制可能な電子制御装置、およびその電子制御装置で用いられるマイクロコンピュータの提供を目的とする。
【課題を解決するための手段】
【００１０】
上記目的は独立請求項に記載の特徴の組み合わせにより達成され、また、下位請求項は、本開示の更なる有利な具体例を規定する。特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【００１１】
上記目的を達成するための本開示の電子制御装置は、設定された数値からカウント動作し、所定数値ごとのリセットを跨いで物理量をカウントする基準カウンタ（１３５）と、基準カウンタの数値を追従してカウント動作し、所定数値ごとのリセットを跨いで物理量をカウントする追従カウンタ（１３６）と、基準カウンタの数値の示す物理量を更新するカウンタ更新部（１１２）と、基準カウンタの数値と追従カウンタの数値との大小関係に基づいて、追従カウンタのカウント動作の実行または待機を判断する動作判断部（１３８）と、基準カウンタの数値の示す物理量と、追従カウンタの数値が示す物理量との大小関係を示すフラグを保持する関係フラグレジスタ（１３７）と、カウンタ更新部により基準カウンタの数値が更新される場合に、その更新で新たに基準カウンタに設定される数値の示す物理量に従ってフラグを設定するフラグ設定部（１１４）と、を備え、動作判断部は、フラグが設定されている場合には、フラグに従ってカウント動作の実行または待機を判断する。
【００１２】
以上の構成によれば、カウンタ更新部により基準カウンタの数値が更新される場合には、フラグ設定部により、新たに設定される数値の示す物理量に従って、関係フラグレジスタにフラグが設定される。動作判断部は、こうしたフラグにより示されるリセットを跨いだ大小関係に従い、リセットを跨いだ物理量への更新であるか否かを反映して追従カウンタにカウント動作を実行または待機させうる。従って電子制御装置は、追従カウンタのカウント動作の回数誤りを抑制可能となる。
【００１３】
また上記目的を達成するための本開示のマイクロコンピュータは、設定された数値からカウント動作し、所定数値ごとのリセットを跨いで物理量をカウントする基準カウンタ（１３５）と、基準カウンタの数値を追従してカウント動作し、所定数値ごとのリセットを跨いで物理量をカウントする追従カウンタ（１３６）と、基準カウンタの数値と追従カウンタの数値との大小関係に基づいて、追従カウンタのカウント動作の実行または待機を判断する動作判断部（１３８）と、基準カウンタの数値の示す物理量と、追従カウンタの数値が示す物理量との大小関係を示すフラグを保持する関係フラグレジスタ（１３７）と、を備え、動作判断部は、フラグが設定されている場合には、フラグに従ってカウント動作の実行または待機を判断する。
【００１４】
以上の構成によれば、基準カウンタの数値が更新された場合に、動作判断部は、関係フラグレジスタに設定されたフラグにより示されるリセットを跨いだ大小関係に従い、リセットを跨いだ物理量への更新であるか否かを反映して追従カウンタにカウント動作を実行または待機させうる。従ってマイクロコンピュータは、追従カウンタのカウント動作の回数誤りを抑制可能となる。
【図面の簡単な説明】
【００１５】
【図１】エンジンＥＣＵの構成を示す図である。
【図２】マイクロコンピュータの構成を示す図である。
【図３】クランク角の変化量と各カウンタの保持する数値との関係を示す図である。
【図４】同期機能を実現する割り込み処理の例を示すフローチャートである。
【図５】リセットを跨いで大きいクランク角への更新における基準値およびアングル値の示すクランク角の遷移を示すタイミングチャートである。
【図６】リセットを跨いで大きいクランク角への更新における基準値およびアングル値の遷移を示すタイミングチャートである。
【図７】リセットを跨いで小さいクランク角への更新における基準値およびアングル値の示すクランク角の遷移を示すタイミングチャートである。
【図８】リセットを跨いで小さいクランク角への更新における基準値およびアングル値の遷移を示すタイミングチャートである。
【発明を実施するための形態】
【００１６】
本開示の実施形態による電子制御装置１、および電子制御装置１で用いられるマイクロコンピュータ（以下、マイコンと略称する）１００を図面に沿って説明する。図１に示す電子制御装置１は、例えば車両用のガソリンエンジンやディーゼルエンジンなどの内燃機関の制御に用いられる電子制御装置である。電子制御装置１は、クランク軸センサ２などからの信号に基づいて、クランク軸３の回転角（以下、クランク角）などの内燃機関の状態を逐次把握する。
【００１７】
クランク軸センサ２は、クランク角の変動に応じて電圧レベルの変動するクランク信号を電子制御装置１に出力する。クランク軸センサ２は、例えば磁気センサであり、クランク軸３に設けられたクランクシグナルロータ４によるクランク角に応じた磁界強度の変動を検出する。クランクシグナルロータ４は、外周に所定の角度間隔で突出する歯を設けられた、クランク軸３と一体に回転する略円板状の磁性部材である。
【００１８】
クランク軸センサ２は、クランクシグナルロータ４の歯と対向する位置に設けられている。クランク軸センサ２は、内燃機関の作動に伴いクランク軸３が所定方向に回転している状態において、歯の通過によって生じる磁界強度の変動を検出する。クランクシグナルロータ４の歯は、例えば外周の一カ所に設けられた欠け歯部を除いて１０度ごとに設けられている。欠け歯部は、１０度ごとの歯を所定数取り除いた、実際のクランク角と電子制御装置１の認識するクランク角との位置合わせ基準として用いられる部分である。本実施形態の欠け歯部は、歯を二つ連続で取り除くことにより形成されている。この結果、クランク信号の立ち上がりのエッジは、欠け歯部を除いてクランク軸３の１０度回転ごとの実質的に均等な角度間隔で発生する。欠け歯部の直前のエッジおよび直後のエッジの間隔は、３０度間隔となっている。
【００１９】
電子制御装置１は、入力回路１０、出力回路２０、およびマイコン１００を備えている。入力回路１０は、クランク軸センサ２から入力されるクランク信号などの信号をマイコン１００に取り込むための回路である。入力回路１０は、例えばクランク信号およびカム信号の波形を二値の矩形波状に整形してマイコン１００に入力する。
【００２０】
出力回路２０は、マイコン１００による判断に基づき、インジェクタやイグナイタなどの電子制御装置１の制御対象に対して駆動信号を出力する回路である。例えば出力回路２０は、マイコン１００から制御対象ごとに駆動信号の出力指示を受け、対応する制御対象に駆動信号を出力する。
【００２１】
マイコン１００は、図２に示すように、例えば半導体メモリなどの記憶部１０１と、ＣＰＵなどのプロセッサコア１１０を備えたマイクロコンピュータである。記憶部１０１は、プロセッサコア１１０で実行されるソフトウェアを非一時的に記録した非遷移的かつ実体的な記憶媒体に相当する。記憶部１０１、およびプロセッサコア１１０は内部バスを介して各種の周辺機能回路などと相互に接続されている。プロセッサコア１１０は、記憶部１０１に記憶されたソフトウェアに定義されている各種の処理の実行により、周辺機能回路などと協働して内燃機関を制御するための各種の機能を実現する。マイコン１００は、周辺機能回路として、タイマアレイユニット１２０などを備えている。
【００２２】
タイマアレイユニット１２０は、タイマ回路を複数備えた周辺機能回路である。タイマ回路は、カウンタやレジスタ、およびそれらの制御回路などにより構成された回路ブロックである。タイマアレイユニット１２０は、一つのタイマ回路、または連携させた複数のタイマ回路により、各種のタイマ機能を提供する。タイマアレイユニット１２０は、アングルクロック生成部１３０、および出力タイマ部１４０を含んでいる。
【００２３】
アングルクロック生成部１３０は、クランク信号に基づいて、アングルクロックを生成する機能を発揮する回路である。アングルクロックは、クランク信号の立ち上がりエッジ間隔よりも小さい間隔でクランク角の遷移を推定するための信号である。アングルクロックは、例えばクランク角の遷移を１６分の１度の分解能で推定可能となるように設定されている。具体的には、アングルクロックは、クランク角が１６分の１度変動したと推定されるごとに一回パルス状に出力される信号である。なお、アングルクロックの生成に用いる入力信号として、クランク信号に加えてカム信号などその他の信号を組み合わせて、あるいは切替えて用いることも可能である。アングルクロック生成部１３０は、エッジ検出部１３１、逓倍部１３２、カウンタ群１３３、関係フラグレジスタ１３７、および動作判断部１３８を有する。
【００２４】
エッジ検出部１３１は、例えばシフトレジスタなどを含んで構成された、入力回路１０からクランク信号の入力を受け付けるチャネルである。エッジ検出部１３１は、クランク信号のエッジのうち、各立ち上がりエッジ、各立ち下がりエッジ、または各両エッジのいずれかを検出する。本実施形態のエッジ検出部１３１は、立ち上がりエッジを検出し、エッジを検出した旨の通知を行う。
【００２５】
逓倍部１３２は、逓倍クロックを生成する回路である。逓倍クロックは、クランク信号のエッジ周期を逓倍した周期でパルスの発生するクロック信号である。逓倍部１３２は、エッジ検出部１３１により検出されたクランク信号のエッジ周期、すなわち時間間隔を計測する。逓倍部１３２は、エッジ発生ごとに、計測した前のエッジからの時間間隔に基づき、次のエッジ発生まで期間における逓倍クロックの周期、すなわち時間間隔を設定する。逓倍クロックの周期は、クランク信号のエッジ周期を生成倍率で割った時間となる。生成倍率は、アングルクロックの角度間隔に対する、クランク信号にエッジの生じる角度間隔の比を示す数値である。本実施形態の逓倍部１３２は、１０度間隔に相当するエッジ周期に対し、１６０倍の生成倍率で逓倍クロックを生成する。逓倍部１３２は、エッジ発生の間の期間において、直前のエッジ発生で設定された周期に従って逓倍クロックを出力する。
【００２６】
カウンタ群１３３は、物理量として、クランク角の所定の基準位置からの変化量をカウントする複数のカウンタである。具体的には、カウンタ群１３３は、ガードカウンタ１３４、基準カウンタ１３５、およびアングルカウンタ１３６を含む。各カウンタの１カウントは、クランク角の１６分の１度の変化量に相当している。また本実施形態の各カウンタは８ビット長のカウンタである。従って各カウンタの保持する数値は、ハードウェア的な上限により、所定数値ごとにリセットされる。各カウンタは、こうしたリセットを跨いで、回転に伴い単調増加するクランク角の変化量をカウントし続ける。すなわち図３に示すように、各カウンタの保持する数値は、クランク角の変化量の単調増大に対して、周期的にクリアされて０となり、再び増大を開始することを繰り返す。
【００２７】
なお、本実施形態では、各カウンタは数値のカウント動作としてカウントアップを行う構成である。すなわち、クランク軸３の所定方向への回転に伴うクランク角の変化量を、数値の増大量として示す構成である。しかし、カウント動作としてカウントダウンすることにより、変動量を数値の減少量として示す構成とすることもできる。カウントダウンする構成の場合、各カウンタのカウントする数値の大小関係に対して、クランク角の変化量における大小関係が逆となる。従ってこうした構成では、カウント動作の実行条件などの大小関係も、本実施形態と逆の大小関係となる。
【００２８】
ガードカウンタ１３４は、基準カウンタ１３５のカウントアップを停止させる数値である、ガード値を保持するカウンタである。ガード値は、次回のエッジの発生するクランク角に相当する数値である。ガードカウンタ１３４は、クランク信号のエッジ発生によりエッジ検出部１３１でエッジ検出されるごとに、その次のエッジに相当する数値にガード値を更新する。本実施形態のガードカウンタ１３４は、エッジ検出ごとに直前の数値から１０度分進んだ数値にカウントアップすることにより、原則として自動でガード値を更新する。
【００２９】
ガードカウンタ１３４は、プロセッサコア１１０によりガード値の更新を必要とすると判断された場合には、ガード値をプロセッサコア１１０の指定に従い更新する。プロセッサコア１１０の指示に従う更新は、所定のエッジ発生により生じる。例えば、欠け歯部の直前に相当すると推定されるエッジが発生した場合、および発生したエッジが欠け歯部直後の次に相当すると確認された場合に、プロセッサコア１１０による更新が生じる。
【００３０】
欠け歯部の直前に相当するエッジでは、次回のエッジ発生は１０度後ではなく３０度後となる。従ってガード値は、プロセッサコア１１０で欠け歯部の直前と推定されたエッジにおいて、プロセッサコア１１０により３０度分進んだ数値への更新を受ける。
【００３１】
また、欠け歯部の直前のエッジと直後のエッジとの時間間隔に基づいて、実際のエッジの位置が確認可能である。欠け歯部直後の次のエッジであると確認されたエッジにおいて、推定されていたエッジが他のエッジとなっていた場合、ガード値がプロセッサコア１１０により補正される。より具体的には、ガード値は、欠け歯部直後の次のエッジに相当するエッジが発生されたと確認された場合、欠け歯部直後の次のエッジに相当する数値への更新を受ける。
【００３２】
基準カウンタ１３５は、アングルカウンタ１３６のカウントする数値の基準となる基準値を設定、およびカウントするためのカウンタである。基準値は、現在のクランク角に相当する数値を、クランク信号のエッジの間を１６分の１度の分解能で補完して推定した値である。基準カウンタ１３５は、クランク信号のエッジ発生によりエッジ検出部１３１でエッジ検出されるごとに、そのエッジに相当する数値にガード値を更新する。
【００３３】
基準カウンタ１３５は、逓倍部１３２からの逓倍クロック発生ごとにカウントアップすることにより、エッジ発生の間の期間におけるクランク角の遷移を補完する。基準カウンタ１３５は、基準値がガード値と一致している場合、逓倍クロックの発生に拘わらず次のエッジ発生までカウントアップを待機する。すなわち、次のエッジ発生に相当する数値までのカウントアップを完了すると、それ以上カウントアップを行わず待機する。
【００３４】
本実施形態の基準カウンタ１３５は、エッジ検出ごとにガードカウンタ１３４の更新前の数値を転送されることにより、原則として自動でガード値を更新する。基準カウンタ１３５は、プロセッサコア１１０が基準値の更新を必要とすると判断した場合には、基準値をプロセッサコア１１０の指示に従い更新する。プロセッサコア１１０の指示に従う更新は、所定のエッジの発生により生じる。
【００３５】
例えば、発生したエッジが欠け歯部直後の次に相当すると確認された場合に、プロセッサコア１１０による更新が生じる。すなわち基準値は、欠け歯部直後の次以外と推定されていたエッジが、実際には欠け歯部直後の次であるとプロセッサコア１１０で判断された場合に補正される。より具体的には、基準値は、欠け歯部直後の次のエッジに相当する数値への更新を受ける。
【００３６】
アングルカウンタ１３６は、基準値を追従して数値のカウント動作を行う「追従カウンタ」に相当する。アングルカウンタ１３６は、アングルクロックの出力回数を示すアングル値をカウントするカウンタである。アングルカウンタ１３６は、エッジの発生に拘わらず、一ずつカウントアップする。アングル値は、ハードウェア的な上限による数値のリセットを除き、一ずつのカウントアップによってのみ変動する。すなわちアングルカウンタ１３６は、プロセッサコア１１０による強制的な数値の更新を直接受けることなく、連続的にクランク角に相当する数値をカウントする。
【００３７】
アングルカウンタ１３６は、カウントアップの度にアングルクロックを一回出力する。すなわちアングルカウンタ１３６は、クランク角を示す数値をアングル値として抜けおよび重複なくカウントしつつ、各数値に一対一で対応するアングルクロックを出力する。従って、アングルクロックの出力回数は、クランク角の変化量に連動した回数となる。
【００３８】
アングルカウンタ１３６は、動作判断部１３８における、基準値とアングル値との大小関係に基づいてカウント動作を行う。例えば、アングルカウンタ１３６は、逓倍クロックにより基準値が１カウントアップした場合には、追従して１カウントアップして数値を一致させる。アングルカウンタ１３６は、基準値が更新により見かけ上一括してカウントアップした場合、逓倍クロックによるカウントアップの場合よりも高速でカウントアップする。例えば、タイマアレイユニット１２０の動作クロックごとのカウントアップで、基準値と一致するまで追従してカウントアップする。アングルカウンタ１３６は、高速でカウントアップしつつ、カウントアップごとにアングルクロックを出力する。
【００３９】
アングルカウンタ１３６は、基準値が更新により元の数値よりも小さい数値となった場合、カウントアップを待機する。すなわちアングルカウンタ１３６は、基準値がアングル値よりも小さい数値である場合、基準値が再びアングル値を上回るまで、カウントアップを停止して数値を維持する。
【００４０】
関係フラグレジスタ１３７は、基準値の示すクランク角と、クロック値の示すクランク角との大小関係を示すフラグを保持するレジスタである。関係フラグレジスタ１３７には、各カウンタのリセットを跨いだクランク角の大小関係を示すフラグが設定される。すなわち、関係フラグレジスタ１３７は、基準値の示すクランク角とクロック値の示すクランク角との間に、カウンタのリセットの発生するクランク角が存在するか否かを示す。
【００４１】
関係フラグレジスタ１３７は、例えば大、小、同一の少なくとも三つの状態をとりうるレジスタである。本実施形態の関係フラグレジスタ１３７は、ビット長が二ビットのレジスタであり、レジスタのとりうる四つの値のうち三つの値に三つの状態を一対一で割り当てられている。関係フラグレジスタ１３７は、三つの状態のうちいずれの状態であるかを示すフラグとして値を保持する。
【００４２】
大の状態を示すフラグは、基準値の示すクランク角が、クロック値の示すクランク角に対して、リセットを跨いで大きいクランク角である旨を示す。換言すれば、リセットの発生するクランク角の中に、基準値の示すクランク角よりも小さく、かつアングル値の示すクランク角よりも大きいクランク角が存在する旨を示す。
【００４３】
小の状態を示すフラグは、基準値の示すクランク角が、クロック値の示すクランク角に対して、リセットを跨いで小さいクランク角である旨を示す。換言すれば、リセットの発生するクランク角の中に、基準値の示すクランク角よりも大きく、かつアングル値の示すクランク角よりも小さいクランク角が存在する旨を示す。
【００４４】
大および小の状態のいずれのフラグも保持していない状態、すなわち同一を示す状態は、基準値の示すクランク角が、アングル値の示すクランク角からリセットを跨がない、同じカウント区間である旨を示す。換言すれば、基準値の示すクランク角とアングル値の示すクランク角との間に、リセットの発生するクランク角が存在しない旨を示す。
【００４５】
関係フラグレジスタ１３７の保持する大または小の状態を示すフラグは、例えば各カウンタのリセット発生に伴いクリア、すなわち同一を示す状態に変更される。本実施形態の関係フラグレジスタ１３７は、各カウンタのリセット発生に伴い、プロセッサコア１１０からの指示に依らず自動でフラグをクリアされる。より具体的には、大の状態を示すフラグは、アングルカウンタ１３６にリセットが発生した場合にクリアされ、同一を示す状態に変更される。また小の状態を示すフラグは、基準カウンタ１３５のリセットが発生した場合にクリアされ、同一を示す状態に変更される。
【００４６】
動作判断部１３８は、アングルカウンタ１３６のカウント動作を制御する制御回路である。動作判断部１３８は、動作クロックごとに、アングルカウンタ１３６のカウントアップを実行させるか、待機させるかを判断する機能を有する。動作判断部１３８は、関係フラグレジスタ１３７に大または小の状態を示すフラグが設定されていない場合、基準値とアングル値との大小関係に従い、実行か待機かを判断する。動作判断部１３８は、基準値がアングル値よりも大きい場合には、実行と判断する。すなわち、アングル値が基準値と一致するまで、動作クロックごとにアングルカウンタ１３６のカウントアップを実行させる。また動作判断部１３８は、基準カウンタ１３５の数値がアングルカウンタ１３６の数値以下である場合には、カウントアップを待機すると判断する。
【００４７】
動作判断部１３８は、関係フラグレジスタ１３７に大または小の状態を示すフラグが設定されている場合、そのフラグに従ってカウントアップの実行または待機を判断する。具体的には、基準値とアングル値との大小関係に拘わらず、フラグの示すクランク角の大小関係に従って実行または待機を判断する。
【００４８】
すなわち、関係フラグレジスタ１３７に大の状態を示すフラグが設定されている場合、基準値は、アングル値との大小関係に拘わらず、アングル値よりも大きいクランク角を示す。換言すれば基準値は、アングル値としてはまだカウントされていない、未来にカウントする予定のクランク角を示す状態となっている。従って動作判断部１３８は、関係フラグレジスタ１３７に大の状態を示すフラグが設定されている場合、基準値とアングル値との大小関係に拘わらず、高速でカウントアップを実行させる。
【００４９】
また、関係フラグレジスタ１３７に小の状態を示すフラグが設定されている場合、基準値は、アングル値との大小関係に拘わらず、アングル値よりも小さいクランク角を示す。換言すれば基準値は、アングル値としては既にカウント済みとなっている、過去にカウントしたクランク角を示す状態となっている。従って動作判断部１３８は、関係フラグレジスタ１３７にフラグが設定されている場合、基準値とアングル値との大小関係に拘わらず、カウントアップを待機させる。
【００５０】
出力タイマ部１４０は、出力回路２０に対して駆動信号の出力を指示する機能を有するタイマである。出力タイマ部１４０は、アングルカウンタ１３６から出力されるアングルクロックの回数をカウントし、クランク角の変動量を連続的に認識する。出力タイマは、認識した現在のクランク角を示す数値が設定された指示値と一致すると、駆動信号の出力開始や停止などの指示を出力回路２０に出力する。指示値は、プロセッサコア１１０により設定された、指示を行うクランク角に相当する数値である。
【００５１】
プロセッサコア１１０の発揮する機能には、アングルクロック生成部１３０における各種の動作を、クランク信号のエッジに同期させる同期機能が含まれる。具体的には、プロセッサコア１１０の発揮する同期機能には、補正判断部１１１、カウンタ更新部１１２、およびフラグ設定部１１４としての機能が含まれる。
【００５２】
補正判断部１１１は、ガード値および基準値の補正を実行するか否かを判断する機能である。補正判断部１１１は、クランク信号のエッジ発生に従って起床される。補正判断部１１１は、例えば各エッジの発生ごとに起床される。補正判断部１１１は、発生したエッジが所定のクランク角に対応しており、かつそのクランク角に対し推定していたクランク角がズレを生じている場合に、補正を実行すると判断する。
【００５３】
本実施形態の補正判断部１１１は、所定のクランク角に対応するエッジとして、欠け歯部直後の次に相当するエッジを用いる。補正判断部１１１は、例えば三回前のエッジまでについて各エッジの間の経過時間を互いに比較することにより、今回のエッジが欠け歯部直後の次に相当しているか否かを判断する。
【００５４】
また補正判断部１１１は、起床ごとに、起床の回数に応じて推定される今回および次回のエッジに対応するクランク角を算出し、記憶部１０１に格納している。推定されるクランク角には、エッジの誤検出や検出漏れにより実際のエッジ発生回数と起床回数とにズレが生じた場合に、実際のクランク角からのズレが生じうる。
【００５５】
こうしたズレにより、今回のエッジが実際に欠け歯部直後の次に相当するにも拘らず、推定していたクランク角が欠け歯部直後の次のエッジとは異なるクランク角となりうる。すなわち、今回のエッジにより更新される前のガード値が、欠け歯部直後の次に相当しない状態となりうる。従って補正判断部１１１は、今回のエッジが実際に欠け歯部直後の次に相当し、かつ更新前のガード値が欠け歯部直後の次に相当しない場合に、更新を実行すると判断する。
【００５６】
カウンタ更新部１１２は、補正判断部１１１で補正を必要とすると判断されている場合に、基準値の示すクランク角の更新を行う機能である。すなわちカウンタ更新部１１２は、今回のエッジに相当するクランク角、すなわち欠け歯部直後の次に相当するエッジを示す数値を、基準値として基準カウンタ１３５に設定する。具体的には、カウンタ更新部１１２は、基準カウンタ１３５のリセット間隔に基づいて、基準カウンタ１３５で保持可能な範囲の数値にクランク角を置き換える。カウンタ更新部１１２は、クランク角を置き換えた数値を、新たな基準値として基準カウンタ１３５に設定する。
【００５７】
リセット判断部１１３は、基準値の補正が、リセットを跨いだ補正であるか否かを判断する機能である。すなわち、リセット判断部１１３は、補正前および補正後の基準値が示すクランク角の間に、リセットの発生するクランク角が存在するか否かを判断する。補正前の基準値、すなわち今回のエッジ発生の時点における基準値は、前回のエッジ発生で設定されたガード値を上限としたカウントアップによる数値である。従って補正前の基準値の示すクランク角は、例えば前回のエッジ発生時に次回のエッジに相当するクランク角として補正判断部１１１で推定されたクランク角とみなされる。補正後の基準値の示すクランク角は、補正の判断に用いられた実際のクランク角、すなわち欠け歯部直後の次に相当するクランク角である。リセットの発生するクランク角は、基準カウンタ１３５のリセット間隔に基づいて算出される。
【００５８】
フラグ設定部１１４は、カウンタ更新部１１２により基準値が更新される場合に、関係フラグレジスタ１３７のフラグを設定する機能である。フラグ設定部１１４は、その更新で新たに基準カウンタ１３５に設定される基準値の示す物理量に従ってフラグを設定する。具体的には、フラグ設定部１１４は、リセット判断部１１３による、補正後の基準値に関する判断結果に従ってフラグを設定する。フラグ設定部１１４は、リセット判断部１１３により、リセットを跨いだ補正でないと判断されている場合には、関係フラグレジスタ１３７にフラグを設定しない。
【００５９】
フラグ設定部１１４は、リセット判断部１１３により、リセットを跨いだ補正であると判断されている場合には、関係フラグレジスタ１３７にフラグを設定する。より具体的には、リセットを跨いでおり、かつ補正値の示すクランク角が、更新後の方が更新前より大きい場合、関係フラグレジスタ１３７に大の状態を示すフラグを設定する。リセットを跨いでおり、かつ補正値の示すクランク角が、更新後の方が更新前よりも小さい場合、関係フラグレジスタ１３７に小の状態を示すフラグを設定する。
【００６０】
［プロセッサコア１１０の作動］
プロセッサコア１１０の作動例を、図４のフローチャートに沿って説明する。プロセッサコア１１０は、図４に示す処理の実行により、同期機能を発揮する。プロセッサコア１１０は、エッジ検出部１３１でのエッジ検出による割り込み処理として、図４に示す処理をＳ１から実行する。
【００６１】
Ｓ１では、基準値の補正が必要であるか否かを判断する。すなわち、今回のエッジが欠け歯部直後の次であり、かつ推定していたクランク角が欠け歯部直後の次以外であるか否かを判断する。補正が必要、すなわち欠け歯部直後の次であり、かつ推定していたクランク角が欠け歯部直後の次以外である場合にはＳ２に進む。補正が必要でない、すなわち欠け歯部直後の次でない、または欠け歯部直後の次であっても正しく欠け歯部直後の次と推定していた場合には、図４に示す処理を終了する。
【００６２】
Ｓ２では、Ｓ１で必要と判断された補正が、リセットを跨ぐか否かを判断する。リセットを跨ぐと判断した場合にはＳ３に進み、跨がないと判断した場合にはＳ６に進む。
【００６３】
Ｓ３では、更新後の基準値の示すクランク角が、更新前の基準値の示すクランク角よりも大きいか否かを判断する。更新後の方が更新前よりも大きい場合にはＳ４に進む。更新後の方が更新前よりも大きくない、すなわち更新前よりも小さい場合にはＳ５に進む。
【００６４】
Ｓ４では、関係フラグレジスタ１３７に大の状態を示すフラグを設定することにより、更新後の基準値が、更新前の基準値に対してリセットを跨いで大きいクランク角を示している旨を設定する。
【００６５】
Ｓ５では、関係フラグレジスタ１３７に小の状態を示すフラグを設定することにより、更新後の基準値が、更新前の基準値に対してリセットを跨いで小さいクランク角を示している旨を設定する。
【００６６】
Ｓ６では、Ｓ１で必要と判断された補正に従い、新たな基準値を基準カウンタ１３５に設定する。すなわち、欠け歯部直後の次のエッジに相当するクランク角を、基準カウンタ１３５のリセット間隔に従って置き換えた基準値を設定する。
【００６７】
［実施形態のまとめ］
以上、説明した実施形態によれば、カウンタ更新部１１２により基準値が更新される場合には、フラグ設定部１１４により、新たに設定される基準値の示すクランク角に従って、関係フラグレジスタ１３７にフラグが設定される。動作判断部１３８は、こうしたフラグにより示されるリセットを跨いだ大小関係に従い、リセットを跨いだクランク角への更新であるか否かを反映してアングルカウンタ１３６にカウントアップを実行または待機させうる。従って電子制御装置１は、アングルカウンタ１３６のカウントアップの回数誤りを抑制可能となる。
【００６８】
すなわち、動作判断部１３８は、各カウンタの数値がカウントアップの実行に対応する大小関係であっても、関係フラグレジスタ１３７の示す大小関係が待機に対応する大小関係であれば、アングルカウンタ１３６にカウントアップを待機させる。より具体的には、更新により基準値がアングル値よりも大きい状態であっても、関係フラグレジスタ１３７に小の状態を示すフラグが設定されていれば、カウントアップを待機させる。
【００６９】
基準値の更新発生により、図５に示すように基準値の示すクランク角がアングル値の示すクランク角より大きい場合であっても、カウンタにおける基準値は、図６に示すようにアングル値よりも小さくなり得る。動作判断部１３８は、このようにカウンタにおける数値の大小関係がクランク角の大小関係と逆転している場合においても、アングルカウンタ１３６を正しく動作させうる。
【００７０】
また、動作判断部１３８は、各カウンタの数値がカウントアップの待機に対応する大小関係であっても、関係フラグレジスタ１３７の示す大小関係が実行に対応する大小関係であれば、アングルカウンタ１３６にカウントアップを実行させる。より具体的には、動作判断部１３８は更新により基準値がアングル値よりも小さい状態であっても、関係フラグレジスタ１３７に大の状態を示すフラグが設定されていれば、カウントアップを実行させる。
【００７１】
基準値の更新発生により、図７に示すように基準値の示すクランク角がアングル値の示すクランク角より小さい場合であっても、カウンタにおける基準値は、図８に示すようにアングル値よりも大きくなり得る。動作判断部１３８は、こうしたカウンタにおける数値の大小関係がクランク角の大小関係と逆転している場合においても、アングルカウンタ１３６を正しく動作させうる。
【００７２】
更に動作判断部１３８は、関係フラグレジスタ１３７の示すクランク角の大小関係に従ってカウントアップを待機させる場合に、カウントアップの待機と共にアングルクロックの出力も待機させる。この結果、実際のクランク角に対してアングルクロックの出力回数が多くなっている場合に、出力回数をクランク角に応じた回数に補正可能となる。
【００７３】
加えて動作判断部１３８は、関係フラグレジスタ１３７の示すクランク角の大小関係に従ってカウントアップを実行させる場合に、カウントアップの実行と共にアングルクロックを出力させる。この結果、実際のクランク角に対してアングルクロックの出力回数が少なくなっている場合に、出力回数をクランク角に応じた回数に補正可能となる。
【００７４】
また本実施形態の構成によれば、基準カウンタ１３５の数値が更新された場合に、動作判断部１３８は、関係フラグレジスタ１３７に設定されたフラグに従いカウントアップの実行または待機を判断する。故に動作判断部１３８は、関係フラグレジスタ１３７のフラグにより示されるリセットを跨いだ大小関係に従い、リセットを跨いだクランク角への更新であるか否かを反映してアングルカウンタ１３６にカウントアップを実行または待機させうる。従ってマイコン１００は、アングルカウンタ１３６のカウントアップの回数誤りを抑制可能となる。
【００７５】
すなわち、動作判断部１３８は、各カウンタの数値がカウントアップの実行に対応する大小関係であっても、関係フラグレジスタ１３７の示す大小関係が待機に対応する大小関係であれば、アングルカウンタ１３６にカウントアップを待機させる。
【００７６】
また動作判断部１３８は、各カウンタの数値がカウントアップの待機に対応する大小関係であっても、関係フラグレジスタ１３７の示す大小関係が実行に対応する大小関係であれば、アングルカウンタ１３６にカウントアップを実行させる。動作判断部１３８は、こうしたカウンタにおける数値の大小関係がクランク角の大小関係と逆転している場合においても、アングルカウンタ１３６をクランク角に合わせて正しく動作させうる。
【００７７】
＜他の実施形態＞
以上、本開示の実施形態を説明したが、本開示は上述の実施形態に限定されるものではなく、次の変形例も本開示の技術的範囲に含まれ、さらに、下記以外にも要旨を逸脱しない範囲内で種々変更して実施できる。なお、以下の説明において、それまでに使用した符号と同一番号の符号を有する要素は、特に言及する場合を除き、それ以前の実施形態における同一符号の要素と同一である。また、構成の一部のみを説明している場合、構成の他の部分については先に説明した実施形態を適用できる。
【００７８】
上述の実施形態においては、関係フラグレジスタ１３７は、一回のリセットを跨ぐ範囲についてクランク角の大小関係を示すフラグを保持していた。しかし、複数回のリセットを跨ぐ範囲について大小関係を示すフラグを保持可能な構成でもよい。この場合、方向レジスタに保持されるフラグは、基準カウンタ１３５またはアングルカウンタ１３６のリセットごとに、跨ぐリセット回数の小さい側のフラグに書き換えられる。また、関係フラグレジスタ１３７のビット長や、各ビットの保持する値のパターンと大小関係およびリセットを跨ぐか否かなどとの対応は、適宜変更可能である。
【００７９】
上述の実施形態においては、補正判断部１１１による各カウンタの数値の補正は、欠け歯部直後の次のエッジによる実際のクランク角の確認により行われていた。しかし、各カウンタの数値の補正タイミングはこれに限られない。例えば、欠け歯部直後のエッジで補正する構成を採用可能である。また、カム信号など他の信号との組み合わせにより、欠け歯部直後またはその次のエッジ以外のエッジの発生に基づいてクランク角を確認および補正する構成を採用可能である。
【符号の説明】
【００８０】
１  電子制御装置、  １００  マイコン、  １１２  カウンタ更新部、  １１４  フラグ設定部、  １３５  基準カウンタ、  １３６  アングルカウンタ（追従カウンタ）、  １３７  関係フラグレジスタ、  １３８  動作判断部
【図１】
2020148120.tif 000003
【図２】
2020148120.tif 000004
【図３】
2020148120.tif 000005
【図４】
2020148120.tif 000006
【図５】
2020148120.tif 000007
【図６】
2020148120.tif 000008
【図７】
2020148120.tif 000009
【図８】
2020148120.tif 000010