(57)【要約】【課題】特定のブロックのメモリセルに過大なストレスを与えることによるメモリの低寿命化を抑制することが可能な車両制御データ記憶装置を提供する。【解決手段】メモリコントローラは、受信データに基づく故障が検出されたＥＣＵを対象ＥＣＵ、対象ＥＣＵから受信した制御データを対象データ、対象ＥＣＵの種別に対応するブロック群を対象ブロック群、対象ブロック群のうち、故障の検出前後に受信した一連の対象データ（解析用のデータ）を含む複数のブロックを対象ブロックとし、通常のメモリ制御において対象ブロック内の制御データの消去を禁止する。このとき、対象ブロックの数に応じて、複数のブロック群のうち、対象ブロック群におけるブロックの割り当て数を、他の複数のブロック群におけるブロック４３の割り当て数を減らす分だけ増やすことにより、各ブロック群４４ａ，４４ｂ，４４ｃを構成するブロック４３の割り当て数を再設定する。【選択図】図８
2014154024.tif 000002
【特許請求の範囲】
【請求項１】
車両（１０）内に構築された車載ネットワーク（５）を介して、該車載ネットワークに接続された複数の電子制御ユニット（３１〜３９）から、該車両を制御するための制御データを受信するデータ受信手段（２９）と、
前記制御データを複数書き込むことが可能なブロック（４３）単位で前記制御データを消去する必要があるメモリであって、複数のブロックからなるブロック群（４４）を複数有し、各ブロック群を構成する複数のブロックの割り当て数が前記電子制御ユニットの種別毎に予め設定されたメモリ（２８）と、
前記データ受信手段を介して受信した制御データを、該制御データの送信元である電子制御ユニットの種別に応じた前記ブロック群におけるブロック内に順次書き込み、該書き込みの古い制御データをブロック単位で消去しつつ、該書き込みの新しい制御データを優先的に保持する通常のメモリ制御を行うメモリ制御手段（Ｓ１１０〜Ｓ１８０）と、
前記複数の電子制御ユニットのうち前記制御データに基づく故障が検出された電子制御ユニットを対象ユニット、該対象ユニットから前記データ受信手段を介して受信した制御データを対象データ、前記対象ユニットの種別に対応する前記ブロック群を対象ブロック群、該対象ブロック群のうち、前記故障の検出前後に受信した一連の対象データを含む複数のブロックを対象ブロックとし、前記通常のメモリ制御において該対象ブロック内の制御データの消去を禁止する故障検出時制御手段（Ｓ２１０〜Ｓ２６０）と、
を備え、
前記故障検出時制御手段は、前記対象ブロックの数に応じて、前記複数のブロック群のうち、前記対象ブロック群における前記ブロックの割り当て数を、他のブロック群における前記ブロックの割り当て数を減らす分だけ増やすことにより、前記各ブロック群を構成する複数のブロックの割り当て数を再設定することを特徴とする車両制御データ記憶装置。
【請求項２】
前記故障検出時制御手段は、前記故障の検出時に、前記他のブロック群のうち最も書き込みの古い制御データが格納されているブロックを、前記対象ブロック群に割り当てるブロックとすることを特徴とする請求項１に記載の車両制御データ記憶装置。
【請求項３】
前記メモリ制御手段は、各ブロック群において、前記ブロック内に複数の制御データを書き込むことで次のブロックを使用する際に、前のブロック内の制御データのうち該制御データの種別毎に最新のものを更新データとして、該更新データを前記次のブロックに書き込むデータ書換制御を行い、
前記故障検出時制御手段は、前記故障の検出時に、前記対象ブロック内の前記更新データについては前記データ書換制御を禁止することを特徴とする請求項１または請求項２に記載の車両制御データ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両を制御するための制御データを記憶する車両制御データ記憶装置に関する。
【背景技術】
【０００２】
従来、車載ネットワークに接続された複数の電子制御ユニット（ＥＣＵ）から、車載ネットワークを介して送られてくる制御データをメモリに蓄積し、車載ネットワークシステムが有する自己診断機能によって制御データに基づく故障を検出したときに、その故障の検出前後に対象となるＥＣＵから送られた一連の制御データを、解析用のデータとして記憶する車両制御データ記憶装置が知られている。
【０００３】
この種の車両制御データ記憶装置としては、例えば特許文献１に記載のように、制御データを複数のＥＣＵにおける夫々のメモリに蓄積させておくことで、車載ネットワークシステムにおいて複数のＥＣＵにメモリ領域を分散させ、上記故障を検出したときに、解析用のデータを対象となるＥＣＵから車載ネットワークを介して取得する構成が提案されている。
【０００４】
しかし、このような構成では、車両技術の向上に伴い、車両に搭載されるＥＣＵの数が増大している現状において、メモリの設置数の増加に繋がることから、その設置コストが大きくなるため、車両制御データ記憶装置のメモリに制御データを集中的に蓄積させる構成の方がコスト的に有利であると考えられる。
【０００５】
ここで、車両制御データ記憶装置では、一般的に、制御データを蓄積するメモリとして、制御データについて書き換え可能で電源を供給しなくても記憶を保持でき、且つ、磁気ヘッドや位置決め用のアクチュエータといったメカニックな機構をもたないことで衝撃や振動に強く、小型、軽量、高速起動、低消費電力などハードディスクドライブ（ＨＤＤ）よりも多くの長所をもつフラッシュメモリが用いられる。
【０００６】
但し、フラッシュメモリでは、データの消去回数の上限値が仕様上定められていることから、データの消去回数をなるべく減らすために、複数のメモリセルからなる「ブロック」という単位で、一括してデータを消去してからでないと新たなデータを書き込むことができないようになっている。
【０００７】
このため、通常、車両制御データ記憶装置では、制御データの送信元であるＥＣＵの種別毎に予め複数のブロックを割り当てておき、この割り当てられた複数のブロックからなる「ブロック群」という単位で、ＥＣＵの種別に応じたブロックの領域に制御データを順次書き込み、その書き込みの古い制御データをブロック単位で消去しつつ、書き込みの新しい制御データを優先的に保持するメモリ制御が行われている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−２８６２９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、このようなフラッシュメモリでは、データを順次書き込む際にブロック単位でデータを消去する必要があるため、あるブロックでデータの書き換え回数（つまり、データの消去回数）が集中的に増大すると、この消去動作がそのブロックのメモリセルに過大なストレスを与えてしまい、ひいてはメモリの低寿命化に繋がることになる。
【００１０】
しかしながら、従来の車両制御データ記憶装置では、ＥＣＵの種別に応じてブロック群を構成する複数のブロックが固定的に割り当てられているため、制御データに基づく故障を検出したときに、対象となるＥＣＵの種別に対応するブロック群において、解析用のデータに関する記憶を保持しようとすると、複数のブロックが通常のメモリ制御に使用できなくなる。これに伴い、比較的少ないブロックを使用して制御データを書き換えなければならなくなり、その結果、特定のブロックのメモリセルに過大なストレスを与えてしまうため、メモリの低寿命化を引き起こす可能性が高まるという懸念があった。
【００１１】
本発明は、上記懸念に鑑みてなされたものであり、特定のブロックのメモリセルに過大なストレスを与えることによるメモリの低寿命化を抑制することが可能な車両制御データ記憶装置の提供を目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するためになされた本発明は、車両内に構築された車載ネットワークを介して、その車載ネットワークに接続された複数の電子制御ユニットから、車両を制御するための制御データを受信するデータ受信手段と、複数のブロックからなるブロック群を複数有するメモリとを備える車両制御データ記憶装置である。
【００１３】
なお、メモリは、制御データを複数書き込むことが可能なブロック単位で制御データを消去する必要があるメモリ（例えばフラッシュメモリ）であって、各ブロック群を構成する複数のブロックの割り当て数が電子制御ユニットの種別毎に予め設定されている。
【００１４】
そして、メモリ制御手段が、データ受信手段を介して受信した制御データを、その制御データの送信元である電子制御ユニットの種別に応じたブロック群におけるブロック内に順次書き込み、書き込みの古い制御データをブロック単位で消去しつつ、書き込みの新しい制御データを優先的に保持する制御（以下「通常のメモリ制御」という）を行う。
【００１５】
一方、故障検出時制御手段が、複数の電子制御ユニットのうち制御データに基づく故障が検出された電子制御ユニットを対象ユニット、その対象ユニットからデータ受信手段を介して受信した制御データを対象データ、上記対象ユニットの種別に対応するブロック群を対象ブロック群、その対象ブロック群のうち、上記故障の検出前後に受信した一連の対象データ（解析用のデータ）を含む複数のブロックを対象ブロックとし、通常のメモリ制御において対象ブロック内の制御データの消去を禁止する。
【００１６】
なお、故障の有無については、車載ネットワークシステムが有する周知の自己診断機能によって検出されればよく、対象ユニットが各種センサ等から入力した制御データに基づいて検出してもよいし、車両制御データ記憶装置あるいは他の電子制御ユニットが対象ユニットから受信した制御データに基づいて検出してもよい。
【００１７】
ここで、本発明では、故障検出時制御手段が、対象ブロックの数に応じて、複数のブロック群のうち、対象ブロック群におけるブロックの割り当て数を、他の複数のブロック群におけるブロックの割り当て数を減らす分だけ増やすことにより、各ブロック群を構成する複数のブロックの割り当て数を再設定するように構成した。
【００１８】
このような構成では、制御データに基づく故障を検出したときに、その対象となるＥＣＵ（対象ＥＣＵ）の種別に対応するブロック群（対象ブロック群）において、解析用のデータを含む複数のブロック（対象ブロック）内のデータ消去が禁止されるため、解析用のデータに関する記憶が保持され、通常のメモリ制御に関しては複数のブロック（対象ブロック）が使用できなくなる。
【００１９】
これに伴い、本発明では、対象ブロックの数に応じて、対象ブロック群におけるブロックの割り当て数を、他のブロック群からブロックの割り当て数を減らす分だけ増やすように構成したため、例えば通常のメモリ制御に使用できるブロックの数がブロック群毎に均等となるように再配分され、これにより、特定のブロックにおいて制御データの消去回数を集中的に増大させずに済む。
【００２０】
したがって、本発明によれば、特定のブロックのメモリセルに過大なストレスを与えることによるメモリの低寿命化を抑制することができ、ひいては、特定のブロック群におけるデータ保持機能を過度に低下させずに済む。
【００２１】
なお、本発明では、上記メモリにおいて、各ブロック群（複数のブロック）が、電子制御ユニットの種別毎に割り当てられていればよく、例えば、電子制御ユニット毎に個別に割り当てられてもよいし、車載ネットワークが制御対象機器の種別に応じて複数の系列を有する場合、電子制御ユニットが属する系列毎に割り当てられてもよい。前者の場合、特定の電子制御ユニットに対応するブロック群におけるデータ保持機能を過度に低下させずに済み、後者の場合、車載ネットワークにおける特定の系列に対応するブロック群におけるデータ保持機能を過度に低下させずに済む。
【００２２】
また、本発明において、制御データに基づく故障を検出したときに、故障検出時制御手段は、他のブロック群のうちいずれのブロックを、対象ブロック群に割り当てるブロックとして、各ブロック群を構成する複数のブロックの割り当て数を再設定してもよいが、他のブロック群のうち最も書き込みの古い制御データが格納されているブロックを、対象ブロック群に割り当てるブロックとして扱う方が好ましい。
【００２３】
このようにすることで、他のブロック群において新しい制御データを含むブロックに関する消去を行わずに済むため、例えば他のＥＣＵや他の系列に属するＥＣＵやそのＥＣＵに接続された車両構成品（例えば各種センサ等）が故障した場合等に、解析用のデータに関する記憶を好適に保持することができる。
【００２４】
なお、他のＥＣＵや他の系列に属するＥＣＵやそのＥＣＵに接続された車両構成品が故障した場合には、新たに制御データに基づく故障を検出することになるため、例えば通常のメモリ制御に使用できるブロックの割り当て数が各ブロック群に均等となるように、もう一度各ブロック群を構成する複数のブロックの割り当て数を再設定すればよいことになる。
【００２５】
また、本発明では、メモリ制御手段が、各ブロック群において、ブロック内に複数の制御データを書き込むことで次のブロックを使用する際に、前のブロック内の制御データのうちこれら制御データの種別毎に最新のものを更新データとし、この更新データを次のブロックに書き込む制御（以下「データ書換制御」という）を行うように構成してもよい。
【００２６】
そして、このような構成においては、制御データに基づく故障を検出したときに、故障検出制御手段が、対象ブロック内の更新データに関するデータ書換制御を行ってもよいが、このような対象ブロック内の更新データについてはデータ書換制御を禁止する方が好ましい。
【００２７】
このようにすることで、制御データに基づく故障を検出したときには、対象ブロック内で更新データを含む解析用のデータに関する記憶が保持されることから、対象ブロック内の更新データについてはデータ書換制御を禁止しても、更新データが消去されることなく、対象ブロック内および対象ブロックの次のブロックにおいて通常のメモリ制御に使用できる領域を効率よく確保することができる。
【図面の簡単な説明】
【００２８】
【図１】車載ネットワークシステムの構成および全体構成を例示するブロック図である。
【図２】車両制御データ記憶装置の構成を例示するブロック図である。
【図３】メモリの構成を例示するイメージ図である。
【図４】メモリ制御処理の内容を例示するフローチャートである。
【図５】通常のメモリ制御およびデータ書換制御を説明するためのイメージ図である。
【図６】故障検出時制御処理の内容を例示するフローチャートである。
【図７】故障検出時のメモリ制御を説明するためのイメージ図である。
【図８】各ブロック群におけるブロックの割り当て数の再設定を説明するためのイメージ図である。
【発明を実施するための形態】
【００２９】
以下に、本発明の実施形態を図面と共に説明する。
＜全体構成＞
図１に示すように、本実施形態の車両メンテナンスシステム１は、複数の電子制御ユニット（以下「ＥＣＵ」という）３０〜３９が搭載された車両１０と、車両１０における故障原因を解析する故障解析ツール２０とによって構成されている。
【００３０】
車両１０には、複数のＥＣＵ３０〜３９が通信バス５を介して互いに制御データ（自車両を制御するためのデータ）を送受信するための車載ネットワークシステム２が構築されている。そして、車載ネットワークシステム２は、周知の自己診断機能を有しており、この自己診断機能によって制御データに基づく故障を検出するように構成されている。また、複数のＥＣＵ３０〜３９のうち、車両制御データ記憶装置としての後述するゲートウェイＥＣＵ３０は、車載ネットワークシステム２の自己診断機能によって制御データに基づく故障を検出したときに、その故障の検出前後に対象となるＥＣＵから送られた一連の制御データを含む解析用のデータを記憶するようになっている。
【００３１】
また、車両１０には、ゲートウェイＥＣＵ３０に接続されたコネクタ３が設けられており、例えば故障解析ツール２０に接続された通信ケーブル４がコネクタ３に接続されることで、ゲートウェイＥＣＵ３０から故障解析ツール２０に解析用のデータが送信されるようになっている。
【００３２】
故障解析ツール２０は、例えば車両メンテナンスシステム１に対応するディーラーや整備工場等の施設に配備されており、ゲートウェイＥＣＵ３０から受信した解析用のデータに基づいて、ＥＣＵやＥＣＵに接続された車両構成品（例えば各種センサ等）の故障原因を解析することにより、車両１０のメンテナンスに係る効率化を図る周知のものである。
【００３３】
＜ＥＣＵの構成＞
次に、車両１０内に設置されたＥＣＵ３０〜３９の構成について説明する。
図２に示すように、例えばゲートウェイＥＣＵ３０は、通信バス５へのデータの送出、通信バス５から自ＥＣＵにとって必要なデータの取込を行うトランシーバ２１と、所定のプロトコルに従って通信バス５を介した通信を制御する通信コントローラ２２と、通信コントローラ２２を制御して他のＥＣＵとの通信を行うことにより、他のＥＣＵと連動して、自ＥＣＵに割り当てられた各種機能を実現するための各種処理を実行するマイクロコンピュータ（以下「マイコン」）２３と、車両１０に搭載されたバッテリ６からの入力電圧を内部電圧に変換し、各部２１〜２３への電源供給を行う電源回路２４とを備えている。
【００３４】
これらの構成は、他のＥＣＵ３１〜３９についても同様である。
このうち、マイコン２３は、例えば、自ＥＣＵに割り当てられた制御対象機器を制御するための各種のプログラムが格納されたＲＯＭ２５と、ＲＯＭ２５に記憶されているプログラムに基づく各種処理を実行するＣＰＵ２６と、ＣＰＵ２６による各種処理実行時のワークメモリとなるＲＡＭ２７とを備えている。
【００３５】
ゲートウェイＥＣＵ３０のマイコン２３は、後述するように他のＥＣＵ３１〜３９から受信した制御データを記憶するためのフラッシュメモリ２８と、ＣＰＵ２６の指令に従ってフラッシュメモリ２８に対する制御データの読み書きを行うメモリコントローラ２９とをさらに備えている。
【００３６】
＜車載ネットワークシステムの構成＞
図１に戻り、車載ネットワークシステム２は、車両１０内に設置されたＥＣＵ３１〜３９により構築された車載ネットワーク７と、車載ネットワーク７内の各ＥＣＵ３１〜３９から受信した制御データを蓄積するゲートウェイＥＣＵ３０とから構成されている。
【００３７】
車載ネットワーク７は、制御対象機器の種別に応じて異なる複数の系列ネットワークからなり、具体的には、ボデー系ネットワーク７ａと、パワートレイン系ネットワーク７ｂと、シャシー系ネットワーク７ｃとを備えている。そして、夫々のネットワーク７ａ，７ｂ，７ｃには、共通の通信バス５ａ，５ｂ，５ｃ上に、各系統に対応する車両１０内のＥＣＵが接続されている。
【００３８】
このうち、ボデー系ネットワーク７ａには、例えば、制御対象機器としてドアの開閉制御（ロック／アンロック制御を含む）を行うドアＥＣＵ３１、ウインドウガラスの開閉制御を行うウインドウＥＣＵ３２、エアコンの温度制御を行うエアコンＥＣＵ３３等が接続されており、これらは所謂ボデー系の電子制御装置である。
【００３９】
例えば、ドアＥＣＵ３１にはドアの開閉状態を検出するドア開閉センサ、ウインドウＥＣＵ３２にはウインドウガラスの開閉状態を検出するウインドウ開閉センサ、エアコンＥＣＵ３３には車室内の温度を検出する温度センサというように、これらのＥＣＵ３１〜３３には各種センサが接続されている。
【００４０】
そして、ボデー系ネットワーク７ａに接続された上記ＥＣＵ３１〜３３（以下「ボデー系ＥＣＵ３１〜３３」と総称する）は、自ＥＣＵに接続されたセンサから入力される検出データや自ＥＣＵが制御対象機器を制御する（例えばアクチュエータやモータ等を作動させる）ために生成した指令データを、他のＥＣＵと共有する制御データとして通信バス５ａに定期的に送出するようになっている。
【００４１】
一方、パワートレイン系ネットワーク７ｂには、例えば、制御対象機器としてエンジンを制御するエンジンＥＣＵ３４、ブレーキを制御するブレーキＥＣＵ３５、自動変速機を制御するトランスミッションＥＣＵ３６等が接続されており、これらは所謂パワートレイン系の電子制御装置である。
【００４２】
例えば、エンジンＥＣＵ３４にはスロットル開度センサやアクセルペダル開度センサ等が接続されており、ブレーキＥＣＵ３５にはブレーキペダル踏込センサ等が接続されており、トランスミッションＥＣＵ３６にはシフトレバー位置センサや変速状態センサ等が接続されている。
【００４３】
そして、パワートレイン系ネットワーク７ｂに接続された上記ＥＣＵ３４〜３６（以下「パワトレ系ＥＣＵ３４〜３６」と総称する）は、自ＥＣＵに接続されたセンサから入力される検出データや自ＥＣＵが制御対象機器を制御する（例えばエンジンやブレーキ等を作動させる）ために生成した指令データを、他のＥＣＵと共有する制御データとして通信バス５ｂに定期的に送出するようになっている。
【００４４】
また、シャシー系ネットワーク７ｃには、例えば、制御対象機器として車輪に係る操舵制御を行うステアリングＥＣＵ３７、ブレーキ時の車輪ロック防止制御を行うＡＢＳＥＣＵ３８、車両の横滑り防止制御を行うＥＳＣＥＣＵ３９等が接続されており、これらは所謂シャシー系の電子制御装置である。
【００４５】
例えば、ステアリングＥＣＵ３７にはステアリングホイールの回転角度を検出するステアリングセンサ等が接続されており、ＡＢＳＥＣＵ３８には車輪速センサやブレーキスイッチ等が接続されており、ＥＳＣＥＣＵ３９にはヨーレートセンサや横Ｇセンサ等が接続されている。
【００４６】
そして、シャシー系ネットワーク７ｃに接続された上記ＥＣＵ３７〜３９（以下「シャシー系ＥＣＵ３７〜３９」と総称する）は、自ＥＣＵに接続されたセンサやスイッチから入力される検出データや自ＥＣＵが制御対象機器を制御する（例えば操舵伝達装置やブレーキの油圧制御等を作動させる）ために生成した指令データを、他のＥＣＵと共有する制御データとして通信バス５ｃに定期的に送出するようになっている。
【００４７】
なお、本実施形態において、上記ＥＣＵ３１〜３９から通信バス５に送出される制御データには、検出データおよび指令データの種別を示す識別子、および制御データの送信元であるＥＣＵを特定する送信元情報が含まれている。
【００４８】
ここで、本実施形態の車載ネットワークシステム２は、少なくとも同じ系列ネットワークに属する各ＥＣＵ間で制御データを送受信できるように、通信プロトコルが予め設定されている。そして、本実施形態の車載ネットワークシステム２には、異なる系列ネットワークに属する各ＥＣＵ間で制御データを送受信できるように、データ通信を中継するゲートウェイＥＣＵ３０が設けられている。
【００４９】
そして、ゲートウェイＥＣＵ３０では、ＣＰＵ２６が、上記のようにデータ通信を中継する処理を行う他、各ＥＣＵ３１〜３９から通信バス５に送出された制御データを、トランシーバ２１および通信コントローラ２２を介して取り込み、取り込んだ制御データを自ＥＣＵのフラッシュメモリ２８に記憶させるための指令をメモリコントローラ２９に出力するように構成されている。
【００５０】
また、本実施形態の車載ネットワークシステム２では、ゲートウェイＥＣＵ３０のＣＰＵ２６が、トランシーバ２１および通信コントローラ２２を介して通信バス５から取り込んだ制御データに基づいて、その制御データ（検出データおよび指令データ）に含まれている検出値と指令値とが正常な関係性を有しているか否かを判定する。
【００５１】
このように、本実施形態では、ゲートウェイＥＣＵ３０のＣＰＵ２６が、車載ネットワークシステム２の自己診断機能を実現するための異常判定処理を行うように構成されているが、例えば各ＥＣＵ３１〜３９が、自ＥＣＵに接続されたセンサ等から取得した検出データ等に基づいて上記異常判定処理を行うように構成されてもよいし、他のＥＣＵから取得した制御データに基づいて上記異常判定処理を行うように構成されてもよい。
【００５２】
また、ゲートウェイＥＣＵ３０のＣＰＵ２６は、この異常判定処理によって制御データに基づく故障を検出した場合に、その旨を示す情報（以下「故障検出情報」という）を、ゲートウェイＥＣＵ３０のメモリコントローラ２９に出力するようになっている。なお、この故障検出情報には、異常が検出された制御データの送信元であるＥＣＵを特定する送信元情報が含まれている。
【００５３】
＜フラッシュメモリおよびメモリコントローラの構成＞
次に、ゲートウェイＥＣＵ３０におけるフラッシュメモリ２８およびメモリコントローラ２９の構成について説明する。
【００５４】
フラッシュメモリ２８は、制御データについて書き換え可能で電源を供給しなくても記憶を保持できる不揮発性のメモリである。但し、フラッシュメモリ２８は、１バイト単位の書き換え（消去と書き込み）ができず、その消去回数の上限値が仕様上定められている都合上、制御データの消去回数をなるべく減らすために、制御データを複数書き込むことが可能なブロック単位で制御データを消去する必要のあるメモリである。
【００５５】
本実施形態では、上記フラッシュメモリ２８として、図３（ａ）に示すように、複数のメモリセル４１からなる領域４２単位で制御データを書き込み、複数の領域４２からなるブロック４３単位で制御データを消去する必要があるＮＡＮＤ型のフラッシュメモリが採用されているが、これに限定されるものではなく、例えばＮＯＲ型のフラッシュメモリを採用してもよいし、フラッシュメモリ以外で使用上同様の制限のあるメモリを採用してもよい。
【００５６】
本実施形態のフラッシュメモリ２８は、図３（ｂ）に示すように、複数のブロック４３からなるブロック群４４を複数有しており、各ブロック群４４を構成する複数のブロックの割り当て数がＥＣＵ３１〜３９の種別毎に予め設定されている。具体的には、フラッシュメモリ２８は、ボデー系ＥＣＵ３１〜３３から通信バス５ａに送出された制御データを記憶するためのボデー系バス用ブロック群４４ａと、パワトレ系ＥＣＵ３４〜３６から通信バス５ｂに送出された制御データを記憶するためのパワトレ系バス用ブロック群４４ｂと、シャシー系ＥＣＵ３７〜３９から通信バス５ｃに送出された制御データを記憶するためのシャシー系バス用ブロック群４４ｃとを備えて構成される。なお、本実施形態では、各ブロック群４４ａ，４４ｂ，４４ｃを構成する複数のブロックの割り当て数に関する初期設定として、ボデー系バス用ブロック群４４ａを構成する複数のブロックの割り当て数と、パワトレ系バス用ブロック群４４ｂを構成する複数のブロックの割り当て数と、シャシー系バス用ブロック群４４ｃを構成する複数のブロックの割り当て数とが同じ数（図中では６つ）になるように予め設定されている。
【００５７】
一方、メモリコントローラ２９は、ＣＰＵ２６から出力されてくる指令に従って、フラッシュメモリ２８に対して制御データの読み書きを行うメモリ制御処理と、ＣＰＵ２６から故障検出情報を入力した場合に、前述の各ブロック群４４ａ，４４ｂ，４４ｃを構成する複数のブロックの割り当て数を再設定する故障検出時制御処理とを実行するように構成されている。
【００５８】
＜メモリ制御処理＞
ここで、メモリコントローラ２９が実行するメモリ制御処理について、図４のフローチャートに沿って説明する。なお、本処理は、例えば車両のイグニッションスイッチがオンされると開始され、イグニッションスイッチがオフされると終了する。
【００５９】
本処理が開始されると、Ｓ１１０では、メモリコントローラ２９は、ＣＰＵ２６が通信コントローラ２２を介して制御データを受信することにより、この受信した制御データ（以下「受信データ」という）を書き込むための指令（書き込み指令）をＣＰＵ２６から入力したか否かを判断し、ここで肯定判断した場合にはＳ１２０に移行し、否定判断した場合にはＳ１７０に移行する。
【００６０】
Ｓ１２０では、Ｓ１１０における受信データに含まれている送信元情報に基づいて、複数のブロック群４４のうち、この送信元情報が示すＥＣＵに対応するブロック群４４を選択し、Ｓ１３０に移行する。
【００６１】
Ｓ１３０では、Ｓ１２０で選択したブロック群４４において、図５（ａ）に示すように、ブロック４３における先頭のアドレス（領域４２）から順に制御データを書き込むに際して、複数のブロック４３のうち、その書き込み対象となるブロック４３（以下「有効ブロック」という）に、Ｓ１１０における受信データを書き込むための空きの領域４２が存在するか否かを判断し、ここで肯定判断した場合にはＳ１４０に移行し、否定判断した場合にはＳ１５０に移行する。
【００６２】
Ｓ１４０では、Ｓ１３０における有効ブロックの空きの領域４２に、Ｓ１１０における受信データを書き込み、Ｓ１７０に移行する。これにより、本処理を繰り返すことで、Ｓ１２０にて選択したブロック群４４の有効ブロックにおいて、先頭の領域４２から最後の領域４２まで順に受信データが書き込まれることになる。
【００６３】
一方、Ｓ１５０では、Ｓ１３０における有効ブロックが最後の領域４２まで受信データが書き込まれているため、Ｓ１２０で選択したブロック群４４において、予め設定された順における次のブロックを有効ブロックとして設定し、Ｓ１６０に移行する。
【００６４】
Ｓ１６０では、Ｓ１２０で選択したブロック群４４において、図５（ｂ）に示すように、Ｓ１３０における有効ブロック（前のブロック）に蓄積されている受信データのうち、これらの受信データに含まれている識別子を参照し、識別子毎に最新のデータを更新データとして抽出し、これら抽出した更新データをＳ１５０における有効ブロック（次のブロック）の先頭の領域４２から順に書き込むことにより、更新データの書き換えを行い、Ｓ１４０に移行する。
【００６５】
なお、ここでＳ１４０に移行すると、Ｓ１５０における有効ブロック（次のブロック）に書き込まれた更新データに続く領域４２に受信データが書き込まれることになる。また、このように受信データがＳ１５０における有効ブロック（次のブロック）に書き込まれると、Ｓ１３０における有効ブロック（前のブロック）が無効ブロックとして扱われ、例えば、Ｓ１２０で選択したブロック群４４において、全てのブロック４３に制御データが書き込まれると、これらの無効ブロックのうち、最も書き込みの古い受信データが格納されている無効ブロックがメモリコントローラ２９によってブロック単位で消去される。
【００６６】
このように、Ｓ１２０〜Ｓ１５０では、通信コントローラ２２を介して受信した制御データを、その制御データの送信元であるＥＣＵの種別に応じたブロック群４４におけるブロック４３内に順次書き込み、その書き込みの古い制御データをブロック単位で消去しつつ、その書き込みの新しい制御データを優先的に保持するメモリ制御（以下「通常のメモリ制御」という）が行われる。
【００６７】
また、Ｓ１６０では、ＥＣＵの種別に応じたブロック群４４において、ブロック４３内に複数の制御データを書き込むことで次のブロック４３を使用する際に、前のブロック４３内の制御データのうち識別子（制御データの種別）毎に最新のものを更新データとして、これら更新データを次のブロックに書き込むメモリ制御（以下「データ書換制御」という）が行われる。
【００６８】
一方、Ｓ１７０では、制御データを読み出すための指令（読み出し指令）をＣＰＵ２６から入力したか否かを判断し、ここで肯定判断した場合にはＳ１８０に移行し、否定判断した場合にはＳ１１０に戻る。このように、メモリ制御処理では、ＣＰＵ２６から書き込み指令または読み出し指令が入力された場合に、その指令に応じた処理を実行するようになっている。
【００６９】
そして、Ｓ１８０では、Ｓ１７０における読み出し指令に含まれている識別子に基づいて、有効ブロックに格納されている制御データのうち、その識別子に対応する最新のデータ（以下「有効データ」という）をフラッシュメモリ２８から読み出し、その読み出した有効データをＣＰＵ２６に出力して、Ｓ１１０に戻る。なお、有効データは、有効ブロック内に格納されてＳ１８０における識別子に対応する制御データのうち、その有効ブロック内で最も下位の領域４２に格納されている制御データである。
【００７０】
＜故障検出時制御処理＞
次に、メモリコントローラ２９が実行する故障検出時制御処理について、図６のフローチャートに沿って説明する。なお、本処理は、ＣＰＵ２６から故障検出情報を入力すると開始される。
【００７１】
本処理が開始されると、Ｓ２１０では、メモリコントローラ２９は、故障検出情報に含まれている送信元情報に基づいて、複数のブロック群４４のうち、この送信元情報が示すＥＣＵに対応するブロック群４４を選択し、Ｓ２２０に移行する。なお、以下では、ここで選択されたブロック群４４を対象ブロック群、上記送信元情報が示すＥＣＵを対象ＥＣＵ（ボデー系ＥＣＵ３１〜３３、パワトレ系ＥＣＵ３４〜３６、シャシー系ＥＣＵ３７〜３９のうちいずれか一つ）と称する。
【００７２】
続くＳ２２０では、Ｓ２１０で選択した対象ブロック群内において、メモリ制御処理におけるデータ書換制御（Ｓ１６０）の処理を禁止する。これにより、図７（ａ）に示すように、本処理の開始以降（故障検出時以降）の一定期間内に対象ブロック群に格納される制御データを故障データとすると、対象ブロック群内の有効ブロックに空きがある場合には、例えばその有効ブロック内に既に書き込まれている制御データに続く領域４２から最後の領域４２まで順に故障データが書き込まれることになる。そして、図７（ｂ）に示すように、この対象ブロック群においては、有効ブロック内の最後の領域４２まで故障データが書き込まれると、次のブロック４３が有効ブロックとして使用されることになるが、その際に、前のブロック４３内の制御データ（故障データを含む）のいずれもが更新データとして次のブロック４３に書き込まれないようになる。このため、次のブロック４３に更新データが書き込まれない分、多くの故障データを蓄積することが可能になる。
【００７３】
続くＳ２３０では、故障データの記憶を保持するために予め設定された一定時間が経過したか否かを判断し、ここで肯定判断した場合にはＳ２４０に移行し、否定判断した場合には所定の一定時間が経過するまで待機する。
【００７４】
Ｓ２４０では、本処理の開始前後、換言すれば故障検出前後に対象ブロック群内に格納された一連の制御データ（故障データを含む）を対象データとし、対象ブロック群を構成するブロック４３のうち、この対象データを含む複数のブロックを対象ブロックとして、この対象ブロック内の制御データの消去を禁止する。つまり、通常のメモリ制御（Ｓ１２０〜Ｓ１５０）において、対象ブロック内の制御データの消去を禁止することにより、これらの制御データ（故障データを含む）を解析用のデータとして、その記憶を保持する。
【００７５】
また、Ｓ２５０では、対象ブロック群内において、複数の対象ブロックの次のブロックに格納される制御データ以降について、メモリ制御処理におけるデータ書換制御（Ｓ１６０）の処理の禁止を解除することにより、更新データの書き換えを許可する。
【００７６】
続くＳ２６０では、Ｓ２４０における対象ブロックの数を検出し、この対象ブロックの数に応じて、複数のブロック群４４のうち、対象ブロック群におけるブロック４３の割り当て数を、他のブロック群４４におけるブロックの割り当て数を減らす分だけ増やすことにより、各ブロック群４４を構成する複数のブロック４３の割り当て数を再設定し、本処理を終了する。
【００７７】
詳しく述べると、例えばボデー系ＥＣＵ３１〜３３から受信した制御データに基づく故障が検出された場合、図８に示すように、ボデー系バス用ブロック群４４ａにおいて、解析用のデータの記憶を保持するために使用する対象ブロックの数が３つであるとすると、パワトレ系バス用ブロック群４４ｂから一つのブロック、シャシー系バス用ブロック群４４ｃから一つのブロックをそれぞれボデー系バス用ブロック群４４ａに割り当てる。これにより、通常のメモリ制御およびデータ書換制御において使用できるブロックの割り当て数が、ボデー系バス用ブロック群４４ａ、パワトレ系バス用ブロック群４４ｂ、シャシー系バス用ブロック群４４ｃのそれぞれにおいて同じ数（図中では５つ）となるように設定される。
【００７８】
なお、本実施形態では、上記例で言うと、パワトレ系バス用ブロック群４４ｂ、シャシー系バス用ブロック群４４ｃのそれぞれにおいて、最も書き込みの古い制御データが格納されているブロックを、ボデー系バス用ブロック群４４ａに割り当てるブロックとする。
【００７９】
＜効果＞
以上説明したように、本実施形態のゲートウェイＥＣＵ３０では、フラッシュメモリ２８において、各ブロック群４４ａ，４４ｂ，４４ｃを構成する複数のブロック４３の割り当て数がＥＣＵ３１〜３９の種別毎に予め設定されており、メモリコントローラ２９が、通信コントローラ２２を介して受信した制御データ（受信データ）を、その制御データの送信元であるＥＣＵの種別に応じたブロック群４４におけるブロック４３内に順次書き込む。
【００８０】
さらに、メモリコントローラ２９は、受信データに基づく故障が検出されたＥＣＵを対象ＥＣＵ、その対象ＥＣＵから受信した制御データを対象データ、対象ＥＣＵの種別に対応するブロック群４４を対象ブロック群、その対象ブロック群のうち、故障の検出前後に受信した一連の対象データ（解析用のデータ）を含む複数のブロックを対象ブロックとし、通常のメモリ制御において対象ブロック内の制御データの消去を禁止する。
【００８１】
そして、メモリコントローラ２９は、対象ブロックの数に応じて、複数のブロック群４４のうち、対象ブロック群におけるブロックの割り当て数を、他の複数のブロック群４４におけるブロック４３の割り当て数を減らす分だけ増やすことにより、各ブロック群４４ａ，４４ｂ，４４ｃを構成する複数のブロック４３の割り当て数を再設定する。
【００８２】
このため、ゲートウェイＥＣＵ３０では、制御データに基づく故障を検出したときに、その対象となるＥＣＵ（対象ＥＣＵ）の種別に対応するブロック群４４（対象ブロック群）において、解析用のデータを含む複数のブロック４３（対象ブロック）内のデータ消去が禁止されるため、解析用のデータに関する記憶が保持され、通常のメモリ制御に関しては複数のブロック４３（対象ブロック）が使用できなくなる。
【００８３】
これに伴い、ゲートウェイＥＣＵ３０では、対象ブロックの数に応じて、対象ブロック群におけるブロック４３の割り当て数を、他のブロック群４４からブロック４３の割り当て数を減らす分だけ増やすように構成したため、通常のメモリ制御に使用できるブロック４３の数がブロック群４４毎に均等となるように再配分され、これにより、特定のブロック４３において制御データの消去回数を集中的に増大させずに済む。
【００８４】
したがって、本実施形態のゲートウェイＥＣＵ３０によれば、特定のブロック４３のメモリセル４１に過大なストレスを与えることによるフラッシュメモリ２８の低寿命化を抑制することができ、ひいては、特定のブロック群４４におけるデータ保持機能を過度に低下させずに済む。
【００８５】
なお、本実施形態のゲートウェイＥＣＵ３０では、フラッシュメモリ２８において、各ブロック群４４ａ，４４ｂ，４４ｃが、ＥＣＵ３１〜３９が属する系列ネットワーク７ａ，７ｂ，７ｃ毎に割り当てられているため、車載ネットワーク７における特定の系列に対応するブロック群４４におけるデータ保持機能を過度に低下させずに済む。
【００８６】
また、本実施形態のゲートウェイＥＣＵ３０では、制御データに基づく故障を検出したときに、メモリコントローラ２９が、他のブロック群４４のうち最も書き込みの古い制御データが格納されているブロック４３を、対象ブロック群に割り当てるブロックとして扱う。
【００８７】
このため、他のブロック群４４において新しい制御データを含むブロックに関する消去を行わずに済むため、例えば他のＥＣＵや他の系列ネットワークに属するＥＣＵやそのＥＣＵに接続された車両構成品（例えば各種センサ等）が故障した場合等に、解析用のデータに関する記憶を好適に保持することができる。
【００８８】
また、本実施形態のゲートウェイＥＣＵ３０では、メモリコントローラ２９が、各ブロック群４４ａ，４４ｂ，４４ｃにおいて、ブロック４３内に複数の制御データを書き込むことで次のブロック４３を使用する際に、前のブロック４３内の制御データのうちこれら制御データの種別毎に最新のものを更新データとし、この更新データを次のブロック４３に書き込む制御（データ書換制御）を行う。
【００８９】
そして、制御データに基づく故障を検出したときに、メモリコントローラ２９が、対象ブロック内の更新データに関するデータ書換制御を禁止する。このため、制御データに基づく故障を検出したときには、対象ブロック内で更新データを含む解析用のデータに関する記憶が保持されることから、対象ブロック内の更新データについてはデータ書換制御を禁止しても、更新データが消去されることなく、対象ブロック内および対象ブロックの次のブロック４３において通常のメモリ制御に使用できる領域を効率よく確保することができる。
【００９０】
＜発明との対応＞
なお、本実施形態において、通信コントローラ２２がデータ受信手段、フラッシュメモリ２８がメモリ、メモリ制御処理（Ｓ１１０〜Ｓ１８０）を行うメモリコントローラ２９がメモリ制御手段、故障検出時制御処理（Ｓ２１０〜Ｓ２６０）を行うメモリコントローラ２９が故障検出時制御手段の各一例にそれぞれ相当する。
【００９１】
＜他の実施形態＞
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、様々な態様にて実施することが可能である。
【００９２】
例えば、上記実施形態のゲートウェイＥＣＵ３０では、フラッシュメモリ２８において、各ブロック群４４ａ，４４ｂ，４４ｃが、ＥＣＵ３１〜３９が属する系列ネットワーク７ａ，７ｂ，７ｃ毎に割り当てられているが、これに限定されるものではなく、ＥＣＵ３１〜３９毎に個別に割り当てられてもよい。
【００９３】
また、上記実施形態のメモリ制御処理では、ＥＣＵ３１〜３９から受信した制御データ（受信データ）を書き込む制御としているが、これに限定されるものではなく、ゲートウェイＥＣＵ３０自身が持つ制御データや、ディーラーや整備工場等の施設にある診断ツールから送信された制御データを書き込んでもよい。
【００９４】
また、上記実施形態のフラッシュメモリ２８では、各ブロック群４４ａ，４４ｂ，４４ｃにおいて、ブロック４３の割り当て数が同じ数になるように初期設定されているが、これに限定されるものではなく、例えば受信データの数が多いほど、ブロック４３の割り当て数が多くなるように初期設定されていれもよい。この場合、故障時制御処理では、各ブロック群４４ａ，４４ｂ，４４ｃにおいて、通常のメモリ制御に使用できるブロックの割り当て数が初期設定の比率に近くなるように再配分されればよい。
【００９５】
また、上記実施形態の故障時制御処理では、他のブロック群４４のうち最も書き込みの古い制御データが格納されているブロック４３を、対象ブロック群に割り当てるブロック４３として再配分しているが、これに限らず、他のブロック群４４のうちいずれのブロック４３を対象ブロック群に割り当ててもよい。
【００９６】
また、上記実施形態の故障時制御処理では、制御データに基づく故障を検出したときに、メモリコントローラ２９が、対象ブロック内の更新データに関するデータ書換制御を禁止しているが、これに限定されるものではなく、このようなデータ書換制御を禁止しなくてもよい。
【００９７】
また、上記実施形態の故障時制御処理では、対象ブロック群において、次のブロック４３が有効ブロックとして使用される際に、前のブロック４３内の制御データ（故障データを含む）のいずれもが更新データとして次のブロック４３に書き込まれないようになるが、これに限定されるものではなく、診断以外の用途で必要な制御データは、次のブロック４３に更新データを書き込んでもよい。
【００９８】
なお、上記実施形態の車載ネットワークシステム２では、車両制御データ記憶装置としてゲートウェイＥＣＵ３０を例示したが、これに限定されるものではなく、例えば他のＥＣＵ３１〜３９のいずれかが車両制御データ記憶装置として機能するように構成されてもよい。また、上記実施形態の車載ネットワークシステム２におけるネットワーク構成はあくまでも一例にすぎず、複数のＥＣＵを備える構成であれば、どのようなネットワーク構成であってもよい。
【符号の説明】
【００９９】
１…車両メンテナンスシステム、２…車載ネットワークシステム、３…コネクタ、４…通信ケーブル、５…通信バス、７…車載ネットワーク、１０…車両、２０…故障解析ツール、２２…通信コントローラ、２３…マイコン、２６…ＣＰＵ、２８…フラッシュメモリ、２９…メモリコントローラ、３０…ゲートウェイＥＣＵ、３１〜３９…ＥＣＵ、４１…メモリセル、４２…領域、４３…ブロック、４４…ブロック群。
【図１】
2014154024.tif 000003
【図２】
2014154024.tif 000004
【図３】
2014154024.tif 000005
【図４】
2014154024.tif 000006
【図６】
2014154024.tif 000007
【図５】
2014154024.tif 000008
【図７】
2014154024.tif 000009
【図８】
2014154024.tif 000010