(57)【要約】    【課題】  ＲＡＭにエミュレーションされている書き換えられたパラメータを用いてエンジンを始動することができるエンジン制御プログラムのデータ適合方式を提供する。    【解決手段】  リセットの際にエミュレーション状態の復帰が記憶されている場合には（Ｓ３２：Ｙｅｓ）、切換アドレスＲＡＭ３６の保持内容を切換アドレスレジスタ２６へ格納し（Ｓ３４）、切換許可ＲＡＭ３８の保持内容を切換許可レジスタ２８へ格納することで（Ｓ３６）、エミュレーションＲＡＭ２４にエミュレーションされたデータでエンジンの制御を開始可能にする。【選択図】  図３
2005220784.tif 000002
【特許請求の範囲】
【請求項１】
ＲＯＭに保持されたエンジン制御プログラムのデータを電気的に情報維持可能なＲＡＭにエミュレーションし、外部ツールにより該エミュレーションしたエンジン制御プログラムのデータを書き換えながらエンジンを制御することで、エンジン制御プログラムのデータ適合を図るエンジン制御プログラムのデータ適合方式であって、
前記ＲＡＭのエミュレーション状態、及び、エミュレーション状態を復帰するか否かを電気的に維持可能な記憶装置に記憶し、
リセットの際に、前記記憶装置に、エミュレーション状態の復帰が記憶されている場合には、前記記憶されたＲＡＭのエミュレーション状態に基づき、前記ＲＡＭに維持されたエミュレーションされたデータでエンジンの制御を開始可能にすることを特徴とするエンジン制御プログラムのデータ適合方式。
【請求項２】
ＲＯＭに保持されたエンジン制御プログラムのデータを電気的に情報維持可能なＲＡＭにブロック単位でエミュレーションし、外部ツールにより該エミュレーションしたエンジン制御プログラムのデータを書き換えながらエンジンを制御することで、エンジン制御プログラムのデータ適合に用いるメモリー制御ユニットであって、
前記ＲＡＭにブロック単位でエミュレーションされたエンジン制御プログラムのアドレスを保持し、リセットに伴い保持内容がクリアされる切換アドレスレジスタと、
前記ＲＡＭにエミュレーションされたエンジン制御プログラムをブロック単位で前記外部ツールからのアクセス可能か否かを保持し、リセットに伴い保持内容がクリアされる切換許可レジスタと、
前記切換アドレスレジスタの保持内容を電気的に維持可能な切換アドレスＲＡＭと、
前記切換許可レジスタの保持内容を電気的に維持可能な切換許可ＲＡＭと、
リセットの際に、エミュレーション状態を復帰するか否かを電気的に維持可能な復帰モード要求ＲＡＭと、を備え、
リセットの際に、前記復帰モード要求ＲＡＭに、エミュレーション状態の復帰が記憶されている場合には、前記切換アドレスＲＡＭの保持内容を前記切換アドレスレジスタへ格納し、前記切換許可ＲＡＭの保持内容を前記切換許可レジスタへ格納することで、前記ＲＡＭに維持されたエミュレーションされたデータでエンジンの制御を開始可能にすることを特徴とするメモリー制御ユニット。
【請求項３】
前記ＲＯＭは、ブートプログラムと、復帰判定プログラムと、アプリケーションソフトとを備え、
リセットの際には、前記ブートプログラムの実行後であって、前記アプリケーションソフトの実行前に、前記復帰判定プログラムに基づき、前記復帰モード要求ＲＡＭに前記エミュレーション状態の復帰が記憶されている場合には、前記ＲＡＭに維持されたエミュレーションされたデータでエンジンの制御を開始可能にすることを特徴とする請求項２のメモリー制御ユニット。
【請求項４】
前記外部ツールからの要求コマンドに応じて、前記ＲＯＭに保持されたエンジン制御プログラムのデータを前記電気的に情報維持可能なＲＡＭにエミュレートすることを特徴とする請求項２又は請求項３のメモリー制御ユニット。
【請求項５】
前記外部ツールからの要求コマンドに応じて通信処理により、前記ＲＯＭに保持されたエンジン制御プログラムのデータを前記ＲＡＭにエミュレートすることを特徴とする請求項４のメモリー制御ユニット。
【請求項６】
ＲＯＭに保持されたエンジン制御プログラムを電気的に情報維持可能なＲＡＭにエミュレーションし、外部ツールにより該エミュレーションしたエンジン制御プログラムを書き換えながらエンジンを制御することで、エンジン制御プログラムの適合を図るエンジン制御プログラムの適合方式であって、
前記ＲＡＭのエミュレーション状態、及び、エミュレーション状態を復帰するか否かを電気的に情報維持可能な記憶装置に記憶し、
リセットの際に、前記記憶装置に、エミュレーション状態の復帰が記憶されている場合には、記憶されたＲＡＭのエミュレーション状態に基づき、前記ＲＡＭに維持されたエミュレーションされたエンジン制御プログラムでエンジンの制御を開始可能にすることを特徴とするエンジン制御プログラムの適合方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＯＭに保持されたエンジン制御用のプログラム、パラメータをＲＡＭにエミュレーションし、リアルタイムにプログラム、パラメータのチューニングを行うエンジン制御プログラム（データ）の適合方式、及び、これに用いるメモリー制御ユニットに関し、特に、ＲＯＭに保持されたエンジン制御プログラム（データ）を電気的に情報維持可能なＲＡＭにエミュレーションし、外部ツールにより該エミュレーションしたエンジン制御プログラム（データ）を書き換えながらエンジンを制御することで、エンジン制御プログラム（データ）の適合を図るエンジン制御プログラム（データ）の適合方式及びこれに用いるメモリー制御ユニットに関するものである。
【背景技術】
【０００２】
エンジン制御プログラムのパラメータ（燃料噴射量、点火時期、進角等）の調整を、ＲＯＭに保持されたエンジン制御用のプログラム（パラメータ）をＲＡＭにエミュレートすることでリアルタイムに行う方式がある。このエンジン制御プログラムのパラメータ調整方式について、図９〜図１１を参照して説明する。図９は、エンジン制御プログラムのパラメータ調整を行う際の試験車両の構成を示す説明図である。エンジン９２の出力は、トランスミッション９４を介して車輪９６に伝えられる。エンジン９２は、ＥＣＵ１０により制御される。ＥＣＵ１０には、演算処理部１２と信号入出力１４とＭＣＵ（MEMORY  CONTROL  UNIT）２０とが備えられている。係る試験車両では、市販車において備えられる、チューニングされたパラメータの書き込まれたＲＯＭの代わりに、チューニングを行うパラメータを保持するＭＣＵ２０が備えられる。ＭＣＵ２０に保持されているパラメータは、パーソナルコンピュータ等からなる外部ツール９０から書き換えが行えるようになっている。外部ツール９０は、例えば、車内の助手席に搭乗したメカニックにより操作され、外部ツール９０で燃料噴射量等のパラメータを調整しながら、実走行して様子を見ることで、リアルタイムにパラメータのチューニングを行っている。特許文献１〜特許文献３には、エンジン制御プログラムのチューニングに関して開示がなされている。
【０００３】
図１０は、図９中のＭＣＵ２０の構成を示すブロック図である。ＭＣＵ２０は、ブートプログラム、アプリケーションソフト、データ（パラメータ）を保持するフラッシュＲＯＭ２２と、プログラム（データ）をエミュレートするためのエミュレーションＲＡＭ２４と、エミュレーションＲＡＭ２４にブロック単位でエミュレーションされたプログラムのアドレスを保持する切換アドレスレジスタ２６と、エミュレーションＲＡＭ２４にブロック単位でエミュレーションされたプログラムの書き換えの可否を記憶する切換許可レジスタ２８とからなる。ここで、エミュレーションＲＡＭ２４は、電源断状態においても情報を保持できるように構成されているが、切換アドレスレジスタ２６及び切換許可レジスタ２８は、電源断により記憶内容がクリアされるように構成されている。
【０００４】
図１１は、ＭＣＵ２０でのエミュレーションＲＡＭの１ブロック分を使用する際の処理を示すフローチャートである。
アプリケーションソフト作動時に、チューニングを行いたいフラッシュＲＯＭ２２のデータ領域（データＡ）を外部ツール９０から、エミュレーションＲＡＭ２４のブロック１へ書き込む（Ｓ２１２）。そして、データＡのフラッシュＲＯＭ２２上の先頭アドレスを、切換アドレスレジスタ２６の対応ブロック１に格納し（Ｓ２１４）、切換許可レジスタ２８の対応ブロック１に許可フラグをセットしをエミュレーション設定可能にする（Ｓ２１８）。これにより、エミュレーションＲＡＭ２４をフラッシュＲＯＭ２２のアドレスにオーバラップさせることができ、外部ツール９０からフラッシュＲＯＭ２２のデータＡではなく、エミュレーションＲＡＭ２４上のデータＡ’にアクセスできるようになる。これにより、フラッシュＲＯＭ２２上のデータを、アプリケーションソフトを動作させながら、リアルタイムにチューニングすることが可能になる
【特許文献１】特開２００２−５２７７号公報
【特許文献２】特開平１１−８２７１６号公報
【特許文献３】特開平８−２６００２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように切換アドレスレジスタ２６及び切換許可レジスタ２８は、電源断により記憶内容がクリアされるように構成されており、エンジン停止の度に、図１１を参照して上述した処理を行いエミュレーションを設定する必要がある。即ち、アプリケーションソフトの起動後しかエミュレーションの設定ができないので、エミュレーションＲＡＭ２４上のチューニングされたデータでエンジンを始動することができず、チューニングされたデータでエンジンの始動性を評価することが不可能であった。この点は、一旦データの適合作業を中止し、チューニングしたデータをフラッシュＲＯＭ２２へ書き換えて、再始動することで対応可能ではあるが、リアルタイムにデータチューニングを行えない。更に、フラッシュＲＯＭ２２へ書き換えは、別ツールを介して行うことになるため、データ適合作業の利便性が悪くなるという別の問題が発生する。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、ＲＡＭにエミュレーションされている書き換えられたデータ（パラメータ）、プログラムを用いてエンジンを始動することができるエンジン制御プログラムのデータ適合方式、エンジン制御プログラムの適合方式、及び、メモリー制御ユニットを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、請求項１の発明は、ＲＯＭ２２に保持されたエンジン制御プログラムのデータＡを電気的に情報維持可能なＲＡＭ２４にエミュレーションし、外部ツール９０により該エミュレーションしたエンジン制御プログラムのデータＡ’を書き換えながらエンジン９２を制御することで、エンジン制御プログラムのデータ適合を図るエンジン制御プログラムのデータ適合方式であって、
前記ＲＡＭのエミュレーション状態、及び、エミュレーション状態を復帰するか否かを電気的に維持可能な記憶装置３４、３６、３８に記憶し、
リセットの際に、前記記憶装置３４、３６、３８に、エミュレーション状態の復帰が記憶されている場合には（Ｓ３２：Ｙｅｓ）、記憶されたＲＡＭのエミュレーション状態に基づき、ＲＡＭ２４に維持されたエミュレーションされたデータでエンジンの制御を開始可能にする（Ｓ３４、Ｓ３６）。
【０００８】
請求項２は、ＲＯＭ２２に保持されたエンジン制御プログラムのデータＡを電気的に情報維持可能なＲＡＭ２４にブロック単位でエミュレーションし、外部ツール９０により該エミュレーションしたエンジン制御プログラムのデータＡ’を書き換えながらエンジン９２を制御することで、エンジン制御プログラムのデータ適合に用いるメモリー制御ユニット２０であって、
前記ＲＡＭ２４にブロック単位でエミュレーションされたエンジン制御プログラムのアドレスを保持し、リセットに伴い保持内容がクリアされる切換アドレスレジスタ２６と、  前記ＲＡＭ２４にエミュレーションされたエンジン制御プログラムをブロック単位で前記外部ツール９０からのアクセス可能か否かを保持し、リセットに伴い保持内容がクリアされる切換許可レジスタ２８と、
前記切換アドレスレジスタ２６の保持内容を電気的に維持可能な切換アドレスＲＡＭ３６と、
前記切換許可レジスタ２８の保持内容を電気的に維持可能な切換許可ＲＡＭ３８と、
リセットの際に、エミュレーション状態を復帰するか否かを電気的に維持可能な復帰モード要求ＲＡＭ３４と、を備え、
リセットの際に、復帰モード要求ＲＡＭ３４に、エミュレーション状態の復帰が記憶されている場合には（Ｓ３２：Ｙｅｓ）、切換アドレスＲＡＭ３６の保持内容を切換アドレスレジスタ２６へ格納し（Ｓ３４）、切換許可ＲＡＭ３８の保持内容を切換許可レジスタ２８へ格納することで（Ｓ３６）、ＲＡＭ２４に維持されたエミュレーションされたデータでエンジンの制御を開始可能にする。
【０００９】
請求項６は、ＲＯＭ２２に保持されたエンジン制御プログラムを電気的に情報維持可能なＲＡＭ２４にエミュレーションし、外部ツール９０により該エミュレーションしたエンジン制御プログラムを書き換えながらエンジン９２を制御することで、エンジン制御プログラムの適合を図るエンジン制御プログラムの適合方式であって、
前記ＲＡＭ２４のエミュレーション状態、及び、エミュレーション状態を復帰するか否かを電気的に情報維持可能な記憶装置（３４、３６、３８）に記憶し、
リセットの際に、記憶装置に、エミュレーション状態の復帰が記憶されている場合には（Ｓ３２：Ｙｅｓ）、記憶されたＲＡＭのエミュレーション状態に基づき、ＲＡＭに維持されたエミュレーションされたエンジン制御プログラムでエンジン９２の制御を開始可能にする。
【発明の効果】
【００１０】
請求項１のエンジン制御プログラムのデータ適合方式では、ＲＡＭのエミュレーション状態、及び、エミュレーション状態を復帰するか否かを電気的に維持可能な記憶装置に記憶し、リセットの際に、記憶装置にエミュレーション状態の復帰が記憶されている場合には、記憶されたＲＡＭのエミュレーション状態に基づき、ＲＡＭに維持されたエミュレーションされたデータでエンジンの制御を開始可能にする。
このため、ＲＡＭにエミュレーションされている書き換えられたデータ（パラメータ）を用いてエンジンを始動することができ、書き換えられたデータ（パラメータ）によりエンジン始動が適切に行えるかを判断することが可能になる。
【００１１】
請求項２のエンジン制御プログラムのデータ適合に用いるメモリー制御ユニット２０では、リセットに伴い保持内容がクリアされる切換アドレスレジスタ２６に、ＲＡＭ２４にブロック単位でエミュレーションされたエンジン制御プログラムのアドレスを保持し、リセットに伴い保持内容がクリアされる切換許可レジスタ２８に、ＲＡＭ２４にエミュレーションされたエンジン制御プログラムをブロック単位で外部ツールからのアクセス可能か否かを保持する。一方、電気的に情報の維持可能な切換アドレスＲＡＭ３６に切換アドレスレジスタ２６の保持内容をバックアップし、電気的に情報の維持可能な切換許可ＲＡＭ３８に切換許可レジスタ２８の保持内容をバックアップし、電気的に情報の維持可能な復帰モード要求ＲＡＭ２４に、リセットの際エミュレーション状態を復帰するか否かを保持する。
そして、リセットの際に、復帰モード要求ＲＡＭ３４にエミュレーション状態の復帰が記憶されている場合には、切換アドレスＲＡＭ３６の保持内容を切換アドレスレジスタ２６へ格納し、切換許可ＲＡＭ３８の保持内容を切換許可レジスタ２８へ格納することで、ＲＡＭに維持されたエミュレーションされたデータでエンジンの制御を開始可能にする。これにより、ＲＡＭにエミュレーションされている書き換えられたデータ（パラメータ）を用いてエンジンを始動することができ、書き換えられたデータ（パラメータ）によりエンジン始動が適切に行えるかを判断することが可能になる。
他方、リセットの際に、復帰モード要求ＲＡＭにエミュレーション状態の復帰が記憶されていない場合には、リセット又は電源断に伴い切換アドレスレジスタ２６、切換許可レジスタ２８の保持内容がクリアされる。従って、エミュレーション状態の復帰を望まない場合には、再び、ＲＯＭ２２のエンジン制御プログラムのデータをＲＡＭ２４にエミュレーションして、データ（パラメータ）の書き換えを開始することができる。
【００１２】
請求項３では、リセットの際には、ブートプログラムの実行後であって、アプリケーションソフトの実行前に、復帰判定プログラムに基づき、復帰モード要求ＲＡＭにエミュレーション状態の復帰が記憶されている場合には、ＲＡＭに維持されたエミュレーションされたデータでエンジンの制御を開始可能にする。アプリケーションの実行前に、ＲＡＭに維持されたエミュレーションされたデータを使用可能にすることで、ＲＡＭにエミュレーションされている書き換えられたデータ（パラメータ）を用いてエンジンを始動することができ、書き換えられたデータ（パラメータ）によりエンジン始動が適切に行えるかを判断することが可能になる。
【００１３】
請求項４では、外部ツールからの要求コマンドに応じて、ＲＯＭに保持されたエンジン制御プログラムのデータを電気的に情報維持可能なＲＡＭにエミュレートする。即ち、メモリー制御ユニットは外部ツールとは非同期にＲＡＭやレジスタにアクセスするが、外部ツールからエンジン制御プログラムのデータを送ることなく、メモリー制御ユニット内で、ＲＯＭからＲＡＭへエンジン制御プログラムのデータをエミュレートすることができるため、内部バスが専有されることがなく、エミュレーションが制御に影響を与えない。
【００１４】
請求項５では、外部ツールからの要求コマンドに応じて通信処理により、ＲＯＭに保持されたエンジン制御プログラムのデータを電気的に情報維持可能なＲＡＭにエミュレートする。即ち、外部ツールからメモリー制御ユニットのＲＡＭやレジスタが操作できない通信プロトコルでも、外部ツールからエンジン制御プログラムのデータを送ることなく、メモリー制御ユニット内で、ＲＯＭからＲＡＭへエンジン制御プログラムのデータをエミュレートすることができる。
【００１５】
請求項６では、エンジン制御プログラムの適合方式では、ＲＡＭのエミュレーション状態、及び、エミュレーション状態を復帰するか否かを電気的に維持可能な記憶装置に記憶し、リセットの際に、記憶装置に、エミュレーション状態の復帰が記憶されている場合には、記憶されたＲＡＭのエミュレーション状態に基づき、ＲＡＭに維持されたエミュレーションされたプログラムでエンジンの制御を開始可能にする。
このため、ＲＡＭにエミュレーションされている書き換えられたプログラムを用いてエンジンを始動することができ、書き換えられたプログラムによりエンジン始動が適切に行えるかを判断することが可能になる。
【発明を実施するための最良の形態】
【００１６】
[第１実施形態]
引き続き、本発明の第１実施形態に係るエンジン制御プログラムのデータ適合方式及びそれに用いるメモリー制御ユニット（ＭＣＵ２０）について説明する。
ここで、第１実施形態のエンジン制御プログラムのパラメータ調整を行う際の試験車両の構成は、図９を参照して上述した従来技術と同様であるため説明を省略する。図１は、第１実施形態のＭＣＵ２０の構成を示すブロック図である。
【００１７】
ＭＣＵ２０は、ブートプログラム、復帰判定プログラム、アプリケーションソフト、データ（パラメータ）を保持するフラッシュＲＯＭ２２と、プログラム（データ）をエミュレートするためのエミュレーションＲＡＭ２４と、エミュレーションＲＡＭ２４にブロック単位でエミュレーションされたプログラムのアドレスを保持する切換アドレスレジスタ２６と、エミュレーションＲＡＭ２４にブロック単位でエミュレーションされたプログラムの書き換えの可否を記憶する切換許可レジスタ２８と、バックアップＲＡＭ３０とからなる。バックアップＲＡＭ３０は、切換アドレスレジスタ２６の情報をバックアップする切換アドレスＲＡＭ３６と、切換許可レジスタ２８の情報をバックアップする切換許可ＲＡＭ３８と、外部ツール９０からのエミュレーションの復帰要求を記憶する復帰要求ＲＡＭ３４とを備える。ここで、フラッシュＲＯＭ２２に保持されているプログラムは、ブートプログラム、復帰判定プログラム、アプリケーションソフトの順で作動される。また、エミュレーションＲＡＭ２４及びバックアップＲＡＭ３０は、電源断状態においても情報を保持できるように構成されているが、切換アドレスレジスタ２６及び切換許可レジスタ２８は、電源断により又はリセットの際に記憶内容がクリアされるように構成されている。
【００１８】
第１実施形態のＭＣＵ２０でのでエミュレーションＲＡＭの１ブロック分を使用する際の処理を図２に示す。
アプリケーションソフト作動時に、チューニングを行いたいフラッシュＲＯＭ２２のデータ領域（データＡ）を外部ツール９０から、エミュレーションＲＡＭ２４のブロック１へ書き込む（Ｓ１２）。そして、データＡのフラッシュＲＯＭ２２上の先頭アドレス（図１の例では５００００番地）を、切換アドレスレジスタ２６の対応ブロック１に格納し（Ｓ１４）、切換アドレスレジスタ２６に格納したと同じ値を、切換アドレスＲＡＭ３６へ格納する（Ｓ１６）。そして、切換許可レジスタ２８の対応ブロック１に許可フラグをセットしてエミュレーション設定可能にする（Ｓ１８）。これにより、フラッシュＲＯＭ２２上の５０００番地に、エミュレーションＲＡＭ２４のブロック１がオーバラップされる。更に、切換アドレスレジスタ２６の値を、切換許可ＲＡＭ３６にも書き込む（Ｓ２０）。データチューニングを開始した後（Ｓ２２）、最後に、復帰モード要求ＲＡＭ３４に、復帰要求コマンド（図２の例では、”５ＡＡ５Ａ５５Ａ”）を書き込む（Ｓ２４）。リセット後にエミュレーションの状態を復帰したくない時には、復帰要求ＲＡＭ３４に、復帰非要求コマンド（図２の例では”０”）を書き込んでおく。
【００１９】
データチューニング後、再始動するためにリセットが掛けられると、フラッシュＲＯＭ２２に保持されたブートプログラムが作動し、これに続き、復帰判定プログラムが作動する。この復帰判定プログラムでの処理について図３を参照して説明する。
先ず、復帰モード要求ＲＡＭ３４に、復帰要求コマンドが設定されているか否かを判断する（Ｓ３２）。復帰要求コマンドが設定されている場合には（Ｓ３２：Ｙｅｓ）、切換アドレスＲＡＭ３６にバックアップされている値を切換アドレスレジスタ２６にコピーし（Ｓ３４）、切換許可ＲＡＭ３８にバックアップされている値を切換許可レジスタ２８にコピーする（Ｓ３６）。これにより、エミュレーションＲＡＭ２４のデータは保持されたままなので、リセット前のエミュレーション状態に復帰する。その後、アプリケーションソフトが動作し、エミュレーションＲＡＭ２４にエミュレーションされているチューニングされたデータを使用することができる。
【００２０】
一方、復帰モード要求ＲＡＭ３４に、復帰要求コマンドが設定されていない場合には（Ｓ３２：Ｎｏ）、切換アドレスＲＡＭ３６、切換許可ＲＡＭ３８、復帰モード要求ＲＡＭ３４を初期化（クリア）する。その後、外部ツール９０からの処理により、エミュレーションＲＡＭ２４に新たにデータがエミュレーションされ、データのチューニングが新たに開始される。
【００２１】
第１実施形態では、切換アドレスＲＡＭ３６、切換許可ＲＡＭ３８、復帰モード要求ＲＡＭ３４を設け、切換アドレスレジスタ２６、切換許可レジスタ２８にセットした値をバックアップすると共に、復帰情報（エミュレーション状態を復帰するか否か）を記憶しておく。再始動時に、復帰判定プログラムにより、エミュレーション状態の復帰が設定されているかを判断し、復帰が設定されている場合には、切換アドレスＲＡＭ３６、切換許可ＲＡＭ３８にバックアップされた値を切換アドレスレジスタ２６、切換許可レジスタ２８にコピーする。これにより、フラッシュＲＯＭ２２の書き換え、外部ツール９０からの処理を介さずに、エミュレーション状態を自動的に復帰することができ、再始動時に、直ちにチューニングしたデータを用いることができる。このため、エミュレーションＲＡＭ２４にエミュレーションされている書き換えられたデータ（パラメータ）を用いてエンジン９２を始動することができ、書き換えられたデータ（燃料噴射量、点火時期、進角等のパラメータ）によりエンジン始動が適切に行えるかを判断することが可能になる。
【００２２】
[第２実施形態]
引き続き、第２実施形態に係るエンジン制御プログラムのデータ適合方式及びそれに用いるメモリー制御ユニット（ＭＣＵ２０）について説明する。上述した第１実施形態では、エミュレーションＲＡＭ２４にエミュレートするデータは、外部ツール９０側から転送した。これに対して、第２実施形態では、外部ツール９０側からデータを転送するのではなく、外部ツール９０からの要求コマンドにより、ＭＣＵ２０内で、フラッシュＲＯＭ２２からエミュレーションＲＡＭ２４へデータのエミュレーションを行う。
ここで、第２実施形態のエンジン制御プログラムのパラメータ調整を行う際の試験車両の構成は、図９を参照して上述した従来技術と同様であるため説明を省略する。図４は、第２実施形態のＭＣＵ２０の構成を示すブロック図である。
【００２３】
ＭＣＵ２０は、ブートプログラム、第１実施形態と同様な復帰判定プログラム、アプリケーションソフト、外部ツール９０からの要求コマンドに応じた処理を実行するためのコマンド処理プログラム、データ（パラメータ）を保持するフラッシュＲＯＭ２２と、プログラム（データ）をエミュレートするためのエミュレーションＲＡＭ２４と、エミュレーションＲＡＭ２４にブロック単位でエミュレーションされたプログラムのアドレスを保持する切換アドレスレジスタ２６と、エミュレーションＲＡＭ２４にブロック単位でエミュレーションされたプログラムの書き換えの可否を記憶する切換許可レジスタ２８と、バックアップＲＡＭ３０とからなる。バックアップＲＡＭ３０は、切換アドレスレジスタ２６の情報をバックアップする切換アドレスＲＡＭ３６と、切換許可レジスタ２８の情報をバックアップする切換許可ＲＡＭ３８と、外部ツール９０からのエミュレーションの復帰、切換要求を記憶する復帰モード要求ＲＡＭ３４と、外部ツール９０からの復帰、切換要求コマンドを格納する要求コマンドＲＡＭ４２、エミュレートするフラッシュＲＯＭ２２のアドレスを指定する要求アドレスＲＡＭ４４、オーバーラップするエミュレーションＲＡＭ２４のブロックナンバーを示す要求ブロックＲＡＭ４６とを備える。ここで、フラッシュＲＯＭ２２に保持されているプログラムは、ブートプログラム、復帰判定プログラム、アプリケーションソフト、コマンド処理プログラムの順で作動される。エミュレーションＲＡＭ２４及びバックアップＲＡＭ３０は、電源断状態においても情報を保持できるように構成されているが、切換アドレスレジスタ２６及び切換許可レジスタ２８は、電源断により、又はリセットの際に記憶内容がクリアされるように構成されている。
【００２４】
上記フラッシュＲＯＭ２２に保持されているコマンド処理プログラムの内容を図５に示す。
コマンド処理プログラムでは、アプリケーションソフトから定期的にコールして要求コマンドＲＡＭ４２をチェックし（Ｓ１０２）、要求コマンドがなければ（Ｓ１０２：Ｎｏ）、要求コマンドＲＡＭ４２をクリアする（Ｓ１１６）。
【００２５】
一方、要求コマンドＲＡＭ４２に外部ツール９０からの要求が書かれていれば（Ｓ１０２：Ｙｅｓ）、当該要求に対応する処理を行う。ここで、転送要求がなされていれば、フラッシュＲＯＭ２２からエミュレーションＲＡＭ２４へデータを転送する（Ｓ１０４）。
【００２６】
図６に、この転送要求時の外部ツールとコマンド処理プログラムのシーケンスチャートを示す。
先ず、外部ツール９０は、要求アドレスＲＡＭ４４にデータ転送したいフラッシュＲＯＭ２２のアドレスを書き込む。次に、外部ツール９０は、要求ブロックＲＡＭ４６にエミュレーションＲＡＭ２４のどのブロックへ転送するか、ブロックナンバーを書き込む。その後、外部ツール９０は、要求コマンドＲＡＭ４２に転送要求コマンドを書き込む。コマンド処理プログラム側では、図５を参照して上述したように、転送要求が要求コマンドＲＡＭ４２に書かれていた場合、要求アドレスＲＡＭ４４と要求ブロックＲＡＭ４６との情報から、当該アドレスのフラッシュＲＯＭ２２のデータを、エミュレーションＲＡＭ２４の当該ナンバーのブロックへコピーする（Ｓ１０４）。最後に、処理終了を外部ツール９０側に知らせるために要求コマンドＲＡＭ４２をクリアする（Ｓ１１６）。外部ツール９０は、要求コマンドＲＡＭ４２がクリアされるまで（Ｓ１２６：Ｙｅｓ）、コマンドの実行中と判断し、次の処理を開始しない。
【００２７】
ＭＣＵ２０は外部ツール９０と非同期にＲＡＭやレジスタにアクセスするが、第２実施形態では、外部ツール９０からエンジン制御プログラムのデータを送ることなく、ＭＣＵ２０内で、フラッシュＲＯＭ２２からエミュレーションＲＡＭ２４へエンジン制御プログラムのデータをエミュレートすることができるため、通信ライン９８、内部バスが専有されることがなく、外部ツールからのデータ転送による制御へ影響を与えない。
【００２８】
他方、図５に示すコマンド処理プログラムにおいて、図６を参照して上述した転送要求に引き続き、要求コマンドＲＡＭ４２に外部ツール９０からの切換要求が書かれていれば（Ｓ１０２：Ｙｅｓ）、後述する切り換えを行う（Ｓ１０６、Ｓ１０８、Ｓ１１０、Ｓ１１２）。
【００２９】
図７に、この切換要求時の外部ツールとコマンド処理プログラムのシーケンスチャートを示す。
先ず、外部ツール９０は、要求アドレスＲＡＭ４４に切り換えたいフラッシュＲＯＭ２２のアドレスを書き込む。次に、外部ツール９０は、要求ブロックＲＡＭ４６にエミュレーションＲＡＭ２４の切り換えたいブロックナンバーを書き込む。その後、外部ツール９０は、要求コマンドＲＡＭ４２に切換要求コマンドを書き込む。コマンド処理プログラム側では、図５を参照して上述したように、切換要求が要求コマンドＲＡＭ４２に書かれている場合には（Ｓ１０２：Ｙｅｓ）、要求アドレスＲＡＭ４４の値を切換アドレスレジスタ２６に書き込み（Ｓ１０６）、切換アドレスレジスタ２６の値を切換アドレスＲＡＭ３６に格納する（Ｓ１０８）。そして、要求ブロックＲＡＭ４６のブロックナンバーから、切換許可レジスタ２８のオーバラップさせるエミュレーションＲＡＭ２４の許可フラグをセットし（Ｓ１１０）、切換許可レジスタ２８の値を切換許可ＲＡＭ３８へ格納する（Ｓ１１２）。最後に、処理終了を外部ツール９０側に知らせるために要求コマンドＲＡＭ４２をクリアする（Ｓ１２４）。外部ツール９０は、要求コマンドＲＡＭ４２がクリアされるまで（Ｓ１２６：Ｙｅｓ）、コマンドの実行中と判断し、次の処理を開始しない。
【００３０】
また、図５に示すコマンド処理プログラムにおいて、図７を参照して上述した切換要求に引き続き、要求コマンドＲＡＭ４２に外部ツール９０からの復帰要求が書かれていれば（Ｓ１０２：Ｙｅｓ）、復帰モード要求ＲＡＭ３４に復帰要求コマンドを格納する（Ｓ１１４）。
【００３１】
図８に、この復帰要求時の外部ツールとコマンド処理プログラムのシーケンスチャートを示す。
外部ツール９０は、要求コマンドＲＡＭ４２に復帰要求コマンドを書き込む。コマンド処理プログラム側では、図５を参照して上述したように、復帰要求が要求コマンドＲＡＭ４２に書かれていた場合（Ｓ１０２：Ｙｅｓ）、復帰モード要求ＲＡＭ３４に復帰要求コマンドを格納し（Ｓ１１４）、要求コマンドＲＡＭ４２をクリアする（Ｓ１２４）。外部ツール９０は、要求コマンドＲＡＭ４２がクリアされるまで（Ｓ１２６：Ｙｅｓ）、コマンドの実行中と判断し、次の処理を開始しない。これにより、図３を参照して上述した第１実施形態と同様に、フラッシュＲＯＭ２２に保持された復帰判定プログラムによってエミュレーション状態の復帰がリセットの際に実行される。
この処理では、外部ツール９０からレジスタを直接操作させないため、誤って重要なレジスタを書き換えてしまうことを防ぐことができる。
【産業上の利用可能性】
【００３２】
なお、上述した第１実施形態、第２実施形態の説明では、フラッシュＲＯＭ２２に保持されているデータ（パラメータ）をエミュレーションＲＡＭ２４にエミュレートする例について説明した。エミュレーションＲＡＭ２４には、データではなくプログラムを保持させることもできるので、切り換えるプログラム領域を切換アドレスレジスタ２６へ入れて、復帰要求を設定しておくことで、リセット後に、エミュレーションＲＡＭ２４に保持された書き換えられたプログラムでエンジンを制御することもできる。これにより、フラッシュＲＯＭ２２のプログラムを書き換えることなく、プログラムを評価することができる。例えば、プログラムのバグ取りの際に、バクを取ったプログラムでエンジンの始動性を評価すること可能になる。
【００３３】
更に、上述した第１実施形態、第２実施形態では、切換アドレスレジスタ２６及び切換許可レジスタ２８は、電源断により記憶内容がクリアされるように構成されていたが、これを電源断状態においても情報を保持できるように構成することで、バックアップＲＡＭ３０内の、切換アドレスＲＡＭ３６及び、切換許可ＲＡＭ３８を無くすことも可能である。この場合には、復帰要求がなかった場合にのみ、リセットの際に切換アドレスレジスタ２６及び切換許可レジスタ２８の記憶内容をクリアする。
【図面の簡単な説明】
【００３４】
【図１】本発明の第１実施形態に係るＭＣＵの構成を示すブロック図である。
【図２】第１実施形態に係るＭＣＵでエミュレーションＲＡＭの１ブロック分を使用する際の処理を示すフローチャートである。
【図３】第１実施形態に係るＭＣＵでの復帰判定プログラム処理のフローチャートである。
【図４】本発明の第２実施形態に係るＭＣＵの構成を示すブロック図である。
【図５】コマンド処理プログラムの内容を示すフローチャートである。
【図６】転送要求時の外部ツールとコマンド処理プログラムのシーケンスチャートである。
【図７】切換要求時の外部ツールとコマンド処理プログラムのシーケンスチャートである。
【図８】復帰要求時の外部ツールとコマンド処理プログラムのシーケンスチャートである。
【図９】エンジン制御プログラムのパラメータ調整を行う際の試験車両の構成を示す説明図である。
【図１０】従来技術に係るＭＣＵの構成を示すブロック図である。
【図１１】従来技術のＭＣＵでエミュレーションＲＡＭの１ブロック分を使用する際の処理を示すフローチャートである。
【符号の説明】
【００３５】
１０  ＥＣＵ
１２  演算処理部
１４  信号入出力
２０  ＭＣＵ（メモリー制御ユニット）
２２  フラッシュＲＯＭ
２４  エミュレーションＲＡＭ（電気的に情報維持可能なＲＡＭ）
２６  切換アドレスレジスタ
２８  切換許可レジスタ
３０  バックアップＲＡＭ
３４  復帰モード要求ＲＡＭ
３６  切換許可レジスタＲＡＭ
３８  切換許可ＲＡＭ
４２  要求コマンドＲＡＭ
４４  要求アドレスＲＡＭ
４６  要求ブロックＲＡＭ
９０  外部ツール（パーソナルコンピュータ）
９２  エンジン
９８  通信ライン
【図１】
2005220784.tif 000003
【図２】
2005220784.tif 000004
【図３】
2005220784.tif 000005
【図４】
2005220784.tif 000006
【図５】
2005220784.tif 000007
【図６】
2005220784.tif 000008
【図７】
2005220784.tif 000009
【図８】
2005220784.tif 000010
【図９】
2005220784.tif 000011
【図１０】
2005220784.tif 000012
【図１１】
2005220784.tif 000013