(57)【要約】【課題】２以上のタイマを用いて生成するタイマ値の異常を検出できるタイマ値生成装置及びタイマ値生成方法を提供する。【解決手段】  所定周期の信号を減算又は加算のいずれか１つにより計数する第１タイマ値を有する第１タイマと、計数した数が第１タイマ値の表現範囲を超過した回数を計数する第２タイマ値を有する第２タイマと、第１タイマ値及び第２タイマ値に基づいて第１タイマ値の表現範囲よりも広い範囲を計数する第３タイマ値を生成する生成部とを備え、第２タイマ値を読出した後に再度読出した第１タイマ値と先に読出した第１タイマ値との差異が減算又は加算により生じた差異でないと判断した場合に、第３タイマ値の異常を検出する検出部を更に備える。これによれば、第１タイマ値が表現範囲を超過する前の第１タイマ値と、超過後の第２タイマ値とに基づいて第３タイマ値を生成して生じる異常を検出できる。【選択図】図８
2010113544.tif 000002
【特許請求の範囲】
【請求項１】
所定周期で入力される信号を、減算処理又は加算処理のいずれか１つを行うことにより計数する第１タイマ値を有する第１タイマと、前記計数した数が前記第１タイマ値の表現範囲を超過した回数を計数する第２タイマ値を有する第２タイマと、前記第１タイマから読み出した第１タイマ値と前記第２タイマから読出した第２タイマ値とに基づいて、前記第１タイマ値の表現範囲よりも広い範囲を計数する第３タイマ値を生成する生成部とを備えるタイマ値生成装置において、
前記第１タイマは、前記計数した数が前記第１タイマ値の表現範囲を超える場合に、前記第１タイマ値を所定値に変更する初期化処理を行い、
前記生成部は、前記第１タイマから第１タイマ値を読み出した後に、前記第２タイマから第２タイマ値を読み出すものであり、
前記第１タイマ値及び前記第２タイマ値を読出した後に再度読出した第１タイマ値と、先に読出した前記第１タイマ値との差異が、前記第１タイマの行う前記減算処理又は前記加算処理により生じた差異でないと判断した場合に、前記生成部が生成する第３タイマ値の異常を検出する検出部を更に備えることを特徴とするタイマ値生成装置。
【請求項２】
前記生成部は、前記検出部が異常を検出した場合に、再度読出した第１タイマ値及び再度読出した第２タイマ値に基づいて、前記第３タイマ値を生成することを特徴とする請求項１に記載のタイマ値生成装置。
【請求項３】
前記第１タイマ及び前記第２タイマは、ハードウェア回路で構成され、
前記生成部は、ソフトウェア処理で実現されることを特徴とする請求項１又は２のいずれかに記載のタイマ値生成装置。
【請求項４】
前記検出部は、前記差異が所定値を超える場合に、前記生成部が生成する第３タイマ値の異常を検出することを特徴とする請求項１から３のいずれかに記載のタイマ値生成装置。
【請求項５】
所定周期で入力される信号を、減算処理又は加算処理のいずれか１つを行うことにより計数する第１タイマ値を生成する第１生成ステップと、前記計数した数が前記第１タイマ値の表現範囲を超過した回数を計数する第２タイマ値を生成する第２生成ステップと、前記第１タイマから読み出した第１タイマ値と前記第２タイマから読出した第２タイマ値とに基づいて、前記第１タイマ値の表現範囲よりも広い範囲を計数する第３タイマ値を生成する第３生成ステップとを備えるタイマ値生成方法において、
前記第１生成ステップは、前記計数した数が前記第１タイマ値の表現範囲を超える場合に、前記第１タイマ値を所定値に変更する初期化処理を行い、
前記第２生成ステップは、前記第１タイマから第１タイマ値を読み出した後に、前記第２タイマから第２タイマ値を読み出すものであり、
前記第１タイマ値及び前記第２タイマ値を読出した後に再度読出した第１タイマ値と、先に読出した前記第１タイマ値との差異が、前記第１タイマの行う前記減算処理又は前記加算処理により生じた差異でないと判断した場合に、前記第３生成ステップで生成する第３タイマ値の異常を検出する検出ステップを更に備えることを特徴とするタイマ値生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２以上のタイマを用いたタイマ値生成装置及びタイマ値生成方法に関する。
【背景技術】
【０００２】
近年、車両には、車両に搭載されたエンジンの点火タイミングを制御するエンジン制御装置、ドアの開閉を制御するボデー制御装置、及びオーディオを制御するオーディオ制御装置等といった複数の制御装置（ＥＣＵ：Electronic Control Unit）が搭載されている。また、これら複数の制御装置は、接続されたネットワークを介して相互に通信を行うことで、それぞれ同期して制御処理を実行してる。ここで、これら複数の制御装置が制御処理又は通信処理の実行により、制御タイミング又は通信タイミング等を精度良く取得するためには、タイマ時刻を表す精度の良いタイマ値を取得する必要がある。
【０００３】
しかし、タイマ値を提供するタイマの分周比を小さくすると、確かに精度の良いタイマ値を制御装置は得られるが、狭い範囲のタイマ値をしか直接的に取得できなくなる。また、タイマが提供可能なタイマ値の範囲を無制限に拡張することは、コストダウンの要求が厳しい現状にからすると現実的でない。このため、タイマ時刻を表すタイマ値の下位ビットを提供する第１タイマと、上位ビットを提供する第２タイマとを用いて、個々のタイマよりも広い範囲のタイマ値を提供できるタイマが知られるに至った（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００６−１５５４９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１に記載のタイマは、ソフトウェア処理の実行によって、下位ビットを提供する第１タイマの値と、上位ビットを提供する第２タイマの値とを合成してタイマ時刻表すタイマ値を生成している。また、第１タイマは桁溢れを起こした場合に所定の信号を第２タイマに出力し、第２タイマは所定の信号を受けて値を更新している。
【０００６】
このため、上記のタイマは、図６に示すように、第１タイマを読み出した後から第２タイマを読み出すまでに、第１タイマの桁溢れ及び第２タイマの更新があった場合には、桁溢れ前の第１タイマの値と桁溢れ後の第２タイマの値とを合成してしまう。よって、上記のタイマは、特定のタイミングにおいて異常な時刻を表すタイマ値を生成してしまうという問題があった。
【０００７】
そこで、本発明の目的とするところは、２以上のタイマを用いて生成するタイマ値の異常を検出できるタイマ値生成装置及びタイマ値生成方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係るタイマ値生成装置は、所定周期で入力される信号を、減算処理又は加算処理のいずれか１つを行うことにより計数する第１タイマ値を有する第１タイマと、計数した数が第１タイマ値の表現範囲を超過した回数を計数する第２タイマ値を有する第２タイマと、第１タイマから読み出した第１タイマ値と第２タイマから読出した第２タイマ値とに基づいて、第１タイマ値の表現範囲よりも広い範囲を計数する第３タイマ値を生成する生成部とを備えるタイマ値生成装置において、第１タイマは、計数した数が第１タイマ値の表現範囲を超える場合に、第１タイマ値を所定値に変更する初期化処理を行い、生成部は、第１タイマから第１タイマ値を読み出した後に、第２タイマから第２タイマ値を読み出すものであり、第１タイマ値及び第２タイマ値を読出した後に再度読出した第１タイマ値と、先に読出した第１タイマ値との差異が、第１タイマの行う減算処理又は加算処理により生じた差異でないと判断した場合に、生成部が生成する第３タイマ値の異常を検出する検出部を更に備えることを特徴としている。
【０００９】
上記構成において、生成部は、検出部が異常を検出した場合に、再度読出した第１タイマ値及び再度読出した第２タイマ値に基づいて、第３タイマ値を生成することを特徴とする構成を採用できる。
【００１０】
上記構成において、第１タイマ及び第２タイマは、ハードウェア回路で構成され、生成部は、ソフトウェア処理で実現される構成を採用できる。
【００１１】
上記構成において、検出部は、差異が所定値を超える場合に、生成部が生成する第３タイマ値の異常を検出する構成を採用できる。
【００１２】
本発明に係るタイマ値生成方法は、所定周期で入力される信号を、減算処理又は加算処理のいずれか１つを行うことにより計数する第１タイマ値を生成する第１生成ステップと、計数した数が第１タイマ値の表現範囲を超過した回数を計数する第２タイマ値を生成する第２生成ステップと、第１タイマから読み出した第１タイマ値と第２タイマから読出した第２タイマ値とに基づいて、第１タイマ値の表現範囲よりも広い範囲を計数する第３タイマ値を生成する第３生成ステップとを備えるタイマ値生成方法において、第１生成ステップは、計数した数が第１タイマ値の表現範囲を超える場合に、第１タイマ値を所定値に変更する初期化処理を行い、第２生成ステップは、第１タイマから第１タイマ値を読み出した後に、第２タイマから第２タイマ値を読み出すものであり、第１タイマ値及び第２タイマ値を読出した後に再度読出した第１タイマ値と、先に読出した第１タイマ値との差異が、第１タイマの行う減算処理又は加算処理により生じた差異でないと判断した場合に、第３生成ステップで生成する第３タイマ値の異常を検出する検出ステップを更に備えることを特徴としている。
【発明の効果】
【００１３】
請求項１の構成によれば、先に読出した第１タイマ値と再度読出した第１タイマ値との差異が、第１タイマ値の表現範囲での計数によるものでない場合に、第１タイマ値が表現範囲を超過する前の第１タイマ値と、超過後の第２タイマ値とに基づいて第３タイマ値を生成することで生じる異常を検出できる。
【００１４】
請求項２の構成によれば、第１タイマ値が表現範囲を超過した後に読出した第１タイマ値及び第２タイマ値に基づいて第３タイマ値を生成するため、精度良く第３タイマ値を生成できる。
【００１５】
請求項３の構成によれば、発振回数が第１タイマ値の表現範囲を超過するタイミング及び第２タイマ値が表現範囲の超過を計数するタイミングと、生成部が第１タイマ値及び第２タイマ値を読出すタイミングとの同期を取らずとも、第１タイマ値及び第２タイマ値に基づいて第３タイマ値を精度良く生成できる。
【００１６】
請求項４の構成によれば、先に読出した第１タイマ値と再度読出した第１タイマ値との差異が所定値を超えるか否かに基づいて、発振回数の計数による差異であるか否かを判断するため、第３タイマ値の異常を精度良く検出できる。
【００１７】
請求項５の構成によれば、先に読出した第１タイマ値と再度読出した第１タイマ値との差異が、第１タイマ値の表現範囲での計数によるものでない場合に、第１タイマ値が表現範囲を超過する前の第１タイマ値と、超過後の第２タイマ値とに基づいて第３タイマ値を生成することで生じる異常を検出できる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
【実施例１】
【００１９】
図１は、本発明のタイマ値生成装置を搭載した制御装置で構成される制御システムの一実施形態を示す構成図である。
【００２０】
図１に示す制御システム１は、車両に搭載される。車両は、例えば、乗用車、バス、及びトラック等の自動車で構成される。尚、本実施例では、車両が自動車で構成されるとして説明を行うが、これに限定される訳ではなく、原動機付自転車、軽車両、及びトロリーバス、戦車及び装甲車等の軍用車両、並びに鉄道車両で構成される実施例を採用できる。
本実施例において、制御システム１が車両に搭載される場合について説明するが、これに限定される訳ではない。例えば、制御システム１は、船舶、航空機、並びに人工衛星、宇宙探査機、及び宇宙ステーション等の宇宙機に搭載される構成を採用できる。また更に、制御システム１は、車両又は船舶等に搭載されずに使用される構成を採用できる。
【００２１】
制御システム１は、制御装置であるＥＣＵ（Electronic Control Unit）１００から７００で構成される。ＥＣＵ１００から７００は、例えば、ＣＡＮ（Controller Area Network）バス等のバスＢＣを介して相互に通信可能に接続する。尚、本実施例においては、ＥＣＵ１００から７００は、ＣＡＮプロトコルを用いて通信を行うとして説明するが、これに限定される訳ではない。例えば、ＥＣＵ１００から７００は、ＬＩＮ（Local Interconnect Network）プロトコルを用いて通信する構成を採用できる。
【００２２】
ＥＣＵ１００から７００は、車両の挙動を制御する制御装置である。ＥＣＵ１００から７００は、燃料噴射制御装置（ＥＦＩ−ＥＣＵ：Electronic Fuel Injection - Electronic Control Unit）、エアバッグＥＣＵ、メータＥＣＵ、ボディＥＣＵ、エコランＥＣＵ、セキュリティＥＣＵ、及びその他ＥＣＵである。ＥＦＩ−ＥＣＵ１００は、車両が備えるエンジンの点火装置（ignition）の点火タイミングを制御することで、車両の挙動を制御する。また、エアバッグＥＣＵ２００は、エアバッグを展開させるガスを発生するガス発生剤を着火燃焼する着火装置（つまり、スクイブ）を制御する。
【００２３】
メータＥＣＵ３００は、車両が備えるメータの表示を制御する。ボディＥＣＵ４００は、例えば、ドア等のボディ系の機器を制御する。エコランＥＣＵ５００は、燃費の良い（つまり、エコノミーな）又は地球環境に優しい（つまり、エコロジーな）走行をするよう車両を制御する。セキュリティＥＣＵ６００は、車両及び車両の乗員の安全を確保するために車両に搭載された機器を制御する。具体例としては、セキュリティＥＣＵ６００は、車両に対する侵入を検出した場合に警報を発するようスピーカ等の音声出力装置を制御する。
【００２４】
その他ＥＣＵ７００は、ＥＣＵ１００から６００が制御対象とする装置以外の装置を制御する。本実施例において、その他ＥＣＵ７００は、車両が搭載する蓄電池１０の放電及び充電を制御（つまり、パワーマネジメント）するとして説明するが、これに限定される訳ではない。
また、本実施例において、本発明のタイマ値生成装置は、その他ＥＣＵ７００に搭載されるとして説明を行う。しかし、これに限定される訳ではなく、ＥＣＵ１００から６００に搭載される構成を採用できる。よって、ＥＣＵ１００から７００の構成及は、ほぼ同様であるため、以下、その他ＥＣＵ７００の構成について説明する。
【００２５】
ここで、図２を参照して、その他ＥＣＵ７００の構成について説明する。図２は、その他ＥＣＵ７００の一構成例を表すハードウェア構成図である。
図２に示すその他ＥＣＵ７００は、車両が搭載する各種センサ、イグニッションスイッチ、各種アクチュエータ、蓄電池１０、及びＣＡＮバスＢＣに接続する。
【００２６】
ここで、その他ＥＣＵ７００について説明する前に、その他ＥＣＵ７００に接続する蓄電池１０等について説明する。
蓄電池１０は、例えば、鉛蓄電池等の一般型のバッテリで構成される。蓄電池１０は、その他ＥＣＵ７００を含む車両に搭載された各種の装置に対して電力を供給する。尚、本実施例において、蓄電池１０は、鉛蓄電池等の一般型のバッテリで構成されるとして説明したが、これに限定される訳ではない。例えば、蓄電池１０は、レドックス・フロー電池等の液循環型のバッテリ、アルミニウム・空気電池等のメカニカルチャージ型のバッテリ、及びナトリウム・硫黄電池等の高温動作型のバッテリである構成を採用できる。
【００２７】
イグニッションスイッチは、一般に、エンジンキーの回転により、エンジンの点火装置（つまり、イグニッション）を起動させる信号が通過する電路を開く開閉器である。各種センサは、例えば、蓄電池１０付近の気温、蓄電池１０から流出する電流、及びエンジン回転数等の蓄電池１０が行う放電又は充電を制御するために用いる情報を表す信号をその他ＥＣＵ７００へ出力する。各種アクチュエータは、その他ＥＣＵ７００が出力する信号に従って、例えば、蓄電池１０の放電及び充電に関する装置を作動させる。
【００２８】
次に、その他ＥＣＵ７００の構成について説明を行う。その他ＥＣＵ７００は、電源ＩＣ７１０（Integrated Circuit）、信号成型レベル変換部７２０、発信回路７３０、出力回路７４０、及びマイコン７５０で構成される。
電源ＩＣ７１０は、蓄電池１０、マイコン７５０、及びイグニッションスイッチに接続する。電源ＩＣ７１０は、電源生成機能及び監視機能を有する。電源生成機能は、イグニッションスイッチから取得する信号に基づいて、蓄電池１０が供給する電力を用いてマイコン７５０が使用する電力を供給する電源を生成する機能である。また、監視機能は、マイコン７５０が出力するウォッチドッグクロックＷＤＣ（Watch Dog Clock）に基づいて、マイコン７５０に対して再起動を命じるリセット信号を出力する機能である。
【００２９】
信号成型レベル変換部７２０は、各種センサ及びマイコン７５０に接続している。信号成型レベル変換部７２０は、各種センサが出力する信号を成型すると共に、成型した信号をマイコン７５０の処理に適したレベルに変換する。その後、信号成型レベル変換部７２０は、変換した信号をマイコン７５０へ出力する。具体的には、信号成型レベル変換部７２０は、各種センサが出力する信号をＡ／Ｄ（Analog/Digital）変換等したデジタル信号の入力、パルス入力、又はポート入力を行う。
【００３０】
発振回路７３０は、例えば、帰還型発振回路又は弛張型発振回路等で構成される。尚、帰還型発振回路は、例えば、固体振動子発振回路、ＣＲ発振回路、又はＬＣ反結合発振回路等である構成を採用できる。更に、固体振動子発振回路は、例えば、水晶振動子又はセラミック発振子等を用いた回路である構成を採用できる。発振回路７３０は、本件発明のタイマが計測できる最も短い時間を定める所定の周波数を有した電気信号をマイコン７５０へ出力する。
【００３１】
出力回路７４０は、ハードウェア回路で構成される。出力回路７４０は、マイコン７５０、ＣＡＮバスＢＣ、及び各種アクチュエータに接続する。出力回路７４０は、マイコン７５０が蓄電池１０の放電又は充電を制御する制御処理を実行することでポート出力、シリアル出力、ＰＷＭ（Pulse Width Modulation）出力する信号を各種アクチュエータへ出力する、又は出力するデータをＣＡＮバスＢＣを介して他のＥＣＵ１００から６００へ送信する。
マイコン７５０は、電源ＩＣ７１０、信号成型レベル変換部７２０、発振回路７３０、及び出力回路に接続する。マイコン７５０は、本発明のタイマ値生成装置である。
【００３２】
ここで、図３を参照して、マイコン７５０の構成について説明する。図３は、マイコン７５０の一構成例を表すハードウェア構成図である。
図３に示すマイコン７５０は、１６ビットマイコンである。マイコン７５０は、分周器７５１、第１タイマ７５２ａ、第２タイマ７５２ｂ、及びソフトウェア処理部７５３で構成される。
分周器７５１は、発振回路７３０及び第１タイマ７５２ａに接続する。分周器７５１は、発振回路７３０から取得した所定の周波数を有した電気信号を、より低い周波数の信号に変換する。その後、分周器７５１は、変換した周波数の信号を第１タイマ７５２ａへ出力する。
【００３３】
第１タイマ７５２ａは、１６ビットのフリーランタイマレジスタと、タイマレジスタの値を変更する周辺回路とで構成される。第１タイマ７５２ａは、分周器７５１、第２タイマ７５２ｂ、及びソフトウェア処理部７５３に接続する。第１タイマ７５２ａは、後述するソフトウェア処理部７５３が報知する時刻を表す３２ビットのデータの下位ビットに用いられるデータをソフトウェア処理部７５３へ提供する。尚、ソフトウェア処理部７５３が報知する時刻を、以下単に、タイマ時刻という。また、タイマ時刻を表す３２ビットのデータを、以下単に、３２ビット時刻データという。更に、３２ビット時刻データの下位ビットに用いられるデータを、以下単に、下位１６ビット時刻データという。
【００３４】
具体的には、第１タイマ７５２ａは、分周器７５１が電気信号を出力する周期「LSB:125ns」で、タイマレジスタの値を値「0xFFFF」から「0x0000」まで値「0x0001」刻みで減少させる。ここで、第１タイマ７５２ａは、アンダーフローが発生した場合に（つまり、「LSB:192ms」周期で）、桁上りの発生を報告する信号を第２タイマ７５２ｂへ出力する。
本実施例において、第１タイマ７５２ａは、分周器７５１が出力する信号の発振回数を減算処理により計数し、計数した値をタイマレジスタに保存するとして説明するが、これに限定される訳ではなく、発振回数を加算処理により計数する構成を採用できる。
【００３５】
第２タイマ７５２ｂは、第１タイマ７５２ａと同様の構成を有する。第２タイマ７５２ｂは、第１タイマ７５２ａ及びソフトウェア処理部７５３に接続する。第２タイマ７５２ｂは、上位ビットに用いられるデータ（以下単に、上位１６ビット時刻データという）をソフトウェア処理部７５３へ提供する。具体的には、第２タイマ７５２ｂは、第１タイマ７５２ａから桁上りというイベントの発生を報告する信号を受け取った場合に、タイマレジスタの値を値「0xFFFF」から「0x0000」まで値「0x0001」刻みで減少させる。
【００３６】
本実施例において、第２タイマ７５２ｂは、分周器７５１が出力する信号の発振回数が第１タイマ第１タイマ７５２ａの有するタイマレジスタの表現範囲を超過した回数（つまり、アンダーフローした回数）を減算処理により計数し、計数した値をタイマレジスタに保存するとして説明するが、これに限定される訳ではなく、超過回数を加算処理により計数する構成を採用できる。
尚、下位１６ビット時刻データの値を第１タイマ値といい、上位１６ビット時刻データの値を第２タイマ値といい、３２ビット時刻データの値を第３タイマ値という。
また、本実施例において、第１タイマ値及び第２タイマ値は１６ビットデータ値であり、第３タイマ値は３２ビットデータ値であるとして説明するが、これに限定される訳ではなく、第３タイマ値は、第１タイマ値及び第２タイマ値に基づいて第１タイマ値の表現範囲よりも広い範囲で発振回数を計数できるビット数からなるデータ値であれば良い。
【００３７】
ソフトウェア処理部７５３は、第１タイマ７５２ａ、第２タイマ７５２ｂ、電源ＩＣ７１０、信号成型レベル変換部７２０、及び出力回路７４０に接続する。ソフトウェア処理部７５３は、第１タイマ７５２ａ等から取得したデータを用いて後述するソフトウェア処理を実行する。
ここで、ソフトウェア処理部７５３がソフトウェア処理を実行するために用いるハードウェア構成の一例について説明する。ソフトウェア処理部７５３は、実行部７５３ａ、ＲＡＭ７５２ｂ（Random Access Memory）、ＲＯＭ７５３ｃ（Read-Only Memory ）、入力用マイコン周辺リソース７５３ｄ、及び出力用マイコン周辺リソース７５３ｅで構成される。ソフトウェア処理部７５３を構成する実行部７５３ａから出力用マイコン周辺リソース７５３ｅは、それぞれバスを介してデータの授受が可能なように接続している。
【００３８】
ソフトウェア処理部７５３は、実行部７５３ａによって実行される。実行部７５３ａは、例えば、ＣＰＵ（Central Processing Unit）等で構成される。実行部７５３ａは、先ず、ＲＡＭ７５２ｂ又はＲＯＭ７５３ｃが記憶するプログラムを読み込む。次に、実行部７５３ａは、読み込んだプログラムが表すソフトウェア処理の実行手順に従って後述する入力用マイコン周辺リソース７５３ｄが入力する各種センサ値に対して演算を行う。その後、実行部７５３ａは、演算の結果をＲＡＭ７５２ｂに書き込み、必要に応じて出力用マイコン周辺リソース７５３ｅへ出力する。また、実行部７５３ａは、入力用マイコン周辺リソース７５３ｄが入力するリセット信号を受けて再起動する。
【００３９】
尚、ＲＡＭ７５２ｂ（Random Access Memory）は、ＤＲＡＭ（Dynamic  Random Access Memory）又はＳＲＡＭ（Static  RAM）等の揮発性メモリ及びＮＶＲＡＭ（Non Volatile RAM）等の不揮発性メモリで構成される。ＲＯＭ７５３ｃ（Read-Only Memory ）は、ＥＰＲＯＭ（Erasable Programmable Read-Only Memory）又はＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の読出し専用メモリで構成される。入力用マイコン周辺リソース７５３ｄ及び出力用マイコン周辺リソース７５３ｅは、レジスタ及びレジスタの値を管理する周辺回路で構成される。入力用マイコン周辺リソース７５３ｄは、信号成型レベル変換部７２０が入力する各種センサ値、及び電源ＩＣ７１０が出力するリセット信号を実行部７５３ａへ入力する。また、出力用マイコン周辺リソース７５３ｅは、実行部７５３ａが出力する信号を出力回路７４０又は電源ＩＣ７１０へ出力する。
【００４０】
次に、図４を参照して、ソフトウェア処理部７５３の構成について、機能に基づいて説明を行う。図４は、ソフトウェア処理部７５３の一構成例を表す機能ブロック図である。
図４に示すソフトウェア処理部７５３は、報時部７５３ｆ、ウォッチドッグ操作部７５３ｇ、制御部７５３ｈ、出力部７５３ｉ、及び入力部７５３jで構成される。報時部７５３ｆは、第１タイマ７５２ａ、第２タイマ７５２ｂ、ウォッチドッグ操作部７５３ｇ、及び制御部７５３ｈに接続する。報時部７５３ｆは、報時処理を実行することで、３２ビット時刻データである第３タイマ値が表すタイマ時刻を報知する。
【００４１】
ここで、本発明のタイマ値生成装置を構成する報時部７５３ｆが実行する報時処理について説明する前に、図５を参照して、周知の報時部９５３ｆが実行する報時処理について説明する。図５（ａ）は、周知の報時部９５３ｆが実行する報時処理の一例を表すフローチャートである。尚、周知の報時部９５３ｆは、周知のタイマ値生成装置である３２ビットマイコンに搭載される３２ビットタイマ９５２が提供するデータに基づいて時刻を報知する。
【００４２】
先ず、報時部９５３ｆは、３２ビットタイマ９５２が値を管理する３２ビットのフリーランタイマレジスタのタイマ値を読出す（ステップＳ０１）。次に、報時部９５３ｆは、読出したタイマ値をビット反転させてタイマ時刻を取得する（ステップＳ０２）。つまり、レジスタの値は「0xFFFF FFFF」から開始するためである。その後、報時部９５３ｆは、タイマ時刻を、図４に示す制御部７５３ｈ及びウォッチドッグ操作部７５３ｇに相当する部に対して報知（公開）する（ステップＳ０３）。その後、報時部９５３ｆは、報時処理の実行を終了する。
【００４３】
次に、従来の報時部８５３ｆが実行する報時処理を、周知の報時部９５３ｆが実行する報時処理と比較して説明する。図５（ｂ）は、従来の報時部８５３ｆが実行する報時処理の一例を表すフローチャートである。尚、従来の報時部８５３ｆを備えるマイコンは、本発明のマイコン７５０と同様に１６ビットマイコンである。よって、従来の報時部８５３ｆが実行する報時処理は、以下のステップＳ１１からＳ１３の処理において、周知の報時部９５３ｆが実行する報時処理と異なる。
【００４４】
先ず、報時部８５３ｆは、１６ビットタイマである第１タイマ８５２ａが値を管理する１６ビットのフリーランタイマレジスタの第１タイマ値（つまり、下位１６ビット時刻データ）を読出す（ステップＳ１１）。次に、報時部８５３ｆは、１６ビットタイマである第２タイマ８５２ｂが管理する１６ビットのフリーランタイマレジスタの第２タイマ値（つまり、上位１６ビット時刻データ）を読出す（ステップＳ１２）。尚、第１タイマ８５２ａ及び第２タイマ８５２ｂの構成は、第１タイマ９５２ａ及び第２タイマ９５２ｂの構成と同様であるので説明を省略する。
【００４５】
その後、報時部９５３ｆは、３２ビット時刻データの上位１６ビットを上位１６ビット時刻データとし、下位１６ビットを下位１６ビット時刻データとして３２ビット時刻データを合成する（ステップＳ１３）。つまり、報時部９５３ｆは、第１タイマ値と第２タイマ値とに基づいて第３タイマ値を生成する。その後、報時部８５３ｆは、合成した３２ビットデータに対してステップＳ１４及びステップＳ１５の処理を実行する（ステップＳ１４及びステップＳ１５）。その後、報時部８５３ｆは、報時処理の実行を終了する。尚、ステップＳ１４及びステップＳ１５の処理は、ステップＳ０２及びステップＳ０３の処理と同様であるので説明を省略する。
【００４６】
次に、図６を参照して、周知の報時処理との相違により生じる従来の報時処理の問題点について概説する。図６は、従来の報時部８５３ｆが実行する報時処理の問題点の一例を表す図である。
図６（ａ）は、第１タイマ８５２ａが管理するフリーランタイマレジスタの第１タイマ値の遷移を表す図である。図６（ａ）は、横軸で時刻を、縦軸でフリーランタイマレジスタが表す下位１６ビットデータの値を表す。図６（ａ）に示すように、時刻ｔ０１前において、下位１６ビットデータの値は、１６ビットで表現できる最大の値「0xFFFFFF」をとる。次に、時刻ｔ０１において、分周器７５１が信号を出力すると、下位１６ビットデータの値は、信号を受信した第１タイマ８５２ａによって「0x0001」だけ低い値に変更される。その後、下位１６ビットデータの値は、「0x0001」となるまで分周器７５１が信号を出力する毎に減算される。次に、時刻ｔ１０において、分周器７５１が信号を出力すると、値「0x0001」の下位１６ビットデータは、値の表現範囲を超えるため、第１タイマ８５２ａによって初期化処理が行われ、最大の値「0xFFFFFF」と初期化される。尚、時刻ｔ１０において、分周器７５１から信号を受信した第１タイマ８５２ａは、アンダーフローを発生させると共に、桁上りの発生（つまり、表現範囲の超過）を報告する信号を第２タイマ８５２ｂへ出力する。
【００４７】
図６（ｂ）は、第２タイマ８５２ｂが管理するフリーランタイマレジスタの第２タイマ値の遷移を表す図である。図６（ｂ）は、横軸で時刻を、縦軸でフリーランタイマレジスタが表す上位１６ビットデータの値を表す。図６（ｂ）に示すように、時刻ｔ１０前において、上位１６ビットデータの値は、１６ビットで表現できる最大の値「0xFFFFFF」をとる。次に、時刻ｔ１０において、第１タイマ８５２ａが桁上りの発生を報告する信号を出力すると、上位１６ビットデータの値は、信号を受信した第２タイマ８５２ｂによって「0x0001」だけ低い値に変更される。その後、上位１６ビットデータの値は、「0x0001」となるまで同様に減算される。
【００４８】
図６（ｃ）は、ソフトウェア処理部８５３を構成する報時部７５３ｆが報知するタイマ時刻（つまり、反転後の第３タイマ値）の遷移を表す図である。図６（ｃ）は、横軸で時刻を、縦軸でタイマ時刻を表す。図６（ｃ）に示すように、タイマ時刻を表す３２ビット時刻データは、各時刻における下位１６ビットデータと上位１６ビットデータとを合成したデータである。よって、分周器７５１が第１タイマ８５２ａへ信号を出力すると、原則、出力後の３２ビット時刻データの値は、信号出前の値よりも値「0x0000 0001」だけ増加しなければならない。
【００４９】
しかし、報時部８５３ｆは、図５で参照したステップＳ１１とステップＳ１２とを逐次処理するため、ステップＳ１１で第１タイマ８５２ａを読出した後から第２タイマ８５２ｂを読出すまでに、第１タイマ８５２ａの桁溢れ及び第２タイマ８５２ｂの更新が生じる場合がある。この特定のタイミングにおいては、桁溢れ前の第１タイマ８５２ａの値と桁溢れ後の第２タイマ８５２ｂの値とを合成してしまう。よって、報時部８５３ｆは、この特定のタイミングにおいて異常なタイマ時刻を生成してしまうため、精度良く時刻を提供できないという問題があった。
【００５０】
具体的には、時刻ｔ１０の直前に、報時部８５３ｆが第１タイマ８５２ａを読出し、時刻ｔ１０の直後に第２タイマ８５２ｂを読出した場合には、桁溢れ前の第１タイマ８５２ａの第１タイマ値「0x0001」と桁溢れ後の第２タイマ８５２ｂの第２タイマ値「0xFFFE」とを合成してしまう。よって、報時部８５３ｆは、正常な第３タイマ値「0x0000 FFFE」ではなく、異常な値「0x0001 FFFE」を生成してしまうという問題があった。
【００５１】
次に、図７を参照して、従来技術の問題を解決するために、本件発明のタイマ値生成装置であるマイコン７５０を構成する報時部７５３ｆが実行する報時処理について概説する。図７は、報時部７５３ｆが実行する報時処理の一例について概説するための図である。尚、図７（ａ）から（ｃ）は、図６（ａ）から（ｃ）とほぼ同様であるので、詳細な説明を省略する。
先ず、報時部７５３ｆは、第１タイマ９５２ａから第１タイマ値を読出す。次に、報時部７５３ｆは、第２タイマ９５２ｂから第２タイマ値を読出す。その後、報時部７５３ｆは、再度、第１タイマ値を読出す。
【００５２】
ここで、第１タイマ９５２ａは、第１タイマ値を減算して発振回数を計数するため、桁上りが発生しない限り、１回目に読出した第１タイマ値は、２回目に読出した第１タイマ値よりも大きい。よって、１回目に読出した第１タイマ値が２回目に読出した第１タイマ値よりも小さいか否かを判断することで、報時部７５３ｆは、第１タイマ９５２ａを読出した後に第２タイマ９５２ｂを読出すまでに桁上りが発生したか否かを判断できる。
【００５３】
この構成によれば、先に読出した第１タイマ値と再度読出した第１タイマ値との差異が、第１タイマ値の表現範囲での計数によるものでない場合に、第１タイマ値が表現範囲を超過する前の第１タイマ値と、超過後の第２タイマ値とに基づいて第３タイマ値を生成することで生じる異常を検出できる。
【００５４】
また、第１タイマ９５２ａは、所定の周器で生じる信号の発振に基づいて第１タイマ値を減算するため、桁上りが発生しない限り、１回目に読出した第１タイマ値と２回目に読出した第１タイマ値との差異は所定値よりも低い値となる。よって、算出した差異が所定値を超えるか否かを判断することでも、報時部７５３ｆは、第１タイマ９５２ａを読出した後に第２タイマ９５２ｂを読出すまでに桁上りが発生したか否かを判断できる。
【００５５】
この構成によれば、先に読出した第１タイマ値と再度読出した第１タイマ値との差異が所定値を超えるか否かに基づいて、発振回数の計数による差異であるか否かを判断するため、第３タイマ値の異常を精度良く検出できる。
【００５６】
次に、報時部７５３ｆが実行する報時処理について説明する前に、図８を参照して、報時部７５３ｆの構成について説明する。図８は、報時部７５３ｆの一構成例を表す機能ブロック図である。
報時部７５３ｆは、読出部７５３ｋ、検出部７５３ｌ、生成部７５３ｍ、反転部７５３ｎ、及び公開部７５３ｏで構成される。読出部７５３ｋは、第１タイマ７５２ａ、第２タイマ７５２ｂ、及び検出部７５３ｌに接続する。読出部７５３ｋは、実行部７５３ａが読出処理を実行することで実現される。読出部７５３ｋは、第１タイマ７５２ａ及び第２タイマ７５２ｂから第１タイマ値及び第２タイマ値を読出し、読出した値を検出部７５３ｌへ出力する。
【００５７】
検出部７５３ｌは、読出部７５３ｋ及び生成部７５３ｍに接続する。検出部７５３ｌは、実行部７５３ａが検出処理を実行することで実現される。検出部７５３ｌは、先ず、読出部７５３ｋが読出した第１タイマ値及び第２タイマ値を読出した後に再度読出した第１タイマ値と、先に読出した第１タイマ値との差異を算出する。次に、検出部７５３ｌは、算出した差異が、第１タイマ７５２ａの行う減算処理又は加算処理により生じた差異であるか否かを判断すると共に、減算処理又は加算処理により生じた差異でないと判断した場合に、後述する生成部７５３ｍが生成する第３タイマ値の異常を検出する。検出部７５３ｌは、異常を検出しなかった場合には、読出部７５３ｋから取得した第１タイマ値及び第２タイマ値を生成部７５３ｍへ出力する。また、検出部７５３ｌは、異常を検出した場合には、再度、第１タイマ値及び第２タイマ値を読出すよう読出部７５３ｋを制御した後に、読出部７５３ｋから取得した値を生成部７５３ｍへ出力する。尚、図７を参照したように、検出部７５３ｌは、１回目に読出した第１タイマ値が２回目に読出した第１タイマ値よりも小さいか否か、又は１回目に読出した第１タイマ値と２回目に読出した第１タイマ値との差異が所定値よりも低いか否かに基づいて異常を検出する。
【００５８】
生成部７５３ｍは、検出部７５３ｌ及び反転部７５３ｎに接続する。生成部７５３ｍは、実行部７５３ａが生成処理を実行することで実現される。検出部７５３ｌは、検出部７５３ｌから取得した第１タイマ値及び第２タイマ値に基づいて第３タイマ値を生成し、生成した値を反転部７５３ｎへ出力する。
反転部７５３ｎは、生成部７５３ｍ及び公開部７５３ｏに接続する。反転部７５３ｎは、実行部７５３ａが反転処理を実行することで実現される。反転部７５３ｎは、生成部７５３ｍから取得した第３タイマ値を反転し、タイマ時刻を生成する。反転部７５３ｎは、生成したタイマ時刻を公開部７５３ｏへ出力する。
公開部７５３ｏは、反転部７５３ｎ、ウォッチドッグ操作部７５３ｇ、及び制御部７５３ｈに接続する。公開部７５３ｏは、実行部７５３ａが公開処理を実行することで実現される。公開部７５３ｏは、反転部７５３ｎから取得したタイマ時刻をウォッチドッグ操作部７５３ｇ及び制御部７５３ｈに公開（報知）する。
【００５９】
次に、図９を参照して、報時部７５３ｆが実行する報時処理について説明する。図９は、報時部７５３ｆが実行する報時処理の一例を表すフローチャートである。尚、報時部７５３ｆは、ウォッチドッグ操作部７５３ｇ及び制御部７５３ｈが時刻の報知を要求する場合に報時処理を実行する。
【００６０】
先ず、報時部７５３ｆは、他のソフトウェア処理の割込み実行を禁止する割込禁止処理を実行する（ステップＳ２１）。後述するステップＳ２２からＳ２８の処理を遅延無く連続して処理するためである。次に、報時部７５３ｆは、変数１１に対して第１タイマ７５２ａから読出した第１タイマ値を代入する（ステップＳ２２）。その後、報時部７５３ｆは、変数２に対して第２タイマ７５２ｂから読出した第２タイマ値を代入する（ステップＳ２３）。次に、報時部７５３ｆは、変数１２に対して第１タイマ７５２ａから再度読出した第１タイマ値を代入する（ステップＳ２４）。
【００６１】
その後、報時部７５３ｆは、変数１１の値が変数１２の値よりも小さいか否かを判断する（ステップＳ２５）。また、報時部７５３ｆは、変数１１の値と変数１２の値の差異が所定値を超えるか否かを判断しても良い。つまり、報時部７５３ｆは、第１タイマ７５２ａでアンダーフローが発生したか否かを判断する。報時部７５３ｆは、アンダーフローが発生したと判断する場合にはステップＳ２６の処理を、そうでない場合にはステップＳ２９の処理を実行する。
【００６２】
ステップＳ２５において、報時部７５３ｆは、アンダーフローが発生したと判断した場合には、既に取得した第１タイマ値と第２タイマ値とで生成される第３タイマ値が異常となることを検出する（ステップＳ２６）。次に、報時部７５３ｆは、変数２に対して第２タイマ７５２ｂから再度読出したアンダーフロー後の第２タイマ値を代入する（ステップＳ２７）。次に、報時部７５３ｆは、変数１２に対して、アンダーフロー後の第１タイマ値を再度代入する（ステップＳ２８）。
【００６３】
この構成によれば、第１タイマ値が表現範囲を超過した後に読出した第１タイマ値及び第２タイマ値に基づいて第３タイマ値を生成するため、精度良く第３タイマ値を生成できる。
【００６４】
ステップＳ２５において、報時部７５３ｆは、アンダーフローが発生しなかったと判断した場合、又はステップＳ２８を実行した後には、割込み実行の禁止を解除する禁止解除処理を実行する（ステップＳ２９）。その後、報時部７５３ｆは、変数１２が記憶する第１タイマ値を表す１６ビット下位データと、変数２が記憶する第２タイマ値を表す１６ビット上位データとを合成して、第３タイマ値を表す３２ビット時刻データを生成する（ステップＳ３０）。次に、報時部７５３ｆは、ステップＳ３１及びステップＳ３２の処理を実行する（ステップＳ３１及びステップＳ３２）。その後、報時部７５３ｆは、報時処理の実行を終了する。尚、ステップＳ３１及びステップＳ３２の処理は、図５のステップＳ１４及びステップＳ１５の処理と同様なので説明を省略する。
【００６５】
この構成によれば、発振回数が第１タイマ値の表現範囲を超過するタイミング及び第２タイマ値が表現範囲の超過を計数するタイミングと、生成部７５３ｍが第１タイマ値及び第２タイマ値を読出すタイミングとの同期を取らずとも、第１タイマ値及び第２タイマ値に基づいて第３タイマ値を精度良く生成できる。
【００６６】
尚、ステップＳ２２、Ｓ２３、Ｓ２４、Ｓ２７、及びＳ２８の処理が読出部７５３ｋを実現する読出処理に相当し、ステップＳ２５及びＳ２６の処理が検出部７５３ｌを実現する検出処理に相当し、ステップＳ３０の処理が生成部７５３ｍを実現する生成処理に相当し、ステップＳ３１の処理が反転部７５３ｎを実現する反転処理に相当し、ステップＳ３２の処理が公開部７５３ｏを実現する公開処理に相当する。
【００６７】
ここで、図４に戻り、ソフトウェア処理部７５３の構成について引き続き説明を行う。
ウォッチドッグ操作部７５３ｇは、報時部７５３ｆ及び出力部７５３ｉに接続する。ウォッチドッグ操作部７５３ｇは、操作処理を実行することで、報時部７５３ｆが報知する時刻に基づいて、出力部７５３ｉを介して電源ＩＣ７１０へウォッチドッグ操作（つまり、ウォッチドッグクロックＷＤＣの出力）を行う。
制御部７５３ｈは、報時部７５３ｆ、出力部７５３ｉ、及び入力部７５３jに接続する。制御部７５３ｈは、制御処理を実行することで、報時部７５３ｆが報知する時刻、及び入力部７５３jが入力する各種センサの値に基づいて、蓄電池１０の蓄電又は放電を制御するデータ又は信号を出力部７５３ｉへ出力する。
【００６８】
出力部７５３ｉは、例えば、出力用マイコン周辺リソース７５３ｅで構成される。出力部７５３ｉは、電源ＩＣ７１０及び出力回路７４０に接続する。出力部７５３ｉは、ウォッチドッグ操作部７５３ｇが出力するパルス信号ＷＤＣを電源ＩＣ７１０へ出力する。また、出力部７５３ｉは、制御部７５３ｈが出力する信号又はデータを出力回路７４０へポート出力、シリアル出力、又はＰＷＭ出力する。
入力部７５３jは、例えば、入力用マイコン周辺リソース７５３ｄで構成される。入力部７５３jは、制御部７５３ｈ及び信号成型レベル変換部７２０に接続する。入力部７５３jは、信号成型レベル変換部７２０がパルス入力等する各種センサの値を制御部７５３ｈへ入力する。
【００６９】
尚、本実施例においては、マイコン７５０がタイマ値生成装置に相当する。また本件発明に係るタイマ値生成方法は、マイコン７５０を用いて実施できる。
更に、本実施例において、第１タイマ７５２ａが第１タイマ値を減算又は加算する処理を実行するステップが第１生成ステップに相当し、第２タイマ７５２ｂ第２タイマ値を減算又は加算する処理を実行するステップが第２生成ステップに相当し、実行部７５３ａが生成処理を実行するステップが第３生成ステップに相当する。
【００７０】
マイコン７５０が備えるソフトウェア処理部７５３が実行する処理を表すプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供できる。
【００７１】
また、マイコン７５０がソフトウェア処理を実行することで実現する機能の一部又は全部は、ハードウェア回路を用いて実現することができる。逆に、マイコン７５０がハードウェア回路を用いて実現する機能の一部又は全部は、ソフトウェア処理を実行することで実現することができる。
【００７２】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【００７３】
【図１】本発明のタイマ値生成装置を内蔵した制御装置で構成される制御システムの一実施形態を示す構成図である。
【図２】その他ＥＣＵの一構成例を表すハードウェア構成図である。
【図３】マイコンの一構成例を表すハードウェア構成図である。
【図４】ソフトウェア処理部の一構成例を表す機能ブロック図である。
【図５】従来の報時部が実行する報時処理の一例を表すフローチャートである。
【図６】従来の報時部が実行する報時処理の問題点の一例を表す図である。
【図７】報時部が実行する報時処理の一例について概説するための図である。
【図８】報時部の一構成例を表す機能ブロック図である。
【図９】報時部が実行する報時処理の一例を表すフローチャートである。
【符号の説明】
【００７４】
１…制御システム                １０…蓄電池                    
１００〜７００…ＥＣＵ          ７１０…電源ＩＣ                
７２０…信号成型レベル変換部    ７３０…発振回路                
７４０…出力回路                ７５０…マイコン（タイマ値生成装置）
７５１…分周器                  ７５２ａ…第１タイマ…          
７５２ｂ…第２タイマ            ７５３…ソフトウェア処理部      
７５３ａ…実行部                ７５３ｂ…ＲＡＭ                
７５３ｃ…ＲＯＭ                ７５３ｄ…入力用周辺リソース    
７５３ｅ…出力用周辺リソース    ７５３ｆ…報時部        
７５３ｇ…ウォッチドッグ操作部  ７５３ｈ…制御部                
７５３ｉ…出力部                ７５３ｊ…入力部                
７５３ｋ…読出部                ７５３ｌ…検出部                
７５３ｍ…生成部                ７５３ｎ…反転部                
７５３ｏ…報知部                ８５２ａ…１６ｂｉｔタイマ
８５２ｂ…１６ｂｉｔタイマ      ８５３…ソフトウェア処理部      
８５３ｅ…報時部                ９５２…３２ｂｉｔタイマ        
９５３…ソフトウェア処理部      ＢＣ…ＣＡＮバス                
【図１】
2010113544.tif 000003
【図２】
2010113544.tif 000004
【図３】
2010113544.tif 000005
【図４】
2010113544.tif 000006
【図５】
2010113544.tif 000007
【図６】
2010113544.tif 000008
【図７】
2010113544.tif 000009
【図８】
2010113544.tif 000010
【図９】
2010113544.tif 000011