(57)【要約】【課題】電子機器において、回路規模を抑えて簡易な構成で、現在時刻を精度よく求めることができるようにする。【解決手段】制御部は、ハードウェア構成のカウンタ１１ｅを用いて、基準時刻更新処理及び内部時刻出力処理を実行することで、現在時刻を精度よく求める。基準時刻更新処理では、タイムサーバ２０から時刻データを取得すると共に、ＲＡＭ１１ｃが記憶保持する基準時刻を、時刻データが示す現在時刻に更新し、更には、カウンタをリセットすることにより、基準時刻更新時点からの経過時間を、カウンタに計測させる。また、時刻データの取得時だけでなく、カウンタの最大計測時間より短い時間間隔で、基準時刻を、当該基準時刻とカウンタのカウント値とから特定される現在時刻に更新すると共に、カウンタをリセットする。このようにして、制御部は、基準時刻及びカウント値に基づき、内部時刻出力処理によって、現在時刻を算出できるようにする。【選択図】図２
2010085227.tif 000002
【特許請求の範囲】
【請求項１】
現在時刻を表す時刻情報を、外部装置から取得する時刻情報取得手段と、
基準時刻を記憶保持する基準時刻保持手段と、
前記時刻情報取得手段が前記時刻情報を取得する度に、前記基準時刻保持手段が記憶保持する前記基準時刻を、前記時刻情報取得手段が取得した最新の前記時刻情報が示す時刻に更新する更新手段と、
ハードウェアで構成され、一定周期でカウント値を更新するカウント回路と、
前記カウント回路を用いて、前記基準時刻が更新された時点からの経過時間を計測する経過時間計測手段と、
前記基準時刻保持手段が記憶保持する前記基準時刻に、前記経過時間計測手段により計測された経過時間を加算して、現在時刻を算出する現在時刻算出手段と、
現在時刻の出力要求があると、前記現在時刻算出手段に前記現在時刻を算出させて、前記現在時刻算出手段により算出された現在時刻を、出力する応答手段と、
を備えることを特徴とする電子機器。
【請求項２】
前記経過時間計測手段は、
基準カウント値を記憶保持する基準カウント値保持手段
を備え、
前記経過時間計測手段は、
前記更新手段により前記基準時刻が更新される度に、前記カウント回路のカウント値を参照して、前記基準カウント値保持手段が記憶保持する前記基準カウント値を、参照時点での前記カウント回路のカウント値に更新し、
前記カウント回路のカウント値を参照して、前記基準カウント値保持手段が記憶保持する基準カウント値と、前記カウント回路のカウント値との差分を算出することにより、前記基準時刻が更新された時点からの経過時間を計測する
ことを特徴とする請求項１記載の電子機器。
【請求項３】
前記カウント回路のカウント値が一回りする時間である前記カウント回路の最大計測時間より短い時間間隔で、前記カウント回路の前記カウント値を参照して、前記基準時刻保持手段が記憶保持する前記基準時刻を、前記基準時刻の現在値と参照時点のカウント値とから特定される現在時刻に、更新すると共に、前記基準カウント値保持手段が記憶保持する前記基準カウント値を、参照時点での前記カウント回路のカウント値に更新する補助更新手段
を備えることを特徴とする請求項２記載の電子機器。
【請求項４】
前記経過時間計測手段は、前記更新手段により前記基準時刻が更新される度に、前記カウント回路のカウント値をリセットし、前記カウント回路のカウント値を参照することによって、前記基準時刻が更新された時点からの経過時間を計測することを特徴とする請求項１記載の電子機器。
【請求項５】
前記カウント回路のカウント値が始点から終点まで一通り更新されるまでの時間である前記カウント回路の最大計測時間より短い時間間隔で、前記カウント回路の前記カウント値を参照して、前記基準時刻保持手段が記憶保持する前記基準時刻を、前記基準時刻の現在値と参照時点のカウント値とから特定される現在時刻に、更新すると共に、当該参照後に前記カウント回路のカウント値をリセットする補助更新手段
を備えることを特徴とする請求項４記載の電子機器。
【請求項６】
前記時刻情報取得手段は、前記最大計測時間よりも長い時間間隔で周期的に、前記時刻情報を外部装置から取得することを特徴とする請求項３又は請求項５記載の電子機器。
【請求項７】
前記時刻情報取得手段は、前記電子機器が備える通信インタフェースであって、現在時刻を表す時刻情報を提供するタイムサーバと通信可能な通信インタフェースを通じて、前記タイムサーバから前記時刻情報を取得することを特徴とする請求項１〜請求項６のいずれかに記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器に関する。
【背景技術】
【０００２】
従来、電子機器としては、ＲＴＣ（リアルタイムクロック）回路を備えた電子機器が知られている。ＲＴＣ回路は、電子機器の電源が切られている間もバッテリからの電源供給を受けて動作し、現在時刻を計時するものである。
【０００３】
この他、電子機器としては、通信により外部装置から時刻情報を取得し、取得した時刻情報を用いて現在時刻を特定し、この時点からの経過時間をソフトウェアにより計時することで、後の現在時刻を求めるものが知られている（例えば、特許文献１参照）。
【０００４】
ソフトウェアクロックは、一般的に、オペレーティングシステム（ＯＳ）の機能として実現され、ＣＰＵに入力されるクロック信号に基づいてＣＰＵがカウント動作を行うことにより実現される。
【０００５】
また、従来装置としては、ハードウェアクロック（ＲＴＣ回路）や、ソフトウェアクロックの時刻進度を、外部装置から得られた正しい時刻情報に基づいて補正するものが知られている（例えば、特許文献２，３参照）。
【特許文献１】特開２００４−１８８７９３号公報
【特許文献２】特開２００３−２０７５８６号公報
【特許文献３】特開２００４−２６４９９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、近年では、インターネットが普及し、ネットワークを通じて外部装置としてのタイムサーバから時刻情報を取得可能な環境が整いつつある。従って、電子機器がネットワークに接続されるものである場合には、ＲＴＣ回路を電子機器内に設けなくとも、上述したように、タイムサーバから取得した時刻情報を用いて現在時刻を特定し、この特定時点からの経過時間を計測することで、後の現在時刻を求めることができる。
【０００７】
しかしながら、ソフトウェアクロックは、ＣＰＵの処理負荷によって時刻進度が変化するため、計時精度が、ハードウェアクロック（ＲＴＣ回路）と比較して悪い。また、ＣＰＵには、水晶振動子からの出力信号が直接入力されず、ノイズ対策のために、ＳＳＣＧと呼ばれる回路を介して、周波数帯域の広げられた信号が入力される場合もあるため、このような原因でも、水晶振動子からの出力信号を受けて計時動作するＲＴＣ回路と比較して、計時精度が悪い。
【０００８】
しかしながら、ＲＴＣ回路を電子機器に搭載すれば、回路規模が大きくなると共に、電子機器の製造コストが高くなるといった問題がある。
本発明は、こうした問題に鑑みなされたものであり、現在時刻を精度よく求めることが可能な電子機器を、回路規模を抑えて簡易な構成で、安価に製造可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的を達成するためになされた本発明の電子機器は、ＲＴＣ回路を利用せずに、
外部装置から取得した時刻情報と、ハードウェアで構成されるカウント回路とを用いて、現在時刻を求める。
【００１０】
即ち、本発明の電子機器は、現在時刻を表す時刻情報を、外部装置から取得する時刻情報取得手段と、基準時刻を記憶保持する基準時刻保持手段と、時刻情報取得手段が時刻情報を取得する度に、基準時刻保持手段が記憶保持する基準時刻を、時刻情報取得手段が取得した最新の時刻情報が示す時刻に更新する更新手段と、ハードウェアで構成され、一定周期でカウント値を更新するカウント回路と、カウント回路を用いて、基準時刻が更新された時点からの経過時間を計測する経過時間計測手段と、基準時刻保持手段が記憶保持する基準時刻に、経過時間計測手段により計測された経過時間を加算して、現在時刻を算出する現在時刻算出手段と、現在時刻の出力要求があると、現在時刻算出手段に現在時刻を算出させて、現在時刻算出手段により算出された現在時刻を、出力する応答手段と、を備える。
【００１１】
このように構成された電子機器によれば、ソフトウェア・カウンタではなく、ハードウェアで構成されるカウント回路を用いて現在時刻を求めるので、ＲＴＣ回路を用いずとも精度よく、現在時刻を求めることができ、結果として、応答手段は、高精度な時刻情報を要求元に提供することができる。
【００１２】
尚、ＲＴＣ回路とカウント回路とは、ハードウェアで構成される計時手段である点では共通するが、ＲＴＣ回路は、バッテリで動作し、レギュレータ回路等の周りの回路が必要であることから、回路規模が大きいのに対し、カウント回路は、回路規模が小さいという点で異なる。
【００１３】
従って、本発明によれば、現在時刻を精度よく求めることが可能な電子機器を、回路規模を抑えて、簡易な構成で安価に製造することができる。
また、上述した手段の内、基準時刻保持手段を除く各手段は、ソフトウェア的に実現できるが、マイクロコンピュータには、上記カウント回路が内蔵されているものも多い。
【００１４】
従って、カウント回路を備えるマイクロコンピュータを用いて、上述した各手段を、プログラムによりコンピュータ（ＣＰＵ）に実現させれば、一層回路規模を抑えて、高精度に現在時刻を求めることができる。
【００１５】
ところで、カウント回路としては、次の種類のカウント回路が知られている。即ち、カウント値が最大値に到達したらカウント値をゼロに戻して、再度、最大値に向けてカウント値を更新していくような、カウント値が一回りすると、カウント値を初期値に戻してカウント動作を継続するタイプのカウント回路（所謂フリーランカウンタ）が知られている。
【００１６】
従って、この種のカウント回路（フリーランカウンタ）を利用する場合、経過時間計測手段は、具体的に、次のように構成されるとよい。
即ち、経過時間計測手段は、基準カウント値を記憶保持する基準カウント値保持手段を備え、更新手段により基準時刻が更新される度に、カウント回路のカウント値を参照して、基準カウント値保持手段が記憶保持する基準カウント値を、参照時点でのカウント回路のカウント値に更新する構成にされるとよい。この経過時間計測手段では、カウント回路のカウント値を参照して、基準カウント値保持手段が記憶保持する基準カウント値と、カウント回路のカウント値との差分を算出することにより、基準時刻が更新された時点からの経過時間を計測することになる。
【００１７】
また、カウント回路は、上述したように、短時間の計測動作しか行うことができないため、単に、カウント回路を用いて、基準時刻が更新された時点からの経過時間を計測するようにしただけでは、カウント回路の最大計測時間が経過するまでの間に、外部装置から再度時刻情報を取得しないと、それ以降、現在時刻を求めることができなくなってしまう。
【００１８】
勿論、カウント回路の最大計測時間が経過するまでの間に、外部装置から再度時刻情報を取得すれば、現在時刻を求めることは可能であるが、このような方法では、外部装置、特にタイムサーバへの負荷が高くなり、好ましくない。
【００１９】
そこで、電子機器は、次のように構成されるのが一層好ましい。即ち、電子機器には、カウント回路のカウント値が一回りする時間であるカウント回路の最大計測時間より短い時間間隔で、カウント回路のカウント値を参照して、基準時刻保持手段が記憶保持する基準時刻を、基準時刻の現在値と参照時点のカウント値とから特定される現在時刻に、更新すると共に、基準カウント値保持手段が記憶保持する基準カウント値を、参照時点でのカウント回路のカウント値に更新する補助更新手段を設けるとよい。
【００２０】
この補助更新手段を備える電子機器によれば、カウント回路のカウント値が一回りする前に、基準時刻及び基準カウント値を更新し、経過時間計測手段に計測させる経過時間の始点を更新するので、時刻情報取得手段が取得した時刻情報に基づき更新手段が基準時刻を更新した時点から最大計測時間を経過した以降も、現在時刻を正確に求めることができる。
【００２１】
また、リセット可能なカウント回路を利用して、基準時刻が更新された時点からの経過時間を計測する場合、経過時間計測手段は、次のように構成することができる。
即ち、経過時間計測手段は、更新手段により基準時刻が更新される度に、カウント回路のカウント値をリセットする構成にすることができる。この経過時間計測手段では、カウント回路のカウント値を参照することによって、基準時刻が更新された時点からの経過時間を計測することになる。
【００２２】
また、カウント回路の最大計測時間より長い時間間隔で、外部装置から時刻情報を取得する場合には、この電子機器に、次の補助更新手段を設けるとよい。
即ち、当該電子機器には、カウント回路のカウント値が始点から終点まで一通り更新されるまでの時間であるカウント回路の最大計測時間より短い時間間隔で、カウント回路のカウント値を参照して、基準時刻保持手段が記憶保持する基準時刻を、基準時刻の現在値と参照時点のカウント値とから特定される現在時刻に、更新すると共に、カウント回路のカウント値をリセットする補助更新手段を設けるとよい。
【００２３】
尚、リセット可能なカウント回路としては、リセット可能なフリーランカウンタの他に、カウント値を始点（最小値または最大値）から終点（最大値または最小値）まで更新すると、カウント動作を停止するカウント回路を挙げることができる。
【００２４】
即ち、上記「カウント回路のカウント値が始点から終点まで一通り更新されるまでの時間」は、カウント回路がフリーランカウンタである場合、「カウント回路のカウント値が一回りするまでの時間」に等しく、カウント回路が上記カウント動作を停止するタイプのカウント回路である場合には、「始点（最小値または最大値）から終点（最大値または最小値）まで、カウント値が更新される時間」に等しい。
【００２５】
この補助更新手段を備える電子機器によれば、最大計測時間の経過前に、基準時刻を更新してカウント値をリセットするので、時刻情報取得手段が取得した時刻情報に基づき更新手段が基準時刻を更新した時点から、最大計測時間を経過した以降も、現在時刻を正確に求めることができる。
【００２６】
また、上述の電子機器において、時刻情報取得手段は、最大計測時間よりも長い時間間隔で周期的に、時刻情報を外部装置から取得する構成にされるのが好ましい。このように電子機器を構成すれば、外部装置にかかる負荷を抑えることができる。
【００２７】
また、本発明は、上述したように、現在時刻を表す時刻情報を提供するタイムサーバと通信可能な通信インタフェースを通じて、タイムサーバから時刻情報を取得する電子機器に適用されると好ましい。このような電子機器に上述の発明を適用すれば、外部装置の負荷低減に関する効果が一層発揮される。
【００２８】
尚、本発明は、電子機器、電子機器の制御方法、電子機器を制御するコンピュータプログラム、このコンピュータプログラムを記録する記録媒体等の種々の態様で実現することもできる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施例について、図面と共に説明する。
図１は、本実施例の通信システム１の構成を表すブロック図である。図１に示すように、本実施例の通信システム１は、ディジタル複合機１０と、タイムサーバ２０と、パーソナルコンピュータ（ＰＣ）４０と、がネットワークＮＴに接続された構成にされている。
【００３０】
この通信システム１を構成するディジタル複合機１０は、制御部１１と、ネットワークインタフェース１３と、記録部１５と、読取部１７と、表示操作部１９とを備える。
制御部１１は、各種プログラムを実行するＣＰＵ１１ａ、ＣＰＵ１１ａが実行するプログラムを記憶するＲＯＭ１１ｂ、ＣＰＵ１１ａによるプログラム実行時に作業領域として使用されるＲＡＭ１１ｃ、各種設定情報記憶用のＥＥＰＲＯＭ１１ｄ、カウンタ１１ｅ、及び、水晶振動子１１ｆを備え、ＣＰＵ１１ａがＲＯＭ１１ｂに記憶されたプログラムを実行することにより、装置全体を統括制御し、各種機能を実現する。
【００３１】
尚、水晶振動子１１ｆは、ＣＰＵ１１ａの動作に必要なクロック信号を生成するものである。この水晶振動子１１ｆから出力されるクロック信号は、ＣＰＵ１１ａ及びカウンタ１１ｅに入力される。
【００３２】
但し、ＣＰＵ１１ａに入力されるクロック信号は、ノイズ対策のために設けられたＳＳＣＧ（spread spectrum clock generator）回路１１ｇにより周波数帯域を広げられた後、ＣＰＵ１１ａに入力される。一方、カウンタ１１ｅには、ＳＳＣＧ回路１１ｇを介さずに、水晶振動子１１ｆからクロック信号が入力される。
【００３３】
即ち、カウンタ１１ｅに入力されるクロック信号の周波数スペクトルは、単一周波数で鋭いピークを示すが、ＣＰＵ１１ａに入力されるクロック信号の周波数スペクトルは、周波数方向に広がりを持ち、カウンタ１１ｅは、ＣＰＵ１１ａによってソフトウェア的に実現されるタイマよりも高精度に時間計測を行うことが可能なハードウェア構成の計時手段として機能する。
【００３４】
具体的に、カウンタ１１ｅは、水晶振動子１１ｆから入力されるクロック信号に従う一定時間間隔Ｒで、カウント値Ｃをカウントアップすることで、クロック信号に基づき、カウント値Ｃのカウント動作を行う。
【００３５】
ネットワークインタフェース１３は、ネットワークＮＴに接続されており、ネットワークＮＴを通じて外部装置（タイムサーバ２０、ＰＣ４０等）と通信可能な構成にされている。
【００３６】
また、記録部１５は、用紙に、制御部１１から入力されたイメージデータに基づく画像を形成するものであり、読取部１７は、ＡＤＦ装置から供給される原稿や、原稿載置台に載置された読取対象の原稿を光学的に読み取り、その読取画像を表すイメージデータを生成するものである。読取部１７により生成されたイメージデータは、制御部１１に入力される。
【００３７】
この他、表示操作部１９は、情報表示用の液晶モニタ及び各種操作キーを備え、ユーザインタフェースとして機能する。
制御部１１は、これら記録部１５、読取部１７、及び、表示操作部１９を用いて、ネットワークプリンタ機能、スキャナ機能、及び、コピー機能を実現する。
【００３８】
例えば、制御部１１は、ネットワークインタフェース１３を通じてＰＣ４０から受信した印刷対象のイメージデータを、記録部１５に入力することにより、ネットワークプリンタ機能を実現する。
【００３９】
また、制御部１１は、表示操作部１９を通じて読取指令が入力されると、読取部１７に原稿を読み取らせることで、原稿の読取画像を表すイメージデータを取得し、このイメージデータを、ＥＥＰＲＯＭ１１ｄが記憶する設定情報に従って、予め定められた送信先の外部装置に、ネットワークインタフェース１３を通じて送信することにより、スキャナ機能を実現する。
【００４０】
その他、制御部１１は、表示操作部１９を通じてコピー指令が入力されると、読取部１７に原稿を読み取らせることで、原稿の読取画像を表すイメージデータを取得し、このイメージデータを、記録部１５に入力することにより、記録部１５に、原稿のコピー画像を、用紙に形成させる。この動作により、制御部１１は、コピー機能を実現する。
【００４１】
ところで、複合機１０は、上記機能の他に、ネットワークインタフェース１３を通じてタイムサーバ２０から現在時刻（ＵＴＣ（協定世界時））を表す時刻データを取得し、その時刻データに基づき、現在時刻（ＵＴＣ）を計時して、提供するＵＴＣクロック機能を有する。尚、タイムサーバ２０は、時刻データの要求信号を受信すると、その送信元に、現在時刻（ＵＴＣ）を表す時刻データを、応答信号として返信するものである。
【００４２】
図２は、ＵＴＣクロック機能を実現するために制御部１１が実行する処理を、タスクとして表した機能ブロック図である。図２に示すように、制御部１１は、ソフトウェアタイマ機能を有したオペレーティングシステム（ＯＳ）により運営され、このＯＳ下で、基準時刻更新処理（図４参照）及び内部時刻出力処理（図５参照）を実行することにより、ＵＴＣクロック機能を実現する。
【００４３】
このオペレーティングシステム（ＯＳ）により実現されるソフトウェアタイマ機能は、要求元からタイマ要求があると、要求された時間の経過後に、要求元を呼び出す動作を行う。このソフトウェアタイマ機能は、カウンタ１１ｅのカウント値Ｃの参照時刻を決定す
るために、基準時刻更新処理にて利用される。
【００４４】
また、基準時刻更新処理は、タイムサーバ２０からネットワークインタフェース１３を通じて時刻データを取得すると共に、ＲＡＭ１１ｃが記憶保持する基準時刻Ｔ０を、上記取得した時刻データが示す現在時刻Ｔｓに更新し、更には、基準時刻Ｔ０を更新する度に、カウンタ１１ｅのカウント値Ｃをゼロにリセットすることにより、基準時刻Ｔ０の更新時点からの経過時間を、カウンタ１１ｅに計測させるものである。
【００４５】
この基準時刻更新処理では、タイムサーバ２０から時刻データを取得した時点だけでなく、図３に示すように、カウンタ１１ｅの最大計測時間ＭａｘＣ・Ｒより短い時間間隔ＭａｘＴが経過する毎に、ＲＡＭ１１ｃが記憶保持する基準時刻Ｔ０を、当該基準時刻Ｔ０とカウンタ１１ｅのカウント値Ｃとから特定される現在時刻に更新し、カウンタ１１ｅのカウント値Ｃをゼロにリセットする。
【００４６】
カウンタ１１ｅは、一定時間間隔Ｒで、ゼロからＭａｘＣまでカウントアップすることにより、リセット時からの経過時間を計測するが、フリーランカウンタではないので、リセット後、時間（ＭａｘＣ・Ｒ）で最大値に到達し、最大値に到達した時点で、図３一点鎖線で示すように、カウント動作を停止する。図３は、基準時刻更新処理によりリセットされるカウンタ１１ｅの動作態様と、基準時刻Ｔ０の更新態様を表したグラフである。
【００４７】
従って、基準時刻更新処理では、リセット後、図３に示すように、時間（ＭａｘＣ・Ｒ）よりも短い時間間隔ＭａｘＴで、カウンタ１１ｅのカウント値Ｃをゼロにリセットすることにより、カウント値Ｃのカウントアップが停止しないようにする。
【００４８】
このようにして、基準時刻更新処理では、基準時刻Ｔ０及びカウント値Ｃに基づき、内部時刻出力処理によって、現在時刻Ｔｎを算出できるようにする。尚、基準時刻更新処理及び内部時刻出力処理は、制御部１１により並列実行される。
【００４９】
一方、内部時刻出力処理は、他のタスクから時刻の問合せがあると、その時点でのカウント値ＣとＲＡＭ１１ｃに記憶されている基準時刻Ｔ０とから現在時刻Ｔｎを算出し、この情報を、問合せ元のタスクに出力するものである。
【００５０】
他のタスクとしては、ケルベロス認証を行うタスクを挙げることができる。本実施例の複合機１０は、ケルベロス認証により、ネットワークＮＴ上のＰＣ４０等とセキュリティ性の高い通信を行う構成にされており、ＵＴＣクロック機能が提供する時刻（ＵＴＣ）は、例えば、このケルベロス認証に使用される。
【００５１】
続いて、基準時刻更新処理の詳細を、図４を用いて説明する。図４は、基準時刻更新処理を表すフローチャートである。制御部１１は、当該複合機１０の開始直後から、図４に示す基準時刻更新処理を実行する。
【００５２】
基準時刻更新処理を開始すると、制御部１１は、まず、パラメータの初期化を行う（Ｓ１１０）。具体的には、基準時刻Ｔ０の更新間隔ＭａｘＴを、最大計測時間（ＭａｘＣ・Ｒ）よりも時間αだけ短い値に初期化する（ＭａｘＴ←ＭａｘＣ・Ｒ−α）。更に、タイムサーバ２０から時刻データを取得するまでの残り時間を表すパラメータである時間ＮＸＴを、予め定められた時間ＩＮＴに初期化する（ＮＸＴ←ＩＮＴ）。
【００５３】
尚、時間ＩＮＴは、タイムサーバ２０から時刻データを取得する時間間隔を表すパラメータである。時間ＩＮＴの設定値は、ＥＥＰＲＯＭ１１ｄに予め記憶されている。また、時間αは、ソフトウェアタイマの誤差を考慮して、設計者により、予め定められるもので
ある。詳細は後述するが、時間αは、ソフトウェアタイマで誤差が発生しても、カウンタ１１ｅの最大計測時間が経過する前に、基準時刻Ｔ０を更新可能な値に設定される。
【００５４】
このようにしてＳ１１０での処理を終えると、制御部１１は、ネットワークインタフェース１３を通じて、タイムサーバ２０から時刻データを取得する（Ｓ１２０）。具体的には、制御部１１は、ＥＥＰＲＯＭ１１ｄに記憶されたアドレスに従って、当該アドレスに対応するタイムサーバ２０に、時刻データの要求信号を、ネットワークインタフェース１３を通じて送信する。そして、このタイムサーバ２０から、応答信号として送信されてくる時刻データを、ネットワークインタフェース１３を通じて受信する。
【００５５】
また、時刻データの受信後には、ＲＡＭ１１ｃが記憶する基準時刻Ｔ０を、受信した時刻データが示す現在時刻Ｔｓに更新すると共に（Ｓ１３０）、カウンタ１１ｅをリセットし、カウンタ１１ｅに値ゼロからカウント値Ｃの更新動作を実行させる（Ｓ１４０）。その後、Ｓ１５０に移行する。
【００５６】
Ｓ１５０に移行すると、制御部１１は、カウンタ１１ｅのカウント値Ｃを参照し、参照時点のカウント値Ｃと、カウンタ１１ｅでのカウントアップ周期である上記時間間隔Ｒとに基づき、基準時刻Ｔ０の更新時点からの経過時間ΔＴを算出する。
【００５７】
ΔＴ←Ｃ・Ｒ
そして、経過時間ΔＴの算出後には、経過時間ΔＴが時間ＮＸＴ以上であるか否かを判断する（Ｓ１６０）。これによって、前回時刻データ取得時点から時間ＩＮＴが経過したか否かを判断する。
【００５８】
ここで、経過時間ΔＴが時間ＮＸＴ未満であると判断すると（Ｓ１６０でＮｏ）、制御部１１は、Ｓ１７０に移行し、経過時間ΔＴが時間ＭａｘＴ以上であるか否かを判断する。これによって、基準時刻Ｔ０の更新時点から時間ＭａｘＴが経過したか否かを判断する。
【００５９】
そして、経過時間ΔＴが時間ＭａｘＴ未満であると判断すると（Ｓ１７０でＮｏ）、Ｓ２５０に移行する。Ｓ２５０において、制御部１１は、カウンタ１１ｅのカウント値Ｃを参照することにより、次回時刻データ取得時点までの残り時間[ＮＸＴ−Ｃ・Ｒ]を算出すると共に、次回基準時刻更新時点までの残り時間[ＭａｘＴ−Ｃ・Ｒ]を算出する。そして、算出した時間[ＮＸＴ−Ｃ・Ｒ]、及び、時間[ＭａｘＴ−Ｃ・Ｒ]、及び、予め定められた最大待機時間βの内、最も短い時間を、待機時間ＷＴに決定し、ＯＳのソフトウェアタイマを利用して、上記決定した待機時間ＷＴ分、待機する。
【００６０】
具体的に、基準時刻更新処理タスクは、決定した待機時間ＷＴ分の時間経過後に、当該基準時刻更新処理を呼び出すように、ソフトウェアタイマ（ＯＳ）に対してタイマ要求し、ソフトウェアタイマ（ＯＳ）から、このタイマ要求に対応した呼び出しを受けるまで待機する。
【００６１】
そして、呼び出しを受けると、Ｓ１５０に移行して、新たに、カウンタ１１ｅのカウント値Ｃを参照し、参照時点のカウント値Ｃと、カウントアップ周期Ｒと、に基づき、基準時刻Ｔ０の更新時点からの経過時間ΔＴを算出する。その後、後続処理を実行する。
【００６２】
尚、最大待機時間βは、ソフトウェアタイマの精度を考慮して、上述の時間αと共に定められる。例えば、ソフトウェアタイマに対して１時間後に呼び出すようにタイマ要求したとする。このときに、要求した時間に対して、ソフトウェアタイマ（ＯＳ）からの呼び出しイベントが、最大でも１分より充分低い誤差で発生する場合には、時間βを１時間に
設定し、時間αを１分に設定する。
【００６３】
また、時間βは、時間ＩＮＴ及び時間ＭａｘＴより十分小さい値に設定される。例えば、時間ＩＮＴが２４時間程度で、カウンタ１１ｅの最大計測時間（ＭａｘＣ・Ｒ）が８時間程度である場合には、時間βとして、１時間程度に設定されればよい。
【００６４】
さて、このような処理を経て、基準時刻Ｔ０の更新時点から時間ＭａｘＴが経過すると、Ｓ１５０では、経過時間ΔＴとして時間ＭａｘＴ以上の値が算出されることになり、制御部１１は、Ｓ１７０で、経過時間ΔＴが時間ＭａｘＴ以上であると判断して（Ｓ１７０でＹｅｓ）、Ｓ１８０に移行することになる。
【００６５】
Ｓ１８０に移行すると、制御部１１は、カウンタ１１ｅをリセットして、カウンタ１１ｅに値ゼロからカウント値Ｃの更新動作を実行させると共に、ＲＡＭ１１ｃが記憶する基準時刻Ｔ０を、現在値に経過時間ΔＴを加算した値に更新する（Ｓ１９０）。
【００６６】
Ｔ０←Ｔ０＋ΔＴ
これによって、制御部１１は、基準時刻Ｔ０を、カウンタリセット時の時刻（ＵＴＣ）に調整する。更には、タイムサーバ２０から時刻データを取得するまでの残り時間ＮＸＴを、ΔＴ減算した値に更新する（Ｓ２００）。
【００６７】
ＮＸＴ←ＮＸＴ−ΔＴ
尚、このように時間ＮＸＴを更新するのは、今後算出される経過時間ΔＴの基点がＳ１９０の処理により切り替わるためである。
【００６８】
Ｓ２００での処理を終えると、制御部１１は、Ｓ２５０に移行して、上述した手法で時間ＷＴ、待機し、その後、Ｓ１５０に移行する。
また、前回時刻データ取得時点から時間ＩＮＴが経過すると、Ｓ１５０では、経過時間ΔＴとして時間ＮＸＴ以上の値が算出される。従って、制御部１１は、Ｓ１６０で、経過時間ΔＴが時間ＮＸＴ以上であると判断して（Ｓ１６０でＹｅｓ）、Ｓ２１０に移行する。
【００６９】
Ｓ２１０に移行すると、制御部１１は、Ｓ１２０の処理と同様に、タイムサーバ２０から時刻データを取得する。そして、時刻データの受信後には、ＲＡＭ１１ｃが記憶する基準時刻Ｔ０を、受信した時刻データが示す現在時刻Ｔｓに更新すると共に（Ｓ２２０）、カウンタ１１ｅをリセットし、カウンタ１１ｅに値ゼロからカウント値Ｃの更新動作を実行させる（Ｓ２３０）。その後、Ｓ２４０に移行して、時間ＮＸＴを、時間ＩＮＴに初期化する。その後、Ｓ２５０に移行する。
【００７０】
このような手順を実行することにより、制御部１１は、次回の時刻データ取得時点までの期間、基準時刻Ｔ０とカウント値Ｃとから、現在時刻Ｔｎを求められるようにする。
続いて、上述した内部時刻出力処理の詳細を、図５を用いて説明する。図５は、内部時刻出力処理を表すフローチャートである。制御部１１は、複合機１０の開始直後から、図５に示す内部時刻出力処理を繰返し実行する。
【００７１】
内部時刻出力処理を開始すると、制御部１１は、時刻の問合せがあるまで待機し（Ｓ３１０）、問合せがあると（Ｓ３１０でＹｅｓ）、カウンタ１１ｅのカウント値Ｃを参照し、その参照時点のカウント値Ｃに基づき、基準時刻Ｔ０の更新時点からの経過時間ΔＴを、算出する（Ｓ３２０）。
【００７２】
ΔＴ←Ｃ・Ｒ
そして、ＲＡＭ１１ｃが記憶する基準時刻Ｔ０に、算出した経過時間ΔＴを加算することにより、現在時刻Ｔｎ（ＵＴＣ）を算出する（Ｓ３３０）。そして、算出した現在時刻Ｔｎを、問合せ元のタスクに出力する（Ｓ３４０）。その後、当該内部時刻出力処理を一旦終了し、再びＳ３１０に移行して、次の問合せがあるまで待機する（Ｓ３１０）。
【００７３】
以上、カウンタ１１ｅとして、リセット可能なカウンタであって、カウント値を始点（最小値）から終点（最大値）まで更新すると、カウント動作を停止するカウンタを備える制御部１１で実現されるＵＴＣクロック機能について説明した。しかしながら、カウンタ１１ｅが、リセット不可能なフリーランカウンタである場合には、次のように、複合機１０を構成するのが好ましい。
【００７４】
［変形例］
続いて、変形例の複合機１０について、図６〜図９を用いて説明する。但し、変形例の複合機１０は、カウンタ１１ｅがリセット不可能なフリーランカウンタであること、並びに、制御部１１によって実行される基準時刻更新処理及び内部時刻出力処理の一部が上記実施例と異なることを除けば、基本的に、上記実施例の複合機１０と同一構成であるので、以下では、同一構成に係る説明を、適宜省略する。
【００７５】
図６は、ＵＴＣクロック機能を実現するために制御部１１が実行する処理を、タスクにより表した機能ブロック図である。図６に示すように、制御部１１は、ソフトウェアタイマ機能を有したオペレーティングシステム（ＯＳ）により運営され、このＯＳ下で、図８に示す基準時刻更新処理、及び、図９に示す内部時刻出力処理を実行することにより、ＵＴＣクロック機能を実現する。
【００７６】
尚、図７は、変形例のカウンタ１１ｅの動作態様を表したグラフである。変形例のカウンタ１１ｅは、図７に示すように、カウント値が一回りすると、カウント値を初期値に戻してカウント動作を継続するフリーランカウンタである。
【００７７】
従って、基準時刻更新処理では、カウンタ１１ｅをリセットする代わりに、基準時刻Ｔ０を更新する時点での、カウンタ１１ｅのカウント値Ｃを、基準カウント値Ｃ０として、ＲＡＭ１１ｃに記憶保持し、この基準カウント値Ｃ０と、カウント値Ｃとの差分（Ｃ−Ｃ０）により、基準時刻Ｔ０の更新時点からの経過時間ΔＴを算出する。
【００７８】
但し、カウント値Ｃの差分算出は、符号無し数値表現を用いたビット演算にて行う。即ち、Ｃ＝１０でありＣ０＝８であるときには、通常の四則演算と同様に、Ｃ−Ｃ０＝２となるが、Ｃ＝８でありＣ０＝１０であるときには、Ｃ−Ｃ０＝（ＭａｘＣ＋８）−１０＝ＭａｘＣ−２となる。
【００７９】
続いて、変形例の基準時刻更新処理の詳細を、図８を用いて説明する。図８は、変形例の基準時刻更新処理を表すフローチャートである。尚、図８においては、図４に示す基準時刻更新処理と同様の処理を実行するステップに対して、同一ステップ番号を付す。
【００８０】
変形例の基準時刻更新処理を開始すると、制御部１１は、まず、Ｓ１１０にて、上記実施例と同様に、パラメータの初期化を行う（ＭａｘＴ←ＭａｘＣ・Ｒ−α，ＮＸＴ←ＩＮＴ）。尚、時間α，βについては、上記実施例と同様である。
【００８１】
Ｓ１１０での処理を終えると、制御部１１は、ネットワークインタフェース１３を通じて、タイムサーバ２０から時刻データを取得し（Ｓ１２０）、時刻データの受信後には、
ＲＡＭ１１ｃが記憶する基準時刻Ｔ０を、受信した時刻データが示す現在時刻Ｔｓに更新する（Ｓ１３０）。
【００８２】
更に、制御部１１は、カウンタ１１ｅをリセットする代わりに、Ｓ１４１にて、カウンタ１１ｅのカウント値Ｃを参照し、ＲＡＭ１１ｃが記憶する基準カウント値Ｃ０を、参照時点のカウント値Ｃに更新する（Ｃ０←Ｃ）。その後、Ｓ１５１に移行する。
【００８３】
Ｓ１５１に移行すると、制御部１１は、カウンタ１１ｅのカウント値Ｃを参照し、ＲＡＭ１１ｃが記憶する計算用カウント値ＣＦを、参照時点のカウント値Ｃに更新する（ＣＦ←Ｃ）。
【００８４】
更に、制御部１１は、この計算用カウント値ＣＦ、及び、基準カウント値Ｃ０、及び、カウントアップ周期Ｒに基づいて、基準時刻Ｔ０の更新時点からの経過時間ΔＴを算出する（Ｓ１５３）。尚、差分（ＣＦ−Ｃ０）の算出については、上述のビット演算で行うものとする。
【００８５】
ΔＴ←（ＣＦ−Ｃ０）・Ｒ
経過時間ΔＴの算出後、制御部１１は、Ｓ１６０に移行し、経過時間ΔＴが時間ＮＸＴ以上であるか否かを判断することにより、前回時刻データ取得時点から時間ＩＮＴが経過したか否かを判断する。
【００８６】
ここで、経過時間ΔＴが時間ＮＸＴ未満であると判断すると（Ｓ１６０でＮｏ）、制御部１１は、Ｓ１７０に移行し、経過時間ΔＴが時間ＭａｘＴ以上であるか否かを判断する。即ち、基準時刻Ｔ０の更新時点から時間ＭａｘＴが経過したか否かを判断する。
【００８７】
そして、経過時間ΔＴが時間ＭａｘＴ未満であると判断すると（Ｓ１７０でＮｏ）、制御部１１は、Ｓ２５１に移行し、カウンタ１１ｅのカウント値Ｃを参照して、次回時刻データ取得時点までの残り時間[ＮＸＴ−（Ｃ−Ｃ０）・Ｒ]を算出すると共に、次回基準時刻更新時点までの残り時間[ＭａｘＴ−（Ｃ−Ｃ０）・Ｒ]を算出する。
【００８８】
更に、制御部１１は、上記算出した時間[ＮＸＴ−（Ｃ−Ｃ０）・Ｒ]、及び、時間[ＭａｘＴ−（Ｃ−Ｃ０）・Ｒ]、及び、最大待機時間βの内、最も短い時間を、待機時間ＷＴに決定し、Ｓ２５０での処理と同様に、ＯＳのソフトウェアタイマを利用して、上記決定した待機時間ＷＴ分、待機する。
【００８９】
そして、待機時間ＷＴが終了し、ソフトウェアタイマからの呼び出しを受けると、制御部１１は、Ｓ１５１に移行し、新たに、カウンタ１１ｅのカウント値Ｃを参照して、ＲＡＭ１１ｃが記憶する計算用カウント値ＣＦを、参照時点のカウント値Ｃに更新し（ＣＦ←Ｃ）、この計算用カウント値ＣＦを用いて、経過時間ΔＴを算出する（Ｓ１５３）。その後、後続処理を実行する。
【００９０】
尚、基準時刻Ｔ０の更新時点から時間ＭａｘＴが経過すると、Ｓ１５３では、経過時間ΔＴとして時間ＭａｘＴ以上の値が算出される。従って、制御部１１は、Ｓ１７０で、経過時間ΔＴが時間ＭａｘＴ以上であると判断して（Ｓ１７０でＹｅｓ）、Ｓ１８１に移行する。
【００９１】
Ｓ１８１に移行すると、制御部１１は、ＲＡＭ１１ｃが記憶する基準カウント値Ｃ０を、ＲＡＭ１１ｃが記憶する計算用カウント値ＣＦに更新すると共に（Ｃ０←ＣＦ）、ＲＡＭ１１ｃが記憶する基準時刻Ｔ０を、現在値に経過時間ΔＴを加算した値に更新する（Ｓ１９０）。
【００９２】
Ｔ０←Ｔ０＋ΔＴ
更に、制御部１１は、タイムサーバ２０から時刻データを取得するまでの残り時間ＮＸＴを、ΔＴ減算した値に更新する（Ｓ２００）。
【００９３】
ＮＸＴ←ＮＸＴ−ΔＴ
このようにして、Ｓ２００での処理を終えると、制御部１１は、Ｓ２５１に移行して、上述した手法で時間ＷＴ、待機した後、Ｓ１５１以降の処理を実行する。
【００９４】
そして、前回時刻データ取得時点から時間ＩＮＴが経過すると、Ｓ１５３で経過時間ΔＴとして時間ＮＸＴ以上の値が算出されるので、制御部１１は、Ｓ１６０でＹｅｓと判断して、Ｓ２１０に移行する。
【００９５】
Ｓ２１０に移行すると、制御部１１は、Ｓ１２０の処理と同様に、タイムサーバ２０から時刻データを受信する。そして、時刻データの受信後には、制御部１１は、ＲＡＭ１１ｃが記憶する基準時刻Ｔ０を、受信した時刻データが示す現在時刻Ｔｓに更新すると共に（Ｓ２２０）、カウンタ１１ｅのカウント値Ｃを参照して、ＲＡＭ１１ｃが記憶する基準カウント値Ｃ０を、参照時点のカウント値Ｃに更新する（Ｓ２３１）。この後、制御部１１は、Ｓ２４０に移行して、時間ＮＸＴを、時間ＩＮＴに初期化し、Ｓ２５１に移行する。
【００９６】
このような手順を実行することにより、制御部１１は、次回の時刻データ取得時点までの期間、基準時刻Ｔ０と基準カウント値Ｃ０とカウント値Ｃとから、現在時刻Ｔｎを求められるようにする。
【００９７】
続いて、変形例の内部時刻出力処理の詳細を、図９を用いて説明する。図９は、制御部１１が繰返し実行する変形例の内部時刻出力処理を表すフローチャートである。
内部時刻出力処理を開始すると、制御部１１は、時刻の問合せがあるまで待機し（Ｓ３１０）、問合せがあると（Ｓ３１０でＹｅｓ）、カウンタ１１ｅのカウント値Ｃを参照し、その参照時点のカウント値Ｃと、ＲＡＭ１１ｃが記憶する基準カウント値Ｃ０との差分（Ｃ−Ｃ０）に基づいて、基準時刻Ｔ０の更新時点からの経過時間ΔＴを、算出する（Ｓ３２１）。
【００９８】
ΔＴ←（Ｃ−Ｃ０）・Ｒ
そして、制御部１１は、ＲＡＭ１１ｃが記憶する基準時刻Ｔ０に、算出した経過時間ΔＴを加算することにより、現在時刻Ｔｎ（ＵＴＣ）を算出する（Ｓ３３０）。そして、制御部１１は、算出した現在時刻Ｔｎを、問合せ元のタスクに出力する（Ｓ３４０）。その後、当該内部時刻出力処理を終了する。
［効果］
以上、変形例を含む本発明の実施例について説明したが、上記実施例によれば、制御部１１（マイクロコンピュータ）に内蔵されたカウンタ１１ｅを用いて、現在時刻Ｔｎを求めるので、ＲＴＣ回路を用いずとも精度よく、現在時刻Ｔｎを求めることができ、結果として、高精度な時刻情報を時刻の問合せ元に提供することができる。
【００９９】
また、ＲＴＣ回路ではなく、カウンタ１１ｅを利用しているため、回路規模を小さくすることができ、簡易な構成で安価に、高精度な時計機能を有する複合機１０を製造することができる。
【０１００】
また、上記実施例の複合機１０によれば、カウンタ１１ｅの最大計測時間よりも長い時
間間隔で、時刻データを取得しても、現在時刻Ｔｎを算出することができるので、カウンタ１１ｅの最大計測時間が短いことが原因で、タイムサーバ２０に負荷がかかることもない。よって、上記実施例によれば、タイムサーバ２０に対しても優しい複合機１０を提供することができる。
［対応関係］
尚、本発明の電子機器は、上記実施例の複合機１０に相当し、基準時刻保持手段及び基準カウント値保持手段は、ＲＡＭ１１ｃに相当し、カウント回路は、カウンタ１１ｅに相当し、通信インタフェースは、ネットワークインタフェース１３に相当する。
【０１０１】
また、本発明の時刻情報取得手段の処理は、上記実施例におけるＳ１２０，Ｓ１６０，Ｓ２００，Ｓ２１０，Ｓ２４０，Ｓ２５０（又はＳ２５１）の処理に相当し、更新手段の処理は、Ｓ１３０，Ｓ２２０の処理に相当し、経過時間計測手段の処理は、Ｓ１４０，Ｓ２３０，Ｓ３２０の処理、又は、Ｓ１４１，Ｓ２３１，Ｓ３２１の処理に相当する。
【０１０２】
その他、本発明の現在時刻算出手段の処理は、上記実施例におけるＳ３３０の処理に相当し、応答手段の処理は、内部時刻出力処理に相当し、補助更新手段の処理は、Ｓ１５０，Ｓ１７０，Ｓ１８０，Ｓ１９０，Ｓ２５０の処理、又は、Ｓ１５１，Ｓ１５３，Ｓ１７０，Ｓ１８１，Ｓ１９０，Ｓ２５１の処理に相当する。
［その他］
また、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
【０１０３】
例えば、上記実施例の複合機１０は、表示操作部１９に設けられた時刻表示ボタンを、ユーザが押下操作したときに、内部時刻出力処理タスクに、時刻を問合せ、その問合せの結果、内部時刻出力処理タスクから得られた時刻（ＵＴＣ）を、ローカル時刻に変換して、このローカル時間を、液晶モニタを通じて表示出力する構成にされてもよい。
【図面の簡単な説明】
【０１０４】
【図１】通信システム１の構成を表すブロック図である。
【図２】ＣＰＵ１１ａが実行する各処理の関係を表した機能ブロック図である。
【図３】カウンタ１１ｅの動作及び基準時刻Ｔ０の更新態様を表すグラフである。
【図４】制御部１１が実行する基準時刻更新処理を表すフローチャートである。
【図５】制御部１１が実行する内部時刻出力処理を表すフローチャートである。
【図６】変形例におけるＣＰＵ１１ａが実行する各処理の関係を表した機能ブロック図である。
【図７】変形例におけるカウンタ１１ｅの動作及び基準時刻Ｔ０の更新態様を表すグラフである。
【図８】変形例の基準時刻更新処理を表すフローチャートである。
【図９】変形例の内部時刻出力処理を表すフローチャートである。
【符号の説明】
【０１０５】
１…通信システム、１０…複合機、１１…制御部、１１ａ…ＣＰＵ、１１ｂ…ＲＯＭ、１１ｃ…ＲＡＭ、１１ｄ…ＥＥＰＲＯＭ、１１ｅ…カウンタ、１１ｆ…水晶振動子、１３…ネットワークインタフェース、１５…記録部、１７…読取部、１９…表示操作部、２０…タイムサーバ、４０…ＰＣ
【図１】
2010085227.tif 000003
【図２】
2010085227.tif 000004
【図３】
2010085227.tif 000005
【図４】
2010085227.tif 000006
【図５】
2010085227.tif 000007
【図６】
2010085227.tif 000008
【図７】
2010085227.tif 000009
【図８】
2010085227.tif 000010
【図９】
2010085227.tif 000011