説明

電子機器

【課題】電子機器において、回路規模を抑えて簡易な構成で、現在時刻を精度よく求めることができるようにする。
【解決手段】制御部は、ハードウェア構成のカウンタ11eを用いて、基準時刻更新処理及び内部時刻出力処理を実行することで、現在時刻を精度よく求める。基準時刻更新処理では、タイムサーバ20から時刻データを取得すると共に、RAM11cが記憶保持する基準時刻を、時刻データが示す現在時刻に更新し、更には、カウンタをリセットすることにより、基準時刻更新時点からの経過時間を、カウンタに計測させる。また、時刻データの取得時だけでなく、カウンタの最大計測時間より短い時間間隔で、基準時刻を、当該基準時刻とカウンタのカウント値とから特定される現在時刻に更新すると共に、カウンタをリセットする。このようにして、制御部は、基準時刻及びカウント値に基づき、内部時刻出力処理によって、現在時刻を算出できるようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器に関する。
【背景技術】
【0002】
従来、電子機器としては、RTC(リアルタイムクロック)回路を備えた電子機器が知られている。RTC回路は、電子機器の電源が切られている間もバッテリからの電源供給を受けて動作し、現在時刻を計時するものである。
【0003】
この他、電子機器としては、通信により外部装置から時刻情報を取得し、取得した時刻情報を用いて現在時刻を特定し、この時点からの経過時間をソフトウェアにより計時することで、後の現在時刻を求めるものが知られている(例えば、特許文献1参照)。
【0004】
ソフトウェアクロックは、一般的に、オペレーティングシステム(OS)の機能として実現され、CPUに入力されるクロック信号に基づいてCPUがカウント動作を行うことにより実現される。
【0005】
また、従来装置としては、ハードウェアクロック(RTC回路)や、ソフトウェアクロックの時刻進度を、外部装置から得られた正しい時刻情報に基づいて補正するものが知られている(例えば、特許文献2,3参照)。
【特許文献1】特開2004−188793号公報
【特許文献2】特開2003−207586号公報
【特許文献3】特開2004−264992号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、近年では、インターネットが普及し、ネットワークを通じて外部装置としてのタイムサーバから時刻情報を取得可能な環境が整いつつある。従って、電子機器がネットワークに接続されるものである場合には、RTC回路を電子機器内に設けなくとも、上述したように、タイムサーバから取得した時刻情報を用いて現在時刻を特定し、この特定時点からの経過時間を計測することで、後の現在時刻を求めることができる。
【0007】
しかしながら、ソフトウェアクロックは、CPUの処理負荷によって時刻進度が変化するため、計時精度が、ハードウェアクロック(RTC回路)と比較して悪い。また、CPUには、水晶振動子からの出力信号が直接入力されず、ノイズ対策のために、SSCGと呼ばれる回路を介して、周波数帯域の広げられた信号が入力される場合もあるため、このような原因でも、水晶振動子からの出力信号を受けて計時動作するRTC回路と比較して、計時精度が悪い。
【0008】
しかしながら、RTC回路を電子機器に搭載すれば、回路規模が大きくなると共に、電子機器の製造コストが高くなるといった問題がある。
本発明は、こうした問題に鑑みなされたものであり、現在時刻を精度よく求めることが可能な電子機器を、回路規模を抑えて簡易な構成で、安価に製造可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
かかる目的を達成するためになされた本発明の電子機器は、RTC回路を利用せずに、
外部装置から取得した時刻情報と、ハードウェアで構成されるカウント回路とを用いて、現在時刻を求める。
【0010】
即ち、本発明の電子機器は、現在時刻を表す時刻情報を、外部装置から取得する時刻情報取得手段と、基準時刻を記憶保持する基準時刻保持手段と、時刻情報取得手段が時刻情報を取得する度に、基準時刻保持手段が記憶保持する基準時刻を、時刻情報取得手段が取得した最新の時刻情報が示す時刻に更新する更新手段と、ハードウェアで構成され、一定周期でカウント値を更新するカウント回路と、カウント回路を用いて、基準時刻が更新された時点からの経過時間を計測する経過時間計測手段と、基準時刻保持手段が記憶保持する基準時刻に、経過時間計測手段により計測された経過時間を加算して、現在時刻を算出する現在時刻算出手段と、現在時刻の出力要求があると、現在時刻算出手段に現在時刻を算出させて、現在時刻算出手段により算出された現在時刻を、出力する応答手段と、を備える。
【0011】
このように構成された電子機器によれば、ソフトウェア・カウンタではなく、ハードウェアで構成されるカウント回路を用いて現在時刻を求めるので、RTC回路を用いずとも精度よく、現在時刻を求めることができ、結果として、応答手段は、高精度な時刻情報を要求元に提供することができる。
【0012】
尚、RTC回路とカウント回路とは、ハードウェアで構成される計時手段である点では共通するが、RTC回路は、バッテリで動作し、レギュレータ回路等の周りの回路が必要であることから、回路規模が大きいのに対し、カウント回路は、回路規模が小さいという点で異なる。
【0013】
従って、本発明によれば、現在時刻を精度よく求めることが可能な電子機器を、回路規模を抑えて、簡易な構成で安価に製造することができる。
また、上述した手段の内、基準時刻保持手段を除く各手段は、ソフトウェア的に実現できるが、マイクロコンピュータには、上記カウント回路が内蔵されているものも多い。
【0014】
従って、カウント回路を備えるマイクロコンピュータを用いて、上述した各手段を、プログラムによりコンピュータ(CPU)に実現させれば、一層回路規模を抑えて、高精度に現在時刻を求めることができる。
【0015】
ところで、カウント回路としては、次の種類のカウント回路が知られている。即ち、カウント値が最大値に到達したらカウント値をゼロに戻して、再度、最大値に向けてカウント値を更新していくような、カウント値が一回りすると、カウント値を初期値に戻してカウント動作を継続するタイプのカウント回路(所謂フリーランカウンタ)が知られている。
【0016】
従って、この種のカウント回路(フリーランカウンタ)を利用する場合、経過時間計測手段は、具体的に、次のように構成されるとよい。
即ち、経過時間計測手段は、基準カウント値を記憶保持する基準カウント値保持手段を備え、更新手段により基準時刻が更新される度に、カウント回路のカウント値を参照して、基準カウント値保持手段が記憶保持する基準カウント値を、参照時点でのカウント回路のカウント値に更新する構成にされるとよい。この経過時間計測手段では、カウント回路のカウント値を参照して、基準カウント値保持手段が記憶保持する基準カウント値と、カウント回路のカウント値との差分を算出することにより、基準時刻が更新された時点からの経過時間を計測することになる。
【0017】
また、カウント回路は、上述したように、短時間の計測動作しか行うことができないため、単に、カウント回路を用いて、基準時刻が更新された時点からの経過時間を計測するようにしただけでは、カウント回路の最大計測時間が経過するまでの間に、外部装置から再度時刻情報を取得しないと、それ以降、現在時刻を求めることができなくなってしまう。
【0018】
勿論、カウント回路の最大計測時間が経過するまでの間に、外部装置から再度時刻情報を取得すれば、現在時刻を求めることは可能であるが、このような方法では、外部装置、特にタイムサーバへの負荷が高くなり、好ましくない。
【0019】
そこで、電子機器は、次のように構成されるのが一層好ましい。即ち、電子機器には、カウント回路のカウント値が一回りする時間であるカウント回路の最大計測時間より短い時間間隔で、カウント回路のカウント値を参照して、基準時刻保持手段が記憶保持する基準時刻を、基準時刻の現在値と参照時点のカウント値とから特定される現在時刻に、更新すると共に、基準カウント値保持手段が記憶保持する基準カウント値を、参照時点でのカウント回路のカウント値に更新する補助更新手段を設けるとよい。
【0020】
この補助更新手段を備える電子機器によれば、カウント回路のカウント値が一回りする前に、基準時刻及び基準カウント値を更新し、経過時間計測手段に計測させる経過時間の始点を更新するので、時刻情報取得手段が取得した時刻情報に基づき更新手段が基準時刻を更新した時点から最大計測時間を経過した以降も、現在時刻を正確に求めることができる。
【0021】
また、リセット可能なカウント回路を利用して、基準時刻が更新された時点からの経過時間を計測する場合、経過時間計測手段は、次のように構成することができる。
即ち、経過時間計測手段は、更新手段により基準時刻が更新される度に、カウント回路のカウント値をリセットする構成にすることができる。この経過時間計測手段では、カウント回路のカウント値を参照することによって、基準時刻が更新された時点からの経過時間を計測することになる。
【0022】
また、カウント回路の最大計測時間より長い時間間隔で、外部装置から時刻情報を取得する場合には、この電子機器に、次の補助更新手段を設けるとよい。
即ち、当該電子機器には、カウント回路のカウント値が始点から終点まで一通り更新されるまでの時間であるカウント回路の最大計測時間より短い時間間隔で、カウント回路のカウント値を参照して、基準時刻保持手段が記憶保持する基準時刻を、基準時刻の現在値と参照時点のカウント値とから特定される現在時刻に、更新すると共に、カウント回路のカウント値をリセットする補助更新手段を設けるとよい。
【0023】
尚、リセット可能なカウント回路としては、リセット可能なフリーランカウンタの他に、カウント値を始点(最小値または最大値)から終点(最大値または最小値)まで更新すると、カウント動作を停止するカウント回路を挙げることができる。
【0024】
即ち、上記「カウント回路のカウント値が始点から終点まで一通り更新されるまでの時間」は、カウント回路がフリーランカウンタである場合、「カウント回路のカウント値が一回りするまでの時間」に等しく、カウント回路が上記カウント動作を停止するタイプのカウント回路である場合には、「始点(最小値または最大値)から終点(最大値または最小値)まで、カウント値が更新される時間」に等しい。
【0025】
この補助更新手段を備える電子機器によれば、最大計測時間の経過前に、基準時刻を更新してカウント値をリセットするので、時刻情報取得手段が取得した時刻情報に基づき更新手段が基準時刻を更新した時点から、最大計測時間を経過した以降も、現在時刻を正確に求めることができる。
【0026】
また、上述の電子機器において、時刻情報取得手段は、最大計測時間よりも長い時間間隔で周期的に、時刻情報を外部装置から取得する構成にされるのが好ましい。このように電子機器を構成すれば、外部装置にかかる負荷を抑えることができる。
【0027】
また、本発明は、上述したように、現在時刻を表す時刻情報を提供するタイムサーバと通信可能な通信インタフェースを通じて、タイムサーバから時刻情報を取得する電子機器に適用されると好ましい。このような電子機器に上述の発明を適用すれば、外部装置の負荷低減に関する効果が一層発揮される。
【0028】
尚、本発明は、電子機器、電子機器の制御方法、電子機器を制御するコンピュータプログラム、このコンピュータプログラムを記録する記録媒体等の種々の態様で実現することもできる。
【発明を実施するための最良の形態】
【0029】
以下、本発明の実施例について、図面と共に説明する。
図1は、本実施例の通信システム1の構成を表すブロック図である。図1に示すように、本実施例の通信システム1は、ディジタル複合機10と、タイムサーバ20と、パーソナルコンピュータ(PC)40と、がネットワークNTに接続された構成にされている。
【0030】
この通信システム1を構成するディジタル複合機10は、制御部11と、ネットワークインタフェース13と、記録部15と、読取部17と、表示操作部19とを備える。
制御部11は、各種プログラムを実行するCPU11a、CPU11aが実行するプログラムを記憶するROM11b、CPU11aによるプログラム実行時に作業領域として使用されるRAM11c、各種設定情報記憶用のEEPROM11d、カウンタ11e、及び、水晶振動子11fを備え、CPU11aがROM11bに記憶されたプログラムを実行することにより、装置全体を統括制御し、各種機能を実現する。
【0031】
尚、水晶振動子11fは、CPU11aの動作に必要なクロック信号を生成するものである。この水晶振動子11fから出力されるクロック信号は、CPU11a及びカウンタ11eに入力される。
【0032】
但し、CPU11aに入力されるクロック信号は、ノイズ対策のために設けられたSSCG(spread spectrum clock generator)回路11gにより周波数帯域を広げられた後、CPU11aに入力される。一方、カウンタ11eには、SSCG回路11gを介さずに、水晶振動子11fからクロック信号が入力される。
【0033】
即ち、カウンタ11eに入力されるクロック信号の周波数スペクトルは、単一周波数で鋭いピークを示すが、CPU11aに入力されるクロック信号の周波数スペクトルは、周波数方向に広がりを持ち、カウンタ11eは、CPU11aによってソフトウェア的に実現されるタイマよりも高精度に時間計測を行うことが可能なハードウェア構成の計時手段として機能する。
【0034】
具体的に、カウンタ11eは、水晶振動子11fから入力されるクロック信号に従う一定時間間隔Rで、カウント値Cをカウントアップすることで、クロック信号に基づき、カウント値Cのカウント動作を行う。
【0035】
ネットワークインタフェース13は、ネットワークNTに接続されており、ネットワークNTを通じて外部装置(タイムサーバ20、PC40等)と通信可能な構成にされている。
【0036】
また、記録部15は、用紙に、制御部11から入力されたイメージデータに基づく画像を形成するものであり、読取部17は、ADF装置から供給される原稿や、原稿載置台に載置された読取対象の原稿を光学的に読み取り、その読取画像を表すイメージデータを生成するものである。読取部17により生成されたイメージデータは、制御部11に入力される。
【0037】
この他、表示操作部19は、情報表示用の液晶モニタ及び各種操作キーを備え、ユーザインタフェースとして機能する。
制御部11は、これら記録部15、読取部17、及び、表示操作部19を用いて、ネットワークプリンタ機能、スキャナ機能、及び、コピー機能を実現する。
【0038】
例えば、制御部11は、ネットワークインタフェース13を通じてPC40から受信した印刷対象のイメージデータを、記録部15に入力することにより、ネットワークプリンタ機能を実現する。
【0039】
また、制御部11は、表示操作部19を通じて読取指令が入力されると、読取部17に原稿を読み取らせることで、原稿の読取画像を表すイメージデータを取得し、このイメージデータを、EEPROM11dが記憶する設定情報に従って、予め定められた送信先の外部装置に、ネットワークインタフェース13を通じて送信することにより、スキャナ機能を実現する。
【0040】
その他、制御部11は、表示操作部19を通じてコピー指令が入力されると、読取部17に原稿を読み取らせることで、原稿の読取画像を表すイメージデータを取得し、このイメージデータを、記録部15に入力することにより、記録部15に、原稿のコピー画像を、用紙に形成させる。この動作により、制御部11は、コピー機能を実現する。
【0041】
ところで、複合機10は、上記機能の他に、ネットワークインタフェース13を通じてタイムサーバ20から現在時刻(UTC(協定世界時))を表す時刻データを取得し、その時刻データに基づき、現在時刻(UTC)を計時して、提供するUTCクロック機能を有する。尚、タイムサーバ20は、時刻データの要求信号を受信すると、その送信元に、現在時刻(UTC)を表す時刻データを、応答信号として返信するものである。
【0042】
図2は、UTCクロック機能を実現するために制御部11が実行する処理を、タスクとして表した機能ブロック図である。図2に示すように、制御部11は、ソフトウェアタイマ機能を有したオペレーティングシステム(OS)により運営され、このOS下で、基準時刻更新処理(図4参照)及び内部時刻出力処理(図5参照)を実行することにより、UTCクロック機能を実現する。
【0043】
このオペレーティングシステム(OS)により実現されるソフトウェアタイマ機能は、要求元からタイマ要求があると、要求された時間の経過後に、要求元を呼び出す動作を行う。このソフトウェアタイマ機能は、カウンタ11eのカウント値Cの参照時刻を決定す
るために、基準時刻更新処理にて利用される。
【0044】
また、基準時刻更新処理は、タイムサーバ20からネットワークインタフェース13を通じて時刻データを取得すると共に、RAM11cが記憶保持する基準時刻T0を、上記取得した時刻データが示す現在時刻Tsに更新し、更には、基準時刻T0を更新する度に、カウンタ11eのカウント値Cをゼロにリセットすることにより、基準時刻T0の更新時点からの経過時間を、カウンタ11eに計測させるものである。
【0045】
この基準時刻更新処理では、タイムサーバ20から時刻データを取得した時点だけでなく、図3に示すように、カウンタ11eの最大計測時間MaxC・Rより短い時間間隔MaxTが経過する毎に、RAM11cが記憶保持する基準時刻T0を、当該基準時刻T0とカウンタ11eのカウント値Cとから特定される現在時刻に更新し、カウンタ11eのカウント値Cをゼロにリセットする。
【0046】
カウンタ11eは、一定時間間隔Rで、ゼロからMaxCまでカウントアップすることにより、リセット時からの経過時間を計測するが、フリーランカウンタではないので、リセット後、時間(MaxC・R)で最大値に到達し、最大値に到達した時点で、図3一点鎖線で示すように、カウント動作を停止する。図3は、基準時刻更新処理によりリセットされるカウンタ11eの動作態様と、基準時刻T0の更新態様を表したグラフである。
【0047】
従って、基準時刻更新処理では、リセット後、図3に示すように、時間(MaxC・R)よりも短い時間間隔MaxTで、カウンタ11eのカウント値Cをゼロにリセットすることにより、カウント値Cのカウントアップが停止しないようにする。
【0048】
このようにして、基準時刻更新処理では、基準時刻T0及びカウント値Cに基づき、内部時刻出力処理によって、現在時刻Tnを算出できるようにする。尚、基準時刻更新処理及び内部時刻出力処理は、制御部11により並列実行される。
【0049】
一方、内部時刻出力処理は、他のタスクから時刻の問合せがあると、その時点でのカウント値CとRAM11cに記憶されている基準時刻T0とから現在時刻Tnを算出し、この情報を、問合せ元のタスクに出力するものである。
【0050】
他のタスクとしては、ケルベロス認証を行うタスクを挙げることができる。本実施例の複合機10は、ケルベロス認証により、ネットワークNT上のPC40等とセキュリティ性の高い通信を行う構成にされており、UTCクロック機能が提供する時刻(UTC)は、例えば、このケルベロス認証に使用される。
【0051】
続いて、基準時刻更新処理の詳細を、図4を用いて説明する。図4は、基準時刻更新処理を表すフローチャートである。制御部11は、当該複合機10の開始直後から、図4に示す基準時刻更新処理を実行する。
【0052】
基準時刻更新処理を開始すると、制御部11は、まず、パラメータの初期化を行う(S110)。具体的には、基準時刻T0の更新間隔MaxTを、最大計測時間(MaxC・R)よりも時間αだけ短い値に初期化する(MaxT←MaxC・R−α)。更に、タイムサーバ20から時刻データを取得するまでの残り時間を表すパラメータである時間NXTを、予め定められた時間INTに初期化する(NXT←INT)。
【0053】
尚、時間INTは、タイムサーバ20から時刻データを取得する時間間隔を表すパラメータである。時間INTの設定値は、EEPROM11dに予め記憶されている。また、時間αは、ソフトウェアタイマの誤差を考慮して、設計者により、予め定められるもので
ある。詳細は後述するが、時間αは、ソフトウェアタイマで誤差が発生しても、カウンタ11eの最大計測時間が経過する前に、基準時刻T0を更新可能な値に設定される。
【0054】
このようにしてS110での処理を終えると、制御部11は、ネットワークインタフェース13を通じて、タイムサーバ20から時刻データを取得する(S120)。具体的には、制御部11は、EEPROM11dに記憶されたアドレスに従って、当該アドレスに対応するタイムサーバ20に、時刻データの要求信号を、ネットワークインタフェース13を通じて送信する。そして、このタイムサーバ20から、応答信号として送信されてくる時刻データを、ネットワークインタフェース13を通じて受信する。
【0055】
また、時刻データの受信後には、RAM11cが記憶する基準時刻T0を、受信した時刻データが示す現在時刻Tsに更新すると共に(S130)、カウンタ11eをリセットし、カウンタ11eに値ゼロからカウント値Cの更新動作を実行させる(S140)。その後、S150に移行する。
【0056】
S150に移行すると、制御部11は、カウンタ11eのカウント値Cを参照し、参照時点のカウント値Cと、カウンタ11eでのカウントアップ周期である上記時間間隔Rとに基づき、基準時刻T0の更新時点からの経過時間ΔTを算出する。
【0057】
ΔT←C・R
そして、経過時間ΔTの算出後には、経過時間ΔTが時間NXT以上であるか否かを判断する(S160)。これによって、前回時刻データ取得時点から時間INTが経過したか否かを判断する。
【0058】
ここで、経過時間ΔTが時間NXT未満であると判断すると(S160でNo)、制御部11は、S170に移行し、経過時間ΔTが時間MaxT以上であるか否かを判断する。これによって、基準時刻T0の更新時点から時間MaxTが経過したか否かを判断する。
【0059】
そして、経過時間ΔTが時間MaxT未満であると判断すると(S170でNo)、S250に移行する。S250において、制御部11は、カウンタ11eのカウント値Cを参照することにより、次回時刻データ取得時点までの残り時間[NXT−C・R]を算出すると共に、次回基準時刻更新時点までの残り時間[MaxT−C・R]を算出する。そして、算出した時間[NXT−C・R]、及び、時間[MaxT−C・R]、及び、予め定められた最大待機時間βの内、最も短い時間を、待機時間WTに決定し、OSのソフトウェアタイマを利用して、上記決定した待機時間WT分、待機する。
【0060】
具体的に、基準時刻更新処理タスクは、決定した待機時間WT分の時間経過後に、当該基準時刻更新処理を呼び出すように、ソフトウェアタイマ(OS)に対してタイマ要求し、ソフトウェアタイマ(OS)から、このタイマ要求に対応した呼び出しを受けるまで待機する。
【0061】
そして、呼び出しを受けると、S150に移行して、新たに、カウンタ11eのカウント値Cを参照し、参照時点のカウント値Cと、カウントアップ周期Rと、に基づき、基準時刻T0の更新時点からの経過時間ΔTを算出する。その後、後続処理を実行する。
【0062】
尚、最大待機時間βは、ソフトウェアタイマの精度を考慮して、上述の時間αと共に定められる。例えば、ソフトウェアタイマに対して1時間後に呼び出すようにタイマ要求したとする。このときに、要求した時間に対して、ソフトウェアタイマ(OS)からの呼び出しイベントが、最大でも1分より充分低い誤差で発生する場合には、時間βを1時間に
設定し、時間αを1分に設定する。
【0063】
また、時間βは、時間INT及び時間MaxTより十分小さい値に設定される。例えば、時間INTが24時間程度で、カウンタ11eの最大計測時間(MaxC・R)が8時間程度である場合には、時間βとして、1時間程度に設定されればよい。
【0064】
さて、このような処理を経て、基準時刻T0の更新時点から時間MaxTが経過すると、S150では、経過時間ΔTとして時間MaxT以上の値が算出されることになり、制御部11は、S170で、経過時間ΔTが時間MaxT以上であると判断して(S170でYes)、S180に移行することになる。
【0065】
S180に移行すると、制御部11は、カウンタ11eをリセットして、カウンタ11eに値ゼロからカウント値Cの更新動作を実行させると共に、RAM11cが記憶する基準時刻T0を、現在値に経過時間ΔTを加算した値に更新する(S190)。
【0066】
T0←T0+ΔT
これによって、制御部11は、基準時刻T0を、カウンタリセット時の時刻(UTC)に調整する。更には、タイムサーバ20から時刻データを取得するまでの残り時間NXTを、ΔT減算した値に更新する(S200)。
【0067】
NXT←NXT−ΔT
尚、このように時間NXTを更新するのは、今後算出される経過時間ΔTの基点がS190の処理により切り替わるためである。
【0068】
S200での処理を終えると、制御部11は、S250に移行して、上述した手法で時間WT、待機し、その後、S150に移行する。
また、前回時刻データ取得時点から時間INTが経過すると、S150では、経過時間ΔTとして時間NXT以上の値が算出される。従って、制御部11は、S160で、経過時間ΔTが時間NXT以上であると判断して(S160でYes)、S210に移行する。
【0069】
S210に移行すると、制御部11は、S120の処理と同様に、タイムサーバ20から時刻データを取得する。そして、時刻データの受信後には、RAM11cが記憶する基準時刻T0を、受信した時刻データが示す現在時刻Tsに更新すると共に(S220)、カウンタ11eをリセットし、カウンタ11eに値ゼロからカウント値Cの更新動作を実行させる(S230)。その後、S240に移行して、時間NXTを、時間INTに初期化する。その後、S250に移行する。
【0070】
このような手順を実行することにより、制御部11は、次回の時刻データ取得時点までの期間、基準時刻T0とカウント値Cとから、現在時刻Tnを求められるようにする。
続いて、上述した内部時刻出力処理の詳細を、図5を用いて説明する。図5は、内部時刻出力処理を表すフローチャートである。制御部11は、複合機10の開始直後から、図5に示す内部時刻出力処理を繰返し実行する。
【0071】
内部時刻出力処理を開始すると、制御部11は、時刻の問合せがあるまで待機し(S310)、問合せがあると(S310でYes)、カウンタ11eのカウント値Cを参照し、その参照時点のカウント値Cに基づき、基準時刻T0の更新時点からの経過時間ΔTを、算出する(S320)。
【0072】
ΔT←C・R
そして、RAM11cが記憶する基準時刻T0に、算出した経過時間ΔTを加算することにより、現在時刻Tn(UTC)を算出する(S330)。そして、算出した現在時刻Tnを、問合せ元のタスクに出力する(S340)。その後、当該内部時刻出力処理を一旦終了し、再びS310に移行して、次の問合せがあるまで待機する(S310)。
【0073】
以上、カウンタ11eとして、リセット可能なカウンタであって、カウント値を始点(最小値)から終点(最大値)まで更新すると、カウント動作を停止するカウンタを備える制御部11で実現されるUTCクロック機能について説明した。しかしながら、カウンタ11eが、リセット不可能なフリーランカウンタである場合には、次のように、複合機10を構成するのが好ましい。
【0074】
[変形例]
続いて、変形例の複合機10について、図6〜図9を用いて説明する。但し、変形例の複合機10は、カウンタ11eがリセット不可能なフリーランカウンタであること、並びに、制御部11によって実行される基準時刻更新処理及び内部時刻出力処理の一部が上記実施例と異なることを除けば、基本的に、上記実施例の複合機10と同一構成であるので、以下では、同一構成に係る説明を、適宜省略する。
【0075】
図6は、UTCクロック機能を実現するために制御部11が実行する処理を、タスクにより表した機能ブロック図である。図6に示すように、制御部11は、ソフトウェアタイマ機能を有したオペレーティングシステム(OS)により運営され、このOS下で、図8に示す基準時刻更新処理、及び、図9に示す内部時刻出力処理を実行することにより、UTCクロック機能を実現する。
【0076】
尚、図7は、変形例のカウンタ11eの動作態様を表したグラフである。変形例のカウンタ11eは、図7に示すように、カウント値が一回りすると、カウント値を初期値に戻してカウント動作を継続するフリーランカウンタである。
【0077】
従って、基準時刻更新処理では、カウンタ11eをリセットする代わりに、基準時刻T0を更新する時点での、カウンタ11eのカウント値Cを、基準カウント値C0として、RAM11cに記憶保持し、この基準カウント値C0と、カウント値Cとの差分(C−C0)により、基準時刻T0の更新時点からの経過時間ΔTを算出する。
【0078】
但し、カウント値Cの差分算出は、符号無し数値表現を用いたビット演算にて行う。即ち、C=10でありC0=8であるときには、通常の四則演算と同様に、C−C0=2となるが、C=8でありC0=10であるときには、C−C0=(MaxC+8)−10=MaxC−2となる。
【0079】
続いて、変形例の基準時刻更新処理の詳細を、図8を用いて説明する。図8は、変形例の基準時刻更新処理を表すフローチャートである。尚、図8においては、図4に示す基準時刻更新処理と同様の処理を実行するステップに対して、同一ステップ番号を付す。
【0080】
変形例の基準時刻更新処理を開始すると、制御部11は、まず、S110にて、上記実施例と同様に、パラメータの初期化を行う(MaxT←MaxC・R−α,NXT←INT)。尚、時間α,βについては、上記実施例と同様である。
【0081】
S110での処理を終えると、制御部11は、ネットワークインタフェース13を通じて、タイムサーバ20から時刻データを取得し(S120)、時刻データの受信後には、
RAM11cが記憶する基準時刻T0を、受信した時刻データが示す現在時刻Tsに更新する(S130)。
【0082】
更に、制御部11は、カウンタ11eをリセットする代わりに、S141にて、カウンタ11eのカウント値Cを参照し、RAM11cが記憶する基準カウント値C0を、参照時点のカウント値Cに更新する(C0←C)。その後、S151に移行する。
【0083】
S151に移行すると、制御部11は、カウンタ11eのカウント値Cを参照し、RAM11cが記憶する計算用カウント値CFを、参照時点のカウント値Cに更新する(CF←C)。
【0084】
更に、制御部11は、この計算用カウント値CF、及び、基準カウント値C0、及び、カウントアップ周期Rに基づいて、基準時刻T0の更新時点からの経過時間ΔTを算出する(S153)。尚、差分(CF−C0)の算出については、上述のビット演算で行うものとする。
【0085】
ΔT←(CF−C0)・R
経過時間ΔTの算出後、制御部11は、S160に移行し、経過時間ΔTが時間NXT以上であるか否かを判断することにより、前回時刻データ取得時点から時間INTが経過したか否かを判断する。
【0086】
ここで、経過時間ΔTが時間NXT未満であると判断すると(S160でNo)、制御部11は、S170に移行し、経過時間ΔTが時間MaxT以上であるか否かを判断する。即ち、基準時刻T0の更新時点から時間MaxTが経過したか否かを判断する。
【0087】
そして、経過時間ΔTが時間MaxT未満であると判断すると(S170でNo)、制御部11は、S251に移行し、カウンタ11eのカウント値Cを参照して、次回時刻データ取得時点までの残り時間[NXT−(C−C0)・R]を算出すると共に、次回基準時刻更新時点までの残り時間[MaxT−(C−C0)・R]を算出する。
【0088】
更に、制御部11は、上記算出した時間[NXT−(C−C0)・R]、及び、時間[MaxT−(C−C0)・R]、及び、最大待機時間βの内、最も短い時間を、待機時間WTに決定し、S250での処理と同様に、OSのソフトウェアタイマを利用して、上記決定した待機時間WT分、待機する。
【0089】
そして、待機時間WTが終了し、ソフトウェアタイマからの呼び出しを受けると、制御部11は、S151に移行し、新たに、カウンタ11eのカウント値Cを参照して、RAM11cが記憶する計算用カウント値CFを、参照時点のカウント値Cに更新し(CF←C)、この計算用カウント値CFを用いて、経過時間ΔTを算出する(S153)。その後、後続処理を実行する。
【0090】
尚、基準時刻T0の更新時点から時間MaxTが経過すると、S153では、経過時間ΔTとして時間MaxT以上の値が算出される。従って、制御部11は、S170で、経過時間ΔTが時間MaxT以上であると判断して(S170でYes)、S181に移行する。
【0091】
S181に移行すると、制御部11は、RAM11cが記憶する基準カウント値C0を、RAM11cが記憶する計算用カウント値CFに更新すると共に(C0←CF)、RAM11cが記憶する基準時刻T0を、現在値に経過時間ΔTを加算した値に更新する(S190)。
【0092】
T0←T0+ΔT
更に、制御部11は、タイムサーバ20から時刻データを取得するまでの残り時間NXTを、ΔT減算した値に更新する(S200)。
【0093】
NXT←NXT−ΔT
このようにして、S200での処理を終えると、制御部11は、S251に移行して、上述した手法で時間WT、待機した後、S151以降の処理を実行する。
【0094】
そして、前回時刻データ取得時点から時間INTが経過すると、S153で経過時間ΔTとして時間NXT以上の値が算出されるので、制御部11は、S160でYesと判断して、S210に移行する。
【0095】
S210に移行すると、制御部11は、S120の処理と同様に、タイムサーバ20から時刻データを受信する。そして、時刻データの受信後には、制御部11は、RAM11cが記憶する基準時刻T0を、受信した時刻データが示す現在時刻Tsに更新すると共に(S220)、カウンタ11eのカウント値Cを参照して、RAM11cが記憶する基準カウント値C0を、参照時点のカウント値Cに更新する(S231)。この後、制御部11は、S240に移行して、時間NXTを、時間INTに初期化し、S251に移行する。
【0096】
このような手順を実行することにより、制御部11は、次回の時刻データ取得時点までの期間、基準時刻T0と基準カウント値C0とカウント値Cとから、現在時刻Tnを求められるようにする。
【0097】
続いて、変形例の内部時刻出力処理の詳細を、図9を用いて説明する。図9は、制御部11が繰返し実行する変形例の内部時刻出力処理を表すフローチャートである。
内部時刻出力処理を開始すると、制御部11は、時刻の問合せがあるまで待機し(S310)、問合せがあると(S310でYes)、カウンタ11eのカウント値Cを参照し、その参照時点のカウント値Cと、RAM11cが記憶する基準カウント値C0との差分(C−C0)に基づいて、基準時刻T0の更新時点からの経過時間ΔTを、算出する(S321)。
【0098】
ΔT←(C−C0)・R
そして、制御部11は、RAM11cが記憶する基準時刻T0に、算出した経過時間ΔTを加算することにより、現在時刻Tn(UTC)を算出する(S330)。そして、制御部11は、算出した現在時刻Tnを、問合せ元のタスクに出力する(S340)。その後、当該内部時刻出力処理を終了する。
[効果]
以上、変形例を含む本発明の実施例について説明したが、上記実施例によれば、制御部11(マイクロコンピュータ)に内蔵されたカウンタ11eを用いて、現在時刻Tnを求めるので、RTC回路を用いずとも精度よく、現在時刻Tnを求めることができ、結果として、高精度な時刻情報を時刻の問合せ元に提供することができる。
【0099】
また、RTC回路ではなく、カウンタ11eを利用しているため、回路規模を小さくすることができ、簡易な構成で安価に、高精度な時計機能を有する複合機10を製造することができる。
【0100】
また、上記実施例の複合機10によれば、カウンタ11eの最大計測時間よりも長い時
間間隔で、時刻データを取得しても、現在時刻Tnを算出することができるので、カウンタ11eの最大計測時間が短いことが原因で、タイムサーバ20に負荷がかかることもない。よって、上記実施例によれば、タイムサーバ20に対しても優しい複合機10を提供することができる。
[対応関係]
尚、本発明の電子機器は、上記実施例の複合機10に相当し、基準時刻保持手段及び基準カウント値保持手段は、RAM11cに相当し、カウント回路は、カウンタ11eに相当し、通信インタフェースは、ネットワークインタフェース13に相当する。
【0101】
また、本発明の時刻情報取得手段の処理は、上記実施例におけるS120,S160,S200,S210,S240,S250(又はS251)の処理に相当し、更新手段の処理は、S130,S220の処理に相当し、経過時間計測手段の処理は、S140,S230,S320の処理、又は、S141,S231,S321の処理に相当する。
【0102】
その他、本発明の現在時刻算出手段の処理は、上記実施例におけるS330の処理に相当し、応答手段の処理は、内部時刻出力処理に相当し、補助更新手段の処理は、S150,S170,S180,S190,S250の処理、又は、S151,S153,S170,S181,S190,S251の処理に相当する。
[その他]
また、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
【0103】
例えば、上記実施例の複合機10は、表示操作部19に設けられた時刻表示ボタンを、ユーザが押下操作したときに、内部時刻出力処理タスクに、時刻を問合せ、その問合せの結果、内部時刻出力処理タスクから得られた時刻(UTC)を、ローカル時刻に変換して、このローカル時間を、液晶モニタを通じて表示出力する構成にされてもよい。
【図面の簡単な説明】
【0104】
【図1】通信システム1の構成を表すブロック図である。
【図2】CPU11aが実行する各処理の関係を表した機能ブロック図である。
【図3】カウンタ11eの動作及び基準時刻T0の更新態様を表すグラフである。
【図4】制御部11が実行する基準時刻更新処理を表すフローチャートである。
【図5】制御部11が実行する内部時刻出力処理を表すフローチャートである。
【図6】変形例におけるCPU11aが実行する各処理の関係を表した機能ブロック図である。
【図7】変形例におけるカウンタ11eの動作及び基準時刻T0の更新態様を表すグラフである。
【図8】変形例の基準時刻更新処理を表すフローチャートである。
【図9】変形例の内部時刻出力処理を表すフローチャートである。
【符号の説明】
【0105】
1…通信システム、10…複合機、11…制御部、11a…CPU、11b…ROM、11c…RAM、11d…EEPROM、11e…カウンタ、11f…水晶振動子、13…ネットワークインタフェース、15…記録部、17…読取部、19…表示操作部、20…タイムサーバ、40…PC

【特許請求の範囲】
【請求項1】
現在時刻を表す時刻情報を、外部装置から取得する時刻情報取得手段と、
基準時刻を記憶保持する基準時刻保持手段と、
前記時刻情報取得手段が前記時刻情報を取得する度に、前記基準時刻保持手段が記憶保持する前記基準時刻を、前記時刻情報取得手段が取得した最新の前記時刻情報が示す時刻に更新する更新手段と、
ハードウェアで構成され、一定周期でカウント値を更新するカウント回路と、
前記カウント回路を用いて、前記基準時刻が更新された時点からの経過時間を計測する経過時間計測手段と、
前記基準時刻保持手段が記憶保持する前記基準時刻に、前記経過時間計測手段により計測された経過時間を加算して、現在時刻を算出する現在時刻算出手段と、
現在時刻の出力要求があると、前記現在時刻算出手段に前記現在時刻を算出させて、前記現在時刻算出手段により算出された現在時刻を、出力する応答手段と、
を備えることを特徴とする電子機器。
【請求項2】
前記経過時間計測手段は、
基準カウント値を記憶保持する基準カウント値保持手段
を備え、
前記経過時間計測手段は、
前記更新手段により前記基準時刻が更新される度に、前記カウント回路のカウント値を参照して、前記基準カウント値保持手段が記憶保持する前記基準カウント値を、参照時点での前記カウント回路のカウント値に更新し、
前記カウント回路のカウント値を参照して、前記基準カウント値保持手段が記憶保持する基準カウント値と、前記カウント回路のカウント値との差分を算出することにより、前記基準時刻が更新された時点からの経過時間を計測する
ことを特徴とする請求項1記載の電子機器。
【請求項3】
前記カウント回路のカウント値が一回りする時間である前記カウント回路の最大計測時間より短い時間間隔で、前記カウント回路の前記カウント値を参照して、前記基準時刻保持手段が記憶保持する前記基準時刻を、前記基準時刻の現在値と参照時点のカウント値とから特定される現在時刻に、更新すると共に、前記基準カウント値保持手段が記憶保持する前記基準カウント値を、参照時点での前記カウント回路のカウント値に更新する補助更新手段
を備えることを特徴とする請求項2記載の電子機器。
【請求項4】
前記経過時間計測手段は、前記更新手段により前記基準時刻が更新される度に、前記カウント回路のカウント値をリセットし、前記カウント回路のカウント値を参照することによって、前記基準時刻が更新された時点からの経過時間を計測することを特徴とする請求項1記載の電子機器。
【請求項5】
前記カウント回路のカウント値が始点から終点まで一通り更新されるまでの時間である前記カウント回路の最大計測時間より短い時間間隔で、前記カウント回路の前記カウント値を参照して、前記基準時刻保持手段が記憶保持する前記基準時刻を、前記基準時刻の現在値と参照時点のカウント値とから特定される現在時刻に、更新すると共に、当該参照後に前記カウント回路のカウント値をリセットする補助更新手段
を備えることを特徴とする請求項4記載の電子機器。
【請求項6】
前記時刻情報取得手段は、前記最大計測時間よりも長い時間間隔で周期的に、前記時刻情報を外部装置から取得することを特徴とする請求項3又は請求項5記載の電子機器。
【請求項7】
前記時刻情報取得手段は、前記電子機器が備える通信インタフェースであって、現在時刻を表す時刻情報を提供するタイムサーバと通信可能な通信インタフェースを通じて、前記タイムサーバから前記時刻情報を取得することを特徴とする請求項1〜請求項6のいずれかに記載の電子機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−85227(P2010−85227A)
【公開日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願番号】特願2008−254035(P2008−254035)
【出願日】平成20年9月30日(2008.9.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】