(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】時刻同期方法、時刻同期プログラムおよび時刻同期システム
(51)【国際特許分類】
H04L 12/28 20060101AFI20241217BHJP
H04L 7/00 20060101ALI20241217BHJP
【FI】
H04L12/28 200Z
H04L7/00 990
(21)【出願番号】P 2023502011
(86)(22)【出願日】2021-02-26
(86)【国際出願番号】 JP2021007564
(87)【国際公開番号】W WO2022180851
(87)【国際公開日】2022-09-01
【審査請求日】2023-06-12
(73)【特許権者】
【識別番号】594081294
【氏名又は名称】株式会社アイ・エル・シー
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】大西 英作
(72)【発明者】
【氏名】山崎 泰伯
(72)【発明者】
【氏名】尾野 弘賢
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2007-170867(JP,A)
【文献】特開2001-069168(JP,A)
【文献】特開2010-109586(JP,A)
【文献】国際公開第2013/094072(WO,A1)
【文献】特開2019-121822(JP,A)
【文献】D,Mills ほか,Network Time Protocol Version 4: Protocol and Algorithms Specification,RFC 5905,2010年06月,第7頁,https://datatracker.ietf.org/doc/html/rfc5905
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28
H04L 7/00
(57)【特許請求の範囲】
【請求項1】
ネットワーク接続された複数の機器間で互いの時刻を同期させる時刻同期方法であって、
送信元の機器は、
前記ネットワークを介して通信接続された送信先の機器に自機の時計の精度を含む時刻情報をそれぞれ送信し、
前記送信先の機器は、
受信した複数の前記時刻情報のうち前記時計の精度が最も高い時刻情報を送信した前記送信元の機器を選択し、
前記選択した前記送信元の機器が送信した前記時刻情報に基づき時刻を修正する、
処理を前記ネットワーク内で通信可能な機器間で繰り返し行い、
前記送信元の機器は、
前記時計の精度と、前記時刻情報の送信時刻と、前記時刻情報を送信してから前記送信先の機器で受信するまでの到達予想時刻と、を含む要求の時刻情報を送信し、
前記送信先の機器は、
前記選択した前記送信元の機器が送信した前記時刻情報を受信した際の自機の前記時計の時刻と、前記到達予想時刻との差分を算出し、
前記差分に基づき自機の前記時計の時刻を修正し、
前記送信元の機器に、前記要求の時刻情報に対する応答の時刻情報を送信し、
前記応答の時刻情報は、前記要求の時刻情報を受信した時刻から前記応答の時刻情報を送信するまでの経過時間と、当該応答の時刻情報の送信時刻を含み、
前記送信元の機器は、
前記応答の時刻情報の受信により、前記到達予想時間を更新保持し、
通信可能な前記送信先の機器に対し、前記時刻情報の送信を繰り返し行う、
ことを特徴とする時刻同期方法。
【請求項2】
前記送信元の機器は、
前記送信先の機器へデータ送信するパケットに前記時刻情報を含ませて送信する、
ことを特徴とする請求項1に記載の時刻同期方法。
【請求項3】
前記送信元の機器は、前記時刻情報を前記パケットのヘッダに格納して送信する、
ことを特徴とする請求項2に記載の時刻同期方法。
【請求項4】
前記送信元の機器は、
前記時刻情報の送信タイミングで、前記送信先の機器へのデータのパケットに前記時刻情報を含ませて送信し、
一定期間前記送信先の機器へデータ送信がない場合、前記時刻情報用のパケットを生成して送信する、
ことを特徴とする請求項1に記載の時刻同期方法。
【請求項5】
前記ネットワーク内は、複数の異なる通信方式を含み、互いに通信可能な通信方式の前記機器同士のデータ通信により時刻を同期する、
ことを特徴とする請求項1に記載の時刻同期方法。
【請求項6】
前記ネットワークは、車両内通信を含み、前記車両内の前記機器を前記車両外の前記機器、および前記車両内の前記機器同士、で時刻を同期する、
ことを特徴とする請求項1に記載の時刻同期方法。
【請求項7】
ネットワーク接続された複数の機器間で互いの時刻を同期させる時刻同期プログラムであって、
送信元の機器に、
前記ネットワークを介して通信接続された送信先の機器に自機の時計の精度を含む時刻情報をそれぞれ送信させ、
前記送信先の機器に、
受信した複数の前記時刻情報のうち前記時計の精度が最も高い時刻情報を送信した前記送信元の機器を選択させ、
前記選択した前記送信元の機器が送信した前記時刻情報に基づき時刻を修正させる、
処理を前記ネットワーク内で通信可能な機器間で繰り返し行わせ、
前記送信元の機器
に、
前記時計の精度と、前記時刻情報の送信時刻と、前記時刻情報を送信してから前記送信先の機器で受信するまでの到達予想時刻と、を含む要求の時刻情報を送信
させ、
前記送信先の機器
に、
前記選択した前記送信元の機器が送信した前記時刻情報を受信した際の自機の前記時計の時刻と、前記到達予想時刻との差分を算出
させ、
前記差分に基づき自機の前記時計の時刻を修正
させ、
前記送信元の機器に、前記要求の時刻情報に対する応答の時刻情報を送信
させ、
前記応答の時刻情報は、前記要求の時刻情報を受信した時刻から前記応答の時刻情報を送信するまでの経過時間と、当該応答の時刻情報の送信時刻を含み、
前記送信元の機器
に、
前記応答の時刻情報の受信により、前記到達予想時間を更新保持
させ、
通信可能な前記送信先の機器に対し、前記時刻情報の送信を繰り返し行
わせる、
ことを特徴とする時刻同期プログラム。
【請求項8】
ネットワーク接続された複数の機器間で互いの時刻を同期させる時刻同期システムであって、
送信元の機器は、
前記ネットワークを介して通信接続された送信先の機器に自機の時計の精度を含む時刻情報をそれぞれ送信する制御部を有し、
前記送信先の機器は、
受信した複数の前記時刻情報のうち前記時計の精度が最も高い時刻情報を送信した前記送信元の機器を選択し、
前記選択した前記送信元の機器が送信した前記時刻情報に基づき時刻を修正する、
処理を前記ネットワーク内で通信可能な機器間で繰り返し行う制御部を有し、
前記送信元の機器の制御部は、
前記時計の精度と、前記時刻情報の送信時刻と、前記時刻情報を送信してから前記送信先の機器で受信するまでの到達予想時刻と、を含む要求の時刻情報を送信し、
前記送信先の機器の制御部は、
前記選択した前記送信元の機器が送信した前記時刻情報を受信した際の自機の前記時計の時刻と、前記到達予想時刻との差分を算出し、
前記差分に基づき自機の前記時計の時刻を修正し、
前記送信元の機器に、前記要求の時刻情報に対する応答の時刻情報を送信し、
前記応答の時刻情報は、前記要求の時刻情報を受信した時刻から前記応答の時刻情報を送信するまでの経過時間と、当該応答の時刻情報の送信時刻を含み、
前記送信元の機器の制御部は、
前記応答の時刻情報の受信により、前記到達予想時間を更新保持し、
通信可能な前記送信先の機器に対し、前記時刻情報の送信を繰り返し行う、
ことを特徴とする時刻同期システム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、異なる機器を時刻同期させる時刻同期方法、時刻同期プログラムおよび時刻同期システムに関する。
【背景技術】
【0002】
イーサネットTSN(Time-Sensitive Networking)等のネットワークの規格では、イーサネット(登録商標)に繋がれた機器間で時刻を同期する方法が規定されている。この時刻同期は、標準時刻を持つ時刻サーバにそれぞれの機器が接続して「時刻サーバ」に時刻を合わせる。
【0003】
個々の機器は、イーサネット等に接続されるPCやサーバの他に、車両に搭載されCAN(Controller Area Network)に接続される車載機器、ECHONET(Energy Conservation and HOmecare NETwork)(登録商標)に接続される家電機器、PLC(Programmable Logic Controller)の制御プログラムの実行により動作する工場等の機器、等がある。
【0004】
従来、ネットワークを介した時刻同期に関連する技術として、例えば、下記特許文献1,2等がある。特許文献1は、NTP(Network Time Protocol)サーバ装置がクライアント端末装置にNTPをブロードキャストする際、周波数クロックをカウントし、時刻情報の補正に基準時刻を用いるか否かを決定することでクロック同期を安定させる。特許文献2は、ECHONET規格にしたがい、家電機器等を外部の通信網から家電時刻同期プロトコルを用いて時刻同期させる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2018-098711号公報
【文献】特開2008-152343号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術では、下記のように、ネットワーク上での各機器の接続状態により、時刻同期を行うことができない機器が生じた。
【0007】
図10は、従来技術の問題点1の説明図である。
図10には時刻サーバAにイーサネット等のネットワークを介して各機器B~Hが接続された構成例を示す。時刻サーバAを使用した時刻同期の場合において、
図10に示すように時刻サーバAが故障すると、各機器B~Hが時刻を時刻サーバAに合わせることができなくなる。また、ネットワークが切断される等して時刻サーバAと繋がらなくなった機器B~Hについても時刻を合わせることができなくなる。
【0008】
図11は、従来技術の問題点2の説明図である。通常多くのネットワークでは、イーサネットだけでなくCAN等の遅いネットワークが混在している。
図11には、時刻サーバAにはイーサネット等の速い接続で機器B,C,Dが接続されているが、機器E~Gは遅い接続であることを示す。ここで、ネットワーク上での通信方式の混在、例えば、イーサネット接続の機器とCAN接続の機器間は異なる通信方式であり、容易に時刻同期することができない。
【0009】
また、
図11に示す例では、機器Eは機器Bに接続されており、機器E~Hは直接時刻サーバAには接続されていない。この場合、時刻サーバAに直接接続された機器グループGP(機器B~D)しか時刻同期できず、時刻サーバAに直接接続されていない機器E~Hは時刻同期することができない。
【0010】
本発明は、上記課題に鑑み、時刻サーバに接続することなく、ネットワーク上の複数の機器を時刻同期できることを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明の時刻同期方法は、ネットワーク接続された複数の機器間で互いの時刻を同期させる時刻同期方法であって、送信元の機器は、前記ネットワークを介して通信接続された送信先の機器に自機の時計の精度を含む時刻情報をそれぞれ送信し、前記送信先の機器は、受信した複数の前記時刻情報のうち前記時計の精度が最も高い時刻情報を送信した前記送信元の機器を選択し、前記選択した前記送信元の機器が送信した前記時刻情報に基づき時刻を修正する、処理を前記ネットワーク内で通信可能な機器間で繰り返し行い、前記送信元の機器は、前記時計の精度と、前記時刻情報の送信時刻と、前記時刻情報を送信してから前記送信先の機器で受信するまでの到達予想時刻と、を含む要求の時刻情報を送信し、前記送信先の機器は、前記選択した前記送信元の機器が送信した前記時刻情報を受信した際の自機の前記時計の時刻と、前記到達予想時刻との差分を算出し、前記差分に基づき自機の前記時計の時刻を修正し、前記送信元の機器に、前記要求の時刻情報に対する応答の時刻情報を送信し、前記応答の時刻情報は、前記要求の時刻情報を受信した時刻から前記応答の時刻情報を送信するまでの経過時間と、当該応答の時刻情報の送信時刻を含み、前記送信元の機器は、前記応答の時刻情報の受信により、前記到達予想時間を更新保持し、通信可能な前記送信先の機器に対し、前記時刻情報の送信を繰り返し行う、ことを特徴とする。
【0012】
また、前記送信元の機器は、前記送信先の機器へデータ送信するパケットに前記時刻情報を含ませて送信する、ことを特徴とする。
【0013】
また、送信元の機器は、前記時刻情報を前記パケットのヘッダに格納して送信する、ことを特徴とする。
【0015】
また、前記ネットワーク内は、複数の異なる通信方式を含み、互いに通信可能な通信方式の前記機器同士のデータ通信により時刻を同期する、ことを特徴とする。
【0016】
また、前記ネットワークは、車両内通信を含み、前記車両内の前記機器を前記車両外の前記機器、および前記車両内の前記機器同士、で時刻を同期する、ことを特徴とする。
【0018】
また、本発明の時刻同期プログラムは、ネットワーク接続された複数の機器間で互いの時刻を同期させる時刻同期プログラムであって、送信元の機器に、前記ネットワークを介して通信接続された送信先の機器に自機の時計の精度を含む時刻情報をそれぞれ送信させ、前記送信先の機器に、受信した複数の前記時刻情報のうち前記時計の精度が最も高い時刻情報を送信した前記送信元の機器を選択させ、前記選択した前記送信元の機器が送信した前記時刻情報に基づき時刻を修正させる、処理を前記ネットワーク内で通信可能な機器間で繰り返し行わせ、前記送信元の機器に、前記時計の精度と、前記時刻情報の送信時刻と、前記時刻情報を送信してから前記送信先の機器で受信するまでの到達予想時刻と、を含む要求の時刻情報を送信させ、前記送信先の機器に、前記選択した前記送信元の機器が送信した前記時刻情報を受信した際の自機の前記時計の時刻と、前記到達予想時刻との差分を算出させ、前記差分に基づき自機の前記時計の時刻を修正させ、前記送信元の機器に、前記要求の時刻情報に対する応答の時刻情報を送信させ、前記応答の時刻情報は、前記要求の時刻情報を受信した時刻から前記応答の時刻情報を送信するまでの経過時間と、当該応答の時刻情報の送信時刻を含み、前記送信元の機器に、前記応答の時刻情報の受信により、前記到達予想時間を更新保持させ、通信可能な前記送信先の機器に対し、前記時刻情報の送信を繰り返し行わせる、ことを特徴とする。
【0019】
また、本発明の時刻同期システムは、ネットワーク接続された複数の機器間で互いの時刻を同期させる時刻同期システムであって、送信元の機器は、前記ネットワークを介して通信接続された送信先の機器に自機の時計の精度を含む時刻情報をそれぞれ送信する制御部を有し、前記送信先の機器は、受信した複数の前記時刻情報のうち前記時計の精度が最も高い時刻情報を送信した前記送信元の機器を選択し、前記選択した前記送信元の機器が送信した前記時刻情報に基づき時刻を修正する、処理を前記ネットワーク内で通信可能な機器間で繰り返し行う制御部を有し、前記送信元の機器の制御部は、前記時計の精度と、前記時刻情報の送信時刻と、前記時刻情報を送信してから前記送信先の機器で受信するまでの到達予想時刻と、を含む要求の時刻情報を送信し、前記送信先の機器の制御部は、前記選択した前記送信元の機器が送信した前記時刻情報を受信した際の自機の前記時計の時刻と、前記到達予想時刻との差分を算出し、前記差分に基づき自機の前記時計の時刻を修正し、前記送信元の機器に、前記要求の時刻情報に対する応答の時刻情報を送信し、前記応答の時刻情報は、前記要求の時刻情報を受信した時刻から前記応答の時刻情報を送信するまでの経過時間と、当該応答の時刻情報の送信時刻を含み、前記送信元の機器の制御部は、前記応答の時刻情報の受信により、前記到達予想時間を更新保持し、通信可能な前記送信先の機器に対し、前記時刻情報の送信を繰り返し行う、ことを特徴とする。
【0020】
上記構成によれば、互いに通信接続された機器同士間で時刻情報に基づき、時刻同期させることができる。また、ネットワーク内で異なる各種の通信方式を含んでも、通信可能な機器同士間で時刻同期することで、ネットワーク全体の機器を時刻同期させることができるようになる。また、時計サーバを配置せずともネットワーク内の機器を時刻同期できるようになる。
【発明の効果】
【0021】
本発明によれば、時刻サーバに接続することなく、ネットワーク上の複数の機器を時刻同期できるという効果を奏する。
【図面の簡単な説明】
【0022】
【
図1】
図1は、実施の形態にかかる時刻同期システムの構成例を示す図である。
【
図2】
図2は、実施の形態にかかる時刻同期システムのノード接続例を示す図である。
【
図3】
図3は、実施の形態にかかる時刻同期システムの機能例を示すブロック図である。
【
図4】
図4は、実施の形態にかかるノードのハードウェア構成例を示す図である。
【
図5】
図5は、実施の形態にかかる時刻同期システムの制御処理例を示すフローチャートである。
【
図6】
図6は、実施の形態で用いる時刻情報のやり取りを示す図である。
【
図7】
図7は、既存の時刻修正技術によるバラツキ状態を示す図である。
【
図8】
図8は、実施の形態の時刻同期による時刻のバラツキの収束状態を示す図である。
【
図9B】
図9Bは、既存の時刻同期による機器間の制御例を示す図である。
【
図9C】
図9Cは、実施の形態の時刻同期による機器間の制御例を示す図である。
【発明を実施するための形態】
【0023】
(実施の形態)
以下に添付図面を参照して、この発明にかかる時刻同期方法、時刻同期プログラムおよび時刻同期システムの好適な各実施の形態を詳細に説明する。
【0024】
図1は、実施の形態にかかる時刻同期システムの構成例を示す図である。
図1に示すように、時刻同期を行う複数の機器100は、各種ネットワークにより互いに通信接続されている。
【0025】
例えば、機器100は、スマートフォン100aがインターネット111を介してPC100bに通信接続されている。PC100bは、イーサネット112aを介して制御ボード100cに通信接続されている。PC100bは、イーサネット112bを介して制御ボード100dに通信接続されている。制御ボード100dは、イーサネット112cを介して制御ボード100cに通信接続されている。
【0026】
制御ボード100cは、CAN113を介して制御ボード100eに通信接続されている。制御ボード100eは、シリアル通信114により制御ボード100fに通信接続されている。
【0027】
図1に示した機器100のうち、PC100b,制御ボード100c,100dは、例えばIEEE802.1ASの通信規格に基づきイーサネット上で時刻同期を行う。
図1に示すように、実施の形態では、システム上に従来の技術で説明した時刻サーバを配置する必要がない。なお、実施の形態では、特定の機器、例えば、PC100b等の時刻サーバに通信接続可能な機器をシステム上に配置してもよい。
【0028】
実施の形態の時刻同期システムは、以下の特徴を有する。
1.時刻サーバを必要としない。
2.標準時刻を時刻サーバ等から取得する必要がない。
3.システム内に異なる通信方式が混在する場合や、機器100同士が直接通信接続されていないネットワークでも時刻の同期(時刻を合わせること)ができる。
4.ネットワーク内の機器100が故障して失われた場合や、新たな機器100がネットワークに接続された場合でも、時刻の同期を維持することができる。
【0029】
図2は、実施の形態にかかる時刻同期システムのノード接続例を示す図である。
図2では、複数の機器100をノードA~Hで示している。実施の形態の時刻同期システムは、下記の各構成を有する。図中実線はノード間で通信接続された通信速度が所定以上の速い接続であり、点線は通信速度が所定未満の遅い接続を示す。
【0030】
1.ネットワーク上の各ノードA~H(機器100)は、相手と通常にデータをやり取りする際に相手に時刻情報を送る。時刻情報は、下記a~cの情報を含む。
a:自分の時刻(ノード時刻)
b:自分が持っている時計の精度(ノード精度)
c:相手に(データが)到達した際の(伝送遅延を考慮した)時刻(到達予想時刻)
【0031】
時計の精度は、例えば、ノードが持つクロック精度である。実施の形態の時刻同期システムでは、時刻専用のパケットを用いる必要がない。なお、自身のノードがデータなしのパケットを相手のノードに送る際のパケットは、時刻専用のパケットとなる。これにより、各ノードA~Hは、積極的に時刻を取りに行かなくても通信接続された相手のノードA~Hから送られてくる時刻情報を取得できる。
【0032】
2.時刻同期の概要
1)電源が入ったばかりで、まだ時刻が定まっていないノードは、一定の時間の間で送られてくる他のノードから送信されたパケット数に応じて一つまたは複数の時刻情報を取得する。例えば、ノードEは、直接通信接続されたノードB、F、Hからそれぞれパケットを受け取る。
【0033】
2)ノードEは、ノードB,F,Hから受け取ったパケットの中から一番「時計の精度が高い」ノードBの時刻情報を自ノードEの時刻の基準とする。
【0034】
3)ノードEは、時刻情報を採用したノードBに対して、時刻が到達した経過時間を含めた時刻情報を返す。
4)時刻情報を返されたノードBは、先に送ったパケットの送信時刻からの経過時間に基づき、次回対象ノードEに送る時刻情報を計算(更新)する。この時刻情報の演算は、到達予想時刻を用いた方法により行う。
【0035】
ここで、ノードEは、ノードBに時刻情報を応答し、この応答した時刻情報は、下記d,eを含む。
d:送信先ノードEが応答する時刻情報の送信時刻
e:送信元ノードEが送信元ノードBから時刻情報を受信した後、送信時刻までの経過時間
【0036】
5)時刻を同期したノードEについても、通信接続された周辺のノードB,F,Hに時刻情報を送ることができる。
【0037】
上記によれば、ノードEは、通信接続されたノードB,F,Hのうち一部のノード(例えば、ノードB)からの時刻情報が途切れた場合でも、他ノードF,Hから時刻情報を受信できる。そして、ノードEは、他ノードF,Hから受信した時刻情報により、自ノードEの時刻合わせ(時刻同期)が行え、ネットワーク上の不特定な通信経路で生じる通信障害に対する耐性を向上できるようになる。
【0038】
また、ノードEは、周辺の他のノードB,F,Hに時刻を合わせるため、ネットワーク上に時刻サーバを有さない場合でも、時刻を合わせる(同期する)ことができ、また、システム全体のノードA~Hを時刻同期できるようになる。
【0039】
また、精度の高い一つのノード(例えばノードA)が存在し、全てのノードB~Hが精度の高い一つのノードAに直接繋がっているとする。この場合、各ノードB~HはノードAに時刻を合わせることになるので、イーサネットTSNと同様の時刻同期精度が得られる。
【0040】
ここで、ノードAに障害が発生した場合でも、各ノードB~Hは、自動的に次の精度のノード(ノードC~H)の時刻情報を採用して時刻同期できるようになり、この点でイーサネットTSNでは得られない柔軟な時刻同期が行えるようになる。
【0041】
図3は、実施の形態にかかる時刻同期システムの機能例を示すブロック図である。
図3には、時刻同期する一対の送信元ノードBと、送信先ノードEそれぞれの機器100を示した。なお、
図1のネットワーク接続例でみると、送信先ノードEに通信接続されているノードB,F,Hが送信元ノードとなる。
【0042】
送信元ノードBは、タイマ301、送信時刻取得部302、時刻情報処理部303、通信部304、を含む。タイマ301は、時刻情報を計時する。送信時刻取得部302はタイマ301の計時情報に基づき、送信先ノードEへ時刻情報を送信する送信時刻を取得する。
【0043】
時刻情報処理部303は、送信先ノードEに送信する時刻情報を生成する。時刻情報は、上記a:ノード時刻、b:時計の精度、c:到達予想時刻を含む。到達予想時刻は、初期値として送信元ノードB,送信先ノードE間のネットワークの通信速度に基づき算出可能であるが、送信元ノードB,送信先ノードE間での時刻情報のやり取りによって伝搬遅延を考慮したより精度の高い値に更新できる。
【0044】
通信部304は、送信元ノードBと送信先ノードEとの間のネットワークに対応した通信方式で互いの通信を行う。
【0045】
また、時刻情報処理部303は、送信先ノードEから時刻情報の応答があると、この時刻情報に基づき、前回送信先ノードEに送信した到達予想時刻を更新する。応答された時刻情報は、d:送信先ノードEが送信する時刻情報の送信時刻と、e:送信元ノードBが送信元ノードBから時刻情報を受信した後送信時刻までの経過時間と、を含む。
【0046】
送信元ノードBの時刻情報処理部303は、送信先ノードEに対する時刻情報に含まれる到達予想時刻を更新保持しておく。時刻情報処理部303は、更新した到達時刻を次回送信先ノードEに時刻情報を送信する際、時刻情報に含めて送信する。
【0047】
送信先ノードEは、通信部311、受信時刻取得部312、時刻情報処理部313、タイマ314、を含む。通信部311は、送信先ノードEと送信元ノードBとの間のネットワークに対応した通信方式で互いの通信を行う。
【0048】
受信時刻取得部312は、送信元ノードBから受信した時刻情報を取得する。時刻情報処理部313は、送信元ノードBから受信した時刻情報を受信した受信時刻をタイマ314から取得する。
【0049】
時刻情報処理部313は、送信元ノードBから受信した時刻情報の採用の可否を送信元ノードBの「時計の精度」に基づき判定し、採用時には、時刻情報に含まれる到達予想時刻との差に応じて自ノードEの時刻を補正する。
【0050】
ここで、送信先ノードEは、直接通信接続された送信元ノードB,F,Hからそれぞれ時刻情報を受信するが、これら送信元ノードB,F,Hから受信した時刻情報に含まれる「時計の精度」のうち最も精度が高い送信元ノード(ノードB)を選択し、自ノードEを送信元ノードBに時刻同期させる。
【0051】
そして、時刻情報処理部313は、自ノードEを送信元ノードBの時刻に同期させるため、自ノードEにおけるタイマ314が計時する時刻の進み/遅れを補正する。また、時刻情報処理部313は、送信元ノードBに対し、時刻情報を送信する。時刻情報は、この時刻情報の送信時刻と、送信元ノードBから時刻情報を受信した後送信時刻までの経過時間を含む。
【0052】
図3では、便宜上、送信元ノードの機能と送信先ノードの機能を分けて記載した。実際には、各ノード(機器100)は、送信元ノードの機能と送信先ノードの機能とを有している。このため、ある一つのノード(機器100)は、
図3に記載した送信元ノードと送信先ノードの機能を有する。また、
図3における通信部304,311は、一つのノード(機器100)あたり一つの機能として配置でき、時刻情報処理部303,313についても一つのノード(機器100)で一つの機能として配置できる。
【0053】
図4は、実施の形態にかかるノードのハードウェア構成例を示す図である。上記ノードA~Hを構成する機器100は、
図4に示すハードウェアで構成できる。
図4において、機器100は、それぞれ制御部(CPU)401と、Read-Only Memory(ROM)402と、Random Access Memory(RAM)403と、半導体メモリやディスクドライブ等の補助記憶部404と、通信インタフェース(I/F)405と、入出力I/F410と、を含む。これらCPU401~入出力I/F410は、バス406によってそれぞれ接続されている。
【0054】
機器100は、PCやスマートフォン、各種ボード等の装置構成に対応して、ディスプレイ、キーボード、マウス、スキャナ、プリンタを有してもよく、これらは入出力I/F410を介して接続することができる。なお、スマートフォンやタブレット等の機器100では、ディスプレイ、キーボード、マウスの機能を集約したタッチパネルを用いることもできる。
【0055】
CPU401は、機器100を統括制御し、実施の形態では、時刻同期を司る演算処理装置である。ROM402は、機器100のプログラム等を記憶する不揮発性メモリである。RAM403は、CPU401によるプログラムの演算処理実行時のワークエリアとして使用される揮発性メモリである。
【0056】
通信I/F405は、ネットワークNWと内部のインタフェースを司り、他の機器100との間のデータの入出力を行う。具体的に、通信I/F405は、通信回線を通じてLAN(Local Area Network)、CAN、ECHONET等の各種ネットワークNWを介して他の機器100との間の通信を行う。
【0057】
ネットワークNWは、上記の他に、WiFi(登録商標)、Bluetooth(登録商標)、赤外線通信(IrDA)等を含み、他の機器100と無線/有線通信することができる。
【0058】
図5は、実施の形態にかかる時刻同期システムの制御処理例を示すフローチャートである。
図5には、送信元ノードと送信先ノードの機器100の処理例として、
図2の説明に対応して送信元ノードB(100)と、送信先ノードE(100)の各制御部(CPU401)が実行する制御処理例を示す。
【0059】
送信元ノードB側の制御処理を説明すると、送信元ノードBは、送信先ノードE(100)に対して時刻情報を送信する際の送信時刻をタイマ301から取得し(ステップS501)、時刻情報を送信する(ステップS502)。時刻情報には、上記a:ノード時刻、b:時計の精度、c:到達予想時刻を含む。
【0060】
この後、送信元ノードBは、送信先ノードEからの時刻情報の返答を待ち、時刻情報を受信すると(ステップS503)、返答された時刻情報に含まれるd:送信時刻、e:経過時間とに基づき、保持してあるノードEの到達予想時刻を更新する(ステップS504)。この更新により、送信元ノードBは、ノードB,E間の伝搬遅延を考慮した到達予想時刻を得ることができ、次回ノードEに送信する時刻情報に含まれる到達予想時刻の精度を向上できる。
【0061】
送信元ノードBは、上記一連の処理をノードEとの間でやり取りすることで、ノードB,E間のネットワークの伝送特性の経時的な変動や、ノードEでの時刻同期処理時間に相当する到達予想時刻を逐次更新し、時刻同期精度を向上できる。
【0062】
次に、送信先ノードE側の制御処理を説明する。送信先ノードEは、送信元ノードBから時刻情報を受信すると(ステップS511)、ノードEのタイマ314から時刻情報の受信時刻を取得する(ステップS512)。
【0063】
次に、送信先ノードEは、送信元ノードBから受信した時刻情報の採用判定を行う(ステップS513)。送信先ノードEは、直接通信接続されたノードB,F,Hからそれぞれ時刻情報を受信している。送信先ノードEは、ステップS513において、各ノードB,F,Hそれぞれの時刻情報に含まれる「時計の精度」を対比し、最も「時計の精度」が高いノードを選択する。
図5の例では、送信元ノードBを選択している。
【0064】
そして、送信先ノードEは、送信元ノードBの時刻情報については採用と判断し(ステップS513:Yes)、ステップS514以下の処理を実行する。一方、送信先ノードEは、送信元ノードF,Hの時刻情報については採用しないと判断し(ステップS513:No)、ステップS517の処理に移行する。
【0065】
ステップS514では、送信先ノードEは、ステップS512で取得した受信時刻と、時計情報に含まれる到達予想時刻との差を算出する(ステップS514)。そして、送信先ノードEは、算出した差に基づき、送信先ノードEの時計(タイマ314)の時刻(進み/遅れ)を修正する(ステップS515)。例えば、送信先ノードEは、時計の時刻修正として、NTP時刻同期のslew/step補正値に基づき行う(ステップS516)。
【0066】
この後、送信先ノードEは、送信元ノードBへ時刻情報を返答する(ステップS517)。この返答の時刻情報には、返答の時刻情報は、d:送信先ノードEが送信する時刻情報の送信時刻と、e:送信先ノードEが送信元ノードBから時刻情報を受信した後送信時刻までの経過時間と、を含む。
【0067】
このように、送信先ノードEは、直接通信接続された(隣接する)送信元ノードB,F,Hから受信した時刻情報に基づき、自ノードEの時刻を最も「時計の精度」が高い送信元ノードBに同期して時刻修正できるようになる。
【0068】
また、時刻同期を行った後のノードEは、送信元ノードEとして直接接続された他の送信先ノード(
図2の例ではノードF,H)の時刻同期を行うことができ、ネットワーク内の全てのノードA~Hを時刻同期できるようになる。ここで、直接接続されたノード同士は所定の通信方式で通信可能であるため、上記処理を繰り返すことにより、各種通信方式が混在するネットワーク全体のノード(機器100)を時刻同期できる。
【0069】
図6は、実施の形態で用いる時刻情報のやり取りを示す図である。
図6には、上記送信元ノードBと送信先ノードE(機器100)を示した。送信元ノードBは、送信先ノードEに所定のデータ(パケット)を送信する際、このパケットに時刻情報を含ませて送る。時刻情報は、パケットのヘッダの一部に格納してもよいし、パケットのデータの所定領域を利用してもよい。
【0070】
送信元ノードBは、時期T1のタイミングで上記a:ノード時刻(T1)、b:時計の精度、c:到達予想時刻(ExpectTime)を含む時刻情報(通知データ)を送信先ノードEに送信する。
【0071】
送信先ノードEは、時期T2のタイミングで送信元ノードBからの時刻情報(通知データ)を受信する。送信先ノードEは、受信した時刻情報(T1+ExpectTime)を時刻修正に利用する。
【0072】
この後、送信先ノードEは、時期T3のタイミングで上記d:送信先ノードEが送信する時刻情報の送信時刻と、e:送信先ノードEが送信元ノードBから時刻情報を受信した後送信時刻までの経過時間を含む時刻情報(通知データ)と、を送信元ノードBに応答する。
【0073】
送信元ノードBは、時期T4のタイミングで送信先ノードEから応答された時刻情報(通知データ)を受信する。
【0074】
上記の到達予想時刻ESは、要求と応答のタイミングから算出する。例えば、ノードB,E間のESは、下記式(1)に基づき算出することができる。
((T4-T1)-(T3-T2))/2)…(1)
【0075】
ここで、到達予想時刻は、送信先ノードEでの時刻修正の有無に関係なく、送信元ノードBと送信先ノードE間での到達予想時刻を算出する。このため、送信先ノードEは、送信元ノードBから送信された時刻情報を受信時のシステム時刻(タイマ314の計時時刻)と、応答する時刻情報を送信時のシステム時刻との差分(上記e:経過時間)を送信元ノードBへ応答する時刻情報に含める。
【0076】
送信元ノードBは、直接通信接続された送信先ノードE,F,Hに対し、例えば、一定の周期間隔で時刻情報を送信(要求)し、送信先ノードE,F,Hは、要求ごとに送信元ノードBに時刻情報を送信(応答)する。
【0077】
ここで、送信先ノードBは、送信先ノードEに所定のデータのパケットを送信する際、送信するパケットのヘッダ等に時刻情報を含ませ、送信先ノードEは、受信したパケットから時刻情報を抽出する。また、送信元ノードBは、送信先ノードEに一定期間、データのパケットの送信を行わない場合、時刻情報用のパケットを生成して送信先ノードEに送信する。
【0078】
送信先ノードEは、受信したパケットから時刻情報を抽出する。これにより、送信先ノードBは、直接通信接続されたノードE,F,Hに対し所定周期間隔で時刻情報を送信でき、所定周期間隔ごとに時刻同期できるようになる。
【0079】
実施の形態によれば、ネットワーク内の各ノードA~Hの「時計の精度」がそれぞれ異なってもネットワーク全体の時刻を同期することができる。時刻同期開始時には、偏差(バラツキ)が大きい状態であるが、所定時間後(例えば、約20msec経過)にネットワーク全体のノードA~Hの時刻を基準時刻、例えば「時計の精度」が最も高いノードA」に同期(各ノードB~Hの時刻の標準偏差が最小化)することができた。
【0080】
図7は、既存の時刻修正技術によるバラツキ状態を示す図である。横軸は時間、縦軸は各ノードA~D(機器100)である。ノードAは最もクロック精度が高く、ノードB,Cはややクロック精度が劣り、ノードDは最もクロック精度が低いものとした。
【0081】
既存の複数の機器100の時刻修正について、例えばFA(Factory Automation)等では、「周期処理」による時刻同期があり、例えば10msecごとに各機器A~Dが処理を実施している。この「周期処理」では、各ノードA~D間での時刻を同期させるものではないため、ノードA~Dごとに異なるクロック精度により、ノードA~D間でのスムーズな制御ができない場合が生じる。
図7の例では、クロック精度が最も低いノードDが一定時間経過すると、他のノード(例えばノードC)と1周期(10msec)分の遅れが生じている。
【0082】
図8は、実施の形態の時刻同期による時刻のバラツキの収束状態を示す図である。
図8(a)には、ノードA~Dを示す。直接接続された各ノードA~D間で時刻情報をやり取りし、一定周期ごとの時刻同期制御の実施により、各ノードA~Dの時刻(時刻周期)を一定のバラツキ内に収めることができ、各ノードA~D間で時刻バラツキのないスムーズな制御が可能になる。
【0083】
また、
図8(b)に示すように(実施の形態に相当する構成)、各ノードA~D間で「時計の精度が高い」ノードAを基準として時刻同期を行うことで、
図8(a)よりもさらに各ノードB~Dの時計の精度を修正することができる。
【0084】
(時刻同期による制御の例)
次に、
図9A~
図9Cを用いて、既存の機器間の制御、および実施の形態の時刻同期による機器間の制御例を説明する。これらの図では、自動運転の車両の各機器の連携制御に適用した例を示す。
【0085】
図9Aは、既存の機器間の制御例を示す図である。CAN等で各機器1~4は、中央制御部(センサ)に接続されている。例えば、機器1はアクセル、機器2はブレーキ、機器3はステアリング、等の自動運転に必要な車載の機器である。
【0086】
既存の技術では、機器1~4は、個別に一定周期で動作し、検出等の情報(制御計画情報)をセンサに送信しているが、自動運転のシステム全体ではバラバラに動作している。このため、既存の自動運転システムでは、操縦性等の乗り心地が悪いものとなっていた。
【0087】
図9Bは、既存の時刻同期による機器間の制御例を示す図である。
図9Aの構成に対し、イーサネットTSN等の時刻同期機能を持つネットワークで車載のセンサ、機器1~4を接続した場合の例を示す。この場合、イーサネットTSNにより厳密な時計を用い送信側(センサ)から一定周期で各機器1~4に制御計画情報を送る。
【0088】
例えば、センサは、データ取得のタイミングと、各機器1~4への制御計画情報の送信タイミングとを異なる時期にコントロールして通信の輻輳を防ぐことができる。これにより、スムーズな制御となり乗り心地を改善することができる。しかし、ネットワークに異なるネットワーク(CAN)が含まれる場合、CANしか通信接続できない機器が生じ、この機器は時刻同期できない。
【0089】
図9Cは、実施の形態の時刻同期による機器間の制御例を示す図である。実施の形態による時刻同期では、
図9B同様に、例えば、センサは、データ取得のタイミングと、各機器1~4への制御計画情報の送信タイミングとを異なる時期にコントロールして通信の輻輳を防ぐことができる。
【0090】
さらに、実施の形態による時刻同期では、各機器1~4の時刻を同期させることができる。これにより、実施の形態では、データ送受信の輻輳を抑えながら自動運転システム全体の機器1~4の制御タイミングを一致させた制御が行えるようになり、最もスムーズで気持ちよい(滑らかな)制御による自動運転を行えるようになる。
【0091】
以上説明した時刻同期は、各種システムに適用することができる。例えば、上記の自動運転に適用できる。この自動運転の車両に搭載する機器100には、システムオンチップ(SoC)や、マイコン等が多数使用されており、これらが連携して動作する。例えば、カメラによる認識で自動運転を行う場合、SoC等は、カメラ映像、車速、アクセル開度、ブレーキ状態、ステアリング角度、レーダ等のセンサによる障害物検知等の情報を元に車両の挙動を決める。
【0092】
そして、複数の機器100が時刻同期を行うことで、ステアリング、アクセル、ブレーキの制御タイミングをそろえ、スムーズな運転を行うことができるようになる(
図9C参照)。実施の形態による時刻同期は、車両の中の制御とすることができ、時刻サーバを不要として複数の機器100を時刻同期できる。
【0093】
このほか、実施の形態の時刻同期は、FAの故障解析に適用することができる。工場などの現場のシステムで故障が発生した場合、故障した装置の映像と制御ログによる故障解析のためのデータ収集の機器を制御する機器100の時刻同期を行う。機器100として、複数のマイコンと、複数のカメラとを用い、これら機器100間の時刻同期を行うことで、同じタイムスタンプを持ったデータ(情報)を集めることが可能となる。収集するデータは、複数のカメラの映像、故障発生時の動作ログ等である。この適用例においても、時刻サーバを不要にでき、また、ネットワークが遮断されている状況が生じた場合や、一部の機器100が故障した場合でも、残りの機器100の間で時刻同期できるため、障害に強いシステムにできる。
【0094】
以上説明した実施の形態によれば、ネットワーク接続された複数の機器間で互いの時刻を同期させる時刻同期方法であって、送信元の機器は、ネットワークを介して通信接続された送信先の機器に自機の時計の精度を含む時刻情報をそれぞれ送信し、送信先の機器は、受信した複数の時刻情報のうち時計の精度が最も高い時刻情報を送信した送信元の機器を選択し、選択した送信元の機器が送信した時刻情報に基づき時刻を修正する、処理をネットワーク内で通信可能な機器間で繰り返し行う。これにより、互いに通信接続された機器同士間の時刻情報に基づき、時計の精度が最も高い機器に時刻同期させることができる。また、ネットワーク内で異なる各種の通信方式を含んでも、通信可能な機器同士間で時刻同期させることで、互いに直接接続されていない機器を含むネットワーク全体の機器を時刻同期させることができるようになる。また、時計サーバを配置せずともネットワーク内の機器を時刻同期できるようになる。また、送信先の機器は、複数の送信元の機器から時刻情報を受信するため、ネットワーク内のある送信元の機器が故障して失われた場合や、新たな機器(送信元の機器および送信先の機器)がネットワークに接続された場合でも、各機器を時刻同期できる。
【0095】
また、送信元の機器は、送信先の機器へデータ送信するパケットに時刻情報を含ませて送信してもよい。これにより、互いに通信可能な機器間で用いるパケットを用いて時刻情報を簡単に送信できるようになる。
【0096】
また、送信元の機器は、時刻情報を前記パケットのヘッダに格納して送信してもよい。これにより、機器間でのデータ通信に影響することなく、簡単に時刻情報をやり取りできるようになる。
【0097】
また、送信元の機器は、時刻情報の送信タイミングで、送信先の機器へのデータのパケットに時刻情報を含ませて送信し、一定期間送信先の機器へデータ送信がない場合、時刻情報用のパケットを生成して送信してもよい。これにより、機器間でやり取りするパケットの輻輳をできるだけ抑制しつつ、所定の周期間隔ごとに時刻同期できるようになる。
【0098】
また、ネットワーク内は、複数の異なる通信方式を含み、互いに通信可能な通信方式の機器同士のデータ通信により時刻を同期する。このように、同一の通信方式の機器間で時刻同期を行い、また、通信可能な通信方式の機器間で時刻同期を行うことで、異なる通信方式のネットワーク全体の機器を時刻同期できるようになる。
【0099】
また、ネットワークは、車両内通信を含み、車両内の機器を車両外の機器、および車両内の機器同士、で時刻を同期することとしてもよい。例えば、自動運転のための車両が備える制御部、アクセル、ブレーキ、ステアリング等の各機器同士を車両外の機器と時刻同期でき、時刻サーバへのアクセスなしに時刻同期できるようになる。
【0100】
また、送信元の機器は、時計の精度と、時刻情報の送信時刻と、時刻情報を送信してから送信先の機器で受信するまでの到達予想時刻と、を含む要求の時刻情報を送信し、送信先の機器は、選択した送信元の機器が送信した時刻情報を受信した際の自機の時計の時刻と、到達予想時刻との差分を算出し、差分に基づき自機の時計の時刻を修正し、送信元の機器に、要求の時刻情報に対する応答の時刻情報を送信し、応答の時刻情報は、要求の時刻情報を受信した時刻から応答の時刻情報を送信するまでの経過時間と、当該応答の時刻情報の送信時刻を含み、送信元の機器は、応答の時刻情報の受信により、到達予想時間を更新保持し、通信可能な送信先の機器に対し、時刻情報の送信を繰り返し行う。これにより、送信元の機器と送信先の機器との間の伝搬状態を含み時刻同期できるようになり、通信方式や通信速度および処理時間等が異なる機器同士を正確に時刻同期できるようになる。また、経時的な通信速度および処理時間等の変動があっても、この変動に対応して時刻同期できるようになる。
【0101】
これらのことから、実施の形態によれば、互いに直接通信接続された機器同士間で時刻情報をやり取りして各機器を時刻同期させることができる。また、ネットワーク内で直接通信接続されていない機器や、異なる通信方式で通信する機器を含んでも、通信接続可能な機器同士での時刻同期を伝搬させる形で他の機器についても時刻同期できるようになり、ネットワーク接続内の複数の機器を時刻同期できるようになる。また、時計サーバを配置せずともネットワーク内の機器を時刻同期できるようになる。また、送信先の機器は、複数の送信元の機器から時刻情報を受信するため、ネットワーク内での機器の故障や、新たな機器の追加に柔軟に対応でき、各機器を時刻同期できる。なお、本発明は、所定の機器が時刻サーバに通信接続された構成であっても同様に適用できる。
【産業上の利用可能性】
【0102】
以上のように、本発明は、ネットワークを介して接続された機器同士を時刻同期させる時刻同期システムに用いることができ、特に、各種ネットワークを介して互いに通信接続された機器間の時刻同期に有用である。
【符号の説明】
【0103】
100 機器
301,314 タイマ
302 送信時刻取得部
303,313 時刻情報処理部
304,311 通信部
312 受信時刻取得部
314 タイマ
401 制御部(CPU)
402 ROM
403 RAM
404 補助記憶部
405 通信インタフェース
406 バス
A~H ノード