(57)【要約】【課題】ネットワークを介して接続された複数のスレーブ制御装置のタイミング同期を確認できるマスタ制御装置を得る。【解決手段】ネットワークを介して、複数のスレーブ制御装置と接続されたマスタ制御装置１１０は、タイミング同期部１１１により、カウンタ部１９０のカウントする自身のローカルタイムをメッセージに内包させて、スレーブ制御装置に送信し、このメッセージを受けたスレーブ制御装置から、ローカルタイムに応じて補正されたタイミングで送信されるメッセージの受信時間と、予め算出したメッセージ受信予測時間との差分を、タイミング同期判定部１１３により計算し、この差分を用いて、タイミング同期補正部１１４により、スレーブ制御装置のタイミングの補正量を算出し、この補正量をローカルタイムに加算して、メッセージに内包させ、スレーブ制御装置に送信するようにした。【選択図】図２
2019125916.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して、複数のスレーブ制御装置と接続されたマスタ制御装置であって、
自身のローカルタイムを第一のメッセージに内包させて、上記スレーブ制御装置に送信するマスタ側タイミング同期部、
上記ローカルタイムに応じて補正されたタイミングで、上記スレーブ制御装置から送信される第二のメッセージの受信時間と、予め算出したメッセージ受信予測時間との差分を計算するメッセージ受信差分計算部、
およびこのメッセージ受信差分計算部により計算された上記差分を用いて、上記スレーブ制御装置のタイミングの補正量を算出するタイミング補正量算出部を備えたことを特徴とするマスタ制御装置。
【請求項２】
上記タイミング補正量算出部により算出された補正量は、上記ローカルタイムに加算され、上記第一のメッセージに内包されて、上記マスタ側タイミング同期部により上記スレーブ制御装置に送信されることを特徴とする請求項１に記載のマスタ制御装置。
【請求項３】
上記メッセージ受信差分計算部による計算に用いられる情報を記憶したデータベースを備え、
上記データベースは、
上記スレーブ制御装置が上記第二のメッセージを送信するタスクの起動タイミングを管理するスケジュールテーブルの情報と、上記予め算出されたメッセージ受信予測時間とを記憶していることを特徴とする請求項１または請求項２に記載のマスタ制御装置。
【請求項４】
上記データベースに記憶された上記スケジュールテーブル上の上記タスクの起動タイミングを用いて、上記メッセージ受信予測時間を算出するメッセージ受信時間予測部を備えたことを特徴とする請求項３に記載のマスタ制御装置。
【請求項５】
上記メッセージ受信差分計算部は、上記各スレーブ制御装置ごとに上記差分を計算し、
上記タイミング補正量算出部は、
上記メッセージ受信差分計算部により計算された複数の上記スレーブ制御装置の上記差分の一つを暫定補正量とする手段と、
各スレーブ制御装置の差分と上記暫定補正量とを比較し、その差が閾値内にあるスレーブ制御装置の数を、上記暫定補正量ごとにカウントする手段と、
このカウントの数が最も多い暫定補正量を上記補正量と決定する手段とを有することを特徴とする請求項１から請求項４のいずれか一項に記載のマスタ制御装置。
【請求項６】
請求項１から請求項５のいずれか一項に記載のマスタ制御装置、
およびこのマスタ制御装置とネットワークを介して接続され、上記マスタ制御装置との間でタイミング同期を行なう複数のスレーブ制御装置を備えたことを特徴とする同期通信システム。
【請求項７】
上記各スレーブ制御装置は、
上記第二のメッセージを送信するタスクの起動タイミングを管理するスケジュールテーブルと、
上記マスタ制御装置から送信される第一のメッセージに含まれるローカルタイムに応じて、上記スケジュールテーブルの上記タスクの起動タイミングを補正して、上記第二のメッセージを上記マスタ制御装置に送信するスレーブ側タイミング同期部とを有することを特徴とする請求項６に記載の同期通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワークを介して接続された複数の制御装置のタイミング同期を行なうマスタ制御装置およびこれを用いた同期通信システムに関するものである。
【背景技術】
【０００２】
近年、例えば車両等で、複数の制御装置をネットワークで接続して通信を行うシステムでは、各制御装置間でデータの授受を行い、これらのデータを組み合わせて制御することが求められる。
一般的に、各制御装置には独立したタイマが搭載されており、各制御装置はこのタイマを基に演算や制御処理のタイミングを決定しているが、複数の制御装置が連動する場合には、各制御装置の演算や制御処理のタイミングを同期させる必要がある。
特に、高精度な制御が求められる制御システムにおいて、各制御装置のタイミングのずれは大きく影響する。また、実運用時に限らず、開発段階において、制御装置間を同期させることが有用である。不具合発生時には、不具合を再現して原因を特定することがあり、各制御装置のタイミングのずれが、不具合再現に費やす時間が増大する。
このような背景より、複数の制御装置がネットワークを介して通信を行う場合、各制御装置のタイマを同期させ、演算や制御処理のタイミングを合わせるタイミング同期の要求が増している。
【０００３】
特許文献１には、マスタ制御装置と２つ以上のスレーブ制御装置を規定したもので、マスタ制御装置のローカルタイマ値にスレーブ制御装置のローカルタイマ値を合わせ、次にスレーブ制御装置のローカルタイマ値にマスタ制御装置のローカルタイマ値を合わせる。そして、スレーブ制御装置のローカルタイマ値を受信した残りのスレーブ制御装置では、この受信したスレーブ制御装置のローカルタイマ値と自身のローカルタイム値との差分時間を算出し、この差分時間をマスタ制御装置のローカルタイマ値に加算する方法が記載されている。
【０００４】
また、特許文献２には、高精度発振子を全制御装置に設けることなく、制御装置間において互いに誤差の少ない正確な時間を共有する手法が記載されている。
この特許文献２では、水晶発振子から供給される基準クロック信号に基づいて動作するマスタ制御装置が周期的なＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）信号を出力する。マスタ制御装置と共通のバスで接続されたスレーブ制御装置は、ＰＷＭ信号の立ち下がりエッジを検出し、搭載したクロック生成回路にて、エッジ間隔に対応した周期の基準クロックを生成し、このクロックに基づいて動作し、また、ＰＷＭ信号に含まれる時間情報に基づいて、自己が刻時する時間を補正することで、マスタ制御装置と時間を同期する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−６４１２３号公報（第９〜１２頁、第４図）
【特許文献２】特開２０１５−２３３４５号公報（第５〜９頁、第４図）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、ローカルタイマ値の送信時におけるメッセージ等の衝突による通信を補完するために、マスタ制御装置のローカルタイマ値に、残りのスレーブ制御装置において受信したスレーブ制御装置のローカルタイマ値と自身のローカルタイム値との差分時間を加算している。
これにより、各制御装置間のタイマを同期することができるが、この閉じたシステムのタイマに同期していることになり、実時間との同期を図ることができない。
また、通信の遅れによる補正は行っているが、通信以外のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内での処理の遅れなどが考慮されていないため、各制御装置が送信するローカルタイマ値には誤差が含まれ、それぞれのローカルタイマ値に異なる誤差を含む場合、各制御装置間で正確にタイムが同期しない可能性がある。
【０００７】
また、特許文献２のものでは、マスタ制御装置から送信されるＰＷＭ信号を基に、スレーブ制御装置のタイマの同期を図っているため、システム全体が実時間との同期を図ることができる。
また、時間補正時における遅延時間について、マスタ制御装置にてローカルタイマ値を生成してから、このローカルタイマ値に基づく時間補正がスレーブ制御装置にて行われるまでのタイムラグを加味する、と記載されている。
しかしながら、特許文献２では、どのようにタイムラグを算出して加味をするのか、具体的な方法について、開示されていない。
【０００８】
また、自動車ソフトウェアの標準規格であるＡＵＴＯＳＡＲ（ＡＵＴｏｍｏｔｉｖｅ  Ｏｐｅｎ  Ｓｙｓｔｅｍ  ＡＲｃｈｉｔｅｃｔｕｒｅ）においても、タイミング同期方法が規定されている。
しかしながら、これも特許文献１と同様に、マスタ制御装置がメッセージの送信完了するまで、およびスレーブ制御装置がメッセージの受信通知をするまでの遅れ時間は考慮されているが、演算処理や通信遅れ以外の遅れは考慮されていない。
また、スレーブ制御装置において、受信するマスタ制御装置のローカルタイムとの同期を確認する手段はあるが、受信するマスタ制御装置のローカルタイムに不確定要素が含まれるため、このローカルタイムと同期することがマスタ制御装置とスレーブ制御装置との同期が正しく行えたとは必ずしも言えない。
【０００９】
この発明は、上述のような課題を解決するためになされたものであり、ネットワークを介して接続された複数のスレーブ制御装置のタイミング同期を確認できるマスタ制御装置およびこれを用いた同期通信システムを得ることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係わるマスタ制御装置においては、ネットワークを介して、複数のスレーブ制御装置と接続されたマスタ制御装置であって、自身のローカルタイムを第一のメッセージに内包させて、スレーブ制御装置に送信するマスタ側タイミング同期部、ローカルタイムに応じて補正されたタイミングで、スレーブ制御装置から送信される第二のメッセージの受信時間と、予め算出したメッセージ受信予測時間との差分を計算するメッセージ受信差分計算部、およびこのメッセージ受信差分計算部により計算された差分を用いて、スレーブ制御装置のタイミングの補正量を算出するタイミング補正量算出部を備えたものである。
【発明の効果】
【００１１】
この発明によれば、ネットワークを介して、複数のスレーブ制御装置と接続されたマスタ制御装置であって、自身のローカルタイムを第一のメッセージに内包させて、スレーブ制御装置に送信するマスタ側タイミング同期部、ローカルタイムに応じて補正されたタイミングで、スレーブ制御装置から送信される第二のメッセージの受信時間と、予め算出したメッセージ受信予測時間との差分を計算するメッセージ受信差分計算部、およびこのメッセージ受信差分計算部により計算された差分を用いて、スレーブ制御装置のタイミングの補正量を算出するタイミング補正量算出部を備えたので、ネットワークを介して接続された複数のスレーブ制御装置のタイミング同期を確認し、同期していない場合に補正することができる。
【図面の簡単な説明】
【００１２】
【図１】この発明の実施の形態１による同期通信システムの概略を示す構成図である。
【図２】この発明の実施の形態１による同期通信システムのマスタ制御装置を示す機能構成図である。
【図３】この発明の実施の形態１による同期通信システムのスレーブ制御装置を示す機能構成図である。
【図４】この発明の実施の形態１による同期通信システムのマスタ制御装置のタイミング同期処理を示すフローチャートである。
【図５】この発明の実施の形態１による同期通信システムのスレーブ制御装置のタイミング同期処理を示すフローチャートである。
【図６】この発明の実施の形態１による同期通信システムのスレーブ制御装置で管理するスケジュールテーブルを示す図である。
【図７】この発明の実施の形態１による同期通信システムのスレーブ制御装置で管理するスケジュールテーブルのタスクとその起動タイミングを示す図である。
【図８】この発明の実施の形態１による同期通信システムのスレーブ制御装置の同期カウンタとスケジュールテーブルのタスクの起動タイミングを示す図である。
【図９】この発明の実施の形態１による同期通信システムのマスタ制御装置のデータベースを示す図である。
【図１０】この発明の実施の形態１による同期通信システムのマスタ制御装置のタイミング同期判定処理を示すフローチャートである。
【図１１】この発明の実施の形態１による同期通信システムのマスタ制御装置のタイミング同期確認処理を示す図である。
【図１２】この発明の実施の形態１による同期通信システムのマスタ制御装置のタイミング同期確認結果を示す図である。
【図１３】この発明の実施の形態１による同期通信システムのマスタ制御装置のタイミング同期補正処理を示すフローチャートである。
【図１４】この発明の実施の形態１による同期通信システムのマスタ制御装置のカウント数と暫定補正量との関係を示す図である。
【図１５】この発明の実施の形態１による同期通信システムのマスタ制御装置のタイミング同期補正のためのオフセット項を加算する処理をタイミング同期に加える処理を示すフローチャートである。
【図１６】この発明の実施の形態１による同期通信システムの制御装置の機能がハードウェアで実現される場合を示す構成図である。
【発明を実施するための形態】
【００１３】
実施の形態１．
以下、同期通信システムの実施の形態について、図を参照して説明する。
図１は、この発明の実施の形態１による同期通信システムの概略を示す構成図である。
図１において、同期通信システムは、マスタ制御装置１１０、スレーブ制御装置１２０、およびスレーブ制御装置１３０を有する。これらのマスタ制御装置１１０、スレーブ制御装置１２０、スレーブ制御装置１３０の相互間は、通信バス９４０、例えば、ＣＡＮ（Ｃｏｎｔｒｏｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）バスによって接続されている。
なお、マスタ制御装置１１０、スレーブ制御装置１２０、およびスレーブ制御装置１３０をまとめて制御装置と呼ぶことにする。
【００１４】
マスタ制御装置１１０は、次のように構成されている。
後述するプロセッサ９１１とタイマ９１２とメモリ９１３と補助記憶装置９１４と通信インタフェース９１５の各ハードウェアを有し、これらハードウェアは、信号線を介して互いに接続される。
プロセッサ９１１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ９１１は、ＣＰＵ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
タイマ９１２は、発振回路からのクロック信号をカウントする。発振回路は、例えば、水晶発振子やセラミック振動子である。
【００１５】
メモリ９１３は、揮発性の記憶装置である。メモリ９１３は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ９１３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ９１３に記憶されたデータは、必要に応じて補助記憶装置９１４に保存される。
補助記憶装置９１４は、不揮発性の記憶装置である。例えば、補助記憶装置９１４は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、またはフラッシュメモリである。補助記憶装置に記憶されたデータは、必要に応じてメモリ９１３にロードされる。
通信インタフェース９１５は、例えば、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、ＦｌｅｘＲａｙ（登録商標）、Ｅｔｈｅｒｎｅｔ（登録商標）である。
【００１６】
スレーブ制御装置１２０は、次のように構成されている。
プロセッサ９２１とタイマ９２２とメモリ９２３と補助記憶装置９２４と通信インタフェース９２５の各ハードウェアが、信号線を介して互いに接続されている。
これらのプロセッサ９２１、タイマ９２２、メモリ９２３、補助記憶装置９２４および通信インタフェース９２５は、それぞれプロセッサ９１１、タイマ９１２、メモリ９１３、補助記憶装置９１４および通信インタフェース９１５と同様のものである。
【００１７】
スレーブ制御装置１３０も、スレーブ制御装置１２０と同様に、プロセッサ９３１とタイマ９３２とメモリ９３３と補助記憶装置９３４と通信インタフェース９３５の各ハードウェアが、信号線を介して互いに接続されている。
プロセッサ９３１、タイマ９３２、メモリ９３３、補助記憶装置９３４および通信インタフェース９３５は、それぞれプロセッサ９１１、タイマ９１２、メモリ９１３、補助記憶装置９１４および通信インタフェース９１５と同様のものである。
【００１８】
図２は、この発明の実施の形態１による同期通信システムのマスタ制御装置を示す機能構成図である。
図２において、符号１１０、９１１〜９１５は図１におけるものと同一のものである。
図２のマスタ制御装置１１０は、後述するタイミング同期部１１１（マスタ側タイミング同期部）、メッセージ受信時間予測部１１２、タイミング同期判定部１１３（メッセージ受信差分計算部）、タイミング同期補正部１１４（タイミング補正量算出部）の各ソフトウェア要素を有する。ここで、ソフトウェア要素とは、ソフトウェアで実現される要素である。
【００１９】
補助記憶装置９１４には、タイミング同期部１１１、メッセージ受信時間予測部１１２、タイミング同期判定部１１３およびタイミング同期補正部１１４として機能させるタイミング同期（マスタ）プログラムが記憶されている。タイミング同期（マスタ）プログラムは、メモリ９１３にロードされて、プロセッサ９１１によって実行される。
また、補助記憶装置９１４には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ９１３にロードされて、プロセッサ９１１によって実行される。
つまり、プロセッサ９１１は、ＯＳを実行することで、タイミング同期（マスタ）プログラムを実行する。
タイミング同期（マスタ）プログラムを実行して得られるデータは、メモリ９１３、補助記憶装置９１４、プロセッサ９１１内のレジスタまたはプロセッサ９１１内のキャッシュメモリといった記憶装置に記憶される。
【００２０】
タイマ９１２は、クロック信号をカウントし、時間へ変換するカウンタ部１９０として機能する。
メモリ９１３は、データを記憶する記憶部１９１として機能する。但し、他の記憶装置が、メモリ９１３の代わりに、または、メモリ９１３と共に、記憶部１９１として機能してもよい。
通信インタフェース９１５は、通信バス上に流れるメッセージを受信し、アナログ信号からデジタル信号に変換してデータを取得する受信部１９２と、デジタル信号をアナログ信号に変換し、規定のプロトコルに沿ったメッセージを通信バス上へ送信する送信部１９３として機能する。
【００２１】
図３は、この発明の実施の形態１による同期通信システムのスレーブ制御装置を示す機能構成図である。
図３において、符号１２０、１３０、９２１〜９２５、９３１〜９３５は図１におけるものと同一のものである。
スレーブ制御装置１２０、１３０は、それぞれタイミング同期部１２１、１３１（スレーブ側タイミング同期部）とメッセージ送信部１２２、１３２のソフトウェア要素を有する。
スレーブ制御装置１２０、１３０の補助記憶装置９２４、９３４には、それぞれタイミング同期部１２１、１３１とメッセージ送信部１２２、１３２として機能させるタイミング同期（スレーブ）プログラムが記憶されている。各タイミング同期（スレーブ）プログラムは、それぞれのメモリ９２３、９３３にロードされて、対応するそれぞれのプロセッサ９２１、９３１によって実行される。
また、各補助記憶装置９２４、９３４には、ＯＳが記憶されている。ＯＳの少なくとも一部は、それぞれのメモリ９２３、９３３にロードされて、対応するそれぞれのプロセッサ９２１、９３１によって実行される。
つまり、各プロセッサ９２１、９３１は、ＯＳを実行することで、タイミング同期（スレーブ）プログラムを実行する。
【００２２】
スレーブ制御装置１２０のタイマ９２２およびスレーブ制御装置１３０のタイマ９３２は、それぞれ、クロック信号をカウントし、時間へ変換する同期カウンタ２３０、２４０として機能する。
スレーブ制御装置１２０のメモリ９２３およびスレーブ制御装置１３０のメモリ９３３は、データを記憶する記憶部２３１、２４１として機能する。但し、他の記憶装置が、メモリ９２３、９３３の代わりに、または、メモリ９２３、９３３と共に、記憶部２３１、２４１として機能してもよい。
スレーブ制御装置１２０、１３０の通信インタフェース９２５、９３５は、それぞれ、通信バス上に流れるメッセージを受信し、アナログ信号からデジタル信号に変換してデータを取得する受信部２３２、２４２と、デジタル信号をアナログ信号に変換し、規定のプロトコルに沿ったメッセージを通信バス上へ送信する送信部２３３、２４３として機能する。
【００２３】
図６は、この発明の実施の形態１による同期通信システムのスレーブ制御装置で管理するスケジュールテーブルを示す図である。
図６において、スレーブ制御装置１２０、１３０の各ＯＳで管理するスケジュールテーブルの情報であるスケジュールテーブル情報２００を示し、スケジュールテーブルの周期２１０、スケジュールテーブル上で起動するタスクとその起動タイミングが記載されている。スケジュールテーブル２０１、２０２は、それぞれスレーブ制御装置１２０、１３０に対応している。
スケジュールテーブル２０１、２０２は、対応するスレーブ制御装置の補助記憶装置９２４、９３４に記憶され、メモリ上にロードされ、読み出される。
タスク２１１〜２１４については、図７で説明する。
なお、スレーブ制御装置の欄には、識別番号１、２が記憶されている。ここで、識別番号１はスレーブ制御装置１２０を示し、識別番号２はスレーブ制御装置１３０を示す。後述する図９、図１２、図１４でも同じである。
【００２４】
図７は、この発明の実施の形態１による同期通信システムのスレーブ制御装置で管理するスケジュールテーブルのタスクとその起動タイミングを示す図である。
図７では、図６に示すスケジュールテーブル情報２００の内、スレーブ制御装置１２０のスケジュールテーブル２０１に示すタスクとその起動タイミングを示している。
通信監理タスク２１１はスケジュールテーブルの周期１０ｍｓのうちの３ｍｓで起動され、メッセージ送信タスク２１２は、５ｍｓで起動され、制御アプリ１タスク２１３は７ｍｓで起動され、メモリ管理タスク２１４は９ｍｓで起動されることを示している。
【００２５】
図８は、この発明の実施の形態１による同期通信システムのスレーブ制御装置の同期カウンタとスケジュールテーブルのタスクの起動タイミングを示す図である。
図８においては、スレーブ制御装置１２０内の同期カウンタ２３０と、スケジュールテーブル２０１で管理するタスクの起動タイミングが示されている。同期カウンタ２３０の周期は、スケジュールテーブル２０１の周期２１０と同じ“１０”である。なお、Ａ、Ｂ、Ｃについては後述する。
【００２６】
図９は、この発明の実施の形態１による同期通信システムのマスタ制御装置のデータベースを示す図である。
図９において、データベース３００は、マスタ制御装置１１０の補助記憶装置９１４に格納されている。データベース３００は、各スレーブ制御装置１２０、１３０のスケジュールテーブルの周期、メッセージ送信タスクの起動タイミング、メッセージ識別子、メッセージ遅延時間、予測時間の閾値を持つ。メッセージ識別子、メッセージ遅延時間、予測時間の閾値については後述する。
【００２７】
図１１は、この発明の実施の形態１による同期通信システムのマスタ制御装置のタイミング同期確認処理を示す図である。
図１１において、スレーブ制御装置１２０のスケジュールテーブルとグローバルタイムが示され、スケジュールテーブル上のメッセージ送信タスク起動位置が示されている。
さらに、後述するグローバルタイムＴ＿ｇ、メッセージ受信時間Ｔ＿ｒ、メッセージ受信予測時間Ｔ＿ｐ、スケジュールテーブルの位置Ｔ＿ｃ、起動待機時間Ｔ＿ｎ、メッセージ遅延時間Ｔ＿ｄが示されている。
【００２８】
図１２は、この発明の実施の形態１による同期通信システムのマスタ制御装置のタイミング同期確認結果を示す図である。
図１２において、タイミング同期確認結果４００は、スレーブ制御装置１２０とスレーブ制御装置１３０それぞれのメッセージ受信予測時間、メッセージ受信時間、差分に加えて、データベース３００が保持する予測時間の閾値、を持つ。
【００２９】
図１４は、この発明の実施の形態１による同期通信システムのマスタ制御装置のカウント数と暫定補正量との関係を示す図である。
図１４において、スレーブ制御装置１２０、１３０それぞれの暫定補正量とカウント数とが示されている。ここで、カウント数は、暫定補正量を、各スレーブ制御装置１２０、１３０の差分ｄｔから差し引き、その結果が、各々設ける閾値内に収まるスレーブ制御装置の数をカウントしたものである。
【００３０】
次に、動作について説明する。
まず、図４に基づいて、マスタ制御装置１１０のタイミング同期部１１１によるマスタ側のタイミング同期処理について説明する。
ステップＳ１０１において、カウンタ部１９０は、ローカルタイムを取得し、記憶部１９１は、この取得したローカルタイムを記憶する。マスタ制御装置１１０で取得されるローカルタイムに、スレーブ制御装置１２０とスレーブ制御装置１３０の演算処理または制御のタイミングを同期させるため、マスタ制御装置１１０で取得されるローカルタイムをグローバルタイムと定義する。
【００３１】
次いで、ステップＳ１０２で、マスタ制御装置１１０内に規定され、ＯＳで管理されるメッセージ送信タスクにおいて、記憶部１９１に記憶されたグローバルタイムを指定のメッセージ（第一のメッセージ）（以降、タイミング同期メッセージ）に格納し、このグローバルタイムを格納したタイミング同期メッセージを、スレーブ制御装置１２０、１３０へ送信する。タイミング同期メッセージは、例えば、メッセージが持つ識別子によって定められる。
【００３２】
次に、図５に基づいて、スレーブ制御装置１２０、１３０のタイミング同期部１２１、１３１によるスレーブ側のタイミング同期処理について説明する。
ステップＳ２０１において、マスタ制御装置１１０によって送信されたタイミング同期メッセージを受信し、グローバルタイムを抽出する。抽出したグローバルタイムをスレーブ制御装置１２０、１３０のＯＳが管理する同期カウンタの周期に変換し、変換した値にスレーブ制御装置１２０、１３０の同期カウンタ値を更新する。
ここで、周期に変換とは、グローバルタイムの値を同期カウンタ２３０、２４０の周期において、どの位置に相当するか、変換することを指す。
同期カウンタ２３０、２４０の周期とは、スケジュールテーブルの周期と等しく、スケジュールテーブル上で管理するタスクの起動タイミングは、この同期カウンタ２３０、２４０の値によって決定される。
【００３３】
次いで、ステップＳ２０２において、更新された同期カウンタ値とスレーブ制御装置１２０、１３０内で規定するスケジュールテーブルの現在位置との差分を算出する。
ステップＳ２０３において、算出された差分に応じて、スレーブ制御装置１２０、１３０内で規定するスケジュールテーブル上で管理するタスクの起動タイミングを変更する。
具体的な変更方法は、スケジュールテーブル上で管理するタスクの内、現在のスケジュールテーブルに位置が近いタスクから順に、タイミングの起動タイミングを規定値から前後させる。ただし、タイミングを前後させる幅には、制約を設けることができる。
ステップＳ２０１〜Ｓ２０３を、スレーブ制御装置１２０、１３０がそれぞれ実施することで、スレーブ制御装置１２０、１３０の制御タイミングは、マスタ制御装置１１０の制御タイミングと同期する。
【００３４】
次に、図５のステップＳ２０１〜Ｓ２０３に示すスレーブ制御装置１２０、１３０のタイミング同期処理について、図６〜図８に基づいて、具体的な例を用いて説明する。
図６のスレーブ制御装置１２０、１３０、それぞれのＯＳで管理するスケジュールテーブルには、スケジュールテーブルの周期、スケジュールテーブル上で起動するタスクとその起動タイミングが示されている。
図６のスケジュールテーブル情報２００の各スケジュールテーブル２０１、２０２は、各スレーブ制御装置１２０、１３０の補助記憶装置９２４、９３４に記憶され、メモリ上にロードされ、読み出される。
【００３５】
図７のスレーブ制御装置１２０のスケジュールテーブル２０１では、図６のスケジュールテーブル情報２００の内のスケジュールテーブル２０１に示すタスクとその起動タイミングを、スケジュールテーブルの周期２１０とともに示している。具体例では、マスタ制御装置１１０とスレーブ制御装置１２０とのタイミング同期を示す。
【００３６】
次に、図８について詳しく説明する。
図８は、スレーブ制御装置１２０内の同期カウンタ２３０と、スケジュールテーブルで管理するタスクの起動タイミングを示し、同期カウンタ２３０の周期は、スケジュールテーブルの周期２１０と同じ“１０”である。
図８のＡでは、同期カウンタ２３０は、マスタ制御装置１１０が送信するグローバルタイムへと変換されたことを示す。グローバルタイムが“２６”の場合、同期カウンタ２３０の周期へ変換すると“６”となり、同期カウンタ値を“４”から“６”へと更新する。この処理は、ステップＳ２０１に該当する。
【００３７】
次に、図８のＢにおいて、現在のスケジュールテーブルの位置が“４”であり、更新された同期カウンタ値が“６”であることから、差分が“２”であると算出する。これは、スレーブ制御装置１２０の制御タイミングが、マスタ制御装置１１０の制御タイミングに比べ、“２”早いことを示す。この処理は、ステップＳ２０２に該当する。
【００３８】
次に、図８のＣにおいて、Ｂで算出された差分が“０”になるように、スケジュールテーブル２０１上で管理されるタスクの内、現在のスケジュールテーブル２０１の位置から近い、制御アプリ１タスク２１３とメモリ管理タスク２１４の起動タイミングを規定値より“１”だけ、早くする（規定値より、“１”だけ早く起動すると、起動タイミングが飛ばされるメッセージ送信タスク２１２は、起動タイミングの変更は行わない）。
ただし、タスクの起動タイミングを規定値より早くする、または遅くする最大幅は、例えば、それぞれ“１”とする。この処理は、ステップＳ２０３に該当する。
【００３９】
図８のようなタイミング同期処理を実施することで、スレーブ制御装置１２０内で規定するスケジュールテーブル２０１上で管理するタスクの起動タイミングは、同期カウンタ２３０と同期する。つまり、スレーブ制御装置１２０の制御タイミングと、マスタ制御装置１１０の制御タイミングとが同期することになる。
【００４０】
なお、上述の説明では、マスタ制御装置１１０とスレーブ制御装置１２０とのタイミング同期を示したが、同様にスレーブ制御装置１３０で、同様の処理を実施することで、マスタ制御装置１１０とスレーブ制御装置１３０とのタイミング同期を図ることができる。
また、上述のマスタ制御装置１１０とスレーブ制御装置１２０とのタイミング同期方法は、ＡＵＴＯＳＡＲに準拠した方法であり、実施の形態１では、マスタ制御装置１１０とスレーブ制御装置１２０、１３０とは、ＡＵＴＯＳＡＲ準拠、または同等のタイミング同期方法を有するものとする。
【００４１】
次に、マスタ制御装置１１０によるタイミング同期確認およびタイミング同期補正について詳しく説明する。
図９のデータベース３００は、各スレーブ制御装置１２０、１３０のスケジュールテーブルの詳細なデータやタイミング同期の確認に必要なデータの集まりを有し、マスタ制御装置１１０の補助記憶装置９１４に格納されている。
ただし、事前に補助記憶装置９１４に記憶されたデータベース３００を、メモリ９１３、プロセッサ９１１内のレジスタ、またはプロセッサ９１１内のキャッシュメモリにロードしてもよい。
【００４２】
図９のデータベース３００は、各スレーブ制御装置１２０、１３０におけるスケジュールテーブルの周期、メッセージ送信タスクの起動タイミング、メッセージ識別子、メッセージ遅延時間、予測時間の閾値を持っている。
ここで、スケジュールテーブルの周期とメッセージ送信タスクの起動タイミングは、スケジュールテーブル情報２００を利用する。
メッセージ識別子は、メッセージ送信タスクにより送信されるメッセージ（第二のメッセージ）から、少なくとも１つのメッセージを選択し、この選択されたメッセージの識別子を格納している。
メッセージ遅延時間は、各スレーブ制御装置１２０、１３０がメッセージを送信してから、マスタ制御装置１１０がこのメッセージを受信するまでの時間を示し、例えば、事前にスレーブ制御装置ごとに測定したメッセージ遅延時間のノミナル値とする。
予測時間の閾値は、後述するメッセージ受信予測時間の許容幅を示し、例えば、メッセージ遅延時間と同様に、事前に各スレーブ制御装置１２０、１３０がメッセージを送信してから、マスタ制御装置１１０が、このメッセージを受信するまでの時間を測定し、その標準偏差を予測時間の閾値とする。
また、例えば、マスタ制御装置１１０は、車両外部との通信を可能とし、スレーブ制御装置の交換や新規の追加、等によるデータベース３００を更新する機能を有しても良い。
【００４３】
次に、図１０に基づいて、マスタ制御装置１１０のタイミング同期判定部１１３のタイミング同期確認処理について説明する。図１１は、具体的な例を示し、マスタ制御装置１１０が、スレーブ制御装置１２０のタイミングがマスタ制御装置１１０と正しく同期しているか否かを確認する。
図１０のステップＳ３０１において、タイマ９１２のカウンタ部１９０よりマスタ制御装置１１０の現在の時間であるグローバルタイムＴ＿ｇを取得し、記憶部１９１はこの取得するグローバルタイムＴ＿ｇを記憶する。
図１１では、現在の時間におけるグローバルタイムＴ＿ｇは、６２．８ｍｓであり、この値を記憶部１９１は記憶する。
【００４４】
次いで、図１０のステップＳ３１０において、マスタ制御装置１１０とのタイミング同期を確認するスレーブ制御装置（本説明では、スレーブ制御装置１２０）のスケジュールテーブルの周期Ｔ＿＃（＃には、スレーブ制御装置の識別番号１または２が入る）を、補助記憶装置９１４内のデータベース３００よりメモリ９１３に読み出す。
メモリ９１３に読み出されたスケジュールテーブルの周期Ｔ＿＃と、メモリ９１３に記憶されたグローバルタイムＴ＿ｇより、対象のスレーブ制御装置がマスタ制御装置１１０と正しく同期していた場合における、現在のスケジュールテーブルの位置Ｔ＿ｃを算出する。
図１１において、グローバルタイムＴ＿ｇ＝６２．８ｍｓでの現在のスケジュールテーブルの位置Ｔ＿ｃは、補助記憶装置９１４のデータベース３００より、スレーブ制御装置１２０のスケジュールテーブルの周期Ｔ＿１が１０ｍｓであることから、現在のスケジュールテーブルの位置Ｔ＿ｃ＝２．８ｍｓと算出される。
【００４５】
次いで、図１０のステップＳ３２０において、対象のスレーブ制御装置のメッセージ送信タスクの起動タイミングを、補助記憶装置９１４内のデータベース３００よりメモリ９１３に読み出す。メモリ９１３に読み出された起動タイミングと、ステップＳ３１０で算出された現在のスケジュールテーブルの位置Ｔ＿ｃから、次にメッセージ送信タスクが起動するまでの時間である起動待機時間Ｔ＿ｎを計算する。記憶部１９１は、この算出された起動待機時間Ｔ＿ｎを記憶する。
スレーブ制御装置１２０のメッセージ送信タスク２１２の起動タイミングは、補助記憶装置９１４内のデータベース３００より、５ｍｓの時である。図１１において、現在のスケジュールテーブルの位置Ｔ＿ｃ＝２．８ｍｓであるため、起動待機時間Ｔ＿ｎ＝２．２ｍｓと計算される。
【００４６】
次に、図１０のステップＳ３３０において、対象のスレーブ制御装置のメッセージ遅延時間Ｔ＿ｄを補助記憶装置９１４内のデータベース３００より読み出す。この読み出されたメッセージ遅延時間Ｔ＿ｄと、ステップＳ３２０で算出された起動待機時間Ｔ＿ｎと、ステップＳ３０１で取得されたグローバルタイムＴ＿ｇとを加算し、これをメッセージ受信予測時間Ｔ＿ｐとする。記憶部１９１は、メッセージ受信予測時間Ｔ＿ｐを記憶する。
スレーブ制御装置１２０のメッセージ遅延時間Ｔ＿ｄは、８．３ｍｓ、起動待機時間Ｔ＿ｎ＝２．２ｍｓ、グローバルタイムＴ＿ｇ＝６２．８ｍｓであるため、メッセージ受信予測時間Ｔ＿ｐ＝７３．３ｍｓと算出する。
図１１において、▽がメッセージ受信予測時間Ｔ＿ｐを示す。記憶部１９１は、メッセージ受信予測時間Ｔ＿ｐ＝７３．３ｍｓを記憶する。
なお、マスタ制御装置１１０のメッセージ受信時間予測部１１２の機能は、ステップＳ３０１〜Ｓ３３０の処理に相当する。
【００４７】
次に、図１０のステップＳ３４０において、マスタ制御装置１１０は、対象のスレーブ制御装置のメッセージ送信タスクより送信される、データベース３００で規定する識別子を持つメッセージを受信するまで待機する。
このメッセージを受信後、マスタ制御装置１１０は、このメッセージを受信した時間であるメッセージ受信時間Ｔ＿ｒを取得し、記憶部１９１はメッセージ受信時間Ｔ＿ｒを記憶する。
メッセージ受信時間Ｔ＿ｒは、例えば、ＣＡＮドライバのメールボックスにメッセージを格納するときのタイマ値がタイムスタンプ値として書き込まれるタイムスタンプ機能を利用し、タイムスタンプ用のレジスタへアクセスして取得する。
【００４８】
次に、図１０のステップＳ３５０において、メッセージ受信時間Ｔ＿ｒとメッセージ受信予測時間Ｔ＿ｐとの差分ｄｔを算出する。
図１１において、スレーブ制御装置１２０のメッセージ送信タスク２１２より送信される、識別子が０ｘ１１１のメッセージ受信時間Ｔ＿ｒは、７２．５ｍｓである。この場合、メッセージ受信予測時間Ｔ＿ｐ＝７３．３ｍｓ、メッセージ受信時間Ｔ＿ｒ＝７２．５ｍｓより、差分ｄｔは０．８ｍｓと算出される。そして、記憶部１９１は、差分ｄｔ＝０．８ｍｓを記憶する。
【００４９】
次いで、図１０のステップＳ３６０において、マスタ制御装置１１０とタイミング同期するスレーブ制御装置１２０、１３０の差分を全て算出した場合、タイミング同期確認の処理を終了する。
この差分を全て算出していない場合、次の対象スレーブ制御装置を決め、ステップＳ３１０〜Ｓ３５０を繰り返す。
【００５０】
図１２は、図１０のステップＳ３０１〜Ｓ３６０に示すタイミング同期確認処理を完了した際に得られるタイミング同期確認結果４００の具体例を示している。このタイミング同期確認結果４００は、スレーブ制御装置１２０、１３０それぞれのメッセージ受信予測時間Ｔ＿ｐ、メッセージ受信時間Ｔ＿ｒ、差分ｄｔに加えて、データベース３００が保持する予測時間の閾値、を持っている。
記憶部１９１は、タイミング同期確認結果４００を記憶し、タイミング同期確認結果４００は、後述するタイミング同期補正の算出に利用される。
【００５１】
次に、図１３に基づいて、マスタ制御装置１１０のタイミング同期補正部１１４のタイミング同期補正処理について説明する。
ステップＳ４０１（差分の一つを暫定補正量とする手段）において、記憶部１９１に記憶されたタイミング同期確認結果４００に含まれる差分ｄｔを１つ選択する。例えば、スレーブ制御装置１２０の差分ｄｔである０．８ｍｓを選択し、これを暫定補正量として、ステップＳ４１０に進む。
【００５２】
ステップＳ４１０（スレーブ制御装置の数を、暫定補正量ごとにカウントする手段）において、ステップＳ４０１で選択された暫定補正量を、各スレーブ制御装置１２０、１３０の差分ｄｔから差し引く。その時の結果が、各々設ける閾値内に収まるスレーブ制御装置の数をカウントする。
具体的には、暫定補正量０．８ｍｓの場合、スレーブ制御装置１２０の差分ｄｔ＝０．８ｍｓから暫定補正量分を引くと０．０ｍｓ、スレーブ制御装置１３０の差分ｄｔ＝０．６ｍｓから暫定補正量分を引くと−０．２ｍｓとなる。
この場合、各スレーブ制御装置１２０、１３０に設けられた閾値は、０．５ｍｓと０．４ｍｓであり、それぞれ閾値の範囲に収まっているため、カウント数を２とする。
また、スレーブ制御装置１３０において、差分ｄｔから暫定補正量を引いた値が負となる。閾値の範囲内に収まり、かつ負となる場合をカウントして、カウント数を２（１）とする。
ただし、スレーブ制御装置側でのメッセージ送信時の調停やバス上でのメッセージの衝突によるマスタ制御装置１１０の受信の遅れを考慮するため、差分ｄｔが負かつ閾値の上限を超える場合、ステップＳ４１０の処理に含めない。
【００５３】
次いで、ステップＳ４２０において、タイミング同期確認結果４００に含まれる差分ｄｔをすべて選択し、Ｓ４１０におけるカウント数を全て算出した場合、ステップＳ４３０に進む。Ｓ４１０におけるカウント数を全て算出していない場合、ステップＳ４０１、Ｓ４１０を繰り返す。
図１４は、ステップＳ４２０からステップＳ４３０に進んだ際に、ステップＳ４１０にて算出されたカウント数と暫定補正量との関係を示している。
【００５４】
次いで、ステップＳ４３０（カウントの数が最も多い暫定補正量を補正量と決定する手段）において、算出されたカウント数が最も多い暫定補正量をタイミング同期の補正量とする。
図１４において、スレーブ制御装置１２０におけるカウント数は２（０）、スレーブ制御装置１３０におけるカウント数は２（１）であり、最大カウント数は２が重複する。この場合、差分ｄｔから暫定補正量を引いた値が負となるカウント数が少ない暫定補正量である、０．６ｍｓを選ぶ。
また、差分ｄｔから暫定補正量を引いた値が負となるカウント数も同じ場合は、暫定補正量の値が最も小さい値を選ぶ。
【００５５】
ステップＳ４０１〜Ｓ４３０に示す処理は、マスタ制御装置１１０と各スレーブ制御装置１２０、１３０とのタイミング同期のずれを最小化する補正量を選択する一例であり、目的関数を定義し、決定変数を補正量とする最急降下法などの最適化手法を用いて、補正量を算出しても良い。
また、各種で算出するデータは、必ずしも１つである必要はなく、複数のデータをまとめてから、補正量を算出しても良い。
【００５６】
次に、ステップＳ４４０において、記憶部１９１は、決定された補正量をタイミング同期のオフセット項として記憶する。記憶後は、マスタ制御装置１１０がタイミング同期処理を実行するまで、記憶したオフセット項を保持する。
タイミング同期補正処理のステップＳ４０１〜Ｓ４４０では、タイミング同期補正に必要なオフセット項の算出とメモリでの保持を行う。
これによって算出されたオフセット項の追加は、図１５で後述するように、マスタ側のタイミング同期処理のステップＳ１０１とＳ１０２の間に実行する。
【００５７】
図１５は、タイミング同期補正のためのオフセット項を加算する処理（ステップＳ４５０）を、図４のマスタ側タイミング同期処理に加えたフローチャートである。
ステップＳ１０１に次ぐステップＳ４５０において、ステップＳ１０１にて取得されたグローバルタイムＴ＿ｇに、上述のステップＳ４４０で記憶されたオフセット項を加算する。
ステップＳ１０２は、ステップＳ４５０が加わることで、タイミング同期メッセージに含まれるグローバルタイムにオフセット項が付与されたメッセージを、スレーブ制御装置１２０と、スレーブ制御装置１３０に送信することになる。
【００５８】
図１３のタイミング同期補正処理のステップＳ４０１〜Ｓ４４０とステップＳ４５０を含むタイミング同期処理のステップＳ１０１、Ｓ１０２を実行することで、マスタ制御装置１１０によるタイミング同期補正を完了する。
また、スレーブ制御装置１２０、１３０は、スレーブ側タイミング同期処理のステップＳ２０１〜Ｓ２０３を変更することなく、同様の処理を実行することで、マスタ制御装置１１０とのタイミング同期のずれを補正することができる。
【００５９】
実施の形態１によれば、マスタ制御装置が、各スレーブ制御装置から送信されるメッセージを利用して、マスタ制御装置と各スレーブ制御装置とが演算処理や制御のタイミングが同期していることを確認し、同期していない場合に補正することができる。
これにより、各制御装置間のタイミング同期のずれを小さくできる、つまり各制御装置によって構成される制御システムにおいて、高精度な制御を実現できる。
【００６０】
なお、上述のマスタ制御装置１１０およびスレーブ制御装置１２０、１３０（以下、各制御装置１１０、１２０、１３０）は、ソフトウェア要素で実現する機能を有するが、これらのソフトウェア要素をハードウェアで実現してもよい。この場合の構成を図１６により説明する。
図１６は、この発明の実施の形態１による同期通信システムの制御装置の機能がハードウェアで実現される場合を示す構成図である。
図１６において、各制御装置１１０、１２０、１３０は、それぞれ処理回路９９０を有する。この処理回路９９０は、プロセッシングサーキットともいう。
処理回路９９０は、マスタ制御装置１１０では、タイミング同期部１１１とメッセージ受信時間予測部１１２とタイミング同期判定部１１３とタイミング同期補正部１１４とカウンタ部１９０と記憶部１９１と受信部１９２と送信部１９３とを実現する専用の電子回路である。
スレーブ制御装置１２０、１３０では、タイミング同期部１２１とメッセージ送信部１２２と同期カウンタ２３０、２４０と記憶部２３１、２４１と受信部２３２、２４２と送信部２３３、２４３とを実現する専用の電子回路である。
【００６１】
例えば、処理回路９９０は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）またはこれらの組み合わせである。
なお、各制御装置１１０、１２０、１３０は、処理回路９９０を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路９９０の役割を分担する。
【００６２】
なお、上述の実施の形態１は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
すなわち、本発明は、その発明の範囲内において、実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【００６３】
１１０  マスタ制御装置、１１１  タイミング同期部、
１１２  メッセージ受信時間予測部、１１３  タイミング同期判定部、
１１４  タイミング同期補正部、１２０  スレーブ制御装置、１２１  タイミング同期部、
１２２  メッセージ送信部、１３０  スレーブ制御装置、１３１  タイミング同期部、
１３２  メッセージ送信部、１９０  カウンタ部、１９１  記憶部、１９２  受信部、
１９３  送信部、２００  スケジュールテーブル情報、２０１  スケジュールテーブル、
２０２  スケジュールテーブル、２３０  同期カウンタ、２３１  記憶部、
２３２  受信部、２３３  送信部、２４０  同期カウンタ、２４１  記憶部、
２４２  受信部、２４３  送信部、３００  データベース、
４００  タイミング同期確認結果、９１１  プロセッサ、９１２  タイマ、
９１３  メモリ、９１４  補助記憶装置、９１５  通信インタフェース、
９２１  プロセッサ、９２２  タイマ、９２３  メモリ、９２４  補助記憶装置、
９２５  通信インタフェース、９３１  プロセッサ、９３２  タイマ、９３３  メモリ、
９３４  補助記憶装置、９３５  通信インタフェース、９４０  通信バス、
９９０  処理回路
【図１】
2019125916.tif 000003
【図２】
2019125916.tif 000004
【図３】
2019125916.tif 000005
【図４】
2019125916.tif 000006
【図５】
2019125916.tif 000007
【図６】
2019125916.tif 000008
【図７】
2019125916.tif 000009
【図８】
2019125916.tif 000010
【図９】
2019125916.tif 000011
【図１０】
2019125916.tif 000012
【図１１】
2019125916.tif 000013
【図１２】
2019125916.tif 000014
【図１３】
2019125916.tif 000015
【図１４】
2019125916.tif 000016
【図１５】
2019125916.tif 000017
【図１６】
2019125916.tif 000018
【手続補正書】
【提出日】平成31年2月21日(2019.2.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介して、複数のスレーブ制御装置と接続されたマスタ制御装置であって、
自身のローカルタイムを第一のメッセージに内包させて、複数の上記スレーブ制御装置に送信するマスタ側タイミング同期部、
上記ローカルタイムに応じて補正されたタイミングで、上記スレーブ制御装置から送信される第二のメッセージの受信時間と、予め算出したメッセージ受信予測時間との差分を上記スレーブ制御装置ごとに計算するメッセージ受信差分計算部、
およびこのメッセージ受信差分計算部により上記スレーブ制御装置ごとに計算された複数の上記差分を用いて、複数の上記スレーブ制御装置で共通のタイミングの補正量を算出するタイミング補正量算出部を備え、
上記タイミング補正量算出部により算出された補正量は、上記ローカルタイムに加算されることを特徴とするマスタ制御装置。
【請求項２】
上記メッセージ受信差分計算部による計算に用いられる情報を記憶したデータベースを備え、
上記データベースは、
上記スレーブ制御装置が上記第二のメッセージを送信するタスクの起動タイミングを管理するスケジュールテーブルの情報と、上記予め算出されたメッセージ受信予測時間とを記憶していることを特徴とする請求項１に記載のマスタ制御装置。
【請求項３】
上記データベースに記憶された上記スケジュールテーブル上の上記タスクの起動タイミングを用いて、上記メッセージ受信予測時間を算出するメッセージ受信時間予測部を備えたことを特徴とする請求項２に記載のマスタ制御装置。
【請求項４】
上記タイミング補正量算出部は、
上記メッセージ受信差分計算部により計算された複数の上記スレーブ制御装置の上記差分の一つを暫定補正量とする手段と、
各スレーブ制御装置の差分と上記暫定補正量とを比較し、その差が閾値内にあるスレーブ制御装置の数を、上記暫定補正量ごとにカウントする手段と、
このカウントの数が最も多い暫定補正量を上記補正量と決定する手段とを有することを特徴とする請求項１から請求項３のいずれか一項に記載のマスタ制御装置。
【請求項５】
請求項１から請求項４のいずれか一項に記載のマスタ制御装置、
およびこのマスタ制御装置とネットワークを介して接続され、上記マスタ制御装置との間でタイミング同期を行なう複数のスレーブ制御装置を備えたことを特徴とする同期通信システム。
【請求項６】
上記各スレーブ制御装置は、
上記第二のメッセージを送信するタスクの起動タイミングを管理するスケジュールテーブルと、
上記マスタ制御装置から送信される第一のメッセージに含まれるローカルタイムに応じて、上記スケジュールテーブルの上記タスクの起動タイミングを補正して、上記第二のメッセージを上記マスタ制御装置に送信するスレーブ側タイミング同期部とを有することを特徴とする請求項５に記載の同期通信システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
この発明に係わるマスタ制御装置においては、ネットワークを介して、複数のスレーブ制御装置と接続されたマスタ制御装置であって、自身のローカルタイムを第一のメッセージに内包させて、複数のスレーブ制御装置に送信するマスタ側タイミング同期部、ローカルタイムに応じて補正されたタイミングで、スレーブ制御装置から送信される第二のメッセージの受信時間と、予め算出したメッセージ受信予測時間との差分をスレーブ制御装置ごとに計算するメッセージ受信差分計算部、およびこのメッセージ受信差分計算部によりスレーブ制御装置ごとに計算された複数の差分を用いて、複数のスレーブ制御装置で共通のタイミングの補正量を算出するタイミング補正量算出部を備え、タイミング補正量算出部により算出された補正量は、ローカルタイムに加算されるものである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
この発明によれば、ネットワークを介して、複数のスレーブ制御装置と接続されたマスタ制御装置であって、自身のローカルタイムを第一のメッセージに内包させて、複数のスレーブ制御装置に送信するマスタ側タイミング同期部、ローカルタイムに応じて補正されたタイミングで、スレーブ制御装置から送信される第二のメッセージの受信時間と、予め算出したメッセージ受信予測時間との差分をスレーブ制御装置ごとに計算するメッセージ受信差分計算部、およびこのメッセージ受信差分計算部によりスレーブ制御装置ごとに計算された複数の差分を用いて、複数のスレーブ制御装置で共通のタイミングの補正量を算出するタイミング補正量算出部を備え、タイミング補正量算出部により算出された補正量は、ローカルタイムに加算されるので、ネットワークを介して接続された複数のスレーブ制御装置のタイミング同期を確認し、同期していない場合に補正することができる。