(57)【要約】【課題】  制御データを制御対象の機器に適した値に調整するための調整処理を実行しつつ、調整後の制御データの書き込みを可能とする。【解決手段】  マイクロコンピュータ１は、一方の読出し中に他方の書込みが可能なデータ領域７ａ、７ｂを有するフラッシュ・メモリ８と、例えばデータ領域７ａに格納された調整前の制御データを調整する際に使用する代替用のＲＡＭ１０とを有し、ＣＰＵ３がデータ領域７ａの制御データを使用してプログラム記憶部２のプログラムを実行することで、制御対象機器の制御を行う。制御データの調整処理は、データ領域７ａの制御データをＲＡＭ１０にコピーして制御対象の機器に適した値に調整し、調整した調整済制御データをデータ領域７ｂに書込み、データ領域７ａ、７ｂのメモリマップ上のアドレスをスワップする。以降、ＣＰＵ３は、物理的にはデータ領域７ｂに格納された調整後の制御データを使用して機器の制御を行う。【選択図】  図１
2005316831.tif 000002
【特許請求の範囲】
【請求項１】
制御対象となる機器を制御する制御データを該制御対象の機器に適した値となるよう調整する調整処理を実行する電子制御装置において、
複数のデータ格納領域を有する不揮発性記憶部と、
前記不揮発性記憶部のデータ格納領域に格納された調整前の制御データである調整前制御データの前記調整処理を実行する際に、前記不揮発性記憶部に代替して使用する代替メモリと、
複数のデータ格納領域のうちの少なくとも一のデータ格納領域から調整前制御データを読み出し、前記代替メモリを使用して前記調整前制御データの調整処理を実行し、前記不揮発性記憶部における前記少なくとも一のデータ格納領域の読出しとは独立して書込みが可能な他のデータ格納領域に、前記調整された制御データである調整済制御データを書き込む調整処理手段と
を有することを特徴とする電子制御装置。
【請求項２】
前記不揮発性記憶部は、第１のデータ格納領域と該第１のデータ格納領域のデータの読出し、消去及び書込みをする第１のアクセス手段とを有する第１の不揮発性記憶部と、第２のデータ格納領域と該第２のデータ格納領域のデータの読み出し、消去及び書込みをする第２のアクセス処理手段とを有する第２の不揮発性記憶部とを備え、前記第１及び第２のデータ格納領域のいずれか一方に前記調整前制御データが格納され、他方に前記調整済制御データが書き込まれる
ことを特徴とする請求項１記載の電子制御装置。
【請求項３】
前記第１及び前記第２のデータ格納領域のアドレスを管理するアドレス管理手段を有し、
前記アドレス管理手段は、前記第１及び前記第２のデータ格納領域のいずれか一方のアドレスを前記調整前制御データが格納されるデータ格納領域のアドレスを示す第１のアドレスに設定し、他方のアドレスを前記調整済制御データが書き込まれるデータ格納領域のアドレスを示す第２のアドレスに設定する
ことを特徴とする請求項２記載の電子制御装置。
【請求項４】
前記アドレス管理手段は、前記調整処理終了後に前記第２のアドレスと前記第１のアドレスとを入れ換える
ことを特徴とする請求項３記載の電子制御装置。
【請求項５】
前記アドレス管理手段は、前記第１及び第２のデータ格納領域のアドレスと前記第１のアドレス又は第２のアドレスとを対応づけて記憶する記憶領域を有する
ことを特徴とする請求項３記載の電子制御装置。
【請求項６】
前記第１のアドレスが設定されたデータ格納領域の制御データを前記制御対象となる機器を制御する際に使用する
ことを特徴とする請求項４記載の電子制御装置。
【請求項７】
前記代替メモリは、前記不揮発性記憶部の消去単位以上の大きさの記憶容量を有する揮発性メモリである
ことを特徴とする請求項１記載の電子制御装置。
【請求項８】
制御対象となる機器を制御する制御データを該制御対象の機器に適した値となるよう調整する調整処理を実行する電子制御装置のデータ調整方法において、
前記制御データが格納された不揮発性記憶部の少なくとも一のデータ格納領域から調整前の制御データである調整前制御データを読み出す読出工程と、
前記不揮発性記憶部に代替して使用可能な代替メモリを使用して調整処理を実行する調整処理工程と、
前記不揮発性記憶部における前記少なくとも一のデータ格納領域の読出しとは独立して書き込み可能な他のデータ格納領域に対して前記調整処理工程にて調整された制御データである調整済制御データを書き込む書込工程と
を有することを特徴とするデータ調整方法。
【請求項９】
前記不揮発性記憶部は、前記不揮発性記憶部は、第１のデータ格納領域と該第１のデータ格納領域のデータの読出し、消去及び書込みをする第１のアクセス手段とを有する第１の不揮発性記憶部と、第２のデータ格納領域と該第２のデータ格納領域のデータの読み出し、消去及び書込みをする第２のアクセス処理手段とを有する第２の不揮発性記憶部とを備え、
前記読出工程では、前記第１及び第２のデータ格納領域の一方から前記調整前制御データを読み出し、
前記書込工程では、前記第１及び第２のデータ格納領域の他方に前記調整済制御データを書き込む
ことを特徴とする請求項８記載のデータ調整方法。
【請求項１０】
前記第１及び前記第２のデータ格納領域のアドレスを管理するアドレス管理手段により前記第１及び前記第２のデータ格納領域の一方のアドレスを前記調整前制御データが格納されるデータ格納領域を示す第１のアドレスに設定し、他方のアドレスを前記調整済制御データが書き込まれるデータ格納領域を示す第２のアドレスに設定するアドレス設定工程を有する
ことを特徴とする請求項９記載のデータ調整方法。
【請求項１１】
前記アドレス設定工程では、前記調整処理工程終了後に前記第２のアドレスと前記第１のアドレスとを入れ換える
ことを特徴とする請求項１０記載のデータ調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御データにて制御対象部を制御することができる電子制御装置及び電子制御装置のデータ調整方法に関し、制御対象部の制御を実行しつつ制御データの調整を可能にした電子制御装置及び電子制御装置のデータ調整方法に関する。
【背景技術】
【０００２】
従来、機器等を制御するための制御プログラムや制御パラメータ等のデータは、バッテリが外されても消去されないように不揮発性メモリ（ＲＯＭ）内に格納されてユーザに供給される場合がある。
【０００３】
また、電子制御装置をシステムに実装した後で、制御対象機器の特性に応じて制御データの調整（キャリブレーション）を希望する場合もある。このため、制御データは、例えばＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）やフラッシュメモリ（フラッシュＥＥＰＲＯＭ）等の書き換え可能不揮発性メモリなどに格納される。
【０００４】
ところで、フラッシュＥＥＰＲＯＭの記憶領域は複数の記憶ブロックに分割して構成されており、書き換え時には記憶ブロック毎にデータの消去や書き込みを行なう。例えば、記憶容量が３２キロバイト（ＫＢ）の２つの記憶ブロックから構成された６４ＫＢのフラッシュＥＥＰＲＯＭの場合、３２ｋＢ毎にデータの書換処理が行なわれる。しかし、フラッシュＥＥＰＲＯＭにおいてはデータの書換処理が行われている間、この記憶ブロックのデータの読み出しを行なうことができない。
【０００５】
更に、フラッシュＥＥＰＲＯＭは、データの書換処理に要する時間が、ＲＡＭ（Random Access Memory）の書き換え所要時間に比べて非常に長くかかる。このため、制御対象機器の特性に応じてキャリブレーションを行なう場合には、通常、フラッシュＥＥＰＲＯＭに書き込むためのデータをデバッガ等の外部記憶装置に一旦格納し、制御対象の機器を停止させた上、外部記憶装置に格納されたデータを用いてフラッシュＥＥＰＲＯＭの書換処理を行なう。従って、１つのフラッシュＥＥＰＲＯＭに対して複数回のキャリブレーションを行なう場合、キャリブレーション毎に上記処理を繰り返す必要があり、非常に手間がかかる。
【０００６】
そこで、下記特許文献１においては、制御動作時にも不揮発性メモリのデータの書換処理を行なうことができる電子制御装置が開示されている。図１０は、特許文献１に記載の電子制御ユニット（Electric Control Unit：ＥＣＵ）１１０を示すブロック図である。ここでは、ＥＣＵ１０を自動車に実装後、自動車を構成する例えば制御対象部１１１などの各ユニットの制御を行なうため、制御データとしての制御パラメータの調整（キャリブレーション）を行なう場合について説明する。
【０００７】
図１０に示すように、ＥＣＵ１１０は、ＣＰＵ２００、不揮発性メモリとしてのフラッシュＥＥＰＲＯＭ２０１及び揮発性メモリとしての調整用ＲＡＭ２０２を備え、ＣＰＵ２００は、フラッシュＥＥＰＲＯＭ２０１や調整用ＲＡＭ２０２等に格納された各種プログラムを実行するよう構成されている。フラッシュＥＥＰＲＯＭ２０１には、ＥＣＵ１１０が制御を行なう場合に用いる制御命令及び制御パラメータに関するデータが記録されており、ＥＣＵ１１０は、例えばこの制御命令により制御対処部１１１を制御動作させ、制御パラメータのキャリブレーション処理などを実行する。キャリブレーション終了後などのフラッシュＥＥＰＲＯＭ２０１の制御パラメータの書き換え時には記憶ブロック単位毎にデータの消去処理及び書込処理が行なわれる。調整用ＲＡＭ２０２は、キャリブレーション時に所定のデータを一時的に記憶するメモリであり、制御対象部１１１に対応した制御パラメータを格納できる記憶容量を有する。
【０００８】
ＥＣＵ１１０は、更に制御対象部１１１を特定したり、パラメータを確定したりするために使用されるユーザインターフェース部１１２を接続するための入出力インターフェース部２２０、ＣＰＵ２００とアドレスバスを介して接続されるアドレスデコーダ２１０、及びＣＰＵ２００とデータバスを介して接続され、フラッシュＥＥＰＲＯＭ１０１に書き込むべきアドレスや、調整された制御パラメータを保持するフラッシュ制御レジスタ２１３、ＣＰＵ２００に接続され、フラッシュＥＥＰＲＯＭ２０１の書き換えモードを設定するスーパーユーザモードレジスタ２１２などを有する。
【０００９】
アドレスデコーダ２１０は、初期化レジスタ２１１が備えられ、初期化レジスタ２１１は、キャリブレーションを行なう領域のアドレスに関するデータを記録する領域と、調整用ＲＡＭ２０２の起動に関するデータを記録する領域（起動ビット）とからなる。
【００１０】
ＥＣＵ１１０において、フラッシュＥＥＰＲＯＭ２０１に記録されたデータを制御対象部１１１に適したデータに書き換える際の処理は、先ず、ＥＣＵ１１０がフラッシュＥＥＰＲＯＭ２０１に記録されたデータに基づいて制御対象部１１１を制御中に、ユーザはユーザインターフェース部１１２を用いて制御対象部１１１に関してのキャリブレーションの指示を行なう。これにより、ＥＣＵ１０はキャリブレーションモードに設定される。そして、ＣＰＵ２００は、フラッシュＥＥＰＲＯＭ２０１上のキャリブレーション領域の決定を行ない、フラッシュＥＥＰＲＯＭ２０１のキャリブレーション領域のデータを調整用ＲＡＭ２０２にコピーする。
【００１１】
このとき、調整用ＲＡＭ２０２のメモリアドレスと、フラッシュＥＥＰＲＯＭ２０１のキャリブレーション領域とに同じアドレスを割り振り、制御対象部１１１の特性に合わせてキャリブレーション処理を実行する。すなわち、最適な制御パラメータとなるようデータの読み出しや書き換えの各種処理は、調整用ＲＡＭ２０２を使用して行い、キャリブレーションの終了指示があった場合に、調整用ＲＡＭ２０２に記録された制御パラメータを、フラッシュＥＥＰＲＯＭ２０１に対してプログラムする書込処理を実行する。
【００１２】
すなわち、この特許文献１などの従来技術においては、以下のようにしてフラッシュ・メモリのデータを書き換えるものである。図１１は、従来のフラッシュ・メモリのデータ書き換え方法を説明する図であって、図１１（ａ）は、データ領域が１つの場合、図１１（ｂ）はデータ領域が複数ある場合の書き換え方法を説明する図である。
【００１３】
図１１（ａ）に示すように、従来の電子制御装置は、アプリケーション・プログラムが記憶されるプログラム領域、及び制御パラメータが記憶されるデータ領域０を有するフラッシュ・メモリと、データ領域０の容量以上のＲＡＭとを備え、アプリケーション・プログラムを実行して、データ領域０に格納された制御パラメータを使用して制御対象となる機器を制御しつつ、制御パラメータの最適な値をサーチする調整処理を行う。その場合、まず、ＲＡＭにデータ領域０のデータを移動する。そして、ＲＡＭ上にて制御データを書換えていくこととで制御パラメータの最適化（調整処理）を行う。調整処理が終了したら、その最適化されたＲＡＭ上の制御パラメータをデータ領域０に書き戻す。
【００１４】
また、大量な制御データを扱うために複数のデータ領域を有する場合においては、図１１（ａ）に示すように、データ領域１つ分の制御パラメータをＲＡＭにコピーして調整し、その後、書き戻す処理を行うといった方法では時間がかかる。このため、例えば図１１（ｂ）に示すように、例えばデータ領域２つ分の記憶容量のＲＡＭを用意すれば、一度に２つのデータ領域のデータの最適化を行うことができる。
【００１５】
すなわち、大量の制御パラメータを調整処理するには、複数の制御パラメータの調整を同時並行的に実施する必要があり、このため、調整処理はアプリケーション・プログラムを実行したまま行うことが有用である。したがって、容量が大きいＲＡＭを電子制御装置に搭載することで、調整すべきデータ量が多い場合にも対応することができる。
【特許文献１】特開２００４−５２９６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、このような従来の調整方法では、アプリケーション・プログラムを実行中にキャリブレーション後の調整済制御パラメータを書き戻すことができず、アプリケーション・プログラム実行後、専用のプログラムを実行することにより、ＲＡＭのデータをフラッシュ・メモリのデータ領域に書き戻す必要がある。すなわち、フラッシュ・メモリは書き込みと読み出しを同時に実行できないため、調整済の制御パラメータの書き込みを実行している間はフラッシュ・メモリから制御パラメータを読み出すことができない。上述したように、フラッシュ・メモリのデータの書換処理に要する時間は非常に長く、したがって上記アプリケーション・プログラムを終了させる必要がある。
【００１７】
また、例えば大量の制御パラメータにより制御対象の機器を制御する場合、大量の制御パラメータをその制御対象機器に適した値に調整する必要がある。しかし、大量の制御パラメータの調整を一度に実行しようとすると、大容量のＲＡＭを搭載しなければならず、コストインパクトが大きいという問題点がある。一方、大量の制御パラメータを小さいＲＭＡにて調整処理する場合には、上述したように、アプリケーション・プログラムを一旦終了させ、ＲＡＭのデータを書き戻す処理を複数回繰り返す必要があり、制御パラメータの調整に極めて時間がかかるという問題点がある。
【００１８】
本発明は、このような問題点を解決するためになされたものであり、制御データを制御対象の機器に適した値に調整するための調整処理を実行しつつ、調整後の制御データの書き込みを可能とする電子制御装置及びそのデータ調整方法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明にかかる電子制御装置は、制御対象となる機器を制御する制御データを該制御対象の機器に適した値となるよう調整する調整処理を実行する電子制御装置において、複数のデータ格納領域を有する不揮発性記憶部と、前記不揮発性記憶部のデータ格納領域に格納された調整前の制御データである調整前制御データの前記調整処理を実行する際に、前記不揮発性記憶部に代替して使用する代替メモリと、複数のデータ格納領域のうちの少なくとも一のデータ格納領域から調整前制御データを読み出し、前記代替メモリを使用して前記調整前制御データの調整処理を実行し、前記不揮発性記憶部における前記少なくとも一のデータ格納領域の読出しとは独立して書込みが可能な他のデータ格納領域に、前記調整された制御データである調整済制御データを書き込む調整処理手段とを有することを特徴とする。
【００２０】
本発明においては、データ格納領域に格納されている調整処理対象の調整前制御データを、代替メモリ上にて制御対象の機器に適した値となるよう調整し、その後、調整前制御データがもともと格納されているデータ格納領域とは別のデータ格納領域であって、当該調整前制御データが格納されているデータ格納領域とは独立して書込み可能な他のデータ領域に調整した制御データを書き込むため、調整処理を継続しつつ制御データの調整が可能となり、例えば、継続して次のデータ格納領域の制御データの調整処理を実行することができる。
【００２１】
また、前記不揮発性記憶部は、第１のデータ格納領域と該第１のデータ格納領域のデータの読出し、消去及び書込みをする第１のアクセス手段とを有する第１の不揮発性記憶部と、第２のデータ格納領域と該第２のデータ格納領域のデータの読み出し、消去及び書込みをする第２のアクセス処理手段とを有する第２の不揮発性記憶部とを備え、前記第１及び第２のデータ格納領域のいずれか一方に前記調整前制御データが格納され、他方に前記調整済制御データが書き込まれるものとすることができ、２つの不揮発性記憶部により、それぞれ個別の書換え又は読み出し、すなわち一方のデータ格納領域の読出し中に他方のデータ格納領域の書込みを可能にする。
【００２２】
更に、前記第１及び前記第２のデータ格納領域のアドレスを管理するアドレス管理手段を有し、前記アドレス管理手段は、前記第１及び前記第２のデータ格納領域のいずれか一方のアドレスを前記調整前制御データが格納されるデータ格納領域のアドレスを示す第１のアドレスに設定し、他方のアドレスを前記調整済制御データが書き込まれるデータ格納領域のアドレスを示す第２のアドレスに設定することができ、いずれのデータ格納領域も、必要に応じて又は適宜、第１のアドレス又は第２のアドレスに設定することができる。
【００２３】
更にまた、前記アドレス管理手段は、前記調整処理終了後に前記第２のアドレスと前記第１のアドレスとを入れ換えることができ、第１及び第２のデータ格納領域のうち一方を調整された調整済制御データの格納領域とし、他方を次に最適化された制御データを格納するための領域に設定することができる。
【００２４】
また、前記アドレス管理手段は、前記第１及び第２のデータ格納領域のアドレスと前記第１のアドレス又は第２のアドレスとを対応づけて記憶する記憶領域を有することができ、例えばレジスタなどを使用すれば極めて簡単且つ小型な回路構成にてアドレス管理を行うことができる。
【００２５】
また、前記第１のアドレスが設定されたデータ格納領域の制御データを前記制御対象となる機器を制御する際に使用することができ、第１のアドレスが設定されているデータ格納領域の制御データを使用して機器を制御するものとしておけば、調整された制御データが格納されているデータ格納領域のアドレスに第１のアドレスを設定することで、常に調整済制御データを使用することができる。
【００２６】
更にまた、前記代替メモリは、前記不揮発性記憶部の消去単位以上の大きさの記憶容量を有する揮発性メモリとすることができ、揮発性メモリは、不揮発性記憶部の一括消去する最小単位以上の大きさであればよく、調整すべき制御データが上記消去単位以上であっても、順次最適化処理を実行することができ、小さい容量の代替メモリにて大量の制御データの最適化を実行することができる。
【００２７】
本発明に係るデータ最適化方法は、制御対象となる機器を制御する制御データを該制御対象の機器に適した値となるよう調整する調整処理を実行する電子制御装置のデータ調整方法において、前記制御データが格納された不揮発性記憶部の少なくとも一のデータ格納領域から調整前の制御データである調整前制御データを読み出す読出工程と、前記不揮発性記憶部に代替して使用可能な代替メモリを使用して調整処理を実行する調整処理工程と、前記不揮発性記憶部における前記少なくとも一のデータ格納領域の読出しとは独立して書き込み可能な他のデータ格納領域に対して前記調整処理工程にて調整された制御データである調整済制御データを書き込む書込工程とを有することを特徴とする。
【発明の効果】
【００２８】
本発明に係る電子制御装置及びデータ最適化方法によれば、調整前制御データを読み出しながら調整処理を実行し、調整済データを書き込むことができ、容量が小さい代替メモリであっても大容量の制御データの書換えを効率よく行うことができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、フラッシュ・メモリに記憶された制御データにより制御対象を制御しつつ、当該制御データを制御対象の機器に適した値に調整する調整処理を実行する電子制御装置（以下、マイクロコンピュータという。）及びそのデータ調整方法に適用したものである。例えば、本実施の形態におけるマイクロコンピュータを、各センサーからの情報を元に、パラメータを決定するシステムなどに適用すれば、制御対象の機器を制御するための制御パラメータを、当該制御対象の機器に適した値に計算して更新する処理（以下、最適化処理ともいう。）を実行することができる。
【００３０】
実施の形態１． 
図１は、本発明の実施の形態にかかるマイクロコンピュータ１を示すブロック図である。図１に示すように、マイクロコンピュータ１は、制御データを使用して制御対象となる機器を制御する電子制御装置であって、制御対象となる機器（以下、対象機器という。）の制御を実行するアプリケーション・プログラムが記憶されたプログラム記憶部２と、このプログラムを読み出し実行するＣＰＵ（Central Processing Unit）３と、複数のデータ領域（データ格納領域）を有し、このデータ領域に制御データが格納されるフラッシュ・メモリ（Flash EPROM（Erasable Programmable Read Only Memory）８と、後述する調整前制御データを制御対象の機器に適した制御データに調整する調整処理（以下、最適化処理ともいう。）を実行する際に、データ領域に代替して使用する揮発性メモリとしてのＲＡＭ１０と、フラッシュ・メモリ８における複数のデータ領域から、調整処理により調整された調整済制御データを格納するデータ領域を選択する書込用選択回路６と、フラッシュ・メモリ８内のいずれのデータ領域からデータを読み出すかを選択する読出用選択回路９と、書込用選択回路６を制御するフラッシュ書換制御回路４と、読出用選択回路９を制御するスワップ用レジスタ５と、外部とのデータのやり取りをするためのＩ／Ｏインターフェース部１２と、ＣＰＵ３、書込用選択回路６、読出用選択回路９、及びＲＡＭ１０などの間でデータをやり取りするためのデータバス１１とを有する。ここで、調整前制御データとは、例えばデフォルトの制御データ又は最適化が必要となった制御データなどである。
【００３１】
プログラム記憶部２は、後述するように、例えば、フラッシュ・メモリ又はＲＯＭ（Read Only Memory）などの不揮発性メモリであり、制御データを使用して対象機器の制御を実行するアプリケーション・プログラムが格納されたものである。ＣＰＵ３は、このアプリケーション・プログラムを読み出し、フラッシュ・メモリ８に記憶された調整前制御データを使用して対象機器の制御をし、外部からの指示などにより、制御データを対象機器の制御に適した値に調整するための調整処理を実行する。
【００３２】
フラッシュ・メモリ８は、複数のデータ領域を有する。本実施の形態においては、説明の簡単のため、２つのデータ０、データ１を格納するそれぞれ第１及び第２のデータ格納領域としてのデータ領域７ａ、７ｂを有するものとする。このデータ領域７ａ、７ｂは、独立して読出し、書換え可能処理が可能な構成とする。すなわち、一方のデータ領域７ａからデータを読み出しつつ、他方のデータ領域７ｂへのデータ書込みが可能な構成となっており、例えば、各データ領域に対してデータの読み出し、消去及び書込みが可能なメモリアクセス手段を個別に備えた第１及び第２の不揮発性記憶部からなる構成などとすることができる。具体的には、各データ領域が別のメモリマクロから構成されるものなどとすればよいが、２以上のデータ領域であってそれらが個別に読出し・書込みが可能な構成であればよく、また、そのようなデータ領域を３以上有してもよいことは勿論である。
【００３３】
また、データ領域７ａ、７ｂに格納されるデータ０、データ１は、フラッシュ・メモリ８における最小の消去単位（ブロックデータ）以上であればよいが、複数のブロックデータを格納したデータ領域としてもよいことは勿論である。
【００３４】
ＣＰＵ３は、プログラム記憶部２のアプリケーション・プログラムにより、データ領域７ａ、７ｂのいずれかに格納されている制御データを使用して制御対象機器の制御を行う。ここで、制御対象の機器によっては、予め与えられるなどしたデフォルトの制御データ、又は現在使用している制御データを調整（キャリブレーション）して、制御対象の機器に適した制御データとなるよう設定し直す調整処理を必要とする場合がある。ここで、本実施の形態においては、調整処理が必要となった、又は調整処理を必要とする制御データを調整前制御データ、調整処理が終了して最適な値に調整された制御データを調整済制御データということとする。
【００３５】
ＣＰＵ３は、この調整処理においては、調整前制御データを使用し、アプリケーション・プログラムを実行して対象機器を制御しつつ最適な値（調整済制御データ）を見つける処理を実行する。
【００３６】
ＲＡＭ１０は、調整処理において、フラッシュ・メモリ８のデータ領域７ａに調整前制御データが格納されている場合であれば、このデータ領域７ａから読み出された調整前制御データを一時的に記憶し、調整処理の際にデータ領域７ａの代替領域として使用する代替メモリである。調整処理においては、ＣＰＵ３は、ＲＡＭ１０にアクセスして調整対象となる調整前制御データを読出し、調整処理を実行する。このため、調整処理の実行中、フラッシュ・メモリ８、ＲＡＭ１０のメモリアドレスを管理している図示せぬアドレス管理部が、調整前制御データが格納されているアドレスをフラッシュ・メモリ８のデータ領域７ａからＲＡＭ１０のアドレスに設定変更する。
【００３７】
フラッシュ書換制御回路４は、調整処理が終了し、最適化された値（調整済制御データ）がＲＡＭ１０に固定されると、ＣＰＵ３から調整処理終了の通知を受け、フラッシュ・メモリ８のデータ領域７ａ、７ｂのうち、調整前制御データが書き込まれていない方のデータ領域に最適化された調整済制御データを書き込ませるためのセレクト信号を出力したり、データ領域７ａ、７ｂのいずれかのデータを消去させるためのセレクト信号を出力して書込用選択回路６を制御する。
【００３８】
書込用選択回路６は、フラッシュ書換制御回路４からのセレクト信号に基づき、フラッシュ・メモリ８の２つのデータ領域７ａ、７ｂのいずれかを選択する。そして、フラッシュ・メモリ８において、データ領域のデータ読み出し、消去及び書き込みを行う図示せぬメモリアクセス手段が選択されたデータ領域のデータを消去したり、調整処理後の調整済制御データの書き込みを行う。書き込むデータはＲＡＭ１０から読み出され、バス１１を介して送られる。
【００３９】
スワップ用レジスタ５は、後述するように、データ領域７ａ、７ｂのアドレスをスワップ（ＳＷＡＰ）させるために使用するアドレス管理手段として機能するものである。本実施の形態においては、２つのデータ領域７ａ、７ｂのうち、一方のデータ領域は、対象機器を制御する制御データを格納する（ＣＰＵ３が通常アクセスする）データ領域として設定され、他方のデータ領域は調整処理後の調整された調整済制御データが書き込まれるよう設定される。本実施の形態においては、２つのデータ領域７ａ、７ｂのうち、通常ＣＰＵ３がアクセスするデータ領域として使用する側のアドレスを第１のアドレス、調整処理後の調整済制御データがＲＡＭ１０から書き込まれるデータ領域のアドレスを第２のアドレスということとする。
【００４０】
例えば、調整処理を実行する前であって、調整前制御データがデータ領域７ａに格納されている場合、データ領域７ａのアドレスは、第１のアドレスに設定され、調整処理前においては、この第１のアドレスが設定されたデータ領域７ａから制御データが読み出され、制御対象の機器が制御される。そして、調整処理が必要になるなどして調整処理が実行された場合、上記第１のアドレスが設定されているデータ領域７ａの制御データがＲＡＭ１０にコピーされ、調整処理が実行される。そして、調整処理後の調整済制御データが第２のアドレスが設定されているデータ領域７ｂに書き込まれる。最後に、データ領域７ｂのアドレスが第１のアドレスに設定され、データ領域７ａのアドレスが第２のアドレスに設定される。すなわち、データ領域７ａ、７ｂのアドレスがＳＷＡＰされる。なお、例えばその後に更に第１のアドレスが設定されたデータ領域７ｂの制御データの調整処理が行われ、調整済制御データとしてデータ領域７ａに書き込まれれば、再びデータ領域７ａのアドレスが第１のアドレスに設定される。
【００４１】
このように、調整処理後には、他方のデータ領域７ｂに対してＣＰＵ３が通常アクセスするよう、データ領域のアドレスを入れ替える処理がなされる（以下、ＳＷＡＰという。）。スワップ用レジスタ５は、このＳＷＡＰを行うためのレジスタであり、データ領域７ａ、７ｂのアドレスが、第１のアドレス又は第２のアドレスのいずれに設定されているかの情報を保持しており、調整処理後にその情報を入れ換える。なお、ＳＷＡＰの方法についての詳細は後述する。また、ＳＷＡＰの方法は、データ領域の入れ替えを行うことができればよく、このようにレジスタを使用して行う方法に限らず、不揮発性メモリにデータ領域７ａ、７ｂのアドレスをマッピングするなどしてもよい。
【００４２】
読出用選択回路９は、フラッシュ・メモリ８の２つのデータ領域７ａ、７ｂのいずれかを選択して選択したデータ領域から制御データを読み出すものである。すなわち、調整処理前においては、スワップ用レジスタ５のデータに基づき、調整処理対象の調整前制御データが格納された側のデータ領域を選択する。また、対象機器を制御する場合には、調整された最新の調整済制御データが格納されているデータ領域を選択する。読み出したデータはバス１１を介してＣＰＵ３、ＲＡＭ１０などに送られる。本実施の形態においては、調整済制御データが格納されると、調整前データが格納されていたデータ領域とそのアドレスがＳＷＡＰされるため、読出用選択回路９は、スワップ用レジスタ５に格納されたデータに基づき、常に第１のアドレスに設定された側のデータ領域を選択することとなる。
【００４３】
次に、本実施の形態におけるデータ最適化方法について説明する。図２（ａ）は、本実施の形態におけるマイクロコンピュータ１の記憶領域のメモリマップを示す図、図２（ｂ）は、データ領域に対するアクセス可否を示す図である。また、図３（ａ）乃至図３（ｄ）は、データ領域が最適化される様子を示す図、図４は、本実施の形態における最適化方法を示すフローチャートである。また、図５は、図１に示すマイクロコンピュータ１のデータ最適化方法を説明するための模式図である。
【００４４】
ここでは、マイクロコンピュータ１における記憶領域である２つのデータ領域７ａ、７ｂ（データ領域１、データ領域０とする）８及びプログラム領域が、図２（ａ）に示すメモリマップ２０にマッピングされている場合について説明する。
【００４５】
データ領域０には、調整前制御データとしてデータ０が格納され、プログラム領域には、データ０を使用して対象機器の制御を実行するアプリケーション・プログラムが格納されているものとする。制御データを最適化する際に使用するＲＡＭ１０、データ領域１、０のデータ容量は、各２ＫＢとする。ＲＡＭ１０は、データ領域０、１と、メモリマップ２０上でアドレスが切り替え可能とされる。
【００４６】
これらデータ領域１及びデータ領域０、並びにプログラム領域は、上述したように、異なるメモリマクロにて構成されているものとし、必要に応じて個別に読出し又は書込みの処理が実行可能とする。すなわち、図２（ｂ）に示すように、フラッシュ・メモリのデータ領域０、１は、一方を書き換えつつ他方を読み出す（リード）動作が可能であるものとする。なお、データ領域０は、書き換え、読み出しを同時に行うことはできず、またデータ領域１においても書換え、読み出しを同時に実行することはできない。
【００４７】
このような状態において、通常、図１に示すマイクロコンピュータ１は、データ領域０のデータ０を使用して動作を実行している。すなわち、データ領域０が通常アクセスするデータ領域として設定されているものとする。以下、このデータ０をデータ０（Ｖｅｒ１）とする。この場合において、図４及び図５に示すように、ユーザなどにより外部からＩ／Ｏインターフェース部１２を介して、データ領域０のデータ０（Ｖｅｒ１）を最適な値に調整する最適化開始指令Ｄ１が出された場合、これを受けたＣＰＵ３がデータの調整処理を開始する（ステップＳ１）。調整処理を開始すると、先ず、調整対象となるデータ０（Ｖｅｒ１）Ｄ１をＲＡＭ１０にコピーする（ステップＳ２、図３（ａ））。
【００４８】
次に、ＣＰＵ３は、メモリマップ上のアドレス２０において、フラッシュ・メモリのデータ領域０のアドレスとＲＡＭ１０のアドレスとを切り替える（ステップＳ３、ＳＴ３）。このように、ＲＡＭ１０をデータ０のアドレスにマッピングすることにより、以降、データ領域０へのアクセスは、ＲＡＭ１０が代替して行うこととなる。この状態で、データ０（Ｖｅｒ１）の調整処理を実行する。調整処理では、ＣＰＵ３が、対象機器が最適に制御されるような、制御データの最適な値を計算するもので、ＣＰＵ３は、ＲＡＭ１０のデータ０の値をリードしながらアプリケーション・プログラムを実行し、ＲＡＭ１０のデータ０の値を順次書き換えて最適な値をサーチする。最適な値が決定（FIX）したら、その値をデータ０（Ｖｅｒ２）Ｄ５としてＲＡＭ３０に設定する（図３（ｂ））。
【００４９】
そして、最適化されたデータ０（Ｖｅｒ２）Ｄ５をＲＡＭ１０からフラッシュ・メモリのデータ領域１へコピーする（ステップＳ５）。データ領域１にデータ０（Ｖｅｒ２）が書き込まれると、スワップ用レジスタ５によりデータ領域１のアドレスとデータ領域０のアドレスとをＳＷＡＰする。
【００５０】
次に、このＳＷＡＰの方法について説明する。データ領域をＳＷＡＰする方法として、本実施の形態においては、スワップ用レジスタ５を内蔵し、例えばＳＷＡＰ＝０の場合は、データ領域０を通常ＣＰＵ３がアクセスするためのデータ領域として使用し、データ領域１を最適化後の調整された制御データを書き込むための調整用領域として使用するものとし、逆に、ＳＷＡＰ＝１の場合は、データ領域１をデータ領域として使用し、データ領域０を最適化後のデータを書き込むため調整用領域として使用する方法である。すなわち、ＳＷＡＰ＝０の場合、データ領域０は第１のアドレスのデータ領域として認識され、データ領域１は第２のアドレスのデータ領域として認識され、ＳＷＡＰ＝１の場合、データ領域０は第２のアドレスのデータ領域、データ領域１は第１のアドレスのデータ領域として認識されることとなる。これにより、簡単な方法でデータ領域のＳＷＡＰが可能となる。
【００５１】
そして、調整処理前において、スワップ用レジスタ５がＳＷＡＰ＝０に設定されていた場合であって、調整処理が行われた場合、ＣＰＵ３より調整処理終了の通知を受けたスワップ用レジスタ５は、ＳＷＡＰ＝１に設定変更する。これにより、調整処理前にデータ領域として使用されていたデータ領域０は、調整用領域とされ、調整用領域として使用されていたデータ領域１はデータ領域に入れ替わる。以降、ＣＰＵ３は、データ領域としてデータ領域１にアクセスすることとなる。このようなスワップ用レジスタ５により、極めて簡単かつ簡素な回路構成にてデータ領域のアドレス管理し、データ領域のＳＷＡＰを行うことができる。
【００５２】
ＳＷＡＰのその他の方法として、上述のスワップ用レジスタを不揮発性領域にマッピングしておく方法がある。これにより、現在アクセスしたいデータが、データ領域０にあるか、データ領域１にあるかを認識することができると共に、電源が遮断されてもデータ領域０、１のいずれがデータ領域であって、いずれが調整用領域であるかの情報が失われることがない。すなわち、スワップ用レジスタ５を使用すると、レジスタ５の内容が電源遮断により初期状態に戻るため、電源遮断前に、データ領域となっている例えばデータ領域０に最終的なデータを書き戻す必要があるが、不揮発性領域にマッピングしておくことにより電源遮断前にデータ領域にデータを書き戻す必要がなくなる。
【００５３】
本実施の形態においては、機器を制御するための制御データを格納するためのデータ領域の例えば２倍の容量のデータ領域であって、各データ領域が個別に書き換えと読み出しとが可能なフラッシュ・メモリと、データ領域における消去単位以上の容量のＲＡＭとを搭載することで、一方のデータ領域に通常使用する制御データを記憶し、他方のデータ領域に調整処理後のデータを書込むことができ、アプリケーション・プログラムを実行しつつ、データ調整処理を行うことができる。したがって、アプリケーション・プログラムを終了することなく、調整されたデータをフラッシュ・メモリに書込むことができ、これにより、例えば消去単位である一のブロックにおける制御データの調整処理が終了してもアプリケーション・プログラムを継続して実行することができる。
【００５４】
また、ＲＡＭ１０の容量は、例えば１ブロック分の制御データを記憶できる容量、すなわち、フラッシュ・メモリ８の少なくとも消去単位以上の大きさであればよく。小さい容量のＲＡＭ１０があれば制御データの調整処理が実効できる。
【００５５】
更に、調整処理終了後に２つのデータ領域０、１の物理的なデータ領域でなく、アドレスをＳＷＡＰする手段として例えばスワップ用レジスタ５を設けることにより、２つのデータ領域０、１の一方を現在の制御データを格納するためのデータ領域、他方を過去の制御データ又は調整後の制御データを格納するための調整用領域とし、制御データが最適化処理により調整されるとデータ領域をＳＷＡＰさせることで、最新の制御データがいずれのデータ領域０、１に格納されているかを認識することができる。また、このようなレジスタ５にフラグを格納し、このフラグによりデータ領域のいずれに最新の制御データが格納されているかを判断させるため、回路規模を増大させることがない。
【００５６】
実施の形態２． 
次に、本発明の実施の形態２について説明する。図６は、本発明の実施の形態２におけるマイクロコンピュータ２１を示すブロック図である。上述したフラッシュ・メモリは、データ領域が２つであったが、本実施の形態におけるフラッシュ・メモリは、データ領域を４つ有するものとする。その他の構成は、図１に示す実施の形態１と同様であり、図１と同様の構成要素には同一の符号を付しその詳細な説明は省略する。
【００５７】
図６に示すように、本実施の形態におけるマイクロコンピュータ２１は、データ領域０、１を有する第１の不揮発性記憶部としてのメモリマクロ２７ａと、データ領域２、３を有する第２の不揮発性記憶部としての第２のメモリマクロ２７ｂとからなるフラッシュ・メモリ２８を有する。第１のメモリマクロ２７ａ、第２のメモリマクロ２７ｂのいずれか一方のデータ領域が、ＣＰＵ３が常に最新の制御データを読み出すデータ領域とされ、他方が最適化後の調整済制御データを書き込むための調整用領域として使用される。
【００５８】
データ領域０、１、２、３は、フラッシュ・メモリ２８の例えば消去単位であるブロックデータからなるデータ０、１、２、３を格納する。また、本実施の形態においても、フラッシュ・メモリ２８の代替用メモリとして、ブロックデータと同一容量（２ＫＢ）のＲＡＭ１０を有するものとする。
【００５９】
図７（ａ）は、本実施の形態におけるマイクロコンピュータ２１の記憶領域のメモリマップを示す図、図７（ｂ）は、データ領域に対するアクセス可否を示す図である。また、図８（ａ）乃至図９（ｃ）は、データ領域の制御データを制御対象の機器に適した値に調整する調整処理手順を示す図である。
【００６０】
データ領域０、１と、データ領域２、３は、異なるメモリマクロから構成されるため、図７（ａ）に示すように、例えばデータ領域０とデータ領域３とが個別にアクセス可能となる。すなわち、図７（ｂ）に示すように、データ領域０、１の書換え中は、同時にデータ領域２、３の読出しが可能であり、データ領域０、１の読出し中は、同時にデータ領域２、３の書換えが可能となっている。なお、データ領域０のデータを読み出し又は書き込み中に、データ領域１のデータを読み出し又は書き込むことはできない。
【００６１】
次に、本実施の形態におけるデータ最適化方法について説明する。マイクロコンピュータ２１は、データ領域０、１のデータ０（Ｖｅｒ１）、データ１（Ｖｅｒ１）を使用して制御対象の機器を制御しているものとする。上述した実施の形態１と同様、外部からの最適化指令がＩ／Ｏインターフェース部１２を介してＣＰＵ３に通知されると、先ずデータ領域０のデータ０（Ｖｅｒ１）をＲＡＭ１０にコピーし（図８（ａ））、ＣＰＵ３は、ＲＡＭ１０にコピーされたデータ０（Ｖｅｒ１）を使用し、制御データの最適な値をサーチする。最適な値データ０（Ｖｅｒ２）が決定したら、これを調整用メモリマクロの例えばデータ領域２に書き込む（図８（ｂ））。
【００６２】
同様に、データ領域１のデータ１（Ｖｅｒ１）をＲＡＭ１０にコピーし（図９（ａ））、ＣＰＵ３は、ＲＡＭ１０にコピーされたデータ１（Ｖｅｒ１）を使用し、制御データの最適な値をサーチする。最適な値であるデータ１（Ｖｅｒ２）が決定したら、これを調整用メモリマクロの例えばデータ領域２に書き込む（図９（ｂ））。そして、最後にスワップ用レジスタ５により、データ領域０、１と、データ領域２、３のアドレスをＳＷＡＰする（図９（ｃ））。
【００６３】
これにより、第２のメモリマクロ２７ａがデータ領域とされ、第１のメモリマクロ２７ａは調整用領域とされ、対象機器を制御する際、物理的には、第２のメモリマクロ２７ｂのデータ領域０、１に格納されている調整前の制御データであるデータ０、１（Ｖｅｒ１）を読み出すことなく、データ領域２、３に格納されているデータ０、１（Ｖｅｒ２）により制御対象の機器を制御することができる。
【００６４】
本実施の形態においては、上述した実施の形態１と同様の効果を奏し、個別に書き換えと読み出しとが可能なデータ領域を有するフラッシュ・メモリと、データ領域の最適化のために一時的にデータを記憶するためのＲＡＭと、フラッシュ・メモリのデータ領域のアドレス管理をするスワップ用レジスタ５などのデータ領域管理手段を搭載することにより、アプリケーション・プログラムを実行しつつデータ書き換えが可能となる。また、大量の制御データのキャリブレーションが必要な場合であっても、少なくともフラッシュ・メモリの消去単位分のメモリ容量を有するＲＡＭを用意すれば、制御プログラムを中断することなく制御データを順次継続して行うことができ、小さい容量のＲＡＭであっても、効率よく調整処理を実行することができる。
【００６５】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、図６においては、ＲＡＭ１０は、１つのブロックデータを移動できるだけの容量として説明したが、データ領域０、１における２つのデータ（データ０、１）を記憶可能な容量とすれば、データ領域０、１に格納される制御データの最適化処理が一度に行えて最適化処理の高速化を図ることができる。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態１にかかるマイクロコンピュータを示すブロック図である。
【図２】（ａ）は、本発明の実施の形態１におけるマイクロコンピュータにおけるメモリマップを示す図、（ｂ）は、データ領域に対するアクセス可否を示す図である。
【図３】（ａ）乃至（ｄ）は、データ領域が最適化される様子を最適化処理順に示す図である。
【図４】本発明の実施の形態における最適化方法を示すフローチャートである。
【図５】図１に示すマイクロコンピュータ１のデータ最適化方法を説明するための模式図である。
【図６】本発明の実施の形態２におけるマイクロコンピュータを示すブロック図である。
【図７】（ａ）は、本発明の実施の形態２におけるマイクロコンピュータ２１のＣＰＵ３が認識するメモリマップを示す図、（ｂ）は、データ領域に対するアクセス可否を示す図である。
【図８】（ａ）及び（ｂ）は、データ領域が最適化される様子を最適化処理順に示す図である。
【図９】（ａ）乃至（ｃ）は、同じくデータ領域が最適化される様子を最適化処理順に示す図であって図８（ａ）及び（ｂ）に続く処理を示す図である。
【図１０】特許文献１に記載の電子制御ユニット（Electric Control Unit：ＥＣＵ）１１０を示すブロック図である。
【図１１】従来のフラッシュ・メモリのデータ書き換え方法を説明する図であって、（ａ）は、データ領域が１つの場合、（ｂ）はデータ領域が複数ある場合の書き換え方法を説明する図である。
【符号の説明】
【００６７】
１、２１  マイクロコンピュータ  ２  プログラム記憶部  ３  ＣＰＵ  ４  フラッシュ書換制御回路  ５  スワップ用レジスタ  ６  書込用選択回路  ７ａ、７ｂ  データ領域  
７ｂ  データ領域  ８、２８  フラッシュ・メモリ  ９  読出用選択回路  １１  バス  
１２  インターフェース部  ２０  メモリマップ  ２７ａ、２１ｂ  メモリマクロ
【図１】
2005316831.tif 000003
【図２】
2005316831.tif 000004
【図３】
2005316831.tif 000005
【図４】
2005316831.tif 000006
【図５】
2005316831.tif 000007
【図６】
2005316831.tif 000008
【図７】
2005316831.tif 000009
【図８】
2005316831.tif 000010
【図９】
2005316831.tif 000011
【図１０】
2005316831.tif 000012
【図１１】
2005316831.tif 000013