(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-11
(45)【発行日】2022-01-24
(54)【発明の名称】制御装置および異常検出方法
(51)【国際特許分類】
G06F 11/14 20060101AFI20220117BHJP
B60R 16/02 20060101ALI20220117BHJP
【FI】
G06F11/14 641B
B60R16/02 660K
(21)【出願番号】P 2018048517
(22)【出願日】2018-03-15
【審査請求日】2020-12-22
(73)【特許権者】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】川村 篤史
(72)【発明者】
【氏名】梅山 重人
(72)【発明者】
【氏名】森 直人
(72)【発明者】
【氏名】養畑 裕紀
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2016-135657(JP,A)
【文献】特開2017-56847(JP,A)
【文献】特開2012-137034(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/14
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
起動時に不揮発性メモリから揮発性メモリへ読み出しデータを転送し、正常停止時に前記揮発性メモリから前記不揮発性メモリへ書き込みデータを転送する転送部と、
前記転送部によって前記読み出しデータが転送される場合に、前記不揮発性メモリ内の所定のデータ領域の値を更新し、前記書き込みデータが転送される場合に、前記不揮発性メモリ内の他のデータ領域の値を更新する更新部と、
前記起動時に前記所定のデータ領域の値と前記他のデータ領域の値とを比較することで、前回の停止時における前記揮発性メモリの停止異常を検出する検出部と
を備えることを特徴とする制御装置。
【請求項2】
前記転送部は、
前記停止異常が検出された場合に、一旦、転送した前記読み出しデータを代替値で上書きすること
を特徴とする請求項1に記載の制御装置。
【請求項3】
前記不揮発性メモリは、
前記起動時に前記読み出しデータが転送され、前記正常停止時に前記書き込みデータが転送される更新データ領域と、前記更新データ領域に対応付けられた識別領域と、要求に応じて前記読み出しデータと前記書き込みデータが転送される要求データ領域と、を有し、
前記更新部は、
前記起動時に前記更新データ領域から前記読み出しデータが転送された転送回数の累計値を前記要求データ領域に書き込み、前記正常停止時に前記書き込みデータが前記更新データ領域へ転送された転送回数の累計値を前記識別領域に書き込むこと
を特徴とする請求項1または2に記載の制御装置。
【請求項4】
前記起動時に前記揮発性メモリ内に記憶されたデータの総容量に基づき、前記データの破損の有無を判定する判定部
をさらに備え、
前記転送部は、
前記判定部によって前記データの破損がないと判定された場合に、前記読み出しデータの転送を行わないこと
を特徴とする請求項1、2または3に記載の制御装置。
【請求項5】
起動時に不揮発性メモリから揮発性メモリへ読み出しデータを転送し、正常停止時に前記揮発性メモリから前記不揮発性メモリへ書き込みデータを転送する転送工程と、
前記転送工程によって前記読み出しデータが転送される場合に、前記不揮発性メモリ内の所定のデータ領域の値を更新し、前記書き込みデータが転送される場合に、前記不揮発性メモリ内の他のデータ領域の値を更新する更新工程と、
前記起動時に前記所定のデータ領域の値と前記他のデータ領域の値とを比較することで、前回の停止時における前記揮発性メモリの停止異常を検出する検出工程と
を含むことを特徴とする異常検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置および異常検出方法に関する。
【背景技術】
【0002】
従来、不揮発性メモリは書き込み回数に制限があるため、不揮発性メモリから揮発性メモリにデータを一旦転送し、揮発性メモリ上でデータの更新を行う制御装置がある(例えば、特許文献1参照)。
【0003】
かかる制御装置では、電源が正常に遮断される場合、揮発性メモリから不揮発性メモリにデータを転送することで、不揮発性メモリに遮断直前の最新のデータを格納させる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、電源瞬断等の停止異常を検出することができなかった。かかる停止異常では、前回正常に停止したときのデータを不揮発性メモリから揮発性メモリに転送するおそれがあり、停止異常前のデータを引き継ぐことができない。
【0006】
本発明は、上記に鑑みてなされたものであって、停止異常を検出することができる制御装置および異常検出方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、実施形態に係る制御装置は、転送部と、更新部と、検出部とを備える。前記転送部は、起動時に不揮発性メモリから揮発性メモリへ読み出しデータを転送し、正常停止時に前記揮発性メモリから前記不揮発性メモリへ書き込みデータを転送する。前記更新部は、前記転送部によって前記読み出しデータが転送される場合に、前記不揮発性メモリ内の所定のデータ領域の値を更新し、前記書き込みデータが転送される場合に、前記不揮発性メモリ内の他のデータ領域の値を更新する。前記検出部は、前記起動時に前記所定のデータ領域の値と前記他のデータ領域の値とを比較することで、前回の停止時における前記揮発性メモリの停止異常を検出する。
【発明の効果】
【0008】
本発明によれば、停止異常を検出することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、異常検出方法の概要を示す図である。
【
図3】
図3は、不揮発性メモリの構成例を示す模式図である。
【
図4】
図4は、正常時におけるメモリ制御部の処理の具体例を示す図である。
【
図6】
図6は、制御装置が実行する処理手順を示すフローチャート(その1)である。
【
図7】
図7は、制御装置が実行する処理手順を示すフローチャート(その2)である。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して、実施形態に係る制御装置および異常検出方法について説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【0011】
まず、
図1を用いて実施形態に係る異常検出方法の概要について説明する。
図1は、異常検出方法の概要を示す図である。本実施形態に係る異常検出方法は、後述する制御装置によって実行される。また、以下では、制御装置が車両の制御に用いられる各種データを記憶する場合について説明する。
【0012】
図1に示すように、実施形態に係る異常検出方法は、起動時(例えば、IG-ON)に書き換え可能な不揮発性メモリM1から揮発性メモリM2へ読み出しデータを転送する。そして、実施形態に係る異常検出方法は、正常停止時(例えば、IG-OFF)に揮発性メモリM2から不揮発性メモリM1へ書き込みデータを転送する。
【0013】
これは、不揮発性メモリM1には、書き込み回数に上限があり、揮発性メモリM2よりも読み出し・書き込み処理に時間がかかるためである。すなわち、実施形態に係る制御装置1(
図2参照)は、起動時に不揮発性メモリM1から揮発性メモリM2にデータを一旦転送し、揮発性メモリM2内で読み出し・書き込みを行う。
【0014】
そして、実施形態に係る制御装置1は、正常停止時に揮発性メモリM2に格納されたデータを不揮発性メモリM1へ転送する。このように、実施形態に係る制御装置1は、不揮発性メモリM1の書き込み・読み出し回数を最小限にとどめることで、不揮発性メモリM1の書き込み回数を削減しつつ、読み出し・書き込み処理の高速化を図ることができる。
【0015】
しかしながら、例えば、電源瞬断等の停止異常が発生した場合、揮発性メモリM2に格納されたデータを不揮発性メモリM1へ格納することができない場合がある。
【0016】
具体的には、実施形態に係る制御装置1は、IGスイッチに連動してバッテリから電源が供給され、IGスイッチOFFを検出すると、揮発性メモリM2に格納されたデータを不揮発性メモリM1へ格納する処理を行った後、電源を遮断する。例えば、バッテリ電圧が低下した場合、制御装置1に対する電源の供給が遮断され、電源瞬断が発生する。
【0017】
かかる電源瞬断の時間が所定時間以上続くと、揮発性メモリM2の書き込みデータを不揮発性メモリM1へ転送することなく、制御装置1が再起動する場合がある。
【0018】
かかる場合に、電源の回復に伴い制御装置1が、再起動すると、不揮発性メモリM1から揮発性メモリM2へ読み出しデータを転送するが、この読み出しデータは前回の起動時に読み出されたデータであって、瞬断直前に揮発性メモリM2に格納されていたデータと異なっている。
【0019】
したがって、再起動前の揮発性メモリM2に格納されていた最新のデータと異なるデータが揮発性メモリM2に書き込まれる。つまり、停止異常時において、揮発性メモリM2は停止異常前のデータを引き継ぐことができない場合がある。
【0020】
そこで、実施形態に係る異常検出方法では、電源瞬断等の停止異常を検出することとした。つまり、実施形態に係る異常検出方法では、読み出しデータの転送時および書き込みデータの転送時で異なるデータ領域の値を更新し、かかる値を比較することで停止異常を検出することとした。
【0021】
具体的には、
図1に示すように、実施形態に係る異常検出方法では、起動時において不揮発性メモリM1内のデータ領域Ra1の値とデータ領域Ranの値とを比較する(ステップS11)。
【0022】
後述するように、例えば、データ領域Ra1の値は、起動時に更新される値であり、データ領域Ranの値は、正常終了時に更新される値である。
【0023】
図1に示す例では、データ領域Ra1の値とデータ領域Ranの値とが共に「A」である場合について示している。例えば、実施形態に係る異常検出方法では、データ領域Ra1の値とデータ領域Ranの値とが一致する場合に、前回の停止が正常停止であることを識別することができる。
【0024】
続いて、実施形態に係る異常検出方法では、前回の停止が正常停止であった場合に、データ領域Ra1の値を更新する(ステップS12)。同図に示す例では、データ領域Ra1の値を「A→A+1」へ更新する場合について示している。
【0025】
そして、実施形態に係る異常検出方法では、不揮発性メモリM1のデータ領域Ranに格納されたデータを揮発性メモリM2へ転送する(ステップS13)。
【0026】
その後、実施形態に係る異常検出方法では、揮発性メモリM2内でデータの読み出し・書き込みを行う。そして、実施形態に係る異常検出方法では、IGスイッチOFFを検出すると、終了動作へ移行する。
【0027】
具体的には、実施形態に係る異常検出方法では、揮発性メモリM2に格納されたデータを不揮発性メモリM1のデータ領域Ranへ転送する(ステップS21)。実施形態に係る異常検出方法では、かかる転送が正常に完了した場合に、データ領域Ranの値を更新する(ステップS22)。
【0028】
同図に示す例では、データ領域Ranを「A→A+1」へ更新し、更新後のデータ領域Ranの値とデータ領域Ra1の値とが一致する場合について示している。
【0029】
一方、上述のように、異常終了時においては、揮発性メモリM2から不揮発性メモリM1へデータが転送されず、データ領域Ranの値は更新されない。
【0030】
このため、次回の起動時においてデータ領域Ra1の値とデータ領域Ranの値とを比較すると、データ領域Ra1の値はA+1であり、データ領域Ranの値はAとなっており、両者は異なる値となる。
【0031】
したがって、実施形態に係る異常検出方法では、データ領域Ra1の値とデータ領域Ranとの値を比較することで、停止異常を検出することが可能となる。
【0032】
なお、ここでは、起動時にデータ領域Ra1の値を更新し、正常終了時にデータ領域Ranの値を更新する場合について説明したが、これに限定されず、起動時にデータ領域Ranの値を更新し、正常終了時にデータ領域Ra1の値を更新することにしてもよい。
【0033】
次に、
図2を用いて実施形態に係る制御装置1の構成例について説明する。
図2は、制御装置1のブロック図である。
図2に示すように、制御装置1は、メモリ制御部2と、アプリ制御部3と、不揮発性メモリM1と、揮発性メモリM2とを備える。
【0034】
アプリ制御部3は、例えば、車両全体を制御する機能を備え、メモリ制御部2を介して揮発性メモリM2から各種制御に必要なデータを読み出す。また、アプリ制御部3は、各種制御の制御結果を揮発性メモリM2に書き込むことでかかる制御結果を揮発性メモリM2に記憶させる。
【0035】
メモリ制御部2は、判定部21、転送部22と、更新部23と、検出部24とを備える。メモリ制御部2およびアプリ制御部3は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、データフラッシュ、入出力ポートなどを有するコンピュータや各種の回路を含む。
【0036】
コンピュータのCPUは、例えば、ROMに記憶されたプログラムを読み出して実行することによって、メモリ制御部2の判定部21、転送部22、更新部23、検出部24およびアプリ制御部3として機能する。
【0037】
また、メモリ制御部2の判定部21、転送部22、更新部23、検出部24およびアプリ制御部3の少なくともいずれか一つまたは全部をASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェアで構成することもできる。なお、制御装置1は、有線や無線のネットワークで接続された他のコンピュータや可搬型記録媒体を介して上記したプログラムや各種情報を取得することとしてもよい。
【0038】
メモリ制御部2の判定部21は、起動時に揮発性メモリM2に記憶されたデータの総容量に基づき、データの破損の有無を判定し、判定結果に基づいて転送部22に対してデータの転送を指示する。
【0039】
具体的には、まず、判定部21は、起動している期間に、揮発性メモリM2内に記憶されているデータのビット数の合計値(以下、SUM値という)を計算し、揮発性メモリM2内の所定領域に書き込む。
【0040】
その後、電源のオフ期間を介して、再度、起動したタイミングで、判定部21は、SUM値を計算し、かかるSUM値と所定領域に書き込んだSUM値とを比較する。
【0041】
このとき、電源のオフ期間が所定期間よりも長ければ、揮発性メモリM2に記憶されたデータは消失するので、揮発性メモリM2に書き込んだSUM値も消失する。
【0042】
一方、電源のオフ期間が所定期間よりも短ければ、揮発性メモリM2に記憶されたデータは保持される。このため、再度算出したSUM値と揮発性メモリM2に書き込んだSUM値とが一致していれば、揮発性メモリM2に記憶されたデータは破損していないことを意味する。
【0043】
すなわち、かかる場合に、揮発性メモリM2に記憶されたデータは、前回停止直前のデータがそのまま保持されていることになる。このため、かかる場合に、判定部21は、転送部22に対して不揮発性メモリM1から揮発性メモリM2へのデータの転送を指示しない。
【0044】
一方、再度算出したSUM値が揮発性メモリM2に書き込んだSUM値よりも小さい値である場合や、かかるSUM値が「0」である場合、一部または全てのデータが消失したことを意味する。かかる場合に、判定部21は、転送部22に対して不揮発性メモリM1から揮発性メモリM2へのデータの転送を指示する。
【0045】
つまり、判定部21は、揮発性メモリM2内に記憶されたデータの少なくとも一部が消失している場合のみ、転送部22に対して不揮発性メモリM1から揮発性メモリM2へのデータの転送を指示する。
【0046】
これにより、上述のように停止異常が発生した場合であっても、瞬断発生前の揮発性メモリM2の内容が保持されている限り不揮発性メモリM1から揮発性メモリM2へ転送を行わないので、瞬断発生前に揮発性メモリM2に記憶されたデータが上書きされることを抑制することが可能となる。
【0047】
なお、判定部21は、例えば、揮発性メモリM2に記憶されたデータに対応付けられたパリティービットに基づいてデータの破損の有無を検出することにしてもよい。
【0048】
転送部22は、起動時に不揮発性メモリM1から揮発性メモリM2へ読み出しデータを転送し、揮発性メモリM2の正常停止時に揮発性メモリM2から不揮発性メモリM1へ書き込みデータを転送する。
【0049】
転送部22は、例えば、車両のIG-ONを契機として不揮発性メモリM1から揮発性メモリM2へ読み出しデータを転送し、車両のIG-OFFを契機として揮発性メモリM2から不揮発性メモリM1へ書き込みデータを転送する。
【0050】
また、転送部22は、検出部24によって停止異常が検出された場合、不揮発性メモリM1から揮発性メモリM2へ転送した読み出しデータを図示せぬROMに予め格納されている代替値で上書きする。かかる点の詳細については、
図5Aおよび
図5Bを用いて後述する。
【0051】
次に、メモリ制御部2の更新部23および検出部24の説明に先立って不揮発性メモリM1および揮発性メモリM2について説明しておく。
【0052】
不揮発性メモリM1は、例えば、データフラッシュ(Data Flash)である。不揮発性メモリM1は、書き込み・消去が可能であり、電源が遮断されても記憶内容が保持される。
【0053】
ここで、
図3を用いて実施形態に係る不揮発性メモリM1の構成例について説明する。
図3は、不揮発性メモリM1の構成例を示す模式図である。
図3に示すように、不揮発性メモリM1は、複数のデータ領域Ra1~Ranを備える。
【0054】
例えば、データ領域Ra1~Ra3は、同一種類のデータが格納される。また、
図2に示したアプリ制御部3の要求に応じてデータ領域Ra1~Ra3のうち、いずれかのデータ領域のデータが更新される。
【0055】
すなわち、データ領域Ra1~Ra3は、要求に応じてデータが揮発性メモリM2へ転送されるとともに、揮発性メモリM2からデータが転送される。このため、以下では、データ領域Ra1~Ra3について、要求データ領域Rrと記載する。
【0056】
また、データ領域Ra1~Ra3は、制御に使用するデータ等を記憶するデータ記憶領域Rd1~Rd3と、それぞれ対応する識別領域Rs1~Rs3からなる。識別領域Rs1~Rs3には、要求データ領域Rrおよび揮発性メモリM2間でデータが更新された回数の累計値が書き込まれる。
【0057】
すなわち、最新のデータであるほど、識別領域Rs1~Rs3に書き込まれる累計値が大きくなる。このため、後述のアプリ制御部3は、識別領域Rs1~Rs3に書き込まれた累計値を比較することで、どの識別領域Rs1~Rs3が最新のデータを記憶しているかを容易に判定することができる。
【0058】
そして、データを読出すときは、識別領域Rs1~Rs3の値に基づき最新のデータが記憶されているデータ領域Raを判定して、そのデータ記憶領域Rdのデータを読み出す。なお、要求データ領域Rrは、2つ以上であってもよく、また、要求データ領域Rrは2つ以下や4つ以上のデータ領域Raを備えることにしてもよい。
【0059】
また、データ領域Ranは、データ記憶領域Rdnと、識別領域Rsnからなる。データ記憶領域Rdnは、起動時に揮発性メモリM2へデータが転送され、停止時に、揮発性メモリM2に格納されたデータが転送される領域である。
【0060】
その後、データ記憶領域Rdnから揮発性メモリM2へ転送されたデータは、揮発性メモリM2内でアプリ制御部3によって更新され、正常停止時に更新後のデータがデータ領域Ranに転送される。
【0061】
識別領域Rsnは、揮発性メモリM2からデータが転送された回数が記憶される領域である。例えば、識別領域Rsnに記憶される値は、揮発性メモリM2からデータが転送された場合に、更新される。なお、以下、データ領域Ranについて更新データ領域Ranとも記載する。
【0062】
図2の説明に戻り、揮発性メモリM2について説明する。揮発性メモリM2は、例えば、RAMであり、制御装置1の起動時において不揮発性メモリM1に記憶された所定の読み出しデータが転送される。
【0063】
すなわち、実施形態に係る制御装置1は、正常停止時の処理の一環として揮発性メモリM2の最新のデータを不揮発性メモリM1の更新データ領域Ranのデータ記憶領域Rdnへ転送する。
【0064】
そして、不揮発性メモリM1に書き込まれたかかる最新のデータは、次のIG-ON時に、揮発性メモリM2に書き込まれることとなる。これにより、アプリ制御部3は、IG-ON時に前回のIG-OFF時の制御結果を引き継いで、車両を制御することが可能となる。
【0065】
メモリ制御部2の更新部23は、転送部22によってデータ記憶領域Rdnから読み出しデータが揮発性メモリM2に転送される場合に、不揮発性メモリM1内の所定のデータ領域Ra(例えば、データ領域Ra1~Ra3のいずれかのデータ記憶領域Rd)の値を更新し、書き込みデータが転送される場合に、不揮発性メモリM1内の他のデータ領域Ra(例えば、データ領域Ranにおける識別領域Rsn)の値を更新する。
【0066】
検出部24は、起動時に所定のデータ領域Raの値と他のデータ領域Raの値とを比較することで、前回の停止時における揮発性メモリM2の停止異常を検出する。
【0067】
ここで、
図4を用いてメモリ制御部2による一連の動作について説明する。
図4は、正常時におけるメモリ制御部2の処理の具体例を示す図である。また、ここでは、不揮発性メモリM1を簡略化して示す。
【0068】
図4に示すように、メモリ制御部2は、起動すると、要求データ領域Rrに記憶された値と、更新データ領域Ranに記憶されたデータとを比較する。
【0069】
同図に示す例では、要求データ領域Rrであるデータ領域Ra1のデータ記憶領域Rd1に記憶された値と、更新データ領域Ranの識別領域Rsnに記憶された値がともに「50」である。
【0070】
したがって、メモリ制御部2は、双方の値が一致するため、前回の停止が正常だったことを認識する。続いて、更新部23は、データ領域Ra1の値を、更新データ領域Ranの識別領域Rsnに記憶されている値に1加算した値に更新、すなわち「50」を「50→51」へ更新し、転送部22は、更新データ領域Ranのデータ記憶領域Rdnに記憶されたデータ(ここでは、「100」)を揮発性メモリM2へ転送する。
【0071】
揮発性メモリM2に転送されたデータ「100」は、アプリ制御部3によって「70」へ更新され、IG-OFF時にデータ記憶領域Rdnへ転送される。
【0072】
そして、データ記憶領域Rdnへのデータ転送が終わると、更新部23は、更新データ領域Ranの識別領域Rsnの値「50」を「50→51」へ更新する。すなわち、更新データ領域Ranの識別領域Rsnの値は、揮発性メモリM2から更新データ領域Ranへデータが転送された回数の累計値となる。
【0073】
つまり、要求データ領域Rrの値が、更新データ領域Ranから揮発性メモリM2へデータが転送された回数の累計値となり、更新データ領域Ranの値が揮発性メモリM2から更新データ領域Ranへデータが転送された回数の累計値となる。
【0074】
このため、正常停止時後に、双方の値を比較すると、双方の値が等しくなり、異常停止時後に、双方の値を比較すると、双方の値が等しくならず、更新データ領域Ranの識別領域Rsnの値が、要求データ領域Rrの値よりも少なくなる。
【0075】
したがって、検出部24は、双方の値を比較することで、前回の停止が正常か異常かを容易に判定することが可能となる。
【0076】
次に、
図5Aおよび
図5Bを用いて異常対応処理の具体例について説明する。
図5Aは、異常対応処理の具体例を示す図である。
図5Bは、代替値の具体例を示す図である。
【0077】
図5Aに示すように、検出部24は、起動時に更新データ領域Ranの値が、要求データ領域Ra1の値よりも少ない場合、前回の停止が停止異常であったことを検出する。
【0078】
このとき、更新部23は、要求データ領域Ra1のデータ記憶領域Rd1の値を更新データ領域Ranの識別領域Rsnに記憶されている値に1加算した値に更新する。同図に示す例では、起動時のデータ記憶領域Rd1の値が「51」であり、識別領域Rsnの値が「50」である。
【0079】
このため、結果的に、データ記憶領域Rd1の値が「51」から「51」へ更新されたこととなる。続いて、転送部22は、データ記憶領域Rdnに記憶されたデータ(「100」)を揮発性メモリM2へ転送する。
【0080】
その後、転送部22は、揮発性メモリM2へ転送したデータを図示しないROMに記憶された代替値(「80」)で上書きする。例えば、
図5Bに示すように、上記のROMには、変速機は、代替値が「xxx」として記憶されているものの、ダイアグ情報については、代替値が記憶されていない。例えば、変速機が、5段の変則ギアを備え、前回の正常停止時の変速機の状態が1段(低速走行)であり、停止異常前の変速機の状態が5段(高速走行)である場合を想定する。
【0081】
かかる場合に、仮に、停止異常後の再起動時に、揮発性メモリM2に変速機が1段であることを示すデータが転送された場合、変速機が5段から1段に切り替えられる場合がある。かかる場合に、車両の急減速を招く恐れがあり、ドライバに違和感を与えるおそれがある。
【0082】
このため、転送部22は、変速機の代替値として例えば、1~5段の中間値である3段を揮発性メモリM2に上書きする。これにより、上記の急減速を抑制することができるので、ドライバに与える違和感を軽減することができる。すなわち、代替値は、車両の挙動が急激に変化することを防ぐフェールセーフ値である。なお、代替値については、任意に設定することが可能である。
【0083】
一方、転送部22は、ダイアグ情報等の現在の車両の制御に直結しない情報については、代替値に上書きせず、例えば、前回正常停止時の読み出しデータがそのまま使用される。このように、転送部22は、停止異常が検出された場合、車両の制御に直結するデータ項目について代替値で上書きする。
【0084】
これにより、アプリ制御部3は、停止異常が生じた場合であっても、車両の挙動を急激に変えることなく制御することが可能となる。なお、代替値は、図示しないROMに格納されるが、不揮発性メモリM1の所定の領域に格納されていてもよく、その他の不揮発性メモリに格納されていてもよい。
【0085】
次に、
図6および
図7を用いて実施形態に係る制御装置1が実行する処理手順について説明する。
図6および
図7は、制御装置1が実行する処理手順を示すフローチャートである。
【0086】
まず、
図6を用いて起動時に行う処理手順について説明する。
図6に示すように、まず、メモリ制御部2の判定部21は、揮発性メモリM2のデータに破損があるか否かを判定する(ステップS101)。ここで、データが破損していない場合(ステップS101、No)、電源の瞬断が発生したが揮発性メモリM2のデータは正常に記憶されていると判断し、要求データ領域Rrの値を更新して(ステップS104)、処理を終了する。
【0087】
一方、データが破損していた場合(ステップS101,Yes)、転送部22は、更新データ領域Ranから揮発性メモリM2へデータを転送する(ステップS102)。
【0088】
続いて、検出部24は、要求データ領域Rrの値と識別領域Rsnの値とが一致しているか否かを判定する(ステップS103)。ここで、双方の値が一致していた場合(ステップS103,Yes)、更新部23は、前回の終了が正常であったと判断し、要求データ領域Rrの値を更新し(ステップS104)、処理を終了する。
【0089】
一方、双方の値が一致していなかった場合(ステップS103,No)、転送部22は、前回の終了が異常終了であったと判断し、一旦、揮発性メモリM2へ一旦転送したデータを代替値で上書きする(ステップS105)。その後、要求データ領域Rrの値を更新し(ステップS104)、処理を終了する。
【0090】
続いて、
図7を用いて正常停止時における制御装置1の処理について説明する。
図7に示すように、転送部22は、揮発性メモリM2の停止指示を取得すると(ステップS201)、揮発性メモリM2に記憶されたデータを不揮発性メモリM1の更新データ領域Ranへ転送する(ステップS202)。
【0091】
なお、停止指示とは、例えば、車両のIG-OFFを意味する。続いて、更新部23は、更新データ領域Ranの識別領域Rsnの値を更新して(ステップS203)、処理を終了する。
【0092】
上述したように、実施形態に係る制御装置1は、転送部22と、更新部23と、検出部24とを備える。転送部22は、起動時に不揮発性メモリM1から揮発性メモリM2へ読み出しデータを転送し、正常終了時に揮発性メモリM2から不揮発性メモリM1へ書き込みデータを転送する。
【0093】
更新部23は、転送部22によって読み出しデータが転送される場合に、不揮発性メモリM1内の所定のデータ領域Raの値を更新し、書き込みデータが転送される場合に、不揮発性メモリM1内の他のデータ領域Raの値を更新する。
【0094】
検出部24は、起動時に所定のデータ領域Raの値と他のデータ領域Raの値とを比較することで、前回の停止時における揮発性メモリM2の停止異常を検出する。したがって、実施形態に係る制御装置1によれば、停止異常を検出することができる。
【0095】
ところで、上述した実施形態では、制御装置1が車載用の制御装置である場合について説明したが、これに限定されず、その他の制御装置にも本発明を適用することが可能である。
【0096】
また、上述した実施形態では、要求データ領域Rrの値と、更新データ領域Ranの値とが一致する場合に、停止異常を検出する場合について説明したが、これに限定されるものではない。
【0097】
すなわち、要求データ領域Rrの値と更新データ領域Ranの値とを所定の規則に則って更新することにすれば、要求データ領域Rrの値と更新データ領域Ranの値とが同じ場合に、停止異常を検出することにしてもよい。
【0098】
また、上述した実施形態では、要求データ領域Rrの値と更新データ領域Ranの値とをそれぞれ更新する場合について説明したが、かかる値を記憶するのは、要求データ領域Rrや更新データ領域Ranに限られず、不揮発性メモリM1内の任意の領域であってもよい。
【0099】
また、上述した実施形態では、停止異常を検出したとき揮発性メモリM2のデータをROMに記憶された代替値で上書きするようにしたが、ROMではなくデータフラッシュに代替値を記憶しておき、データフラッシュから代替値を転送して上書きしてもよい。
【0100】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【0101】
1 制御装置
2 メモリ制御部
5 アプリ制御部
21 判定部
22 転送部
23 更新部
24 検出部
M1 不揮発性メモリ
M2 揮発性メモリ