(57)【特許請求の範囲】
【請求項１】
浮動小数点型データを演算するための浮動小数点演算機能を有し、所定の制御プログラムに従い自動車のエンジンの制御を実施するマイクロコンピュータを備えた電子制御装置において、
固定小数点と浮動小数点との２つの形式を要する同一データに関して、メモリに固定小数点型データ及び浮動小数点型データの記憶領域を予め設けておき、
前記マイクロコンピュータは、前記記憶領域より固定小数点型データ及び浮動小数点型データを参照するものであって、前記エンジンの回転数に基づいてエンジン始動直後であるか否かを判断する場合は固定小数点型データを使用し、通常運転時に吸入空気量を算出する場合は浮動小数点型データを使用することを特徴とする電子制御装置。
【請求項２】
前記マイクロコンピュータは、前記同一データに関して固定小数点及び浮動小数点の何れか一方の値を求めた後、型変換により他方の値を求め、これら求めた各値をそれぞれ該当する記憶領域に格納する請求項１に記載の電子制御装置。
【請求項３】
請求項２に記載の電子制御装置において、
浮動小数点型データを先に求め、その浮動小数点型データを固定小数点型データに変換する電子制御装置。
【請求項４】
請求項２又は３に記載の電子制御装置において、
固定小数点と浮動小数点との型変換を行う際に、少なくともその型変換の開始から終了までの期間で割り込みを禁止する電子制御装置。
【請求項５】
前記同一データにおける２つの形式を、処理の要求精度に応じて使い分ける請求項１〜４のうち何れか一項に記載の電子制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、浮動小数点演算機能を備えた電子制御装置に関するものである。
【０００２】
【従来の技術】
一般に、自動車のエンジン制御などに適用される電子制御装置（ＥＣＵ）では、従来より固定小数点型データを用いて各種演算を実施していたが、近年では浮動小数点演算プロセッサ（ＦＰＵ：Ｆｌｏａｔｉｎｇ−Ｐｏｉｎｔ  Ｕｎｉｔ  ）の導入により、浮動小数点型データによる演算が実施できるようになった。浮動小数点型データによれば、固定小数点型データに比べて非常に細かい精度で演算結果が得られる。
【０００３】
また、浮動小数点演算を導入した電子制御装置において、固定小数点型データと浮動小数点型データとが共に存在する場合、固定小数点型データを参照して浮動小数点演算に用いるには、
（１）固定小数点型のＲＡＭ値を浮動小数点型へ型変換する、
（２）前記型変換した浮動小数点型データを参照し、浮動小数点演算を行う、
といった手順が実施される。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来の技術では、浮動小数点演算に際して固定小数点型データの参照箇所が多数存在すると、型変換のためのロジックが増加する。それ故、制御プログラムが増えてＲＯＭ（フラッシュメモリ）のデータ量が増加したり、マイクロコンピュータの演算負荷が増加してパフォーマンスが低下したりするという問題を招く。
【０００５】
本発明の電子制御装置は、上記問題に着目してなされたものであって、固定小数点と浮動小数点との２つの形式からなる同一データを扱う電子制御装置において、演算負荷の軽減を図ることを目的とする。
【０００６】
【課題を解決するための手段】
請求項１に記載の電子制御装置では、浮動小数点型データを演算するための浮動小数点演算機能を有し、所定の制御プログラムに従い自動車のエンジンの制御を実施するマイクロコンピュータを備えた電子制御装置において、固定小数点と浮動小数点との２つの形式を要する同一データに関して、メモリに浮動小数点型データの記憶領域を予め設けておき、マイクロコンピュータは、前記浮動小数点型データの記憶領域より浮動小数点型データを参照するものであって、前記マイクロコンピュータは、前記記憶領域より固定小数点型データ及び浮動小数点型データを参照するものであって、前記エンジンの回転数に基づいてエンジン始動直後であるか否かを判断する場合は固定小数点型データを使用し、通常運転時に吸入空気量を算出する場合は浮動小数点型データを使用する。
【０００７】
要するに、固定小数点のメモリ値を浮動小数点へ型変換し、その型変換した浮動小数点型データを参照して浮動小数点演算を行うといった従来装置と比べると、本発明では、データ参照の都度、型変換する必要がないので、浮動小数点型データ参照のためのロジックが大幅に削減される。従って、固定小数点と浮動小数点との２つの形式からなる同一データを扱う電子制御装置において、演算負荷の軽減を図ることができる。
また、エンジン始動直後か否かを判断する場合においては、演算の精度が粗くても良いため、固定小数点型データを使う。よって、演算負荷の軽減を図ることができる。
【０００９】
請求項２に記載の発明では、マイクロコンピュータは、同一データに関して固定小数点及び浮動小数点の何れか一方の値を求めた後、型変換により他方の値を求め、これら求めた各値をそれぞれ該当する記憶領域に格納する。
【００１０】
本構成によれば、固定小数点と浮動小数点との２つのデータが順次求められ、記憶領域に個別に格納されるので、各値を参照する際には各々の記憶領域に直接アクセスすれば良い。従って、参照する数値が固定小数点と浮動小数点の何れであっても、負荷の増大を招くことなく処理が実施できる。
【００１１】
請求項３に記載の発明では、浮動小数点型データを先に求め、その浮動小数点型データを固定小数点型データに変換するので、その逆に固定小数点型データを先に求める構成と比べて浮動小数点型データの精度が向上する。
【００１２】
請求項４に記載の発明では、固定小数点と浮動小数点との型変換を行う際に、少なくともその型変換の開始から終了までの期間で割り込みを禁止するので、その型変換の途中で固定小数点と浮動小数点の何れか一方が参照される（読み出される）ことはない。従って、参照される固定小数点型データと浮動小数点型データとが不一致となるといった不都合が回避される。
【００１３】
請求項５に記載の発明では、同一データにおける２つの形式を、処理の要求精度に応じて使い分けるので、各種処理の要求精度を満たしつつ、処理負荷を軽減することができる。
【００１４】
【発明の実施の形態】
以下、この発明を具体化した一実施の形態を図面に従って説明する。図１は、エンジン制御システムの概略を示すブロック図である。本システムにおいて、車載エンジン１は、例えばガソリン噴射式の多気筒内燃機関として構成される。
【００１５】
エンジン制御ＥＣＵ１０はマイクロコンピュータ（以下、マイコンという）１１を備え、同マイコン１１はＣＰＵ１２、ＲＡＭ１３、ＲＯＭ１４、ＦＰＵ（浮動小数点演算プロセッサ）１５、Ｉ／Ｏ（入出力装置）１６を備える。ここで、ＦＰＵ１５は浮動小数点形式の演算を実施し、ＣＰＵ１２は浮動小数点形式以外の演算を実施する。Ｉ／Ｏ１６には周知のＡ／Ｄ変換器が含まれる。
【００１６】
ＥＣＵ１０には、エンジン１に設けられたセンサ群からエンジン運転状態を表す各種情報が入力される。センサ群は、例えば冷却水温を検出するための水温センサ２、吸入空気量を検出するためのエアフロメータ（吸入空気量センサ）３、エンジン回転数を検出するための回転数センサ４などからなる。そして、ＥＣＵ１０は、前記入力されるセンサ信号を基に、図示しないインジェクタによる燃料噴射の制御や燃料ガスのパージ制御などを実施する。
【００１７】
ＦＰＵ１５により演算される浮動小数点型データは、例えばＩＥＥＥ７５４規格に従い構成され、図２に示されるようにその内訳として、１ビットの符号部と、８ビットの指数部と、２３ビットの仮数部とを有する。こうして仮数部が２３ビットで構成される４バイト（単精度記憶形式）の浮動小数点型データの場合、７桁の分解能（０．００００００１  の分解能）を持つ。
【００１８】
一方、図３（ａ）にはＲＡＭ１３の構成例を示し、図３（ｂ）にはＲＡＭ１３に格納される水温、吸入空気量、エンジン回転数の各値の形態を示す。図３（ａ）から分かるように、ＲＡＭ１３は、制御用ＲＡＭ領域とスタック領域とに大別される。制御用ＲＡＭ領域は、固定小数点型の水温データＴＷを格納する１バイトＲＡＭと、各々固定小数点型の吸入空気量データＧＡ，回転数データＮＥを格納する２バイトＲＡＭと、各々浮動小数点型の水温データｔｗ，吸入空気量データｇａ，回転数データｎｅを格納する４バイトＲＡＭとに区分される。因みに、固定小数点型データはＬＳＢとオフセットにより実値が表現されるのに対して、浮動小数点型データにはＬＳＢ，オフセットの概念はなく、浮動小数表現される値が実値を示す。
【００１９】
本実施の形態では、上述の如く水温、吸入空気量、回転数など、同一データで固定小数点と浮動小数点とが共に存在する場合において、各種センサ２〜４の検出結果を基に浮動小数点型データを算出し、その後、浮動小数点型データを固定小数点型データに型変換する。そして、それら各データをＲＡＭ１３に格納しておくこととする。以下には、ＣＰＵ１２により実行される各種処理を、図４〜図７の各フローチャートに従い詳しく説明する。
【００２０】
図４は、浮動小数点の吸入空気量データｇａと固定小数点の吸入空気量データＧＡとを算出する手順を示すフローチャートであり、同処理はＣＰＵ１２により例えば２ｍｓ周期で実行される。
【００２１】
図４において、先ずステップ１０１では、エアフロメータ３の検出値（電圧値）をＡ／Ｄ変換し、続くステップ１０２では割り込みを禁止する。その後、ステップ１０３では、吸入空気量Ａ／Ｄ値をテーブル補間し、続くステップ１０４では、前記補間値を浮動小数点の吸入空気量データｇａとして、該当するＲＡＭ領域に格納する。
【００２２】
その後、ステップ１０５では、浮動小数点から固定小数点への型変換を行い、ステップ１０６では、上記型変換した値を固定小数点の吸入空気量データＧＡとして、該当するＲＡＭ領域に格納する。その後、ステップ１０７では、割り込み禁止を解除し、本処理を一旦終了する。
【００２３】
また、図５は、浮動小数点の回転数データｎｅと固定小数点の回転数データＮＥとを算出する手順を示すフローチャートであり、同処理はＣＰＵ１２により例えば３０°ＣＡ周期で実行される。
【００２４】
図５において、先ずステップ２０１では、回転数センサ４から出力される回転パルスに基づいて３０°ＣＡ間の所要時間Ｔ３０を求め、続くステップ２０２では割り込みを禁止する。その後、ステップ２０３では、前記求めた所要時間Ｔ３０を用いて浮動小数点の回転数データｎｅを算出し（ｎｅ＝１ｓｅｃ／Ｔ３０／１２＊６０）、それを該当するＲＡＭ領域に格納する。
【００２５】
その後、ステップ２０４では、浮動小数点から固定小数点への型変換を行い、ステップ２０５では、上記型変換した値を固定小数点の回転数データＮＥとして、該当するＲＡＭ領域に格納する。更にその後、ステップ２０６では、割り込み禁止を解除し、本処理を一旦終了する。
【００２６】
因みに、水温データ等、他のデータについても必要に応じ、前記図４などの処理に準じて浮動小数点型データと固定小数点型データとが算出される。但し、その違いは演算周期のみ（水温算出は、２５６ｍｓ周期）であるのでここでは図示及び説明を省略する。
【００２７】
上記図４及び図５処理では、浮動小数点型データが更新されてから固定小数点型データが更新されるまでの期間において割り込みが禁止されるので、その期間内に何れかのデータが参照されても、浮動小数点と固定小数点の両データが相違し不一致となることが防止される。
【００２８】
次いで、浮動小数点から固定小数点への変換の手順を図６のフローチャートを用いて説明する。
先ずステップ３０１では、浮動小数点型データから所定のオフセット値（例えば、水温データでは−４０）を減算し、その差をＬＳＢで除算する。そして、その演算結果をｗｏｒｋ値とする。この処理により、浮動小数点型データが型変換されて固定小数点型データが算出される。
【００２９】
その後、ｗｏｒｋ値が固定小数点型データにおける最大値ｍａｘを超えれば、ｗｏｒｋ値が最大値ｍａｘでガードされる（ステップ３０２，３０３）。また、ｗｏｒｋ値が固定小数点型データにおける最小値ｍｉｎを下回れば、ｗｏｒｋ値が最小値ｍｉｎでガードされる（ステップ３０４，３０５）。最後にステップ３０６では、上記の如く求めたｗｏｒｋ値を固定小数点型データとする。
【００３０】
一方、図７は、一回転当たりの吸入空気量ｇｎを算出する手順を事例に、固定小数点型データと浮動小数点型データとの使い分け例を示すフローチャートである。
【００３１】
ステップ４０１では、エンジン１の回転域を判別する。このとき、固定小数点の回転数データＮＥを用い、ＮＥ＞２００ｒｐｍであるか否かを判別する。始動直後等においてＮＥ≦２００ｒｐｍであれば、ステップ４０２に進み、ｇｎ値を固定値ｃとする。つまり、始動直後は回転数データが不正確であるため、ｇｎ＝固定値とする。また、ＮＥ＞２００ｒｐｍの場合、ステップ４０３に進み、浮動小数点の吸入空気量データｇａと回転数データｎｅとを用いてｇｎ値を算出する。
【００３２】
要するに、始動直後かどうかを判断するための回転数データの精度は粗くても良いため、ステップ４０１では固定小数点型データを使い、演算負荷（ＲＯＭ）の削減を図る。また、通常運転時は精度の良いｇｎ値が要求されるため、浮動小数点型データを使ってｇｎ値を正確に算出する。
【００３３】
以上詳述した本実施の形態によれば、以下に示す効果が得られる。
（イ）ＲＡＭ１３に浮動小数点型データの記憶領域を予め設けておき、浮動小数点型データの記憶領域よりＣＰＵ１２が浮動小数点型データを参照するので、固定小数点から浮動小数点へ型変換し、その型変換した浮動小数点型データを参照して浮動小数点演算を行うといった従来装置と比べると、データ参照毎に型変換する必要がなく、浮動小数点型データ参照のためのロジックが大幅に削減される。従って、固定小数点と浮動小数点との２つの形式からなる同一データを扱う電子制御装置において、演算負荷の軽減を図ることができる。特に本構成は、浮動小数点型データの参照箇所が多数存在する場合に有用であると言える。
【００３４】
（ロ）同一のＲＡＭ１３に固定小数点用と浮動小数点用の２つの記憶領域を設定しておくので、このＲＡＭデータを用いて適正なる浮動小数点演算が実施できる。
【００３５】
（ハ）浮動小数点型データを求めた後、型変換により固定小数点型データを求め、これら求めた各データをそれぞれ該当するＲＡＭ領域に個別に格納するので、各データを参照する際には各々のＲＡＭ領域に直接アクセスすれば良い。従って、参照する数値が固定小数点と浮動小数点の何れであっても、負荷の増大を招くことなく処理が実施できる。特に、浮動小数点型データを先に求め、その後、固定小数点型データへの型変換を行うので、その逆に固定小数点型データを先に求める構成と比べて浮動小数点型データの精度が向上する。
【００３６】
（ニ）固定小数点と浮動小数点との型変換を行う際に、その型変換の開始から終了までの期間で割り込みを禁止するので、その型変換の途中で固定小数点と浮動小数点の何れか一方が参照される（読み出される）ことはない。従って、参照される固定小数点型データと浮動小数点型データとが不一致となるといった不都合が回避される。
【００３７】
（ホ）固定小数点と浮動小数点との２つの形式を持つ同一データを、図７の如く処理の要求精度に応じて使い分けるので、各種処理の要求精度を満たしつつ、処理負荷の軽減を図ることができる。
【００３８】
なお本発明は、上記以外に次の形態にて実現できる。
上記実施の形態では、図４及び図５の処理において、浮動小数点型データを先に求め、その後、浮動小数点型データを型変換して固定小数点型データを求めたが、その順序を逆にして実現しても良い。
【００３９】
上記実施の形態では、単精度記憶形式の浮動小数点型データを扱う電子制御装置（ＥＣＵ）について例示したが、倍精度記憶形式の浮動小数点型データを扱う電子制御装置にも適用できる。
【図面の簡単な説明】
【図１】発明の実施の形態におけるエンジン制御システムの概略を示すブロック図。
【図２】浮動小数点型データの構成を示す図。
【図３】ＲＡＭの構成例を示す図。
【図４】吸入空気量の算出手順を示すフローチャート。
【図５】エンジン回転数の算出手順を示すフローチャート。
【図６】型変換の手順を示すフローチャート。
【図７】吸入空気量ｇｎの算出手順を示すフローチャート。
【符号の説明】
１…エンジン、１０…エンジン制御ＥＣＵ（電子制御装置）、１１…マイコン、１２…ＣＰＵ、１３…ＲＡＭ（メモリ）、１５…ＦＰＵ（浮動小数点演算プロセッサ）。
【図１】
0003551875.tif 000002
【図２】
0003551875.tif 000003
【図３】
0003551875.tif 000004
【図４】
0003551875.tif 000005
【図５】
0003551875.tif 000006
【図６】
0003551875.tif 000007
【図７】
0003551875.tif 000008