(57)【特許請求の範囲】
【請求項１】
伝送対象のデータを含むフレームを送信する送信側装置（２，１０）と、前記フレームを受信する複数の受信側装置（１１，１２，１３）と、を備える通信システム（１）であって、
前記送信側装置は、
前記フレームを前記複数の受信側装置に一斉に送信する送信部（Ｓ１２０，Ｓ１４０，Ｓ１５０）を備え、
前記受信側装置の各々は、
当該受信側装置以外の前記受信側装置である他の受信側装置において、前記フレームの受信エラーが生じたか否かを判定する判定部（Ｓ２５０，Ｓ２９０，Ｓ３２０，Ｓ４１０）と、
前記判定部により、前記他の受信側装置において前記受信エラーが生じたと判定された場合に、当該受信側装置が受信した前記フレームに含まれていた前記データを破棄する破棄部（Ｓ４２０）と、を備え、
前記送信側装置が備える前記送信部は、
前記複数の受信側装置に同じ前記フレームを２回送信するように構成されていて、しかも、２回送信する同じ前記フレームのうち、先に送信する方である１回目フレームを送信してから、一定時間が経過すると、２回送信する同じ前記フレームのうち、後に送信する方である２回目フレームを送信するように構成されており、
前記送信側装置は、
前記送信部が前記１回目フレームを送信してから前記一定時間が経過するまでの間に、前記受信側装置の何れかからの受信エラー通知を当該送信側装置が受信した場合に、前記送信部が前記２回目フレームを送信することを禁止する禁止部（Ｓ１３０）、を更に備え、
前記受信側装置の各々は、
前記１回目フレームについて受信エラーが生じたか否かを判定し、受信エラーが生じたと判定した場合に、前記送信側装置へ前記受信エラー通知を送信する通知部（Ｓ２７０）、を更に備え、
前記受信側装置の各々が備える前記判定部は、
当該受信側装置が前記１回目フレームを受信してから、前記一定時間よりも長い受信待機時間が経過するまでの間に、当該受信側装置が前記２回目フレームを受信しなければ、前記他の受信側装置において前記受信エラーが生じたと判定するように構成され、
前記受信側装置の各々が備える前記破棄部は、
前記判定部により前記他の受信側装置において前記受信エラーが生じたと判定された場合に、当該受信側装置が受信した前記１回目フレームに含まれていた前記データを破棄するように構成されている、
通信システム。
【請求項２】
請求項１に記載の通信システムであって、
前記送信側装置（２）は、
送信元装置（１０）から前記フレームを受信して、その受信したフレームを前記複数の受信側装置に送信する中継装置（２）である、
通信システム。
【請求項３】
請求項２に記載の通信システムにおいて、
前記中継装置は、
前記送信部が、前記２回目フレームの送信を行った場合に、前記送信元装置へ送信成功を示す信号を送信する正常通知部（Ｓ１６０）、を更に備える、
通信システム。
【請求項４】
請求項２又は請求項３に記載の通信システムにおいて、
前記中継装置は、
前記禁止部により前記２回目フレームの送信が禁止された場合に、前記送信元装置へ送信失敗を示す信号を送信する失敗通知部（Ｓ１７０）、を更に備える、
通信システム。
【請求項５】
請求項２ないし請求項４の何れか１項に記載の通信システムであって、
前記フレームには、当該フレームが、前記送信部により２回送信される対象のフレームである冗長送信対象フレームか否かを識別可能な識別子が含まれており、
前記中継装置は、
当該中継装置が前記送信元装置から受信した前記フレームに含まれている前記識別子に基づいて、前記受信したフレームが前記冗長送信対象フレームであるか否かを判定し、前記受信したフレームが前記冗長送信対象フレームであると判定した場合には、当該中継装置の動作モードを、前記送信部及び前記禁止部が機能する動作モードにし、前記受信したフレームが前記冗長送信対象フレームでないと判定した場合には、当該中継装置の動作モードを、前記送信部及び前記禁止部が機能しない動作モードにする中継動作切替部（Ｓ１１０）、を更に備え、
前記受信側装置の各々は、
当該受信側装置が受信したフレームに含まれている前記識別子に基づいて、前記受信したフレームが前記冗長送信対象フレームであるか否かを判定し、前記受信したフレームが前記冗長送信対象フレームであると判定した場合には、当該受信側装置の動作モードを、前記通知部、前記判定部及び前記破棄部が機能する動作モードにし、前記受信したフレームが前記冗長送信対象フレームでないと判定した場合には、当該受信側装置の動作モードを、前記通知部、前記判定部及び前記破棄部が機能しない動作モードにする受信動作替部（Ｓ２１０）、を更に備える、
通信システム。
【請求項６】
請求項１ないし請求項４の何れか１項に記載の通信システムであって、
前記フレームには、当該フレームが、前記送信部により２回送信される対象のフレームである冗長送信対象フレームか否かを識別可能な識別子が含まれており、
前記受信側装置の各々は、
当該受信側装置が受信したフレームに含まれている前記識別子に基づいて、前記受信したフレームが前記冗長送信対象フレームであるか否かを判定し、前記受信したフレームが前記冗長送信対象フレームであると判定した場合には、当該受信側装置の動作モードを、前記通知部、前記判定部及び前記破棄部が機能する動作モードにし、前記受信したフレームが前記冗長送信対象フレームでないと判定した場合には、当該受信側装置の動作モードを、前記通知部、前記判定部及び前記破棄部が機能しない動作モードにする受信動作替部（Ｓ２１０）、を更に備える、
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムに関する。
【背景技術】
【０００２】
例えば特許文献１には、データ送信端末が一度に複数のデータ受信端末へデータ伝送を行う通信システムが記載されている。特許文献１に記載の通信システムにおいて、データ送信端末は、複数の異なるパケットを連続的に送信し、その後、データ受信端末の各々は、受信エラーが生じたパケット（即ち、受信に失敗したパケット）を示す再送要求を送信する。そして、データ送信端末は、データ受信端末からの再送要求が示すパケットを再送信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−８８２５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、送信側装置から複数の受信側装置へ、伝送対象のデータを含むフレームが一斉に送信され、各受信側装置は、受信したフレーム中のデータを用いて、当該受信側装置に割り当てられた制御対象を制御する、といった通信システムが考えられる。
【０００５】
この場合、受信側装置の全てがフレームの受信に成功すれば、受信側装置の各々は、同じタイミングのデータを取得することができる。同じタイミングのデータとは、同じタイミングでの情報を示すデータ、である。そして、受信側装置の各々が、その同じタイミングのデータを用いて当該受信側装置の制御対象を制御することにより、各受信側装置が同期して制御対象を制御することができ、その結果、通信システム全体として信頼性の高い制御を実現することができる。
【０００６】
しかし、複数の受信側装置の何れかに受信エラーが生じた場合、その受信側装置では、フレームの受信に失敗することとなり、受信したフレームは破棄される。よって、受信エラーが生じた受信側装置が取得するデータは更新されず、フレームの受信に成功した受信側装置が取得するデータは最新のデータに更新される、という状況が生じる。
【０００７】
このため、データの同時性が確保されなくなる。データの同時性とは、全ての受信側装置が同じタイミングのデータを取得することである。
一方、上記特許文献１の技術は、データの同時性を確保できるものではない。
【０００８】
そこで、本発明は、送信側装置から複数の受信側装置に、データを含むフレームが送信される通信システムにおいて、全ての受信側装置が同じタイミングのデータを取得できるようにすること、を目的としている。
【課題を解決するための手段】
【０００９】
本発明の通信システム（１）は、伝送対象のデータを含むフレームを送信する送信側装置（２，１０）と、前記フレームを受信する複数の受信側装置（１１，１２，１３）と、を備える。
【００１０】
そして、送信側装置は、フレームを複数の受信側装置に一斉に送信する送信部（Ｓ１２０，Ｓ１４０，Ｓ１５０）、を備える。
また、受信側装置の各々は、判定部（Ｓ２５０，Ｓ２９０，Ｓ３２０，Ｓ４１０）と、破棄部（Ｓ４２０）と、を備える。
【００１１】
判定部は、当該受信側装置以外の受信側装置である他の受信側装置において、フレームの受信エラーが生じたか否かを判定する。受信エラーは、フレームの受信に失敗したことを意味する。破棄部は、判定部により、他の受信側装置において受信エラーが生じたと判定された場合に、当該受信側装置が受信したフレームに含まれていたデータを破棄する。
【００１２】
この通信システムによれば、複数の受信側装置のうちの何れかに受信エラーが生じた場合に、フレームの受信に成功した受信側装置においても、受信したフレーム中のデータは取得されず破棄される。このため、前述の状況、即ち、受信エラーが生じた受信側装置が取得するデータは更新されず、フレームの受信に成功した受信側装置が取得するデータは最新のデータに更新される、という状況が回避される。よって、全ての受信側装置が同じタイミングのデータを取得できるようにすることを実現することができる。即ち、データの同時性を実現することができる。
【００１３】
本発明の通信システムは、例えば下記のように構成することができる。
送信側装置が備える送信部は、複数の受信側装置に同じフレームを２回送信するように構成される。しかも、送信部は、２回送信する同じフレームのうち、先に送信する方である１回目フレームを送信してから、一定時間が経過すると、２回送信する同じフレームのうち、後に送信する方である２回目フレームを送信するように構成される。
【００１４】
そして、送信側装置は、禁止部（Ｓ１３０）を更に備える。その禁止部は、送信部が１回目フレームを送信してから前記一定時間が経過するまでの間に、受信側装置の何れかからの受信エラー通知を当該送信側装置が受信した場合に、送信部が２回目フレームを送信することを禁止する。
【００１５】
また、受信側装置の各々は、通知部（Ｓ２７０）を更に備える。その通知部は、１回目フレームについて受信エラーが生じたか否かを判定し、受信エラーが生じたと判定した場合に、送信側装置へ前記受信エラー通知を送信する。
【００１６】
そして、受信側装置の各々が備える判定部は、当該受信側装置が１回目フレームを受信してから、前記一定時間よりも長い受信待機時間が経過するまでの間に、当該受信側装置が２回目フレームを受信しなければ、他の受信側装置において受信エラーが生じたと判定するように構成される。
【００１７】
更に、受信側装置の各々が備える破棄部は、判定部により他の受信側装置において受信エラーが生じたと判定された場合に、当該受信側装置が受信した１回目フレームに含まれていたデータを破棄するように構成される。
【００１８】
このように構成された通信システムにおいて、全ての受信側装置が１回目フレームの受信に成功した場合には、何れの受信側装置も受信エラー通知を送信しないため、送信側装置からは、１回目フレームに続き、２回目フレームが送信される。この場合、受信側装置の各々は、１回目フレーム中のデータを取得することで、最新のデータを取得することができる。もちろん、２回目フレームに受信エラーがなければ、１回目フレームではなく、２回目フレーム中のデータを取得することもできる。１回目フレームと２回目フレームとで、データは同じであるからである。
【００１９】
一方、何れかの受信側装置において、１回目フレームについて受信エラーが生じた場合、即ち、１回目フレームの受信に失敗した場合、その受信側装置は、送信側装置へ受信エラー通知を送信する。このため、送信側装置からは２回目フレームが送信されなくなる。
【００２０】
すると、この場合、１回目フレームの受信に成功した受信側装置は、１回目フレームを受信してから受信待機時間が経過しても２回目フレームを受信しなくなるため、当該受信側装置が受信した１回目フレーム中のデータを破棄部によって破棄することとなる。よって、前述の状況が回避されて、データの同時性を実現することができる。
【００２１】
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００２２】
【図１】実施態様の通信システムの構成を示すブロック図である。
【図２】フレームの構成を示す説明図である。
【図３】スイッチングハブ処理を表すフローチャートである。
【図４】受信エンドノード処理を表すフローチャートである。
【図５】受信待機タイマ処理を表すフローチャートである。
【図６】第１の動作例を説明するタイムチャートである。
【図７】第２の動作例を説明するタイムチャートである。
【図８】第３の動作例を説明するタイムチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照しながら、発明を実施するための形態を説明する。
［構成］
図１に示す実施態様の通信システム１は、自動車に搭載される通信システムである。
【００２４】
通信システム１は、イーサネットにおけるプロトコルのうち、例えばＵＤＰを用いた通信システムであり、ノードとして、４つのＥＣＵ１０〜１３を備える。更に、通信システム１は、中継装置としてのスイッチングハブ２を備える。尚、イーサネットは登録商標である。ＥＣＵは、「Electronic Control Unit」、即ち電子制御装置の略である。ＵＤＰは、「User Datagram Protocol」の略である。
【００２５】
ＥＣＵ１０は、通信線３０によってスイッチングハブ２と接続されている。そして、スイッチングハブ２は、通信線３１〜３３の各々によってＥＣＵ１１〜１３と接続されている。ＥＣＵ１０から送信されるフレームは、スイッチングハブ２を経由して、ＥＣＵ１１〜１３の何れかに送信される。
【００２６】
例えば、ＥＣＵ１０は、エンジンを制御するＥＣＵであり、ＥＣＵ１１は、トランスミッションを制御するＥＣＵであり、ＥＣＵ１２は、ステアリング装置を制御するＥＣＵであり、ＥＣＵ１３は、ブレーキ装置を制御するＥＣＵである。そして、ＥＣＵ１０には、検出対象の物理量としてのエンジン回転数を検出するためのセンサ４０が接続されている。また、ＥＣＵ１１には、トランスミッションの変速比等を制御するためのアクチュエータ４１が接続されており、ＥＣＵ１２には、ステアリング装置の動力となるアクチュエータ４２が接続されており、ＥＣＵ１３には、ブレーキ装置の動作／非動作等を制御するためのアクチュエータ４３が接続されている。
【００２７】
ＥＣＵ１０から送信されるフレームのうち、ＥＣＵ１１〜１３にとって同時性が必要なデータを含むフレームは、ＥＣＵ１１〜１３に一斉送信されるフレームとされる。
同時性が必要なデータとは、ＥＣＵ１１〜１３の各々が制御対象を制御する上で、同じタイミングの値であることが必要なデータである。以下では、同時性が必要なデータを含むフレームのことを、同時データフレームという。本実施形態において、同時データフレームは、ブロードキャストフレームとされる。
【００２８】
このため、ＥＣＵ１０から送信されるフレームのうち、同時データフレームは、スイッチングハブ２を経由して、３つのＥＣＵ１１〜１３に一斉に送信される。
例えば、ＥＣＵ１０は、センサ４０からの信号に基づきエンジン回転数を検出する。そして、ＥＣＵ１０は、検出した最新のエンジン回転数を表すデータ（以下、回転数データという）を含むフレームを、一定時間毎に、ブロードキャストフレームとしてスイッチングハブ２に送信する。すると、スイッチングハブ２は、そのフレームを各ＥＣＵ１１〜１３へ一斉に送信する。そして、ＥＣＵ１１〜１３の各々は、ＥＣＵ１０からのフレームに含まれている回転数データを用いて、制御対象を制御する。具体的には、ＥＣＵ１１は回転数データに基づいてアクチュエータ４１を制御し、ＥＣＵ１２は回転数データに基づいてアクチュエータ４２を制御し、ＥＣＵ１３は回転数データに基づいてアクチュエータ４３を制御する。この例では、回転数データが、同時性が必要なデータの一例であり、回転数データを含むフレームが、同時データフレームの一例である。
【００２９】
通信システム１において通信されるフレームは、図２に示すイーサネットフレームである。このイーサネットフレームは、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、タイプ、データ、およびＦＣＳの各領域を備える。ＦＣＳは、「Frame Check Sequence」の略である。宛先ＭＡＣアドレスは、フレームの宛先装置のＭＡＣアドレスであり、送信元ＭＡＣアドレスは、フレームの送信元装置のＭＡＣアドレスである。ＭＡＣアドレスは、装置のアドレスに相当する。そして、宛先ＭＡＣアドレスからタイプまでの領域が、イーサネットヘッダ部となっている。また、図２では図示を省略しているが、フレームにおけるデータ領域には、ＵＤＰヘッダ部と、ＵＤＰで送受信されるデータが配置されるＵＤＰデータ部とが、カプセル化されて含まれる。本実施形態において、回転数データ等の伝送対象データは、そのＵＤＰデータ部に配置される。
【００３０】
そして、ブロードキャストフレームは、宛先ＭＡＣアドレスのビットが全て「１」になっているフレームである。尚、同時データフレームは、ブロードキャストフレームではなく、例えば、ＥＣＵ１１〜ＥＣＵ１３を宛先とするマルチキャストフレームであっても良い。その場合、宛先ＭＡＣアドレスは、ＥＣＵ１１〜１３が宛先であることを示す値になっていれば良い。
【００３１】
一方、図１に示すように、ＥＣＵ１０〜１３の各々は、当該ＥＣＵの動作を司る制御部５０〜５３を備える。ＥＣＵ１０〜１３の動作は、制御部５０〜５３の処理動作によって実現される。
【００３２】
制御部５０〜５３は、ＣＰＵと、ＲＡＭ、ＲＯＭ、フラッシュメモリ等の半導体メモリと、を有する周知のマイクロコンピュータ（以下、マイコンという）を中心に構成されている。制御部５０〜５３の機能（即ち、ＥＣＵ１０〜１３の機能）は、当該制御部のＣＰＵが非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。例えば、上記ＲＯＭが、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。尚、制御部５０〜５３を構成するマイコンの数は１つでも複数でも良い。制御部５０〜５３の機能を実現する手法はソフトウェアに限るものではなく、その一部又は全部の機能を、論理回路やアナログ回路等を組み合わせたハードウェアを用いて実現しても良い。
【００３３】
また、スイッチングハブ２も、当該スイッチングハブ２の動作を司る制御部２０を備える。スイッチングハブ２の動作は、制御部２０の処理動作によって実現される。ＥＣＵ１０〜１３の制御部５０〜５３について説明したことは、スイッチングハブ２の制御部２０についても同様である。
【００３４】
［各装置の処理内容］
ＥＣＵ１０は、同時データフレームを、ブロードキャストフレームとして、スイッチングハブ２に送信する。
【００３５】
また、フレームには、そのフレームが冗長送信対象フレームであるか否かを識別可能な識別子（以下、冗長送信識別子という）が含まれている。冗長送信対象フレームとは、宛先の装置に対して２回送信されるフレームのことである。冗長送信識別子は、１ビット以上のコードであり、例えば、フレームのタイプ領域に配置される。冗長送信識別子の値は、冗長送信対象フレームであることを示す第１の値と、冗長送信対象フレームでないことを示す第２の値との、何れかに設定される。そして、ＥＣＵ１０は、当該ＥＣＵ１０が送信する同時データフレームについては、冗長送信識別子の値を、上記第１の値に設定する。このため、ＥＣＵ１０から送信される同時データフレームは、冗長送信対象フレームとして扱われる。
【００３６】
スイッチングハブ２は、ＥＣＵ１０からフレームを受信する毎に、図３のスイッチングハブ処理を行う。
図３に示すように、スイッチングハブ２は、まずＳ１１０にて、受信したフレーム（以下、受信フレームともいう）が冗長送信対象フレームであるか否かを判定する。具体的には、受信フレーム中の冗長送信識別子が上記第１の値であるか否かを判定し、冗長送信識別子の値が上記第１の値であれば、冗長送信対象フレームであると判定する。
【００３７】
スイッチングハブ２は、上記Ｓ１１０にて、受信フレームが冗長送信対象フレームであると判定した場合には、Ｓ１２０に進み、受信フレームを、送信対象ノードとしてのＥＣＵ１０〜１３に送信する。具体的には、当該スイッチングハブ２のポートのうち、ＥＣＵ１０〜１３が接続されている３つのポートから、受信フレームを一斉に送信する。このＳ１２０により、受信フレームの１回目の送信が実施される。このＳ１２０で送信される受信フレームは、ＥＣＵ１０からの同時データフレームであり、冗長送信対象フレームである。また、このＳ１２０で送信されるフレームは、２回送信される冗長送信対象フレーのうち、１回目の冗長送信対象フレーム（以下、１回目フレームともいう）である。
【００３８】
スイッチングハブ２は、次のＳ１３０にて、ＥＣＵ１１〜１３の何れかからの受信エラー通知があったか否かを判定する。つまり、受信エラー通知を受信したか否かを判定する。例えば、受信エラー通知は、タイプ領域のうち、冗長送信識別子が配置される領域とは異なる領域に、当該フレームが受信エラー通知であることを示す識別子が含まれたフレームである。
【００３９】
スイッチングハブ２は、Ｓ１３０にて、受信エラー通知がないと判定した場合には、Ｓ１４０にて、Ｓ１２０で受信フレームを送信してから、一定のエラー検出待機時間が経過したか否かを判定し、エラー検出待機時間が経過していなければ、Ｓ１３０に戻る。
【００４０】
尚、エラー検出待機時間は、受信エラー通知を待つ時間である。このため、エラー検出待機時間は、当該スイッチングハブ２がＥＣＵ１１〜１３にフレームを送信してから、ＥＣＵ１１〜１３の何れかが受信エラー通知を送信した場合に、その受信エラー通知がスイッチングハブ２に受信されるまでの最大時間よりも、少し長い時間に設定されている。
【００４１】
また、スイッチングハブ２は、上記Ｓ１４０にて、エラー検出待機時間が経過したと判定した場合には、Ｓ１５０に進み、Ｓ１２０で送信した受信フレームを、再び送信対象ノードとしてのＥＣＵ１０〜１３に送信する。このＳ１５０により、１回目と同じ受信フレームの、２回目の送信が実施される。つまり、Ｓ１５０で送信されるフレームは、２回送信される冗長送信対象フレーのうち、２回目の冗長送信対象フレーム（以下、２回目フレームともいう）である。
【００４２】
そして、スイッチングハブ２は、次のＳ１６０にて、送信元のＥＣＵ１０へ、送信成功を示す信号として、ＡＣＫフレームを送信し、その後、当該図３の処理を終了する。ＡＣＫは、「ACKnowledgement」、即ち肯定応答の略である。例えば、ＡＣＫフレームは、ＵＤＰデータ部に、当該フレームがＡＣＫフレームであることを示す識別子が含まれたフレームである。
【００４３】
また、スイッチングハブ２は、上記Ｓ１３０にて、受信エラー通知があったと判定した場合には、Ｓ１７０に進む。このため、Ｓ１２０で１回目フレームの送信を実施してからエラー検出待機時間が経過するまでの間に、ＥＣＵ１１〜１３の何れかからの受信エラー通知を受信した場合には、２回目フレームの送信を行うことなく、Ｓ１７０に進むこととなる。
【００４４】
そして、スイッチングハブ２は、Ｓ１７０では、送信元のＥＣＵ１０へ、送信失敗を示す信号として、ＮＡＣＫフレームを送信し、その後、当該図３の処理を終了する。ＮＡＣＫは、「Negative ACKnowledgement」、即ち否定応答の略である。 例えば、ＮＡＣＫフレームは、ＵＤＰデータ部に、当該フレームがＮＡＣＫフレームであることを示す識別子が含まれたフレームである。
【００４５】
また、スイッチングハブ２は、上記Ｓ１１０にて、受信フレームが冗長送信対象フレームでないと判定した場合には、Ｓ１８０に進み、イーサネットの規格に基づいた通常の中継処理を行った後、当該図３の処理を終了する。通常の中継処理は、例えば、当該スイッチングハブ２のポートのうち、受信フレームの転送先ポートを、受信フレーム中の宛先ＭＡＣアドレスと、当該スイッチングハブ２に記憶されているＭＡＣアドレステーブルとに基づいて決定し、その決定したポートから受信フレームを送信する、といった処理である。
【００４６】
一方、ＥＣＵ１１〜１３の各々は、フレームを受信する毎に、図４の受信エンドノード処理を行う。ここでは、ＥＣＵ１１を主体にして説明するが、ＥＣＵ１２，１３も同じ処理を行う。
【００４７】
図４に示すように、ＥＣＵ１１は、受信エンドノード処理を開始すると、Ｓ２１０にて、スイッチングハブ２からの受信フレームが冗長送信対象フレームであるか否かを判定する。具体的には、受信フレーム中の冗長送信識別子が上記第１の値であるか否かを判定し、冗長送信識別子の値が上記第１の値であれば、冗長送信対象フレームであると判定する。
【００４８】
ＥＣＵ１１は、上記Ｓ２１０にて、受信フレームが冗長送信対象フレームであると判定した場合には、Ｓ２２０に進み、当該ＥＣＵの状態がアイドル状態か否かを判定する。
ＥＣＵの状態としては、アイドル状態と受信中状態とがある。アイドル状態とは、スイッチングハブ２から２回送信される冗長送信対象フレームのうち、１回目フレーム（即ち、新規のフレーム）を待っている状態である。受信中状態とは、スイッチングハブ２から２回送信される冗長送信対象フレームのうち、２回目フレーム（即ち、前回と同じフレーム）を待っている状態である。
【００４９】
ＥＣＵ１１は、Ｓ２２０にて、アイドル状態であると判定した場合には、Ｓ２３０に進み、受信エラーがあったか否かを判定する。このＳ２３０で有無を判定する受信エラーは、今回受信した１回目フレームについての受信エラーである。受信エラーは、受信フレームのエラー（即ち、誤り）であり、換言すれば、受信フレームの異常である。例えば、受信フレームにデータ長の異常があったり、ＦＣＳ領域のコードを用いたチェックでエラーを検出したりした場合に、受信エラーがあったと判定する。受信エラーは、フレームの受信に失敗したということでもある。
【００５０】
ＥＣＵ１１は、Ｓ２３０にて、受信エラーがなかったと判定した場合には、Ｓ２４０に進み、受信フレームに含まれている伝送対象データであって、この例ではＵＤＰデータ部に配置されているデータを、１回目受信データとしてＲＡＭ等のメモリ内に保存する。このＳ２３０により、スイッチングハブ２からの１回目フレームに含まれていた伝送対象データが、１回目受信データとしてメモリに保存される。
【００５１】
ＥＣＵ１１は、次のＳ２５０にて、受信待機タイマをリセットして始動させる。受信待機タイマは、１回目フレームを受信してからの経過時間を計測するためのタイマであり、例えば、所定の一定時間毎にカウントアップされるカウンタによって構成されている。そして、ＥＣＵ１１は、次のＳ２６０にて、当該ＥＣＵの状態をアイドル状態から受信中状態に設定し、その後、当該受信エンドノード処理を終了する。
【００５２】
また、ＥＣＵ１１は、上記Ｓ２３０にて、受信エラーがあったと判定した場合には、Ｓ２７０に進み、スイッチングハブ２へ、受信エラーの発生を知らせるためのフレームとして、前述の受信エラー通知を送信する。そして、その後、当該受信エンドノード処理を終了する。尚、受信エラーがあった場合、例えばＳ２７０又は図示しない別のステップにて、受信フレームは破棄される。このため、１回目フレームに含まれていた伝送対象データは保存されることなく破棄される。
【００５３】
一方、ＥＣＵ１１は、上記Ｓ２２０にて、アイドル状態ではない（即ち、受信中状態である）と判定した場合には、Ｓ２８０に進む。このため、ＥＣＵ１１は、前述のＳ２６０で当該ＥＣＵの状態を受信中状態に設定した後、スイッチングハブ２から、前回受信したフレームと同じフレーム（即ち、２回目フレーム）を受信した場合に、Ｓ２８０に進むこととなる。
【００５４】
ＥＣＵ１１は、Ｓ２８０では、Ｓ２３０と同様に、受信エラーがあったか否かを判定する。このＳ２８０で有無を判定する受信エラーは、今回受信した２回目フレームについての受信エラーである。
【００５５】
ＥＣＵ１１は、上記Ｓ２８０にて、受信エラーがなかったと判定した場合には、Ｓ２９０に進み、上記Ｓ２５０で始動させた受信待機タイマを停止させる。そして、次のＳ３００にて、受信確定を行う。
【００５６】
受信確定とは、受信フレームに含まれていた転送対象データを、当該ＥＣＵにおける制御処理に使用するデータ（以下、処理対象データという）としてＲＡＭ等のメモリに保存することである。ＥＣＵにおける制御処理は、そのＥＣＵの制御対象を制御するための処理である。ＥＣＵ１１は、Ｓ３００では、今回の受信フレーム（即ち、２回目フレーム）に含まれていた転送対象データを、処理対象データとしてメモリに保存する。
【００５７】
尚、Ｓ３００では、１回目受信データで受信確定をしても良い。つまり、前述のＳ２４０でメモリに保存した１回目受信データを、処理対象データとしてメモリに保存しても良い。１回目フレームと２回目フレームとで、含まれる転送対象データは同じであるからである。
【００５８】
そして、ＥＣＵ１１は、次のＳ３１０にて、当該ＥＣＵの状態を受信中状態からアイドル状態に設定し、その後、当該受信エンドノード処理を終了する。
また、ＥＣＵ１１は、上記Ｓ２８０にて、受信エラーがあったと判定した場合には、Ｓ３２０に進み、上記Ｓ２５０で始動させた受信待機タイマを停止させる。そして、次のＳ３３０では、１回目受信データで受信確定をする。つまり、Ｓ２４０でメモリに保存した１回目受信データを、処理対象データとしてメモリに保存する。そして、ＥＣＵ１１は、次のＳ３４０にて、当該ＥＣＵの状態を受信中状態からアイドル状態に設定し、その後、当該受信エンドノード処理を終了する。尚、この場合、受信フレームはエラーがあるため破棄される。
【００５９】
また、ＥＣＵ１１は、上記Ｓ２１０にて、受信フレームが冗長送信対象フレームでないと判定した場合には、Ｓ３５０に進み、通常のフレーム受信処理を行った後、当該受信エンドノード処理を終了する。尚、通常のフレーム受信処理は、例えば、受信フレームについて受信エラーの有無を判定し、受信エラーがなければ、受信フレーム中の目的のデータをメモリに保存し、受信エラーがあれば、受信フレームを破棄する、といった処理である。
【００６０】
また、ＥＣＵ１１〜１３の各々は、図４のＳ２５０で受信待機タイマを始動させると、例えば、その受信待機タイマがカウントアップされる一定時間毎に、図５の受信待機タイマ処理を行う。ここでは、ＥＣＵ１１を主体にして説明するが、ＥＣＵ１２，１３も同じ処理を行う。
【００６１】
図５に示すように、ＥＣＵ１１は、受信待機タイマ処理を開始すると、Ｓ４１０にて、受信待機タイマの値に基づいて受信待機時間が経過したか否かを判定する。具体的には、受信待機タイマの値が、受信待機時間に相当する値以上になったか否かを判定する。受信待機時間に相当する値は、受信待機時間を上記一定時間で割った値である。また、受信待機時間は、前述のエラー検出待機時間よりも長い時間に設定されている。
【００６２】
ＥＣＵ１１は、上記Ｓ４１０にて、受信待機時間が経過していないと判定した場合には、そのまま当該受信待機タイマ処理を終了する。
また、ＥＣＵ１１は、上記Ｓ４１０にて、受信待機時間が経過したと判定した場合には、Ｓ４２０に進み、図４のＳ２４０で保存した１回目受信データを破棄する。ＥＣＵ１１は、次のＳ４３０にて、当該ＥＣＵの状態をアイドル状態に設定すると共に、受信待機タイマを停止させる。そして、その後、当該受信待機タイマ処理を終了する。
【００６３】
［動作例］
通信システム１の動作例を図６〜図８を用いて説明する。
図６は、ＥＣＵ１１〜１３の全てが、スイッチングハブ２から２回送信される冗長送信対象フレームを、両方とも正常に受信することができた場合を表している。
【００６４】
〈１〉図６に示すように、ＥＣＵ１０は、前述の冗長送信識別子が含まれる同時データフレームを、ブロードキャストフレームとして、スイッチングハブ２に送信する。この同時データフレームが、スイッチングハブ２及び各ＥＣＵ１１〜１３において、冗長送信対象フレームとして扱われる。
【００６５】
〈２〉スイッチングハブ２は、ＥＣＵ１０からの同時データフレームを受信すると、図３のＳ１１０で、冗長送信対象フレームであると判定する。そして、スイッチングハブ２は、図６に示すように、ＥＣＵ１０から受信した同時データフレームを、ＥＣＵ１１〜１３へ一斉に送信する。この送信が、１回目フレームの送信となる。
【００６６】
〈３〉ＥＣＵ１１〜１３は、スイッチングハブ２からの１回目フレームを受信すると、図４のＳ２１０で、冗長送信対象フレームであると判定し、図４のＳ２２０で、アイドル状態であると判定する。そして、図４のＳ２３０にて、受信エラーの有無を判定する。
【００６７】
〈４〉図６に示す例の場合、ＥＣＵ１１〜１３の全てが、スイッチングハブ２からの１回目フレームを正常に受信して、図４のＳ２３０でＮＯ（即ち、受信エラーなし）と判定する。このため、ＥＣＵ１１〜１３は、１回目受信データの保存と、受信待機タイマの始動とを行うと共に、当該ＥＣＵの状態を、２回目フレームを待つ受信中状態に変更する。これらの動作は、図４のＳ２４０〜Ｓ２６０によって実現される。
【００６８】
そして、この場合、ＥＣＵ１１〜１３は、スイッチングハブ２に受信エラー通知を送信しない。
〈５〉このため、図６に示すように、スイッチングハブ２は、１回目フレームの送信を行ってから、エラー検出待機時間が経過すると、図３のＳ１４０でＹＥＳと判定して、前回送信したのと同じ２回目フレームを、ＥＣＵ１１〜１３へ一斉に送信する。
【００６９】
〈６〉ＥＣＵ１１〜１３は、スイッチングハブ２からの２回目フレームを受信すると、図４のＳ２１０で、冗長送信対象フレームであると判定する。また、図４のＳ２２０では、受信中状態であると判定する。ＥＣＵ１１〜１３の状態は、１回目フレームを正常に受信したことにより、受信中状態になっているからである。そして、ＥＣＵ１１〜１３は、図４のＳ２８０にて、受信エラーの有無を判定する。
【００７０】
〈７〉図６に示す例の場合、ＥＣＵ１１〜１３の全てが、スイッチングハブ２からの２回目フレームも正常に受信して、図４のＳ２８０でＮＯ（即ち、受信エラーなし）と判定する。このため、ＥＣＵ１１〜１３は、受信待機タイマの停止と、受信確定とを行うと共に、当該ＥＣＵの状態を、新規のフレームを待つアイドル状態に変更する。これらの動作は、図４のＳ２９０〜Ｓ３１０によって実現される。
【００７１】
〈８〉また、図６に示すように、スイッチングハブ２は、ＥＣＵ１１〜１３への２回目フレームの送信を行った後、ＥＣＵ１０へＡＣＫフレームを送信する。
ＥＣＵ１０は、スイッチングハブ２から送信されるＡＣＫフレームを受信することで、当該ＥＣＵ１０が送信した同時データフレームがＥＣＵ１１〜１３に正しく届いたことを、認識することができる。
【００７２】
次に、図７は、図６と比較すると、ＥＣＵ１１〜１３のうち、例えばＥＣＵ１２が、スイッチングハブ２からの２回目フレームを正常に受信することができなかった場合を表している。つまり、図６の場合とは、上記〈７〉の動作が異なる。
【００７３】
図７に示す例の場合、ＥＣＵ１１〜１３のうち、ＥＣＵ１２は、スイッチングハブ２からの２回目フレームを正常に受信することができず、図４のＳ２８０でＹＥＳ（即ち、受信エラーあり）と判定する。このため、ＥＣＵ１２は、１回目フレームから取り出した１回目受信データで受信確定をする。そして、この場合、ＥＣＵ１２は、ＥＣＵ１１，１３と同様に、受信待機タイマの停止を行うと共に、当該ＥＣＵの状態をアイドル状態に変更することとなる。
【００７４】
次に、図８は、図６と比較すると、ＥＣＵ１１〜１３のうち、例えばＥＣＵ１２が、スイッチングハブ２からの１回目フレームを正常に受信することができなかった場合を表している。つまり、図６の場合とは、上記〈４〉〜〈８〉の動作が異なる。
【００７５】
図８に示す例の場合、ＥＣＵ１１〜１３のうち、ＥＣＵ１２は、スイッチングハブ２からの１回目フレームを正常に受信することができず、図４のＳ２３０でＹＥＳ（即ち、受信エラーあり）と判定する。このため、ＥＣＵ１２は、受信したフレーム中のデータを保存することなく、図４のＳ２７０にて、スイッチングハブ２に受信エラー通知を送信する。また、ＥＣＵ１２の状態は、アイドル状態のままとなる。このため、ＥＣＵ１２は、次の新規のフレームを待つこととなる。
【００７６】
図８に示す例の場合、スイッチングハブ２は、１回目フレームの送信を行ってから、エラー検出待機時間が経過するまでの間に、ＥＣＵ１２からの受信エラー通知を受信することとなる。よって、スイッチングハブ２は、図３のＳ１３０でＹＥＳと判定して、２回目フレームの送信を中止する。そして、この場合、スイッチングハブ２は、図３のＳ１７０にて、ＥＣＵ１０へＮＡＣＫフレームを送信する。
【００７７】
また、ＥＣＵ１１，１３は、図８に示す例の場合には、２回目フレームを受信することができなくなる。
このため、ＥＣＵ１１，１３は、図４のＳ２５０で受信待機タイマを始動させてから、受信待機時間が経過するまでの間に、図４のＳ２９０又はＳ３２０で受信待機タイマを停止させることができず、その結果、図５のＳ４１０で、受信待機時間が経過したと判定することとなる。
【００７８】
つまり、ＥＣＵ１１，１３は、１回目フレームを受信してから、受信待機時間が経過するまでの間に、２回目フレームを受信したか否かを、図５のＳ４１０で判定している。換言すれば、ＥＣＵ１１，１３は、１回目フレームを受信してから、２回目フレームを受信できないまま受信待機時間が経過したか否かを、図５のＳ４１０で判定している。
【００７９】
そして、ＥＣＵ１１，１３は、図５のＳ４１０で、受信待機時間が経過したと判定した場合には、他のＥＣＵにおいて受信エラーが生じた、即ち、他のＥＣＵが同時データフレームの受信に失敗した、と判断して、図５のＳ４２０，Ｓ４３０の処理を行う。つまり、１回目受信データを破棄して、受信確定をせず、当該ＥＣＵの状態を、受信中状態からアイドル状態に戻す。このため、ＥＣＵ１１，１３も、次の新規のフレームを待つこととなる。
【００８０】
一方、ＥＣＵ１０は、スイッチングハブ２から送信されるＮＡＣＫフレームを受信することで、当該ＥＣＵ１０が送信した同時データフレームがＥＣＵ１１〜１３に正しく届かなかったことを、認識することができる。
【００８１】
［変形例１］
図４の受信エンドノード処理は、図４における点線の矢印で示すように、Ｓ２２０でＮＯと判定された場合に、Ｓ３２０へ進むようになっていても良い。このように変形した場合、ＥＣＵ１１〜１３は、２回目フレームを受信した場合に、受信エラーの有無に拘わらず、１回目受信データで受信確定することとなる。そして、このように変形しても結果は同じである。
【００８２】
［効果］
本実施形態の通信システム１では、同時データフレーム（即ち、同時性が必要なデータを含むフレーム）をＥＣＵ１０からＥＣＵ１１〜１３へ配信する場合に、ＥＣＵ１１〜１３の各々は、他のＥＣＵにおいて受信エラーが生じたと判定すると、正常に受信したデータを破棄する。このため、受信エラーが生じたＥＣＵが取得するデータは更新されず、フレームの受信に成功したＥＣＵが取得するデータは最新のデータに更新される、という状況が回避される。よって、ＥＣＵ１１〜１３の全てが同じタイミングのデータを取得できるようにすることができる。即ち、データの同時性を実現することができる。
【００８３】
また、通信システム１では、同時データフレームを、冗長対象送信フレームとしている。このため、スイッチングハブ２は、基本的には、同時データフレームを２回送信するが、１回目フレームを送信してからエラー検出待機時間が経過するまでの間に、ＥＣＵ１１〜１３の何れかからの受信エラー通知を受信した場合には、２回目フレームの送信を止める。そして、ＥＣＵ１１〜１３は、１回目フレームを受信してから、上記エラー検出待機時間よりも長い受信待機時間が経過するまでの間に、２回目フレームを受信しなければ、他のＥＣＵにおいて受信エラーが生じたと判定する。
【００８４】
よって、ＥＣＵ１１〜１３は、他のＥＣＵにおいて受信エラーが生じたことを簡単に検出することができる。そして、ＥＣＵ１１〜１３は、他のＥＣＵにおいて受信エラーが発生したことを検出した場合に、１回目フレームから取得した１回目受信データを破棄するため、データの同時性が確保される。この場合、２回目フレームは送信されないからである。
【００８５】
例えば、通信プロトコルとして従来のＵＤＰだけでは、”ＡＣＫなし”かつ”ｐｅｅｒ  ｔｏ  ｐｅｅｒ通信”のため、各エンドノードが互いの通信状態を監視したり、データの同時性を保障したりすることはできなかった。一方、本実施形態を適用すれば、データの同時性を保障することができるようになる。尚、エラー検出待機時間と、受信待機時間は、効率的なデータ配信を行うことが可能な値に適宜設定することができる。
【００８６】
また、スイッチングハブ２は、２回目フレームの送信を行った場合に、送信元のＥＣＵ１０へ送信成功を示すＡＣＫフレームを送信する。このため、ＥＣＵ１０は、そのＡＣＫフレームを受信することで、当該ＥＣＵ１０が送信したフレームがＥＣＵ１１〜１３に正しく届いたことを確認することができる。
【００８７】
また、スイッチングハブ２は、２回目フレームの送信を中止した場合に、送信元のＥＣＵ１０へ送信失敗を示すＮＡＣＫフレームを送信する。このため、ＥＣＵ１０は、そのＮＡＣＫフレームを受信することで、当該ＥＣＵ１０が送信したフレームがＥＣＵ１１〜１３に正しく届かなかったことを確認することができる。その場合、ＥＣＵ１０は、例えば、エラー履歴を記憶したり、前回と同じフレームを再送信したり、次の新たなフレームを作成して送信したりすることができる。
【００８８】
また、フレームには冗長送信識別子が含まれており、スイッチングハブ２は、その冗長送信識別子に基づいて、受信フレームが冗長送信対象フレームであるか否かを判定する。そして、スイッチングハブ２は、受信フレームが冗長送信対象フレームであると判定した場合、即ち、図３のＳ１１０でＹＥＳと判定した場合には、図３のＳ１２０〜Ｓ１７０の処理を行う動作モードとなる。また、スイッチングハブ２は、受信フレームが冗長送信対象フレームでないと判定した場合、即ち、図３のＳ１１０でＮＯと判定した場合には、図３のＳ１２０〜Ｓ１７０の処理を行わず、通常の中継処理を行う動作モードになる。
【００８９】
このため、スイッチングハブ２の動作モードを、同時データフレームを配信する場合と、そうでない場合とで、適切に切り替えることができる。
また、ＥＣＵ１１〜１３の各々も、冗長送信識別子に基づいて、受信フレームが冗長送信対象フレームであるか否かを判定する。そして、ＥＣＵ１１〜１３の各々は、受信フレームが冗長送信対象フレームであると判定した場合、即ち、図４のＳ２１０でＹＥＳと判定した場合には、図４のＳ２２０〜Ｓ３４０の処理及び図５の処理を行う動作モードとなる。また、スイッチングハブ２は、受信フレームが冗長送信対象フレームでないと判定した場合、即ち、図４のＳ２１０でＮＯと判定した場合には、図４のＳ２２０〜Ｓ３４０の処理及び図５の処理を行わず、通常のフレーム受信処理を行う動作モードになる。
【００９０】
このため、ＥＣＵ１１〜１３の動作モードを、同時データフレームを受信する場合と、そうでない場合とで、適切に切り替えることができる。
尚、上記実施形態では、スイッチングハブ２が、送信側装置に相当し、ＥＣＵ１１〜１３が、受信側装置に相当する。そして、スイッチングハブ２では、制御部２０が、図３の処理を行うことで、送信部、禁止部、正常通知部、失敗通知部及び中継動作切替部の各々として機能する。制御部２０が行う処理のうち、Ｓ１２０，Ｓ１４０，Ｓ１５０が、送信部としての処理に相当し、Ｓ１３０が、禁止部としての処理に相当し、Ｓ１６０が、正常通知部としての処理に相当し、Ｓ１７０が、失敗通知部としての処理に相当し、Ｓ１１０が、中継動作切替部としての処理に相当する。また、ＥＣＵ１１〜１３では、制御部５１〜５３が、図４と図５の処理を行うことで、判定部、破棄部、通知部及び受信動作替部の各々として機能する。制御部５１〜５３が行う処理のうち、Ｓ２５０，Ｓ２９０，Ｓ３２０，Ｓ４１０が、判定部としての処理に相当し、Ｓ４２０が、破棄部としての処理に相当し、Ｓ２７０が、通知部としての処理に相当し、Ｓ２１０が、受信動作替部としての処理に相当する。
【００９１】
［変形例２］
ＥＣＵ１０とＥＣＵ１１〜１３がスイッチングハブ２を介さずに通信するようになっていても良い。その場合、ＥＣＵ１０が、図３におけるＳ１２０〜Ｓ１５０の処理を行えば良い。但し、Ｓ１２０とＳ１５０では、受信したフレームではなく、当該ＥＣＵ１０で生成したフレームを送信することとなる。また、この場合、ＥＣＵ１０が、送信側装置に相当することとなる。一方、スイッチングハブ２が図３の処理を行うことで、ＥＣＵ１０の処理負荷を低減できるという利点がある。
【００９２】
［他の実施形態］
以上、本発明を実施するための形態について説明したが、本発明は上述の実施形態に限定されることなく、種々変形して実施することができる。
【００９３】
例えば、ＥＣＵ１０からのフレームの送信は、一定時間毎の定期送信に限らず、特定のイベントが発生したときに送信するイベント送信でも良い。また、受信側装置としてのＥＣＵの数は、３つに限らず２つ又は４以上であっても良い。また、冗長送信識別子や、受信エラー通知の識別子等、前述したフレームの各識別子は、そのフレームを受信する装置において読み取り可能な領域に配置されていれば、前述した領域とは異なる領域に配置されても良い。
【００９４】
また、上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしても良い。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしても良い。また、上記実施形態の構成の一部を省略しても良い。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。また、上述した通信システムの他、当該通信システムを構成する送信側装置、中継装置、受信側装置や、それらの各々としてとしてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、通信方法など、種々の形態で本発明を実現することもできる。
【符号の説明】
【００９５】
１…通信システム、２…スイッチングハブ、１０〜１３…ＥＣＵ。
【図１】
0006519453.tif 000002
【図２】
0006519453.tif 000003
【図３】
0006519453.tif 000004
【図４】
0006519453.tif 000005
【図５】
0006519453.tif 000006
【図６】
0006519453.tif 000007
【図７】
0006519453.tif 000008
【図８】
0006519453.tif 000009