(57)【特許請求の範囲】
【請求項１】
下流側に配置されているスレーブから、上流側に配置されているマスタへのフレームを受信する受信部と、
受信されたフレームに含まれるメッセージ認証符号である受信メッセージ認証符号を用いて、前記受信メッセージ認証符号を算出するための計算式の一部を計算して得られる途中計算結果を算出する途中計算結果算出部と、
受信されたフレームに含まれる送信データ列に、前記マスタへ送信する送信データを連結する送信データ連結部と、
連結後の送信データ列に対するメッセージ認証符号を前記途中計算結果を用いて算出するメッセージ認証符号算出部と、
受信されたフレームの送信元アドレスに基づいてデータ連結の可否を判定する連結判定部と、
データ連結が可能であると判定された場合に、前記連結後の送信データ列を含み、且つ、前記途中計算結果を用いて算出されたメッセージ認証符号を前記受信メッセージ認証符号の代わりに含んだフレームを上流側へ送信し、データ連結が不可であると判定された場合に、受信されたフレームを上流側へ送信する送信部と、
を備えるスレーブ装置。
【請求項２】
前記スレーブ装置には、データ連結の対象となるフレームの送信元アドレスとして対象アドレスが設定され、
前記連結判定部は、受信されたフレームの送信元アドレスが前記対象アドレスと一致する場合にデータ連結が可能であると判定する
請求項１に記載のスレーブ装置。
【請求項３】
前記スレーブ装置は、制御システムを前記マスタと共に構成する複数のスレーブのうちの１つのスレーブであり、
前記複数のスレーブは、１つ以上のスレーブ群に区分され、
前記対象アドレスは、前記スレーブ装置が属するスレーブ群の中で前記スレーブ装置の下流側で前記スレーブ装置と隣接するスレーブのアドレスである
請求項２に記載のスレーブ装置。
【請求項４】
それぞれのスレーブ群における最下流のスレーブから前記マスタにフレームが届くまでに要する時間が前記制御システムに要求される制約時間未満になる
請求項３に記載のスレーブ装置。
【請求項５】
前記マスタが、前記制約時間に基づいて前記複数のスレーブを前記１つ以上のスレーブ群に区分し、前記スレーブ装置と通信することによって前記スレーブ装置に前記対象アドレスを設定する
請求項４に記載のスレーブ装置。
【請求項６】
各フレームのメッセージ認証符号は、ブロック暗号に基づくメッセージ認証符号アルゴリズムによって算出される値であり、
前記途中計算結果算出部は、前記受信メッセージ認証符号に対して前記計算式で用いられる鍵と同じ共通鍵を用いて行われる復号演算と、前記復号演算によって得られる値と前記共通鍵に対応する副鍵との排他的論理和を求める排他的論理和演算と、を行うことによって、前記排他的論理和演算によって得られる値を前記途中計算結果として算出する
請求項１から請求項５のいずれか１項に記載のスレーブ装置。
【請求項７】
下流側に配置されているスレーブから、上流側に配置されているマスタへのフレームを受信する受信処理と、
受信されたフレームに含まれるメッセージ認証符号である受信メッセージ認証符号を用いて、前記受信メッセージ認証符号を算出するための計算式の一部を計算して得られる途中計算結果を算出する途中計算結果算出処理と、
受信されたフレームに含まれる送信データ列に、前記マスタへ送信する送信データを連結する送信データ連結処理と、
連結後の送信データ列に対するメッセージ認証符号を前記途中計算結果を用いて算出するメッセージ認証符号算出処理と、
受信されたフレームの送信元アドレスに基づいてデータ連結の可否を判定する連結判定処理と、
データ連結が可能であると判定された場合に、前記連結後の送信データ列を含み、且つ、前記途中計算結果を用いて算出されたメッセージ認証符号を前記受信メッセージ認証符号の代わりに含んだフレームを上流側へ送信し、データ連結が不可であると判定された場合に、受信されたフレームを上流側へ送信する送信処理と、
をコンピュータに実行させるためのスレーブプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スレーブからマスタへのフレームの送信に関するものである。
【背景技術】
【０００２】
制御システムにおけるフィールドネットワークでは、ライン接続型ネットワークが採用されることが多い。
ライン接続型ネットワークでは、１個のマスタとＮ個のスレーブがライン状に接続される。【０００３】
ライン接続型ネットワークにおいて各スレーブからマスタへの通信データの完全性を保証する目的で、メッセージ認証符号（ＭＡＣ）を導入することを考える。
マスタは、各スレーブから送信されたフレームを受信すると、フレームに付与されたＭＡＣを検証することによって、フレーム中のデータの完全性を検証する。
この場合、マスタはＮ個のスレーブ分のＮ個のＭＡＣを検証する必要がある。そのため、ＭＡＣ検証にかかるマスタの負荷が大きい。【０００４】
特許文献１は、フレーム連結方式を開示している。
フレーム連結方式では、各スレーブは、物理的に隣接するスレーブからフレームを受信するとフレーム中のデータに自身のデータを連結する。【０００５】
フレーム連結方式の適用により、ＭＡＣ検証にかかるマスタの負荷を軽減することが可能となる。
各スレーブは、連結後のデータに対するＭＡＣをフレームに付与し、フレームを中継する。一方、マスタは、物理的に隣接するスレーブからフレームを受信すると、フレームに付与された１つのＭＡＣを検証する。これにより、フレーム中の各スレーブのデータの完全性が検証される。したがって、マスタによって検証されるＭＡＣの数が減るため、ＭＡＣ検証にかかるマスタの負荷が削減される。【０００６】
特許文献２は、データ収集サーバと複数のゲートウェイ装置とからなるデータ収集システムにおいて、データ収集サーバにおける収集データの改ざん防止を目的とした署名を検証する負荷を削減する方法を開示している。この方法では、ゲートウェイ装置が、他のゲートウェイ装置から受信したデータに自身のデータを順次結合し、さらに署名を重畳して送信する。ここで、重畳される署名は、他のゲートウェイ装置から受信した署名と自身のデータとから生成した署名（集約署名）のみである。そのため、ゲートウェイ装置は複数の署名を生成する必要がない構成となっている。これにより、フレーム連結方式の適用で期待する効果と同様にデータ収集サーバの署名検証負荷を削減できるだけでなく、各ゲートウェイ装置における署名付与負荷の増大を抑制できる。
但し、特許文献２では、署名として主にＣＲＣが想定されている。そして、特許文献２には、送信データに付与する署名を、受信した署名に基づいて生成する集約署名生成方法に関する技術のみが開示されている。ＣＲＣはＣｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋの略称である。
一方、受信したＭＡＣは送信するＭＡＣの算出に直接使用することはできない。【０００７】
非特許文献１は、ブロック暗号に基づくＭＡＣ（ＣＭＡＣ）を開示している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第５３９３５２８号公報
【特許文献２】特開２０１５−２３３７５号公報
【非特許文献】
【０００９】
【非特許文献１】Ｍｏｒｒｉｓ  Ｄｗｏｒｋｉｎ，  “Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  ｆｏｒ  Ｂｌｏｃｋ  Ｃｉｐｈｅｒ  Ｍｏｄｅｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎ：Ｔｈｅ  ＣＭＡＣ  Ｍｏｄｅ  ｆｏｒ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ”，  ＮＩＳＴ  Ｓｐｅｃｉａｌ  Ｐｕｂｌｉｃａｔｉｏｎ  ８００−３８Ｂ，  ２００５．
【発明の概要】
【発明が解決しようとする課題】
【００１０】
フレーム連結方式の適用には、以下のような課題がある。
各スレーブは、自身のデータと他のスレーブのデータとの連結データに対してＭＡＣを算出する。連結データに対するＭＡＣの計算量は、自身のデータに対するＭＡＣの計算量に比べて大きい。つまり、ＭＡＣ付与にかかる各スレーブの負荷が増大する。そして、各スレーブにおいてフレームの中継遅延が増大する。
一般的に、制御システムでは通信周期制約が要求される。そのため、マスタは、各スレーブからのフレームの受信を通信周期制約を満たすように完了させる必要がある。しかし、各スレーブにおいてフレームの中継遅延が増大すると、フレームを中継するスレーブの数だけ中継遅延が累積されて通信周期制約を満たせなくなる可能性がある。【００１１】
本発明は、通信周期制約を満たせるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明のスレーブ装置は、
下流側に配置されているスレーブから、上流側に配置されているマスタへのフレームを受信する受信部と、
受信されたフレームに含まれるメッセージ認証符号である受信メッセージ認証符号を用いて、前記受信メッセージ認証符号を算出するための計算式の一部を計算して得られる途中計算結果を算出する途中計算結果算出部と、
受信されたフレームに含まれる送信データ列に、前記マスタへ送信する送信データを連結する送信データ連結部と、
連結後の送信データ列に対するメッセージ認証符号を前記途中計算結果を用いて算出するメッセージ認証符号算出部と、
前記連結後の送信データ列を含み、且つ、前記途中計算結果を用いて算出されたメッセージ認証符号を前記受信メッセージ認証符号の代わりに含んだフレームを上流側へ送信する送信部と、を備える。
【発明の効果】
【００１３】
本発明によれば、メッセージ認証符号（ＭＡＣ）の計算量が削減される。そのため、各スレーブにおいてフレームの中継遅延が減少する。その結果、通信周期制約を満たすことが可能となる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１における制御システム１００の構成図。
【図２】実施の形態１におけるスレーブ装置２００の構成図。
【図３】実施の形態１における通信管理部２２０の構成図。
【図４】実施の形態１における連結中継部２３０の構成図。
【図５】実施の形態１における記憶部２９０の構成図。
【図６】実施の形態１におけるマスタ装置３００の構成図。
【図７】実施の形態１におけるスレーブ装置２００の送信処理を示すフローチャート。
【図８】実施の形態１におけるスレーブ装置２００の受信処理を示すフローチャート。
【図９】実施の形態１における連結中継処理（Ｓ１４０）のフローチャート。
【図１０】実施の形態１におけるフレーム（１１１〜１１４）を示す図。
【図１１】実施の形態２における通信管理部２２０の構成図。
【図１２】実施の形態２における記憶部２９０の構成図。
【図１３】実施の形態２におけるマスタ装置３００の構成図。
【図１４】実施の形態２における区分管理部３３０の構成図。
【図１５】実施の形態２におけるスレーブ装置２００の受信処理を示すフローチャート。
【図１６】実施の形態２におけるマスタ装置３００の区分決定処理を示すフローチャート。
【図１７】実施の形態におけるスレーブ装置２００のハードウェア構成図。
【図１８】実施の形態におけるマスタ装置３００のハードウェア構成図。
【発明を実施するための形態】
【００１５】
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１６】
実施の形態１．
ライン接続型ネットワークが採用される制御システム１００について、図１から図１０に基づいて説明する。
【００１７】
＊＊＊構成の説明＊＊＊
図１に基づいて、制御システム１００の構成を説明する。
制御システム１００は、マスタ１０１と複数のスレーブ（ｓ＿１〜ｓ＿Ｎ）とを備え、特定の制御を実現する。「Ｎ」は２以上の整数である。
マスタ１０１から最も遠くに配置されたスレーブをスレーブｓ＿１と称する。
マスタ１０１から最も近くに配置されたスレーブをスレーブｓ＿Ｎと称する。
スレーブｓ＿１から数えて（ｉ−１）番目のスレーブをスレーブｓ＿ｉ−１と称し、スレーブｓ＿１から数えてｉ番目のスレーブをスレーブｓ＿ｉと称する。「ｉ」は２以上（Ｎ−１）以下の整数である。
スレーブを特定しない場合、それぞれをスレーブ１０２と称する。
【００１８】
制御システム１００におけるフィールドネットワークでは、マスタ１０１と複数のスレーブ１０２とがライン状に接続された構成が採用される。そのような構成をライン接続型ネットワークと呼ぶ。
ライン接続型ネットワークにおいて、マスタ１０１が位置する側を「上流側」と呼び、スレーブｓ＿１が位置する側を「下流側」と呼ぶ。
つまり、スレーブｓ＿Ｎは最上流のスレーブ１０２であり、スレーブｓ＿１は最下流のスレーブ１０２である。
【００１９】
図２に基づいて、スレーブ装置２００の構成を説明する。
スレーブ装置２００は、スレーブ１０２として機能するコンピュータであり、プロセッサ２０１とメモリ２０２と補助記憶装置２０３と通信装置２０４といったハードウェアを備える。これらのハードウェアは、信号線を介して互いに接続されている。
【００２０】
プロセッサ２０１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ２０１は、ＣＰＵ、ＤＳＰまたはＧＰＵである。
ＩＣは、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称である。
ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。
ＤＳＰは、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒの略称である。
ＧＰＵは、Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。
【００２１】
メモリ２０２は揮発性の記憶装置である。メモリ２０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ２０２はＲＡＭである。メモリ２０２に記憶されたデータは必要に応じて補助記憶装置２０３に保存される。
ＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。
【００２２】
補助記憶装置２０３は不揮発性の記憶装置である。例えば、補助記憶装置２０３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置２０３に記憶されたデータは必要に応じてメモリ２０２にロードされる。
ＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称である。
ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。
【００２３】
通信装置２０４はレシーバ及びトランスミッタである。例えば、通信装置２０４は通信チップまたはＮＩＣである。ＮＩＣは、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略称である。
通信装置２０４は、上流側インタフェース２０５と下流側インタフェース２０６とを備える。上流側インタフェース２０５は、ライン接続型ネットワークの上流側に接続される通信インタフェースである。下流側インタフェース２０６は、ライン接続型ネットワークの下流側に接続される通信インタフェースである。
スレーブ装置２００の通信は、通信装置２０４によって実現される。
【００２４】
スレーブ装置２００は、アプリケーション部２１０と通信管理部２２０といった要素を備える。これらの要素はソフトウェアで実現される。
【００２５】
補助記憶装置２０３には、アプリケーション部２１０と通信管理部２２０としてコンピュータを機能させるためのスレーブプログラムが記憶されている。スレーブプログラムは、メモリ２０２にロードされて、プロセッサ２０１によって実行される。
補助記憶装置２０３には、さらに、ＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ２０２にロードされて、プロセッサ２０１によって実行される。
プロセッサ２０１は、ＯＳを実行しながら、スレーブプログラムを実行する。
ＯＳは、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略称である。
【００２６】
スレーブプログラムの入出力データは記憶部２９０に記憶される。
メモリ２０２は記憶部２９０として機能する。但し、補助記憶装置２０３、プロセッサ２０１内のレジスタおよびプロセッサ２０１内のキャッシュメモリなどの記憶装置が、メモリ２０２の代わりに、又は、メモリ２０２と共に、記憶部２９０として機能してもよい。
【００２７】
スレーブ装置２００は、プロセッサ２０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ２０１の役割を分担する。
【００２８】
スレーブプログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【００２９】
図３に基づいて、通信管理部２２０の構成を説明する。
通信管理部２２０は、受信部２２１と受付部２２２と通常中継部２２３と送信部２２４と連結中継部２３０とを備える。
【００３０】
図４に基づいて、連結中継部２３０の構成を説明する。
連結中継部２３０は、検証部２３１を備える。
連結中継部２３０は、さらに、分離部２３２と途中計算結果算出部２３３と送信データ連結部２３４とＭＡＣ算出部２３５とフレーム生成部２３６とを備える。
「ＭＡＣ」は、メッセージ認証符号の略称である。具体的なメッセージ認証符号は、ブロック暗号に基づくメッセージ認証符号（ＣＭＡＣ）である。
【００３１】
図５に基づいて、記憶部２９０の構成を説明する。
記憶部２９０には、共通鍵２９１および副鍵２９２などが予め記憶される。
共通鍵２９１は、ＭＡＣを算出するための計算式（ＭＡＣ計算式）で用いられる共通鍵である。それぞれのスレーブ１０２において同じ共通鍵２９１が用いられる。
副鍵２９２は、共通鍵２９１に対応する副鍵である。それぞれのスレーブ１０２において同じ副鍵２９２が用いられる。
【００３２】
図６に基づいて、マスタ装置３００の構成を説明する。
マスタ装置３００は、マスタ１０１として機能するコンピュータであり、プロセッサ３０１とメモリ３０２と補助記憶装置３０３と通信装置３０４といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００３３】
プロセッサ３０１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ３０１はＣＰＵ、ＤＳＰまたはＧＰＵである。
メモリ３０２は揮発性の記憶装置である。メモリ３０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ３０２はＲＡＭである。メモリ３０２に記憶されたデータは必要に応じて補助記憶装置３０３に保存される。
補助記憶装置３０３は不揮発性の記憶装置である。例えば、補助記憶装置３０３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置３０３に記憶されたデータは必要に応じてメモリ３０２にロードされる。
【００３４】
通信装置３０４はレシーバ及びトランスミッタである。例えば、通信装置３０４は通信チップまたはＮＩＣである。
通信装置３０４は、通信インタフェース３０５を備える。通信インタフェース３０５は、ライン接続型ネットワークに接続される。
マスタ装置３００の通信は、通信装置３０４によって実現される。
【００３５】
マスタ装置３００は、アプリケーション部３１０と通信管理部３２０といった要素を備える。これらの要素はソフトウェアで実現される。
【００３６】
補助記憶装置３０３には、アプリケーション部３１０と通信管理部３２０としてコンピュータを機能させるためのマスタプログラムが記憶されている。マスタプログラムは、メモリ３０２にロードされて、プロセッサ３０１によって実行される。
補助記憶装置３０３には、さらに、ＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ３０２にロードされて、プロセッサ３０１によって実行される。
プロセッサ３０１は、ＯＳを実行しながら、マスタプログラムを実行する。
【００３７】
マスタプログラムの入出力データは記憶部３９０に記憶される。例えば、記憶部３９０には、共通鍵２９１と副鍵２９２とのそれぞれと同じ鍵が予め記憶される。
メモリ３０２は記憶部３９０として機能する。但し、補助記憶装置３０３、プロセッサ３０１内のレジスタおよびプロセッサ３０１内のキャッシュメモリなどの記憶装置が、メモリ３０２の代わりに、又は、メモリ３０２と共に、記憶部３９０として機能してもよい。
【００３８】
マスタ装置３００は、プロセッサ３０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ３０１の役割を分担する。
【００３９】
マスタプログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録（格納）することができる。
【００４０】
＊＊＊動作の説明＊＊＊
制御システム１００の動作は制御方法に相当する。また、制御方法の手順は制御プログラムの手順に相当する。
スレーブ装置２００の動作の手順はスレーブプログラムの手順に相当する。マスタ装置３００の動作の手順はマスタプログラムの手順に相当する。
【００４１】
図７に基づいて、スレーブ装置２００の送信処理を説明する。
スレーブ装置２００の送信処理は、アプリケーション部２１０において送信データが発生したときに実行される。
アプリケーション部２１０は、送信データを生成し、送信要求と送信データとの組を出力する。送信要求と送信データとの組は、通信管理部２２０に入力される。
【００４２】
ステップＳ１０１において、受付部２２２は、送信要求と送信データとの組を受け付ける。
送信要求には、送信データの宛先を特定する情報（宛先情報）が含まれる。
【００４３】
ステップＳ１０２において、受付部２２２は、送信要求に含まれる宛先情報に基づいて、送信データの宛先を判定する。
送信データの宛先が他スレーブ１０２である場合、処理はステップＳ１０３に進む。
送信データの宛先がマスタ１０１である場合、処理はステップＳ１０４に進む。
【００４４】
ステップＳ１０３において、送信部２２４は、他スレーブ１０２宛ての送信データを含んだフレームを生成する。このとき、送信部２２４は、共通鍵２９１を用いて送信データに対するＭＡＣを算出し、算出したＭＡＣをフレームに付与してもよい。
そして、送信部２２４は、生成したフレームを他スレーブ１０２へ送信する。
【００４５】
例えば、送信部２２４は、生成したフレームを以下のように送信する。
制御システム１００の構成情報データが記憶部２９０に予め記憶される。制御システム１００の構成情報データは制御システム１００の構成を示す。
送信部２２４は、制御システム１００の構成情報データに基づいて、他スレーブ１０２が上流側のスレーブ１０２と下流側のスレーブ１０２とのいずれであるかを判定する。
他スレーブが上流側のスレーブである場合、送信部２２４は、生成したフレームを上流側へ送信する。
他スレーブが下流側のスレーブである場合、送信部２２４は、生成したフレームを下流側へ送信する。
【００４６】
ステップＳ１０４において、受付部２２２は、マスタ宛ての送信データを記憶部２９０に保存する。マスタ宛ての送信データの送信については後述する。
【００４７】
図８に基づいて、スレーブ装置２００の受信処理を説明する。
スレーブ装置２００の受信処理は、フレームがスレーブ装置２００に到達したときに実行される。
【００４８】
ステップＳ１１１において、受信部２２１は、フレームを受信する。
【００４９】
ステップＳ１１２において、受信部２２１は、受信したフレームのヘッダを参照し、受信したフレームの宛先を判定する。
受信したフレームの宛先が自スレーブ１０２である場合、処理はステップＳ１２０に進む。
受信したフレームの宛先が他スレーブ１０２である場合、処理はステップＳ１３０に進む。
受信したフレームの宛先がマスタ１０１である場合、処理はステップＳ１４０に進む。
【００５０】
通常受信処理（Ｓ１２０）を説明する。
通常受信処理（Ｓ１２０）は、自スレーブ宛てのフレームを受信したときに実行される従来の処理である。
例えば、スレーブ装置２００は以下のように動作する。
受信部２２１は、自スレーブ１０２宛てのフレームを記憶部２９０に記憶し、アプリケーション部２１０に受信を通知する。
アプリケーション部２１０は、自スレーブ１０２宛てのフレームを処理する。
【００５１】
通常中継処理（Ｓ１３０）を説明する。
通常中継処理（Ｓ１３０）は、他スレーブ宛てのフレームを受信したときに実行される従来の処理である。
例えば、スレーブ装置２００は以下のように動作する。
受信部２２１は、他スレーブ１０２宛てのフレームを通常中継部２２３に受け渡す。
通常中継部２２３は、受け渡されたフレームを他スレーブ１０２へ送信する。
【００５２】
例えば、通常中継部２２３は、受け渡されたフレームを以下のように送信する。
制御システム１００の構成情報データが記憶部２９０に予め記憶される。制御システム１００の構成情報データは制御システム１００の構成を示す。
通常中継部２２３は、制御システム１００の構成情報データに基づいて、他スレーブ１０２が上流側のスレーブ１０２と下流側のスレーブ１０２とのいずれであるかを判定する。
他スレーブ１０２が上流側のスレーブ１０２である場合、通常中継部２２３は、受け渡されたフレームを上流側へ送信する。
他スレーブ１０２が下流側のスレーブ１０２である場合、通常中継部２２３は、受け渡されたフレームを下流側へ送信する。
【００５３】
図９に基づいて、連結中継処理（Ｓ１４０）を説明する。
連結中継処理（Ｓ１４０）は、下流側のスレーブ１０２からマスタ１０１宛てのフレームを受信したときに実行される処理である。
受信部２２１は、マスタ１０１宛てのフレームを連結中継部２３０に受け渡す。受け渡されたフレームを「受信フレーム」と称する。また、受信フレームに付与されているＭＡＣを「受信ＭＡＣ」と称する。
【００５４】
ステップＳ１４１において、検証部２３１は、受信フレームのＭＡＣ（受信ＭＡＣ）を検証する。受信ＭＡＣを検証する方法は、ＭＡＣを検証する従来の方法と同じである。
【００５５】
ＭＡＣの検証には時間がかかるため、ステップＳ１４１と並行してステップＳ１４２からステップＳ１４７が実行される。
【００５６】
ステップＳ１４２において、分離部２３２は、受信フレームを主フレームと受信ＭＡＣとに分離する。言い換えると、分離部２３２は、受信フレームから主フレームと受信ＭＡＣとを抽出する。
主フレームは、受信フレームから受信ＭＡＣを除いた部分であり、送信データ列を含む。
送信データ列は、１つ以上のスレーブ１０２からマスタ１０１へ送信される１つ以上の送信データである。
受信ＭＡＣは、受信フレームの中の主フレームに対するＭＡＣである。
ステップＳ１４２の後、処理はステップＳ１４３およびステップＳ１４４に進む。
【００５７】
ステップＳ１４３において、途中計算結果算出部２３３は、受信ＭＡＣの途中計算結果を算出する。
受信ＭＡＣの途中計算結果とは、受信ＭＡＣを計算するための計算式の一部を計算することによって得られる値である。
受信ＭＡＣの途中計算結果を算出する方法については後述する。
ステップＳ１４３の後、処理はステップＳ１４５に進む。
【００５８】
ステップＳ１４４において、送信データ連結部２３４は、自スレーブ１０２からマスタ１０１への送信データ（図７のステップＳ１０４を参照）を記憶部２９０から取得する。
そして、送信データ連結部２３４は、取得した送信データを主フレームの中の送信データ列に連結する。
ステップＳ１４４の後、処理はステップＳ１４５に進む。
【００５９】
ステップＳ１４５において、ＭＡＣ算出部２３５は、受信ＭＡＣの途中計算結果を用いて、連結後の主フレームに対するＭＡＣを算出する。
連結後の主フレームは、ステップＳ１４４によって得られる主フレームであり、連結後の送信データ列を含む。
連結後の主フレームに対するＭＡＣを算出する方法については後述する。
連結後の主フレームに対するＭＡＣを「送信ＭＡＣ」と称する。
【００６０】
ステップＳ１４６において、フレーム生成部２３６は、連結後の主フレームに送信ＭＡＣを付与することによって、マスタ１０１宛てのフレームを生成する。生成されるフレームを「送信フレーム」と称する。
【００６１】
ステップＳ１４７において、送信部２２４は、送信フレームを上流側へ送信する。
送信フレームは、連結後の送信データ列を含み、且つ、受信ＭＡＣの代わりに送信ＭＡＣを含んでいる。
【００６２】
ステップＳ１４１で受信ＭＡＣの検証が完了した後の処理について説明する。
受信ＭＡＣが正常であると判定された場合、処理は終了する。
受信ＭＡＣが異常であると判定された場合、処理はステップＳ１４８に進む。
【００６３】
ステップＳ１４８において、検証部２３１は、受信ＭＡＣの異常を送信部２２４に通知する。
送信部２２４は、マスタ１０１宛ての異常通知フレームを生成し、異常通知フレームを上流側へ送信する。
異常通知フレームは、受信ＭＡＣの異常を通知するためのフレームである。
【００６４】
以下に、受信ＭＡＣの途中計算結果を算出する方法（図９のステップＳ１４３を参照）および送信ＭＡＣを算出する方法（図９のステップＳ１４５を参照）について説明する。
【００６５】
まず、図１０に基づいて、マスタ１０１宛てのフレームの構成を説明する。
「ｈｄ」は、マスタ１０１宛てのフレームのヘッダである。
「ｄ＿ｘ」は、スレーブｘの送信データである。
「ＭＡＣ＿ｘ」は、スレーブｘによって送信フレームに付与されるＭＡＣである。
【００６６】
フレーム１１１は、スレーブｓ＿１の送信フレームである。フレーム１１１のＭＡＣ＿１は、送信データｄ＿１に対するＭＡＣである。
フレーム１１２は、スレーブｓ＿ｉ−１の送信フレームである。フレーム１１２のＭＡＣ＿ｉ−１は、送信データ列｛ｄ＿１，・・・，ｄ＿ｉ−１｝に対するＭＡＣである。
フレーム１１３は、スレーブｓ＿ｉの送信フレームである。フレーム１１３のＭＡＣ＿ｉは、送信データ列｛ｄ＿１，・・・，ｄ＿ｉ−１，ｄ＿ｉ｝に対するＭＡＣである。
フレーム１１４は、スレーブｓ＿Ｎの送信フレームである。フレーム１１４のＭＡＣ＿Ｎは、送信データ列｛ｄ＿１，・・・，ｄ＿ｉ−１，ｄ＿ｉ，・・・，ｄ＿Ｎ｝に対するＭＡＣである。
説明を簡潔にするため、各スレーブ１０２の送信データのビット数がブロックサイズＢの倍数であるものとする。
【００６７】
次に、受信ＭＡＣの途中計算結果を算出する方法（図９のステップＳ１４３を参照）について説明する。
受信ＭＡＣを算出したスレーブ１０２がスレーブｓ＿ｉ−１であり、受信ＭＡＣの途中計算結果を算出するスレーブ１０２がスレーブｓ＿ｉであるものとする。つまり、受信ＭＡＣがＭＡＣ＿ｉ−１であるものとする（図１０参照）。
【００６８】
スレーブｓ＿ｉ−１において、受信ＭＡＣは、式（１−１）を計算することによって算出される。
【００６９】
【数１】
0006906726.tif 000002
【００７０】
「ＭＡＣ＿ｉ−１」は、受信ＭＡＣである。
「Ｅ（ｂ）」は、共通鍵２９１を用いて暗号化されたビット列ｂである。
｛ｒｉ１，・・・，ｒｉｐ｝は、ビット列ｒｉｘの集合である。ビット列ｒｉｘの集合は、受信フレームに含まれる送信データ列｛ｄ＿１，・・・，ｄ＿ｉ−１｝をブロックサイズＢでｐ分割することによって得られる。
「ｓｕｂｋｅｙ」は、副鍵２９２である。
丸の中に「＋」が記された記号は、ＸＯＲ演算を意味する。「ＸＯＲ」は排他的論理和を意味する。
【００７１】
式（１−１）の中の一部を「ｔ＿ｉ−１」に置き換えると、式（１−２）が得られる。
【００７２】
【数２】
0006906726.tif 000003
【００７３】
式（１−２）は、式（１−３）に展開される。
【００７４】
【数３】
0006906726.tif 000004
【００７５】
「Ｄ（ＭＡＣ＿ｉ−１）」は、受信ＭＡＣに対して共通鍵２９１を用いて行われる復号演算によって得られる値である。
【００７６】
途中計算結果算出部２３３は、式（１−３）を計算することによって、受信ＭＡＣの途中計算結果ｔ＿ｉ−１を算出する。
つまり、途中計算結果算出部２３３は、１回の復号演算と１回のＸＯＲ演算とによって、途中計算結果ｔ＿ｉ−１を算出する。
【００７７】
次に、送信ＭＡＣを算出する方法（図９のステップＳ１４５を参照）について説明する。
送信ＭＡＣを算出するスレーブ１０２がスレーブｓ＿ｉであるものとする。つまり、送信ＭＡＣがＭＡＣ＿ｉであるものとする（図１０参照）。
【００７８】
送信ＭＡＣは、式（１−４）を計算することによって算出することができる。
【００７９】
【数４】
0006906726.tif 000005
【００８０】
「ＭＡＣ＿ｉ」は、送信ＭＡＣである。
｛ｖｉ１，・・・，ｖｉｑ｝は、ビット列ｖｉｙの集合である。ビット列ｖｉｙの集合は、スレーブｓ＿ｉの送信データをブロックサイズＢでｑ分割することによって得られる。
【００８１】
式（１−４）の一部は、式（１−１）の一部「ｔ＿ｉ−１」と共通する。
式（１−４）の一部を「ｔ＿ｉ−１」に置き換えると、式（１−５）が得られる。
【００８２】
【数５】
0006906726.tif 000006
【００８３】
ＭＡＣ算出部２３５は、途中計算結果ｔｉ−１を用いて式（１−５）を計算することによって、送信ＭＡＣを算出する。
途中計算結果ｔ＿ｉ−１を用いて送信ＭＡＣを算出することにより、式（１−４）の一部の計算を省略することができる。つまり、ｐ−１回の暗号化演算とｐ−２回のＸＯＲ演算とを省略することができる。
【００８４】
最後に、マスタ装置３００の動作を説明する。
マスタ装置３００は、ライン接続型ネットワークにおける従来のマスタと同様の動作をする。
【００８５】
例えば、マスタ装置３００は以下のように動作する。
マスタ装置３００にフレームが到達すると、通信管理部３２０はフレームを受信する。受信されたフレームを受信フレームと称する。
そして、通信管理部３２０は、受信フレームのＭＡＣを検証する。
【００８６】
受信フレームのＭＡＣが正常である場合、または、受信フレームにＭＡＣが含まれない場合、通信管理部３２０は、受信フレームが通常フレームと異常通知フレームとのいずれであるか判定する。
受信フレームが通常フレームである場合、通信管理部３２０は、受信フレームを記憶部３９０に記憶し、通常フレームの受信をアプリケーション部３１０に通知する。アプリケーション部３１０は受信フレームを処理する。
受信フレームが異常通知フレームである場合、通信管理部３２０は、中継異常をアプリケーション部３１０に通知する。アプリケーション部３１０は中継異常用の処理を行う。
【００８７】
受信フレームのＭＡＣが異常である場合、通信管理部３２０は、ＭＡＣ異常をアプリケーション部３１０に通知する。アプリケーション部３１０はＭＡＣ異常用の処理を行う。
【００８８】
＊＊＊実施の形態１の効果＊＊＊
実施の形態１により、受信フレームに含まれるＭＡＣ＿ｉ−１から逆算される途中計算結果を利用して、スレーブｓ＿ｉにおけるＭＡＣ＿ｉを算出することができる。そのため、ライン型接続ネットワークにおけるマスタ・スレーブ間の通信にフレーム連結方式およびＭＡＣを適用した際にも、各スレーブのＭＡＣ付与負荷を削減できる。その結果、各スレーブにおいてフレームの中継遅延が減少する。そして、通信周期制約を満たすことが可能となる。
【００８９】
実施の形態２．
制御システム１００に要求される制約時間以内に最下流のスレーブ１０２からマスタ１０１にフレームが届くようにするための形態について、主に実施の形態１と異なる点を図１１から図１６に基づいて説明する。
【００９０】
＊＊＊構成の説明＊＊＊
制御システム１００の構成は、実施の形態１における構成と同じである（図１参照）。
【００９１】
スレーブ装置２００の構成は、通信管理部２２０の構成と記憶部２９０の構成とを除き、実施の形態１における構成と同じである（図２参照）。
【００９２】
図１１に基づいて、通信管理部２２０の構成を説明する。
通信管理部２２０は、さらに、連結判定部２２５を備える。他の構成は、実施の形態１における構成と同じである（図３参照）。
【００９３】
図１２に、記憶部２９０の構成を説明する。
記憶部２９０には、共通鍵２９１と副鍵２９２との他に、対象アドレス２９３が予め記憶される。つまり、スレーブ装置２００には対象アドレス２９３が設定される。
対象アドレス２９３は、データ連結の対象となるフレームの送信元アドレスとして設定されるアドレスである。
対象アドレス２９３の詳細について後述する。
【００９４】
図１２に基づいて、マスタ装置３００の構成を説明する。
マスタ装置３００は、さらに、区分管理部３３０を備える。他の構成は、実施の形態１における構成と同じである（図６参照）。
【００９５】
図１４に基づいて、区分管理部３３０の構成を説明する。
区分管理部３３０は、区分決定部３３１とアドレス設定部３３２とを備える。
【００９６】
＊＊＊動作の説明＊＊＊
スレーブ装置２００の送信処理は、実施の形態１における送信処理と同じである（図７参照）。
【００９７】
図１５に基づいて、スレーブ装置２００の受信処理を説明する。
ステップＳ１１１およびステップＳ１１２は、実施の形態１で説明した通りである（図８参照）。
受信したフレームの宛先がマスタ１０１である場合、処理はステップＳ２０１に進む。
【００９８】
ステップＳ２０１において、連結判定部２２５は、受信されたフレームの送信元アドレスに基づいて、データ連結の可否を判定する。
具体的には、連結判定部２２５は、受信されたフレームの送信元アドレスを対象アドレス２９３と比較する。送信元アドレスが対象アドレス２９３と一致する場合、連結判定部２２５は、データ連結が可能であると判定する。送信元アドレスが対象アドレス２９３と一致しない場合、連結判定部２２５は、データ連結が不可であると判定する。
データ連結が可能であると判定された場合、処理はステップＳ１４０に進む。連結中継処理（Ｓ１４０）は、実施の形態１で説明した通りである（図９参照）。
データ連結が不可であると判定された場合、処理はステップＳ１３０に進む。ステップＳ１３０において、送信部２２４は、受信されたフレームを上流側へ送信する。
【００９９】
次に、対象アドレス２９３の詳細を説明する。説明の対象とするスレーブ１０２をスレーブ装置２００と称する。
複数のスレーブ１０２は、１つ以上のスレーブ群に区分される。スレーブ群は１つ以上のスレーブ１０２である。それぞれのスレーブ群における通信時間は制約時間未満になる。通信時間とは、それぞれのスレーブ群における最下流のスレーブ１０２からマスタ１０１にフレームが届くまでに要する時間である。制約時間は、制御システム１００に要求される通信周期制約で定められる時間である。
スレーブ装置２００が属するスレーブ群の中でスレーブ装置２００の下流側でスレーブ装置２００と隣接するスレーブ１０２を「仮想隣接スレーブ」と称する。つまり、仮想隣接スレーブは、スレーブ装置２００が属するスレーブ群の中で下流側インタフェース２０６からのホップ数が最小となるスレーブ１０２である。一方、スレーブ装置２００の下流側インタフェース２０６と物理的に直接接続されているスレーブ１０２を「物理隣接スレーブ」と称する。
対象アドレス２９３は、仮想隣接スレーブのアドレスである。つまり、仮想隣接スレーブから送信されたマスタ１０１宛てのフレームを受信した場合、スレーブ装置２００は連結中継処理（Ｓ１４０）を行う。また、物理隣接スレーブ（仮想隣接スレーブを除く）から送信されたマスタ１０１宛てのフレームを受信した場合、スレーブ装置２００は通常中継処理（Ｓ１３０）を行う。
【０１００】
対象アドレス２９３は、マスタ１０１によってスレーブ装置２００に設定される。具体的には、各スレーブ１０２からマスタ１０１へのフレームの通信が開始される前に、対象アドレス２９３がスレーブ装置２００に設定される。
区分決定部３３１は、制約時間に基づいて複数のスレーブ１０２を１つ以上のスレーブ群に区分する。区分決定部３３１の処理の具体例について後述する。
アドレス設定部３３２は、１つ以上のスレーブ群からスレーブ装置２００が属するスレーブ群を選択し、選択したスレーブ群からスレーブ装置２００の仮想隣接スレーブを選択する。そして、アドレス設定部３３２は、スレーブ装置２００と通信することによって、仮想隣接スレーブのアドレス（対象アドレス２９３）をスレーブ装置２００に設定する。
【０１０１】
区分決定部３３１の処理の具体例について説明する。
区分決定部３３１は、複数のスレーブ１０２を１つ以上のスレーブ群に区分する近似解法を用いる。但し、区分決定部３３１は、他の近似解法または厳密解法を用いてもよい。
【０１０２】
図１６に基づいて、区分決定処理を説明する。
ステップＳ２１１において、区分決定部３３１は、区分集合Ｃと各連結区分ｃｊのスレーブ集合ＳＣ（ｃｊ）とを初期化する。
区分集合Ｃは、Ｍ個の連結区分｛ｃ１，・・・，ｃＭ｝である。「Ｍ」は１以上Ｎ以下の整数である。「Ｎ」はスレーブ１０２の数である。
連結区分ｃｊは、データ連結を行うか否かを判定するための区分であり、スレーブ群に相当する。
スレーブ集合ＳＣ（ｃｊ）は、連結区分ｃｊに属する１つ以上のスレーブ１０２である。
【０１０３】
区分集合Ｃの初期化は、式（２−１）で表すことができる。
【０１０４】
Ｃ  ←  ｛ｃ０｝      （２−１）
【０１０５】
スレーブ集合ＳＣ（ｃｊ）の初期化は、式（２−２）で表すことができる。「Ｓ」はＮ個のスレーブ１０２である。
【０１０６】
ＳＣ（ｃ０）  ←  Ｓ      （２−２）
Ｓ  ＝  ｛ｓ＿１，・・・，ｓ＿Ｎ｝
【０１０７】
ステップＳ２１２において、区分決定部３３１は、区分集合Ｃにおける最大通信時間Ｄｍａｘを算出する。
最大通信時間Ｄｍａｘは、区分集合Ｃにおける通信時間Ｄｒｃｖ（ｃｊ）の最大値である。
通信時間Ｄｒｃｖ（ｃｊ）は、連結区分ｃｊにおいて最下流のスレーブ１０２がフレームの送信処理を開始してからスレーブ１０２にフレームが届くまでに要する時間である。
区分集合Ｃに含まれる連結区分ｃｊの数が多くなるほど通信時間Ｄｒｃｖ（ｃｊ）は短くなる。区分集合Ｃが１つの連結区分ｃｊで構成される場合、通信時間Ｄｒｃｖ（ｃｊ）は最大となる。
【０１０８】
つまり、区分決定部３３１は、区分集合Ｃに含まれる各連結区分ｃｊの通信時間Ｄｒｃｖ（ｃｊ）を算出し、最大の通信時間Ｄｒｃｖ（ｃｊ）を選択する。選択される通信時間Ｄｒｃｖ（ｃｊ）が最大通信時間Ｄｍａｘである。
通信時間Ｄｒｃｖ（ｃｊ）は、連結区分ｃｊに属する各スレーブ１０２の送信データサイズ、各送信データサイズに応じたＭＡＣ演算時間、および、各送信データサイズに応じたフレーム中継時間などの各種パラメータに基づいて算出される。各種パラメータは記憶部３９０に予め記憶される。
【０１０９】
ステップＳ２１３において、区分決定部３３１は、最大通信時間Ｄｍａｘを制約時間Ｔｃと比較する。
最大通信時間Ｄｍａｘが制約時間Ｔｃ未満である場合、区分決定処理は終了する。
最大通信時間Ｄｍａｘが制約時間Ｔｃ以上である場合、処理はステップＳ２１４に進む。
【０１１０】
ステップＳ２１４において、区分決定部３３１は、区分集合Ｃに、新たな要素として連結区分ｃ｜ｃ｜＋１を追加する。
連結区分ｃ｜ｃ｜＋１の追加は、式（２−３）で表すことができる。
【０１１１】
【数６】
0006906726.tif 000007
【０１１２】
ステップＳ２１５において、区分決定部３３１は、区分集合Ｃに含まれる各連結区分ｃｊに対し、スレーブ集合ＳＣ（ｃｊ）の構成を決定する。
【０１１３】
具体的には、区分決定部３３１は、上流側のスレーブ１０２から順に各スレーブ１０２をいずれかの連結区分ｃｊに割り当てる。スレーブｓ＿ｉの割り当ては以下のように行われる。「ｉ」が大きいスレーブｓ＿ｉほど上流側に位置する。つまり、「ｉ」が大きいスレーブｓ＿ｉほどスレーブ１０２に近い。
まず、区分決定部３３１は、各連結区分ｃｊにおける通信時間Ｄｒｃｖ（ｃｊ）を算出する。
次に、区分決定部３３１は、最小の通信時間Ｄｒｃｖ（ｃｊ）に対応する連結区分ｃｊを選択する。
そして、区分決定部３３１は、選択した連結区分ｃｊにスレーブｓ＿ｉを追加する。
【０１１４】
スレーブｓ＿ｉの追加は、式（２−４）で表すことができる。
【０１１５】
【数７】
0006906726.tif 000008
【０１１６】
ステップＳ２１５の後、処理はステップＳ２１２に進む。
【０１１７】
＊＊＊実施の形態２の効果＊＊＊
実施の形態２では、通信周期制約に応じて複数のスレーブ１０２が複数に区分される。そして、区分ごとに送信データの連結が行われる。そのため、累積中継遅延を削減できる。その結果、通信周期制約を満たすことができる。
【０１１８】
＊＊＊実施の形態の補足＊＊＊
図１７に基づいて、スレーブ装置２００のハードウェア構成を説明する。
スレーブ装置２００は処理回路２０９を備える。
処理回路２０９は、アプリケーション部２１０と通信管理部２２０とを実現するハードウェアである。
処理回路２０９は、専用のハードウェアであってもよいし、メモリ２０２に格納されるプログラムを実行するプロセッサ２０１であってもよい。
【０１１９】
処理回路２０９が専用のハードウェアである場合、処理回路２０９は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称である。
ＦＰＧＡは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
【０１２０】
スレーブ装置２００は、処理回路２０９を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路２０９の役割を分担する。
【０１２１】
処理回路２０９において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、処理回路２０９はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０１２２】
図１８に基づいて、マスタ装置３００のハードウェア構成を説明する。
マスタ装置３００は処理回路３０９を備える。
処理回路３０９は、アプリケーション部３１０と通信管理部３２０と区分管理部３３０とを実現するハードウェアである。
処理回路３０９は、専用のハードウェアであってもよいし、メモリ２０２に格納されるプログラムを実行するプロセッサ２０１であってもよい。
【０１２３】
処理回路３０９が専用のハードウェアである場合、処理回路３０９は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
【０１２４】
マスタ装置３００は、処理回路３０９を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路３０９の役割を分担する。
【０１２５】
処理回路３０９において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
このように、処理回路３０９はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０１２６】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【０１２７】
スレーブ装置２００とマスタ装置３００とのそれぞれの要素である「部」は、「処理」または「工程」と読み替えてもよい。
【符号の説明】
【０１２８】
１００  制御システム、１０１  マスタ、１０２  スレーブ、１１１  フレーム、１１２  フレーム、１１３  フレーム、１１４  フレーム、２００  スレーブ装置、２０１  プロセッサ、２０２  メモリ、２０３  補助記憶装置、２０４  通信装置、２０５  上流側インタフェース、２０６  下流側インタフェース、２０９  処理回路、２１０  アプリケーション部、２２０  通信管理部、２２１  受信部、２２２  受付部、２２３  通常中継部、２２４  送信部、２２５  連結判定部、２３０  連結中継部、２３１  検証部、２３２  分離部、２３３  途中計算結果算出部、２３４  送信データ連結部、２３５  ＭＡＣ算出部、２３６  フレーム生成部、２９０  記憶部、２９１  共通鍵、２９２  副鍵、２９３  対象アドレス、３００  マスタ装置、３０１  プロセッサ、３０２  メモリ、３０３  補助記憶装置、３０４  通信装置、３０５  通信インタフェース、３０９  処理回路、３１０  アプリケーション部、３２０  通信管理部、３３０  区分管理部、３３１  区分決定部、３３２  アドレス設定部、３９０  記憶部。
【図１】
0006906726.tif 000009
【図２】
0006906726.tif 000010
【図３】
0006906726.tif 000011
【図４】
0006906726.tif 000012
【図５】
0006906726.tif 000013
【図６】
0006906726.tif 000014
【図７】
0006906726.tif 000015
【図８】
0006906726.tif 000016
【図９】
0006906726.tif 000017
【図１０】
0006906726.tif 000018
【図１１】
0006906726.tif 000019
【図１２】
0006906726.tif 000020
【図１３】
0006906726.tif 000021
【図１４】
0006906726.tif 000022
【図１５】
0006906726.tif 000023
【図１６】
0006906726.tif 000024
【図１７】
0006906726.tif 000025
【図１８】
0006906726.tif 000026