(57)【特許請求の範囲】
【請求項１】
クリスタル発振回路と、
該クリスタル発振回路より精度の劣る第２発振回路と、
上記クリスタル発振回路または上記第２発振回路が発生するクロック信号の内のいずれをシステムクロックとするかを切り替える切り替え手段と、
上記システムクロックに基づいて処理を行う処理手段と、
を備えた電子制御装置を複数備えた電子制御システムであって、
上記各電子制御装置が、
上記第２発振回路が発生するクロック信号の誤差を記憶する誤差記憶手段と、
上記第２発振回路が発生するクロック信号が上記コンピュータのシステムクロックとされるとき、上記誤差記憶手段に記憶された誤差に基づいて上記処理手段の処理を補正する補正手段と、
上記第２発振回路が発生するクロック信号に基づいて、所定幅のワンショットパルスを、該ワンショットパルスの実際のパルス幅を計測する計測装置に対して出力するパルス出力手段と、
上記計測装置によって計測された上記ワンショットパルスの実際のパルス幅に基づき、上記誤差を算出する誤差算出手段と、
を備え、
一つの上記電子制御装置の上記パルス出力手段から上記ワンショットパルスが出力されたとき、上記計測装置としてのもう一つの上記電子制御装置の上記処理手段が、その電子制御装置の上記クリスタル発振回路が発生するクロック信号をシステムクロックとして上記ワンショットパルスの実際のパルス幅を計測することを特徴とする電子制御システム。
【請求項２】
上記各第２発振回路がＣＲ発振回路であることを特徴とする請求項１記載の電子制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システムクロックに基づいて各種処理を行う電子制御装置を複数備えた電子制御システムに関し、詳しくは、そのシステムクロックの供給源を、クリスタル発振回路またはそれよりも精度の劣る第２発振回路に切り替えることのできる電子制御装置を複数備えた電子制御システムに関する。
【０００２】
【従来の技術】
従来より、この種の電子制御装置として、クリスタル発振回路と、該クリスタル発振回路より精度の劣る第２発振回路と、上記クリスタル発振回路または上記第２発振回路が発生するクロック信号の内のいずれをシステムクロックとするかを切り替える切り替え手段と、上記システムクロックに基づいて処理を行う処理手段と、を備えたものが考えられている。このように構成された電子制御装置では、通常は、クリスタル発振回路が発生するクロック信号をシステムクロックとして、処理手段が各種処理を実行する。クリスタル発振回路は、高周波数でしかも極めて正確なクロック信号を発生することができる。このため、このクリスタル発振回路のクロック信号をシステムクロックとすることにより、処理手段は、各種処理を迅速にかつ正確に実行することができる。
【０００３】
ところが、クリスタル発振回路には電源電圧の低下等によって異常が生じることがある。そこで、このような場合、上記電子制御装置では切り換え手段によって第２発振回路のクロック信号をシステムクロックとするように切り替え、処理手段による処理を継続的に実行可能としている（例えば、特開平７−７８１２５号公報参照）。なお、第２発振回路としては、例えばＣＲ発振回路を利用することが考えられている。ＣＲ発振回路等はクリスタル発振回路に比べて安価であるので、システムクロックの供給源を複数設けることによるコストアップを良好に抑制することができる。
【０００４】
【発明が解決しようとする課題】
しかしながら、ＣＲ発振回路等は前述のようにクリスタル発振回路に比べて精度が劣るので、これらの第２発振回路のクロック信号をシステムクロックとした場合、処理手段の処理能力が低下したり処理結果に誤差が生じたりする可能性がある。例えば、ＣＲ発振回路の出力精度は一般的に±１〜１０％と、クリスタル発振回路に比べて１桁ほど精度が悪く、これが処理結果に誤差として反映される可能性がある。そこで、本発明は、クリスタル発振回路よりも精度の劣る第２発振回路のクロック信号をシステムクロックとした場合にも、処理能力の低下や誤差の発生を良好に抑制することのできる電子制御システムを提供することを目的としてなされた。
【０００５】
【課題を解決するための手段及び発明の効果】
上記目的を達するためになされた請求項１記載の発明は、クリスタル発振回路と、該クリスタル発振回路より精度の劣る第２発振回路と、上記クリスタル発振回路または上記第２発振回路が発生するクロック信号の内のいずれをシステムクロックとするかを切り替える切り替え手段と、上記システムクロックに基づいて処理を行う処理手段と、を備えた電子制御装置を複数備えた電子制御システムであって、
上記各電子制御装置が、
上記第２発振回路が発生するクロック信号の誤差を記憶する誤差記憶手段と、上記第２発振回路が発生するクロック信号が上記コンピュータのシステムクロックとされるとき、上記誤差記憶手段に記憶された誤差に基づいて上記処理手段の処理を補正する補正手段と、上記第２発振回路が発生するクロック信号に基づいて、所定幅のワンショットパルスを、該ワンショットパルスの実際のパルス幅を計測する計測装置に対して出力するパルス出力手段と、上記計測装置によって計測された上記ワンショットパルスの実際のパルス幅に基づき、上記誤差を算出する誤差算出手段と、を備え、
一つの上記電子制御装置の上記パルス出力手段から上記ワンショットパルスが出力されたとき、上記計測装置としてのもう一つの上記電子制御装置の上記処理手段が、その電子制御装置の上記クリスタル発振回路が発生するクロック信号をシステムクロックとして上記ワンショットパルスの実際のパルス幅を計測することを特徴としている。
【０００６】
このように、本発明における電子制御装置では、第２発振回路が発生するクロック信号の誤差を誤差記憶手段が記憶しており、その誤差に基づいて、補正手段は、第２発振回路が発生するクロック信号が上記システムクロックとされるときに、処理手段の処理を補正する。この補正によって、各電子制御装置では、第２発振回路のクロック信号をシステムクロックとした場合にも、処理手段の処理能力が低下したり処理結果に誤差が生じたりするのを良好に抑制することができる。
また、本発明における電子制御装置では、パルス出力手段は、第２発振回路が発生するクロック信号に基づいて、所定幅のワンショットパルスを計測装置に出力する。すると、計測装置は、そのワンショットパルスの実際のパルス幅を計測する。誤差算出手段は、その計測装置によって計測された上記ワンショットパルスの実際のパルス幅に基づき、上記誤差を算出する。すなわち、第２発振回路のクロック信号に基づいてパルス出力手段が発生しようとしたパルス幅と実際に計測されたパルス幅とを比較することによって、第２発振回路のクロック信号の誤差を算出するのである。
このように、本発明における電子制御装置では、実際の計測データに基づいて第２発振回路のクロック信号の誤差を算出している。そして、その誤差は誤差記憶手段に記憶されて補正手段による上記補正に適用されるので、上記補正を極めて正確に行うことができる。従って、処理手段の処理結果に誤差が生じるのを一層良好に抑制することができるといった効果が生じる。また、本発明における電子制御装置では、電子制御装置自身が上記パルス出力手段及び誤差算出手段を備えているので、その電子制御装置の実装状態でも上記誤差の算出が可能となる。このため、上記誤差を一層正確に算出すると共に、定期的に上記誤差を算出することによって上記誤差の経時変化にも対応することができ、処理手段の処理結果に誤差が生じるのを更に一層良好に抑制することができる。
また、本発明の電子制御システムでは、その電子制御システムに備えられた複数の上記電子制御装置の内、一つの電子制御装置に対する上記計測装置として、同一の電子制御システム内のもう一つの電子制御装置を利用している。このため、本発明の電子制御システムでは、そのシステム内に備えられた上記各電子制御装置のみによって上記効果が生じ、しかも、上記誤差の算出を外部の計測装置に接続することなくシステムの内部だけで実行することができる。従って、上記誤差の算出を定期的に行うことが容易となり、第２発振回路が発生するクロック信号の誤差の経時変化に一層良好に対応することができ、延いては、処理手段の処理結果に誤差が生じるのを一層良好に抑制することができる。
【０００７】
請求項２記載の発明は、請求項１記載の構成に加え、上記各第２発振回路がＣＲ発振回路であることを特徴としている。
ＣＲ発振回路はクリスタル発振回路に比べて極めて安価である。このため、本発明では、請求項１記載の発明の効果に加えて、各電子制御装置にシステムクロックの供給源を複数設ける（すなわち、クリスタル発振回路に加えて第２発振回路を設ける）ことによるコストアップを良好に抑制することができるといった効果が生じる。
【００１４】
【発明の実施の形態】
次に、本発明の実施の形態を図面と共に説明する。図１は、本発明が適用された電子制御装置としてのＥＣＵ１０の構成を、計測器２０（ここではオシロスコープ）の構成と共に表すブロック図である。図１に示すように、ＥＣＵ１０は、マイクロコンピュータ（以下、マイコンという）１１と、クリスタル発振回路１２と、ＣＲ発振回路１３と、発振切り替え部１４とを備えている。
【００１５】
発振切り替え部１４は、クリスタル発振回路１２またはＣＲ発振回路１３が発生するクロック信号の内、いずれをシステムクロックとしてマイコン１１に入力するかを切り替える。マイコン１１は、信号等を出力する出力ピン１１ａと、主として双方向のデータ通信を行うための通信ピン１１ｂとを備え、内部には、計時等を司るタイマ機能１６、各種演算処理を実行するＣＰＵ１７、外部との通信を司る外部通信機能１８、各種データを不揮発的に記憶するフラッシュメモリ１９、等を備えている。マイコン１１に内蔵された上記各部１６〜１９は、発振切り替え部１４を介して入力された上記システムクロックに同期して各種動作を実行する。
【００１６】
発振切り替え部１４は、通常は、クリスタル発振回路１２が発生するクロック信号をシステムクロックとしてマイコン１１に入力する。クリスタル発振回路１２は高周波数でしかも極めて正確なクロック信号を発生することができるので、クリスタル発振回路１２のクロック信号をシステムクロックとすることにより、マイコン１１のＣＰＵ１７は、各種処理を迅速にかつ正確に実行することができる。ところが、クリスタル発振回路１２には電源電圧の低下等によって異常が生じることがある。そこで、このようないわゆるリンプホーム時には、発振切り替え部１４はＣＲ発振回路１３のクロック信号をシステムクロックとしてマイコン１１に入力する。これによって、ＣＰＵ１７は処理を継続的に実行可能となる。
【００１７】
しかしながら、ＣＲ発振回路１３はクリスタル発振回路１２に比べて精度が劣るので、ＣＲ発振回路１３のクロック信号をそのままシステムクロックとすると、ＣＰＵ１７の処理能力が低下したり演算結果に誤差が生じたりする可能性がある。そこで、ＥＣＵ１０では、ＣＲ発振回路１３のクロック信号の誤差を次のようにフラッシュメモリ１９に記憶しておき、上記処理能力の低下や誤差の発生を防止している。続いて、このＣＲ発振回路１３のクロック信号の誤差に関連してＥＣＵ１０が実行する処理について説明する。
【００１８】
ＥＣＵ１０の出荷時には、計測器２０を用いて、ＣＲ発振回路１３のクロック信号の誤差を次のようにして算出する作業が施される。計測器２０としてのオシロスコープは、ワンショットパルスが入力された場合にそのワンショットパルスの実際の幅を計測するパルス幅計測機能２１と、その計測されたパルス幅等を計測データとして双方向通信等によって外部に出力する外部通信機能２２とを標準的に備えている。そこで、ＥＣＵ１０の出荷時には、作業者はＥＣＵ１０の出力ピン１１ａを計測器２０のパルス幅計測機能２１に対応するピンに接続し、ＥＣＵ１０の通信ピン１１ｂを計測器２０の外部通信機能２２に対応するピンに接続する。そして、ＥＣＵ１０に所定の命令を入力することによって、ＣＰＵ１７に、図２（Ａ）に示す補正値算出処理を実行させる。
【００１９】
図２（Ａ）に示すように、この補正値算出処理を開始するとＣＰＵ１７は、先ず、Ｓ１（Ｓはステップを表す：以下同様）にて、ＣＲ発振回路１３が出力するクロック信号に、上記システムクロックを強制的に切り替える。続くＳ３では、タイマ機能１６を介して、１０ｍｓのワンショットパルスを出力ピン１１ａから出力する。ここでいう「１０ｍｓ」は、ＣＲ発振回路１３のクロック信号に基づいて計時したものであり、多少の誤差を含んでいる。更に、続くＳ５では、通信ピン１１ｂを介して計測器２０から計測データを受信するまで待機する。
【００２０】
一方、計測器２０は、ＥＣＵ１０から上記ワンショットパルスが入力されると、図２（Ｂ）に示す処理を実行する。すなわち、上記ワンショットパルスの実際のパルス幅（以下、Ｔａｃｔ（ｍｓ）とする）を計測し（Ｓ５１）、続いて、そのパルス幅Ｔａｃｔを計測データとしてＥＣＵ１０に送信する（Ｓ５３）。
【００２１】
すると、マイコン１１は通信ピン１１ｂを介して上記パルス幅Ｔａｃｔを計測データとして受信し（Ｓ５：ＹＥＳ）、ＣＰＵ１７の処理はＳ５に続くＳ７へ移行する。Ｓ７では、上記受信したパルス幅Ｔａｃｔに基づき、ＣＲ発振補正値を算出する。例えば、Ｔａｃｔ＝１１ｍｓであったとすると、
ＣＲ発振補正値＝１０ｍｓ／Ｔａｃｔｍｓ＝１０ｍｓ／１１ｍｓ＝０．９０９とする。続くＳ９では、Ｓ７にて算出したＣＲ発振補正値をフラッシュメモリ１９に記憶して、処理を終了する。以上の処理により、ＣＲ発振回路１３のクロック信号の誤差が、その逆数であるＣＲ発振補正値としてフラッシュメモリ１９に記憶される。
【００２２】
次に、図３は、上記ＣＲ発振補正値を用いてＣＰＵ１７が実際に制御値を算出する場合の処理を表すフローチャートである。なお、図３の処理に対応する制御値としては、例えばガソリンの噴射量を決定する噴射時間の制御値が挙げられる。この種の制御値は、デジタルで演算された制御値を、アナログである噴射時間出力に変換する際に、システムクロックの誤差が反映されてしまう。前述の例では、デジタルである制御値は１０ｍｓであったものが、実際の出力は１１ｍｓとなりシステムクロックの誤差を含むこととなる。
【００２３】
すなわち、図３に示すように、処理を開始するとＣＰＵ１７は、先ず、Ｓ９１にて通常通りの演算によって制御値を算出する。続くＳ９３では、ＣＲ発振回路１３を使用中であるか否かを判断する。ＣＲ発振回路１３を使用中でない場合は（Ｓ９３：ＮＯ）、クリスタル発振回路１２を使用して正確な処理が実行されているので、Ｓ９５にて、上記通常通りの演算によって算出された制御値（通常演算制御値という）をそのまま最終制御値として処理を終了する。
【００２４】
一方、ＣＲ発振回路１３を使用中である場合は（Ｓ９３：ＹＥＳ）、システムクロックに前述の誤差が含まれ、その誤差が出力値にも反映されているものと考えられる。そこで、この場合、処理はＳ９７へ移行し、フラッシュメモリ１９から前述のＣＲ発振補正値を読み出し、その補正値を上記通常演算制御値にかけた値を最終制御値として処理を終了する。この処理によって、ＣＲ発振回路１３のクロック信号をシステムクロックとした場合にも、ＣＰＵ１７の処理能力が低下したり算出された最終制御値に誤差が生じたりするのを良好に抑制することができる。
【００２５】
また、ＥＣＵ１０がこのように車両制御用の電子制御回路である場合、計測器２０を接続してなされる上記補正値算出処理は、出荷時のみならずディーラでの定期検査時等にも実行してもよい。ＣＲ発振回路１３のクロック信号の誤差は経時変化を起こすことがあるが、このように定期的に補正値算出処理を実行する場合、上記誤差の経時変化に良好に対応することができ、上記最終制御値に誤差が生じるのを一層良好に抑制することができる。更に、オシロスコープの代わりに車両に搭載可能な計測器２０を使用すれば、ＥＣＵ１０に計測器２０を常時接続しておき、イグニッションスイッチがＯＮ位置まで回動する毎に上記補正値算出処理を実行させることもできる。この場合、上記経時変化に一層良好に対応することができ、上記誤差の発生を更に一層良好に抑制することができる。
【００２６】
図４に示すＥＣＵ３０は、マイコン１１とほぼ同様の二つのマイコン３１，４１を備えている。マイコン３１には、クリスタル発振回路３２またはＣＲ発振回路３３のクロック信号が、発振切り替え部３４を介してシステムクロックとして入力され、マイコン４１には、クリスタル発振回路４２またはＣＲ発振回路４３のクロック信号が、発振切り替え部４４を介してシステムクロックとして入力されている。また、マイコン３１，４１は、それぞれマイコン１１と同様に、タイマ機能３６，４６、ＣＰＵ３７，４７、外部通信機能３８，４８、及び、フラッシュメモリ３９，４９を備えている。なお、マイコン３１，４１のタイマ機能３６，４６は、計測器２０のパルス幅計測機能２１と同様の機能も備えている。
【００２７】
この場合、例えばＣＲ発振回路３３に対するＣＲ発振補正値を算出する場合、マイコン３１にＣＲ発振回路３３のクロック信号をシステムクロックとして入力すると共に、マイコン４１にクリスタル発振回路４２のクロック信号をシステムクロックとして入力する。そして、その状態でマイコン３１のタイマ機能３６からワンショットパルスをマイコン４１のタイマ機能４６に入力し、そのワンショットパルスの実際のパルス幅Ｔａｃｔを計測データとしてマイコン４１からマイコン３１に送信すれば、前述のようにＣＲ発振補正値を算出することができる。
【００２８】
逆に、マイコン３１にクリスタル発振回路３２のクロック信号をシステムクロックとして入力すると共に、マイコン４１にＣＲ発振回路４３のクロック信号をシステムクロックとして入力すれば、ＣＲ発振回路４３に対するＣＲ発振補正値を算出することができる。
【００２９】
このように、一つのＥＣＵ３０（ネットワーク化された一連のＥＣＵであってもよい）に設けられた複数のマイコンの内の一つ（例えばマイコン４１）がもう一つのマイコン（例えば３１）に対する計測装置として機能する場合、前述のように、イグニッションスイッチがＯＮ位置まで回動する毎にＣＲ発振補正値を算出する処理等が極めて容易となる。従って、ＥＣＵ３０では、ＣＲ発振回路３３等のクロック信号の誤差の経時変化に極めて良好に対応することができる。なお、車両制御用の電子制御回路において、ＣＲ発振補正値を算出するタイミングとしては、イグニッションスイッチがＯＮ位置まで回動する毎の他、イグニッションスイッチがＯＦＦ位置からＡＣＣ位置まで回動する毎、車両が所定距離走行する毎、電子制御回路に所定時間通電がなされる毎、等のように、車両または内燃機関の運転状態に応じた種々のタイミングに設定することができる。
【００３０】
一方、前述のように計測器２０としてオシロスコープを利用する場合、オシロスコープはパルス幅計測機能２１及び外部通信機能２２を標準的に備えているので、上記ＣＲ発振補正値の算出が極めて手軽に実行できる。
なお、上記各実施の形態において、ＣＲ発振回路１３，３３，４３が第２発振回路に、発振切り替え部１４，３４，４４が切り替え手段に、ＣＰＵ１７，３７，４７が処理手段に、フラッシュメモリ１９，３９，４９が誤差記憶手段に、ＣＰＵ１７，３７，４７におけるＳ９７の処理に関わる構成が補正手段に、タイマ機能１６，３６，４６がパルス出力手段に、ＣＰＵ１７，３７，４７におけるＳ７の処理に関わる構成が誤差算出手段に、ＥＣＵ３０が本発明の電子制御システムに、マイコン３１，クリスタル発振回路３２，ＣＲ発振回路３３，及び発振切り替え部３４と、マイコン４１，クリスタル発振回路４２，ＣＲ発振回路４３，及び発振切り替え部４４とが本発明における各電子制御装置に、それぞれ相当する。
【００３１】
また、本発明は上記実施の形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の形態で実施することができる。例えば、第２発振回路としては、ＣＲ発振回路の他、チップレゾネータ（商品名：京セラ製）等の種々の発振回路を適用することができる。但し、ＣＲ発振回路はクリスタル発振回路に比べて極めて安価である。このため、上記実施の形態では、システムクロックの供給源を複数設けることによるコストアップを良好に抑制することができる。
【００３２】
また、ＣＲ発振回路１３のクロック信号の誤差は、ＥＣＵ１０に組み込む前に予め他の計測装置で計測しておき、その計測値をフラッシュメモリ１９に書き込んでもよい。但し、上記各実施の形態のようにＣＲ発振回路１３をＥＣＵ１０に実装した上で上記クロック信号の誤差を計測する場合、その誤差の値が実際の使用時の値と極めて良好に一致し、通常演算制御値の補正を極めて正確に行うことができる。従って、ＣＰＵ１７の処理能力が低下したり算出された制御値に誤差が生じたりするのを一層良好に抑制することができる。しかも、上記実施の形態では、ワンショットパルスを出力すると共にその実際のパルス幅を計測することによって上記誤差を計測しているので、上記誤差の計測処理（補正値算出処理）が極めて容易となるといった効果が生じる。
【００３３】
更に、上記各実施の形態では、通常演算制御値にＣＲ発振補正値をかけることによって補正を行っているが（Ｓ９７）、処理手段の処理を補正する補正手段の構成としては、この他にも種々の形態が考えられる。例えば、ＣＲ発振回路１３等のクロック信号自体に変形を加えてもよく、制御値の算出（Ｓ９１）に使用されるデータに補正を行ってもよい。
【図面の簡単な説明】
【図１】  本発明が適用されたＥＣＵの構成を表すブロック図である。
【図２】  そのＥＣＵの補正値算出処理を表すフローチャートである。
【図３】  そのＥＣＵの制御値算出時の処理を表すフローチャートである。
【図４】  本発明が適用された他のＥＣＵの構成を表すブロック図である。
【符号の説明】
１０，３０…ＥＣＵ                １１，３１，４１…マイクロコンピュータ
１２，３２，４２…クリスタル発振回路    １３，３３，４３…ＣＲ発振回路
１４，３４，４４…発振切り替え部        １６，３６，４６…タイマ機能
１７，３７，４７…ＣＰＵ            １８，２２，３８，４８…外部通信機能
１９，３９，４９…フラッシュメモリ  ２０…計測器  ２１…パルス幅計測機能
【図１】
0004192379.tif 000002
【図２】
0004192379.tif 000003
【図３】
0004192379.tif 000004
【図４】
0004192379.tif 000005