(57)【特許請求の範囲】
【請求項１】
電源オン中にシステムクロックを計時するマイコン内部時計の時刻補正方法において、
電源オン中に、時刻補正手段が、電源オフ中及び電源オン中に計時するリアルタイムクロック装置から取得したリアルタイムクロックとシステムクロックの差を計測するステップＡと、
前記時刻補正手段が、電源オン時、電源オフの継続時間を前記差に基づき修正し、電源オン時のシステムクロックを修正された前記継続時間により補正して前記マイコン内部時計に設定するステップＢと、
電源オン中、
時刻取得手段が、単位時間の前記マイコン内部時計の経過時間とリアルタイムクロックの経過時間の比から補正係数を求め、前記補正係数で補正された前記マイコン内部時計の最小表現時刻単位の略整数倍の時間間隔でリアルタイムクロックを取得し、該リアルタイムクロックを前記マイコン内部時計に設定するステップＣ、
を有することを特徴とする請求項１記載の時刻補正方法。
【請求項２】
環境因子が取り得る値の領域に対応付けて、リアルタイムクロックとシステムクロックのどちらの精度がよいかを登録した判定テーブルに基づき、
判定手段が、リアルタイムクロックとシステムクロックのどちらの精度がよいかを判定するステップＤを有する、
ことを特徴とする請求項１記載の時刻補正方法。
【請求項３】
前記時刻補正手段は、システムクロックの方が精度がよい場合に、前記ステップＢを実行し、リアルタイムクロックの方が精度がよい場合、ステップＢを実行せずにリアルタイムクロックを前記マイコン内部時計に設定する、
ことを特徴とする請求項２いずれか記載の時刻補正方法。
【請求項４】
前記時刻取得手段は、リアルタイムクロックの方が精度がよい場合に、前記ステップＣを実行する、
ことを特徴とする請求項２記載の時刻補正方法。
【請求項５】
環境因子修正手段が、温度などの環境因子に応じてリアルタイムクロック又はシステムクロックを修正するステップを有する、
ことを特徴とする請求項１〜４いずれか域債の時刻補正方法。
【請求項６】
電源オン中にシステムクロックを計時するマイコン内部時計において、
電源オン中、電源オフ中及び電源オン中に計時するリアルタイムクロック装置から取得  したリアルタイムクロックと前記システムクロックの差を計測する時刻補正手段を有し、
前記時刻補正手段は、電源オン時、電源オフの継続時間を前記差に基づき修正し、電源オン時のシステムクロックを修正された前記継続時間により補正して前記マイコン内部時計に設定し、
電源オン中、
単位時間の前記マイコン内部時計の経過時間とリアルタイムクロックの経過時間の比から補正係数を求め、前記補正係数で補正された前記マイコン内部時計の最小表現時刻単位の略整数倍の時間間隔でリアルタイムクロックを取得し、該リアルタイムクロックを前記マイコン内部時計に設定する時刻取得手段を有する、
ことを特徴とするマイコン内部時計。
【請求項７】
請求項６記載のマイコン内部時計を搭載した電子制御ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイムクロックとシステムクロックの少なくとも一方により計時するシステムの時刻補正方法、マイコン及び電子制御ユニットに関する。
【背景技術】
【０００２】
コンピュータは、計時用のクロック信号を発生するシステムクロックと、ボード上に実装されている時計専用のチップ（リアルタイムクロック装置（以下、ＲＴＣという））という２つの時計を備えている場合が多い。コンピュータの電源オフ時はシステムクロックも停止するが、ＲＴＣは電源オフ時もバッテリから電源供給を受けて継続して時間を計測している。このため、電源オン時にコンピュータはＲＴＣから日時を取得して、以降はシステムクロックにより計時する計時方法を採用することが多い。
【０００３】
一般にはシステムクロックの方が誤差が少ないと考えられるがシステムクロックにより計時する時計は誤差が累積することがあるため、例えばＲＴＣの時間を定期的に読み出してシステムクロックを補正する補正方法が考えられている（例えば、特許文献１参照。）。特許文献１では、所定時間毎に、ＲＴＣからＲＴＣ時刻ｔｒを読み出すと共にシステムクロックから時刻ｔｔを読み出し、ＲＴＣ時刻ｔｒに更新間隔Ｄｒの１／２を加算した時刻Ｔｒ’を求め、時刻Ｔｒ’と時刻Ｔｓの差がしきい値Ｄｔよりも大きい時に時刻Ｔｒ’をシステムクロックに設定する。このような補正方法によりＲＴＣとシステムクロックの最大誤差の低減を図っている。
【０００４】
ところで、ＲＴＣが電源オフ中も計時可能であっても、その計時結果には誤差が含まれるし、誤差は電源オフの継続時間が長いほど増大する。このため、電源オン時にＲＴＣから日時を取得してシステムクロックに設定する計時方法では、ＲＴＣ以上の精度で計時することが困難である。
【０００５】
そこで、どの程度の時間、電源オフの時間が継続したかを計測し、電源オン時にＲＴＣを補正する補正方法が知られている。この補正方法では、冷却水等の車両定常運転時に一定の高温になる対象物の温度を、電源オフ直後に計測し、電源オン時に対象物の温度の低下量を計測することで電源オフの継続時間を推測する。
【特許文献１】特開２００３−２４０８８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、温度の低下量は環境温度に依存するため、かかる補正方法で推測された電源オフ継続時間は不正確といってよく、また、対象物の温度が環境温度以下まで低下すると、一定以上の時間が経過したことしか分からないという問題がある。
【０００７】
また、ＲＴＣ時刻ｔｒの方が精度よい場合でも、ＲＴＣ時刻ｔｒとシステムクロックには誤差があるので、システムクロックがＲＴＣ時刻ｔｒを取得してシステムクロックに反映するタイミングによっては精度が低下するおそれがある。
【０００８】
本発明は、上記課題に鑑み、電源オン時、電源オフ継続時間を補正してシステムクロックの精度で計時を再開することができる時刻補正方法、マイコン内部時計及び電子制御ユニットを提供することを目的とする。また、電源オン中に、精度を低下させずに、ＲＴＣ時刻ｔｒを取得してシステムクロックに反映する刻補正方法、マイコン内部時計及び電子制御ユニットを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題に鑑み、本発明は、電源オン中に計時するシステムクロックを備えたマイコン内部時計の時刻補正方法において、電源オン中の所定時に、時刻補正手段が、電源オフ中及び電源オン中に計時するリアルタイムクロック装置から取得したリアルタイムクロックとシステムクロックの差を計測するステップＡと、記時刻補正手段が、電源オン時、電源オフの継続時間を差に基づき修正し、オフ時システムクロックを、修正された継続時間により補正してマイコン内部時計に設定するステップＢと、
電源オン中、時刻取得手段が、単位時間のマイコン内部時計の経過時間とリアルタイムクロックの経過時間の比から補正係数を求め、前記補正係数で補正された前記マイコン内部時計の最小表現時刻単位の略整数倍の時間間隔でリアルタイムクロックを取得し、該リアルタイムクロックを前記マイコン内部時計に設定するステップＣ、を有することを特徴とする。
【００１０】
本発明によれば、リアルタイムクロックにより求められる電源オフの継続時間をシステムクロックにより補正するので、電源オン時にシステムクロックの精度で計時を再開できる。
【発明の効果】
【００１１】
電源オン時、電源オン中に高精度に時刻を計測する時刻補正方法、マイコン及び電子制御ユニットを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【実施例１】
【００１３】
本実施形態の時刻補正方法は、電源オン時、リアルタイムクロック装置（以下、ＲＴＣという）１４とシステムクロック装置（以下、内部時計という）１２のうち、内部時計１２の方が精度がよい場合、電源オフが継続した時間（以下、電源オフ継続時間Ｔという）に内部時計１２が計時したであろう時間を算出し、内部時計１２に設定する。これにより、電源オフ中に内部時計１２が計時しなくても、電源オン時に精度の高い時刻を内部時計１２に設定できる。
【００１４】
また、電源オン中、ＲＴＣ１４の方が精度がよい場合、ＲＴＣ１４が計時する時刻を所定のタイミングで内部時計１２に設定することで、電源オン中に精度のよい計時を可能とする。なお、以下では、「時刻」は時間軸上の任意の一点を、「時間」は時刻の差分を、それぞれ示すものとする。
【００１５】
図１は、時刻補正方法を実行するＥＣＵ（Electronic  Control  Unit）１０の構成図の一例を示す。ＥＣＵ１０は電子制御ユニットとも呼ばれ、例えば駆動力、ナビゲーションシステム、制動力等を制御するコンピュータシステムの一形態である。図１では、時刻補正方法を説明するためのブロックのみを示したが、この他にＡ／Ｄ変換器、パワー・トランジスタ、入出力部、他のＥＣＵとの通信装置等を有する。
【００１６】
マイコン１１にはメモリ１３及びＲＴＣ１４が接続されている。マイコン１１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、その他ＬＳＩが内部バスで接続されたコンピュータである。
【００１７】
マイコン１１は少なくとも内部時計１２を有しており、この内部時計１２はクロックジェネレータ又は発振子と呼ばれるハードウェアと、このハードウェアが出力するクロック信号をカウントして計時するハードウェア（又はソフトウェア）とにより構成される。本実施例では、ハードとソフトを特に区別することなく内部時計１２と称す。以下、内部時計１２が計時する時刻をタイマ時刻ｔｔという。
【００１８】
メモリ１３は、フラッシュメモリ、ＥＥＰＲＯＭ（Electronically  Erasable  and  Programmable  Read  Only  Memory）など書き換え可能な不揮発メモリである。また、ＲＴＣ１４は計時専用のチップである。車両がイグニションオフされると、ＥＣＵ１０などの電装品は一部を除いて電源オフとなるが、ＲＴＣ１４は、電源オフ時はバッテリ１５から電源供給を受け計時し、電源オン時は発電機から電源供給を受けて計時する（以下、ＲＴＣ１４が計時する時刻をＲＴＣ時刻ｔｒという）。これに対し、内部時計１２は、電源オンの間のみタイマ時刻を計時する。なお、この関係は逆であってもよく、本実施形態の時刻補正方法は、２つの時計のうちいずれか一方が電源オフ中も計時できればよい。
【００１９】
図２（ａ）は、電源オン時における時刻補正方法の概略を示す図である。時刻管理部２０は、マイコン１１のＣＰＵがプログラムを実行することで実現されてもよいし、時刻処理用のＩＣにより実現してもよい。時刻管理部２０は入力されたＲＴＣ時刻ｔｒとタイマ時刻ｔｔを後述するように処理して電源オン時に内部時計１２に設定すべきＲＴＣ補正時刻ｔｈを算出する。
【００２０】
また、図２（ｂ）は、電源オン中における時刻補正方法の概略を示す図である。電源オン中、時刻取得手段２４は、ＲＴＣ時刻ｔｒ又はタイマ時刻ｔｔのうち、精度のよい方の時刻を内部時計１２に設定する。
【００２１】
本実施形態の時刻補正方法は、このように電源オン時と電源オン中の２つの処理手順により実現されるが、いずれか一方のみを用いてもよい。
【００２２】
Ａ．電源オン時（オフ→オン時）：電源オフ継続時間Ｔに基づき算出したＲＴＣ補正時刻ｔｈを内部時計１２に反映する
Ｂ．電源オン中：２つの時計の計時結果のうち、精度のよい方と内部時計１２に設定する
【００２３】
図３は、時刻補正方法の処理手順を示すフローチャート図である。図３に示すように、本実施例形態の時刻補正方法は、ＲＴＣ１４と内部時計１２の精度に応じて処理が切り替わる（２つのＳ２０）。図３では、ステップＳ１０〜Ｓ４０が電源オン時の処理に、ステップＳ５０〜Ｓ７０が電源オン中の処理に、それぞれ相当する。また、ステップＳ８０，Ｓ９０は電源オフ時の処理である。
【００２４】
ＲＴＣ時刻ｔｒとタイマ時刻ｔｔの精度の判定について説明する。ＲＴＣ時刻ｔｒとタイマ時刻ｔｔで精度のよい方が常に固定であれば精度のよい時計を使用すればよいが、時計の精度は、環境の温度、供給電圧等の環境因子により変動することが多い。このため、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔの精度の上下関係は、環境因子に応じて切り替わる。本実施例では、この関係を予め精度マップに定めてメモリ１３に記憶しておき、判定手段２３が環境因子に基づき精度マップを参照して、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔのうちどちらが高精度かを判定する。
【００２５】
図４は、判定マップ３０の一例を示す。環境因子の動作点を基準に、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔのうち精度のよい時刻を内部時計１２の時刻とすることで、精度を向上できる。動作点とは、環境因子において、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔの精度が逆転する値である。
【００２６】
例えば、温度の場合、ある温度を基準（動作点）にＲＴＣ時刻ｔｒとタイマ時刻ｔｔのどちらが精度がよいかさえ判明していれば、温度に応じて、精度のよい時計に切り替えて内部時計１２の時刻として扱うことができる。
【００２７】
図４では温度Ｔ１以下かつ電圧Ｖ１以下、温度Ｔ１以上かつ電圧Ｖ１以上で、ＲＴＣ時刻ｔｒの方が高精度なることを示す。環境因子が３以上あれば、３次元以上の精度マップを記憶しておく。なお、どちらが高精度かは、判定手段２３は、所定時間毎に電波時計等と比較して決定してもよい。
【００２８】
以下、電源オン時と電源オン中に分けて説明する。
Ａ．電源オン時（オフ→オン時）
図５は、電源オン／オフと内部時計１２が認識する時刻の関係を示す。Ｘ軸は「真の時刻」、Ｙ軸は「ＥＣＵ１０が認識する時刻」をそれぞれ示す。理想値が真の時刻に一致した場合は、理想値は４５度の傾きの原点を通過する直線となる。しかしながら、電源オフ中の内部時計１２は計時せず、電源オン時にＬ２のように計時を再開するため、内部時計１２が計時するタイマ時刻ｔｔは電源オフ時に記憶したタイマ時刻ｔｔにＬ２を加えたＬ１の如き時刻を示す。
【００２９】
これでは、電源オフの度にＲＴＣ時刻ｔｒなどの一般的な時刻からずれが増大してしまうため、Ｌ１を理想値に近づける作業が必要になる。この作業には、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔのいずれの精度がより高いかにより２つの方法が考えられる。
（Ａ１）ＲＴＣ時刻ｔｒの方が精度が高い場合
電源オン時にＲＴＣ時刻ｔｒを内部時計１２に設定する（Ｓ３０）。
（Ａ２）タイマ時刻ｔｔの方が精度が高い場合
電源オン時にＲＴＣ補正時刻ｔｈを算出し内部時計１２に設定する（Ｓ４０）。
【００３０】
（Ａ１）と（Ａ２）の設定方法ではより精度のよい方を採用すればよい。すなわち、ＲＴＣ時刻ｔｒの精度がタイマ時刻ｔｔよりもよい場合、（Ａ１）を採用してＲＴＣ時刻ｔｒを内部時計１２に設定する。また、タイマ時刻ｔｔの精度がＲＴＣ時刻ｔｒよりもよい場合、（Ａ２）を採用してＲＴＣ補正時刻ｔｈを内部時計１２に設定する。
【００３１】
（Ａ２）のＲＴＣ補正時刻ｔｈの算出について説明する。
タイマ時刻ｔｔの精度がＲＴＣ時刻ｔｒよりもよい場合、ＲＴＣ時刻ｔｒをタイマ時刻ｔｔにて補正する。
【００３２】
図６は、ＲＴＣ補正時刻ＴＨの算出を説明するタイムチャート図である。図６では、時刻ｔ１に電源オン、時刻ｔ２に電源オフ、時刻ｔ３に電源オンされている。ＲＴＣ時刻ｔｒは電源オフ中も計時するので一様に増大している。タイマ時刻ｔｔは、電源オフ中は計時しないので、ｔ２からｔ３の電源オフ中、一定時刻を示す。なお、ＲＴＣ１４と内部時計１２は独立に計時するので、時刻ｔ２における電源オフ直前も、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔは図示するようにそれぞれ異なる時刻を示す。また、図６は、ＲＴＣ時刻ｔｒの方が進んでしまう場合を示す。
【００３３】
図６ではタイマ時刻ｔｔの方がＲＴＣ時刻ｔｒよりも精度がよい場合を想定しているので、タイマ時刻ｔｔを真の時刻とした。したがって、電源オフ継続時間に、タイマ時刻ｔｔが計時したであろう時間（以下、真の経過時間Ｔｋという）を時刻ｔ２のタイマ時刻ｔｔに加えることで、時刻ｔ３の電源オン時に真の時刻の計時を再開できることになる。
【００３４】
真の経過時間Ｔｋを算出するためＲＴＣ時刻ｔｒを利用するが、ＲＴＣ時刻ｔｒはタイマ時刻ｔｔよりも精度が劣るため、ＲＴＣ時刻ｔｒを補正するためのＲＴＣ時間補正係数を電源オン中に定めておく。ＲＴＣ時間補正係数は、精度の高いタイマ時刻ｔｔを用いて算出しているため、ｔ３にて電源オン後もタイマ時刻ｔｔと同程度の精度にて計時を再開できる。
【００３５】
まず、時刻保存手段２１は、時刻ｔ２にて電源オフとなると（Ｓ８０のＹｅｓ）、ＲＴＣ１４から取得したＲＴＣ時刻ｔｒ及びタイマ時刻ｔｔをメモリ１３に記憶する（Ｓ９０）。
【００３６】
そして、時刻ｔ３にて電源オンとなると、時刻補正手段２２は、電源オフ中も計時するＲＴＣ時刻ｔｒを取得して、ＲＴＣ補正時刻ｔｈを算出する。算出式の一例を示す。
・式（１）
ＲＴＣ補正時刻ｔｈ  ＝（ＲＴＣ時刻（電源オン時）−ＲＴＣ時刻（電源オフ時））÷ＲＴＣ時間補正係数  ＋  タイマ時刻（電源オフ時）  …  （１）
すなわち、ＲＴＣ時間補正係数にて補正することで真の経過時間Ｔｋをタイマ時刻ｔｔと同程度の精度で算出できる。ＲＴＣ時間補正係数は、例えば次式により算出する。
・式（２）
ＲＴＣ時間補正係数  ＝  単位時間ＲＴＣ時刻ｔｒの変化量／単位時間のタイマ時刻ｔｔの変化量  …  （２）
式（２）に示すように、ＲＴＣ時間補正係数は単位時間当たりのＲＴＣ時刻ｔｒのずれ量、又は、差分を示す。図６に示した単位時間の場合、「ＲＴＣ時間補正係数  ＝  Ｂ／Ａ」である。例えば、ＲＴＣ時刻ｔｒがタイマ時刻ｔｔに比べ１時間に３分進む場合、ＲＴＣ時間補正係数は６３／６０＝１．０５となる。
【００３７】
単位時間は精度のよい方の時計にて計時すればよいが、単位時間を十分に短く設定すれば、ＲＴＣ時刻ｔｒで単位時間を決定してもＲＴＣ時間補正係数の算出に大きな影響はない。なお、ＲＴＣ時間補正係数が一定と見なしてよい場合、ＲＴＣ補正係数を予め計測しメモリ１３に記憶しておく。
【００３８】
時刻補正手段２２は、電源オン中、予め式（２）により算出されたＲＴＣ時間補正係数をメモリ１３に記憶しておき（Ｓ６５）、時刻ｔ３にて電源オン時、メモリ１３からＲＴＣ時刻ｔｒ（電源オフ時）、タイマ時刻ｔｔ、及び、ＲＴＣ時間補正係数を読み出し、ＲＴＣ１４からＲＴＣ時刻（電源オン時）を取得して、式（１）によりＲＴＣ補正時刻ｔｈを算出する。
【００３９】
一般に、マイコン１１は水晶発振子が出力するクロック信号を元に動作しており、ＲＴＣ１４がクォーツ時計程度（32,768Hz）の精度であるのに対し、それより数桁以上速いクロック信号に基づき計時するため、電源オン中であれば内部時計１２は高精度に計時することができる。
【００４０】
したがって、式（１）に従い算出されたＲＴＣ補正時刻ｔｈは、ＲＴＣ時刻ｔｒよりも高精度なタイマ時刻ｔｔに応じた精度を有するので、電源オン時にＲＴＣ時刻ｔｒをそのまま内部時計１２に設定するよりも高精度な計時が可能となる。このため、ＲＴＣ時刻ｔｒにそれほど高精度を求めなくても、マイコン１１のクロック信号を利用することで電源オフ中の時間をクロック信号と同程度の精度にて計時できる。なお、ＲＴＣ１４をクロック信号と同程度以上に高精度とすることも考えられるが、より高価なＲＴＣ１４と置き換えることになるのでコスト高となる。
【００４１】
Ｂ．電源オン中
電源オン中の処理も、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔのいずれの精度がより高いかにより２つの方法が考えられる。
（Ｂ１）ＲＴＣ時刻ｔｒの方が精度が高い場合
ＲＴＣ時刻ｔｒを所定のタイミングで取得して内部時計１２に設定する（Ｓ６０）。
（Ｂ２）タイマ時刻ｔｔの方が精度が高い場合
タイマ時刻ｔｔを内部時計１２の時刻として扱う（Ｓ７０）。
【００４２】
電源オン中、時刻取得手段２４はタイマ時刻ｔｔとＲＴＣ時刻ｔｒのうち精度のよい方を内部時計１２に設定する。（Ｂ２）のようにタイマ時刻ｔｔの精度がよい場合、タイマ時刻ｔｔをそのまま内部時計１２の時刻として扱えばよいが、（Ｂ１）のようにＲＴＣ時刻ｔｒの方が精度がよい場合、ＲＴＣ時刻ｔｒを内部時計１２の時刻として扱うには次のような問題がある。
【００４３】
ＲＴＣ１４はマイコン１１の外部装置なので、マイコン１１がＲＴＣ１４からＲＴＣ時刻ｔｒを取得するタイミングに制約がある場合がある。
【００４４】
ここで、マイコン１１は、車載機器の制御からくる要請に従い、表現したい最小表現幅が予め決まっているが、ＲＴＣ時刻ｔｒの方が高精度であっても、マイコン１１がＲＴＣ１４からＲＴＣ時刻ｔｒを取得するタイミングによっては、内部時計１２が不規則に増加してしまう場合がある。例えば、分の単位が最小表現幅とすると、内部時計１２が１分ずつ増加せずに、所定の周期で２分増加したり３分増加したりすることが起こりうる。これではＥＣＵ１０が制御タイミングを逃すことになるので好ましくない。
【００４５】
最小表現幅と時刻ずれの関係について説明する。図７（ａ）は、最小表現幅の１／２よりも早くＲＴＣ時刻ｔｒを取得して内部時計１２に設定することができる場合の内部時計１２の更新を説明するための図である。
【００４６】
図７（ａ）では１マスが内部時計１２の最小表現幅を示し、一様に増加する点線がＲＴＣ時刻ｔｒを示し、ＲＴＣ時刻ｔｒから下向きに最寄りの最小表現幅まで引かれた矢印がＲＴＣ時刻ｔｒを取得するタイミングを示す。
【００４７】
矢印のタイミングで内部時計１２はＲＴＣ時刻ｔｒを取得するが、タイミング矢印の間隔は最大でも最小表現幅の１／２間隔となる。このため、ＲＴＣ時刻ｔｒを内部時計１２の時刻に設定する更新タイミングずれ（図では最小表現幅の１マスから右方向へのずれ分）も０〜１／２最小表現幅となる。したがって、ＲＴＣ時刻ｔｒを内部時計１２に設定しながら長時間が経過しても、内部時計１２が最小表現幅を超えて計時することがない（必ず最小表現幅（例えば１分）ごとに進む）。
【００４８】
これに対し、最小表現幅の１／２よりも遅くしかＲＴＣ時刻ｔｒを取得できない場合、内部時計１２の自由なタイミングでＲＴＣ時刻ｔｒを取得すると、図７（ｂ）に示す問題が生じる。
【００４９】
図７（ｂ）は、最小表現幅の１／２よりも遅くしかＲＴＣ時刻ｔｒを取得して内部時計１２に設定することができない場合の内部時計１２の更新を説明するための図である。図７（ｂ）では、ＲＴＣ時刻ｔｒを取得するタイミングが、最小表現幅の１．５倍である場合を示す。
【００５０】
最小表現幅の１．５倍の時間が経過した取得タイミングａでは最小表現幅だけ進んだＲＴＣ時刻ｔｒを取得でき、また、取得タイミングａから最小表現幅の１．５倍の時間が経過した取得タイミングｂではさらに最小表現幅だけ進んだＲＴＣ時刻ｔｒを取得できる。しかし、取得タイミングｂから最小表現幅の１．５倍の時間が経過した取得タイミングｃでは、最小表現幅×２進んだＲＴＣ時刻ｔｒを取得してしまう。このような不連続な時刻の増加は、最小表現幅の１／２よりも遅くしかＲＴＣ時刻ｔｒを取得できない場合に生じ、取得タイミングの間隔が長いほど頻繁に生じる。
【００５１】
そこで、本実施例では、取得タイミングを最小表現幅の整数倍にそろえることで、時刻が不規則に増加することを防止する。図７（ｃ）は、ＲＴＣ時刻ｔｒの取得タイミングを最小表現幅×２とする場合の取得タイミングを示す。
【００５２】
タイマ時刻ｔｔに従い最小表現幅の整数倍毎にＲＴＣ時刻ｔｒを取得できればよいが、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔには若干の誤差があるため、内部時計１２がタイマ時刻ｔｔに従って取得タイミングを決定したのでは、最小表現幅の整数倍のタイミングでＲＴＣ時刻ｔｒを取得することができない（内部時計１２はＲＴＣ時刻ｔｒが最小表現幅進んだことを知ることができない。）。
【００５３】
このため、時刻取得手段２４は、タイマ時刻ｔｔからＲＴＣ時刻ｔｒが最小表現幅進んだことを計算により求める。
【００５４】
ここで、
・任意の時刻ＡにおけるＲＴＣ時刻をtr_A、タイマ時刻をtt_A
・任意の時刻ＢにおけるＲＴＣ時刻をtr_B、タイマ時刻をtt_B
とする。
【００５５】
時刻Ｂから時刻Ａまでの間における、tt_Aとtt_Bの経過時間と、tr_Aとtr_Bの経過時間の比率（以下、タイマ時刻補正係数という）は、両者の計時の相違分を示す値となる。タイマ時刻補正係数を内部時計１２の最小表現幅に乗じることで、最小表現幅の時間が経過したことを内部時計１２が検出することができる。
・式（３）
タイマ時刻補正係数  ＝（tt_B−tt_A）／（tr_B−tr_A）…（３）
・式（４）
時刻偏差  ＝  最小表現幅  ÷  タイマ時刻補正係数  …（４）
すなわち、マイコン１１は、タイマ時刻ｔｔが時刻偏差経過したタイミングで、ＲＴＣ時刻ｔｒを取得すればよい。なお、最小表現幅×０．５〜１未満では式（４）のタイミングでよいが、これまで述べたようにＲＴＣ時刻ｔｒを取得できるタイミングには制約があるので、ＲＴＣ時刻ｔｒを取得できるタイミングが最小表現幅×１〜２未満では、時刻偏差×２で、ＲＴＣ時刻ｔｒを取得できるタイミングが最小表現幅×２〜３未満では、時刻偏差×３で、算出される時刻偏差に従いＲＴＣ時刻ｔｒを取得する。
【００５６】
このようにして、Ｂ．電源オン中、ＲＴＣ時刻ｔｒの方が精度が高い場合、時刻取得手段２４はＲＴＣ時刻ｔｒを適切なタイミングで取得することができる。
【００５７】
以上説明したように、本実施例の時刻補正方法は、電源オフ継続時間Ｔを精度のよい方の時計の精度で計時することができ、電源オン時に電源オフ継続時間Ｔの影響を受けることなく計時を再開できる。精度が低い安価なＲＴＣ１４を用いてもシステムクロックと同程度の精度を得ることができるのでコスト増を抑制できる。
【００５８】
また、電源オン中、ＲＴＣ時刻ｔｒの方が精度がよいが最小表現幅の１／２以下でＲＴＣ時刻ｔｒを取得できなくても、最小表現幅の整数倍で計時できるので、時刻の増加分を常に一定にすることができる。また、環境因子に応じて、常に、精度のよい方の時刻を採用することができる。
【実施例２】
【００５９】
実施例１では、電源オン中、マイコン１１がＲＴＣ時刻ｔｒを取得することを想定したが、ＲＴＣ１４からＲＴＣ時刻ｔｒが送信されれば、マイコン１１はそもそも取得タイミングを考慮する必要がない。本実施例では、ＲＴＣ１４がマイコン１１にＲＴＣ時刻ｔｒを送信する時刻補正方法のうち、マイコン１１とＲＴＣ１４の通信について説明する。なお、Ａ．電源オン時（オフ→オン時）の処理については実施例１と同様である。また、Ｂ．電源オン中の（Ｂ２）の処理についても実施例１と同様であるので、（Ｂ１）ＲＴＣ時刻ｔｒの方が精度が高い場合について説明する。
【００６０】
〔マイコン１１とＲＴＣ１４の通信〕
マイコン１１とＲＴＣ１４の通信について説明する。ＲＴＣ１４は、マイコン１１のシリアルポートに接続されており、シリアル通信によりＲＴＣ時刻ｔｒをマイコン１１に送信する。
【００６１】
（Ｂ１）ＲＴＣ時刻ｔｒの方が精度が高い場合、マイコン１１は頻繁に通信することになるが、常にＲＴＣ時刻ｔｒそのものを送受信すると通信処理のため処理効率が低下する。通信により取得したＲＴＣ時刻ｔｒは通信時において正確なものであるため、ＲＴＣ１４にパルス発信部を備え、マイコン１１はシリアル通信にて初期値を取得した後、以降はＲＴＣ１４から定期的に送信されるパルスにより計時する。これにより、マイコン１１では常時最新の値を時刻に用いることができる。
【００６２】
図８（ａ）はＥＣＵ１０のブロック図の一例を、図８（ｂ）はタイマ時刻ｔｔとパルスの関係を示す。パルスＡは１周期毎に所定時間の計時を示すパルスであり、マイコン１１が計時する時刻はパルスＡの１周期毎にカウントアップしていく。
【００６３】
また、パルスＢは、パルスＡを補正する信号であり、パルスＡが抜けてしまったような場合に、パルスＡのカウント値が桁上がりするタイミングでオンとなる。例えば、パルスＡが１μ（マイクロ）秒反転の場合、パルスＢは、１ｍ（ミリ）秒の桁がカウントアップするタイミングでオンする。パルスＢによりカウントアップされた時刻を補正することで、ＲＴＣ１４と内部時計１２の同期をとることができる。なお、パルスＢはシリアル通信の接続線から入力してもよい。
【００６４】
本実施例によれば、内部時計１２がＲＴＣ１４のパルスに基づき計時するので、ＲＴＣ時刻ｔｒの取得タイミングを制御することなく、ＲＴＣ１４と同程度の精度にて、電源オン中の時刻を計時できる。
【実施例３】
【００６５】
本実施例では、実施例１の構成に加え、環境因子に応じて時刻を補正する時刻補正方法について説明する。なお、ＲＴＣ１４からＲＴＣ時刻ｔｒが送信される場合、マイコン１１は取得タイミングを考慮する必要がなく、実施例２と同様にシリアル通信とパルスによりＲＴＣ時刻ｔｒを内部時計１２に設定する。
【００６６】
図４で説明したように、一般の時計は温度など特定の環境によって精度が変動することがあるが、温度に対する精度の変動を予め特性化しておくことで、温度に応じて時刻を補正することができる。図９は、時刻補正方法の概略を示す図である。なお、図９において、図２と同一構成部分には同一の符号を付しその説明は省略する。
【００６７】
図９では、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔとがそれぞれ特性補正手段２５により補正される点で図２と異なる。所定の環境因子に対する特性は、ＲＴＣ１４と内部時計１２で異なるので、それぞれについて特性補正手段２５が設けられている。
【００６８】
例えば、温度特性の場合、温度に対応づけて補正量及び補正時間間隔を登録した補正テーブルをメモリ１３に記憶しておき、特性補正手段２５が計測した温度に応じて補正テーブルを参照して、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔとをそれぞれ補正すればよい。
【００６９】
なお、特定の環境因子は、温度以外にも例えば湿度、電磁波、振動等があるのでそれぞれ環境因子毎に特性化しておけば、複数の環境因子に対し補正することができる。
【００７０】
特性補正手段２５が補正した後、ＲＴＣ時刻ｔｒとタイマ時刻ｔｔとでどちらの精度がよいか分かっていれば、実施例１と同様に精度のよい方を内部時計１２に設定する。また、例えば、特性補正手段２５が補正した補正量の多い方を精度が悪いと判定してもよい。
【００７１】
図１０は、時刻補正方法の処理手順を示すフローチャート図である。なお、図１０において図３と同じステップの説明は省略する。
【００７２】
電源オン時（Ｓ１０のＹｅｓ）、特性補正手段２５は、ＲＴＣ時刻ｔｒ及びタイマ時刻ｔｔを補正テーブルに従い補正する（Ｓ１０１）。また、電源オン中は、所定のサイクル時間毎にＲＴＣ時刻ｔｒ及びタイマ時刻ｔｔを補正テーブルに従い補正する（Ｓ１０１）。
【００７３】
本実施例では、ＲＴＣ１４と内部時計１２の精度を判定するステップＳ２０の直前に、特性補正手段２５が環境因子に対しＲＴＣ時刻ｔｒとタイマ時刻ｔｔを補正する。そして、電源オン時（Ｓ３０又はＳ４０）と電源オン中（Ｓ６０又はＳ７０）において、補正後のＲＴＣ時刻ｔｒと補正後のタイマ時刻ｔｔのうち精度のよい方を内部時計１２の時刻に設定する。
【００７４】
なお、図１０では精度の判定前に補正したが、精度の判定後に補正してもよい（すなわち、２つのステップＳ２０の後にＲＴＣ時刻ｔｒ又はタイマ時刻ｔｔを補正する）。精度の判定後に補正することで、ＲＴＣ時刻ｔｒ又はタイマ時刻ｔｔのいずれかを補正するだけでよく、かつ、実施例１と同様にＲＴＣ時刻ｔｒとタイマ時刻ｔｔの精度を比較することができる。
【００７５】
本実施例によれば、実施例１及び２と同様の効果を奏すると共に、内部時計１２は環境因子に対する温度ずれを補正して、補正後の時刻を設定できるので、実施例１及び２よりもさらに時刻の精度を向上させることができる。
【図面の簡単な説明】
【００７６】
【図１】時刻補正方法を実行するＥＣＵの構成図の一例である。
【図２】時刻補正方法の概略を示す図である（実施例１）。
【図３】時刻補正方法の処理手順を含むフローチャート図である。
【図４】判定マップの一例を示す図である。
【図５】電源オン／オフと内部時計が認識する時刻の関係を示す図である。
【図６】ＲＴＣ補正時刻の算出を説明するタイムチャート図である。
【図７】マイコンがＲＴＣからＲＴＣ時刻ｔｒを取得するタイミングを説明する図である。
【図８】ＥＣＵのブロック図の一例、及び、タイマ時刻ｔｔとパルスの関係を示す図である。
【図９】時刻補正方法の概略を示す図である（実施例３）。
【図１０】時刻補正方法の処理手順を示すフローチャート図である（実施例３）。
【符号の説明】
【００７７】
１０    ＥＣＵ
１１    マイコン
１２    内部時計
１３    メモリ
１４    リアルタイムクロック装置（ＲＴＣ）
１５    バッテリ
２０    時刻管理部
２１    時刻保存手段
２２    時刻補正手段
２３    判定手段
２４    時刻取得手段
２５    特性補正手段
３０    判定マップ
【図１】
0004952406.tif 000002
【図２】
0004952406.tif 000003
【図３】
0004952406.tif 000004
【図４】
0004952406.tif 000005
【図５】
0004952406.tif 000006
【図６】
0004952406.tif 000007
【図７】
0004952406.tif 000008
【図８】
0004952406.tif 000009
【図９】
0004952406.tif 000010
【図１０】
0004952406.tif 000011