JP6918268B2 - スレーブ機器、時刻同期プログラム、組み込みシステムおよび時刻同期方法 - Google Patents

スレーブ機器、時刻同期プログラム、組み込みシステムおよび時刻同期方法 Download PDF

Info

Publication number
JP6918268B2
JP6918268B2 JP2021504646A JP2021504646A JP6918268B2 JP 6918268 B2 JP6918268 B2 JP 6918268B2 JP 2021504646 A JP2021504646 A JP 2021504646A JP 2021504646 A JP2021504646 A JP 2021504646A JP 6918268 B2 JP6918268 B2 JP 6918268B2
Authority
JP
Japan
Prior art keywords
master
slave
clock
environment value
frequency deviation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021504646A
Other languages
English (en)
Other versions
JPWO2020183572A1 (ja
Inventor
章雄 出原
章雄 出原
寛隆 茂田井
寛隆 茂田井
由梨香 寺田
由梨香 寺田
万平 鍛治
万平 鍛治
大谷 敏幸
敏幸 大谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6918268B2 publication Critical patent/JP6918268B2/ja
Publication of JPWO2020183572A1 publication Critical patent/JPWO2020183572A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • GPHYSICS
    • G04HOROLOGY
    • G04GELECTRONIC TIME-PIECES
    • G04G7/00Synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Electric Clocks (AREA)

Description

本発明は、マスタノードとスレーブノードとの時刻同期に関するものである。
マスタノードの時刻とスレーブノードの時刻とを同期させるために、マスタノードとスレーブノードとの間で定期的に同期フレームが通信される。
特許文献1には、単一の組み込み装置において時刻誤差を補正するための方法が開示されている。
単一の組み込み装置はRTCとシステム時計とを有する。特許文献1に開示された方法により、RTCが示す時刻とシステム時計が示す時刻との誤差を補正することが可能となる。RTCはリアルタイムクロックの略称である。
特開2017−020852号公報
マスタノードとスレーブノードとの間で時刻同期の状態を維持するためには、同期フレームの通信頻度を上げる必要がある。しかし、同期フレームの通信頻度が上がると、同期フレームの通信量、および、同期フレームの通信のための処理負荷が増加する。その場合、マスタノードからスレーブノードへ制御フレームの通信が同期フレームの通信による影響を受けてしまい、スレーブノードが正しく動作しない可能性がある。
特許文献1に開示された方法は、単一の組み込み装置のための方法であり、各種フレームが通信されるノード間の時刻同期のためにそのまま適用することはできない。
本発明は、同期フレームの通信量を削減しつつ、ノード間の時刻同期を可能にすることを目的とする。
本発明のスレーブ機器は、マスタ機器から送信される制御フレームに従って動作する。
前記スレーブ機器は、
クロックデバイスであるスレーブクロックと、
前記マスタ機器から送信された1つ以上の制御フレームの統計量である制御フレーム統計量を算出する統計量算出部と、
算出された制御フレーム統計量に基づいて、前記マスタ機器の動作環境を表すマスタ環境値を推定するマスタ環境値推定部と、
前記スレーブ機器の動作環境を表すスレーブ環境値を計測するスレーブ環境値計測部と、
推定されたマスタ環境値に基づいて、前記マスタ機器に備わるマスタクロックの周波数偏差を推定し、計測されたスレーブ環境値に基づいて、前記スレーブクロックの周波数偏差を推定する周波数偏差推定部と、
前記マスタクロックの周波数偏差と前記スレーブクロックの周波数偏差との差分に基づいて、前記スレーブクロックのクロック値を修正するクロック補正部とを備える。
本発明によれば、マスタ機器からスレーブ機器へ送信される1つ以上の制御フレームの統計量に基づいて、マスタ機器とスレーブ機器との時刻同期を実現することができる。つまり、同期フレームの通信量を削減しつつ、ノード間の時刻同期を行うことが可能となる。
実施の形態1における組み込みシステム100の構成図。 実施の形態1におけるマスタノード200の構成図。 実施の形態1における運用部210および時刻同期部220の構成図。 実施の形態1におけるスレーブノード300の構成図。 実施の形態1における運用部310および時刻同期部320の構成図。 実施の形態1におけるチューニングフェーズ(マスタノード)のフローチャート。 実施の形態1におけるマスタ周波数偏差テーブル101を示す図。 実施の形態1におけるチューニングフェーズ(スレーブノード)のフローチャート。 実施の形態1におけるマスタ環境値テーブル102を示す図。 実施の形態1における運用フェーズ(時刻同期)のフローチャート。 実施の形態1におけるクロック補正処理(S130)のフローチャート。 実施の形態1における課題の説明図。 実施の形態1における課題の説明図。 実施の形態1における課題の説明図。 実施の形態1におけるマスタノード200のハードウェア構成図。 実施の形態1におけるスレーブノード300のハードウェア構成図。
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
実施の形態1.
マスタノードとスレーブノードとの間の時刻同期について、図1から図16に基づいて説明する。
***構成の説明***
図1に基づいて、組み込みシステム100の構成を説明する。
組み込みシステム100は、マスタノード200とスレーブノード300とを備える。
マスタノード200は、組み込みシステム100に備わる組み込み機器であり、「マスタ機器」ともいう。
スレーブノード300は、組み込みシステム100に備わる組み込み機器であり、「スレーブ機器」ともいう。
マスタノード200とスレーブノード300とは、制御ネットワーク109を介して通信を行う。
制御ネットワーク109は、組み込みシステム100における通信ネットワークである。
マスタノード200は制御フレームをスレーブノード300に送信し、スレーブノード300は制御フレームに従って動作する。これにより、マスタノード200とスレーブノード300は同期処理を行う。
例えば、マスタノード200はベルトコンベアの一端のモータを制御する機器であり、スレーブノード300はベルトコンベアの他端のモータを制御する機器である。マスタノード200とスレーブノード300は、ベルトコンベアの両端のモータを同期して動作させる必要がある。
図2に基づいて、マスタノード200の構成を説明する。
マスタノード200は、プロセッサ201とメモリ202と補助記憶装置203とクロックデバイス204と通信デバイス205と入出力デバイス206といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
プロセッサ201は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ201は、CPU、DSPまたはGPUである。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
DSPは、Digital Signal Processorの略称である。
GPUは、Graphics Processing Unitの略称である。
メモリ202は揮発性の記憶装置である。メモリ202は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ202はRAMである。メモリ202に記憶されたデータは必要に応じて補助記憶装置203に保存される。
RAMは、Random Access Memoryの略称である。
補助記憶装置203は不揮発性の記憶装置である。例えば、補助記憶装置203は、ROM、HDDまたはフラッシュメモリである。補助記憶装置203に記憶されたデータは必要に応じてメモリ202にロードされる。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
クロックデバイス204は、時刻を表すクロック信号を出力するデバイスである。例えば、クロックデバイス204は、水晶発振器であり、水晶振動子を有する。
クロックデバイス204は、「マスタクロック」ともいう。
通信デバイス205は、レシーバおよびトランスミッタである。例えば、通信デバイス205は通信チップまたはNICである。マスタノード200の通信は、通信デバイス205を用いて行われる。
NICは、Network Interface Cardの略称である。
入出力デバイス206は、入力デバイスおよび出力デバイスである。例えば、入出力デバイス206は、センサ、LEDおよびモータなどである。
LEDは、Light Emitting Diodeの略称である。
環境センサ207は、マスタノード200の動作環境を計測するためのセンサである。例えば、環境センサ207は、温度計、ジャイロまたは電圧計などである。
マスタノード200は、運用部210と時刻同期部220といった要素を備える。これらの要素はソフトウェアで実現される。
補助記憶装置203には、運用部210と時刻同期部220としてコンピュータを機能させるためのマスタプログラム(運用プログラムおよび時刻同期プログラム)が記憶されている。マスタプログラムは、メモリ202にロードされて、プロセッサ201によって実行される。
補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
プロセッサ201は、OSを実行しながら、マスタプログラムを実行する。
OSは、Operating Systemの略称である。
マスタプログラムの入出力データは記憶部290に記憶される。
メモリ202は記憶部290として機能する。但し、補助記憶装置203、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの記憶装置が、メモリ202の代わりに、又は、メモリ202と共に、記憶部290として機能してもよい。
マスタノード200は、プロセッサ201を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ201の役割を分担する。
マスタプログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
図3に基づいて、運用部210と時刻同期部220とのそれぞれの構成を説明する。
運用部210は、フレーム通信部211とデバイス制御部212とを備える。
時刻同期部220は、テーブル提供部221と擬似通信部222とマスタ環境値計測部223と同期フレーム通信部224とを備える。
各要素の機能については後述する。
図4に基づいて、スレーブノード300の構成を説明する。
スレーブノード300は、プロセッサ301とメモリ302と補助記憶装置303とクロックデバイス304と通信デバイス305と入出力デバイス306といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
プロセッサ301は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ301はCPU、DSPまたはGPUである。
メモリ302は揮発性の記憶装置である。メモリ302は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ302はRAMである。メモリ302に記憶されたデータは必要に応じて補助記憶装置303に保存される。
補助記憶装置303は不揮発性の記憶装置である。例えば、補助記憶装置303は、ROM、HDDまたはフラッシュメモリである。補助記憶装置303に記憶されたデータは必要に応じてメモリ302にロードされる。
クロックデバイス304は、時刻を表すクロック信号を出力するデバイスである。例えば、クロックデバイス304は、水晶発振器であり、水晶振動子を有する。
クロックデバイス304は、「スレーブクロック」ともいう。
通信デバイス305は、レシーバおよびトランスミッタである。例えば、通信デバイス305は通信チップまたはNICである。スレーブノード300の通信は、通信デバイス305を用いて行われる。
入出力デバイス306は、入力デバイスおよび出力デバイスである。例えば、入出力デバイス306は、センサ、LEDおよびモータなどである。
環境センサ307は、スレーブノード300の動作環境を計測するためのセンサである。例えば、環境センサ307は、温度計、ジャイロまたは電圧計などである。
スレーブノード300は、運用部310と時刻同期部320といった要素を備える。これらの要素はソフトウェアで実現される。
補助記憶装置303には、運用部310と時刻同期部320としてコンピュータを機能させるためのスレーブプログラム(運用プログラムおよび時刻同期プログラム)が記憶されている。スレーブプログラムは、メモリ302にロードされて、プロセッサ301によって実行される。
補助記憶装置303には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ302にロードされて、プロセッサ301によって実行される。
プロセッサ301は、OSを実行しながら、スレーブプログラムを実行する。
スレーブプログラムの入出力データは記憶部390に記憶される。
メモリ302は記憶部390として機能する。但し、補助記憶装置303、プロセッサ301内のレジスタおよびプロセッサ301内のキャッシュメモリなどの記憶装置が、メモリ302の代わりに、又は、メモリ302と共に、記憶部390として機能してもよい。
スレーブノード300は、プロセッサ301を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ301の役割を分担する。
スレーブプログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
図5に基づいて、運用部310と時刻同期部320とのそれぞれの構成を説明する。
運用部310は、フレーム通信部311とデバイス制御部312とを備える。
時刻同期部320は、テーブル取得部321と擬似通信部322と統計量算出部323とテーブル生成部324とマスタ環境値推定部325とスレーブ環境値計測部326と周波数偏差推定部327とクロック補正部328と同期フレーム通信部329とを備える。
各要素の機能については後述する。
***動作の説明***
マスタノード200の時刻同期部220とスレーブノード300の時刻同期部320との動作は時刻同期方法に相当する。また、時刻同期方法の手順は時刻同期プログラムの手順に相当する。
時刻同期方法は、チューニングフェーズと運用フェーズとを有する。
チューニングフェーズは、運用フェーズの前に実施される。チューニングフェーズでは、運用フェーズにおける時刻同期のための準備が行われる。例えば、チューニングフェーズは、季節の変わり目、および、組み込みシステム100におけるラインの組み換え時などに実施される。チューニングフェーズの実施時期は、利用者によって適宜に決められる。
運用フェーズは、チューニングフェーズの後に実施される。運用フェーズでは、スレーブノード300が、マスタノード200と時刻の同期を取りながら、制御フレームに従って動作する。
図6に基づいて、チューニングフェーズにおけるマスタノード200の動作を説明する。
ステップS101において、テーブル提供部221は、マスタ周波数偏差テーブル101をスレーブノード300に提供する。
マスタ周波数偏差テーブル101は、マスタ環境値とマスタ周波数偏差との関係を示すデータである。マスタ周波数偏差テーブル101には、1つ以上のマスタ環境値と1つ以上のマスタ周波数偏差とが互いに対応付けられている。
マスタ環境値は、マスタノード200の動作環境を表す値である。例えば、マスタ環境値は、温度、加速度または電圧などである。具体的には、マスタ環境値は、マスタクロックの温度である。
マスタ周波数偏差は、マスタクロックの周波数偏差である。
テーブル提供部221は、マスタ周波数偏差テーブル101を以下のように提供する。
マスタ周波数偏差テーブル101は、記憶部390に予め記憶されている。
テーブル提供部221は、マスタ周波数偏差テーブルをスレーブノード300へ送信する。
図7に、マスタ周波数偏差テーブル101の具体例を示す。
マスタ周波数偏差テーブル101は、1つ以上のレコードを有する。それぞれのレコードは、「温度」欄と「周波数」欄とを有し、「温度」欄と「周波数偏差」欄とを互いに対応付けている。
「温度」欄は、マスタクロックの相対温度を示している。マスタクロックの相対温度はマスタ環境値の一例である。
「周波数偏差」欄は、マスタクロックの周波数偏差の相対値を示している。
例えば、マスタクロックの温度が10度上がった場合、マスタクロックの周波数偏差が10上がる。
図6に戻り、ステップS102から説明を続ける。
ステップS102において、擬似通信部222は、1つ以上の制御フレームを生成し、生成した1つ以上の制御フレームをスレーブノード300へ送信する。
また、擬似通信部222は、1つ以上の環境値フレームを生成し、生成した1つ以上の環境値フレームをスレーブノード300へ送信する。
制御フレームは、スレーブノード300に指示する制御の内容を示すフレームである。
環境値フレームは、マスタ環境値を示すフレームである。
具体的には、擬似通信部222は、マスタ環境値が飽和するまで継続して、制御フレームと環境値フレームとをスレーブノード300へ送信する。制御フレームの送信間隔と環境値フレームの送信間隔は、同じでもよいし、異なってもよい。
制御フレームの内容は、運用フェーズにおける内容と同様である。
擬似通信部222は、運用フェーズにおけるフレーム通信部211の動作をシミュレーションすることによって、制御フレームを生成する。
環境値フレームは、以下のように生成される。
マスタ環境値計測部223は、環境センサ207を用いてマスタ環境値を計測する。
擬似通信部222は、計測されたマスタ環境値を含むフレームを生成する。生成されるフレームが環境値フレームである。
図8に基づいて、チューニングフェーズにおけるスレーブノード300の動作を説明する。
ステップS111において、テーブル取得部321は、マスタ周波数偏差テーブルをマスタノード200から取得する。
具体的には、テーブル取得部321は、マスタノード200から送信されるマスタ周波数偏差テーブルを受信する。そして、テーブル取得部321は、受信したマスタ周波数偏差テーブルを記憶部290に保存する。
ステップS112において、擬似通信部322は、1つ以上の制御フレームと1つ以上の環境値フレームとをスレーブノード300から受信する。
具体的には、擬似通信部322は、スレーブノード300から定期的に送信される制御フレームを受信する。また、擬似通信部322は、スレーブノード300から定期的に送信される環境値フレームを受信する。
ステップS113において、統計量算出部323は、受信された1つ以上の制御フレームに基づいて、1つ以上の制御フレーム統計量を算出する。
制御フレーム統計量は、通信された制御フレームの統計量である。例えば、制御フレーム統計量は、制御フレームの通信回数、制御フレームの合計サイズ、または、制御内容の統計量である。例えば、制御内容の統計量は、モータの回転数の合計である。
具体的には、統計量算出部323は、規定数の制御フレームが受信される毎に、制御フレーム統計量を算出する。
ステップS114において、テーブル生成部324は、1つ以上の制御フレーム統計量と、1つ以上の環境値フレームが示す1つ以上のマスタ環境値とを用いて、マスタ環境値テーブル102を生成する。
そして、テーブル生成部324は、マスタ環境値テーブル102を記憶部390に保存する。
マスタ環境値テーブル102は、制御フレーム統計量とマスタ環境値との関係を示すデータである。
テーブル生成部324は、マスタ環境値テーブル102を以下のように生成する。
テーブル生成部324は、規定数の制御フレームが受信される毎に、統計量算出部323から制御フレーム統計量を取得する。
テーブル生成部324は、規定数番目の制御フレームの後の(または前の)環境値フレームが受信される毎に、受信された環境値フレームからマスタ環境値を取得する。
そして、テーブル生成部324は、制御フレーム統計量とマスタ環境値とを含んだレコードを生成し、生成したレコードをマスタ環境値テーブル102に登録する。
図9に、マスタ環境値テーブル102の具体例を示す。
マスタ環境値テーブル102は、1つ以上のレコードを有する。それぞれのレコードは、「通信回数」欄と「温度」欄と「備考」欄とを有し、「通信回数」欄と「温度」欄と「備考」欄とを互いに対応付けている。
「通信回数」欄は、制御フレームが通信された回数(通信回数)を示す。通信回数は制御フレーム統計量の一例である。
「温度」欄は、マスタクロックの絶対温度を示す。マスタクロックの絶対温度はマスタ環境値の一例である。
「備考」欄は、マスタクロックの絶対温度が飽和したか否かを示す。制御フレームが100回通信されたときのマスタクロックの絶対温度は50度である。制御フレームが105回通信されたときのマスタクロックの絶対温度は50度である。このとき、マスタクロックの絶対温度が変わっていないため、マスタクロックの絶対温度は飽和している。
次に、運用フェーズについて説明する。
マスタノード200において、フレーム通信部211は、運用アルゴリズムに従って、制御フレーム生成してスレーブノード300へ送信する。また、デバイス制御部212は、運用アルゴリズムに従って、入出力デバイス206を制御する。運用アルゴリズムは、運用プログラムに記述されたアルゴリズムである。
スレーブノード300において、フレーム通信部311は、スレーブノード300から制御フレームを受信し、受信した制御フレームから制御内容を取得する。そして、デバイス制御部312は、取得された制御内容に従って、入出力デバイス306を制御する。
スレーブノード300の同期フレーム通信部329は、定期的にマスタノード200の同期フレーム通信部224と同期フレームを通信し、通信した同期フレームに基づいてスレーブクロックのクロック値をマスタクロックのクロック値に合わせる。同期フレームは、時刻同期のために通信されるフレームである。同期フレームに基づく時刻同期は従来技術である。
スレーブノード300は、同期フレームの通信量を削減するため、つまり、同期フレームの通信間隔を延ばすため、制御フレームに基づく時刻同期を行う。
図10に基づいて、スレーブノード300による制御フレームに基づく時刻同期を説明する。
制御フレームに基づく時刻同期は、定期的に行われる。例えば、時刻同期部320は、規定数の制御フレームが受信される毎に、または、規定時間が経過する毎に、制御フレームに基づく時刻同期を行う。
ステップS121において、統計量算出部323は、制御フレーム統計量を算出する。
算出方法は、ステップS113における方法と同じである。例えば、統計量算出部323は、運用フェーズにおける制御フレームの通信回数を算出する。
ステップS122において、マスタ環境値推定部325は、制御フレーム統計量に基づいて、マスタ環境値を推定する。
具体的には、マスタ環境値推定部325は、マスタ環境値テーブル102を用いて、マスタ環境値を推定する。
図9に基づいて、推定されるマスタ環境値の具体例を説明する。
制御フレームの通信回数(制御フレーム統計量)が「15回」であると仮定する。
この場合、マスタ環境値推定部325は、通信回数「15回」に対応付けられた温度「33度」をマスタ環境値テーブル102から取得する。取得された温度「33度」が推定されたマスタ環境値である。
図10に戻り、ステップS123から説明を続ける。
ステップS123において、周波数偏差推定部327は、推定されたマスタ環境値に基づいて、マスタクロックの周波数偏差を推定する。マスタクロックの周波数偏差を「マスタ周波数偏差」と称する。
具体的には、周波数偏差推定部327は、マスタ周波数偏差テーブル101を用いて、マスタ周波数偏差を推定する。
図7に基づいて、推定されるマスタ周波数偏差の具体例を説明する。
前回のマスタ環境値が「30度」であり、今回のマスタ環境値が「33度」であると仮定する。マスタ環境値の変化量は「3度」である。
この場合、周波数偏差推定部327は、マスタ環境値の変化量「3度」に対応する周波数偏差「−10」をマスタ周波数偏差テーブル101から取得する。取得された周波数偏差「−10」が推定されたマスタ周波数偏差である。
図10に戻り、ステップS124から説明を続ける。
ステップS124において、スレーブ環境値計測部326は、環境センサ307を用いて、スレーブ環境値を計測する。
ステップS125において、周波数偏差推定部327は、計測されたスレーブ環境値に基づいて、スレーブクロックの周波数偏差を推定する。スレーブクロックの周波数偏差を「スレーブ周波数偏差」と称する。
周波数偏差推定部327は、スレーブ周波数偏差を以下のように推定する。
マスタ周波数偏差テーブル101に相当するスレーブ周波数偏差テーブルが、記憶部390に予め記憶されている。
スレーブ周波数偏差テーブルは、スレーブ環境値とスレーブ周波数偏差との関係を示すデータである。スレーブ周波数偏差テーブルには、1つ以上のスレーブ環境値と1つ以上のスレーブ周波数偏差とが互いに対応付けられている。
周波数偏差推定部327は、スレーブ周波数偏差テーブルを用いて、スレーブ周波数偏差を推定する。推定方法は、ステップS123における方法と同様である。
ステップS130において、クロック補正部328は、推定されたマスタ周波数偏差と推定されたスレーブ周波数偏差との差分に基づいて、スレーブクロックのクロック値を修正する。
図11に基づいて、クロック補正処理(S130)の手順を説明する。
ステップS131において、クロック補正部328は、マスタ周波数偏差とスレーブ周波数偏差との差分を算出する。算出される差分を「周波数差分」と称する。
周波数差分は、マスタクロックの周波数とスレーブクロックの周波数との差分に相当する。
ステップS132において、クロック補正部328は、周波数差分に基づいて、クロック値差分を算出する。
クロック値差分は、マスタクロックのクロック値とスレーブクロックのクロック値との差分である。
クロック補正部328は、クロック値差分を以下のように算出する。
クロック補正処理(S130)の実行毎に、クロック補正部328は、前回の実行時刻からの経過時間を計測する。
そして、クロック補正部328は、周波数差分に経過時間を乗算する。得られる値がクロック値差分である。
ステップS133において、クロック補正部328は、クロック値差分に基づいて、スレーブクロックのクロック値を修正する。
つまり、クロック補正部328は、スレーブクロックのクロック値を、クロック値差分だけ変化させた値に補正する。
例えば、クロック補正部328は、次回のクロック補正処理(S130)までの間に、スレーブクロックのクロック値を複数回に分けて修正する。但し、クロック補正部328は、スレーブクロックのクロック値を一度に修正してもよい。
***実施の形態1の効果***
図12から図14に基づいて、実施の形態1によって解決される課題について説明する。
マスタクロック値は、マスタクロックのクロック値である。
スレーブクロック値は、スレーブクロックのクロック値である。
図12に示すように、マスタクロックの周波数とスレーブクロックの周波数との両方が一定であるならば、同期周期Tにおけるクロック値差分Dは一定である。この場合、同期周期Tが経過する毎に、スレーブクロック値をクロック値差分Dだけ変化させれば、マスタクロックとスレーブクロックとを同期させることができる。
しかし、一般的に、水晶発振子を有するクロックデバイスがスレーブクロックとして使用される。そのため、スレーブクロックの周波数は、外部環境(主に温度)の変化に応じて変化する。
図13に示すように、マスタクロックの周波数が一定であってもスレーブクロックの周波数が一定でなければ、同期周期Tにおけるクロック値差分(D1、D2)は変化する。一方、水晶発振子の特性として周波数温度特性が一般的に知られている。そのため、スレーブノードは、スレーブクロックの水晶発振子の温度を計測すれば、計測した温度とスレーブクロックの水晶発振子の周波数温度特性とに基づいて、スレーブクロックの周波数偏差を推定することが可能である。
そこで、スレーブノードは、同期周期Tが経過する毎に、スレーブクロックの周波数偏差を推定し、推定した周波数偏差に基づいてクロック値差分(D1、D2)を推定し、推定したクロック値差分(D1、D2)だけスレーブクロック値を変化させる。これにより、スレーブクロックをマスタクロックに同期させることが可能となる。
しかし、人工衛星では原子時計がクロックデバイスとして使用されるが、一般的には、水晶発振子を有するクロックデバイスがマスタクロックとして使用される。そのため、マスタクロックの周波数は、外部環境(主に温度)の変化に応じて変化する。
図14に示すように、マスタクロックの周波数はマスタノードの外部環境に応じて変化し、スレーブクロックの周波数はスレーブノードの外部環境(温度)に応じて変化する。そのため、同期周期Tにおけるクロック値差分(D1、D2)は変化する。
スレーブノードは、スレーブクロックの水晶発振子の温度に基づいて、スレーブクロックの周波数を推定することが可能である。
しかし、スレーブノードは、マスタクロックの水晶発振子の温度を知らないため、マスタクロックの周波数を推定することができない。運用フェーズにおいて、制御フレームの通信に影響を与えないようにするため、マスタクロックの水晶発振子の温度を通知するための環境値フレームは通信しない方がよい。
実施の形態1により、以下のような効果を奏することができる。
チューニングフェーズにおいて、スレーブノード300は、1つ以上の制御フレームと1つ以上の環境値フレームとをマスタノード200から受信する。そして、スレーブノード300は、制御フレーム統計量とマスタ環境値との関係を示すマスタ環境値テーブル102を生成する。
運用フェーズにおいて、スレーブノード300は、マスタノード200から受信した1つ以上の制御フレームに基づいて、制御フレーム統計量を算出する。そして、スレーブノード300は、算出した制御フレーム統計量とマスタ環境値テーブル102とに基づいて、マスタ環境値を推定する。
つまり、スレーブノード300は、制御フレームの通信によって、マスタ環境値を推定することができる。さらに、スレーブノード300は、推定されたマスタ環境値に基づいて、マスタクロックの周波数偏差を推定することができる。そして、スレーブノード300は、スレーブクロックの周波数偏差とマスタクロックの周波数偏差との差分に基づいてスレーブクロックのクロック値を修正することによって、スレーブクロックをマスタクロックと同期させることができる。
その結果、同期フレームの通信量を削減すること、つまり、同期フレームの通信間隔を延ばすことが可能となる。
***実施の形態の補足***
図15に基づいて、マスタノード200のハードウェア構成を説明する。
マスタノード200は処理回路209を備える。
処理回路209は、運用部210と時刻同期部220とを実現するハードウェアである。
処理回路209は、専用のハードウェアであってもよいし、メモリ202に格納されるプログラムを実行するプロセッサ201であってもよい。
処理回路209が専用のハードウェアである場合、処理回路209は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
ASICは、Application Specific Integrated Circuitの略称である。
FPGAは、Field Programmable Gate Arrayの略称である。
マスタノード200は、処理回路209を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路209の役割を分担する。
マスタノード200において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、処理回路209はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
図16に基づいて、スレーブノード300のハードウェア構成を説明する。
スレーブノード300は処理回路309を備える。
処理回路309は、運用部310と時刻同期部320とを実現するハードウェアである。
処理回路309は、専用のハードウェアであってもよいし、メモリ302に格納されるプログラムを実行するプロセッサ301であってもよい。
処理回路309が専用のハードウェアである場合、処理回路309は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
スレーブノード300は、処理回路309を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路309の役割を分担する。
スレーブノード300において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、処理回路309はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
マスタノード200とスレーブノード300とのそれぞれの要素である「部」は、「処理」または「工程」と読み替えてもよい。
100 組み込みシステム、101 マスタ周波数偏差テーブル、102 マスタ環境値テーブル、109 制御ネットワーク、200 マスタノード、201 プロセッサ、202 メモリ、203 補助記憶装置、204 クロックデバイス、205 通信デバイス、206 入出力デバイス、207 環境センサ、209 処理回路、210 運用部、211 フレーム通信部、212 デバイス制御部、220 時刻同期部、221 テーブル提供部、222 擬似通信部、223 マスタ環境値計測部、224 同期フレーム通信部、290 記憶部、300 スレーブノード、301 プロセッサ、302 メモリ、303 補助記憶装置、304 クロックデバイス、305 通信デバイス、306 入出力デバイス、307 環境センサ、309 処理回路、310 運用部、311 フレーム通信部、312 デバイス制御部、320 時刻同期部、321 テーブル取得部、322 擬似通信部、323 統計量算出部、324 テーブル生成部、325 マスタ環境値推定部、326 スレーブ環境値計測部、327 周波数偏差推定部、328 クロック補正部、329 同期フレーム通信部、390 記憶部。

Claims (9)

  1. マスタ機器から送信される制御フレームに従って動作するスレーブ機器であって、
    クロックデバイスであるスレーブクロックと、
    前記マスタ機器から送信された1つ以上の制御フレームの統計量である制御フレーム統計量を算出する統計量算出部と、
    算出された制御フレーム統計量に基づいて、前記マスタ機器の動作環境を表すマスタ環境値を推定するマスタ環境値推定部と、
    前記スレーブ機器の動作環境を表すスレーブ環境値を計測するスレーブ環境値計測部と、
    推定されたマスタ環境値に基づいて、前記マスタ機器に備わるマスタクロックの周波数偏差を推定し、計測されたスレーブ環境値に基づいて、前記スレーブクロックの周波数偏差を推定する周波数偏差推定部と、
    前記マスタクロックの周波数偏差と前記スレーブクロックの周波数偏差との差分に基づいて、前記スレーブクロックのクロック値を修正するクロック補正部と、
    を備えるスレーブ機器。
  2. 前記マスタ環境値推定部は、制御フレーム統計量とマスタ環境値との関係を示すマスタ環境値テーブルを用いて、前記マスタ環境値を推定する
    請求項1に記載のスレーブ機器。
  3. 前記マスタ機器は、前記スレーブ機器が制御フレームに従って動作する運用フェーズの前のチューニングフェーズにおいて、1つ以上の制御フレームと、1つ以上のマスタ環境値を示す1つ以上の環境値フレームとを送信し、
    前記スレーブ機器は、前記マスタ環境値テーブルを生成するテーブル生成部を備え、
    前記統計量算出部は、前記チューニングフェーズにおいて前記マスタ機器から送信された1つ以上の制御フレームに基づいて、前記チューニングフェーズにおける1つ以上の制御フレーム統計量を算出し、
    前記テーブル生成部は、前記チューニングフェーズにおける1つ以上の制御フレーム統計量と、前記チューニングフェーズにおいて前記マスタ機器から送信された1つ以上の環境値フレームが示す1つ以上のマスタ環境値とを用いて、前記マスタ環境値テーブルを生成する
    請求項2に記載のスレーブ機器。
  4. 前記周波数偏差推定部は、マスタ環境値と周波数偏差との関係を示すマスタ周波数偏差テーブルを用いて前記マスタクロックの周波数偏差を推定する
    請求項3に記載のスレーブ機器。
  5. 前記マスタ周波数偏差テーブルは、前記チューニングフェーズにおいて前記マスタ機器から取得される
    請求項4に記載のスレーブ機器。
  6. 前記マスタ環境値推定部は、前記マスタクロックの温度を前記マスタ環境値として推定し、
    前記スレーブ環境値計測部は、前記スレーブクロックの温度を前記スレーブ環境値として計測する
    請求項1から請求項5のいずれか1項に記載のスレーブ機器。
  7. マスタ機器から送信される制御フレームに従って動作するスレーブ機器のための時刻同期プログラムであって、
    前記マスタ機器から送信された1つ以上の制御フレームの統計量である制御フレーム統計量を算出する統計量算出処理と、
    算出された制御フレーム統計量に基づいて、前記マスタ機器の動作環境を表すマスタ環境値を推定するマスタ環境値推定処理と、
    前記スレーブ機器の動作環境を表すスレーブ環境値を計測するスレーブ環境値計測処理と、
    推定されたマスタ環境値に基づいて、前記マスタ機器に備わるマスタクロックの周波数偏差を推定し、計測されたスレーブ環境値に基づいて、前記スレーブ機器に備わるスレーブクロックの周波数偏差を推定する周波数偏差推定処理と、
    前記マスタクロックの周波数偏差と前記スレーブクロックの周波数偏差との差分に基づいて、前記スレーブクロックのクロック値を修正するクロック補正処理と、
    をコンピュータに実行させるための時刻同期プログラム。
  8. 1つ以上の制御フレームを送信するマスタ機器と、
    前記マスタ機器から送信される1つ以上の制御フレームに従って動作するスレーブ機器とを備え、
    前記スレーブ機器は、
    クロックデバイスであるスレーブクロックと、
    前記マスタ機器から送信された1つ以上の制御フレームの統計量である制御フレーム統計量を算出する統計量算出部と、
    算出された制御フレーム統計量に基づいて、前記マスタ機器の動作環境を表すマスタ環境値を推定するマスタ環境値推定部と、
    前記スレーブ機器の動作環境を表すスレーブ環境値を計測するスレーブ環境値計測部と、
    推定されたマスタ環境値に基づいて、前記マスタ機器に備わるマスタクロックの周波数偏差を推定し、計測されたスレーブ環境値に基づいて、前記スレーブクロックの周波数偏差を推定する周波数偏差推定部と、
    前記マスタクロックの周波数偏差と前記スレーブクロックの周波数偏差との差分に基づいて、前記スレーブクロックのクロック値を修正するクロック補正部とを備える
    組み込みシステム。
  9. 制御フレームを送信するマスタ機器と、前記マスタ機器から送信された制御フレームに従って動作するスレーブ機器と、を備える組み込みシステムの時刻同期方法であって、
    前記マスタ機器は、1つ以上の制御フレームを送信し、
    前記スレーブ機器は、
    前記マスタ機器から送信された1つ以上の制御フレームの統計量である制御フレーム統計量を算出し、
    算出された制御フレーム統計量に基づいて、前記マスタ機器の動作環境を表すマスタ環境値を推定し、
    前記スレーブ機器の動作環境を表すスレーブ環境値を計測し、
    推定されたマスタ環境値に基づいて、前記マスタ機器に備わるマスタクロックの周波数偏差を推定し、計測されたスレーブ環境値に基づいて、前記スレーブ機器に備わるスレーブクロックの周波数偏差を推定し、
    前記マスタクロックの周波数偏差と前記スレーブクロックの周波数偏差との差分に基づいて、前記スレーブクロックのクロック値を修正する
    時刻同期方法。
JP2021504646A 2019-03-11 2019-03-11 スレーブ機器、時刻同期プログラム、組み込みシステムおよび時刻同期方法 Active JP6918268B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/009695 WO2020183572A1 (ja) 2019-03-11 2019-03-11 スレーブ機器、時刻同期プログラム、組み込みシステムおよび時刻同期方法

Publications (2)

Publication Number Publication Date
JP6918268B2 true JP6918268B2 (ja) 2021-08-11
JPWO2020183572A1 JPWO2020183572A1 (ja) 2021-09-13

Family

ID=72427318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021504646A Active JP6918268B2 (ja) 2019-03-11 2019-03-11 スレーブ機器、時刻同期プログラム、組み込みシステムおよび時刻同期方法

Country Status (5)

Country Link
US (1) US11831402B2 (ja)
JP (1) JP6918268B2 (ja)
DE (1) DE112019006851B4 (ja)
TW (1) TW202034100A (ja)
WO (1) WO2020183572A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113258148A (zh) * 2021-04-02 2021-08-13 深圳拓邦股份有限公司 Bms并机实现控制方法、装置及电源

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7379480B2 (en) * 2003-01-16 2008-05-27 Rockwell Automation Technologies, Inc. Fast frequency adjustment method for synchronizing network clocks
JP4264494B2 (ja) 2003-05-15 2009-05-20 Okiセミコンダクタ株式会社 標準電波受信時刻装置
JP2004258045A (ja) 2004-05-27 2004-09-16 Seiko Epson Corp クロック信号供給装置およびその制御方法
US8351409B2 (en) * 2005-04-22 2013-01-08 Axiometric, Llc Timing synchronization in wireless mesh networks
US8275087B2 (en) 2008-12-19 2012-09-25 Alcatel Lucent Frequency synchronization using first and second frequency error estimators
JP5308326B2 (ja) 2009-02-23 2013-10-09 パナソニック株式会社 無線通信システム
JP2010271172A (ja) 2009-05-21 2010-12-02 Seiko Epson Corp 物理量検出装置
JP2011023788A (ja) 2009-07-13 2011-02-03 Hitachi Ulsi Systems Co Ltd ネットワーク同期方法と同期化回路
JP5444910B2 (ja) 2009-07-22 2014-03-19 三菱電機株式会社 同期システム
FI124040B (fi) * 2011-04-04 2014-02-14 Tellabs Oy Menetelmä ja laite taajuustahdistuksen ohjaamiseksi
JP5768624B2 (ja) * 2011-09-26 2015-08-26 富士通株式会社 中継装置及び中継方法
JP2013092515A (ja) * 2011-10-06 2013-05-16 Sony Corp 周波数差検出装置、周波数差検出方法、およびプログラム
JP6147467B2 (ja) * 2011-11-14 2017-06-14 富士通株式会社 フレーム伝送装置及び同期方法
US9104343B2 (en) * 2013-03-13 2015-08-11 Silicon Graphics International Corp. Global synchronous clock circuit and method for blade processors
JP2014197065A (ja) 2013-03-29 2014-10-16 京セラドキュメントソリューションズ株式会社 画像形成装置及び時間計測装置
US20140348181A1 (en) * 2013-05-22 2014-11-27 Calxeda, Inc. Time synchronization between nodes of a switched interconnect fabric
JP6192995B2 (ja) * 2013-06-04 2017-09-06 株式会社東芝 通信装置、通信システム、通信方法およびコンピュータプログラム
JP2015004649A (ja) * 2013-06-24 2015-01-08 株式会社小野測器 スレーブ装置、マスタ・スレーブシステム、および時刻同期方法
JP6132734B2 (ja) * 2013-10-01 2017-05-24 株式会社日立製作所 時刻同期システム及び装置
JP6301752B2 (ja) 2014-06-25 2018-03-28 株式会社日立製作所 情報サービス表示システムおよび時刻同期方法
JP2017020852A (ja) 2015-07-09 2017-01-26 株式会社タムラ製作所 組込装置
US10333525B1 (en) * 2015-12-07 2019-06-25 Marvell International Ltd. Digitally-based temperature compensation for a crystal oscillator
US10313041B2 (en) * 2016-06-10 2019-06-04 Apple Inc. Determination of accuracy of a chain of clocks
JP6487386B2 (ja) * 2016-07-22 2019-03-20 ファナック株式会社 時刻精度を維持するためのサーバ、方法、プログラム、記録媒体、及びシステム
JP2018037953A (ja) * 2016-09-01 2018-03-08 富士通株式会社 無線通信装置、及び時刻同期方法
JP6834642B2 (ja) * 2017-03-21 2021-02-24 株式会社明電舎 時刻補正方法
US10483987B1 (en) * 2018-12-14 2019-11-19 Silicon Laboratories Inc. Failsafe clock product using frequency estimation
US11197075B1 (en) * 2018-12-27 2021-12-07 Equinix, Inc. Clock synchronization in a heterogeneous system

Also Published As

Publication number Publication date
WO2020183572A1 (ja) 2020-09-17
DE112019006851B4 (de) 2022-10-20
US20210351856A1 (en) 2021-11-11
DE112019006851T5 (de) 2021-11-18
JPWO2020183572A1 (ja) 2021-09-13
TW202034100A (zh) 2020-09-16
US11831402B2 (en) 2023-11-28

Similar Documents

Publication Publication Date Title
US8713346B2 (en) Resuming piecewise calibration of a real-time-clock unit after a measured offset that begins at the next calibration period
US11316605B2 (en) Method, device, and computer program for improving synchronization of clocks in devices linked according to a daisy-chain topology
US20040141526A1 (en) Fast frequency adjustment method for synchronizing network clocks
US9134752B2 (en) Time measurement device, micro-controller and method of measuring time
US9374214B2 (en) Communication apparatus, communication system, and communication method
US9967084B2 (en) Synchronising devices using clock signal time difference estimation
CN101498951B (zh) 在计算机或可编程机器中处理时间值的方法
JP6918268B2 (ja) スレーブ機器、時刻同期プログラム、組み込みシステムおよび時刻同期方法
JP6247480B2 (ja) 制御装置、制御システムおよび制御方法
KR102103698B1 (ko) 통신 시스템 및 슬레이브 장치
US10082824B2 (en) Method and device for clock calibration and corresponding apparatus
JP6626015B2 (ja) 同期装置、同期方法、同期プログラム、および同期システム
JP2002175129A (ja) 時刻整合機能を持つコンピュータ及びネットワークシステム
WO2020015828A1 (en) Method and apparatus for digital quartz temperature and drift compensation for a sleep timer of a nb-iot device
KR101290785B1 (ko) 분산 제어 시스템의 시간 동기화 장치 및 방법
JP5914718B2 (ja) 発振器を有する時間ベース、周波数分割回路及びクロックパルス抑制回路
JP2012128552A (ja) 情報処理装置および情報処理装置の時刻同期方法
EP3355626B1 (en) Method and apparatus for digital quartz temperature and drift compensation for a sleep timer of a nb-iot device
JP2017020852A (ja) 組込装置
JP6060887B2 (ja) 物理量センサ
JP6085864B2 (ja) 時刻同期システム、時刻同期方法、スレーブノード及びコンピュータプログラム
EP2884351A1 (en) Sensor signal acquisition data
TWI773524B (zh) 一種時間同步方法和使用該方法的精確時間協定系統
JP4390522B2 (ja) 時刻情報作成装置、画像処理システム及び方法
WO2020217402A1 (ja) 時刻ずれ計算装置、時刻ずれ計算プログラム及び時刻ずれ計算方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210322

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210322

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210422

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210720

R150 Certificate of patent or registration of utility model

Ref document number: 6918268

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150