JP5585941B2 - プログラム - Google Patents

プログラム Download PDF

Info

Publication number
JP5585941B2
JP5585941B2 JP2011105305A JP2011105305A JP5585941B2 JP 5585941 B2 JP5585941 B2 JP 5585941B2 JP 2011105305 A JP2011105305 A JP 2011105305A JP 2011105305 A JP2011105305 A JP 2011105305A JP 5585941 B2 JP5585941 B2 JP 5585941B2
Authority
JP
Japan
Prior art keywords
vehicle
data
stored
information
binary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011105305A
Other languages
English (en)
Other versions
JP2012236451A (ja
Inventor
亮太 浅井
信人 山口
雄介 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2011105305A priority Critical patent/JP5585941B2/ja
Publication of JP2012236451A publication Critical patent/JP2012236451A/ja
Application granted granted Critical
Publication of JP5585941B2 publication Critical patent/JP5585941B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、プログラムに関する。
車両の電子制御ユニット(ECU: Electric Control Unit)では、イグニッションオフされたときに、揮発性メモリ上のユーザ設定や諸元等の車両情報を不揮発性メモリに記憶させ、再度イグニッションオンされた時に不揮発性メモリ上の車両情報を揮発性メモリに戻す。例えば下記特許文献1には、車両の情報を揮発性メモリから不揮発性メモリに短時間で移す技術が開示されている。
特開2006−193017号公報
車載等の組み込みソフトではメモリ容量の制限が厳しく、不揮発性メモリに記憶できるデータ量は限られている。また車両の電子制御装置の場合、不揮発性メモリは通常のメモリとは別に搭載するため、コスト面の制約から容量のより大きな不揮発性メモリに変更することは容易ではない。
したがって、記憶すべきデータを圧縮する必要がある。一般にデータを圧縮する技術として、例えば画像圧縮技術のJPEGやファイル圧縮技術のzipが知られているが、処理負荷や必要なROMサイズが大きく、車載ソフトに用いるのは適当ではない。またJPEGやzipでは圧縮の必要のないデータまで圧縮する欠点も有している。
車載ソフトでは、機能やバリエーションの増加やソフトウェアの再利用性を向上させるための技術として例えばオブジェクト指向の導入が考えられるが、その場合記憶したいデータ量は今後ますます多くなる。よって、オブジェクト指向のソフトウェアを含む車載用のソフトウェアにおいて、不揮発性メモリに記憶するデータを効果的に圧縮する技術の開発が必要である。上記特許文献1では、車両故障時における揮発性メモリから不揮発性メモリへの情報移動のみを扱っており、車両故障時以外は対象外である。
そこで本発明が解決しようとする課題は、上述の項目を鑑み、車両の電子制御装置の揮発性メモリに記憶された情報を不揮発性メモリに記憶する際に、従来技術における記憶手法よりも不揮発性メモリが小容量化でき、記憶処理の処理負荷や処理時間も低減できるプログラムを提供することにある。
上記課題を達成するために、本発明に係るプログラムは、車両に装備された電子制御装置が有する揮発性メモリに記憶された、前記車両の車載機器の制御状態を示す複数のデータのそれぞれに対して異なった2進数を割り当て、その2進数のビット数は全ての前記データに異なった2進数値を割り当てられる最小のビット数とする割り当てステップと、前記車両の駆動部の停止時に、前記車両に備えられた不揮発性メモリに、前記割り当てステップで求められた2進数値を記憶する記憶ステップと、を車両に装備されたコンピュータに実行させることを特徴とする。
これにより本発明に係るプログラムでは、車両の電子制御装置の揮発性メモリに記憶された、車載機器の制御状態を示す複数のデータに異なった2進数を最小のビット数で割り当て、車両の駆動部の停止時に不揮発性メモリにその2進数を記憶する。したがって従来技術のようにオブジェクトのポインタをそのまま記憶したり、データ全体をzip等で圧縮するのではなく、記憶すべきデータのうち圧縮する必要のあるデータのみを最小のビット数で記憶できる。よって不揮発性メモリに容量を低減でき、さらには記憶処理における処理負荷や処理時間も低減することができる。特に車載機器の場合、とり得る制御状態の数は相対的に少ない場合が多いため、少ないビット数の2進数に圧縮でき、メモリ容量の制約が厳しい車載組み込みソフトに対して本発明はきわめて有効である。
また前記車両の駆動部の始動時に、前記不揮発性メモリに記憶された前記2進数の情報を、その2進数に関連付けられた前記車載機器の制御状態を示すデータの情報に変換して、前記揮発性メモリに復元する復元ステップを、車両に装備されたコンピュータに実行させるとしてもよい。
この発明によれば、車両の駆動部の停止時に不揮発性メモリに2進数として記憶されたデータを、駆動部の始動時に揮発性メモリに車載機器の制御情報として復元するので、最小ビット数の2進数の読み出しでよく、復元処理における処理負荷や処理時間が低減できる。
また前記データの数に応じて、全ての前記異なった2進数値を記述できるビット数を算出する算出ステップを、車両に装備されたコンピュータに実行させるとしてもよい。
この発明によれば、車両の電子制御装置の揮発性メモリに記憶された複数のデータに異なった2進数を最小のビット数で割り当てる際に、データの数に応じて最小ビット数を自動的に算出する。したがって車両における各種システム構成を変更してもプログラムを変更する必要がなく、システム変更に自動的に適切に対応するプログラムが実現できる。
また前記割り当てステップは、車両に装備された電子制御装置が有する揮発性メモリに記憶された、前記車両の車載機器の複数の設定値のそれぞれに対して、異なった2進数を割り当て、その2進数のビット数は、不揮発性メモリに記憶すべき全ての設定値に異なった2進数値を割り当てられる最小のビット数とする設定値割り当てステップを含むとしてもよい。
この発明によれば、車両の駆動部の停止時に車載機器の制御状態を示すデータに最小ビット数の2進数を割り当てて不揮発性メモリに記憶するのみでなく、車載機器の設定値にも最小ビット数の2進数を割り当てて不揮発性メモリに記憶する。したがって駆動部停止時に記憶しておくべき重要な制御状態や設定値などの情報を最小ビット数で不揮発性メモリに記憶させることができ、不揮発性メモリの小容量化、記憶処理負荷、処理時間の低減を達成できる。
またオブジェクト指向のプログラム言語で記述されたプログラムであり、前記制御状態を示すデータは、そのプログラムにおけるオブジェクトであるとしてもよい。
この発明によれば、オブジェクト指向のプログラム言語で記述されたプログラムにおいて、車載機器の制御状態を示すオブジェクトに最小のビット数の2進数が割り当てられて、車両の駆動部の停止時に不揮発性メモリに記憶される。したがって車載ソフトウェアとして、機能やバリエーションの増加やソフトウェアの再利用性を向上させるための技術としてオブジェクト指向のプログラムが導入された状況において、従来技術のようにオブジェクトのポインタをそのまま記憶したり、データ全体をzip等で圧縮するのではなく、記憶すべきデータのうち圧縮する必要のあるデータのみを最小のビット数で記憶する。よって不揮発性メモリに容量を低減でき、さらには記憶処理における処理負荷や処理時間も低減することができる。特に車載機器の場合、とり得る制御状態の数は相対的に少ない場合が多いため、少ないビット数の2進数に圧縮でき、メモリ容量の制約が厳しい車載組み込みソフトに対して本発明はきわめて有効である。
また前記2進数値の情報量は前記オブジェクトのポインタの情報量よりも小さいとしてもよい。
この発明によれば、2進数値の情報量はオブジェクトのポインタの情報量よりも小さくするので、車両の電子制御装置の揮発性メモリに記憶された複数のオブジェクトを不揮発性メモリに記憶する際に、オブジェクトのポインタの情報量よりも小さい情報量の2進数で記憶する。したがって従来技術のようにオブジェクトのポインタをそのまま記憶する場合よりも不揮発性メモリに容量を低減でき、さらには記憶処理における処理負荷や処理時間も低減することができる。
本発明の記憶制御システムの一実施例における構成図。 車載装置の例を示す図。 スタックの状態の一例を示す図。 マップ作成処理の第1の例を示すフローチャート。 マップ作成処理の第2の例を示すフローチャート。 不揮発性メモリへの記憶処理の第1の例を示すフローチャート。 不揮発性メモリからの復元処理の第1の例を示すフローチャート。 不揮発性メモリへの記憶処理の第2の例を示すフローチャート。 不揮発性メモリからの復元処理の第2の例を示すフローチャート。 指数の割り当ての第1の例を示す図。 指数の割り当ての第2の例を示す図。 指数の割り当ての第3の例を示す図。 保存データの第1の例を示す図。 保存データの第2の例を示す図。 従来技術における保存データの例を示す図。
以下、本発明の実施形態を図面を参照しつつ説明する。まず図1は、本発明に係る記憶制御システムの装置構成の概略図である。
本発明に係る記憶制御システムは、車両2に、ECU2と、ECU2によって制御される車載装置3とを備える。また車両2はイグニッションスイッチ4と駆動部40を備える。駆動部40は例えばエンジンや電気的モータなどからなって車両の進行のために車輪を駆動する。ユーザがイグニッションスイッチ4をオン操作することにより駆動部40が始動する。
ECU2は、通常のコンピュータと同様の構造を有し、CPU20、RAM21、不揮発性メモリ22を備える。CPU20は車載装置3の制御に関する情報処理を行い、RAM21はCPU20の作業領域として機能する揮発性の記憶部(メモリ)である。不揮発性メモリ22は、例えばEEPROMなどによる不揮発性の記憶部であり、車載装置3の制御に関する各種データやプログラムを記憶する。
不揮発性メモリ22は、制御プログラム23、保存プログラム24、保存データ25を記憶(保存、格納)している。制御プログラム23は、車載装置3の制御を司るプログラムである。保存プログラム24は、RAM21に記憶された車載装置3の制御に関係する情報(のうちの一部)を不揮発性メモリ22に保存する処理を司るプログラムである。制御プログラム23と保存プログラム24とはRAM21にロードされてCPU20によって自動的に実行されるとすればよい。保存データ25は保存プログラム24を実行することによってRAM21から不揮発性メモリ22に移されるデータ(情報)である(詳細は後述)。
制御プログラム23は、オブジェクト指向のプログラム言語(例えばJava(登録商標)、C++など)によって記述されたプログラムである。したがって制御プログラム23は、(複数の)オブジェクト230a、230b、230c、・・を含む。個々のオブジェクト230a、230b、230c等は具体的には、例えば車載装置3のコンポーネント(後述)や車載装置3そのものや、その機能(あるいは制御状態)をプログラム内で表現したものとすればよい。
また制御プログラム23は、例えばスタック231や設定値関数232a、232b等を含む。スタック231は、例えば車載装置3における特定のコンポーネントにおける操作(機能、制御状態)の履歴を記憶する。設定値関数232a、232b等は車載装置3における各種設定値を表すプログラム内の関数(例えばオブジェクトが属するクラスで定義されたメンバ関数)である。
スタック231の例が図3に示されている。同図の例においては、オブジェクト230aから230fを車載エアコン装置における機能A、機能B、機能C、機能D、機能E、機能Fとしている。機能Aなどは具体的には、例えばオート機能などとすればよい。
スタック231はFILO(First In Last Out)の仕組みによって、機能A、機能B、機能C、機能D、機能E、機能Fのうちでユーザから選択された機能が、時間的に先のものほど図示下側に記憶されることにより例えば車載エアコン装置の制御状態の時間的推移が記憶される。図3の例ではユーザは順に機能A、機能D、機能Cを選択しており、その履歴がスタック231に記憶されている。
図1に戻って、車載装置3は車両2に装備された各種装置である。車載装置3の1つの具体例として図2に示された車載エアコン装置3aがある。車載エアコン装置3aは、車両2の車室内の空調を制御する。車載エアコン装置3aは、その部分的な構成部位(コンポーネント)を有する。コンポーネント30、31、32等の例として、ユーザが所望の車内温度を設定する温度設定部33、内外気の切替を行う吸込口34などを備える。以上の構成は車内通信によって接続されて情報の受け渡しが可能となっている。
図1の構成のもとで記憶制御システムは、車両1のイグニッションオフ時に、RAM21(揮発性メモリ)から不揮発性メモリ22に所定の車両情報を圧縮して保存データ25として移動して保存させる。そして再度イグニッションをオン操作したときに保存データ25をRAM21に復元して戻す。保存プログラム24が以上の保存、復元処理を実行する。保存プログラム24による処理手順例が図4から図9に示されている。
まず図4はマップ作成のための処理手順例を示す。ここでマップとは、不揮発性メモリ22への車両情報の記憶、不揮発性メモリ22からの車両情報の復元のために必要となる情報(の集まり)である。具体的には例えば、スタック231のサイズ、スタック231を使用するオブジェクト数、スタック231を使用する各オブジェクトに割り当てられた番号(あるいは指数)、不揮発性メモリ22における記憶開始場所(開始バイト位置とその中での開始ビット位置)等である。
図4の処理ではまずS10で、不揮発性メモリ22に記憶させる1組の情報を指定する。ここで1組の情報とは、車両の情報、あるいは車載装置3に関する情報とすればよい。図1の例の場合、例えばスタック231の状態が1組の情報であり、設定値関数232a、232bの数値が別の1組の情報である。なお1組の情報は複数の情報を有するものには限定せず、1個の情報のみを有するものも含むとする。
次にS20で不揮発性メモリ22における記憶開始場所を指定する。記憶開始場所は具体的には、開始バイト位置と、そのなかでの開始ビット位置とすればよい。
次にS30で記憶させる複数の情報に指数(番号)を割り振る。その例が図10から図12に示されている。図10の例では、スタック231に格納される可能性のある機能Aから機能Fに、指数1から6が割り振られている。図11の例では、設定値関数232aとしての設定温度において、摂氏16度から32度までに、指数1から17が割り振られている。図12の例では、設定値関数232bとしての吸込口状態において、内気、外気、半内気にそれぞれ指数1から3が割り振られている。
図4に戻って、次にS40で指数を2進数化する際のビット数を指定する。そしてS50で記憶する各情報の指数を2進数化(あるいは2進数に変換)する。その際、S40で指定したビット数の2進数とする。
図10の例では、機能Aから機能Fの指数1から6は、3ビットの2進数で表現できるので、001から110の2進数に変換されている。図11の例では、摂氏16度から32度までの指数1から17は5ビットの2進数で表現できるので、00001から10001の2進数に変換されている。図12の例では、内気、外気、半内気の指数1から3は2ビットの2進数で表現できるので、01から11の2進数に変換されている。
以上が図4の処理手順である。図4の処理では1組の情報ごとに指数を割り振り、その指数の2進数表現の際のビット数(記憶ビット数)を決定している。したがって図10から図12の例のように、例えばスタックの状態に対しては記憶ビット数は3、設定温度に対しては記憶ビット数は5、吸込口状態に対しては記憶ビット数は2と設定される。
なお図10から図12の例は全てのデータに指数が割り振ってある例だが、本発明はこれに限定せず、例えば重要度が低く、不揮発性メモリ22に記憶する必要性が低い(記憶しない)データには指数を割り振らなくともよい。
次に、図5の処理手順は図4におけるS40をS41からS44の手順に置き換えたものとなっている。図4では、保存プログラムを作成するプログラム側で、指数の2進数表現におけるビット数を指定したが、図5では、保存プログラム内で最小ビット数を算出する。以下で図4と異なる部分のみを説明する。
具体的にまずS41では変数bitSizeを1に設定する。そしてS42で、2のbitSize乗から1を減算した数値が指数の最大値(例えば図10の例ならば6)以上であるか否かを判定する。指数の最大値以上の場合(S42:YES)はS44に進み、指数の最大値未満の場合(S42:NO)はS43に進む。S43に進んだら変数bitSizeの値を1増加させて、再びS42に戻り、S42がYESになるまで同じ手順を繰り返す。S44に進んだら、その時点での変数bitSizeの値を、記憶する2進数のビット数とする。
以上が図5の処理手順である。図5の場合、例えばスタック231に記憶される機能数が変更された場合にも自動的に最小な記憶ビット数を算出するので、システム変更に対して自動的にかつ適切に対応できる。
次に、図6から図9を説明する。図6および図8には不揮発性メモリ22への圧縮保存処理の手順が、図7および図9には不揮発性メモリ22からの復元処理の手順が示されている。ただし、図6および図7においては記憶ビット数とデータ記憶位置をプログラム内で固定された数値とし、図8および図9においては記憶ビット数とデータ記憶位置を圧縮時に算出する。図6および図7は図4と組み合わされ、図8および図9は図5と組み合わされるとすればよい。
まず図6を説明する。図6には、イグニッションオフ時にRAM21内の所定の情報を不揮発性メモリ22へ記憶する処理の手順が示されている。図6の処理手順はイグニッションスイッチ4がオフされたら自動的に開始されるようにすればよい。
図6の処理ではまずS100でCPU20は保存データを0に初期化する。次にS110でCPU20は、保存データ25として記憶させる情報(上記の1組の情報)を取得する。次にS120でCPU20は、S110で取得した情報の不揮発性メモリ22における記憶開始場所を指定する。これは記憶する情報が何であるかに応じて予め決めておけばよい。
次にS130でCPU20は、情報から1つのデータ(元データ)を取得する。1つの元データとは、例えば上述の例では、スタック231に格納された1個の機能(機能Cなど)である。下記の変換の前のデータを元データと呼称している。
次にS140でCPU20は、元データに上述のS30で指数が割り当てられているか否かを判定する。指数が割り当てられている場合(S140:YES)はS150に進み、指数が割り当てられていない場合(S140:NO)はS160に進む。
S150に進んだらCPU20は、不揮発性メモリ22に記憶するために元データを変換する。具体的には、元データに割り振られた指数を変換後のデータ(以下、変換データ)とする。そしてS170でCPU20は、変換データを記憶ビットサイズの2進数に圧縮する。この処理で取得される2進数は上述のS50で定めた2進数とすればよい。
一方S160に進んだらCPU20は、指数が割り当てられていないデータを無視して、次のデータを詰めるか否かを判定する。次のデータを詰める場合(S160:YES)は、変換データに何の操作も施さずにS210へ進む。次のデータを詰めない場合(S160:NO)は、S180に進んで変換データをゼロとする。S180が終了したらS190へ進む。
S190でCPU20は、保存データを記憶ビットサイズ分左にシフトする。そしてS200で、シフトの結果右側に空いたビットに、変換データが圧縮された2進数を代入する。そしてS210でCPU20は、圧縮していないデータがまだあるか否かを判定する。圧縮していないデータがまだある場合(S210:YES)はS130へ戻って上記手順を繰り返す。圧縮していないデータがない場合(S210:NO)はS220へ進む。
S220でCPU20は、以上の処理によりRAM21内で作成した保存データ25を不揮発性メモリ22に記憶させる。次にS230でCPU20は、圧縮していない情報(上述の1組の情報)がまだあるか否かを判定する。圧縮していない情報がまだある場合(S230:YES)はS100に戻って上記手順を繰り返す。圧縮していない情報がもうない場合(S230:NO)は図6の処理を終了する。
以上述べた図6の処理では、予めエンジニア(プログラマ)が保存プログラム24内に、設定された記憶ビットサイズを記述しておき、それにしたがって各データに2進数が指定されて、それが不揮発性メモリ22に記憶される。したがって予め記憶ビットサイズが設定されており、相対的に簡略化された処理となる。この場合、保存プログラム24は、図4と図6(と図7)を組み合わせて作成すればよい。
次に図7を説明する。図7には、再度イグニッションオンにした時に不揮発性メモリ22内の保存データ25を復元してRAM21へ戻す処理の手順が示されている。図7の処理はイグニッションスイッチ4がオンされたら自動的に開始されるようにすればよい。
図7の処理ではまずS300でCPU20は、保存データ25のなかの復元する情報(上述の1組の情報)を指定する。次にS310でCPU20は、S20で指定された情報の保存データ25内における記憶開始場所(開始バイト位置と、そのなかの開始ビット位置)の情報を取得する。
次にS320でCPU20は、S310で取得された位置から記憶ビットサイズ分の2進数を取得する。そしてS330でCPU20は、取得した2進数に指数が割り振られている否かを判定する。指数が割り振られている場合(S330:YES)はS340に進み、指数が割り振られていない場合(S330:NO)はS350に進む。
S340に進んだらCPU20は、取得したデータの指数から元データを復元する。具体的には例えば図10から図12に示されたような、データと2進数の関係からデータ(元データ)を復元する。S350に進んだ場合、CPU20は元データを0とする。続いてS360でCPU20は、元データをRAM21に戻す。
そしてS370でCPU20は、復元するデータのうちで復元していない記憶ビットサイズ分の2進数がまだあるか否かを判定する。復元していない2進数データがまだある場合(S370:YES)は、S320に戻って上記処理を繰り返す。復元していない2進数データがもうない場合(S370:NO)は、S390に進む。
S390に進んだらCPU20は、不揮発性メモリ22内の保存データ25のなかに復元されていない情報(上述の1組の情報)がまだあるか否かを判定する。復元されていない情報がまだある場合(S390:YES)はS300に戻って上記処理を繰り返す。保存データ25がすべて復元された場合(S390:NO)は図7の処理を終了する。
以上が図7の処理手順である。図7の処理では、予めエンジニア(プログラマ)が保存プログラム24内に、設定された記憶ビットサイズを記述しておき、それにしたがって不揮発性メモリ22に2進数として記憶された各データがRAM21に復元される。したがって予め記憶ビットサイズが設定されており、相対的に簡略化された処理となる。
次に図8を説明する。図8には記憶ビット数とデータ記憶位置を圧縮時に算出するタイプの、不揮発性メモリ22への圧縮保存処理の手順が示されている。図8の処理手順は、図6の処理手順においてS125およびS211、S212を付加したものである。以下で図6と異なる部分を説明する。
図8のS125では、CPU20は指数の最大値(最大数)から記憶ビットサイズを算出する。この算出処理は、図5(におけるS41からS44)によって実行すればよい。
図8のS211、S212では、保存データ中における種類の異なる情報(図1の例では例えばスタック231と設定値関数232aと設定値関数232bとが種類の異なる情報である)の間に、間であることを示すしるしのビットデータを挿入するための処理を実行する。要するに保存プログラム24は、不揮発性メモリに記憶する情報において、1組の前記複数のオブジェクトと別の組の複数のオブジェクトの間に、間であることを示すビットデータを挿入する挿入ステップを備える。具体的には、まずS211でCPU20は、保存データをしるしのビットサイズ分左にシフトする。次にS212でCPU20は、しるしのビットデータを左シフトで右側に空いたビットに代入する。しるしのビットデータは具体的には、例えばビットサイズの桁数での最大値や、ビットサイズの桁数でゼロなどとすればよい。
以上が図8の図6からの変更部分である。図8の処理では、不揮発性メモリ22に保存データ25を記憶する際に、記憶する情報(1組の情報)ごとにそのつど記憶ビット数を算出して、その記憶ビット数の2進数を記憶していくとともに、保存データ25内のある1組の情報と別の1組の情報の間にしるしを格納して、情報の区切りを明確化する。したがって車両1において各種システム変更を行っても保存プログラム24を書き換える必要はなく、システム変更に柔軟に対応して、最適な記憶ビット数を自動的に算出する。
次に図9を説明する。図9には、記憶ビット数とデータ記憶位置を圧縮時に算出するタイプの、不揮発性メモリ22からRAM21への復元処理の手順が示されている。図9の処理手順は、図7の処理手順においてS315を付加し、S370をS325に変更したものである。以下で図7と異なる部分を説明する。
図9のS315では、CPU20は指数の最大値(最大数)から記憶ビットサイズを算出する。この算出処理は、図5(におけるS41からS44)によって実行すればよい。
図9のS325は、S320の次に処理され、取得したデータがしるしであるか否かを判定する。取得したデータがしるしである場合(S325:YES)はS390に進み、取得したデータがしるしでない場合(S325:NO)はS330に進む。
以上のとおり、図9の処理では、保存された情報の記憶ビットサイズの情報は用いず、異なった情報間の区切りとしてしるしを用いて、しるしを取得したら1つの情報の復元が終了したと認識する。したがって図8と同様、車両1において各種システム変更を行っても保存プログラム24を書き換える必要はなく、システム変更に柔軟に対応して、最適な記憶ビット数が自動的に算出されて、それに応じて復元処理が実行される。以上の場合、保存プログラム24は、図5、図8、図9を組み合わせて作成すればよい。
図14には、図10の2進数表現を用いて図3のスタックを保存した保存データ25の例が示されている。図3のスタック231の格納状態は、順に機能A、機能D、機能C、空、なので、図12に示されているように、順に「001」、「100」、「011」、「000」を記憶する。図12の例では空を「000」としているが、図10に示された2進数以外ならばよい。
図15には、従来技術における図3のスタックの場合の保存データ25の例が示されている。従来技術では、図3のスタック231を記憶する場合、機能A、機能D、機能Cのポインタ(オブジェクト指向のプログラム言語においてオブジェクトのメモリ内のアドレスを示す変数)を保存データとするが、通常ポインタは4バイトの情報なので、図15のとおり、図3のスタックの状態の記憶のために合計16バイト必要となる。これに対して本発明の図14の例では、図3のスタックの状態の記憶のために合計12ビットしか使用しておらず、情報量が約10分の1となっている。したがって不揮発性メモリ22の小容量化や、保存処理の処理負荷、処理時間の低減が実現できる。
なお保存データ25は図14ではなく図13のようにしてもよい。図13の例では、スタック231に格納された機能A、機能D、機能C、空、の指数を保存データ25内に順に記憶している(なおここでは空の指数を0としている)。通常、指数である整数値は1バイトの情報なので、図13の例では合計4バイト使用される。したがって図15の従来技術よりは情報量が4分の1に低減でき、不揮発性メモリ22を小容量化できる。(なお図13との比較においても図14は不揮発性メモリ22に記憶する情報量が低減される。すなわち図14における記憶ビット数の2進数の情報量はオブジェクトに割り振った指数(整数値)の情報量よりも小さい。要するに、この場合2進数の情報量はオブジェクトに番号付けられた整数値の情報量よりも小さい。)
発明者の知見によれば、各種の車載装置3に対して、上述の指数の最大数は大半は7以下、8から15は1割もなく、16から30はほとんどない。記憶ビット数で言えば、大半が3ビットであり、4ビットは1割もなく、5ビットはほとんどない。したがって本発明の手法で最小ビット数の2進数に圧縮した場合、良好な圧縮率が達成できる。
上記実施例では、制御プログラム23、保存プログラム24をオブジェクト指向のプログラム言語で記述されたプログラムとしたが、本発明はこうした実施形態に限定されない。本発明では、車両に装備された電子制御装置が有する揮発性メモリに記憶された、車両の車載機器の制御状態を示す複数のデータのそれぞれに対して異なった2進数を割り当て、その2進数のビット数は全てのデータに異なった2進数値を割り当てられる最小のビット数とする割り当てステップと、車両の駆動部の停止時に、車両に備えられた不揮発性メモリに、割り当てステップで求められた2進数値を記憶する記憶ステップと、を車両に装備されたコンピュータに実行させることを特徴とする。
当然オブジェクト指向のプログラム言語でない場合でも、上記のように図11、図12に示された設定温度や吸込口状態に対応する2進数表現をイグニッションオフ時に不揮発性メモリ22に記憶すればよい。またプログラム内で図10に示された各機能がオブジェクトとして記述されていない場合でも、イグニッションオフ時にスタック231の状態を記憶する際に、上記のようにスタック内の各機能の2進数表現を不揮発性メモリ22に記憶すればよい。
1 車両
2 ECU(電子制御装置)
3 車載装置(車載機器)
21 RAM(揮発性メモリ)
22 不揮発性メモリ
23 制御プログラム
24 保存プログラム
25 保存データ

Claims (6)

  1. 車両に装備された電子制御装置が有する揮発性メモリに記憶された、前記車両の車載機器の制御状態を示す複数のデータのそれぞれに対して異なった2進数を割り当て、その2進数のビット数は、不揮発性メモリに記憶すべき全ての前記データに異なった2進数値を割り当てられる最小のビット数とする割り当てステップと、
    前記車両の駆動部の停止時に、前記車両に備えられた不揮発性メモリに、前記割り当てステップで求められた2進数値を記憶する記憶ステップと、
    を車両に装備されたコンピュータに実行させることを特徴とするプログラム。
  2. 前記車両の駆動部の始動時に、前記不揮発性メモリに記憶された前記2進数の情報を、その2進数に関連付けられた前記車載機器の制御状態を示すデータの情報に変換して、前記揮発性メモリに復元する復元ステップを、車両に装備されたコンピュータに実行させる請求項1に記載のプログラム。
  3. 前記データの数に応じて、全ての前記異なった2進数値を記述できるビット数を算出する算出ステップを、車両に装備されたコンピュータに実行させる請求項1又は2に記載のプログラム。
  4. 前記割り当てステップは、車両に装備された電子制御装置が有する揮発性メモリに記憶された、前記車両の車載機器の複数の設定値のそれぞれに対して、異なった2進数を割り当て、その2進数のビット数は、不揮発性メモリに記憶すべき全ての設定値に異なった2進数値を割り当てられる最小のビット数とする設定値割り当てステップを含む請求項1乃至3のいずれか1項に記載のプログラム。
  5. オブジェクト指向のプログラム言語で記述されたプログラムであり、
    前記制御状態を示すデータは、そのプログラムにおけるオブジェクトである請求項1乃至4のいずれか1項に記載のプログラム。
  6. 前記2進数値の情報量は前記オブジェクトのポインタの情報量よりも小さい請求項5に記載のプログラム。
JP2011105305A 2011-05-10 2011-05-10 プログラム Expired - Fee Related JP5585941B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011105305A JP5585941B2 (ja) 2011-05-10 2011-05-10 プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011105305A JP5585941B2 (ja) 2011-05-10 2011-05-10 プログラム

Publications (2)

Publication Number Publication Date
JP2012236451A JP2012236451A (ja) 2012-12-06
JP5585941B2 true JP5585941B2 (ja) 2014-09-10

Family

ID=47459782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011105305A Expired - Fee Related JP5585941B2 (ja) 2011-05-10 2011-05-10 プログラム

Country Status (1)

Country Link
JP (1) JP5585941B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140102962A (ko) * 2013-02-15 2014-08-25 콘티넨탈 오토모티브 시스템 주식회사 시동키 오프 시 데이터 저장 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006193017A (ja) * 2005-01-12 2006-07-27 Nissan Motor Co Ltd 車両情報記録装置及び車両情報記録方法
JP5120010B2 (ja) * 2008-03-25 2013-01-16 アイシン・エィ・ダブリュ株式会社 車両上制御装置への制御用データの書込み方法および車両上制御装置

Also Published As

Publication number Publication date
JP2012236451A (ja) 2012-12-06

Similar Documents

Publication Publication Date Title
US20140108704A1 (en) Data decompression method for a controller equipped with limited ram
US20130326170A1 (en) Methods and Devices for Reducing Compressed Page Loading Time on Page Fault
CN107092560B (zh) 固态储存装置及运用于其中的快闪转换层对应表重建方法
US20090144512A1 (en) Memory access control device, control method, and program
JP4629750B2 (ja) 組み込み制御装置
CN102457283A (zh) 一种数据压缩、解压缩方法及设备
US20090248912A1 (en) Method of writing control data into on-board vehicle control unit and the control unit
CN106372000B (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
CN106990983B (zh) 单片机烧写方法、装置、系统及单片机
JP5585941B2 (ja) プログラム
CN110597644B (zh) 数据流传输方法、传输装置、电子设备及存储介质
CN110402428B (zh) 车载控制装置、及程序更新软件
CN107912063A (zh) 一种内存回收方法及装置
JP5431497B2 (ja) ページデータ、特にバーチャルメモリ機構におけるページコードを記憶および転送するための方法およびデバイス
JP6009290B2 (ja) 車両の電子制御装置
CN113497627A (zh) 一种数据压缩和解压缩方法、装置及系统
US7676651B2 (en) Micro controller for decompressing and compressing variable length codes via a compressed code dictionary
CN106030531B (zh) 微控制器的可用闪速存储器的增大
JP2010020416A (ja) データ転送方法およびデータ転送装置
JP2001043082A (ja) 情報処理装置並びに命令コーディング方法及び命令デコーディング方法
CN112583415B (zh) 墨盒芯片的数据压缩存储方法和系统
CN114003309A (zh) 一种基于微处理器的软件模块加载方法及装置
CN115037570B (zh) 一种充放电行程事件状态码及事件号上传方法及系统、计算机可读存储介质、电子设备
KR20120017686A (ko) 차량용 avn 시스템의 os 업그레이드 및 복구 방법
CN113625953B (zh) 一种数据处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20121017

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140630

R151 Written notification of patent or utility model registration

Ref document number: 5585941

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140713

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees