JP3442807B2 - エンジン回転のシミュレーション方法 - Google Patents
エンジン回転のシミュレーション方法Info
- Publication number
- JP3442807B2 JP3442807B2 JP00838993A JP838993A JP3442807B2 JP 3442807 B2 JP3442807 B2 JP 3442807B2 JP 00838993 A JP00838993 A JP 00838993A JP 838993 A JP838993 A JP 838993A JP 3442807 B2 JP3442807 B2 JP 3442807B2
- Authority
- JP
- Japan
- Prior art keywords
- crank
- detection signal
- engine
- job
- position detection
- 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
Links
Landscapes
- Combined Controls Of Internal Combustion Engines (AREA)
- Testing Of Engines (AREA)
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、実際にエンジンを運転
していない状態でのデバッグ効率向上を図るエンジン回
転のシミュレーション方法に関する。 【0002】 【従来の技術】近年、自動車などの車輌のエンジン制御
にマイクロコンピュータが導入されるようになり、エン
ジンを高精度に制御することが可能となった。これによ
り、エンジン制御システムの開発においては、マイクロ
コンピュータのソフトウエア開発が大きな比重を占める
ようになり、制御アルゴリスム上の処理の効率化が重要
な課題となっている。 【0003】このマイクロコンピュータのソフトウエア
開発には、例えば特開平3−62202号公報などに記
載されているように、通常、開発支援装置を用い、この
開発支援装置のホストコンピュータにより、車載用のマ
イクロコンピュータをターゲットとして、各種制御スト
ラテジーに基づくプログラムの作成、データセッティン
グ、デバッグなどを行ない、最終的に、定電圧回路や各
種周辺回路を加えた電子制御装置(ECU)として車輌
に搭載されるようになっている。 【0004】 【発明が解決しようとする課題】しかしながら、制御シ
ステム内で実行される各ジョブには、吸入空気量算出や
燃料噴射量設定などのデジタル制御理論に基づく等時間
間隔処理を前提としたジョブに加えて、エンジン回転数
算出や点火タイマセットなどのようにクランク位置情報
に基づく回転同期処理を前提としたジョブがあり、この
回転同期を前提としたジョブでは、実際にエンジンが回
転していない状態でプログラムのデバッグを行なうこと
は困難である。 【0005】本発明は上記事情に鑑みてなされたもの
で、実際にエンジンを運転しなくともエンジン回転同期
の処理を実行可能とし、システムのデバッグ効率を向上
させることのできるエンジン回転のシミュレーション方
法を提供することを目的としている。 【0006】 【課題を解決するための手段】上記目的を達成するため
本発明は、バックグランドジョブの上で、一定時間毎に
起動する定期割込みとクランク位置検出信号によって起
動するクランク同期割込みとにより、複数のジョブを実
行するエンジン制御システムであって、上記バックグラ
ンドジョブ中で、外部書込み可能な所定の変数を参照し
てシミュレーションモードへの移行が指示されているか
否かを調べ、上記変数としてエンジン回転のシミュレー
ション値を指示する値が書き込まれておりシミュレーシ
ョンモードへの移行が指示されている場合、上記変数の
値によって指示されるエンジン回転数に対応する時間周
期を発生し、この時間周期で上記クランク位置検出信号
の疑似信号入力状態を作成して上記クランク同期割込み
を起動することを特徴とする。 【0007】 【作用】本発明では、エンジン回転のシミュレーション
値を指示する値を、外部から所定の変数に書き込むと、
この変数がバックグランドジョブ中で参照され、シミュ
レーションモードへの移行が指示されているか否かが調
べられる。そして、変数としてエンジン回転のシミュレ
ーション値を指示する値が書き込まれており、シミュレ
ーションモードへの移行が指示されている場合、指示さ
れたエンジン回転数に対応する時間周期でクランク位置
検出信号の疑似入力状態が作成されてクランク同期割込
みが起動される。その結果、実際にエンジンを運転しな
くとも、指示されたエンジン回転数に対応する時間周期
で起動されるクランク同期割込みと一定時間毎に起動さ
れる定期割込みとにより、バックグランドジョブの上で
エンジン回転同期の処理が実行可能となる。 【0008】 【実施例】以下、図面を参照して本発明の実施例を説明
する。図面は本発明の一実施例に係り、図1はバックグ
ランドジョブのフローチャート、図2はリセット割込み
処理のフローチャート、図3はTB3割込み処理のフロ
ーチャート、図4はジョブの実行状態を示す説明図、図
5はクランク位置検出信号入力シミュレーションテーブ
ルの説明図、図6はカム角センサ検出信号入力シミュレ
ーションテーブルの説明図、図7はエンジン系の概略構
成図、図8はクランクロータとクランク角センサの正面
図、図9はカムロータとカム角センサの正面図、図10
は電子制御系の回路構成図である。 【0009】本実施例のエンジン制御システムでは、図
10に示すマイクロコンピュータを中核とした電子制御
装置(ECU)50により図7に示すエンジン系が制御
され、燃料噴射制御、点火時期制御などが行なわれる。
上記ECU50のマイクロコンピュータには、新しい概
念に基づくオペレーティングシステム(OS)が搭載さ
れ、このOSにより、各センサ類からの信号入力処理、
エンジン回転数算出処理、吸入空気量算出処理、燃料噴
射量設定処理、点火時期設定処理などといった各制御項
目毎のジョブが管理されて効率的に実行されるようにな
っている。 【0010】まず、上記ECU50によって制御される
エンジン系の機器構成について説明する。図7に示すよ
うに、エンジン1(図においては水平対向4気筒型エン
ジンを示す)は、シリンダヘッド2の吸気ポート2aに
インテークマニホルド3が連通され、このインテークマ
ニホルド3の上流にエアチャンバ4を介してスロットル
通路5が連通されている。このスロットル通路5の上流
側には、吸気管6を介してエアクリーナ7が取付けら
れ、このエアクリーナ7が吸入空気の取り入れ口である
エアインテークチャンバ8に連通されている。 【0011】また、上記排気ポート2bにエキゾースト
マニホルド9を介して排気管10が連通され、この排気
管10に触媒コンバータ11が介装されてマフラ12に
連通されている。一方、上記スロットル通路5にスロッ
トルバルブ5aが設けられ、このスロットル通路5の直
上流の上記吸気管6にインタークーラ13が介装され、
さらに、上記吸気管6の上記エアクリーナ7の下流側に
レゾネータチャンバ14が介装されている。 【0012】また、上記レゾネータチャンバ14と上記
インテークマニホルド3とを連通して上記スロットルバ
ルブ5aの上流側と下流側とをバイパスするバイパス通
路15に、アイドルスピードコントロールバルブ(IS
CV)16が介装されている。さらに、このISCV1
6の直下流側に、吸気圧が負圧のとき開弁し、またター
ボチャージャ18によって過給されて吸気圧が正圧にな
ったとき閉弁するチェックバルブ17が介装されてい
る。 【0013】上記ターボチャージャ18は、上記吸気管
6の上記レゾネータチャンバ14の下流側にコンプレッ
サハウジングが介装され、タービンハウジングが上記排
気管10に介装されている。さらに、上記ターボチャー
ジャ18のタービンハウジング流入口には、ウエストゲ
ート弁19が介装され、このウエストゲート弁19に
は、ウエストゲート弁作動用アクチュエータ20が連設
されている。 【0014】上記ウエストゲート弁作動用アクチュエー
タ20は、ダイヤフラムにより2室に仕切られ、一方が
ウエストゲート弁制御用デューティソレノイド弁21に
連通される圧力室を形成し、他方が上記ウエストゲート
弁19を閉方向に付勢するスプリングを収納したスプリ
ング室を形成している。 【0015】上記ウエストゲート弁制御用デューティソ
レノイド弁21は、上記レゾネータチャンバ14と上記
吸気管6の上記ターボチャージャ18のコンプレッサハ
ウジング下流とを連通する通路に介装されており、EC
U50から出力される制御信号のデューティ比に応じ
て、上記レゾネータチャンバ14側の圧力と上記コンプ
レッサハウジング下流側の圧力とを調圧し、上記ウエス
トゲート弁作動用アクチュエータ20の圧力室に供給す
る。 【0016】すなわち、上記ECU50によって上記ウ
エストゲート弁制御用デューティソレノイド弁21を制
御し、上記ウエストゲート弁作動用アクチュエータ20
を作動させて上記ウエストゲート弁19による排気ガス
リリーフを調整することにより、上記ターボチャージャ
18による過給圧を制御するようになっている。 【0017】また、上記インテークマニホルド3に絶対
圧センサ22が通路23を介して連通され、この通路2
3に、上記絶対圧センサ22と上記インテークマニホル
ド3あるいは大気とを選択的に連通する吸気管圧力/大
気圧切換ソレノイド弁24が介装されている。 【0018】さらに、上記インテークマニホルド3の各
気筒の各吸気ポート2aの直上流側にインジェクタ25
が臨まされ、また、上記シリンダヘッド2の各気筒毎
に、その先端を燃焼室に露呈する点火プラグ26aが取
付けられ、この点火プラグ26aに連設する点火コイル
26bにイグナイタ27が接続されている。 【0019】上記インジェクタ25には、燃料タンク2
8内に設けたインタンク式の燃料ポンプ29から燃料フ
ィルタ30を経て燃料が圧送され、プレッシャレギュレ
ータ31にて調圧される。 【0020】また、上記吸気管6の上記エアークリーナ
7の直下流に、ホットワイヤ式あるいはホットフィルム
式などの吸入空気量センサ32が介装され、上記スロッ
トルバルブ5aに、スロットル開度センサ33aとアイ
ドルスイッチ33bとを内蔵したスロットルセンサ33
が連設されている。 【0021】さらに、上記エンジン1のシリンダブロッ
ク1aにノックセンサ34が取付けられるとともに、こ
のシリンダブロック1aの左右両バンクを連通する冷却
水通路35に冷却水温センサ36が臨まされ、上記排気
管10の上記エキゾーストマニホルド9の集合部にO2
センサ37が臨まされている。 【0022】また、上記シリンダブロック1aに支承さ
れたクランクシャフト1bにクランクロータ38が軸着
され、このクランクロータ38の外周に、クランク角セ
ンサ39が対設され、さらに、上記エンジン1のカムシ
ャフト1cに連設するカムロータ40に、気筒判別用の
カム角センサ41が対設されて、エンジンのクランク位
置検出信号がECU50に入力されるようになってい
る。 【0023】尚、上記クランク角センサ39及び上記カ
ム角センサ41は、電磁ピックアップなどの磁気センサ
あるいは光センサなどから構成される。 【0024】上記クランクロータ38は、図8に示すよ
うに、その外周に突起38a,38b,38cが形成さ
れ、これらの各突起38a,38b,38cが、各気筒
(#1,#2と#3,#4)の圧縮上死点前(BTD
C)θ1,θ2,θ3 の位置に形成されており、本実施例に
おいては、θ1 =97°CA、θ2 =65°CA、θ3
=10°CAである。 【0025】上記クランクロータ38の各突起は、上記
クランク角センサ39によって検出され、BTDC97
°,65°,10°のクランク位置検出信号がエンジン
1/2回転毎(180°CA毎)に出力される。そし
て、各信号の入力間隔時間がタイマによって計時され、
エンジン回転数が算出される。 【0026】尚、突起38bは、点火時期設定の際の基
準クランク角となり、また、突起38cは、始動時噴射
開始時期の基準クランク角となるとともに始動時の固定
点火時期を示すクランク角となる。 【0027】また、図9に示すように、上記カムロータ
40の外周には、気筒判別用の突起40a,40b,4
0cが形成され、突起40aが#3,#4気筒の圧縮上
死点後(ATDC)θ4 の位置に形成され、突起40b
が3個の突起で構成されて最初の突起が#1気筒のAT
DCθ5 の位置に形成されている。さらに、突起40c
が2個の突起で形成され、最初の突起が#2気筒のAT
CDθ6 の位置に形成されている。本実施例において
は、θ4 =20°CA、θ5 =5°CA、θ6 =20°
CAである。 【0028】そして、上記カムロータ40の各突起が上
記カム角センサ41によって検出され、各気筒の燃焼行
程順を#1→#3→#2→#4とした場合、この燃焼行
程順と、上記カム角センサ41の検出信号をカウンタに
よって計数した値とのパターンに基づいて、気筒判別が
なされる。 【0029】一方、図10に示すように、ECU50
は、燃料噴射制御、点火時期制御などを行なうメインコ
ンピュータ51と、ノック検出処理を行なう専用のサブ
コンピュータ52との2つのコンピュータを中心として
構成され、各部に所定の安定化電源を供給する定電圧回
路53や各種の周辺回路が組込まれている。 【0030】上記定電圧回路53は、ECUリレー54
のリレー接点を介してバッテリ55に接続され、このバ
ッテリ55に、上記ECUリレー54のリレーコイルが
イグニッションスイッチ56を介して接続されている。
また、上記バッテリ55には、上記定電圧回路53が直
接接続され、さらに、燃料ポンプリレー57のリレー接
点を介して燃料ポンプ29が接続されている。 【0031】すなわち、上記定電圧回路53は、上記イ
グニッションスイッチ56がONされ、上記ECUリレ
ー54のリレー接点が閉となったとき、制御用電源を供
給し、また、上記イグニッションスイッチ56がOFF
されたとき、バックアップ用の電源を供給する。 【0032】上記メインコンピュータ51は、CPU5
8(以下、メインCPU58と称する)、ROM59、
RAM60、上記イグニッションスイッチ56がOFF
されたときにも上記定電圧回路53からバックアップ電
源が供給されてデータを保持するバックアップRAM6
1、カウンタ・タイマ群62、シリアル通信インターフ
ェースであるSCI63、及び、I/Oインターフェー
ス64がバスライン65を介して接続されたマイクロコ
ンピュータである。 【0033】尚、上記カウンタ・タイマ群62は、フリ
ーランカウンタ、カム角センサ検出信号の入力計数用カ
ウンタなどの各種カウンタ、燃料噴射タイマ、点火タイ
マ、0.5msec毎の定期割込みを発生させるための
定期割込みタイマ、クランク角センサによるクランク位
置検出信号の入力間隔計時用タイマ、及び、システム異
常監視用のウオッチドッグタイマなどの各種タイマを便
宜上総称するものであり、上記メインコンピュータ51
においては、その他、各種のソフトウエアカウンタ・タ
イマが用いられる。 【0034】また、上記サブコンピュータ52も、上記
メインコンピュータ51と同様、CPU71(以下、サ
ブCPU71と称する)、ROM72、RAM73、カ
ウンタ・タイマ群74、SCI75、及び、I/Oイン
ターフェース76がバスライン77を介して接続された
マイクロコンピュータであり、上記メインコンピュータ
51とサブコンピュータ52とは、上記SCI63,7
5を介してシリアル通信ラインにより互いに接続されて
いる。 【0035】上記メインコンピュータ51のI/Oイン
ターフェース64には、入力ポートに、吸入空気量セン
サ32、スロットル開度センサ33a、水温センサ3
6、O2 センサ37、絶対圧センサ22、車速センサ4
2、及び、バッテリ55が、8チャンネル入力のA/D
変換器66を介して接続されるとともに、アイドルスイ
ッチ33b、クランク角センサ39、カム角センサ41
が接続されており、さらに、始動状態を検出するために
スタータスイッチ43が接続されている。 【0036】尚、本実施例においては、上記A/D変換
器66は、7チャンネル分の入力が使用され、残りの1
チャンネルは予備となっている。 【0037】また、上記I/Oインターフェース64の
出力ポートには、イグナイタ27が接続され、さらに、
駆動回路67を介して、ISCV16、インジェクタ2
5、燃料ポンプリレー57のリレーコイル、および、ウ
エストゲート弁制御用デューティソレノイド弁21、吸
気管圧力/大気圧切換ソレノイド弁24が接続されてい
る。 【0038】一方、上記サブコンピュータ52のI/O
インターフェース76は、入力ポートに、クランク角セ
ンサ39、カム角センサ41が接続されるとともに、A
/D変換器78、周波数フィルタ79、アンプ80を介
してノックセンサ34が接続されており、上記ノックセ
ンサ34からのノック検出信号が上記アンプ80で所定
のレベルに増幅された後に上記周波数フィルタ79によ
り必要な周波数成分が抽出され、上記A/D変換器78
にてデジタル信号に変換されて入力されるようになって
いる。 【0039】上記メインコンピュータ51では、各セン
サ類からの検出信号を処理し、燃料噴射パルス幅、点火
時期などを演算する。すなわち、吸入空気量センサ32
の出力信号から吸入空気量を算出し、RAM60及びバ
ックアップRAM61に記憶されている各種データに基
づき、吸入空気量に見合った燃料噴射量を演算し、ま
た、点火時期などを算出する。 【0040】そして、上記燃料噴射量に相応する駆動パ
ルス幅信号を、駆動回路67を介して所定のタイミング
で該当気筒のインジェクタ25に出力して燃料を噴射
し、また、所定のタイミングでイグナイタ27に点火信
号を出力し、該当気筒の点火プラグ26aを点火する。 【0041】その結果、該当気筒に供給された混合気が
爆発燃焼し、エキゾーストマニホルド9の集合部に臨ま
されたO2 センサ37により排気ガス中の酸素濃度が検
出され、この検出信号が波形整形された後、上記メイン
CPU58で基準電圧(スライスレベル)と比較され、
エンジンの空燃比状態が目標空燃比に対し、リッチ側に
あるか、リーン側にあるかが判別され、空燃比が目標空
燃比となるようフィードバック制御される。 【0042】一方、上記サブコンピュータ52では、エ
ンジン回転数とエンジン負荷とに基づいてノックセンサ
34からの信号のサンプル区間を設定し、このサンプル
区間でノックセンサ34からの信号を高速にA/D変換
して振動波形を忠実にデジタルデータに変換し、ノック
発生の有無を判定する。 【0043】上記サブコンピュータ52のI/Oインタ
ーフェース76の出力ポートは、上記メインコンピュー
タ51のI/Oインターフェース64の入力ポートに接
続されており、上記サブコンピュータ52でのノック判
定結果がI/Oインターフェース76に出力される。そ
して、上記メインコンピュータ51では、上記サブコン
ピュータ52からノック発生有りの判定結果が出力され
ると、SCI63を介してシリアル通信ラインよりノッ
クデータを読込み、このノックデータに基づいて直ちに
該当気筒の点火時期を遅らせ、ノックを回避する。 【0044】このようなエンジン制御において、上記メ
インコンピュータ51では、各センサ類からの信号入力
処理、エンジン回転数算出、吸入空気量算出、燃料噴射
量算出、点火時期算出といった各項目毎の各種プログラ
ムが、一つのOSの管理下で効率的に実行される。この
OSは、車輌制御のための各種マネジメント機能、及
び、このマネジメント機能に密着した内部ストラテジー
を有し、各種ジョブを体系的に結合する。 【0045】上記OSのマネジメント機能としては、 (1-1)ジョブの優先処理 (1ー2)セクション定義による各ジョブの分割ファイル対
応 (1-3)スタックの使用状況モニタ機能 (1-4)異常割込み動作のモニタ機能 (1-5)ジョブ毎に固有の制約を作らない標準マップ・標
準ワークメモリ設定 などの機能があり、制御ストラテジーの開発環境を向上
させるとともに、限られたCPU能力を最大限に発揮さ
せ、デジタル制御理論の基本である等時間間隔処理を可
能な限り達成することができる。 【0046】等時間間隔処理としては、0.5ms毎の
定期割込みを基本として、2,4,10,50,250
ms毎の5種類の等間隔割込みジョブが用意されてお
り、また、エンジン回転に同期した処理として、クラン
ク位置検出信号入力により即割込み実行される高優先ク
ランク同期ジョブと、より優先順位が高い他のジョブが
ないときにクランク位置検出信号入力により割込み実行
される比較的緊急度の低い低優先クランク同期ジョブと
が用意されている。 【0047】これらの各ジョブには、高優先クランク同
期ジョブ>2msジョブ>4msジョブ>10msジョ
ブ>低優先クランク同期ジョブ>50msジョブ>25
0msジョブの順で、7〜1の優先レベルが高位側から
低位側に向かって付けられており、図4に示すように、
高速ジョブに対し低速ジョブが分割して処理されるとと
もに、各ジョブの多重待ち処理が行なわれる。 【0048】また、上記OSの下で働く各プログラム
は、機能別の領域毎に順番に配列されており、各機能毎
にセクション宣言によって名前が付けられている。上記
OS下で働く数々のストラテジーファイル(ユーザー側
ファイル)は、各機能毎にOSと同じ名前のセクション
宣言を用いることにより、開発段階において、例えば、
初期値設定処理、10ms毎の処理、バックグランド処
理等を別々のファイルに記述しても、各フィルがリンク
されたとき、同じ処理は連続した1つの領域の集めら
れ、OSと融合し一体となって動作する。 【0049】各ストラテジーファイル側で使用する主な
セクション領域は、 ○変数宣言領域 ○自己ファイル名、ファイル作成時の自動記録領域 ○セッティング領域データ ○高優先クランク同期ジョブ領域 ○2msジョブ領域 ○4msジョブ領域 ○10msジョブ領域 ○低優先クランク同期ジョブ領域 ○50msジョブ領域 ○250msジョブ領域 ○リセット時初期化ジョブ領域 ○エンスト時初期化ジョブ領域 ○バックグランドジョブ領域 ○プログラム本体の領域 であり、機能毎にファイルを分割してプログラム開発が
可能になるとともに、プログラムの構造化記述を可能に
する。 【0050】また、上記OSには、以上のマネジメント
機能に密着した内部ストラテジーとして、 (2-1)A/D変換処理 (2-2)クランク位置に係る各種情報の算出 (2-3)デバッグ用シミュレーション機能(エンジン回転
及びA/D変換) (2-4)点火タイマのセット (2-5)燃料噴射タイマのセット などの機能を備えており、さらに、これらの機能に係る
各種サービスルーチンが各ジョブ中に用意されている。 【0051】従来、このような機能は各ジョブレベルで
達成するようになっていたが、本システムにおいては、
すべてOS側に用意され、OS側で処理したA/D変換
結果、クランク位置情報、エンジン回転数などに基づい
て、ユーザー側の各ジョブで、燃料噴射量、点火時期な
どを設定すると、これらの指示値がOSによって燃料噴
射タイマ、点火タイマにセットされるようになってい
る。 【0052】次に、上記OSのデバッグ用シミュレーシ
ョン機能のうち、本願のエンジン回転シミュレーション
に係る処理を、図1〜図3のフローチャートに基づいて
説明する。尚、サブコンピュータ52はノック検出処理
専用のコンピュータであるため、その動作説明を省略す
る。 【0053】まず、イグニッションスイッチ56がON
されてシステムに電源が投入されると、図2に示すリセ
ット割込みが起動する。このリセット割込みは、システ
ム投入時のリセット、あるいは、内部演算において0に
よる除算を実行した場合や、無限ループが発生した場合
など、正常時には発生しない要因によっても起動され、
ステップS100で、バックグランド処理のワークエリアを
設定すると、ステップS101,S102で、スタックポインタ
の設定、異常監視用のウオッチドッグタイマの設定を行
なう。 【0054】次に、ステップS103,S104で、I/Oイン
ターフェース64のポート初期化と、カウンタ・タイマ
群62の初期化とを行ない、ステップS105で、割込み優
先順位をセットすると、ステップS106で、SCI63を
初期化し、シリアル通信を初期化する。 【0055】その後、ステップS107で、RAM60のク
リアRAMエリアをクリアすると、ステップS108で、各
変数の初期値を設定し、次のステップS109で、カウンタ
・タイマ群62中の燃料噴射タイマを噴射幅0で起動す
ることにより燃料噴射終了状態とし、次の燃料噴射開始
に備える。 【0056】ついで、ステップS110で、定期割込みタイ
マを起動し、ステップS111で、クランク同期割込みを許
可すると、図1に示すステップS200以降のラベルBGJ
OBへ進む。このラベルBGJOB以降は、0.5ms
毎の定期割込み、クランク同期割込み、その他、各レベ
ルのジョブ、サブルーチンが実行されていない状態での
バックグランド処理であり、スタックの使用状況、デバ
ック用シミュレーションモードへの移行を監視しながら
バックグランドジョブを実行する。 【0057】まず、ステップS200では、スタックポイン
タSTACKCの示すアドレスの内容が、以前に書き込
んだ値、例えば255であるかか否かを判別し、その値
が255であるときには、ステップS203へジャンプし、
255でないときには、ステップS201へ進んで、スタッ
クポインタSTACKCを1減らす。 【0058】次に、ステップS202へ進み、スタックポイ
ンタSTACKCの示すアドレスに255をストアし、
後述するステップS203〜ステップS210の処理を経て上記
ステップS200へ戻るループを繰返す。 【0059】すなわち、バックグランドジョブにおいて
書き込んだ所定の値が保存されているアドレスを、スタ
ックの底から上に向かって調べてゆくことにより、この
バックグランドジョブの上で実行される各割込み処理に
よるスタックエリアの使用状況を調べ、スタックオーバ
ーフローなどの異常発生を監視するのである。 【0060】次に、ステップS203では、エンジン回転の
ドリームモード(クランク位置検出信号・カム角センサ
検出信号ドリームモード)に対する指示値が0か否かを
判別する。このドリームモードは、エンジン系のハード
ウエアと完全に分離した状態でソフトウエアの実行デバ
ッグを行なうシミュレーションモードであり、上記クラ
ンク位置検出信号・カム角センサ検出信号ドリームモー
ドの他、A/D変換結果のシミュレーションモードであ
るA/D変換ドリームモードの機能がOS側に備えられ
ている。 【0061】上記クランク位置検出信号・カム角センサ
検出信号ドリームモードでは、指示値であるDRM_N
Eにゼロ以外の数値が書き込まれると、この数値の50
倍のエンジン回転数(rpm)でエンジンが運転された
状態に相当する擬似的な周期で、クランク位置検出信号
の入力間隔計時用タイマのセット、カム角センサ検出信
号の入力計数用カウンタのセット、クランク同期割込み
の発生が行なわれる。この疑似周期の発生には、通常の
システム実働状態では未使用のタイマTB3が使用され
る。 【0062】そして、上記ステップS203で、指示値が0
のときには、クランク位置検出信号・カム角センサ検出
信号ドリームモードへの移行が指示されておらず通常の
状態であるため、上記ステップS203からステップS204へ
進んで、上記タイマTB3による割込みを禁止すると、
ステップS205で、上記タイマTB3の値をFFFFのリ
セット状態とし、ステップS210へ進む。 【0063】ステップS210は、バックグランドジョブの
セクション領域における処理であり、各制御ストラテジ
ー毎のファイルにおいてバックグランドとしてセクショ
ン宣言されたジョブがリンクされていれば、その処理を
実行して上記ステップS200へ戻って前述の過程を繰返
し、このバックグランドジョブの上で、0.5ms毎の
定期割込みと、エンジン1回転に6回のクランク同期割
込みとにより、7レベルのジョブが優先処理される。 【0064】一方、上記ステップS203で、指示値が0で
ないときには、クランク位置検出信号・カム角センサ検
出信号ドリームモードへの移行が指示されているため、
上記ステップS203からステップS206へ分岐し、上記タイ
マTB3の値がFFFFであるか否かを調べる。 【0065】上記ステップS206で、上記タイマTB3の
値がFFFFでないときには、既にクランク位置検出信
号・カム角センサ検出信号ドリームモードへ移行して上
記タイマTB3がスタートしている状態であるため、ス
テップS210へ分岐し、上記タイマTB3の値がFFFF
のときには、ステップS207で、タイマTB3の値をFF
FFのリセット状態からFFFEとしてステップS208へ
進む。 【0066】ステップS208では、タイマTB3による割
込みを許可し、ステップS209でタイマTB3をスタート
させると、前述のステップS210へ進んで、バックグラン
ドジョブセクション領域の処理を実行し、このバックグ
ランドジョブの上で、タイマTB3割込みによって、ク
ランク位置検出信号の入力間隔計時用タイマ及びカム角
センサ検出信号の入力計数用カウンタのセットやクラン
ク同期割込みを発生させるためのデバッグ用時間周期を
発生させることにより、クランク位置検出信号・カム角
センサ検出信号ドリームモードを実行する。 【0067】次に、図3のTB3割込み処理について説
明する。このTB3割込みでは、まず、ステップS300
で、クランク位置検出信号入力をソフトウエア的にシミ
ュレートするためのクランク位置検出信号入力シミュレ
ーションテーブルTBLDRN、及び、カム角センサ検
出信号入力をソフトウエア的にシミュレートするための
カム角センサ検出信号入力シミュレーションテーブルT
BLDRCを参照する際のポインタである状態カウンタ
をカウントアップする。 【0068】上記クランク位置検出信号入力シミュレー
ションテーブルTBLDRNには、図5に示すように、
エンジン回転数100rpm相当のクランク位置検出信
号入力間隔データDRN1,DRN2,DRN3が4周
期分配置されており、データDRN1がクランクロータ
38の突起38a〜38b間(32°相当)の時間経過
データ、データDRN2がクランクロータ38の突起3
8b〜38c間(55°相当)の時間経過データ、デー
タDRN3がクランクロータ38の突起38c〜38a
間(93°相当)の時間経過データを示し、4周期分の
データで720°CAに対応するようになっている。 【0069】また、上記カム角センサ検出信号入力シミ
ュレーションテーブルTBLDRCには、図6に示すよ
うに、各クランク位置検出信号間で入力されるカム角セ
ンサ検出信号の数を示すデータDRC1,DRC2,D
RC3が、データ“0”の間に配置されており、データ
DRC1がカムロータ40の突起40aによるカム角セ
ンサ検出信号の入力数、データDRC2がカムロータ4
0の突起40bによるカム角センサ検出信号の入力数、
DRC3がカムロータ40の突起40cによるカム角セ
ンサ検出信号の入力数を示し、本実施例では、DRC1
=1、DRC2=3、DRC3=2であり、720°C
A分に対応するデータ列となっている。 【0070】次いで、上記ステップS300からステップS3
01へ進むと、上記クランク位置検出信号入力シミュレー
ションテーブルTBLDRNから得られるエンジン回転
数100rpm相当のクランク位置検出信号入力間隔
を、クランク位置検出信号・カム角センサ検出信号ドリ
ームモードの指示値DRM_NEを50倍した指示回転
数で割算して2倍し、指示回転数に対応するクランク位
置検出信号の入力間隔時間を算出する。 【0071】そして、上記ステップS301で算出したクラ
ンク位置検出信号入力間隔の時間データを、ステップS3
02,S303で、それぞれタイマTB3、クランク位置検出
信号の入力間隔計時用タイマにセットすると、ステップ
S304で、カム角センサ検出信号入力数のシミュレーショ
ン値をカム角センサ検出信号の入力計数用カウンタにセ
ットした後、ステップS305でタイマTB3をスタートさ
せ、ステップS306でクランク同期のソフトウエア割込み
をセットして処理を終了する。 【0072】これにより、希望するエンジン回転数に対
応する時間周期で、クランク位置検出信号の疑似入力状
態が作成されてクランク同期割込みが起動され、実際に
エンジンを運転しなくとも、エンジン回転同期の処理が
実行可能となってエンジン回転に係る各種制御パラメー
タを算出することができ、例えば、その他のセンサ類か
らの信号を外部から入力するなどしてデバッグの際の効
率を大幅に向上することができる。 【0073】尚、センサ類からのアナログ信号は、A/
D変換のシミュレーション機能を使用することにより外
部入力なしでシミュレートすることができ、実際にエン
ジンを運転しなくとも、あたかもエンジンが運転されて
いるかのようにシステムを動作させることができる。 【0074】 【発明の効果】以上説明したように本発明によれば、外
部から所定の変数にシミュレートするエンジン回転数を
指示する値を書き込むと、エンジン回転のシミュレーシ
ョンモードへ移行し、指示されたエンジン回転数に対応
する時間周期でクランク位置検出信号の疑似入力状態が
作成されてクランク同期割込みが起動されるので、実際
にエンジンを運転しなくとも、このクランク同期割込み
と一定時間毎の定期割込みとにより、バックグランドの
ジョブの上で、エンジン回転同期の処理が実行可能とな
る。従って、実際にエンジンを運転しなくとも、エンジ
ン回転同期の処理を実行可能とすることができ、エンジ
ン回転に係る各種制御パラメータを算出することができ
て、システムのデバック効率を向上することができる。
していない状態でのデバッグ効率向上を図るエンジン回
転のシミュレーション方法に関する。 【0002】 【従来の技術】近年、自動車などの車輌のエンジン制御
にマイクロコンピュータが導入されるようになり、エン
ジンを高精度に制御することが可能となった。これによ
り、エンジン制御システムの開発においては、マイクロ
コンピュータのソフトウエア開発が大きな比重を占める
ようになり、制御アルゴリスム上の処理の効率化が重要
な課題となっている。 【0003】このマイクロコンピュータのソフトウエア
開発には、例えば特開平3−62202号公報などに記
載されているように、通常、開発支援装置を用い、この
開発支援装置のホストコンピュータにより、車載用のマ
イクロコンピュータをターゲットとして、各種制御スト
ラテジーに基づくプログラムの作成、データセッティン
グ、デバッグなどを行ない、最終的に、定電圧回路や各
種周辺回路を加えた電子制御装置(ECU)として車輌
に搭載されるようになっている。 【0004】 【発明が解決しようとする課題】しかしながら、制御シ
ステム内で実行される各ジョブには、吸入空気量算出や
燃料噴射量設定などのデジタル制御理論に基づく等時間
間隔処理を前提としたジョブに加えて、エンジン回転数
算出や点火タイマセットなどのようにクランク位置情報
に基づく回転同期処理を前提としたジョブがあり、この
回転同期を前提としたジョブでは、実際にエンジンが回
転していない状態でプログラムのデバッグを行なうこと
は困難である。 【0005】本発明は上記事情に鑑みてなされたもの
で、実際にエンジンを運転しなくともエンジン回転同期
の処理を実行可能とし、システムのデバッグ効率を向上
させることのできるエンジン回転のシミュレーション方
法を提供することを目的としている。 【0006】 【課題を解決するための手段】上記目的を達成するため
本発明は、バックグランドジョブの上で、一定時間毎に
起動する定期割込みとクランク位置検出信号によって起
動するクランク同期割込みとにより、複数のジョブを実
行するエンジン制御システムであって、上記バックグラ
ンドジョブ中で、外部書込み可能な所定の変数を参照し
てシミュレーションモードへの移行が指示されているか
否かを調べ、上記変数としてエンジン回転のシミュレー
ション値を指示する値が書き込まれておりシミュレーシ
ョンモードへの移行が指示されている場合、上記変数の
値によって指示されるエンジン回転数に対応する時間周
期を発生し、この時間周期で上記クランク位置検出信号
の疑似信号入力状態を作成して上記クランク同期割込み
を起動することを特徴とする。 【0007】 【作用】本発明では、エンジン回転のシミュレーション
値を指示する値を、外部から所定の変数に書き込むと、
この変数がバックグランドジョブ中で参照され、シミュ
レーションモードへの移行が指示されているか否かが調
べられる。そして、変数としてエンジン回転のシミュレ
ーション値を指示する値が書き込まれており、シミュレ
ーションモードへの移行が指示されている場合、指示さ
れたエンジン回転数に対応する時間周期でクランク位置
検出信号の疑似入力状態が作成されてクランク同期割込
みが起動される。その結果、実際にエンジンを運転しな
くとも、指示されたエンジン回転数に対応する時間周期
で起動されるクランク同期割込みと一定時間毎に起動さ
れる定期割込みとにより、バックグランドジョブの上で
エンジン回転同期の処理が実行可能となる。 【0008】 【実施例】以下、図面を参照して本発明の実施例を説明
する。図面は本発明の一実施例に係り、図1はバックグ
ランドジョブのフローチャート、図2はリセット割込み
処理のフローチャート、図3はTB3割込み処理のフロ
ーチャート、図4はジョブの実行状態を示す説明図、図
5はクランク位置検出信号入力シミュレーションテーブ
ルの説明図、図6はカム角センサ検出信号入力シミュレ
ーションテーブルの説明図、図7はエンジン系の概略構
成図、図8はクランクロータとクランク角センサの正面
図、図9はカムロータとカム角センサの正面図、図10
は電子制御系の回路構成図である。 【0009】本実施例のエンジン制御システムでは、図
10に示すマイクロコンピュータを中核とした電子制御
装置(ECU)50により図7に示すエンジン系が制御
され、燃料噴射制御、点火時期制御などが行なわれる。
上記ECU50のマイクロコンピュータには、新しい概
念に基づくオペレーティングシステム(OS)が搭載さ
れ、このOSにより、各センサ類からの信号入力処理、
エンジン回転数算出処理、吸入空気量算出処理、燃料噴
射量設定処理、点火時期設定処理などといった各制御項
目毎のジョブが管理されて効率的に実行されるようにな
っている。 【0010】まず、上記ECU50によって制御される
エンジン系の機器構成について説明する。図7に示すよ
うに、エンジン1(図においては水平対向4気筒型エン
ジンを示す)は、シリンダヘッド2の吸気ポート2aに
インテークマニホルド3が連通され、このインテークマ
ニホルド3の上流にエアチャンバ4を介してスロットル
通路5が連通されている。このスロットル通路5の上流
側には、吸気管6を介してエアクリーナ7が取付けら
れ、このエアクリーナ7が吸入空気の取り入れ口である
エアインテークチャンバ8に連通されている。 【0011】また、上記排気ポート2bにエキゾースト
マニホルド9を介して排気管10が連通され、この排気
管10に触媒コンバータ11が介装されてマフラ12に
連通されている。一方、上記スロットル通路5にスロッ
トルバルブ5aが設けられ、このスロットル通路5の直
上流の上記吸気管6にインタークーラ13が介装され、
さらに、上記吸気管6の上記エアクリーナ7の下流側に
レゾネータチャンバ14が介装されている。 【0012】また、上記レゾネータチャンバ14と上記
インテークマニホルド3とを連通して上記スロットルバ
ルブ5aの上流側と下流側とをバイパスするバイパス通
路15に、アイドルスピードコントロールバルブ(IS
CV)16が介装されている。さらに、このISCV1
6の直下流側に、吸気圧が負圧のとき開弁し、またター
ボチャージャ18によって過給されて吸気圧が正圧にな
ったとき閉弁するチェックバルブ17が介装されてい
る。 【0013】上記ターボチャージャ18は、上記吸気管
6の上記レゾネータチャンバ14の下流側にコンプレッ
サハウジングが介装され、タービンハウジングが上記排
気管10に介装されている。さらに、上記ターボチャー
ジャ18のタービンハウジング流入口には、ウエストゲ
ート弁19が介装され、このウエストゲート弁19に
は、ウエストゲート弁作動用アクチュエータ20が連設
されている。 【0014】上記ウエストゲート弁作動用アクチュエー
タ20は、ダイヤフラムにより2室に仕切られ、一方が
ウエストゲート弁制御用デューティソレノイド弁21に
連通される圧力室を形成し、他方が上記ウエストゲート
弁19を閉方向に付勢するスプリングを収納したスプリ
ング室を形成している。 【0015】上記ウエストゲート弁制御用デューティソ
レノイド弁21は、上記レゾネータチャンバ14と上記
吸気管6の上記ターボチャージャ18のコンプレッサハ
ウジング下流とを連通する通路に介装されており、EC
U50から出力される制御信号のデューティ比に応じ
て、上記レゾネータチャンバ14側の圧力と上記コンプ
レッサハウジング下流側の圧力とを調圧し、上記ウエス
トゲート弁作動用アクチュエータ20の圧力室に供給す
る。 【0016】すなわち、上記ECU50によって上記ウ
エストゲート弁制御用デューティソレノイド弁21を制
御し、上記ウエストゲート弁作動用アクチュエータ20
を作動させて上記ウエストゲート弁19による排気ガス
リリーフを調整することにより、上記ターボチャージャ
18による過給圧を制御するようになっている。 【0017】また、上記インテークマニホルド3に絶対
圧センサ22が通路23を介して連通され、この通路2
3に、上記絶対圧センサ22と上記インテークマニホル
ド3あるいは大気とを選択的に連通する吸気管圧力/大
気圧切換ソレノイド弁24が介装されている。 【0018】さらに、上記インテークマニホルド3の各
気筒の各吸気ポート2aの直上流側にインジェクタ25
が臨まされ、また、上記シリンダヘッド2の各気筒毎
に、その先端を燃焼室に露呈する点火プラグ26aが取
付けられ、この点火プラグ26aに連設する点火コイル
26bにイグナイタ27が接続されている。 【0019】上記インジェクタ25には、燃料タンク2
8内に設けたインタンク式の燃料ポンプ29から燃料フ
ィルタ30を経て燃料が圧送され、プレッシャレギュレ
ータ31にて調圧される。 【0020】また、上記吸気管6の上記エアークリーナ
7の直下流に、ホットワイヤ式あるいはホットフィルム
式などの吸入空気量センサ32が介装され、上記スロッ
トルバルブ5aに、スロットル開度センサ33aとアイ
ドルスイッチ33bとを内蔵したスロットルセンサ33
が連設されている。 【0021】さらに、上記エンジン1のシリンダブロッ
ク1aにノックセンサ34が取付けられるとともに、こ
のシリンダブロック1aの左右両バンクを連通する冷却
水通路35に冷却水温センサ36が臨まされ、上記排気
管10の上記エキゾーストマニホルド9の集合部にO2
センサ37が臨まされている。 【0022】また、上記シリンダブロック1aに支承さ
れたクランクシャフト1bにクランクロータ38が軸着
され、このクランクロータ38の外周に、クランク角セ
ンサ39が対設され、さらに、上記エンジン1のカムシ
ャフト1cに連設するカムロータ40に、気筒判別用の
カム角センサ41が対設されて、エンジンのクランク位
置検出信号がECU50に入力されるようになってい
る。 【0023】尚、上記クランク角センサ39及び上記カ
ム角センサ41は、電磁ピックアップなどの磁気センサ
あるいは光センサなどから構成される。 【0024】上記クランクロータ38は、図8に示すよ
うに、その外周に突起38a,38b,38cが形成さ
れ、これらの各突起38a,38b,38cが、各気筒
(#1,#2と#3,#4)の圧縮上死点前(BTD
C)θ1,θ2,θ3 の位置に形成されており、本実施例に
おいては、θ1 =97°CA、θ2 =65°CA、θ3
=10°CAである。 【0025】上記クランクロータ38の各突起は、上記
クランク角センサ39によって検出され、BTDC97
°,65°,10°のクランク位置検出信号がエンジン
1/2回転毎(180°CA毎)に出力される。そし
て、各信号の入力間隔時間がタイマによって計時され、
エンジン回転数が算出される。 【0026】尚、突起38bは、点火時期設定の際の基
準クランク角となり、また、突起38cは、始動時噴射
開始時期の基準クランク角となるとともに始動時の固定
点火時期を示すクランク角となる。 【0027】また、図9に示すように、上記カムロータ
40の外周には、気筒判別用の突起40a,40b,4
0cが形成され、突起40aが#3,#4気筒の圧縮上
死点後(ATDC)θ4 の位置に形成され、突起40b
が3個の突起で構成されて最初の突起が#1気筒のAT
DCθ5 の位置に形成されている。さらに、突起40c
が2個の突起で形成され、最初の突起が#2気筒のAT
CDθ6 の位置に形成されている。本実施例において
は、θ4 =20°CA、θ5 =5°CA、θ6 =20°
CAである。 【0028】そして、上記カムロータ40の各突起が上
記カム角センサ41によって検出され、各気筒の燃焼行
程順を#1→#3→#2→#4とした場合、この燃焼行
程順と、上記カム角センサ41の検出信号をカウンタに
よって計数した値とのパターンに基づいて、気筒判別が
なされる。 【0029】一方、図10に示すように、ECU50
は、燃料噴射制御、点火時期制御などを行なうメインコ
ンピュータ51と、ノック検出処理を行なう専用のサブ
コンピュータ52との2つのコンピュータを中心として
構成され、各部に所定の安定化電源を供給する定電圧回
路53や各種の周辺回路が組込まれている。 【0030】上記定電圧回路53は、ECUリレー54
のリレー接点を介してバッテリ55に接続され、このバ
ッテリ55に、上記ECUリレー54のリレーコイルが
イグニッションスイッチ56を介して接続されている。
また、上記バッテリ55には、上記定電圧回路53が直
接接続され、さらに、燃料ポンプリレー57のリレー接
点を介して燃料ポンプ29が接続されている。 【0031】すなわち、上記定電圧回路53は、上記イ
グニッションスイッチ56がONされ、上記ECUリレ
ー54のリレー接点が閉となったとき、制御用電源を供
給し、また、上記イグニッションスイッチ56がOFF
されたとき、バックアップ用の電源を供給する。 【0032】上記メインコンピュータ51は、CPU5
8(以下、メインCPU58と称する)、ROM59、
RAM60、上記イグニッションスイッチ56がOFF
されたときにも上記定電圧回路53からバックアップ電
源が供給されてデータを保持するバックアップRAM6
1、カウンタ・タイマ群62、シリアル通信インターフ
ェースであるSCI63、及び、I/Oインターフェー
ス64がバスライン65を介して接続されたマイクロコ
ンピュータである。 【0033】尚、上記カウンタ・タイマ群62は、フリ
ーランカウンタ、カム角センサ検出信号の入力計数用カ
ウンタなどの各種カウンタ、燃料噴射タイマ、点火タイ
マ、0.5msec毎の定期割込みを発生させるための
定期割込みタイマ、クランク角センサによるクランク位
置検出信号の入力間隔計時用タイマ、及び、システム異
常監視用のウオッチドッグタイマなどの各種タイマを便
宜上総称するものであり、上記メインコンピュータ51
においては、その他、各種のソフトウエアカウンタ・タ
イマが用いられる。 【0034】また、上記サブコンピュータ52も、上記
メインコンピュータ51と同様、CPU71(以下、サ
ブCPU71と称する)、ROM72、RAM73、カ
ウンタ・タイマ群74、SCI75、及び、I/Oイン
ターフェース76がバスライン77を介して接続された
マイクロコンピュータであり、上記メインコンピュータ
51とサブコンピュータ52とは、上記SCI63,7
5を介してシリアル通信ラインにより互いに接続されて
いる。 【0035】上記メインコンピュータ51のI/Oイン
ターフェース64には、入力ポートに、吸入空気量セン
サ32、スロットル開度センサ33a、水温センサ3
6、O2 センサ37、絶対圧センサ22、車速センサ4
2、及び、バッテリ55が、8チャンネル入力のA/D
変換器66を介して接続されるとともに、アイドルスイ
ッチ33b、クランク角センサ39、カム角センサ41
が接続されており、さらに、始動状態を検出するために
スタータスイッチ43が接続されている。 【0036】尚、本実施例においては、上記A/D変換
器66は、7チャンネル分の入力が使用され、残りの1
チャンネルは予備となっている。 【0037】また、上記I/Oインターフェース64の
出力ポートには、イグナイタ27が接続され、さらに、
駆動回路67を介して、ISCV16、インジェクタ2
5、燃料ポンプリレー57のリレーコイル、および、ウ
エストゲート弁制御用デューティソレノイド弁21、吸
気管圧力/大気圧切換ソレノイド弁24が接続されてい
る。 【0038】一方、上記サブコンピュータ52のI/O
インターフェース76は、入力ポートに、クランク角セ
ンサ39、カム角センサ41が接続されるとともに、A
/D変換器78、周波数フィルタ79、アンプ80を介
してノックセンサ34が接続されており、上記ノックセ
ンサ34からのノック検出信号が上記アンプ80で所定
のレベルに増幅された後に上記周波数フィルタ79によ
り必要な周波数成分が抽出され、上記A/D変換器78
にてデジタル信号に変換されて入力されるようになって
いる。 【0039】上記メインコンピュータ51では、各セン
サ類からの検出信号を処理し、燃料噴射パルス幅、点火
時期などを演算する。すなわち、吸入空気量センサ32
の出力信号から吸入空気量を算出し、RAM60及びバ
ックアップRAM61に記憶されている各種データに基
づき、吸入空気量に見合った燃料噴射量を演算し、ま
た、点火時期などを算出する。 【0040】そして、上記燃料噴射量に相応する駆動パ
ルス幅信号を、駆動回路67を介して所定のタイミング
で該当気筒のインジェクタ25に出力して燃料を噴射
し、また、所定のタイミングでイグナイタ27に点火信
号を出力し、該当気筒の点火プラグ26aを点火する。 【0041】その結果、該当気筒に供給された混合気が
爆発燃焼し、エキゾーストマニホルド9の集合部に臨ま
されたO2 センサ37により排気ガス中の酸素濃度が検
出され、この検出信号が波形整形された後、上記メイン
CPU58で基準電圧(スライスレベル)と比較され、
エンジンの空燃比状態が目標空燃比に対し、リッチ側に
あるか、リーン側にあるかが判別され、空燃比が目標空
燃比となるようフィードバック制御される。 【0042】一方、上記サブコンピュータ52では、エ
ンジン回転数とエンジン負荷とに基づいてノックセンサ
34からの信号のサンプル区間を設定し、このサンプル
区間でノックセンサ34からの信号を高速にA/D変換
して振動波形を忠実にデジタルデータに変換し、ノック
発生の有無を判定する。 【0043】上記サブコンピュータ52のI/Oインタ
ーフェース76の出力ポートは、上記メインコンピュー
タ51のI/Oインターフェース64の入力ポートに接
続されており、上記サブコンピュータ52でのノック判
定結果がI/Oインターフェース76に出力される。そ
して、上記メインコンピュータ51では、上記サブコン
ピュータ52からノック発生有りの判定結果が出力され
ると、SCI63を介してシリアル通信ラインよりノッ
クデータを読込み、このノックデータに基づいて直ちに
該当気筒の点火時期を遅らせ、ノックを回避する。 【0044】このようなエンジン制御において、上記メ
インコンピュータ51では、各センサ類からの信号入力
処理、エンジン回転数算出、吸入空気量算出、燃料噴射
量算出、点火時期算出といった各項目毎の各種プログラ
ムが、一つのOSの管理下で効率的に実行される。この
OSは、車輌制御のための各種マネジメント機能、及
び、このマネジメント機能に密着した内部ストラテジー
を有し、各種ジョブを体系的に結合する。 【0045】上記OSのマネジメント機能としては、 (1-1)ジョブの優先処理 (1ー2)セクション定義による各ジョブの分割ファイル対
応 (1-3)スタックの使用状況モニタ機能 (1-4)異常割込み動作のモニタ機能 (1-5)ジョブ毎に固有の制約を作らない標準マップ・標
準ワークメモリ設定 などの機能があり、制御ストラテジーの開発環境を向上
させるとともに、限られたCPU能力を最大限に発揮さ
せ、デジタル制御理論の基本である等時間間隔処理を可
能な限り達成することができる。 【0046】等時間間隔処理としては、0.5ms毎の
定期割込みを基本として、2,4,10,50,250
ms毎の5種類の等間隔割込みジョブが用意されてお
り、また、エンジン回転に同期した処理として、クラン
ク位置検出信号入力により即割込み実行される高優先ク
ランク同期ジョブと、より優先順位が高い他のジョブが
ないときにクランク位置検出信号入力により割込み実行
される比較的緊急度の低い低優先クランク同期ジョブと
が用意されている。 【0047】これらの各ジョブには、高優先クランク同
期ジョブ>2msジョブ>4msジョブ>10msジョ
ブ>低優先クランク同期ジョブ>50msジョブ>25
0msジョブの順で、7〜1の優先レベルが高位側から
低位側に向かって付けられており、図4に示すように、
高速ジョブに対し低速ジョブが分割して処理されるとと
もに、各ジョブの多重待ち処理が行なわれる。 【0048】また、上記OSの下で働く各プログラム
は、機能別の領域毎に順番に配列されており、各機能毎
にセクション宣言によって名前が付けられている。上記
OS下で働く数々のストラテジーファイル(ユーザー側
ファイル)は、各機能毎にOSと同じ名前のセクション
宣言を用いることにより、開発段階において、例えば、
初期値設定処理、10ms毎の処理、バックグランド処
理等を別々のファイルに記述しても、各フィルがリンク
されたとき、同じ処理は連続した1つの領域の集めら
れ、OSと融合し一体となって動作する。 【0049】各ストラテジーファイル側で使用する主な
セクション領域は、 ○変数宣言領域 ○自己ファイル名、ファイル作成時の自動記録領域 ○セッティング領域データ ○高優先クランク同期ジョブ領域 ○2msジョブ領域 ○4msジョブ領域 ○10msジョブ領域 ○低優先クランク同期ジョブ領域 ○50msジョブ領域 ○250msジョブ領域 ○リセット時初期化ジョブ領域 ○エンスト時初期化ジョブ領域 ○バックグランドジョブ領域 ○プログラム本体の領域 であり、機能毎にファイルを分割してプログラム開発が
可能になるとともに、プログラムの構造化記述を可能に
する。 【0050】また、上記OSには、以上のマネジメント
機能に密着した内部ストラテジーとして、 (2-1)A/D変換処理 (2-2)クランク位置に係る各種情報の算出 (2-3)デバッグ用シミュレーション機能(エンジン回転
及びA/D変換) (2-4)点火タイマのセット (2-5)燃料噴射タイマのセット などの機能を備えており、さらに、これらの機能に係る
各種サービスルーチンが各ジョブ中に用意されている。 【0051】従来、このような機能は各ジョブレベルで
達成するようになっていたが、本システムにおいては、
すべてOS側に用意され、OS側で処理したA/D変換
結果、クランク位置情報、エンジン回転数などに基づい
て、ユーザー側の各ジョブで、燃料噴射量、点火時期な
どを設定すると、これらの指示値がOSによって燃料噴
射タイマ、点火タイマにセットされるようになってい
る。 【0052】次に、上記OSのデバッグ用シミュレーシ
ョン機能のうち、本願のエンジン回転シミュレーション
に係る処理を、図1〜図3のフローチャートに基づいて
説明する。尚、サブコンピュータ52はノック検出処理
専用のコンピュータであるため、その動作説明を省略す
る。 【0053】まず、イグニッションスイッチ56がON
されてシステムに電源が投入されると、図2に示すリセ
ット割込みが起動する。このリセット割込みは、システ
ム投入時のリセット、あるいは、内部演算において0に
よる除算を実行した場合や、無限ループが発生した場合
など、正常時には発生しない要因によっても起動され、
ステップS100で、バックグランド処理のワークエリアを
設定すると、ステップS101,S102で、スタックポインタ
の設定、異常監視用のウオッチドッグタイマの設定を行
なう。 【0054】次に、ステップS103,S104で、I/Oイン
ターフェース64のポート初期化と、カウンタ・タイマ
群62の初期化とを行ない、ステップS105で、割込み優
先順位をセットすると、ステップS106で、SCI63を
初期化し、シリアル通信を初期化する。 【0055】その後、ステップS107で、RAM60のク
リアRAMエリアをクリアすると、ステップS108で、各
変数の初期値を設定し、次のステップS109で、カウンタ
・タイマ群62中の燃料噴射タイマを噴射幅0で起動す
ることにより燃料噴射終了状態とし、次の燃料噴射開始
に備える。 【0056】ついで、ステップS110で、定期割込みタイ
マを起動し、ステップS111で、クランク同期割込みを許
可すると、図1に示すステップS200以降のラベルBGJ
OBへ進む。このラベルBGJOB以降は、0.5ms
毎の定期割込み、クランク同期割込み、その他、各レベ
ルのジョブ、サブルーチンが実行されていない状態での
バックグランド処理であり、スタックの使用状況、デバ
ック用シミュレーションモードへの移行を監視しながら
バックグランドジョブを実行する。 【0057】まず、ステップS200では、スタックポイン
タSTACKCの示すアドレスの内容が、以前に書き込
んだ値、例えば255であるかか否かを判別し、その値
が255であるときには、ステップS203へジャンプし、
255でないときには、ステップS201へ進んで、スタッ
クポインタSTACKCを1減らす。 【0058】次に、ステップS202へ進み、スタックポイ
ンタSTACKCの示すアドレスに255をストアし、
後述するステップS203〜ステップS210の処理を経て上記
ステップS200へ戻るループを繰返す。 【0059】すなわち、バックグランドジョブにおいて
書き込んだ所定の値が保存されているアドレスを、スタ
ックの底から上に向かって調べてゆくことにより、この
バックグランドジョブの上で実行される各割込み処理に
よるスタックエリアの使用状況を調べ、スタックオーバ
ーフローなどの異常発生を監視するのである。 【0060】次に、ステップS203では、エンジン回転の
ドリームモード(クランク位置検出信号・カム角センサ
検出信号ドリームモード)に対する指示値が0か否かを
判別する。このドリームモードは、エンジン系のハード
ウエアと完全に分離した状態でソフトウエアの実行デバ
ッグを行なうシミュレーションモードであり、上記クラ
ンク位置検出信号・カム角センサ検出信号ドリームモー
ドの他、A/D変換結果のシミュレーションモードであ
るA/D変換ドリームモードの機能がOS側に備えられ
ている。 【0061】上記クランク位置検出信号・カム角センサ
検出信号ドリームモードでは、指示値であるDRM_N
Eにゼロ以外の数値が書き込まれると、この数値の50
倍のエンジン回転数(rpm)でエンジンが運転された
状態に相当する擬似的な周期で、クランク位置検出信号
の入力間隔計時用タイマのセット、カム角センサ検出信
号の入力計数用カウンタのセット、クランク同期割込み
の発生が行なわれる。この疑似周期の発生には、通常の
システム実働状態では未使用のタイマTB3が使用され
る。 【0062】そして、上記ステップS203で、指示値が0
のときには、クランク位置検出信号・カム角センサ検出
信号ドリームモードへの移行が指示されておらず通常の
状態であるため、上記ステップS203からステップS204へ
進んで、上記タイマTB3による割込みを禁止すると、
ステップS205で、上記タイマTB3の値をFFFFのリ
セット状態とし、ステップS210へ進む。 【0063】ステップS210は、バックグランドジョブの
セクション領域における処理であり、各制御ストラテジ
ー毎のファイルにおいてバックグランドとしてセクショ
ン宣言されたジョブがリンクされていれば、その処理を
実行して上記ステップS200へ戻って前述の過程を繰返
し、このバックグランドジョブの上で、0.5ms毎の
定期割込みと、エンジン1回転に6回のクランク同期割
込みとにより、7レベルのジョブが優先処理される。 【0064】一方、上記ステップS203で、指示値が0で
ないときには、クランク位置検出信号・カム角センサ検
出信号ドリームモードへの移行が指示されているため、
上記ステップS203からステップS206へ分岐し、上記タイ
マTB3の値がFFFFであるか否かを調べる。 【0065】上記ステップS206で、上記タイマTB3の
値がFFFFでないときには、既にクランク位置検出信
号・カム角センサ検出信号ドリームモードへ移行して上
記タイマTB3がスタートしている状態であるため、ス
テップS210へ分岐し、上記タイマTB3の値がFFFF
のときには、ステップS207で、タイマTB3の値をFF
FFのリセット状態からFFFEとしてステップS208へ
進む。 【0066】ステップS208では、タイマTB3による割
込みを許可し、ステップS209でタイマTB3をスタート
させると、前述のステップS210へ進んで、バックグラン
ドジョブセクション領域の処理を実行し、このバックグ
ランドジョブの上で、タイマTB3割込みによって、ク
ランク位置検出信号の入力間隔計時用タイマ及びカム角
センサ検出信号の入力計数用カウンタのセットやクラン
ク同期割込みを発生させるためのデバッグ用時間周期を
発生させることにより、クランク位置検出信号・カム角
センサ検出信号ドリームモードを実行する。 【0067】次に、図3のTB3割込み処理について説
明する。このTB3割込みでは、まず、ステップS300
で、クランク位置検出信号入力をソフトウエア的にシミ
ュレートするためのクランク位置検出信号入力シミュレ
ーションテーブルTBLDRN、及び、カム角センサ検
出信号入力をソフトウエア的にシミュレートするための
カム角センサ検出信号入力シミュレーションテーブルT
BLDRCを参照する際のポインタである状態カウンタ
をカウントアップする。 【0068】上記クランク位置検出信号入力シミュレー
ションテーブルTBLDRNには、図5に示すように、
エンジン回転数100rpm相当のクランク位置検出信
号入力間隔データDRN1,DRN2,DRN3が4周
期分配置されており、データDRN1がクランクロータ
38の突起38a〜38b間(32°相当)の時間経過
データ、データDRN2がクランクロータ38の突起3
8b〜38c間(55°相当)の時間経過データ、デー
タDRN3がクランクロータ38の突起38c〜38a
間(93°相当)の時間経過データを示し、4周期分の
データで720°CAに対応するようになっている。 【0069】また、上記カム角センサ検出信号入力シミ
ュレーションテーブルTBLDRCには、図6に示すよ
うに、各クランク位置検出信号間で入力されるカム角セ
ンサ検出信号の数を示すデータDRC1,DRC2,D
RC3が、データ“0”の間に配置されており、データ
DRC1がカムロータ40の突起40aによるカム角セ
ンサ検出信号の入力数、データDRC2がカムロータ4
0の突起40bによるカム角センサ検出信号の入力数、
DRC3がカムロータ40の突起40cによるカム角セ
ンサ検出信号の入力数を示し、本実施例では、DRC1
=1、DRC2=3、DRC3=2であり、720°C
A分に対応するデータ列となっている。 【0070】次いで、上記ステップS300からステップS3
01へ進むと、上記クランク位置検出信号入力シミュレー
ションテーブルTBLDRNから得られるエンジン回転
数100rpm相当のクランク位置検出信号入力間隔
を、クランク位置検出信号・カム角センサ検出信号ドリ
ームモードの指示値DRM_NEを50倍した指示回転
数で割算して2倍し、指示回転数に対応するクランク位
置検出信号の入力間隔時間を算出する。 【0071】そして、上記ステップS301で算出したクラ
ンク位置検出信号入力間隔の時間データを、ステップS3
02,S303で、それぞれタイマTB3、クランク位置検出
信号の入力間隔計時用タイマにセットすると、ステップ
S304で、カム角センサ検出信号入力数のシミュレーショ
ン値をカム角センサ検出信号の入力計数用カウンタにセ
ットした後、ステップS305でタイマTB3をスタートさ
せ、ステップS306でクランク同期のソフトウエア割込み
をセットして処理を終了する。 【0072】これにより、希望するエンジン回転数に対
応する時間周期で、クランク位置検出信号の疑似入力状
態が作成されてクランク同期割込みが起動され、実際に
エンジンを運転しなくとも、エンジン回転同期の処理が
実行可能となってエンジン回転に係る各種制御パラメー
タを算出することができ、例えば、その他のセンサ類か
らの信号を外部から入力するなどしてデバッグの際の効
率を大幅に向上することができる。 【0073】尚、センサ類からのアナログ信号は、A/
D変換のシミュレーション機能を使用することにより外
部入力なしでシミュレートすることができ、実際にエン
ジンを運転しなくとも、あたかもエンジンが運転されて
いるかのようにシステムを動作させることができる。 【0074】 【発明の効果】以上説明したように本発明によれば、外
部から所定の変数にシミュレートするエンジン回転数を
指示する値を書き込むと、エンジン回転のシミュレーシ
ョンモードへ移行し、指示されたエンジン回転数に対応
する時間周期でクランク位置検出信号の疑似入力状態が
作成されてクランク同期割込みが起動されるので、実際
にエンジンを運転しなくとも、このクランク同期割込み
と一定時間毎の定期割込みとにより、バックグランドの
ジョブの上で、エンジン回転同期の処理が実行可能とな
る。従って、実際にエンジンを運転しなくとも、エンジ
ン回転同期の処理を実行可能とすることができ、エンジ
ン回転に係る各種制御パラメータを算出することができ
て、システムのデバック効率を向上することができる。
【図面の簡単な説明】
【図1】バックグランドジョブのフローチャート
【図2】リセット割込み処理のフローチャート
【図3】TB3割込み処理のフローチャート
【図4】ジョブの実行状態を示す説明図
【図5】クランク位置検出信号入力シミュレーションテ
ーブルの説明図 【図6】カム角センサ検出信号入力シミュレーションテ
ーブルの説明図 【図7】エンジン系の概略構成図 【図8】クランクロータとクランク角センサの正面図 【図9】カムロータとカム角センサの正面図 【図10】電子制御系の回路構成図 【符号の説明】 50 ECU DRM_NE 変数
ーブルの説明図 【図6】カム角センサ検出信号入力シミュレーションテ
ーブルの説明図 【図7】エンジン系の概略構成図 【図8】クランクロータとクランク角センサの正面図 【図9】カムロータとカム角センサの正面図 【図10】電子制御系の回路構成図 【符号の説明】 50 ECU DRM_NE 変数
Claims (1)
- (57)【特許請求の範囲】 【請求項1】バックグランドジョブの上で、一定時間毎
に起動する定期割込みとクランク位置検出信号によって
起動するクランク同期割込みとにより、複数のジョブを
実行するエンジン制御システムであって、 上記バックグランドジョブ中で、外部書込み可能な所定
の変数を参照してシミュレーションモードへの移行が指
示されているか否かを調べ、上記変数としてエンジン回転のシミュレーション値を指
示する値が書き込まれており シミュレーションモードへ
の移行が指示されている場合、上記変数の値によって指
示されるエンジン回転数に対応する時間周期を発生し、
この時間周期で上記クランク位置検出信号の疑似信号入
力状態を作成して上記クランク同期割込みを起動するこ
とを特徴とするエンジン回転のシミュレーション方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00838993A JP3442807B2 (ja) | 1993-01-21 | 1993-01-21 | エンジン回転のシミュレーション方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00838993A JP3442807B2 (ja) | 1993-01-21 | 1993-01-21 | エンジン回転のシミュレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06213772A JPH06213772A (ja) | 1994-08-05 |
JP3442807B2 true JP3442807B2 (ja) | 2003-09-02 |
Family
ID=11691855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00838993A Expired - Fee Related JP3442807B2 (ja) | 1993-01-21 | 1993-01-21 | エンジン回転のシミュレーション方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3442807B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6771272B2 (ja) * | 2015-07-01 | 2020-10-21 | 日立オートモティブシステムズ株式会社 | 車載電子制御装置及びスタック使用方法 |
-
1993
- 1993-01-21 JP JP00838993A patent/JP3442807B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06213772A (ja) | 1994-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001115865A (ja) | 内燃機関の制御装置 | |
JPH0250303B2 (ja) | ||
CN103946521A (zh) | 内燃机的燃料切断控制装置及燃料切断控制方法 | |
JPH0676637U (ja) | ディーゼル式内燃機関の燃料噴射用電子制御装置 | |
JP3442807B2 (ja) | エンジン回転のシミュレーション方法 | |
US4690122A (en) | Ignition control system for internal combustion engines | |
JP3337149B2 (ja) | エンジンのクランク位置判別方法 | |
JP3617847B2 (ja) | ジョブの統合方法 | |
JP3442806B2 (ja) | ジョブの優先処理方法 | |
JPH06221218A (ja) | 車輌制御用コンピュータの異常発生時処理方法 | |
JPH10103206A (ja) | リーンバーンエンジンの点火時期制御装置 | |
JP3324818B2 (ja) | エンジンのクランク位置情報利用方法 | |
US7324890B2 (en) | Ignition timing control apparatus for internal combustion engine | |
JP3686437B2 (ja) | エンジンの空燃比制御方法 | |
JP3691092B2 (ja) | エンジンの空燃比制御方法 | |
JP3645576B2 (ja) | エンジンの回転時間算出方法 | |
JPH06200819A (ja) | マイクロコンピュータのワークエリアの設定方法 | |
JP3621731B2 (ja) | エンジンの空燃比制御方法 | |
JPH06249054A (ja) | 車輌制御用コンピュータにおけるスイッチ入力データの読込み方法 | |
JPH0537000Y2 (ja) | ||
JPH10213055A (ja) | エンジンの点火時期制御装置 | |
JP3384498B2 (ja) | エンジンの点火制御における処理遅れ解消方法 | |
JPH08284710A (ja) | エンジンの空燃比制御方法 | |
JP3455243B2 (ja) | アナログ/デジタル変換結果の利用方法 | |
JPH01211627A (ja) | エンジンの制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |