(57)【要約】【課題】周期的なデータ送信を複数の伝送路を用いて行う通信ネットワークシステムにおいて、通信帯域を落とさずに、かつ通信障害に耐性のあるデータ送受信を行う。【解決手段】複数のノード（１０−１，１０−ｎ）と、その各ノード間においてデータ伝送を行う複数の伝送路を有する通信ネットワーク（１００）と、を有し、各ノードが複数の伝送路のスロットにて周期的なデータ送信を行う通信システムにおいて、各ノードは、送信するデータのデータ項目と通信サイクル数に基づいて、データ送信に用いる伝送路およびスロットを選択する送信データスロット割当部（１５−１）と、受信した伝送路とスロットと通信サイクル数に基づいて、受信データのデータ項目を判定する受信データ格納部（１５−２）と、を有し、１つのデータ項目が通信サイクルに応じて異なる伝送路およびスロットにて送受信される。【選択図】  図１
2011139187.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードと、
前記複数のノードの各ノード間においてデータ伝送を行う複数の伝送路を有する通信ネットワークと、を有し、
前記複数のノードの各ノードが前記複数の伝送路のスロットにて周期的なデータ送信を行う通信システムにおいて、
前記複数のノードの各ノードは、
送信するデータのデータ項目と通信サイクル数に基づいて、データ送信に用いる前記伝送路およびスロットを選択する送信データスロット割当部と、
受信した前記伝送路とスロットと通信サイクル数に基づいて、受信データのデータ項目を判定する受信データ格納部と、を有し、
１つのデータ項目が通信サイクルに応じて異なる前記伝送路およびスロットにて送受信される通信システム。
【請求項２】
請求項１記載の通信システムにおいて、
前記通信ネットワークの通信プロトコルは時分割多重型であり、
前記送信データスロット割当部は、送信するデータのデータ項目と通信サイクル数に基づいてデータ送信に用いる前記伝送路およびスロットを定めた送信スロット決定テーブルを有し、
前記受信データ格納部は、受信した前記伝送路とスロットと通信サイクル数に基づいて受信データのデータ項目を判定する受信スロット決定テーブルを有する通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時分割多元接続型通信を行う装置、及びこの装置を用いる通信システムに関する。
【背景技術】
【０００２】
自動車分野では、電子制御の発展に伴い、車載ネットワークによる通信の役割が大きくなり、通信量増大に対応する高通信速度，リアルタイム処理のための低ジッタ，安全な車両制御のための高信頼性などが要求されている。これらの要求に応える通信プロトコルとして、ＦｌｅｘＲａｙ（登録商標）が開発されている。
【０００３】
ＦｌｅｘＲａｙでは、複数のノードが１つの伝送路を共有し相互にデータ送受信するために、時分割多元接続方式を採用している。ネットワークの通信周期（例えば５ミリ秒）は「スロット」と呼ばれる複数の時間枠で区切られ、各スロットに割り当てられた１ノードが送信権を持つ。スロットの長さや通信周期での時間的位置といった設定と、送信ノードの割り当ては、設計時に予め決定される。以降では、スロットの設定と送信ノード割り当てを併せて「通信スケジュール」と呼ぶ。
【０００４】
１つのＦｌｅｘＲａｙ通信コントローラには、伝送路としてチャネルＡとチャネルＢの２つ、もしくは片方を接続することができる。チャネルＡとチャネルＢの２つを接続した場合、この２つの伝送路はスロット設定が同じになる。
【０００５】
各スロットには通信サイクルの先頭から０，１，２，・・と「スロット番号」が振られていて、チャネルＡとチャネルＢの同じ番号のスロットには、送信ノードとして同じノードを割り当てても良いし、異なるノードを割り当てても良い。同じノードの場合、１つのデータをチャネルＡとチャネルＢとに冗長化して送信することで、片チャネルで通信障害が発生してもデータ送受信が可能となる。また、チャネルＡとチャネルＢとで異なるデータを送信することで、耐障害性より通信帯域を優先することも可能である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】FlexRay Communications System Protocol Specification Version2.1 Revision A,FlexRay Consortium（２００５年１２月）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、伝送路のチャネルＡとチャネルＢとで同一のデータを冗長化送信する場合と、異なるデータを送信する場合の得失を比較する。冗長化送信の場合には、通信帯域が異なるデータを送信する場合の半分となる。その代り、冗長化送信が片チャネルの通信障害に耐性があるのに対し、異なるデータを送信する場合には、通信障害により送信データが失われる。もし片チャネルが断線した場合には、そのチャネルのデータは断線個所を跨いでの送受信は全くできなくなってしまう。
【０００８】
これに対し、両者の特徴を備える、つまり異なるデータを送信する場合のように通信帯域を有効に活用し、かつ通信障害に強いデータ送受信方法があれば有用と考えられる。制御アプリケーションには、２通信周期に１回のようにデータ受信周期が本来より延びても、制御の質は落ちるが制御を継続できるため、全くデータが来ないよりは良く、通信障害のような異常時には許容できる性質のものが存在すると考えられるので、この性質を利用したデータ送受信方法が考えられる。
【０００９】
本発明の目的は、周期的なデータ送信を複数の伝送路を用いて行う場合であっても、通信帯域を落とさず、且つ通信障害に耐性のあるデータ送受信が可能な通信システムを提供することである。
【課題を解決するための手段】
【００１０】
本発明は、上記目的を解決するために、複数のノードと、その各ノード間においてデータ伝送を行う複数の伝送路を有する通信ネットワークと、を有し、各ノードが複数の伝送路のスロットにて周期的なデータ送信を行う通信システムにおいて、各ノードは、送信するデータのデータ項目と通信サイクル数に基づいて、データ送信に用いる伝送路およびスロットを選択する送信データスロット割当部と、受信した伝送路とスロットと通信サイクル数に基づいて、受信データのデータ項目を判定する受信データ格納部と、を有し、１つのデータ項目が通信サイクルに応じて異なる伝送路およびスロットにて送受信される構成とする。
【発明の効果】
【００１１】
周期的なデータ送信を複数の伝送路を用いて行う場合であっても、通信帯域を落とさず、且つ通信障害に耐性のあるデータ送受信が可能な通信システムを提供できる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る通信システムの一実施形態を示す図である。
【図２】本発明に係る通信システムのデータ送信処理フローを示す図である。
【図３】本発明に係る通信システムのデータ受信処理フローを示す図である。
【図４】本発明に係る通信システムの送受信スロットテーブルの一例を示す図である。
【図５】本発明に係る通信システムのデータ送受信の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、各実施例について図面を用いて説明するが、本発明は、複数のノードと、その各ノード間においてデータ伝送を行う複数の伝送路を有する通信ネットワークと、を有し、各ノードが複数の伝送路のスロットにて周期的なデータ送信を行う通信システムにおいて、各ノードは、送信するデータのデータ項目と通信サイクル数に基づいて、データ送信に用いる伝送路およびスロットを選択する送信データスロット割当部と、受信した伝送路とスロットと通信サイクル数に基づいて、受信データのデータ項目を判定する受信データ格納部と、を有し、１つのデータ項目が通信サイクルに応じて異なる伝送路およびスロットにて送受信される構成とすることで、通信帯域を落とさず、且つ通信障害に耐性のあるデータ送受信が可能な通信システムを提供できるものである。
【実施例１】
【００１４】
図１は、本発明のシステム構成図である。システムは、複数のノード１０（１０−１，１０―２，…，１０−ｎ）からなり、これらのノードはＦｌｅｘＲａｙのネットワーク１００に接続されている。ネットワーク１００は、チャネルＡとチャネルＢの２つの伝送路からなる。ここでノードとは、ネットワークを介して情報通信可能な処理装置であり、ＣＰＵや主メモリを含む各種の電子制御装置、アクチュエータとその制御部、センサ等が含まれる。
【００１５】
各ノード１０−ｘ（ｘはノード番号、ｘ＝１〜ｎ）は、制御アプリケーション１１−ｘ，通信ミドルウェア１２−ｘ，ＦｌｅｘＲａｙ通信コントローラ１３−ｘ，ＦｌｅｘＲａｙバスドライバ１４ａ−ｘと１４ｂ−ｘとからなる。制御アプリケーション１１−ｘは、通信ミドルウェア１２−ｘ，通信コントローラ１３−ｘ，ＦｌｅｘＲａｙドライバ１４ａ−ｘまたは１４ｂ−ｘを通じ、ネットワーク１００を介して送受信することにより、他ノードの制御アプリケーションとデータを授受することが可能である。通信ミドルウェア１２−ｘは、本発明の特徴である、送信データスロット割当部１５−ｘと、受信データ格納部１６−ｘを含んでいる。通信コントローラ１３−ｘは、ＦｌｅｘＲａｙ通信プロトコルをデータリンク層で実装した論理回路である。通信コントローラ１３−ｘは送信バッファ（メモリ）と受信バッファを持ち、各バッファは対応するチャネルおよびスロットが設定され、送信バッファは当該スロットにてデータを送出し、受信バッファは当該スロットにてデータを取り込む。バスドライバ１４ａ−ｘ，１４ｂ−ｘは、通信コントローラ１３−ｘのデジタル信号と、ネットワーク１００のアナログ信号とを相互に変換する通信トランシーバである。バスドライバ１４ａ−ｘはネットワーク１００のチャネルＡに、バスドライバ１４ｂ−ｘはチャネルＢに接続している。
【００１６】
ノード１０−ｘ内にて、制御アプリケーション１１−ｘや通信ミドルウェア１２−ｘは、ＲＯＭ（Read Only Memory）などの記憶装置に格納され、ＣＰＵにより主メモリに読み込まれ実行されることにより機能する。以下では、処理の主体をプログラムとして記載するが、実際にはＣＰＵである。または、当該プログラムにより実現される機能を、ＣＰＵの周辺回路やＡＳＩＣのような専用のハードウェアにより実現してもよい。
【００１７】
図２は、本発明におけるデータ送信処理フローを示している。本フローは、制御アプリケーション１１−ｘから通信ミドルウェア１２−ｘに渡される送信データがある場合に、送信データスロット割当部１５−ｘにより実行される。
【００１８】
送信データスロット割当部１５−ｘは、送信するデータのデータ項目と通信サイクル数に基づいて、データ送信に用いる伝送路（チャネル）およびスロットを選択するものである。
【００１９】
ステップ２１では、送信データの項目を判定する。データ項目ごとにデータＩＤ、ビット数などが設計時に決められていて、制御アプリケーション１１−ｘは通信ミドルウェア１２−ｘに、送信データと共にデータＩＤを渡すことで、送信データスロット割当部１５−ｘは受け取った送信データのデータ項目を把握する。
【００２０】
ステップ２２では、ステップ２１で判定したデータ項目と、送信データスロット割当部１５−ｘの持つ送信スロット決定テーブルとから、データ送信に用いるチャネル（ＡまたはＢ）およびスロット番号を決定する。具体的には、送信スロット決定テーブルから、データＩＤと送信するときの通信サイクル数（ＦｌｅｘＲａｙでは０〜６３）をもとに、チャネルとスロット番号を引く。送信スロット決定テーブルの内容については、図４にて詳説する。
【００２１】
ステップ２３では、ステップ２２にて決定したチャネルと送信スロットに対応する通信コントローラ１３−ｘの送信バッファに、送信データを転送する。通信コントローラ１３−ｘは、対応する送信スロットの時間が到来したら、送信するチャネルがＡのときはバスドライバ１４ａ−ｘを、チャネルＢのときにはバスドライバ１４ｂ−ｘを通じて、送信データをネットワーク１００に自動的に送出する。このことから図２の処理は、通信サイクル毎の、ステップ２３にて決定される送信スロットの前に実行されるのが妥当である。
【００２２】
通信フレーム内でのデータ位置の決め方として、１つにステップ２３にて決定する方法がある。この場合、送信スロット決定テーブルにデータ位置としてデータ先頭からのオフセットビット数も入れておき、そのデータ位置に従って送信データスロット割当部１５−ｘ内のバッファに一時的に格納する。通信フレームが複数のデータ項目を含む場合には、複数のデータ項目についてステップ２１から上記の一時格納までの処理を行うことで、通信フレームに入るデータを結合する。結合データの送信バッファへの転送は、複数のデータが揃ったころを見計らい、制御アプリケーション１１−ｘもしくは通信ミドルウェア１２−ｘからトリガを掛けて実行する。この方法だと、通信フレームに複数のデータ項目がある場合にも、データ項目ごとに本発明による送受信を行うことができるため、送受信方法の自由度が高くなる。
【００２３】
もう１つの決め方として、ステップ２１以前に決定する方法がある。この場合、通信ミドルウェア１２−ｘが１つないし複数のデータ項目を結合し通信フレームに入れるデータの形にしてから、送信データスロット割当部１５−ｘに結合データを渡して図２の処理フローを実行する。どのデータ項目を１つに並べて結合するかを通信ミドルウェア１２−ｘが判断できるように、結合データ項目ごとに結合データＩＤを決めておき、データＩＤに対して結合データＩＤおよび結合データＩＤにおける位置を定めたテーブルを用意する。ステップ２１で判定するもの、およびステップ２２で送信スロット決定テーブルのキーとなるのはデータＩＤではなく結合データＩＤとなる。この方法だと、データ結合までは通信サイクル数によらず同じ処理であるので、処理が簡素になり、送信スロット決定テーブルのデータサイズも小さくなる。
【００２４】
図３は、本発明におけるデータ受信処理フローを示している。本フローは、ネットワーク１００から、制御アプリケーション１１−ｘに渡される受信データがある場合に、受信データ格納部１６−ｘにより実行される。処理のトリガは、通信コントローラ１３−ｘからの受信完了通知や、トリガは制御アプリケーション１１−ｘもしくは通信ミドルウェア１２−ｘの処理要求が挙げられる。
【００２５】
受信データ格納部１６−ｘは、受信した伝送路（チャネル）とスロットと通信サイクル数に基づいて、受信データのデータ項目を判定するものである。
【００２６】
ステップ３１では、通信コントローラ１３−ｘにて正常受信した、言い換えると受信処理にエラーのない受信バッファから、受信データを取得し、受信データ格納部１６−ｘのバッファに一時的に保存する。
【００２７】
ステップ３２では、ステップ３１で転送した受信データに含まれる１つないし複数のデータについてそれぞれ、受信データ格納部１６−ｘの持つ受信スロット決定テーブルを用いてデータ項目を判定する。具体的には、受信スロット決定テーブルより、受信バッファに対応する受信チャネルおよび受信スロットと、受信したときの通信サイクル数から、データＩＤを引く。通信サイクル数は、通信コントローラ１３−ｘから取得できる。受信スロット決定テーブルの内容については、図４にて詳説する。
【００２８】
ステップ３３では、通信ミドルウェア１２−ｘ内に用意されたデータ領域に、データＩＤごとにデータ値を格納する。制御アプリケーションは、通信ミドルウェア１２−ｘにデータＩＤを指定して所望のデータ項目の値を取得する。
【００２９】
受信データ格納部１６−ｘにて規定するのはデータＩＤではなく、結合データＩＤでもよい。この場合、結合データ内に含まれるデータ項目を通信ミドルウェア１２−ｘが判断できるように、データＩＤに対して結合データＩＤおよび結合データＩＤにおける位置を定めたテーブルで、送信側と同じものを用意する。
【００３０】
図４は、ノード１の送信データスロット割当部１５−ｘが持つ送信スロット決定テーブル４１−１、およびノード１の受信データ格納部１６−ｘが持つ受信スロット決定テーブル４２−１の一例を示している。ノード１は、データＩＤが１と１０のデータ項目について、本発明による送信を行う設定となっている。
【００３１】
送信スロット決定テーブル４１−１にて、データＩＤ＝１のデータは、通信サイクル数が偶数のときにチャネルＡのスロット１にて、通信サイクルが奇数のときにはチャネルＢのスロット５にて送信されることが示されている。データＩＤ＝１０のデータはその逆に、通信サイクル数が偶数のときにチャネルＢのスロット５にて、通信サイクルが奇数のときにはチャネルＡのスロット１にて送信されることが示されている。つまり、データＩＤ＝１のデータとデータＩＤ＝１０のデータは、通信サイクルごとに送信スロットが交換される。このため、片方のチャネルが断線等により通信不可となったり、片チャネルに電磁ノイズにより連続的な通信障害が発生した場合にも、他ノードがデータＩＤ＝１，１０のデータのどちらかを全く受信できないということがなく、２通信サイクルに１回は受信できるため、制御アプリケーション１１−ｘが通常の２倍の制御周期にて制御を継続できる。なお、データＩＤ＝１，１０は、ノード１以外のノードでは受信スロット決定テーブルに含まれている。
【００３２】
受信スロット決定テーブル４２−１にて、データＩＤ＝３のデータは、通信サイクル数が偶数のときにはチャネルＡのスロット２にて受信され、通信サイクル数が奇数の場合にはチャネルＢのスロット６にて受信されることが示されている。データＩＤ＝８のデータは、データＩＤ＝３のデータと逆に、通信サイクル数が偶数のときにはチャネルＢのスロット６にて受信され、通信サイクル数が奇数の場合にはチャネルＡのスロット２にて受信されることが示されている。データＩＤ＝５のデータは、通信サイクル数が偶数のときにはチャネルＡのスロット３にて受信され、通信サイクル数が奇数の場合にはチャネルＢのスロット７にて受信されることが示されている。ＩＤ＝１５のデータは、データＩＤ＝５のデータと逆に、通信サイクル数が偶数のときにはチャネルＢのスロット７にて受信され、通信サイクル数が奇数の場合にはチャネルＡのスロット３にて受信されることが示されている。つまり、データＩＤ＝３のデータとデータＩＤ＝８のデータ、またデータＩＤ＝５とデータＩＤ＝１５のデータは、通信サイクルごとに受信スロットが交換される（送信ノードでは送信スロットが交換されている）。データＩＤ＝３，５，８，１５のデータはそれぞれ、ノード１以外のいずれかのノードの送信スロット決定テーブルにて設定がされている。ノード間でスロットを共有している、つまりあるスロット番号では異なる通信サイクルでは異なるノードが送信できる場合には、データＩＤ＝３，８が同じノードから送信されるとは限らない。ノードＩＤ＝５，１５も同様である。
【００３３】
４１−１，４２−１のようなテーブルを設定できるのは、ネットワーク１００の通信プロトコルが時分割多重型のため、設計時に通信スケジュールを決定できるからである。本発明を実現する上で、テーブルを用いてデータ項目に対する送信スロットを決定し、受信スロットから受信データ項目を判定する方法のほかに、データ内にデータＩＤを入れて送受信する、もしくは結合データに結合データＩＤを入れて送受信し、受信側では結合データＩＤから含まれるデータ項目を判定する方法もある。
【００３４】
この方法の場合、ネットワーク１００の通信プロトコルは時分割多重型でなくとも、周期的な送受信が行われるものであればよい。例えばＣＡＮ（Controller Area Network）のようなイベント送信型プロトコルを用い、ノード１０−ｘが自身のタイマにより周期的に送信する通信ネットワークであってもよい。ただし、送信データ内にデータＩＤや結合データＩＤを含むため、データ送受信に利用できる帯域が減少する。これに対しテーブルを用いれば、実質的な通信帯域を減らさずにすむ。一方、受信側が受信データに含まれるデータＩＤや結合データＩＤからデータ項目を判定するため、予め定めた送信スロットの選定ルールに従わなくても送受信できる。送信スロットの選定を容易にするために、送信スロット決定テーブル持っても良い。このため、運用の途中で送信スロット決定テーブルの内容を変更したり、通信異常発生時のみ送信スロット決定テーブルに従って送信するといったことも可能になる。データ受信異常などの通信異常は、通信コントローラ１３−ｘにより検出する。
【００３５】
図５は、本発明に基づく送受信処理の一例を示している。ノード１の送信データスロット割当部１５−ｘは、制御アプリケーション１１−１から受け取ったＩＤ＝１のデータを、通信サイクル２ｍ（ｍは０以上の整数）ではスロット１で送信し（スロット１に対応する通信コントローラ１３−ｘの送信バッファに転送し）、通信サイクル２ｍ＋１ではスロット５で送信している。これに対し、ノード１以外のノードｘでは受信データ格納部１６−ｘが、通信サイクル２ｍではスロット１にて受信したデータ値をＩＤ＝１のデータとしてデータ領域に格納し、通信サイクル２ｍ＋１ではスロット５にて受信したデータ値をＩＤ＝１のデータとして格納している。
【００３６】
本発明が、１つのデータを複数にコピーして複数回送出する冗長化送信と異なる点は、通信サイクル２ｍ＋１ではＩＤ＝１のデータ値が通信サイクル２ｍから更新されうるという点である。これにより、受信ノードでは常に最新データを用いることができる。冗長化送信では、データ値をコピーするため、冗長化されたデータ間では値が同じになる。
【００３７】
以上では、２つのデータの組を２通信サイクルを単位にチャネルＡとチャネルＢとで交互に送信する例を示したが、組となるデータ数が３以上のときや、３通信サイクル以上を単位とする場合でも、同様に実施することができる。このとき単位となる通信サイクル数と、１つのデータ項目が送信に利用する（送信スロット決定テーブルや受信スロット決定テーブルに規定される）スロット数は同じになる。また、ネットワーク１００のプロトコルはＦｌｅｘＲａｙとしたが、時分割多重通信プロトコルによる通信ネットワークであれば他のプロトコルでも本発明の効果を得ることができる。伝送路間の同期が取れていれば、送信スロットの交換を行う伝送路は２より多くてもよい。
【符号の説明】
【００３８】
１０−１，１０−２，１０−ｎ  ノード
１１−１  制御アプリケーション
１２−１  通信ミドルウェア
１３−１  ＦｌｅｘＲａｙ通信コントローラ
１４ａ−１，１４ｂ−１  ＦｌｅｘＲａｙバスドライバ
１５−１  送信データスロット割当部
１６−１  受信データ格納部
４１−１  送信スロット決定テーブル
４２−１  受信スロット決定テーブル
１００  ネットワーク
【図１】
2011139187.tif 000003
【図２】
2011139187.tif 000004
【図３】
2011139187.tif 000005
【図４】
2011139187.tif 000006
【図５】
2011139187.tif 000007