(57)【要約】【課題】データの中継により生じる異常の発生箇所を特定できるゲートウェイ装置及びゲートウェイ方法を提供する。【解決手段】所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理をハードウェア処理によって行うハードウェア中継手段と、ネットワーク間のデータの中継処理における所定処理を、ソフトウェア処理によって行うソフトウェア中継手段と、ハードウェアによるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータの中継が所定時間よりも短い時間内に行われている場合に、ハードウェア中継手段が異常であると判断する異常個所特定手段とを備える。これによれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、異常の発生箇所をハードウェア中継手段であると精度良く特定できる。【選択図】図２
2009253464.tif 000002
【特許請求の範囲】
【請求項１】
所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理を、ハードウェア処理によって行うハードウェア中継手段と、
ネットワーク間のデータの中継処理における前記所定処理を、ソフトウェア処理によって行うソフトウェア中継手段と、
前記ハードウェアによるデータの中継が所定時間以上行われておらず、前記ソフトウェア中継手段によるデータの中継が前記所定時間よりも短い時間内に行われている場合に、前記ハードウェア中継手段が異常であると判断する異常個所特定手段と、を備えることを特徴とするゲートウェイ装置。
【請求項２】
前記所定処理は、ネットワークからデータを受信する受信処理が行われた後に行われる処理であり、
前記異常個所特定手段は、前記ハードウェア中継手段によるデータの中継が所定時間以上行われておらず、前記ソフトウェア中継手段によるデータ中継が前記所定時間よりも短い時間内に行われており、かつ、前記受信処理が前記所定時間よりも短い時間内に行われている場合に、前記ハードウェア中継手段が異常であると判断することを特徴とする請求項１に記載のゲートウェイ装置。
【請求項３】
前記受信処理を実行する受信手段を更に備え、
前記異常個所特定手段は、前記ハードウェア中継手段によるデータの中継が所定時間以上行われておらず、前記ソフトウェア中継手段によるデータ中継が前記所定時間よりも短い時間内に行われており、かつ、前記受信処理が前記所定時間よりも短い時間を超えて実行されていない場合に、前記受信手段が異常であると判断することを特徴とする請求項２に記載のゲートウェイ装置。
【請求項４】
所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理を、ハードウェア処理によって行うハードウェア中継ステップと、
ネットワーク間のデータの中継処理における前記所定処理を、ソフトウェア処理によって行うソフトウェア中継ステップと、
前記ハードウェアによるデータの中継が所定時間以上行われておらず、前記ソフトウェア中継手段によるデータの中継が所定時間よりも短い時間内に行われている場合に、前記ハードウェア中継手段が異常であると判断する異常個所特定ステップと、を備えることを特徴とするゲートウェイ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両の挙動を制御する制御装置間で送受信されるデータの中継を行うゲートウェイ装置及びゲートウェイ方法に関し、データの中継に伴って生じる異常の発生箇所を特定する装置及び方法に関する。
【背景技術】
【０００２】
近年、車両には、車両を構成するエンジンを制御するエンジン制御装置、ドアの開閉を制御するボデー制御装置、及びオーディオを制御するオーディオ制御装置等といった複数の制御装置（ＥＣＵ：Electronic Control Unit）が搭載される傾向がある。
【０００３】
これら複数の制御装置は、接続されたネットワーク間を相互に通信可能に接続しているが、送受信されるデータによっては、ネットワーク間の受け渡しが必要なものと不要なものとがあり、通信負荷の低減のためには、受け渡しを行うデータの選別を行う必要があり、また、異なる方式又は速度で通信を行う複数のネットワークを介して制御装置が通信するためには、ネットワークの中継地点において、データを中継するゲートウェイ装置が必要となる。
【０００４】
また近年、制御装置間で送受信される情報が増加するだけでなく、車両に搭載される制御装置の数が増加する傾向にあるため、ゲートウェイ装置が行う中継処理に要する処理時間が増加するという問題が生じている。
【０００５】
そこで、ハードウェアによりデータを中継するハードウェア中継、又はソフトウェアを用いて中継するソフトウェア中継のいずれか一つを、中継するデータに基づいて選択して中継することで、中継処理に要する処理時間を軽減できる中継方法が知られるに至った（例えば、特許文献１）。
【０００６】
この中継方法は、ハードウェア中継又はソフトウェア中継のいずれか１つを指定して送信されたデータから、指定された中継方法を判定する判定ステップと、前記判定ステップで判定された中継方法に従ってデータを中継する中継ステップとを備えることを特徴としている。
【０００７】
【特許文献１】特開２００３−６９５８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで上記のような中継方法において、中継するデータの消失等の異常が発生した場合に、例えば、全ての中継を停止することがないようにするためには、ハードウェア中継又はソフトウェア中継のいずれの処理において異常が生じたかを特定する必要がある。
【０００９】
本発明は、上記問題に鑑みて成されたものであり、その目的とするところは、データの中継により生じる異常の発生箇所を特定できるゲートウェイ装置及びゲートウェイ方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係るゲートウェイ装置は、所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理を、ハードウェア処理によって行うハードウェア中継手段と、ネットワーク間のデータの中継処理における所定処理を、ソフトウェア処理によって行うソフトウェア中継手段と、ハードウェアによるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータの中継が所定時間よりも短い時間内に行われている場合に、ハードウェア中継手段が異常であると判断する異常個所特定手段とを備えることを特徴としている。
【００１１】
上記構成において、所定処理は、ネットワークからデータを受信する受信処理が行われた後に行われる処理であり、異常個所特定手段は、ハードウェア中継手段によるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータ中継が所定時間よりも短い時間内に行われており、かつ、受信処理が所定時間よりも短い時間内に行われている場合に、ハードウェア中継手段が異常であると判断する構成を採用できる。
【００１２】
上記構成において、受信処理を実行する受信手段を更に備え、異常個所特定手段は、ハードウェア中継手段によるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータ中継が所定時間よりも短い時間内に行われており、かつ、受信処理が所定時間よりも短い時間を超えて実行されていない場合に、受信手段が異常である構成を採用できる。
【００１３】
本発明に係るゲートウェイ方法は、所定の制御を行う制御装置が接続されたネットワーク間のデータの中継処理における所定処理を、ハードウェア処理によって行うハードウェア中継ステップと、ネットワーク間のデータの中継処理における所定処理を、ソフトウェア処理によって行うソフトウェア中継ステップと、ハードウェアによるデータの中継が所定時間以上行われておらず、ソフトウェア中継手段によるデータの中継が所定時間よりも短い時間内に行われている場合に、ハードウェア中継手段が異常であると判断する異常個所特定ステップとを備えることを特徴としている。
【発明の効果】
【００１４】
請求項１の構成によれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
【００１５】
請求項２の構成によれば、受信処理におけるデータの中継時間間隔に基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
【００１６】
請求項３の構成によれば、受信処理におけるデータの中継時間間隔に基づいて、データの中継により生じる異常の発生箇所を受信手段であると精度良く特定できる。
【００１７】
請求項４の構成によれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の最良の実施形態について、添付図面を参照しつつ説明する。
【実施例１】
【００１９】
図１は、本発明のゲートウェイ装置の一実施形態を示す構成図である。
【００２０】
車両１００は、例えば、乗用車、バス、及びトラック等の自動車で構成される。尚、本実施例では、車両１００が自動車で構成されるとして説明を行うが、これに限定される訳ではなく、原動機付自転車、軽車両、及びトロリーバス、戦車及び装甲車等の軍用車両、並びに鉄道車両で構成される実施例を採用できる。
【００２１】
本実施例において、ゲートウェイ装置１０００が車両１００に搭載される場合について説明するが、これに限定される訳ではない。例えば、ゲートウェイ装置１０００は、船舶、航空機、並びに人工衛星、宇宙探査機、及び宇宙ステーション等の宇宙機に搭載される構成を採用できる。また更に、ゲートウェイ装置１０００は、車両又は船舶等に搭載されることがない構成を採用できる。
【００２２】
車両１００は、ゲートウェイ装置１０００及びＥＣＵ（Electronic Control Unit）２０１１、２０２１、及び２０３１、並びにＥＣＵ２０１２、２０１３、２０２２、２０２３、２０３２、及び３０３３（後述する図２参照）を備える。
【００２３】
ゲートウェイ装置１０００について説明する前に、ＥＣＵ２０１１から２０３３について説明する。
【００２４】
ＥＣＵ２０１１から２０３３は、車両１００の挙動を制御する。本実施例では、ＥＣＵ２０１１から２０３３は、車両１００が備えるエンジンの点火装置（ignition）の点火タイミングを制御することで、車両１００の挙動を制御するとして説明を行うが、これに限定される訳ではない。
【００２５】
ここで、車両１００の挙動は、広く車両１００の動きをいう。車両１００の動きは、例えば、車両１００の速度及び加速度の変化、車両１００の進行方向及びヨーイングの変化、並びに車両１００に加わる加重の変化を含むだけでなく、車両１００が備えるエアバッグの動作、ドアの開閉、オーディオの動作、及びナビゲーションの動作を含む。
【００２６】
ＥＣＵ２０１１から２０３３は、図示を省略するが、異なる通信方式又は通信速度で通信するバスで構成される通信網（つまり、ネットワーク）を介してゲートウェイ装置１０００と接続する。本実施例においては、ＥＣＵ２０１１から２０３３は、ＣＡＮプロトコルを用いてゲートウェイ装置１０００と通信を行うとして説明するが、これに限定される訳ではなく、例えば、ＥＣＵ２０１１から２０３３は、ＬＩＮ（Local Interconnect Network）プロトコルを用いて通信する構成を採用できる。
【００２７】
ゲートウェイ装置１０００は、車両１００の挙動を制御するＥＣＵ２０１１から２０３３間で、送受信されるデータを中継する。具体的には、ゲートウェイ装置１０００は、ＥＣＵ２０１１から２０３３のいずれか１つからデータを受信し、受信したデータを中継する中継先の通信網へ中継する。
【００２８】
本発明に係るゲートウェイ装置１０００は、主にハードウェア処理によってデータを中継する中継部と、主にソフトウェア処理によってデータを中継等する中継部との２つの中継部によって構成される。
【００２９】
尚、ゲートウェイ装置１０００がデータを中継するために、一度に受信又は送信するデータをフレーム・データという。本実施例では、フレーム・データは、例えば、ＣＡＮ（Controller Area Network）プロトコルに従った枠となる所定のデータから開始する所定の長さを有するデータであるとして説明するが、これに限定される訳ではない。
【００３０】
ここで図２を参照して、ゲートウェイ装置１０００のハードウェア構成の一例について説明する。図２は、ゲートウェイ装置１０００のハードウェア構成の一例を表す図である。
【００３１】
ゲートウェイ装置１０００は、ＣＡＮコントローラ１１１０から１１３０、ＣＡＮインタフェース部１２００、ハードウェア中継部１３００（以下、ハードマクロともいう）、及びソフトウェア処理部１４００で構成される。
【００３２】
本実施例において、ゲートウェイ装置１０００は、３つのＣＡＮコントローラ１１１０から１１３０で構成されるとして説明するが、この数に限定される訳ではなく、ＣＡＮコントローラの数が複数であればよい。
【００３３】
ＣＡＮコントローラ１１１０から１１３０は、それぞれ同様の接続、構成、及び機能を有するため、以下単に、ＣＡＮコントローラ１１１０についてのみ説明を行う。
【００３４】
ＣＡＮコントローラ１１１０は、ＣＡＮバスＢＣ１０を介してＥＣＵ２０１１から２０１３に接続し、かつＣＡＮインタフェース部１２００に接続している。
【００３５】
ＣＡＮコントローラ１１１０は、ＣＡＮインタフェース部１２００を介して接続するハードウェア中継部１３００及び（ソフトウェア処理部１４００を構成する）ソフトウェア中継部１４１０の１つ以上が中継するフレーム・データを、制御装置であるＥＣＵ２０１１ないし２０３１から受信し、受信したデータをハードウェア中継部１３００又はソフトウェア中継部１４１０へ出力する。尚、ソフトウェア中継部１４１０については図示を省略しているため後述することとする。
【００３６】
また、ＣＡＮコントローラ１１１０は、ハードウェア中継部１３００又はソフトウェア中継部１４１０から、中継先であるＥＣＵ２０１１から２０１３へ中継するデータを取得し、取得したデータを他のＥＣＵ２０１１から２０１３へ送信する。
【００３７】
尚、ＣＡＮコントローラ１１１０ないし１１３０とＣＡＮバスＢＣ１０ないし３０とを結ぶ伝送路をチャネルという。本実施例では、ＣＡＮコントローラ１１１０とＣＡＮバスＢＣ１０とを結ぶ伝送路をチャネルＣＨ０とし、ＣＡＮコントローラ１１２０とＣＡＮバスＢＣ２０とを結ぶ伝送路をチャネルＣＨ１とし、ＣＡＮコントローラ１１３０とＣＡＮバスＢＣ３０とを結ぶ伝送路をチャネルＣＨ２とする。
【００３８】
尚、ＣＡＮバスＢＣ１０には、ＥＣＵ２０１１から２０１３が接続し、ＣＡＮバスＢＣ２０には、ＥＣＵ２０２１から２０２３が接続し、ＣＡＮバスＢＣ３０には、ＥＣＵ２０３１から２０３３が接続する。
【００３９】
ここで図３を参照して、ＣＡＮコントローラ１１１０のハードウェア構成の一例について説明を行う。図３は、ＣＡＮコントローラ１１１０のハードウェア構成の一例を表す図である。
【００４０】
ＣＡＮコントローラ１１１０は、バッファ１１１１及びＣＡＮ通信部１１１４で構成される。
【００４１】
バッファ１１１１は、例えば、ＲＡＭ（Random Access Memory）及びレジスタで構成され、ＣＡＮ通信部１１１４に接続している。
【００４２】
バッファ１１１１は、互いに関連付けられた複数のメッセージボックス１１１２と完了フラグ１１１３とで構成される。
【００４３】
メッセージボックスは、例えば、ＲＡＭで構成される。メッセージボックスは、データの受信に用いる受信用メッセージボックス１１１２Ａと送信に用いる送信用メッセージボックス１１１２Ｂとに種別される。
【００４４】
受信用メッセージボックス１１１２Ａは、ＣＡＮ通信部１１１４が受信したフレーム・データを記憶する記憶領域である。また、送信用メッセージボックス１１１２Ｂは、ＣＡＮバス１０へと送信されるフレームデータを保存する記憶領域である。
【００４５】
尚、後に説明する図４では、メッセージボックス１１１２を受信用メッセージボックス１１１２Ａと送信用メッセージボックス１１１２Ｂとに分けて図示する。しかしこれは、１つのメッセージボックス１１１２を送信用と受信用とに分けて使用するため、説明の便宜上、分けて図示するに過ぎない。勿論、受信用メッセージボックス１１１２Ａと送信用メッセージボックス１１１２Ｂとを、物理上、別途に設ける構成を採用できる。
【００４６】
完了フラグ１１１３は、例えば、レジスタによって記憶され、受信用メッセージボックス１１１２Ａと、送信用メッセージボックス１１１２Ｂとのそれぞれに関連付けて設けられている。
【００４７】
受信用メッセージボックス１１１２Ａに関連付けた完了フラグ１１１３（以下単に、受信完了フラグ１１１３という）は、ＣＡＮ通信部１１１４が実行するフレーム・データを受信するための処理が完了した場合に立ち上げられる（つまり、ＯＮとなる）フラグである。
【００４８】
より詳細に説明すると、受信完了フラグ１１１３は、ＣＡＮ通信部１１１４が受信したフレーム・データであって、ハードウェア中継部１３００又はソフトウェア処理部１４００が未だ取得していないデータを、受信用メッセージボックス１１１２Ａが記憶していることを表すフラグである。
【００４９】
送信用メッセージボックス１１１２Ｂに関連付けた完了フラグ１１１３（以下単に、送信完了フラグ１１１３という）は、送信用メッセージボックス１１１２Ｂにフレームデータが格納された場合に立ち下げられる（つまり、ＯＦＦとなる）フラグである。また、完了フラグ１１１３は、格納されたフレームデータのＥＣＵ２０１１から１３に対する送信が完了した場合に立ち上げられる（つまり、ＯＮとなる）フラグである。
【００５０】
ＣＡＮ通信部１１１４は、バッファ１１１１、ＣＡＮインタフェース部１２００、及びＣＡＮバス１０に接続する。
【００５１】
ＣＡＮ通信部１１１４は、ＣＡＮ受信処理を実行することで、ＣＡＮプロトコルに従ってＣＡＮバス１０からフレーム・データを受信する。また、ＣＡＮ通信部１１１４は、受信したデータを受信用メッセージボックス１１１２Ａに保存すると共に、データを保存したメッセージボックスに関連付けた受信完了フラグ１１１３を立ち上げる（つまり、ＯＮとする）。
【００５２】
更に、ＣＡＮ通信部１１１４は、フレーム・データを受信したことを通知する受信割込信号を、ＣＡＮインタフェース部１２００を介してハードウェア中継部１３００及びソフトウェア処理部１４００へ出力する。
【００５３】
尚、ＣＡＮ通信部１１１４から受信割込信号を取得したハードウェア中継部１３００又はソフトウェア処理部１４００は、ＣＡＮインタフェース部１２００を介してフレーム・データを参照した後に、参照したデータを保存した受信用メッセージボックス１１１２Ａに関連付けた受信完了フラグ１１１３を立ち下げる。
【００５４】
また、ＣＡＮ通信部１１１４は、ＣＡＮ送信処理を実行することで、ＣＡＮプロトコルに従って、ＣＡＮインタフェース部１２００から出力されるフレーム・データをＣＡＮバス１０へ送信する。
【００５５】
ＣＡＮ通信部１１１４は、ＣＡＮバス１０へのフレームデータの送信を完了した後に、送信が完了したデータを保存した送信用メッセージボックス１１１２Ｂに関連付けた送信完了フラグ１１１３を立ち上げる。
【００５６】
尚、ＣＡＮ受信処理及びＣＡＮ送信処理は、ＣＡＮプロトコルに従ってフレーム・データを送受信するための公知の処理により実現できるため、説明を省略する。
【００５７】
ここで図２に戻り、ゲートウェイ装置１０００の構成について引き続き説明を行う。
【００５８】
ＣＡＮインタフェース部１２００は、ＣＡＮコントローラ１１１０から１１３０及びハードウェア中継部１３００に接続している。ＣＡＮインタフェース部１２００は、ＣＡＮコントローラ１１１０から１１３０とＣＡＮインタフェース部１２００との間でデータ転送を可能とするバスＢ１０から１２と、ＣＡＮインタフェース部１２００とハードウェア中継部１３００及びＣＰＵ１４１０との間でデータ転送を可能とするバスＢ２とのインタフェースを提供する。
【００５９】
尚、ＣＡＮインタフェース部１２００、ハードウェア中継部１３００、及びソフトウェア処理部１４００は、バスＢ２を介して互いにデータ転送が可能なように接続している。
【００６０】
ハードウェア中継部１３００は、車両１００の挙動を制御する制御装置であるＥＣＵ２０１１から２０３３間で送受信されるデータを、後述するハードウェア中継処理を実行することによってソフトウェア処理部１４００へ中継する。尚、ハードウェア中継処理は、ハードウェアを用いて実行される処理である。
【００６１】
尚、ハードウェア中継部１３００は、フレーム・データの内でＮＭフレーム（Network Management）を除くフレーム（以下単に、中継フレームという）のデータを転送する。
【００６２】
また、後述するソフトウェア処理部１４００は、フレーム・データの内でＮＭフレームのデータを送受信すると共に、ハードウェア中継部１３００が中継した中継フレームのデータを中継する。
【００６３】
尚、ＮＭフレームとは、ＣＡＮプロトコルを用いて通信を行う通信網に接続する装置の状態を表すフレーム・データであり、かつネットワークの管理に用いられるフレーム・データをいう。
【００６４】
尚、ゲートウェイ装置１０００は、中継の必要がないフレーム・データをも受信する。中継の必要がないフレーム・データは、ゲートウェイ装置１０００によって破棄される。
【００６５】
ここで図４を参照して、ハードウェア中継部１３００のハードウェア構成について説明する。図４は、ハードウェア中継部１３００のハードウェア構成の一例を表す図である。
【００６６】
ハードウェア中継部１３００は、検索エンジン部１３１０、ルーティング・マップ１３２０、及び送信バッファ１３３０で構成される。
【００６７】
検索エンジン部１３１０は、図示を省略するが、例えば、ＲＡＭで構成されるメモリを有し、ＣＡＮインタフェース部１２００、ルーティング・マップ１３２０、送信バッファ１３３０、及びソフトウェア処理部１４００に接続している。検索エンジン部１３１０は、後述する経路検索処理を実行することで、フレーム・データに基づいて中継先のチャネル等を検索する。
【００６８】
尚、検索エンジン部１３１０は、経路検索処理を実行するためのハードウェア回路で構成される。よって、経路検索処理は、ハードウェア処理であり上記のハードウェア中継処理に相当する。
【００６９】
次に図５を参照して、検索エンジン部１３１０が実行する経路検索処理について説明する。図５は、検索エンジン部１３１０が実行する経路検索処理の一例を表すフローチャートである。
【００７０】
尚、検索エンジン部１３１０は、ＣＡＮコントローラ１１１０ないし１１３０から、受信割込信号を取得した場合に経路検索処理を実行する。
【００７１】
先ず、検索エンジン部１３１０は、ＣＡＮインタフェース部１２００を介して、ＣＡＮコントローラ１１１０ないし１１３０から中継フレームのフレーム・データ（以下単に、中継フレーム・データという）を取得する（ステップＳＴ０００１）。
【００７２】
その後、検索エンジン部１３１０は、取得した中継フレーム・データに関連付けたＣＡＮコントローラ１１１０ないし１１３０の受信完了フラグを立ち下げる（ステップＳＴ０００２）。次に、検索エンジン部１３１０は、取得したフレーム・データから、フレーム・データのフォーマット種別ＩＤＥ、フレーム種別ＲＴＲ、及びフレーム・データを発信した装置のＩＤ、中継元のチャネル、及び中継先のチャネルを取得する（ステップＳＴ０００３）。
【００７３】
その後、検索エンジン部１３１０は、ルーティング・マップ１３２０から、取得したフォーマット種別ＩＤＥ、フレーム種別ＲＴＲ、及びＣＡＮ ＩＤを保存する行（以下単に、エントリともいう）を検索する（ステップＳＴ０００４）。
【００７４】
次に、検索エンジン部１３１０は、検索した行のデータをパリティを用いて検査するパリティ検査処理を実行する（ステップＳＴ０００５）。尚、パリティ検査処理については後述する。
【００７５】
尚、本実施例では、ステップＳＴ０００５において、ルーティング・マップ１３２０が保存するデータをパリティを用いて検査する方法について説明するが、これに限定される訳ではなく、ステップＳＴ０００５において、フレーム・データをパリティを用いて検査する構成を採用できる。
【００７６】
また、本実施例では、パリティを用いてデータの誤りを検出する方法について説明したが、これに限定される訳ではなく、例えば、チェック・サム、ＣＲＣ（Cyclic Redundancy Check）、ハッシュ値、ハミング符号、疎グラフ符号(Sparse graph code) 、又は畳込符号（Convolutional code）を用いてデータの誤りを検出する構成を採用できる。
【００７７】
ステップＳＴ０００５を実行した後に、検索エンジン部１３１０は、検索した行が保存する中継する先のチャネル（以下単に、中継先チャネルという）ＴｘＣＨの送信ＦＩＦＯ（First In, First Out）へ、フレーム・データを出力する（ステップＳＴ０００６）。
【００７８】
尚、送信ＦＩＦＯは、後述する送信バッファ１３３０を構成する記憶領域であって、データの先入れ先出しに用いられるものである。送信バッファ１３３０は、保存するデータの送信先チャネル及び送信するデータの種類毎に、複数の送信ＦＩＦＯを有する。
【００７９】
ステップＳＴ０００６を実行した後に、検索エンジン部１３１０は、データを出力したＦＩＦＯに関連付けられたハードウェアカウンタ（以下、メッセージカウンタともいう）をインクリメントする（ステップＳＴ０００７）。その後、検索エンジン部１３１０は、経路検索処理の実行を終了する。
【００８０】
尚、ハードウェアカウンタとは、関連付けられたＦＩＦＯが保存するデータの数を表すカウンタであって、ハードウェア中継部１３００が中継するデータの数を表すカウンタである。
【００８１】
ここで、検索エンジン部１３１０が実行するパリティ検査処理について説明する前に、図４に戻り、パリティ検査処理で用いるパリティを保存するルーティング・マップ１３２０の構成について説明する。
【００８２】
ルーティング・マップ１３２０は、例えば、ＲＯＭで構成される。ルーティング・マップ１３２０は、検索エンジン部１３１０に接続している。
【００８３】
ルーティング・マップ１３２０は、フレーム・データのフォーマット種別ＩＤＥ、フレーム種別ＲＴＲ、及びＩＤと、フレーム・データの中継元及び中継先とを関連付けるテーブルを保存する。
【００８４】
ここで、図６を参照して、ルーティング・マップ１３２０が保存するテーブルについて説明を行う。図６は、ルーティング・マップ１３２０が保存するテーブルの一例を表す図である。
【００８５】
図６に示すテーブルは、Ｐａｒ１フィールド、ＩＤＥフィールド、ＲＴＲフィールド、ＩＤフィールド、Ｐａｒ２フィールド、ＦＩＦＯフィールド、ＴｘＣＨフィールド、Ｌａｂｅｌ（ラベル）１フィールド、Ｌａｂｅｌ（ラベル）０フィールド、ＲｘＣＨフィールド、及びＭａｓｋＩｎｆｏフィールドを有する。
【００８６】
Ｐａｒ１フィールドはＩＤＥフィールド、ＲＴＲフィールド、及びＩＤフィールドが保存するデータのパリティを、ＩＤＥフィールドはフレーム・データのフォーマット種別を、ＲＴＲフィールドはフレーム種別を、ＩＤフィールドはＩＤを保存する。
【００８７】
Ｐａｒ２フィールドはＦＩＦＯフィールドからＭａｓｋＩｎｆｏフィールドまでのフィールドが保存するデータのパリティを、ＦＩＦＯフィールドは中継先のＦＩＦＯを、ＴｘＣＨフィールドは中継先チャネルを、Ｌａｂｅｌ１及びＬａｂｅｌ０は中継するデータに付加するデータを、ＲｘＣＨは受信した元のチャネル（以下単に、受信元チャネルという）を、ＭａｓｋＩｎｆｏは行のソートに用いるインデックスの計算時に用いるマスク値を保存する。
【００８８】
尚、ＩＤＥフィールド、ＲＴＲフィールド、及びＩＤフィールドは、キーフィールドであって、ＩＤＥフィールド、ＲＴＲフィールド、及びＩＤフィールドの保存するデータが全て重複する行は、テーブル中に存在しない。
【００８９】
次に、図７を参照して、検索エンジン部１３１０が実行するパリティ検査処理について説明する。図７は、検索エンジン部１３１０が実行するパリティ検査処理の一例を表すフローチャートである。
【００９０】
先ず、検索エンジン部１３１０は、取得したフレーム・データのフォーマット種別ＩＤＥ、フレーム種別ＲＴＲ、及びＩＤからパリティを算出する（ステップＳＴ０１０１）。次に、検索した行が保存するフォーマット種別ＩＤＥ、フレーム種別ＲＴＲ、及びＩＤに対するパリティを、Ｐａｒ１フィールドから取得する（ステップＳＴ０１０２）。
【００９１】
その後、検索エンジン部１３１０は、ステップＳＴ０１０１で算出したパリティと、ステップＳＴ０１０２で検索したパリティとが一致するか否かを判断する（ステップＳＴ０１０３）。検索エンジン部１３１０は、パリティとが一致すると判断する場合にはステップＳＴ０１０４の処理を、そうで無い場合にはステップＳＴ０１０８の処理を実行する。
【００９２】
ステップＳＴ０１０３において、検索エンジン部１３１０は、パリティが一致すると判断した場合には、検索した行が保存するＦＩＦＯフィールドからＭａｓｋＩｎｆｏフィールドまでのフィールドが保存するデータ（以下単に、ＦＩＦＯ及び中継先ＣＨ等という）を取得する（ステップＳＴ０１０４）。
【００９３】
次に、検索エンジン部１３１０は、ＦＩＦＯ及び中継先ＣＨ等からパリティを算出する（ステップＳＴ０１０５）。その後、検索エンジン部１３１０は、検索した行が保存するＦＩＦＯ及び中継先ＣＨ等に対するパリティを、Ｐａｒ２フィールドから取得する（ステップＳＴ０１０６）。
【００９４】
その後、検索エンジン部１３１０は、ステップＳＴ０１０５で算出したパリティと、ステップＳＴ０１０６で検索したパリティとが一致するか否かを判断する（ステップＳＴ０１０７）。検索エンジン部１３１０は、パリティとが一致すると判断する場合にはパリティ検査処理の実行を終了し、そうで無い場合にはステップＳＴ０１０８の処理を実行する。
【００９５】
ステップＳＴ０１０３又はステップＳＴ０１０７の処理において、検索エンジン部１３１０は、パリティが一致しないと判断した場合には、ソフトウェア処理部１４００へ、パリティ・エラーを検出した旨を通知するパリティエラー検出信号を出力する（ステップＳＴ０１０８）。その後、検索エンジン部１３１０は、パリティ検査処理の実行を終了する。
【００９６】
ここで図４に戻り、ハードウェア中継部１３００の構成について引き続き説明を行う。
【００９７】
送信バッファ１３３０は、例えば、ＲＡＭ及びレジスタで構成される。送信バッファ１３３０は、検索エンジン部１３１０、及びソフトウェア処理部１４００に接続している。
【００９８】
送信バッファ１３３０を構成するＲＡＭのメモリ領域は、フレーム・データを保存する送信ＦＩＦＯ１３３１、１３３３、１３３５、及び１３３７を構成し、送信バッファ１３３０を構成するレジスタは、送信ＦＩＦＯ１３３１、１３３３、１３３５、及び１３３７に保存されたデータ数を表すハードウェアカウンタ（つまり、メッセージカウンタ）１３３２、１３３４、１３３６、及び１３３８を保存する。尚、ＦＩＦＯについては、既に説明したため、詳細な説明を省略する。
【００９９】
ここで、送信ＦＩＦＯ１３３１及び１３３３は、チャネルＣＨ０へ中継されるフレーム・データを保存し、送信ＦＩＦＯ１３３５及び１３３７は、チャネルＣＨ１へ中継されるデータを保存する。
【０１００】
また、送信ＦＩＦＯ１３３１及び１３３３は、それぞれ異なる予め定められた種類のフレーム・データを保存される。送信ＦＩＦＯ１３３１及び１３３３へのフレームデータの保存は、検索エンジン部１３１０よって行われる。検索エンジン部１３１０は、ルーティングマップ１３２０を用いてＩＤＥ、ＲＴＲ、及びＩＤが一致したエントリ（Ｅｎｔｒｙ）を検索すると共に、検索したエントリの情報ＴｘＣＨ及びＦＩＦＯ（中継先情報）に従ってフレームデータを送信ＦＩＦＯ１３３１及び１３３３に保存する。尚、送信ＦＩＦＯ１３３５及び１３３７についても同様であるので、説明を省略する。
【０１０１】
また、図４において、ハードウェア中継部１３００がチャネルＣＨ２へ中継等するフレーム・データを保存するＦＩＦＯ及びＦＩＦＯが保存するデータ数を表すカウンタの図示を省略しているために説明を省略するが、ハードウェア中継部１３００がフレーム・データをチャネルＣＨ２へ中継する機能を有することは当然である。
【０１０２】
ここで図２に戻り、ゲートウェイ装置１０００の構成について、引き続き説明を行う。
【０１０３】
ソフトウェア処理部１４００は、車両１００の挙動を制御する制御装置であるＥＣＵ２０１１から２０３３間で送受信されるデータを中継等するソフトウェア処理を実行する。
【０１０４】
ソフトウェア処理部１４００は、例えば、ＣＰＵ（Central Processing Unit）等の演算部１４０１、例えば、フラッシュ・メモリ等の記憶部１４０２、及び割込制御部１４０３で構成され、演算部１４０１、記憶部１４０２、及び割込制御部１４０３は、それぞれバスによってデータの授受が可能なように接続している。
【０１０５】
ソフトウェア処理部１４００は、ソフトウェア処理部１４００を構成する記憶部１４０２に格納したプログラムを演算部１４０１が読み、読込んだプログラムに従って演算部１４０１が演算を行うことで後述する各部の機能を実現する。
【０１０６】
また、割込制御部１４０３は、プログラムに従った演算を行う演算部１４０１に対して、ハードウェア中継部１３００等の他のハードウェアを制御するための演算等を割込んで実行することを要求する割込信号の入出力を制御する。
【０１０７】
ここで図８を参照して、ソフトウェア処理部１４００が有する機能について説明する。図８は、ソフトウェア処理部１４００の一構成例を説明する機能ブロック図である。
【０１０８】
ソフトウェア処理部１４００は、ソフトウェア中継部１４１０、監視部１４２０、カウンタ記憶部１４３０、及び特定部１４４０で構成される。
【０１０９】
ソフトウェア中継部１４１０は、ＣＡＮインタフェース部１２００、ハードウェア中継部１３００、及びカウンタ記憶部１４３０に接続する。ソフトウェア中継部１４１０は、ソフトウェア中継処理を実行することで、車両１００の挙動を制御する制御装置であるＥＣＵ２０１１から２０３３間で送受信されるデータの一部をソフトウェア処理によって送受信すると共に、ハードウェア中継部１３００が中継するデータをソフトウェア処理によって中継する。
【０１１０】
ここで図９を参照して、ソフトウェア中継部１４１０の構成について説明を行う。図９は、ソフトウェア中継部１４１０の一構成例を表す機能ブロック図である。
【０１１１】
ソフトウェア中継部１４１０は、ＮＭ（Network Management）フレーム送受信部１４１１及び中継フレーム中継部１４１２で構成される。
【０１１２】
ＮＭフレーム送受信部１４１１は、ＣＡＮインタフェース部１２００及びカウンタ記憶部１４３０に接続している。ＮＭフレーム送受信部１４１１は、後述するＮＭフレーム受信処理を実行することでＮＭフレームを受信し、ＮＭフレーム送信処理を実行することで所定の場合に所定のＮＭフレームを所定チャネルへ送信するメッセージボックスへ送信する。
【０１１３】
ここで図１０を参照して、ＮＭフレーム送受信部１４１１が実行するＮＭフレーム受信処理について説明を行う。図１０は、ＮＭフレーム送受信部１４１１が実行するＮＭフレーム受信処理の一例を表すフローチャートの一部である。
【０１１４】
先ず、ＮＭフレーム送受信部１４１１は、ソフトウェアカウンタの値を「0」とすることで初期化する（ステップＳＴ０２０１）。尚、ソフトウェアカウンタは、ＮＭフレーム送受信部１４１１によって構成されるソフトウェア中継部１４１０が受信するデータの数を表す。また、ＮＭフレーム送受信部１４１１が受信するデータは、ゲートウェイ装置１０００が受信したＮＭフレームの内で所定のＩＤを有するフレームであるため、ソフトウェアカウンタをＮＭフレーム受信カウンタともいう。
【０１１５】
次に、ＮＭフレーム送受信部１４１１は、終了信号を取得したか否かを判断する（ステップＳＴ０２０２）。ＮＭフレーム送受信部１４１１は、終了信号を取得したと判断した場合にはＮＭフレーム受信処理の実行を終了し、そうで無い場合にはステップＳＴ０２０３の処理を実行する。
【０１１６】
ステップＳＴ０２０２において、ＮＭフレーム送受信部１４１１は、終了信号を取得しないと判断した場合には、ＣＡＮインタフェース部１２００を介して、ＣＡＮコントローラ１１１０ないし１１３０のいずれか１つからＮＭフレームを受信する（ステップＳＴ０２０３）。
【０１１７】
次に、ＮＭフレーム送受信部１４１１は、受信したＮＭフレームを保存するＣＡＮコントローラ１１１０ないし１１３０の受信完了フラグを立ち下げる（ステップＳＴ０２０４）。
【０１１８】
その後、ＮＭフレーム送受信部１４１１は、ＮＭフレームからＩＤを取得する（ステップＳＴ０２０５）。次に、ＮＭフレーム送受信部１４１１は、取得したＩＤが、所定のＩＤであるか否かを判断する（ステップＳＴ０２０６）。ＮＭフレーム送受信部１４１１は、取得したＩＤが、所定のＩＤであると判断する場合にはステップＳＴ０２０７の処理を、そうで無い場合にはステップＳＴ０２０２に戻り上記処理処理を繰り返す。
【０１１９】
ステップＳＴ０２０６において、ＮＭフレーム送受信部１４１１は、取得したＩＤが所定のＩＤであると判断した場合には、カウンタ記憶部１４３０のソフトウェアカウンタ（つまり、ＮＭフレーム受信カウンタ）をインクリメントする（ステップＳＴ０２０７）。その後、ＮＭフレーム送受信部１４１１は、ステップＳＴ０２０２に戻り上記処理処理を繰り返す。
【０１２０】
本実施例において、ＮＭフレーム送受信部１４１１は、所定のＩＤを有するＮＭフレームを受信する毎にソフトウェアカウンタをインクリメントするとして説明したが、これに限定される訳ではなく、ＮＭフレーム送受信部１４１１は、ＮＭフレームを送信する毎にソフトウェアカウンタをインクリメントする構成を採用できる。この構成において、ソフトウェアカウンタは、ソフトウェア中継部１４１０が送信するデータの数を表す。
【０１２１】
本実施例において、ＮＭフレーム中継部１４１１は、ＮＭフレームを所定のメッセージボックスに出力するとして説明したが、これに限定される訳ではない。  
【０１２２】
例えば、記憶部１４０２はルーティング・マップ１３２０が記憶するテーブルと同様のテーブルを記憶し、ＮＭフレーム送受信部１４１１は、送受信するＮＭフレームのフォーマット種別ＩＤＥ、フレーム種別ＲＴＲ、及びＣＡＮ ＩＤに基づいて送信先チャネルＴｘＣＨを検索し、検索したチャネルＴｘＣＨへデータを送信するＣＡＮコントローラ１１１０ないし１１３０の１つ以上が有するＦＩＦＯへ、ＮＭフレームを出力する構成を採用できる。
【０１２３】
ここで図９に戻り、ソフトウェア中継部１４１０の構成について引き続き説明を行う。
【０１２４】
中継フレーム中継部１４１２は、ハードウェア中継部１３００及びカウンタ記憶部１４３０に接続している。中継フレーム中継部１４１２は、後述する中継フレーム中継処理を実行することで、中継フレームをハードウェア中継部１３００から中継先の中継チャネルへデータを送信するＣＡＮコントローラ１１１０から１１３０へ中継する。
【０１２５】
ここで図１１を参照して、中継フレーム中継部１４１２が実行する中継フレーム中継処理について説明を行う。図１１は、中継フレーム中継部１４１２が実行する中継フレーム中継処理の一例を表すフローチャートである。
【０１２６】
先ず、中継フレーム中継部１４１２は、カウンタ記憶部１４３０のデータ消失検出カウンタの値を「0」とすることで初期化する（ステップＳＴ０３０１）。
【０１２７】
その後、中継フレーム中継部１４１２は、終了信号を受信したか否かを判断する（ステップＳＴ０３０２）。中継フレーム中継部１４１２は、終了信号を受信したと判断する場合には中継フレーム中継処理の実行を終了し、そうで無い場合にはステップＳＴ０３０３の処理を実行する。
【０１２８】
ステップＳＴ０３０２において、中継フレーム中継部１４１２は、終了信号を受信していないと判断した場合には、ハードウェア中継部１３００が有する送信ＦＩＦＯ１３３１、１３３３、１３３５、及び１３３７のいずれか１つから、メッセージカウンタが表す数だけ、中継フレームのデータを取得する（ステップＳＴ０３０３）。
【０１２９】
次に、中継フレーム中継部１４１２は、ハードウェア中継部１３００が中継するデータの消失を検出するデータ消失検出処理を実行する（ステップＳＴ０３０４）。尚、データ消失検出処理については後述する。
【０１３０】
その後、中継フレーム中継部１４１２は、データを取得した送信ＦＩＦＯ１３３１、１３３３、１３３５、及び１３３７のいずれか１つに関連付けたハードウェアカウンタ（つまり、メッセージカウンタ）の値を「0」として初期化する（ステップＳＴ０３０５）。
【０１３１】
次に、中継フレーム中継部１４１２は、中継フレームに対する所定の処理を実行する（ステップＳＴ０３０６）。
【０１３２】
その後、中継フレーム中継部１４１２は、中継フレームが格納されていた送信ＦＩＦＯ１３３１、１３３３、１３３５、又は１３３７に対応するＣＡＮコントローラ１１１０が有する送信用メッセージボックス１１１２Ｂへ、中継フレームを出力する（ステップＳＴ０３０７）。その後、中継フレーム中継部１４１２は、ステップＳＴ０３０２に戻り、上記処理を繰り返す。
【０１３３】
尚、上記のＮＭフレーム送信処理、ＮＭフレーム受信処理、及び中継フレーム中継処理は、ソフトウェア処理である。よって、ソフトウェア中継部１４１０が実行するソフトウェア中継処理は、上記のＮＭフレーム送信処理、ＮＭフレーム受信処理、及び中継フレーム中継処理を実行する処理に相当する。
【０１３４】
ここで、中継フレーム中継部１４１２が実行するデータ消失検出処理の一例について説明する前に、図１２を参照して、ハードウェアカウンタの時間変化について説明する。図１２は、異常が発生していないハードウェア中継部１３００が有するハードウェアカウンタの時間変化の一例を表す図である。
【０１３５】
図１２は、横軸で時間Ｔを、縦軸で所定の送信ＦＩＦＯ１３３１、１３３３、１３３５、又は１３３７に関連付けたハードウェアカウンタ（つまり、メッセージカウンタ）を表す。
【０１３６】
よって図１２は、時刻Ｔ１１、１２、２１、２２、及び２３において、ハードウェア中継部１３００が、所定の送信ＦＩＦＯに１つのフレーム・データを保存すると共に、所定の送信ＦＩＦＯに関連付けられたメッセージカウンタの値をインクリメントしたことを表す。
【０１３７】
また図１２は、時刻Ｔ１及びＴ２において、中継フレーム中継部１４１２が、中継フレーム中継処理を構成するステップＳＴ０３０３及びステップＳＴ０３０５の処理を実行した結果、送信ＦＩＦＯに保存されたメッセージカウンタが表す数のフレーム・データを取得し、その後にメッセージカウンタの値を「0」として初期化したことを表す。
【０１３８】
つまり図１２は、ハードウェア中継部１３００が所定の送信ＦＩＦＯにフレーム・データを保存する毎にメッセージカウンタの値が増加し、かつ中継フレーム中継部１４１２が中継フレーム中継処理の所定のステップを実行する毎にメッセージカウンタの値が「0」に戻ることを表す。
【０１３９】
次に、図１３を参照して、中継フレーム中継部１４１２が実行するデータ消失検出処理の一例について概説する。図１３は、中継フレーム中継部１４１２が実行するデータ消失検出処理の一例について概説するための図である。
【０１４０】
図１３（ａ）は、図１２と同様に、時間とメッセージカウンタの値との関係を表している。図１３（ａ）は、例えば、メッセージカウンタを表すレジスタの値が「0」に固着したために、ハードウェア中継部１３００が、所定の送信ＦＩＦＯにフレーム・データを保存した後であっても、所定の送信ＦＩＦＯに関連付けられたメッセージカウンタの値がインクリメントしない状態を表す。
【０１４１】
また図１３（ｂ）は、横軸で時間Ｔを、縦軸でデータ消失検出カウンタの値を表す。尚、データ消失検出カウンタは、中継フレーム中継部１４１２が、ハードウェア中継部１３００によって中継されるデータの消失を検出した回数を表すカウンタである。
【０１４２】
図１３（ｂ）は、時刻Ｔ１からＴ４において、中継フレーム中継部１４１２がソフトウェア処理である中継フレーム中継処理の所定のステップを実行したことを表す。
【０１４３】
ここで、中継フレーム中継部１４１２は、時刻Ｔ１からＴ４において、中継フレーム中継処理の所定のステップを実行する前に、メッセージカウンタの値が「0」であるか否かを判断する。
【０１４４】
中継フレーム中継部１４１２は、メッセージカウンタの値が「0」であると判断する場合には、ハードウェア中継部１３００が中継対象とするフレーム・データを消失したと判断し、データ消失検出カウンタをインクリメントする。その後、ハードウェア中継部１３００は、データ消失検出処理の実行を終了する。
【０１４５】
次に図１４を参照して、中継フレーム中継部１４１２が実行するデータ消失検出処理について説明する。図１４は、中継フレーム中継部１４１２が実行するデータ消失検出処理の一例を表すフローチャートである。
【０１４６】
先ず、中継フレーム中継部１４１２は、カウンタ記憶部１４３０が記憶するＩＧＯＮ後経過カウンタを参照する（ステップＳＴ０４０１）。ここで、ＩＧＯＮ後経過カウンタとは、車両１００を構成するエンジンに設置される点火装置（ignition）が始動した後の経過時間を表すカウンタである。
【０１４７】
次に、中継フレーム中継部１４１２は、ＩＧＯＮ後経過カウンタが所定の値を超えたか否かを判断する（ステップＳＴ０４０２）。中継フレーム中継部１４１２は、ＩＧＯＮ後経過カウンタが所定の値を超えたと判断する場合にはステップＳＴ０４０３の処理を、そうで無い場合にはステップＳＴ０４１０の処理を実行する。
【０１４８】
この構成により、中継フレーム中継部１４１２は、車両１００の挙動を制御する所定のＥＣＵ２０１１から２０３３が起動し、かつゲートウェイ装置１０００が中継すべきフレーム・データを送信している状態であるか否かを判断できるだけでなく、ハードウェア中継部１３００が中継するデータを消失したことを精度良く検出できる。
【０１４９】
ステップＳＴ０４０２において、中継フレーム中継部１４１２は、ＩＧＯＮ後経過カウンタが所定の値を超えたと判断した場合には、カウンタ記憶部１４３０が記憶するパリティ・エラーフラグを参照する（ステップＳＴ０４０３）。
【０１５０】
次に、中継フレーム中継部１４１２は、パリティ・エラーフラグが立っているか否かを判断する（ステップＳＴ０４０４）。中継フレーム中継部１４１２は、パリティ・エラーフラグが立っていると判断する場合にはステップＳＴ０４１０の処理を、そうで無い場合にはステップＳＴ０４０５の処理を実行する。
【０１５１】
この構成により、中継フレーム中継部１４１２は、ハードウェア中継部１３００が中継先の検索を失敗したか否かを判断するため、ハードウェア中継部１３００が中継するデータを消失したことを精度良く検出できる。
【０１５２】
尚、パリティ・エラーフラグは、ハードウェア中継部１３００が、パリティ・エラーを検出した場合に立てられるフラグである。
【０１５３】
ステップＳＴ０４０４において、中継フレーム中継部１４１２は、パリティ・エラーフラグが立っていないと判断した場合には、カウンタ記憶部１４３０が記憶する受信ロックフラグを参照する（ステップＳＴ０４０５）。
【０１５４】
尚、受信ロックフラグは、監視部１４２０が、受信ロック状態を検出した場合に立てられるフラグである。また、受信ロック状態とは、ＣＡＮコントローラ１１１０から１１３０がデータを受信できないロック状況をいう。この受信ロック状態は、監視部１４２０が、ＣＡＮコントローラ１１１０から１１３０から出力される信号に基づいて検出する。
【０１５５】
また本実施例では、受信ロック状態は、ＣＡＮコントローラ１１１０から１１３０とＥＣＵ２０１１から２０３３とを結ぶＣＡＮバス１０から３０が断線することで、ＣＡＮコントローラ１１１０から１１３０がデータを受信できない状況を含むとして説明するが、データを受信できない原因は、これに限定される訳ではない。
【０１５６】
次に、中継フレーム中継部１４１２は、受信ロックフラグが立っているか否かを判断する（ステップＳＴ０４０６）。中継フレーム中継部１４１２は、受信ロックフラグが立っていると判断する場合にはステップＳＴ０４１０の処理を、そうで無い場合にはステップＳＴ０４０７の処理を実行する。
【０１５７】
この構成により、中継フレーム中継部１４１２は、ＣＡＮコントローラ１１１０から１１３０が受信ロック状態であるか否かを判断するため、ハードウェア中継部１３００が中継するデータを消失したことを精度良く検出できる。
【０１５８】
ステップＳＴ０４０６において、受信ロックフラグが立っていないと判断した場合には、中継フレーム中継部１４１２は、ハードウェア中継部１３００であるハードマクロから全メッセージカウンタを参照する（ステップＳＴ０４０７）。次に、中継フレーム中継部１４１２は、全てのメッセージカウンタの値が「0」であるか否かを判断する（ステップＳＴ０４０８）。中継フレーム中継部１４１２は、全てのメッセージカウンタの値が「0」であると判断する場合にはステップＳＴ０４０９の処理を、そうで無い場合にはステップＳＴ０４１０の処理を実行する。
【０１５９】
ステップＳＴ０４０８において、中継フレーム中継部１４１２は、全てのメッセージカウンタの値が「0」であると判断した場合には、カウンタ記憶部１４３０が記憶するデータ消失検出カウンタをインクリメントする（ステップＳＴ０４０９）。その後、中継フレーム中継部１４１２は、中継フレーム中継処理の実行を終了する。
【０１６０】
ステップＳＴ０４０２において、中継フレーム中継部１４１２は、ＩＧＯＮ後経過カウンタが所定の値を超えないと判断した場合、ステップＳＴ０４０４において、パリティ・エラーフラグが立っていると判断した場合、ステップＳＴ０４０６において、受信ロックフラグが立っていると判断した場合、又はステップＳＴ０４０８において、いずれか１つのメッセージカウンタの値が「0」でないと判断した場合には、カウンタ記憶部１４３０のデータ消失検出カウンタの値を「0」とすることで初期化する（ステップＳＴ０４１０）。その後、中継フレーム中継部１４１２は、中継フレーム中継処理の実行を終了する。
【０１６１】
本実施例では、中継フレーム中継部１４１２は、全てのメッセージカウンタの値が「0」であると判断した場合に、データ消失検出カウンタをインクリメントするとして説明したが、これに限定される訳ではない。例えば、全てのメッセージカウンタの値が変化しない場合に、データ消失検出カウンタをインクリメントする構成を採用できる。
【０１６２】
ここで図８に戻り、ソフトウェア処理部１４００の構成について、引き続き説明を行う。
【０１６３】
監視部１４２０は、ＣＡＮインタフェース部１２００、ハードウェア中継部１３００、及びカウンタ記憶部１４３０に接続している。監視部１４２０は、ハードウェア中継部１３００を含むＣＡＮインタフェース部１２００に接続するハードウェア又は装置を監視する。
【０１６４】
ここで図１５を参照して、監視部１４２０の構成について説明する。図１５は、監視部１４２０の一構成例を表す機能ブロック図である。
【０１６５】
監視部１４２０は、ＩＧ監視部１４２１、ＣＡＮ監視部１４２２、パリティエラー監視部１４２３、及び受信ロック監視部１４２４で構成される。
【０１６６】
ＩＧ監視部１４２１は、ＣＡＮインタフェース部１２００及びカウンタ記憶部１４３０に接続する。ＩＧ監視部１４２１は、ＩＧ監視処理を実行することで、点火装置を制御するＥＣＵ２０１１から２０３３に対する電源の供給を監視して、点火装置の起動後の経過時間をカウントするカウンタであって、カウンタ記憶部１４３０が記憶するＩＧＯＮ後経過カウンタをカウントする。
【０１６７】
ＣＡＮ監視部１４２２は、ＣＡＮインタフェース部１２００及びカウンタ記憶部１４３０に接続している。ＣＡＮ監視部１４２２は、後述するＣＡＮ監視処理を実行することで、ＣＡＮコントローラを監視する。
【０１６８】
ここで図１６を参照して、ＣＡＮ監視部１４２２が実行するＣＡＮ監視処理について説明する。図１６は、ＣＡＮ監視部１４２２が実行するＣＡＮ監視処理の一例を表すフローチャートである。
【０１６９】
先ず、ＣＡＮ監視部１４２２は、カウンタ記憶部１４３０が記憶する受信完了後経過カウンタの値を「0」として初期化する（ステップＳＴ０５０１）。
【０１７０】
その後、ＣＡＮ監視部１４２２は、終了信号を取得したか否かを判断する（ステップＳＴ０５０２）。ＣＡＮ監視部１４２２は、終了信号を取得したと判断する場合にはＣＡＮ監視処理の実行を終了し、そうで無い場合にはステップＳＴ０５０３の処理を実行する。
【０１７１】
ステップＳＴ０５０２において、ＣＡＮ監視部１４２２は、終了信号を取得していないと判断する場合には、ＣＡＮインタフェース部１２００を介してＣＡＮコントローラ１１１０ないし１１３０の全てから受信完了フラグを取得する（ステップＳＴ０５０３）。
【０１７２】
次に、ＣＡＮ監視部１４２２は、いずれかの受信完了フラグが立っているか否かを判断する（ステップＳＴ０５０４）。ＣＡＮ監視部１４２２は、受信完了フラグが立っていると判断する場合にはステップＳＴ０５０５の処理を、そうで無い場合にはステップＳＴ０５０６の処理を実行する。
【０１７３】
ステップＳＴ０５０４において、ＣＡＮ監視部１４２２は、受信完了フラグが立っていると判断した場合には、カウンタ記憶部１４３０が記憶する受信完了後経過カウンタの値を「0」として初期化する（ステップＳＴ０５０５）。その後、ＣＡＮ監視部１４２２は、ステップＳＴ０５０２に戻り、上記処理を繰り返す。
【０１７４】
ステップＳＴ０５０４において、ＣＡＮ監視部１４２２は、いずれの受信完了フラグも立っていないと判断した場合には、カウンタ記憶部１４３０が記憶する受信完了後経過カウンタの値を「1」だけインクリメントする（ステップＳＴ０５０６）。その後、ＣＡＮ監視部１４２２は、ステップＳＴ０５０２に戻り、上記処理を繰り返す。
【０１７５】
ここで図１５に戻り、引き続き監視部１４２０の構成について説明を行う。
【０１７６】
パリティエラー監視部１４２３は、ハードウェア中継部１３００及びカウンタ記憶部１４３０に接続している。パリティエラー監視部１４２３は、後述するパリティエラー監視処理を実行することで、ハードウェア中継部１３００が検出するパリティエラーの発生を監視する。
【０１７７】
ここで図１７を参照して、パリティエラー監視部１４２３が実行するパリティエラー監視処理について説明する。図１７は、パリティエラー監視部１４２３が実行するパリティエラー監視処理の一例を表すフローチャートである。
【０１７８】
先ず、パリティエラー監視部１４２３は、カウンタ記憶部１４３０が記憶するパリティ・エラーフラグを立ち下げる（ステップＳＴ０６０１）。
【０１７９】
その後、パリティエラー監視部１４２３は、終了信号を取得したか否かを判断する（ステップＳＴ０６０２）。パリティエラー監視部１４２３は、終了信号を取得したと判断する場合にはパリティエラー監視処理の実行を終了し、そうで無い場合にはステップＳＴ０６０３の処理を実行する。
【０１８０】
ステップＳＴ０６０２において、パリティエラー監視部１４２３は、終了信号を取得していないと判断する場合には、ハードウェア中継部１３００からパリティエラー検出信号を取得したか否かを判断する（ステップＳＴ０６０３）。パリティエラー監視部１４２３は、パリティエラー検出信号を取得したと判断する場合にはステップＳＴ０６０４の処理を、そうで無い場合にはステップＳＴ０６０２に戻り上記処理を繰り返す。
【０１８１】
ステップＳＴ０６０３において、パリティエラー監視部１４２３は、パリティエラー検出信号を取得したと判断した場合には、パリティ・エラー・フラグを立ち上げる（ステップＳＴ０６０４）。その後、パリティエラー監視部１４２３は、ステップＳＴ０６０２に戻り上記処理を繰り返す。
【０１８２】
ここで図１５に戻り、引き続き監視部１４２０の構成について説明を行う。
【０１８３】
受信ロック監視部１４２４は、ＣＡＮインタフェース部１２００及びカウンタ記憶部１４３０に接続している。受信ロック監視部１４２４は、後述する受信ロック監視処理を実行することで、ＣＡＮコントローラ１１１０から１１３０における受信ロック状態の発生を監視する。
【０１８４】
ここで図１８を参照して、受信ロック監視部１４２４が実行する受信ロック監視処理について説明する。図１８は、受信ロック監視部１４２４が実行する受信ロック監視処理の一例を表すフローチャートである。
【０１８５】
先ず、受信ロック監視部１４２４は、カウンタ記憶部１４３０が記憶する受信ロックフラグを立ち下げて初期化する（ステップＳＴ０７０１）。
【０１８６】
次に、受信ロック監視部１４２４は、割込後経過カウンタを値「0」とすることで初期化する（ステップＳＴ０７０２）。尚、割込後経過カウンタとは、ＣＡＮコントローラ１１１０ないし１１３０から送信される受信割込信号を、ＣＡＮインタフェース部１２００を介して受信ロック監視部１４２４が受信した時点からの経過時間を表す。
【０１８７】
その後、受信ロック監視部１４２４は、終了信号を取得したか否かを判断する（ステップＳＴ０７０３）。受信ロック監視部１４２４は、終了信号を取得したと判断した場合には受信ロック監視処理の実行を終了し、そうで無い場合にはステップＳＴ０７０４の処理を実行する。
【０１８８】
ステップＳＴ０７０３において、受信ロック監視部１４２４は、終了信号を取得しなかったと判断した場合には、ＣＡＮインタフェース部１２００から受信割込信号を取得したか否かを判断する（ステップＳＴ０７０４）。受信ロック監視部１４２４は、受信割込信号を取得したと判断する場合には、ステップＳＴ０７０５の処理を、そうで無い場合にはステップＳＴ０７０８の処理を実行する。
【０１８９】
ステップＳＴ０７０４において、受信ロック監視部１４２４は、受信割込信号を取得しなかったと判断した場合には、割込後経過カウンタをインクリメントする（ステップＳＴ０７０５）。次に、受信ロック監視部１４２４は、割込後経過カウンタが所定の閾値を超えたか否かを判断する（ステップＳＴ０７０６）。受信ロック監視部１４２４は、割込後経過カウンタが所定の閾値を超えたと判断する場合にはステップＳＴ０７０７の処理を実行し、そうで無い場合にはステップＳＴ７０３に戻り上記処理を繰り返す。
【０１９０】
尚、ステップＳＴ０７０６において用いる閾値、及び以下に説明する閾値の全ては、当業者に期待し得る簡単な実験等によって適切な値に定めることができる。
【０１９１】
ステップＳＴ０７０６において、受信ロック監視部１４２４は、割込後経過カウンタが所定の閾値を超えたと判断した場合には、カウンタ記憶部１４３０が記憶する受信ロックフラグを立ち上げる（ステップＳＴ０７０７）。その後、受信ロック監視部１４２４は、ステップＳＴ０７０３に戻り上記処理を繰り返す。
【０１９２】
ステップＳＴ０７０４において、受信ロック監視部１４２４は、受信割込信号を取得したと判断した場合には、割込後経過カウンタの値を「0」とすることで初期化する（ステップＳＴ０７０８）。その後、受信ロック監視部１４２４は、ステップＳＴ０７０３に戻り上記処理を繰り返す。
【０１９３】
ここで図８に戻り、引き続きソフトウェア処理部１４００の構成について説明する。
【０１９４】
カウンタ記憶部１４３０は、例えば、ＲＡＭで構成される記憶部１４０２で構成され、ソフトウェア中継部１４１０、監視部１４２０、及び特定部１４４０に接続している。カウンタ記憶部１４３０は、ソフトウェア中継部１４１０及び監視部１４２０によって更新される上記カウンタ及びフラグを記憶し、記憶するカウンタ及びフラグは、主に、特定部１４４０によって参照される。
【０１９５】
特定部１４４０は、カウンタ記憶部１４３０に接続している。特定部１４４０は、後述する特定処理を実行することで、ハードウェア中継部１３００が中継するデータ数と、ソフトウェア中継部１３００が送信又は受信するデータ数とに基づいて、ハードウェア中継部１３００及びソフトウェア中継部１４１０のいずれに異常が発生したかを特定する。
【０１９６】
よって図１９を参照して、特定部１４４０が実行する特定処理について説明する。図１９は、特定部１４４０が実行する特定処理の一例を表すフローチャートである。
【０１９７】
先ず、特定部１４４０は、終了信号を取得したか否かを判断する（ステップＳＴ０８０１）。特定部１４４０は、終了信号を取得したと判断する場合には特定処理の実行を終了し、そうで無い場合にはステップＳＴ０８０２の処理を実行する。
【０１９８】
ステップＳＴ０８０３において、特定部１４４０は、終了信号を取得しないと判断した場合には、カウンタ記憶部１４３０からデータ消失カウンタを取得する（ステップＳＴ０８０２）。次に、特定部１４４０は、データ消失カウンタが所定値の閾値１を超えたか否かを判断する（ステップＳＴ０８０３）。つまり、特定部１４４０は、ハードウェア中継部１３００によるデータ中継が所定時間（閾値１）以上行われていないかを判断する。特定部１４４０は、データ消失カウンタが所定値の閾値１を超えたと判断する場合にはステップＳＴ０８０４の処理を実行し、そうで無い場合には上記ステップＳＴ０８０１に戻り上記処理を繰り返す。
【０１９９】
ステップＳＴ０８０３において、特定部１４４０は、データ消失カウンタが所定値の閾値１を超えたと判断した場合には、カウンタ記憶部１４３０からＮＭフレーム受信カウンタを取得する（ステップＳＴ０８０４）。
【０２００】
尚、特定部１４４０は、データ消失カウンタが所定値の閾値１を超えたと判断した場合には、中継するデータの消失をもたらす異常が発生したと判断する。
【０２０１】
次に、特定部１４４０は、ＮＭフレーム受信カウンタが所定値の閾値２よりも少ないか否かを判断する（ステップＳＴ０８０５）。つまり、特定部１４４０は、ソフトウェア中継部１４１０によるデータ中継が所定時間（閾値２）より短い時間に行われたか否かを判断する。特定部１４４０は、ＮＭフレーム受信カウンタが所定値の閾値２よりも少ないと判断する場合にはステップＳＴ０８０６の処理を、そうで無い場合には上記ステップＳＴ０８０１に戻り上記処理を繰り返す。尚、閾値２は閾値１よりも小さい値である。
【０２０２】
言い換えると、特定部１４４０は、ＮＭフレーム受信カウンタが所定値の閾値２よりも少ないと判断する場合には、ソフトウェア中継部１４１０が中継するデータ数に基づいてソフトウェア中継部１４１０に異常が発生していないと判断する。
【０２０３】
ステップＳＴ０８０５において、特定部１４４０は、ＮＭフレーム受信カウンタが所定値の閾値２よりも少ないと判断した場合、つまり、ステップＳＴ０８０３において、ハードウェア中継部１３００によるデータ中継が所定時間（閾値１）以上行われておらず、かつステップＳＴ０８０５において、ソフトウェア中継部１４１０によるデータ中継が所定時間（閾値１）よりも短い時間（閾値２）内に行われたと判断した場合には、カウンタ記憶部１４３０から受信完了後カウンタを取得する（ステップＳＴ０８０６）。
【０２０４】
次に、特定部１４４０は、受信完了後カウンタが所定値の閾値３よりも小さいか否かを判断する（ステップＳＴ０８０７）。つまり、特定部１４４０は、ＣＡＮ通信部１１１４によるＣＡＮ受信処理が所定時間（閾値３）より短い時間に行われたか否かを判断する。特定部１４４０は、受信完了後カウンタが所定値の閾値３よりも小さいと判断する場合にはステップＳＴ０８０８の処理を、そうで無い場合にはステップＳＴ０８０９の処理を実行する。尚、閾値３は閾値１よりも小さい値である。
【０２０５】
尚、ステップＳＴ０８０５及びステップＳＴ０８０７の判断によって、特定部１４４０は、ＣＡＮコントローラ１１１０から１１３０が何らかのフレーム・データを受信しているか否かを判断できる。
【０２０６】
ステップＳＴ０８０７において、特定部１４４０は、受信完了後カウンタが所定値の閾値３よりも小さいと判断した場合、つまり、ステップＳＴ０８０３において、ハードウェア中継部１３００によるデータ中継が所定時間（閾値１）以上行われておらず、ステップＳＴ０８０５において、ソフトウェア中継部１４１０によるデータ中継が所定時間（閾値１）よりも短い時間（閾値２）内に行われ、かつＣＡＮコントローラ１１１０による受信処理が所定時間（閾値１）よりも短い時間（閾値３）内に行われたと判断した場合には、ハードウェア中継部１３００に異常が発生したと特定する（ステップＳＴ０８０８）。その後、特定部１４４０は、ステップＳＴ０８０１に戻り上記処理を繰り返す。
【０２０７】
この構成によれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
【０２０８】
またこの構成によれば、受信処理におけるデータの中継時間間隔に基づいて、データの中継により生じる異常の発生箇所をハードウェア中継手段であると精度良く特定できる。
【０２０９】
ステップＳＴ０８０７において、特定部１４４０は、受信完了後カウンタが所定値の閾値３以上であると判断した場合、つまり、ステップＳＴ０８０３において、ハードウェア中継部１３００によるデータ中継が所定時間（閾値１）以上行われておらず、ステップＳＴ０８０５において、ソフトウェア中継部１４１０によるデータ中継が所定時間（閾値１）よりも短い時間（閾値２）内に行われ、かつＣＡＮコントローラ１１１０による受信処理が所定時間（閾値１）よりも短い時間（閾値３）を超えて行われなかったと判断した場合には、ＣＡＮコントローラ１１１０から１１３０に異常が発生したと特定する（ステップＳＴ０８０９）。その後、特定部１４４０は、ステップＳＴ０８０１に戻り上記処理を繰り返す。
【０２１０】
この構成によれば、受信処理におけるデータの中継時間間隔に基づいて、データの中継により生じる異常の発生箇所をＣＡＮコントローラ１１１０から１１３０であると精度良く特定できる。
【０２１１】
尚、本実施例において、特定部１４４０が、ハードウェア中継部１３００に異常が発生したと特定した場合に、ハードウェア中継部１３００を構成するメッセージカウンタを表すレジスタを初期化する構成を採用できる。
【０２１２】
この構成によれば、レジスタを初期化することで、レジスタの固着を解消できると共に、ハードウェア中継部１３００に発生した異常を解消することができる。
【０２１３】
また本実施例において、特定部１４４０が、ハードウェア中継部１３００に異常が発生したと特定した場合に、ハードウェア中継部１３００に代わってソフトウェア中継部１４１０がフレーム・データを中継する構成を採用できる。
【０２１４】
更に本実施例では、特定部１４４０は、ＮＭフレーム受信カウンタが所定値の閾値２以上であると判断する場合には、異常個所の特定をしないとして説明したが、これに限定される訳ではなく、ＮＭフレーム受信カウンタが所定値の閾値２以上であると判断する場合、つまり、ステップＳＴ０８０３において、ハードウェア中継部１３００によるデータ中継が所定時間（閾値１）以上行われておらず、かつステップＳＴ０８０５において、ソフトウェア中継部１４１０によるデータ中継が所定時間（閾値１）よりも短い時間（閾値２）を超えて行われないと判断した場合にソフトウェア中継部１４１０に異常が発生したと特定する構成を採用できる。
【０２１５】
この構成によれば、ハードウェア処理におけるデータの中継時間間隔と、ソフトウェア処理におけるデータの中継時間間隔とに基づいて、データの中継により生じる異常の発生箇所をソフトウェア中継手段であると精度良く特定できる。
【０２１６】
本実施例においては、ＣＡＮコントローラ１１１０から１１３０が受信手段に相当し、ハードウェア中継部１３００がハードウェア中継手段に相当し、ソフトウェア中継部１４１０がソフトウェア中継手段に相当し、特定部１４４０が故障箇所特定手段に相当し、ハードウェア中継部１３００が実行するハードウェア中継処理がハードウェア中継ステップに相当し、ソフトウェア中継部１４１０が実行するソフトウェア中継処理がソフトウェア中継ステップに相当し、特定部１４４０が実行する特定処理が故障箇所特定ステップに相当する。
【０２１７】
ゲートウェイ装置１０００は、演算部がＲＯＭ及びＲＡＭの少なくともひとつに格納されたプログラムを実行することによって実現される。また、このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供できる。
【０２１８】
本発明のゲートウェイ方法は、ゲートウェイ装置１０００を用いて実施することができる。
【０２１９】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【０２２０】
【図１】本発明のゲートウェイ装置の一実施形態を示す構成図である。
【図２】ゲートウェイ装置のハードウェア構成の一例を表す図である。
【図３】ＣＡＮコントローラのハードウェア構成の一例を表す図である。
【図４】ハードウェア中継部のハードウェア構成の一例を表す図である。
【図５】検索エンジン部が実行する経路検索処理の一例を表すフローチャートである。
【図６】ルーティング・マップが保存するテーブルの一例を表す図である。
【図７】検索エンジン部が実行するパリティ検査処理の一例を表すフローチャートである。
【図８】ソフトウェア処理部の一構成例を説明する機能ブロック図である。
【図９】ソフトウェア中継部の一構成例を表す機能ブロック図である。
【図１０】ＮＭフレーム送受信部が実行するＮＭフレーム受信処理の一例を表すフローチャートである。
【図１１】中継フレーム中継部が実行する中継フレーム中継処理の一例を表すフローチャートである。
【図１２】異常が発生していないハードウェア中継部が有するハードウェアカウンタの時間変化の一例を表す図である。
【図１３】中継フレーム中継部が実行するデータ消失検出処理の一例について概説するための図である。
【図１４】中継フレーム中継部が実行するデータ消失検出処理の一例を表すフローチャートである。
【図１５】監視部の一構成例を表す機能ブロック図である。
【図１６】ＣＡＮ監視部１４２４が実行するＣＡＮ監視処理の一例を表すフローチャートである。
【図１７】パリティエラー監視部１４２３が実行するパリティエラー監視処理の一例を表すフローチャートである。
【図１８】受信ロック監視部が実行する受信ロック監視処理の一例を表すフローチャートである。
【図１９】特定部が実行する特定処理の一例を表すフローチャートである。
【符号の説明】
【０２２１】
１００…車両                      １０００…ゲートウェイ装置        
１１１０，１１２０，１１３０…ＣＡＮコントローラ（受信手段）
１１１１…バッファ                
１１１２Ａ，１１２２Ａ…受信メッセージボックス  
１１１２Ｂ，１１２２Ｂ…送信メッセージボックス  
１２００…ＣＡＮインタフェース部  
１３００…ハードウェア中継部/ハードマクロ（ハードウェア中継手段）
１３１０…検索エンジン部          １３２０…ルーティング・マップ    
１３３０…送信バッファ            
１３３１，１３３３，１３３５，１３３７…送信ＦＩＦＯ
１３３２，１３３４，１３３６，１３３８…ハードウェアカウンタ（メッセージカウンタ）
１４０１…演算部                  １４０２…記憶部                  
１４０３…割り込み制御部          
１４１０…ソフトウェア中継部（ソフトウェア中継手段）
１４１１…ＮＭフレーム送受信部    １４１２…中継フレーム中継部    
１４２０…監視部                  １４２１…ＩＧ監視部              
１４２２…ＣＡＮ監視部            １４２３…パリティエラー監視部    
１４２４…受信ロック監視部        
１４３０…カウンタ記憶部          １４４０…特定部（異常個所特定手段）
２０１１〜２０３３…ＥＣＵ（制御装置）
ＣＢ１０，１０，３０…ＣＡＮバス  
Ｂ１０，１１，１２…バス１        Ｂ２…バス２                      
ＣＨ０…チャンネル０              ＣＨ１…チャンネル１              
ＣＨ２…チャンネル２              
Ｐａｒ１…ＩＤＥ，ＲＴＲ，及びＩＤに対するパリティ
Ｐａｒ２…ＦＩＦＯからＭａｓｋＩｎｆｏに対するパリティ
ＲｘＣｈ…１〜６ＣＨが受信元チャネルであるかをｂｉｔ毎に表すデータ
Ｔ１〜４…ソフトウェア処理（中継フレーム中継処理）タイミング
ＴｘＣＨ…１〜６ＣＨが中継先チャネルであるかをｂｉｔ毎に表すデータ
【図１】
2009253464.tif 000003
【図２】
2009253464.tif 000004
【図３】
2009253464.tif 000005
【図４】
2009253464.tif 000006
【図５】
2009253464.tif 000007
【図６】
2009253464.tif 000008
【図７】
2009253464.tif 000009
【図８】
2009253464.tif 000010
【図９】
2009253464.tif 000011
【図１０】
2009253464.tif 000012
【図１１】
2009253464.tif 000013
【図１２】
2009253464.tif 000014
【図１３】
2009253464.tif 000015
【図１４】
2009253464.tif 000016
【図１５】
2009253464.tif 000017
【図１６】
2009253464.tif 000018
【図１７】
2009253464.tif 000019
【図１８】
2009253464.tif 000020
【図１９】
2009253464.tif 000021