(57)【要約】【課題】異常を検出した場合に、早期に異常の原因や箇所を特定したうえで適切なフェールセーフ制御を行うこと。【解決手段】ハードマクロによるゲートウェイ処理における異常と、ハードマクロの初期化処理におけるハードマクロを構成する素子に対する異常チェックの異常とを切り分けて判定し、ゲートウェイ処理における異常である場合には、ハードマクロの初期化処理を実施し、再度ゲートウェイ処理における異常を判定したならば動的異常状態としてかかる旨を記録したうえで所定の復帰処理を行い、ハードマクロの初期化処理における異常チェックの異常である場合には、静的異常状態としてかかる旨を記録したうえで所定の復帰処理を行うようにゲートウェイ装置を構成する。【選択図】        図３
2012080272.tif 000002
【特許請求の範囲】
【請求項１】
通信機器間の通信をハードマクロによって中継するゲートウェイ装置であって、
前記ハードマクロによるゲートウェイ処理が行われている際に、前記ゲートウェイ処理の処理内容に異常がある場合に前記ハードマクロに異常があると判定する動的異常検出手段と、
前記ハードマクロの初期化処理時に前記ハードマクロを構成する素子に対する異常チェック処理を実施し、当該異常チェック処理によって異常と判定された場合に前記ハードマクロに異常があると判定する静的異常検出手段と、
前記動的異常検出手段もしくは前記静的異常検出手段によって異常があると判定された場合に、異常発生を記録する異常状態記録手段と
を備え、
前記動的異常検出手段は、
前記ゲートウェイ処理の処理内容に異常があることから前記ハードマクロに異常があると判定した場合に、前記ハードマクロの初期化処理を実行させ、当該初期化処理が行われた後の前記ゲートウェイ処理にて再度異常があると判定された場合に、動的異常状態と判定し、前記異常状態記録手段に動的異常発生を記録させ、
前記異常状態記録手段は、
前記動的異常検出手段によって実行された前記初期化処理の際に、前記静的異常検出手段によって異常があると判定された場合には、静的異常状態であるとして、静的異常発生を記録することを特徴とするゲートウェイ装置。
【請求項２】
前記ハードマクロは、
前記ゲートウェイ装置が備える制御装置であるマイコンに含まれるものであって、
前記動的異常検出手段は、
前記ゲートウェイ処理にて異常があると判定された場合には、前記ハードマクロの初期化処理のみによる復帰処理を行い、
前記静的異常検出手段は、
前記異常チェック処理にて継続して異常と判定される間、前記ハードマクロの初期化処理を所定の間隔で再帰的に繰り返し、当該繰り返しの回数が所定の回数を超えた場合には、前記マイコンをリセットすることを特徴とする請求項１に記載のゲートウェイ装置。
【請求項３】
前記静的異常検出手段は、
前記マイコンのリセットを所定のリセット回数繰り返したにも関わらず前記異常チェック処理にて再度異常と判定された場合に、静的本異常状態と判定することを特徴とする請求項２に記載のゲートウェイ装置。
【請求項４】
前記動的異常検出手段は、
前記ゲートウェイ装置のスリープ状態への遷移および当該スリープ状態からウェイクアップ状態への遷移を経たにも関わらず前記ゲートウェイ処理にて再度異常があると判定された場合に、動的本異常状態と判定することを特徴とする請求項１、２または３に記載のゲートウェイ装置。
【請求項５】
前記動的異常検出手段は、
前記動的異常状態である場合に、前記スリープ状態への遷移および当該スリープ状態から前記ウェイクアップ状態への遷移を所定の異常解除条件回数分経る間に、前記ゲートウェイ処理にて再度異常があると判定されなければ、当該動的異常状態を解除することを特徴とする請求項４に記載のゲートウェイ装置。
【請求項６】
前記動的異常検出手段は、
前記動的本異常状態である場合に、前記スリープ状態への遷移および当該スリープ状態から前記ウェイクアップ状態への遷移を所定の本異常解除条件回数分経る間に、前記ゲートウェイ処理にて再度異常があると判定されなければ、当該動的本異常状態を解除することを特徴とする請求項４または５に記載のゲートウェイ装置。
【請求項７】
前記動的異常検出手段もしくは前記静的異常検出手段によって異常と判定された場合に、所定のフェールセーフ処理を実施するフェールセーフ制御手段
をさらに備え、
前記フェールセーフ制御手段は、
前記動的異常状態と判定された場合と前記静的異常状態と判定された場合とで、異なるフェールセーフ処理を実施することを特徴とする請求項１に記載のゲートウェイ装置。
【請求項８】
前記動的異常検出手段は、
検出した前記ハードマクロの異常が前記ハードマクロの一部異常である場合に、当該一部異常を回避することによって当該ハードマクロの動作を復帰させることを特徴とする請求項１に記載のゲートウェイ装置。
【請求項９】
前記ハードマクロは、
複数の宛先レコードを含むルーティングマップを有しており、
前記動的異常検出手段は、
前記一部異常が前記ルーティングマップに含まれる前記宛先レコードの単位で生じている場合に、当該一部異常が生じた前記宛先レコードを前記ルーティングマップから除去することによって前記ハードマクロの動作を復帰させることを特徴とする請求項８に記載のゲートウェイ装置。
【請求項１０】
前記ハードマクロは、
フレームデータ送信用の複数のバッファをさらに有しており、
前記動的異常検出手段は、
前記一部異常が前記バッファの単位で生じている場合に、当該一部異常が生じた前記バッファを未使用の前記バッファと切り換えることによって前記ハードマクロの動作を復帰させることを特徴とする請求項８に記載のゲートウェイ装置。
【請求項１１】
前記動的異常検出手段もしくは前記静的異常検出手段によって前記ハードマクロに異常があると判定された場合に、前記ゲートウェイ装置と接続された故障診断装置が送出する故障診断用のフレームデータを、当該ハードマクロを回避して、前記通信機器へバイパスあるいは前記故障診断装置へループバックするように通信制御を行う通信制御手段
をさらに備えたことを特徴とする請求項１に記載のゲートウェイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置間におけるデータ送受信の中継を行うゲートウェイ装置に関し、特に、異常を検出した場合に、早期に異常の原因や箇所を特定したうえで適切なフェールセーフ制御を行うことができるゲートウェイ装置に関する。
【背景技術】
【０００２】
従来、自動車のエンジンの電子制御を行う車載用電子制御装置（以下、「ＥＣＵ」と記載する）が知られてきた。そして、マルチメディアやセンサテクノロジといった技術の高度化に伴って、今やエンジンだけでなく、ブレーキやエアバッグといった安全装備からセキュリティシステムにいたるまでさまざまな装備を制御するＥＣＵが、１台の自動車に多数搭載されている。
【０００３】
また、かかる多数のＥＣＵ間で情報を共有して連携あるいは統合した制御を行うために、ＥＣＵ間における多重通信技術も発展してきた。なかでも、車内での配策が容易であり、かつ、拡張性に優れた、ＣＡＮ（Controller  Area  Network）を用いた車載ＬＡＮ（Local  Area  Network）がよく知られている。
【０００４】
そして、一般に、１台の自動車においては、かかる車載ＬＡＮによって複数系統のＥＣＵのネットワークが構成される。そして、かかるネットワーク間のデータ送受信の中継は、ゲートウェイ装置（以下、「ゲートウェイＥＣＵ」と記載する）によって行われる。なお、３系統以上のネットワーク間の中継を行うゲートウェイＥＣＵは、「マルチバスゲートウェイＥＣＵ」と呼ばれている。
【０００５】
ここで、ゲートウェイＥＣＵの内部には、ＣＰＵに相当するマイクロコンピュータ（以下、「マイコン」と記載する）が備えられており、ゲートウェイＥＣＵは、かかるマイコン上でデータ送受信の中継機能（以下、単に「ゲートウェイ機能」と記載する）を有するプログラムを動作させることで、ゲートウェイ機能を実現している。
【０００６】
なお、かかるゲートウェイ機能において異常が検出された場合、ゲートウェイＥＣＵは、たとえば、マイコンをリセットしたうえでメモリチェックを行い、チェック結果が正常であればプログラムをふたたび動作させ、異常であればリセットおよびメモリチェックを繰り返すといったフェールセーフ制御を行っている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−００３５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したメモリチェックを含んだフェールセーフ制御を行った場合、ゲートウェイ機能の異常にともなう無通信状態を早期に解消しにくいという問題点があった。すなわち、マイコンのリセットに加えて、プログラムの格納領域全体をチェック対象とするメモリチェックを行う必要があるため、ゲートウェイ機能の復帰に所定の時間を要していた。
【０００９】
また、このように復帰に所定の時間がかかることで生じる無通信状態の継続は、上述した多数のＥＣＵ間における連携あるいは統合制御に支障をきたしていた。
【００１０】
また、ゲートウェイ機能を上述のようにプログラムの動作によって実現する場合、少なくとも異常検出時にフェールセーフ制御によってリトライが繰り返される間にＣＰＵをはじめとするゲートウェイＥＣＵのリソースが占有される可能性が高かった。このため、ゲートウェイＥＣＵ全体へ負荷がかかりやすいうえに復帰処理による結果が得られにくく、早期に異常の原因や箇所を特定しづらかった。
【００１１】
これらのことから、異常を検出した場合に、早期に異常の原因や箇所を特定したうえで適切なフェールセーフ制御を行うことができるゲートウェイ装置をいかにして実現するかが大きな課題となっている。
【００１２】
本発明は、上述した従来技術による問題点を解消するためになされたものであって、異常を検出した場合に、早期に異常の原因や箇所を特定したうえで適切なフェールセーフ制御を行うことができるゲートウェイ装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、本発明は、通信機器間の通信をハードマクロによって中継するゲートウェイ装置であって、前記ハードマクロによるゲートウェイ処理が行われている際に、前記ゲートウェイ処理の処理内容に異常がある場合に前記ハードマクロに異常があると判定する動的異常検出手段と、前記ハードマクロの初期化処理時に前記ハードマクロを構成する素子に対する異常チェック処理を実施し、当該異常チェック処理によって異常と判定された場合に前記ハードマクロに異常があると判定する静的異常検出手段と、前記動的異常検出手段もしくは前記静的異常検出手段によって異常があると判定された場合に、異常発生を記録する異常状態記録手段とを備え、前記動的異常検出手段は、前記ゲートウェイ処理の処理内容に異常があることから前記ハードマクロに異常があると判定した場合に、前記ハードマクロの初期化処理を実行させ、当該初期化処理が行われた後の前記ゲートウェイ処理にて再度異常があると判定された場合に、動的異常状態と判定し、前記異常状態記録手段に動的異常発生を記録させ、前記異常状態記録手段は、前記動的異常検出手段によって実行された前記初期化処理の際に、前記静的異常検出手段によって異常があると判定された場合には、静的異常状態であるとして、静的異常発生を記録することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ハードマクロによるゲートウェイ処理が行われている際に、ゲートウェイ処理の処理内容に異常がある場合にハードマクロに異常があると判定する動的異常検出手段と、ハードマクロの初期化処理時にハードマクロを構成する素子に対する異常チェック処理を実施し、かかる異常チェック処理によって異常と判定された場合に前記ハードマクロに異常があると判定する静的異常検出手段と、動的異常検出手段もしくは前記静的異常検出手段によって異常があると判定された場合に、異常発生を記録する異常状態記録手段とを備え、動的異常検出手段は、ゲートウェイ処理の処理内容に異常があることからハードマクロに異常があると判定した場合に、ハードマクロの初期化処理を実行させ、かかる初期化処理が行われた後のゲートウェイ処理にて再度異常があると判定された場合に、動的異常状態と判定し、異常状態記録手段に動的異常発生を記録させ、異常状態記録手段は、動的異常検出手段によって実行されたハードマクロの初期化処理の際に、静的異常検出手段によって異常があると判定された場合には、静的異常状態であるとして、静的異常発生を記録することとしたので、異常を検出した場合に、早期に異常の原因や箇所を特定したうえで適切なフェールセーフ制御を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明に係るフェールセーフ制御手法の概要を示す図である。
【図２】図２は、実施例１に係るゲートウェイＥＣＵの物理的構成を示す物理ブロック図である。
【図３】図３は、実施例１に係るゲートウェイＥＣＵの機能的構成を示す機能ブロック図である。
【図４】図４は、復帰処理部の機能的構成を示す機能ブロック図である。
【図５】図５は、ルーティングマップを対象とした異常の検出種別を示す図である。
【図６】図６は、送信ＦＩＦＯを対象とした異常の検出種別を示す図である。
【図７】図７は、ＧＷハードマクロ全体を対象とした異常の検出種別を示す図である。
【図８】図８は、復帰処理部が行う静的異常復帰処理の処理シーケンス図である。
【図９】図９は、復帰処理部が行う動的異常復帰処理の処理シーケンス図その１である。
【図１０】図１０は、復帰処理部が行う動的異常復帰処理の処理シーケンス図その２である。
【図１１】図１１は、第１の静的異常復帰処理の処理手順を示すフローチャートである。
【図１２】図１２は、第２の静的異常復帰処理の処理手順を示すフローチャートである。
【図１３】図１３は、動的異常復帰処理の処理手順を示すフローチャートである。
【図１４】図１４は、本異常時処理の処理手順を示すフローチャートである。
【図１５】図１５は、本異常確認処理の処理手順を示すフローチャートである。
【図１６】図１６は、静的モード移行処理の処理手順を示すフローチャートである。
【図１７】図１７は、動的モード移行処理の処理手順を示すフローチャートである。
【図１８】図１８は、ルーティングマップの一部のレコードに異常が生じている場合を示す図である。
【図１９】図１９は、送信ＦＩＦＯの一部に異常が生じている場合を示す図である。
【図２０】図２０は、ルーティングマップ異常時処理の処理手順を示すフローチャートである。
【図２１】図２１は、送信ＦＩＦＯ異常時処理の処理手順を示すフローチャートである。
【図２２】図２２は、実施例２の変形例に係るゲートウェイＥＣＵの機能的構成を示す機能ブロック図である。
【図２３】図２３は、実施例３に係る復帰処理部が行う静的異常復帰処理の処理シーケンス図である。
【図２４】図２４は、実施例３に係る復帰処理部が行う動的異常復帰処理の処理シーケンス図である。
【図２５】図２５は、縮退的稼動における静的異常復帰処理の処理手順を示すフローチャートである。
【図２６】図２６は、縮退的稼動における動的異常復帰処理の処理手順を示すフローチャートである。
【図２７】図２７は、縮退的稼動における本異常確認処理の処理手順を示すフローチャートである。
【図２８】図２８は、実施例４に係る復帰処理部が行う動的異常復帰処理の処理シーケンス図である。
【図２９】図２９は、本異常からの復帰における第１の静的異常復帰処理の処理手順を示すフローチャートである。
【図３０】図３０は、本異常からの復帰における第２の静的異常復帰処理の処理手順を示すフローチャートである。
【図３１】図３１は、本異常からの復帰における動的異常復帰処理の処理手順を示すフローチャートである。
【図３２】図３２は、本異常からの復帰における異常フラグ復帰処理の処理手順を示すフローチャートである。
【図３３】図３３は、本異常からの復帰における本異常確認処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下に、添付図面を参照して、本発明に係るゲートウェイ装置の好適な実施例を詳細に説明する。なお、以下では、ゲートウェイ装置が上述の「マルチバスゲートウェイＥＣＵ」である場合について説明することとし、かかる「マルチバスゲートウェイＥＣＵ」を単に「ゲートウェイＥＣＵ」と記載することとする。
【００１７】
まず、実施例の詳細な説明に先立って、本発明に係るフェールセーフ制御手法の概要について図１を用いて説明する。図１は、本発明に係るフェールセーフ制御手法の概要を示す図である。なお、同図の（Ａ）には、本発明に係るフェールセーフ制御手法を適用したゲートウェイＥＣＵの構成例を、同図の（Ｂ）には、静的モードおよび動的モードを説明するための図を、同図の（Ｃ）には、本発明に係るフェールセーフ制御手法における基本的な復旧処理の流れを、同図の（Ｄ）には、異常検出タイミングごとの復旧処理の振り分けを、それぞれ示している。
【００１８】
同図に示すように、本発明に係るフェールセーフ制御手法は、「ゲートウェイ機能に特化した回路ブロック」である「ゲートウェイハードマクロ」をゲートウェイＥＣＵへ搭載することによって、ゲートウェイ機能の異常検出時においては、かかる「ゲートウェイハードマクロ」のみを対象とする復帰処理を可能とした点に特徴がある。
【００１９】
また、ゲートウェイＥＣＵの稼動段階を「静的モード」および「動的モード」の２段階に区別することとしたうえで、各モードに適した復帰処理を行うこととした点にも特徴がある。以下、かかる特徴について、具体的に説明する。なお、「ゲートウェイハードマクロ」については、以下、「ＧＷハードマクロ」と記載することとする。
【００２０】
同図の（Ａ）に示したように、本発明に係るフェールセーフ制御手法では、内部に「ＧＷハードマクロ」５１を搭載するマイコン５０を備えたゲートウェイＥＣＵ１０を用いることとした。ここで、「ＧＷハードマクロ」５１は、上述のように「ゲートウェイ機能に特化した回路ブロック」である。
【００２１】
したがって、本発明に係るフェールセーフ制御手法では、ゲートウェイ機能における異常検出時に、ＡＬＵ（演算器）５２やＲＡＭ５３といったマイコン５０の他のリソースを占有することなく、ＧＷハードマクロ５１のみに対して復帰処理を施すことが可能となる。すなわち、復帰処理によってゲートウェイＥＣＵ１０全体へかかる負荷を減らすことができる。
【００２２】
また、ＧＷハードマクロ５１のみを初期化することができるので、マイコン５０全体をリセットする必要のあった従来技術と比較して、復旧処理にかかる時間を短縮することができる。
【００２３】
また、同図の（Ｂ）に示したように、本発明に係るフェールセーフ制御手法では、ゲートウェイＥＣＵ１０の稼動段階を、上述のように「静的モード」と「動的モード」との２段階に区別することとした。
【００２４】
ここで、「静的モード」とは、ゲートウェイＥＣＵ１０が起動されてからゲートウェイ機能動作を開始するまでの「初期設定段階」を指す。また、「動的モード」とは、ゲートウェイＥＣＵ１０がゲートウェイ機能動作を開始して以降の「本稼動段階」を指す。
【００２５】
そして、本発明に係るフェールセーフ制御手法では、ＧＷハードマクロ５１を構成する各構成部品について、上述の各モードによって異なる種別の異常検出を行うこととした。したがって、本発明に係るフェールセーフ制御手法によれば、いずれのモード中においていずれの構成部品に異常が生じたかを早期に特定することが可能となる。なお、各モードにおける各構成部品の異常検出の種別については、図５から図７を用いて後述する。
【００２６】
ここで、本発明に係るフェールセーフ制御手法における基本的な復帰処理の流れを説明する。同図の（Ｃ）に示したように、本発明に係るフェールセーフ制御手法では、ゲートウェイ機能において異常が検出された場合に（同図の（Ｃ−１）参照）、一旦ゲートウェイＥＣＵ１０を「仮異常」状態とみなす（同図の（Ｃ−２）参照）。
【００２７】
そして、本発明に係るフェールセーフ制御手法では、「仮異常」状態においては、かかる「仮異常」状態に適した復帰処理を施すこととした。具体的には、「仮異常」状態においては、復帰処理によってゲートウェイＥＣＵ１０全体に負荷をかけることを避け、かつ、復帰時間を短縮できるように、主にＧＷハードマクロ５１のみに対して復帰処理を行う。
【００２８】
なお、同図の（Ｄ）に示すように、かかる「仮異常」状態の復帰処理は、異常の検出タイミングが上述の「静的モード」中であるか「動的モード」中であるかによって２種類に大別することができる。
【００２９】
そこで、以下では、「静的モード」中の「仮異常」状態における復帰処理を「静的異常復帰処理」と、「動的モード」中の「仮異常」状態における復帰処理を「動的異常復帰処理」と、それぞれ記載することとする（同図の（Ｄ）の「仮異常時」項目を参照）。
【００３０】
なお、かかる「静的異常復帰処理」および「動的異常復帰処理」の詳細な処理の内容については、図８から図１７を用いて後述する。
【００３１】
そして、本発明に係るフェールセーフ制御手法では、かかる「仮異常」状態における復帰処理によってゲートウェイ機能が復帰できなければ、所定の条件を満たすまで復帰処理を繰り返す（同図の（Ｃ−２）参照）。そして、かかる所定の条件が満たされてなおゲートウェイ機能が復帰できなければ、かかる状態を「本異常」状態とみなす（同図の（Ｃ−３）参照）。
【００３２】
そして、本発明に係るフェールセーフ制御手法では、「本異常」状態においては、かかる「本異常」状態に適した復帰処理を施すこととした。具体的には、「本異常」状態においては、主にマイコン５０のリセットを繰り返す復帰処理を行う。
【００３３】
なお、かかるマイコン５０のリセットが繰り返される間は、ＧＷハードマクロ５１によるゲートウェイ機能を含む、ゲートウェイＥＣＵ１０のすべての機能が停止することとなる（同図の（Ｄ）の「本異常時」項目を参照）。
【００３４】
そこで、本発明に係るフェールセーフ制御手法では、「本異常」状態においても、検出された異常がＧＷハードマクロ５１の一部の構成部品による部分的な異常である場合には、かかる一部の構成部品のみを動作させないように処置することで、ゲートウェイ機能を縮退的に稼動させる（同図の（Ｄ）の「本異常時」項目を参照）。なお、かかる点の詳細については、図１８から図２１を用いて後述する。
【００３５】
また、本発明に係るフェールセーフ制御手法では、「本異常」状態においても、ＧＷハードマクロ５１によるゲートウェイ機能は停止させつつも、マイコン５０においてダイアグノシス通信（故障診断用の通信）を可能とするプログラムを動作させることで縮退的に故障診断のための通信機能を復帰させる。かかる点の詳細については、図２２を用いて後述する。
【００３６】
なお、「縮退的稼動」を、ＧＷハードマクロ５１のみが故障しているが、ゲートウェイ機能以外の機能はすべて継続して動作している稼動状態とみなして、ＧＷハードマクロ５１の初期化のみを繰り返すこととしてもよい。かかる点の詳細については、図２３から図２７を用いて後述する。
【００３７】
また、「本異常」状態において、復帰処理を繰り返したうえで所定の条件を満たしたならば、「本異常」状態の解除を行うこととしてもよい（同図の（Ｃ−３）に示した破線の弧および矩形を参照）。かかる点の詳細については、図２８から図３３を用いて後述する。
【００３８】
このように、本発明に係るフェールセーフ制御手法では、「ゲートウェイ機能に特化した回路ブロック」である「ＧＷハードマクロ」５１をゲートウェイＥＣＵ１０へ搭載することによって、ゲートウェイ機能の異常検出時においては、かかる「ＧＷハードマクロ」５１のみを対象とする復帰処理を可能とした。
【００３９】
また、ゲートウェイＥＣＵ１０の稼動段階を「静的モード」および「動的モード」の２段階に区別することとしたうえで、各モードに適した復帰処理を行うこととした。したがって、ゲートウェイ機能における異常を検出した場合に、早期に異常の原因や箇所を特定したうえで適切なフェールセーフ制御を行うことができる。
【００４０】
以下では、図１を用いて説明した本発明に係るフェールセーフ制御手法を適用したゲートウェイＥＣＵについての実施例を詳細に説明する。なお、以下では、「本異常」状態においてはゲートウェイ機能を含めたすべての機能を停止するゲートウェイＥＣＵの実施例を実施例１として、「本異常」状態においてもゲートウェイ機能を縮退的に稼動するゲートウェイＥＣＵの実施例を実施例２として、それぞれ説明することとする。
【実施例１】
【００４１】
まず、実施例１に係るゲートウェイＥＣＵ１０の物理的構成について図２を用いて説明する。図２は、実施例１に係るゲートウェイＥＣＵ１０の物理的構成を示す物理ブロック図である。
【００４２】
なお、同図の（Ａ）には、ゲートウェイＥＣＵ１０の物理ブロック図を、同図の（Ｂ）には、ＧＷハードマクロ５１の物理ブロック図を、それぞれ示している。また、同図では、ゲートウェイＥＣＵ１０およびＧＷハードマクロ５１の特徴を説明するために必要な構成要素のみを示しており、一般的な構成要素についての記載を省略している。
【００４３】
同図に示したように、ゲートウェイＥＣＵ１０は、ゲートウェイＥＣＵ１０のＣＰＵに相当するマイコン５０を備えている。そして、マイコン５０は、ＧＷハードマクロ５１と、ＡＬＵ５２と、ＲＡＭ５３と、ＲＯＭ５４と、割り込みコントローラ５５とをさらに備えている。
【００４４】
ＡＬＵ５２は、演算を行う演算器であり、マイコン５０の中心的な構成部品である。また、ＲＡＭ５３は、読み書き可能なランダムアクセスメモリ、ＲＯＭ５４は、読み出しのみ可能なリードオンリーメモリであり、マイコン５０の記憶デバイスに相当する構成部品である。また、割り込みコントローラ５５は、非同期な割り込み信号を入力し、かかる割り込み信号に対する制御を行う構成部品である。
【００４５】
ここで、ＧＷハードマクロ５１の説明に先立って、ＡＬＵ５２、ＲＡＭ５３、ＲＯＭ５４あるいは割り込みコントローラ５５における異常検出時について説明しておく。実施例１に係るゲートウェイＥＣＵ１０は、これらの構成部品に関する異常を検出した場合、ゲートウェイＥＣＵ１０のすべての機能において動作が保障できない「ＣＰＵ異常」であるとみなす。
【００４６】
そして、ゲートウェイＥＣＵ１０は、マイコン５０のリセットを繰り返すことで、かかる「ＣＰＵ異常」の復帰を試行する。なお、かかる試行の間、ゲートウェイＥＣＵ１０のすべての機能は停止する。
【００４７】
ただし、バッテリ上がりを防止するため、電装系の制御信号による所定のスリープ条件が満たされた場合には、ゲートウェイＥＣＵ１０はスリープ状態へと遷移する。このとき、ゲートウェイＥＣＵ１０を除く他のＥＣＵ間においてリングメッセージによる通信などが行われている場合、ゲートウェイＥＣＵ１０がかかる通信をドミナント検出して即座にウェイクアップすることが想定される。
【００４８】
したがって、ゲートウェイＥＣＵ１０がスリープ状態へ遷移するスリープ条件は、他のＥＣＵがすべてスリープ状態へ遷移した後となるように設定されることが好ましい。なお、実施例１に係るゲートウェイＥＣＵ１０のスリープ条件は、かかる事態を想定した「イグニッションスイッチがすべてオフ」（ＩＧ１、ＩＧ２およびＡＣＣがすべてオフ）であり、上述のドミナント検出を回避するためにスリープ状態への遷移前に所定の待機時間を設けるものとする。
【００４９】
説明を戻して、ＧＷハードマクロ５１について説明する。ＧＷハードマクロ５１は、上述したように、ゲートウェイ機能に特化した回路ブロックである。ここで、ＧＷハードマクロ５１の内部構成について、図２の（Ｂ）を用いて説明する。
【００５０】
同図の（Ｂ）に示したように、ＧＷハードマクロ５１は、検索エンジン５１ａと、ルーティングマップ５１ｂと、送信ＦＩＦＯ群５１ｃとを備えている。検索エンジン５１ａは、ＧＷハードマクロ５１が取得した中継元からのフレームデータを、ルーティングマップ５１ｂに基づいて適切な中継先へ振り分ける構成部品である。
【００５１】
また、検索エンジン５１ａは、振り分けた各フレームデータを、中継先ごとに割り当てられた各送信キューへ格納する構成部品でもある。ルーティングマップ５１ｂは、中継元と中継先とをリンクした宛先テーブルであり、ＧＷハードマクロ５１のレジスタ（図示せず）へ格納されている。なお、ルーティングマップ５１ｂは、ゲートウェイＥＣＵ１０の静的モード中にＲＯＭ５４のルーティングマップ５４ａを元データとして転送され、レジスタへ格納される。
【００５２】
送信ＦＩＦＯ群５１ｃは、中継先ごとに割り当てられた先入れ先出し方式の各送信キュー（以下、「送信ＦＩＦＯ」と記載する）の集まりである。なお、各送信ＦＩＦＯは、個別のチャネル番号（図中の「ｃｈ０」あるいは「ｃｈ１」参照）によって識別される。
【００５３】
次に、実施例１に係るゲートウェイＥＣＵ１０の機能的構成について図３を用いて説明する。図３は、実施例１に係るゲートウェイＥＣＵ１０の機能的構成を示す機能ブロック図である。なお、同図では、ゲートウェイＥＣＵ１０の特徴を説明するために必要な構成要素のみを示しており、一般的な構成要素についての記載を省略している。
【００５４】
また、同図では、ゲートウェイＥＣＵ１０が、ＥＣＵネットワークＡからＥＣＵネットワークＢへ向けてのフレームデータを中継する場合について示している。
【００５５】
同図に示したように、ゲートウェイＥＣＵ１０は、受信ＭｓｇＢｏｘ１１と、送信ＭｓｇＢｏｘ１２と、ＥＣＵスリープ部１３と、監視部１４と、マイコンリセット部１５と、制御部１６と、記憶部１７とを備えている。
【００５６】
また、制御部１６は、ＧＷハードマクロ部１６ａと、ソフトウェア送信部１６ｂと、異常振分部１６ｃと、復帰処理部１６ｄとをさらに備えている。また、記憶部１７は、ルーティングマップ１７ａと、異常履歴１７ｂとを記憶する。
【００５７】
受信ＭｓｇＢｏｘ１１および送信ＭｓｇＢｏｘ１２は、フレームデータを蓄積する内部バッファである。受信ＭｓｇＢｏｘ１１は、ＥＣＵネットワークＡから取得したフレームデータを蓄積し、順次ＧＷハードマクロ部１６ａに対して出力する。送信ＭｓｇＢｏｘ１２は、ソフトウェア送信部１６ｂによって出力されたＥＣＵネットワークＢ向けのフレームデータを蓄積し、順次ＥＣＵネットワークＢへ向けて出力する。
【００５８】
ＥＣＵスリープ部１３は、復帰処理部１６ｄによって出力されるスリープ指示を受けて、ゲートウェイＥＣＵ１０をスリープ状態へ遷移させる。監視部１４は、電源ＩＣなどから構成されるデバイスであり、復帰処理部１６ｄからのウォッチドッグパルス（以下、「ＷＤＣ」と記載する）を監視し、ＷＤＣが停止した場合には、マイコンリセット部１５に対してマイコンリセット指示を出力する。マイコンリセット部１５は、監視部１４からのマイコンリセット指示を受けて、マイコンのリセットを行う。
【００５９】
制御部１６は、ゲートウェイ機能を動作させ、かかるゲートウェイ機能において異常を検出した場合には、早期に異常の原因や箇所を特定したうえで適切な復帰処理を試行するフェールセーフ制御を行う処理部である。
【００６０】
ＧＷハードマクロ部１６ａは、ゲートウェイＥＣＵ１０におけるゲートウェイ処理を行う処理部である。なお、ＧＷハードマクロ部１６ａは、図２に示したＧＷハードマクロ５１に対応する。
【００６１】
具体的には、ＧＷハードマクロ部１６ａは、ルーティングマップ１７ａを参照しつつ受信ＭｓｇＢｏｘ１１から入力したフレームデータの宛先を解析し、かかる宛先ごとに割り当てられた送信ＦＩＦＯ（図２参照）を通じて、かかるフレームデータをソフトウェア送信部１６ｂに対して出力する。
【００６２】
また、ＧＷハードマクロ部１６ａは、ゲートウェイ機能において異常を検出した場合には、異常振分部１６ｃに対してかかる異常を通知する処理を併せて行う。また、ＧＷハードマクロ部１６ａは、復帰処理部１６ｄからの復帰指示を受け付けた場合には、かかる復帰指示に沿った復帰処理を併せて行う。
【００６３】
ソフトウェア送信部１６ｂは、ＧＷハードマクロ部１６ａから入力した各フレームデータに対してアプリケーションレベルのプロトコル制御を行ったうえで、送信ＭｓｇＢｏｘ１２に対して出力する処理を行う処理部である。
【００６４】
異常振分部１６ｃは、ＧＷハードマクロ部１６ａが通知したゲートウェイ機能における異常を種別ごとに振り分けて、復帰処理部１６ｄに対して所定の復帰処理を試行するべく指示する処理を行う処理部である。
【００６５】
たとえば、異常振分部１６ｃは、検出された異常がゲートウェイＥＣＵ１０の静的モード中における仮異常であれば、復帰処理部１６ｄに対して「静的異常復帰処理」の試行を指示する。また、動的モード中における仮異常であれば、「動的異常復帰処理」の試行を指示する。
【００６６】
復帰処理部１６ｄは、異常振分部１６ｃから受け付けた復帰指示および異常履歴１７ｂに基づき、所定の復帰処理を行う処理部である。また、復帰処理部１６ｄは、所定のスリープ条件を成立した場合には、ＥＣＵスリープ部１３に対してスリープ指示を出力する処理を併せて行う。
【００６７】
なお、ここにいうスリープ条件は、図２を用いて説明した「ＣＰＵ異常」である場合のスリープ条件と同様であるものとする。また、復帰処理部１６ｄは、所定のマイコンリセット条件が成立した場合には、監視部１４に対するＷＤＣを停止する処理を併せて行う。
【００６８】
また、復帰処理部１６ｄは、ゲートウェイＥＣＵ１０がスリープ状態からウェイクアップ状態へ遷移した場合、あるいは、マイコンリセットが行われた場合には、それぞれ所定の復帰処理を併せて行う。
【００６９】
ここで、復帰処理部１６ｄの構成について、図４を用いてさらに詳細に説明する。図４は、復帰処理部１６ｄの機能的構成を示す機能ブロック図である。同図に示したように、復帰処理部１６ｄは、静的異常復帰処理部１６ｄａと、動的異常復帰処理部１６ｄｂとを備えている。そして、静的異常復帰処理部１６ｄａは、第１の静的異常復帰処理部１６ｄａａと、第２の静的異常復帰処理部１６ｄａｂとをさらに備えている。
【００７０】
静的異常復帰処理部１６ｄａは、静的モード中の仮異常時における所定の復帰処理を行う処理部である。第１の静的異常復帰処理部１６ｄａａは、異常振分部１６ｃから静的モード中の仮異常時における復帰指示を受け付けた場合、また、ゲートウェイＥＣＵ１０がスリープ状態からウェイクアップ状態へ遷移した場合に、第１の静的異常復帰処理を行う処理部である。
【００７１】
また、第１の静的異常復帰処理部１６ｄａａは、動的異常復帰処理部１６ｄｂが実行する動的異常復帰処理において静的モード中の異常が検出された場合に、第１の静的異常復帰処理を行う処理部でもある。第２の静的異常復帰処理部１６ｄａｂは、マイコン５０のリセットが行われた場合に、第２の静的異常復帰処理を行う処理部である。
【００７２】
動的異常復帰処理部１６ｄｂは、動的モード中の仮異常時における動的異常復帰処理を行う処理部である。また、動的異常復帰処理部１６ｄｂは、動的異常復帰処理中に静的モード中の異常を検出した場合に、第１の静的異常復帰処理部１６ｄａａに対して第１の静的異常復帰処理を実行するべく復帰指示を出力する処理を併せて行う。
【００７３】
また、復帰処復帰処理部１６ｄが備える各処理部は、それぞれの復帰処理において異常を検出した場合には、かかる異常を異常履歴１７ｂに対して登録する。また、かかる各処理部は、それぞれの復帰処理において異常履歴１７ｂを参照し、復帰処理のリトライ回数や、「仮異常」状態あるいは「本異常」状態といったゲートウェイＥＣＵ１０の状態などを取得する。なお、図４に示した各処理部が実行する各復帰処理の詳細については、図８から図１７を用いて後述する。
【００７４】
図３の説明に戻り、記憶部１７について説明する。記憶部１７は、揮発性メモリや不揮発性メモリ、レジスタといった記憶デバイスで構成される記憶部であり、ルーティングマップ１７ａと、異常履歴１７ｂとを記憶する。なお、記憶部１７は、上述したＲＡＭ５３、ＲＯＭ５４およびＧＷハードマクロ５１のレジスタに対応する（図２参照）。
【００７５】
ルーティングマップ１７ａは、フレームデータの中継元と中継先とをリンクした宛先テーブルである。異常履歴１７ｂは、ゲートウェイＥＣＵ１０において検出された異常の履歴情報であり、異常検出時におけるゲートウェイＥＣＵ１０のモードや、異常箇所、異常種別、復帰処理のリトライ回数などを含む。
【００７６】
次に、ＧＷハードマクロ部１６ａ（すなわち、図２に示したＧＷハードマクロ５１）が検出し異常振分部１６ｃが振り分ける異常の検出種別について、図５から図７を用いて詳細に説明する。図５は、ルーティングマップ５１ｂを対象とした異常の検出種別を示す図であり、図６は、送信ＦＩＦＯ群５１ｃを対象とした異常の検出種別を示す図であり、図７は、ＧＷハードマクロ５１全体を対象とした異常の検出種別を示す図である。
【００７７】
図５の（Ａ）に示したように、ＧＷハードマクロ部１６ａは、ルーティングマップ５１ｂを対象とした異常の検出を行う。なお、同図の（Ａ）に示すように、図５から図７においては、異常の検出対象となる構成部品を太枠で明示することとする。
【００７８】
まず、図５の（Ｂ）に示したように、静的モード中においては、ＧＷハードマクロ部１６ａは、ルーティングマップ５１ｂのＳＵＭチェックエラーの検出を行う。
【００７９】
具体的には、ルーティングマップ５１ｂ全体を３２ビット単位に分割して加算したＳＵＭ値が、ＲＯＭ５４（図２参照）のルーティングマップ５４ａの同ＳＵＭ値と一致しない場合を、ルーティングマップ５１ｂのＳＵＭチェックエラーとして検出する。
【００８０】
そして、図５の（Ｂ）に示したように、動的モード中においては、ＧＷハードマクロ部１６ａは、ルーティングマップ５１ｂの受信宛先エラーおよびパリティエラーの検出を行う。具体的には、ルーティングマップ５１ｂに含まれる中継元あるいは中継先が未指定である場合を、ルーティングマップ５１ｂの受信宛先エラーとして検出する。また、パリティビットを使用してルーティングマップ５１ｂのデータ化けを検出した場合を、ルーティングマップ５１ｂのパリティエラーとして検出する。
【００８１】
また、図６の（Ａ）に示したように、ＧＷハードマクロ部１６ａは、送信ＦＩＦＯ群５１ｃを対象とした異常の検出を併せて行う。まず、同図の（Ｂ）に示したように、静的モード中においては、ＧＷハードマクロ部１６ａは、送信ＦＩＦＯ群５１ｃの固着エラーの検出を行う。
【００８２】
具体的には、送信ＦＩＦＯ群５１ｃに含まれるすべての送信ＦＩＦＯに対して所定値のデータの書き込みを行い、かかる書き込み値を読み出した値が所定値と一致しない場合を、送信ＦＩＦＯ群５１ｃの固着エラーとして検出する。
【００８３】
そして、同図の（Ｂ）に示したように、動的モード中においては、ＧＷハードマクロ部１６ａは、送信ＦＩＦＯ群５１ｃのオーバーフローエラーおよびパリティエラーの検出を行う。具体的には、各送信ＦＩＦＯが有する所定個数のバッファについてオーバーフローが生じた場合を、送信ＦＩＦＯ群５１ｃのオーバーフローエラーとして検出する。
【００８４】
また、各送信ＦＩＦＯへフレームデータを格納する際にパリティビットを付与しておき、各フレームデータを送信ＦＩＦＯから読み出した際にかかるパリティビットによってデータ化けを検出した場合を、送信ＦＩＦＯ群５１ｃのパリティエラーとして検出する。
【００８５】
また、図７の（Ａ）に示したように、ＧＷハードマクロ部１６ａは、ＧＷハードマクロ５１全体を対象とした異常の検出を併せて行う。同図の（Ｂ）に示したように、動的モード中においては、ＧＷハードマクロ部１６ａは、ＧＷハードマクロ５１のハードウェアエラーおよびハードマクロロックの検出を行う。
【００８６】
具体的には、ＧＷハードマクロ５１の遷移状態に応じて状態番号を付与することとし、かかる状態番号が許容範囲を逸脱している場合などを、ＧＷハードマクロ５１のハードウェアエラーとして検出する。
【００８７】
また、受信ＭｓｇＢｏｘ１１（図３参照）に対してフレームデータの受信があるにも関わらず、各送信ＦＩＦＯに対するフレームデータの格納が一切行われない状態が所定時間継続しているような場合を、ＧＷハードマクロ５１のハードマクロロックとして検出する。ここで、かかる所定の継続時間は、いわゆるＣＡＮプロトコルにおける物理層より上位層での処理であることを考慮したもの（たとえば、受信ロックの検出時間が５０００ミリ秒であれば、それより長い５５００ミリ秒など）であることが好ましい。
【００８８】
なお、図７の（Ｂ）に示したように、ＧＷハードマクロ部１６ａは、ＧＷハードマクロ５１全体を対象とした異常の検出を行う場合には、動的モード中のみを対象とする。
【００８９】
次に、復帰処理部１６ｄが行う復帰処理の内容について、図８から図１０を用いて詳細に説明する。図８は、復帰処理部１６ｄが行う静的異常復帰処理の処理シーケンス図であり、図９は、復帰処理部１６ｄが行う動的異常復帰処理の処理シーケンス図その１であり、図１０は、復帰処理部１６ｄが行う動的異常復帰処理の処理シーケンス図その２である。
【００９０】
なお、図８から図１０においては、ゲートウェイＥＣＵ１０、マイコン５０あるいはＧＷハードマクロ５１をそれぞれ異なる矩形であらわすこととし、各矩形が斜線で示されている場合には、かかる矩形に対応する構造部品が復帰処理対象であることを示すものとする。
【００９１】
また、以下の説明における用語の定義として、静的モード中に検出される異常のことを「静的異常」と、動的モード中に検出される異常のことを「動的異常」と、それぞれ記載することとする。また、これにともなって、「静的異常」の仮異常状態を「静的仮異常」と、「静的異常」の本異常状態を「静的本異常」と、「動的異常」の仮異常状態を「動的仮異常」と、「動的異常」の本異常状態を「動的本異常」と、それぞれ記載することとする。
【００９２】
まず、復帰処理部１６ｄが行う静的異常復帰処理の処理シーケンスについて、図８を用いて説明する。なお、図８には、「静的異常」が継続して検出される場合の例を示している。
【００９３】
図８に示したように、最初の「静的異常」を検出した場合（同図の（１）参照）、復帰処理部１６ｄは、かかる「静的異常」を「静的仮異常」と位置づけて、ＧＷハードマクロ５１のみを初期化する復帰処理を行う（同図のｔ１参照）。
【００９４】
具体的には、ＧＷハードマクロ５１のレジスタを初期化したうえで、フレームデータ用の内部バッファをすべてクリアする。そして、ＲＯＭ５４のルーティングマップ５４ａを、ルーティングマップ５１ｂとしてＧＷハードマクロ５１のレジスタへ転送する（図２参照）。
【００９５】
そのうえで、ルーティングマップ５１ｂおよび送信ＦＩＦＯ群５１ｃについて、既に図５および図６を用いて示した、静的モードにおける異常検出チェックを行う。ここで、異常が検出されなければ、復帰処理部１６ｄは、ＧＷハードマクロ５１のゲートウェイ機能動作を開始して、「静的仮異常」状態を解除する。すなわち、ゲートウェイＥＣＵ１０は動的モードへと遷移する。
【００９６】
一方、ルーティングマップ５１ｂおよび送信ＦＩＦＯ群５１ｃについて、静的モードにおける異常が検出された場合には、復帰処理部１６ｄは、所定の間隔をおいて上述のＧＷハードマクロ５１のみを初期化する復帰処理を再帰的に繰り返す。なお、かかる再帰的な復帰処理は、所定のマイコン５０のリセット実施条件が成立するまで繰り返される。
【００９７】
たとえば、図８には、所定の間隔（ｔ２−ｔ１）が「１００ｍｓ」であり、所定のマイコン５０のリセット実施条件が、繰り返し回数３回である場合について示している。したがって、同図に示すように、復帰処理部１６ｄは、時間ｔ３にいたるまでＧＷハードマクロ５１のみを初期化する復帰処理を１００ｍｓ間隔で３回繰り返した後、時間ｔ３においてＷＤＣ停止によるマイコン５０のリセットを実施する。
【００９８】
なお、同図に示したように、かかる時間ｔ１から時間ｔ３までの静的異常復帰処理は、既に図４を用いて示した、第１の静的異常復帰処理部１６ｄａａの「第１の静的異常復帰処理」に対応する。
【００９９】
そして、復帰処理部１６ｄは、マイコン５０のリセット時における「第２の静的異常復帰処理」を行う。かかる「第２の静的異常復帰処理」は、既に図４を用いて示した、第２の静的異常復帰処理部１６ｄａｂの「第２の静的異常復帰処理」に対応する処理であり、マイコン５０が備えるＧＷハードマクロ５１の初期化を含む。
【０１００】
そして、図８に示したように、復帰処理部１６ｄは、かかる「第１の静的異常復帰処理」と「第２の静的異常復帰処理」とを１セットの「静的異常復帰処理」として、「静的仮異常」状態が継続している間、所定の「静的本異常」確定条件が成立するまで繰り返す。
【０１０１】
たとえば、図８には、かかる所定の「静的本異常」確定条件が「静的異常復帰処理」１セット×３回である場合について示している。したがって、同図に示すように、復帰処理部１６ｄは、時間ｔ４にいたるまで「静的異常復帰処理」を３回繰り返した後、なお「静的仮異常」が継続していれば、「静的本異常」状態であると確定する（同図の（２）参照）。
【０１０２】
そして、同図の（３）に示したように、ゲートウェイＥＣＵ１０は、マイコン５０のリセットを繰り返すことでゲートウェイ機能の復帰を試行する。なお、かかる試行の間、ゲートウェイＥＣＵ１０のすべての機能は停止する。
【０１０３】
そして、既に説明した「ＣＰＵ異常」の場合と同様に、バッテリ上がりを防止するため、電装系の制御信号による所定のスリープ条件が満たされた場合には（同図の（４）参照）、ゲートウェイＥＣＵ１０はスリープ状態へと遷移する（同図の（５）参照）。
【０１０４】
つづいて、「動的異常」が継続して検出され、最終的に「動的本異常」として確定される場合の、復帰処理部１６ｄが行う動的異常復帰処理の処理シーケンスについて、図９を用いて説明する。
【０１０５】
図９に示したように、時間ｔ１において、最初の「動的異常」を検出した場合（同図の（１）参照）、復帰処理部１６ｄは、かかる「動的異常」を「動的仮異常」と位置づけて、既に図８を用いて示した「静的」異常復帰処理による復帰処理を行う（図９の（２）参照）。
【０１０６】
これは、「動的」異常を検出した場合であっても、ＧＷハードマクロ５１のみの初期化を含めた「静的」異常復帰処理を行うことによって異常の検出精度を高める目的で行われる。すなわち、一旦ＧＷハードマクロ５１を初期化して静的モードにおける異常検出から行いなおすことで、異常の原因や箇所を特定しやすくすることができる。
【０１０７】
なお、かかる静的異常復帰処理によって「静的異常」が検出された場合、復帰処理部１６ｄは、既に図８を用いて示した静的異常復帰処理の処理シーケンスに沿って復帰処理を行うこととなる。
【０１０８】
したがって、図９の（２）では、静的異常復帰処理によってゲートウェイ機能が復帰（動的モードへ遷移）したものとする。そして、時間ｔ２において、２回目の「動的異常」を検出した場合（同図の（３）参照）についても、復帰処理部１６ｄは、時間ｔ１における場合と同様に、静的異常復帰処理による復帰処理を行ってゲートウェイ機能を復帰させる（同図の（４）参照）。なお、このように静的異常復帰処理によるゲートウェイ機能の復帰が行われても、「動的仮異常」状態は継続する。
【０１０９】
ここで、同図の（５）に示したように、時間ｔ３において、イグニッションスイッチのオフによるゲートウェイＥＣＵ１０のスリープ状態への遷移と、同スイッチのオンによるウェイクアップ状態への遷移とが行われたものとする。
【０１１０】
かかる場合に、「動的仮異常」状態が継続しており、かつ、ふたたび「動的異常」を検出した場合、復帰処理部１６ｄは、所定の「動的本異常」確定条件が成立したとみなす。
【０１１１】
すなわち、所定の「動的本異常」確定条件は、「動的仮異常」のゲートウェイＥＣＵ１０がスリープおよびウェイクアップを経てなお、「動的異常」が検出された場合である。したがって、同図の（６）に示したように、時間ｔ４において、「動的異常」を検出した場合、復帰処理部１６ｄは、ゲートウェイＥＣＵ１０が「動的本異常」状態であると確定する。
【０１１２】
そして、同図の（７）から（８）に示したように、ゲートウェイＥＣＵ１０は、マイコン５０のリセットを繰り返すことでゲートウェイ機能の復帰を試行する。なお、かかる試行の間、ゲートウェイＥＣＵ１０のすべての機能は停止する。
【０１１３】
そして、同図の（９）から（１０）に示したように、バッテリ上がりを防止するため、電装系の制御信号による所定のスリープ条件が満たされた場合には、ゲートウェイＥＣＵ１０はスリープ状態へと遷移する。
【０１１４】
つづいて、「動的仮異常」とされたものの、最終的に「動的仮異常」が解除される場合の、復帰処理部１６ｄが行う動的異常復帰処理の処理シーケンスについて、図１０を用いて説明する。
【０１１５】
図１０に示したように、時間ｔ１において、最初の「動的異常」が検出され（同図の（１）参照）、復帰処理部１６ｄが、かかる「動的異常」を「動的仮異常」と位置づけたうえで、静的異常復帰処理によってゲートウェイ機能を復帰させたものとする（同図の（２）参照）。
【０１１６】
そして、同図の（３）に示したように、時間ｔ２において、イグニッションスイッチのオフによるゲートウェイＥＣＵ１０のスリープ状態への遷移と、同スイッチのオンによるウェイクアップ状態への遷移とが行われたものとする。
【０１１７】
そして、同図の（４）から（６）に示したように、時間ｔ３にいたるまでに、同様のスリープおよびウェイクアップが３回行われたものとする。
【０１１８】
ここで、「動的仮異常」状態が継続しており、かつ、所定回数のスリープおよびウェイクアップを経てなお、ふたたび「動的異常」を検出しなければ、復帰処理部１６ｄは、所定の「動的仮異常」解除条件が成立したものとみなす。
【０１１９】
したがって、かかる所定回数が３回である場合、同図の（７）に示したように、時間ｔ４において、復帰処理部１６ｄは、ゲートウェイＥＣＵ１０の「動的仮異常」状態を解除する。
【０１２０】
次に、図８に示した第１の静的異常復帰処理の詳細な処理手順について、図１１を用いて説明する。図１１は、第１の静的異常復帰処理の処理手順を示すフローチャートである。
【０１２１】
図１１に示したように、ゲートウェイＥＣＵ１０の復帰処理部１６ｄは、ＧＷゲートマクロ５１が動的本異常あるいは静的本異常の状態にあるか否かを判定する（ステップＳ１０１）。
【０１２２】
ここで、動的本異常あるいは静的本異常の状態にあると判定された場合（ステップＳ１０１，Ｎｏ）、復帰処理部１６ｄは、本異常時処理を行ったうえで（ステップＳ１０２）、処理を終了する。なお、ステップＳ１０２の本異常時処理の内容については、図１４を用いて後述する。
【０１２３】
そして、動的本異常および静的本異常の状態にないと判定された場合（ステップＳ１０１，Ｙｅｓ）、復帰処理部１６ｄは、ＧＷゲートマクロ５１が動的仮異常あるいは静的仮異常の状態にあるか否かを判定する（ステップＳ１０３）。
【０１２４】
ここで、動的仮異常あるいは静的仮異常の状態にあると判定された場合（ステップＳ１０３，Ｎｏ）、復帰処理部１６ｄは、静的モード移行処理を行ったうえで（ステップＳ１０４）、過去３回ウェイクアップする間に動的仮異常がなかったか否かを判定する（ステップＳ１０５）。なお、ステップＳ１０４の静的モード移行処理の内容については、図１６を用いて後述する。
【０１２５】
そして、過去３回ウェイクアップする間に動的仮異常がなかったと判定された場合（ステップＳ１０５，Ｙｅｓ）、復帰処理部１６ｄは、動的仮異常フラグをオフにして動的仮異常状態を解除する（ステップＳ１０６）。なお、ステップＳ１０５の判定条件を満たさなかった場合（ステップＳ１０５，Ｎｏ）、復帰処理部１６ｄは、ステップＳ１０７の処理へ制御を移す。
【０１２６】
つづいて、復帰処理部１６ｄは、ルーティングマップ５１ｂのＳＵＭチェックが正常であるか否かを判定する（ステップＳ１０７）。そして、ルーティングマップ５１ｂのＳＵＭチェックが正常である場合（ステップＳ１０７，Ｙｅｓ）、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常であるか否かを判定する（ステップＳ１０８）。
【０１２７】
そして、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常である場合（ステップＳ１０８，Ｙｅｓ）、復帰処理部１６ｄは、動的モード移行処理を行ったうえで（ステップＳ１０９）、静的仮異常フラグをオフにして静的仮異常状態を解除し（ステップＳ１１０）、処理を終了する。なお、ステップＳ１０９の動的モード移行処理の内容については、図１６を用いて後述する。
【０１２８】
なお、ステップＳ１０７あるいはステップＳ１０８の判定条件を満たさなかった場合（（ステップＳ１０７，Ｎｏ）あるいは（ステップＳ１０８，Ｎｏ））、復帰処理部１６ｄは、本異常確認処理を行ったうえで（ステップＳ１１１）、静的仮異常フラグをオンにして静的仮異常状態とし（ステップＳ１１２）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ１１３）。なお、ステップＳ１１１の本異常確認処理の内容については、図１５を用いて後述する。
【０１２９】
そして、復帰処理部１６ｄは、所定のマイコン５０のリセット実施条件が成立しているか否かを判定し（ステップＳ１１４）、リセット実施条件が成立している場合には（ステップＳ１１４，Ｙｅｓ）、ＷＤＣ停止によるマイコン５０のリセットを実施して（ステップＳ１１５）、処理を終了する。また、ステップＳ１１４の判定条件を満たさなかった場合には（ステップＳ１１４，Ｎｏ）、１００ｍｓの待機を経たうえで（ステップＳ１１６）、ステップＳ１０１からの処理を再帰的に繰り返す。
【０１３０】
次に、図８に示した第２の静的異常復帰処理の詳細な処理手順について、図１２を用いて説明する。図１２は、第２の静的異常復帰処理の処理手順を示すフローチャートである。
【０１３１】
図１２に示したように、復帰処理部１６ｄは、ＧＷゲートマクロ５１が動的本異常あるいは静的本異常の状態にあるか否かを判定する（ステップＳ２０１）。
【０１３２】
ここで、動的本異常あるいは静的本異常の状態にあると判定された場合（ステップＳ２０１，Ｎｏ）、復帰処理部１６ｄは、本異常時処理を行ったうえで（ステップＳ２０２）、処理を終了する。なお、ステップＳ２０２の本異常時処理の内容については、図１４を用いて後述する。
【０１３３】
そして、動的本異常および静的本異常の状態にないと判定された場合（ステップＳ２０１，Ｙｅｓ）、復帰処理部１６ｄは、静的モード移行処理を行う（ステップＳ２０３）。なお、ステップＳ２０３の静的モード移行処理の内容については、図１６を用いて後述する。
【０１３４】
つづいて、復帰処理部１６ｄは、ルーティングマップ５１ｂのＳＵＭチェックが正常であるか否かを判定する（ステップＳ２０４）。そして、ルーティングマップ５１ｂのＳＵＭチェックが正常である場合（ステップＳ２０４，Ｙｅｓ）、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常であるか否かを判定する（ステップＳ２０５）。
【０１３５】
そして、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常である場合（ステップＳ２０５，Ｙｅｓ）、復帰処理部１６ｄは、動的モード移行処理を行ったうえで（ステップＳ２０６）、静的仮異常フラグをオフにして静的仮異常状態を解除し（ステップＳ２０７）、処理を終了する。なお、ステップＳ２０６の動的モード移行処理の内容については、図１６を用いて後述する。
【０１３６】
なお、ステップＳ２０４あるいはステップＳ２０５の判定条件を満たさなかった場合（（ステップＳ２０４，Ｎｏ）あるいは（ステップＳ２０５，Ｎｏ））、復帰処理部１６ｄは、静的仮異常フラグをオンにして静的仮異常状態としたうえで（ステップＳ２０８）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ２０９）。
【０１３７】
そして、復帰処理部１６ｄは、１００ｍｓの待機を経たうえで（ステップＳ２１０）、図１１に示した第１の静的異常復帰処理を行って（ステップＳ２１１）、処理を終了する。
【０１３８】
次に、図９および図１０に示した動的異常復帰処理の詳細な処理手順について、図１３を用いて説明する。図１３は、動的異常復帰処理の処理手順を示すフローチャートである。
【０１３９】
図１３に示したように、復帰処理部１６ｄは、動的仮異常フラグをオンにして動的仮異常状態としたうえで（ステップＳ３０１）、本異常確認処理を行う（ステップＳ３０２）。なお、かかる本異常確認処理の内容については、図１５を用いて後述する。そして、復帰処理部１６ｄは、静的モード移行処理を行う（ステップＳ３０３）。かかる静的モード移行処理の内容については、図１６を用いて後述する。
【０１４０】
つづいて、復帰処理部１６ｄは、ルーティングマップ５１ｂのＳＵＭチェックが正常であるか否かを判定する（ステップＳ３０４）。そして、ルーティングマップ５１ｂのＳＵＭチェックが正常である場合（ステップＳ３０４，Ｙｅｓ）、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常であるか否かを判定する（ステップＳ３０５）。
【０１４１】
そして、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常である場合（ステップＳ３０５，Ｙｅｓ）、復帰処理部１６ｄは、動的モード移行処理を行ったうえで（ステップＳ３０６）、処理を終了する。かかる動的モード移行処理の内容については、図１６を用いて後述する。
【０１４２】
なお、ステップＳ３０４あるいはステップＳ３０５の判定条件を満たさなかった場合（（ステップＳ３０４，Ｎｏ）あるいは（ステップＳ３０５，Ｎｏ））、復帰処理部１６ｄは、静的仮異常フラグをオンにして静的仮異常状態としたうえで（ステップＳ３０７）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ３０８）。
【０１４３】
そして、復帰処理部１６ｄは、１００ｍｓの待機を経たうえで（ステップＳ３０９）、図１１に示した第１の静的異常復帰処理を行って（ステップＳ３１０）、処理を終了する。
【０１４４】
次に、図１１のステップＳ１０２および図１２のステップＳ２０２に示した、本異常時処理の詳細な処理手順について、図１４を用いて説明する。図１４は、本異常時処理の処理手順を示すフローチャートである。
【０１４５】
図１４に示したように、復帰処理部１６ｄは、電装系のスリープ条件が成立したか否かを判定する（ステップＳ４０１）。そして、電装系のスリープ条件が成立したと判定された場合（ステップＳ４０１，Ｙｅｓ）、復帰処理部１６ｄは、６０ｓのスリープ待機を経て（ステップＳ４０２）、ゲートウェイＥＣＵ１０をスリープ状態へ遷移させ（ステップＳ４０３）、処理を終了する。
【０１４６】
一方、ステップＳ４０１の判定条件を満たさなかった場合（ステップＳ４０１，Ｎｏ）、復帰処理部１６ｄは、ＷＤＣ停止によるマイコン５０のリセットを行って（ステップＳ４０４）、処理を終了する。
【０１４７】
次に、図１１のステップＳ１１１および図１３のステップＳ３０２に示した、本異常確認処理の詳細な処理手順について、図１５を用いて説明する。図１５は、本異常確認処理の処理手順を示すフローチャートである。
【０１４８】
図１５に示したように、復帰処理部１６ｄは、静的本異常が確定したか否かを判定する（ステップＳ５０１）。そして、静的本異常が確定したと判定された場合（ステップＳ５０１，Ｙｅｓ）、復帰処理部１６ｄは、静的本異常フラグをオンにして静的本異常状態を確定する（ステップＳ５０２）。
【０１４９】
一方、ステップＳ５０１の判定条件を満たさなかった場合（ステップＳ５０１，Ｎｏ）、復帰処理部１６ｄは、動的本異常が確定したか否かを判定する（ステップＳ５０３）。そして、動的本異常が確定したと判定された場合（ステップＳ５０３，Ｙｅｓ）、復帰処理部１６ｄは、動的本異常フラグをオンにして動的本異常状態を確定する（ステップＳ５０４）。
【０１５０】
そして、復帰処理部１６ｄは、異常履歴１７ｂへ異常履歴の保存を行ったうえで（ステップＳ５０５）、ＷＤＣ停止によるマイコン５０のリセットを行って（ステップＳ５０６）、処理を終了する。ここで、ステップＳ５０６のマイコン５０のリセットを行わずに、縮退的に稼動させることとしてもよい。なお、ステップＳ５０３の判定条件を満たさなかった場合には（ステップＳ５０３，Ｎｏ）、復帰処理部１６ｄは、本異常確認処理の呼び出し元へ制御を戻す。
【０１５１】
次に、図１１のステップＳ１０４、図１２のステップＳ２０３および図１３のステップＳ３０３に示した、静的モード移行処理の詳細な処理手順について、図１６を用いて説明する。図１６は、静的モード移行処理の処理手順を示すフローチャートである。
【０１５２】
図１６に示したように、復帰処理部１６ｄは、ＧＷハードマクロ５１のレジスタを初期化したうえで（ステップＳ６０１）、フレームデータ用の内部バッファをすべてクリアする（ステップＳ６０２）。かかる内部バッファには、ソフトウェアレベルのプロトコル制御用のバッファを含むものとする。
【０１５３】
そして、ＲＯＭ５４のルーティングマップ５４ａを、ルーティングマップ５１ｂとしてＧＷハードマクロ５１のレジスタへ転送したうえで（ステップＳ６０３）、静的モード移行処理の呼び出し元へ制御を戻す。
【０１５４】
次に、図１１のステップＳ１０９、図１２のステップＳ２０６および図１３のステップＳ３０６に示した、動的モード移行処理の詳細な処理手順について、図１７を用いて説明する。図１７は、動的モード移行処理の処理手順を示すフローチャートである。
【０１５５】
図１７に示したように、復帰処理部１６ｄは、ＧＷハードマクロ５１のレジスタを中継動作が行えるように設定したうえで（ステップＳ７０１）、ＧＷハードマクロ５１の動作を開始する（ステップＳ７０２）。そして、動的モード移行処理の呼び出し元へ制御を戻す。
【０１５６】
上述してきたように、実施例１では、ゲートウェイ機能に特化した回路ブロックであるＧＷハードマクロを搭載することによってＧＷハードマクロのみを対象とする復帰処理を可能としたうえで、ＧＷハードマクロ部が、異常を検出した場合に、異常振分部が、静的モードおよび動的モードごとに所定の検出種別で異常を振り分け、復帰処理部が、振り分けられた異常に対して、静的モードおよび動的モードに適した復帰処理を行うようにゲートウェイ装置を構成した。したがって、異常を検出した場合に、早期に異常の原因や箇所を特定したうえで適切なフェールセーフ制御を行うことができる。
【０１５７】
ところで、上述した実施例１では、「本異常」状態においてはゲートウェイ機能を含めたすべての機能を停止するゲートウェイ装置について説明してきたが、「本異常」状態においても、検出された異常が一部の構成部品の部分的な異常である場合には、ゲートウェイ機能を縮退的に稼動することとしてもよい。
【０１５８】
そこで、以下では、「本異常」状態においても、検出された異常が一部の構成部品の部分的な異常である場合には、ゲートウェイ機能を縮退的に稼動するゲートウェイ装置の実施例を実施例２として説明する。なお、以下における説明でも、ゲートウェイ装置を「ゲートウェイＥＣＵ」と記載することとする。
【０１５９】
また、実施例２に係るゲートウェイＥＣＵは、その物理的構成および機能的構成を、上述した実施例１に係るゲートウェイＥＣＵと同様とすることができる（図２および図３参照）。したがって、以下では、図２および図３において各構成要素へ付した符号を用いて説明を行う。
【実施例２】
【０１６０】
図１８は、ルーティングマップ５１ｂの一部のレコードに異常が生じている場合を示す図である。たとえば、同図の（１）に示したように、ＧＷハードマクロ５１のルーティングマップ５１ｂへレコード＃１〜＃４の４つのレコードが格納されており、レコード＃３のみにデータ化けなどの異常が発生しているものとする（同図の（１）の「×」印を参照）。
【０１６１】
かかる場合、実施例２に係るゲートウェイＥＣＵ１０は、異常が発生したレコード＃３にのみアクセスさせないようにすることで、ゲートウェイ機能を縮退的に稼動させることができる。
【０１６２】
具体的には、同図の（２）に示したように、ルーティングマップ５４ａを転送元としてルーティングマップ５１ｂへ転送する際、異常が発生したレコード＃３を間引いたうえで転送することができる。
【０１６３】
そして、ＧＷハードマクロ５１は、あらたに転送されたルーティングマップ５１ｂへアクセスする際に、レコード＃１、レコード＃２およびレコード＃４のみにアクセスすることで、縮退的にではあるがゲートウェイ機能を稼動させることができる。
【０１６４】
また、検索エンジンとのインタフェースやＧＷハードマクロ５１のレジスタへのアクセスの制限上、レコードの順検索のみが可能であるならば、使用可能なレコードの総数を検索エンジンへ通知することとしてもよい。
【０１６５】
具体的には、レコード＃３で異常が発生した場合には、レコード＃１〜＃２の順検索のみが可能であるということで、使用可能なレコードの総数を「２」と検索エンジンへ通知すればよい。そして、検索エンジンは、レコード＃１〜＃２のみを参照して、縮退的にデータの中継を行うこととすればよい。
【０１６６】
なお、かかる場合には、必ずしもルーティングマップ５４ａを転送元とする転送を行わなくともよい。なぜなら、レコード＃３の異常発生時において、検索エンジンへ使用可能なレコードの総数を通知すれば足りるからである。
【０１６７】
また、図１９に示したように、ＧＷハードマクロ５１の送信ＦＩＦＯの一部にパリティエラーなどの異常が生じている場合にも、ゲートウェイ機能を維持することができる。図１９は、送信ＦＩＦＯの一部に異常が生じている場合を示す図である。
【０１６８】
たとえば、図１９に示したように、ＧＷハードマクロ５１の送信ＦＩＦＯのうち、チャネル番号２のみに異常が発生しているものとする（同図の「×」印を付与した「送信ＦＩＦＯ＿ｃｈ２」参照）。なお、かかるチャネル番号２の送信ＦＩＦＯは、本来、ソフトウェア送信部１６ｂ（図３参照）が有するソフトウェアバッファのチャネル番号２に対応しているものとする。
【０１６９】
かかる場合、実施例２に係るゲートウェイＥＣＵ１０は、異常が発生したチャネル番号２の送信ＦＩＦＯに換えて空いている送信ＦＩＦＯを利用することで、ゲートウェイ機能を維持することができる。
【０１７０】
具体的には、同図の（１）に示したように、空きチャネルであるチャネル番号３（同図の「送信ＦＩＦＯ＿ｃｈ３」参照）の送信ＦＩＦＯを利用して、かかる送信ＦＩＦＯをあらたにチャネル番号２のソフトウェアバッファに対応づけることとすればよい。
【０１７１】
そして、同図の（２）に示したように、かかるあらたな対応づけをルーティングマップ５１ｂへ適用して中継経路を変更すればよい。これにより、検索エンジンは、チャネル番号３の送信ＦＩＦＯを介して、チャネル番号２のソフトウェアバッファへのフレームデータの中継を行うことができる。
【０１７２】
なお、図１８および図１９に示した、ゲートウェイ機能を縮退的に稼動させた場合において、レジスタのすべての領域やすべての送信ＦＩＦＯについての異常が検出された場合には、実施例１において上述した静的異常復帰処理あるいは動的異常復帰処理を行うことで、ゲートウェイ機能を停止することとすればよい。
【０１７３】
次に、図１８に示したルーティングマップ５１ｂの一部のレコード異常時におけるルーティングマップ異常時処理の詳細な処理手順について、図２０を用いて説明する。図２０は、ルーティングマップ異常時処理の処理手順を示すフローチャートである。
【０１７４】
図２０に示したように、ルーティングマップ５１ｂの異常時には、復帰処理部１６ｄは、動的仮異常フラグをオンにして動的仮異常状態としたうえで（ステップＳ８０１）、図１５に示した本異常確認処理を行う（ステップＳ８０２）。
【０１７５】
そして、復帰処理部１６ｄは、ＧＷハードマクロ５１の動作を停止したうえで（ステップＳ８０３）、ソフトウェア用のバッファを含めた内部バッファのクリアを行う（ステップＳ８０４）。
【０１７６】
そして、復帰処理部１６ｄは、ルーティングマップ５４ａから異常を検出した一部のレコードを間引いて再構成したルーティングマップを、ＧＷハードマクロ５１のレジスタへルーティングマップ５１ｂとして転送する（ステップＳ８０５）。
【０１７７】
つづいて、復帰処理部１６ｄは、ルーティングマップ５１ｂのＳＵＭチェックが正常であるか否かを判定する（ステップＳ８０６）。そして、ルーティングマップ５１ｂのＳＵＭチェックが正常である場合（ステップＳ８０６，Ｙｅｓ）、復帰処理部１６ｄは、ＧＷハードマクロ５１の動作を開始させたうえで（ステップＳ８０７）、処理を終了する。
【０１７８】
なお、ステップＳ８０６の判定条件を満たさなかった場合（ステップＳ８０６，Ｎｏ）、復帰処理部１６ｄは、静的仮異常フラグをオンにして静的仮異常状態としたうえで（ステップＳ８０８）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ８０９）。
【０１７９】
そして、復帰処理部１６ｄは、１００ｍｓの待機を経たうえで（ステップＳ８１０）、図１１に示した第１の静的異常復帰処理を行って（ステップＳ８１１）、処理を終了する。
【０１８０】
次に、図１９に示したＧＷハードマクロ５１の送信ＦＩＦＯの一部にパリティエラーなどの異常が生じている場合における送信ＦＩＦＯ異常時処理の詳細な処理手順について、図２１を用いて説明する。図２１は、送信ＦＩＦＯ異常時処理の処理手順を示すフローチャートである。
【０１８１】
図２１に示したように、送信ＦＩＦＯの一部の異常時には、復帰処理部１６ｄは、動的仮異常フラグをオンにして動的仮異常状態としたうえで（ステップＳ９０１）、図１５に示した本異常確認処理を行う（ステップＳ９０２）。
【０１８２】
そして、復帰処理部１６ｄは、ＧＷハードマクロ５１の動作を停止したうえで（ステップＳ９０３）、ソフトウェア用のバッファを含めた内部バッファのクリアを行う（ステップＳ９０４）。
【０１８３】
そして、復帰処理部１６ｄは、異常が検出された送信ＦＩＦＯを、空いているチャネル番号分の送信ＦＩＦＯと切り換える（ステップＳ９０５）。なお、かかる切り替え時には、ルーティングマップ５１ｂの更新を併せて行う。
【０１８４】
つづいて、復帰処理部１６ｄは、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常であるか否かを判定する（ステップＳ９０６）。そして、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常である場合（ステップＳ９０６，Ｙｅｓ）、復帰処理部１６ｄは、ＧＷハードマクロ５１の動作を開始させたうえで（ステップＳ９０７）、処理を終了する。
【０１８５】
なお、ステップＳ９０６の判定条件を満たさなかった場合（ステップＳ９０６，Ｎｏ）、復帰処理部１６ｄは、静的仮異常フラグをオンにして静的仮異常状態としたうえで（ステップＳ９０８）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ９０９）。
【０１８６】
そして、復帰処理部１６ｄは、１００ｍｓの待機を経たうえで（ステップＳ９１０）、図１１に示した第１の静的異常復帰処理を行って（ステップＳ９１１）、処理を終了する。
【０１８７】
ところで、上述した実施例２では、検出された異常が一部の構成部品の部分的な異常である場合には、ゲートウェイ機能を縮退的に稼動する場合について説明してきたが、ゲートウェイ機能は停止させつつも、マイコン５０においてダイアグノシス通信を可能とするプログラムを動作させることで縮退的に故障診断のための通信機能を復帰させることとしてもよい。
【０１８８】
そこで、以下では、かかる縮退的に故障診断のための通信機能を復帰させる場合の変形例について、図２２を用いて説明する。図２２は、実施例２の変形例に係るゲートウェイＥＣＵ１０ａの機能的構成を示す機能ブロック図である。
【０１８９】
なお、同図では、図３に示した実施例１に係るゲートウェイＥＣＵ１０と同一の構成要素については同一の符号を付しており、以下では、上述した実施例１と重複する構成要素についての説明を省略することとする。
【０１９０】
また、図２２には、本変形例の説明において必要な構成要素のみを示すこととし、ＥＣＵスリープ部１３、監視部１４、マイコンリセット部１５、異常振分部１６ｃ、復帰処理部１６ｄ、ルーティングマップ１７ａおよび異常履歴１７ｂの図示を省略している。
【０１９１】
図２２に示したように、実施例２の変形例に係るゲートウェイＥＣＵ１０ａは、制御部１６にダイアグ通信制御部１６ｅおよびダイアグアプリ部１６ｆをさらに備える点で、上述した実施例１に係るゲートウェイＥＣＵ１０とは異なる。また、記憶部１７に、ダイアグ通信ソフトウェア１７ｃおよびダイアグアプリ１７ｄをさらに備える点で、上述した実施例１に係るゲートウェイＥＣＵ１０とは異なる。
【０１９２】
なお、同図では、閉曲線１に囲まれた部分に「×」印を付与することで、ＧＷハードマクロ部１６ａの動作停止およびそれに連動するソフトウェア送信部１６ｂの動作停止によって、ゲートウェイ機能がすべて停止していることを明示している。
【０１９３】
ダイアグ通信制御部１６ｅは、故障診断装置であるダイアグテスタから受信ＭｓｇＢｏｘ１１へ入力された故障診断用フレームデータを、ＧＷハードマクロ部１６ａを介さずにバイパスしてダイアグアプリ部１６ｆへ出力するための通信制御を行う処理部である。
【０１９４】
なお、かかる通信制御を行う通信制御プログラムは、あらかじめ記憶部１７のダイアグ通信ソフトウェア１７ｃへ格納されており、ダイアグ通信制御部１６ｅは、ゲートウェイ機能の停止に応じてかかるダイアグ通信ソフトウェア１７ｃから通信制御プログラムをロードして動作する。
【０１９５】
ダイアグアプリ部１６ｆは、ダイアグ通信制御部１６ｅから入力した故障診断用フレームデータに基づいて故障診断処理を行う処理部である。また、ダイアグアプリ部１６ｆは、故障診断用フレームデータを所定の宛先のＥＣＵネットワークへ、送信ＭｓｇＢｏｘ１２を介して出力する処理を併せて行う。ここで、送信ＭｓｇＢｏｘ１２については、受信ＭｓｇＢｏｘ１１と同じチャネルの送信ＭｓｇＢｏｘでもよい。また、所定の宛先のＥＣＵネットワークは、ダイアグテスタとなる場合もある。
【０１９６】
なお、かかる故障診断プログラムは、あらかじめ記憶部１７のダイアグアプリ１７ｄへ格納されており、ダイアグアプリ部１６ｆは、かかるダイアグアプリ１７ｄから故障診断プログラムをロードして動作する。
【０１９７】
このようにゲートウェイＥＣＵ１０ａを構成することで、ゲートウェイ機能が停止している場合であっても、保守員が、ダイアグテスタを通じてゲートウェイＥＣＵ１０ａへ故障診断用フレームデータを送出すれば、ゲートウェイＥＣＵ１０ａあるいはＥＣＵネットワークに接続される他のＥＣＵの故障箇所の特定を行うことができる。
【０１９８】
上述してきたように、実施例２では、ＧＷハードマクロ部が、ＧＷハードマクロの一部の構成部品の部分的異常を検出した場合には、復帰処理部が、かかる部分的異常を生じた故障部位を動作させないように処置する復帰処理を行うようにゲートウェイ装置を構成した。また、ゲートウェイ機能が停止している場合において、ダイアグ通信制御部が、故障診断用フレームデータをバイパスし、ダイアグアプリ部が、かかる故障診断用フレームデータに基づいて故障診断処理を行うようにゲートウェイ装置を構成した。
【０１９９】
したがって、検出された異常が一部の構成部品の部分的な異常である場合には、すべてのゲートウェイ機能を停止させることなく縮退的に稼動させることができる。また、ゲートウェイ機能が停止している場合であっても、故障診断装置からの故障診断用フレームデータを中継することができるので、早期に異常の原因や箇所を特定することが可能となる。
【０２００】
ところで、上述した実施例２では、「本異常」状態においても、検出された異常が一部の構成部品の部分的な異常である場合には、ゲートウェイ機能を縮退的に稼動するゲートウェイ装置について説明したが、かかる「縮退的稼動」を、ＧＷハードマクロのみが故障しているとみなしつつ、ゲートウェイ機能については停止し、また、ゲートウェイ機能以外の機能については継続して動作させる稼動状態であるとしてもよい。
【０２０１】
そこで、以下では、かかる「縮退的稼動」において、復帰処理としてＧＷハードマクロの初期化のみを繰り返すゲートウェイ装置（ゲートウェイＥＣＵ）の実施例を実施例３として説明する。
【０２０２】
なお、実施例３に係るゲートウェイＥＣＵについても、その物理的構成および機能的構成を、上述した実施例１に係るゲートウェイＥＣＵと同様とすることができる（図２および図３参照）。したがって、以下でも、図２および図３において各構成要素へ付した符号を用いて説明を行う。
【実施例３】
【０２０３】
図２３は、実施例３に係る復帰処理部１６ｄが行う静的異常復帰処理の処理シーケンス図であり、図２４は、実施例３に係る復帰処理部１６ｄが行う動的異常復帰処理の処理シーケンス図である。
【０２０４】
まず、実施例３に係る復帰処理部１６ｄが行う静的異常復帰処理の処理シーケンスについて、図２３を用いて説明する。なお、図２３には、「静的異常」が継続して検出される場合の例を示している。
【０２０５】
図２３に示したように、最初の「静的異常」を検出した場合（同図の（１）参照）、復帰処理部１６ｄは、かかる「静的異常」を「静的仮異常」と位置づけて、ＧＷハードマクロ５１のみを初期化する復帰処理を行う。このとき、フレームデータの送出を担うソフトウェア送信部１６ｂの動作は停止されるものとする（同図のｔ１参照）。
【０２０６】
そして、かかるＧＷハードマクロ５１のみの初期化で異常が検出されなければ、復帰処理部１６ｄは、ＧＷハードマクロ５１のゲートウェイ機能動作を開始して、「静的仮異常」状態を解除する。すなわち、ゲートウェイＥＣＵ１０は動的モードへと遷移する。
【０２０７】
一方、異常が検出された場合には、復帰処理部１６ｄは、所定の間隔をおいてＧＷハードマクロ５１のみを初期化する復帰処理を再帰的に繰り返す。なお、かかる再帰的な復帰処理は、所定のスリープ条件が成立するまで繰り返される。
【０２０８】
たとえば、図２３には、所定の間隔（ｔ２−ｔ１）が「１００ｍｓ」であり、所定のスリープ条件が、通常のスリープ条件（たとえば、無通信状態やエンジン停止時など）である場合を示している（同図の（５）参照）。
【０２０９】
なお、同図では、かかる再帰的な復帰処理がｎ回繰り返された場合に、「静的本異常」状態であると確定する例を示しているが、かかる確定が行われた後にも同様の復帰処理を繰り返すものとする（同図の（２）〜（４）参照）。したがって、「縮退的稼動」状態においては、マイコン５０のリセットは行われない。また、通常のスリープ条件を満たした場合には、ゲートウェイＥＣＵ１０はスリープ状態へと遷移する（同図の（６）参照）。
【０２１０】
つづいて、「動的異常」が継続して検出され、最終的に「動的本異常」として確定される場合の、実施例３に係る復帰処理部１６ｄが行う動的異常復帰処理の処理シーケンスについて、図２４を用いて説明する。
【０２１１】
なお、同図に示した（１）〜（６）まで（「動的本異常」状態の確定まで）の同処理シーケンスは、図９において示した実施例１に係る復帰処理部１６ｄが行う動的異常復帰処理の処理シーケンスの（１）〜（６）と重複するため、ここでの記載を省略するか、説明を最小限にとどめることとする。
【０２１２】
図２４の（６）に示したように、「動的仮異常」のゲートウェイＥＣＵ１０が通常のスリープおよびウェイクアップを経てなお、時間ｔ４において「動的異常」を検出した場合、復帰処理部１６ｄは、ゲートウェイＥＣＵ１０が「動的本異常」状態であると確定する。
【０２１３】
そして、同図の（７）に示したように、実施例３に係る復帰処理部１６ｄは、ＧＷハードマクロ５１のみを初期化する復帰処理を行う。このとき、フレームデータの送出を担うソフトウェア送信部１６ｂの動作は停止され、ゲートウェイＥＣＵ１０は、「縮退的稼動」状態となる。
【０２１４】
そして、同図の（８）に示したように、復帰処理部１６ｄは、通常のスリープ条件が成立するまで、所定の間隔をおいてＧＷハードマクロ５１のみを初期化する復帰処理を再帰的に繰り返す。したがって、「動的異常」の場合であっても、「縮退的稼動」状態においては、マイコン５０のリセットは行われない。また、通常のスリープ条件を満たした場合には（同図の（９）参照）、ゲートウェイＥＣＵ１０はスリープ状態へと遷移する（同図の（１０）参照）。
【０２１５】
次に、図２３に示した縮退的稼動における静的異常復帰処理の詳細な処理手順について、図２５を用いて説明する。図２５は、縮退的稼動における静的異常復帰処理の処理手順を示すフローチャートである。
【０２１６】
図２５に示したように、実施例３に係るゲートウェイＥＣＵ１０の復帰処理部１６ｄは、ＧＷゲートマクロ５１が動的本異常あるいは静的本異常の状態にあるか否かを判定する（ステップＳ１１０１）。
【０２１７】
ここで、動的本異常あるいは静的本異常の状態にあると判定された場合（ステップＳ１１０１，Ｎｏ）、復帰処理部１６ｄは、ソフトウェア送信部１６ｂのみを停止し（ステップＳ１１０２）、ステップＳ１１０３の処理へ制御を移す。
【０２１８】
そして、動的本異常および静的本異常の状態にないと判定された場合（ステップＳ１１０１，Ｙｅｓ）、復帰処理部１６ｄは、ＧＷゲートマクロ５１が動的仮異常あるいは静的仮異常の状態にあるか否かを判定する（ステップＳ１１０３）。
【０２１９】
ここで、動的仮異常あるいは静的仮異常の状態にあると判定された場合（ステップＳ１１０３，Ｎｏ）、復帰処理部１６ｄは、静的モード移行処理を行ったうえで（ステップＳ１１０４）、過去３回ウェイクアップする間に動的仮異常がなかったか否かを判定する（ステップＳ１１０５）。なお、ステップＳ１１０４の静的モード移行処理の内容については、図１６を用いて既に述べたため、ここでの記載を省略する。
【０２２０】
そして、過去３回ウェイクアップする間に動的仮異常がなかったと判定された場合（ステップＳ１１０５，Ｙｅｓ）、復帰処理部１６ｄは、動的仮異常フラグをオフにして動的仮異常状態を解除する（ステップＳ１１０６）。なお、ステップＳ１１０５の判定条件を満たさなかった場合（ステップＳ１１０５，Ｎｏ）、復帰処理部１６ｄは、ステップＳ１１０７の処理へ制御を移す。
【０２２１】
つづいて、復帰処理部１６ｄは、ルーティングマップ５１ｂのＳＵＭチェックが正常であるか否かを判定する（ステップＳ１１０７）。そして、ルーティングマップ５１ｂのＳＵＭチェックが正常である場合（ステップＳ１１０７，Ｙｅｓ）、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常であるか否かを判定する（ステップＳ１１０８）。
【０２２２】
そして、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常である場合（ステップＳ１１０８，Ｙｅｓ）、復帰処理部１６ｄは、動的モード移行処理を行ったうえで（ステップＳ１１０９）、静的仮異常フラグをオフにして静的仮異常状態を解除し（ステップＳ１１１０）、処理を終了する。なお、ステップＳ１１０９の動的モード移行処理の内容については、図１６を用いて既に述べたため、ここでの記載を省略する。
【０２２３】
なお、ステップＳ１１０７あるいはステップＳ１１０８の判定条件を満たさなかった場合（（ステップＳ１１０７，Ｎｏ）あるいは（ステップＳ１１０８，Ｎｏ））、復帰処理部１６ｄは、縮退的稼動における本異常確認処理を行ったうえで（ステップＳ１１１１）、静的仮異常フラグをオンにして静的仮異常状態とし（ステップＳ１１１２）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ１１１３）。なお、ステップＳ１１１１の縮退的稼動における本異常確認処理の内容については、図２７を用いて後述する。
【０２２４】
そして、復帰処理部１６ｄは、１００ｍｓの待機を経たうえで（ステップＳ１１１４）、ステップＳ１１０１からの処理を再帰的に繰り返す。
【０２２５】
次に、図２４に示した縮退的稼動における動的異常復帰処理の詳細な処理手順について、図２６を用いて説明する。図２６は、縮退的稼動における動的異常復帰処理の処理手順を示すフローチャートである。
【０２２６】
図２６に示したように、復帰処理部１６ｄは、動的仮異常フラグをオンにして動的仮異常状態としたうえで（ステップＳ１２０１）、縮退的稼動における本異常確認処理を行う（ステップＳ１２０２）。なお、かかる縮退的稼動における本異常確認処理の内容については、図２７を用いて後述する。そして、復帰処理部１６ｄは、静的モード移行処理を行う（ステップＳ１２０３）。かかる静的モード移行処理の内容については、図１６を用いて既に述べたため、ここでの記載を省略する。
【０２２７】
つづいて、復帰処理部１６ｄは、ルーティングマップ５１ｂのＳＵＭチェックが正常であるか否かを判定する（ステップＳ１２０４）。そして、ルーティングマップ５１ｂのＳＵＭチェックが正常である場合（ステップＳ１２０４，Ｙｅｓ）、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常であるか否かを判定する（ステップＳ１２０５）。
【０２２８】
そして、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常である場合（ステップＳ１２０５，Ｙｅｓ）、復帰処理部１６ｄは、動的モード移行処理を行ったうえで（ステップＳ１２０６）、処理を終了する。かかる動的モード移行処理の内容については、図１６を用いて既に述べたため、ここで記載を省略する。
【０２２９】
なお、ステップＳ１２０４あるいはステップＳ１２０５の判定条件を満たさなかった場合（（ステップＳ１２０４，Ｎｏ）あるいは（ステップＳ１２０５，Ｎｏ））、復帰処理部１６ｄは、静的仮異常フラグをオンにして静的仮異常状態としたうえで（ステップＳ１２０７）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ１２０８）。
【０２３０】
そして、復帰処理部１６ｄは、１００ｍｓの待機を経たうえで（ステップＳ１２０９）、図２５に示した縮退的稼動における静的異常復帰処理を行って（ステップＳ１２１０）、処理を終了する。
【０２３１】
次に、図２５のステップＳ１１１１および図２６のステップＳ１２０２に示した、縮退的稼動における本異常確認処理の詳細な処理手順について、図２７を用いて説明する。図２７は、縮退的稼動における本異常確認処理の処理手順を示すフローチャートである。
【０２３２】
図２７に示したように、復帰処理部１６ｄは、静的本異常が確定したか否かを判定する（ステップＳ１３０１）。そして、静的本異常が確定したと判定された場合（ステップＳ１３０１，Ｙｅｓ）、復帰処理部１６ｄは、静的本異常フラグをオンにして静的本異常状態を確定する（ステップＳ１３０２）。
【０２３３】
一方、ステップＳ１３０１の判定条件を満たさなかった場合（ステップＳ１３０１，Ｎｏ）、復帰処理部１６ｄは、動的本異常が確定したか否かを判定する（ステップＳ１３０３）。そして、動的本異常が確定したと判定された場合（ステップＳ１３０３，Ｙｅｓ）、復帰処理部１６ｄは、動的本異常フラグをオンにして動的本異常状態を確定する（ステップＳ１３０４）。
【０２３４】
そして、復帰処理部１６ｄは、異常履歴１７ｂへ異常履歴の保存を行ったうえで（ステップＳ１３０５）、本処理の呼び出し元へ制御を戻す。なお、ステップＳ１３０３の判定条件を満たさなかった場合にも（ステップＳ１３０３，Ｎｏ）、復帰処理部１６ｄは、本処理の呼び出し元へ制御を戻す。
【０２３５】
上述してきたように、実施例３では、復帰処理部が、ＧＷハードマクロ部のみが故障しているとみなしつつ、ゲートウェイ機能以外の機能を継続して動作させながら、ＧＷハードマクロ部の初期化を繰り返すように処置する復帰処理を行うようにゲートウェイ装置を構成した。
【０２３６】
したがって、ゲートウェイ機能以外の機能を有効とすることで、ＧＷハードマクロが異常状態にあっても、ダイアグテスタなどを用いてＧＷハードマクロの存在を示すことができるので、故障対応が容易となる。
【０２３７】
ところで、上述した実施例１では、「本異常」状態として確定されたならば、マイコンのリセットを繰り返すことでゲートウェイ機能の復帰を試行する場合について説明してきた（図８および図９参照）。ここで、かかる試行の結果、ゲートウェイ機能が復帰したうえで所定の条件を満たしたならば、「本異常」状態の解除を行うこととしてもよい。なお、このように「本異常」状態の解除を行うことを、以下、「本異常からの復帰」と呼ぶこととする。
【０２３８】
そこで、以下では、かかる「本異常からの復帰」を行うゲートウェイ装置（ゲートウェイＥＣＵ）の実施例を実施例４として説明する。なお、実施例４に係るゲートウェイＥＣＵについても、図２および図３において各構成要素へ付した符号を用いて説明を行う。
【実施例４】
【０２３９】
図２８は、実施例４に係る復帰処理部１６ｄが行う「本異常からの復帰」における動的異常復帰処理の処理シーケンス図である。なお、静的本異常については、静的仮異常からの復帰と同じ条件で復帰するものとし、かかる詳細については図２９および図３０を用いて後述する。
【０２４０】
図２８に示したように、時間ｔ１において、「動的本異常」が確定され（同図の（１）参照）、復帰処理部１６ｄが、マイコンリセットとそれに伴う静的異常復帰処理によってゲートウェイ機能を復帰させたものとする（同図の（２）参照）。
【０２４１】
そして、同図の（３）に示したように、時間ｔ２において、イグニッションスイッチのオフによるゲートウェイＥＣＵ１０のスリープ状態への遷移と、同スイッチのオンによるウェイクアップ状態への遷移とが行われたものとする。
【０２４２】
そして、同図の（４）から（７）に示したように、時間ｔ３にいたるまでに、同様のスリープおよびウェイクアップが４０回行われたものとする。
【０２４３】
ここで、「動的本異常」状態が継続しており、かつ、所定回数のスリープおよびウェイクアップを経てなお、ふたたび「動的異常」を検出しなければ、復帰処理部１６ｄは、所定の「動的本異常」解除条件が成立したものとみなす。
【０２４４】
したがって、かかる所定回数が４０回である場合、同図の（８）に示したように、時間ｔ４において、復帰処理部１６ｄは、ゲートウェイＥＣＵ１０の「動的本異常」状態を解除する。
【０２４５】
次に、本異常からの復帰における第１の静的異常復帰処理の詳細な処理手順について、図２９を用いて説明する。図２９は、本異常からの復帰における第１の静的異常復帰処理の処理手順を示すフローチャートである。
【０２４６】
図２９に示したように、ゲートウェイＥＣＵ１０の復帰処理部１６ｄは、ＧＷゲートマクロ５１が動的および静的とも本異常あるいは仮異常の状態にないか否かを判定する（ステップＳ１４０１）。
【０２４７】
ここで、本異常あるいは仮異常の状態にあると判定された場合（ステップＳ１４０１，Ｎｏ）、復帰処理部１６ｄは、静的モード移行処理を行ったうえで（ステップＳ１４０２）、異常フラグ復帰処理を行う（ステップＳ１４０３）。
【０２４８】
なお、ステップＳ１４０２の静的モード移行処理の内容については、図１６を用いて上述したため、ここでの記載を省略するする。また、ステップＳ１４０３の異常フラグ復帰処理の内容については、図３２を用いて後述する。
【０２４９】
つづいて、復帰処理部１６ｄは、ルーティングマップ５１ｂのＳＵＭチェックが正常であるか否かを判定する（ステップＳ１４０４）。そして、ルーティングマップ５１ｂのＳＵＭチェックが正常である場合（ステップＳ１４０４，Ｙｅｓ）、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常であるか否かを判定する（ステップＳ１４０５）。
【０２５０】
そして、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常である場合（ステップＳ１４０５，Ｙｅｓ）、復帰処理部１６ｄは、動的モード移行処理を行ったうえで（ステップＳ１４０６）、静的仮異常フラグおよび静的本異常フラグをオフにして静的異常状態を解除し（ステップＳ１４０７）、処理を終了する。なお、ステップＳ１４０６の動的モード移行処理の内容については、図１６を用いて上述したため、ここでの記載を省略する。
【０２５１】
なお、ステップＳ１４０４あるいはステップＳ１４０５の判定条件を満たさなかった場合（（ステップＳ１４０４，Ｎｏ）あるいは（ステップＳ１４０５，Ｎｏ））、復帰処理部１６ｄは、本異常からの復帰における本異常確認処理を行ったうえで（ステップＳ１４０８）、静的仮異常フラグをオンにして静的仮異常状態とし（ステップＳ１４０９）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ１４１０）。なお、ステップＳ１４０８の本異常からの復帰における本異常確認処理の内容については、図３３を用いて後述する。
【０２５２】
そして、復帰処理部１６ｄは、所定のマイコン５０のリセット実施条件が成立しているか否かを判定し（ステップＳ１４１１）、リセット実施条件が成立している場合には（ステップＳ１４１１，Ｙｅｓ）、ＷＤＣ停止によるマイコン５０のリセットを実施して（ステップＳ１４１２）、処理を終了する。また、ステップＳ１４１１の判定条件を満たさなかった場合には（ステップＳ１４１１，Ｎｏ）、１００ｍｓの待機を経たうえで（ステップＳ１４１３）、ステップＳ１４０１からの処理を再帰的に繰り返す。
【０２５３】
次に、本異常からの復帰における第２の静的異常復帰処理の詳細な処理手順について、図３０を用いて説明する。図３０は、本異常からの復帰における第２の静的異常復帰処理の処理手順を示すフローチャートである。
【０２５４】
図３０に示したように、復帰処理部１６ｄは、静的モード移行処理を行う（ステップＳ１５０１）。なお、ステップＳ１５０１の静的モード移行処理の内容については、図１６を用いて上述したため、ここでの記載を省略する。
【０２５５】
つづいて、復帰処理部１６ｄは、ルーティングマップ５１ｂのＳＵＭチェックが正常であるか否かを判定する（ステップＳ１５０２）。そして、ルーティングマップ５１ｂのＳＵＭチェックが正常である場合（ステップＳ１５０２，Ｙｅｓ）、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常であるか否かを判定する（ステップＳ１５０３）。
【０２５６】
そして、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常である場合（ステップＳ１５０３，Ｙｅｓ）、復帰処理部１６ｄは、動的モード移行処理を行ったうえで（ステップＳ１５０４）、静的仮異常フラグおよび静的本異常フラグをオフにして静的異常状態を解除し（ステップＳ１５０５）、処理を終了する。なお、ステップＳ１５０４の動的モード移行処理の内容については、図１６を用いて上述したため、ここでの記載を省略する。
【０２５７】
なお、ステップＳ１５０２あるいはステップＳ１５０３の判定条件を満たさなかった場合（（ステップＳ１５０２，Ｎｏ）あるいは（ステップＳ１５０３，Ｎｏ））、復帰処理部１６ｄは、静的仮異常フラグをオンにして静的仮異常状態としたうえで（ステップＳ１５０６）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ１５０７）。
【０２５８】
そして、復帰処理部１６ｄは、１００ｍｓの待機を経たうえで（ステップＳ１５０８）、図２９に示した本異常からの復帰における第１の静的異常復帰処理を行って（ステップＳ１５０９）、処理を終了する。
【０２５９】
次に、本異常からの復帰における動的異常復帰処理の詳細な処理手順について、図３１を用いて説明する。図３１は、本異常からの復帰における動的異常復帰処理の処理手順を示すフローチャートである。
【０２６０】
図３１に示したように、復帰処理部１６ｄは、動的仮異常フラグをオンにして動的仮異常状態としたうえで（ステップＳ１６０１）、本異常からの復帰における本異常確認処理を行う（ステップＳ１６０２）。なお、かかる本異常からの復帰における本異常確認処理の内容については、図３３を用いて後述する。そして、復帰処理部１６ｄは、静的モード移行処理を行う（ステップＳ１６０３）。かかる静的モード移行処理の内容については、図１６を用いて上述したため、ここでの記載を省略する。
【０２６１】
つづいて、復帰処理部１６ｄは、ルーティングマップ５１ｂのＳＵＭチェックが正常であるか否かを判定する（ステップＳ１６０４）。そして、ルーティングマップ５１ｂのＳＵＭチェックが正常である場合（ステップＳ１６０４，Ｙｅｓ）、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常であるか否かを判定する（ステップＳ１６０５）。
【０２６２】
そして、送信ＦＩＦＯ群５１ｃの固着エラーチェックが正常である場合（ステップＳ１６０５，Ｙｅｓ）、復帰処理部１６ｄは、動的モード移行処理を行ったうえで（ステップＳ１６０６）、処理を終了する。かかる動的モード移行処理の内容については、図１６を用いて上述したため、ここでの記載を省略する。
【０２６３】
なお、ステップＳ１６０４あるいはステップＳ１６０５の判定条件を満たさなかった場合（（ステップＳ１６０４，Ｎｏ）あるいは（ステップＳ１６０５，Ｎｏ））、復帰処理部１６ｄは、静的仮異常フラグをオンにして静的仮異常状態としたうえで（ステップＳ１６０７）、異常履歴１７ｂへ異常履歴の保存を行う（ステップＳ１６０８）。
【０２６４】
そして、復帰処理部１６ｄは、１００ｍｓの待機を経たうえで（ステップＳ１６０９）、図２９に示した本異常からの復帰における第１の静的異常復帰処理を行って（ステップＳ１６１０）、処理を終了する。
【０２６５】
次に、図２９のステップＳ１４０３に示した、異常フラグ復帰処理の詳細な処理手順について、図３２を用いて説明する。図３２は、異常フラグ復帰処理の処理手順を示すフローチャートである。
【０２６６】
図３２に示したように、復帰処理部１６ｄは、過去３回ウェイクアップする間に動的仮異常がなかったか否かを判定する（ステップＳ１７０１）。そして、過去３回ウェイクアップする間に動的仮異常がなかったと判定された場合（ステップＳ１７０１，Ｙｅｓ）、復帰処理部１６ｄは、動的仮異常フラグをオフにして動的仮異常状態を解除する（ステップＳ１７０２）。なお、ステップＳ１７０１の判定条件を満たさなかった場合（ステップＳ１７０１，Ｎｏ）、復帰処理部１６ｄは、本処理の呼び出し元へ制御を戻す。
【０２６７】
つづいて、復帰処理部１６ｄは、過去４０回ウェイクアップする間に動的仮異常がなかったか否かを判定する（ステップＳ１７０３）。そして、過去４０回ウェイクアップする間に動的仮異常がなかったと判定された場合（ステップＳ１７０３，Ｙｅｓ）、復帰処理部１６ｄは、動的本異常フラグをオフにして動的本異常状態を解除する（ステップＳ１７０４）。なお、ステップＳ１７０３の判定条件を満たさなかった場合（ステップＳ１７０３，Ｎｏ）、復帰処理部１６ｄは、本処理の呼び出し元へ制御を戻す。
【０２６８】
次に、図２９のステップＳ１４０８および図３１のステップＳ１６０２に示した、本異常からの復帰における本異常確認処理の詳細な処理手順について、図３３を用いて説明する。図３３は、本異常からの復帰における本異常確認処理の処理手順を示すフローチャートである。
【０２６９】
図３３に示したように、復帰処理部１６ｄは、静的本異常が確定したか否かを判定する（ステップＳ１８０１）。そして、静的本異常が確定したと判定された場合（ステップＳ１８０１，Ｙｅｓ）、復帰処理部１６ｄは、静的本異常フラグをオンにして静的本異常状態を確定する（ステップＳ１８０２）。
【０２７０】
一方、ステップＳ１８０１の判定条件を満たさなかった場合（ステップＳ１８０１，Ｎｏ）、復帰処理部１６ｄは、動的本異常が確定したか否かを判定する（ステップＳ１８０３）。そして、動的本異常が確定したと判定された場合（ステップＳ１８０３，Ｙｅｓ）、復帰処理部１６ｄは、動的本異常フラグをオンにして動的本異常状態を確定する（ステップＳ１８０４）。
【０２７１】
そして、復帰処理部１６ｄは、本異常過去フラグをオンにしたうえで（ステップＳ１８０５）、異常履歴１７ｂへ異常履歴の保存を行い（ステップＳ１８０６）、本処理の呼び出し元へ制御を移す。なお、ステップＳ１８０３の判定条件を満たさなかった場合には（ステップＳ１８０３，Ｎｏ）、復帰処理部１６ｄは、本処理の呼び出し元へ制御を戻す。
【０２７２】
上述してきたように、実施例４では、復帰処理部が、本異常状態において復帰処理を繰り返したうえで所定の条件を満たしたならば、かかる本異常状態の解除を行うようにゲートウェイ装置を構成した。したがって、本異常状態が一旦確定した場合であっても、所定の条件を満たすことによって正常状態へと遷移することができ、復帰処理によってかかる処理負荷を回避することができる。
【０２７３】
なお、上述した実施例３および実施例４を組み合わせることとしてもよい。すなわち、縮退的稼動における復帰処理を行いつつ、かかる復帰処理によって所定の条件を満たしたならば、本異常状態から復帰することとすればよい。
【産業上の利用可能性】
【０２７４】
以上のように、本発明に係るゲートウェイ装置は、異常を検出した場合に、早期に異常の原因や箇所を特定したうえで適切なフェールセーフ制御を行いたい場合に有用であり、特に、多様な用途で用いられる車載用電子制御装置間のネットワークを連携あるいは統合制御する車載用システムへの適用に適している。
【符号の説明】
【０２７５】
１０    ゲートウェイＥＣＵ
１０ａ  ゲートウェイＥＣＵ
１１    受信ＭｓｇＢｏｘ
１２    送信ＭｓｇＢｏｘ
１３    ＥＣＵスリープ部
１４    監視部
１５    マイコンリセット部
１６    制御部
１６ａ  ＧＷハードマクロ部
１６ｂ  ソフトウェア送信部
１６ｃ  異常振分部
１６ｄ  復帰処理部
１６ｄａ  静的異常復帰処理部
１６ｄａａ  第１の静的異常復帰処理部
１６ｄａｂ  第２の静的異常復帰処理部
１６ｄｂ  動的異常復帰処理部
１６ｅ  ダイアグ通信制御部
１６ｆ  ダイアグアプリ部
１７    記憶部
１７ａ  ルーティングマップ
１７ｂ  異常履歴
１７ｃ  ダイアグ通信ソフトウェア
１７ｄ  ダイアグアプリ
５０    マイコン
５１    ゲートウェイ（ＧＷ）ハードマクロ
５１ａ  検索エンジン
５１ｂ  ルーティングマップ
５１ｃ  送信ＦＩＦＯ群
５２    ＡＬＵ
５３    ＲＡＭ
５４    ＲＯＭ
５４ａ  ルーティングマップ
５５    割り込みコントローラ
【図１】
2012080272.tif 000003
【図２】
2012080272.tif 000004
【図３】
2012080272.tif 000005
【図４】
2012080272.tif 000006
【図５】
2012080272.tif 000007
【図６】
2012080272.tif 000008
【図７】
2012080272.tif 000009
【図８】
2012080272.tif 000010
【図９】
2012080272.tif 000011
【図１０】
2012080272.tif 000012
【図１１】
2012080272.tif 000013
【図１２】
2012080272.tif 000014
【図１３】
2012080272.tif 000015
【図１４】
2012080272.tif 000016
【図１５】
2012080272.tif 000017
【図１６】
2012080272.tif 000018
【図１７】
2012080272.tif 000019
【図１８】
2012080272.tif 000020
【図１９】
2012080272.tif 000021
【図２０】
2012080272.tif 000022
【図２１】
2012080272.tif 000023
【図２２】
2012080272.tif 000024
【図２３】
2012080272.tif 000025
【図２４】
2012080272.tif 000026
【図２５】
2012080272.tif 000027
【図２６】
2012080272.tif 000028
【図２７】
2012080272.tif 000029
【図２８】
2012080272.tif 000030
【図２９】
2012080272.tif 000031
【図３０】
2012080272.tif 000032
【図３１】
2012080272.tif 000033
【図３２】
2012080272.tif 000034
【図３３】
2012080272.tif 000035