(57)【要約】【課題】優先度付きイベントトリガ型ネットワークとタイムトリガ型ネットワークの双方を備えた組み込み制御システムにおいて実行可能な、高い信頼性を備えたＦｌｅｘＲａｙを使用するアプリケーションを開発可能とすることを目的とし、その実現に当たっては開発済みのＣＡＮを使用するアプリケーションの再利用性を向上させ、ＦｌｅｘＲａｙを使用するシステムの開発コストの増大を抑制することを目的とする。【解決手段】イベントトリガ型ネットワークとタイムトリガ型ネットワークに接続され、イベントトリガ型ネットワークとタイムトリガ型ネットワークを使用するアプリケーションと、イベントトリガ型ネットワークのデータ形式をタイムトリガ型ネットワークのデータ形式に変換し、振り分けるデータ変換振り分けモジュールと、イベントトリガ型ネットワークとタイムトリガ型ネットワークの送受信操作を行う通信制御モジュールとを有することを特徴とする。【選択図】  図１
2010178098.tif 000002
【特許請求の範囲】
【請求項１】
タイムトリガ型ネットワークの各々のフレームをシステム構築時に予め複数のスロットに分割する手段と、前記スロットに優先度を付ける手段と、イベントトリガ型ネットワークで定義された優先度付きのメッセージと前記スロットを対応付ける手段と、対応付けられた前記メッセージを優先的に前記スロットへ格納する手段と、すべての優先度付きの前記メッセージが少なくとも一つ以上前記スロットに格納されることを保証する手段を備え、優先度型付きイベントトリガ型ネットワークとタイムトリガ型ネットワークに接続された組み込みコントローラで実行される車両制御ネットワーク中継装置。
【請求項２】
優先度付きイベントトリガ型ネットワークで予め定義されたメッセージと対応付けられた優先度付きスロットにおいて、
等しい優先度を備える前記スロットに対して一定の間隔を設ける手段を有することを特徴とする請求項１記載の車両制御ネットワーク中継装置。
【請求項３】
優先度付きイベントトリガ型ネットワークで予め定義されたメッセージと対応付けられた優先度付きスロットにおいて、
優先度の高い前記メッセージに対応付けられた前記スロットほど狭い間隔を設ける手段と、優先度の低い前記メッセージに対応付けられた前記スロットには広い間隔を設ける手段を有することを特徴とする請求項１，２記載の車両制御ネットワーク中継装置。
【請求項４】
優先度付きイベントトリガ型ネットワークで予め定義されたメッセージと対応付けられた優先度付きスロットにおいて、
前記スロットに対応付けられていない前記メッセージを格納することを許す手段を有することを特徴とする請求項１，２，３記載の車両制御ネットワーク中継装置。
【請求項５】
優先度付きイベントトリガ型ネットワークで予め定義されたメッセージと対応付けられた優先度付きスロットにおいて、
前記スロットに対応付けられていない前記メッセージを格納する場合、優先度の高い前記メッセージから順に前記スロットに格納する手段を有することを特徴とする請求項１，２，３，４記載の車両制御ネットワーク中継装置。
【請求項６】
優先度付きイベントトリガ型ネットワークで動作させることを前提に開発したイベントトリガ型アプリケーションの変更なしにタイムトリガ型ネットワークで動作させる手段を有することを特徴とする車両制御ネットワーク中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は異なるネットワーク間においてデータを中継する装置に関する。
【背景技術】
【０００２】
最近の自動車では、制御の変化に伴い車両に搭載される機器の電子化と車載ＬＡＮ（Local Area Network）の構築が進んでいる。この車載ＬＡＮの一つとして、広く利用されているネットワークにＣＡＮがある（特許文献１）。ＣＡＮ（Controller Area Network）は優先度付きイベントリガ型ネットワークである。
【０００３】
一方で、車両システムの高機能化に伴い転送するデータ量が増大してきており、より高速で且つ信頼性の高いネットワークが求められている。これらの条件を満たす高速ネットワークの一つにＦｌｅｘＲａｙ（Daimler Chrysler ＡＧの登録商標）がある。ＦｌｅｘＲａｙはＣＡＮの最大伝送レートと比べると大量のデータ量を送ることが可能である。ＦｌｅｘＲａｙはタイムトリガ型ネットワークであるため、転送するメッセージの到着時間を保証することが可能であり、信頼性が重視される車両システムに適している。
【０００４】
最近の車両システムではＣＡＮとＦｌｅｘＲａｙが混在しており、一台の組み込みコントローラに前記二つのネットワークが接続されている。そのため、ＣＡＮとＦｌｅｘＲａｙを経由した伝送が必要とされ、ＦｌｅｘＲａｙとＣＡＮの通信交換を行うメッセージ変換装置がある（特許文献２）。
【０００５】
この提案されたメッセージ変換装置は、ＦｌｅｘＲａｙ等の前記タイムトリガ型ネットワークから受信したデータを前周期と比較し、変更されている場合のみ前記イベントトリガ型ネットワークに送信する機能を備える。
【０００６】
また、ＦｌｅｘＲａｙとＣＡＮにおけるメッセージの変換処理の負担を軽減し、効率よくメッセージを転送する通信メッセージ変換装置がある（特許文献３）。
【０００７】
これら通信メッセージ変換装置は予め定められた格納順序に従って、複数のＣＡＮメッセージを一つのＦｌｅｘＲａｙフレームに格納する機能を備える。
【０００８】
さらに、性質の異なるネットワーク間で優先度の高いメッセージを早く送信する機能を備えたネットワーク間通信装置が特許文献４である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００３−２６４５６７号公報
【特許文献２】ＷＯ０１／０４５３２９号公報
【特許文献３】特開２００５−３２８１１９号公報
【特許文献４】特開２００７−１９６９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来のメッセージ変換装置は、ＦｌｅｘＲａｙ等のタイムトリガ型ネットワークから受信したデータを前周期と比較し、変更されている場合のみ前記データをＣＡＮ等のイベントトリガ型ネットワークに送信する。変更されたデータが大量である場合、前記イベントトリガ型ネットワークに送信されるデータのうち、あらかじめ設計した規定時間内に送信されないデータが現れるという第一の課題がある。
【００１１】
また、従来のメッセージ変換装置は、受信したＣＡＮコントローラからのメッセージをＦｌｅｘＲａｙフレームに格納する際、高い優先度のメッセージを優先的に格納するよう変換している。そのため、高い優先度のＣＡＮのメッセージが多発した場合、低い優先度のＣＡＮのメッセージがＦｌｅｘＲａｙフレームへ格納されず、低い優先度のメッセージが送信される時間を予測できない第二の課題がある。
【００１２】
また、開発済みのＣＡＮを使用するアプリケーションをＦｌｅｘＲａｙに対応させる際には、前記開発済みアプリケーションを修正してＦｌｅｘＲａｙに対応させる、又は新規にＦｌｅｘＲａｙを使用するアプリケーションとして開発する必要があるため、多大な工数が発生するという第三の課題がある。
【００１３】
本発明は上記課題を解決し、優先度付きイベントトリガ型ネットワークとタイムトリガ型ネットワークの双方を備えた組み込み制御システムにおいて実行可能な、高い信頼性を備えたＦｌｅｘＲａｙを使用するアプリケーションを開発可能とすることを目的とし、その実現に当たっては開発済みのＣＡＮを使用するアプリケーションの再利用性を向上させ、ＦｌｅｘＲａｙを使用するシステムの開発コストの増大を抑制することを目的とする。
【課題を解決するための手段】
【００１４】
本発明では、車両制御ネットワーク中継装置は、イベントトリガ型ネットワークとタイムトリガ型ネットワークに接続され、イベントトリガ型ネットワークとタイムトリガ型ネットワークを使用するアプリケーションと、イベントトリガ型ネットワークのデータ形式をタイムトリガ型ネットワークのデータ形式に変換し、振り分けるデータ変換振り分けモジュールと、イベントトリガ型ネットワークとタイムトリガ型ネットワークの送受信操作を行う通信制御モジュールとを有することを特徴とする。
【００１５】
データ変換割り振りモジュールはタイムトリガ型ネットワーク（例えばＦｌｅｘＲａｙ）の各々のフレームを一定の間隔で分割し、予め優先度付けを行ったデータを格納する領域（スロット）を複数種類設け、優先度付きイベントトリガ型ネットワーク（例えばＣＡＮ）で定義された優先度付きのメッセージを、予め設定した優先度に対応するスロットへ格納する。これによって第一，第二の課題を解決し、上記目的を達成する。
【００１６】
データ変換割り振りモジュールは前記イベントトリガ型ネットワークに対応した通信制御ソフトウェアと共通のインタフェースを備える。これによって前記イベントトリガ型ネットワークを使用するアプリケーションの変更なしに前記タイムトリガ型ネットワークに対応可能となるため、本発明は第三の課題を解決し上記目的を達成する。
【発明の効果】
【００１７】
前記構成によれば低い優先度のメッセージであっても格納するスロットを最低一つ以上確保できるため、前記低い優先度のメッセージが送信される時間が予測可能となり、高い信頼性を備えたシステムの開発が可能になる。
【００１８】
タイムトリガ型ネットワーク制御モジュールとイベントトリガ型ネットワーク制御と共通のインタフェースを備えたことにより、既存のイベントトリガ型ネットワークを使用するアプリケーションを修正せずにタイムトリガ型ネットワークを使用するシステムが開発可能となり、前記アプリケーションが再利用可能であるため、開発コストの増大を抑制することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施例の車両制御ネットワーク中継装置の構成を示す図。
【図２】本発明の一実施例のＥＣＵのソフトウェア構成を示す図。
【図３】本発明の一実施例のＦｌｅｘＲａｙフレームにおけるスロットの作成を示す図。
【図４】レートモノトニックスケジューリングの制約式を示す図。
【図５】本発明の一実施例のデータ変換割り振りモジュールに送信要求を行うフローチャートを示す図。
【図６】本発明の一実施例のパケット変換テーブルを示す図。
【図７】本発明の一実施例の送信要求テーブルを示す図。
【図８】本発明の一実施例のデータ変換割り振りモジュールがＦｌｅｘＲａｙ通信制御モジュールを用いてデータ送信するフローチャートを示す図。
【図９】本発明の一実施例のパックロケーションテーブルを示す図。
【図１０】本発明の一実施例のＦｌｅｘＲａｙパケットテーブルを示す図。
【図１１】本発明の一実施例のＦｌｅｘＲａｙから受信したデータを格納するフローチャートを示す図。
【図１２】本発明の一実施例のアンパックロケーションテーブルを示す図。
【図１３】データ変換割り振りモジュールを用いた再利用の様子を示す図。
【発明を実施するための形態】
【００２０】
以下本発明を実施するための実施例を説明する。
【実施例１】
【００２１】
以下に本発明の実施の一形態を図面と共に説明する。なお、本実施例では車両システムのゲートウェイコントローラに本発明を実施した例を挙げる。優先度付きイベントトリガ型ネットワークをＣＡＮ、タイムトリガ型ネットワークをＦｌｅｘＲａｙとして扱う。
【００２２】
図１は本発明が実施された車両制御ネットワーク中継装置の構成を示している。Ａはゲートウェイ（ＧＷ）の機能を備えた電子制御ユニット（ＥＣＵ）を示し、ＣＡＮとＦｌｅｘＲａｙに接続されている。ＡのＥＣＵはＡ１のアプリケーション，Ａ２のデータ変換割り振りモジュール，Ａ３通信制御モジュール，Ａ４のオペレーティングシステムを備えている。
【００２３】
Ａ１のアプリケーションはＣＡＮとＦｌｅｘＲａｙの通信を仲介するゲートウェイアプリケーションである。
【００２４】
Ａ２のデータ変換割り振りモジュールは入力されるＣＡＮ形式のデータを分析し、対象のスロットへ格納する機能を備える。
【００２５】
Ａ３の通信制御ソフトウェアは通信コントローラを制御し、ネットワークを介したデータの送信と受信を実現するプログラムである。Ａ４のオペレーティングシステムはプログラムを実行するときに必要な基本的な機能を提供する。
【００２６】
図２は図１の１台のＥＣＵをソフトウェアの構造をより詳しく記述し、モジュール間の依存関係を示している。１はゲートウェイアプリケーションであり、図１のＡ１と等しい。２は図１のＡ２と同様のデータ変換割り振りモジュールであり、データ変換割り振りインタフェース，パケット変換モジュール，パケット変換テーブル，パケットデータ送信バッファ，送信要求テーブル，パケットスケジューラ，パックロケーションテーブル，ＦｌｅｘＲａｙパケットテーブル，アンパックロケーションテーブル，パケットデータ受信バッファから成る。２１はデータ変換割り振りインタフェースであり、ＣＡＮのメールボックスを識別するメッセージのＣＡＮＩＤと送信するデータを引数として１のアプリケーションから呼ばれる。
【００２７】
２１のデータ変換割り振りインタフェースの関数呼び出しは、ＣＡＮ通信制御モジュールの送信処理関数のＡＰＩ（Application Program Interface）と等しい。２１のデータ変換割り振りインタフェースは受け取った引数を入力として２２のパケット変換モジュールの関数を呼び出す。
【００２８】
２２のパケット変換モジュールは２３のパケット変換テーブルを参照し、引数であるメッセージのＣＡＮＩＤを用いて、２４のパケットデータ送信バッファを識別するインデックスを求める。２２のパケット変換モジュールは引数である送信するデータを２４のパケットデータ送信バッファに格納し、引数のデータに対応した２５の送信要求テーブルの送信要求を示すフラグを有効にする。
【００２９】
２６はパケットスケジューラであり、３の周期実行モジュールによって周期的に起動される。２６のパケットスケジューラは２５の送信要求テーブルの前記フラグが有効であるとき、有効であるフラグに対応した２７のパックロケーションテーブルから送信するデータを格納するスロットの位置情報を取得する。また２６のパケットスケジューラはＦｌｅｘＲａｙコントローラが受信したデータを２９のアンパックロケーションテーブルに参照し、受信したフレームから対応するデータを２９のパケットデータ受信バッファに格納する。２６のパケットスケジューラの送信処理と受信処理を実行する順序は問わない。３の周期実行モジュールは周期的に他の関数を呼び出す機能を備え、本実施例では周期的に２６のパケットスケジューラの関数を呼び出す。４はＦｌｅｘＲａｙ通信制御モジュールであり、ＦｌｅｘＲａｙコントローラを操作し、ＦｌｅｘＲａｙを用いた送信処理と受信処理を実現するプログラムである。
【００３０】
図３はＦｌｅｘＲａｙフレームにおいてスロットが作成する様子を示している。ＦｌｅｘＲａｙフレームを複数種類に分割し、各々に優先度を割り振られたスロットは、送信するデータをメッセージのＣＡＮＩＤに応じて前記スロットに格納する。
【００３１】
例えば、この実施例では各々のＦｌｅｘＲａｙフレームが５１のように等しい大きさに分割され、スロットに対して三段階の優先度付けが行われている。５２，５３，５４は前記スロットを示しており、５２のスロットが優先度「０」、５３のスロットが優先度「１」、５４のスロットが優先度「２」である。優先度の値が小さいほど優先度が高いことを示す。ＣＡＮで定義された優先度付きデータが送信要求状態であることを示す、図２の２５の送信要求テーブルのフラグが有効である場合、前記フラグに対応した図２の２４のパケットデータ送信バッファに格納されたデータを、前記データの優先度に対応する前記スロットへ優先的に格納する。
【００３２】
この処理は前記データの優先度に対応する前記スロットに空きがなくなるか、又は前記フラグに対応する前記パケットデータ送信バッファに格納されたデータがすべて前記スロットに格納されるまで続く。前記データの優先度に対応する前記スロットに空きがなく他のスロットに空きがある場合、空きがあるスロットにデータを格納してもよい。
【００３３】
つまり優先度の低い空きスロットがあり、ＣＡＮで定義された優先度の低いデータが送信要求状態である場合には、前記データを優先的に格納する。またスロットは、対応する優先度を備えたデータが送信要求状態でない場合には、他の前記状態のデータを格納する。前記状態のデータがない場合には、スロットは何も格納しない。ＣＡＮで定義された優先度付きデータと優先度付きスロットは多対多に対応している。
【００３４】
これにより第一，第二の課題である「規定時間内に送信されないデータが現れる」課題と「低い優先度のメッセージが送信される時間を予測できない」課題が解決される。
【００３５】
優先度が等しいスロットは一定の間隔で配置され、高い優先度のスロットほど短い間隔、低い優先度のスロットほど長い間隔で設けられる。この実施例では、優先度の低いデータを格納するスロットの間隔は、優先度の高いデータを格納するスロットの間隔よりも二倍の間隔が設けられている。図２の２６のパケットスケジューラは、ＣＡＮで定義された優先度付けされたデータを図２の２７のパックロケーションテーブルに従ってその優先度に応じたスロットに格納する。上記の優先度とスロットの周期との関係は、レートモノトニックスケジューリング方式に則っている。
【００３６】
レートモノトニックスケジューリングとは、非特特許文献１に示される通り、実行周期と実行期限を備えるタスクに実行周期／実行期限が短いほど高い固定優先度を設定し、これら固有の周期をもつＮ個の周期的タスクにおいて、ＣＰＵ使用率がレートモノトニックスケジューリングの制約式（図４）を満たすならば常にデッドラインを満たしてスケジュールできることを保証するスケジューリング方式である。
【００３７】
この方式によれば前記第１の課題であった、特定の処理が規定時間内に終了することを保証できなくなる、という課題を解決可能となる。
【００３８】
図５は図２のソフトウェア構造において、図２の１のアプリケーションがＣＡＮ通信制御モジュールのインタフェースを呼び出す操作と同様の操作で、データ変換割り振りモジュールに送信要求を行う流れを示すフローチャートである。１Ａはアプリケーションの処理であり、図２の２１のデータ変換割り振りインタフェースの関数を呼び出す。前記データ変換割り振りインタフェースとＣＡＮ制御通信モジュールは等しいインタフェースを備える。
【００３９】
この実施例では、図２の２１のデータ変換割り振りインタフェースを呼ぶ引数はメッセージのＣＡＮＩＤと送信するデータである。２１Ａは呼ばれたデータ変換割り振りインタフェースの関数の処理であり、自身が受け取った前記引数を入力として図２の２５のパケット変換モジュールの関数を呼ぶ。
【００４０】
２２Ａは呼ばれたパケット変換モジュールの関数の処理であり、図２の２３，図６のパケット変換テーブルを参照する。図６のパケット変換テーブルは２３１のＣＡＮメッセージのＩＤと２３２のインデックスから構成される。この実施例ではＣＡＮメッセージのＩＤが「１」ならばインデックスが「０」、ＣＡＮメッセージのＩＤが「４」ならばインデックスが「１」、ＣＡＮメッセージのＩＤが「１１」ならばインデックスが「２」、ＣＡＮメッセージのＩＤが「２５」ならばインデックスが「３」と対応している。２２Ａは、前記パケット変換テーブルを参照し、受け取った引数のメッセージのＣＡＮＩＤに対応したインデックスを取得する。
【００４１】
２２Ｂは２２Ａから続いて実行されるパケット変換モジュールの処理であり、前記インデックスを用いて図２の２１のパケットデータ送信バッファに前記引数の送信するデータを格納する。
【００４２】
２２Ｃは２２Ｂから続いて実行されるパケット変換モジュールの処理であり、図７の２４１のインデックスと図７の２４２の送信要求フラグから構成される図２の２５、図７の送信要求テーブルを前記インデックスに従って操作する。送信要求フラグは送信要求状態であるデータがあることを示し、「０」は「無効（送信要求なし）」を、「１」は「有効（送信要求あり）」を示す。この実施例ではインデックス「０」に対応する送信要求フラグが「０」を、インデックス「１」に対応する送信要求フラグが「１」を、インデックス「２」に対応する送信要求フラグが「０」を、インデックス「３」に対応する送信要求フラグが「０」を示す。２２Ｃは２２Ｂから続いて実行される処理であり、インデックスに対応する送信要求フラグを「有効」にする。２２Ｃの処理の後、図１の１のアプリケーションへプログラムの実行が移り、１Ａの直後からプログラムが再開される。
【００４３】
図８は図２のソフトウェア構造において、図２の２のデータ変換割り振りモジュールが図２の４のＦｌｅｘＲａｙ通信制御モジュールを用いてデータを送信する流れを示すフローチャートである。
【００４４】
３Ａは図２の３の周期実行モジュールの処理であり、オペレーティングシステムの周期タスク、ＦｌｅｘＲａｙのコミュニケーションサイクルやマクロティックの割り込み、ハードウェアタイマによって周期的に図２の２６のパケットスケジューラの送信処理関数を呼ぶ。
【００４５】
２６Ｄは３Ａから呼ばれるパケットスケジューラの関数の処理であり、図２の２５の送信要求テーブルの送信要求フラグを確認する。
【００４６】
２６Ｅは２６Ｄから続いて実行される処理であり、前記フラグのすべてが「無効」ならば２６Ｊへ処理が移り、「有効」ならば２６Ｆへ処理が移る条件分岐処理である。
【００４７】
２６Ｆは前記フラグが「有効」のときに実行される処理であり、図７の送信要求テーブルに従って、「有効」である前記フラグからインデックスを取得する。そして２６Ｆは、前記インデックスを用いて図２の２７，図９のパックロケーションテーブルからフレームＩＤと格納するスロットの位置を取得する。図９のパックロケーションテーブルは２７１のインデックス，２７２の識別子，２７３の優先度，２７４のフレームＩＤ，２７５，２７７，２７９のスロットの位置，２７６，２７８，２７０の格納完了フラグで構成される。優先度は格納するスロットの優先度を、識別子は送信するデータを識別するＩＤを、フレームＩＤはＦｌｅｘＲａｙのフレームのＩＤを、スロットの位置は優先度に応じたスロットの位置を、格納完了フラグはスロットにデータが格納されたことを示す。
【００４８】
この実施例では、前記パックロケーションテーブルはインデックスが「０」ならば優先度「０」と識別子「０」とフレームＩＤ「０」を、インデックスが「１」ならば優先度「１」と識別子「１」とフレームＩＤ「１」を、インデックスが「２」ならば優先度「１」と識別子「２」とフレームＩＤ「１」を、インデックスが「３」ならば優先度「２」と識別子「３」とフレームＩＤ「２」を示す。また優先度が「０」ならばスロットの位置は「０」「２０」「４０」「６０」を、優先度が「１」ならばスロットの位置は「１０」「５０」を、優先度が「２」ならばスロットの位置は「３０」「７０」を示す。
【００４９】
送信完了フラグはその値が「０」のとき「無効」を、「１」のとき「有効」を示す。この実施例では、前記パックロケーションテーブルはスロットの位置が「０」ならば格納完了フラグ「１」を、スロットの位置がそれ以外ならば「０」を示す。
【００５０】
２６Ｇは２６Ｆに続いて実行される処理であり、２６Ｆで取得したインデックスを用いて図２の２４のパケットデータ送信バッファの値を取得し、２６Ｆで取得したフレームＩＤとスロットの位置情報を用いて、図２の２８，図１０のＦｌｅｘＲａｙパケットテーブルのデータバッファに前記パケットデータ送信バッファの値を格納する。
【００５１】
図１０のＦｌｅｘＲａｙパケットテーブルは、２８１のインデックス，２８２のフレームＩＤ，２８３のペイロード長，２８４のＣＲＣ，２８５のデータバッファから構成されている。フレームＩＤはＦｌｅｘＲａｙのフレームＩＤを、ペイロード長はＦｌｅｘＲａｙのペイロード長を、ＣＲＣはＦｌｅｘＲａｙのＣＲＣを、データバッファはフレームで送信されるデータを示す。この実施例では前記ＦｌｅｘＲａｙパケットテーブルは、インデックスが「０」ならばフレームＩＤが「０」を、ペイロード長が「６４」を、ＣＲＣが「５８」を、データバッファが「０」を示し、インデックスが「１」ならばフレームＩＤが「１」を、ペイロード長が「６４」を、ＣＲＣが「５」を、データバッファが「０」を示し、インデックスが「２」ならばフレームＩＤが「２」を、ペイロード長が「６４」を、ＣＲＣが「１０９」を、データバッファが「０」を示す。なお、ＦｌｅｘＲａｙパケットテーブルはこの項目に限ることはない。
【００５２】
２６Ｈは２６Ｇに続いて実行される処理であり、格納したスロットの位置に対応した格納完了フラグを有効にする。
【００５３】
２６Ｉは２６Ｈに続いて実行される処理でもあり、格納したパケットデータ送信バッファのインデックスに応じた図７の送信要求テーブルの送信要求フラグを無効にする。２６Ｉの処理の後、２６Ｅの処理が実行される。
【００５４】
２６Ｊは図７の送信要求フラグがすべて「無効」のときに実行される処理であり、図９の格納完了フラグを確認する。
【００５５】
２６Ｋは２６Ｊに続いて実行される処理であり、前記フラグのすべてが「無効」ならば図２の２６のパケットスケジューラの送信処理関数を終了し、「有効」ならば、２６Ｌへ処理が移る条件分岐処理である。
【００５６】
２６Ｌは前記フラグが「有効」であるときに実行される処理であり、図２の２５、図７の送信要求テーブルを参照し、「有効」である前記フラグからインデックスを取得する。そして２６Ｌは、図２の２８，図１０のＦｌｅｘＲａｙパケットテーブルを参照し、インデックスの値を用いてＦｌｅｘＲａｙ通信制御モジュールの送信処理関数の引数を取得する。
【００５７】
２６Ｍは２６Ｌに続いて実行される処理であり、２６Ｌで取得した前記引数を入力として、図２の４のＦｌｅｘＲａｙ通信制御モジュールの送信処理関数を呼び出す。
【００５８】
４Ａは図２の４のＦｌｅｘＲａｙ通信制御モジュールの処理であり、入力された引数を用いて、引数に対応したフレームに引数のデータバッファの値を格納し送信する。
【００５９】
４Ｂは４Ａに続いて実行される処理であり、前記送信処理に対応するＦｌｅｘＲａｙフレームの送信が失敗したならばエラー処理を実行し、成功したならば図２の４のＦｌｅｘＲａｙ通信制御モジュールの送信処理関数を終了し、２６Ｎのパケットスケジューラの処理へプログラムの実行が移る条件分岐処理である。
【００６０】
２６Ｎは図２の２６のパケットスケジューラの処理であり、送信が成功したスロットに対応した図２の２５の送信要求テーブルの送信要求フラグを無効にする。以上で図２の２６のパケットスケジューラの送信処理関数が終了する。
【００６１】
このフローはＣＡＮ通信制御モジュールの送信処理，ＦｌｅｘＲａｙ通信制御モジュールの送信処理，送信方式に大きく影響を受けるため、送信処理は図５，図６に限ったことではない。例えば、送信処理の引数や返戻値が異なっている場合や、送信方式が同期型通信又は非同期型通信である場合が挙げられる。
【００６２】
図１１は図２のソフトウェア構造において、受信したＦｌｅｘＲａｙフレームのデータをグローバル変数へ格納する流れを示すフローチャートである。グローバル変数はＣＡＮ通信制御モジュールの受信処理によって受信したデータを格納するグローバル変数と等しい。
【００６３】
３Ｂは図２の３の周期実行モジュールの処理であり、オペレーティングシステムの周期タスクやＦｌｅｘＲａｙのコミュニケーションサイクルやマクロティックの割り込み、ハードウェアタイマによって周期的に図２の２６のパケットスケジューラの受信処理を呼ぶ。パケットスケジューラの送信処理と受信処理を実行する順番は問わない。またパケットスケジューラを実行する周期は送信処理と受信処理において必ずしも同一の周期に実行しなくても良い。
【００６４】
２６Ｏは図２の２６のパケットスケジューラの処理であり、ＦｌｅｘＲａｙフレームを受信したことを示す受信完了フラグを確認する。受信完了フラグはＦｌｅｘＲａｙコントローラのレジスタで実装される。
【００６５】
２６Ｐは２６Ｏに続いて実行される処理であり、２６Ｏで確認した前記フラグがすべて「無効」であるならば図２の２６の受信処理関数を終了した後に３Ｂの次からプログラムを再開し、「有効」であるならば２６Ｑの処理へ進む条件分岐処理である。
【００６６】
２６Ｑは２６Ｐに続いて実行される処理であり、図２の２０，図１２のアンパックロケーションテーブルを参照し、前記有効状態のフラグに応じたフレームＩＤを獲得する。図１２のアンパックロケーションテーブルは２９１の受信完了フラグ，２９２のフレームＩＤ，２９３の識別子，２９４の優先度，２９５，２９６のスロットの位置で構成される。受信完了フラグはＦｌｅｘＲａｙフレームを受信したことを、フレームＩＤはＦｌｅｘＲａｙのフレームのＩＤを、識別子は受信したデータを識別するＩＤを、優先度は受信したスロットの優先度を、スロットの位置は優先度に応じたスロットの位置を示す。
【００６７】
この実施例では、前記アンパックロケーションテーブルは受信完了フラグが「１」ならばフレームＩＤ「０」と識別子「１」と優先度「０」を、受信完了フラグが「２」ならばフレームＩＤ「１」と識別子「２」と優先度「１」を示す。また優先度が「０」ならばスロットの位置は「０」「２０」「４０」「６０」を、優先度が「１」ならばスロットの位置は「１０」を示す。
【００６８】
２６Ｒは２６Ｑに続いて実行される処理であり、前記フレームＩＤを入力としてＦｌｅｘＲａｙ通信制御モジュールの受信処理関数を呼び出す。
【００６９】
４Ｄは図２の４のＦｌｅｘＲａｙ通信制御モジュールの受信処理関数であり、入力されたフレームＩＤを参照し、受信したフレームのデータを呼び出し元に出力する。
【００７０】
２６Ｓは図２の２６のパケットスケジューラの処理であり、前記出力データを前記フラグを用いて図２の２０のアンパックロケーションテーブルからパケットの位置情報とインデックスを取得し、対象のデータを図２の２９のパケットデータ受信バッファに格納する。その後、再度２６Ｏの処理を呼び出し、ＦｌｅｘＲａｙコントローラの受信完了フラグすべて無効になるまで繰り返す。データ変換割り振りモジュールを用いることでアプリケーションはＣＡＮ通信制御モジュールと同様の操作でデータを受信できる。また、パケットデータ受信バッファはＣＡＮ通信制御モジュールがＣＡＮから受信したデータを格納する変数と等しいため、アプリケーションはＣＡＮ通信制御モジュール使用時と同様の操作で受信したデータを取得できる。
【００７１】
この実施例ではＣＡＮ通信制御モジュールの受信処理により受信されるデータがグローバル変数に格納されることを想定しており、アプリケーションは前記グローバル変数を介して受信データを取得する。しかし、受信データの受け渡しはこれに限るものではなく、それに応じて図１１に示したＦｌｅｘＲａｙから受信したデータをＣＡＮに対応したデータへ格納するまでのフローも変更される。
【００７２】
図１３はデータ変換割り振りモジュールを使用し、開発済みであるＣＡＮアプリケーションを再利用する様子を示している。（ａ）の場合、Ｂ１のＣＡＮアプリケーションはＦｌｅｘＲａｙに対応していないため再利用できず、Ｃ１のＦｌｅｘＲａｙに対応したアプリケーションを新規に開発するか、又は前記ＣＡＮアプリケーションを修正しＦｌｅｘＲａｙに対応させる必要があり、開発コストが増大する課題がある。（ｂ）の場合、Ｂ１のＣＡＮアプリケーションはＦｌｅｘＲａｙに対応していないが、Ｄ１のデータ変換割り振りモジュールがＢ２のＣＡＮ通信制御モジュールと共通のインタフェースを備えるため、前記ＣＡＮアプリケーションを変更せずにＦｌｅｘＲａｙを使用したシステムの構築が可能になる。これにより、開発コストの増大を抑えることが可能である。
【産業上の利用可能性】
【００７３】
図３の５５のように一つのフレームの転送時間において同じ優先度のスロットは周期的に転送される。また、優先度に関わらず各々のスロットの転送時間は等しい。これにレートモノトニックスケジューリング方式を適用することで、システム構築時にメッセージが転送可能であるかが検証可能になり、システムを実行して行うテストの量が減る。これによって開発コストの増大を抑制する。
【図１】
2010178098.tif 000003
【図２】
2010178098.tif 000004
【図３】
2010178098.tif 000005
【図４】
2010178098.tif 000006
【図５】
2010178098.tif 000007
【図６】
2010178098.tif 000008
【図７】
2010178098.tif 000009
【図８】
2010178098.tif 000010
【図９】
2010178098.tif 000011
【図１０】
2010178098.tif 000012
【図１１】
2010178098.tif 000013
【図１２】
2010178098.tif 000014
【図１３】
2010178098.tif 000015