(57)【要約】【課題】転送されるデータの時間の粒度を一定にできる。【解決手段】データ転送装置は、種別を示す識別子を含むデータを外部から受信する取得側通信ポートと、データを外部に送信する配信側通信ポートと、識別子とデータの時刻に関する条件とを対応づける転送情報を格納する記憶部と、取得側通信ポートがデータである受信データを受信すると、受信データに含まれる識別子および受信データの時刻の情報と転送情報に基づき、受信データを配信側通信ポートに送信するか否かを決定する転送処理部とを備え、受信データの時刻の情報とは、受信データを取得側通信ポートが受信した時刻、または受信データに含まれる時刻である。【選択図】図１
2020088579.tif 000002
【特許請求の範囲】
【請求項１】
種別を示す識別子を含むデータを外部から受信する取得側通信ポートと、
前記データを外部に送信する配信側通信ポートと、
前記識別子と前記データの時刻に関する条件とを対応づける転送情報を格納する記憶部と、
前記取得側通信ポートが前記データである受信データを受信すると、前記受信データに含まれる識別子および前記受信データの時刻の情報と前記転送情報に基づき、前記受信データを前記配信側通信ポートに送信するか否かを決定する転送処理部とを備え、
前記受信データの時刻の情報とは、前記受信データを前記取得側通信ポートが受信した時刻、または前記受信データに含まれる時刻であるデータ転送装置。
【請求項２】
請求項１に記載のデータ転送装置において、
前記配信側通信ポートは複数備えられ、
前記転送情報には、前記識別子と前記データの時刻に関する条件と少なくとも１つの前記配信側通信ポートとが対応付けられ、
前記転送処理部は、前記受信データに含まれる識別子および前記受信データの時刻の情報に対応付けられた前記配信側通信ポートに前記受信データを送信するデータ転送装置。
【請求項３】
請求項１に記載のデータ転送装置において、
前記記憶部には前記転送情報が複数格納され、
前記転送処理部は、前記取得側通信ポートの状態、前記配信側通信ポートの状態、前記取得側通信ポートに接続される機器の状態、および前記配信側通信ポートに接続される機器の状態、のうち少なくとも１つの状態に基づき複数の前記転送情報からいずれかの前記転送情報を選択し、前記受信データに関する前記決定に用いるデータ転送装置。
【請求項４】
請求項３に記載のデータ転送装置において、
前記転送処理部は、前記取得側通信ポートに接続される機器および前記配信側通信ポートに接続される機器から状態に関する情報を受信し、前記取得側通信ポートに接続される機器および前記配信側通信ポートに接続される機器の状態を判断するデータ転送装置。
【請求項５】
請求項３に記載のデータ転送装置において、
前記転送処理部は、連続して受信した複数の前記受信データおよび前記転送情報に基づき、前記取得側通信ポートに接続される機器の異常を検出するデータ転送装置。
【請求項６】
種別を示す識別子を含むデータを外部から受信する取得側通信ポートと、前記データを外部に送信する配信側通信ポートと、前記識別子と前記データの時刻に関する条件とを対応づける転送情報を格納する記憶部と、を備えるデータ転送装置が実行するデータ転送方法であって、
前記取得側通信ポートが前記データである受信データを受信すると、前記受信データに含まれる識別子および前記受信データの時刻の情報と前記転送情報に基づき、前記受信データを前記配信側通信ポートに送信するか否かを決定することを含み、
前記受信データの時刻の情報とは、前記受信データを前記取得側通信ポートが受信した時刻、または前記受信データに含まれる時刻であるデータ転送方法。
【請求項７】
請求項６に記載のデータ転送方法において、
前記配信側通信ポートは複数備えられ、
前記転送情報には、前記識別子と前記データの時刻に関する条件と少なくとも１つの前記配信側通信ポートとが対応付けられ、
前記受信データを前記配信側通信ポートに送信する際には、前記受信データに含まれる識別子および前記受信データの時刻の情報に対応付けられた前記配信側通信ポートに前記受信データを送信するデータ転送方法。
【請求項８】
請求項６に記載のデータ転送方法において、
前記記憶部には前記転送情報が複数格納され、
前記取得側通信ポートの状態、前記配信側通信ポートの状態、前記取得側通信ポートに接続される機器の状態、および前記配信側通信ポートに接続される機器の状態、のうち少なくとも１つの状態に基づき複数の前記転送情報からいずれかの前記転送情報を選択し、前記受信データに関する前記決定に用いることをさらに含むデータ転送方法。
【請求項９】
請求項８に記載のデータ転送方法において、
前記取得側通信ポートに接続される機器および前記配信側通信ポートに接続される機器から状態に関する情報を受信し、前記取得側通信ポートに接続される機器および前記配信側通信ポートに接続される機器の状態を判断することをさらに含むデータ転送方法。
【請求項１０】
請求項８に記載のデータ転送方法において、
連続して受信した複数の前記受信データおよび前記転送情報に基づき、前記取得側通信ポートに接続される機器の異常を検出することをさらに含むデータ転送方法。
【請求項１１】
種別を示す識別子を含むデータを外部から受信する取得側通信ポートと、
前記データを外部に送信する配信側通信ポートと、
前記識別子と前記データの順序に関する条件とを対応づける転送情報を格納する記憶部と、
前記取得側通信ポートが前記データである受信データを受信すると、前記受信データに含まれる識別子および前記受信データの順序の情報と前記転送情報に基づき、前記受信データを前記配信側通信ポートに送信するか否かを決定する転送処理部とを備え、
前記受信データの順序の情報とは、前記受信データを前記取得側通信ポートが受信した順序、または前記受信データに含まれる順序の情報であるデータ転送装置。
【請求項１２】
請求項１１に記載のデータ転送装置において、
前記配信側通信ポートは複数備えられ、
前記転送情報には、前記識別子と前記データの順序に関する条件と少なくとも１つの前記配信側通信ポートとが対応付けられ、
前記転送処理部は、前記受信データに含まれる識別子および前記受信データの順序の情報に対応付けられた前記配信側通信ポートに前記受信データを送信するデータ転送装置。
【請求項１３】
請求項１１に記載のデータ転送装置において、
前記記憶部には前記転送情報が複数格納され、
前記転送処理部は、前記取得側通信ポートの状態、前記配信側通信ポートの状態、前記取得側通信ポートに接続される機器の状態、および前記配信側通信ポートに接続される機器の状態、のうち少なくとも１つの状態に基づき複数の前記転送情報からいずれかの前記転送情報を選択し、前記受信データに関する前記決定に用いるデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、およびデータ転送方法に関する。
【背景技術】
【０００２】
近年、安全・安心な交通社会を実現するために、自動運転車両に対する期待が高まっており、世界各国で技術開発が進められている。自動運転車両は、周期的に生成されるセンサ情報を利用した周辺状況の認識などのために多数の処理ロジックが連携し、高度な情報処理を周期的に行うことが求められる。安定した自動運転の実現に向けては、処理ロジックにおける情報処理が高度化するとともに、情報処理のための入力情報となるセンサデータの種類およびデータ量が増加することが見込まれている。
【０００３】
センサデータが増加すると処理ロジックが車両内の通信ネットワークを経由してそれらを受信するためのネットワーク処理負荷が増加し、必要とするハードウェアリソースすなわち車両コストが増大する。一方で、処理ロジックが所望の結果制度を得るために必要とするセンサデータの入力レートは、センサにおけるセンサデータの生成レートよりも低い場合がある。このことから、処理ロジックの車両内のネットワーク負荷を低減するために、通信ネットワーク上でセンサデータの通信レートを制御し、処理ロジックの情報処理に必要な通信レートに抑制することが求められる。
【０００４】
特許文献１には、一のネットワークを構成する一のバスに接続された一の端末装置と、他のネットワークを構成する他のバスに接続された他の端末装置との間の通信を、前記一及び他のネットワーク間で中継するゲートウェイ装置であって、前記一のバスから受信したデータの前記他のバスへの送信を管理すると共に、前記他のバスから受信したデータの前記一のバスへの送信を管理する処理装置を備え、前記処理装置は、前記一の端末装置から前記他の端末装置へ向けて送信された、データ送信間隔を指定する情報を含む第１の所定の信号を検出して、当該情報を記憶し、前記他の端末装置から受信したデータを記憶装置に保存し、当該保存したデータを、前記記憶した情報が表すデータ送信間隔の指定に従って、前記一の端末装置へ送信するよう構成されているゲートウェイ装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−０００５９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されている発明では、転送されるデータの時間の粒度が保証できない。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によるデータ転送装置は、種別を示す識別子を含むデータを外部から受信する取得側通信ポートと、前記データを外部に送信する配信側通信ポートと、前記識別子と前記データの時刻に関する条件とを対応づける転送情報を格納する記憶部と、前記取得側通信ポートが前記データである受信データを受信すると、前記受信データに含まれる識別子および前記受信データの時刻の情報と前記転送情報に基づき、前記受信データを前記配信側通信ポートに送信するか否かを決定する転送処理部とを備え、前記受信データの時刻の情報とは、前記受信データを前記取得側通信ポートが受信した時刻、または前記受信データに含まれる時刻である。
本発明の第２の態様によるデータ転送方法は、種別を示す識別子を含むデータを外部から受信する取得側通信ポートと、前記データを外部に送信する配信側通信ポートと、前記識別子と前記データの時刻に関する条件とを対応づける転送情報を格納する記憶部と、を備えるデータ転送装置が実行するデータ転送方法であって、前記取得側通信ポートが前記データである受信データを受信すると、前記受信データに含まれる識別子および前記受信データの時刻の情報と前記転送情報に基づき、前記受信データを前記配信側通信ポートに送信するか否かを決定することを含み、前記受信データの時刻の情報とは、前記受信データを前記取得側通信ポートが受信した時刻、または前記受信データに含まれる時刻である。
本発明の第３の態様によるデータ転送装置は、種別を示す識別子を含むデータを外部から受信する取得側通信ポートと、前記データを外部に送信する配信側通信ポートと、前記識別子と前記データの順序に関する条件とを対応づける転送情報を格納する記憶部と、前記取得側通信ポートが前記データである受信データを受信すると、前記受信データに含まれる識別子および前記受信データの順序の情報と前記転送情報に基づき、前記受信データを前記配信側通信ポートに送信するか否かを決定する転送処理部とを備え、前記受信データの順序の情報とは、前記受信データを前記取得側通信ポートが受信した順序、または前記受信データに含まれる順序の情報である。
【発明の効果】
【０００８】
本発明によれば、転送されるデータの時間の粒度を一定にできる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態における自動運転制御システムＳの構成図
【図２】第１の実施の形態における転送情報テーブル１００の一例を示す図
【図３】転送処理部２０の動作を示すフローチャート
【図４】第１の実施の形態における自動運転制御システムＳの動作シーケンス例を示す図
【図５】第１の実施の形態における自動運転制御システムＳの動作例を示す図
【図６】比較例の動作を示す図
【図７】第２の実施の形態における自動運転制御システムＳの構成図
【図８】検索対象情報テーブル２００の一例を示す図
【図９】転送情報選択部２１の処理を示すフローチャート
【図１０】第２の実施の形態における自動運転制御システムＳの動作例を示す図
【図１１】第２の実施の形態における自動運転制御システムＳの動作例を示す図
【図１２】第３の実施の形態における自動運転制御システムＳの構成図
【図１３】通知元ＩＤ変換テーブル３００の一例を示す図
【図１４】転送異常検出部２２の動作を示すフローチャート
【図１５】第４の実施の形態における転送情報テーブル１００の一例を示す図
【発明を実施するための形態】
【００１０】
―第１の実施の形態―
以下、図１〜図６を参照して、自動運転制御システムＳの第１の実施の形態を説明する。
【００１１】
図１は、第１の実施の形態におけるデータ転送装置の構成図である。自動運転制御システムＳは車両に搭載され、この車両を他の車両と区別するために本実施の形態では「自車両」と呼ぶ。自動運転制御システムＳは、データ転送装置１と、センサ２と、処理ロジック３とを含んで構成される。センサ２は１以上のセンサの総称であり、処理ロジック３は１以上の処理ロジックの総称である。
【００１２】
センサ２は、センシング内容を含むセンサデータパケット６０Ｓを生成し、このセンサデータパケット６０Ｓを周期的にデータ転送装置１に出力する。データ転送装置１は、センサ２より受信したセンサデータパケット６０Ｓを、種別に応じて１つ以上の処理ロジック３に送信する。詳しくは後述するが、データ転送装置１はセンサデータパケット６０Ｓをいずれの処理ロジック３にも送信せず破棄する場合もある。処理ロジック３は、受信したセンサデータパケット６０Ｓを入力情報として情報処理を実行する。処理ロジック３が実行する情報処理の内容は任意であり、どのような処理であってもよい。処理ロジック３の一例をあげると、たとえば車両の自動運転に関する処理である。
【００１３】
データ転送装置１、センサ２、および処理ロジック３は、同期された時刻情報を有する。ただしここでいう「同期された」とは、処理ロジック３が実行する処理が要求する精度を満たす程度に同期がされていればよい。本実施の形態では、データ転送装置１、センサ２、および処理ロジック３は、既知の時刻同期プロトコルにより所定時間ごとに時刻情報を同期する。ただし、それぞれが高精度な時計を備えることにより定期的な同期処理を行うことなく実質的に時刻情報が同期された状態を保ってもよい。
【００１４】
センサ２は、たとえばカメラ、レーザレーダ、超音波センサなどである。センサ２は、自車両の周辺をセンシングした内容を含む通信データであるセンサデータパケット６０Ｓを生成する。そしてセンサ２は、生成したセンサデータパケット６０Ｓを事前に設計された時刻または周期に従って、一定の時間間隔でデータ転送装置１に送信する。ただしここでは一塊の通信データを便宜的に「パケット」と呼んでいるにすぎず、通信プロトコルを限定するものではない。「パケット」を「データグラム」や「フレーム」に呼び換えてもよい。
【００１５】
またセンサ２は、それぞれのセンサデータパケット６０Ｓに、自動運転制御システムＳにおいてデータを区別するための識別子を付与する。識別子はたとえば、Ｅｔｈｅｒｎｅｔ（登録商標）のＶＬＡＮ  ＩＤが利用される。
【００１６】
以下では、センサ２のそれぞれをハイフンと１からの連番を付した符号で表す。すなわちセンサ２は、センサ２−１と、センサ２−２と、・・・、センサ２−ｘとの総称である。以下では、それぞれのセンサに共通する構成や動作を説明する際には単に「センサ２」と表記し、特定のセンサの動作例を説明する際にハイフンと連番を付した符号を用いる。個別のセンサがどの符号に対応するかは本実施の形態において不問である。たとえば、センサ２−１はカメラに対応してもよいし、レーザレーダに対応してもよいし、超音波センサに対応してもよい。
【００１７】
処理ロジック３は、データ転送装置１から受信したセンサデータパケット６０Ｓを用いて情報処理を実行する。以下では、処理ロジック３のそれぞれをハイフンと１からの連番を付した符号で表す。すなわち処理ロジック３は、処理ロジック３−１と、処理ロジック３−２と、・・・、処理ロジック３−ｙとの総称である。以下では、それぞれの処理ロジックに共通する構成や動作を説明する際には単に「処理ロジック３」と表記し、特定の処理ロジックの動作例を説明する際にハイフンと連番を付した符号を用いる。それぞれの処理ロジックが実行する処理の内容は、本実施の形態において不問である。たとえば処理ロジック３ー１がエンジンの動作に関する演算を行ってもよいし、車両の全体動作に関する演算を行ってもよいし、経路演算に関する演算を行ってもよい。
【００１８】
それぞれの処理ロジック３は、所定の時間ごとにいずれかのセンサ２の出力が入力されることを前提に処理を行う。処理ロジック３に入力されるセンサ２の出力は、入力されるタイミングが所定の周期であるだけでなく、入力される出力に含まれる情報をセンサ２がセンシングした時刻の間隔が一定であることが望ましい。これを本実施の形態では、「時間の粒度が一定」と表現する。
【００１９】
データ転送装置１は、車両に搭載され、演算および通信を行う装置、たとえばＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ：電子制御装置）である。データ転送装置１はその機能として、１つ以上の取得側通信ポート１０と、転送処理部２０と、１つ以上の配信側通信ポート３０と、記憶部４０と、時刻同期処理部５０とを備える。
【００２０】
それぞれの取得側通信ポート１０およびそれぞれの配信側通信ポート３０は、物理的な通信ポートを含んで構成される。ただしそれぞれの取得側通信ポート１０およびそれぞれの配信側通信ポート３０が備える演算処理機能は、同一のハードウエアにより実現されてもよいし、さらに転送処理部２０の演算処理機能もあわせて同一のハードウエアにより実現されてもよい。記憶部４０は、不揮発性の記憶装置、たとえばフラッシュメモリである。
【００２１】
転送処理部２０は、中央演算装置であるＣＰＵ、読み出し専用の記憶装置であるＲＯＭ、および読み書き可能な記憶装置であるＲＡＭを備え、ＣＰＵがＲＯＭに格納されるプログラムをＲＡＭに展開して実行することで後述する機能を実現する。ただし転送処理部２０は、ＣＰＵ、ＲＯＭ、およびＲＡＭの組み合わせの代わりに書き換え可能な論理回路であるＦＰＧＡ（Field  Programmable  Gate  Array）や特定用途向け集積回路であるＡＳＩＣ（Application  Specific  Integrated  Circuit）により実現されてもよい。また転送処理部２０は、ＣＰＵ、ＲＯＭ、およびＲＡＭの組み合わせの代わりに、異なる構成の組み合わせ、たとえばＣＰＵ、ＲＯＭ、ＲＡＭとＦＰＧＡの組み合わせにより実現されてもよい。
【００２２】
時刻同期処理部５０のハードウエア構成は転送処理部２０と同様に、ＣＰＵ、ＦＰＧＡ、およびＡＳＩＣのいずれを用いて実現されてもよいし、それらの組み合わせにより実現されてもよい。なお転送処理部２０と時刻同期処理部５０が同種のハードウエアにより実現されなくてもよいが、同種のハードウエアにより実現される場合には、転送処理部２０と時刻同期処理部５０が一体のハードウエアにより実現されてもよい。
【００２３】
取得側通信ポート１０のそれぞれは、センサ２のそれぞれと接続されるインターフェースであり、少なくともセンサ２と同数が備えられる。それぞれの取得側通信ポート１０は、受信処理部１１と、送信処理部１２と、時刻付与部１３とを備える。受信処理部１１は、接続しているセンサ２からセンサデータパケット６０Ｓおよび時刻同期パケットを受信する。受信処理部１１は、受信したパケットがセンサデータパケット６０Ｓの場合は時刻付与部１３に処理させ、時刻同期パケットの場合は時刻同期処理部５０に処理させる。
【００２４】
送信処理部１２は、時刻同期処理部５０から時刻同期パケットを受信し、接続しているセンサ２へ時刻同期パケットを送信する。時刻付与部１３は、受信処理部１１からセンサデータパケット６０Ｓを受信すると、時刻同期処理部５０からシステム全体で同期した時刻を取得する。そして時刻付与部１３は、受信したセンサデータパケット６０Ｓを取得した時刻情報を受信時刻として付与し、時刻データパケット６０Ｔとして転送処理部２０に出力する。
【００２５】
転送処理部２０は、取得側通信ポート１０から時刻データパケット６０Ｔを受信すると、いずれかの配信側通信ポート３０に出力、または廃棄する。ただし転送処理部２０は時刻データパケット６０Ｔを複数の配信側通信ポート３０に出力してもよい。また直ちに破棄をせず、所定時間の経過やバッファが埋め尽くされたことを条件に破棄をしてもよい。転送処理部２０は、出力先を決定するために、時刻データパケット６０Ｔに付与されている識別子および受信時刻と、記憶部４０が保持する転送情報テーブル１００とを参照する。詳しくは後述する。
【００２６】
配信側通信ポート３０のそれぞれは、処理ロジック３のそれぞれと接続されるインターフェースであり、少なくとも処理ロジック３と同数が備えられる。それぞれの配信側通信ポート３０は、送信処理部３１と、受信処理部３２とを備える。
【００２７】
送信処理部３１は、転送処理部２０から時刻データパケット６０Ｔを受信すると、時刻データパケット６０Ｔに付与されている受信時刻を削除して、接続している処理ロジック３へ送信する。すなわち送信処理部３１は、センサデータパケット６０Ｓを処理ロジック３へ送信する。送信処理部３１は、時刻同期処理部５０から時刻同期パケットを受信すると、接続している処理ロジック３へ送信する。
【００２８】
受信処理部３２は、接続している処理ロジック３から時刻同期パケットを受信し、受信した時刻同期パケットを時刻同期処理部５０に送信する。
【００２９】
記憶部４０には、本実施の形態では１つの転送情報テーブル１００が格納される。転送情報テーブル１００には、転送処理部２０が、取得側通信ポート１０から受信した時刻データパケット６０Ｔに付与されている識別子および受信時刻と、送信する配信側通信ポート３０の対応が示される。なお、転送情報テーブル１００に記載されていない識別子と受信時刻の組み合わせが付与されている時刻データパケット６０Ｔは破棄される。なお転送情報テーブル１００は、単に「転送情報」と呼ばれることもある。
【００３０】
時刻同期処理部５０は、自動運転制御システムＳを構成するデータ転送装置１、センサ２、および処理ロジック３が、それぞれ同期した時刻情報をもつための時刻同期プロトコルを実行する。時刻同期処理部５０は、センサ２、処理ロジック３、および時刻同期プロトコルが使用する時刻同期パケットを送受信する。時刻同期プロトコルは、たとえばＰＴＰ（Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）が利用される。なお以下では、センサデータパケット６０Ｓと時刻データパケット６０Ｔとを特に区別しない場合に、「データパケット６０」と呼ぶ。すなわちデータパケット６０は、センサデータパケット６０Ｓおよび時刻データパケット６０Ｔの総称である。
【００３１】
（転送情報テーブル１００の一例）
図２は、転送情報テーブル１００の一例を示す図である。前述のとおり、本実施の形態では、記憶部４０には転送情報テーブル１００が１つのみ格納される。
【００３２】
転送情報テーブル１００は、複数のエントリーから構成され、各エントリーは、識別子１０１、受信時刻１０２および出力ポートＩＤ１０３を含む。識別子１０１は、データの識別子でありセンサ２が付与する。受信時刻１０２は、時刻付与部１３においてセンサデータパケット６０Ｓに付与された受信時刻である。出力ポートＩＤ１０３は、センサデータパケット６０Ｓを出力する配信側通信ポート３０を特定するためのＩＤであり、１または複数のＩＤが１つのエントリー中に含まれる。
【００３３】
受信時刻１０２は一度しか該当ない特定の時刻であってもよいし、繰り返し該当しうる時刻情報の一部であってもよい。一度しか該当ない特定の時刻とはたとえば、「２０１９年１月２日午前３時４５分１．２３４５秒」である。繰り返し該当しうる時刻情報の一部とはたとえば、１００ｍｓ周期での動作を前提とした「周期区切り＋１０ｍｓ」である。繰り返し該当しうる時刻情報を用いる場合には、所定の時刻、たとえばデータ転送装置１の電源がオンにされた時刻を基準時刻、すなわち時刻カウントの起点としてもよい。
【００３４】
図２に示す受信時刻１０２の例は、自動運転制御システムＳが１００ｍｓ周期で動作する場合の記載であり、最初のエントリーである受信時刻１０２が「０」とは具体的には、Ｎを整数とするときに、受信時刻が「基準時刻＋１００ｍｓ×Ｎ」であることを表す。図２の２つ目のエントリーである受信時刻１０２が「１０」とは具体的には、Ｎを整数とするときに、受信時刻が「基準時刻＋１００ｍｓ×Ｎ＋１０ｍｓ」であることを表す。
【００３５】
（転送処理部２０の動作）
図３は、転送処理部２０の動作を示すフローチャートである。転送処理部２０は、取得側通信ポート１０から時刻データパケット６０Ｔを受信すると図３に示す処理を開始する。転送処理部２０はまず、受信した時刻データパケット６０Ｔに付与されている識別子と受信時刻の値を取得する（Ｓ１０１）。次に転送処理部２０は、取得した識別子と受信時刻の組み合わせをキーとして、記憶部４０の転送情報テーブル１００を検索する（Ｓ１０２）。そして転送処理部２０は、Ｓ１０２における検索の結果として、転送情報テーブル１００に対応するエントリーが存在するか否かを判断する（Ｓ１０３）。転送処理部２０は、対応するエントリーが存在すると判断する場合はＳ１０４に進み、対応するエントリーが存在しないと判断する場合はＳ１０７に進む。
【００３６】
Ｓ１０４では転送処理部２０は、転送情報テーブル１００に記載されている対応するエントリーを参照して出力ポートＩＤを特定する。そして転送処理部２０は、受信した時刻データパケット６０ＴをＳ１０４において特定したＩＤを有する配信側通信ポート３０に送信する（Ｓ１０６）。なおＳ１０４において特定した出力ポートＩＤが複数存在する場合は、受信した時刻データパケット６０Ｔを複製してそれぞれの配信側通信ポート３０に送信する。
【００３７】
Ｓ１０３において否定判断されると実行されるＳ１０７では転送処理部２０は、受信した時刻データパケット６０Ｔを破棄する。Ｓ１０６またはＳ１０７の実行が完了すると、転送処理部２０は図３に示す処理を終了する。
【００３８】
（動作例）
図４は、第１の実施の形態の動作シーケンス例を示す図である。この動作例では、転送情報テーブル１００は図２に例示したものとする。また図４では、データ転送装置１に備えられる２つの配信側通信ポート３０を、「配信側通信ポート３０−１」と「配信側通信ポート３０−２」として記載している。
【００３９】
まず、センサ２から識別子［１００］が付与されたセンサデータパケット６０−１Ｓを取得側通信ポート１０が受信する（Ｓ１０）。取得側通信ポート１０の時刻付与部１３は受信時刻である［０］をセンサデータパケット６０−１Ｓに付与し、時刻データパケット６０−１Ｔとして転送処理部２０に送信する（Ｓ１１）。すると転送処理部２０は、識別子［１００］と受信時刻［０］をキーとして転送情報テーブル１００を検索する。そして転送処理部２０は、対応するエントリー、すなわち１つ目のエントリーの存在を確認し、出力ポートＩＤ［１、２］を取得する。
【００４０】
この場合は取得した出力ポートＩＤが２つ存在するので、転送処理部２０は受信した時刻データパケット６０−１Ｔを複製し、出力ポートＩＤが示す配信側通信ポート３０−１および３０−２に送信する（Ｓ１２、Ｓ１３）。転送処理部２０から時刻データパケット６０−１Ｔを受信した配信側通信ポート３０−１および３０−２は、送信処理部３１において、時刻データパケット６０−１Ｔに付与されている受信時刻を削除してセンサデータパケット６０−１Ｓとする。そして送信処理部３１は、接続されている処理ロジック３−１および処理ロジック３−２にセンサデータパケット６０−１Ｓ送信する（Ｓ１４、Ｓ１５）。
【００４１】
次に、センサデータパケット６０−２Ｓを取得側通信ポート１０が受信し（Ｓ２０）、時刻［１０］が付与されて転送処理部２０に時刻データパケット６０−２Ｔとして送信される（Ｓ２１）。転送処理部２０は転送情報テーブル１００を検索し、出力ポートＩＤ［１］を取得する。ここでは取得した出力ポートＩＤが１つのため、時刻データパケット６０−２Ｔは複製されず、配信側通信ポート３０−１のみに送信され（Ｓ２２）、処理ロジック３−１に送信される（Ｓ２３）。
【００４２】
そしてセンサデータパケット６０−３Ｓを取得側通信ポート１０が受信し（Ｓ３０）、そのときの時刻である時刻［１５］が付与されて時刻データパケット６０−３Ｔが転送処理部２０に送信される（Ｓ３１）。転送処理部２０は、識別子［１００］と受信時刻［１５］をキーとして転送情報テーブル１００を検索する。しかし対応するエントリーが転送情報テーブル１００に存在しないため、転送処理部２０は時刻データパケット６０−３Ｔを廃棄する（Ｓ３２）。
【００４３】
図５を用いて、本実施の形態で示したデータ転送装置１の処理により実現されるデータパケット６０の入出力パターン例を説明する。ただしここでも、転送情報テーブル１００は、図２に示した例のとおりとする。図５（ａ）はセンサ２−１からデータ転送装置１へのセンサデータパケット６０Ｓの入力パターン例を示す図、図５（ｂ）はデータ転送装置１から配信側通信ポート３０−１へのセンサデータパケット６０Ｓの出力パターン例を示す図、図５（ｃ）はデータ転送装置１から配信側通信ポート３０−２へのセンサデータパケット６０Ｓの出力パターン例を示す図である。
【００４４】
図５（ａ）〜図５（ｃ）では右に進むほど時間が経過しており、３つの図において時刻は同期している。図５におけるセンサデータパケット６０Ｓ内の１〜１１の数字は、同種のセンサデータパケット６０Ｓのシーケンス番号を示す。図５（ａ）は、シーケンス番号１のセンサデータパケット６０Ｓの受信時刻を基準として、１０ｎｓ周期でセンサデータパケット６０Ｓを受信することを示している。転送処理部２０は、図３や図４を参照して説明したように動作する。ただし転送情報テーブル１００は４０ｎｓ周期での繰り返し動作を示していることとする。すなわち５０ｎｓでは転送処理部２０は、受信時刻が［１０］のエントリーを参照する。
【００４５】
転送処理部２０は図５（ａ）に示すパターンでセンサデータパケット６０Ｓが入力されると、転送情報テーブル１００の記載に従って図５（ｂ）および図５（ｃ）に示すように、センサデータパケット６０Ｓを出力する。すなわち転送処理部２０は、配信側通信ポート３０−１には、入力と同じ通信レートである１０ｎｓ周期で全てのセンサデータパケット６０Ｓを出力する。また転送処理部２０は、配信側通信ポート３０−２には、入力の通信レートの１／２である２０ｎｓ周期で出力する。さらに転送処理部２０は、センサデータパケット６０Ｓの受信時刻に基づき転送の要否を決定するので、配信側通信ポート３０−２に送信するセンサデータパケット６０Ｓのシーケンス番号が周期性をもつ。
【００４６】
具体的には、図５（ｃ）に示すように配信側通信ポート３０−２に送信されるセンサデータパケット６０Ｓのシーケンス番号は、「１、３、５、７、９、１１」であり、２ずつ増加、すなわち１とびとなる。換言すると、データ転送装置１から送信されるセンサデータパケット６０Ｓに含まれるセンサデータの時間の粒度が一定である。
【００４７】
（比較例）
図６を参照して比較例の動作を説明する。比較例である比較例データ転送装置は、転送情報テーブル１００を用いずに、データパケット６０を出力する最低の出力時間間隔である最低出力間隔が定められている。比較例データ転送装置は、最低出力間隔と同一またはそれよりも短い間隔で任意のデータパケット６０を出力する。
【００４８】
図６（ａ）は比較例データ転送装置に入力されるデータパケット６０を示す図であり、データパケット６０内の１〜１１の数字は、同種のデータパケット６０のシーケンス番号を示す。図６（ｂ）は、最低出力間隔を２０ｎｓとした場合の比較例データ転送装置の出力である。図６（ａ）と図６（ｂ）では右側に進むほど時間が経過しており、１つの目盛りが１０ｎｓを示す。ただし以下では時間の単位である［ｎｓ］を省略して、たとえば１０ｎｓを「時刻１０」と呼ぶ。
【００４９】
比較例データ転送装置は、まず時刻０において、受信したシーケンス番号１のデータパケット６０を出力する。次に比較例データ転送装置は、時刻１０では出力を行わないがシーケンス番号２のデータパケット６０を保存する。そして比較例データ転送装置は、時刻２０ではシーケンス番号３のデータパケット６０を受信するが、保存していたシーケンス番号２のデータパケット６０を出力する。
【００５０】
比較例データ転送装置は時刻３０ではシーケンス番号４のデータパケット６０を保存し、時刻４０には受信したシーケンス番号５のデータパケット６０を出力する。このように最低出力間隔のみを規定すると、図６（ｂ）に示すように出力そのものは２０ｎｓ周期で一定ではあるが、出力されるデータパケット６０のシーケンス番号の間隔は一定ではない。すなわち比較例データ転送装置から送信されるデータパケット６０に含まれるセンサデータの時間の粒度は一定ではない。これに対してデータ転送装置１から送信されるデータパケット６０に含まれるセンサデータの時間の粒度は一定である。
【００５１】
上述した第１の実施の形態によれば、次の作用効果が得られる。
（１）データ転送装置１は、種別を示す識別子を含むデータを受信する取得側通信ポート１０と、データを外部に送信する配信側通信ポート３０と、識別子とデータの時刻に関する条件とを対応づける転送情報テーブル１００を格納する記憶部４０と、取得側通信ポート１０がデータである受信データを受信すると、受信データに含まれる識別子および受信データの時刻の情報と転送情報に基づき、受信データを配信側通信ポート３０に送信するか否かを決定する転送処理部２０とを備える。受信データの時刻の情報とは、受信データを取得側通信ポートが受信した時刻である。そのため図５に示したように、外部に送信される受信データの時間の粒度が一定、すなわちデータ転送装置１が送信するセンサデータの受信時刻の間隔が一定である。
【００５２】
（２）配信側通信ポート３０は処理ロジック３の数と同等以上、すなわち複数備えられる。転送情報テーブル１００には図２に示すように、識別子とデータの時刻に関する条件と少なくとも１つの配信側通信ポートとが対応付けられる。転送処理部２０は、受信データに含まれる識別子および受信データの時刻の情報に対応付けられた配信側通信ポート３０に受信データを送信する。データ転送装置１は、時刻の条件に応じて適切な処理ロジック３にセンサデータパケット６０Ｓを送信できる。
【００５３】
（変形例１）
転送情報テーブル１００の受信時刻１０２は、数式で表されてもよいし、範囲で表されてもよい。すなわち受信時刻１０２は、何らかの時刻に関する条件が記載されていればよい。数式で表される場合はたとえば、任意の整数であるＮを用いて、「Ｎ＋３Ｎ＾２＋５Ｎ＾３」などのように多項式で表されてもよい。範囲で表される場合はたとえば、図２の２つ目のエントリーにおいて「１０」の代わりに「８〜１２」としてもよい。
【００５４】
（変形例２）
データ転送装置１には、配信側通信ポート３０が１つのみ含まれてもよい。この場合は出力先が１つしか存在しない、すなわち選択肢が存在しないことから配信側通信ポート３０を特定する必要がなく、転送情報テーブル１００から出力ポートＩＤ１０３を削除してもよい。
【００５５】
（変形例３）
データ転送装置１は、常に全ての配信側通信ポート３０に同一のセンサデータパケット６０Ｓを送信してもよい。この場合は配信側通信ポート３０を特定する必要がないので、転送情報テーブル１００から出力ポートＩＤ１０３を削除してもよい。
【００５６】
（変形例４）
センサ２は、センサデータパケット６０Ｓに時刻情報を含めて送信してもよい。センサ２とデータ転送装置１は時刻情報の同期がとれているので、センサ２とデータ転送装置１のどちらが時刻情報を付与しても実質的な差がないからである。この場合はデータ転送装置１は時刻付与部１３を備えず、センサ２から受信したセンサデータパケット６０Ｓを第１の実施の形態における時刻データパケット６０Ｔとして扱う。なおこの場合に送信処理部３１は、時刻データパケット６０Ｔから時刻情報を削除せずに処理ロジック３に送信してもよい。
【００５７】
―第２の実施の形態―
図７〜図１１を参照して、データ転送装置の第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、転送処理部２０が転送情報テーブル１００を状況に応じて選択する点で、第１の実施の形態と異なる。
【００５８】
（構成）
図７は、第２の実施の形態における自動運転制御システムＳの構成図である。本実施の形態では、転送処理部２０に転送情報選択部２１が備えられ、記憶部４０にはそれぞれＩＤが付与された複数の転送情報テーブル１００、および１つの検索対象情報テーブル２００が格納される。転送情報選択部２１は、センサ２、処理ロジック３、取得側通信ポート１０、および配信側通信ポート３０の状態に応じて、転送処理部２０が検索対象とする転送情報テーブル１００のＩＤを特定する。転送情報選択部２１は、このＩＤの特定のために検索対象情報テーブル２００を参照する。
【００５９】
図８は、検索対象情報テーブル２００の一例を示す図である。検索対象情報テーブル２００は複数のエントリーを有し、各エントリーは、通知元ＩＤ２０１、状態内容ＩＤ２０２および転送情報テーブルＩＤ２０３を含む。換言すると検索対象情報テーブル２００には、通知元ＩＤ２０１、状態内容ＩＤ２０２、および転送情報テーブルＩＤ２０３が対応付けられて複数組が格納される。通知元ＩＤ２０１および状態内容ＩＤ２０２は、後述する状態通知パケットに付与された通知元ＩＤおよび状態内容ＩＤに対応する。転送情報テーブルＩＤ２０３は、転送情報テーブル１００を識別するＩＤである。
【００６０】
それぞれの転送情報テーブルＩＤに対して、通信元ＩＤ２０１および状態内容ＩＤ２０２の組み合わせの２つ以上が１つの検索キーとして対応づけられてもよい。たとえば、転送情報テーブルＩＤ［３］のエントリーは、通知元ＩＤ［３］、状態内容ＩＤ［３］と通知元ＩＤ［４］、状態内容ＩＤ［４］の両方の組み合わせをキーとして検索された場合に対応する。図８に示す例における最初のエントリーのみ特別であり、初期状態、すなわち異常が発生していない通常状態ではＩＤが［０］の転送情報テーブル１００を使用することを示している。以下では、ＩＤが［０］の転送情報テーブル１００を「初期テーブル」と呼ぶ。
【００６１】
なお図８では、通信元ＩＤ２０１および状態内容ＩＤ２０２の１組の組み合わせがそれぞれの検索キーとして対応付けられているが、通信元ＩＤ２０１および状態内容ＩＤ２０２の複数の組み合わせが検索キーとして対応付けられてもよい。たとえば、通信元ＩＤ［１］と状態内容ＩＤ［１］の組み合わせ、かつ通信元ＩＤ［３］と状態内容ＩＤ［３］の組み合わせが同時に該当する場合は、ＩＤが［９］の転送情報テーブル１００を使用するエントリーが存在してもよい。
【００６２】
さらにこの場合に、ＩＤが［９］の転送情報テーブル１００を使用するエントリーが選択されている状態で通信元ＩＤ［３］と状態内容ＩＤ［３］の組み合わせの不具合が解消すると、次のようにエントリーが選択される。すなわち、通信元ＩＤ［１］と状態内容ＩＤ［１］の組み合わせが残るので、図８の例によればＩＤが［１］の転送情報テーブル１００を使用するエントリーが選択される。図７に戻って説明を続ける。
【００６３】
第２の実施の形態では、センサ２、処理ロジック３、受信処理部１１、受信処理部３２、送信処理部１２、および送信処理部３１は状態変化を検出可能であり、状態変化を検出すると状態通知パケットを生成してデータ転送装置１の転送情報選択部２１に通知する。状態通知パケットについては後述する。
【００６４】
状態変化の検出とは、センサ２がセンシング不可になったことの検出、処理ロジック３にハードウエア障害が発生したことの検出、および処理ロジック３における情報処理の結果が所定値、たとえば自動運転制御の解除と判断されたことの検出などである。受信処理部１１、受信処理部３２、送信処理部１２、および送信処理部３１の状態変化の検出とは、たとえばセンサ２および処理ロジック３との通信障害の発生の検出である。なお様々な障害が解消したことの検出も状態変化の検出に含まれる。
【００６５】
状態通知パケットは、当該パケットの送信元を特定する通信元ＩＤと、状態変化の内容を特定する状態内容ＩＤとを含む。通信元ＩＤおよび状態内容ＩＤは、システム設計時に事前に決定され、状態通知パケットの各送信元にあらかじめ記憶されている。通信障害通常状態に戻った場合の状態内容ＩＤは、たとえば［０］として、全ての送信元で共通に利用される。センサ２および処理ロジック３から送信される状態通知パケットは、受信処理部１１および受信処理部３２において検出され、転送情報選択部２１に送信される。
【００６６】
転送情報選択部２１は、状態通知パケットを受信すると、状態通知パケットに付与されている通信元ＩＤおよび状態内容ＩＤの組み合わせを読み込む。そして転送情報選択部２１は、読み込んだ通信元ＩＤおよび状態内容ＩＤの組み合わせを検索対象情報テーブル２００から検索し、その組み合わせに対応付けられる転送情報テーブル１００のＩＤを特定する。転送処理部２０は、転送情報選択部２１が特定したＩＤに対応する転送情報テーブル１００を使用する。
【００６７】
なお通常状態に戻った際にも状態通知パケットが送信されるので、転送情報選択部２１は受信した状態通知パケットに含まれる情報に基づき、異常がない状態で使用する転送情報テーブル１００である初期テーブルのＩＤを特定する。
【００６８】
転送処理部２０は、受信した時刻データパケット６０Ｔに含まれる受信時刻および識別子の組み合わせを、転送情報選択部２１が特定したＩＤに対応する転送情報テーブル１００を参照して検索する。検索後の転送処理部２０の動作は第１の実施の形態と同様なので説明を省略する。
【００６９】
（転送情報選択部２１の動作）
図９は、転送情報選択部２１の処理を示すフローチャートである。転送情報選択部２１は、状態通知パケットを受信すると図９に示す処理を開始する。
【００７０】
転送情報選択部２１は、状態通知パケットを受信すると当該パケットに付与されている通知元ＩＤと状態内容ＩＤの値を取得する（Ｓ２０１）。転送情報選択部２１は、取得した状態内容ＩＤが通常状態に戻ったことを示す［０］であるか否か判断し（Ｓ２０２）、［０］であると判断する場合はＳ２０８に進み、［０］であると判断する場合はＳ２０３に進む。Ｓ２０３では転送情報選択部２１は、取得した通知元ＩＤと状態内容ＩＤの組み合わせを、すでに保持しているものに追加して保持してＳ２０４に進む。
【００７１】
Ｓ２０４では転送情報選択部２１は、保持している通知元ＩＤと状態内容ＩＤの組み合わせの全てをキーとして、検索対象情報テーブル２００を検索する。次に転送情報選択部２１は、検索の結果として検索対象情報テーブル２００に対応するエントリーが存在するか否かを判断する（Ｓ２０５）。転送情報選択部２１は、存在すると判断する場合は、対応するエントリーから転送情報テーブルＩＤを取得し（Ｓ２０６）、取得した転送情報テーブルＩＤを転送処理部２０に通知する（Ｓ２０７）。転送情報選択部２１は、Ｓ２０５において否定判断をする場合は、そのまま図９に示す処理を終了する。
【００７２】
Ｓ２０２において肯定判断された場合に実行されるＳ２０８では、転送情報選択部２１は対応する通知元ＩＤおよび状態内容ＩＤの組み合わせを削除する。続くＳ２０９では転送情報選択部２１は、他に転送情報選択部２１が保持している通知元ＩＤおよび状態内容ＩＤ組み合わせが存在するか否かを判断する。転送情報選択部２１は、存在すると判断する場合はＳ２０４に進み、存在しないと判断する場合はＳ２１０に進む。Ｓ２１０では転送情報選択部２１は、記憶部４０内の検索対象情報テーブル２００から通常状態に対応する転送情報テーブルＩＤを取得し、Ｓ２０７に進む。
【００７３】
（動作例）
図１０および図１１を参照して本実施の形態におけるデータ転送装置１の動作例を説明する。
【００７４】
図１０に示す自動運転システムは、センサ２、処理ロジック３−１、および処理ロジック３−２が、データ転送装置１を経由して接続されている。また、処理ロジック３−１は通常動作時において自動運転の情報処理判断制御を実行するために、高スペックＣＰＵ上で動作している。処理ロジック３−２は、処理ロジック３−１に障害が発生した場合などによる縮退動作時の情報処理用ロジックとして、低スペックＣＰＵ上で動作している。
【００７５】
図１０（ａ）に示すように、通常動作時には、センサ２が１０ｍｓで出力するデータパケット６０を処理ロジック３−１に対して全て転送し、高度な情報処理を実行させる。一方で、処理ロジック３−１に障害が発生し、たとえば処理ロジック３−１がデータ転送装置１に状態通知パケットを送信すると、データ転送装置１は次のように動作する。
【００７６】
すなわちデータ転送装置１は図１０（ｂ）に示すように、当該パケットに基づいてデータパケット転送時の検索対象の転送情報テーブルを変更し、処理ロジック３−１へのデータ転送を停止するとともに、次の処理を行わせる。すなわちデータ転送装置１は、縮退動作用の処理ロジック３−２に対して、１０ｍｓ周期でセンサ２から受信したデータパケット６０を、５０ｍｓ周期に通信レートを削減する。この場合にデータ転送装置１は、受信したデータパケット６０に対して、正確に５パケットおきに選択して出力することが可能となる。これにより、不要なネットワーク処理負荷を削減しつつ、センサデータの時間の粒度を担保することができる。
【００７７】
図１１に示す自動運転システムは、図１０と同様にセンサ２、処理ロジック３−１、および処理ロジック３−２が、データ転送装置１を経由して接続されている。処理ロジック３−１は通常動作時において自動運転判断制御の情報処理を実行する。処理ロジック３−２は、センサ２が送信するデータパケット６０をログとして保存する。
【００７８】
図１１（ａ）に示すように、データ転送装置１は通常動作時には、センサ２が１０ｍｓで出力するデータパケット６０を、処理ロジック３−１に対しては全て転送し高度な情報処理を実行させる。また同じく通常動作時にデータ転送装置１は、処理ロジック３−２対しては１００ｍｓ周期に通信レートを削減し、かつ、受信したデータパケット６０に対して、正確に１０パケットおきに選択して出力する。このような転送処理を実行することで、ロガーである処理ロジック３−２の通常時のログ取得量を削減し、ストレージを節約しつつ、ネットワーク処理負荷も低減することができる。
【００７９】
その後、処理ロジック３−１における自動運転判断制御のための情報処理の結果、自動運転の解除動作が実行されることとなり、処理ロジック３−１がデータ転送装置１に状態通知パケットを送信した場合を想定する。この場合はデータ転送装置１は、図１１（ｂ）に示すように、当該パケットに基づいてデータパケット転送時の検索対象の転送情報テーブルを変更することで、たとえば次のように動作を変更する。すなわちデータ転送装置１は、処理ロジック３−１へのデータ転送はそのまま１０ｍｓ周期で転送するとともに、ロガーの処理ロジック３−２に対しても１０ｍｓ周期で転送し、詳細なログを取得するように変更することができる。
【００８０】
上述した第２の実施の形態によれば、次の作用効果が得られる。
（３）記憶部４０には転送情報テーブル１００が複数格納される。転送処理部２０は、取得側通信ポート１０の状態、配信側通信ポート３０の状態、取得側通信ポート１０に接続される機器、すなわちセンサ２の状態、および配信側通信ポート３０に接続される機器、すなわち処理ロジック３の状態に基づき、検索対象情報テーブル２００を参照して複数の転送情報テーブル１００からいずれかの転送情報テーブル１００を選択し、受信データに関する決定に用いる。そのため、図１０や図１１に示すように状況に応じたデータの転送が実現できる。
【００８１】
（４）転送処理部２０は、センサ２および処理ロジック３から状態に関する情報を受信し、センサ２および処理ロジック３の状態を判断する。
【００８２】
（第２の実施の形態の変形例）
上述した第２の実施の形態では、センサ２、処理ロジック３、受信処理部１１、受信処理部３２、送信処理部１２、および送信処理部３１の全てが状態変化を検出し状態通知パケットを転送情報選択部２１に通知した。しかしセンサ２、処理ロジック３、受信処理部１１、受信処理部３２、送信処理部１２、および送信処理部３１の少なくとも１つが状態変化を検出し状態通知パケットを転送情報選択部２１に通知可能であればよい。
【００８３】
―第３の実施の形態―
図１２〜図１４を参照して、データ転送装置の第３の実施の形態を説明する。以下の説明では、第２の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第２の実施の形態と同じである。本実施の形態では、主に、転送情報テーブル１００を用いて通信の異常を検出する点で、第２の実施の形態と異なる。
【００８４】
図１２は、第３の実施の形態における自動運転制御システムＳの構成図である。本システムのデータ転送装置１は、第１の実施の形態および第２の実施の形態の構成に加え、転送異常検出部２２を備える。本実施の形態における記憶部４０には２つ以上の転送情報テーブル１００と、１つの検索対象情報テーブル２００と、１つの通知元ＩＤ変換テーブル３００とが含まれる。
【００８５】
図１３は、通知元ＩＤ変換テーブル３００の一例を示す図である。通知元ＩＤ変換テーブル３００は、識別子３０１および通知元ＩＤ３０２を含む。識別子３０１は、転送情報テーブル１００の識別子１０１に対応する。また通知元ＩＤは、本システム内で当該識別子を含むセンサデータパケット６０Ｓの送信元を特定するＩＤであり、システム設計時に事前に決定される。図１２に戻って説明を続ける。
【００８６】
転送処理部２０は、第２の実施の形態における処理に加えて、次に説明する処理を行う。すなわち転送処理部２０は、取得側通信ポート１０からセンサデータパケット６０Ｓを受信すると、当該パケットに付与されている識別子と受信時刻を転送異常検出部２２に送信する。
【００８７】
転送異常検出部２２は、直前に受信した識別子と受信時刻を保持している。転送異常検出部２２は、これらの値に加え、新たに受信した識別子と受信時刻をキーとして初期テーブルである転送情報テーブル１００を検索する。そして転送異常検出部２２は、検索条件に該当するエントリーが初期テーブルにおいて連続していない場合はセンサ２の異常として検出する。すなわち転送異常検出部２２は、連続して受信した２つの受信データ、すなわち２つのセンサデータパケット６０Ｓおよび初期テーブルに基づきセンサ２の異常を検出する。
【００８８】
たとえば図２に示す初期テーブルの例において、直前に受信した識別子と受信時刻の組み合わせが［１００］と［２０］であり、今回受信した識別子と受信時刻の組み合わせが［１００］と［４０］の場合には次のように判断する。すなわち転送異常検出部２２は、両者の組み合わせの間には［１００］と［３０］の組み合わせが存在し、この受信が行われなかったので、識別子［１００］を付与して出力するセンサ２に異常があると判断する。
【００８９】
さらに転送異常検出部２２は、異常があると判断すると、実行されなかったエントリーの識別子に対応する通知元ＩＤを通知元ＩＤ変換テーブル３００を参照して取得し、取得した通知元ＩＤを含む状態通知パケットを転送情報選択部２１に送信する。たとえば前述の例では識別子と受信時刻の組み合わせが［１００］と［３０］であるエントリーが実行されなかったので、通知元ＩＤ変換テーブル３００が図１３に示す例の場合には、識別子［１００］に対応する通知元ＩＤ［１０］が取得される。そのため転送異常検出部２２は、通知元ＩＤ［１０］を含む状態通知パケットを転送情報選択部２１に送信する。
【００９０】
（転送異常検出部２２の動作）
図１４は、転送異常検出部２２の動作を示すフローチャートである。転送異常検出部２２は、転送処理部２０から識別子および受信時刻を受信すると図１４に示す処理を開始する。なお後述するように転送異常検出部２２は受信した識別子および受信時刻を保持するので、図１４に示す処理が開始する時点で前回受信した識別子および受信時刻を保持している。
【００９１】
転送異常検出部２２はまず、今回および前回受信した識別子と受信時刻をキーとして、それぞれ記憶部４０内の初期テーブルを検索する（Ｓ３０１）。次に転送異常検出部２２は、当該パケットに付与されている通知元ＩＤと状態内容ＩＤの値を取得する（Ｓ３０１）。次に転送異常検出部２２は、各検索キーに対応するエントリーの受信時刻に基づき、転送処理部２０において転送処理が実行されなかったエントリーが存在するか否かを判断する（Ｓ３０２）。
【００９２】
具体的には、各検索キーに対応するエントリーの間の時刻に他のエントリーが存在する場合には実行されなかったエントリーが存在するとしてＳ３０２は肯定判断され、各検索キーに対応するエントリーの間に他のエントリーが存在しない場合は否定判断される。たとえば図２に例示した転送情報テーブル１００において、識別子と受信時刻の組み合わせが［１００］と［１０］のエントリー、および識別子と受信時刻の組み合わせが［１００］と［２０］のエントリーが検出された場合は次のように判断する。すなわち、検索されたエントリーの時刻は［１０］と［２０］であり、同じく時刻が［１０］であるエントリーは存在するが、その間の時刻のエントリーは存在しないのでＳ３０２は否定判断される。
【００９３】
転送異常検出部２２は、転送処理が実行されなかったエントリーが存在すると判断する場合は、Ｓ３０３に進み、転送処理が実行されなかったエントリーが存在しないと判断する場合はＳ３０６に進む。Ｓ３０３では転送異常検出部２２は、転送が実行されなかったエントリーの識別子１０１を取得してＳ３０４に進む。Ｓ３０４では転送異常検出部２２は、取得した識別子１０１をキーとして、通知元ＩＤ変換テーブル３００を検索し、対応する通知元ＩＤを取得する。
【００９４】
そして転送異常検出部２２は、取得した通知元ＩＤおよび転送異常を示す状態変化ＩＤを含む状態通知パケットを転送情報選択部２１に送信する（Ｓ３０５）。Ｓ３０５の次に、またはＳ３０２において否定判断をした場合に転送異常検出部２２は、前回受信した識別子と受信時刻を削除するとともに、今回受信した時刻を保持し（Ｓ３０６）、図１４に示す処理を終了する。
【００９５】
以上の処理により、初期テーブルが示す受信時刻で、予定された転送処理が実行されなかった場合をセンサ２の異常として検出し、転送処理部２０が検索対象とする転送情報テーブル１００を変更することが可能となる。本実施の形態の処理は、たとえばセンサ２が失陥した場合に、自動運転判断制御のための情報処理を実行する処理ロジック３に対して、通常動作時では通信レートを削減していた他のセンサ２からのデータパケット６０を増加させることで、入力情報を補填する等の場合に利用される。
【００９６】
上述した第３の実施の形態によれば、次の作用効果が得られる。
（５）転送処理部２０は、連続して受信した複数のセンサデータパケット６０Ｓおよび初期テーブルに基づき、センサ２の異常を検出する。そのため、転送の判断に用いる初期テーブルを利用してセンサ２の異常を検出できる。
【００９７】
（第３の実施の形態の変形例）
上述した第３の実施の形態では、転送異常検出部２２は連続して受信した２つの受信データおよび初期テーブルに基づき、センサ２の異常を検出した。しかし転送異常検出部２２は、連続して受信した３つ以上のセンサデータパケット６０Ｓおよび初期テーブルに基づきセンサ２の異常を検出してもよい。３つ以上のセンサデータパケット６０Ｓを用いることにより、初期テーブルにおいて複数のエントリーが同一の時刻であっても正確にセンサ２の異常を検出できる。詳述すると、初期テーブルにおいて同一の時刻を有するエントリーがＮ個存在する場合には、連続して受信したＮ＋１個以上のセンサデータパケット６０Ｓを用いればよい。
【００９８】
―第４の実施の形態―
図１５を参照して、データ転送装置の第４の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第２の実施の形態と同じである。本実施の形態では、主に、受信時刻の代わりに受信した順序を利用するで、第１の実施の形態と異なる。なお本実施の形態では「順番」と「順序」は同じ意味である。
【００９９】
本実施の形態では時刻付与部１３は、時刻の代わりに受信した順序を付与する。ただし時刻付与部１３は、データパケット６０に含まれる識別子に応じてそれぞれ独立した順序を付与する。たとえば時刻付与部１３は、最初に受信した識別子が「１００」のセンサデータパケットには順序「１」を付与し、２番目に受信した識別子が「１００」のセンサデータパケットには順序「２」を付与する。
【０１００】
本実施の形態では、記憶部４０には転送情報テーブル１００の代わりに転送情報テーブル１００Ａが格納される。転送情報テーブル１００Ａの各エントリーは、転送情報テーブル１００における受信時刻１０２の代わりに受信順１０２Ａを含む。受信順１０２Ａは、時刻付与部１３においてセンサデータパケット６０Ｓに付与された順序である。転送処理部２０は、出力先を決定するために、時刻データパケット６０Ｔに付与されている識別子および受信時刻と、記憶部４０が保持する転送情報テーブル１００Ａとを参照する。
【０１０１】
図１５は、転送情報テーブル１００Ａの一例を示す図である。受信順１０２Ａの欄には、時刻データパケット６０Ｔの順序に関する条件が格納される。順序に関する条件は単一の順序のみが該当する条件でもよいし、繰り返し該当する条件でもよい。たとえば図１５に示すように「偶数番」、「奇数番」、「１０の倍数」としてもよい。さらに自然数Ｎを用いて該当する順序を「２Ｎ」や「１０Ｎ」として記載してもよい。
【０１０２】
転送処理部２０は図１５に示す転送情報テーブル１００Ａを参照する場合は、識別子「１００」が付与された時刻データパケット６０Ｔについて、偶数番の順序が付与されていれば出力ポートＩＤ［１、２］に出力し、奇数番の順序が付与されていれば出力ポートＩＤ［１］に出力する。
【０１０３】
（第４の実施の形態の変形例）
センサ２は、センサデータパケット６０Ｓに順序の情報を含めて送信してもよい。ただしセンサ２が付与する順序の情報は、識別子ごとに独立したものとする。この場合はデータ転送装置１は時刻付与部１３を備えず、センサ２から受信したセンサデータパケット６０Ｓを第１の実施の形態における時刻データパケット６０Ｔとして扱う。なおこの場合に送信処理部３１は、時刻データパケット６０Ｔから順序の情報を削除せずに処理ロジック３に送信してもよい。またこの場合は、転送処理部２０はセンサ２から受信したセンサデータパケット６０Ｓに含まれる順序の情報が連続していないことを理由にセンサ２の異常を検出してもよい。
【０１０４】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。ただし第３の実施の形態と第４の実施の形態を組み合わせることはできない。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【０１０５】
１…データ転送装置
２…センサ
３…処理ロジック
１０…取得側通信ポート
１１、３２…受信処理部
１２、３１…送信処理部
１３…時刻付与部
２０…転送処理部
２１…転送情報選択部
２２…転送異常検出部
３０…配信側通信ポート
４０…記憶部
５０…時刻同期処理部
６０…データパケット
６０Ｓ…センサデータパケット
６０Ｔ…時刻データパケット
１００…転送情報テーブル
２００…検索対象情報テーブル
３００…通知元ＩＤ変換テーブル
【図１】
2020088579.tif 000003
【図２】
2020088579.tif 000004
【図３】
2020088579.tif 000005
【図４】
2020088579.tif 000006
【図５】
2020088579.tif 000007
【図６】
2020088579.tif 000008
【図７】
2020088579.tif 000009
【図８】
2020088579.tif 000010
【図９】
2020088579.tif 000011
【図１０】
2020088579.tif 000012
【図１１】
2020088579.tif 000013
【図１２】
2020088579.tif 000014
【図１３】
2020088579.tif 000015
【図１４】
2020088579.tif 000016
【図１５】
2020088579.tif 000017