(57)【要約】【課題】別の処理により使用されるメモリ領域に誤ってデータが書き込まれてしまう可能性を抑える。【解決手段】電子制御装置が備えるＣＰＵは、燃料噴射制御、点火制御及び電子スロットル制御処理を含む複数種類の制御処理を実行する。このＣＰＵは、ベースレジスタが記憶する基準アドレスに、指定された相対アドレスを加算して実効アドレスを算出し、この実効アドレスに基づき、ストア命令及びロード命令に対応するＲＡＭへのアクセスを行う構造を備える。各制御処理では、命令の発行時に、相対アドレスにより、アクセス先のメモリアドレスを指定する。また、各制御処理に対しては、異なる基準アドレスが割り当てられ、各制御処理の実行開始前には、ベースレジスタの値が、これから実行される制御処理に割り当てられた基準アドレスに更新される。この動作により、各制御処理に対しては、重複しない独立性の高いメモリ領域が割り当てられる。【選択図】図４
2013025372.tif 000002
【特許請求の範囲】
【請求項１】
メモリに記憶されたデータに基づき、車両制御に関する処理を実行する車両用電子制御装置であって、
基準アドレスを記憶するベースレジスタと、
前記ベースレジスタが記憶する前記基準アドレスに、書込要求元から指定された相対アドレスを加算し、前記書込要求元から書込を要求されたデータを、前記加算により算出されたアドレスに対応する前記メモリ内の領域に、書き込むメモリ書込制御手段と、
前記車両制御に関する複数種類の処理を切り替えて実行する手段であって、前記メモリに対する書込対象データが生じた場合には、前記書込対象データの書込先を、前記相対アドレスにより指定し、前記メモリ書込制御手段に前記書込対象データの書込を要求する処理実行手段と、
前記処理実行手段が実行する処理を切り替える際に、前記ベースレジスタが記憶する前記基準アドレスを、前記複数種類の処理の内、切替後に前記処理実行手段が実行する処理に対して予め定められた基準アドレスに、書き換えるレジスタ書換手段と、
を備え、
前記複数種類の処理の夫々に対応する前記基準アドレスは、前記相対アドレスとして指定可能な範囲と前記基準アドレスとの組み合わせにより定まる、前記複数種類の処理の夫々のデータ書込可能な前記メモリ内の領域が、前記複数種類の処理の間で互いに重複しないように、定められていること
を特徴とする車両用電子制御装置。
【請求項２】
前記複数種類の処理の夫々では、前記相対アドレスとして、前記複数種類の処理の間で互いに共通する同一ビット長のアドレスが用いられること
を特徴とする請求項１記載の車両用電子制御装置。
【請求項３】
前記複数種類の処理の夫々では、前記相対アドレスとして、前記処理毎に個別のビット長のアドレスが用いられること
を特徴とする請求項１記載の車両用電子制御装置。
【請求項４】
前記処理実行手段は、前記車両制御に関する複数種類の処理として、車両が有する内燃機関の制御に関する複数種類の処理を少なくとも実行すること
を特徴とする請求項１〜請求項３のいずれか一項記載の車両用電子制御装置。
【請求項５】
前記処理実行手段が実行する前記車両制御に関する複数種類の処理には、前記内燃機関に対する燃料噴射制御を実行する処理、前記内燃機関に対する点火制御を実行する処理、及び、前記内燃機関に対する電子スロットル制御を実行する処理が含まれること
を特徴とする請求項４記載の車両用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両用電子制御装置に関する。
【背景技術】
【０００２】
従来、車両用電子制御装置（ＥＣＵ）としては、車両に搭載された内燃機関（エンジン）の制御を行うエンジンＥＣＵ等が知られている。この種の車両用電子制御装置では、例えば、ＲＯＭに格納されたプログラムに従って、ＣＰＵが車両制御に関する処理を実行する（特許文献１等参照）。この際には、ＲＡＭがワークメモリとして使用される。車両用電子制御装置がエンジンＥＣＵである場合には、ＣＰＵにより、燃料噴射制御、点火制御、及び、電子スロットル制御等の内燃機関の制御に関する複数の制御処理が実行され、ＲＡＭには、各制御処理で用いられる変数等のデータである制御データが書き込まれたり、読み出されたりする。
【０００３】
また、従来技術としては、ＲＡＭ内をブロック化し、燃料噴射制御、点火制御、及び、電子スロットル制御処理等の各制御処理に対し、個別のブロックを割り当て、ＲＡＭを複数の制御処理にて共用する技術が知られている。この他、ＲＡＭを管理する技術として、ＲＡＭに記憶されたデータの誤り訂正を行う技術等も知られている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１５２８０１号公報
【特許文献２】特開平９−１６７１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、過酷な環境で使用される車両用電子制御装置では、熱やノイズ等の影響を受けて、予期しないエラーが発生する可能性がある。一方、ＲＡＭを複数の制御処理で共用する従来の車両用電子制御装置では、処理毎に異なるメモリ領域を使用する場合でも、各処理では、指定可能なメモリアドレスの一部を選択的に使用することによって、予め割り当てられたメモリ領域に選択的にアクセスする程度である。このため、コンピュータによる処理の実行エラー等により、データの書込先とするメモリアドレスの指定動作に誤りが生じ、各処理が、予め割り当てられた正当なメモリ領域以外の領域にデータを書き込んでしまう可能性がある。
【０００６】
そして、このような不適切な書込が生じてしまう環境では、車両の安全に関わる処理が使用するメモリ領域のデータが書き換えられてしまう可能性があり、書込先の誤りが、車両の安全に関わる新たなエラーを引き起こす原因となる可能性がある。
【０００７】
本発明は、こうした問題に鑑みなされたものであり、複数の処理に個別のメモリ領域を割り当て、一つのメモリを共用する車両用電子制御装置において、各処理が、別の処理により使用されるメモリ領域に誤ってデータ書込を行ってしまう可能性を十分に抑制可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた本発明（請求項１）は、メモリに記憶されたデータに基づき、車両制御に関する処理を実行する車両用電子制御装置であって、ベースレジスタと、メモリ書込制御手段と、処理実行手段と、レジスタ書換手段と、を備えるものである。ベースレジスタは、基準アドレスを記憶するものであり、メモリ書込制御手段は、ベースレジスタが記憶する基準アドレスに、書込要求元から指定された相対アドレスを加算し、書込要求元から書込を要求されたデータを、この加算により算出されたアドレスに対応するメモリ内の領域に書き込む。
【０００９】
処理実行手段は、上記車両制御に関する複数種類の処理を切り替えて実行する手段であり、メモリに対する書込対象データが生じた場合、書込対象データの書込先を、上記相対アドレスにより指定して、メモリ書込制御手段に書込対象データの書込を要求する。
【００１０】
また、本発明に特徴的なレジスタ書換手段は、処理実行手段が実行する処理を切り替える際、ベースレジスタが記憶する基準アドレスを、切替後に処理実行手段が実行する処理に対して予め定められた基準アドレスに書き換える。更に、本発明において、上記複数種類の処理の夫々に対応する上記基準アドレスは、相対アドレスとして指定可能なアドレス範囲と基準アドレスとの組み合わせにより定まる、複数種類の処理の夫々のデータ書込可能なメモリ内の領域が、当該複数種類の処理の間で互いに重複しないように定められる。
【００１１】
周知技術としては、書込要求元から指定された相対アドレスをベースレジスタが示す基準アドレスに加算して得られたアドレスに対応するメモリ領域に、書込対象のデータを書き込む技術、及び、読出要求元から指定された相対アドレスをベースレジスタが示す基準アドレスに加算して得られたアドレスに対応するメモリ領域から、読出対象のデータを読み出す技術が知られているが、本発明は、例えば、このような技術が適用されたマイクロコンピュータ等を用いて、上述の各手段に対応する機能を実現することができる。
【００１２】
このように構成された本発明の車両用電子制御装置によれば、各種類の車両制御に関する処理では、相対アドレスによってデータの書込先アドレスを指定する。このため、各処理では、基準アドレスから相対アドレスで記述可能な範囲内のメモリ領域に対してデータを書き込める程度であり、当該範囲を越えたメモリ領域に、データを書きこむことができない。
【００１３】
従って、処理実行手段が実行する各種類の車両制御に関する処理に対し、上述した規則に従って予め基準アドレスを定め、処理実行手段が実行する処理の切替時に、ベースレジスタが記憶する基準アドレスを書き換えると、各種類の処理に対して、重複しない異なるメモリ領域を割り当てることができる。
【００１４】
そして、このように基準アドレスを処理毎に切り替えて、各処理に重複しない異なるメモリ領域を割り当てる手法によれば、各処理では、相対アドレスの範囲内でしか書込先アドレスを指定することができないため、書込先アドレスとしてメモリ全体を指定できる従来技術と比較して、各処理が、別の処理により使用されるメモリ領域に誤ってデータ書込を行ってしまう可能性を十分に抑制することができる。即ち、予期しないエラーの発生を原因として、実行中の処理から、他の処理が使用するメモリ領域に、不適切にデータが書き込まれるのを十分に抑えることができる。
【００１５】
そして、このような手法で各処理に対応するメモリ領域の独立性を高めれば、複数種類の車両制御に関する処理でメモリを共用する場合に、複数種類の車両制御に関する処理の一つにエラー（暴走等）が生じても、そのエラーによる悪影響が、他の車両制御に関する処理に伝播する可能性を抑えることができる。従って、本発明によれば、従来よりもエラーに対して耐性のある安全な車両用電子制御装置を構成することができ、この車両用電子制御装置を用いることで、安全性の高い車両を製造することができる。
【００１６】
ところで、車両用電子制御装置は、上記相対アドレスとして、複数種類の処理の間で互いに共通する同一ビット長のアドレスを、複数種類の処理の夫々において用いるように構成することができる（請求項２）。このように相対アドレスのビット長を共通のものとすることで、複数種類の処理が使用するメモリ内のエリアを、ビット長に対応するアドレス間隔で等間隔に区画化することができる。そして、複数種類の処理の夫々に対しては、個別に割り当てられたメモリ内の区画の先頭に対応するメモリアドレスを、基準アドレスとして定めることができる。
【００１７】
但し、各処理に共通するビット長の相対アドレスを採用する手法は、各処理に必要なメモリ領域のサイズに大きなばらつきがある場合に、欠点がある。即ち、各処理に共通するビット長の相対アドレスを用いる手法では、上記ばらつきがある場合、例えば、最も多くのメモリ領域を必要とする処理に合わせて相対アドレスのビット長を決定する等の対応が必要となり、メモリの効率的な使用が阻害される可能性がある。
【００１８】
そこで、複数種類の処理の夫々では、相対アドレスとして、処理毎に個別のビット長のアドレスを用いるように、車両用電子制御装置は、構成されるとよい（請求項３）。この場合には、複数種類の処理が使用するメモリ内のエリアを、複数種類の処理の夫々に対応する区画であって、この処理で用いられる相対アドレスのビット長に対応するサイズの区画を有するように、区画化することができる。
【００１９】
このように構成された車両用電子制御装置によれば、複数種類の処理が使用するメモリ内のエリアを、各処理にて必要なサイズで区画化することができ、実行中の処理から、他の処理が使用するメモリ領域に、不適切にデータが書き込まれるのを十分に抑えつつ、メモリを効率的に使用することができる。
【００２０】
また、上述のメモリ書込制御手段、処理実行手段、及び、レジスタ書換手段は、コンピュータが備えるように、車両用電子制御装置は構成することができる。即ち、車両用電子制御装置には、上記各手段に対応する機能をコンピュータに実現させるためのプログラムを（例えばマスクＲＯＭやフラッシュＲＯＭ等のプログラムメモリに）搭載して、コンピュータが、このプログラムの実行により、処理実行手段や、その他の各手段として機能するように、車両用電子制御装置は、構成することができる。尚、各手段の少なくとも一部をハードウェアにより構成されてもよいことは言うまでもない。例えば、メモリ書込制御手段は、コンピュータに対しハードウェアとして組み込まれ得る。
【００２１】
この他、本発明は、上記車両制御に関する複数種類の処理として、車両が有する内燃機関の制御に関する複数種類の処理を少なくとも実行する車両用電子制御装置に適用されると、車両の安全確保に有効に機能する（請求項４）。特に、本発明は、上記車両制御に関する複数種類の処理として、内燃機関に対する燃料噴射制御を実行する処理、内燃機関に対する点火制御を実行する処理、及び、内燃機関に対する電子スロットル制御を実行する処理を少なくとも実行する車両用電子制御装置に適用されると、車両の安全確保の点で好ましい（請求項５）。
【図面の簡単な説明】
【００２２】
【図１】電子制御装置１の構成を表すブロック図である。
【図２】ストア命令及びロード命令に関する説明図である。
【図３】第一実施例のＲＡＭ３０の構成を表す概念図である。
【図４】ＣＰＵ１０が実行する第一実施例のメインルーチンを表すフローチャートである。
【図５】第二実施例のＲＡＭ３０の構成を表す概念図である。
【図６】第二実施例のメインルーチンを表すフローチャートである。
【図７】第三実施例のメインルーチンの一部を表すフローチャートである。
【発明を実施するための形態】
【００２３】
以下に本発明の実施例について、図面と共に説明する。
［第一実施例］
本実施例の電子制御装置１は、車両に搭載される車両用の電子制御装置である。具体的に、図１に示す電子制御装置１は、車両に搭載された内燃機関（エンジン）１００を制御するものであり、ＣＰＵ１０と、ＲＯＭ２０と、ＲＡＭ３０と、入出力回路（Ｉ／Ｏ）４０と、を備える。
【００２４】
入出力回路４０は、内燃機関１００に搭載された各種アクチュエータ及びセンサ（図示せず）と、ＣＰＵ１０との間の信号伝達を司る回路であり、ＲＡＭ３０は、ＣＰＵ１０によるプログラム実行時に作業領域として使用されるメモリである。また、ＲＯＭ２０は、ＣＰＵ１０により使用されるプログラムやデータ等を記憶するメモリである。ＲＯＭ２０は、マスクＲＯＭ又はフラッシュＲＯＭ等により構成される。
【００２５】
この他、ＣＰＵ１０は、ＲＯＭ２０に格納された各種プログラムに基づく処理を実行するものであり、内燃機関１００を制御するための処理として、燃料噴射制御処理、点火制御処理、及び、電子スロットル制御処理等を実行する。特に、本実施例のＣＰＵ１０は、ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）アーキテクチャを備えるＲＩＳＣプロセッサとして構成され、各制御処理からのストア命令及びロード命令に従って、図２に示すように、ＲＡＭ３０へのデータ書込及びデータ読出を行う。
【００２６】
図２（ａ）は、ストア命令及びロード命令の構成を概念的に表す図である。ストア命令及びロード命令は、図２（ａ）に示すように、レジスタの指定コードと、ストア命令又はロード命令に対応するオペコードと、相対アドレス（ディスプレースメント）と、を情報として備える命令である。
【００２７】
具体的に、ストア命令は、ＣＰＵ１０が備えるレジスタ群１１の内、ＲＡＭ３０への書込対象データが格納されたレジスタに対応する上記レジスタの指定コードと、ストア命令に対応するオペコードと、書込対象データのＲＡＭ３０における書込先を表す相対アドレスと、を有する命令であり、これらの情報によってＲＡＭ３０へのデータ書込を要求するものである。一方、ロード命令は、レジスタ群１１の内、ＲＡＭ３０から読み出したデータを格納する先のレジスタに対応する上記レジスタの指定コードと、ロード命令に対応するオペコードと、読出対象データのＲＡＭ３０における格納位置を表す相対アドレスと、を有する命令であり、これらの情報によってＲＡＭ３０からのデータ読出を要求するものである。
【００２８】
ＣＰＵ１０は、ストア命令を処理するストア命令処理部１３、及び、ロード命令を処理するロード命令処理部１５として機能するハードウェア構造を有し、上記各制御処理からのストア命令は、ストア命令処理部１３において次のように処理される。図２（ｂ）は、ストア命令処理部１３の構成を概念的に表した機能ブロック図である。
【００２９】
ストア命令を受けると、ストア命令処理部１３では、アドレス加算部１３Ａが、レジスタ群１１の内、予め定められたベースレジスタ１１Ａが記憶する基準アドレスを用いて、この基準アドレスとストア命令が示す相対アドレスとを加算し、実効アドレスを求める。即ち、基準アドレスと相対アドレスとを加算した値を、書込対象データの書込先メモリアドレスとして特定する。そして、書込部１３Ｂが、ＣＰＵ１０が記憶するレジスタ群１１の内、ストア命令が示す上記レジスタの指定コードに対応するレジスタ１１Ｂに記憶された書込対象データを、レジスタ１１Ｂから読み出し、読み出した書込対象データを、求められた上記実効アドレスに対応するＲＡＭ３０内の領域に、書き込む。
【００３０】
一方、上記各制御処理からのロード命令は、ロード命令処理部１５において次のように処理される。図２（ｃ）は、ロード命令処理部１５の構成を概念的に表した機能ブロック図である。
【００３１】
ロード命令を受けると、ロード命令処理部１５では、アドレス加算部１５Ａが、レジスタ群１１の内、予め定められたベースレジスタ１１Ａが記憶する基準アドレスを用いて、この基準アドレスとロード命令が示す相対アドレスとを加算し、実効アドレスを求める。即ち、基準アドレスと相対アドレスとを加算した値を、読出先メモリアドレスとして特定する。そして、読出部１５Ｂが、求められた実効アドレスに対応するＲＡＭ３０内の領域に格納されているデータを、ＲＡＭ３０から読み出し、これを、ＣＰＵ１０が記憶するレジスタ群１１の内、ロード命令が示す上記レジスタの指定コードに対応するレジスタ１１Ｃに格納する。
【００３２】
本実施例では、このようにして書込先メモリアドレス及び読出先メモリアドレスが、基準アドレスからの相対アドレスにより、上記各制御処理から指定されて、これに対応するデータ書込及び読出処理が実行される。尚、類似した機能を有する製品としては、ルネサス  エレクトロニクス株式会社のＶ８５０シリーズ等が知られている。
【００３３】
ところで、本実施例の電子制御装置１では、ＲＡＭ３０を、電子スロットル制御処理、燃料噴射制御処理、及び、点火制御処理を含む複数種類の制御処理にて共有するが、エラーの発生により、一つの制御処理が他の制御処理にて使用されるＲＡＭ３０内のデータを書き換えてしまうと、エンスト等のトラブルが発生し、このことが車両の安全性に影響を与える可能性がある。
【００３４】
そこで、本実施例では、各制御処理の実行前には、この制御処理に固有の基準アドレスをベースレジスタ１１Ａに設定することにより、各制御処理に対しては、ＲＡＭ３０において異なるメモリ領域を割り当て、更には、エラーが生じても、各制御処理が、割り当てられたメモリ領域を超えて、ＲＡＭ３０にデータを書き込まないようにする。
【００３５】
上述したように、本実施例では、各制御処理からのメモリアクセスには、相対アドレスが用いられる。このため、各制御処理においてアクセス可能なメモリ領域は、基準アドレスを基点に相対アドレスにて指定可能なアドレスの範囲に限定される。
【００３６】
このため、本実施例では、ＲＡＭ３０のアドレス空間全体よりも十分小さいビット長の相対アドレスを用いる一方で、相対アドレスのビット長分空けて、各制御処理に対して順に固有の基準アドレスを割り当てることにより、各制御処理に対して重複しない異なるメモリ領域を割り当てる。
【００３７】
図３は、各制御処理で共通する同一ビット長の相対アドレス（具体的には、７ビットの相対アドレス）を用いるケースでの基準アドレスの割り当て例を示した図である。この例によれば、電子スロットル制御処理に対して、基準アドレス”０ｘ００００１０００”を割り当て、燃料噴射制御処理に対して、基準アドレス”０ｘ００００１０８０”を割り当て、点火制御処理に対して、基準アドレス”０ｘ００００１１００”を割り当てることにより、各制御処理に対して互いに重複しない異なるメモリ領域を割り当てる。尚、図３に示す例によれば、各制御処理に割り当てられた上記基準アドレスの間隔（差）は、”０ｘ００００００８０”、即ち２の７乗であり、相対アドレスのビット長に対応する。
【００３８】
続いて、図４を用いて、ＣＰＵ１０がＲＯＭ２０に記憶されたプログラムに基づき実行するメインルーチンについて説明する。ＣＰＵ１０は、イグニションスイッチがオンにされると、このメインルーチンを繰返し実行する。
【００３９】
メインルーチンを開始すると、ＣＰＵ１０は、まず燃料噴射制御処理に対して割り当てられた基準アドレス（図３に示す例によれば”０ｘ００００１０８０）を、ベースレジスタ１１Ａに書き込む（Ｓ１１０）。その後、燃料噴射制御処理を実行する（Ｓ１２０）。燃料噴射制御処理においては、相対アドレスが７ビットであるストア命令及びロード命令（以下、相対７ビット命令と表現する。）を用いて、制御データのＲＡＭ３０への書込及びＲＡＭ３０からの読出を実行し、書込対象データが生じた場合には、相対７ビット命令により相対アドレスを指定してＲＡＭ３０にデータを書き込み、又、ＲＡＭ３０から相対７ビット命令によりデータを読み出して、ＲＡＭ３０に記憶された制御データに基づいた燃料噴射制御を実行する。図３に示す例によれば、この動作により、燃料噴射制御処理では、ＲＡＭ３０の０ｘ００００１０８０〜０ｘ００００１０ＦＦのアドレス範囲に対してデータが書き込まれる。
【００４０】
尚、燃料噴射制御処理に対応するプログラムの作成時には、ストア命令及びロード命令として相対７ビット命令を用いるように、プログラムを作成することにより、燃料噴射制御処理では、相対７ビット命令により、ＲＡＭ３０に対するデータ書込及びデータ読出が実行されるようにする。例えば、アセンブラにより相対７ビット命令に対応するニーモニックを記述することにより、上記プログラムを作成することができる。ちなみに、点火制御処理及び電子スロットル制御処理に対応するプログラムについても、燃料噴射制御処理と同様にして、相対７ビット命令を用いるように作成する。
【００４１】
また、燃料噴射制御処理の実行後には、実行する制御処理を点火制御処理に切り替える前に、ベースレジスタ１１Ａが記憶する基準アドレスを、点火制御処理に対して割り当てられた基準アドレス（図３に示す例によれば”０ｘ００００１１００”）に書き換える（Ｓ１３０）。その後、点火制御処理を実行する（Ｓ１４０）。点火制御処理においては、燃料噴射制御処理と同様、相対７ビット命令を用いて、制御データのＲＡＭ３０への書込及びＲＡＭ３０からの読出を実行し、書込対象データが生じた場合には、相対７ビット命令により相対アドレスを指定してＲＡＭ３０にデータを書き込み、又、ＲＡＭ３０から相対７ビット命令によりデータを読み出して、ＲＡＭ３０に記憶された制御データに基づいた点火制御を実行する。この動作により、点火制御処理においては、燃料噴射制御処理とは重複しない異なるメモリ領域（図３に示す例によれば０ｘ００００１１００〜０ｘ００００１１７Ｆのアドレス範囲）に対してデータが書き込まれる。
【００４２】
また、点火制御処理の実行後には、実行する制御処理を電子スロットル制御処理に切り替える前に、ベースレジスタ１１Ａが記憶する基準アドレスを、電子スロットル制御処理に対して割り当てられた基準アドレス（図３に示す例によれば”０ｘ００００１０００”）に書き換える（Ｓ１５０）。その後、電子スロットル制御処理を実行する（Ｓ１６０）。電子スロットル制御処理においては、燃料噴射制御処理及び点火制御処理と同様、相対７ビット命令を用いて、制御データのＲＡＭ３０への書込及びＲＡＭ３０からの読出を実行し、書込対象データが生じた場合には、相対７ビット命令により相対アドレスを指定してＲＡＭ３０にデータを書き込み、又、ＲＡＭ３０から相対７ビット命令によりデータを読み出して、ＲＡＭ３０に記憶された制御データに基づいた電子スロットル制御を実行する。この動作により、電子スロットル制御処理においては、燃料噴射制御処理及び点火制御処理とは重複しない異なるメモリ領域（図３に示す例によれば０ｘ００００１０００〜０ｘ００００１０７Ｆのアドレス範囲）に対してデータが書き込まれる。
【００４３】
ＣＰＵ１０は、このようにして各制御処理の実行前には、その制御処理に割り当てられた基準アドレスに、ベースレジスタ１１Ａの値を更新することにより、各制御処理からは、その制御処理に対応するメモリ領域に対してのみアクセスを可能とする。
【００４４】
尚、ここでは、メインルーチンにおいて、燃料噴射制御、点火制御、及び、電子スロットル制御処理を順に実行する例を説明したが、図４に示すように、Ｓ１１０，Ｓ１２０の処理、Ｓ１３０，Ｓ１４０の処理、及び、Ｓ１５０，Ｓ１６０の処理は、マルチタスク環境下において、それぞれ異なるタスクＡ，Ｂ，Ｃにより実行されてもよい。時分割マルチタスク環境下において、このように複数の制御処理を、タスクＡ，Ｂ，Ｃにより並列実行する場合には、実行タスクの切替時に、これから実行する制御処理に対応する基準アドレスに、ベースレジスタ１１Ａの値を書き換えればよい。
【００４５】
以上、本実施例の電子制御装置１について説明したが、本実施例によれば、小さいビット長の相対アドレスを用いつつ、各制御処理に対して異なる基準アドレスを割り当てることにより、各制御処理に対して互いに重複しないメモリ領域を割り当てるようにした。従って、本実施例によれば、従来よりもエラーに耐性のある電子制御装置を構成することができる。
【００４６】
即ち、従来技術によれば、各制御処理において、指定可能なアドレス範囲の一部を選択的に使用するようにプログラム設計することにより、各制御処理において重複しないメモリ領域を割り当てるようにしたが、このような手法では、熱やノイズ等に起因する書込先アドレスの誤りにより、各制御処理が、他の制御処理に割り当てられたメモリ領域にデータを書き込む可能性がある。
【００４７】
一方、本実施例によれば、基準アドレスをベースレジスタ１１Ａに書き込む際にエラーが生じなければ、各制御処理が、他の制御処理に割り当てられたメモリ領域にデータを書き込む可能性は基本的にない。そして、ストア命令やロード命令による処理の実行回数に対し、ベースレジスタ１１Ａに対するデータの書込動作の回数は、圧倒的に少ない。従って、本実施例によれば、エラーにより、各制御処理が、他の制御処理に割り当てられたメモリ領域にデータを書き込む可能性を抑えることができ、エラーに耐性のある電子制御装置を構成することができる。そして、このようなエラーに耐性のある電子制御装置を車両に搭載すれば、車両の安全を高めることができる。
［第二実施例］
続いて、第二実施例について説明する。但し、第二実施例の電子制御装置１の構成は、その大部分が第一実施例の電子制御装置１の構成と同一である。そのため、以下では、第一実施例と異なる第二実施例の電子制御装置１の構成を選択的に説明する。
【００４８】
第一実施例では、複数種類の制御処理において互いに共通するビット長の相対アドレスを用いるようにしたが、第二実施例では、複数種類の制御処理の夫々において、個別に設定されたビット長の相対アドレスを用いる。第一実施例のように相対アドレスを各制御処理において共通のものとする場合には、ＲＡＭ３０内を等間隔に区画化し、各区画を、対応する制御処理に割り当てることになるため、広いメモリ領域を必要とする制御処理、及び、狭いメモリ領域で十分な制御処理が混在する中でも、一律に同サイズのメモリ領域を割り当てることになり、ＲＡＭ３０の効率的な使用が難しい。
【００４９】
一方、第二実施例のように、制御処理毎に個別のビット長の相対アドレスを用いる場合には、各制御処理に対して適切なメモリ領域を割り当てることができ、ＲＡＭ３０の効率的な使用が可能である。
【００５０】
図５に示す例によれば、電子スロットル制御処理に対しては、６ビットの相対アドレスで指定可能な範囲のメモリ領域が割り当てられ、燃料噴射制御処理に対しては、９ビットの相対アドレスで指定可能な範囲のメモリ領域が割り当てられ、点火制御処理に対しては、１２ビットの相対アドレスで指定可能な範囲のメモリ領域が割り当てられる。即ち、本実施例では、このようにＲＡＭ３０内の領域を区画化し、各区間の先頭位置に対応するメモリアドレスを、各制御処理の基準アドレスとして割り当てる。
【００５１】
具体的に、図５に示す例によれば、電子スロットル制御処理に対しては、基準アドレス”０ｘ００００１０００”が割り当てられ、燃料噴射制御処理に対しては、基準アドレス”０ｘ００００１０４０”が割り当てられ、点火制御処理に対しては、基準アドレス”０ｘ００００１２４０”が割り当てられる。
【００５２】
そして、ＣＰＵ１０は、図４に示すメインルーチンに代えて、図６に示すメインルーチンを繰返し実行する。即ち、ＣＰＵ１０は、メインルーチンを開始すると、まず燃料噴射制御処理に対して割り当てられた基準アドレス”０ｘ００００１０４０”を、ベースレジスタ１１Ａに書き込み（Ｓ２１０）、燃料噴射制御処理を実行する（Ｓ２２０）。そして、燃料噴射制御処理においては、相対アドレスが９ビットであるストア命令及びロード命令（相対９ビット命令）を用いて、制御データのＲＡＭ３０への書込及びＲＡＭ３０からの読出を実行する。この動作により、燃料噴射制御処理では、ＲＡＭ３０の０ｘ００００１０４０〜０ｘ００００１２３Ｆのアドレス範囲に対してデータが書き込まれる。勿論、燃料噴射制御処理に対応するプログラムの作成時には、ストア命令及びロード命令として相対９ビット命令を用いるように、燃料噴射制御処理に対応するプログラムを作成する。
【００５３】
また、燃料噴射制御処理の実行後には、点火制御処理を実行する前に、ベースレジスタ１１Ａが記憶する基準アドレスを、点火制御処理に対して割り当てられた基準アドレス”０ｘ００００１２４０”に書き換える（Ｓ２３０）。その後、点火制御処理を実行する（Ｓ２４０）。点火制御処理においては、相対アドレスが１２ビットであるストア命令及びロード命令（相対１２ビット命令）を用いて、制御データのＲＡＭ３０への書込及びＲＡＭ３０からの読出を実行する。この動作により、点火制御処理においては、ＲＡＭ３０の０ｘ００００１２４０〜０ｘ００００２２３Ｆのアドレス範囲に対してデータが書き込まれる。
【００５４】
また、点火制御処理の実行後には、電子スロットル制御処理を実行する前に、ベースレジスタ１１Ａが記憶する基準アドレスを、電子スロットル制御処理に対して割り当てられた基準アドレス”０ｘ００００１０００”に書き換える（Ｓ２５０）。その後、電子スロットル制御処理を実行する（Ｓ２６０）。電子スロットル制御処理においては、相対アドレスが６ビットであるストア命令及びロード命令（相対６ビット命令）を用いて、制御データのＲＡＭ３０への書込及びＲＡＭ３０からの読出を実行する。この動作により、電子スロットル制御処理においては、ＲＡＭ３０の０ｘ００００１０００〜０ｘ００００１０３Ｆのアドレス範囲に対してデータが書き込まれる。
【００５５】
以上、第二実施例について説明したが、本実施例によれば、制御処理毎に、異なるビット長の相対アドレスを設定することによって、各制御処理に対して異なるサイズのメモリ領域を割り当てる。従って、本実施例によれば、エラーにより、各制御処理が、他の制御処理に割り当てられたメモリ領域にデータを書き込む可能性を抑えつつも、制御処理毎に必要なサイズのメモリ領域を割り当てて効率的にＲＡＭ３０を使用することができる。
［第三実施例］
続いて、第三実施例について説明する。但し、第三実施例の電子制御装置１は、基本的な構成を、第二実施例の電子制御装置１と同一とするものである。従って、以下では、第二実施例の電子制御装置１と相違する構成を選択的に説明する。
【００５６】
第三実施例の電子制御装置１は、図６に示されるメインルーチンにおいて、ベースレジスタ１１Ａへの書込を行う度に、ベースレジスタ１１Ａに書き込んだはずの値と、書込後のベースレジスタ１１Ａの値と、を比較することにより、ベースレジスタ１１Ａの書込が正常に行われたか否かを判断し、正常に行われたと判断した場合には、第一及び第二実施例と同様に後続の制御処理を実行し、正常に行われていないと判断した場合には、上記後続の制御処理に代えて、エラー処理を実行する構成にされたものである。エラー処理としては、ベースレジスタ１１Ａへの基準アドレスの書込を再度実行した後、対応する制御処理を実行する内容のエラー処理や、ＲＡＭ３０に記憶された制御データを参照せずに、標準の制御データを用いて、対応する制御処理を実行する内容のエラー処理や、警告灯をオンにするエラー処理や、これらを複合化したエラー処理等が考えられる。
【００５７】
図７を用いて詳述すると、ＣＰＵ１０は、メインルーチンの開始後、第二実施例と同様に、燃料噴射制御処理に対して割り当てられた基準アドレス”０ｘ００００１０４０”を、ベースレジスタ１１Ａに書き込む（Ｓ２１０）。その後、ベースレジスタ１１Ａの値を読み出し、読み出した値が、書き込んだはずの基準アドレス”０ｘ００００１０４０”と一致するか否かを判断することにより、ベースレジスタ１１Ａの値が正常であるか否かを判断する（Ｓ２１５）。即ち、両者の値が一致すれば正常と判断し、一致しなければ正常でない（異常）と判断する。
【００５８】
そして正常であると判断すると（Ｓ２１５でＹｅｓ）、第二実施例と同様に、Ｓ２２０に移行して、燃料噴射制御処理を実行し、その後、Ｓ２３０に移行する。
一方、正常でないと判断すると（Ｓ２１５でＮｏ）、エラー処理を実行する。エラー処理としては、上述したように、ベースレジスタ１１Ａへの基準アドレスの書込を再度実行した後、燃料噴射制御処理を実行する内容のエラー処理や、ＲＡＭ３０に記憶された制御データを参照せずに、標準の制御データを用いて、燃料噴射制御処理を実行する内容のエラー処理や、警告灯を点灯するエラー処理や、これらを複合化したエラー処理等を挙げることができる。その後、Ｓ２３０に移行する。
【００５９】
また、Ｓ２３０への移行後には、点火制御処理に対して割り当てられた基準アドレスを、ベースレジスタ１１Ａに書き込む。その後、Ｓ２１５と同様に、ベースレジスタ１１Ａの値を読み出し、読み出した値が、書き込んだはずの基準アドレスと一致するか否かを判断することにより、ベースレジスタ１１Ａの値が正常であるか否かを判断する。そして正常であると判断すると、第二実施例と同様に、Ｓ２４０に移行して、点火制御処理を実行し、正常でないと判断すると、点火制御処理に対応するエラー処理を実行する。Ｓ２５０以降の処理においても、燃料噴射制御及び点火制御と同様の手順を踏んで、必要であれば、エラー処理を実行する。
【００６０】
以上、第三実施例について説明したが、第三実施例によれば、ベースレジスタ１１Ａへの書込エラーにも適切に対応することができ、より安全な車両制御システムを構築することができる。尚、第三実施例に関する技術は、第一実施例の電子制御装置１にも適用できることは言うまでもない。
［最後に］
以上、本発明の実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、上記実施例によれば、内燃機関１００を制御する電子制御装置に、本発明を適用した例を説明したが、本発明を、その他の種々の電子制御装置に適用できることは言うまでもない。
【００６１】
また、用語間の対応関係は、次の通りである。即ち、ＣＰＵ１０が備えるストア命令処理部１３は、メモリ書込制御手段の一例に対応し、ＣＰＵ１０が燃料噴射制御処理、点火制御処理、及び、電子スロットル制御処理の各制御処理を切り替えて実行する動作は、処理実行手段によって実現される動作の一例に対応する。その他、ＣＰＵ１０が実行するＳ１１０，Ｓ１３０，Ｓ１５０，Ｓ２１０，Ｓ２３０，Ｓ２５０の処理は、レジスタ書換手段が実行する処理の一例に対応する。
【符号の説明】
【００６２】
１…電子制御装置、１０…ＣＰＵ、１１…レジスタ群、１１Ａ…ベースレジスタ、１３…ストア命令処理部、１３Ａ…アドレス加算部、１３Ｂ…書込部、１５…ロード命令処理部、２０…ＲＯＭ、３０…ＲＡＭ、４０…入出力回路、１００…内燃機関
【図１】
2013025372.tif 000003
【図２】
2013025372.tif 000004
【図３】
2013025372.tif 000005
【図４】
2013025372.tif 000006
【図５】
2013025372.tif 000007
【図６】
2013025372.tif 000008
【図７】
2013025372.tif 000009