(57)【要約】【課題】  通信プロトコルの異なる通信路を介してメッセージを転送するとともに、メッセージの変換処理の負担を軽減し、効率よくメッセージを転送する通信メッセージ変換装置を提供すること。【解決手段】  本発明にかかる通信メッセージ変換装置は、ＣＡＮアプリケーションデバイス２からＣＡＮ伝送路４を介してＣＡＮメッセージを受信する手段と、ＣＡＮのメッセージをバッファ領域のいずれかに格納する手段と、メッセージＩＤをメッセージインデックスに変換する手段と、ＣＡＮメッセージとメッセージインデックスに基づいてＦｌｅｘＲａｙメッセージを生成する手段と、ＦｌｅｘＲａｙメッセージをＦｌｅｘＲａｙ伝送路５へ送信する手段と、を備えるものである。【選択図】  図３
2005328119.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信プロトコルに従って第１のメッセージを通信する第１の通信路と、第２の通信プロトコルに従って第２のメッセージを通信する第２の通信路と、に接続され、第１の通信プロトコルに従って動作する第１のデバイスを前記第２の通信プロトコルによって通信動作させるための通信メッセージ変換装置であって、
前記第１のメッセージを、当該第１のメッセージに含まれる第１の識別子に応じて、複数のバッファ領域のいずれかに格納するメッセージバッファと、
前記バッファ領域毎に設けられ、前記第１の識別子と第２の識別子とを関連付ける識別子変換テーブルと、
前記第１のデバイスから前記第１の通信路を介して第１のメッセージを受信する手段と、
前記受信された第１のメッセージを、当該第１のメッセージに含まれる第１の識別子に基づいて、前記バッファ領域のいずれかに格納する手段と、
前記バッファ領域に格納された第１のメッセージに含まれる第１の識別子を、前記識別子変換テーブルに基づいて、第２の識別子に変換する手段と、
前記バッファ領域に格納された第１のメッセージと、前記変換された第２の識別子に基づいて前記第２のメッセージを生成する手段と、
前記生成された第２のメッセージを第２の通信路へ送信する手段と、
を備える通信メッセージ変換装置。
【請求項２】
前記識別子変換テーブルは、当該バッファ領域に格納される第１のメッセージに含まれる第１の識別子から構成され、
前記第２の識別子に変換する手段は、当該第１のメッセージが格納されたバッファ領域に対応する前記識別子変換テーブルから、当該第１のメッセージに含まれる第１の識別子を検索し、当該第１の識別子を、当該第１の識別子に関連付けられた第２の識別子に変換する、
請求項１に記載の通信メッセージ変換装置。
【請求項３】
前記第２のメッセージと前記第１の識別子とを関連付けるメッセージ変換テーブルをさらに備え、
前記第２のメッセージを生成する手段は、前記メッセージ変換テーブルによって、当該第２のメッセージに関連付けられた第１の識別子を含む第１のメッセージに基づいて当該第２のメッセージを生成する、
請求項１又は２に記載の通信メッセージ変換装置。
【請求項４】
前記第２のメッセージを生成する手段は、当該第１のメッセージに含まれるペイロードと当該第２の識別子から当該第２のメッセージを生成する、
請求項１乃至３のいずれかに記載の通信メッセージ変換装置。
【請求項５】
第１の通信プロトコルに従って第１のメッセージを通信する第１の通信路と、第２の通信プロトコルに従って第２のメッセージを通信する第２の通信路と、に接続され、第１の通信プロトコルに従って動作する第１のデバイスを前記第２の通信プロトコルによって通信動作させるための通信メッセージ変換装置であって、
前記第１のメッセージに含まれる第１の識別子と第２の識別子とを関連付ける識別子変換テーブルと、
前記第１のメッセージに含まれるペイロードと前記第２の識別子から構成される前記第２のメッセージを、前記第２の通信路を介して受信する手段と、
前記受信された第２のメッセージに含まれる前記ペイロードと前記第２の識別子を取得する手段と、
前記取得された第２のメッセージに含まれる第２の識別子を、前記識別子変換テーブルに基づいて、第１の識別子に変換する手段と、
前記取得されたペイロードと、前記変換された第１の識別子に基づいて第１のメッセージを生成する手段と、
前記生成された第１のメッセージを、前記第１の通信路を介して前記第１のデバイスへ送信する手段と、
を備える通信メッセージ変換装置。
【請求項６】
前記識別子変換テーブルには、前記第２の識別子の順番に前記第１の識別子が格納され、
前記第１の識別子に変換する手段は、当該第２の識別子によって前記識別子変換テーブルを直接参照し、当該第２の識別子を、当該第２の識別子に関連付けられた第１の識別子に変換する、
請求項５に記載の通信メッセージ変換装置。
【請求項７】
前記第１のメッセージを複数のバッファ領域のいずれかに格納するメッセージバッファと、
前記第２の識別子と前記バッファ領域とを関連付けるメッセージ変換テーブルと、
前記メッセージ変換テーブルによって、前記取得された第２の識別子に関連付けられた前記バッファ領域を決定する手段と、
前記生成された第１のメッセージを前記決定されたバッファ領域に格納する手段と、をさらに備え、
前記送信手段は、前記バッファ領域に格納された第１のメッセージを送信する、
請求項５又は６に記載の通信メッセージ変換装置。
【請求項８】
前記第２の識別子の領域は、前記第１の識別子の領域よりも小さい、
請求項１乃至７のいずれかに記載の通信メッセージ変換装置。
【請求項９】
前記第１の通信路を介して前記第１のデバイスと１対１で通信する、
請求項１乃至８に記載の通信メッセージ変換装置。
【請求項１０】
前記第１の通信プロトコルは、イベントドリブン型のプロトコルであり、前記第２の通信プロトコルは、タイムトリガ型の通信プロトコルである、
請求項１乃至９のいずれかに記載の通信メッセージ変換装置。
【請求項１１】
前記第１の通信プロトコルは、ＣＡＮであり、前記第２の通信プロトコルは、ＦｌｅｘＲａｙである、
請求項１０に記載の通信メッセージ変換装置。
【請求項１２】
第１の通信プロトコルに従って第１のメッセージを通信する第１の通信路と、第２の通信プロトコルに従って第２のメッセージを通信する第２の通信路と、に接続され、第１の通信プロトコルに従って動作する第１のデバイスを前記第２の通信プロトコルによって通信動作させるための通信方法であって、
前記第１のメッセージを、当該第１のメッセージに含まれる第１の識別子に応じて、複数のバッファ領域のいずれかに格納するメッセージバッファを取得するステップと、
前記バッファ領域毎に設けられ、前記第１の識別子と第２の識別子とを関連付ける識別子変換テーブルを取得するステップと、
前記第１のデバイスから前記第１の通信路を介して第１のメッセージを受信するステップと、
前記受信された第１のメッセージを、当該第１のメッセージに含まれる第１の識別子に基づいて、前記バッファ領域のいずれかに格納するステップと、
前記バッファ領域に格納された第１のメッセージに含まれる第１の識別子を、前記識別子変換テーブルに基づいて、第２の識別子に変換するステップと、
前記バッファ領域に格納された第１のメッセージと、前記変換された第２の識別子に基づいて前記第２のメッセージを生成するステップと、
前記生成された第２のメッセージを第２の通信路へ送信するステップと、
を備える通信方法。
【請求項１３】
第１の通信プロトコルに従って第１のメッセージを通信する第１の通信路と、第２の通信プロトコルに従って第２のメッセージを通信する第２の通信路と、に接続され、第１の通信プロトコルに従って動作する第１のデバイスを前記第２の通信プロトコルによって通信動作させるための通信方法であって、
前記第１のメッセージに含まれる第１の識別子と第２の識別子とを関連付ける識別子変換テーブルを取得するステップと、
前記第１のメッセージに含まれるペイロードと前記第２の識別子から構成される前記第２のメッセージを、前記第２の通信路を介して受信するステップと、
前記受信された第２のメッセージに含まれる前記ペイロードと前記第２の識別子を取得するステップと、
前記取得された第２の識別子を、前記識別子変換テーブルに基づいて、第１の識別子に変換するステップと、
前記取得されたペイロードと、前記変換された第１の識別子に基づいて第１のメッセージを生成するステップと、
前記生成された第１のメッセージを、前記第１の通信路を介して前記第１のデバイスへ送信するステップと、
を備える通信方法。
【請求項１４】
ＣＡＮプロトコルに従ってＣＡＮメッセージを通信するＣＡＮ通信路と、ＦｌｅｘＲａｙプロトコルに従ってＦｌｅｘＲａｙメッセージを通信するＦｌｅｘＲａｙ通信路と、に接続され、ＣＡＮプロトコルに従って動作する第１及び第２のＣＡＮアプリケーションデバイスをＦｌｅｘＲａｙプロトコルによってそれぞれ通信動作させるための第１及び第２の通信メッセージ変換装置を備える通信システムであって、
前記第１の通信メッセージ変換装置は、
ＣＡＮメッセージを、当該ＣＡＮメッセージに含まれる第１の識別子に応じて、複数のバッファ領域のいずれかに格納するメッセージバッファと、
前記バッファ領域毎に設けられ、前記第１の識別子と第２の識別子とを関連付ける第１の識別子変換テーブルと、
前記第１のＣＡＮアプリケーションデバイスから第１のＣＡＮ通信路を介してＣＡＮメッセージを受信する手段と、
前記受信されたＣＡＮメッセージを、当該ＣＡＮメッセージに含まれる第１の識別子に基づいて、前記バッファ領域のいずれかに格納する手段と、
前記バッファ領域に格納されたＣＡＮメッセージに含まれる第１の識別子を、前記第１の識別子変換テーブルに基づいて、第２の識別子に変換する手段と、
前記バッファ領域に格納されたＣＡＮメッセージに含まれるペイロードと、前記変換された第２の識別子に基づいてＦｌｅｘＲａｙメッセージを生成する手段と、
前記生成されたＦｌｘＲａｙメッセージをＦｌｅｘＲａｙ通信路へ送信する手段と、を備え、
前記第２の通信メッセージ変換装置は、
ＣＡＮメッセージに含まれる第１の識別子と第２の識別子とを関連付ける第２の識別子変換テーブルと、
前記第１の通信メッセージ変換装置によって送信されたＦｌｅｘＲａｙメッセージを、前記ＦｌｅｘＲａｙ通信路を介して受信する手段と、
前記受信されたＦｌｅｘＲａｙメッセージに含まれる前記ペイロードと前記第２の識別子を取得する手段と、
前記取得されたＦｌｅｘＲａｙメッセージに含まれる第２の識別子を、前記第２の識別子変換テーブルに基づいて、第１の識別子に変換する手段と、
前記取得されたペイロードと、前記変換された第１の識別子に基づいてＣＡＮメッセージを生成する手段と、
前記生成されたＣＡＮメッセージを、第２のＣＡＮ通信路を介して前記第２のＣＡＮアプリケーションデバイスへ送信する手段と、を備える、
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信メッセージ変換装置、通信方法及び通信システムに関し、特に、異なる通信プロトコルの通信路に接続される通信メッセージ変換装置、通信方法及び通信システムに関する。
【背景技術】
【０００２】
近年、車両に搭載される電子機器の数が増大しており、これらの電子機器を接続するワイヤーハーネスの数の増加を防止すべく、車内ＬＡＮが広く利用されている。
【０００３】
例えば、車内ＬＡＮでは、エンジン制御装置や、トランスミッション制御装置、ＡＢＳ、ダッシュボードのメータ類、ライト、パワーウィンドウ等に設けられたＥＣＵ（Electric Control Unit）等のアプリケーションノードが接続され、各種制御が行われている。
【０００４】
図１１は、車内ＬＡＮで用いられる従来のアプリケーションノードを示している。このアプリケーションノード１００は、車内ＬＡＮ等のＬＡＮ伝送路１３０と接続され、ＬＡＮ伝送路１３０を介して他のアプリケーションノード１００と通信を行う。また、アプリケーションノード１００は、図に示されるように、制御部１１０、通信制御部１２０を備えており、さらに、制御部１１０は、アプリケーション処理部１１１とメッセージハンドリング部１１２を備えている。
【０００５】
通信制御部１２０は、通信コントローラ等であり、通信プロトコルに従い、ＬＡＮ伝送路１３０を介した通信を可能とする。例えば、通信制御部１２０は、ＬＡＮ伝送路１３０からフレームを受信してメッセージを解析し、通信制御部１２０のレジスタに受信メッセージを格納する。
【０００６】
制御部１１０は、例えば、ＣＰＵが所定のプログラムに従い処理を実行し、他のハードウェアと協働することによって構成されている。
【０００７】
メッセージハンドリング部１１２は、送受信タスク等により処理が行なわれ、通信制御部１２０とアプリケーション処理部１１１間のメッセージを中継する。例えば、メッセージハンドリング部１１２は、通信制御部１２０のレジスタから受信メッセージを読み出し、制御部１１０のメッセージバッファに格納する。
【０００８】
アプリケーション処理部１１１は、アプリケーションタスク等により処理が行なわれ、アプリケーションノード１００の各種アプリケーションや、他のアプリケーションノード１００への送信メッセージの生成、他のアプリケーションノード１００からの受信メッセージに応じた処理を行う。例えば、アプリケーション処理部１１１は、制御部１１０のメッセージバッファを介して受信メッセージを取得する。
【０００９】
また、送受信タスクやアプリケーションタスクは、ＯＳ（不図示）によりスケジューリングされ、各タスクがディスパッチされ、実行させることもできる。
【００１０】
一方、車内ＬＡＮの一つにＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が知られている。ＣＡＮの通信方式は、ＣＳＭＡ／ＣＡ方式であり、伝送路が空いているときは、全てのアプリケーションノードが、メッセージを送信することができ、他のアプリケーションノードのメッセージが伝送路に流れている間は、メッセージを送信することができない。すなわち、ＣＡＮは、事象の発生に合わせて通信要求を発し、送信権を獲得できた場合だけ送信可能なイベントドリブン型である。
【００１１】
図１２は、図１１のアプリケーションノード１００をＣＡＮに適用した場合の時間的な動作を説明するための図である。図１２（ａ）に示されるように、ＣＡＮ伝送路には、所定の周期ではなく不定期にフレームが流れている。ＣＡＮのフレームには、フレームの開始を示すＳＯＦ（Ｓｔａｒｔ  Ｏｆ  Ｆｒａｍｅ）やフレームの終了を示すＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ）が含まれている。通信制御部１２０は、ＳＯＦを検出することによりフレームを検出して同期をとり当該フレームを受信する。
【００１２】
図１２（ｂ）に示されるように、通信制御部１２０がフレームを受信した時、フレーム受信したことを送受信タスクへ割り込み等により通知し、送受信タスクは、当該割り込みを契機に実行される。そして、送受信タスクは、受信メッセージを読み出し、メッセージバッファに格納する。
【００１３】
図１２（ｃ）に示されるように、受信メッセージがメッセージバッファに格納されたことを契機に、アプリケーションタスクが実行され、所定の処理が行なわれる。このように、ＣＡＮの通信方式に合わせて、送受信タスクやアプリケーションタスクのスケジューリング方式もイベントドリブン型となっており、ＣＡＮに不定期に流れるフレームに応じた処理が実行される。
【００１４】
他方、ＣＡＮよりも信頼性の高い通信プロトコルとして、ＦｌｅｘＲａｙが注目されている（例えば、非特許文献１参照）。ＦｌｅｘＲａｙは、通信方式として、通信の遅延変動がほとんど生じないタイムトリガ型を採用することにより、信頼性の向上を図っている。また、ＦｌｅｘＲａｙの伝送速度は、最大１０Ｍｂｐｓであり、ＣＡＮの１Ｍｂｐｓに比べて、高速な通信を可能としている。
【００１５】
図１３は、図１１のアプリケーションノード１００をＦｌｅｘＲａｙに適用した場合の時間的な動作を説明するための図である。図１３（ａ）に示されるように、ＦｌｅｘＲａｙ伝送路では、所定の時間で区切られたタイムスロットによってフレームの送受信が行われる。例えば、アプリケーションノードが送信に用いるタイムスロットをあらかじめ決めておくことにより、通信の遅延変動を防止し、帯域幅を保証している。
【００１６】
通信制御部１２０は、ネットワーク上のグローバルタイムに同期したタイマによりタイムスロットを検出し所定のタイムスロットからフレームを受信する。
【００１７】
図１３（ｂ）に示されるように、送受信タスクは、通信制御部１２０と同様のタイマにより実行時間が管理されており、所定の時間を契機に実行される。送受信タスクは、タスクが実行されたときに、通信制御部１２０に受信メッセージが到着していれば、当該受信メッセージを読み出し、メッセージバッファに格納する。図１３（ｃ）に示されるように、アプリケーションタスクは、送受信タスクと同様に、所定の時間を契機に実行され、メッセージバッファから受信メッセージを取得し、所定の処理が行なわれる。
【００１８】
このように、ＦｌｅｘＲａｙの通信方式に合わせて、送受信タスクやアプリケーションタスクのスケジューリング方式も基本的にタイムトリガ型となっており、ＦｌｅｘＲａｙに定期的に流れるフレームに応じた処理が実行されることが多い。
【００１９】
上記のように、従来の車両の制御システムを構成する制御ユニット（アプリケーションノード）ではイベントに同期してユニット間の通信を衝突調停の基盤の下に行う方式（例えば、ＣＡＮ）がほとんどを占めていた。この場合、制御ユニットの制御操作に高い優先順位を与えることで信頼性と効率を両立させたシステムを構築していた。その一方で、ユニット間で通信される情報の量は制御システムに対する高性能化、高機能化の要請を受けて上昇を続けてきた。また、通信路を介して交換される情報が当初の補助的なものから、制御の動作ひいては車両の安全性にとって大きな影響力のあるものに及ぶいわば質的な変化も進行し今後さらにその傾向は強くなろうとしてきている。
【００２０】
尚、従来のＣＡＮ通信システムとして特許文献１が知られている。
【非特許文献１】アンドレス・ボス（Ａｎｄｒｅａｓ  Ｂｏｔｈ）、佐藤  道夫著、「これが速くて高信頼の車内ＬＡＮ「ＦｌｅｘＲａｙ」」、「日経エレクトロニクス」、日経ＢＰ社、２００４年２月２日、２００４年２月２日号、ｐ．１１５−１２２
【特許文献１】特開２００３−２６４５６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
分散型リアルタイム制御システムの信頼性向上とネットワークのバンド幅確保ならびに遅延量の確定という問題を解決する目的でタイムトリガ型の通信プロトコル（例えばＦｌｅｘＲａｙ）を導入しようとする場合に、イベントドリブン型の通信プロトコル（例えばＣＡＮ）用に設計されてきた既存の制御ソフトウェアとその開発技術資産を継承できなくなるという困難が発生する。
【００２２】
その場合、従来のイベントドリブンのタスク制御システムからタイムドリブンのタスク制御システムに移行するためには設計の大幅な変更と広範な再検証工程が必要となり時間とコストが必要となる。
【００２３】
特に車輌の動力／運動制御システムのように高い信頼性が求められるシステムでは過去に築き上げてきたソフトウ資産の継承が大多数の制御ノードにわたって不可能になることの影響は甚大であるため新たな通信技術の導入を阻止する要因となっていた。
【００２４】
上記の機能を実現するための従来技術を本技術分野に適用する場合の欠点としては、メッセージフレーム管理情報のデータサイズに比してペイロードのデータサイズが小さいことが多くそのため従来技術を適用した場合、ペイロードに着目した伝送効率が低くなり、ペイロードの伝送レートが低下する。また管理情報（メッセージヘッダ）の変換を併用する場合に当該分野で利用可能な通信用のプロセッサに比べて高い処理能力が必要になるか、非常に大きなメモリを用意する必要があり実用上の困難がある。
【００２５】
本発明は、このような問題点を解決するためになされたもので、本発明の目的は、通信プロトコルの異なる通信路を介してメッセージを転送するとともに、メッセージの変換処理の負担を軽減し、効率よくメッセージを転送することである。
【課題を解決するための手段】
【００２６】
本発明にかかる通信メッセージ変換装置は、第１の通信プロトコルに従って第１のメッセージを通信する第１の通信路と、第２の通信プロトコルに従って第２のメッセージを通信する第２の通信路と、に接続され、第１の通信プロトコルに従って動作する第１のデバイスを前記第２の通信プロトコルによって通信動作させるための通信メッセージ変換装置であって、前記第１のメッセージを、当該第１のメッセージに含まれる第１の識別子に応じて、複数のバッファ領域のいずれかに格納するメッセージバッファと、前記バッファ領域毎に設けられ、前記第１の識別子と第２の識別子とを関連付ける識別子変換テーブルと、前記第１のデバイスから前記第１の通信路を介して第１のメッセージを受信する手段と、前記受信された第１のメッセージを、当該第１のメッセージに含まれる第１の識別子に基づいて、前記バッファ領域のいずれかに格納する手段と、前記バッファ領域に格納された第１のメッセージに含まれる第１の識別子を、前記識別子変換テーブルに基づいて、第２の識別子に変換する手段と、前記バッファ領域に格納された第１のメッセージと、前記変換された第２の識別子に基づいて前記第２のメッセージを生成する手段と、前記生成された第２のメッセージを第２の通信路へ送信する手段と、を備えるものである。これにより、識別子の部分空間に対応したバッファ領域に基づいて、第１の識別子を第２の識別子に変換できるため、変換処理の負荷を軽減し、効率よくメッセージを転送することが可能である。
【００２７】
上述の通信メッセージ変換装置において、前記識別子変換テーブルは、当該バッファ領域に格納される第１のメッセージに含まれる第１の識別子から構成され、前記第２の識別子に変換する手段は、当該第１のメッセージが格納されたバッファ領域に対応する前記識別子変換テーブルから、当該第１のメッセージに含まれる第１の識別子を検索し、当該第１の識別子を、当該第１の識別子に関連付けられた第２の識別子に変換してもよい。これにより、１つのバッファ領域についての検索処理で第１の識別子を第２の識別子に変換できるため、さらに変換処理の負荷を軽減することが可能である。
【００２８】
上述の通信メッセージ変換装置において、前記第２のメッセージと前記第１の識別子とを関連付けるメッセージ変換テーブルをさらに備え、前記第２のメッセージを生成する手段は、前記メッセージ変換テーブルによって、当該第２のメッセージに関連付けられた第１の識別子を含む第１のメッセージに基づいて当該第２のメッセージを生成してもよい。これにより、第１のメッセージから第２のメッセージを容易に生成することができる。
【００２９】
上述の通信メッセージ変換装置において、前記第２のメッセージを生成する手段は、当該第１のメッセージに含まれるペイロードと当該第２の識別子から当該第２のメッセージを生成してもよい。これにより、第２の識別子によって第２のメッセージのサイズを変更することができ、第２の通信路における通信効率の向上が可能である。
【００３０】
本発明にかかる通信メッセージ変換装置は、第１の通信プロトコルに従って第１のメッセージを通信する第１の通信路と、第２の通信プロトコルに従って第２のメッセージを通信する第２の通信路と、に接続され、第１の通信プロトコルに従って動作する第１のデバイスを前記第２の通信プロトコルによって通信動作させるための通信メッセージ変換装置であって、前記第１のメッセージに含まれる第１の識別子と第２の識別子とを関連付ける識別子変換テーブルと、前記第１のメッセージに含まれるペイロードと前記第２の識別子から構成される前記第２のメッセージを、前記第２の通信路を介して受信する手段と、前記受信された第２のメッセージに含まれる前記ペイロードと前記第２の識別子を取得する手段と、前記取得された第２のメッセージに含まれる第２の識別子を、前記識別子変換テーブルに基づいて、第１の識別子に変換する手段と、前記取得されたペイロードと、前記変換された第１の識別子に基づいて第１のメッセージを生成する手段と、前記生成された第１のメッセージを、前記第１の通信路を介して前記第１のデバイスへ送信する手段と、を備えるものである。これにより、第２の識別子を第１の識別子に容易に変換することができ、効率よくメッセージを転送することができる。
【００３１】
上述の通信メッセージ変換装置において、前記識別子変換テーブルには、前記第２の識別子の順番に前記第１の識別子が格納され、前記第１の識別子に変換する手段は、当該第２の識別子によって前記識別子変換テーブルを直接参照し、当該第２の識別子を、当該第２の識別子に関連付けられた第１の識別子に変換してもよい。これにより、検索処理が不要となり、変換処理の負荷を軽減することができる。
【００３２】
上述の通信メッセージ変換装置において、前記第１のメッセージを複数のバッファ領域のいずれかに格納するメッセージバッファと、前記第２の識別子と前記バッファ領域とを関連付けるメッセージ変換テーブルと、前記メッセージ変換テーブルによって、前記取得された第２の識別子に関連付けられた前記バッファ領域を決定する手段と、前記生成された第１のメッセージを前記決定されたバッファ領域に格納する手段と、をさらに備え、前記送信手段は、前記バッファ領域に格納された第１のメッセージを送信してもよい。これにより、第２のメッセージをフィルタリングすることができるとともに、第１のメッセージを効率的に送信することができる。
【００３３】
上述の通信メッセージ変換装置において、前記第２の識別子の領域は、前記第１の識別子の領域よりも小さくてもよい。これにより、第２のメッセージのサイズを小さくすることができ、第２の通信路における通信効率をさらに向上することが可能である。
【００３４】
上述の通信メッセージ変換装置において、前記第１の通信路を介して前記第１のデバイスと１対１で通信してもよい。これにより、第１の通信路における帯域幅を占有することができ、通信の信頼性の向上（低遅延化）が可能である。
【００３５】
上述の通信メッセージ変換装置において、前記第１の通信プロトコルは、イベントドリブン型のプロトコルであり、前記第２の通信プロトコルは、タイムトリガ型の通信プロトコルであってもよい。これにより、通信方式やプログラムのタスクスケジューリングが異なる場合であっても、効率よくメッセージを転送することができる。
【００３６】
上述の通信メッセージ変換装置において、前記第１の通信プロトコルは、ＣＡＮであり、前記第２の通信プロトコルは、ＦｌｅｘＲａｙであってもよい。これにより、ＣＡＮアプリケーションデバイスのメッセージを、ＦｌｅｘＲａｙメッセージによって、効率よく転送することができる。
【００３７】
本発明にかかる通信方法は、第１の通信プロトコルに従って第１のメッセージを通信する第１の通信路と、第２の通信プロトコルに従って第２のメッセージを通信する第２の通信路と、に接続され、第１の通信プロトコルに従って動作する第１のデバイスを前記第２の通信プロトコルによって通信動作させるための通信方法であって、前記第１のメッセージを、当該第１のメッセージに含まれる第１の識別子に応じて、複数のバッファ領域のいずれかに格納するメッセージバッファを取得するステップと、  前記バッファ領域毎に設けられ、前記第１の識別子と第２の識別子とを関連付ける識別子変換テーブルを取得するステップと、前記第１のデバイスから前記第１の通信路を介して第１のメッセージを受信するステップと、前記受信された第１のメッセージを、当該第１のメッセージに含まれる第１の識別子に基づいて、前記バッファ領域のいずれかに格納するステップと、前記バッファ領域に格納された第１のメッセージに含まれる第１の識別子を、前記識別子変換テーブルに基づいて、第２の識別子に変換するステップと、前記バッファ領域に格納された第１のメッセージと、前記変換された第２の識別子に基づいて前記第２のメッセージを生成するステップと、前記生成された第２のメッセージを第２の通信路へ送信するステップと、を備えるものである。これにより、メッセージを効率よく転送することができる。
【００３８】
本発明にかかる通信方法は、第１の通信プロトコルに従って第１のメッセージを通信する第１の通信路と、第２の通信プロトコルに従って第２のメッセージを通信する第２の通信路と、に接続され、第１の通信プロトコルに従って動作する第１のデバイスを前記第２の通信プロトコルによって通信動作させるための通信方法であって、前記第１のメッセージに含まれる第１の識別子と第２の識別子とを関連付ける識別子変換テーブルを取得するステップと、前記第１のメッセージに含まれるペイロードと前記第２の識別子から構成される前記第２のメッセージを、前記第２の通信路を介して受信するステップと、前記受信された第２のメッセージに含まれる前記ペイロードと前記第２の識別子を取得するステップと、前記取得された第２の識別子を、前記識別子変換テーブルに基づいて、第１の識別子に変換するステップと、前記取得されたペイロードと、前記変換された第１の識別子に基づいて第１のメッセージを生成するステップと、前記生成された第１のメッセージを、前記第１の通信路を介して前記第１のデバイスへ送信するステップと、を備えるものである。これにより、メッセージを効率よく転送することができる。
【００３９】
本発明にかかる通信システムは、ＣＡＮプロトコルに従ってＣＡＮメッセージを通信するＣＡＮ通信路と、ＦｌｅｘＲａｙプロトコルに従ってＦｌｅｘＲａｙメッセージを通信するＦｌｅｘＲａｙ通信路と、に接続され、ＣＡＮプロトコルに従って動作する第１及び第２のＣＡＮアプリケーションデバイスをＦｌｅｘＲａｙプロトコルによってそれぞれ通信動作させるための第１及び第２の通信メッセージ変換装置を備える通信システムであって、前記第１の通信メッセージ変換装置は、ＣＡＮメッセージを、当該ＣＡＮメッセージに含まれる第１の識別子に応じて、複数のバッファ領域のいずれかに格納するメッセージバッファと、前記バッファ領域毎に設けられ、前記第１の識別子と第２の識別子とを関連付ける第１の識別子変換テーブルと、前記第１のＣＡＮアプリケーションデバイスから第１のＣＡＮ通信路を介してＣＡＮメッセージを受信する手段と、前記受信されたＣＡＮメッセージを、当該ＣＡＮメッセージに含まれる第１の識別子に基づいて、前記バッファ領域のいずれかに格納する手段と、前記バッファ領域に格納されたＣＡＮメッセージに含まれる第１の識別子を、前記第１の識別子変換テーブルに基づいて、第２の識別子に変換する手段と、前記バッファ領域に格納されたＣＡＮメッセージに含まれるペイロードと、前記変換された第２の識別子に基づいてＦｌｅｘＲａｙメッセージを生成する手段と、前記生成されたＦｌｘＲａｙメッセージをＦｌｅｘＲａｙ通信路へ送信する手段と、を備え、前記第２の通信メッセージ変換装置は、ＣＡＮメッセージに含まれる第１の識別子と第２の識別子とを関連付ける第２の識別子変換テーブルと、前記第１の通信メッセージ変換装置によって送信されたＦｌｅｘＲａｙメッセージを、前記ＦｌｅｘＲａｙ通信路を介して受信する手段と、前記受信されたＦｌｅｘＲａｙメッセージに含まれる前記ペイロードと前記第２の識別子を取得する手段と、前記取得されたＦｌｅｘＲａｙメッセージに含まれる第２の識別子を、前記第２の識別子変換テーブルに基づいて、第１の識別子に変換する手段と、前記取得されたペイロードと、前記変換された第１の識別子に基づいてＣＡＮメッセージを生成する手段と、前記生成されたＣＡＮメッセージを、第２のＣＡＮ通信路を介して前記第２のＣＡＮアプリケーションデバイスへ送信する手段と、を備えるものである。これにより、メッセージを効率よく転送することができる。
【発明の効果】
【００４０】
本発明によれば、通信プロトコルの異なる通信路を介してメッセージを転送するとともに、メッセージの変換処理の負担を軽減し、効率よくメッセージを転送する通信メッセージ変換装置を提供すること。
【発明を実施するための最良の形態】
【００４１】
まず、図１を用いて、本発明の実施の形態にかかる通信システムの構成例について説明する。この通信システムは、図に示されるように、２つのアプリケーションノード１を備えており、２つのアプリケーションノード１はＦｌｅｘＲａｙ伝送路５を介して通信可能に接続されている。尚、この例では、２つのアプリケーションノード１を設けているが、これに限らず、任意の数のアプリケーションノード１を設けてもよい。
【００４２】
この通信システムは、例えば、自動車等に設けられた車内ＬＡＮであり、アプリケーションノード１の間の通信を行うための通信プロトコルとして、タイムトリガ型プロトコルの一例であるＦｌｅｘＲａｙが用いられる。ＦｌｅｘＲａｙ伝送路５は、ＦｌｅｘＲａｙプロトコルに従った通信を行うための伝送路であり、広帯域で高信頼性の通信が可能である。また、ＦｌｅｘＲａｙ伝送路５によって、バス型やスター型のネットワークを構築することができる。
【００４３】
また、この例では、２つのＦｌｅｘＲａｙ伝送路５を介してアプリケーションノード１を接続し、ネットワークを２重化している。ネットワークを２重化することにより、一方のＦｌｅｘＲａｙ伝送路５に障害が発生しても、他方のＦｌｅｘＲａｙ伝送路５により通信することができるため、信頼性をより向上することができる。また、独立したフレームを、２つのＦｌｅｘＲａｙ伝送路５によって通信した場合には伝送帯域を倍増できる。さらに、２つのＦｌｅｘＲａｙ伝送路５を異なる用途で利用することも可能である。例えば、一方のＦｌｅｘＲａｙ伝送路５を、ＣＡＮフレームをマッピングしたＦｌｅｘＲａｙフレームの通信用とし、他方のＦｌｅｘＲａｙ伝送路５を、ＣＡＮフレームをマッピングしない通常のＦｌｅｘＲａｙフレームの通信用としてもよい。尚、ＦｌｅｘＲａｙ伝送路５は２つに限らず、１つでもよいし、その他の任意の数のＦｌｅｘＲａｙ伝送路５を設けてもよい。
【００４４】
アプリケーションノード１は、例えば、ＥＣＵであり、エンジンや、トランスミッション、ＡＢＳ、ダッシュボードのメータ類、ステアリング等の制御装置（制御ユニット）である。アプリケーションノード１は、１つの装置であってもよいし、複数の装置から構成されていてもよい。アプリケーションノード１は、図に示されるように、ＣＡＮアプリケーションデバイス２及び通信メッセージ変換装置３を備えており、ＣＡＮアプリケーションデバイス２と通信メッセージ変換装置３は、ＣＡＮ伝送路４を介して通信可能に接続されている。その他、アプリケーションノード１は、制御装置としての用途に応じて、各種センサーやコントローラ、ドライバ等を備えている。
【００４５】
ＣＡＮアプリケーションデバイス２と通信メッセージ変換装置３は、例えば、それぞれ別のパッケージの半導体装置により構成されている。ＣＡＮアプリケーションデバイス２と通信メッセージ変換装置３を接続するＣＡＮ伝送路４は、イベントドリブン型プロトコルの一例であるＣＡＮプロトコルに従った通信を行うための伝送路であり、例えば、ＣＡＮバスである。
【００４６】
ＣＡＮアプリケーションデバイス２は、アプリケーションノード１の各種制御処理を実行し、さらに、ＣＡＮによる通信が可能な装置である。ＣＡＮアプリケーションデバイス２は、通信メッセージ変換装置３を介さずに単体でＣＡＮによる通信が可能であり、ＣＡＮ伝送路４を介して他のＣＡＮアプリケーションデバイス２と通信することができる。すなわち、ＣＡＮアプリケーションデバイス２は、ＣＡＮ等の既存のネットワークにおいて、アプリケーションノードとして利用可能である。尚、ＣＡＮアプリケーションデバイスと通信メッセージ変換装置３の間にＣＡＮ伝送路４を複数設けて、一方の伝送路を通信メッセージ変換装置３を介してＦｌｅｘＲａｙによる広帯域な通信用とし、他方の伝送路をＣＡＮによる狭帯域な通信としてもよい。
【００４７】
通信メッセージ変換装置３は、ＦｌｅｘＲａｙ及びＣＡＮによる通信が可能であり、さらに、ＣＡＮのフレームをＦｌｅｘＲａｙのフレームにマッピングし転送する装置である。すなわち、通信メッセージ変換装置３は、ＦｌｅｘＲａｙ伝送路５を介してＣＡＮアプリケーションデバイス２の間の通信を中継し、広帯域、高信頼性の通信を可能にする装置である。
【００４８】
また、ＣＡＮアプリケーションデバイス２と通信メッセージ変換装置３の間は、ＣＡＮアプリケーションデバイス２が既存の通信に使用してきたコンテンション方式のネットワーク（この例ではＣＡＮを使用）をピアツーピア（対向）で接続している。既存のネットワークの場合は多数のノード（アプリケーションノード）がこのコンテンション方式のネットワークに接続されていたため一つのノードが使用できる伝送帯域はそのネットワーク全体が提供する帯域のうちの一部に限定されていたが、対向で使用する場合は二つのノードのみで使用するのでより広い帯域を使用することができる。
【００４９】
尚、通信メッセージ変換装置３に接続するＣＡＮアプリケーションデバイス２は、１つであることが好ましいが、任意の数のＣＡＮアプリケーションデバイス２を接続することも可能である。複数のＣＡＮアプリケーションデバイス２を１つの通信メッセージ変換装置３に接続した場合、１つのＣＡＮアプリケーションデバイス２が伝送できる帯域は減少することになる。また、ＣＡＮアプリケーションデバイス２は、接続する通信メッセージ変換装置３と同じアプリケーションノード１の内部に設けていてもよいし、アプリケーションノード１の外部の他の装置に設けてもよい。
【００５０】
次に、図２を用いて、本発明の実施の形態にかかるアプリケーションノードのハードウェアの構成例について説明する。アプリケーションノード１に設けられたＣＡＮアプリケーションデバイス２は、図に示されるように、ＣＰＵ２０１、メモリ２０２、ＣＡＮコントローラ２０３を備えており、それぞれが電気的に接続されている。
【００５１】
ＣＰＵ２０１は、ＣＡＮアプリケーションデバイス２及びアプリケーションノード１の各種制御処理のアプリケーションを実行する処理装置である。ＣＰＵ２０１は、アプリケーションノード１に設けられた各種センサー等の検出に基づいた処理や駆動装置の制御、他のアプリケーションノード１から受信したメッセージのデータに基づいた処理を行う。例えば、各種センサーが検出したデータから送信メッセージを生成し、ＣＡＮコントローラ２０３によって、通信メッセージ変換装置３を介して他のアプリケーションノード１へ通知したり、ＣＡＮコントローラ２０３によって、通信メッセージ変換装置３から他のアプリケーションノード１のメッセージを受信し、メータ等にデータを出力したりする。これらの処理は、メモリ２０２に格納されたアプリケーションプログラム等のプログラムにより実現される処理である。ＣＰＵ２０１では、後述する制御部２１０の処理が実行される。
【００５２】
メモリ２０２は、ＲＯＭやＲＡＭ等の記憶装置であり、ＯＳプログラムやアプリケーションプログラム、各プログラムの処理に必要な各種データ等が格納されている。
【００５３】
ＣＡＮコントローラ２０３は、ＣＡＮプロトコルに従った通信制御を行う制御装置である。ＣＡＮコントローラ２０３は、ＣＡＮ伝送路４に接続され、ＣＡＮプロトコルに従った通信を可能とする。例えば、ＣＡＮコントローラ２０３は、ＣＡＮプロトコルに従い、ＣＰＵ２０１が生成したメッセージに基づきＣＡＮフレームを生成し、所定のタイミングでＣＡＮ伝送路４へ送信する。例えば、ＣＡＮ伝送路４の空き状況に応じて、ＣＡＮフレームが送信される。また、ＣＡＮコントローラ２０３は、ＣＡＮプロトコルに従い、ＣＡＮ伝送路４から、受信データを含むＣＡＮフレームを受信し、当該受信データをＣＰＵ２０１へ出力する。
【００５４】
アプリケーションノード１に設けられた通信メッセージ変換装置３は、図に示されるように、ＣＰＵ３０１、メモリ３０２、ＣＡＮコントローラ３０３、ＦｌｅｘＲａｙコントローラ３０４を備えており、それぞれが電気的に接続されている。
【００５５】
ＣＰＵ３０１は、通信メッセージ変換装置３の各種制御処理のアプリケーションを実行する処理装置である。ＣＰＵ３０１は、ＣＡＮとＦｌｅｘＲａｙのメッセージ形式の相互変換やメッセージの識別情報を変換するルーティング処理を行う。例えば、ＣＡＮコントローラ３０３によって受信したＣＡＮフレームをＦｌｅｘＲａｙフレームに変換し、ＦｌｅｘＲａｙコントローラ３０４を介して送信する。また、ＦｌｅｘＲａｙコントローラ３０４によって受信したＦｌｅｘＲａｙフレームをＣＡＮフレームに変換し、ＣＡＮコントローラ３０３を介して送信する。これらの処理は、メモリ３０２に格納された通信処理プログラム等のプログラムにより実現される処理である。ＣＰＵ３０１では、後述する制御部３１０の処理が実行される。
【００５６】
メモリ３０２は、メモリ２０２と同様の記憶装置であり、ＯＳプログラムやアプリケーションプログラム、各プログラムの処理に必要な各種データ等が格納されている。メモリ３０２には、後述する、ＣＡＮメッセージバッファ３１１やメッセージＩＤ変換テーブル３２５等が格納される。
【００５７】
ＣＡＮコントローラ３０３は、ＣＡＮコントローラ２０３と同様の通信制御装置である。ＦｌｅｘＲａｙコントローラ３０４は、ＦｌｅｘＲａｙプロトコルに従った通信制御を行う制御装置である。ＦｌｅｘＲａｙコントローラ３０４は、ＦｌｅｘＲａｙ伝送路５に接続され、ＦｌｅｘＲａｙプロトコルに従った通信を可能とする。例えば、ＦｌｅｘＲａｙコントローラ３０４は、ＦｌｅｘＲａｙプロトコルに従い、ＦｌｅｘＲａｙフレームを生成し、所定のタイミングで送信する。例えば、時分割多重された所定のタイムスロットによって、ＦｌｅｘＲａｙフレームを送信する。また、ＦｌｅｘＲａｙコントローラ３０４は、ＦｌｅｘＲａｙプロトコルに従い、ＦｌｅｘＲａｙ伝送路５から、ＦｌｅｘＲａｙフレームを受信し、ＣＰＵ３０１へ出力する。尚、ＦｌｅｘＲａｙコントローラ３０４は、トランシーバ等のネットワーク接続回路によりＦｌｅｘＲａｙ伝送路５と接続されている。
【００５８】
次に、図３のブロック図を用いて、本発明の実施の形態にかかるアプリケーションノードの機能の構成例について説明する。アプリケーションノード１に設けられたＣＡＮアプリケーションデバイス２は、図に示されるように、制御部２１０及びＣＡＮ通信制御部２２０を備えている。
【００５９】
ＣＡＮ通信制御部２２０は、ＣＡＮコントローラ２０３によって構成されており、ＣＡＮプロトコルに従った通信制御を行い、ＣＡＮ伝送路４を介して通信メッセージ変換装置３との通信を可能とする。ＣＡＮ通信制御部２２０は、例えば、送受信するメッセージを格納するレジスタを有しており、レジスタに書き込まれた送信メッセージに基づき送信フレームを生成し、ＣＡＮ伝送路４へ送信したり、ＣＡＮ伝送路４から受信したフレームを解析し、受信メッセージとしてレジスタに書き込んだりする。
【００６０】
制御部２１０は、アプリケーション処理部２１１及びメッセージハンドリング部２１２を備えている。制御部２１０は、例えば、メモリ２０２に格納されたソフトウェアプログラムに従って、ＣＰＵ２０１が処理を実行し、他のハードウェア構成と協働することによって構成されている。
【００６１】
アプリケーション処理部２１１は、ＣＡＮアプリケーションデバイス２やアプリケーションノード１の各種制御処理を実行するブロックであり、例えば、所定のプログラムによって生成されるアプリケーションタスクにより実現される。アプリケーション処理部２１１は、各種センサー等の検出に基づいて送信メッセージを生成したり、受信メッセージに基づいてメータ等に出力したりする処理を行う。
【００６２】
メッセージハンドリング部２１２は、アプリケーション処理部２１１とＣＡＮ通信制御部２２０の間のメッセージを中継する処理を実行するブロックであり、例えば、所定のプログラムによって生成される送受信タスクにより実現される。メッセージハンドリング部２１２は、アプリケーション処理部２１１が生成した送信メッセージを、ＣＡＮ通信制御部２２０のレジスタに書き込んだり、ＣＡＮ通信制御部２２０のレジスタから受信メッセージを読み出し、アプリケーション処理部２１１に通知する。
【００６３】
アプリケーションノード１に設けられた通信メッセージ変換装置３は、図に示されるように、制御部３１０、ＣＡＮ通信制御部３３０、ＦｌｅｘＲａｙ通信制御部３４０を備えている。
【００６４】
ＣＡＮ通信制御部３３０は、ＣＡＮアプリケーションデバイス２のＣＡＮ通信制御部２２０と同様、ＣＡＮコントローラ３０３によって構成され、ＣＡＮ伝送路４を介してＣＡＮアプリケーションデバイス２との通信を可能とする。ＣＡＮ通信制御部３３０は、例えば、送受信するメッセージを格納するレジスタを有しており、レジスタに書き込まれた送信メッセージに基づき送信フレームを生成し、ＣＡＮ伝送路４へ送信したり、ＣＡＮ伝送路４から受信したフレームを解析し、受信メッセージとしてレジスタに書き込んだりする。
【００６５】
また、ＣＡＮ通信制御部３３０は、メッセージアクセプタンスフィルタリングを行うフィルタリング部３３１を有している。フィルタリング部３３１は、受信したＣＡＮフレームを、当該ＣＡＮフレームに含まれるメッセージＩＤによってフィルタリングし、メッセージＩＤごとに振り分けて、ＣＡＮ通信制御部３３０のレジスタに格納する。
【００６６】
ＦｌｅｘＲａｙ通信制御部３４０は、ＦｌｅｘＲａｙコントローラ３０４によって構成されており、ＦｌｅｘＲａｙプロトコルに従った通信制御を行い、ＦｌｅｘＲａｙ伝送路５を介して他のアプリケーションノード１との通信を可能とする。ＦｌｅｘＲａｙ通信制御部３４０は、例えば、送受信するメッセージを格納するレジスタを有しており、レジスタに書き込まれた送信メッセージに基づき送信フレームを生成し、ＦｌｅｘＲａｙ伝送路５へ送信したり、ＦｌｅｘＲａｙ伝送路５から受信したフレームを解析し、受信メッセージとしてレジスタに書き込んだりする。
【００６７】
制御部３１０は、ＣＡＮメッセージバッファ３１１、ＣＡＮメッセージハンドリング部３１２、ＦｌｅｘＲａｙメッセージバッファ３１３、ＦｌｅｘＲａｙメッセージハンドリング部３１４、メッセージ変換部３２０を備えている。制御部３１０は、例えば、メモリ３０２に格納されたソフトウェアプログラムに従って、ＣＰＵ３０１が処理を実行し、他のハードウェア構成と協働することによって構成されている。
【００６８】
ＣＡＮメッセージバッファ３１１は、ＣＡＮ通信制御部３３０のレジスタに書き込み／読み出しを行う複数のメッセージを含むバッファであり、例えば、メモリ３０２に格納されている。ＣＡＮメッセージバッファ３１１に複数の送受信メッセージを格納することにより、ＣＡＮ通信制御部３３０のタイミングに応じて、メッセージの書き込み／読み出しを行うことができる。また、ＣＡＮメッセージバッファ３１１には、後述するように、フィルタリング部３３１による振り分けに応じたＣＡＮバッファにより構成されている。
【００６９】
ＣＡＮメッセージハンドリング部３１２は、メッセージ変換部３２０とＣＡＮ通信制御部３３０の間のメッセージを中継する処理を実行するブロックであり、例えば、所定のプログラムによって生成される送受信タスクにより実現される。ＣＡＮメッセージハンドリング部３１２は、ＣＡＮメッセージバッファ３１１に送信メッセージが格納されたときに実行され、ＣＡＮ通信制御部３３０のレジスタの空きに応じて、当該送信メッセージを書き込む。また、ＣＡＮメッセージハンドリング部３１２は、ＣＡＮ通信制御部３３０によってメッセージが受信されたときに実行され、受信メッセージをＣＡＮ通信制御部３３０のレジスタから読み出し、ＣＡＮメッセージバッファ３１１に格納する。
【００７０】
ＦｌｅｘＲａｙメッセージバッファ３１３は、ＦｌｅｘＲａｙ通信制御部３４０のレジスタに書き込み／読み出しを行う複数のメッセージを含むバッファであり、例えば、メモリ３０２に格納されている。ＦｌｅｘＲａｙメッセージバッファ３１３に複数の送受信メッセージを格納することにより、ＦｌｅｘＲａｙ通信制御部３４０のタイミングに応じて、メッセージを書き込み／読み出しを行うことができる。
【００７１】
ＦｌｅｘＲａｙメッセージハンドリング部３１４は、メッセージ変換部３２０とＦｌｅｘＲａｙ通信制御部３４０の間のメッセージを中継する処理を実行するブロックであり、例えば、所定のプログラムによって生成される送受信タスクにより実現される。ＦｌｅｘＲａｙメッセージハンドリング部３１４は、定期的に実行され、ＦｌｅｘＲａｙメッセージバッファ３１３に送信メッセージが格納されると、ＦｌｅｘＲａｙ通信制御部３４０のレジスタに当該送信メッセージを書き込む。また、ＦｌｅｘＲａｙメッセージハンドリング部３１４は、ＦｌｅｘＲａｙ通信制御部３４０によってメッセージが受信されると、当該受信メッセージをＦｌｅｘＲａｙ通信制御部３４０のレジスタから読み出し、ＦｌｅｘＲａｙメッセージバッファ３１３に格納する。
【００７２】
メッセージ変換部３２０は、ＣＡＮのメッセージとＦｌｅｘＲａｙのメッセージを相互に変換する処理を実行するブロックである。また、メッセージ変換部３２０は、図に示されるように、メッセージＩＤ変換部３２１、メッセージフレーム変換部３２２、メッセージインデックス変換部３２３、ＣＡＮメッセージ変換テーブル３２４、メッセージＩＤ変換テーブル３２５、ＦｌｅｘＲａｙメッセージ変換テーブル３２６、メッセージインデックス変換テーブル３２７を備えている。尚、メッセージ変換部３２０は、複数のアプリケーションタスクによって実行されてもよいし、１つのアプリケーションタスクによって実行されてもよい。
【００７３】
ＣＡＮメッセージ変換テーブル３２４、メッセージＩＤ変換テーブル３２５、ＦｌｅｘＲａｙメッセージ変換テーブル３２６、メッセージインデックス変換テーブル３２７は、例えば、メモリ３０２に格納されている。
【００７４】
ＣＡＮメッセージ変換テーブル３２４は、ＣＡＮ伝送路４から受信するＣＡＮメッセージとＦｌｅｘＲａｙ伝送路５へ送信するＦｌｅｘＲａｙメッセージを対応付けるテーブルである。すなわち、ＣＡＮメッセージ変換テーブル３２４は、ＣＡＮメッセージのメッセージＩＤやメッセージバッファに基づいて、当該ＣＡＮメッセージを、どのＦｌｅｘＲａｙメッセージのどこにマッピングするか規定している。
【００７５】
メッセージＩＤ変換テーブル３２５は、ＣＡＮ伝送路４から受信するＣＡＮメッセージに含まれるメッセージＩＤと、ＦｌｅｘＲａｙ伝送路５へ送信するＦｌｅｘＲａｙメッセージにマッピングするためのメッセージインデックスを対応付けるテーブルである。すなわち、メッセージＩＤ変換テーブル３２５は、メッセージＩＤに基づいて、当該メッセージＩＤをどのメッセージインデックスに変換するか規定している。
【００７６】
ＦｌｅｘＲａｙメッセージ変換テーブル３２６は、ＦｌｅｘＲａｙ伝送路５から受信するＦｌｅｘＲａｙメッセージとＣＡＮ伝送路４へ送信するＣＡＮメッセージを対応付けるテーブルである。すなわち、ＦｌｅｘＲａｙメッセージ変換テーブル３２６は、ＦｌｅｘＲａｙメッセージにマッピングされたＣＡＮメッセージのメッセージインデックスに基づいて、当該ＣＡＮメッセージを、ＣＡＮメッセージバッファ３１１のどのＣＡＮバッファに格納すべきか、あるいは、受信すべきＣＡＮメッセージかどうかを規定している。
【００７７】
メッセージインデックス変換テーブル３２７は、ＦｌｅｘＲａｙ伝送路５から受信するＦｌｅｘＲａｙメッセージにマッピングされているＣＡＮメッセージのメッセージインデックスと、ＣＡＮ伝送路４へ送信するＣＡＮフレームに含まれるメッセージＩＤを対応付けるテーブルである。すなわち、メッセージインデックス変換テーブル３２７は、ＦｌｅｘＲａｙメッセージにマッピングされたＣＡＮメッセージのメッセージインデックスに基づいて、当該メッセージインデックスをどのメッセージＩＤに変換するか規定している。
【００７８】
メッセージＩＤ変換部３２１、メッセージフレーム変換部３２２、メッセージインデックス変換部３２３は、例えば、所定のプログラムによって生成されるメッセージ変換タスクにより実現される。
【００７９】
メッセージＩＤ変換部３２１は、メッセージＩＤ変換テーブル３２５のデータに基づいて、ＣＡＮ伝送路４から受信したＣＡＮメッセージに含まれるメッセージＩＤを、ＦｌｅｘＲａｙ伝送路５へ送信するＦｌｅｘＲａｙメッセージにマッピングするためのメッセージインデックスに変換する。
【００８０】
メッセージインデックス変換部３２３は、メッセージインデックス変換テーブル３２７のデータに基づいて、ＦｌｅｘＲａｙ伝送路５から受信したＦｌｅｘＲａｙメッセージにマッピングされているＣＡＮメッセージのメッセージインデックスを、ＣＡＮ伝送路４へ送信するＣＡＮメッセージのメッセージＩＤに変換する。
【００８１】
メッセージフレーム変換部３２２は、ＣＡＮメッセージ及びＦｌｅｘＲａｙメッセージのペイロードにあたるデータの構造の相互変換を行う。すなわち、メッセージフレーム変換部３２２は、ＣＡＮメッセージ変換テーブル３２４のデータに基づいて、ＣＡＮ伝送路４から受信したＣＡＮメッセージを、ＦｌｅｘＲａｙ伝送路５へ送信するＦｌｅｘＲａｙメッセージのペイロードにマッピングし、複数のＣＡＮメッセージをパッキングする。また、メッセージフレーム変換部３２２は、ＦｌｅｘＲａｙ伝送路５から受信したＦｌｅｘＲａｙメッセージのペイロードを個々のＣＡＮメッセージにアンパッキングし、ＦｌｅｘＲａｙメッセージ変換テーブル３２６のデータに基づいて、ＣＡＮメッセージバッファ３１１のＣＡＮバッファに振り分けを行う。
【００８２】
このような構成において、通信メッセージ変換装置３によるＦｌｅｘＲａｙのネットワークに対する通信処理は、ＣＡＮアプリケーションデバイス２のアプリケーション処理部２１１のソフトウェアとは独立した実行スケジュールで動作しており、アプリケーション処理部２１１側からは、従来のＣＡＮのネットワークが広帯域になり高速に動作しているように見える。
【００８３】
次に、図４乃至図８を用いて、本実施形態にかかる通信メッセージ変換装置で用いられるデータについて説明する。図４は、ＦｌｅｘＲａｙフレームの構造と、ＦｌｅｘＲａｙフレームにマッピングされるＣＡＮメッセージの構造を示している。
【００８４】
図４（ａ）のＣＡＮメッセージは、ＣＡＮ通信制御部３３０のレジスタに書き込み／読み出しを行うメッセージの形式であり、ＣＡＮメッセージバッファ３１１に格納される形式である。このＣＡＮメッセージには、図に示されるように、サイズ、メッセージＩＤ、ＣＡＮペイロードが含まれている。サイズは、メッセージＩＤとＣＡＮペイロードの長さを示すフィールドであり、例えば、フィールド長は１バイトである。メッセージＩＤは、メッセージ種別を示すフィールドであって、ＣＡＮプロトコルに規定されており、フィールド長は４バイトである。ＣＡＮペイロードは、メッセージのデータを含むフィールドであって、ＣＡＮプロトコルに規定されており、フィールド長は０から８バイトである。
【００８５】
図４（ｂ）のＣＡＮ中継メッセージは、図４（ａ）のＣＡＮメッセージをＦｌｅｘＲａｙフレームにマッピングし中継するための形式である。このＣＡＮ中継メッセージには、図に示されるように、サイズ、メッセージインデックス、ＣＡＮペイロードが含まれている。サイズは、メッセージインデックスとＣＡＮペイロードの長さを示すフィールドであり、例えば、フィールド長は１バイトである。
【００８６】
メッセージインデックスは、図４（ａ）のＣＡＮメッセージのメッセージＩＤに対応するインデックスを示すフィールドであり、例えば、フィールド長は１バイトである。ＣＡＮメッセージのメッセージＩＤは、ＣＡＮペイロードの最大８バイトと比べ４バイトも占有するため、そのままＦｌｅｘＲａｙフレームにマッピングして転送すると、伝送効率が悪い。そこで、メッセージＩＤを１バイトのメッセージインデックスに圧縮し、伝送効率の向上を図っている。また、メッセージインデックスを１バイトとすることで、検索処理やマッピング処理の負荷を軽減することができる。
【００８７】
この例では、ＣＡＮ中継メッセージのＣＡＮペイロードは、ＣＡＮメッセージのＣＡＮペイロードと同じである。尚、ＣＡＮメッセージのＣＡＮペイロードをそのまま転送するのではなく、ＣＡＮペイロードを圧縮や暗号等のアルゴリズムにより変換してもよい。ＣＡＮペイロードを圧縮すれば、さらに、伝送効率を向上することができる。
【００８８】
図４（ｃ）のＦｌｅｘＲａｙペイロードは、ＦｌｅｘＲａｙフレームにおいて、メッセージのデータが含まれるフィールドである。ＦｌｅｘＲａｙペイロードは、ＦｌｅｘＲａｙプロトコルに規定されており、フィールド長は例えば３２バイトである。この例では、ＦｌｅｘＲａｙペイロードには、図に示されるように、ＣＡＮ中継メッセージ数と複数のＣＡＮ中継メッセージが含まれている。ＣＡＮ中継メッセージ数は、ＦｌｅｘＲａｙペイロードに含まれるＣＡＮ中継メッセージの個数を示すフィールドであり、例えば、フィールド長は１バイトである。ＣＡＮ中継メッセージは、図４（ｂ）のＣＡＮ中継メッセージである。ＦｌｅｘＲａｙペイロードには、ＣＡＮメッセージのメッセージＩＤの優先順位に従って、複数のＣＡＮ中継メッセージが格納される。例えば、ＣＡＮ中継メッセージの長さが１０バイトとすると、例えば３２バイトＦｌｅｘＲａｙペイロードには３つのＣＡＮ中継メッセージが格納される。
【００８９】
図４（ｄ）のＦｌｅｘＲａｙフレームは、ＦｌｅｘＲａｙ通信制御部３４０によってＦｌｅｘＲａｙ伝送路５を介して通信されるフレームの形式である。このＦｌｅｘＲａｙフレームには、図に示されるように、ＦｌｅｘＲａｙヘッダ、ＦｌｅｘＲａｙペイロードが含まれている。ＦｌｅｘＲａｙヘッダは、ＦｌｅｘＲａｙのメッセージの識別子等を含み、ＦｌｅｘＲａｙプロトコルに規定されている。ＦｌｅｘＲａｙペイロードは、図４（ｃ）のＦｌｅｘＲａｙペイロードである。
【００９０】
尚、ＦｌｅｘＲａｙ通信制御部３４０のメモリに書き込み／読み出しされ、ＦｌｅｘＲａｙメッセージバッファ３１３に格納される形式は、このＦｌｅｘＲａｙフレームでもよいし、ＦｌｅｘＲａｙペイロードとＦｌｅｘＲａｙヘッダの一部でもよい。
【００９１】
図５は、ＣＡＮメッセージバッファ３１１のデータ構造の例を示している。図に示されるように、ＣＡＮメッセージバッファ３１１は、例えば、２次元配列により構成されており、複数のＣＡＮバッファを有している。ＣＡＮバッファにはそれぞれバッファ番号が付けられ、この例では、０からｎまでの番号が付けられている。それぞれのＣＡＮバッファには、複数のＣＡＮメッセージが含まれている。このＣＡＮメッセージは、図４（ａ）に示したＣＡＮメッセージである。
【００９２】
ＣＡＮ通信制御部３３０によって受信されたＣＡＮフレームは、フィルタリング部３３１において、受信したＣＡＮフレームのメッセージＩＤによって、ＣＡＮ通信制御部３３０の複数のレジスタに振り分けられる。ＣＡＮ通信制御部３３０のレジスタとＣＡＮバッファは、それぞれ対応しており、ＣＡＮメッセージハンドリング部３１２によって、ＣＡＮ通信制御部３３０のレジスタに対応するＣＡＮバッファに格納される。すなわち、受信メッセージは、フィルタリング部３３１で振り分けられ、振り分けに応じたＣＡＮバッファに格納されることとなる。
【００９３】
ＣＡＮバッファの数は、フィルタリング部３３１の振り分けに対応しており、例えば、ＣＡＮバッファは３２個である。フィルタリング部３３１では、ＣＡＮフレームのメッセージＩＤに基づいて、振り分けている。尚、ＣＡＮメッセージバッファ３１１は、この図では１つであるが、送信用のＣＡＮメッセージバッファと受信用のＣＡＮメッセージバッファを別に設けていてもよい。
【００９４】
図６は、ＣＡＮメッセージ変換テーブル３２４のデータ構造の例を示している。図に示されるように、ＣＡＮメッセージ変換テーブル３２４は、例えば、２次元配列により構成されており、複数のＦｌｅｘＲａｙメッセージテーブルを有している。ＦｌｅｘＲａｙメッセージテーブルは、ＦｌｅｘＲａｙメッセージ毎に設けられ、この例では、１からｎまでのＦｌｅｘＲａｙメッセージに対応するＦｌｅｘＲａｙメッセージテーブルが設けられている。それぞれのＦｌｅｘＲａｙメッセージテーブルには、ＣＡＮフレームのメッセージＩＤが優先順位に従って格納され、メッセージＩＤに対応するＣＡＮバッファ番号が格納されている。メッセージＩＤの優先順位は、ＣＡＮプロトコルで規定されており、メッセージＩＤが小さい方が高い優先順位となる。
【００９５】
例えば、通信先のＣＡＮノード（ここではＣＡＮアプリケーションデバイス２）をあらかじめ設定しておき、設定した通信先ＣＡＮノードとの通信で使用するＣＡＮフレームのメッセージＩＤをあらかじめ決めておく。さらに、使用するＣＡＮメッセージをマッピングするＦｌｅｘＲａｙメッセージをあらかじめ決めておく。このようにして、使用するＦｌｅｘＲａｙメッセージテーブルをあらかじめ特定しておくことができる。
【００９６】
すなわち、あらかじめ特定されたＦｌｅｘＲａｙメッセージテーブルに定義されたＣＡＮバッファを参照し、所定のメッセージＩＤのメッセージが到着しているか確認することで、効率よくメッセージの受信を監視することができる。
【００９７】
図７は、メッセージＩＤ変換テーブル３２５のデータ構造の例を示している。図に示されるように、メッセージＩＤ変換テーブル３２５は、例えば、２次元配列により構成されており、複数のＩＤ変換テーブルを有している。ＩＤ変換テーブルは、ＣＡＮバッファ毎に設けられ、この例では、ＣＡＮバッファ０からＣＡＮバッファｎに対応するＩＤ変換テーブルが設けられている。それぞれのＩＤ変換テーブルには、メッセージＩＤと、当該メッセージＩＤに対応するメッセージインデックスが格納されている。それぞれのＩＤ変換テーブルに格納されるメッセージＩＤとメッセージインデックスは、それぞれ別の値であり、同じメッセージＩＤや同じメッセージインデックスが、複数のＩＤ変換テーブルに格納されることはない。
【００９８】
ＣＡＮメッセージバッファ３１１の個々のＣＡＮバッファには、フィルタリング部３３１によりフィルタリングされた所定のメッセージＩＤのみ格納されるため、ＣＡＮバッファ毎のＩＤテーブルは、フィルタリングにより得られる所定のメッセージＩＤのみ格納すればよいことになる。すなわち、メッセージＩＤをメッセージインデックスに変換する際、メッセージＩＤを検索する処理が、ＣＡＮバッファ毎のＩＤテーブルのみ検索すればよいため、検索処理の負荷を軽減することができる。例えば、ＣＡＮバッファは３２個であり、検索処理は、単純に１／３２の処理に短縮できるが、実際に各ＣＡＮバッファで使われるメッセージＩＤは、さらに限られているため、それ以上の効果を得ることができる
【００９９】
図８は、ＦｌｅｘＲａｙメッセージ変換テーブル３２６とメッセージインデックス変換テーブル３２７のデータ構造の例を示している。図８（ａ）に示されるように、ＦｌｅｘＲａｙメッセージ変換テーブル３２６は、例えば、１次元配列により構成されており、複数のＣＡＮバッファ番号を有している。ＣＡＮバッファ番号は、メッセージインデックスの順番に格納されている。すなわち、メッセージインデックスをテーブルのインデックス値とすることにより、検索処理をすることなく、直接テーブルを参照しＣＡＮバッファ番号を取得することができる。テーブルのインデックス値として参照する例としては、インデックスをテーブル配列の配列番号としてもよいし、テーブルの先頭アドレスからのオフセット値としてもよい。また、ＦｌｅｘＲａｙメッセージ変換テーブル３２６では、受信したＣＡＮメッセージを受信対象とするかどうかのフィルタリングも行われる。例えば、受信対象ではないメッセージインデックスのＣＡＮバッファ番号には０ｘＦＦを格納しておく。
【０１００】
図８（ｂ）に示されるように、メッセージインデックス変換テーブル３２７は、例えば、１次元配列により構成されており、複数のメッセージＩＤを有している。メッセージＩＤは、メッセージインデックスの順番に格納されている。すなわち、ＦｌｅｘＲａｙメッセージ変換テーブル３２６と同様に、メッセージインデックスから直接テーブルを参照し、検索することなく、メッセージＩＤを取得することができる。
【０１０１】
尚、ＦｌｅｘＲａｙメッセージ変換テーブル３２６とメッセージインデックス変換テーブル３２７は、どちらもメッセージインデックスの順番に並んでいるため、１つのテーブルとすることも可能である。
【０１０２】
次に、図９及び図１０を用いて、本実施形態にかかる通信メッセージ変換装置のメッセージ転送の処理について説明する。図９のフローチャートは、ＣＡＮフレームを受信しＦｌｅｘＲａｙフレームを送信する処理を示している。
【０１０３】
ＣＡＮフレームをＦｌｅｘＲａｙフレームへ転送する場合、まず、ＣＡＮ伝送路４からＣＡＮフレームを受信する（Ｓ９０１）。すなわち、ＣＡＮ通信制御部３３０は、ＣＡＮアプリケーションデバイス２によって送信されたＣＡＮフレームを、ＣＡＮプロトコルに従って、ＣＡＮ伝送路４から受信する。
【０１０４】
次いで、受信したＣＡＮフレームをフィルタリングする（Ｓ９０２）。すなわち、ＣＡＮ通信制御部３３０のフィルタリング部３３１は、Ｓ９０１で受信されたＣＡＮフレームを、当該ＣＡＮフレームのメッセージＩＤに基づいて、アクセプタンスフィルタ機能およびそのビットマスキング機能により振り分け、ＣＡＮ通信制御部３３０の複数のレジスタのいずれかに書き込む。このとき、受信したＣＡＮフレームは、図４（ａ）のＣＡＮメッセージの形式でレジスタに書き込まれる。そして、ＣＡＮメッセージハンドリング部３１２は、ＣＡＮ通信制御部３３０からの受信完了割り込み等により実行され、ＣＡＮ通信制御部３３０のレジスタから当該ＣＡＮメッセージを読み出し、ＣＡＮメッセージバッファ３１１のいずれかのＣＡＮバッファに格納する。このとき、ＣＡＮメッセージハンドリング部３１２は、読み出したレジスタに対応するＣＡＮバッファに当該ＣＡＮメッセージを格納する。
【０１０５】
次いで、ＣＡＮメッセージのメッセージＩＤをメッセージインデックスに変換する（Ｓ９０３）。すなわち、メッセージフレーム変換部３２２は、ＣＡＮメッセージ変換テーブル３２４に基づいて、ＦｌｅｘＲａｙメッセージテーブルに含まれるメッセージＩＤのＣＡＮメッセージが、ＣＡＮバッファに格納されているか定期的に監視する。ＣＡＮバッファにＣＡＮメッセージが格納されると、メッセージフレーム変換部３２２は、当該ＣＡＮメッセージを取得し、ＣＡＮメッセージに含まれるメッセージＩＤとＣＡＮバッファ番号を、メッセージＩＤ変換部３２１へ通知する。
【０１０６】
メッセージＩＤ変換部３２１は、通知されたメッセージＩＤとＣＡＮバッファ番号により、メッセージＩＤ変換テーブル３２５の該当するＩＤ変換テーブルを検索する。メッセージＩＤ変換部３２１は、メッセージＩＤをキーに検索して、対応するメッセージインデックスを取得する。さらに、メッセージＩＤ変換部３２１は、当該メッセージインデックスをメッセージフレーム変換部３２２へ通知する。このとき、Ｓ９０２でフィルタリングされていることから、検索範囲がメッセージＩＤ空間の部分空間に限定されるため、探索対象の数が絞られ、効率よく検索することができる。
【０１０７】
次いで、ＣＡＮメッセージをＣＡＮ中継メッセージに変換する（Ｓ９０４）。すなわち、メッセージフレーム変換部３２２は、ＣＡＮバッファから取得したＣＡＮメッセージのＣＡＮペイロードと、Ｓ９０３で変換したメッセージインデックスと、それらのサイズから、図４（ｂ）のＣＡＮ中継メッセージを生成する。
【０１０８】
次いで、ＣＡＮ中継メッセージをパッキングする（Ｓ９０５）。すなわち、メッセージフレーム変換部３２２は、Ｓ９０４で生成したＣＡＮ中継メッセージをパッキングし、ＣＡＮ中継フレーム数を加えて、図４（ｃ）のＦｌｅｘＲａｙペイロードを生成する。
【０１０９】
Ｓ９０３において、メッセージフレーム変換部３２２は、ＣＡＮメッセージ変換テーブル３２４のＦｌｅｘＲａｙメッセージテーブルに含まれるメッセージＩＤに対応するＣＡＮメッセージが、ＣＡＮバッファに複数格納されている場合は、複数のＣＡＮメッセージのそれぞれについて、Ｓ９０３とＳ９０４を繰り返した後、複数のＣＡＮ中継メッセージをパッキングする。メッセージフレーム変換部３２２は、生成したＦｌｅｘＲａｙペイロードをＦｌｅｘＲａｙメッセージとしてＦｌｅｘＲａｙメッセージバッファ３１３に格納する。
【０１１０】
次いで、ＦｌｅｘＲａｙフレームをＦｌｅｘＲａｙ伝送路５へ送信する（Ｓ９０６）。すなわち、ＦｌｅｘＲａｙメッセージハンドリング部３１４は、ＦｌｅｘＲａｙメッセージバッファ３１３に送信すべきＦｌｅｘＲａｙメッセージが格納されているか定期的に監視する。ＦｌｅｘＲａｙメッセージハンドリング部３１４は、ＦｌｅｘＲａｙメッセージバッファ３１３にＦｌｅｘＲａｙメッセージが格納されると、当該メッセージを取得し、ＦｌｅｘＲａｙ通信制御部３４０のレジスタに書き込む。ＦｌｅｘＲａｙ通信制御部３４０は、定期的にレジスタを監視し、レジスタにＦｌｅｘＲａｙメッセージが書き込まれると、当該メッセージをＦｌｅｘＲａｙフレームとして、ＦｌｅｘＲａｙプロトコルに従って、ＦｌｅｘＲａｙ伝送路５へ送信する。
【０１１１】
図１０のフローチャートは、ＦｌｅｘＲａｙフレームを受信しＣＡＮフレームを送信する処理を示している。ＦｌｅｘＲａｙフレームをＣＡＮフレームへ転送する場合、まず、ＦｌｅｘＲａｙ伝送路５からＦｌｅｘＲａｙフレームを受信する（Ｓ１０１）。すなわち、ＦｌｅｘＲａｙ通信制御部３４０は、他のアプリケーションノード１によって送信されたＦｌｅｘＲａｙフレームを、ＦｌｅｘＲａｙプロトコルに従って、ＦｌｅｘＲａｙ伝送路５から受信する。例えば、ＦｌｅｘＲａｙ通信制御部３４０によりビット復号化、クロック抽出、クラスタクロック同期等の低位通信信号処理が行われエラー検査等を経てＦｌｅｘＲａｙフレームが受信される。そして、受信したＦｌｅｘＲａｙフレームをＦｌｅｘＲａｙメッセージとして、ＦｌｅｘＲａｙ通信制御部３４０のレジスタに書き込む。ＦｌｅｘＲａｙメッセージハンドリング部３１４は、定期的にＦｌｅｘＲａｙ通信制御部３４０のレジスタを監視する。ＦｌｅｘＲａｙメッセージハンドリング部３１４は、レジスタにＦｌｅｘＲａｙメッセージが書き込まれると、当該メッセージを読み出し、ＦｌｅｘＲａｙメッセージバッファ３１３に格納する。
【０１１２】
次いで、受信したＦｌｅｘＲａｙメッセージのＦｌｅｘＲａｙペイロードをアンパッキングする（Ｓ１０２）。すなわち、メッセージフレーム変換部３２２は、ＦｌｅｘＲａｙメッセージバッファ３１３に受信したＦｌｅｘＲａｙメッセージが格納されているか定期的に監視する。メッセージフレーム変換部３２２は、ＦｌｅｘＲａｙメッセージバッファ３１３にＦｌｅｘＲａｙメッセージが格納されると、当該メッセージを取得する。そして、メッセージフレーム変換部３２２は、当該メッセージのＦｌｅｘＲａｙペイロードを、複数のＣＡＮ中継メッセージにアンパッキング（分割）する。このとき、ＦｌｅｘＲａｙペイロードに含まれるＣＡＮ中継メッセージ数の、ＣＡＮ中継フレームにアンパッキングする。尚、１つのＦｌｅｘＲａｙペイロードに複数のＣＡＮ中継メッセージが含まれる場合、それぞれのＣＡＮ中継メッセージについて、以下の処理を繰り返す。
【０１１３】
次いで、ＣＡＮメッセージを格納するＣＡＮバッファ番号を取得する（Ｓ１０３）。すなわち、メッセージフレーム変換部３２２は、Ｓ１０２でアンパッキングしたＣＡＮ中継メッセージについて、ＣＡＮメッセージを格納するためのＣＡＮバッファ番号を取得する。メッセージフレーム変換部３２２は、当該ＣＡＮ中継メッセージに含まれるメッセージインデックスに基づき、ＦｌｅｘＲａｙメッセージ変換テーブル３２６を参照し、ＣＡＮバッファ番号を取得する。このとき、取得したＣＡＮバッファ番号が０ｘＦＦの場合、受信対象ではないＣＡＮメッセージとして、当該メッセージについて、以下の処理を行わない。
【０１１４】
次いで、メッセージインデックスをメッセージＩＤに変換する（Ｓ１０４）。すなわち、メッセージフレーム変換部３２２は、Ｓ１０２でアンパッキングしたＣＡＮ中継メッセージに含まれるメッセージインデックスを、メッセージインデックス変換部３２３に通知する。メッセージインデックス変換部３２３は、通知されたメッセージインデックスをメッセージＩＤに変換する。メッセージインデックス変換部３２３は、メッセージインデックスに基づいて、メッセージインデックス変換テーブル３２７を参照し、メッセージＩＤを取得する。メッセージインデックス変換部３２３は、当該メッセージＩＤをメッセージフレーム変換部３２２へ通知する。
【０１１５】
次いで、ＣＡＮ中継メッセージをＣＡＮメッセージに変換する（Ｓ１０５）。すなわち、メッセージフレーム変換部３２２は、ＣＡＮ中継メッセージのＣＡＮペイロードと、Ｓ１０４で変換したメッセージＩＤと、それらのサイズから、ＣＡＮメッセージを生成する。メッセージフレーム変換部３２２は、生成したＣＡＮメッセージを、Ｓ１０３で取得した番号のＣＡＮメッセージバッファ３１１のＣＡＮバッファに格納する。
【０１１６】
次いで、ＣＡＮフレームをＣＡＮ伝送路４へ送信する（Ｓ１０６）。すなわち、ＣＡＮメッセージハンドリング部３１２は、ＣＡＮメッセージバッファ３１１のＣＡＮバッファにＣＡＮメッセージが格納されると実行され、ＣＡＮ通信制御部３３０のレジスタに当該メッセージを書き込む。このとき、ＣＡＮメッセージハンドリング部３１２は、ＣＡＮ通信制御部３３０のレジスタの空くのを待ち、タイミングを調整してＣＡＮ通信制御部３３０のレジスタに書き込む。ＣＡＮメッセージハンドリング部３１２は、ＣＡＮメッセージバッファ３１１に複数のＣＡＮメッセージが格納されている場合、当該複数のＣＡＮメッセージをＣＡＮ通信制御部３３０のレジスタに書き込む。そして、ＣＡＮ通信制御部３３０は、ＣＡＮメッセージハンドリング部３１２からの送信要求割り込み等により、レジスタからＣＡＮメッセージを読み出し、当該ＣＡＮメッセージをＣＡＮフレームとして、ＣＡＮプロトコルに従って、ＣＡＮ伝送路４へ送信する。
【０１１７】
このような構成により、以下に示す効果を得ることができる。タスクスケジューリング方式の異なる通信タスクを、アプリケーションタスクを実行するプロセッサから分離することにより、両方式の差異に起因する優先度の衝突による信頼性の低下を防止することができる。すなわち、優先度の高いタスクの非等周期起動処理と同等周期起動通信処理の存在する実行環境下で信頼性の高いネットワーク分散型の制御システムを構築することが可能となる。また、既存のイベント駆動型のタスク起動方式に基づく制御システムのノード間通信に、時分割多重固定スケジュール通信方式のネットワークを適用して伝送速度と伝送効率を向上させる際に、既存方式をそのまま適用することができる。
【０１１８】
ＣＡＮ等の既存の通信プロトコルをアプリケーションノード内のデバイス間接続に使用するとともに、当該アプリケーションノード内のネットワークに接続するノード数を最小にすることにより、等価的に当該アプリケーションノードに提供される伝送帯域を拡大しかつ伝送遅延を低減することができる。例えば、デバイス間信号線数を通常のボード上での接続に使用するパラレルバスに比して１／１０以下に低減することができる。
【０１１９】
また、高い応答性の要求されるネットワーク起動時や障害発生時の通信コントローラに対する操作は、同一チップ上にある通信用プロセッサにより行われる、すなわち、通信メッセージ変換装置内で行われる事から、バンド幅に制約のあるシリアル通信ラインで、アプリケーションノード内のデバイスと接続しているにもかかわらず所期の制御を確実に行うことができる。
【０１２０】
ＣＡＮコントローラを有するＣＡＮアプリケーションデバイス等のデバイスと通信メッセージ変換装置間をＣＡＮ等のシリアル通信ラインで接続するため、接続に使用する信号線の数を少なくすることができる。このことにより、ノイズの影響を軽減する効果があるほかに、デバイスおよび通信メッセージ変換装置の双方においてパッケージのピン数を少なくすることができ実装面積の低減による小型化、パッケージコストの低減の効果がある。これらは車両における制御システムにおいては大きな影響がある。
【０１２１】
通信用プロセッサを搭載する場合のコストは、ＦｌｅｘＲａｙ等の広帯域ネットワーク通信コントローラと合わせても既存のソフトウェアのスケジューリング方式を変更して再構築するのに要するコストに対して低く抑えることができる。ソフトウェア設計およびハードウェア設計の段階で、必要とされる処理量および記憶量の見積もりの不確定性を限定できる効果がある。通信システムの評価および検証に既存の測定機材、ソフトウェアそれにそれらの利用技術が適用できるので、技術資産の円滑な継承が可能となる。
【０１２２】
ＣＡＮメッセージのメッセージＩＤを語長の短いメッセージインデクスに変換してＦｌｅｘＲａｙのフレームを構成するため、そのまま中継する場合に比べて、伝送効率が向上し、実効的なペイロードの伝送速度を向上することができる。
【０１２３】
ＣＡＮコントローラが従来から有するアクセプタンスフィルタのマスキング機能を利用する事によって、メッセージＩＤ変換の為の部分空間に分割することで、メッセージＩＤからメッセージインデクスへの変換時の探索対象範囲を大幅に削減することが可能になり、通信メッセージ変換装置の処理負荷の低減を図ることができる。
【０１２４】
ＦｌｅｘＲａｙメッセージフレームとして受信した複数のＣＡＮメッセージに対するアクセプタンスフィルタリングおよびメッセージインデックスの変換をメッセージインデクス空間で行うことによって、メッセージインデックスで直接参照可能となり、探索型の処理を避けることができるため、通信メッセージ変換装置の負荷を大幅に低減できる効果がある。ＣＡＮメッセージをＦｌｅｘＲａｙメッセージに変換する処理よりも、ＦｌｅｘＲａｙメッセージをＣＡＮメッセージへ変換する処理の発生頻度の方が多いという多くの通信ノードの性質を考慮すると、その処理負荷の非対称性によって通信メッセージ変換装置の実効的な処理負荷の低減の効果は大きい。
【０１２５】
尚、上述の例では、ＣＡＮのフレームをＦｌｅｘＲａｙのフレームによって転送する例について説明したが、その他の通信プロトコルを用いてもよい。例えば、ＣＡＮの代わりにＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）等のイベントドリブン型のプロトコルとしてもよいし、ＦｌｅｘＲａｙの代わりにＴＴＰ（Ｔｉｍｅ  Ｔｒｉｇｇｅｒｅｄ  Ｐｒｏｔｏｃｏｌ）等のタイムトリガ型のプロトコルとしてもよい。
【図面の簡単な説明】
【０１２６】
【図１】本発明にかかる通信システムの構成例を示す図である。
【図２】本発明にかかるアプリケーションノードのハードウェアの構成例を示す図である。
【図３】本発明にかかるアプリケーションノードの構成例を示すブロック図である。
【図４】本発明にかかる通信メッセージ変換装置で用いられるデータの例を示す図である。
【図５】本発明にかかる通信メッセージ変換装置で用いられるデータの例を示す図である。
【図６】本発明にかかる通信メッセージ変換装置で用いられるデータの例を示す図である。
【図７】本発明にかかる通信メッセージ変換装置で用いられるデータの例を示す図である。
【図８】本発明にかかる通信メッセージ変換装置で用いられるデータの例を示す図である。
【図９】本発明にかかる通信メッセージ変換装置の処理の例を示すフローチャートである。
【図１０】本発明にかかる通信メッセージ変換装置の処理の例を示すフローチャートである。
【図１１】従来のアプリケーションノードの構成例を示すブロック図である。
【図１２】通信フレームとタスクの動作を示す模式図である。
【図１３】通信フレームとタスクの動作を示す模式図である。
【符号の説明】
【０１２７】
１  アプリケーションノード  ２  ＣＡＮアプリケーションデバイス  ２１０  制御部
２１１  アプリケーション処理部  ２１２  メッセージハンドリング部
２２０  ＣＡＮ通信制御部  ３  通信メッセージ変換装置  ３１０  制御部
３１１  ＣＡＮメッセージバッファ  ３１２  ＣＡＮメッセージハンドリング部
３１３  ＦｌｅｘＲａｙメッセージバッファ
３１４  ＦｌｅｘＲａｙメッセージハンドリング部
３２０  メッセージ変換部  ３２１  メッセージＩＤ変換部
３２２  メッセージフレーム変換部  ３２３  メッセージインデックス変換部
３２４  ＣＡＮメッセージ変換テーブル  ３２５  メッセージＩＤ変換テーブル
３２６  ＦｌｅｘＲａｙメッセージ変換テーブル
３２７  メッセージインデックス変換テーブル
３３０  ＣＡＮ通信制御部  ３４０  ＦｌｅｘＲａｙ通信制御部
４  ＣＡＮ伝送路  ５  ＦｌｅｘＲａｙ伝送路
【図１】
2005328119.tif 000003
【図２】
2005328119.tif 000004
【図３】
2005328119.tif 000005
【図４】
2005328119.tif 000006
【図５】
2005328119.tif 000007
【図６】
2005328119.tif 000008
【図７】
2005328119.tif 000009
【図８】
2005328119.tif 000010
【図９】
2005328119.tif 000011
【図１０】
2005328119.tif 000012
【図１１】
2005328119.tif 000013
【図１２】
2005328119.tif 000014
【図１３】
2005328119.tif 000015