(57)【要約】【課題】論理回路の状態に基づいてマイクロコンピュータの処理を決定することができる。【解決手段】論理回路と接続されるマイクロコンピュータは、論理回路の状態を監視する監視部と、 マイクロコンピュータが実施する複数の情報処理項目が格納される記憶部と、 論理回路の状態と、マイクロコンピュータに入力される通信フレームに基づいて複数の情報処理項目から選択された少なくとも１つの情報処理項目と、に基づく処理を実行する処理部と、を備える。【選択図】図２
2018106459.tif 000002
【特許請求の範囲】
【請求項１】
論理回路と接続されるマイクロコンピュータであって、
前記論理回路の状態を監視する監視部と、 
前記マイクロコンピュータが実施する複数の情報処理項目が格納される記憶部と、
前記論理回路の状態と、前記マイクロコンピュータに入力される通信フレームに基づいて前記複数の情報処理項目から選択された少なくとも１つの情報処理項目と、に基づく処理を実行する処理部と、を備えるマイクロコンピュータ。
【請求項２】
請求項１に記載のマイクロコンピュータにおいて、
前記論理回路はコンフィグされることで回路構成を構築可能であり、
前記監視部は前記論理回路がコンフィグ中の状態であるか否かを監視し、
前記論理回路が前記コンフィグ中の状態でない場合、前記処理部は前記選択された情報処理項目を実行し、
前記論理回路が前記コンフィグ中の状態である場合、前記処理部は前記選択された情報処理項目とは異なる処理を実行するマイクロコンピュータ。
【請求項３】
請求項２に記載のマイクロコンピュータにおいて、
前記監視部は前記論理回路がコンフィグ完了の状態であるか否かを監視し、
前記処理部は、前記論理回路が前記コンフィグ完了の状態である場合、前記選択された情報処理項目の少なくとも一部を前記論理回路に処理させるマイクロコンピュータ。
【請求項４】
請求項２に記載のマイクロコンピュータにおいて、
前記監視部は前記論理回路がコンフィグ完了の状態であるか否かを監視し、
前記処理部は、前記論理回路が前記コンフィグ中の状態である場合は前記通信フレームの少なくとも一部を保存し、前記論理回路が前記コンフィグ中の状態から前記コンフィグ完了の状態になった場合は保存した前記通信フレームの少なくとも一部を前記論理回路に送信するマイクロコンピュータ。
【請求項５】
請求項１に記載のマイクロコンピュータにおいて、
前記監視部は前記論理回路が故障しているか否かを監視し、
前記論理回路が故障していない場合、前記処理部は前記選択された情報処理項目を実行し、
前記論理回路が故障している場合、前記処理部は前記選択された情報処理項目とは異なる処理を実行するマイクロコンピュータ。
【請求項６】
請求項５に記載のマイクロコンピュータにおいて、
前記監視部は前記論理回路の故障の程度を監視し、
前記処理部は、前記論理回路が故障している場合、その故障の程度に応じて実行する処理を変更するマイクロコンピュータ。
【請求項７】
請求項６に記載のマイクロコンピュータにおいて、
前記記憶部には、前記複数の情報処理項目のそれぞれに対する処理の条件となる閾値を表す優先度テーブルがさらに記憶され、
前記処理部は、前記論理回路が部分的に故障している場合、前記選択された情報処理項目に対する前記閾値を前記優先度テーブルに基づいて取得し、取得した前記閾値、および前記論理回路の負荷の余力に基づき前記選択された情報処理項目を実行するか否かを決定するマイクロコンピュータ。
【請求項８】
請求項２に記載のマイクロコンピュータにおいて、
前記マイクロコンピュータおよび前記論理回路は、ＣＡＮとイーサネットとを接続する１つのゲートウェイ装置に含まれ、
前記マイクロコンピュータは前記ＣＡＮに接続され、前記論理回路は前記イーサネットに接続されるマイクロコンピュータ。
【請求項９】
請求項１から請求項８までのいずれか一項に記載のマイクロコンピュータと接続される論理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ、および論理回路に関する。
【背景技術】
【０００２】
マイクロコンピュータと論理回路を組み合わせる構成が知られている。マイクロコンピュータと論理回路は電源投入から初期化の完了までに要する時間が異なるため、たとえば特許文献１のような対策が行われている。
特許文献１には、電源が投入されて起動した後に回路データを書き込むコンフィグレーションを行い、前記コンフィグレーション終了後に前記回路データに応じた回路機能を果たす機能部と、前記機能部と略同時に起動し、起動した後に初期プログラムを読み込む初期化を行い、前記初期化終了後に前記機能部との通信を開始する第１のマイクロコンピュータと、前記第１のマイクロコンピュータの起動後に前記第１のマイクロコンピュータをリセットし、前記機能部にて前記コンフィグレーションが終了した後に、前記リセットを解除して前記第１のマイクロコンピュータに初期化を開始させるコンフィグレーション監視部とを有する電子機器が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１９１７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている発明では、論理回路の状態に基づきマイクロコンピュータの動作を決定することができない。
【課題を解決するための手段】
【０００５】
本発明の第１の態様によるマイクロコンピュータは、論理回路と接続されるマイクロコンピュータであって、前記論理回路の状態を監視する監視部と、 前記マイクロコンピュータが実施する複数の情報処理項目が格納される記憶部と、 前記論理回路の状態と、前記マイクロコンピュータに入力される通信フレームに基づいて前記複数の情報処理項目から選択された少なくとも１つの情報処理項目と、に基づく処理を実行する処理部と、を備える。
本発明の第２の態様による論理回路は、上記マイクロコンピュータと接続される。
【発明の効果】
【０００６】
本発明によれば、論理回路の状態に基づいてマイクロコンピュータの処理を決定することができる。
【図面の簡単な説明】
【０００７】
【図１】車載システムの概要を示す図
【図２】第１の実施の形態における車載ゲートウェイ装置の構成図
【図３】フローテーブルの一例を示す図
【図４】ＦＤＢの一例を示す図
【図５】変換ＤＢの一例を示す図
【図６】第１の実施の形態におけるマイクロコンピュータの動作を示すフローチャート
【図７】図６のステップＳ６０６において否定判定された場合の処理を示すフローチャート
【図８】図６のステップＳ６１３の詳細を示すフローチャート
【図９】第２の実施の形態における車載ゲートウェイ装置の構成図
【図１０】優先度ＤＢの一例を示す図
【図１１】第２の実施の形態におけるマイクロコンピュータの動作を示すフローチャート
【発明を実施するための形態】
【０００８】
―第１の実施の形態―
以下、図１〜図８を参照して、車載システムの第１の実施の形態を説明する。
図１は、車載システム１の概要を示す図である。車載システム１は、車載ゲートウェイ装置１００、エンジン制御部１０１、ブレーキ制御部１０２、パワーステアリング制御部１０３、自律走行制御部１０４、カメラ１１１、レーダ１１２、および自車位置センサ１１３を備える。エンジン制御部１０１、ブレーキ制御部１０２、パワーステアリング制御部１０３、自律走行制御部１０４は、ＣＡＮ（Controller Area Network）によって車載ゲートウェイ装置１００に接続される。カメラ１１１、レーダ１１２、自車位置センサ１１３は、ＩＥＥＥ８０２．３、すなわちイーサネット（登録商標）によって、車載ゲートウェイ装置１００に接続される。
【０００９】
エンジン制御部１０１は、車両の駆動力を発生するエンジンを制御する制御装置である。ブレーキ制御部１０２は、車両のブレーキ制御（制動力制御）を行う制御装置である。パワーステアリング制御部１０３は、車両のパワーステアリングを制御する制御装置である。カメラ１１１、レーダ１１２、自車位置センサ１１３は、車両の外界状況を認識するための外界認識センサである。
【００１０】
車載ゲートウェイ装置１００は、複数チャネルのＣＡＮ、複数ポートのイーサネットを収容し、異なるチャネル間のＣＡＮ通信中継、異なるポート間のイーサネット通信中継に加え、ＣＡＮからイーサネットへの通信中継、イーサネットからＣＡＮへの通信中継を行う。ＣＡＮからイーサネットへの通信中継時には、ＣＡＮフレームをイーサネットフレームでカプセル化して中継する。イーサネットからＣＡＮへの通信中継時には、イーサネットフレームでカプセル化されたＣＡＮフレームをデカプセル化によって取り出して中継する。たとえば、カメラ１１１、レーダ１１２、自車位置センサ１１３からのセンサ情報は、車載ゲートウェイ装置１００によって、自律走行制御部１０４に中継される。また、パワーステアリング制御部１０３からのステアリング情報は、車載ゲートウェイ装置１００によって、自車位置センサ１１３に中継される。
【００１１】
図２は、車載ゲートウェイ装置１００の構成図である。車載ゲートウェイ装置１００は、マイクロコンピュータ（以下、「マイコン」と呼ぶ）２０１、第１ＣＡＮＩＦ２０２Ａ、第２ＣＡＮ ＩＦ２０２Ｂ、ＦＰＧＡ（Field-Programmable Gate Array）２５０、第１イーサネットＩＦ２５１Ａ、および第２イーサネットＩＦ２５１Ｂを備える。マイコン２０１は、第１ＣＡＮＩＦ２０２Ａおよび第２ＣＡＮ ＩＦ２０２Ｂに接続される。ＦＰＧＡ２５０は第１イーサネットＩＦ２５１Ａおよび第２イーサネットＩＦ２５１Ｂに接続される。本実施の形態では、マイコン２０１とＦＰＧＡ２５０は独立した部材であり、それぞれが異なるパッケージに収められ、それぞれが独立して流通可能である。マイコン２０１とＦＰＧＡ２５０は、車載ゲートウェイ装置１００として機能するために、配線、ピンとソケット、またはケーブルなどにより物理的に接続される。
【００１２】
マイコン２０１は、ＣＰＵ、ＲＯＭ、およびＲＡＭを備える。このＲＡＭには、受信した通信フレームを一時的に保存する待機用の保存領域が確保される。マイコン２０１のＣＰＵは、電源電圧が印加されるとＲＯＭに格納されたプログラムをＲＡＭに展開して実行する。以下では、マイコン２０１のＣＰＵがＲＯＭに格納されたプログラムをＲＡＭに展開して実行することを「マイコン２０１の初期化」と呼ぶ。すなわちマイコン２０１は初期化が完了するとプログラムにより実現される機能を発揮できる。マイコン２０１は不揮発性メモリも備え、後述するようにログをこの不揮発性メモリに記録する。
【００１３】
ＦＰＧＡ２５０は、揮発性のＳＲＡＭを備えるプログラム可能な論理回路である。ＦＰＧＡ２５０は、電力が供給されるとＳＲＡＭにプログラムファイルを読み込み、論理回路を構成する。以下では、ＦＰＧＡ２５０がプログラムファイルを読み込み、論理回路を構成することを「ＦＰＧＡ２５０のコンフィグレーション」、または「ＦＰＧＡ２５０の初期化」と呼ぶ。また以下では「コンフィグレーション」を「コンフィグ」と呼ぶこともある。ＦＰＧＡ２５０はコンフィグレーションが完了するまでは後述する機能を発揮できない。
【００１４】
ＦＰＧＡ２５０のコンフィグレーションに要する時間は、マイコン２０１の初期化に要する時間よりも長い。車載ゲートウェイ装置１００に電源電圧が印加されると、マイコン２０１とＦＰＧＡ２５０の両方に略同時に電源電圧が印加されるので、マイコン２０１の初期化が完了した後にＦＰＧＡ２５０のコンフィグレーションが完了する。そのためＦＰＧＡ２５０よりもマイコン２０１の方が先に動作を開始する。
【００１５】
マイコン２０１とＦＰＧＡ２５０間は、監視バス２１０とデータバス２１１によって接続される。監視バス２１０およびデータバス２１１は、たとえば配線や接点である。なお、ＣＡＮＩＦ、イーサネットＩＦの数は２に限定されず、少なくともそれぞれ１あればよい。また、通信規格は、ＦｌｅｘＲａｙ（登録商標）、ＬＩＮ（登録商標）等、別の規格でも良い。さらにそれぞれのネットワークに接続される機器は何ら限定されず、各ネットワークに少なくとも１つの機器が接続されればよい。ＣＡＮとイーサネット間の通信は、データバス２１１を経由して、マイコン２０１とＦＰＧＡ２５０間で中継され、宛先のネットワークインタフェースから送信される。
【００１６】
マイコン２０１はその機能として、監視プロセス２０３および通信プロセス２０４を備え、通信プロセス２０４にはフローテーブル２０５が備えられる。監視プロセス２０３は、ＦＰＧＡ２５０の状態、すなわちコンフィグレーション状態や故障状態などを監視バス２１０を通して監視し、どのような状態にあるか判断する。監視プロセス２０３は、たとえば監視バス２１０を介してＦＰＧＡ２５０に備えられるコンフィグレーション完了を示すピンの状態を監視し、そのピンの電圧レベルが所定の閾値を超えると、コンフィグレーションが完了したと判断する。
【００１７】
通信プロセス２０４は、第１ＣＡＮ ＩＦ２０２Ａおよび第２ＣＡＮ ＩＦ２０２Ｂからマイコン２０１に入力された通信フレームをフローテーブル２０５に基づき処理する。このフローテーブル２０５の構成は後述する。また通信プロセス２０４は、ＦＰＧＡ２５０から出力されたＣＡＮフレームを第１ＣＡＮＩＦ２０２Ａおよび第２ＣＡＮ ＩＦ２０２Ｂへ転送する。通信プロセス２０４が実行する処理には、特定のパターンを有するフレームを破棄するフィルタリング処理や、暗号化処理、復号化処理など負荷が大きい処理が含まれる。これら負荷が大きい処理の一部は、後述するようにＦＰＧＡ２５０において実行される場合がある。本実施の形態では、マイコン２０１が本来実行する処理をＦＰＧＡ２５０に実行させることを「オフロード」と呼ぶ。
【００１８】
ＦＰＧＡ２５０は通信回路２５２を備え、通信回路２５２には、フォワーディングデータベース（Forwarding Database、以下、「ＦＤＢ」と呼ぶ）２５３、および変換ＤＢ２５４が備えられる。ＦＤＢ２５３および変換ＤＢ２５４の構成は後述する。通信回路２５２は、イーサネットのスイッチ処理やＣＡＮとイーサネットとの中継であるＣＡＮ−イーサネット変換処理、さらに通信プロセス２０４の一部の処理を実行するオフロードを実行する。第１イーサネットＩＦ２５１Ａおよび第２イーサネットＩＦ２５１ＢからＦＰＧＡ２５０に入力される通信フレームは、通信回路２５２によってＦＤＢ２５３に基づき処理される。
【００１９】
通信回路２５２は、ＣＡＮフレームをイーサネットフレームでカプセル化するＣＡＮ−イーサネット変換処理時には、変換ＤＢ２５４を参照してイーサネットフレームのヘッダを生成する。すなわちＣＡＮフレームのＣＡＮＩＤに基づきＭＡＣアドレスを特定し、その特定したＭＡＣアドレスが格納されたイーサネットフレームのヘッダを生成する。なお、ＣＡＮ−イーサネット変換処理は、マイコン２０１が実行しても良いが、ＦＰＧＡ２５０で実施した方が短時間で処理を行える。
【００２０】
ＦＰＧＡ２５０はさらに、ＦＰＧＡ２５０自身の障害を検知する不図示の障害検知回路を備える。障害検知回路は障害を検知すると監視バス２１０を介してマイコン２０１に障害の発生を伝達する。なおＦＰＧＡ２５０に発生する障害の原因は、放射線によって引き起こされるソフトエラー、電源低下による動作不良、ラッチアップによる破損等が挙げられる。
【００２１】
（フローテーブル）
図３は、フローテーブル２０５の一例を示す図である。フローテーブル２０５は、３つのフィールドを有する複数のレコードから構成される。フローテーブル２０５が有するフィールドは、ＣＡＮＩＤ３０１、出力ポート３０２、および情報処理項目３０３である。ＣＡＮ ＩＤ３０１は、第１ＣＡＮ ＩＦ２０２Ａおよび第２ＣＡＮ ＩＦ２０２Ｂから入力されるＣＡＮフレームのヘッダ部に含まれるＣＡＮ ＩＤを示す。出力ポート３０２は、マイコン２０１から出力されるポートを示す。情報処理項目３０３は、通信プロセス２０４が実行する処理を示す。ただし「オフロード」と記載されている項目はＦＰＧＡ２５０に実行させる。
【００２２】
符号３１０が示す１つ目のレコードは、ＣＡＮＩＤが「１０」のＣＡＮフレームが入力されたら、ＦＰＧＡ２５０に復号化処理を実行させてから第２ＣＡＮＩＦ２０２Ｂに出力することを示す。符号３１１が示す２つ目のレコードは、ＣＡＮＩＤが「２０」のＣＡＮフレームが入力されたら、ＦＰＧＡ２５０に出力することを示す。符号３１２が示す３つ目のレコードは、ＣＡＮＩＤが「３０」のＣＡＮフレームが入力されたら、ＦＰＧＡ２５０に暗号化処理を実行させてから第１ＣＡＮＩＦ２０２Ａに出力することを示す。符号３１３が示す４つ目のレコードは、ＣＡＮＩＤが「４０」のＣＡＮフレームが入力されたら、通信プロセス２０４が自ら暗号化処理を実行して第１ＣＡＮＩＦ２０２Ａに出力することを示す。
【００２３】
（フォワーディングデータベース）
図４は、ＦＤＢ２５３の一例を示す図である。ＦＤＢ２５３は、３つのフィールドを有する複数のレコードから構成される。ＦＤＢ２５３が有するフィールドは、イーサネットフレームに含まれる宛先ＭＡＣアドレス４０１、ＦＰＧＡ２５０からの出力ポートを示す出力ポート４０２、通信フレームに対する処理内容が記載される処理内容４０３である。
【００２４】
符号４１０が示す１つ目のレコードは、宛先ＭＡＣアドレス４０１が「００：１１：１１：１１：１１：１１」のイーサネットフレームが入力されたら、通信回路２５２が第１イーサネットＩＦ２５１Ａに中継することを示す。符号４１１が示す２つ目のレコードは、宛先ＭＡＣアドレス４０１が「００：２２：２２：２２：２２：２２」のイーサネットフレームが入力されたら、通信回路２５２が第２イーサネットＩＦ２５１Ｂに中継することを示す。符号４１２が示す３つ目のレコードは、宛先ＭＡＣアドレス４０１が「００：３３：３３：３３：３３：３３」のイーサネットフレームが入力されたら、通信回路２５２がマイコン２０１に中継することを示す。符号４１３が示す４つ目のレコードは、宛先ＭＡＣアドレス４０１が「００：４４：４４：４４：４４：４４」のイーサネットフレームが入力されたら、通信回路２５２がフィルタリング処理を行ってからマイコン２０１に中継することを示す。
【００２５】
（変換ＤＢ）
図５は、変換ＤＢ２５４の一例を示す図である。変換ＤＢ２５４は、ＣＡＮＩＤ５０１と宛先ＭＡＣアドレス５０２の２つのフィールドを有する複数のレコードから構成される。この変換ＤＢ２５４は、ＣＡＮフレームをイーサネットフレームにカプセル化する際に参照される。
【００２６】
符号５１０が示す１つ目のレコードは、ＣＡＮＩＤが「１０」のＣＡＮフレームが入力されたら、宛先ＭＡＣアドレスが「００：２２：２２：２２：２２：２２」のイーサネットフレームにカプセル化することを示す。符号５１１が示す２つ目のレコードは、ＣＡＮＩＤが「３０」のＣＡＮフレームが入力されたら、宛先ＭＡＣアドレスが「００：４４：４４：４４：４４：４４」のイーサネットフレームに、それぞれカプセル化する。なお、カプセル化する際に必要となるその他の情報、すなわち送信元アドレスやＥｔｈｅｒＴｙｐｅ等は通信回路２５２の内部レジスタに外部から設定する方法等を取ればよい。  
【００２７】
（マイクロコンピュータの動作を示すフローチャート）
図６は、第１ＣＡＮ ＩＦ２０２Ａまたは第２ＣＡＮ ＩＦ２０２ＢがＣＡＮフレームを受信した際のマイコン２０１の処理を示すフローチャートである。以下に説明する各ステップの実行主体は、マイコン２０１を構成する不図示のＣＰＵである。
【００２８】
ステップＳ６０１では、第１ＣＡＮ ＩＦ２０２Ａまたは第２ＣＡＮ ＩＦ２０２Ｂから通信フレームを受信する。続くステップＳ６０２では、受信した通信フレームのＣＡＮＩＤを取得する。続くステップＳ６０３では、取得したＣＡＮ ＩＤをもとにフローテーブル２０５を検索し、出力ポートと情報処理項目、すなわち処理内容を特定する。
【００２９】
続くステップＳ６０４では、ステップＳ６０３において特定した出力ポートおよび情報処理項目が特定の条件を満たすか否かを判断する。すなわち、出力ポートがＦＰＧＡ２５０であるか、または情報処理項目にオフロードを含むかを判断する。少なくとも一方の条件を満たすと判断する場合はステップＳ６０５に進み、いずれの条件も満たさないと判断する場合はステップ６１２に進む。
【００３０】
ステップＳ６０５では、ＦＰＧＡ２５０の状態を監視プロセス２０３から取得する。続くステップＳ６０６では、ＦＰＧＡ２５０の状態がコンフィグ中であるか否かを判断する。コンフィグ中であると判断する場合はステップＳ６０７に進み、コンフィグ中ではないと判断する場合はステップＳ６５６に進む。なおステップＳ６５６以降の処理は、図７を用いて後に説明する。
【００３１】
ステップＳ６０７では、ＦＰＧＡ２５０がコンフィグ中でありＦＰＧＡ２５０は通信フレームを受信できないので、コンフィグ中に対応する処理、すなわち受信した通信フレームの待機用メモリへの保存を行う。続くステップＳ６０８では、ステップＳ６０５と同様にＦＰＧＡ２５０の状態を監視プロセス２０３から取得する。続くステップＳ６１０では、ステップＳ６０６と同様にＦＰＧＡ２５０の状態がコンフィグ中であるか否かを判断する。コンフィグ中であると判断する場合はステップＳ６０８に戻り、コンフィグ中ではないと判断する場合はステップＳ６１１に進む。
【００３２】
ステップＳ６１１では、コンフィグ完了に対応する処理、すなわちステップＳ６０３において特定された情報処理項目が中継処理であるか否かの判断を行う。情報処理項目が中継処理であると判断する場合はステップＳ６１２に進み、情報処理項目が中継処理ではないと判断する場合はステップＳ６１３に進む。ステップＳ６１２では、出力ポートから通信フレームを送信して図６のフローチャートを終了する。ステップＳ６１３では、ＦＰＧＡ２５０に処理をオフロードする。換言すると、ＦＰＧＡ２５０にマイコン２０１の代わりに暗号化、復号化、およびフィルタリングの処理を実行させる。そしてＦＰＧＡ２５０がこれらの処理を完了すると、ステップＳ６１２に進み出力ポートから通信フレームを送信する。ステップＳ６１３の詳細は後に図８を参照して説明する。
【００３３】
図７は、図６のステップＳ６０６において否定判定された場合の処理を示すサブルーチンである。
ステップＳ６５６では、ステップＳ６０５における状態の取得によりＦＰＧＡ２５０の故障が検出されたか否かを判断する。故障が検出されたと判断する場合はステップＳ６５７に進み、故障が検出されないと判断する場合はステップＳ６６１に進む。ステップＳ６５７では、ステップＳ６０７と同様に通信フレームを待機用のメモリに保存する。続くステップＳ６５８では、ＦＰＧＡ２５０の復旧を試行する。続くステップＳ６５９では、ＦＰＧＡ２５０の状態を再度取得し、ステップＳ６６０に進む。
【００３４】
ステップＳ６６０では、ステップＳ６５９における状態の取得によりＦＰＧＡ２５０の故障が検出されたか否かを判断する。故障が検出されたと判断する場合はステップＳ６６０に進み、故障が検出されないと判断する場合はステップＳ６６１に進む。
ステップＳ６５６、またはステップＳ６６０において否定判定されると実行されるステップＳ６６１では、ステップＳ６０３において特定された情報処理項目が中継処理であるか否かを判断する。情報処理項目が中継処理であると判断する場合はステップＳ６１２に進み、情報処理項目が中継処理ではないと判断する場合はステップＳ６１３に進む。ステップＳ６１２では、図６と同様に出力ポートから通信フレームを送信して、図７のフローチャートを終了する。ステップＳ６１３では、図６と同様にＦＰＧＡ２５０に処理をオフロードし、ＦＰＧＡ２５０がこれらの処理を完了すると、ステップＳ６１２に進み出力ポートから通信フレームを送信する。
【００３５】
ステップＳ６６０において肯定判定されると実行されるステップＳ６６４では、ＦＰＧＡ２５０の故障情報をログに保存して図７に示すフローチャートを終了する。ただし本ステップではさらに、車載ゲートウェイ装置１００に接続されている外部の装置に故障を通知してもよい。故障を速やかに通知することで外部の装置が適切な対応をとることができ、安全性を向上させることができる。
【００３６】
図８は、マイコン２０１がＦＰＧＡ２５０に処理をオフロードする、図６および図７のステップＳ６１３の詳細を示すサブルーチンを説明するフローチャートである。
ステップＳ８０１では、ループカウンタｉを１に初期化してステップＳ８０２に進む。このループカウンタは、後述するようにステップＳ８０２以下の処理を最大でＮ回繰り返し実行するために用いられる。ステップＳ８０２では、マイコン２０１がオフロード対象の通信フレームをＦＰＧＡ２５０に送信し、ステップＳ８０４に進む。ステップＳ８０４ではＦＰＧＡ２５０からオフロード結果を受信してステップＳ８０６に進む。ただしステップＳ８０４ではＦＰＧＡ２５０からオフロード結果を受信するまで待機する。
【００３７】
ステップＳ８０６では、ステップＳ８０４において受信したオフロード結果に基づきオフロード処理が正常終了したか否かを判断する。正常に終了したと判断する場合は図８のフローチャートを終了し、正常に終了しなかったと判断する場合はステップＳ８０７に進む。ステップＳ８０７では、ＦＰＧＡ２５０の復旧を試行する。続くステップＳ８０８では、ＦＰＧＡ２５０の状態を再度取得してステップＳ８０９に進む。
【００３８】
ステップＳ８０９では、ステップＳ８０８において取得したＦＰＧＡ２５０の状態に基づき、ＦＰＧＡ２５０の故障を検出しているかを判断する。ＦＰＧＡ２５０の故障を検出したと判断する場合はステップＳ８１２に進み、ＦＰＧＡ２５０の故障を検出しなかったと判断する場合はステップＳ８１０に進む。ステップＳ８１０では、ループカウンタｉの値が既定の繰り返し回数であるＮ以上であるか否かを判断する。ｉがＮ以上であると判断する場合は図８のフローチャートを終了し、ｉがＮ未満であると判断する場合はステップＳ８１１に進む。ステップＳ８１１では、ｉをインクリメント、すなわちｉの値を「１」増加させてステップＳ８０２に戻る。
ステップＳ８０９において肯定判定されると実行されるステップＳ８１２では、ＦＰＧＡ２５０の故障情報をログに保存して図８に示すフローチャートを終了する。
【００３９】
上述した第１の実施の形態によれば、次の作用効果が得られる。
（１）マイコン２０１は、プログラム可能な論理回路であるＦＰＧＡ２５０と接続される。マイコン２０１はＦＰＧＡ２５０の状態を監視する監視部、すなわち監視プロセス２０３および通信プロセス２０４と、マイコン２０１が実施する複数の情報処理項目３０３が格納される記憶部、すなわちフローテーブル２０５と、ＦＰＧＡ２５０の状態と、ＦＰＧＡ２５０に入力される通信フレームに基づいて複数の情報処理項目３０３から選択された少なくとも１つの情報処理項目と、に基づく処理を実行する処理部、すなわち通信プロセス２０４と、を備える。
そのためマイコン２０１は、通信フレームに含まれる識別子、すなわちＣＡＮＩＤだけでなくＦＰＧＡ２５０の状態に基づいて、その通信フレームの処理を選択して実行することができる。すなわち、論理回路であるＦＰＧＡ２５０の状態に基づいてマイコン２０１の処理を決定することができる。
【００４０】
（２）ＦＰＧＡ２５０はコンフィグされることで回路構成を構築可能であり、監視プロセス２０３はＦＰＧＡ２５０がコンフィグ中の状態であるか否かを監視する。ＦＰＧＡ２５０がコンフィグ中の状態でない場合（図６のＳ６０６：ＮＯ）、通信プロセス２０４は選択された情報処理項目を実行する。ＦＰＧＡ２５０がコンフィグ中の状態である場合（図６のＳ６０６：ＹＥＳ）、通信プロセス２０４は選択された情報処理項目とは異なる処理を実行する。選択された情報処理項目とは異なる処理とはコンフィグ中に対応する処理であり、すなわちＦＰＧＡ２５０に送信する情報を待機用メモリに保存する処理（図６のＳ６０７）である。
そのため、ＦＰＧＡ２５０がコンフィグレーションを完了する前にマイコン２０１が動作を開始しても、マイコン２０１はコンフィグ中に対応する処理を実行することによりＦＰＧＡ２５０へ送信する情報を適切に処理できる。したがって、マイコン２０１の初期化開始をＦＰＧＡ２５０のコンフィグレーション終了まで待つ必要がなく、マイコン２０１の動作を早期に開始できる。
【００４１】
（３）監視プロセス２０３はＦＰＧＡ２５０がコンフィグ完了の状態であるか否かを監視する。通信プロセス２０４は、ＦＰＧＡ２５０がコンフィグ完了の状態である場合、選択された情報処理項目の少なくとも一部をＦＰＧＡ２５０に処理させる。すなわち選択された情報処理項目３０３が「中継」の場合はイーサネットへの中継処理をＦＰＧＡ２５０に処理させ、情報処理項目３０３にオフロードする処理が含まれる場合はＦＰＧＡ２５０にオフロード処理を実行させる。
そのため、ＦＰＧＡ２５０のコンフィグが完了すると、選択された処理項目に応じてＦＰＧＡ２５０に処理を実行させることができる。
【００４２】
（４）監視プロセス２０３はＦＰＧＡ２５０がコンフィグ完了の状態であるか否かを監視する。通信プロセス２０４は、ＦＰＧＡ２５０がコンフィグ中の状態である場合は通信フレームの少なくとも一部を保存する（図６のＳ６０７）。ＦＰＧＡ２５０がコンフィグ中の状態からコンフィグ完了の状態になった場合は保存した通信フレームの少なくとも一部をＦＰＧＡ２５０に送信する（図６のＳ６１２、Ｓ６１３）。
そのため、ＦＰＧＡ２５０のコンフィグ中にＦＰＧＡ２５０に送信するはずであった情報を、ＦＰＧＡ２５０のコンフィグ完了後にＦＰＧＡ２５０に送信してＦＰＧＡ２５０に処理させることができる。
【００４３】
（５）監視プロセス２０３はＦＰＧＡ２５０が故障しているか否かを監視する。ＦＰＧＡ２５０が故障していない場合、通信プロセス２０４は選択された情報処理項目を実行し、
ＦＰＧＡ２５０が故障している場合、通信プロセス２０４は選択された情報処理項目とは異なる処理を実行する。選択された情報処理項目とは異なる処理とは、故障に対応する処理であり、すなわち通信フレームを待機用メモリに保存し（図７のＳ６５７）、ＦＰＧＡ２５０を復旧する（図７のＳ６５８）処理である。
そのため、ＦＰＧＡ２５０が故障している場合にＣＡＮネットワークから受信した通信フレームを一時保存し、ＦＰＧＡ２５０の復旧後にＦＰＧＡ２５０に送信することで、通信フレームロスによる再送を削減して、通信処理に必要となる時間を短縮することができる。
【００４４】
（６）マイコン２０１およびＦＰＧＡ２５０はＣＡＮとイーサネット、すなわちＩＥＥＥ８０２．３ネットワークとを接続する１つの車載ゲートウェイ装置１００に含まれる。マイコン２０１はＣＡＮネットワークに接続され、ＦＰＧＡ２５０はＩＥＥＥ８０２．３ネットワークに接続される。
リアルタイム性が求められるＣＡＮネットワークでは、ＩＥＥＥ８０２．３ネットワークよりも許容される応答の遅延時間は短い。そこで、ＦＰＧＡ２５０よりも初期化が早く完了するマイコン２０１をＣＡＮネットワークに接続することで、通信処理を要求時間内に実施可能となる。たとえば、ＦＰＧＡ２５０がコンフィグ中であっても、一方のＣＡＮＩＦから他方のＣＡＮ ＩＦ宛ての通信処理が可能になり、ＦＰＧＡ２５０のコンフィグ完了を待つことなく、より早期に通信処理を完了できる。
【００４５】
（７）ＦＰＧＡ２５０は、マイコン２０１と接続される。
ＦＰＧＡ２５０はコンフィグレーションが完了するまでは通信フレームを受信できないので、コンフィグレーションの完了前に通信フレームを送信されると消失させてしまう。しかし、マイコン２０１はＦＰＧＡ２５０の状態を監視し、ＦＰＧＡ２５０がコンフィグ中であればコンフィグ中に対応する処理を実行するため、コンフィグ中にＣＡＮネットワークから受信した通信フレームを取りこぼすことがない。
【００４６】
（変形例１）
車載ゲートウェイ装置１００は、プログラム可能な論理回路であるＦＰＧＡ２５０に代えて、回路構成が固定された論理回路であるＡＳＩＣを用いてもよい。車載ゲートウェイ装置１００にＦＰＧＡ２５０に代えてＡＳＩＣが用いられる場合は、コンフィグレーションが不要なので図６のステップＳ６０６は常に否定判断される。ただしステップＳ６０５の次に図７のステップＳ６５６に進んでもよい。
この変形例１によれば、予め格納されたプログラムを読み込んで実行するマイクロプロセッサと、回路構成が固定されたＡＳＩＣの組み合わせにおいて、受信した通信フレームをマイクロプロセッサがＡＳＩＣの故障の状態に応じて選択することができる。
【００４７】
（変形例２）
第１の実施の形態では、マイコン２０１とＦＰＧＡ２５０は独立した部材であり、配線により接続されていた。しかし、マイコン２０１とＦＰＧＡ２５０が製造工程で統合されて１つのパッケージに収められてもよい。この場合は、マイコン２０１とＦＰＧＡ２５０とが異なるシリコンダイに形成されてもよいし、同一のシリコンダイ上に一体として形成されてもよい。マイコン２０１とＦＰＧＡ２５０とが異なるシリコンダイに形成される場合は、第１の実施の形態と同様に監視バス２１０とデータバス２１１は配線や接点である。マイコン２０１とＦＰＧＡ２５０とが同一のシリコンダイ上に形成される場合は、監視バス２１０およびデータバス２１１は明確な物理的構成を有しない。また、この場合はマイコン２０１とＦＰＧＡ２５０とが常に接続された状態となる。
【００４８】
（変形例３）
第１の実施の形態では、ＦＰＧＡ２５０がコンフィグ中であるか否か、およびＦＰＧＡ２５０が故障しているか否か、の両方を判断した。しかし、いずれか一方のみを判断してもよい。すなわち、前者のみを判断する場合は図６においてステップＳ６０６が否定判断されるとステップＳ６６１に進む。そして後者のみを判断する場合は図６においてステップＳ６０５の次に図７のステップＳ６５６を実行する。
【００４９】
（変形例４）
監視プロセス２０３は、ＦＰＧＡ２５０のコンフィギュレーションが完了したか否かの判断を以下のように行ってもよい。すなわち監視プロセス２０３は、ＦＰＧＡ２５０からコンフィギュレーション完了を示す信号が出力された後、ＦＰＧＡ２５０のリセット信号が正常に解除された場合に、コンフィグレーションが完了したと判断してもよい。具体的には、図６のステップＳ６０６において、コンフィギュレーション完了を示す信号が出力されただけではコンフィグ完了と判断せず、さらにリセット信号が正常に解除された際にステップＳ６０６で否定判断をしてもよい。このリセット信号はＦＰＧＡ２５０からマイコン２０１に監視バス２１０を介して出力される信号であり、ＦＰＧＡ２５０の動作準備が完了した際に解除される。
【００５０】
（変形例５）
第１の実施の形態では、マイコン２０１は、オフロード処理のために処理対象の通信フレーム全体をＦＰＧＡ２５０に送信したが、その通信フレームからオフロード処理に必要なデータのみを抽出してＦＰＧＡ２５０に送信してもよい。これと同様に、ＦＰＧＡ２５０はオフロード処理の結果を通信フレーム全体ではなく、通信フレームに含まれる情報のうち処理を行った情報のみをマイコン２０１に送信してもよい。
この変形例５によれば、通信フレーム全体をやり取りしないことにより、通信データ量を削減することができ、データ転送時間の削減や、ＦＰＧＡ２５０とマイコン２０１間の帯域負荷の緩和によるデータ転送の待ち時間を改善することができ、車載ゲートウェイ装置１００の通信処理時間を短縮できる。
【００５１】
（変形例６）
第１の実施の形態では、コンフィグ中に対応する処理は、通信フレームの待機用メモリへの保存であった。しかしコンフィグ中に対応する処理はこれに限定されない。たとえば、通信プロセス２０４に備えられるカウンタをカウントアップするとともに待機用メモリへ保存してもよい。この場合はカウンタの値はコンフィグ中に受信した通信フレーム数を示す値として利用される。またコンフィグ中に対応する処理は、前述のカウンタをカウントアップするとともに受信する通信フレームを廃棄することでもよい。さらにコンフィグ中に対応する処理は、受信した通信フレームを破棄するとともに所定時間の経過後に再送要求を送信することでもよい。
【００５２】
（変形例７）
第１の実施の形態では、コンフィグ完了に対応する処理は、通信フレームのオフロード処理または中継処理のために待機用メモリへ保存した通信フレームをＦＰＧＡ２５０に送信することであった。しかしコンフィグ完了に対応する処理はこれに限定されない。たとえばコンフィグ完了に対応する処理は、通信フレームの再送要求を送信することでもよい。また、コンフィグ中に対応する処理にカウンタをカウントアップすることが含まれる場合は、コンフィグ完了に対応する処理がそのカウント値を用いた処理であってもよい。
【００５３】
―第２の実施の形態―
図９〜図１１を参照して、車載システムの第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、ＦＰＧＡの故障の程度に応じて機能を縮退させる点で、第１の実施の形態と異なる。
【００５４】
図９は、第２の実施の形態における車載ゲートウェイ装置１００の構成図である。
マイコン２０１は、第１の実施の形態の構成に加えて、通信プロセス２０４が優先度ＤＢ２０６をさらに備える。優先度ＤＢ２０６は、通信の優先度に関する情報が格納されるデータベースであり、詳しくは後述する。また監視プロセス２０３は、ＦＰＧＡ２５０の故障の程度を判別する機能を備える。故障の程度は、少なくとも無故障、部分故障、全故障の３段階で判別できる。無故障とはＦＰＧＡ２５０の故障がない状態、部分故障とはＦＰＧＡ２５０の一部が何らか問題があり無故障よりも処理能力が劣る状態、全故障とはＦＰＧＡ２５０が全く処理できない状態である。
【００５５】
さらに通信プロセス２０４はＦＰＧＡ２５０の負荷の余力を余力負荷予測として算出する機能も備える。余力負荷予測の算出は、情報処理項目ごとに予め負荷を測定して、通信プロセス２０４に格納する方法や、通信フレームサイズ等から負荷を予測する方法などにより実現する。余力負荷予測はたとえば０〜１００の整数で表され、数値が大きいほど負荷を受け入れる余力があることを示す。この余力負荷予測の初期値、すなわちＦＰＧＡ２５０の初期化完了時はＦＰＧＡ２５０の故障がない場合は最大の「１００」と算出される。またマイコン２０１に備えられる不図示のＲＯＭに格納されるプログラムが第１の実施の形態と異なっており、後述するように動作が異なる。
【００５６】
ＦＰＧＡ２５０は、第１の実施の形態における通信回路２５２に代えて、第１通信回路２５２Ａおよび第２通信回路２５２Ｂを備える。第１通信回路２５２Ａおよび第２通信回路２５２Ｂの構成および機能は、第１の実施の形態における通信回路２５２と同様である。すなわち図９では省略しているが、第１通信回路２５２Ａおよび第２通信回路２５２Ｂのいずれも、ＦＤＢ２５３および変換ＤＢ２５４を備える。第１通信回路２５２Ａおよび第２通信回路２５２Ｂのそれぞれの処理能力は、通信回路２５２と同等でもよいし通信回路２５２よりも低くてもよい。第１通信回路２５２Ａおよび第２通信回路２５２Ｂは、通常は処理を分担して実行することによりＦＰＧＡ２５０としての機能を発揮する。
【００５７】
また、第１通信回路２５２Ａおよび第２通信回路２５２Ｂのいずれかが故障により動作できない場合は、単独でもＦＰＧＡ２５０としての機能を発揮することができる。たとえば通常はＦＰＧＡ２５０に入力される通信フレームを交互に処理し、入力された１つ目の通信フレームは第１通信回路２５２Ａが処理し、入力された２つ目の通信フレームは第２通信回路２５２Ｂが処理する。そしてたとえば第１通信回路２５２Ａが故障した場合には、第２通信回路２５２Ｂが入力される全ての通信フレームを処理する。ただし故障によりＦＰＧＡ２５０の処理能力は低下するため、後述するように機能を縮退させ、条件を満たす通信フレームのみを処理する。なお、上述した通常時における第１通信回路２５２Ａおよび第２通信回路２５２Ｂの機能分担は一例であり、どのように第１通信回路２５２Ａおよび第２通信回路２５２Ｂが機能を分担してもよい。
【００５８】
ＦＰＧＡ２５０に備えられる不図示の障害検知回路は、第１通信回路２５２Ａおよび第２通信回路２５２Ｂの動作状況を監視し、障害を検知すると監視バス２１０を介してマイコン２０１に障害の発生を伝達する。たとえば第１通信回路２５２Ａおよび第２通信回路２５２Ｂの両方の障害の発生が伝達されると監視プロセス２０３は全故障と判断し、第１通信回路２５２Ａおよび第２通信回路２５２Ｂのいずれか一方の障害の発生が伝達されると監視プロセス２０３は部分故障と判断し、いずれの障害の発生も伝達されないと監視プロセス２０３は無故障と判断する。
【００５９】
（優先度ＤＢ）
図１０は、優先度ＤＢ２０６の一例を示す図である。優先度ＤＢ２０６は２つのフィールドを有する複数のレコードから構成される。優先度ＤＢ２０６が有するフィールドは、ＣＡＮ ＩＤ１００１および優先度１００２である。ＣＡＮ ＩＤ１００１は、第１ＣＡＮ ＩＦ２０２Ａおよび第２ＣＡＮ ＩＦ２０２Ｂから入力されるＣＡＮフレームのヘッダ部に含まれるＣＡＮ ＩＤを示しており、図３のフローテーブル２０５におけるＣＡＮ ＩＤ３０１と対応している。優先度１００２は、ＣＡＮ ＩＤ１００１が示すＣＡＮ ＩＤで対応づけられるフローテーブル２０５の情報処理項目３０３について、数値が小さいほど処理の優先度が高いことを示す０〜１００の整数である。詳しくは後述するが、ＦＰＧＡ２５０の余力負荷予測が優先度より大きい場合のみ、フローテーブル２０５の情報処理項目３０３が実施される。すなわち、優先度ＤＢ２０６は、フローテーブル２０５の情報処理項目３０３のそれぞれに対する処理の条件となる閾値を表している。
【００６０】
（フローチャート）
図１１は、第２の実施の形態におけるマイクロコンピュータの動作を示すフローチャートである。図１１では、図６および図７と同一の処理を行うステップには同一のステップ番号を付して説明を省略する。なお前述のとおり車載ゲートウェイ装置１００の起動直後には、余力負荷予測は最大値、たとえば１００として算出されている。以下に説明する各ステップの実行主体は、マイコン２０１を構成する不図示のＣＰＵである。
【００６１】
図１１に示すフローチャートの開始後、ステップＳ６０１〜Ｓ６０５までは図６と同様なので説明を省略する。ステップＳ６０５に続いて実行されるステップＳ１１０６では、監視プロセス２０３が出力するＦＰＧＡ２５０の故障レベルを判断する。無故障、すなわち故障していないと判断する場合はステップＳ６６１に進み、部分故障していると判断する場合はステップＳ１１０７に進み、全故障していると判断する場合はステップＳ６５７に進む。
【００６２】
ステップＳ１１０７では、ステップＳ６０２において取得したＣＡＮ ＩＤに基づき優先度ＤＢ２０６を参照して優先度を取得する。たとえば優先度ＤＢ２０６が図１０に例示する値の場合は、ＣＡＮ ＩＤが「３０」の場合は優先度として「４０」を取得する。続くステップＳ１１０８では、ＦＰＧＡ２５０の故障の程度およびＦＰＧＡ２５０が実行している処理の内容に基づき余力負荷予測を算出してステップＳ１１０９に進む。ステップＳ１１０９では、ステップＳ１１０７において取得した優先度とステップＳ１１０８において算出した余力負荷予測との大小比較を行い、余力負荷予測の値が優先度の値以下であるか否かを判断する。余力負荷予測の値が優先度の値以下であると判断する場合はステップＳ６５７に進み、余力負荷予測の値が優先度の値より大きいと判断する場合はステップＳ６６１に進む。
【００６３】
ステップＳ１１０６において全故障と判断された場合、およびステップＳ１１０８において肯定判定された場合は、第１の実施の形態と同様にステップＳ６５７〜Ｓ６６０が実行される。なおステップＳ６５８における復旧は、ＦＰＧＡ２５０の全体を対象としてもよいが、故障が検出された部分のみを対象としてコンフィグレーションを行ってもよい。さらに、ＦＰＧＡ２５０を動作させながらコンフィグレーションを行う、いわゆる動的リコンフィグレーションを行ってもよい。ステップＳ６６０では、全故障または部分故障と判断されるとステップＳ６６４に進み、無故障と判断されるとステップＳ６６１に進む。ステップＳ６６１以降の処理は第１の実施の形態と同様のため説明を省略する。
【００６４】
上述した第２の実施の形態によれば、次の作用効果が得られる。
（１）監視プロセス２０３はＦＰＧＡ２５０の故障の程度を監視する。通信プロセス２０４は、ＦＰＧＡ２５０が故障している場合、その故障の程度に応じて実行する処理を変更する。監視プロセス２０３が判断するＦＰＧＡ２５０の故障の程度に応じた処理を実行する。たとえば通信プロセス２０４は、無故障と判断する場合は受信した通信フレームをＦＰＧＡ２５０へ送信し、部分故障と判断する場合は優先度と余力負荷予測との比較に基づく処理を行い、全故障と判断する場合は通信フレームを待機用メモリに保存してＦＰＧＡ２５０を復旧する。そのためマイコン２０１は、ＦＰＧＡ２５０故障の程度に応じた処理を実行できる。
【００６５】
（２）マイコン２０１には、複数の情報処理項目３０３のそれぞれに対する処理の条件となる閾値を表す優先度データベース２０６が記憶される。
通信プロセス２０４は、ＦＰＧＡ２５０が部分的に故障している場合、選択された情報処理項目３０３に対する閾値を優先度データベース２０６に基づいて取得し、取得した閾値、およびＦＰＧＡ２５０の負荷の余力に基づき選択された情報処理項目３０３を実行するか否かを決定する。
そのため、ＦＰＧＡ２５０の故障時に、受信した通信フレームのＣＡＮＩＤに応じてＦＰＧＡ２５０の負荷を考慮して処理を決定することができる。
【００６６】
（３）マイコン２０１には、通信フレームの識別子と処理の条件となる閾値、すなわち優先度とが関連付けられる優先度データベース２０６が記憶される。監視プロセス２０３はＦＰＧＡ２５０の故障の程度を判断する。通信プロセス２０４は、受信した通信フレームのＣＡＮＩＤおよびフローテーブル２０５に基づいて、受信した通信フレームの少なくとも一部をＦＰＧＡ２５０に送信する必要があると判断し（図１１のステップＳ６０４：ＹＥＳ）、かつ監視プロセス２０３が判断したＦＰＧＡ２５０の故障の程度が部分故障であると判断すると（図１１のステップＳ１１０６：部分故障）、以下の処理を行う。すなわち、受信した通信フレームの識別子および優先度データベース２０６に基づき優先度を取得し（ステップＳ１１０７）、この優先度と余力負荷予測に基づき、ＦＰＧＡ２５０へ通信フレームに関する処理を実行させるか否かを決定する（ステップＳ１１０８）。
そのため、ＦＰＧＡ２５０の故障時に、受信した通信フレームのＣＡＮ ＩＤ、故障の程度、及び優先度ＤＢ２０６に基づいて、フローテーブル２０５に格納されている情報処理項目を選択して実行することで、通信処理の制限を必要最低限に抑え、ひいては通信処理を要求時間内に実施可能となる。具体的には、例えば、ＦＰＧＡ２５０に故障である場合でも、部分故障であれば、高優先度の通信フレームの通信処理を継続することができる。
【００６７】
（第２の実施の形態の変形例１）
第２の実施の形態においても、マイコン２０１は第１の実施の形態と同様にＦＰＧＡ２５０がコンフィグ中か否かを判断し、ＦＰＧＡ２５０がコンフィグ中であると判断する場合はコンフィグ中に対応する処理を実行してもよい。具体的には、図１１においてステップＳ６０５の次に図６のステップＳ６０６以下の処理を実行し、ステップＳ６０６においてコンフィグ中ではないと判断された場合に図１１のステップＳ１１０６以下の処理を実行してもよい。
【００６８】
（第２の実施の形態の変形例２）
マイコン２０１は優先度ＤＢ２０６を備えず、ＦＰＧＡ２５０の故障の程度が部分故障であると判断する場合は、一部の通信フレームのみをＦＰＧＡ２５０に送信してもよい。たとえば、図１１のステップＳ１１０７〜ステップＳ１１０９に代えてランダムで処理の有無を決定し、処理を行うと判断した場合のみステップＳ６６１に進み、その他の場合はステップＳ６５７に進んでもよい。さらに、処理を行う確率はＦＰＧＡ２５０の故障の程度にあわせて増減させてもよく、その場合は故障の程度が軽いほど処理を行う確率が高くなるようにする。また、ＦＰＧＡ２５０に行わせる処理の内容や処理負荷の大きさに基づき、通信フレームをＦＰＧＡ２５０に送信するか否かを判断してもよい。
【００６９】
（第２の実施の形態の変形例３）
第２の実施の形態では、余力負荷予測はマイコン２０１からＦＰＧＡ２５０に送信した通信フレームおよびその処理内容に基づき算出された。しかし、ＦＰＧＡ２５０の故障の程度をさらに考慮してもよいし、ＦＰＧＡ２５０が現在の負荷を出力する機能を有する場合にはその出力を利用してもよい。
【００７０】
（第２の実施の形態の変形例４）
第２の実施の形態において、ＦＰＧＡ２５０の故障の程度による場合分けを行う代わりに、余力負荷予測と優先度の比較においてＦＰＧＡ２５０の故障の程度を反映させてもよい。たとえば、図１１のフローチャートにおいて、ステップＳ６０５の次にステップＳ１１０７に進む。そして、ＦＰＧＡ２５０の故障の程度が無故障であればステップＳ１１０８において否定判定されるように、ＦＰＧＡ２５０の故障の程度が全故障であればステップＳ１１０８において肯定判定されるように、余力負荷予測および優先度の少なくとも一方を調整したうえでステップＳ１１０８に進む。
たとえばＦＰＧＡ２５０の故障の程度が無故障であれば、ステップＳ１１０７の実行結果に関わらず優先度を余力負荷予測の最小値よりも小さな値、たとえば「−１」に設定するか、余力負荷予測を優先度の最大値よりも大きな値、たとえば「１０１」に設定する。
【００７１】
（第２の実施の形態の変形例５）
監視プロセス２０３は、ＦＰＧＡ２５０の故障の程度を第１通信回路２５２Ａおよび第２通信回路２５２Ｂのそれぞれが動作しているか否かだけで判断してもよい。この場合は、図１１のステップＳ１１０６において部分故障と判断されるのは、第１通信回路２５２Ａおよび第２通信回路２５２Ｂのいずれか片方だけが動作しているときである。このとき、余力負荷予測の最大値はあらかじめ定められた値、たとえば「５０」とする。
【００７２】
マイコン２０１のプログラムは不図示のＲＯＭに格納されるとしたが、プログラムはマイコン２０１に備えられる不図示の不揮発性メモリに格納されていてもよい。また、マイコン２０１が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとマイコン２０１が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やＦＰＧＡにより実現されてもよい。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００７３】
１００  …  車載ゲートウェイ装置
２０１  …  マイクロコンピュータ
２０３  …  監視プロセス
２０４  …  通信プロセス
２０６  …  優先度データベース
【図１】
2018106459.tif 000003
【図２】
2018106459.tif 000004
【図３】
2018106459.tif 000005
【図４】
2018106459.tif 000006
【図５】
2018106459.tif 000007
【図６】
2018106459.tif 000008
【図７】
2018106459.tif 000009
【図８】
2018106459.tif 000010
【図９】
2018106459.tif 000011
【図１０】
2018106459.tif 000012
【図１１】
2018106459.tif 000013