(57)【要約】【課題】  多チャネル化されても、ルーティング処理にかかる時間を増大させない車載ゲートウェイ装置を提供する。【解決手段】  複数の通信チャネル間でフレームデータの転送制御を行う車載ゲートウェイ装置１であって、複数の通信チャネル間でフレームデータの振り分けを行う検索エンジン部１１と、振り分けられたフレームデータを一時的に蓄積する送信ＦＩＦＯ２１とを複数の通信チャネルごとに設けた構成を備えている。複数の通信チャネルごとに検索エンジン部１１と、送信ＦＩＦＯ２１とを設けたことにより、ルーティングの並列処理が可能となる。このため、車載ゲートウェイ装置が多チャネル化されても、ルーティング処理にかかる時間を増大させない。【選択図】        図２
2006333438.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信チャネル間でフレームデータの転送制御を行うゲートウェイ装置であって、
前記複数の通信チャネル間で前記フレームデータの振り分けを行う検索エンジン部と、前記振り分けられた前記フレームデータを一時的に蓄積する第１蓄積部とを前記複数の通信チャネルごとに設けたことを特徴とするゲートウェイ装置。
【請求項２】
前記検索エンジン部を、ハードウェアで構成したことを特徴とする請求項１記載のゲートウェイ装置。
【請求項３】
前記複数の通信チャネルごとに設けられた前記検索エンジン部は、入力した前記フレームデータの経路選択を行うルーティングマップをそれぞれ具備することを特徴とする請求項１記載のゲートウェイ装置。
【請求項４】
前記検索エンジン部は、前記ルーティングマップのアドレスを発生するアドレス生成部と、
前記ルーティングマップから前記アドレスのルーティング情報を取得するルーティングマップ部と、
前記ルーティングマップから取得したルーティング情報に含まれるＩＤと、前記フレームデータ内に含まれるＩＤとを比較し、両者が一致すると前記ルーティングマップから転送先のチャネルを取得して転送チャネルを決定する比較部とを有することを特徴とする請求項３記載のゲートウェイ装置。
【請求項５】
前記検索エンジン部は、前記ルーティングマップに登録されていない形式のフレームデータを破棄することを特徴とする請求項３記載のゲートウェイ装置。
【請求項６】
前記第１蓄積部は、多段構成のＦＩＦＯを具備することを特徴とする請求項１記載のゲートウェイ装置。
【請求項７】
前記第１蓄積部に蓄積された前記振り分け後の前記フレームデータを、転送先の前記通信チャネルへ送信処理する制御部を具備することを特徴とする請求項１記載のゲートウェイ装置。
【請求項８】
前記第１蓄積部に蓄積された前記振り分け後の前記フレームデータを、転送先の前記通信チャネルへ自動送信するＤＭＡコントローラ部を有することを特徴とする請求項１記載のゲートウェイ装置。
【請求項９】
前記第１蓄積部に蓄積されたフレームデータ数をカウントするカウンタ部を有することを特徴とする請求項１記載のゲートウェイ装置。
【請求項１０】
前記検索エンジン部は、前記カウンタ部でカウントする前記フレームデータのカウント数が所定値となると、前記ゲートウェイ装置を制御する制御部に対して割込み信号を出力することを特徴とする請求項９記載のゲートウェイ装置。
【請求項１１】
前記検索エンジン部によってルーティングされた前記フレームデータを前記第１蓄積部に蓄積するときに、前記複数の通信チャネル間の調停を行う第１調停部を具備することを特徴とする請求項１記載のゲートウェイ装置。
【請求項１２】
前記第１調停部は、前記複数の通信チャネルごとに優先度を設定したレジスタ部を備え、前記第１蓄積部への前記フレームデータの書き込みが同時に発生した場合、前記優先度の高い順に前記第１蓄積部に前記フレームデータを書き込むことを特徴とする請求項１１記載のゲートウェイ装置。
【請求項１３】
前記検索エンジン部は、前記フレームデータのルーティング時に、データの送信の際に必要な情報の前記フレームデータ中での記録位置を示す付加データを付加することを特徴とする請求項７記載のゲートウェイ装置。
【請求項１４】
前記検索エンジン部は、入力した前記フレームデータの前記振り分け時にルーティングエラーが生じると、前記ゲートウェイ装置を制御する制御部に対して割込み信号を出力することを特徴とする請求項１記載のゲートウェイ装置。
【請求項１５】
前記検索エンジン部は、前記ルーティングマップの検索により、入力した前記フレームデータがルーティング対象のフレームであると判定すると、前記ルーティングマップのエラーチェックを実施することを特徴とする請求項３記載のゲートウェイ装置。
【請求項１６】
前記複数の通信チャネルごとに設けられた前記第１蓄積部の有効と無効とを設定するレジスタ部を備えることを特徴とする請求項１記載のゲートウェイ装置。
【請求項１７】
前記検索エンジン部は、前記第１蓄積部に蓄積可能な前記フレームデータの数を超えて前記フレームデータの前記第１蓄積部への転送が行われた場合に、前記第１蓄積部のオーバーフローと判定し前記ゲートウェイ装置を制御する制御部にエラー通知の割込み信号を出力することを特徴とする請求項１記載のゲートウェイ装置。
【請求項１８】
振り分けされた前記フレームデータを入力してから、前記フレームデータが転送先の通信チャネルに送信されるまでの時間を計時する計時手段を備え、
前記ゲートウェイ装置を制御する制御部は、前記計時手段の計時時間によって前記フレームデータの滞留を検知することを特徴とする請求項１記載のゲートウェイ装置。
【請求項１９】
前記検索エンジン部は、前記フレームデータの転送先となる通信チャネル、又は前記フレームデータを蓄積する第１蓄積部が存在しないか有効に機能していない場合に、前記ルーティングエラーと判定し前記ゲートウェイ装置を制御する制御部にエラー通知の割込み信号を出力することを特徴とする請求項１４記載のゲートウェイ装置。
【請求項２０】
複数の通信チャネル間でフレームデータの転送制御を行うゲートウェイ装置であって、
入力したフレームデータを、プログラム制御された制御部で処理するフレームデータと、ハードウェアで処理するフレームデータとに振り分ける振り分け部と、
前記ハードウェアで処理するフレームデータを転送先ごとに振り分ける検索エンジン部と、
前記振り分けされたフレームデータを一時的に蓄積する第１蓄積部と、を有することを特徴とするゲートウェイ装置。
【請求項２１】
複数の通信チャネルから転送されたフレームデータを前記検索エンジン部に入力するタイミングを調整するセレクタ部を有することを特徴とする請求項２０記載のゲートウェイ装置。
【請求項２２】
前記検索エンジン部と前記第１蓄積部とは、複数の通信チャネルに対して１つ設けられることを特徴とする請求項２０又２１記載のゲートウェイ装置。
【請求項２３】
前記検索エンジン部で振り分けられたフレームデータを、前記第１蓄積部とは別に蓄積する第２蓄積部を有することを特徴とする請求項２０から２２のいずれか一項記載のゲートウェイ装置。
【請求項２４】
前記検索エンジン部は、優先度の高いフレームデータを前記第２蓄積部に蓄積し、
前記制御部は、前記優先度の高いフレームデータを前記第２蓄積部から取得することを特徴とする請求項２３記載のゲートウェイ装置。
【請求項２５】
前記制御部は、前記フレームデータに付加されたデータラベルを参照して、データの加工、送信時の処理、フェールセーフ時の処理を実行することを特徴とする請求項２０から２４のいずれか一項記載のゲートウェイ装置。
【請求項２６】
前記第１蓄積部から読み出されたフレームデータと、前記制御部から出力されるフレームデータとを、転送先ごとのバッファに格納する際の調停を行う第２調停部を有することを特徴とする請求項２０から２５のいずれか一項記載のゲートウェイ装置。
【請求項２７】
前記第１蓄積部に蓄積する前のフレームデータ、又は前記第１蓄積部から読み出したフレームデータのプロトコル変換を行うプロトコル変換部を有することを特徴とする請求項２０から２６のいずれか一項記載のゲートウェイ装置。
【請求項２８】
少なくとも前記ゲートウェイ装置の動作設定情報と、ルーティングの設定情報とを格納するレジスタを備え、
振り分け部は、これら設定情報に従って動作することを特徴とする請求項２０から２７のいずれか一項記載のゲートウェイ装置。
【請求項２９】
前記検索エンジン部は、ルーティングを行うマップ情報の正常性確認を、前記マップ情報の検索動作時、又はアイドル時に行うことを特徴とする請求項２０から２８のいずれか一項記載のゲートウェイ装置。
【請求項３０】
前記検索エンジン部は、ルーティングを行うマップ情報を複数有し、
制御対象の状態に応じて使用するマップ情報を変更することを特徴とする請求項２０から２９のいずれか一項記載のゲートウェイ装置。
【請求項３１】
前記検索エンジン部は、使用するマップ情報をメモリ部から読み出す時に、通信チャネルごとに必要なデータだけを取り出すことを特徴とする請求項２９又は３０記載のゲートウェイ装置。
【請求項３２】
前記検索エンジン部は、使用するマップ情報をメモリ部から読み出す時に、該読み出したデータのエラーチェックを実行することを特徴とする請求項３１記載のゲートウェイ装置。
【請求項３３】
前記マップ情報として登録される通信チャネルごとのエントリ数を、前記ゲートウェイ装置の転送制御の性能に応じて変更することを特徴とする請求項２９から３２のいずれか一項記載のゲートウェイ装置。
【請求項３４】
転送制御の状況に応じて、少なくとも前記振り分け部と前記第１蓄積部とを選択的に動作させる状態監視部を有することを特徴とする請求項２０から３３のいずれか一項記載のゲートウェイ装置。
【請求項３５】
前記検索エンジン部は、受信したフレームデータの転送先を記したエントリデータを前記マップ情報から取り出す際に、前記フレームデータのＩＤ番号にマスクを重ね、該当チャネルのエントリデータを検出することを特徴とする請求項２０から３４のいずれか一項記載のゲートウェイ装置。
【請求項３６】
複数の通信チャネル間でフレームデータの転送制御を行うルーティング方法であって、
入力した前記フレームデータの振り分けを前記通信チャネルごとに独立して行うステップと、
前記振り分けされた前記フレームデータを前記複数の通信チャネルごとに設けた第１蓄積部に蓄積するステップと、を有することを特徴とするルーティング方法。
【請求項３７】
複数の通信チャネル間でフレームデータの転送制御を行うルーティング方法であって、
入力したフレームデータを、プログラム制御された制御部で処理するフレームデータと、ハードウェアで処理するフレームデータとに振り分けるステップと、
前記ハードウェアで処理するフレームデータを転送先ごとに振り分けるステップと、
前記振り分けされたフレームデータを一時的に蓄積するステップとを有することを特徴とするルーティング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載され、複数の通信ネットワーク間でのデータの中継を行うゲートウェイ装置及びそのゲートウェイ装置でのルーティング方法に関する。
【背景技術】
【０００２】
近年、車両には図３８に示すようにエンジンＥＣＵ、ドア制御ＥＣＵ、エアバックＥＣＵ、オーディオＥＣＵ、ナビゲーションＥＣＵなど複数のＥＣＵが搭載されるようになってきている。これらのＥＣＵを車両に搭載された異なる通信方式及び異なる通信速度を有する複数のＬＡＮ間で通信させるには、その橋渡しをするゲートウェイ装置が必要である。特許文献１及び２には、このゲートウェイ装置のルーティング機能をソフトウェアによって実現した技術が開示されている。
【０００３】
ゲートウェイ装置は、複数の異なるネットワーク間で授受されるデータの中継を行い、通信プロトコル変換、パケットフィルタリングなどのゲートウェイ機能を実現する。これにより、異なるネットワークに接続されたノード間で通信を行うことができる。
【０００４】
【特許文献１】特開２００３−２４４１８７号公報
【特許文献２】特開２００３−２６４５７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１及び２に開示のゲートウェイ装置はいずれもソフトウェアによってその機能を実現している。このため、ルーティング以外のアプリケーションのＣＰＵ占有率が高くなってくると、中継処理に遅延が生じてしまう。
【０００６】
また、チャネル数が増加すると、中継先のチャネル検索が複雑となりルーティング処理に時間がかかるという問題が生じる。さらに、管理対象のフレームが増大すると、ルーティングのための各種情報の処理に時間を要し、ゲートウェイでの滞留時間が増大（スループットの悪化）する。ゲートウェイでのフレームの損失を抑えるためのバッファ構造が複雑になるという問題も生じる。
【０００７】
本発明は上記事情に鑑みてなされたものであり、ルーティングの効率を向上させたゲートウェイ装置及びルーティング方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するために本発明のゲートウェイ装置は、複数の通信チャネル間でフレームデータの転送制御を行うゲートウェイ装置であって、前記複数の通信チャネル間で前記フレームデータの振り分けを行う検索エンジン部と、前記振り分けられた前記フレームデータを一時的に蓄積する第１蓄積部とを前記複数の通信チャネルごとに設けた構成を備えている。このように本発明は、複数の通信チャネルごとに検索エンジン部と、第１蓄積部とを設けたことにより、ルーティングの並列処理が可能となる。このため、ゲートウェイ装置が多チャネル化されても、ルーティング処理にかかる時間を増大させない。
【０００９】
上記構成のゲートウェイ装置において、前記検索エンジン部を、ハードウェアで構成するとよい。ソフトウェアによってルーティングを行うと、ルーティング処理以外のアプリケーションの負荷が高い場合に、ルーティング処理に待機時間が生じてしまうが、ハードウェア処理でルーティングを行うことで他のアプリケーションによる待機時間を生じさせない。
【００１０】
上記構成のゲートウェイ装置において、前記複数の通信チャネルごとに設けられた前記検索エンジン部は、入力した前記フレームの経路選択を行うルーティングマップをそれぞれ具備しているとよい。各検索エンジン部がそれぞれ独立してルーティングを行うことができる。
【００１１】
上記構成のゲートウェイ装置において、前記検索エンジン部は、前記ルーティングマップのアドレスを発生するアドレス生成部と、前記ルーティングマップから前記アドレスのルーティング情報を取得するルーティングマップ部と、前記ルーティングマップから取得したルーティング情報に含まれるＩＤと、前記フレームデータ内に含まれるＩＤとを比較し、両者が一致すると前記ルーティングマップから転送先のチャネルを取得して転送チャネルを決定する比較部とを有するとよい。簡単なハードウェア装置で検索エンジン部を構成することができる。
【００１２】
上記構成のゲートウェイ装置において、前記検索エンジン部は、前記ルーティングマップに登録されていない形式のフレームデータを破棄するとよい。不必要なフレームデータのデータ転送を防止することができる。
【００１３】
上記構成のゲートウェイ装置において、前記第１蓄積部は、多段構成のＦＩＦＯを具備しているとよい。第１蓄積部を多段構成のＦＩＦＯから構成することで、複数のフレームデータを順次格納することができる。
【００１４】
上記構成のゲートウェイ装置において、前記第１蓄積部に蓄積された前記振り分け後の前記フレームデータを、転送先の前記通信チャネルへ送信処理する制御部を具備しているとよい。ルーティングされたフレームデータを転送先に送信することができる。
【００１５】
上記構成のゲートウェイ装置において、前記第１蓄積部に蓄積された前記振り分け後の前記フレームデータを、転送先の前記通信チャネルへ自動送信するＤＭＡコントローラ部を有しているとよい。ルーティングされたフレームデータを転送先に送信することができる。
【００１６】
上記構成のゲートウェイ装置において、前記第１蓄積部に蓄積されたフレームデータ数をカウントするカウンタ部を有しているとよい。従って、第１蓄積部に蓄積されているフレームデータ数をカウントして表示することができる。また、第１蓄積部がフレームデータで一杯の状態であるのか否かを判断するなど、蓄積状態を容易に把握することができる。さらに、第１蓄積部から取り出し可能なフレーム数を保証することができる。
【００１７】
上記構成のゲートウェイ装置において、前記検索エンジン部は、前記カウンタ部でカウントする前記フレームデータのカウント数が所定値となると、前記ゲートウェイ装置を制御する制御部に対して割込み信号を出力するとよい。第１蓄積部に所定数のフレームデータが蓄積されたことを制御部に通知して、送信処理等の次の処理を行うことができる。
【００１８】
上記構成のゲートウェイ装置において、前記検索エンジン部によってルーティングされた前記フレームデータを前記第１蓄積部に蓄積するときに、前記複数の通信チャネル間の調停を行う第１調停部を具備しているとよい。第１調停部が、複数の検索エンジン部から出力されるフレームの調停を行ってくれるので、検索エンジン部は、ルーティング後のデータの出力タイミング等を考慮せずにフレームデータを出力することができる。
【００１９】
上記構成のゲートウェイ装置において、前記第１調停部は、前記複数の通信チャネルごとに優先度を設定したレジスタ部を備え、前記第１蓄積部への前記フレームデータの書き込みが同時に発生した場合、前記優先度の高い順に前記第１蓄積部に前記フレームデータを書き込むとよい。従って、優先度の高い通信チャネルから優先的にフレームデータを第１蓄積部に蓄積することができる。
【００２０】
上記構成のゲートウェイ装置において、前記検索エンジン部は、前記フレームデータのルーティング時に、データの送信の際に必要な情報の前記フレームデータ中での記録位置を示す付加データを付加するとよい。従って、制御部は、この付加データを参照して送信に必要な情報を取り出すことができる。
【００２１】
上記構成のゲートウェイ装置において、前記検索エンジン部は、入力した前記フレームデータの前記振り分け時にルーティングエラーが生じると、前記ゲートウェイ装置を制御する制御部に対して割込み信号を出力するとよい。ルーティング時に生じるエラーを制御部に通知することができる。
【００２２】
上記構成のゲートウェイ装置において、前記検索エンジン部は、前記ルーティングマップの検索により、入力した前記フレームデータがルーティング対象のフレームであると判定すると、前記ルーティングマップのエラーチェックを実施するとよい。従って、ルーティングエラーを未然に防ぐことができる。
【００２３】
上記構成のゲートウェイ装置において、前記複数の通信チャネルごとに設けられた前記第１蓄積部の有効と無効とを設定するレジスタ部を備えているとよい。予め複数の第１蓄積部を設けておいて、通信チャネルの増加に対応させて無効にしていた第１蓄積部を有効にすることで、通信チャネル数に対応することができる。
【００２４】
上記構成のゲートウェイ装置において、前記検索エンジン部は、前記第１蓄積部に蓄積可能な前記フレームデータの数を超えて前記フレームデータの前記第１蓄積部への転送が行われた場合に、前記第１蓄積部のオーバーフローと判定し前記ゲートウェイ装置を制御する制御部にエラー通知の割込み信号を出力するとよい。第１蓄積部のオーバーフローを検出して、データの消失を検知することができる。
【００２５】
上記構成のゲートウェイ装置において、振り分けされた前記フレームデータを入力してから、前記フレームデータが転送先の通信チャネルに送信されるまでの時間を計時する計時手段を備え、前記ゲートウェイ装置を制御する制御部は、前記計時手段の計時時間によって前記フレームデータの滞留を検知するとよい。フレームデータの滞留を検知し、古くなるデータは破棄するといったフェールセーフ処理が可能となる。
【００２６】
上記構成のゲートウェイ装置において、前記検索エンジン部は、前記フレームデータの転送先となる通信チャネル、又は前記フレームデータを蓄積する第１蓄積部が存在しないか有効に機能していない場合に、前記ルーティングエラーと判定し前記ゲートウェイ装置を制御する制御部にエラー通知の割込み信号を出力するとよい。従って、ゲートウェイ装置に生じるルーティングエラーを検知することができる。
【００２７】
本発明のゲートウェイ装置は、複数の通信チャネル間でフレームデータの転送制御を行うゲートウェイ装置であって、入力したフレームデータを、プログラム制御された制御部で処理するフレームデータと、ハードウェアで処理するフレームデータとに振り分ける振り分け部と、前記ハードウェアで処理するフレームデータを転送先ごとに振り分ける検索エンジン部と、前記振り分けされたフレームデータを一時的に蓄積する第１蓄積部とを有している。
このように本発明は、振り分け部を設けて転送先を振り分けておくことによって、検索エンジン部での処理負荷を軽減することができる。また、優先的に制御部に送るべきフレームデータを予め転送しておくことができるので、制御部５０での処理開始時間を早めることができる。さらに、この振り分け部を設けたことによって、制御部によるソフトウェア処理と、検索エンジン部によるハード処理を並行して行うことができる。
【００２８】
上記ゲートウェイ装置において、複数の通信チャネルから転送されたフレームデータを前記検索エンジン部に入力するタイミングを調整するセレクタ部を有しているとよい。
従って、検索エンジン部と、第１蓄積部とを複数の通信チャネルで共有することができる。
【００２９】
上記ゲートウェイ装置において、前記検索エンジン部と前記第１蓄積部とは、複数の通信チャネルに対して１つ設けられるとよい。
【００３０】
上記ゲートウェイ装置において、前記検索エンジン部で振り分けられたフレームデータを、前記第１蓄積部とは別に蓄積する第２蓄積部を有するとよい。また、前記検索エンジン部は、優先度の高いフレームデータを前記第２蓄積部に蓄積し、前記制御部は、前記優先度の高いフレームデータを前記第２蓄積部から取得するとよい。
従って、優先順位の高いデータを優先的に制御部に転送することができ、制御部の処理待ち時間を低減させることができる。
【００３１】
上記ゲートウェイ装置において、前記制御部は、前記フレームデータに付加されたデータラベルを参照して、データの加工、送信時の処理、フェールセーフ時の処理を実行するとよい。
従って、データの加工、送信時の処理、フェールセーフ時の処理を制御することができ、データラベルを有効活用することができる。
【００３２】
上記ゲートウェイ装置において、前記第１蓄積部から読み出されたフレームデータと、前記制御部から出力されるフレームデータとを、転送先ごとのバッファに格納する際の調停を行う第２調停部を有するとよい。
従って、送信処理をハードウェアによっても行うことができる。
【００３３】
上記ゲートウェイ装置において、前記第１蓄積部に蓄積する前のフレームデータ、又は前記第１蓄積部から読み出したフレームデータのプロトコル変換を行うプロトコル変換部を有するとよい。
従って、転送元と転送先のノードで使用するプロトコルが異なっていても、フレームデータの転送を実現できる。
【００３４】
上記ゲートウェイ装置において、少なくとも前記ゲートウェイ装置の動作設定情報と、ルーティングの設定情報とを格納するレジスタを備え、
振り分け部は、これら設定情報に従って動作するとよい。
振り分け部だけが設定情報に従って動作するようにしたので、処理途中で、検索エンジン部や第１蓄積部が停止することがなく、振り分け部によって振り分けられたフレームデータは、必ず第１蓄積部に蓄積することができる。従って、フレームデータのロスを生じさせない。
【００３５】
上記ゲートウェイ装置において、前記検索エンジン部は、ルーティングを行うマップ情報の正常性確認を、前記マップ情報の検索動作時、又はアイドル時に行うとよい。
従って、マップ情報の正常性を確認することができる。
【００３６】
上記ゲートウェイ装置において、前記検索エンジン部は、ルーティングを行うマップ情報を複数有し、制御対象の状態に応じて使用するマップ情報を変更するとよい。
従って、制御対象の状態に応じたマップ情報を使用することができる。
【００３７】
上記ゲートウェイ装置において、前記検索エンジン部は、使用するマップ情報をメモリ部から読み出す時に、通信チャネルごとに必要なデータだけを取り出すとよい。
従って、必要な部分のデータだけを更新することができる。
【００３８】
上記ゲートウェイ装置において、前記検索エンジン部は、使用するマップ情報をメモリ部から読み出す時に、該読み出したデータのエラーチェックを実行するとよい。
従って、マップ情報のエラーを検出することができる。
【００３９】
上記ゲートウェイ装置において、前記マップ情報として登録される通信チャネルごとのエントリ数を、前記ゲートウェイ装置の転送制御の性能に応じて変更するとよい。
【００４０】
上記ゲートウェイ装置において、転送制御の状況に応じて、少なくとも前記振り分け部と前記第１蓄積部とを選択的に動作させる状態監視部を有するとよい。
従って、転送制御に必要な機能部だけを動作させ、消費電力を削減させることができる。
【００４１】
上記ゲートウェイ装置において、前記検索エンジン部は、受信したフレームデータの転送先を記したエントリデータを前記マップ情報から取り出す際に、前記フレームデータのＩＤ番号にマスクを重ね、該当チャネルのエントリデータを検出するとよい。
従って、目的とするエントリデータの検索時間を短縮することができる。
【００４２】
本発明のルーティング方法は、複数の通信チャネル間でフレームデータの転送制御を行うルーティング方法であって、入力した前記フレームデータの振り分けを前記通信チャネルごとに独立して行うステップと、前記振り分けされた前記フレームデータを前記複数の通信チャネルごとに設けた第１蓄積部に蓄積するステップと、を有している。このように本発明は、入力したフレームデータの振り分けを通信チャネルごとに独立して行うことで、多チャネル化されても、ルーティング処理にかかる時間を増大させない。
【００４３】
本発明のルーティング方法は、複数の通信チャネル間でフレームデータの転送制御を行うルーティング方法であって、入力したフレームデータを、プログラム制御された制御部で処理するフレームデータと、ハードウェアで処理するフレームデータとに振り分けるステップと、前記ハードウェアで処理するフレームデータを転送先ごとに振り分けるステップと、前記振り分けされたフレームデータを一時的に蓄積するステップとを有しているとよい。
【発明の効果】
【００４４】
本発明は、入力したフレームデータの振り分けを複数の通信チャネルごとに独立して行うことで、多チャネル化されても、ルーティング処理にかかる時間を増大させない。
【発明を実施するための最良の形態】
【００４５】
添付図面を参照しながら本発明の最良の実施例を説明する。
【実施例１】
【００４６】
まず、図１を参照しながら本実施例の構成を説明する。図１には本発明のゲートウェイ装置をＣＡＮ（Controller Area Network）のプロトコルによって通信を行う車載ゲートウェイ装置に適用した実施例の構成が示されている。車載ゲートウェイ装置１は、ＣＰＵバス１６に、ＣＰＵ（本発明の制御部に該当）２、ＦＬＡＳＨ  ＲＯＭ(Read Only Memory)３、ＵＡＲＴ４（Universal Asynchronous Receiver Transmitter）、フリーランタイマ５、割込み制御部６、ＤＭＡコントローラ７、ＣＡＮインタフェース部８、複数のＣＡＮ（本実施例ではＣＡＮ＿０，ＣＡＮ＿１，ＣＡＮ＿２，ＣＡＮ＿３の４つのＣＡＮを示すが、ＣＡＮの数はこれに限定されるものではない）９、バスインタフェース部１０などが接続されている。バスインタフェース部１０には、検索エンジン部１１、送信バッファ１４、受信バッファ１５が接続されている。検索エンジン部１１は、マップメモリ１３とゲートウェイ制御部１２とを備えている。検索エンジン部１１、送信バッファ１４、受信バッファ１５は、バスインタフェース部１０を介してＣＰＵバス１６にデータを入出力するデータ線で接続されている。また検索エンジン部１１と送信バッファ１４、検索エンジン部１１と受信バッファ１５もデータ線で接続されている。また、受信バッファ１５は、ＣＡＮインタフェース部８とデータ線で接続され、ＣＡＮインタフェース部８から直接データを入力できるようになっている。また、図１にはデータ線以外に制御信号を送受信する制御線も示されている。ＣＰＵ２は、この制御線に上記各機能部を制御する信号を出力する。またＤＭＡコントローラ７とゲートウェイ制御部１２との間にも制御線が配線され、ＤＭＡコントローラ７は、ＣＰＵ２の制御によらずゲートウェイ制御部１２からデータを読み出して転送先に転送する。なお、検索エンジン部１１と、マップメモリ１３と、送信バッファ１４と、受信バッファ１５と、バスインタフェース部１０と、ＣＡＮインタフェース部８とを備える構成をゲートウェイハードマクロ部１７と呼ぶ。
【００４７】
ゲートウェイハードマクロ部１７には、主として以下に示す機能が備えられている。第１に、ゲートウェイハードマクロ部１７のブート時、及び車載ゲートウェイ装置１のリセット時に、ルーティングマップ（詳細は後述する）の転送を行う。不図示のレジスタには、このルーティングマップ転送が正常に終了したか否かの情報が保存されている。またゲートウェイハードマクロ部１７は、ルーティングマップの転送完了後、直ちにベリファイ（ルーティングマップ書き込み時にエラーが生じているか否かの判定）を実行し、エラーが発生したときにはリセット動作を実行してルーティングマップの再転送を行う。第２に、フレームデータの受信時にＣＡＮ９が発生する割込み信号をトリガにして、ＣＡＮ９のメッセージボックスからフレームデータを取り出す。第３に、受信したフレームデータのルーティングを行う。第４に、ルーティングエラーの検出やその他のエラーを検出する。この他に、ルーティング後のデータの送信機能などを設けても良い。
【００４８】
ＦＬＡＳＨ  ＲＯＭ３には、ＣＰＵ２がデータ伝送処理を含む各種処理の実行時に使用するデータ又はプログラムなどが記憶されている。ＣＰＵ２は、図１に示す車載ゲートウェイ装置１の全体を制御すると共に、ゲートウェイ制御部１２でルーティングされたフレームデータの送信処理を、プログラム制御によって行う。
【００４９】
ＵＡＲＴ４は、外部装置と接続し、外部装置から送られるパラレル信号をシリアル信号に変換したり、逆にシリアルデバイスから送られるシリアル信号をパラレル信号に変換したりする。フリーランタイマ５は、クロック信号の供給を受けてアップカウント動作を繰り返し続けるタイマ（カウンタ）である。フレームデータを受信してから、ゲートウェイ制御部１２でルーティングが行われ、フレームデータが転送先に送信されるまでの滞留時間をカウントし、フレームデータの遅延を検知する。
【００５０】
割込み制御部６は、検索エンジン部１１から出力される割込み信号のＣＰＵ２への出力を制御する。ゲートウェイ制御部１２は、送信ＦＩＦＯ（第１蓄積部）２１に予め設定された設定数のフレームが蓄積されたとき、送信ＦＩＦＯ２１がオーバーフローしたとき、検索エンジン部１１にルーティングエラーが生じたときに割込み信号をＣＰＵ２に出力する。ＤＭＡコントローラ７は、検索エンジン部１１によるルーティングによって送信ＦＩＦＯ２１に格納されたフレームデータをＣＰＵ２を介さずにＤＭＡ転送する。
【００５１】
複数のＣＡＮ９（ＣＡＮ＿０，ＣＡＮ＿１，ＣＡＮ＿２，ＣＡＮ＿３）は、各通信チャネルごとに設けられ、ＣＡＮバス（不図示）から受信したフレームデータを蓄積し、またゲートウェイ制御部１２でルーティング後のフレームデータを蓄積する。ルーティング後のフレームデータは、メッセージボックスから読み出され、ＣＡＮバスに出力される。またＣＡＮ９は、通信チャネルからフレームデータを受信すると、割り込み信号を検索エンジン部１１のゲートウェイ制御部１２に出力する。
【００５２】
検索エンジン部１１は、ＣＡＮ９から出力された割り込み信号をトリガとして、ＣＡＮ９のメッセージボックスからフレームデータを取り出し、ＣＡＮインタフェース部８から受信バッファ１５に一旦蓄積する。所定のタイミングクロックで受信バッファ１５からフレームデータを取り出し、ルーティング処理、データの中継先の情報検索などの処理を行う。また、ルーティング処理中に生じたエラーの検出機能も備えている。ゲートウェイ制御部１２は、ハードウェアで構成される。また、マップメモリ１３に格納されるルーティングマップの詳細については後述する。
【００５３】
送信バッファ１４には、ゲートウェイ制御部１２でルーティングされたフレームデータが格納される。受信バッファ１５には、ＣＡＮ９のメッセージボックスから読み出されたフレームデータが格納される。
【００５４】
次に、図２を参照しながらゲートウェイハードマクロ部１７について説明する。ゲートウェイハードマクロ部１７は、図２に示すように検索エンジン部１１、送信ＦＩＦＯ部２０を主な構成として備えている。送信ＦＩＦＯ部２０には、送信ＦＩＦＯ２１、メッセージカウンタ２２などが設けられる。送信ＦＩＦＯ部２０は、送信バッファ１４内に設けられる。図２に示すように検索エンジン部１１は、１つの受信チャネルに１つずつ設けられている。また、送信ＦＩＦＯ２１とメッセージカウンタ２２は、１チャネルごとに３つずつ設けられる。本実施例では、通常送信専用、優先送信専用、判断加工専用と機能に応じて送信ＦＩＦＯ２１を使い分けている。なお、判断加工専用の送信ＦＩＦＯ２１は、ＩＤやデータの加工を行ったり、データの中身を確認するために用いられる。
【００５５】
検索エンジン部１１は、図２に示すようにＣＡＮ９のメッセージボックスからフレームデータを取り出し、一旦受信バッファ１５に格納する。その後、受信バッファ１５からフレームデータを所定のタイミングで読み出してルーティングを行い、ルーティング後のデータを送信ＦＩＦＯ２１に格納する。なお、図２に示すように各ＣＡＮ９に用意されるメッセージボックスは、受信用として１つ用意され、他のメッセージボックスは自由に使用される。
【００５６】
次に、図３を参照しながら検索エンジン部１１の構成について詳述する。検索エンジン部１１は、図３に示すように検索制御部３０と、マップメモリ１３と、レジスタ部３１と、テンポラリバッファ３２とを備えている。検索制御部３０と、レジスタ部３１と、テンポラリバッファ３２とが図１に示すゲートウェイ制御部１２に当たる。なお、図３には、検索エンジン部１１と送信ＦＩＦＯ部２０とがそれぞれ１つずつしか記載されていないが、これらは、図２に示すように受信チャネルごとに複数設けられている。
【００５７】
検索制御部３０は、フレームデータのルーティングを行う機能部である。受信バッファ１５に格納されたフレームデータを所定のタイミングで取り込み、ルーティングを行う。図３には、検索制御部３０に取り込まれるデータが示されている。ＣＡＮ＿ＩＤ，ＤＬＣ，ＣＡＮ−ＤＡＴＡが検索制御部３０に取り込まれる。マップメモリ１３には、検索制御部３０がルーティングを行うためのルーティングマップが記録されている。ルーティングマップは、データを転送するチャネルごとに定義され、各チャネルで受信したデータを異なる１つ以上のチャネルに転送するための情報が定義されている。図４にルーティングマップの一例を示す。図４に示すように各エントリごとに、情報を記録したメモリのアドレス、フォーマットの種別を示すＩＤＥ、フレームの種別を示すＲＴＲ、ＩＤ、マスクインフォメーション、チャネルを示す情報、送信ＦＩＦＯの番号、その他の情報としてデータラベルが記録されている。
【００５８】
テンポラリバッファ３２は、検索制御部３０によって転送先に振り分けられたフレームを一時的に記憶する。レジスタ部３１には、ＣＰＵ２によって設定される、検索制御部３０の設定情報が記録される。例えば、検索制御部３０の機能の停止、開始、リセットを指定する情報、チャネルごとに、検索制御部３０の有効と無効とを設定する情報、表１に示すルーティングエラーの定義情報、送信ＦＩＦＯ２１のオーバーフロー、ルーティングエラーが発生した場合に、その発生要因をＣＰＵ２に通知するか否かを設定する情報などが記録される。なお、送信ＦＩＦＯ２１のオーバーフローとは、送信ＦＩＦＯに空き領域がない状態で、新たなデータが送信ＦＩＦＯに書き込まれ、最古側のＦＩＦＯ領域に最新のデータが上書きされてしまう状態をいう。また、ルーティングエラーとは、転送先に設定された送信ＦＩＦＯ２１が無効に設定されており、フレームデータを書き込むことができない状態をいう。
【００５９】
【表１】
2006333438.tif 000003
【００６０】
次に、図５を参照しながら検索制御部３０の構成について説明する。図５に示すように検索制御部３０は、アドレス生成部３５、マップメモリＩ／Ｆ部３６（本発明のルーティングマップ部に該当する）、データ比較部３７の機能部を備えている。アドレス生成部３５は、アドレスカウンタを備え、マップメモリ１３のアドレスを順次生成する。マップメモリＩ／Ｆ部３６は、マップメモリ１３とのインタフェース部分であり、アドレス生成部３５により生成されたアドレスのデータをマップメモリから読み出してデータ比較部３７に出力する。データ比較部３７は、受信バッファ１５から読み込んだデータ（ＣＡＮ＿ＩＤ）と一致するアドレスがマップメモリ１３のルーティングマップに登録されているか否かを比較し判定する。
【００６１】
図６のタイミングチャートを参照しながら検索制御部３０の動作タイミングを説明する。ＣＡＮの受信データが受信バッファ１５に格納されると、検索開始パルスが受信バッファ１５からアドレス生成部３５に入力される。アドレス生成部３５は、この検索開始パルスをトリガとしてマップメモリ１３のアドレスを順次生成する（図６に示すマップアドレス０、１、２・・・）。アドレス生成部３５で生成されたマップアドレスは、マップメモリＩ／Ｆ部３６に入力され、マップメモリＲＥＡＤ信号に同期してマップメモリ１３からマップデータが読み出される（図６に示すマップデータ０、１、２・・・）。データ比較部３７は、受信したデータ（ＣＡＮ＿ＩＤ）と、マップメモリ１３から読み出したＩＤとを比較し、ＩＤの一致、不一致を判定する。不一致の場合には、データ比較部３７から検索継続リクエスト信号がアドレス生成部３５に出力され、データの比較が継続される。また一致した場合には、検索継続リクエスト信号がアドレス生成部３５に出力されなくなり、アドレス生成部３５からは、検索終了パルスが出力される。またデータ比較部３７ではデータ比較と合わせてルーティングマップのＳＵＭチェックを実行する。ＩＤの一致したエントリに記録されたデータ（ＣＡＮ＿ＩＤ、マスク情報、宛先チャネル、送信ＦＩＦＯ番号、データラベル）のＳＵＭ値をまず算出し、これをルーティングマップに記載されているチェック値と比較する。ＳＵＭ値とチェック値とが異なる場合には、ルーティングエラーと判定し、エラーを示すＳＵＭ＿ＥＲＲ信号をＣＰＵ２に出力する。
【００６２】
図７のフローチャート及び図８を参照しながら動作手順を説明する。なお、この制御手順はＣＰＵ２の制御手順ではなく、ゲートウェイハードマクロ部１７のハードウェアの動作を示す。また、図８には、マップメモリ１３の記録するルーティングマップと、このルーティングマップを使用した検索制御部３０のルーティング手順とが概念的に示されている。フレームデータを受信すると（ステップＳ１／ＹＥＳ、又は図８に示すＡ：受信）、受信したフレームデータをＣＡＮインタフェース部８へ出力し（ステップＳ２）、ＣＡＮインタフェース部８から受信バッファ１５にフレームデータが書き込まれる（ステップＳ３）。ＣＡＮ９は、ＣＡＮ９の備えるメッセージボックスにフレームデータを入力すると、ゲートウェイ制御部１２に対して割込み信号を出力する。検索エンジン部１１は、この割込み信号をトリガとして、メッセージボックスからフレームデータを取り出し、受信バッファ１５に格納する。検索エンジン部１１は、受信バッファ１５からの検索開始パルス（ＳＣＨ＿ＳＴＲＴ）に同期してＣＡＮ＿ＩＤ、ＤＬＣ（データリンクコントロール）、データを取り出す（ステップＳ４）。なお、受信バッファ１５に記録されたフレームデータは、すべて検索対象となり検索エンジン部１１に入力される。図９（Ａ）には、受信したフレームデータの構成が示されている。フレームデータは、図９（Ａ）に示すようにＩＤＥ（フォーマット種別を示す）、ＲＴＲ（フレーム種別を示す）、標準ＩＤ又は拡張ＩＤ、ＤＬＣ、データとを有している。標準ＩＤ又は拡張ＩＤをＣＡＮ＿ＩＤと呼ぶ。
【００６３】
検索エンジン部１１では、マップメモリ１３を参照して、受信したフレームデータがルーティング対象のデータであるか否かを判定する。図８のＢ、Ｃにこの様子を示す。検索エンジン部１１は、フレームデータからＣＡＮ＿ＩＤ，ＤＬＣ，データを取り出すと、マップメモリ１３を検索して（ステップＳ５）、受信したＣＡＮ＿ＩＤと一致するＩＤがルーティングマップに記録されているか否かを判定する（ステップＳ６）。ＣＡＮ＿ＩＤと一致するＩＤがルーティングマップに記録されていない場合には（ステップＳ６／ＮＯ）、検索終了か否かを判定する（ステップＳ７）。検索終了ではない場合には（ステップＳ７／ＮＯ）、ステップＳ５からのマップメモリ１３の検索を再度行い、ＣＡＮ＿ＩＤと一致するＩＤがマップメモリに登録されているか否かを判定する。また検索終了の場合には（ステップＳ７／ＹＥＳ）、中継対象外のデータであるので図１０に示すようにデータを破棄する（ステップＳ８）。
【００６４】
また、図８のＣに示すようにＣＡＮ＿ＩＤと一致するＩＤがルーティングマップに記録されている場合には（ステップＳ６／ＹＥＳ、又は図８に示すＣ：一致）、ルーティングマップの一致したエントリのＳＵＭチェックを実施する（ステップＳ９、又は図８に示す：Ｅ）。ＩＤの一致したエントリに記録されたデータ（ＣＡＮ＿ＩＤ、マスク情報、宛先チャネル、送信ＦＩＦＯ番号、データラベル）のＳＵＭ値をまず算出し（ステップＳ９）、これをルーティングマップに記載されているチェック値と比較する（ステップＳ１０）。ＳＵＭ値とチェック値とが異なる場合には、ルーティングエラーと判定し（ステップＳ１０／ＮＯ）、エラーを示すＳＵＭ＿ＥＲＲ信号をＣＰＵ２に割込み出力する（ステップＳ１７）。その後、ＣＰＵでこのエラーを確認すると（ステップＳ１８／ＹＥＳ）、エラーフラグがクリアされる（ステップＳ１９）。なお、ＣＡＮ９のメッセージボックスに記録されるフレームデータは、すべて検索対象となるため、図１０に示すように同一チャネル上のノード間で送受信されるフレームに関してもメッセージボックスに記録される。このようなルーティングの必要ないフレームは、検索エンジン部１１で破棄される。
【００６５】
ＳＵＭチェックに成功した場合（ステップＳ１０／ＹＥＳ）、検索エンジン部１１は、宛先のチャネルをルーティングマップから取得する（ステップＳ１３）。検索エンジン部１１は、宛先チャネルを決定すると、宛先のチャネルは有効であるのか、無効であるのかを判定する。無効ではないと判定した場合には（ステップＳ１２／ＮＯ）、ＣＰＵ２に対してルーティングエラー通知の割込み信号を出力する（ステップＳ１７）。また、宛先のチャネルは有効である判定すると（ステップＳ１２／ＹＥＳ）、図９（Ｂ）に示すようにフレームデータにデータラベルを付加して送信ＦＩＦＯ２１に出力される（ステップＳ１３）。なお、チャネル間での競合があった場合は、テンポラリバッファ３２に一時的に置かれる。
【００６６】
テンポラリバッファ３２に一時的に蓄積されたフレームデータは、後述するＦＩＦＯ調停部（第１調停部）２３の調停によって、他の検索エンジン部１１からのフレームとの調停を取りながら（ステップＳ１４）、送信ＦＩＦＯ２１に書き込まれる。送信ＦＩＦＯ２１にはフレームデータを格納できる段数の設定があり、この段数を超えてフレームデータを転送すると送信ＦＩＦＯ２１に空きがなくなる。送信ＦＩＦＯ２１に空きがない状態で（ステップＳ１５／ＹＥＳ）フレームデータの書き込みが行われると、最古側の送信ＦＩＦＯ領域にフレームデータの最新値が上書きされ、送信ＦＩＦＯオーバーフローとなる（ステップＳ１６）。検索エンジン部１１は、送信ＦＩＦＯオーバーフローを判定すると、ＣＰＵ２に対してオーバーフローエラーの割込み信号を出力する（ステップＳ１７）。その後、ＣＰＵでこのエラーを確認すると（ステップＳ１８／ＹＥＳ）、エラーフラグがクリアされる（ステップＳ１９）。なお、検索エンジン部１１でフレームデータに付加されるデータラベルについては、後ほど詳述する。
【００６７】
送信ＦＩＦＯ２１に空き領域がある場合には（ステップＳ１５／ＹＥＳ）、ＦＩＦＯ調停部２３の調停によってフレームデータを送信ＦＩＦＯ２１に書き込み、メッセージカウンタ２２をカウントアップする（ステップＳ２０）。メッセージカウンタ２２のカウント値が予め設定した設定値となると（ステップＳ２１）、検索エンジン部１１はＣＰＵ２に対して割込み信号を出力する。この後、データの転送をＤＭＡコントローラ７の制御によって行う場合には（ステップＳ２２／ＹＥＳ）、データリクエスト信号（ＤＲＥＱ）をＤＭＡコントローラ７に出力する（ステップＳ２３）。ＤＭＡコントローラ７はこの信号を入力して、送信ＦＩＦＯ２１からのデータを送信する（ステップＳ２５）。また、ＣＰＵ２の制御によってデータ送信を行う場合には、検索エンジン部１１は、ＣＰＵ２に対して送信割込み信号を出力する（ステップＳ２４）。ＣＰＵ２は、プログラム制御によるソフトウェア処理によってルーティングされたフレームデータを送信処理する（ステップＳ２５、又は図８に示すＦ）。なお、フレームデータを受信してから、検索エンジン部１１でルーティングが行われ、フレームデータが転送先に送信されるまでの滞留時間はフリーランタイマ５でカウントされており、ＣＰＵ２は、フレームデータの遅延を検知している。
【００６８】
図１１に送信ＦＩＦＯ２１の構成を示す。送信ＦＩＦＯ２１は、図１１に示すように各チャネルに３つの３２段送信ＦＩＦＯが設けられている。本実施例では、送信ＦＩＦＯ２１の一段につき１フレームの情報が格納されるものとする。なお、送信ＦＩＦＯ２１の段数、列数は、これに限定されるものではななく、入力するフレーム数、チャネル数、通信速度に応じて任意に変更することができる。
【００６９】
送信ＦＩＦＯ２１にバッファリングされたフレームデータは、メッセージカウンタ２２でカウントされ表示される。メッセージカウンタ２２のカウント値は、送信ＦＩＦＯ２１から取り出すことが保証されたフレーム数である。検索エンジン部１１は、メッセージカウンタ２２のカウント値がレジスタ部３１に設定された値となると、割込み信号をＣＰＵ２に出力する。ＣＰＵ２は、このカウント数だけ送信ＦＩＦＯ２１からフレームを取り出すことができる。ＣＰＵ２は割込み信号を受けて、プログラム制御によるソフトウェア処理によって該当するチャネルの全ＦＩＦＯのメッセージカウンタ２２のカウント値を読み出し、どの送信ＦＩＦＯを何回読み出すのかを検知する。また、何らかの原因で、送信ＦＩＦＯ２１からフレームデータが読み出されず送信ＦＩＦＯ２１が一杯になった場合には、図１０に示すように最も古い側のデータを破棄した上で最新のデータを送信ＦＩＦＯ２１に書き込むようにする。
【００７０】
送信ＦＩＦＯ２１に記録されたフレームの受信バッファ１５への書き込みは、プログラムによるソフトウェア処理か、ＤＭＡコントローラ７による転送制御によって行われる。なお、ゲートウェイ装置として画一化できない処理、例えば、フェール処理やＣＡＮ＿ＩＤやデータの加工処理等についてもソフトウェア処理によって行う。なお、このソフトウェア処理は、ＣＰＵ２がＲＯＭ３に記録されたプログラムを読み出し、このプログラムに従った処理を実行することで実現される。
【００７１】
図１３に、ＦＩＦＯ調停部（第１調停部）２３と、送信ＦＩＦＯ２１との接続構成を示す。図１３に示すＦＩＦＯカウンタ制御部２４は、メッセージカウンタ２２の制御を行う。ＦＩＦＯ調停部２３は、複数の検索エンジン部１１からフレームデータが同時に出力された場合、設定された優先順位に従って、フレームデータを送信ＦＩＦＯ２１に出力する。
【００７２】
図１４には、ＣＡＮ９、ＣＡＮインタフェース部８、検索エンジン部１１、バスインタフェース部１０間での通信で出力される信号を示す。ＣＡＮ９からＣＡＮインタフェース部８には、ＩＲＱ１（ＣＡＮ＿１からの割込み信号）、ＷＲ１（レジスタ書き込み信号）、ＤＡＴＡｘＯ（レジスタ読み出し信号）、ＤＡＴＡｘＩ（レジスタ書き込み信号）が出力される。他のＣＡＮ＿２，ＣＡＮ＿３からも同様な信号が出力される。ＣＡＮインタフェース部８は、検索エンジン部１１に対して、ＳＴＡＲＴｘ（ルーティング開始信号）と、ＩＤｘ，ＤＬＣｘ，ＤＡＴＡｘと、ＥＮ（ゲートウェイ制御部１２の動作許可信号）とを出力する。
【００７３】
送信ＦＩＦＯ２１に所定数のフレームデータが蓄積されると、検索エンジン部１１からＣＰＵ２には、ＩＮＴｖ（ゲートウェイ割込み信号）が出力される。ＣＰＵ２は、ＲＤｖ（レジスタ読み出し信号）と、ＷＲｖ（レジスタ書き込み信号）とを出力して、メッセージカウンタ２２のカウント値を読み出す。その後、ＤＡＴＡｖＯ（レジスタ（送信ＦＩＦＯを含む）読み出しデータ）、ＤＡＴＡｖＩ（レジスタ（送信ＦＩＦＯを含む）書き込みデータ）等によってデータの書き込みや読み出しが行われる。なお、書き込み動作中には、ＢＵＳＹｖ（送信ＦＩＦＯ書き込み動作信号）がＣＰＵ２に出力される。
【００７４】
ここで、検索エンジン部１１で付加されるデータラベルについて説明する。データラベルは、ゲートウェイ制御部のハードウェア構成上意味を持たず、ルーティングには直接関係しないが、図９（Ｂ）に示すようにフレームデータに付加して転送される。データラベルは８ビットで指定される。このデータラベルは、ルーティング処理時にフレームデータに付加され、送信ＦＩＦＯ２１に転送される。プログラム制御によるソフトウェア処理によってデータラベルを取得し、ＲＯＭ３に記録されているフレーム情報テーブルの参照用ポインタとして使用する。これによって、ソフトウェア処理でフレーム情報の再検索を行う必要がなくなり、ソフトウェアによる送信処理にかかる時間を短縮することができる。
【００７５】
また、ルーティングマップには図８に示すようにサムチェック用のチェック値を登録しておくとよい。エントリに記録されたデータ（ＣＡＮ＿ＩＤ、マスク情報、宛先チャネル、送信ＦＩＦＯ番号、データラベル）のサム値を算出し、この算出した値と、ルーティングマップに記載されたチェック値とを比較し、値が異なる場合にはルーティングエラーと判定してＳＵＭ＿ＥＲＲの信号をＣＰＵ２に出力する。
【実施例２】
【００７６】
添付図面を参照しながら本発明の第２実施例を説明する。図１５には、ゲートウェイハードマクロ部１７の構成が示されている。本実施例は、図１５に示すように上述した検索エンジン部１１、送信ＦＩＦＯ２１の前段に振り分け部５１、セレクタ部５２、レジスタ５６を設けている。
【００７７】
振り分け部５１は、図１５に示すように各通信チャネルごとに設けられ、ＣＡＮ９のメッセージボックスからフレームデータを取り出して、フレームデータの転送先の振り分け処理を行う。振り分け部５１は、フレームデータに設定された宛先情報を参照して、フレームデータの転送先を、ソフトウェア制御部５０、セレクタ部５２、ソフトウェア制御部５０とセレクタ５２の両方のいずれかに設定する。なお、ソフトウェア制御部５０は、ＣＰＵ２がプログラム制御によって動作することで実現する機能部である。
このようにチャネル単位や選択したフレーム単位で転送先を振り分けておくことで、検索エンジン部１１での処理負荷を軽減することができる。
また、優先的にソフトウェア制御部５０に送るべきフレームデータを検索エンジン部１１を介さずに転送することができるので、ソフトウェア制御部５０での処理開始時間を早めることができる。さらに、この振り分け部５１を設けたことによって、ソフトウェア制御部５０による処理と、検索エンジン部１１によるハード処理を並行して行うことができる。
【００７８】
レジスタ５６には、ソフトウェア制御部５０によって設定された設定情報が格納されている。設定情報には、少なくともゲートウェイ装置の動作設定情報と、ルーティングの設定情報とが含まれる。振り分け部５１はこのレジスタ５６に格納された設定情報に従ってフレームデータの振り分け動作を行う。この設定情報を参照して動作を行うのは振り分け部５１だけであって、後段に設けられたセレクタ部５２、検索エンジン部１１、送信ＦＩＦＯ２１は、設定情報により動作を停止したりすることがない。このため、ゲートウェイの設定変更、通信チャネルの変更等が動的に行われても、ゲートウェイハードマクロ部１７内でフレームデータが消失するなどの問題を生じない。
【００７９】
また、上述した第１実施例では、検索エンジン部１１、送信ＦＩＦＯ２１を通信チャネルごとに設けていた。これに対し本実施例では、複数の通信チャネルに対して１つの検索エンジン部１１、送信ＦＩＦＯ２１を設けている。又は図示していないが、所定数の通信チャネルごとに１つずつ検索エンジン部１１、送信ＦＩＦＯ２１を設けてもよい。このような構成を実現するため、セレクタ部５２を検索エンジン部１１の前段に設けている。セレクタ部５２は、複数の通信チャネルから出力されたデータを検索エンジン部１１に入力するタイミングを制御している。複数の通信チャネルから同時にフレームデータが出力されても、セレクタ部５２が優先順位や到着順によってフレームデータを検索エンジン部１１に出力するタイミングを制御する。これにより、検索エンジン部１１、送信ＦＩＦＯ２１を複数の通信チャネルで共有することが可能となる。
【００８０】
図１６を参照しながら振り分け部５１の詳細な構成を説明する。振り分け部５１は、第１宛先振り分け部５９と、第２宛先振り分け部６０とを有している。
フレームデータは、ＣＡＮ９のメッセージ振り分け部５８によって、データのＩＤに応じて振り分けられ、メッセージボックス（０、１、２、３・・・・）に登録される。第１宛先振り分け部５９は、メッセージ振り分け部５８で振り分けられた場所（メッセージボックス０、１、２、３・・・・）に対しフレームデータの宛先をソフトウェア制御部５０や検索エンジン部１１に設定したり、ソフトウェア制御部５０と検索エンジン部１１の両方に設定する同報送信の設定を行う。また、ここで廃棄されるフレームデータもある。第２宛先振り分け部６０は、検索エンジン部１１の処理状況に応じて、検索エンジン部１１宛てであったフレームデータを強制的にソフトウェア制御部５０に変更したり、フレームデータを廃棄する設定を行う。
【００８１】
次に、図１７を参照しながら検索エンジン部１１の詳細な構成について説明する。検索エンジン部１１は、状態制御部７０、エントリ識別部７１、番号加算部７２、番号減算部７３、下限用セレクタ７４、上限用セレクタ７５、加算部７６、除算・保持部７７、メモリに構成されたテーブル７８、一致比較部７９、エントリチェック部８０を備えている。
【００８２】
状態制御部７０は、セレクタ部５２のフレーム出力信号を入力して、図１７に示す各機能部を制御する。また、エントリ識別部７１から入力される検索回数値に従って、テーブル７８の検索を設定された回数だけ行うように制御する。
【００８３】
本実施例は、通信チャネルごとに登録されたノード数、すなわちエントリ数が異なっている。このため、図１８（Ａ）又（Ｂ）に示すように通信チャネルごとに、エントリデータを記録したメモリ（テーブル）７８の使用領域サイズが異なる。エントリデータは各チャネルから転送されたフレームデータの転送先の情報が登録されている。このため、エントリ識別部７１で、受信チャンネルに応じて、そのチャネルで使用するメモリ７の上限エントリ番号と下限エントリ番号、検索回数等を設定する。
【００８４】
エントリ識別部７１の構成を図１９に示す。エントリ識別部７１は、選択部９１と、第１変換テーブル９２と、第２変換テーブル９３を備えている。選択部９１には、データを受信したチャネルの情報（以下、受信ＣＨ情報と呼ぶ）と、チャネルごとの設定情報とが入力される。設定情報には、下限設定値と、上限設定値と、有効エントリ数設定値とが含まれる。下限設定値とは、そのチャネルに割り当てられたメモリアドレスの下限値であり、上限設定値は、チャネルに割り当てられたメモリアドレスの上限値を示す。また有効エントリ数設定値は、そのチャネルにおいて振り分けを行うために登録されたエントリ数を示している。
【００８５】
選択部９１は、受信ＣＨ情報によりフレームデータを受信した通信チャネルを特定し、そのチャネルの有効エントリ数設定値を第１変換テーブル９２に、上限設定値と下限設定値を第２変換テーブル９３に出力する。
【００８６】
第１変換テーブル９２は、有効エントリ数設定値からメモリ７８の検索回数を設定した検索回数値を算出する。例えば、チャネルのエントリ数が２５６エントリ（ノード）であった場合、２の８乗であるので検索回数は＋１して９回となる。
【００８７】
第２変換テーブル９３は、上限設定値と下限設定値とを入力して、上限のエントリ番号と、下限のエントリ番号とを出力する。下限エントリ番号は、そのチャネルに登録されたノードのＩＤ番号のうち最も値の小さい番号であり、同様に上限エントリ番号は、そのチャネルに登録されたノードのＩＤ番号のうち最も値の大きな番号を示す。下限エントリ番号は下限用セレクタ７４に出力され、上限エントリ番号は上限用セレクタ７５に出力される。また、検索回数値は、状態制御部７０に出力される。
【００８８】
下限用セレクタ７４には、エントリ識別部７１から下限エントリ番号が入力される。下限用セレクタ７４は、状態制御部７０の制御に従って、前記下限エントリ番号、前回のエントリ番号、除算・保持部７７の出力に＋１したエントリ番号のいずれかを選択出力する。
同様に上限用セレクタ７５には、エントリ識別部７１から上限エントリ番号が入力される。上限用セレクタ７５は、状態制御部７０の制御に従って、前記上限エントリ番号、前回のエントリ番号、除算・保持部７７の出力に−１したエントリ番号のいずれかを選択出力する。
【００８９】
加算部７６は、上限用セレクタ７４のエントリ番号と、下限用セレクタ７５のエントリ番号とを加算する。除算・保持部７７は、加算部７６の加算値を２で除算し、除算結果を保持する。
【００９０】
ここで、図２０を参照しながら本実施例の検索方法を説明する。本実施例では２分岐検索を用いている。図２０は２分岐検索の方法を概念的に示している。検索対象のチャネルが使用するメモリの下限設定値をＮ、上限設定値Ｍとする。また、説明を簡単にするため有効エントリ数設定値を上限設定値とし、下限設定値を０とする。
２分岐検索では、まず上限設定値と下限設定値の中間の値が演算される。すなわち、（Ｎ＋Ｍ）÷２（＝Ｃ１とする）が演算され、このアドレスのエントリデータと、受信データのＩＤとの比較が行われる。ここで例えば、受信データのＩＤがエントリデータよりも小さい値であった場合には、対象のエントリデータがメモリアドレスの高いほうに登録されていることになる。そのため、下限用セレクタ７４では、除算・保持部７７の保持している前回の値Ｃ１に＋１した値が選択される。また上限用セレクタ７５では前回の値Ｍがそのまま選択される。これらの制御は、状態制御部７０によって行われる。加算部７６でこれらの値が加算され、除算・保持部７７で２で除算することで（Ｃ１＋１＋Ｍ）÷２がＣ２として演算される。このようにして求めたエントリデータと、受信ＩＤとの大小比較によって次のアドレスが順次生成され、受信データのＩＤと一致するエントリデータをメモリ７８から検索する。
【００９１】
エントリチェック部８０は、テーブル７８から読み出したエントリデータが正常なデータであるか否かを判定する。判定結果は状態制御部７０に出力する。
一致比較部７９は、テーブル７８から読み出したエントリデータと、受信したデータのＩＤとを比較する。図２１に一致比較部７９の構成を示す。図２１に示すように一致比較部７９は、論理演算部９５と、一致比較演算部９６とを備えている。論理演算部９５は、受信データのＩＤに図２２に示すようにマスクを重ね合わせ、検索範囲を絞り込む。一致比較部７９は、マスクを重ね合わせたＩＤ番号と、読み出したエントリデータとを比較して、両者が一致しているか否かを判定する。
【００９２】
例えば、図２３（Ａ）に示すようにゲートウェイ装置に接続する４つのＣＡＮバスＡ，Ｂ，Ｃ，Ｄに、ランダムなＩＤ番号（図に示す数値がＩＤ番号を表している）が付加されていると、図２３（Ａ）に示す例では、最大１２回比較を行って、ＩＤの一致を検出しなければならない。これに対して、図２３（Ｂ）に示すように同一バス上のノードに対して、上位数ビットを同じ値に設定しておくことで、４回の比較でどのチャネルからのデータであるのかを判定することができる。
【００９３】
なお、図１８（Ａ）に示すように各チャネルでメモリの使用領域幅が固定である場合には、図２６に示すように結合部８１を設けて、受信チャネル番号を表す上位ビットに、ポインタのアドレスを下位ビットとして加えることで参照するメモリ（テーブル）７８のアドレスとすることができる。
【００９４】
また、チャネルごとにエントリ数を変動させることによって、検索エンジン部１１の性能を変えることができる。すなわち、メモリに用意した領域が２５６エントリであった場合、２分岐検索を９回行わなければならないが、メモリ領域を６４エントリとすることで検索回数を７回に減らすことができる。また、これとは逆に検索エンジン部１１に求められる性能に合わせて、エントリ数を変更してもよい。
【００９５】
次に、図２４に示すフローチャートを参照しながら検索エンジン部１１の処理手順を説明する。
検索を開始すると、状態制御部７０は検索回数をまず０にセットする（ステップＳ３１）。この処理と同期してエントリ識別部７１において、入力した受信ＣＨ情報からチャネルのエントリ数を求め、エントリ数に応じた検索回数値をセットする（ステップＳ３２）。検索回数値は、エントリ識別部７１から状態制御部７０に通知される。
【００９６】
次に、状態制御部７０は、検索回数とエントリ識別部７１から通知された検索回数値とを比較して（ステップＳ３３）、検索回数が検索回数値に満たない場合には（ステップＳ３３／ＹＥＳ）、初期値もしくは前回の大小比較情報を基にメモリのポインタアドレスを生成する（ステップＳ３４）。下限用セレクタ７４には、エントリ識別部７１から下限エントリ番号が入力される。同様に上限用セレクタ７５には、エントリ識別部７１から上限エントリ番号が入力される。加算器７６は、下限エントリ番号と上限エントリ番号とを加算する。除算・保持部７７は、加算された値を２で除算して保持する。この値がポインタのアドレスとなる。
【００９７】
ポインタのアドレスが生成されると、このポインタアドレスが示すエントリデータがメモリ７８から読み出される（ステップＳ３５）。次に、読み出されたエントリデータは、エントリチェック部８０に入力され、データが正常であるか否かが判定される。正常な値ではなかった場合には（ステップＳ３６／ＮＯ）、システムエラーとして処理される（ステップＳ４１）。また、エントリデータが正常であった場合には（ステップＳ３６／ＹＥＳ）、受信データのＩＤと、エントリデータとが一致するか否かが一致比較部７９で判定される。両者が一致しなかった場合には（ステップＳ３７／ＮＯ）、検索回数が１イクリメントされると共に、一致比較部７９の大小比較結果が状態制御部７０に出力され（ステップＳ３８）、ステップＳ３３からの処理を繰り返す。状態制御部７０は、大小比較結果に応じて下限用セレクタ７４、上限用セレクタ７３を制御し、前回の比較結果に応じたポインタアドレスが生成される。また、両者が一致した場合には（ステップＳ３７／ＹＥＳ）、一致したエントリデータの宛先情報がチェックされて（ステップＳ３９）、正常であると送信ＦＩＦＯ２１に書き込まれる（ステップＳ４０）。また、宛先情報が正常ではない場合には（ステップＳ３９／ＮＯ）、システムエラーとして処理される（ステップＳ４１）。さらに、状態制御部７０は、検索回数が検索回数値よりも大きくなると（ステップＳ３３／ＹＥＳ）、受信したフレームデータは廃棄される（ステップＳ４２）。
【００９８】
また、状態制御部７０は、フレームデータを受信していないアイドルの時に、マップ情報の正常性確認動作を行う。この処理について図２５に示すフローチャートを参照しながら説明する。
状態制御部７０は、フレームデータを受信していないアイドル時に（ステップＳ５１）、自立チェックを実行する（ステップＳ６４）。まず、状態制御部７０は、ポインタのアドレスを生成し（ステップＳ６５）、該当するアドレスに格納されたエントリデータを検索して取り出す（ステップＳ６６）。そして、取り出したエントリデータの正常性を判定する（ステップＳ６７）。検索したエントリデータが正常であると判定すると（ステップＳ６７／ＹＥＳ）、処理を終了する。またエラーを検出すると（ステップＳ６７／ＮＯ）、システムエラーとして処理する（ステップＳ６８）。
【実施例３】
【００９９】
次に添付図面を参照しながら本発明の第３実施例を説明する。
【０１００】
本実施例は図２７に示すように並列バッファ（第２蓄積部）５３を新たに設けて、検索エンジン部１１から出力されるフレームデータを送信ＦＩＦＯ２１に格納すると共に、図２７に示す並列バッファ５３にも転送して格納するようにしている。並列バッファ５３に格納されたデータは、ソフトウェア制御部５０によって読み出される。
【０１０１】
上述した実施例では、フレームデータは、送信ＦＩＦＯ２１に一旦格納され、その後に送信ＦＩＦＯ２１からソフトウェア制御部５０に読み取られる構成を取っていた。しかしながら、優先順位の高いフレームデータをソフトウェア制御部５０に転送するときに、送信ＦＩＦＯ２１に格納された他のフレームデータの処理負荷が大きいと、ソフトウェア制御部５０に待ち時間が発生していた。そこで、本実施例は優先順位の高いフレームデータを並列バッファ５３にも格納して、ソフトウェア制御部５０はこの並列バッファ５３からフレームデータを取り出すことで、待機時間をなくすことができる。また、並列バッファ５３には、優先順位の高いフレームデータを格納するだけではなく、すべてのデータを格納することもできる。
また、並列バッファ５３はフレームの特定（判断）を行った結果を仮想的に格納位置（エントリ）にマッピングすることができる。そのため、ＣＰＵ２で行う判断処理を軽減させることができる。
【０１０２】
さらに、送信ＦＩＦＯ２１の後段には、調停部（第２調停部）５４を設けている。調停部５４は各通信チャネルに１つずつ設けられている。調停部５４は、図２７に示すように送信ＦＩＦＯ２１からのフレームデータと、ソフトウェア制御部５０からのフレームデータとが重複した時に、メッセージボックス９への書込みタイミングを調停する機能を備えている。このような調停部５４を設けることによって、ソフトウェア制御部５０を介さずにゲートウェイハードマクロ部１７だけでフレームデータを送信することができる。
【０１０３】
図２８には、ＣＰＵ２によるソフトウェア制御だけでフレームデータを転送する場合のフレームデータの流れが示されている。ソフトウェアだけのルーティングでは、ルーティング以外のアプリケーションのＣＰＵ占有率が高くなってくると、中継処理に遅延が生じてしまう。
図２９には、上述した実施例１のフレームデータの流れが示されている。図２９に示す車載ゲートウェイ装置では、フレームデータの振り分けはハードウェアで行っているが、振り分けられたフレームデータを送信するときにソフトウェアによる制御が必要となる。これに対し本実施例は、図３０に示すようにゲートウェイハードマクロ部１７だけでフレームデータの振り分けから転送までを行うことができ、さらに、必要に応じて一旦ゲートウェイハードマクロ部１７に取り込んだフレームデータをＣＰＵ２に渡すこともできる。
【０１０４】
図３１に示すフローチャートを参照しながら本実施例の動作手順を説明する。
フレームデータを受信すると（ステップＳ７１／ＹＥＳ）、ゲートウェイハードマクロ部１７は、振り分け部５１でフレームデータの振り分けを行う（ステップＳ７２）。上述したように振り分け部５１は、フレームデータに設定されたＩＤから宛先を判定し、ソフトウェア制御部５０に出力するのか、検索エンジン部１１に出力するのかを設定する。設定に応じてフレームデータは、ソフトウェア制御部５０、検索エンジン部１１、ソフトウェア制御部５０と検索エンジン部１１との両方のいずれかに出力される。
【０１０５】
セレクタ部５２は、振り分け部５１からフレームデータを取り込むと、その通信チャネルに設定された優先順位に従って、データを検索エンジン部１１に出力する（ステップＳ７３）。検索エンジン部１１は、入力したフレームデータの転送先を検索して（ステップＳ７４）、送信ＦＩＦＯ２１、並列バッファ５３にフレームデータを格納する（ステップＳ７５）。また並列バッファ５３に格納されたフレームデータは、ソフトウェア制御部５０によって読み出される（ステップＳ７６）。この後、調停部５４で、ソフトウェア制御部５０からのフレームデータと、送信ＦＩＦＯ２１から読み出されたフレームデータとの調停が行われ（ステップＳ７７）、メッセージボックスに書き込まれる。各通信チャネルのメッセージボックス９に書き込まれたフレームデータは、読み出されてそれぞれのチャネルのバスに出力される（ステップＳ７８）。
【０１０６】
なお、検索エンジン部１１で使用するマップ情報を、車両の状態に応じて静的、又は動的に変更することもできる。本実施例では、図３２に示すようにマップメモリ１３から読み出すマップ情報を車両の状態に応じて変更する状態管理部１００を設けている。状態管理部１００は、エンジンスタート時等の初期化時には、初期化時のマップ情報をマップメモリ１３から読み出す。またチャネル数の増加要求がＣＰＵ２から出された場合には、ＣＨ数増加時のマップ情報をマップメモリ１３から読み出す。さらに、各ＣＨのエントリを追加、修正する場合には、エントリ追加、修正のマップ情報をマップメモリ１３から読み出す。読み出されたマップ情報は状態管理部１００で正常性がチェックされた後、検索エンジン部１１のテーブル（メモリ）７８に格納される。
【０１０７】
図３３に示すフローチャートを参照しながら状態管理部１００の処理手順を説明する。状態管理部１００は、車両の状態に応じたマップを選択する（ステップＳ８１）。選択したマップ情報をチャネル単位で取り込んで（ステップＳ８２）、マップ情報の正常性をチェックする（ステップＳ８３）。正常性判定でエラーが発生すると（ステップＳ８４／ＹＥＳ）、システムエラーとして処理する（ステップＳ８９）。また、正常性をチェックしたマップ情報の数が有効チャネル数に達すると（ステップＳ８５／ＹＥＳ）、今度はマップ全体での正常性をチェックする（ステップＳ８６）。ここでもエラーが発生すると（ステップＳ８７／ＹＥＳ）、システムエラーとして処理される（ステップＳ８９）。正常性のチェックが終了すると（ステップＳ８７／ＮＯ）、取得したマップ情報をテーブル７８に格納して置き換える（ステップＳ８８）。
【０１０８】
さらに、上述した実施例以外の構成として、例えば、図３４又図３５に示すようにフォーマット変換部５５を設けることもできる。フォーマット変換部５５は、フレームデータの送信元のノードの使用するプロトコルと、送信先のノードの使用するプロトコルが異なっている場合に、フレームデータを変換して送信先のノードに認識できる形式のデータにする。なお、図３４に示すように送信ＦＩＦＯ２１から読み出されたフレームデータに対してフォーマット変換を行うようにしてもよいし、図３５に示すように送信ＦＩＦＯ２１に格納する前にフォーマット変換を施してもよい。
【０１０９】
また、図３６に示す状態監視ブロック２００を設けて、それぞれのブロックのフレームデータの有無を管理するように構成してもよい。状態監視ブロック２００は、処理すべきフレームデータがあるところの送信ＦＩＦＯ２１だけを動かす。また、フレームデータが来ると判っている機能ブロックだけを動かすようにする。これによりゲートウェイ装置での消費電力を削減することができる。
【０１１０】
また、フレームデータに付加されるデータラベルの使用方法として、実施例１では、フレーム情報テーブルの参照用ポインタとして使用する例を挙げたが、これ以外に、以下に示す利用方法も考えられる。図３７に示す８ビットのデータラベルを２ビットずつに分け、各２ビットで、間引き送信の周期タイミングを示す間引きパターン、ＩＤ変換のパターンを示すＩＤ変換、データ変換のパターンを示すデータラベルパターン、滞留時間のパターンを示すパターンを表す。このようなデータラベルをフレームデータに付加しておき、ＣＰＵ２でこのデータラベルに従った制御を行うことで、データ加工、送信処理、フェールセーフ処理に対応することができる。なお、ここではデータラベルを８ビットとして説明したが、データラベルとしてフレームデータに付加するビット数は８ビットに限定されるものではない。
【０１１１】
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【図面の簡単な説明】
【０１１２】
【図１】車載ゲートウェイ制御装置１の構成を示すブロック図である。
【図２】ゲートウェイ制御部１２の構成を示す図である。
【図３】検索エンジン部１１の構成を示す図である。
【図４】マップメモリに記録されたルーティングマップの一例を示す図である。
【図５】検索制御部３０の構成を示す図である。
【図６】検索制御部３０の動作タイミングを示すタイムチャートである。
【図７】車載ゲートウェイ制御装置１の動作手順を示すフローチャートである。
【図８】検索制御部３０の動作を概念的に示す図である。
【図９】フレームデータの構成を示す図である。
【図１０】検索エンジン部の動作を概念的に示す図である。
【図１１】１チャネル当たりの送信ＦＩＦＯ２１を示す図である。
【図１２】ＦＩＦＯオーバーフロー時の処理を説明するための図である。
【図１３】送信ＦＩＦＯ部２０の構成を示す図である。
【図１４】ＣＡＮ９、ＣＡＮインタフェース部８、ゲートウェイ制御部１２、バスインタフェース部１０間のＣＡＮ通信で送信される信号を示す図である。
【図１５】第２実施例の構成を示すブロック図である。
【図１６】振り分け部５１の構成を示すブロック図である。
【図１７】検索エンジン部１１の構成を示すブロック図である。
【図１８】チャネルごとのメモリの使用領域を示す図である。
【図１９】エントリ識別部の構成を示す図である。
【図２０】２分岐検索を説明するための図である。
【図２１】一致比較部７９の構成を示す図である。
【図２２】マスク処理を説明するための図である。
【図２３】マスク処理を説明するための図である。
【図２４】検索エンジン部１１の処理手順を示すフローチャートである。
【図２５】検索エンジン部１１の処理手順、特に自立チェックの手順を示すフローチャートである。
【図２６】検索エンジン部１１の他の構成を示す図である。
【図２７】第３実施例の構成を示すブロック図である。
【図２８】従来技術でフレームデータの流れを示す図である。
【図２９】第１実施例でのフレームデータの流れを示す図である。
【図３０】第３実施例でのフレームデータの流れを示す図である。
【図３１】第３実施例の処理手順を示すフローチャートである。
【図３２】状態管理部１００を説明するための図である。
【図３３】状態管理部１００の処理手順を示すフローチャートである。
【図３４】ゲートウェイハードマクロ部１７の他の構成を示す図である。
【図３５】ゲートウェイハードマクロ部１７の他の構成を示す図である。
【図３６】ゲートウェイハードマクロ部１７の他の構成を示す図である。
【図３７】データラベルの使用例を示す図である。
【図３８】複数のＥＣＵと車載ゲートウェイ装置との接続構成を示す図である。
【符号の説明】
【０１１３】
１  車載ゲートウェイ装置
２  ＣＰＵ
３  ＦＬＡＳＨ  ＲＯＭ
４  ＵＡＲＴ
５  フリーランタイマ
６  割込み制御部
７  ＤＭＡコントローラ
８  ＣＡＮインタフェース部
９  ＣＡＮ
１０  バスインタフェース部
１１  検索エンジン部
１２  ゲートウェイ制御部
１３  マップメモリ
１４  送信バッファ
１５  受信バッファ
１６  ＣＰＵバス
１７  ゲートウェイハードマクロ部
２０  送信ＦＩＦＯ部
２１  送信ＦＩＦＯ
２２  メッセージカウンタ
３０  検索制御部
３１  レジスタ部
３２  テンポラリバッファ
３５  アドレス生成部
３６  マップメモリＩ／Ｆ部
３７  データ比較部
５１  振り分け部
５２  セレクタ部
５３  並列バッファ
５４  調停部
５５  フォーマット変換部
５６  レジスタ
７０  状態制御部
７１  エントリ識別部
７９  一致比較部
８０  エントリチェック部
９１  選択部
９２  第１変換部
９３  第２変換部
９５  論理演算部
９６  一致比較演算部
１００  状態管理部
２００  状態監視ブロック
【図１】
2006333438.tif 000004
【図２】
2006333438.tif 000005
【図３】
2006333438.tif 000006
【図４】
2006333438.tif 000007
【図５】
2006333438.tif 000008
【図６】
2006333438.tif 000009
【図７】
2006333438.tif 000010
【図８】
2006333438.tif 000011
【図９】
2006333438.tif 000012
【図１０】
2006333438.tif 000013
【図１１】
2006333438.tif 000014
【図１２】
2006333438.tif 000015
【図１３】
2006333438.tif 000016
【図１４】
2006333438.tif 000017
【図１５】
2006333438.tif 000018
【図１６】
2006333438.tif 000019
【図１７】
2006333438.tif 000020
【図１８】
2006333438.tif 000021
【図１９】
2006333438.tif 000022
【図２０】
2006333438.tif 000023
【図２１】
2006333438.tif 000024
【図２２】
2006333438.tif 000025
【図２３】
2006333438.tif 000026
【図２４】
2006333438.tif 000027
【図２５】
2006333438.tif 000028
【図２６】
2006333438.tif 000029
【図２７】
2006333438.tif 000030
【図２８】
2006333438.tif 000031
【図２９】
2006333438.tif 000032
【図３０】
2006333438.tif 000033
【図３１】
2006333438.tif 000034
【図３２】
2006333438.tif 000035
【図３３】
2006333438.tif 000036
【図３４】
2006333438.tif 000037
【図３５】
2006333438.tif 000038
【図３６】
2006333438.tif 000039
【図３７】
2006333438.tif 000040
【図３８】
2006333438.tif 000041