IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧

特開2022-174841時刻同期化装置、時刻同期方法、及びプログラム
<>
  • 特開-時刻同期化装置、時刻同期方法、及びプログラム 図1
  • 特開-時刻同期化装置、時刻同期方法、及びプログラム 図2
  • 特開-時刻同期化装置、時刻同期方法、及びプログラム 図3
  • 特開-時刻同期化装置、時刻同期方法、及びプログラム 図4
  • 特開-時刻同期化装置、時刻同期方法、及びプログラム 図5
  • 特開-時刻同期化装置、時刻同期方法、及びプログラム 図6
  • 特開-時刻同期化装置、時刻同期方法、及びプログラム 図7
  • 特開-時刻同期化装置、時刻同期方法、及びプログラム 図8
  • 特開-時刻同期化装置、時刻同期方法、及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022174841
(43)【公開日】2022-11-25
(54)【発明の名称】時刻同期化装置、時刻同期方法、及びプログラム
(51)【国際特許分類】
   G04G 5/00 20130101AFI20221117BHJP
   G04R 20/08 20130101ALI20221117BHJP
【FI】
G04G5/00 J
G04R20/08
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021080831
(22)【出願日】2021-05-12
(11)【特許番号】
(45)【特許公報発行日】2022-07-20
(71)【出願人】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】疋田 和禎
【テーマコード(参考)】
2F002
【Fターム(参考)】
2F002AA00
2F002FA16
(57)【要約】
【課題】装置起動時に、装置起動前の時刻を精度よく設定できる時刻同期化装置、時刻同期方法、及びプログラムを提供すること。
【解決手段】時刻同期化装置1は、第1の内部時刻を計時し、所定のタイミングで第1のパルスを出力し、第1のパルスが出力された後、所定時間が経過した場合、第2のパルスを出力する第1の計時回路2と、第2の内部時刻を計時する第2の計時回路3と、第1のパルスが出力されたときの第1の内部時刻が示す第1の時刻データに基づいて、第2の内部時刻を更新する制御部4と、計測回路5とを備える。第2の計時回路3は、第2の内部時刻が更新された後、所定時間が経過した場合、第3のパルスを出力し、計測回路5は、第2のパルスを受信した時刻と、第3のパルスを受信した時刻との差分時間を計測し、制御部4は、時刻同期化装置1が再起動した後、第2の内部時刻と、差分時間とに基づいて、第1の内部時刻を設定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
時刻同期化装置であって、
第1の内部時刻を計時し、所定のタイミングで第1のパルスを出力し、前記第1のパルスが出力された後、所定時間が経過した場合、第2のパルスを出力する第1の計時回路と、
第2の内部時刻を計時する第2の計時回路と、
前記第1のパルスが出力されたときの前記第1の内部時刻が示す第1の時刻データに基づいて、前記第2の内部時刻を更新する制御部と、
計測回路と、を備え、
前記第2の計時回路は、前記第2の内部時刻が更新された後、前記所定時間が経過した場合、第3のパルスを出力し、
前記計測回路は、前記第2のパルスを受信した時刻と、前記第3のパルスを受信した時刻との差分時間を計測し、
前記制御部は、前記時刻同期化装置が再起動した後、前記第2の内部時刻と、前記差分時間とに基づいて、前記第1の内部時刻を設定する、時刻同期化装置。
【請求項2】
前記制御部は、前記時刻同期化装置が再起動した後、前記第2の内部時刻が示す第2の時刻データを取得し、前記差分時間と、前記第2の時刻データとに基づく第3の時刻データを算出し、前記第3の時刻データに基づいて、前記第1の内部時刻を設定する、請求項1に記載の時刻同期化装置。
【請求項3】
前記第2の計時回路は、前記時刻同期化装置が再起動した後の時刻であって、前記第3のパルスを出力した後、前記所定時間に対応する周期時間に応じた時刻に第4のパルスを出力し、
前記制御部は、前記第4のパルスが出力された場合、前記第2の時刻データを取得する、請求項2に記載の時刻同期化装置。
【請求項4】
前記第2の計時回路は、前記第4のパルスを出力した後、前記所定の周期時間が経過した場合、第5のパルスを出力し、
前記第1の計時回路は、前記第5のパルスが出力された場合、前記第1の内部時刻を歩進する、請求項3に記載の時刻同期化装置。
【請求項5】
他の装置から時報を受信する受信機をさらに備え、
前記第1の計時回路は、前記時報に基づいて前記第1の内部時刻を補正し、前記第1の内部時刻が補正された後、前記所定時間が経過した場合、前記第1のパルスを出力する、請求項1~4のいずれか1項に記載の時刻同期化装置。
【請求項6】
前記制御部は、前記第1の内部時刻が補正された後、前記第1のパルスが出力される前に前記第1の内部時刻が示す第3の時刻データを取得し、前記第1のパルスが出力された場合、前記第3の時刻データと、前記所定時間とに基づいて、前記第1の時刻データを算出し、前記第1の時刻データに基づいて前記第2の内部時刻を更新する、請求項5に記載の時刻同期化装置。
【請求項7】
前記計測回路は、前記第1の計時回路が、前記第1の内部時刻を計時するときに使用するクロック波形を使用して、前記差分時間を計測する、請求項1~6のいずれか1項に記載の時刻同期化装置。
【請求項8】
前記第1の計時回路は、前記第2の計時回路よりも計時精度が高い、請求項1~7のいずれか1項に記載の時刻同期化装置。
【請求項9】
時刻同期化装置が実行する時刻同期方法であって、
第1の内部時刻を計時し、所定のタイミングで第1のパルスを出力し、前記第1のパルスが出力された後、所定時間が経過した場合、第2のパルスを出力し、
第2の内部時刻を計時し、
前記第1のパルスが出力されたときの前記第1の内部時刻が示す第1の時刻データに基づいて、前記第2の内部時刻を更新し、
前記第2の内部時刻が更新された後、前記所定時間が経過した場合、第3のパルスを出力し、
前記第2のパルスを受信した時刻と、前記第3のパルスを受信した時刻との差分時間を計測し、
前記時刻同期化装置が再起動した後、前記第2の内部時刻と、前記差分時間とに基づいて、前記第1の内部時刻を設定する、時刻同期方法。
【請求項10】
コンピュータに時刻同期方法を実行させるためのプログラムであって、
前記時刻同期方法は、
第1の内部時刻を計時し、所定のタイミングで第1のパルスを出力し、前記第1のパルスが出力された後、所定時間が経過した場合、第2のパルスを出力し、
第2の内部時刻を計時し、
前記第1のパルスが出力されたときの前記第1の内部時刻が示す第1の時刻データに基づいて、前記第2の内部時刻を更新し、
前記第2の内部時刻が更新された後、前記所定時間が経過した場合、第3のパルスを出力し、
前記第2のパルスを受信した時刻と、前記第3のパルスを受信した時刻との差分時間を計測し、
前記コンピュータが再起動した後、前記第2の内部時刻と、前記差分時間とに基づいて、前記第1の内部時刻を設定する、ことを含むプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、時刻同期化装置、時刻同期方法、及びプログラムに関する。
【背景技術】
【0002】
サーバ等の電源を使用した情報処理装置は、電源停止後、再び電源が立ち上げられた場合でも、時刻を維持できるように、情報処理装置が稼働中に駆動する主時刻回路と、情報処理装置が停止中でも駆動するRTC(Real Time Clock)とを有している。情報処理装置の電源が立ち上げられた場合、主時刻回路は、RTCから時刻を取得して時刻を復旧する。そのため、情報処理装置が起動している間に、例えば、RTCが、主時刻回路が計時する時刻をバックアップすることにより、主時刻回路が計時する時刻と同一の時刻を保持する。
【0003】
RTCを用いた技術として、例えば、特許文献1及び2が挙げられる。特許文献1には、稼働系チップセットに設けられた第1のRTCが計時するシステム時刻と、第3のRTCが計時するシステム時刻との差分時刻を算出することが開示されている。また、特許文献1には、障害発生時に、算出された差分時刻に基づいて、切替後の予備系チップセットに設けられた第2のRTCに設定するシステム時刻を設定することが開示されている。特許文献2には、OS(Operating System)から指定された時刻と、UTC(Universal Time, Coordinated)の時刻との時差に基づく時刻がRTCに設定されることが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013-205286号公報
【特許文献2】特許第5722990号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したように、情報処理装置が起動している間に、主時刻回路が計時する時刻をRTCにバックアップすることにより、主時刻回路とRTCとが、同一の時刻を保持する。そのため、主時刻回路は、RTCに対して、時刻データを転送することで、RTCは同一の時刻を保持する。時刻データを転送する場合、RTCに時刻データを書き込む時間がかかる。そのため、主時刻回路と、RTCとの間で、時刻データを転送する場合、時刻データを送受信する時間、時刻データを書き込む時間、及び時刻データを読み込む時間を含むデータ転送時間を考慮する必要がある。当該データ転送時間を考慮しないと、時刻データが転送される毎に、主時刻回路と、RTCとが計時する時刻に、ずれが生じてしまい、情報処理装置が再起動し、主時刻回路に時刻を復旧する場合、主時刻回路は、装置起動前の時刻を維持できなくなる虞がある。
【0006】
特許文献1では、差分時刻は、第1のRTCが計時するシステム時刻、及び第3のRTCが計時するシステム時刻の差分であるが、それぞれのシステム時刻のデータ転送時間を考慮していない。また、特許文献2では、RTCへの時差に基づく時刻の設定に関して詳細な動作内容を開示していない。そのため、特許文献2においても、時差に基づく時刻の送信開始からRTCが受信するまでのデータ転送時間を考慮していない可能性がある。したがって、特許文献1及び2に開示された技術を用いたとしても、情報処理装置が再起動したときに、主時刻回路が装置起動前の時刻を維持できていない可能性がある。つまり、特許文献1及び2に開示された技術を用いたとしても、情報処理装置が起動した場合、情報処理装置が起動する前の時刻を精度よく設定できていない虞がある。
【0007】
本開示の目的の1つは、上述した課題を鑑み、装置起動時に、装置起動前の時刻を精度よく設定することが可能な時刻同期化装置、時刻同期方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
本開示にかかる時刻同期化装置は、
第1の内部時刻を計時し、所定のタイミングで第1のパルスを出力し、前記第1のパルスが出力された後、所定時間が経過した場合、第2のパルスを出力する第1の計時回路と、
第2の内部時刻を計時する第2の計時回路と、
前記第1のパルスが出力されたときの前記第1の内部時刻が示す第1の時刻データに基づいて、前記第2の内部時刻を更新する制御部と、
計測回路と、を備え、
前記第2の計時回路は、前記第2の内部時刻が更新された後、前記所定時間が経過した場合、第3のパルスを出力し、
前記計測回路は、前記第2のパルスを受信した時刻と、前記第3のパルスを受信した時刻との差分時間を計測し、
前記制御部は、前記時刻同期化装置が再起動した後、前記第2の内部時刻と、前記差分時間とに基づいて、前記第1の内部時刻を設定する。
【0009】
本開示にかかる時刻同期方法は、
時刻同期化装置が実行する時刻同期方法であって、
第1の内部時刻を計時し、所定のタイミングで第1のパルスを出力し、前記第1のパルスが出力された後、所定時間が経過した場合、第2のパルスを出力し、
第2の内部時刻を計時し、
前記第1のパルスが出力されたときの前記第1の内部時刻が示す第1の時刻データに基づいて、前記第2の内部時刻を更新し、
前記第2の内部時刻が更新された後、前記所定時間が経過した場合、第3のパルスを出力し、
前記第2のパルスを受信した時刻と、前記第3のパルスを受信した時刻との差分時間を計測し、
前記時刻同期化装置が再起動した後、前記第2の内部時刻と、前記差分時間とに基づいて、前記第1の内部時刻を設定する、時刻同期方法である。
【0010】
本開示にかかるプログラムは、
コンピュータに時刻同期方法を実行させるためのプログラムであって、
前記時刻同期方法は、
第1の内部時刻を計時し、所定のタイミングで第1のパルスを出力し、前記第1のパルスが出力された後、所定時間が経過した場合、第2のパルスを出力し、
第2の内部時刻を計時し、
前記第1のパルスが出力されたときの前記第1の内部時刻が示す第1の時刻データに基づいて、前記第2の内部時刻を更新し、
前記第2の内部時刻が更新された後、前記所定時間が経過した場合、第3のパルスを出力し、
前記第2のパルスを受信した時刻と、前記第3のパルスを受信した時刻との差分時間を計測し、
前記コンピュータが再起動した後、前記第2の内部時刻と、前記差分時間に基づいて、前記第1の内部時刻を設定する、ことを含むプログラムである。
【発明の効果】
【0011】
本開示によれば、装置起動時に、装置起動前の時刻を精度よく設定することが可能な時刻同期化装置、時刻同期方法、及びプログラムを提供できる。
【図面の簡単な説明】
【0012】
図1】実施の形態1にかかる時刻同期化装置の構成例を示す図である。
図2】実施の形態2にかかる時刻同期化装置の構成例を示す図である。
図3】時刻カウンタが行う時刻補正を説明するための図である。
図4】実施の形態2にかかる時刻同期化装置の動作例を示す図である。
図5】セーブ処理を説明するための図である。
図6】セーブ処理を説明するための図である。
図7】セーブ処理を説明するための図である。
図8】リストア処理を説明するための図である。
図9】リストア処理を説明するための図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しつつ、実施形態について説明する。なお、実施形態において、同一の要素には、同一の符号を付し、重複する説明は省略される。
【0014】
(実施の形態1)
図1を用いて、実施の形態1にかかる時刻同期化装置1の構成例について説明する。図1は、実施の形態1にかかる時刻同期化装置の構成例を示す図である。時刻同期化装置1は、第1の計時回路2と、第2の計時回路3と、制御部4と、計測回路5とを備える。
【0015】
第1の計時回路2は、例えば、主時刻回路である。第1の計時回路2は、時刻同期化装置1の電源がONになっている状態で第1の内部時刻を計時する。第1の計時回路2は、所定のタイミングで第1のパルスを出力し、第1のパルスが出力された後、所定時間が経過した場合、第2のパルスを出力する。第1のパルスは、後述する第2の計時回路3が計時する第2の内部時刻を更新するために使用される。言い換えると、第1のパルスは、第2の内部時刻に第1の内部時刻をバックアップするために使用される。所定のタイミングは、第1の計時回路2が計時する時刻の秒が変わるタイミングのうち、予め設定されたタイミングでもよい。もしくは、所定のタイミングは、第1の内部時刻が他の装置から受信した時刻に基づいて補正された後でもよい。もしくは、所定のタイミングは、第1の内部時刻が他の装置から受信した時刻に基づいて補正された後、所定時間経過後でもよい。所定時間は、1秒等の予め定められた時間であってもよい。
【0016】
第2の計時回路3は、例えば、RTCである。第2の計時回路3は、第2の内部時刻を計時する。第2の計時回路3は、時刻同期化装置1の電源がONになっている状態だけでなく、時刻同期化装置1の電源がOFFになっている状態においても第2の内部時刻を計時する。第2の計時回路3は、後述する制御部4の制御に応じて、第2の内部時刻を更新する。第2の計時回路3は、制御部4が第2の内部時刻を更新した後、上記所定時間が経過した場合、第3のパルスを出力する。
【0017】
制御部4は、時刻同期化装置1を制御する制御部である。制御部4は、第1の計時回路2が第1のパルスを出力した場合、第1のパルスが出力されたときの第1の内部時刻が示す第1の時刻データに基づいて、第2の内部時刻を更新する。言い換えると、制御部4は、第1の内部時刻に基づいて、第2の計時回路3が計時する第2の内部時刻を更新することで、第1の内部時刻を第2の内部時刻にバックアップする。制御部4は、時刻同期化装置1が再起動した後、後述する計測回路5が計測した差分時間と、第2の計時回路3が計時する第2の内部時刻とに基づいて、第1の内部時刻を設定する。時刻同期化装置1が再起動するとは、時刻同期化装置1の電源がON状態からOFF状態に遷移した後、時刻同期化装置1の電源がON状態に再度遷移するである。
【0018】
計測回路5は、第1の計時回路2から出力される第2のパルス、及び第2の計時回路3から出力される第3のパルスを受信する。計測回路5は、第2のパルスを受信した時刻と、第3のパルスを受信した時刻との差分時間を計測する。なお、上述したように、第1の計時回路2は、時刻同期化装置1が再起動した後、第2の内部時刻と、計測された差分時間とに基づいて、第1の内部時刻を設定する。
【0019】
以上説明したように、制御部4は、第1のパルスが出力された場合、第1のパルスが出力されたときの第1の内部時刻が示す第1の時刻データに基づいて、第2の計時回路3が計時する第2の内部時刻を更新する。計測回路5は、第2のパルスを受信した時刻と、第2の計時回路3が、第2の内部時刻が更新された後に出力される第3のパルスを受信した時刻とに基づいて、差分時間を計測する。当該差分時間には、制御部4が、第2の計時回路3が計時する第2の内部時刻に、第1の時刻データを書き込む時間が含まれる。具体的には、計測回路5は、制御部4が、第2の計時回路3との間で、第1の時刻データを書き込む時間を含むデータ転送時間を考慮した差分時間を計測する。そのため、制御部4は、時刻同期化装置1が再起動した後、第2の内部時刻と、第1の時刻データを第2の内部時刻に書き込む時間を含むデータ転送時間を考慮した差分時間とに基づいて、第1の内部時刻を設定できる。したがって、実施の形態1にかかる時刻同期化装置1によれば、第1の時刻データのデータ転送時間を考慮できるため、装置が起動した後に、装置起動前の時刻を精度よく設定できる。
【0020】
(実施の形態2)
続いて、実施の形態2について説明する。実施の形態2は、実施の形態1を具体的にした実施の形態である。
【0021】
<時刻同期化装置の構成例>
図2を用いて、実施の形態2にかかる時刻同期化装置100の構成例について説明する。図2は、実施の形態2にかかる時刻同期化装置の構成例を示す図である。時刻同期化装置100は、時刻データを他の装置(時刻供給先装置)に供給する情報処理装置である。また、時刻同期化装置100は、瞬時電圧低下、及び停電により時刻供給先装置に供給する時刻データを生成するために使用する時刻が喪失されたときに備えて、時刻をバックアップしておく機能を備える。
【0022】
時刻同期化装置100は、時報受信機11と、時刻カウンタ12と、時刻送出回路13と、プロセッサ14と、リアルタイムクロック15と、不揮発性メモリ16と、電池17と、パルス計測回路18とを備える。なお、記載を簡略化するために、以降の説明、及び図において、リアルタイムクロック15をRTC15として記載することがある。
【0023】
時刻同期化装置100は、各機能ブロック間が、複数のバス又は信号線により接続されている。時刻データ信号線20は、時刻カウンタ12と、時刻送出回路13とを接続する。時刻データ分配バス21は、時刻送出回路13と、時刻同期化装置100が、時刻同期化装置100が計時する時刻を供給する外部の時刻供給先装置群とを接続する。時刻カウンタ制御バス22は、時刻カウンタ12と、プロセッサ14とを接続する。シリアル転送バス23は、プロセッサ14と、リアルタイムクロック15とを接続する。メモリバス24は、プロセッサ14と、不揮発性メモリ16とを接続する。時刻カウンタ秒更新パルス線25は、時刻カウンタ12と、パルス計測回路18とを接続する。リアルタイムクロック秒更新パルス線26は、リアルタイムクロック15とパルス計測回路18とを接続する。パルス計測回路制御バス27は、プロセッサ14と、パルス計測回路18とを接続する。リアルタイムクロック秒更新通知線28は、時刻カウンタ12と、リアルタイムクロック15とを接続する。
【0024】
時報受信機11は、他の装置から時報を受信する。具体的には、時報受信機11は、標準電波送信所等の基地局から、正時に同期した時刻を示す時報を受信することで取得する。時報受信機11は、時報を受信すると同時に、時刻カウンタ12に時刻補正パルスを出力する。
【0025】
時刻カウンタ12は、実施の形態1における第1の計時回路2に対応する。時刻カウンタ12は、時刻同期化装置100の主時刻歩進回路である。時刻カウンタ12は、例えば、発振周波数が1kHzの水晶発振器を含む。時刻カウンタ12は、水晶発振器のクロック波形を使用して、ミリ秒までの単位で時刻を計時する。言い換えると、時刻カウンタ12は、年、月、日、時、分、秒、及びミリ秒を含む時刻を計時する。なお、時刻カウンタ12が計時する時刻は、第1の内部時刻と称されてもよい。また、時刻カウンタ12は、水晶振動子を含むように構成されてもよい。
【0026】
時刻カウンタ12は、時報受信機11から時刻補正パルスを受信する。時刻カウンタ12は、時刻補正パルスを時報とみなすことで、時刻補正パルスに基づいて、時刻カウンタ12が計時する時刻の進み又は遅れ具合をずらしていくことで、少しずつ時刻を時報に合わせていく、Slew方式で時刻を補正する。一般的に、電子機器が時計機能を有する場合、内部時計を歩進するクロックソースには水晶発振器又は水晶振動子が使用される。上述したように、時刻同期化装置1も、時刻カウンタ12は、水晶発振器を使用して、時刻を計時(歩進)する。ただし、電波時計のように外部のクロックソースを使用して機器内部の時計を定期的に補正する場合、例えば、標準電波送信所のクロックソースである原子時計と比べて、装置内部の水晶発振器等は、素子の精度誤差の分だけ時間経過とともに正時とずれが生じる。そのため、時刻カウンタ12は、時報受信機11からの時刻補正パルスに基づいて、時刻カウンタ12が計時する時刻を補正する。
【0027】
ここで、図3を用いて、時刻カウンタ12が行う時刻補正について説明する。図3は、時刻カウンタが行う時刻補正を説明するための図である。図3は、一例として、時刻カウンタ12が計時する時刻が、正時より1秒進んでいる場合に、Slew方式を用いて、10秒かけて、時刻カウンタ12の時刻を正時に補正する様子を図示している。図3の上段は、本来の時刻である正時の秒を示している。図3の下段は、時刻カウンタ12が計時する時刻の秒を示している。図3において、左から右に向かうにつれて、時間が経過していることを示している。
【0028】
図3に示されるように、時刻カウンタ12は、時刻カウンタ12が計時する時刻の秒が01(秒)のときに時刻補正パルスを受信する。時刻カウンタ12の時刻は、時刻補正パルスを受信するまで、正時よりも1秒進んでいる。時刻カウンタ12は、時刻補正パルスを受信すると、Slew方式を用いて、徐々に時刻を補正していく。図3の下段のうち、太い黒線のブロックは、時刻補正中の、時刻カウンタ12が計時する時刻の秒を表している。時刻カウンタ12は、時刻補正中に、少しずつ、正時と近づくように、秒を遅らせていき、10秒になる時点で、時刻カウンタ12の時刻が正時と同一になるように補正していく。このように、時刻カウンタ12は、Slew方式を用いて、徐々に時刻を正時に合うように補正することで、瞬時に時刻を合わせた場合に生じる時刻戻りを発生させずに、時刻を補正できる。
【0029】
時刻カウンタ12は、時刻カウンタ秒更新パルス線25を介して、後述するパルス計測回路18に、秒更新パルスを出力する。また、時刻カウンタ12は、時刻カウンタ秒更新パルス線25を介して、時刻カウンタ12が時刻を計時するために使用するクロック波形を、パルス計測回路18に供給する。
【0030】
秒更新パルスとは、時刻カウンタ12が計時する時刻に含まれるミリ秒が0になる毎に出力されるパルスである。例えば、時刻カウンタ12が計時する時刻が、2020年11月23日10時20分22秒112ミリ秒であった場合、時刻カウンタ12が計時する時刻が、2020年11月23日10時20分23秒0ミリ秒になった瞬間に、秒更新パルスが出力される。また、時刻カウンタ12が計時する時刻が、2020年11月23日10時20分24秒0ミリ秒になった瞬間に、次の秒更新パルスが出力される。
【0031】
図2に戻り説明を続ける。時刻カウンタ12は、時刻データ信号線20を介して、クロック波形と、時刻カウンタ12が計時する時刻が示す、年、月、日、時、分及び秒を含む時刻データを時刻送出回路13に出力する。時刻カウンタ12は、時刻送出回路13を介して、時刻データと、時刻を歩進するクロック波形を、時刻データ分配バス21を通して、時刻同期化装置100の外部にある装置(時刻供給先装置群)に供給する。このように、時刻カウンタ12は、時刻送出回路13を介して、複数の時刻供給先装置間(マルチクラスタ)の時刻を同一クロック波形の周期に同期させる。
【0032】
時刻カウンタ12は、時刻カウンタ制御バス22を介して、プロセッサ14から歩進開始許可命令を受信する。歩進開始許可命令は、時刻同期化装置100の再起動時、時刻カウンタ12に時刻が設定(リストア)された後、時刻カウンタ12が時刻の歩進を開始することを、プロセッサ14が許可する命令である。時刻カウンタ12は、歩進開始許可命令をプロセッサ14から受信し、歩進開始許可命令を受信した後に、リアルタイムクロック15からの秒更新パルスを受信すると、時刻カウンタ12の時刻を歩進開始する。なお、歩進開始許可命令は、時刻カウンタ12が正時に合うように時刻を補正する場合には使用されない命令である。
【0033】
時刻カウンタ12は、リアルタイムクロック秒更新通知線28を介して、後述するリアルタイムクロック15が出力する秒更新パルスを受信する。
【0034】
時刻送出回路13は、時刻データ信号線20を介して、クロック波形と、時刻カウンタ12が出力する時刻データを時刻カウンタ12から受信する。時刻送出回路13は、時刻供給先装置間の時刻の同期を行うために、時刻データ分配バス21を介して、時刻カウンタ12の時刻データと、時刻供給先装置群が時刻を歩進するためのクロック波形とを時刻供給先装置群に供給する。なお、各時刻供給先装置は、時刻カウンタ12から供給された時刻データと、クロック波形とにより歩進することで、時刻供給先装置の時刻と、時刻同期化装置100の時刻とが同期される。
【0035】
プロセッサ14は、時刻同期化装置100の制御部である。プロセッサ14は、時刻同期化装置100の制御内容を実行させるための命令が格納されたプログラムを実行することで各種制御を行う。
【0036】
プロセッサ14は、時刻カウンタ制御バス22を介して、時刻カウンタ12に対して、時刻カウンタ12が計時する時刻についての時刻データの読み込み、時刻カウンタ12が計時する時刻の書き込み、及び時刻カウンタ12に対して歩進開始許可命令を行う。プロセッサ14は、時刻カウンタ12からの秒更新パルスを受信する。プロセッサ14は、時刻カウンタ12が、パルス計測回路18に対して秒更新パルスを出力した後に時刻データの読み込み及び時刻の書き込みを実行する。
【0037】
プロセッサ14は、シリアル転送バス23を介して、後述するリアルタイムクロック15に対して、リアルタイムクロック15が計時する時刻についての時刻データの読み込み、及びリアルタイムクロック15が計時する時刻の書き込みを行う。プロセッサ14は、リアルタイムクロック15が、パルス計測回路18及び時刻カウンタ12に対して秒更新パルスを出力した後、時刻データの読み込み及び時刻の書き込みを実行する。プロセッサ14は、リアルタイムクロック15からの秒更新パルスを受信する。
【0038】
プロセッサ14は、メモリバス24を通して不揮発性メモリ16に対して、不揮発性メモリ16が保持するデータの読み込み、及び不揮発性メモリ16に対してデータの書き込みを行う。
【0039】
プロセッサ14は、パルス計測回路制御バス27を介して、後述するパルス計測回路18に対して、パルス計測回路18の有効命令及び無効命令、並びにパルス計測回路18が保持する情報の読み込みを行う。パルス計測回路18の有効命令及び無効命令は、それぞれパルス計測回路18が備えるパルス差分の計測を有効にするか、又は無効にするかを要求する命令である。
【0040】
プロセッサ14は、時刻カウンタ12、リアルタイムクロック15、及びパルス計測回路18と協働(連動)して、時刻カウンタ12と、リアルタイムクロック15との時刻差分の計測及び時刻差分の保存(セーブ)を行うセーブ処理を実行する。また、プロセッサ14は、時刻カウンタ12、及びリアルタイムクロック15と協働(連動)して、時刻同期化装置100が再起動したときに時刻カウンタ12が計時する時刻を設定するリストア処理を実行する。なお、セーブ処理及びリストア処理については後述する。
【0041】
リアルタイムクロック15は、実施の形態1における第2の計時回路3に対応する。リアルタイムクロック15は、例えば、時刻同期化装置100の瞬時電圧低下及び停電に備えて、時刻カウンタ12の時刻を定期的にバックアップしておくために使用される。時刻カウンタ12は、時刻供給先装置群に時刻を供給するための駆動回路、及び大規模回路を動作させるための常用電源が必要である。一方、リアルタイムクロック15は、時刻データのみを一時的にバックアップしておく小規模回路で構成され、例えば、電池のような小電力電源での駆動可能に構成される。
【0042】
リアルタイムクロック15は、時刻カウンタ12が含む水晶発振器とは異なる水晶発振器を含み、秒までの単位で時刻を計時する。つまり、リアルタイムクロック15は、時刻カウンタ12が含む水晶発振器よりも計時できる時刻の精度が低い水晶発振器を使用する。言い換えると、時刻カウンタ12は、リアルタイムクロック15よりも計時精度が高いように構成される。リアルタイムクロック15は、リアルタイムクロック15が含む水晶発信器のクロック波形を使用して、秒までの単位で時刻を計時する。言い換えると、リアルタイムクロック15は、年、月、日、時、分、及び秒を含む時刻を計時する。なお、リアルタイムクロック15が計時する時刻は、第2の内部時刻と称されてもよい。また、リアルタイムクロック15は、水晶振動子を含むように構成されてもよい。
【0043】
正時に同期した時刻(時報)と、時刻カウンタ12のクロックソース(水晶発振器)とにずれが生じるのと同じように、リアルタイムクロック15は、クロックソースが異なる時刻カウンタ12との間においても時間経過とともに時刻のずれが生じる。リアルタイムクロック15は、時刻カウンタ12の時刻をバックアップするバックアップ動作が実行されることで、時刻カウンタ12の時刻と一致するように補正される。具体的には、プロセッサ14が、時刻カウンタ12から時刻データを読み込み、リアルタイムクロック15に書き込むことでバックアップ動作が実行される。
【0044】
リアルタイムクロック15は、リアルタイムクロック秒更新パルス線26を介して、パルス計測回路18に対して、秒更新パルスを出力する。リアルタイムクロック15は、リアルタイムクロック秒更新通知線28を介して、時刻カウンタ12に対して、秒更新パルスを出力する。リアルタイムクロック15は、シリアル転送バス23を介して、プロセッサ14に対して、秒更新パルスを出力する。リアルタイムクロック15は、リアルタイムクロック15の時刻において、秒が更新されるタイミングにおいて、秒更新パルスをパルス計測回路18、時刻カウンタ12及びプロセッサ14に出力する。リアルタイムクロック15は、例えば、リアルタイムクロック15の時刻に含まれる秒が、23秒から、24秒に変わる瞬間に秒更新パルスを出力する。
【0045】
不揮発性メモリ16は、プロセッサ14から転送された処理データを保存する。不揮発性メモリ16は、不揮発性ランダム・アクセス・メモリー(NVRAM:Non-Volatile Random Access Memory)でもよい。
【0046】
電池17は、リアルタイムクロック15、及び不揮発性メモリ16に電源を供給する。時刻同期化装置100において、瞬時電圧低下及び停電が発生した場合でも、リアルタイムクロック15が、リアルタイムクロック15が計時する時刻を継続的に歩進できるように、電池17は、リアルタイムクロック15に電力を供給する。また、不揮発性メモリ16が、保存した処理データが喪失しないように、電池17は、不揮発性メモリ16に電力を供給する。
【0047】
パルス計測回路18は、実施の形態1における計測回路5に対応する。パルス計測回路18は、パルス差分の計測を行う機能を備えており、当該機能を有効にすることでパルス差分を計測し、当該機能を無効にすることでパルス差分の計測を行わない。パルス計測回路18は、パルス計測回路18の有効命令及び無効命令をプロセッサ14から受信することで、上記機能を有効又は無効にする。
【0048】
パルス計測回路18は、上記機能が有効になった場合、パルス差分の計測として、時刻カウンタ12からリアルタイムクロック15に時刻データを転送する際に生じる時刻差を示す差分時間を、時刻カウンタ12が使用するクロック波形を用いて計測する。パルス計測回路18は、時刻カウンタ12が使用するクロック波形を使用して、時刻カウンタ12が出力した秒更新パルスを受信した時刻と、リアルタイムクロック15が出力した秒更新パルスを受信した時刻との差分時間を計測する。パルス計測回路18は、差分時間を計測すると、計測した差分時間を保持する。時刻カウンタ12が使用するクロック波形は、ミリ秒単位まで計時(計測)できるため、パルス計測回路18が計測した差分時間も、ミリ秒単位までの精度で計測される。パルス計測回路18は、差分時間の計測が完了すると、パルス計測回路制御バス27を介して、パルス計測完了通知をプロセッサ14に出力する。
【0049】
<セーブ処理>
次に、セーブ処理について説明する。なお、説明を便宜的に行うため、時刻カウンタ12が計時する時刻を第1の内部時刻として記載し、リアルタイムクロック15が計時する時刻を第2の内部時刻として記載する。
【0050】
セーブ処理は、時刻カウンタ12が時報に基づいて、Slew方式により第1の内部時刻が補正された時点で開始される。第1の内部時刻の補正が完了すると、プロセッサ14は、第1の内部時刻を読み込み、第1の内部時刻が示す時刻データを取得する。時刻カウンタ12は、第1の内部時刻の補正が完了した後、1秒が経過した場合、第1の内部時刻の補正が完了した後に最初の秒更新パルスを出力する。つまり、プロセッサ14は、第1の内部時刻が補正された後、最初の秒更新パルスが出力される前に、第1の内部時刻が示す時刻データを取得する。なお、第1の内部時刻の補正が完了した後に最初に出力される秒更新パルスは、実施の形態1における第1のパルスに対応する。
【0051】
プロセッサ14は、時刻カウンタ12から最初の秒更新パルスが出力されると、第1の内部時刻が示す時刻データと、秒更新パルスが出力される周期時間である1秒とに基づいて、最初の秒更新パルスが出力されるときの第1の内部時刻が示す時刻データを算出する。プロセッサ14は、算出した時刻データに基づいて、リアルタイムクロック15に時刻データに基づく時刻を書き込むことで、第2の内部時刻を更新する。プロセッサ14は、リアルタイムクロック15に時刻を書き込むと、パルス計測回路18にパルス計測回路18の有効命令を送信する。パルス計測回路18は、パルス差分の計測を行う機能を有効にする。
【0052】
時刻カウンタ12は、最初の秒更新パルスを出力した後、1秒が経過した場合、2番目の秒更新パルスを出力する。リアルタイムクロック15は、第2の内部時刻が更新された後、1秒が経過した場合、最初の秒更新パルスを出力する。なお、時刻カウンタ12が出力する2番目の秒更新パルスは、実施の形態1における第2のパルスに対応し、リアルタイムクロック15が出力する最初の秒更新パルスは、実施の形態1における第3のパルスに対応する。
【0053】
パルス計測回路18は、時刻カウンタ12から出力された2番目の秒更新パルスを受信した時刻と、リアルタイムクロック15から出力された最初の秒更新パルスを受信した時刻との差分時間を計測し、計測した差分時間をパルス差分の計測結果とする。プロセッサ14は、パルス計測回路18から差分時間を取得し、不揮発性メモリ16に取得した差分時間を書き込む。
【0054】
プロセッサ14は、秒未満の桁をBCD(Binary-coded decimal)形式で不揮発性メモリ16に書き込む(セーブする)。パルス計測回路18は、時刻カウンタ12と共通の1kHzの水晶発振器のクロック波形を使用しているため、プロセッサ14は、不揮発性メモリ16に、秒未満の桁をBCD形式でセーブする。プロセッサ14は、時刻カウンタ12が秒更新パルスを出力したのを即時に検知し、リアルタイムクロック15に時刻データを書き込むことで、パルス計測回路18は、最大でも1秒以上とならないように差分時間を計測できる。したがって、計測される差分時間は、1秒未満であるため、プロセッサ14は、秒未満の桁(ミリ秒単位)のみをBCD形式でセーブする。
【0055】
<リストア処理>
次に、リストア処理について説明する。リストア処理は、例えば、瞬時電圧低下又は停電等により、時刻同期化装置100が再起動した後に実行される。リアルタイムクロック15は、時刻同期化装置100の電源がOFF状態においても、第2の内部時刻を計時(歩進)する。リアルタイムクロック15は、時刻同期化装置100が再起動し、第2の内部時刻の秒が更新された場合、時刻同期化装置100が再起動した後、最初の秒更新パルスを出力する。言い換えると、リアルタイムクロック15は、時刻同期化装置100が再起動した後の時刻であり、かつ時刻同期化装置100が再起動する前に出力された秒更新パルスが出力された後、周期時間である1秒に応じた時刻に、最初の秒更新パルスを出力する。なお、最初の秒更新パルスは、時刻同期化装置100が再起動した後、リアルタイムクロック15から最初に出力される秒更新パルスである。
【0056】
プロセッサ14は、不揮発性メモリ16から差分時間を取得し、リアルタイムクロック15から第2の内部時刻が示す時刻データを取得する。プロセッサ14は、取得した時刻データと、取得した差分時間と、周期時間である1秒とに基づいて、第1の内部時刻を設定するための時刻データを算出する。具体的には、プロセッサ14は、取得した時刻データと、取得した差分時間と、周期時間である1秒とを可算した時刻データを、第1の内部時刻を設定するための時刻データとして算出する。プロセッサ14は、算出した時刻データに基づいて、第1の内部時刻を設定するとともに、歩進開始許可命令を時刻カウンタ12に送信する。
【0057】
リアルタイムクロック15は、最初の秒更新パルスを出力した後、秒更新パルスを送信する周期時間である1秒が経過する場合、2番目の秒更新パルスを出力する。時刻カウンタ12は、リアルタイムクロック15が出力した2番目の秒更新パルスを受信すると、第1の内部時刻の歩進を開始する。なお、2番目の秒更新パルスは、時刻同期化装置100が再起動した後、リアルタイムクロック15から2番目に出力される秒更新パルスである。
【0058】
<時刻同期化装置の動作例>
次に、時刻同期化装置100の動作例について説明する。まず、図4を用いて、時刻同期化装置100の全体動作について説明する。図4は、実施の形態2にかかる時刻同期化装置の動作例を示す図である。
【0059】
図4に示すように、時刻同期化装置100は、電源がONされている状態で、セーブ処理を実行する(ステップS1)。セーブ処理は、時報受信機11が標準電波送信所等の基地局から時報を受信し、時刻カウンタ12が第1の内部時刻をSlew方式による補正が完了した場合に実行される。セーブ処理は、時報受信機11が標準電波送信所等の基地局から時報を受信する毎に実行されてもよく、時報受信機11が標準電波送信所等の基地局から、いずれかの時報を受信した場合に実行されてもよい。
【0060】
時刻同期化装置100は、瞬時電圧低下及び停電等の理由により、時刻同期化装置100が停止した後に再起動すると、リストア処理を実行する(ステップS3)。
【0061】
次に、図5図7を用いて、図4のステップS1において実行されるセーブ処理について説明する。図5図7は、セーブ処理を説明するための図である。まず、図5を用いて、セーブ処理の動作例について説明する。図5は、セーブ処理の動作を示すフローチャートである。
【0062】
時刻カウンタ12は、時報受信機11からの時刻補正パルスが入力され、Slew方式により時刻カウンタ12の第1の内部時刻を補正する(ステップS11)。
時刻カウンタ12の時刻補正が完了すると、プロセッサ14は、時刻カウンタ12から、第1の内部時刻を読み込み、時刻データ(年月日時分秒)を取得する(ステップS12)。
【0063】
プロセッサ14は、時刻カウンタ12から秒更新パルスが出力されたか否かを判定する(ステップS13)。
時刻カウンタ12から秒更新パルスが出力されていない場合、プロセッサ14は、ステップS13を繰り返し実行する(ステップS13のNO)。
時刻カウンタ12から秒更新パルスが出力された場合(ステップS13のYES)、プロセッサ14は、ステップS14を実行する。
【0064】
ステップS14において、プロセッサ14は、取得した時刻データをリアルタイムクロック15に書き込む(ステップS14)。プロセッサ14は、取得した時刻データをリアルタイムクロック15に書き込むことにより、取得した時刻データに基づいて、リアルタイムクロック15が計時する第2の内部時刻を更新する。時刻カウンタ12は、秒更新パルスを送信しているため、実際の時刻は、プロセッサ14が、時刻カウンタ12から時刻データを取得した時刻よりも1秒進んでいる。そのため、プロセッサ14は、取得した時刻データに1秒を加算した時刻データを算出し、算出した時刻データをリアルタイムクロック15に書き込む。
【0065】
プロセッサ14は、パルス計測回路18に、パルス計測回路18の有効命令を送信する(ステップS15)。パルス計測回路18は、パルス差分の計測を行う機能を有効にして、パルス差分の計測の準備を行う。
【0066】
パルス計測回路18は、時刻カウンタ12から秒更新パルスが出力されたか否かを判定する(ステップS16)。
時刻カウンタ12から秒更新パルスが出力されていない場合(ステップS16のNO)、パルス計測回路18は、ステップS16を繰り返し実行する。
時刻カウンタ12から秒更新パルスが出力された場合(ステップS16のYES)、パルス計測回路18は、ステップS17を実行する。
【0067】
ステップS17において、パルス計測回路18は、パルス差分の計測を開始する(ステップS17)。パルス計測回路18は、時刻カウンタ12から秒更新パルスを受信すると、時刻カウンタ12が、第1の内部時刻を計時するときに使用するクロック波形を使用して、パルス差分の計測結果である差分時間を計測するためにカウントを開始する。
【0068】
パルス計測回路18は、リアルタイムクロック15から秒更新パルスが出力されたか否かを判定する(ステップS18)。
リアルタイムクロック15から秒更新パルスが出力されていない場合(ステップS18のNO)、パルス計測回路18は、ステップ17で開始したカウントを継続し、ステップS18を繰り返し実行する。
リアルタイムクロック15から秒更新パルスが出力された場合(ステップS18のYES)、パルス計測回路18は、ステップS19を実行する。
【0069】
ステップS19において、パルス計測回路18は、リアルタイムクロック15から秒更新パルスが出力されると、パルス差分の計測を終了する(ステップS19)。パルス計測回路18は、リアルタイムクロック15からの秒更新パルスを受信するとカウントを停止する。パルス計測回路18は、カウントの開始から停止までの時間を、時刻カウンタ12が出力した秒更新パルスを受信した時刻と、リアルタイムクロック15が出力した秒更新パルスを受信した時刻との差分時間として計測を終了する。パルス計測回路18は、プロセッサ14にパルス計測完了通知を出力する。パルス計測回路18は、時刻カウンタ12が、第1の内部時刻を計時するために使用しているクロック波形を使用している。そのため、パルス計測回路18が計測した差分時間は、最小単位がミリ秒の時間である。
【0070】
プロセッサ14は、パルス計測回路18からパルス計測完了通知を受信(検知)した後、パルス計測回路18が計測したパルス差分の計測結果である差分時間を読み込み、不揮発性メモリ16に保存(セーブする)(ステップS20)。上述したように、差分時間は、1秒未満のデータであるため、プロセッサ14は、不揮発性メモリ16に、秒未満の桁をBCD形式でセーブする。
【0071】
次に、図6及び図7に示すタイミングチャートを用いて、図5で説明した動作例の具体例を説明する。なお、図6には、図5で説明した各動作との対応関係を理解し易くするために、関連する動作に、図5で記載した参照符号が付されている。また、以下の説明においても、図5で記載した参照符号を用いて説明する。
【0072】
図6において、左から右に向かうにつれて、時間が経過していることを示している。図6の上から順に、不揮発性メモリ16、時刻カウンタ12、プロセッサ14、リアルタイムクロック15、パルス計測回路18のタイミングチャートを示している。
【0073】
まず、時刻カウンタ12が、受信された時報に基づいて、Slew方式により、第1の内部時刻の補正が完了する(ステップS11)。
【0074】
次に、時刻カウンタ12の時刻補正が完了すると、プロセッサ14は、時刻カウンタ12に対し、第1の内部時刻を読み込み、時刻データ(年月日時分秒)を取得する(ステップS12)。
【0075】
プロセッサ14は、時刻カウンタ12から秒更新パルスが出力されるまで待機し、時刻カウンタ12は、秒更新パルスを出力する(ステップS13)。なお、出力される秒更新パルスは、時刻補正が完了した後、時刻カウンタ12が最初に出力する秒更新パルスである。
【0076】
プロセッサ14は、時刻カウンタ12から秒更新パルスが出力されると、取得した時刻データに1秒を加算した時刻データをリアルタイムクロック15に書き込む(ステップS14)。
【0077】
ここで、図7を用いて、プロセッサ14が、リアルタイムクロック15に時刻データを書き込む動作の詳細を説明する。図7は、図6のプロセッサ14が、リアルタイムクロック15に時刻データを書き込む動作を拡大した拡大図である。
【0078】
プロセッサ14は、時刻カウンタ12が秒更新パルスを出力すると、即時にリアルタイムクロック15に時刻データを書き込むことで、リアルタイムクロック15の第2の内部時刻を更新する。
【0079】
図7に示されるように、プロセッサ14は、時刻データに含まれる、年(YY)、月(MM)、日(DD)、時(hh)、分(mm)及び秒(ss)を順に、リアルタイムクロック15に書き込む。また、プロセッサ14が、リアルタイムクロック15に時刻データを書き込む際、優先的に処理される高優先度処理が割り込む場合、プロセッサ14は、リアルタイムクロック15との通信を中断する。プロセッサ14は、高優先度処理を行った後、リアルタイムクロック15に時刻データを書き込む。そのため、図7に示すように、プロセッサ14が、リアルタイムクロック15に対する、時刻データの書き込みは即時に完了する訳ではなく、時刻データの書き込み開始から完了までのシリアル転送時間(時刻データ転送時間)が遅延時間(誤差)となってしまう。この誤差(遅延時間)は、パルス差分(差分時間)となる。そこで、この誤差を考慮するために、プロセッサ14、及びパルス計測回路18は、以降の動作を実行する。なお、リアルタイムクロック15は、プロセッサ14がリアルタイムクロック15に時刻データの書き込みを完了すると同時に、第2の内部時刻の歩進を開始する。
【0080】
図6に戻り、説明を続ける。プロセッサ14は、リアルタイムクロック15に、時刻データの書き込みを完了すると、パルス計測回路18にパルス計測回路18の有効命令を出力する(ステップS15)。パルス計測回路18は、パルス差分の計測を行う機能を有効にして、パルス差分の計測の準備を行う。なお、以降の説明では、図6において、時刻データの書き込み開始から書き込み完了までの時間を示すシリアル転送時間が10ミリ秒であったと仮定する。
【0081】
時刻カウンタ12から秒更新パルスが出力されると(ステップS16)、パルス計測回路18は、パルス差分の計測を開始する(ステップS17)。なお、時刻カウンタ12から出力される秒更新パルスは、第1の内部時刻の補正が完了した後、時刻カウンタ12が2番目に出力する秒更新パルスである。
【0082】
リアルタイムクロック15から秒更新パルスが出力されると(ステップS18)、パルス計測回路18は、パルス差分の計測を終了する(ステップS19)。パルス計測回路18は、カウントの開始から停止までの時間を、時刻カウンタ12が出力した秒更新パルスを受信した時刻と、リアルタイムクロック15が出力した秒更新パルスを受信した時刻との差分時間として計測を終了する。パルス計測回路18は、計測を終了すると、プロセッサ14にパルス計測完了通知を出力する。
【0083】
図6に示すように、パルス計測回路18が計測したパルス差分の計測結果である差分時間は、シリアル転送時間と同じ時間である10ミリ秒となる。パルス計測回路18は、第1の内部時刻の補正が完了した後、時刻カウンタ12が出力する2番目の秒更新パルスを受信した時刻からカウントを開始する。そして、パルス計測回路18は、第2の内部時刻が更新された後、リアルタイムクロック15が出力する最初の秒更新パルスを受信した時刻でカウントを停止する。このように、パルス計測回路18は、カウント開始から停止までの時間である差分時間を計測することで、シリアル転送時間を計測できる。
【0084】
プロセッサ14は、パルス計測回路18からパルス計測完了通知を受信(検知)した後、パルス計測回路18が計測したパルス差分の計測結果である差分時間を読み込み、不揮発性メモリ16に保存(セーブする)(ステップS20)。
【0085】
次に、図8及び図9を用いて、図4のステップS3において実行されるリストア処理について説明する。図8及び図9は、リストア処理を説明するための図である。まず、図8を用いて、リストア処理の動作例について説明する。図8は、リストア処理の動作を示すフローチャートであり、時刻同期化装置100の電源を起動し、リアルタイムクロック15から時刻カウンタ12に時刻をリストアするまでのフローチャートである。
【0086】
プロセッサ14は、リアルタイムクロック15から秒更新パルスが出力されたか否かを判定する(ステップS31)。
リアルタイムクロック15から秒更新パルスが出力されていない場合(ステップS31のNO)、プロセッサ14は、ステップS31を繰り返し実行する。
リアルタイムクロック15から秒更新パルスが出力された場合(ステップS31のYES)、プロセッサ14は、ステップS32を実行する。なお、リアルタイムクロック15から出力される秒更新パルスは、時刻同期化装置100が再起動した後、リアルタイムクロック15が最初に出力する秒更新パルスである。
【0087】
プロセッサ14は、リアルタイムクロック15から秒更新パルスを受信した場合、不揮発性メモリ16から、パルス差分の計測結果である差分時間を取得する(ステップS32)。
プロセッサ14は、リアルタイムクロック15から第2の内部時刻が示す時刻データを取得する(ステップS33)。
【0088】
プロセッサ14は、取得した時刻データと、取得した差分時間とに基づいて、時刻カウンタ12に設定(セット)する時刻データを算出し、算出した時刻データに基づいて、時刻カウンタ12の第1の内部時刻を設定する(ステップS34)。プロセッサ14は、取得した時刻データ+取得した差分時間+1秒を時刻カウンタ12に設定する時刻データとして算出する。
【0089】
ここで、差分時間は、セーブ処理において、プロセッサ14が、時刻カウンタ12から取得した時刻データを、リアルタイムクロック15に書き込み始めてから完了するまでのシリアル転送時間と同じ時間である。つまり、プロセッサ14は、シリアル転送時間を考慮した時刻データを算出し、シリアル転送時間を考慮した時刻データに基づいて、第1の内部時刻を設定する。
プロセッサ14は、第1の内部時刻の歩進開始許可命令を時刻カウンタ12に送信する(ステップS35)。
【0090】
時刻カウンタ12は、リアルタイムクロック15からの秒更新パルスが入力された瞬間に、第1の内部時刻の歩進を開始する(ステップS36)。リアルタイムクロック15は、時刻同期化装置100が再起動し、最初の秒更新パルスを出力した後、1秒が経過すると、2番目の秒更新パルスを出力する。時刻カウンタ12は、リアルタイムクロック15が出力した2番目の秒更新パルスを受信すると、第1の内部時刻の歩進を開始する。上記のように、第1の内部時刻として設定された時刻データは、シリアル転送時間が考慮されている。そのため、プロセッサ14は、リストア処理により、リアルタイムクロック15の時刻と、遅れ具合を示すシリアル転送時間とに基づいて、時刻カウンタ12に、電源消失前の時刻カウンタ12の時刻歩進状況を誤差なく復旧できる。
【0091】
次に、図9に示すタイミングチャートを用いて、図8で説明した動作例の具体例を説明する。なお、図9には、図8で説明した各動作との対応関係を理解し易くするために、関連する動作に、図8で記載した参照符号が付されている。また、以下の説明においても、図8で記載した参照符号を用いて説明する。
【0092】
図9において、左から右に向かうにつれて、時間が経過していることを示している。図9の上から順に、不揮発性メモリ16、時刻カウンタ12、プロセッサ14、及びリアルタイムクロック15のタイミングチャートを示している。
【0093】
時刻同期化装置100が2020年03月04日10:38:45の直前で起動し、プロセッサ14は、2020年03月04日10:38:45にリアルタイムクロック15が出力した秒更新パルスを受信する(ステップS31)。なお、当該秒更新パルスは、時刻同期化装置100が起動した後、リアルタイムクロック15が最初に出力する秒更新パルスである。
【0094】
プロセッサ14は、リアルタイムクロック15から秒更新パルスを受信すると、不揮発性メモリ16から、パルス差分の計測結果である差分時間を取得する(ステップS32)。なお、図6で示したように、セーブ処理において、パルス差分の計測結果である差分時間は10ミリ秒であるため、プロセッサ14は、不揮発性メモリ16から、10ミリ秒を取得する。
【0095】
プロセッサ14は、リアルタイムクロック15から第2の内部時刻が示す時刻データを取得する(ステップS33)。プロセッサ14は、リアルタイムクロック15から秒更新パルスを受信すると、即時にリアルタイムクロック15から時刻データを取得するため、2020年03月04日10:38:45を時刻データとして取得する。
【0096】
プロセッサ14は、取得した時刻データと、取得した差分時間とに基づいて、時刻カウンタ12に設定(セット)する時刻データを算出し、算出した時刻データに基づいて、時刻カウンタ12の第1の内部時刻を設定する(ステップS34)。プロセッサ14は、取得した時刻データ+取得した差分時間+1秒を、時刻カウンタ12に設定する時刻データとして算出する。取得した時刻データが、2020年03月04日10:38:45であり、取得した差分時刻が10ミリ秒であるため、プロセッサ14は、2020年03月04日10:38:46.010を、時刻カウンタ12に設定する時刻データとして算出する。プロセッサ14は、2020年03月04日10:38:46.010を、時刻カウンタ12の第1の内部時刻として設定する。
プロセッサ14は、第1の内部時刻の歩進開始許可命令を時刻カウンタ12に送信する(ステップS35)。
【0097】
時刻カウンタ12は、リアルタイムクロック15からの秒更新パルスが入力された瞬間に、第1の内部時刻の歩進を開始する(ステップS36)。リアルタイムクロック15からの秒更新パルスは、時刻同期化装置100が起動した後、リアルタイムクロック15が2番目に出力する秒更新パルスである。リアルタイムクロック15は、2020年03月04日10:38:46に、秒更新パルスを出力するが、時刻カウンタ12が、歩進を開始する第1の内部時刻は、秒更新パルスが出力された時刻に10ミリ秒が追加された時刻である。10ミリ秒は、パルス差分の計測結果である差分時間であり、シリアル転送時間と同じ時間である。つまり、時刻カウンタ12は、シリアル転送時間を考慮した時刻で第1の内部時刻の歩進を開始する。言い換えると、プロセッサ14は、リストア処理により、リアルタイムクロック15の時刻と、遅れ具合を示すシリアル転送時間とに基づいて、時刻カウンタ12に、電源消失前の時刻カウンタ12の時刻歩進状況を誤差なく復旧する。
【0098】
以上説明したように、パルス計測回路18は、プロセッサ14が、リアルタイムクロック15に時刻データの書き込む時間を含むデータ転送時間を考慮した差分時間を計測できる。そのため、瞬時電圧低下及び停電が発生し、時刻同期化装置100の電源が再び投入された場合でも、時刻カウンタ12は、リアルタイムクロック15の時刻と、パルス計測回路18が計測した差分時間とに基づいて、電源喪失前の時刻データを誤差なく復旧できる。したがって、実施の形態2にかかる時刻同期化装置100によれば、装置が起動した後に、装置起動前の時刻を精度よく設定できる。
【0099】
ここで、データ転送時間が一定時間であると仮定して時刻同期化装置100を動作させることで、時刻同期化装置100の動作を簡略化できる可能性がある。しかし、図7を用いて説明したように、プロセッサ14は、高優先度処理を実行することから、データ転送時間は一定とはならない。そのため、データ転送時間が一定時間であると仮定して時刻同期化装置100を動作させると、装置が起動した後に、装置起動前の時刻を精度よく設定できなくなってしまう。
【0100】
これに対して、実施の形態2では、パルス計測回路18は、高優先度処理により、リアルタイムクロック15に時刻データの書き込みが出来ない時間を含む差分時間を計測できる。そのため、時刻同期化装置100によれば、装置稼働時に、プロセッサ14上で動作する高優先度処理に影響されることなく、装置内の時刻を補正できる。したがって、実施の形態2にかかる時刻同期化装置100によれば、装置が起動した後に、装置起動前の時刻を精度よく設定できる。
【0101】
(変形例1)
実施の形態2では、時刻カウンタ12は、1kHzの水晶発振器を使用することで説明したが、32.768kHzの水晶発振器を使用してもよい。この場合、時刻カウンタ12は、年、月、日、時、分及び秒と、15ビットのバイナリカウンタとを含む時刻を計時する。時刻カウンタ12は、秒以下の15ビットのバイナリカウンタが、16ビット目に桁上がりする場合に1秒が経過したと判断する。実施の形態2のように、1kHzの水晶発信器が使用される場合、秒以下のデータ形式は、ms:ms:msとして表すことができる。なお、msはミリ秒を示す。これに対して、本変形例のように、32.768kHzの水晶発信器が使用される場合、15ビットカウンタのバイナリデータの値が、秒未満の時刻を表すことになる。なお、15ビットカウンタであるため、時刻に関する単位はないことになる。
【0102】
また、時刻カウンタ12が32.768kHzの水晶発振器を使用する場合でも、パルス計測回路18は、時刻カウンタ12が使用するクロック波形を使用する。そのため、パルス計測回路18が計測するパルス差分の計測結果である差分時間も、15ビットのバイナリカウンタで計測される。
【0103】
プロセッサ14は、パルス計測回路18が計測完了した後、不揮発性メモリ16に、パルス計測回路18が計測するパルス差分の計測結果である差分時間を、15ビットのバイナリデータとしてセーブする。時刻同期化装置100が再起動した後、プロセッサ14は、リアルタイムクロック15からの秒更新パルスを検知した瞬間に、リアルタイムクロック15から時刻データを読み込み、不揮発性メモリ16からパルス差分を読み込む。プロセッサ14は、時刻カウンタ12に、リアルタイムクロック15から読み込んだ時刻データ、不揮発性メモリ16から読み込んだパルス差分の計測結果と、1秒とを加算して、時刻カウンタ12に時刻を設定する。
【0104】
この際、時刻カウンタ12は、秒未満の桁が15ビットのバイナリカウンタで第1の内部時刻を計時し、パルス計測回路18が計測する差分時間も15ビットのバイナリデータである。また、不揮発性メモリ16にセーブしてある差分時間も15ビットのバイナリデータである。そのため、プロセッサ14は、32.768kHzの水晶発振器が使用された場合でも、追加の変換処理を行うことなく、時刻カウンタ12に算出した時刻データを設定できる。このように、実施の形態2を本変形例のように変形を施しても、実施の形態2と同様の効果を得ることができる。
【0105】
(変形例2)
実施の形態2では、時刻カウンタ12の第1の内部時刻が補正された後に、時刻カウンタ12が最初に出力する秒更新パルスを契機にセーブ処理を実行したが、セーブ処理の開始契機に使用する秒更新パルスを他の秒更新パルスとしてもよい。具体的には、プロセッサ14は、時刻カウンタ12が出力する、任意の秒更新パルスを契機に、セーブ処理を実行してもよい。もしくは、時報受信機11が時報を受信できなかった場合、プロセッサ14は、任意の秒更新パルスを契機に、セーブ処理を実行してもよい。このようにすれば、時刻カウンタ12の第1の内部時刻が、正時からの時刻ずれを含んでしまうが、時報受信機11が時報を受信できなかったとしても、データ転送時間を考慮したセーブ処理を実行できる。
【0106】
(変形例3)
実施の形態2において、不揮発性メモリ16が、パルス差分の計測結果である差分時間を、一定数保持するようにしてもよい。プロセッサ14は、リストア処理において、不揮発性メモリ16に保存されている、複数の差分時間の平均値、最小値、中央値、及び最大値のうち、少なくとも1つを算出し、算出した時間をリストア処理に使用してもよい。もしくは、プロセッサ14は、リストア処理において、不揮発性メモリ16に保存されている複数の差分時間に基づき機械学習により学習された学習モデルを使用して、差分時間の推奨値を推定し、推定された差分時間をリストア処理に使用してもよい。このようにすれば、高優先度処理が非周期的に発生する場合に、最適な差分時間をリストア処理で使用でき、プロセッサ14上で動作する高優先度処理に影響されることなく、装置起動時に装置内の時刻を補正できる。
【0107】
本開示は、それぞれの実施の形態を適宜組み合わせて実施されてもよい。また、本開示は、上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記実施の形態では、ハードウェアの構成として説明したが、本開示は、これに限定されるものではない。本開示は、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。
【0108】
プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【符号の説明】
【0109】
1、100 時刻同期化装置
2 第1の計時回路
3 第2の計時回路
4 制御部
5 計測回路
11 時報受信機
12 時刻カウンタ
13 時刻送出回路
14 プロセッサ
15 リアルタイムクロック
16 不揮発性メモリ
17 電池
18 パルス計測回路
20 時刻データ信号線
21 時刻データ分配バス
22 時刻カウンタ制御バス
23 シリアル転送バス
24 メモリバス
25 時刻カウンタ秒更新パルス線
26 リアルタイムクロック秒更新パルス線
27 パルス計測回路制御バス
28 リアルタイムクロック秒更新通知線
図1
図2
図3
図4
図5
図6
図7
図8
図9