(57)【特許請求の範囲】
【請求項１】
第１の記録領域及びこれと対をなす第２の記録領域を有する記録ブロックが複数設けられるフラッシュメモリと、
第２の記録領域がブランクであることに基づきこれと対をなす第１の記録領域に記録される第１の情報を有効と判断し、有効と認められる第１の記録領域に記録される第１の情報に基づき制御対象の制御を実行する制御部とを備え、
前記制御部は、書き換え情報が入力されたことをトリガとして、第２の記録領域に第２の情報が記録されていない第２の記録領域がブランクである記録ブロックを検索する第１の処理と、
前記第１の処理で検索された記録ブロックの第２の記録領域に第２の情報を書き込む第２の処理と、
前記第２の処理を実施した記録ブロックとは別の記録ブロックの第１の記録領域及び第２の記録領域をブランクにする第３の処理と、
前記第３の処理を実施した記録ブロックの第１の記録領域に対し、前記書き換え情報に対応する第１の情報を書き込む第４の処理とを実施する書き換え装置。
【請求項２】
請求項１に記載の書き換え装置において、
前記制御部は、特定の制御対象の制御に使用される複数の記録ブロックのうち、第２の記録領域がブランクとされている記録ブロックが複数ある場合には、ユーザの感覚に訴えるための報知情報を出力する報知処理を実施する書き換え装置。
【請求項３】
請求項１又は２に記載の書き換え装置において、
前記制御部は、複数の記録ブロックのうち一つの記録ブロックに対して前記第３の処理を実施する書き換え装置。
【請求項４】
第１の記録領域及びこれと対をなす第２の記録領域を有する記録ブロックが複数設けられるフラッシュメモリに対し、
書き換え情報が入力されたことをトリガとして、第２の記録領域に第２の情報が記録されていない第２の記録領域がブランクである記録ブロックを検索する第１の処理と、
前記第１の処理で検索された記録ブロックの第２の記録領域に第２の情報を書き込む第２の処理と、
前記第２の処理を実施した記録ブロックとは別の記録ブロックの第１の記録領域及び第２の記録領域をブランクにする第３の処理と、
前記第３の処理を実施した記録ブロックの第１の記録領域に対し、前記書き換え情報に対応する第１の情報を書き込む第４の処理とを実施する書き換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え装置及び書き換え方法に関する。
【背景技術】
【０００２】
フラッシュメモリに記録させるデータを書き換えている最中に電源の遮断等の強制的な中断が発生した場合、フラッシュメモリには、不要なデータが記録された状態のままとなることがある。不要なデータに基づく制御が実行されないように、フラッシュメモリの書き換え装置は、種々の方法により不要なデータがいずれであるか判別できるように、各種データをフラッシュメモリに記録させている。
【０００３】
特許文献１の書き換え装置は、記録されている制御データに対し、回数データを対応付けて記録させている。そして、当該書き換え装置は、古い回数データに対応する記録ブロックに記録されている制御データを、予め定義された初期データに書き換える。回数データが新しく且つ初期データが記録される記録ブロックに、新たな制御データを書き込むことにより、フラッシュメモリに記録されている不要なデータに基づく制御が実行されることが抑制される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３８５１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の書き換え装置が実行する書き換え方法の場合、初期データに書き換えるたび回数データも増えるため、書き換え回数に制限のあるフラッシュメモリには適さない。
本発明の目的は、フラッシュメモリへの書き換え回数が少ない書き換え装置及び書き換え方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、書き換え装置は、第１の記録領域及びこれと対をなす第２の記録領域を有する記録ブロックが複数設けられるフラッシュメモリと、第２の記録領域がブランクであることに基づきこれと対をなす第１の記録領域に記録される第１の情報を有効と判断し、有効と認められる第１の記録領域に記録される第１の情報に基づき制御対象の制御を実行する制御部とを備え、前記制御部は、書き換え情報が入力されたことをトリガとして、第２の記録領域に第２の情報が記録されていない第２の記録領域がブランクである記録ブロックを検索する第１の処理と、前記第１の処理で検索された記録ブロックの第２の記録領域に第２の情報を書き込む第２の処理と、前記第２の処理を実施した記録ブロックとは別の記録ブロックの第１の記録領域及び第２の記録領域をブランクにする第３の処理と、前記第３の処理を実施した記録ブロックの第１の記録領域に対し、前記書き換え情報に対応する第１の情報を書き込む第４の処理とを実施することを要旨とする。
【０００７】
この構成によれば、制御部は、第２の記録領域がブランクであることにより、これと対をなす第１の記録領域に記録される第１の情報を有効と判断する。このため、書き換え回数や有効性及び無効性を書き込む必要があった従来の書き換え装置と比較して、この構成は、有効性を示す情報を書き込まない分、フラッシュメモリへの書き込み回数が少ない。その分、フラッシュメモリの寿命が延びる。
【０００８】
上記構成において、前記制御部は、特定の制御対象の制御に使用される複数の記録ブロックのうち、第２の記録領域がブランクとされている記録ブロックが複数ある場合には、ユーザの感覚に訴えるための報知情報を出力する報知処理を実施することが好ましい。
【０００９】
書き換えの最中に瞬断が発生するなど意図しない要因により、特定の制御対象の制御に使用される複数の記録ブロックのうち、第２の記録領域がブランクとされている記録ブロックが複数存在することがある。この場合、特定の制御対象の制御に有効な第１の情報が複数存在することになるため、制御対象の好適な制御に影響が発生するおそれがある。
【００１０】
そこで、この構成によれば、制御対象の好適な制御に影響が発生するおそれがある場合に、ユーザの感覚に訴えるための報知情報が出力される。これにより、再度の書き込み処理が促され、特定の制御対象の制御に使用される複数の記録ブロックのうち、第２の記録領域がブランクとされている記録ブロックが複数存在する状態が解消されやすい。これにより、制御部は、制御対象の好適な制御を実施することができる。
【００１１】
上記構成において、前記制御部は、複数の記録ブロックのうち一つの記録ブロックに対して前記第３の処理を実施することが好ましい。
この構成によれば、特定の制御対象の制御に使用される複数の記録ブロックのうち、第２の記録領域がブランクとされる記録ブロックが複数個発生する状況が抑制される。これにより、制御部は、制御対象の好適な制御を実施することができる。
【００１２】
上記課題を解決するために、書き換え方法は、第１の記録領域及びこれと対をなす第２の記録領域を有する記録ブロックが複数設けられるフラッシュメモリに対し、書き換え情報が入力されたことをトリガとして、第２の記録領域に第２の情報が記録されていない第２の記録領域がブランクである記録ブロックを検索する第１の処理と、前記第１の処理で検索された記録ブロックの第２の記録領域に第２の情報を書き込む第２の処理と、前記第２の処理を実施した記録ブロックとは別の記録ブロックの第１の記録領域及び第２の記録領域をブランクにする第３の処理と、前記第３の処理を実施した記録ブロックの第１の記録領域に対し、前記書き換え情報に対応する第１の情報を書き込む第４の処理とを実施することを要旨とする。
【００１３】
この方法によれば、従来の方法と比較して、有効性を示す情報を書き込まない分、フラッシュメモリへの書き込み回数が少ない。その分、フラッシュメモリの寿命が延びる。当該フラッシュメモリは、第２の記録領域がブランクであることに基づきこれと対をなす第１の記録領域に記録される第１の情報を有効と判断し、有効と認められる第１の記録領域に記録される第１の情報に基づき制御対象の制御を実行する制御装置に使用することができる。
【発明の効果】
【００１４】
本発明の書き換え装置及び書き換え方法は、フラッシュメモリへの書き換え回数が少ないという効果を有する。
【図面の簡単な説明】
【００１５】
【図１】マイクロコンピュータの概略構成を示すブロック図。
【図２】情報を書き換える直前の状態を示すフラッシュメモリのブロック図。
【図３】情報を書き換えている最中（図６のステップＳ２完了時点）の状態を示すフラッシュメモリのブロック図。
【図４】情報を書き換えている最中（図６のステップＳ３完了時点）の状態を示すフラッシュメモリのブロック図。
【図５】情報を書き換えた直後（図６のステップＳ４完了時点）の状態を示すフラッシュメモリのブロック図。
【図６】情報を書き換える際のＣＰＵの処理手順を示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、書き換え装置を具体化したマイクロコンピュータの一実施形態について図面に従って説明する。
図１に示すように、マイクロコンピュータ１（以下、マイコン１）は、車載されるものであって、ＣＰＵ（Central Processing Unit）２、フラッシュメモリ３、複数の内蔵周辺Ｉ／Ｏ（Input Output）４、接続モジュール５、及びこれら各種構成を相互接続するバス６を備える。
【００１７】
ＣＰＵ２は、フラッシュメモリ３に記憶されている各種情報から、内蔵周辺Ｉ／Ｏ４を介して接続される各種車載機器の制御を実行する。また、ＣＰＵ２は、接続モジュール５を介して接続されるツール９により入力される情報に基づき、フラッシュメモリ３に記憶される情報の書き換えを実行する。
【００１８】
フラッシュメモリ３は、ＣＰＵ２が各種車載機器の制御に用いる各種制御情報が記録されるものであって、複数の記録ブロックを有する。記録ブロックは、車載機器毎に複数個ずつ設けられている。なお、これ以降の説明を簡易なものとするため、ここでは、ある特定の車載機器の制御に用いる情報が記録される記録ブロック１０，２０，３０，４０について説明する。
【００１９】
図２〜５に示すように、記録ブロック１０，２０，３０，４０は、それぞれ接頭情報記録領域、制御情報記録領域、無効情報記録領域、及び接尾情報記録領域の４つの記録領域を有する。
【００２０】
接頭情報記録領域１１，２１，３１，４１は、自身が所属する記録ブロックに記録されている情報がいずれの車載機器に対応するか否かを示す接頭情報が記録される領域とされている。
【００２１】
制御情報記録領域１２，２２，３２，４２は、該当する車載機器の制御に用いられる制御情報が記録される領域とされている。なお、制御情報記録領域１２，２２，３２，４２は、第１の記録領域に相当する。
【００２２】
無効情報記録領域１３、２３，３３，４３は、自身が所属する記録ブロックに記録される情報が車載機器の制御に無効であることを示す無効情報が記録される領域とされている。なお、無効情報記録領域１３、２３，３３，４３は、第２の記録領域に相当する。
【００２３】
接尾情報記録領域１４，２４，３４，４４は、自身が所属する記録ブロックに記録されている情報がいずれの車載機器に対応するか否かを示す接尾情報が記録される領域とされている。
【００２４】
なお、ここでは、記録ブロック１０，２０，３０，４０に記録される情報は、ある特定の車載機器の制御に用いる情報であることから、各接頭情報記録領域に記録される接頭情報は、各記録ブロック間で共通であり、また各接尾情報記録領域に記録される接尾情報も、各記録ブロック間で共通である。
【００２５】
ＣＰＵ２は、ある特定の車載機器の制御を実行するとき、記録ブロック１０，２０，３０，４０の無効情報記録領域１３、２３，３３，４３を参照する。そして、ブランク（いずれの情報も記録されていない）状態の無効情報記録領域が所属する記録ブロックを有効な記録ブロックと判断する。ＣＰＵ２は、有効な記録ブロックの制御情報記録領域に記録されている制御情報に基づき、ある特定の車載機器の制御を実行する。
【００２６】
例えば、フラッシュメモリ３に記録されている各情報が、図２に示される状態である場合、ＣＰＵ２は、ブランク状態とされている無効情報記録領域３３が含まれる記録ブロック３０を有効な記録ブロックと判断する。ＣＰＵ２は、有効な記録ブロック３０の制御情報記録領域３２に記録されている制御情報「５５６６」に基づき、ある特定の車載機器の制御を実行する。
【００２７】
なお、ＣＰＵ２は、ブランク状態の無効情報記録領域を有する記録ブロックが複数ある場合、又はブランク状態の無効情報記録領域を有する記録ブロックがない場合、その旨（以下エラーであること）示す情報をユーザの感覚に訴えるための報知情報が含まれる報知信号を生成し、これをバス６に出力する。内蔵周辺Ｉ／Ｏ４のうち、報知用の車載機器（例えば、ナビゲーションディスプレイやメータディスプレイ等の表示装置、室内スピーカやホーン等の音響装置など）に対応する内蔵周辺Ｉ／Ｏ４は、バス６より受け取った報知信号を車載機器に出力する。これにより、報知用の車載機器が、ユーザに対して、エラーであることを報知する（報知処理）。当該報知処理により、ユーザに対して、該当する車載機器に関する情報を記録させる処理が促される。該当する車載機器に関する情報を記録させる処理が行われれば、該当する車載機器の制御が不安定になることが抑制される。
【００２８】
なお、ブランク状態の無効情報記録領域を有する記録ブロックが複数存在する状況は、例えば、書き換えの最中に瞬断が発生するなど意図しない要因により発生することがある。
【００２９】
次に、ＣＰＵ２によるフラッシュメモリ３に記憶される情報の書き換えについて説明する。当該情報の書き換えは、ツール９と接続モジュール５とが接続されて、ツール９から制御情報が入力されることをトリガとして実行される。なお、ツール９から制御情報が入力される前の各記録ブロックに記録される情報は、図２に示す状態とし、ツール９から接続モジュール５に対し入力される書き換え情報は、ある特定の車載機器を制御するため制御情報「７７８８」であるものとする。
【００３０】
図６に示すように、ＣＰＵ２は、ツール９から接続モジュール５に対して書き換え情報が入力されたことを認識すると、書き換え情報に該当する複数の記録ブロックのうち、有効な記録ブロックを検索する（ステップＳ１）。図２に示すように、本例では、無効情報記録領域３３がブランク状態の記録ブロック３０が有効な記録ブロックである。なお、当該ステップＳ１の処理が第１の処理に相当する。
【００３１】
次に、図６に示すように、ＣＰＵ２は、有効な記録ブロックに無効情報を書き込み、当該有効な記録ブロックを無効化する（ステップＳ２）。図３に示すように、本例では、ＣＰＵ２は、有効な記録ブロックである記録ブロック３０におけるブランク状態の無効情報記録領域３３に無効情報「５５」を書き込むことにより、当該記録ブロック３０を無効化する。なお、当該ステップＳ２の処理が第２の処理に相当する。
【００３２】
次に、図６に示すように、ＣＰＵ２は、無効化した記録ブロックの次位の記録ブロックに記録されている情報を消去する（ステップＳ３）。図４に示すように、本例では、無効化された記録ブロック３０の次位である記録ブロック４０に記録されている情報を消去する。これにより、制御情報記録領域４２及び無効情報記録領域４３がブランクとなる。この次点で、無効情報記録領域４３がブランクとされている記録ブロック４０が有効となる。なお、当該ステップＳ３の処理が第３の処理に相当する。
【００３３】
次に、図６に示すように、ＣＰＵ２は、有効化した記録ブロックに書き換え情報を記録し（ステップＳ４）、一連の処理を終了する。図５に示すように、本例では、有効化した記録ブロック４０の制御情報記録領域４２に制御情報「７７８８」を記録し、一連の処理を終了する。なお、当該ステップＳ４の処理が第４の処理に相当する。
【００３４】
この一連の処理の完了後、ＣＰＵ２は、有効とされている記録ブロック４０に記録されている制御情報「７７８８」を用いて、該当する車載機器を制御する。
次に、マイコン１の作用及び効果について説明する。
【００３５】
ツール９から接続モジュール５に対して書き換え情報が入力されたことを認識すると、ＣＰＵ２は、上記ステップＳ１〜Ｓ４の各処理を実行する。これにより、フラッシュメモリ３に記録される情報の書き換えは、記録ブロック３０に対して無効情報記録領域３３への１回の書き込み、記録ブロック４０に対して制御情報記録領域４２への１回の書き込みとなる。
【００３６】
従来のように、記録回数や記録ブロックの有効であることを示す情報を記録させる場合、あらたな制御情報が書き込まれる記録ブロック（本例では記録ブロック４０が相当する）に対して、書き換え情報及び記録回数や記録ブロックの有効であることを示す情報を記録させる必要があることから、少なくとも２回の書き込みが必要となる。
【００３７】
この点を鑑みると、本例のマイコン１は、従来よりもフラッシュメモリ３への書き換え回数が少ない。したがって、書き換えの回数が少なくなる分、フラッシュメモリ３の寿命が延びる。
【００３８】
ＣＰＵ２は、特定の制御対象の制御に使用される複数の記録ブロック１０，２０，３０，４０のうち、一つの記録ブロックに対してステップＳ３の処理を実施する。これにより、第２の記録領域がブランクとされる記録ブロックが複数個発生する状況が抑制される。このため、ＣＰＵ２は、特定の制御対象に対して好適な制御を実施することができる。
【００３９】
なお、上記実施形態は、以下のように変更してもよい。
・上記実施形態において、ＣＰＵ２は、特定の制御対象の制御に使用される複数の記録ブロックのうち、第２の記録領域がブランクとされている記録ブロックが複数ある場合に、報知処理を実施したが、必ずしも実施しなくてもよい。
【００４０】
なお、例えば、複数の電子キーに対して、車載機器の使用を許可する場合など、制御対象によっては、第２の記録領域がブランクとされている記録ブロックが複数ある方が好ましい場合もある。
【００４１】
・上記実施形態において、ＣＰＵ２は、複数の記録ブロックのうち一つの記録ブロックに対してステップＳ３の処理を実施したが、複数の記録ブロックに対して実施してもよい。
【００４２】
・上記実施形態において、ＣＰＵ２は、ステップＳ２の処理を実施した記録ブロックの次位の記録ブロックに対してステップＳ３の処理を実施したが、当該ステップＳ３の処理対象記録ブロックは、ステップＳ２の処理対象記録ブロックの次位に限るものではない。
【００４３】
・上記実施形態では、ある特定の制御対象の制御情報が書き換えられる場合について説明したため、接頭情報記録領域及び接尾情報記録領域は書き換えられなかったが、これら各記録領域は、制御情報記録領域と同様に書き換えられてもよい。
【００４４】
・上記実施形態において、無効情報記録領域には、第２の情報として、無効情報「５５」が記録されたが、ここに記録される情報は、統一されていなくてもよい。すなわち無効情報として書き換えた回数を記録して、当該回数をマイコン１に不具合が発生した場合の検討材料にしたり、フラッシュメモリ３の寿命判断に用いてもよい。このように、第２の情報が記録回数を示唆する情報であれば、当該情報を特定の制御対象以外の他の制御対象に利用することができる。
【００４５】
なお、書き換え最中の瞬断等により、正確な無効情報「５５」が記録されず、不正確な無効情報「ＸＸ」が記録される場合があるが、このように記録されても、その後のＣＰＵ２における制御対象への制御には影響がない。これは、無効情報記録領域に情報が記録されているか否かによりＣＰＵ２がその無効情報記録領域が所属する記録ブロックの有効性を判断するためである。したがって、本例の書き換え方法を用いるマイコン１は、書き換え最中の瞬断にも強い。
【００４６】
・上記実施形態において、フラッシュメモリ３は、マイコン１に内蔵されていたが、取り外しされるタイプであってもよい。
・上記実施形態において、マイコン１の適用先は、車両に限らない。
【００４７】
次に、上記実施形態及び上記別例より想起される技術的思想について記載する。
（イ）第２の記録領域に記録される第２の情報は記録回数とし、当該記録回数を特定の制御対象以外の他の制御対象に利用すること。
【符号の説明】
【００４８】
１…マイクロコンピュータ（マイコン、書き換え装置）、２…ＣＰＵ（制御部）、３…フラッシュメモリ、４…内蔵周辺Ｉ／Ｏ、５…接続モジュール、６…バス、９…ツール、１０，２０，３０，４０…記録ブロック、１１，２１，３１，４１…接頭情報記録領域、１２，２２，３２，４２…制御情報記録領域（第１の記録領域）、１３，２３，３３，４３…無効情報記録領域（第２の記録領域）、１４，２４，３４，４４…接尾情報記録領域。
【図１】
0006650354.tif 000002
【図２】
0006650354.tif 000003
【図３】
0006650354.tif 000004
【図４】
0006650354.tif 000005
【図５】
0006650354.tif 000006
【図６】
0006650354.tif 000007