(57)【要約】【課題】  時刻情報よりも高い発振周波数のシステム動作用クロックとＲＴＣ（リアルタイムクロック）で作成される現在時刻データとの計測誤差を補正する。【解決手段】  短い周期のクロックを発生するクロック回路１０からのクロックをカウントするカウントレジスタ２０のカウント値と比較レジスタ３０の値が一致した時に、割り込みが実行され現在時刻値５０が増分される。ＲＴＣ（リアルタイムクロック）の役割を果たす秒回路６０からのクロックをカウントする秒値レジスタ７０と現在時刻値５０の値に誤差が生じた場合は、比較レジスタ３０の値を加減算することで、画像処理システム内のクロック間の誤差を補正する。【選択図】  図１
2005121396.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号の計数結果を時刻情報に変換する時刻情報作成装置において、
第１のクロック信号を計数する第１の計数手段と、
前記第１のクロック信号と異なる発振周波数の第２のクロック信号を計数する第２の計数手段と、
前記第２の計数手段による第２の計数結果及び前記第１の計数手段による第１の計数結果を利用し、単位時間内の前記第１の計数結果が基準値と一致するように前記基準値を補正する補正手段と、
前記第１の計数結果と前記基準値とが一致した回数を計数する第３の計数手段と、
前記第３の計数手段による第３の計数結果が所定値に達したときに、その時点での時刻情報が表す時刻よりも所定時間進んだ時刻を表す情報を生成し、時刻情報を更新する時刻情報更新手段と、を有することを特徴とする時刻情報作成装置。
【請求項２】
前記第１のクロック信号はシステム動作クロックを基に作成したクロック信号であり、
前記第２のクロック信号は、電源スイッチのオンオフにかかわらず計数を連続的に持続するリアルタイムクロックの出力を基に作成したクロック信号であること、を特徴とする請求項１記載の時刻情報作成装置。
【請求項３】
前記基準値の補正をアイドル状態時に行うことを特徴とする請求項１又は２に記載の時刻情報作成装置。
【請求項４】
前記基準値の補正を情報伝達手段から指定されたタイミングに実行することを特徴とする請求項１から３のいずれか１項に記載の時刻情報作成装置。
【請求項５】
第１のクロック信号を計数する第１の計数工程と、
前記第１のクロック信号とは異なる発振周波数の第２のクロック信号を計数する第２の計数工程と、
前記第２の計数工程における第２の計数結果及び前記第１の計数工程における第１の計数結果を利用し、単位時間内の前記第１の計数結果が基準値と一致するように前記基準値を補正する補正工程と、
前記第１の計数結果と前記基準値とが一致した回数を計数する第３の計数工程と、
前記第３の計数工程による第３の計数結果が所定値に達したときに、その時点での時刻情報が表す時刻よりも所定時間進んだ時刻を表す情報を生成し、時刻情報を更新する時刻情報更新工程と、を有することを特徴とする時刻情報作成方法。
【請求項６】
前記第１のクロック信号は、システム動作クロックを基に作成したクロック信号であり、
前記第２のクロック信号は、電源スイッチのオンオフにかかわらず計数を連続的に持続するリアルタイムクロックの出力を基に作成したクロック信号であることを特徴とする請求項５記載の時刻情報作成方法。
【請求項７】
前記基準値の補正は、アイドル状態時に行うことを特徴とする請求項５又は６に記載の時刻情報作成方法。
【請求項８】
前記基準値の補正は、情報伝達手段から指定されたタイミングに実行されることを特徴とする請求項５から７のいずれか１項に記載の時刻情報作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻情報の補正手段であって、時刻情報よりも高い発振周波数のシステム動作用クロックとＲＴＣ（リアルタイムクロック）で作成される現在時刻データとの計測誤差を補正する時刻情報作成装置及び方法に関する。
【背景技術】
【０００２】
コピー／プリンタ／ＦＡＸ等の複合機能を持つ画像処理システム（ＭＦＰ）は、その内部に時刻情報を保持しており、コピー日時の記録やプリント履歴、送受信ＦＡＸの時刻記録用に参照されている。画像処理システムの内部では、多数のプログラムが並行動作しており、多くのプログラムがお互いに関連して動作するため、プログラムの処理の切り替えや動作制御のため、時刻情報よりも細かな１／１００秒から１／１０００秒程度の制御用クロックを利用している。さらに画像処理システムのコントローラに搭載されているＣＰＵ等のハードウェア駆動用には、１００ＭＨｚから１ＧＨｚ程度の非常に高速なクロックが供給されている。
【０００３】
このように、画像処理システムでは、粒度が大きく異なる３種類のクロックが必要とされており、さらに必要とされる精度も異なる。すなわち、時刻情報に使うクロックには長時間に渡る精度が必要とされている代わりに、秒未満の精度は厳しく要求されない。それに対して、ハードウェア駆動用のクロックには長時間の精度は必要とされない。
理想的には、３種類のクロックを別々の供給源で生成し、それぞれに要求される精度で供給するのが最適であるが、ハードウェアのコスト削減のため、ひとつのクロック供給源からカウンタを使って分周して２種類または３種類のクロックを生成するように設計されるのが多い。通常、長時間の時刻情報用にはＲＴＣを使い、それ以外のクロックは１００ＭＨｚから１ＧＨｚ程度の高速クロックをクロック源として、カウンタで分周して生成する方式が一般的である。
【０００４】
特許文献１は、第一のクロック信号で生成した時刻情報と、第一のクロックよりも高周波数かつ高精度なクロック信号を要求する第二のクロックにより生成した時刻情報とを比較して、前者を補正する手段を提案している。また、特許文献２は、クロック補正処理のオーバヘッドを少なくするために、補正処理を一定の期間経過後にまとめて実行する手段を提案している。
【特許文献１】特開２００２−１３９５８５号公報
【特許文献２】特開２０００−１９２７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来の技術では、秒単位の精度しか持たないＲＴＣと、数百ＭＨｚのクロックとで、完全な同期を取ることが困難であった。すなわち、２００ＭＨｚのクロックを２００万回カウントしても、正確な１秒にはならず、必ず誤差が発生する。高速クロックの誤差の原因は様々であるが、回路設計の不備やクロック源発振の精度の問題、さらに電波障害回避のための意図的な周波数拡散処理、などの要因が挙げられる。
ＲＴＣにより保持されている秒単位の時刻情報と、それ以外のクロックとのずれが大きくなると様々な不具合が発生する。例えば、ある１秒毎に１回、何らかの処理を行うプログラムを起動し、１時間に３６００回、当該処理が実行されることを期待して設計しても、プログラムの実行制御用のクロックに０．０３％の誤差があっただけで、正確に１時間に３６００回という条件を満たすことが出来ない。
【０００６】
例えば、特許文献１においては、第１のクロック信号で生成した時刻情報を、第２のクロック信号を使って生成した時刻情報と比較して、前者を補正する方式が提案されているが、第２のクロック信号として、第１のクロックよりも高周波数かつ高精度なクロック信号を要求している。一般的に周波数が高くなるほど、高精度を実現するのは困難となり、コストの増加にもつながってしまう。また、特許文献２においては、クロック補正処理のオーバーヘッドを少なくするために、補正処理を一定の期間経過後にまとめて実行する方式が提案されているが、これはクロックの誤差が一定である場合にのみ有効であり、誤差が変動する場合には、うまく作動しない可能性がある。
【０００７】
また、回路設計の不備、クロック源発振精度の問題、さらには電波障害回避のための意図的な周波数拡散処理等が要因で、秒単位の精度しか持たないＲＴＣと数百ＭＨｚのクロック間で完全な同期を取ることは困難である。
【０００８】
本発明は、上記のような背景に鑑みてなされたものであり、高精度のクロックや特別なクロック補正回路を用意することなく、並行動作するシステム内部のクロックの補正や同期を実現し、ローコストでシステム時刻の信頼性ひいてはシステム自身の信頼性を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
請求項１記載の時刻情報作成装置は、クロック信号の計数結果を時刻情報に変換する時刻情報作成装置において、第１のクロック信号を計数する第１の計数手段と、前記第１のクロック信号と異なる発振周波数の第２のクロック信号を計数する第２の計数手段と、前記第２の計数手段による第２の計数結果及び前記第１の計数手段による第１の計数結果を利用し、単位時間内の前記第１の計数結果が基準値と一致するように前記基準値を補正する補正手段と、前記第１の計数結果と前記基準値とが一致した回数を計数する第３の計数手段と、前記第３の計数手段による第３の計数結果が所定値に達したときに、その時点での時刻情報が表す時刻よりも所定時間進んだ時刻を表す情報を生成し、時刻情報を更新する時刻情報更新手段と、を有することを特徴とする。
【００１０】
請求項２記載の発明は、請求項１記載の時刻情報作成装置において、前記第１のクロック信号はシステム動作クロックを基に作成したクロック信号であり、前記第２のクロック信号は、電源スイッチのオンオフにかかわらず計数を連続的に持続するリアルタイムクロックの出力を基に作成したクロック信号であること、を特徴とする。
【００１１】
請求項３記載の発明は、請求項１又は２に記載の時刻情報作成装置において、前記基準値の補正をアイドル状態時に行うことを特徴とする。
【００１２】
請求項４記載の発明は、請求項１から３のいずれか１項に記載の時刻情報作成装置において、前記基準値の補正を情報伝達手段から指定されたタイミングに実行することを特徴とする。
【００１３】
請求項５記載の時刻情報作成方法は、第１のクロック信号を計数する第１の計数工程と、前記第１のクロック信号とは異なる発振周波数の第２のクロック信号を計数する第２の計数工程と、前記第２の計数工程における第２の計数結果及び前記第１の計数工程における第１の計数結果を利用し、単位時間内の前記第１の計数結果が基準値と一致するように前記基準値を補正する補正工程と、前記第１の計数結果と前記基準値とが一致した回数を計数する第３の計数工程と、前記第３の計数工程による第３の計数結果が所定値に達したときに、その時点での時刻情報が表す時刻よりも所定時間進んだ時刻を表す情報を生成し、時刻情報を更新する時刻情報更新工程と、を有することを特徴とする。
【００１４】
請求項６記載の発明は、請求項５記載の時刻情報作成方法において、前記第１のクロック信号は、システム動作クロックを基に作成したクロック信号であり、前記第２のクロック信号は、電源スイッチのオンオフにかかわらず計数を連続的に持続するリアルタイムクロックの出力を基に作成したクロック信号であることを特徴とする。
【００１５】
請求項７記載の発明は、請求項５又は６に記載の時刻情報作成方法において、前記基準値の補正は、アイドル状態時に行うことを特徴とする。
【００１６】
請求項８記載の発明は、請求項５から７のいずれか１項に記載の時刻情報作成方法において、前記基準値の補正は、情報伝達手段から指定されたタイミングに実行されることを特徴とする。
【発明の効果】
【００１７】
本発明は、上記のごとく、高精度のクロックや特別なクロック補正回路を用意することなく、システム内部のクロックを補正したり、同期させたりすることができる。
【００１８】
また、本発明を適用した画像処理システムにおいては、システム動作用クロックの精度が低くても、リアルタイムクロックと長期間に渡って同期を取りつづけることができる。
【発明を実施するための最良の形態】
【００１９】
本発明は、コピー／プリンタ／ＦＡＸ等の複合機能を持つ画像処理システム（ＭＦＰ）において、複数のクロック信号の計数結果を比較し、その比較結果を使って計数結果の補正を行う。また、システム動作用クロック信号の計数結果をＲＴＣの出力を基に補正するため、長期間に渡って同期を取り続けられることを特徴とする。さらに、ＲＴＣは画像処理システムの電源のオンオフに関らず計測動作が連続的に持続され、アイドル状態時にシステム動作用クロック信号の計数結果の補正が行われることを特徴とする。
【実施例１】
【００２０】
図１は、本発明を適用した複写機１の構成を示す図である。
複写機１は、原稿読取部２、印字部３、コントローラ４、操作部５から成る。
コントローラ４には、ＨＤＤ６が接続されており、原稿読取部２で入力された原稿データ７を一時的に保存しておくことができ、操作部５からのオペレータの指示により、ＨＤＤ６に保存されている原稿データ７を印字部３において印刷することができる。
【００２１】
まず、コントローラ４で実行される時刻情報作成処理について説明する。コントローラ４には、十分に短い周期のクロックを発生するクロック回路１０、クロック回路１０からのクロックをカウントするカウントレジスタ２０、カウント値の比較用の比較レジスタ３０、カウントレジスタ２０の値と比較レジスタ３０の値とが一致したときに割り込みを発生する割込回路４０、クロック回路１０から作成される現在時刻を格納する現在時刻値５０がある。
【００２２】
カウントレジスタ２０の値と比較レジスタ３０の値とが一致すると、割込回路４０により割り込みを発生させるとともに、カウントレジスタ２０の値は０に戻る。その後、再びカウントレジスタ２０は、クロック回路１０からのクロックをカウントし、比較レジスタ３０の値にまで到達すると、割込回路４０が割り込みを発生する。したがって、割込回路４０からの割り込み実行間隔は、クロック回路１０が発振するクロックの周波数と、比較レジスタ３０に設定する値とで決まる。例えば、クロック回路１０が発振するクロックの周波数が１００ＭＨｚで、比較レジスタ３０の値１００００００を設定した場合、１秒間に１００回の割り込みが発生し、現在時刻値５０に１秒増分されることで時刻情報が作成される。なお、この割り込みはプログラム制御のタイミング信号としても利用可能である。
【００２３】
また、コントローラ４には１秒周期のクロックを発振する秒回路６０と、秒回路６０からのクロックをカウントする秒値レジスタ７０が含まれる。ここで、秒回路６０はリアルタイムクロックであり、年月日を含む現在時刻を保持しており、コントローラ４の電源が切れた状態においても、自律的に現在時刻を計時し続ける機能を持つ。よって、現在時刻値５０は、起動時に秒回路６０から読み出した値を元に初期化された後、割込回路４０からの割り込み処理の中で値が増分される。したがって、コントローラ４の電源がオフされ、クロック回路１０による時刻情報の作成が停止しても、起動時に秒回路６０を利用して初期化されることで、再び秒回路６０と同期して、現在時刻を計時し始めることが可能となる。
例えば、現在時刻５０が２０００年１月１日の午前０時からの経過秒値で、割込回路４０が０．０１秒に１回割り込みを生成している場合、現在時刻値５０は、割込回路４０からの割り込み回数１００回毎に、値１だけ増分される。
【００２４】
図２は、現在時刻値５０の初期化処理及び割込処理の手順を示している。現在時刻値５０の初期化処理は、第一に比較レジスタ３０を１００００００にセットする（ステップＳ１）。次に、秒回路６０から現在時刻値を読み（ステップＳ２）、その値を２０００年１月１日からの経過秒数値に変換し（ステップＳ３）、その値を現在時刻値５０に格納する（ステップＳ４）。割り込み回数（ｉ）は０になり（ステップＳ５）、初期化処理は終了する。その後、カウントレジスタ２０の値が比較レジスタ３０の値と一致すると、割り込みが発生し、初期化処理で格納した現在時刻値５０に増分される。
なお、割込処理は、カウントレジスタ２０の値が比較レジスタ３０と一致した時に割り込みが１回だけ発生し、割込み回数（ｉ）に加算される（ステップＳ６）。割り込みが繰り返され、割り込み回数（ｉ）が１００回またはそれ以上の時（ステップＳ７／ＹＥＳ）、現在時刻値５０の値に１だけ増分し（ステップＳ８）、割り込み回数（ｉ）を０とし（ステップＳ９）、プログラム制御の処理が行われ（ステップＳ１０）、割込処理は終了する。一方、割り込み回数が１００未満の時は（ステップＳ７／ＮＯ）、プログラム制御の処理がなされ（ステップＳ１０）、現在時刻値５０には増分されずに割込処理は終了する。
【実施例２】
【００２５】
ここで、クロック回路１０が生成するクロックの精度と、秒回路６０が生成するクロックの精度とが一致していれば、現在時刻値５０と秒値レジスタ７０の値は、同じ割合で増加し続けるはずである。
しかし、クロック回路１０と秒回路６０の精度に差があるため、長時間経過すると現在時刻値５０と秒値レジスタ７０の値が食い違ってくる。
例えば、クロック回路１０の周波数が０．５％低かっただけでも、２００秒に１秒の遅れになり、１日で７分以上の遅れになる。これはＦＡＸの送受信などで時刻情報を参照する場合、無視できる誤差ではない。
【００２６】
そこで、秒値レジスタ７０の値と現在時刻値５０との差を計算し、現在時刻値５０が秒値レジスタ７０よりも小さい場合は、比較レジスタ３０の値を減らす。すると、割込回路４０の実行される間隔が短くなるため、現在時刻値５０の値の進みが速くなり、秒値レジスタ７０の値との差が少なくなる。
逆に、現在時刻値５０が秒値レジスタ７０よりも大きい場合は、比較レジスタ３０の値を増やす。すると、割込回路４０が実行される間隔が長くなるため、現在時刻値５０の値の進みが遅くなり、秒値レジスタ７０の値との差が少なくなる。
例えば、ある時点で現在時刻値５０が１００００で、秒値レジスタ７０が１００１０だった場合、その差分１０を比較レジスタ３０の初期値１００００００から減算して、９９９９９０にする。これにより、現在時刻値５０の進み方は０．００１％速くなる。
【００２７】
図３は、比較レジスタ３０の値を増減する補正処理の実施例を示している。まず、現在時刻値５０（ｔ１）と秒値レジスタ７０の値（ｔ２）との差を計算し（ステップ２２）、現在時刻値５０（ｔ１）が秒値レジスタ７０（ｔ２）よりも小さい場合は（ステップ２１／ＮＯ）、比較レジスタ３０の値を減らす（ステップＳ２５）。すると、割込回路４０が実行する割り込みの間隔が短くなるため、現在時刻値５０の値の進みが速くなり、秒値レジスタ７０との差が少なくなる。
一方、現在時刻値５０（ｔ１）が秒値レジスタ７０（ｔ２）よりも大きい場合（ステップ２１／ＹＥＳ）、比較レジスタ３０の値を増やす（ステップＳ２５）。すると、割込回路４０が実行される割り込みの間隔が長くなるため、現在時刻値５０の値の進みが遅くなり、秒値レジスタ７０との差が少なくなる。
【００２８】
なお、上記の補正処理を実行するタイミングには、一定時間あるいはユーザが指定した時間間隔に実行する方法、現在時刻値５０と秒値レジスタ７０の値の差が予め設定した値よりも大きくなった時点で実行する方法や、ユーザが指定した時点で実行する方法などが考えられる。
また、比較レジスタ３０の値の増減量には、固定量あるいはユーザが指定した量を加減算する方法、現在時刻値５０と秒値レジスタ７０の値との差を加減算又は差の値に何らかの演算を加えて算出した値とする方法、差の値の大小に応じて決まる値を加減算する方法などが考えられる。
【実施例３】
【００２９】
実施例１又は２では、秒回路６０が生成するクロックをレジスタで計時しているが、ソフトウェアで秒回路６０の生成クロックの値変化を検出し、変化時点でのカウントレジスタ値の値を読み出すことにより、比較レジスタ３０に設定すべき値を計算する方法も考えられる。ソフトウェアを用いることで、システム動作に影響を与えることなくクロック回路１０と秒回路６０との同期処理を実現することができる。また、ハードウェアによる特別なカウンタを用意する必要がなくなる。
【００３０】
図４は、複写機１がアイドル状態時にソフトウェアで比較レジスタ３０の値を補正する実施例を示している。まず、アイドル状態時（ステップＳ３０／ＹＥＳ）に割り込みの実行を禁止し（ステップＳ３１）、カウントレジスタ２０の値が０に初期化されるのを防ぐ。次に、秒回路６０の秒値レジスタ７０が変化した時（ステップＳ３２／ＹＥＳ）のカウンタレジスタ２０の値（ｃ１）（ステップＳ３３）と、次に秒回路６０の秒値レジスタが変化した時（ステップＳ３４／ＹＥＳ）のカウントレジスタ２０の値（ｃ２）の差を求め（ステップＳ３５）、単位時間内に生成されるクロック数を算出する。そして、割り込みを許可し（ステップＳ３６）、単位時間内に生成されたクロック数を比較レジスタ３０にセットする（ステップＳ３７）。
【００３１】
なお、本実施例では、本発明を複写機のコントローラに適用した場合を説明したが、本発明が複写機のみならず、他の分野の組み込み型コントローラに対しても容易に適用可能なのは明らかである。
【図面の簡単な説明】
【００３２】
【図１】本発明を適用した複写機の構成例を示す図である。
【図２】本発明を適用した複写機の初期化処理及び割込処理の実施例を示すフローチャートである。
【図３】本発明を適用した複写機の比較レジスタ値補正処理の実施例を示すフローチャートである。
【図４】本発明を適用した複写機のアイドル状態時におけるソフトウェアによる補正処理の実施例を示すフローチャートである。
【符号の説明】
【００３３】
１    複写機
２    原稿読取部
３    印字部
４    コントローラ
５    操作部
６    ＨＤＤ
７    原稿データ
１０    クロック回路
２０    カウントレジスタ
３０    比較レジスタ
４０    割込回路
５０    現在時刻値
６０    秒回路
７０    秒値レジスタ
【図１】
2005121396.tif 000003
【図２】
2005121396.tif 000004
【図３】
2005121396.tif 000005
【図４】
2005121396.tif 000006