JP3644350B2 - Automotive electronic control device with floating point arithmetic function - Google Patents

Automotive electronic control device with floating point arithmetic function Download PDF

Info

Publication number
JP3644350B2
JP3644350B2 JP2000101028A JP2000101028A JP3644350B2 JP 3644350 B2 JP3644350 B2 JP 3644350B2 JP 2000101028 A JP2000101028 A JP 2000101028A JP 2000101028 A JP2000101028 A JP 2000101028A JP 3644350 B2 JP3644350 B2 JP 3644350B2
Authority
JP
Japan
Prior art keywords
floating
numeric
point
type data
floating point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000101028A
Other languages
Japanese (ja)
Other versions
JP2001282505A (en
Inventor
卓俊 杉村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2000101028A priority Critical patent/JP3644350B2/en
Priority to US09/739,335 priority patent/US6904543B2/en
Priority to DE10064787A priority patent/DE10064787A1/en
Publication of JP2001282505A publication Critical patent/JP2001282505A/en
Application granted granted Critical
Publication of JP3644350B2 publication Critical patent/JP3644350B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Combined Controls Of Internal Combustion Engines (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、浮動小数点演算機能を有した自動車用電子制御装置に関するものである。
【0002】
【従来の技術】
一般に、自動車のエンジン制御などに適用される電子制御装置(ECU)では、従来より整数型データ(固定小数点型データ)を用いて各種演算を実施していたが、近年では浮動小数点演算プロセッサ(FPU:Floating-Point Unit )の導入により、浮動小数点型データによる演算が実施できるようになった。浮動小数点型データによれば、固定小数点型データに比べて非常に細かい精度で演算結果が得られる。
【0003】
浮動小数点型データは例えばIEEE754規格に従い構成され、図10(a)に示されるようにその内訳として、1ビットの符号部と、8ビットの指数部と、23ビットの仮数部とを有する。こうして仮数部が23ビットで構成される4バイト(単精度記憶形式)の浮動小数点型データの場合、7桁の分解能(0.0000001 の分解能)を持つ。
【0004】
また、図10(b)には、単精度記憶形式でのビットパターンが示され、浮動小数点型データは、指数部と仮数部の組み合わせにより正規化数、非正規化数、無限大、ゼロ及び非数に区別される。ここで、非数以外は数値を表し、非数は数値でないことを表す。例えば、0/0や+∞−∞といった数値として表現できない演算結果を表す場合に非数が用いられる。
【0005】
【発明が解決しようとする課題】
上記の通り浮動小数点型データには非数というデータ形式があり、非数を含む、例えば四則演算の結果は全て非数となり無効となる。例えば、比較演算において非数が1以上か以下かを比較した場合、その結果は何れも偽となる。そのため、電子制御装置内で非数が発生した場合、その演算結果(出力値)は全く保障できないという問題がある。
【0006】
エンジン制御において非数が発生する条件としては主に2つ考えられる。一つ目の条件は、電子制御装置の動作中やバッテリバックアップ中にノイズにより浮動小数点型のRAM値が書き換わってRAM値そのものが非数に変わる場合である。例えば、ノイズにより浮動小数RAM値がFFFFFFFFh(全ビット”1”)に書き換わる場合等である。二つ目の条件は、浮動小数点演算に用いられる引数がノイズ等によって書き換わり、0/0のような演算を行って二次的に非数が発生する場合である。
【0007】
ここで、図11に示すエンジン回転数の演算処理にてその事例を説明する。つまり、図11の処理では、エンジンの360°CA(クランク角)の回転に要した時間T360を算出してそれをFR0値として記憶し(ステップ900)、FR0=0でないことを条件に、「1sec」をFR1に、「60」をFR2にセットする(ステップ910〜930)。
【0008】
その後、演算式
FR0=FR1/FR0×FR2
により、FR0値を算出し(ステップ940)、FR0値をエンジン回転数Neとする(ステップ950)。
【0009】
上記図11の処理において、仮にステップ930の直後にノイズ等によりFR0,FR1値が各々0に変化した場合を想定する。この場合、ステップ940では「0/0」の演算が行われ、ステップ940の演算結果であるFR0値が非数となる。その結果、エンジン回転数が正しく算出できないこととなる。
【0010】
また例えば、燃料噴射量fの演算式は、次式のように示される。
f= Fbase×fHL
ここで、Fbaseは、整数型データとして算出された基本噴射量であり、fHLは、浮動小数点型データとして算出された負荷補正量である。この演算において、負荷補正量fHLが非数である場合、算出結果の燃料噴射量fの値も非数となり、正常な燃料噴射が実施できなくなる。
【0011】
本発明は、上記問題に着目してなされたものであって、その目的とするところは、浮動小数点演算機能を有した電子制御装置において、非数の発生に伴う制御不良を未然に防止することができる自動車用電子制御装置を提供することである。
【0012】
【課題を解決するための手段】
請求項1に記載の発明によれば、非数判定手段により、浮動小数点型データが非数であるか否かが判定され、非数である旨が判定されたとき、バックアップ手段により、浮動小数点演算に代えて、整数型データとして算出された値をパラメータとしたマップデータの補間演算が実施され、これによって得られた補間値がバックアップ値として用いられるバックアップ処理が実施される。つまり、浮動小数点演算において、非数を含むデータで実施される演算結果は全て非数となるため、正しい制御データを得ることができなくなるが、本発明では、浮動小数点型データが非数である場合、浮動小数点演算に代わるバックアップ処理が実施される。これにより、非数の発生に伴う制御不良を未然に防止することができる。特に、バックアップ手段が実行するバックアップ処理として、浮動小数点型データに代えて、整数型データとして算出された値をパラメータとしたマップデータの補間演算を実施し、これによって得られた補間値をバックアップ値として用いるため、浮動小数点演算により得られる制御データに比べるとその精度は劣るが、非数発生時に制御が中断されることなく継続できる。すなわちこの場合、浮動小数点型データを用いた浮動小数点演算と比較して演算結果の精度は劣るが、整数型データに応じた制御データ(補間値)をバックアップ値として算出できるので、制御性の悪化を抑制できる。
【0013】
請求項2に記載の発明によれば、浮動小数点演算毎にその際に用いられる浮動小数点型データが非数であるか否かが判定されるので、その時々の浮動小数点演算が誤りなく実施される。つまり、非数を含む演算により無効となる浮動小数点演算を確実に判定できる。
【0014】
請求項3に記載の発明によれば、浮動小数点演算毎に影響を与える浮動小数点型データが非数であるか否かが判定される。この場合、浮動小数点演算に影響を与える浮動小数点型データとは、例えば浮動小数点演算の前提条件として用いられるデータであり、この浮動小数点型データが非数の時に、本来の浮動小数点演算とは異なるバックアップ処理を行うことにより、誤って浮動小数点演算が実施され制御性が悪化するといった不都合を回避できる。
【0015】
請求項4に記載の発明によれば、全ての浮動小数点型データのうちいずれか1つでも非数であるか否かが判定される。つまり、浮動小数点型データのうちのいずれか1つでも非数となる際には、その発生要因(具体的には、ノイズ)がある環境下でマイクロコンピュータが動作していると判断できる。従って、その際には、いつ非数が発生してもおかしくないので、全ての浮動小数点演算が禁止されるとともに、その浮動小数点演算に代わるバックアップ処理が実施される。
【0016】
請求項5に記載の発明によれば、浮動小数点演算にて得られた浮動小数点型データが非数であれば、その旨を表す非数判定フラグがセットされ、非数判定手段によって、非数判定フラグが参照されることで非数か否かが判定される。そして、非数判定フラグの判定結果によりバックアップ処理が実施される。この場合、同じ浮動小数点型データを複数の浮動小数点演算に用いる場合や、請求項4に記載のように全ての浮動小数点型データのうちいずれか1つでも非数であるか否かを判定する場合に適用すれば、処理を簡素化できるので実用上好ましいものとなる。
【0019】
【発明の実施の形態】
以下、この発明を具体化した実施の形態を図面に従って説明する。図1は、エンジン制御システムの概略を示すブロック図である。本システムにおいて、車載エンジン1は、例えばガソリン噴射式多気筒内燃機関として構成される。
【0020】
エンジン制御ECU10はマイクロコンピュータ(以下、マイコンという)11を備え、そのマイコン11には中央演算処理装置(CPU)12と、読み書き可能な記憶装置(RAM)13と、読み取り専用記憶装置(ROM)14と、浮動小数点演算プロセッサ(FPU)15と、入出力装置(I/O)16とが設けられている。ここで、FPU15は浮動小数点形式の演算を実施し、CPU12は浮動小数点形式以外の演算を実施する。また、I/O16には周知のA/D変換器が含まれる。
【0021】
ECU10には、エンジン1に設けられたセンサ群からエンジン運転状態を表す各種情報が入力される。センサ群は、例えばエンジン回転数を検出するための回転数センサ2、吸気管圧力を検出するための吸気圧センサ3、冷却水温を検出するための水温センサ4、排ガス中の酸素濃度から空燃比(A/F)を検出するためのA/Fセンサ5などからなる。そして、ECU10は、前記入力されるセンサ信号を基に、図示しないインジェクタによる燃料噴射の制御や、点火装置による点火時期の制御などを実施する。
【0022】
FPU15により演算される浮動小数点型データは、既述の通り例えばIEEE754規格に従い構成され、単精度記憶形式であれば図10(a)に示すデータ形式を有する。また、図10(b)の如く、浮動小数点型データは、指数部と仮数部との組み合わせにより正規化数、非正規化数、無限大、ゼロ及び非数に区別される。
【0023】
本実施の形態では、FPU15による浮動小数点演算の結果(浮動小数点型データ)が非数になった場合に、その旨を判定し、浮動小数点演算を実施しないようにしている。具体的に、FPU15を用いた浮動小数点演算を実施する処理としては、燃料噴射量の算出処理や、点火時期の算出処理があり、例えば、燃料噴射量fは次式のように算出される。
【0024】
f= Fbase×fHL
ここで、Fbaseは、整数型データとして算出された基本噴射量であり、fHLは浮動小数点型データとして算出された負荷補正量である。従って、FPU15を用いて燃料噴射量fを算出する際に、負荷補正量fHLが非数である場合、その演算結果(噴射量fの値)も非数となってしまう。このため、本実施の形態では、負荷補正量fHLが非数である場合には、FPU15を用いた燃料噴射量fの演算を禁止し、それに代わるバックアップ処理にて燃料噴射量fを求めるようにしている。
【0025】
ここで、CPU12により実行される処理のうち、負荷補正量fHLの算出処理を図2を用い、燃料噴射量算出処理を図3を用いて説明する。なお、図2の処理は、所定時間毎に実施される時間同期処理であり、図3の処理は、回転数センサ2のパルス信号に基づき、所定クランク角毎に実施されるクランク同期処理である。
【0026】
図2に示すように、CPU12は、ステップ100にてエンジン回転数が3000rpm以上であるか否かを判定し、3000rpm以上であれば、ステップ110に移行する。ステップ110にてCPU12は、エンジン水温が60℃以上であるか否かを判定し、60℃以上であれば、ステップ120に移行する。そして、同ステップ120にて、FPU15を用い次式のように負荷補正量fHLを求める。
【0027】
fHL=fNe×MAF×fGain
ここで、fNeは、回転数センサ2のパルス信号に基づき浮動小数点型データとして算出されたエンジン回転数であり、MAFは、吸気圧センサ3の検出値であって、吸気管圧力(吸気圧)に基づく整数型データの電圧値である。また、fGainは、浮動小数点型データで設定された定数である。
【0028】
このように、負荷補正の前提条件として、回転数が3000rpm以上、かつ水温が60℃以上の条件が成立した場合にFPU15による浮動小数点演算が実施され、浮動小数点型データの負荷補正量fHLが算出される。
【0029】
一方、回転数が3000rpm未満、或いは水温が60℃未満の場合には、ステップ100或いはステップ110にて否定判別され、ステップ130においてCPU12は、負荷補正量fHLに固定値として浮動小数点型データである「1.0」を代入した後本処理を終了する。
【0030】
次に、噴射量算出処理を図3を用いて説明する。
先ず、CPU12は、ステップ200にて、エンジン回転数と吸気圧とに基づき整数型データの基本噴射量Fbaseを算出し、続くステップ210にて、負荷補正量fHLが非数であるか否かを判定する。つまり、既述のように、負荷補正量fHLは、浮動小数点型データとして求められており、その補正量fHLの値のbit30〜23が”11111111”で、かつ、補正量fHLの値のbit22〜0のうちいずれかが”1”であるか否かを判定する。そして、ステップ210にて否定判別された場合、CPU12はステップ220に移行して、FPU15を用い、次式の浮動小数点演算にて燃料噴射量fを算出する。
【0031】
f= Fbase×fHL
つまり、燃料噴射量fは、基本噴射量Fbaseに負荷補正量fHLを乗算することにより算出され、その値は浮動小数点型データとして算出される。その後、ステップ230にてCPU12は、算出値が非数か否かを判定し、算出値が非数でない旨を判定した場合、浮動小数点演算にて得られた燃料噴射量fの値が正しいものとして本処理を終了する。
【0032】
一方、ステップ210またはステップ230にて肯定判別された場合、CPU12は、ステップ240に移行して、FPU15を用いることなく整数型データの基本噴射量Fbaseを燃料噴射量fに代入した後本処理を終了する。
【0033】
次いで、点火時期eの算出処理を図4を用いて説明する。なお、同処理にて使用される負荷補正量eHLも前記燃料噴射量fの算出処理における負荷補正量fHLと同様に浮動小数点演算により求められた浮動小数点型データである。
【0034】
先ず、CPU12は、ステップ300にて、エンジン回転数と吸気圧とに基づき整数型データの基本点火時期Ebaseを算出し、続くステップ310にて、負荷補正量eHLが非数であるか否かを判定する。そして、ステップ310にて否定判別された場合、CPU12はステップ320に移行して、FPU15を用い次式の浮動小数点演算にて点火時期eを算出する。
【0035】
e=Ebase×eHL
つまり、点火時期eは、基本点火時期Ebaseに負荷補正量eHLを乗算することにより算出され、その値は浮動小数点型データとして算出される。その後、ステップ330にてCPU12は、算出値が非数か否かを判定し、算出値が非数でない旨を判定した場合、浮動小数点演算にて得られた点火時期eの値が正しいものとして本処理を終了する。
【0036】
一方、ステップ310またはステップ330にて肯定判別された場合、 CPU12は、ステップ340に移行して、FPU15を用いることなく整数型データの基本点火時期Ebaseを点火時期eに代入した後本処理を終了する。
【0037】
なお、本実施の形態では、図3のステップ210,230、図4のステップ310,330の処理が非数判定手段に相当し、図3のステップ240、図4のステップ340の処理がバックアップ手段に相当する。
【0038】
以上詳述した本実施の形態によれば、以下に示す効果が得られる。
(1)浮動小数点演算に使用される浮動小数点型データ(負荷補正量fHL,eHL)が非数である場合、その浮動小数点演算に代わるバックアップ処理が実施される。この場合、浮動小数点演算において非数を含む四則演算の結果は非数となり無効となるが、浮動小数点演算に用いられる浮動小数点型データが非数であるとき、その無効となる浮動小数点演算を禁止することができる。このようにすれば、制御データとしての燃料噴射量f、点火時期eが非数となることを回避でき、非数の発生に伴う制御不良を未然に防止することができる。
【0039】
(2)本実施の形態では、非数の発生時のバックアップ処理として、整数型データの基本噴射量Fbaseを燃料噴射量fに、整数型データの基本点火時期Ebaseを点火時期eに代入するようにした。つまり、制御データのバックアップ値として制御に支障のない値を代入するようにしている。このようにすれば、バックアップ処理に伴うROM容量の増加を抑制できる。
【0040】
以下に、本発明における第2〜第4の実施の形態を説明する。但し、第2〜第4の実施の形態におけるECU10の構成は、図1に示す第1の実施の形態と同じであり、CPU12により実行される処理が第1の実施の形態と異なる。
【0041】
(第2の実施の形態)
本発明における第2の実施の形態を図5及び図6を用いて説明する。
上記第1の実施の形態では、浮動小数点演算に使用される浮動小数点型データ(負荷補正量fHL)が非数であるか否かを判定するものであったが、本実施の形態では、演算に使用される浮動小数点型データではなく、その演算に影響を与える浮動小数点型データが非数であるか否かを判定している。また、本実施の形態において、負荷補正量fHLは、加速時、減速時で異なる演算式で算出されるようになっており、加速または減速の判定は、負荷変化量に相当するパラメータfDLにより判定されている。同パラメータfDLは、エンジン回転数及び吸気圧に基づいて算出された浮動小数点型データであって、パラメータfDLが正の値であれば加速を意味し、負の値であれば減速を意味する。
【0042】
ここで、本実施の形態における負荷補正量fHLの算出処理を図5を用いて説明する。図5のフローチャートは、前記図2の一部を変更したものであり、図5のステップ100,110,130は共通の処理を示す。
【0043】
要するに、エンジン回転数が3000rpm未満、または水温が60℃未満のいずれかの条件が成立した場合(ステップ100、ステップ110において否定判別された場合)、ステップ130にて負荷補正量fHLに固定値として浮動小数点型データである「1.0」を代入し本処理を終了する。
【0044】
一方、エンジン回転数が3000rpm以上、かつ水温が60℃以上である場合、ステップ400にて、CPU12は、パラメータfDLが非数であるか否かを判定する。そして、 パラメータfDLが非数でない旨が判定された場合、CPU12はステップ410に移行して、パラメータfDLを用いて加速または減速かを判定する。ここで、パラメータfDLが「0」よりも大きい値であれば、ステップ420に進みFPU15を用い加速時の浮動小数点演算(fNe×MAF×fGain1)を実施して、浮動小数点型データの負荷補正量fHLを算出した後本処理を終了する。また、パラメータfDLが「0」以下の値であれば、ステップ430に進みFPU15を用い減速時の浮動小数点演算(fNe×MAF×fGain2)を実施して、浮動小数点型データの負荷補正量fHLを算出した後本処理を終了する。なお、fGain1は、浮動小数点型データで設定された加速用の定数であり、fGain2は、浮動小数点型データで設定された減速用の定数である。
【0045】
一方、ステップ400にてパラメータfDLが非数である旨が判定された場合は、ステップ440に移行して、整数型データの固定値「1」を負荷補正量FHLに代入した後本処理を終了する。なおここで、整数型データの負荷補正量FHLは、RAM13において、浮動小数点型データの負荷補正量fHLとは別に確保された記憶領域に格納される。
【0046】
次に、本実施の形態における噴射量算出処理を図6を用いて説明する。図6のフローチャートは、前記図3の一部を変更したものであり、図6のステップ200,220,230,240は共通の処理を示す。
【0047】
つまり、ステップ200にて基本噴射量Fbaseを算出した後、ステップ500にて、負荷変化量に相当するパラメータfDLが非数であるか否かを判定する。そして、パラメータfDLが非数である旨が判定された場合、CPU12はステップ510にて、FPU15を用いることなく整数型データの固定値「1」を代入した負荷補正量FHLと基本噴射量Fbaseとを乗算することにより燃料噴射量f(=Fbase×FHL)を算出する。
【0048】
一方、ステップ500にてパラメータfDLが非数でない旨が判定された場合、CPU12はステップ220にて、FPU15を用いた浮動小数点演算にて燃料噴射量f(=Fbase×fHL)を算出する。そして、CPU12はステップ230にて、算出値が非数であるか否かを判定し、非数でなければ本処理を終了し、非数であれば、ステップ240にて、燃料噴射量fとして基本噴射量Fbaseを代入した後本処理を終了する。
【0049】
なお、本実施の形態では、図5のステップ400、図6のステップ500及びステップ230の処理が非数判定手段に相当し、図5のステップ440、図6のステップ510及びステップ240の処理がバックアップ手段に相当する。
【0050】
要するに、浮動小数点演算に影響を与える浮動小数点データ、即ち、浮動小数点演算の前提条件として用いられる浮動小数点型データが非数である場合、前提条件を正しく判定できずに誤って浮動小数点演算が実施されるおそれがある。これに対し、本実施の形態では、前提条件として用いられる浮動小数点型データが非数である旨が判定されたとき、浮動小数点演算に代わる処理が実施される。その結果、誤って浮動小数点演算が実施され不的確な制御データが算出されることでエンジン1の制御性が悪化するといった不都合を回避できる。
【0051】
(第3の実施の形態)
次に、本発明における第3の実施の形態を図7及び図8を用いて説明する。
本実施の形態では、全ての浮動小数点型データのうちいずれか一つでも非数となったとき、全ての浮動小数点演算が禁止され、それに代わるバックアップ処理が実施されるようになっている。
【0052】
その具体例として、先ず、燃料噴射量fの算出処理を図7を用いて説明する。図7のフローチャートは、前記図3の一部を変更したものであり、図7のステップ200,220,230,240は共通の処理を示す。
【0053】
図7では、非数判定フラグXALLを用いており、同フラグXALLは、全ての浮動小数点型データのうちいずれかが一つでも非数となったときに「1」がセットされる。例えば、負荷補正量fHLやeHL等を算出するための浮動小数点演算の処理(図示略)において、浮動小数点演算の算出値が非数である場合、非数判定フラグXALLに「1」がセットされる。
【0054】
図7のフローチャートについて詳述すると、ステップ200にて基本噴射量Fbaseを算出した後、CPU12はステップ600に移行して、非数判定フラグXALLが「1」であるか否かを判定する。そして、非数判定フラグXALLが「0」である旨が判定されたとき、CPU12はステップ220に移行して、FPU15を用い浮動小数点演算にて燃料噴射量f(=Fbase×fHL)を算出するとともに、ステップ230にて算出値が非数であるか否かを判定する。そして、ステップ230にて、演算値が非数でない旨を判定したとき本処理を終了し、非数である旨を判定したとき、ステップ610に移行して非数判定フラグXALLに「1」をセットする。そして、ステップ240に移行し燃料噴射量fとして基本噴射量Fbaseを代入した後本処理を終了する。
【0055】
また、非数判定フラグXALLに「1」がセットされた場合、ステップ600にて肯定判定され、ステップ240にて燃料噴射量fとして基本噴射量Fbaseを代入した後本処理を終了する。つまり、非数判定フラグXALLに「1」がセットされると、ステップ220の浮動小数点演算を迂回して、浮動小数点演算に代わるバックアップ処理として、ステップ240の処理が実施される。
【0056】
次に、点火時期eの算出処理を図8を用いて説明する。図8のフローチャートは、前記図4の一部を変更したものであり、図8のステップ300,320,330,340は共通の処理を示す。
【0057】
図8の処理においても、ステップ320の浮動小数点演算を行う前に、ステップ700にて、非数判定フラグXALLが「1」であるか否かを判定する。そして、非数判定フラグXALLが「1」である旨を判定したとき、ステップ320の浮動小数点演算を迂回し、ステップ320の浮動小数点演算に代わるバックアップ処理として、ステップ340にて点火時期eに基本点火時期Ebaseをセットする。また、ステップ320の浮動小数点演算による算出値が非数である旨を判定したとき、ステップ710に移行して非数判定フラグXALLに「1」をセットした後、ステップ340の処理を実施する。
【0058】
つまり、本実施の形態では、エンジン制御に用いられる全ての浮動小数点演算において、その演算結果が非数である旨が判定されたとき、共通の非数判定フラグXALLをセットするようにしている。そして、浮動小数点演算について、その演算が実施される前に、非数判定フラグXALLがセットされているか否かを判定し、そのフラグXALLがセットされていれば、全ての浮動小数点演算を禁止して、それに代わるバックアップ処理を実施するようにしている。
【0059】
なお、本実施の形態では、図7のステップ230、ステップ600、図8のステップ330、ステップ700の処理が非数判定手段に相当し、図7のステップ240、図8のステップ340の処理がバックアップ手段に相当する。
【0060】
実際に、浮動小数点型データのうちいずれかが1つでも非数となる際には、その発生要因(具体的には、ノイズ)がある環境下でマイコン11が動作していると判断できる。従って、その際には、いつ非数が発生してもおかしくないので、全ての浮動小数点演算が禁止されるとともに、その浮動小数点演算に代わるバックアップ処理が実施される。
【0061】
また、本実施の形態では、非数判定フラグXALLを用いて、非数であるか否かを判定するようにしているので、全ての浮動小数点データについてその値により非数であるか否かを判定する場合と比較して、処理を簡素化でき実用上好ましいものとなる。
【0062】
上述の通り、いずれかの浮動小数点データで非数が発生し、それに伴いフラグXALLがセットされた場合において、ノイズ等の非数発生要因が解消され、浮動小数点データが正常な値に戻った時には、フラグXALLをリセットして本来の浮動小数点演算を再開するよう構成してもよい。これにより、ノイズ等に起因して一時的に非数が発生する際に、バックアップ処理が長時間継続されることはなく、高精度な浮動小数点演算に復帰できる。
【0063】
(第4の実施の形態)
次に、本発明における第4の実施の形態を図9を用いて説明する。図9のフローチャートは、前記図2の一部を変更したものであり、図10のステップ100〜130は共通の処理を示す。
【0064】
詳述すると、エンジン回転数が3000rpm未満、水温が60℃未満のいずれかの条件が成立した場合(ステップ100、ステップ110において否定判別された場合)、ステップ130にて負荷補正量fHLに固定値として浮動小数点型データである「1.0」を代入し本処理を終了する。一方、エンジン回転数が3000rpm以上、かつ水温が60℃以上である場合(ステップ100、ステップ110のいずれも肯定判別された場合)、CPU12はステップ800に進み、浮動小数点型データとして算出されたエンジン回転数fNeが非数であるか否かを判定する。そして、エンジン回転数fNeが非数でない旨を判定したとき、ステップ120にて、FPU15を用い浮動小数点演算を実施して、浮動小数点型データの負荷補正量fHL(fNe×MAF×fGain )を算出した後に本処理を終了する。一方、エンジン回転数fNeが非数である旨を判定したとき、CPU12はステップ810にて、FPU15を用いることなく、整数型データとして算出されたエンジン回転数Neと整数型データの吸気圧MAFとをパラメータとしたマップデータの補間演算を実施する。そして、CPU12は、整数型データとして得られた補間値を変換することにより浮動小数点型データとして負荷補正量fHLに代入し、本処理を終了する。
【0065】
なお、本実施の形態では、ステップ800の処理が非数判定手段に相当し、ステップ810の処理がバックアップ手段に相当する。
このように、本実施の形態では、浮動小数点型データが非数である旨が判定されたとき、浮動小数点演算に代えて、整数型データを用いた演算が実施される。この場合、浮動小数点演算と比較して演算結果の精度は劣るが、整数型データに対応した制御データをバックアップ値として算出できるので、実用上好ましいものとなる。
【0066】
なお本発明は、上記以外に次の形態にて具体化できる。
上記第1の実施の形態において、図3のステップ210では、浮動小数点型データの負荷補正量fHLの値により非数であるか否かを判定していたが、フラグを用いて判定してもよい。つまり、図2のステップ120における浮動小数点演算の算出値が非数である場合、負荷補正量fHLが非数である旨を示す非数判定フラグをセットし、図3のステップ210にて、同フラグを参照することによって負荷補正量fHLが非数か否かを判定する。同様に、図4のステップ310、図5のステップ400等の処理においても、非数判定フラグを用い浮動小数点型データが非数であるか否かを判定してもよい。この場合、非数判定フラグを参照することによって、浮動小数点型データが非数であるか否かを判定できる。よって、同じ浮動小数点型データを複数の浮動小数点演算に用いる場合に適用すれば、処理を簡素化できるので実用上好ましいものとなる。
【0067】
上記第2の実施の形態では、浮動小数点演算に影響を与える浮動小数点型データとして、パラメータfDLに具体化したがこれに限定するものではない。例えば、浮動小数点演算を実施するための前提条件として、空燃比補正量等の浮動小数点型データを用いる場合、その空燃比補正量が非数であるか否かを判定し、非数であれば浮動小数点演算を禁止して、それに代わるバックアップ処理を実施する。
【0068】
また例えば、浮動小数点演算毎に影響を与える浮動小数点型データが非数であるか否かを判定するものとして、非数発生時に、点火制御、噴射制御等の各種制御毎に区分して非数判定を行うようにする。具体的には、点火制御、噴射制御等の各種制御毎に、共通の非数判定フラグを用意し、例えば、点火制御の浮動小数点演算にて、非数が発生したとき点火制御用の非数判定フラグをセットし、その非数判定フラグを用いて、点火制御にて実施される全ての浮動小数点演算を禁止する。このようにしても、非数の発生により浮動小数点演算に悪影響が及ぶことを防止できる。
【0069】
上記各実施の形態では、単精度記憶形式の浮動小数点型データを扱う電子制御装置(ECU)10について例示したが、倍精度記憶形式の浮動小数点型データを扱う電子制御装置にも適用できる。
【0070】
以上の説明では自動車用エンジン制御を例に本発明を述べたが、このように自動車の走行に関与する電子制御装置に本発明を適用することで、自動車の制御システムの信頼性を高めることができる。
【図面の簡単な説明】
【図1】発明の実施の形態におけるエンジン制御システムの概要を示すブロック図。
【図2】第1の実施の形態における負荷補正量算出処理を示すフローチャート。
【図3】第1の実施の形態における噴射量算出処理を示すフローチャート。
【図4】第1の実施の形態における点火時期算出処理を示すフローチャート。
【図5】第2の実施の形態における負荷補正量算出処理を示すフローチャート。
【図6】第2の実施の形態における噴射量算出処理を示すフローチャート。
【図7】第3の実施の形態における噴射量算出処理を示すフローチャート。
【図8】第3の実施の形態における点火時期算出処理を示すフローチャート。
【図9】第4の実施の形態における負荷補正量算出処理を示すフローチャート。
【図10】浮動小数点型データの構成を示す図。
【図11】回転数演算処理を示すフローチャート。
【符号の説明】
10…エンジン制御ECU(電子制御装置)、11…マイコン、12…CPU、15…FPU(浮動小数点演算プロセッサ)。
[0001]
BACKGROUND OF THE INVENTION
  The present invention has a floating point arithmetic functionFor automobileThe present invention relates to an electronic control device.
[0002]
[Prior art]
In general, an electronic control unit (ECU) applied to automobile engine control or the like has conventionally performed various calculations using integer type data (fixed point type data), but in recent years, a floating point arithmetic processor (FPU) has been used. : Floating-Point Unit), it is now possible to perform operations with floating-point data. According to the floating-point type data, the operation result can be obtained with very fine accuracy compared to the fixed-point type data.
[0003]
The floating-point type data is configured in accordance with, for example, the IEEE 754 standard, and includes a 1-bit sign part, an 8-bit exponent part, and a 23-bit mantissa part as shown in FIG. Thus, in the case of 4-byte (single-precision storage format) floating-point data having a mantissa part of 23 bits, it has a resolution of 7 digits (0.0000001 resolution).
[0004]
FIG. 10B shows a bit pattern in a single-precision storage format. Floating-point type data is a normalized number, a denormalized number, an infinite number, zero, and a combination of an exponent part and a mantissa part. A distinction is made between numbers. Here, a non-numeric value represents a numerical value, and a non-numeric value represents a non-numeric value. For example, when a calculation result that cannot be expressed as a numerical value such as 0/0 or + ∞−∞ is represented, a non-number is used.
[0005]
[Problems to be solved by the invention]
As described above, floating point type data has a data format of non-numeric, and for example, the results of arithmetic operations including non-numerics are all non-numeric and invalid. For example, in the comparison operation, when comparing whether the non-number is 1 or more, the result is false. Therefore, when a non-number occurs in the electronic control unit, there is a problem that the calculation result (output value) cannot be guaranteed at all.
[0006]
There are mainly two conditions for generating non-numbers in engine control. The first condition is when the floating point type RAM value is rewritten due to noise during operation of the electronic control unit or during battery backup, and the RAM value itself changes to an innumerable number. For example, there is a case where the floating-point RAM value is rewritten to FFFFFFFFh (all bits “1”) due to noise. The second condition is a case where an argument used for floating-point arithmetic is rewritten due to noise or the like, and an arithmetic operation such as 0/0 is performed to generate a secondary number.
[0007]
Here, the case will be described in the calculation processing of the engine speed shown in FIG. That is, in the process of FIG. 11, the time T360 required for the engine to rotate at 360 ° CA (crank angle) is calculated and stored as the FR0 value (step 900). 1 sec "is set in FR1, and" 60 "is set in FR2 (steps 910 to 930).
[0008]
Then, formula
FR0 = FR1 / FR0 × FR2
Thus, the FR0 value is calculated (step 940), and the FR0 value is set as the engine speed Ne (step 950).
[0009]
In the process of FIG. 11, it is assumed that the FR0 and FR1 values change to 0 due to noise or the like immediately after step 930. In this case, the calculation of “0/0” is performed in step 940, and the FR0 value that is the calculation result of step 940 becomes a non-number. As a result, the engine speed cannot be calculated correctly.
[0010]
Further, for example, the calculation formula of the fuel injection amount f is expressed as the following formula.
f = Fbase × fHL
Here, Fbase is a basic injection amount calculated as integer type data, and fHL is a load correction amount calculated as floating point type data. In this calculation, when the load correction amount fHL is non-numeric, the value of the calculated fuel injection amount f is non-numeric, and normal fuel injection cannot be performed.
[0011]
  The present invention has been made paying attention to the above-mentioned problem, and the object of the present invention is to prevent a control failure caused by the occurrence of a non-number in an electronic control device having a floating-point arithmetic function. CanFor automobileAn electronic control device is provided.
[0012]
[Means for Solving the Problems]
  According to the first aspect of the present invention, it is determined whether or not the floating-point type data is non-numeric by the non-numeric determination means. Instead of calculationFurthermore, the map data is interpolated using the value calculated as integer type data as a parameter, and the interpolation value obtained as a result is used as a backup value.Backup processing is performed. That is, in floating point arithmetic, all the arithmetic results performed on data including a non-number are all non-numbers, so that correct control data cannot be obtained. However, in the present invention, floating-point type data is non-numbers. In this case, a backup process is performed in place of the floating point arithmetic. As a result, it is possible to prevent a control failure accompanying the occurrence of a non-number.In particular, as backup processing executed by the backup means, instead of floating point type data, map data is interpolated using a value calculated as integer type data as a parameter, and the interpolation value obtained thereby is used as a backup value. Therefore, the accuracy is inferior to that of control data obtained by floating-point arithmetic, but control can be continued without interruption when a non-number occurs. That is, in this case, the accuracy of the calculation result is inferior to that of the floating point calculation using the floating point type data, but the control data (interpolation value) corresponding to the integer type data can be calculated as a backup value, so the controllability is deteriorated. Can be suppressed.
[0013]
According to the second aspect of the present invention, whether or not the floating-point data used at that time is a non-numeric value is determined for each floating-point operation, so that the floating-point operation at that time is executed without error. The That is, it is possible to reliably determine a floating-point operation that becomes invalid due to an operation including a non-number.
[0014]
According to the third aspect of the present invention, it is determined whether or not the floating-point data that affects each floating-point operation is non-numeric. In this case, the floating-point data that affects the floating-point arithmetic is, for example, data that is used as a precondition for the floating-point arithmetic. By performing the backup process, it is possible to avoid the inconvenience that the floating point arithmetic is erroneously performed and the controllability is deteriorated.
[0015]
According to the fourth aspect of the present invention, it is determined whether any one of all the floating point type data is non-numeric. That is, when any one of the floating-point type data is a non-numeric value, it can be determined that the microcomputer is operating in an environment where the generation factor (specifically, noise) is present. Therefore, at that time, since it is not wrong when a non-number occurs, all floating point operations are prohibited, and a backup process in place of the floating point operations is performed.
[0016]
According to the fifth aspect of the present invention, if the floating-point type data obtained by the floating-point operation is a non-number, a non-number determination flag indicating that is set, and the non-number determination means sets the non-number Whether the number is non-numeric is determined by referring to the determination flag. Then, backup processing is performed based on the determination result of the non-number determination flag. In this case, it is determined whether the same floating point type data is used for a plurality of floating point operations or whether any one of all the floating point type data is non-numeric as described in claim 4. If it is applied to the case, the processing can be simplified, which is practically preferable.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing an outline of an engine control system. In this system, the vehicle-mounted engine 1 is configured as, for example, a gasoline injection type multi-cylinder internal combustion engine.
[0020]
The engine control ECU 10 includes a microcomputer (hereinafter referred to as a microcomputer) 11, which includes a central processing unit (CPU) 12, a readable / writable storage device (RAM) 13, and a read-only storage device (ROM) 14. A floating point arithmetic processor (FPU) 15 and an input / output device (I / O) 16 are provided. Here, the FPU 15 performs a calculation in the floating point format, and the CPU 12 performs a calculation other than the floating point format. The I / O 16 includes a well-known A / D converter.
[0021]
Various types of information representing the engine operating state are input to the ECU 10 from a sensor group provided in the engine 1. The sensor group includes, for example, a rotational speed sensor 2 for detecting the engine rotational speed, an intake pressure sensor 3 for detecting the intake pipe pressure, a water temperature sensor 4 for detecting the cooling water temperature, and an air-fuel ratio from the oxygen concentration in the exhaust gas. It comprises an A / F sensor 5 for detecting (A / F). Then, the ECU 10 performs fuel injection control by an injector (not shown), ignition timing control by an ignition device, and the like based on the input sensor signal.
[0022]
As described above, the floating-point data calculated by the FPU 15 is configured according to, for example, the IEEE 754 standard, and has a data format shown in FIG. Further, as shown in FIG. 10B, the floating point type data is classified into a normalized number, a denormalized number, an infinite number, zero, and a non-number according to the combination of the exponent part and the mantissa part.
[0023]
In the present embodiment, when the result of the floating point calculation (floating point type data) by the FPU 15 becomes a non-number, it is determined so and the floating point calculation is not performed. Specifically, the process for performing the floating point calculation using the FPU 15 includes a fuel injection amount calculation process and an ignition timing calculation process. For example, the fuel injection quantity f is calculated as follows.
[0024]
f = Fbase × fHL
Here, Fbase is a basic injection amount calculated as integer type data, and fHL is a load correction amount calculated as floating point type data. Therefore, when calculating the fuel injection amount f using the FPU 15, if the load correction amount fHL is a non-number, the calculation result (the value of the injection amount f) will also be a non-number. For this reason, in the present embodiment, when the load correction amount fHL is non-numeric, the calculation of the fuel injection amount f using the FPU 15 is prohibited, and the fuel injection amount f is obtained by backup processing instead. ing.
[0025]
Here, among the processes executed by the CPU 12, the calculation process of the load correction amount fHL will be described with reference to FIG. 2, and the fuel injection amount calculation process will be described with reference to FIG. 2 is a time synchronization process performed every predetermined time, and the process of FIG. 3 is a crank synchronization process performed every predetermined crank angle based on the pulse signal of the rotation speed sensor 2. .
[0026]
As shown in FIG. 2, the CPU 12 determines whether or not the engine speed is 3000 rpm or more at step 100, and proceeds to step 110 if it is 3000 rpm or more. In step 110, the CPU 12 determines whether or not the engine water temperature is 60 ° C. or higher. If it is 60 ° C. or higher, the CPU 12 proceeds to step 120. In step 120, the FPU 15 is used to determine the load correction amount fHL as in the following equation.
[0027]
fHL = fNe × MAF × fGain
Here, fNe is the engine speed calculated as floating point type data based on the pulse signal of the speed sensor 2, and MAF is the detected value of the intake pressure sensor 3, and is the intake pipe pressure (intake pressure). Is a voltage value of integer type data based on FGain is a constant set with floating point type data.
[0028]
In this way, as a precondition for load correction, when the condition that the rotational speed is 3000 rpm or higher and the water temperature is 60 ° C. or higher is satisfied, the FPU 15 performs the floating point calculation and calculates the load correction amount fHL of the floating point type data. Is done.
[0029]
On the other hand, if the rotation speed is less than 3000 rpm or the water temperature is less than 60 ° C., a negative determination is made in step 100 or step 110, and in step 130, the CPU 12 is floating point type data as a fixed value for the load correction amount fHL. After substituting “1.0”, this process is terminated.
[0030]
Next, the injection amount calculation process will be described with reference to FIG.
First, in step 200, the CPU 12 calculates a basic injection amount Fbase of integer type data based on the engine speed and the intake pressure, and then in step 210, determines whether or not the load correction amount fHL is non-numeric. judge. That is, as described above, the load correction amount fHL is obtained as floating point type data, and the bit 30 to 23 of the value of the correction amount fHL is “11111111” and the bit 22 to of the value of the correction amount fHL is It is determined whether any one of 0 is “1”. If a negative determination is made in step 210, the CPU 12 proceeds to step 220 and calculates the fuel injection amount f by using the FPU 15 by the floating point calculation of the following equation.
[0031]
f = Fbase × fHL
That is, the fuel injection amount f is calculated by multiplying the basic injection amount Fbase by the load correction amount fHL, and the value is calculated as floating point type data. Thereafter, in step 230, the CPU 12 determines whether or not the calculated value is non-numeric, and if it is determined that the calculated value is not non-numeric, the value of the fuel injection amount f obtained by the floating point calculation is correct. This processing is terminated.
[0032]
On the other hand, if an affirmative determination is made in step 210 or step 230, the CPU 12 proceeds to step 240, and after substituting the basic injection amount Fbase of the integer type data into the fuel injection amount f without using the FPU 15, this processing is performed. finish.
[0033]
Next, the calculation process of the ignition timing e will be described with reference to FIG. Note that the load correction amount eHL used in the process is also floating point type data obtained by floating point calculation in the same manner as the load correction amount fHL in the calculation process of the fuel injection amount f.
[0034]
First, in step 300, the CPU 12 calculates a basic ignition timing Ebase of integer type data based on the engine speed and the intake pressure, and in subsequent step 310, determines whether or not the load correction amount eHL is non-numeric. judge. If a negative determination is made in step 310, the CPU 12 proceeds to step 320 and calculates the ignition timing e using the FPU 15 by the following floating point calculation.
[0035]
e = Ebase x eHL
That is, the ignition timing e is calculated by multiplying the basic ignition timing Ebase by the load correction amount eHL, and the value is calculated as floating point type data. Thereafter, in step 330, the CPU 12 determines whether or not the calculated value is non-numeric, and if it is determined that the calculated value is not non-numeric, the value of the ignition timing e obtained by the floating point calculation is assumed to be correct. This process ends.
[0036]
On the other hand, if an affirmative determination is made in step 310 or step 330, the CPU 12 proceeds to step 340 and completes the process after substituting the basic ignition timing Ebase of the integer data into the ignition timing e without using the FPU 15. To do.
[0037]
In the present embodiment, the processing in steps 210 and 230 in FIG. 3 and the processing in steps 310 and 330 in FIG. 4 correspond to non-numerical determination means, and the processing in step 240 in FIG. 3 and step 340 in FIG. It corresponds to.
[0038]
According to the embodiment described in detail above, the following effects can be obtained.
(1) When floating-point type data (load correction amounts fHL, eHL) used for floating-point arithmetic is non-numeric, backup processing in place of the floating-point arithmetic is performed. In this case, the result of four arithmetic operations including non-numeric values in floating-point arithmetic is invalid and invalid, but when floating-point data used for floating-point arithmetic is non-numeric, the invalid floating-point arithmetic is prohibited. can do. In this way, it is possible to avoid the fuel injection amount f and the ignition timing e as control data from becoming innumerable, and it is possible to prevent a control failure caused by the occurrence of the innumerable number.
[0039]
(2) In the present embodiment, as a backup process in the case of occurrence of an innumerable number, the basic injection amount Fbase of integer type data is substituted for the fuel injection amount f, and the basic ignition timing Ebase of integer type data is substituted for the ignition timing e. I made it. That is, a value that does not hinder the control is substituted as a backup value of the control data. In this way, an increase in ROM capacity associated with the backup process can be suppressed.
[0040]
The second to fourth embodiments of the present invention will be described below. However, the configuration of the ECU 10 in the second to fourth embodiments is the same as that of the first embodiment shown in FIG. 1, and the processing executed by the CPU 12 is different from that of the first embodiment.
[0041]
(Second Embodiment)
A second embodiment of the present invention will be described with reference to FIGS.
In the first embodiment, it is determined whether or not the floating-point type data (load correction amount fHL) used for the floating-point arithmetic is non-numeric. It is determined whether or not the floating-point data that affects the operation is not a number, rather than the floating-point data used in the above. Further, in the present embodiment, the load correction amount fHL is calculated by a different arithmetic expression at the time of acceleration and deceleration, and the determination of acceleration or deceleration is made by a parameter fDL corresponding to the load change amount. Has been. The parameter fDL is floating point type data calculated based on the engine speed and the intake pressure. If the parameter fDL is a positive value, it means acceleration, and if it is a negative value, it means deceleration.
[0042]
Here, the calculation process of the load correction amount fHL in the present embodiment will be described with reference to FIG. The flowchart in FIG. 5 is a modification of part of FIG. 2, and steps 100, 110, and 130 in FIG. 5 show common processing.
[0043]
In short, when any of the conditions that the engine speed is less than 3000 rpm or the water temperature is less than 60 ° C. is satisfied (when a negative determination is made in step 100 and step 110), the load correction amount fHL is set to a fixed value in step 130. “1.0” which is floating point type data is substituted and this processing is terminated.
[0044]
On the other hand, when the engine speed is 3000 rpm or higher and the water temperature is 60 ° C. or higher, in step 400, the CPU 12 determines whether or not the parameter fDL is a non-number. If it is determined that the parameter fDL is not a non-numeric value, the CPU 12 proceeds to step 410 and determines whether the parameter fDL is to be accelerated or decelerated using the parameter fDL. Here, if the parameter fDL is a value larger than “0”, the process proceeds to step 420 and the FPU 15 is used to perform the floating point calculation at the time of acceleration (fNe × MAF × fGain1), and the load correction amount of the floating point type data After calculating fHL, this process is terminated. On the other hand, if the parameter fDL is a value equal to or less than “0”, the process proceeds to step 430 and the FPU 15 is used to perform the floating point calculation at the time of deceleration (fNe × MAF × fGain2) to obtain the load correction amount fHL of the floating point type data. After the calculation, this process is terminated. Note that fGain1 is an acceleration constant set with floating-point type data, and fGain2 is a deceleration constant set with floating-point type data.
[0045]
On the other hand, if it is determined in step 400 that the parameter fDL is non-numeric, the process proceeds to step 440, where the fixed value “1” of the integer type data is substituted for the load correction amount FHL, and then the present process is terminated. To do. Here, the load correction amount FHL of integer type data is stored in a storage area secured in the RAM 13 separately from the load correction amount fHL of floating point type data.
[0046]
Next, the injection amount calculation process in the present embodiment will be described with reference to FIG. The flowchart in FIG. 6 is obtained by changing a part of FIG. 3, and steps 200, 220, 230, and 240 in FIG. 6 show common processes.
[0047]
That is, after calculating the basic injection amount Fbase in step 200, it is determined in step 500 whether or not the parameter fDL corresponding to the load change amount is non-numeric. If it is determined that the parameter fDL is non-numeric, the CPU 12 determines in step 510 that the load correction amount FHL and the basic injection amount Fbase into which the fixed value “1” of the integer data is substituted without using the FPU 15. Is multiplied by the fuel injection amount f (= Fbase × FHL).
[0048]
On the other hand, if it is determined in step 500 that the parameter fDL is not a non-numeric value, the CPU 12 calculates a fuel injection amount f (= Fbase × fHL) by a floating point calculation using the FPU 15 in step 220. Then, the CPU 12 determines in step 230 whether or not the calculated value is non-numeric. If it is not non-numeric, the process ends. If it is non-numeric, the fuel injection amount f is set in step 240. After substituting the basic injection amount Fbase, this process ends.
[0049]
In the present embodiment, the processing in step 400 in FIG. 5, step 500 in FIG. 6 and step 230 in FIG. 6 corresponds to the non-numerical determination means, and the processing in step 440 in FIG. 5, step 510 in FIG. Corresponds to backup means.
[0050]
In short, if floating-point data that affects floating-point arithmetic, that is, floating-point type data used as a precondition for floating-point arithmetic, is not a number, the precondition cannot be determined correctly and floating-point arithmetic is erroneously performed. There is a risk of being. On the other hand, in this embodiment, when it is determined that the floating-point type data used as the precondition is non-numeric, a process in place of the floating-point operation is performed. As a result, it is possible to avoid the inconvenience that the controllability of the engine 1 is deteriorated by erroneously performing floating point arithmetic and calculating inaccurate control data.
[0051]
(Third embodiment)
Next, a third embodiment of the present invention will be described with reference to FIGS.
In this embodiment, when any one of all the floating point type data becomes a non-numeric value, all the floating point operations are prohibited and a backup process is performed instead.
[0052]
As a specific example, first, the calculation process of the fuel injection amount f will be described with reference to FIG. The flowchart in FIG. 7 is obtained by changing a part of FIG. 3, and steps 200, 220, 230, and 240 in FIG. 7 show common processes.
[0053]
In FIG. 7, the non-number determination flag XALL is used, and the flag XALL is set to “1” when any one of all the floating-point type data becomes non-number. For example, in the floating point arithmetic processing (not shown) for calculating the load correction amount fHL, eHL, etc., when the calculated value of the floating point arithmetic is non-numeric, “1” is set to the non-numeric determination flag XALL. The
[0054]
Referring to the flowchart of FIG. 7 in detail, after calculating the basic injection amount Fbase in step 200, the CPU 12 proceeds to step 600 and determines whether or not the non-number determination flag XALL is “1”. When it is determined that the non-number determination flag XALL is “0”, the CPU 12 proceeds to step 220 and calculates the fuel injection amount f (= Fbase × fHL) by the floating point calculation using the FPU 15. At the same time, it is determined in step 230 whether or not the calculated value is non-numeric. Then, when it is determined in step 230 that the calculated value is not a non-numeric value, the present process is terminated. set. Then, the process proceeds to step 240, and after substituting the basic injection amount Fbase as the fuel injection amount f, this processing is terminated.
[0055]
Further, when “1” is set to the non-number determination flag XALL, an affirmative determination is made in step 600, and after the basic injection amount Fbase is substituted as the fuel injection amount f in step 240, this processing is terminated. In other words, when “1” is set in the non-number determination flag XALL, the process of step 240 is performed as a backup process instead of the floating point calculation, bypassing the floating point calculation of step 220.
[0056]
Next, the calculation process of the ignition timing e will be described with reference to FIG. The flowchart of FIG. 8 is obtained by changing a part of FIG. 4, and steps 300, 320, 330, and 340 of FIG. 8 show common processes.
[0057]
Also in the processing of FIG. 8, before performing the floating-point operation in step 320, it is determined in step 700 whether or not the non-number determination flag XALL is “1”. Then, when it is determined that the non-numeric determination flag XALL is “1”, the floating point calculation in step 320 is bypassed, and the basic timing is set to the ignition timing e in step 340 as a backup process in place of the floating point calculation in step 320. Set the ignition timing Ebase. Also, when it is determined that the value calculated by the floating-point operation in step 320 is non-numeric, the process proceeds to step 710 and the non-numeric determination flag XALL is set to “1”, and then the processing of step 340 is performed.
[0058]
That is, in this embodiment, when it is determined that the calculation result is non-numeric in all floating-point arithmetic used for engine control, the common non-numeric determination flag XALL is set. Then, for the floating point operation, before the operation is performed, it is determined whether or not the non-numeric determination flag XALL is set. If the flag XALL is set, all floating point operations are prohibited. Therefore, backup processing is implemented instead.
[0059]
In the present embodiment, the processing in step 230, step 600, FIG. 8, step 330, and step 700 in FIG. 7 corresponds to the non-number determination means, and the processing in step 240 in FIG. 7 and step 340 in FIG. Corresponds to backup means.
[0060]
Actually, when any one of the floating point type data becomes non-numeric, it can be determined that the microcomputer 11 is operating under an environment where the generation factor (specifically, noise) exists. Therefore, at that time, since it is not wrong when a non-number occurs, all floating point operations are prohibited, and a backup process in place of the floating point operations is performed.
[0061]
In the present embodiment, since the non-decision determination flag XALL is used to determine whether or not it is non-numeric, it is determined whether or not all floating-point data are non-numeric depending on the value. Compared with the case of determination, the process can be simplified and is practically preferable.
[0062]
As described above, when any floating point data has a non-number, and the flag XALL is set accordingly, the non-number generation factor such as noise is eliminated, and the floating-point data returns to a normal value. The flag XALL may be reset to resume the original floating point operation. As a result, when a non-number is temporarily generated due to noise or the like, the backup process is not continued for a long time, and the high-precision floating point calculation can be restored.
[0063]
(Fourth embodiment)
Next, a fourth embodiment of the present invention will be described with reference to FIG. The flowchart in FIG. 9 is obtained by changing a part of FIG. 2, and steps 100 to 130 in FIG. 10 show common processes.
[0064]
More specifically, when any of the conditions that the engine speed is less than 3000 rpm and the water temperature is less than 60 ° C. is satisfied (when a negative determination is made in step 100 and step 110), the load correction amount fHL is fixed at step 130. As a result, “1.0” which is floating point type data is substituted, and this processing ends. On the other hand, when the engine speed is 3000 rpm or higher and the water temperature is 60 ° C. or higher (when both step 100 and step 110 are affirmatively determined), the CPU 12 proceeds to step 800 to calculate the engine calculated as floating point type data. It is determined whether or not the rotation speed fNe is a non-number. When it is determined that the engine speed fNe is not a non-numeric value, in step 120, a floating point calculation is performed using the FPU 15, and a load correction amount fHL (fNe × MAF × fGain) of the floating point type data is calculated. After this, this processing is finished. On the other hand, when determining that the engine speed fNe is a non-number, the CPU 12 determines in step 810 that the engine speed Ne calculated as integer type data and the intake pressure MAF of the integer type data without using the FPU 15. The map data is interpolated using as a parameter. Then, the CPU 12 converts the interpolated value obtained as integer type data into the load correction amount fHL as floating point type data, and ends this processing.
[0065]
In the present embodiment, the process at step 800 corresponds to the non-number determination means, and the process at step 810 corresponds to the backup means.
As described above, in this embodiment, when it is determined that the floating-point data is non-numeric, an operation using integer data is performed instead of the floating-point operation. In this case, although the accuracy of the operation result is inferior to that of the floating point operation, the control data corresponding to the integer type data can be calculated as a backup value, which is preferable in practice.
[0066]
In addition to the above, the present invention can be embodied in the following forms.
In the first embodiment, in step 210 of FIG. 3, it is determined whether or not it is a non-numeric value based on the load correction amount fHL of the floating point type data. Good. That is, if the calculated value of the floating point calculation in step 120 in FIG. 2 is non-numeric, a non-numeric determination flag indicating that the load correction amount fHL is non-numeric is set, and in step 210 in FIG. It is determined whether or not the load correction amount fHL is non-numeric by referring to the flag. Similarly, in the processing of step 310 in FIG. 4, step 400 in FIG. 5 and the like, it may be determined whether or not the floating-point type data is non-numeric using a non-numeric determination flag. In this case, it is possible to determine whether or not the floating-point type data is non-numeric by referring to the non-numeric determination flag. Therefore, if the same floating point type data is used for a plurality of floating point operations, the processing can be simplified, which is practically preferable.
[0067]
In the second embodiment, the parameter fDL is embodied as the floating-point type data that affects the floating-point arithmetic. However, the present invention is not limited to this. For example, when using floating-point type data such as an air-fuel ratio correction amount as a precondition for performing floating-point arithmetic, it is determined whether the air-fuel ratio correction amount is non-numeric. Prohibit floating point operations and perform backup processing instead.
[0068]
Also, for example, to determine whether floating-point data that affects each floating-point operation is non-numeric, when non-numeric occurs, it is divided into various types such as ignition control and injection control. Make a decision. Specifically, a common non-numeric determination flag is prepared for each type of control such as ignition control and injection control. For example, when a non-numeric value is generated in a floating point calculation of ignition control, a non-numeric value for ignition control is used. A determination flag is set, and all floating point calculations performed in the ignition control are prohibited using the non-number determination flag. Even in this case, it is possible to prevent the floating point arithmetic from being adversely affected by the occurrence of the non-number.
[0069]
In each of the above-described embodiments, the electronic control unit (ECU) 10 that handles floating-point type data in the single-precision storage format is exemplified, but the present invention can also be applied to an electronic control unit that handles floating-point type data in the double-precision storage format.
[0070]
In the above description, the present invention has been described by taking automobile engine control as an example. However, by applying the present invention to an electronic control apparatus that is involved in the traveling of the automobile as described above, the reliability of the automobile control system can be improved. it can.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an overview of an engine control system in an embodiment of the invention.
FIG. 2 is a flowchart showing a load correction amount calculation process in the first embodiment.
FIG. 3 is a flowchart showing an injection amount calculation process in the first embodiment.
FIG. 4 is a flowchart showing an ignition timing calculation process in the first embodiment.
FIG. 5 is a flowchart showing a load correction amount calculation process in the second embodiment.
FIG. 6 is a flowchart showing an injection amount calculation process in the second embodiment.
FIG. 7 is a flowchart showing an injection amount calculation process in the third embodiment.
FIG. 8 is a flowchart showing ignition timing calculation processing in the third embodiment.
FIG. 9 is a flowchart showing a load correction amount calculation process in the fourth embodiment.
FIG. 10 is a diagram showing a configuration of floating point type data.
FIG. 11 is a flowchart showing a rotational speed calculation process.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... Engine control ECU (electronic control apparatus), 11 ... Microcomputer, 12 ... CPU, 15 ... FPU (floating point arithmetic processor).

Claims (5)

浮動小数点型データを演算するための浮動小数点演算機能を有し、所定の制御プログラムに従い各種制御を実施する自動車用電子制御装置において、
浮動小数点型データが非数であるか否かを判定する非数判定手段と、
前記非数判定手段により非数である旨が判定されたとき、浮動小数点演算に代えて、整数型データとして算出された値をパラメータとしたマップデータの補間演算を実施し、これによって得られた補間値をバックアップ値として用いるバックアップ処理を実施するバックアップ手段と、
を備えることを特徴とする自動車用電子制御装置。
In an automotive electronic control device having a floating point arithmetic function for calculating floating point type data and performing various controls according to a predetermined control program,
Non-numeric determination means for determining whether floating-point data is non-numeric;
When that is not a number is determined by the a-number determining means and the cash strong point to floating-point operations, carried out interpolation calculation map data the calculated value as a parameter as an integer data, obtained by this Backup means for performing backup processing using the interpolation value as a backup value ;
An automobile electronic control device comprising:
前記非数判定手段は、浮動小数点演算毎にその際に用いられる浮動小数点型データが非数であるか否かを判定することを特徴とする請求項1に記載の自動車用電子制御装置。2. The automotive electronic control device according to claim 1, wherein the non-number determining means determines whether or not the floating-point type data used at that time is a non-number for each floating-point operation. 前記非数判定手段は、浮動小数点演算毎に影響を与える浮動小数点型データが非数であるか否かを判定することを特徴とする請求項1に記載の自動車用電子制御装置。2. The automotive electronic control device according to claim 1, wherein the non-numeric determination means determines whether or not the floating-point type data that affects each floating-point operation is non-numeric. 前記非数判定手段は、全ての浮動小数点型データのうちいずれかが1つでも非数であるか否かを判定することを特徴とする請求項1に記載の自動車用電子制御装置。2. The electronic control apparatus for an automobile according to claim 1, wherein the non-number determining means determines whether any one of all floating-point data is a non-number. 浮動小数点型データが非数であれば、その旨を表す非数判定フラグをその都度セットし、
前記非数判定手段は、非数判定フラグを参照して非数か否かを判定し、前記バックアップ手段は、
前記非数判定フラグの判定結果に応じてバックアップ処理を実施することを特徴とする請求項1〜4のいずれか一項に記載の自動車用電子制御装置。
If the floating-point type data is non-numeric, a non-numeric judgment flag indicating that is set each time,
The non-number determination means determines whether the number is non-number with reference to a non-number determination flag, and the backup means includes:
The automotive electronic control device according to any one of claims 1 to 4, wherein backup processing is performed according to a determination result of the non-number determination flag.
JP2000101028A 1999-12-24 2000-04-03 Automotive electronic control device with floating point arithmetic function Expired - Fee Related JP3644350B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000101028A JP3644350B2 (en) 2000-04-03 2000-04-03 Automotive electronic control device with floating point arithmetic function
US09/739,335 US6904543B2 (en) 1999-12-24 2000-12-19 Electronic control having floating-point data check function
DE10064787A DE10064787A1 (en) 1999-12-24 2000-12-22 Electronic control unit for motor control system of vehicle, has CPU which carries out backup processing instead of floating point calculation if floating point data including non-numeric values

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000101028A JP3644350B2 (en) 2000-04-03 2000-04-03 Automotive electronic control device with floating point arithmetic function

Publications (2)

Publication Number Publication Date
JP2001282505A JP2001282505A (en) 2001-10-12
JP3644350B2 true JP3644350B2 (en) 2005-04-27

Family

ID=18615148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000101028A Expired - Fee Related JP3644350B2 (en) 1999-12-24 2000-04-03 Automotive electronic control device with floating point arithmetic function

Country Status (1)

Country Link
JP (1) JP3644350B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4228706B2 (en) 2003-01-27 2009-02-25 株式会社デンソー Electronic control device and storage device of the electronic control device
JP4645519B2 (en) * 2006-04-27 2011-03-09 株式会社デンソー Arithmetic processing device, control device and program
JP6891789B2 (en) * 2017-12-13 2021-06-18 トヨタ自動車株式会社 Arithmetic logic unit

Also Published As

Publication number Publication date
JP2001282505A (en) 2001-10-12

Similar Documents

Publication Publication Date Title
CN100416256C (en) Method and system for determining combustion misfire of an internal combustion engine
JP4484772B2 (en) Misfire detection device for internal combustion engine
JPS5825540A (en) Air-to-fuel ratio control method
JP2003206805A (en) Air-fuel ratio controller of engine
JP3644350B2 (en) Automotive electronic control device with floating point arithmetic function
JP3551875B2 (en) Electronic control unit with floating point arithmetic function
JP2017210945A (en) Diagnostic device
JP2630442B2 (en) Engine control device
US6904543B2 (en) Electronic control having floating-point data check function
JP4158566B2 (en) Electronic control device having floating point arithmetic function
JPH0742609A (en) Memory checker for vehicle controller
JP4058870B2 (en) Electronic control device with floating point arithmetic function
JP4329332B2 (en) Electronic control device and control program
JPH0510199A (en) Misfire detector for internal combustion engine
JP3666226B2 (en) Electronic control unit
JP2542709B2 (en) Engine throttle opening detection device
JP3153394B2 (en) Knock detection method for internal combustion engine
JP2565141B2 (en) Load sharing control method for automobiles
JPH07233755A (en) Accelerator control device
JP3729133B2 (en) Electronic control device for vehicle and control program
JP2887048B2 (en) Misfire detection method and apparatus for internal combustion engine
JPH067083B2 (en) Intake air amount detector for internal combustion engine
JP4453762B2 (en) Electronic control unit having floating point arithmetic function
JP3570734B2 (en) Engine fuel injection control device
JP2003345587A (en) Convergency deciding method for averaging arithmetic operation by floating point arithmetic operation and electronic controller

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040820

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050124

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080210

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110210

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120210

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130210

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees