JP4532450B2 - エンジン制御用データの処理装置及びエンジン制御装置 - Google Patents

エンジン制御用データの処理装置及びエンジン制御装置 Download PDF

Info

Publication number
JP4532450B2
JP4532450B2 JP2006241580A JP2006241580A JP4532450B2 JP 4532450 B2 JP4532450 B2 JP 4532450B2 JP 2006241580 A JP2006241580 A JP 2006241580A JP 2006241580 A JP2006241580 A JP 2006241580A JP 4532450 B2 JP4532450 B2 JP 4532450B2
Authority
JP
Japan
Prior art keywords
data
time
engine control
memory
value
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
JP2006241580A
Other languages
English (en)
Other versions
JP2008063992A (ja
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
Soken Inc
Original Assignee
Denso Corp
Nippon Soken Inc
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, Nippon Soken Inc filed Critical Denso Corp
Priority to JP2006241580A priority Critical patent/JP4532450B2/ja
Priority to EP07017406A priority patent/EP1898078B1/en
Priority to US11/896,940 priority patent/US7444228B2/en
Publication of JP2008063992A publication Critical patent/JP2008063992A/ja
Application granted granted Critical
Publication of JP4532450B2 publication Critical patent/JP4532450B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • F02D41/266Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor the computer being backed-up or assisted by another circuit, e.g. analogue
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D35/00Controlling engines, dependent on conditions exterior or interior to engines, not otherwise provided for
    • F02D35/02Controlling engines, dependent on conditions exterior or interior to engines, not otherwise provided for on interior conditions
    • F02D35/023Controlling engines, dependent on conditions exterior or interior to engines, not otherwise provided for on interior conditions by determining the cylinder pressure
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/2406Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using essentially read only memories
    • F02D41/2409Addressing techniques specially adapted therefor
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • F02D41/28Interface circuits
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • F02D41/28Interface circuits
    • F02D2041/281Interface circuits between sensors and control unit
    • F02D2041/285Interface circuits between sensors and control unit the sensor having a signal processing unit external to the engine control unit
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D2250/00Engine control related to specific problems or objectives
    • F02D2250/12Timing of calculation, i.e. specific timing aspects when calculation or updating of engine parameter is performed

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Emergency Protection Circuit Devices (AREA)

Description

本発明は、エンジン制御用データを処理する技術に関する。
従来より、エンジン制御の分野においては、エンジン側に気筒(シリンダ)内の圧力を検出するための気筒内圧センサ(Cylinder Pressure Sensor:燃焼室圧センサとも呼ばれる)を設け、そのセンサからの信号に基づき点火時期や空燃比を制御することが知られている(例えば、特許文献1参照)。
また例えば、ディーゼルエンジンにおいては、気筒内圧センサからの信号(以下、CPS信号ともいう)に基づき燃焼時期や燃焼状態を予測して、燃料の噴射時期や噴射量をフィードバック制御することにより、高出力、低エミッションのエンジンが実現可能になると考えられている。更に、CPS信号は、失火検出やノック検出など、色々な状態検出のために用いることができる。
ところで、CPS信号をエンジンの制御に用いる場合には、そのCPS信号の波形をトレースするような細かいタイミングでA/D変換して信号値を得ることが望ましい。
そこで、例えば、1°CA毎(エンジンのクランク軸が1°回転する毎)程度の細かいタイミングでCPS信号の信号値を取り込むようにすることが考えられる。尚、「CA」とは、クランクアングルを意味している。
一方、エンジン制御装置では、エンジンのクランク軸の回転に同期して燃料噴射弁等のアクチュエータを作動させるが、例えば特許文献2に記載されているように、クランクセンサより出力されてクランク軸が所定角度回転する毎(一般には10°CA毎)にパルスエッジが発生する回転信号(クランク信号やNE信号とも呼ばれる)から、その回転信号を逓倍した逓倍クロック(詳しくは、周期が回転信号の周期の逓倍数分の1であるクロック)を生成すると共に、その逓倍クロックの時間間隔で、カウント値がクランク角度を表す角度カウンタをカウントアップさせ、その角度カウンタのカウント値に基づきエンジン回転に同期した制御を行うようにしたものがある。このようにすることで、元の回転信号よりも細かい「1/逓倍数」の分解能でクランク角度を把握できるようにしているのである。
また、上記逓倍クロックを生成するための手段は、回転信号に上記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔(つまり、所定角度間隔)毎に、その1パルス間隔を計測するエッジ時間計測カウンタと、回転信号に特定エッジが発生すると上記エッジ時間計測カウンタによる今回の計測値を逓倍数で除算した値がセットされるエッジ時間記憶レジスタと、そのエッジ時間記憶レジスタに記憶された時間毎に、逓倍クロックとしてのパルスを発生させる逓倍カウンタとから構成される。つまり、今回計測した回転信号の1パルス間隔に基づいて、回転信号に次の特定エッジが発生するまでの逓倍クロックの周期を決定している。
そして、エンジン制御装置において、CPS信号を例えば1°CA毎といった細かいタイミングで取り込んでエンジンの制御に用いようとした場合、そのCPS信号の取り込みタイミングは、上記のように回転信号を逓倍した逓倍クロックでカウントアップされる角度カウンタのカウント値に基づいて発生させることが考えられる。例えば、角度カウンタの値が1°CAに相当する値だけ進む毎に、CPS信号をA/D変換してそのA/D変換値のデータ(以下単に、A/D変換値ともいう)をメモリに記憶する、といった処理を行えば良い。
ところが、このような逓倍クロックを利用した手法では、エンジンの回転変動に弱くタイミングのばらつきが懸念される。つまり、逓倍クロックの周期は回転信号の前回の1パルス間隔時間から予測算出されるものであるため、エンジンの回転速度が急に変化した場合には、角度カウンタの値に誤差が生じることとなり、その結果、取り込まれるCPS信号の各A/D変換値は、クランク軸が一定の微小角度回転したとき毎の本当のデータとはならない。
そこで、本出願人による特許文献3では、CPS信号のA/D変換値を収集すべきデータ収集期間において、回転信号の1パルス間隔時間の最小値よりも短い一定時間毎にCPS信号をA/D変換して、その各A/D変換値をメモリに順次記憶すると共に、A/D変換が最初に行われた開始時刻と、回転信号に特定エッジが発生した各時刻とをそれぞれ記憶しておき、データ収集期間が終了した後、上記開始時刻と、特定エッジが発生した各時刻と、A/D変換間隔である上記一定時間と、メモリに記憶された一定時間毎のA/D変換値とを用いて、クランク軸が上記所定角度よりも小さい一定角度回転したとき毎のA/D変換値を求める、といった構成を提案している。そして、この構成によれば、回転信号に特定エッジが発生する角度間隔よりも小さい一定クランク角度毎のCPS信号の各信号値が正確に得られ、そのような一定クランク角度毎のCPS信号値が必要なエンジン制御の精度を向上させることができる。
また更に、近年の自動車制御用マイコンには、CPUによるソフトウェア処理と並行して動作可能なモジュールであって、入力信号のA/D変換を一定時間毎に行うA/D変換器と、そのA/D変換器による一定時間毎のA/D変換値に対してディジタルフィルタ処理を行うフィルタ部と、そのフィルタ部から出力されるフィルタ後のA/D変換値をメモリに順次DMA(Direct Memory Access)転送するDMA転送部(DMAコントローラ)とを有したモジュールを備えているものがある。
そして、このようなマイコンを用いて特許文献3の技術を実現すれば、CPS信号の一定時間毎のA/D変換と、その各A/D変換値のメモリへの転送とを、CPUの処理とは別に実施することができるため、ソフトウェアの処理負荷を低減することができる。
尚、この場合、もしディジタルフィルタ処理を行わないデータをメモリに記憶するのであれば、例えば、A/D変換器から出力されるのと同じデータがそのままフィルタ部から出力されるように、そのフィルタ部のフィルタ係数を設定しておけば良い。また、フィルタ部とDMA転送部とを複数組(複数チャンネル分)有した構成のマイコンもあり、このようなマイコンによれば、複数のフィルタ部をそれぞれ通過した一定時間毎のデータからなる各データ列を、その各フィルタ部に対応するDMA転送部によって同時にメモリへ転送することができる。また、フィルタ部が内蔵されず、A/D変換器からのデータが、そのままDMA転送部によってメモリへ転送される構成のマイコンも考えられる。
特開平9−273437号公報 特開2001−200747号公報 特開2005−220796号公報
ところで、マイコンに内蔵されるDMA転送部には、連続して転送可能なデータの数に上限値が定められている場合が多い。
そして、そのような制限のあるDMA転送部を備えたマイコンによって、例えば特許文献3の技術を実現しようとした場合に、もし、DMA転送部が連続して転送可能なデータ数の上限値よりもデータ収集期間中に収集されるべきデータの総数の方が多ければ、必要な全てのデータをメモリに記憶させることができず、延いては、一定クランク角度毎のCPS信号の各値を必要な分だけ求めることができなくなってしまう。
そこで、本発明は、データ収集期間における一定時間毎のエンジン制御用データを漏れなくメモリに記憶させることのできる処理装置の提供を目的としている。
上記目的を達成するためになされた請求項1に記載のエンジン制御用データの処理装置は、車両のエンジンを制御するために用いられる一定時間毎のエンジン制御用データを順次出力するデータ出力手段と、そのデータ出力手段からのデータを記憶するためのメモリと、データ出力手段からのデータを前記メモリに順次転送して記憶させる機能を有すると共に、互いに並行して動作可能であり、更に、起動してから連続して転送可能なデータの数に上限値が定められた複数のデータ転送手段とを備えている。
そして、この処理装置では、制御手段が、データを収集すべき期間(以下、データ収集期間という)において、複数のデータ転送手段の全てがデータ転送動作をしていない期間が生じないように、その複数のデータ転送手段を順次起動することにより、データ出力手段からのデータを前記メモリに記憶させる。
つまり、請求項1の処理装置では、連続して転送可能なデータ数に上限値がある複数のデータ転送手段を、動作期間を重複させながら順次起動することで、データ収集期間中にデータ出力手段から出力される一定時間毎のデータをメモリに記憶させるようにしている。このため、データ収集期間においてデータ出力手段から出力される一定時間毎のデータを、漏れなくメモリに記憶させることができるようになる。尚、データ転送手段は少なくとも2つあれば良い。
ところで、制御手段は、具体的には請求項2に記載のように、データ収集期間の開始タイミングが到来すると、複数のデータ転送手段のうちの何れかを起動し、その後、データ収集期間が終了するまでは、動作中のデータ転送手段がメモリに転送したデータの数が上限値に達する前に、他のデータ転送手段を起動することにより、複数のデータ転送手段のうちの1つが動作している単独動作期間と2つが同時に動作している重複動作期間とが生じるようにすると共に、順次起動した各データ転送手段により転送される各データ列がメモリの異なる記憶領域に記憶されるように、複数のデータ転送手段を制御するのが好ましい。そして、この構成によれば、複数のデータ転送手段を確実に動作期間を重複させながら順次起動して、一定時間毎のデータを漏れなくメモリに記憶させることができる。
次に、請求項3の処理装置では、請求項2の処理装置において、削除手段を備えている。そして、その削除手段は、データ収集期間が終了した後、メモリに記憶されているデータの中から、前記重複動作期間中に2つのデータ転送手段によって転送された互いに同じデータの一方を重複余剰データとして探し出し、その重複余剰データを削除する。
このような請求項3の処理装置によれば、データ収集期間中にデータ出力手段から出力される一定時間毎のデータを、漏れなく且つ重複することなく取得することができる。
次に、請求項4の処理装置では、請求項3の処理装置において、制御手段は、前記他のデータ転送手段を起動した際に、先に起動されて既に動作中のデータ転送手段がその時にメモリに転送したデータの識別情報を、該識別情報がデータ収集期間の開始タイミングから何番目に起動されたデータ転送手段によりメモリに転送されたデータ列に関するものであるかを特定可能に記憶するようになっている。そして、削除手段は、順次起動された各データ転送手段によりメモリに記憶された各データ列において、そのデータ列に関する前記識別情報が示すデータ以降のデータを、重複余剰データとして削除する。
このような請求項4の構成によれば、重複余剰データを簡単に探し出して削除することができる。
一方、請求項5の処理装置では、請求項4の処理装置と比較すると、削除手段が異なっている。即ち、データ収集期間の開始タイミングからn番目(nは1以上の整数)に起動されたデータ転送手段によりメモリに転送されたデータ列をn番目のデータ列と称することにすると、削除手段は、n番目のデータ列において該n番目のデータ列に関する前記識別情報が示すデータ以降のデータと、「n+1」番目のデータ列における先頭以降のデータとを比較し、n番目のデータ列における前記識別情報が示すデータ以降のデータのうちで、「n+1」番目のデータ列における先頭以降のデータと値が一致しているデータを、重複余剰データとして削除する。
そして、このような請求項5の構成によれば、重複余剰データを正確に探し出して削除することができる。
つまり、制御手段が何れかのデータ転送手段を起動してから、そのデータ転送手段が実際にメモリへのデータ転送を開始するまでには遅れ時間がある。このため、例えば「n+1」番目のデータ転送手段の起動時において、n番目に起動されて既に動作中のデータ転送手段がその時にメモリに転送したデータをDnとすると、上記遅れ時間により、「n+1」番目に起動されたデータ転送手段がDnをメモリに転送することができなかった場合、請求項4の構成では、そのDnが本当は重複余剰データではないのに削除されてしまう。これに対して、請求項5の構成によれば、こうした懸念を解消することができる。
次に、請求項6の処理装置では、請求項5の処理装置において、削除手段は、前記一致しているデータがなければ、異常と判断するようになっている。
つまり、何らかの原因で上記遅れ時間が大きくなる等して、2つのデータ転送手段が同時に動作している重複動作期間が存在しなくなると、前記一致しているデータが存在しなくなる。そして、そのような場合には、データ抜け(データの取りこぼし)が発生した可能性があるため、異常と判断するのである。よって、この構成によれば、データ抜けのあるデータ群を用いてエンジンを制御してしまうことを未然に防止することができる。
次に、請求項7の処理装置では、請求項3〜6の処理装置において、データ出力手段は、一定時間毎のエンジン制御用データとして、エンジンの気筒内圧力を検出する気筒内圧センサからの信号(CPS信号)を一定時間毎にA/D変換したデータ、又は、そのA/D変換したデータに対してディジタルフィルタ処理を行った後のデータを出力するようになっている。また、前記一定時間は、エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号に前記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔時間の最小値よりも短い時間に設定されている。
そして、請求項7の処理装置では、エッジ発生時刻記憶処理手段が、データ収集期間において、前記回転信号に特定エッジが発生する毎に、その時の時刻を、該時刻がどのクランク角度での時刻であるかを識別可能に順次記憶していく。また、開始時刻記憶処理手段が、データ収集期間において、データ出力手段からデータが最初に出力された時刻を記憶する。更に、演算処理手段が、エッジ発生時刻記憶処理手段により記憶された特定エッジ発生時の各時刻と、開始時刻記憶処理手段により記憶された時刻と、前記一定時間と、削除手段によって重複余剰データが削除された後のメモリ内のエンジン制御用データとから、クランク軸が前記所定角度よりも小さい一定角度回転したとき毎のエンジン制御用データを求める。
このような請求項7の処理装置によれば、CPS信号をA/D変換したデータ(A/D変換値)、又は、そのデータに対してディジタルフィルタ処理を行った後のデータに関して、回転信号に特定エッジが発生する角度間隔よりも小さい一定クランク角度毎のデータが正確に得られる。よって、そのような一定クランク角度毎のデータが必要なエンジン制御の精度を向上させることができる。
そして、請求項8に記載のように、請求項1〜7の処理装置を備えたエンジン制御装置によれば、データ収集期間における一定時間毎のエンジン制御用データを漏れなくメモリに記憶させ、そのメモリ内のデータを用いてエンジンを精度良く制御することができるようになる。
本発明が適用された実施形態のエンジン制御装置(以下、ECUという)について説明する。
まず図1に示すように、本実施形態のECU1が制御対象とするエンジン3は、例えばシリンダ5を4つ有した4気筒のディーゼルエンジンであり、そのエンジン3の吸気経路7には、上流側から順に、ターボチャージャーのコンプレッサ9、インタークーラー11、スロットルバルブ13、及びMAPセンサ15が設けられている。尚、MAPセンサ15は、エンジン3の吸気量と吸気圧を検出するためのセンサである。
また、エンジン3の吸気経路7と排気経路17との間には、EGR(EXHAUST GAS RECIRCULATION)用の配管19が設けられており、その配管19には、EGRクーラー21と、EGR量を制御するためのEGRバルブ23が設けられている。
更に、エンジン3には、気筒内圧センサ25とクランクセンサ27が設けられている。尚、気筒内圧センサ25は各気筒毎に設けられるが、ここでは1つの気筒についてのみ図示して説明する。また、クランクセンサ27は、外周に歯が形成されたシグナルロータと電磁ピックアップや磁気検知素子等を備えた周知のものであり、そのクランクセンサ27からクランク軸の回転に応じて出力される回転信号(以下、NE信号という)は、エンジンのクランク軸が所定角度(本実施形態では10°)回転する毎に有効エッジとしての立ち上がりエッジ(特定エッジに相当)が発生する信号である(図3の1段目参照)。
そして、上記MAPセンサ15、気筒内圧センサ25、及びクランクセンサ27からの各信号は、ECU1に入力される。
ECU1は、上記各センサからの信号に基づいて、各気筒毎に設けられたインジェクタ29やEGRバルブ23を駆動することにより、エンジン3に対する燃料噴射やEGR量を制御する。特に、気筒内圧センサ25からのCPS信号に基づいて着火時期を検出し、その検出結果をEGR制御や燃料噴射制御に用いる。また、ECU1は、図示しないアクセルペダル操作量センサからの信号等に基づいて、スロットルバルブ13の開度を調節するためのアクチュエータを駆動する。
次に、ECU1の内部構成のうち、CPS信号の処理に関する部分について説明する。
図2に示すように、ECU1は、気筒内圧センサ25からのCPS信号が入力されるアナログのフィルタ回路31と、そのフィルタ回路31を通過したCPS信号が入力されるマイコン33とを備えている。
尚、CPS信号には共振ノイズが重畳し易いため、本実施形態では、マイコン33にてCPS信号の一定時間毎のA/D変換(即ち、サンプリング)及び各A/D変換値に対するディジタルフィルタ処理を行うようになっている。このため、アナログのフィルタ回路31は、いわゆるアンチエイリアッシングフィルタである。
そして、マイコン33は、CPU35と、そのCPU35によるソフトウェア処理と並行して動作可能なADC・DMAモジュール37とを備えている。
ADC・DMAモジュール37には、フィルタ回路31を通過したCPS信号を一定時間毎にA/D変換するA/D変換器(ADC)39と、メモリ41と、A/D変換器39から出力される一定時間毎のデータ(A/D変換値)がそれぞれ入力されて、その時系列のデータに対してディジタルフィルタ処理を行う複数(この例では2つ)のフィルタ部50,51と、フィルタ部50,51のそれぞれに対応して設けられ、自己に対応するフィルタ部50,51から出力される一定時間毎のデータ(フィルタ後のA/D変換値)をメモリ41に順次DMA転送するDMA転送部60,61とが設けられている。
尚、本実施形態では、フィルタ部50,51のフィルタ係数が両方共に同じ値に設定されるため、DMA転送部60,61には同じデータが入力される。よって、例えば1つのフィルタ部からDMA転送部60,61にデータが入力される構成でも良い。また、フィルタ部とDMA転送部は、3組以上あっても良いが、本実施形態では2組を使用するため、その2組のみ図示している。また、複数のDMA転送部60,61のそれぞれは、1つのDMAコントローラの各チャンネル(DMAチャンネル)であると見なすことができるため、以下では、DMA転送部60,61を総称してDMAチャンネルと言い、そのDMAチャンネルのうち、DMA転送部60の方をチャンネルA0(以下、chA0と記す)と言い、DMA転送部61の方をチャンネルA1(以下、chA1と記す)と言う。
更に、マイコン33には、ADC・DMAモジュール37のメモリ41とは別に、メモリ43が備えられており、CPU35は、その両方のメモリ41,43にアクセス可能となっている。そして、メモリ43には、後述する角度再配置処理により、メモリ41内のデータから求められた一定クランク角度毎(本実施形態では1°CA毎)のデータが記憶される。
尚、メモリ41,43はRAMである。また、図示は省略しているが、マイコン33には、プログラムが記憶されたROMや周知のフリーランタイマや、NE信号が立ち上がる毎にその時のフリーランタイマの値がセットされるインプットキャプチャレジスタ等も備えられている。一方、本実施形態では、CPS信号のA/D変換間隔(上記一定時間であり、サンプリング周期)を、例えば26.7μs(37.5kHz相当)としているが、エンジン3の適用回転域に合わせて高回転域までモニタが必要な場合には、そのA/D変換間隔を短く設定すれば良い。
次に、マイコン33で実施される処理の内容について説明する。尚、以下の説明において、TDCとは、気筒の圧縮行程上死点のことであり、例えば、「BTDC50°CA」とは、そのTDCより50°CA前のことである。また例えば、「ATDC50°CA」とは、TDCより50°CA後のことである。
まず、図3は、マイコン33で実施される処理の概要を表すタイムチャートである。
図3に示すように、本実施形態では、BTDC40°CAからATDC40°CAまでの80°CA分の期間におけるCPS信号のディジタルフィルタ結果に基づいて着火時期を検出するが、その80°CA分の期間におけるディジタルフィルタ結果を安定させるために、その期間の前後10°CA分のデータも収集するようにしている。尚、後ろ側も10°CA分だけ多く収集するのは、例えば位相遅れ補償のため0次遅れフィルタを用いる場合に備えてである。このため、本実施形態では、BTDC50°CAからATDC50°CAまでの100°CA分の期間が、CPS信号のA/D変換値を収集すべきデータ収集期間となっている。
また、マイコン33のDMAチャンネルには、連続して転送可能なデータの数に上限値が定められており、本実施形態において、その上限値は255となっている。
具体的に説明すると、DMAチャンネル(chA0,chA1)のそれぞれには、起動してからメモリ41に転送したデータの数をカウントするカウンタ(以下、DMAカウンタという)が設けられている。そして、例えばchA0の方を例に挙げると、そのchA0のDMAカウンタは、chA0が起動して1つ目のデータが転送されると、値が初期値の0となり、以後は、データが1つ転送される毎に、値が1つずつカウントアップされる。そして、そのDMAカウンタの値(以下、DMAカウンタ値という)が254になると(即ち、転送したデータ数が255になると)、chA0のデータ転送動作が自動的に停止するようになっている(図10参照)。
そこで、本実施形態では、図3に示すように、NE信号が立ち上がる毎に起動されるNE割り込み処理のうち、BTDC50°CAのタイミングで起動されるNE割り込み処理(後述する図4のAD起動処理)により、A/D変換器39とフィルタ部50,51を起動すると共に、まず、chA0を起動する。
そして、その後、ATDC50°CAのタイミングが到来するまでは、chA0がメモリ41に転送したデータ数が255個に達する前に、chA1を起動し、そのchA1がメモリ41に転送したデータ数が255個に到達する前に、chA0を起動する、といった制御を繰り返すことにより、2つのDMAチャンネルのうちの一方が動作している単独動作期間と、2つのDMAチャンネルの両方が同時に動作している重複動作期間とが生じるようにする。
そして更に、このように順次起動した各DMAチャンネル(chA0又はchA1)によって転送される各データ列は、メモリ41の異なる記憶領域に記憶されるようにしている。具体的には、データ収集期間の開始タイミングからn番目(nは1以上の整数)に起動されたDMAチャンネルによって転送されるデータ列をn番目のデータ列と称することにすると、図3に示すように、メモリ41には、1番目のデータ列[1]の次に2番目のデータ列[2]が記憶され、その次に3番目のデータ列[3]が記憶される、といった具合に、各データ列がメモリ41におけるCPSデータ領域の連続したアドレスに順次記憶されるようにしている。尚、CPSデータ領域とは、メモリ41においてCPS信号のA/D変換値を格納するためのデータ領域である。
このように本実施形態では、2つのDMAチャンネルを、動作期間が一部重複するように順次起動することで、データ収集期間中にフィルタ部50,51から出力される一定時間毎のデータをメモリ41に漏れなく(シームレスに)記憶させる。
そして、データ収集期間の終了タイミング(ATDC50°CAのタイミング)が到来すると、そのタイミングで起動されるNE割り込みの処理(後述する図7のAD停止処理)により、A/D変換器39、フィルタ部50,51、及びDMAチャンネルの各動作を停止させる。
尚、データ収集期間の開始タイミングからDMAチャンネルの2回目以降の起動は、タイマ割り込み処理(後述する図5の、のりしろ処理)によって行うようになっており、図3において「DMA切替タイマ」と記載している時間は、そのタイマ割り込み処理の起動間隔である。
また、2つのDMAチャンネルを、動作期間を重複させながら順次起動すると、メモリ41に転送されるデータの中には、上記重複動作期間中において2つのDMAチャンネルにより転送された互いに同じデータ(重複しているデータであり、本明細書では「のりしろ部」或いは単に「のりしろ」と称している)が存在することとなるため、その重複しているデータのうちの一方である重複余剰データを削除する必要が生じる。
そこで、本実施形態では、DMAチャンネルを起動するタイマ割り込み処理(後述する図5の、のりしろ処理)によって、重複余剰データを後で特定するための処理も行うと共に、データ収集期間が終了した後で、後述する図9の、のりしろ削除処理を実行することで、メモリ41に記憶されたデータの中から重複余剰データを探し出して削除するようになっている。
また更に、本実施形態では、重複余剰データが削除された後のメモリ41内のデータから、後述する図12の角度再配置処理により、1°CA毎のデータを求めてメモリ43に記憶するようになっている。そして、1°CA毎のデータを求めるための準備として、BTDC50°CAのタイミングで起動されるNE割り込み処理(後述する図4のAD起動処理)により、A/D変換器39を起動した時刻(換言すれば、A/D変換器39及びフィルタ部50,51からchA0及びchA1へデータが最初に出力された時刻)を記憶し、更に、データ収集期間中においてNE信号に立ち上がりエッジが発生した各時刻を、NE割り込み処理(後述する図6のタイムスタンプ処理)により、その各時刻がどのクランク角度での時刻であるかを識別可能に順次記憶するようになっている。但し、本実施形態では、BTDC40°CAからATDC40°CAまでの80°CA分の期間における1°CA毎のデータをエンジンの制御(着火時期の検出)に用いるため、NE信号に立ち上がりエッジが発生した各時刻としては、BTDC40°CAからATDC40°CAまでの9回の時刻を記憶する。また、本実施形態では、マイコン33におけるフリーランタイマの値を時刻として扱っている。
次に図4は、マイコン33のCPU35がBTDC50°CAのタイミングで実行するAD起動処理を表すフローチャートである。尚、このAD起動処理は、前述したようにNE割り込み処理である。
図4に示すように、AD起動処理の実行が開始されると、まずS110にて、フィルタ部50,51のフィルタ係数を両方共に同じ値に設定する。
次にS120にて、DMAアドレスを設定する。尚、DMAチャンネル(chA0,chA1)は、メモリ41のアドレスのうち、CPU35によって設定されたDMAアドレスから順にデータを転送するようになっており、このS120では、後のS140で起動するchA0についてのDMAアドレスを設定する。また、ここで設定するDMAアドレスは、メモリ41におけるCPSデータ領域の先頭アドレスである。
そして、続くS130にて、adtimeという変数に、現在のフリーランタイマ値を代入し、次のS140にて、A/D変換器39とフィルタ部50,51を起動すると共に、DMAチャンネルのうちのchA0を起動する。このため、S130でadtimeに記憶されるフリーランタイマ値は、A/D変換器39を起動した時刻(AD開始タイミング)を示すこととなる。
次にS150にて、DMA切替タイマにタイマ時間をセットし、続くS160にて、DMA切替回数を0にクリアする。そして、その後、当該AD起動処理を終了する。
尚、DMA切替タイマは、今回起動したDMAチャンネルとは別のDMAチャンネルを起動するまでの時間を計時するタイマであり、そのDMA切替タイマにセットされたタイマ時間が経過すると、タイマ割り込み処理としての図5の、のりしろ処理が起動される。
また、そのタイマ時間は、先に起動したDMAチャンネルが255個のデータを転送し終わる前に別のDMAチャンネルが起動されるような時間に設定されている。本実施形態では、例えば、先に起動したDMAチャンネルが251個のデータを転送し終えた頃に別のDMAチャンネルが起動されるように、タイマ時間は6702μs(=26.7μs×251)に設定されている。
一方、DMA切替回数は、DMAチャンネルを何回切り替えたか(別のDMAチャンネルを何回起動したか)の回数である。そして、このDMA切替回数は、全てのデータ収集後にメモリ41から前述の重複余剰データを探し出して削除するために、後述する図9の、のりしろ削除処理で用いられる。
次に図5は、マイコン33のCPU35が実行するのりしろ処理を表すフローチャートである。尚、のりしろ処理は、前述したようにタイマ割込み処理である。
図5に示すように、のりしろ処理の実行が開始されると、まずS210にて、現在動作中のDMAチャンネルとは別のDMAチャンネルを起動すると共に、その今回起動するDMAチャンネルについてのDMAアドレスを設定する。具体的には、メモリ41におけるCPSデータ領域のアドレスのうち、現在動作中のDMAチャンネルが255個目のデータを転送する予定のアドレスの次のアドレスを、DMAアドレスとして設定する。
そして、次のS220にて、カウンタ値配列[]という変数に、現在動作中のDMAチャンネルのDMAカウンタ値を代入する。
尚、カウンタ値配列[]における[]内には、図8(B)に示すように、データ収集期間の開始時から当該のりしろ処理が最初に実行された場合には“0”が代入され、当該のりしろ処理が2回目に実行された場合には“1”が代入されるといった具合に、当該のりしろ処理が実行される毎に0から1ずつ増加する数字が代入される。このため、カウンタ値配列[]における[]内の数字により、そのカウンタ値配列[]に代入されたDMAカウンタ値がデータ収集期間において何番目に起動されたDMAチャンネルによりメモリ41に転送されたデータ列に関するものであるかを特定することができる。そして、例えば、カウンタ値配列[0]に代入された値は、最初に起動されたchA0によって転送されたデータ列(1番目のデータ列)において、「その値+1」番目のデータを示すこととなり、また例えば、カウンタ値配列[1]に代入された値は、2番目に起動されたchA1によって転送されたデータ列(2番目のデータ列)において、「その値+1」番目のデータを示すこととなる。そして、こうしたS220の処理は、各DMAチャンネルによってメモリ41に転送されたデータ列の各々において、重複余剰データがどこから始まるのかを記憶するために行っている。
次に、S230にて、DMA切替タイマにタイマ時間をセットする。このため、そのタイマ時間が経過すると、再び当該のりしろ処理が起動されることとなる。
そして、続くS240にて、DMA切替回数をインクリメント(+1)し、その後、当該のりしろ処理を終了する。
次に図6は、マイコン33のCPU35が実行するタイムスタンプ処理を表すフローチャートである。尚、このタイムスタンプ処理は、BTDC40°CAからATDC40°CAまでの10°CA毎のNE割り込み処理である。
図6に示すように、タイムスタンプ処理の実行が開始されると、S310にて、前述したインプットキャプチャレジスタから、今回のNE信号の立ち上がり時刻に該当するフリーランタイマ値を読み出し、そのフリーランタイマ値を、netime[]という変数に代入する。そして、その後、当該タイムスタンプ処理を終了する。
尚、図8(A)に示すように、netime[]は、NE割り込み時刻配列を成すものであり、そのnetime[]における[]内には、BTDC40°CA時のタイムスタンプ処理では“0”が代入され、次のBTDC30°CA時のタイムスタンプ処理では“1”が代入されるといった具合に、当該タイムスタンプ処理が実行される毎に0から1ずつ増加する数字が代入される(図13参照)。このため、netime[]における[]内の数字により、そのnetime[]に代入された値がどのクランク角度での時刻であるかを識別することができる。
次に図7は、マイコン33のCPU35がATDC50°CAのタイミングで実行するAD停止処理を表すフローチャートである。尚、このAD停止処理は、前述したようにNE割り込み処理である。
図7に示すように、AD停止処理の実行が開始されると、まずS410にて、A/D変換器39及びフィルタ部50,51の動作を停止させると共に、その時点で動作中のDMAチャンネル(chA0又はchA1)の動作(即ちDMA転送)も停止させる。
次にS420にて、カウンタ値配列[N]に、今回停止させたDMAチャンネルのDMAカウンタ値を代入する。尚、この時のカウンタ値配列[N]における[]内のNは、前回実行されたのりしろ処理のS220で[]内に代入された値の次の値(+1した値)であり、図8(B)に示すように、最終的なDMA切替回数と同じ値である。そして、このS420の処理により、最後に起動されたDMAチャンネルによってメモリ41に転送されたデータ列(最後のデータ列)のデータ数が記憶されることとなる。
そして、上記S420の処理を行った後、当該AD停止処理を終了する。
次に図9(A)は、マイコン33のCPU35が実行するのりしろ削除処理を表すフローチャートであり、図9(B)は、のりしろ削除処理内で実行されるのりしろ部分判定処理を表すフローチャートである。尚、のりしろ削除処理は、ATDC50°CAのタイミングが過ぎた後に、割り込み処理ではないベース処理として実行される。
まず、前述した図4,5,7の処理により、順次起動された各DMAチャンネルによってメモリ41へ転送される各データ列は、そのメモリ41におけるCPSデータ領域の先頭アドレスから順に記憶されるが、ここでは、そのCPSデータ領域の各データを、図8(C)に示すように、データ配列[]という変数で表す。そして、データ配列[]における[]内の数字は、0を1番目とした場合の、そのデータの順番及び格納位置を示すポインタ値である。このため、ATDC50°CAのタイミングで図7のAD停止処理が実行された時点において、メモリ41のCPSデータ領域には、それの先頭から、データ配列[0]〜データ配列[m]までの合計(m+1)個のデータが格納されていることとなる。尚、m=「カウンタ値配列[N]+255×N」であり、この式におけるNは、図5のS240で計数された最終的なDMA切替回数である。また、本実施形態において、メモリ41のCPSデータ領域としては、255個のデータからなるデータ列を「DMA切替回数+1」個格納する分の領域が確保されるようになっており、そのCPSデータ領域において、上記データ配列[m]より後の領域は、データが入っておらず初期値となっている。
ここで、図9(A)に示すように、のりしろ処理の実行が開始されると、まずS510にて、iという変数に、上記mの値(即ち、カウンタ値配列[N]+255×N)をセットし、jという変数に、データ配列最大個数をセットする。
尚、本のりしろ削除処理において、Nの値は、後述のS570でデクリメントされるが、この時点でのNの値は、図5のS240で計数された最終的なDMA切替回数である。そして、jにセットされるデータ配列最大個数は、CPSデータ領域の最後尾のポインタ値であり、「255×(N+1)−1」である。
次にS520にて、終了フラグがオンされているか否かを判定し、終了フラグがオンされていなければ、S530に進む。尚、終了フラグは後述のS580でオンされる。
S530では、データ配列[j]にデータ配列[i]の値をコピーし、その後、iとjをそれぞれデクリメント(−1)する。
次にS540にて、「i<255×N」か否かを判定し、「i<255×N」でなければ、S520へ戻る。
一方、上記S540にて、「i<255×N」であると判定した場合には、S550に進み、「N>0」であるか否かを判定する。そして、「N>0」ならば、S560に進んで、図9(B)に示すのりしろ部分判定処理を実行し、そののりしろ部分判定処理が終了したならば、S570にて、Nをデクリメントする。そして、その後、S520に戻る。
尚、後述するように、のりしろ部分判定処理は、戻り値としてiの値を返すようになっている。このため、のりしろ部分判定処理が終了してS570からS520へ戻る場合、iの値は、のりしろ部分判定処理からの戻り値に設定される。
また、上記S550にて、「N>0」ではないと判定した場合には、S580に移行して、終了フラグをオンし、その後、S520に戻る。すると、そのS520で終了フラグがオンされていると判定されて、当該のりしろ処理が終了する。
次に、図9(B)に示すように、図9(A)のS560で実行されるのりしろ部分判定処理では、まずS610にて、kとoとの各変数に「カウンタ値配列[N−1]+255×(N−1)」をセットする。尚、このS610でkとoにセットされる値は、N番目のデータ列におけるのりしろ部分(即ち、「N+1」番目のデータ列と重複しているデータ部分)の先頭データと思われるデータ配列[]のポインタ値([]内の値)である。
そして、次のS620にて、lという変数に「255×N」をセットする。つまり、lには、「N+1」番目のデータ列の先頭であるデータ配列[]のポインタ値をセットする。
次に、S630にて、「k=255×N」であるか否かを判定し、「k=255×N」でなければ、次のS640にて、「データ配列[k]=データ配列[l]」であるか否かを判定する。そして、「データ配列[k]=データ配列[l]」であれば、次のS650にて、kとlをそれぞれインクリメントし、その後、S630へ戻る。
また、上記S640にて、「データ配列[k]=データ配列[l]」ではないと判定した場合には、S660に移行し、lに「255×N」を再セットすると共に、oをインクリメントし、更にそのインクリメント後のoの値をkにセットする。そして、その後、S630へ戻る。
一方、S630にて、「k=255×N」であると判定した場合には、S670に移行して、「l=o」であるか否かを判定し、「l=o」でなければ、「o−1」の値をiの戻り値として設定し、当該のりしろ部分判定処理を終了する。
また、上記S670にて、「l=o」であると判定した場合には、N番目のデータ列と「N+1」番目のデータ列とで一致している(重複している)データが無かったということであり、データ抜け(データの取りこぼし)が発生したと考えられるため、この場合には、S680に進んで、異常フラグをオンする。そして、その後、当該のりしろ部分判定処理を終了する。尚、異常フラグがオンされた場合には、のりしろ削除処理が中止されると共に、例えば、メモリ41のCPSデータ領域に記憶されたデータが破棄されて、エンジン3の制御に用いられなくなる。
次に、図9の処理の作用について、図10及び図11の具体例を挙げて説明する。
尚、ここでは、例えば図10に示すように、DMAチャンネルの切り替えが2回行われて(即ち、DMA切替回数=2で)、メモリ41のCPSデータ領域に1番目から3番目までのデータ列が記憶されると共に、図5のS220と図7のS420により、DMAカウンタ値として、1番目のデータ列に関するカウンタ値配列[0]に251が、2番目のデータ列に関するカウンタ値配列[1]に252が、3番目のデータ列に関するカウンタ値配列[2]に136が、それぞれ代入された場合を例に挙げて説明する。
この場合、のりしろ削除処理の実行が開始された時点では、N=DMA切替回数=2であるため、S510において、iには646(=「カウンタ配列[2]+255×2」=136+255×2)がセットされる。つまり、S510でiにセットされる値は、DMAチャンネルによってメモリ41のCPSデータ領域に記憶された最後のデータ配列[]のポインタ値である。また、S510において、jには、iよりも大きい764(=255×3−1)がセットされる。このため、この時点で、CPSデータ領域におけるデータ配列[647]〜データ配列[764]には有効なデータが入っていない。
次に、この時点で終了フラグはオフであるため(S520:NO)、S530で、データ配列[j]にデータ配列[i]の値がコピーされると共に、iとjがそれぞれデクリメントされる。そして、iの値が「510=255×2」以上である間は(S540:NO)、S530の処理が繰り返されることとなる。
このようにS530の処理が繰り返されることにより、図10の下から1,2段目に示すように、データ配列[646]の値がデータ配列[764]にコピーされ、データ配列[645]の値がデータ配列[763]にコピーされるといった具合に、DMAチャンネルによってCPSデータ領域に記憶された各データが、最後のデータから順に、CPSデータ領域の最後尾(この例では、データ配列[764]の位置)から前方へ向けて後詰めされていくこととなる。
そして、デクリメント後のiが509でjが627になり、S540でYESと判定されると(即ち、3番目のデータ列を成すデータ配列[646]〜データ配列[510]の137個の各データが、データ配列[764]〜データ配列[628]にコピーされると)、この時点では「N>0」であるため、S550でYESと判定され、S560で図9(B)ののりしろ部分判定処理が実行される。
この場合、のりしろ部分判定処理では、まずS610にて、kとoに507(=カウンタ値配列[1]+255×(2−1)=252+255×1)がセットされる。この507という数字は、図10に示すように、2番目のデータ列において、3番目のデータ列と重複しているのりしろ部分の先頭データと思われるデータ配列[]のポインタ値である。また、データ配列[507]のデータは、2番目のデータ列においてカウンタ値配列[1]が示すデータである。
次に、S620にて、lには510(=255×2)がセットされる。この510という数字は、図10に示すように、3番目のデータ列の先頭に該当するデータ配列[]のポインタ値であり、換言すれば、データ配列[510]の値は、3番目のデータ列における先頭データである。
そして、S630〜S660の処理により、データ配列[507]〜データ配列[509]の各値と、データ配列[510]以降の各値とが、一致しているか否かの確認が行われる。
ここで、図10は、データ配列[507]〜データ配列[509]の各値と、データ配列[510]〜データ配列[512]の各値とが、それぞれ一致していた場合を示しており、その場合について具体的に説明する。
まず、最初はk=507であるため、S630でNOと判定され、S640にて、データ配列[507]の値と、3番目のデータ列における先頭データであるデータ配列[510]の値とが一致しているか判定される。そして、データ配列[507]=データ配列[510]であれば(S640:YES)、S650でkとlがインクリメントされてS630に戻るが、まだk=508であるため、再びS630でNOと判定され、S640にて、データ配列[508]の値と、3番目のデータ列における2番目のデータであるデータ配列[511]の値とが一致しているか判定される。そして、両値が一致していれば(S640:YES)、再びS650でkとlがインクリメントされてS630に戻るが、まだk=509であるため、再びS630でNOと判定され、S640にて、データ配列[509]の値と、3番目のデータ列における3番目のデータであるデータ配列[512]の値とが一致しているか判定される。そして、両値が一致していれば(S640:YES)、再びS650でkとlがインクリメントされてS630に戻るが、その時点でk=510であるため、S630でYESと判定されて、S670へ進むこととなる。
そして、この時点でl=513、o=507であるため、S670でNOと判定されて、のりしろ部分判定処理が終了する。また、このとき、506(=o−1)がiの戻り値となる。
このため、のりしろ処理のS560からS570に進んで、Nがデクリメントされて1(=2−1)となり、再びS520以降の処理が行われる場合には、i=506、j=627となっている。
そして、再びS530及びS540の処理が繰り返されることにより、図10の下から1,2段目に示すように、2番目のデータ列のうち、3番目のデータ列と重複していたのりしろ部分(データ配列[507]〜データ配列[509]の各データであり、重複余剰データに相当)以外のデータ配列[506]〜データ配列[255]の各データが、データ配列[627]〜データ配列[376]にコピーされることとなる。換言すれば、DMA転送されたデータ配列[507]〜データ配列[509]の各データがCPSデータ領域から削除される。
そして、S530でデクリメントされた後のiが254でjが375になり、S540でYESと判定されると、この時点では未だ「N>0」であるため、S550でYESと判定され、再びS560で図9(B)ののりしろ部分判定処理が実行される。
この2回目ののりしろ部分判定処理では、N=1となっているため、まずS610にて、kとoに251(=カウンタ値配列[0]+255×(1−1)=251+0)がセットされる。そして、この251という数字は、図10に示すように、1番目のデータ列において、2番目のデータ列と重複しているのりしろ部分の先頭データと思われるデータ配列[]のポインタ値である。また、データ配列[251]のデータは、1番目のデータ列においてカウンタ値配列[0]が示すデータである。
次に、S620にて、lには255(=255×1)がセットされる。この255という数字は、図10に示すように、2番目のデータ列の先頭に該当するデータ配列[]のポインタ値であり、換言すれば、データ配列[255]の値は、2番目のデータ列における先頭データである。
そして、S630〜S660の処理により、データ配列[251]〜データ配列[254]の各値と、データ配列[255]以降の各値とが、一致しているか否かの確認が行われる。
ここで、図10は、データ配列[251]〜データ配列[254]の各値と、データ配列[255]〜データ配列[258]の各値とが、それぞれ一致していた場合を示しており、その場合について具体的に説明する。
まず、最初はk=251であるため、S630でNOと判定され、S640にて、データ配列[251]の値とデータ配列[255]の値とが一致しているか判定される。そして、データ配列[251]=データ配列[255]であれば(S640:YES)、S650でkとlがインクリメントされてS630に戻る。そして、その後、S630でYESと判定されるまで、S640及びS650の処理が繰り返されることにより、データ配列[251]〜データ配列[254]の各値と、データ配列[255]〜データ配列[258]の各値とが、一致していることが確認される。
そして、S630でYESと判定されて、S670へ進むと、この時点でl=259、o=251であるため、S670でNOと判定されて、のりしろ部分判定処理が終了する。また、このとき、250(=o−1)がiの戻り値となる。
このため、のりしろ処理のS560からS570に進んで、Nがデクリメントされて0(=1−1)となり、再びS520以降の処理を行う場合には、i=250、j=375となっている。
そして、再びS530及びS540の処理が繰り返されることにより、図10の下から1,2段目に示すように、1番目のデータ列のうち、2番目のデータ列と重複していたのりしろ部分(データ配列[251]〜データ配列[254]の各データであり、重複余剰データに相当)以外のデータ配列[250]〜データ配列[0]の各データが、データ配列[375]〜データ配列[125]にコピーされることとなる。換言すれば、DMA転送されたデータ配列[251]〜データ配列[254]の各データがCPSデータ領域から削除される。
そして、S530でデクリメントされた後のiが−1になりS540でYESと判定されると、この時点でN=0はであるため、S550でNOと判定され、S580で終了フラグがオンされて、その後、当該のりしろ処理が終了することとなる。
また、例えば図11に示すように、2番目のデータ列において、3番目のデータ列と重複しているのりしろ部分の先頭データと思われるデータ配列[507]の値(即ち、2番目のデータ列においてカウンタ値配列[1]が示すデータ)と、3番目のデータ列の先頭に該当するデータ配列[510]の値とが実際には一致しておらず、データ配列[507]よりも後のデータ配列[508]とデータ配列[509]の各値と、データ配列[510]とデータ配列[511]の各値とが、それぞれ一致していた場合には、2番目のデータ列のうち、データ配列[507]〜データ配列[255]の各データが、データ配列[627]〜データ配列[375]にコピーされることとなる。
つまり、この場合、N=2の状態で図9(B)ののりしろ部分判定処理が実行された際には、まず1回目のS640にて、データ配列[507]の値とデータ配列[510]の値とが不一致であると判定される(S640:NO)。このため、S660にて、lが510(=255×2)に再設定されると共に、oがインクリメントされて、そのoとkの値が508になる。
そして、S630に戻るが、k=508であるため、S630でNOと判定され、S640にて、データ配列[508]の値とデータ配列[510]の値とが一致しているか判定される。そして、両値が一致していれば(S640:YES)、S650でkとlがインクリメントされてS630に戻り、S640にて、データ配列[509]の値とデータ配列[511]の値とが一致しているか判定される。そして、両値が一致していれば(S640:YES)、再びS650でkとlがインクリメントされてS630に戻るが、その時点でk=510であるため、S630でYESと判定されて、S670へ進むこととなる。
そして、この時点でl=512、o=508であるため、S670でNOと判定されて、のりしろ部分判定処理が終了する。また、このとき、507(=o−1)がiの戻り値となる。
このため、のりしろ処理のS560からS570に進んで、Nがデクリメントされて1(=2−1)となり、再びS520以降の処理が行われる場合には、i=507、j=627となっている。
そして、再びS530及びS540の処理が繰り返されることにより、図11の下から1,2段目に示すように、2番目のデータ列のうち、3番目のデータ列と本当に重複していたのりしろ部分(データ配列[508]及びデータ配列[509]の各データ)以外のデータ配列[507]〜データ配列[255]の各データが、データ配列[627]〜データ配列[375]にコピーされることとなる。
尚、図11の場合には、図10の場合と比較すると、上記データ配列[507]のデータが削除されず、のりしろ部分を削除した後のデータ数が1つ多くなるため、1番目のデータ列のうち、2番目のデータ列と重複していたのりしろ部分以外のデータ配列[250]〜データ配列[0]の各データは、データ配列[374]〜データ配列[124]にコピーされることとなる。
つまり、DMA切替回数をNとし、1番目からN番目の各データ列をn番目のデータ列と言うことにすると、図9(B)ののりしろ部分判定処理では、n番目のデータ列において該n番目のデータ列に関するカウンタ値配列[n−1]が示すデータ以降のデータと、「n+1」番目のデータ列における先頭以降のデータとを比較し、そのn番目のデータ列におけるカウンタ値配列[n−1]が示すデータ以降のデータのうちで、「n+1」番目のデータ列における先頭以降のデータと値が続けて一致しているデータを、重複余剰データとして探し、その重複余剰データよりも1つ前のデータのポインタ値を、iの戻り値として返すようになっている。
そして、図9(A)ののりしろ削除処理では、「N+1」番目の(最後の)データ列については、全てのデータをメモリ41のCPSデータ領域に後詰めするが、1番目からN番目の各データ列については、のりしろ部分判定処理からのiの戻り値により示されるデータよりも後のデータは削除して、そのデータから先頭までのデータをCPSデータ記憶領域に後詰めするようにしており、これにより、DMAチャンネルによってメモリ41のCPSデータ領域に順次記憶されたデータ列の中から重複余剰データを削除したデータ列(以下、のりしろ削除後のデータ列ともいう)をCPSデータ領域に記憶し直すようにしている。
一方、例えば、図10の例において、2番目のデータ列におけるデータ配列[507]〜データ配列[509]の各値と、3番目のデータ列におけるデータ配列[510]〜データ配列[512]の各値とが、全て一致していなかった場合には、N=2の状態で図9(B)ののりしろ部分判定処理が実行された際に、S640で常にNOと判定されることとなり、S670では「l=o」と判定されることとなる。このため、S680で異常フラグがオンされる。
つまり、のりしろ部分判定処理では、n番目のデータ列におけるカウンタ値配列[n−1]が示すデータ以降のデータのうちで、「n+1」番目のデータ列における先頭以降のデータと値が一致しているものが無ければ、何等かの原因でデータ抜け(データの取りこぼし)が発生した可能性があるため、異常フラグをオンして、メモリ41のCPSデータ領域に記憶されたデータがエンジン3の制御に用いられないようにしている。
次に図12(A)は、マイコン33のCPU35が実行する角度再配置処理を表すフローチャートである。尚、この角度再配置処理は、前述したのりしろ処理の後に実行される。
まず、図12(B)に示すように、メモリ41のCPSデータ領域には、のりしろ削除後のデータ列として、データ配列[M]〜データ配列[E]のデータ列が記憶されているものとする。尚、Mは、のりしろ削除後のデータ列における先頭データのポインタ値であり、例えば図11の例では「124」に該当する。また、Eの値は、のりしろ削除後のデータ列における最終データのポインタ値であり、図11の例では「764」に該当する。
そして、角度再配置処理は、メモリ41に記憶されているのりしろ削除後のデータ列から、BTDC40°CA〜ATDC40°CAまでの1°CA毎の各データを求め、図12(C)に示すように、その1°CA毎の各データを角度同期配列[0],角度同期配列[1],角度同期配列[2],…としてメモリ43に順次記憶することで、1°CA毎のデータ列を生成するための処理である。
図12(A)に示すように、角度再配置処理の実行が開始されると、まずS710及びS720にて、kとiとの各変数に、初期値としての0をセットする。尚、この角度再配置処理において、kは、角度同期配列[]のポインタ値([]内の値)として用いられ、iは、BTDC40°CAからATDC40°CAまでのNE割り込み時刻配列(netime[])のポインタ値として用いられる変数である。
次にS730にて、データ配列のポインタ値に用いるdataposに、「(netime[i]−adtime)/AD周期」の値をセットする。つまり、10°CA毎のNE割り込み時刻(netime[i])から、A/D変換器39の起動時刻(adtime)を引いた値を、AD周期で割ることにより、そのNE割込み時刻(netime[i])でのデータ配列が、先頭のデータ配列[M]から数えて何番目であるかを示す値を求め、その値をdataposにセットする。尚、AD周期とは、CPS信号のA/D変換間隔(サンプリング周期)である。また、桁落ちを無くすために、dataposの値は小数値を持つ。
次にS740にて、1catimeに、「(netime[i+1]−netime[i])/10」の値をセットする。つまり、netime[i]からnetime[i+1]までの10°CA分の時間であるNE割り込み間隔を10で割ることにり、1°CA当たりの時間を求め、その値を1catimeにセットする。
そして、続くS750にて、ratioposに、「1catime/AD周期」の値(即ち、1°CA分のデータ個数)をセットする。尚、桁落ちを無くすために、ratioposの値も小数値を持つ。
次にS760にて、jに初期値としての0をセットする。
そして、次のS770にて、角度同期配列[k]に、データ配列[M+int(datapos)]の値をコピーする。尚、int(datapos)は、dataposの値を整数化した値という意味であり、本実施形態では、そのdataposの値から小数点以下を切り捨てた整数部の値である。
次に、S780にて、dataposに、「datapos+ratiopos」の値を再セットし、続くS790にて、jとkとをインクリメントする。そして、次のS800にて、「j<10」か否かを判定し、「j<10」ならばS770に戻る。
また、S800にて、「j<10」ではないと判定した場合(即ち、インクリメント後のjが10になった場合)には、S810に進んで、iをインクリメントし、次のS820にて、「i<8」であるか否かを判定する。そして、「i<8」ならばS730に戻る。
また、S820にて、「i<8」ではないと判定した場合(即ち、インクリメント後のiが8になった場合)には、S830に進んで、S730と同様に、dataposに、「(netime[i]−adtime)/AD周期」の値をセットする。そして、次のS840にて、S770と同様に、角度同期配列[k]に、データ配列[M+int(datapos)]の値をコピーする。そして、その後、当該角度再配置処理を終了する。
次に、角度再配置処理の作用について、図13の具体例を挙げて説明する。尚、この例では、M=124であり、また、AD周期、「netime[0]−adtime」、「netime[1]−netime[0]」の各値は、図示している通りである。
まず、角度再配置処理の実行が開始されてから1回目のS730では、A/D変換器39の起動時刻(adtime)からBTDC40°CAの時刻(netime[0])までの時間(netime[0]−adtime)をAD周期で割ることにより、datapos=77.34と算出される。また、1回目のS740,S750では、BTDC40°CAからBTDC30°CAまでの時間(netime[1]−netime[0])を10で割ることにより、1catime=225.3μsと算出され、更に、その1catimeをAD周期で割ることにより、ratiopos=8.44と算出される。
そして、1回目のS770により、BTDC40°CAのタイミングでのデータ配列が、データ配列[201]であると特定されて、そのデータ配列[201]の値が角度同期配列[0]にコピーされる。
その次に、S780,S790の処理が行われることにより、dataposの値が1°CA分のデータ個数であるratioposだけ増加されると共に、jとkがインクリメントされて1となり、再びS770の処理が行われる。
すると、その2回目のS770では、BTDC40°CAから1°CA進んだタイミングでのデータ配列が、データ配列[209]であると特定されて、そのデータ配列[209]の値が角度同期配列[1]にコピーされる。
以後は、S790でインクリメントされた後のjが10に達するまで、S770〜S790の処理が繰り返されることにより、BTDC40°CAから2°CA,3°CA,…,8°CA,9°CAと1°CAずつ進んだ各タイミングでのデータ配列が、角度同期配列[2]〜角度同期配列[9]のそれぞれにコピーされることとなる。
つまり、i=0の時に、S770〜S790の処理が10回行われることで、BTDC40°CAからBTDC30°CA直前までの1°CA毎のタイミングでのデータ配列が、角度同期配列[0]〜[9]にコピーされる。
その後、S790でインクリメントされた後のjが10に達すると、S810でiがインクリメントされて1となり、S730以降の処理が再び行われる。
すると2回目のS730では、A/D変換器39の起動時刻(adtime)からBTDC30°CAの時刻(netime[1])までの時間(netime[1]−adtime)をAD周期で割ることにより、dataposの値が算出され、また、2回目のS740,S750では、BTDC30°CAからBTDC20°CAまでの時間(netime[2]−netime[1])を10で割ることにより、1catimeの値が算出され、更に、その1catimeをAD周期で割ることにより、ratioposの値が算出される。
そして、再びS770〜S790の処理が10回行われることで、BTDC30°CAからBTDC20°CA直前までの1°CA毎のタイミングでのデータ配列が、角度同期配列[10]〜[19]にコピーされることとなる。
以後は、S810でインクリメントされた後のiが8に達するまで、S730〜S810の処理が繰り返されることとなる。
そして、S730〜S810の処理が8回繰り返されることで、BTDC40°CAからATDC40°CA直前までの1°CA毎のタイミングでのデータ配列が、角度同期配列[0]〜[79]にコピーされることとなる。
その後、i=8になると、S830及びS840の処理が行われることにより、ATDC40°CAのタイミングでのデータ配列が、角度同期配列[80]にコピーされる。そして、この時点で、BTDC40°CAからATDC40°CAまでの1°CA毎のデータ列(81個のデータ)がメモリ43に全て格納され、角度再配置処理が終了する。
尚、より高い精度を求めるのであれば、特許文献3のように、1°CA当たりの時間(1catime)を用い、メモリ41内のデータ(一定時間毎のデータ)に対し補間演算を行って、より正確な1°CA毎のデータを算出するようにしても良い。
以上のような本実施形態のECU1に備えられたマイコン33では、2つのDMAチャンネル(chA0とchA1)を、動作期間を重複させながら順次起動することにより、データ収集期間中にフィルタ部50,51から出力される一定時間毎のデータをメモリ41のCPSデータ領域に記憶させるようにしている。このため、データ収集期間における一定時間毎のデータを、漏れなくメモリ41に記憶させることができる。
しかも、データ収集期間が終了した後、のりしろ削除処理(図9)により、メモリ41内の一定時間毎のデータの中から、重複余剰データを探し出して削除するようになっている。
このため、DMAチャンネルが連続して転送可能なデータ数に上限値が定められているにも拘わらず、データ収集期間中にフィルタ部50,51から出力される一定時間毎のデータを、漏れなく且つ重複することなくメモリ41に格納することができる。
そして、重複余剰データが削除された後の一定時間毎のデータから、角度再配置処理(図12)によって、1°CA毎のデータを求めるようになっているため、その1°CA毎のデータが正確に得られる。よって、その1°CA毎のデータを用いてエンジン3を精度良く制御することができるようになる。
また前述したように、本実施形態では、図9(B)ののりしろ部分判定処理により、n番目のデータ列におけるカウンタ値配列[n−1]が示すデータ以降のデータと、「n+1」番目のデータ列における先頭以降のデータとを実際に比較して、n番目のデータ列におけるカウンタ値配列[n−1]が示すデータ以降のデータのうちで、「n+1」番目のデータ列における先頭以降のデータと値が一致しているデータを、重複余剰データとして特定するようになっているため、その重複余剰データを正確に探し出して削除することができる。更に、n番目のデータ列におけるカウンタ値配列[n−1]が示すデータ以降のデータのうちで、「n+1」番目のデータ列における先頭以降のデータと値が一致しているデータがなければ、データ抜けが発生した可能性があると判断して、異常フラグをオンするようになっているため、データ抜けのあるデータ群を用いてエンジン3を制御してしまうことを未然に防止することができる。
尚、本実施形態では、マイコン33が処理装置に相当し、A/D変換器39及びフィルタ部50,51がデータ出力手段に相当し、DMAチャンネル(DMA転送部60(chA0),DMA転送部61(chA1))がデータ転送手段に相当している。そして、図4、図5及び図7の処理が制御手段に相当し、図9の処理が削除手段に相当している。また、カウンタ値配列[]にセットされるDMAカウンタ値が識別情報に相当している。更に、図6の処理がエッジ発生時刻記憶処理手段に相当し、図4のS130が開始時刻記憶処理手段に相当し、図12(A)の処理が演算処理手段に相当している。
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
例えば、図9(A)ののりしろ削除処理におけるS560で、図9(B)ののりしろ部分判定処理を実行せずに、iに「カウンタ値配列[N−1]+255×(N−1)−1」の値をセットして、次のS570へ進むように構成しても良い。
そして、このように構成すれば、各DMAチャンネルによりメモリ41に記憶された各データ列において、そのn番目(n=1,2,…)のデータ列についてのカウンタ値配列[n−1]が示すデータ以降のデータを、重複余剰データとして削除することとなる。
但し、図9(B)ののりしろ部分判定処理を実行するように構成した方が、図11に例示したような場合でもデータ配列[507]を削除してしまうことがなく、本当の重複余剰データを正確に探し出すことができ有利である。
また、図12(A)の角度再配置処理では、1°CA毎のデータ列を、メモリ43ではなく、メモリ41におけるCPSデータ領域とは別の領域に記憶するようにしても良い。
一方、マイコン33の構成としては、フィルタ部50,51が別々ではなく、1つのフィルタ部から複数の各DMAチャンネルにデータが入力される構成でも良い。また、フィルタ部50,51が無い構成でも良い。
実施形態のエンジン制御システムを表す構成図である。 ECUの内部構成を表す構成図である。 ECUのマイコンで実施される処理の概要を表すタイムチャートである。 AD起動処理を表すフローチャートである。 のりしろ処理を表すフローチャートである。 タイムスタンプ処理を表すフローチャートである。 AD停止処理を表すフローチャートである。 NE割り込み時刻配列と、カウンタ値配列と、データ配列とを説明する説明図である。 のりしろ削除処理及び該のりしろ削除処理内で実行されるのりしろ部分判定処理を表すフローチャートである。 のりしろ削除処理の作用を説明する第1の説明図である。 のりしろ削除処理の作用を説明する第2の説明図である。 角度再配置処理と、のりしろ削除後のデータ配列と、1°CA毎のデータ配列とを説明する説明図である。 角度再配置処理の作用を説明する説明図である。
符号の説明
1…ECU(エンジン制御装置)、3…エンジン、5…シリンダ、7…吸気経路、9…コンプレッサ、11…インタークーラー、13…スロットルバルブ、15…MAPセンサ、17…排気経路、19…配管、21…EGRクーラー、23…EGRバルブ、25…気筒内圧センサ、27…クランクセンサ、29…インジェクタ、31…フィルタ回路、33…マイコン、37…ADC・DMAモジュール、39…A/D変換器、41,43…メモリ、50,51…フィルタ部(ディジタルフィルタ)、60,61…DMA転送部(DMAチャンネル:chA0,chA1)

Claims (8)

  1. 車両のエンジンを制御するために用いられる一定時間毎のエンジン制御用データを順次出力するデータ出力手段と、
    前記データ出力手段からのデータを記憶するためのメモリと、
    前記データ出力手段からのデータを前記メモリに順次転送して記憶させる機能を有すると共に、互いに並行して動作可能であり、更に、起動してから連続して転送可能なデータの数に上限値が定められた複数のデータ転送手段と、
    前記データを収集すべき期間(以下、データ収集期間という)において、前記複数のデータ転送手段の全てがデータ転送動作をしていない期間が生じないように、前記複数のデータ転送手段を順次起動することにより、前記データ出力手段からのデータを前記メモリに記憶させる制御手段と、
    を備えていることを特徴とするエンジン制御用データの処理装置。
  2. 請求項1に記載のエンジン制御用データの処理装置において、
    前記制御手段は、前記データ収集期間の開始タイミングが到来すると、前記複数のデータ転送手段のうちの何れかを起動し、その後、前記データ収集期間が終了するまでは、動作中のデータ転送手段が前記メモリに転送したデータの数が前記上限値に達する前に、他のデータ転送手段を起動することにより、前記複数のデータ転送手段のうちの1つが動作している単独動作期間と2つが同時に動作している重複動作期間とが生じるようにすると共に、順次起動した各データ転送手段により転送される各データ列が前記メモリの異なる記憶領域に記憶されるように、前記複数のデータ転送手段を制御すること、
    を特徴とするエンジン制御用データの処理装置。
  3. 請求項2に記載のエンジン制御用データの処理装置において、
    前記データ収集期間が終了した後、前記メモリに記憶されているデータの中から、前記重複動作期間中に2つのデータ転送手段によって転送された互いに同じデータの一方を重複余剰データとして探し出し、その重複余剰データを削除する削除手段を備えていること、
    を特徴とするエンジン制御用データの処理装置。
  4. 請求項3に記載のエンジン制御用データの処理装置において、
    前記制御手段は、前記他のデータ転送手段を起動した際に、先に起動されて既に動作中のデータ転送手段がその時に前記メモリに転送したデータの識別情報を、該識別情報が前記データ収集期間の開始タイミングから何番目に起動されたデータ転送手段により前記メモリに転送されたデータ列に関するものであるかを特定可能に記憶するようになっており、
    前記削除手段は、順次起動された各データ転送手段により前記メモリに記憶された各データ列において、そのデータ列に関する前記識別情報が示すデータ以降のデータを、前記重複余剰データとして削除すること、
    を特徴とするエンジン制御用データの処理装置。
  5. 請求項3に記載のエンジン制御用データの処理装置において、
    前記制御手段は、前記他のデータ転送手段を起動した際に、先に起動されて既に動作中のデータ転送手段がその時に前記メモリに転送したデータの識別情報を、該識別情報が前記データ収集期間の開始タイミングから何番目に起動されたデータ転送手段により前記メモリに転送されたデータ列に関するものであるかを特定可能に記憶するようになっており、
    前記データ収集期間の開始タイミングからn番目(nは1以上の整数)に起動されたデータ転送手段により前記メモリに転送されたデータ列をn番目のデータ列と称することにすると、
    前記削除手段は、n番目のデータ列において該n番目のデータ列に関する前記識別情報が示すデータ以降のデータと、「n+1」番目のデータ列における先頭以降のデータとを比較し、前記n番目のデータ列における前記識別情報が示すデータ以降のデータのうちで、前記「n+1」番目のデータ列における先頭以降のデータと値が一致しているデータを、前記重複余剰データとして削除すること、
    を特徴とするエンジン制御用データの処理装置。
  6. 請求項5に記載のエンジン制御用データの処理装置において、
    前記削除手段は、前記一致しているデータがなければ、異常と判断すること、
    を特徴とするエンジン制御用データの処理装置。
  7. 請求項3ないし請求項6の何れか1項に記載のエンジン制御用データの処理装置において、
    前記データ出力手段は、前記一定時間毎のエンジン制御用データとして、前記エンジンの気筒内圧力を検出する気筒内圧センサからの信号を前記一定時間毎にA/D変換したデータ、又は、そのA/D変換したデータに対してディジタルフィルタ処理を行った後のデータを出力するようになっており、
    前記一定時間は、前記エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号に前記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔時間の最小値よりも短い時間に設定されており、
    前記データ収集期間において、前記回転信号に前記特定エッジが発生する毎に、その時の時刻を、該時刻がどのクランク角度での時刻であるかを識別可能に順次記憶していくエッジ発生時刻記憶処理手段と、
    前記データ収集期間において、前記データ出力手段からデータが最初に出力された時刻を記憶する開始時刻記憶処理手段と、
    前記エッジ発生時刻記憶処理手段により記憶された前記特定エッジ発生時の各時刻と、前記開始時刻記憶処理手段により記憶された時刻と、前記一定時間と、前記削除手段によって前記重複余剰データが削除された後の前記メモリ内のエンジン制御用データとから、前記クランク軸が前記所定角度よりも小さい一定角度回転したとき毎のエンジン制御用データを求める演算処理手段と、
    を備えていることを特徴とするエンジン制御用データの処理装置。
  8. 請求項1ないし請求項7の何れか1項に記載のエンジン制御用データの処理装置を備えたエンジン制御装置。
JP2006241580A 2006-09-06 2006-09-06 エンジン制御用データの処理装置及びエンジン制御装置 Expired - Fee Related JP4532450B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006241580A JP4532450B2 (ja) 2006-09-06 2006-09-06 エンジン制御用データの処理装置及びエンジン制御装置
EP07017406A EP1898078B1 (en) 2006-09-06 2007-09-05 Data processor for processing pieces of data being successively sampled at intervals
US11/896,940 US7444228B2 (en) 2006-09-06 2007-09-06 Data processor for processing pieces of data being successively sampled at intervals

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006241580A JP4532450B2 (ja) 2006-09-06 2006-09-06 エンジン制御用データの処理装置及びエンジン制御装置

Publications (2)

Publication Number Publication Date
JP2008063992A JP2008063992A (ja) 2008-03-21
JP4532450B2 true JP4532450B2 (ja) 2010-08-25

Family

ID=38826546

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006241580A Expired - Fee Related JP4532450B2 (ja) 2006-09-06 2006-09-06 エンジン制御用データの処理装置及びエンジン制御装置

Country Status (3)

Country Link
US (1) US7444228B2 (ja)
EP (1) EP1898078B1 (ja)
JP (1) JP4532450B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0719620D0 (en) 2007-10-08 2007-11-14 Isis Innovation Mutant Enzymes
JP5163475B2 (ja) * 2008-12-18 2013-03-13 株式会社デンソー 信号処理装置
JP5370207B2 (ja) * 2010-02-19 2013-12-18 トヨタ自動車株式会社 内燃機関の制御装置
JP5578022B2 (ja) * 2010-10-26 2014-08-27 トヨタ自動車株式会社 内燃機関制御装置
JP5392337B2 (ja) 2011-10-18 2014-01-22 株式会社デンソー センサ信号の処理装置
JP5678868B2 (ja) * 2011-11-11 2015-03-04 株式会社デンソー 信号処理装置
JP5799891B2 (ja) * 2012-05-18 2015-10-28 株式会社デンソー Ad変換処理装置
JP2014080918A (ja) * 2012-10-16 2014-05-08 Toyota Motor Corp 内燃機関の筒内圧検出装置
JP6210018B2 (ja) * 2014-04-25 2017-10-11 株式会社オートネットワーク技術研究所 スイッチのオン/オフ制御方法及びスイッチ回路
JP6350196B2 (ja) * 2014-10-14 2018-07-04 株式会社デンソー 制御装置
JP6935190B2 (ja) * 2016-12-07 2021-09-15 いすゞ自動車株式会社 制御装置、及び、制御装置へのデータ書き込み方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08194602A (ja) * 1995-01-18 1996-07-30 Oki Electric Ind Co Ltd バッファ長可変式アクセス制御装置
JPH10320350A (ja) * 1997-05-20 1998-12-04 Mitsubishi Electric Corp リモートpio制御システム
JP2000215153A (ja) * 1999-01-22 2000-08-04 Nec Corp Dmaデ―タ転送制御方法及び入出力処理装置
JP2005220796A (ja) * 2004-02-04 2005-08-18 Denso Corp 燃焼圧信号処理装置
JP2007310731A (ja) * 2006-05-19 2007-11-29 Ricoh Co Ltd データ転送装置及び画像形成装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59128947A (ja) * 1983-01-13 1984-07-25 Nippon Denso Co Ltd 自動車用多重信号伝送装置
US4750154A (en) * 1984-07-10 1988-06-07 Prime Computer, Inc. Memory alignment system and method
US4787041A (en) * 1985-08-01 1988-11-22 Honeywell Data control system for digital automatic flight control system channel with plural dissimilar data processing
US5583964A (en) * 1994-05-02 1996-12-10 Motorola, Inc. Computer utilizing neural network and method of using same
EP1400672A3 (en) 1995-10-02 2006-05-31 Yamaha Hatsudoki Kabushiki Kaisha Method for controlling an internal combustion engine
US5778857A (en) * 1995-10-02 1998-07-14 Yamaha Hatsudoki Kabushiki Kaisha Engine control system and method
JPH09273437A (ja) 1995-11-10 1997-10-21 Yamaha Motor Co Ltd エンジンの制御方法
JPH11249714A (ja) 1998-02-27 1999-09-17 Mitsubishi Electric Corp プログラマブルコントローラ
JP3539327B2 (ja) 2000-01-18 2004-07-07 株式会社デンソー エンジン制御装置
JP2002207691A (ja) * 2001-01-11 2002-07-26 Matsushita Electric Ind Co Ltd データ転送制御装置
JP5040050B2 (ja) 2001-06-12 2012-10-03 富士通株式会社 複数チャネルdmaコントローラおよびプロセッサシステム
DE10132440A1 (de) 2001-07-04 2003-01-23 Bosch Gmbh Robert System und Verfahren zum Überwachen des Fahrverhaltens eines Fahrzeugs
EP1461710B1 (en) * 2001-12-27 2005-02-09 Nokia Corporation Low-overhead processor interfacing
US20030229733A1 (en) * 2002-06-05 2003-12-11 Hepner David Frank DMA chaining method, apparatus and system
JP4014212B2 (ja) * 2003-11-19 2007-11-28 富士通テン株式会社 電子制御装置
JP2006161645A (ja) * 2004-12-06 2006-06-22 Denso Corp パワートレイン制御用センサ信号処理装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08194602A (ja) * 1995-01-18 1996-07-30 Oki Electric Ind Co Ltd バッファ長可変式アクセス制御装置
JPH10320350A (ja) * 1997-05-20 1998-12-04 Mitsubishi Electric Corp リモートpio制御システム
JP2000215153A (ja) * 1999-01-22 2000-08-04 Nec Corp Dmaデ―タ転送制御方法及び入出力処理装置
JP2005220796A (ja) * 2004-02-04 2005-08-18 Denso Corp 燃焼圧信号処理装置
JP2007310731A (ja) * 2006-05-19 2007-11-29 Ricoh Co Ltd データ転送装置及び画像形成装置

Also Published As

Publication number Publication date
EP1898078B1 (en) 2012-01-04
EP1898078A2 (en) 2008-03-12
US20080059045A1 (en) 2008-03-06
US7444228B2 (en) 2008-10-28
JP2008063992A (ja) 2008-03-21
EP1898078A3 (en) 2009-05-27

Similar Documents

Publication Publication Date Title
JP4532450B2 (ja) エンジン制御用データの処理装置及びエンジン制御装置
JP4033138B2 (ja) 燃焼圧信号処理装置
CN104047794B (zh) 发动机爆震探测系统和方法
US7194898B2 (en) Stroke determination unit and method of measuring stroke in a multi-cylinder four-cycle engine
US6513495B1 (en) Device for suppressing engine knocking in an internal combustion engine
US8042381B2 (en) Knocking determination apparatus and knocking determination method for internal combustion engine
US7647155B2 (en) Apparatus and method for calculating work load engine
JPS639679A (ja) 内燃機関の点火時期制御方法
JP5359932B2 (ja) 4ストロークサイクル内燃機関およびその気筒判別方法
JP2009042027A (ja) 内燃機関のノック判定装置
JP2587543B2 (ja) ノッキング検出装置
JP2011160199A (ja) A/d変換処理装置
JP4507201B2 (ja) 多気筒内燃機関の制御装置
JPH1193760A (ja) エンジン制御装置およびその制御方法
JP4440021B2 (ja) 内燃機関の筒内圧検出装置
JP4243600B2 (ja) 内燃機関の燃焼状態判定装置
US9200584B2 (en) Method and device for operating an internal combustion engine
JP3261087B2 (ja) エンジン制御装置
JP4281037B2 (ja) 内燃機関用点火装置
JP6407828B2 (ja) 内燃機関の制御装置
JPS59120779A (ja) 内燃機関の点火時期制御回路
JP3777963B2 (ja) エンジン制御装置
JP4279690B2 (ja) 内燃機関の筒内圧検出装置
JP2749138B2 (ja) 内燃機関の燃焼異常検出装置
JP2000352349A (ja) 内燃機関の制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081007

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100531

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100601

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100610

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4532450

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140618

Year of fee payment: 4

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

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

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