米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 日産自動車株式会社

発明の名称 電子制御装置のエミュレーション装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−233530(P2003−233530A)
公開日 平成15年8月22日(2003.8.22)
出願番号 特願2002−34971(P2002−34971)
出願日 平成14年2月13日(2002.2.13)
代理人 【識別番号】100086450
【弁理士】
【氏名又は名称】菊谷 公男 (外2名)
【テーマコード(参考)】
3G084
5B060
【Fターム(参考)】
3G084 BA11 DA04 EB07 
5B060 AA03
発明者 菊池 光彦
要約 課題
RAMエミュレーション時に、RAMエミュレーション領域が無駄に消費されるのを防止する。

解決手段
ワンチップマイコンは、少なくとも制御データを含むデータを記憶するROMと、ROMのデータを書き込み可能なRAMとを備える。RAMはこのデータ書き込みでエミュレーション可能とする。RAMエミュレーション実行時、RAMに書き込まれたデータのうちエミュレーション対象のキャリブレーションパラメータC以外のデータ(キャリブレーション・パラメータD〜F)は、もともとRAMに書き込まれていた変数X、Y、Zで上書きして消去する。
特許請求の範囲
【請求項1】 少なくとも制御データを含むデータを記憶するROMと、該ROMのデータを読み出し、該読み出したデータに基づいて電子制御装置の制御を実行するCPUと、一部に前記ROMのデータを書き込み可能なRAMとを備え、該RAMのデータを書き換えることによってエミュレーションを実行する電子制御装置のエミュレーション装置において、エミュレーション実行時に前記RAMに書き込まれたデータのうち、エミュレーション対象のデータ以外のデータを消去するデータ消去手段を有することを特徴とする電子制御装置のエミュレーション装置。
【請求項2】 前記データ消去手段は、前記RAMに書き込まれたデータのうち、エミュレーション対象のデータ以外のデータを他の制御データで上書きして消去することを特徴とする請求項1に記載の電子制御装置のエミュレーション装置。
【請求項3】 前記他の制御データがエミュレーション実行前に前記RAMに書き込まれていたデータであって、前記データ消去手段は、該エミュレーション実行前にRAMに書き込まれていたデータを一時待避させたあと、前記エミュレーション対象のデータ以外のデータの書込み領域に上書きするものであることを特徴とする請求項2に記載の電子制御装置のエミュレーション装置。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明は、電子制御装置に記憶される制御定数のキャリブレーション等に利用される電子制御装置のエミュレーション装置に関する。
【0002】
【従来の技術】たとえば自動車のエンジン用燃料噴射装置やレーンキープアシストシステムなどの電子制御装置にあっては、電子制御装置に内蔵されたプログラムは、必要に応じてROM(リードオンリーメモリ)に記憶された定数を参照する。この定数には、普遍的な物理定数(たとえば、重力係数として9.8)のほかに、実験によらなければ決定できないような制御定数がある。たとえば電動モータでステアリング操作を行うレーンキープアシストシステムでは、ステアリング回転最大トルク量などの値は実車実験によって求められるが、制御上は電動モータに流す電流が回転トルクに対応するので、この電流をPWMデューティ比で制御することになる。この場合のドライバに違和感を与えないようなデューティ比の最大値が制御定数として設定される。このような制御定数は、専用のキャリブレーション装置を用い、実験を通じてその値が決定される。
【0003】このようなキャリブレーション装置としては、たとえば特開平8−234806号公報に記載されたものが知られている。ここでは、キャリブレーション装置としてのコントローラは、車両側の電子制御ユニットに、中継ボックスを介して接続されて使用される。しかしながら、この装置では、電子制御ユニットとコントローラにデュアルポートRAM(ランダムアクセスメモリ)をそれぞれ追加装備しなければならず、コスト高になるという欠点を有していた。
【0004】そこで、最近は車両側に搭載されるワンチップマイコンの内蔵RAMにエミュレーション領域を持たせ、プログラムから定数を参照するときは、ROMからではなくRAMにアクセスして、RAMから定数の値を参照するようにしたものが利用されるようになってきた。このようなワンチップマイコンの場合、ROMには、マイコンに対して割り込みが発生したときの処理先を列挙する割り込みベクタ領域、プログラム本体を記憶するプログラム領域(Pセクション)、プログラムで用いられ、RAMエミュレーションの対象をも含んだ種々の定数を記憶する定数領域(Cセクション)、およびプログラムの変数の初期値を記憶する初期化データ領域(Dセクション)が設けられる。
【0005】また、内蔵のRAMは、RAMエミュレーションに割り当てられるRAMエミュレーション領域をその一部に有し、初期値を持つ変数のための初期化データ領域(Rセクション)、初期値を持たない変数のための未初期化データ領域(Bセクション)、スタックのための動的領域が設けられている。なお、このRAMエミュレーション領域は、ROMのCセクション中におけるRAMエミュレーションの対象となる領域と同じ大きさのサイズとする必要がある。
【0006】
【発明が解決しようとする課題】上記従来のRAMエミュレーションにあっては、RAMエミュレーション実行時に、以前からもともとRAMに割付けられていた変数領域分を、RAMエミュレーションの実行に必要のないキャリブレーションパラメータにより消費されてしまい、変数を割付ける領域が少なくなってしまうという問題点があった。
【0007】すなわち、通常は、図7に示すように、RAMのRセクション51のうちRAMエミュレーション領域303は、マイコンの仕様によって一義的に固定領域が割付けられるようになっている。したがって、RAMエミュレーションを実行したいキャリブレーションパラメータがRAMエミュレーション領域303より小さい領域304しか必要ない場合でも、RAMエミュレーションの実行に必要のない定数までRAMエミュレーション領域303中の領域401に割り当てられる。その結果、RAMエミュレーション領域303の分を、RAMエミュレーション用として占有してしまい、領域401の分だけRAM領域を無駄に消費してしまうことになる。
【0008】上記不具合につき、ROM4のCセクション44とRAM5のRセクション51とにおけるメモリ割付けの様子を示す図8、図9に基づいて、さらに詳しく説明する。図8は、RAMエミュレーションを実行しない通常時のメモリ割付け状態を示している。ここでは、ROMのCセクション44中に6個のキャリブレーションパラメータA〜Fが領域501〜506に割付けられており、またRAMのRセクション51中に3個の通常の変数X、Y、Zが領域507〜509にそれぞれ割付けられている。ここで、キャリブレーションパラメータCをRAMエミュレートするものとする。
【0009】このRAMエミュレーション実行時には、図9に示すように、キャリブレーションパラメータCがRAMのRセクション51中のエミュレーション領域601に割付けられるが、これと同時にRAMエミュレーションに必要のないキャリブレーションパラメータD〜Fも、Rセクション51中の領域602〜604に割付けられる。この結果、RAMエミュレーション実行時には、RAMエミュレーションを実行しない通常時に、図8に示したように領域507〜509に割付けられていた変数X〜Zが、図9に示す領域605〜607に割付けられてしまう。
【0010】したがって、上記従来のエミュレーション機構では、RAMエミュレーション実行時に、RAMエミュレーション実行前からもともとRAMに割付けられていた変数領域を、RAMエミュレーションの実行に必要のないキャリブレーションパラメータD〜Fにより消費されてしまい、変数を割付ける領域が少なくなってしまっていた。
【0011】したがって本発明は、RAMエミュレーション時に、RAMエミュレーションを実行するのに必要のない定数がRAMエミュレーション領域へ割り付けられることに起因して、RAMエミュレーション領域が無駄に消費され少なくなってしまうのを防止するようにした電子制御装置のエミュレーション装置を提供することを目的とする。
【0012】
【課題を解決するための手段】このため、請求項1の発明は、少なくとも制御データを含むデータを記憶するROMと、ROMのデータを読み出し、この読み出したデータに基づいて電子制御装置の制御を実行するCPUと、ROMのデータを書き込み可能なRAMとを備え、RAMのデータを書き換えることによってエミュレーションを実行する電子制御装置のエミュレーション装置において、エミュレーション実行時にRAMに書き込まれたデータのうち、エミュレーション対象のデータ以外のデータを消去するデータ消去手段を有するものとした。
【0013】請求項2の発明は、データ消去手段が、RAMに書き込まれたデータのうち、エミュレーション対象のデータ以外のデータを他の制御データで上書きして消去するものである。とくに、請求項3の発明は、上記他の制御データがエミュレーション実行前にRAMに書き込まれていたデータであって、データ消去手段は、該エミュレーション実行前にRAMに書き込まれていたデータを一時待避させたあと、エミュレーション対象のデータ以外のデータの書込み領域に上書きするものとした。
【0014】
【発明の効果】請求項1の発明では、RAMに書き込まれたデータのうち、エミュレーション対象のデータ以外のデータを消去するようにしたので、RAMの記憶容量を無駄に消費することがない。請求項2の発明では、RAMに書き込まれたデータのうち、エミュレーション対象のデータ以外のデータが他の制御データで上書きされることによって消去されるので、消去と他の制御データの書込みとが同時に行なわれ、効率が良い。請求項3の発明のように、エミュレーション実行前にRAMに書き込まれていた他の制御データを書き込むことによって、RAMの記憶容量がとくに有効に利用される。
【0015】
【発明の実施の形態】以下、本発明の実施の形態を図に基づき説明する。図1に示すように、電子制御装置1は、CPU(セントラルプロセシングユニット)3、ROM4、RAM5を有するワンチップマイコン2を備える。CPU3には、エミュレーションを実行するためのモード設定部7と、後述するエミュレーション実行時の所定データを操作するデータ操作部6とを含んでいる。ROM4は、図2に示すように、CPU3において割り込みが発生したときの処理先を列挙する割り込みベクタ領域42、プログラム本体を記憶するプログラム領域(Pセクション)43、プログラムで用いられる定数を記憶する定数領域(Cセクション)44、プログラムの変数の初期値を記憶する初期化データ領域(Dセクション)45を有する。
【0016】一方、内蔵のRAM5は、初期値を持つ変数のための初期化データ領域(Rセクション)51、初期値を持たない変数のための未初期化データ領域(Bセクション)52、スタックのための動的領域53を有する。
【0017】図3に示すように、上記ROM4のCセクション44には、キャリブレーションパラメータA〜Fの領域10〜15を、また上記RAM5のRセクション51には、RAMエミュレーションを実行しない通常時に変数X、Y、Zの領域16〜18をそれぞれ形成している。
【0018】RAMエミュレーションを実行したい可能性があるキャリブレーションパラメータがC〜Fであり、RAMエミュレーションを実行したい可能性が全くないキャリブレーションパラメータがA、Bであるものとする。そして、RAMエミュレーションを実行したい可能性があるキャリブレーションパラメータC〜Fのうち、キャリブレーションパラメータCについてのみ実際にRAMエミュレーションを実行する場合について、以下説明する。
【0019】RAMエミュレーションを実行する時は、図4に示すように、ROM4のCセクション44中に設けたRAMエミュレーションを実行する可能性のあるROM領域19(ここでは、キャリブレーションパラメータC〜Fの領域12〜15に相当)と同じサイズに対応する分が、RAM5のRセクション51中にRAMエミュレーション領域20として割り当てられる。
【0020】また、このRAMエミュレーション実行時には、RAMエミュレーションの実行を欲しているキャリブレーションパラメータ(上記C〜Fから選択されたC)が、RAMエミュレーション領域20中に設けた領域22に割り当てられる。また、RAMエミュレーション領域20の中には、上記領域22に続く領域23〜25が設けられ、これらの領域23〜25に、もともとRAM5に割り付けられる変数X、Y、Zがそれぞれ割り付けられる。
【0021】次に、上記構成における変数またはRAMエミュレーションするキャリブレーションパラメータにアクセスする場合の動作の流れを、図5のフローチャートに基づいて説明する。ステップ101では、RAMエミュレーションを実行するか否かを、例えばフラグの設定を参照して判断する。RAMエミュレーションを実行する場合はステップ102へ、実行しない場合はステップ109へ進む。
【0022】ステップ102では、データ操作部6が、RAMエミュレーションに割り当てられるRAMエミュレーション領域20内の、領域16〜18に既に割り当てられている変数X、Y、Zの値をRAM5の動的領域53へコピーして、一時退避させる。
【0023】続くステップ103では、ワンチップマイコン2がRAMエミュレーションモードに移行する。この移行は、モード設定部7において、たとえばワンチップマイコンを制御するコントロールレジスタの値を所定の設定値にすることで実行される。ステップ104では、データ操作部6が、動的領域53へ一時退避させた変数X、Y、Zの値を図4に示すRAMエミュレーション領域20中に割り当てた領域23〜25へ上書きする。
【0024】ステップ105では、RAMエミュレーション領域の変数X、Y、Z、あるいはRAMエミュレーションの実行対象であるキャリブレーションパラメータCへアクセスする。CPU3がキャリブレーションパラメータCにアクセスする場合は、ワンチップマイコン2がRAMエミュレーションモード中であるので、自動的に領域22へアクセスする。また変数へアクセスする場合は、領域23〜25にアクセスする。
【0025】この場合、変数X、Y、Zの値を格納する領域のアドレスが変わることになるが、たとえば後述するようなコーディングを実行することで、プログラム本体を変更することなく、領域23〜25にアクセスすることが可能となる。このようにして、RAMエミュレーション中は、キャリブレーションパラメータの値をRAM5に割り付けてキャリブレーションを実行する。
【0026】キャリブレーションが終了したら、ワンチップマイコン2をRAMエミュレーションモードから通常モードへ復帰させる。このためにまず、ステップ106において、データ操作部6が領域23〜25の変数X、Y、Zの値をRAM5の動的領域53へコピーして一時退避させる。そして、ステップ107で、モード設定部7がコントロール・レジスタの値を所定の設定値に変更して、RAMエミュレーションモードを終了する。ステップ108では、RAM5の動的領域53へ一時退避した変数X、Y、Zの値を、データ操作部6が領域16〜18へ復帰させる。
【0027】一方、ステップ101でRAMエミュレーションを実行しないと判断して、ステップ109へ進んだ場合は、通常どおりキャリブレーションパラメータCへアクセスする。すなわち、このときは、RAMエミュレーション中ではないので、ROM4におけるCセクション44の領域12の値を参照する。RAMエミュレーションの実行対象でないキャリブレーションパラメータAやDへアクセスする場合も、ROM4の領域10、13にアクセスする。また、変数X、Y、Zにアクセスするときは、RAM5のRセクション51の領域16〜18にアクセスする。本実施の形態では、データ操作部6が一時退避させた変数X、Y、Zの値を領域23〜25へ上書きするステップ104が、発明の消去手段を構成している。
【0028】なお、上記変数のアドレスが変わった場合に対応するコーディングとしては、図6に示すように、共有体(ユニオン)の宣言および置換を行う。なお、ここでは、C言語を用いている。すなわち、Unionにより、変数(Variable)と名づけた領域を確保した共用体が、RAMエミュレーションの変数(RAM_EMULATED_VAR)と通常の変数(ORDINAL_VAR)との各メンバからなることを宣言する。
【0029】また、structにより、以下の宣言をする。すなわち、上記RAMエミュレーションの変数(RAM_EMULATED_VAR)の記憶領域は、RAMエミュレーションの実行対象であるキャリブレーションパラメータ(RAM Emulated Calibration Parameter)としてのint型(整数型)のC、変数X(Variable X)としてのint型のX、変数Y(Variable Y)としてのint型のY、変数Z(Variable Z)としてのint型のZといった各メンバからなる。
【0030】一方、通常の変数(ORDINAL_VAR)の記憶領域は、変数X(Variable X)としてのint型のX、変数Y(Variable Y)としてのint型のY、変数Z(Variable Z)としてのint型のZ、ダミー(dummy)としてのint型のCといった各メンバからなる。
【0031】次いで、上記変数X、Y、Zを#defineにより、以下のように置換マクロ展開する。まず、変数Xは、RAM_EMULATIONであれば、RAMエミュレーション変数X(Variable.RAM_EMULATED.X)とし、そうでなければ通常変数X(Variable.ORDINAL.X)とする。同様に、変数Yについて、RAM_EMULATIONであれば、RAMエミュレーション変数Y(Variable.RAM_EMULATED.Y)とし、そうでなければ通常変数Y(Variable.ORDINAL.Y)とする。また、変数Zも、RAM_EMULATIONであれば、RAMエミュレーション変数Z(Variable.RAM_EMULATED.Z)とし、そうでなければ通常変数Z(Variable.ORDINAL.Z)とする。以上のコーディングにより、プログラム本体を変更することなく変更された領域23〜25へのCPU3のアクセスが可能となる。
【0032】以上のように、本実施例にかかる電子制御装置1のエミュレーション機構は、RAMエミュレーション実行時に、RAM5に書かれたエミュレーション実行対象のデータ以外のデータを消去するようにしたので、RAMエミュレーションの実行に不必要なデータのRAMエミュレーション領域20への割付けに起因してこの領域が少なくなるといった不具合を防止することができ、ワンチップマイコンをより効率的に利用することが可能となる。また、RAM5に書き込まれたデータのうち、エミュレーション対象のデータ以外のデータは、他の制御データ(変数X、Y、Z)を上書きされることによって消去されるようにしたので、RAM5の記憶容量を有効に使用できる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013