JP2010251842A - 制御装置および制御方法 - Google Patents
制御装置および制御方法 Download PDFInfo
- Publication number
- JP2010251842A JP2010251842A JP2009095991A JP2009095991A JP2010251842A JP 2010251842 A JP2010251842 A JP 2010251842A JP 2009095991 A JP2009095991 A JP 2009095991A JP 2009095991 A JP2009095991 A JP 2009095991A JP 2010251842 A JP2010251842 A JP 2010251842A
- Authority
- JP
- Japan
- Prior art keywords
- conversion
- time
- converter
- signal
- 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.)
- Withdrawn
Links
Images
Landscapes
- Analogue/Digital Conversion (AREA)
Abstract
【課題】タイムトリガA/D機能が搭載されていなくとも、指定時刻でA/D変換値の取得を行うことができる制御装置および制御方法を提供する。
【解決手段】計時部27と、A/D変換器22とを備える制御装置であって、前記計時部27の計時する時刻情報に従って、前記A/D変換器22を所定周期で起動し、前記A/D変換器22の入力信号であって、前記A/D変換器22でA/D変換された信号を取得して記憶手段に記憶させ、前記記憶手段に前記所定周期ごとに記憶された信号から、制御に使用する信号を選択するソフトウェア処理部29を有する構成としている。
【選択図】図4
【解決手段】計時部27と、A/D変換器22とを備える制御装置であって、前記計時部27の計時する時刻情報に従って、前記A/D変換器22を所定周期で起動し、前記A/D変換器22の入力信号であって、前記A/D変換器22でA/D変換された信号を取得して記憶手段に記憶させ、前記記憶手段に前記所定周期ごとに記憶された信号から、制御に使用する信号を選択するソフトウェア処理部29を有する構成としている。
【選択図】図4
Description
本発明は、制御装置および制御方法に関する。本発明は、特に、車両に搭載される制御装置および制御方法に関する。
車両に搭載される制御装置はA/D変換器を備え、車両に搭載された各種センサからの信号をA/D変換したA/D変換値を制御に使用している(例えば、特許文献1参照)。信号の入力には、制御装置が定期的(例えば、4msec毎)にA/D変換器を起動して信号を入力する場合と、基準時刻から任意の遅延時間を経過した後(以下、指定時刻と略記する)にA/D変換器を起動して信号を入力する場合とがある。
図1に従来のマイコンの構成を示す。マイコン40は、ソフトウェアによる処理を実現するソフトウェア処理部29と、時刻を計時する計時部27と、タイムトリガA/D機能26と、入力信号のA/D変換を実行するA/D変換器22と、計時部27の時刻とタイムトリガA/D機能26の指定時刻とを比較する比較部30とを有する。ここで、タイムトリガA/D機能26とは、指定した時刻で自動的にA/D変換を起動する機能をいう。
次に、マイコン40が指定時刻でのA/D変換値を取得する手順を説明する。
ソフトウェア処理部29は、計時部27より取得した現在時刻に遅延時間を加算する。そして、現在時刻に遅延時間を加算した時刻を指定時刻として、タイムトリガA/D機能26に設定する。指定時刻が設定されると、タイムトリガA/D機能26は、A/D変換を起動する指定時刻とA/D変換器22の起動信号とを比較部30に出力する。
ソフトウェア処理部29は、計時部27より取得した現在時刻に遅延時間を加算する。そして、現在時刻に遅延時間を加算した時刻を指定時刻として、タイムトリガA/D機能26に設定する。指定時刻が設定されると、タイムトリガA/D機能26は、A/D変換を起動する指定時刻とA/D変換器22の起動信号とを比較部30に出力する。
比較部30は、タイムトリガA/D機能26からのA/D変換を起動する指定時刻と計時部27の時刻とを比較し、両者が一致した場合にA/D変換器22の起動信号を出力する。起動信号を受けたA/D変換器22は、入力信号のA/D変換を行い、A/D変換が終了すると、ソフトウェア処理部29にA/D変換完了の割込み入力を行う。A/D変換完了の割込み入力を検知したソフトウェア処理部29は、A/D変換値を取得する。
以上の手順によって、マイコン40は指定時刻でのA/D変化値を取得する。
以上の手順によって、マイコン40は指定時刻でのA/D変化値を取得する。
しかしながら、タイムトリガA/D機能を備えた制御装置は一般的ではなく、一般的な制御装置では、基準時刻から所定の時間を経過した時刻でA/D変換器を起動する処理を実現することが困難であった。
本発明は、上記の事情に鑑みてなされたものであり、タイムトリガA/D機能が搭載されていなくとも、指定時刻でA/D変換値の取得を行うことができる制御装置および制御方法を提供することを目的とする。
本発明の制御装置は、計時部の計時する時刻情報に従って、A/D変換器を所定周期で起動させる手段と、前記計時部の時刻情報と、前記A/D変換器でA/D変換された信号を、前記所定周期ごとに記憶手段に記憶させる手段と、前記記憶手段に前記所定周期ごとに記憶された信号から、制御に使用する信号を選択する手段とを有する。
制御装置は、A/D変換器を所定周期ごとに起動し、所定周期ごとにA/D変換された信号を記憶手段に記憶しているため、タイムトリガA/D機能を持たなくとも、指定時刻でのA/D変換値を取得することができる。
制御装置は、A/D変換器を所定周期ごとに起動し、所定周期ごとにA/D変換された信号を記憶手段に記憶しているため、タイムトリガA/D機能を持たなくとも、指定時刻でのA/D変換値を取得することができる。
上記制御装置において、前記A/D変換器は、信号を入力するチャネルを複数有し、前記選択手段は、前記A/D変換器の起動時刻に、各チャネルのA/D変換処理時間を加算して、所定チャネルでのA/D変換完了時刻を判定し、該A/D変換完了時刻に基づいて車両の制御に使用するの信号を選択する手段を採用する。
上記制御装置は、所定チャネルでのA/D変換完了時刻を判定することができるため、A/D変換器が、信号を入力するチャネルを複数有する場合にも、所定チャネルの指定時刻でのA/D変換値を取得することができる。
上記制御装置は、所定チャネルでのA/D変換完了時刻を判定することができるため、A/D変換器が、信号を入力するチャネルを複数有する場合にも、所定チャネルの指定時刻でのA/D変換値を取得することができる。
上記制御装置において、前記A/D変換器は、信号を入力するチャネルを複数有し、前記選択手段は、前記A/D変換器からA/D変換処理の完了後に入力する割り込み信号の入力時刻から、各チャネルのA/D変換処理時間を減算して、所定チャネルでのA/D変換完了時刻を判定し、該A/D変換完了時刻に基づいて車両の制御に使用するの信号を選択する手段を採用する。
上記制御装置は、所定チャネルでのA/D変換完了時刻を判定することができるため、A/D変換器が、信号を入力するチャネルを複数有する場合にも、所定チャネルの指定時刻でのA/D変換値を取得することができる。
上記制御装置は、所定チャネルでのA/D変換完了時刻を判定することができるため、A/D変換器が、信号を入力するチャネルを複数有する場合にも、所定チャネルの指定時刻でのA/D変換値を取得することができる。
上記制御装置において、前記選択手段は、ON/OFF切替えがある信号において、ONレベルのA/D変換値を取得するときは、指定時刻よりも後に前記A/D変換器に入力された信号のA/D変換値を前記記憶手段から選択し、前期入力信号のOFFレベルのA/D変換値を取得するときは、指定時刻よりも前に前記A/D変換器に入力された信号のA/D変換値を前記記憶手段から選択する手段を採用する。
上記制御装置は、指定時刻よりも後に前記A/D変換器に入力された信号のA/D変換値を前記記憶手段から選択するため、信号レベルが十分に安定した時刻のONレベルのA/D変換値を取得することができる。また、上記制御装置は、指定時刻よりも前に前記A/D変換器に入力された信号のA/D変換値を前記記憶手段から取得するため、ON出力時刻直前のOFFレベルのA/D変換値を取得することができる。
上記制御装置は、指定時刻よりも後に前記A/D変換器に入力された信号のA/D変換値を前記記憶手段から選択するため、信号レベルが十分に安定した時刻のONレベルのA/D変換値を取得することができる。また、上記制御装置は、指定時刻よりも前に前記A/D変換器に入力された信号のA/D変換値を前記記憶手段から取得するため、ON出力時刻直前のOFFレベルのA/D変換値を取得することができる。
上記制御装置において、前記選択手段は、前記記憶手段に記憶された信号の線形補間によって指定時刻のA/D変換値を取得する手段を採用する。
上記制御装置は、前記記憶手段に記憶された信号を線形補間することにより、指定時刻が記憶手段に記憶された信号間にある場合にも、A/D変換値を取得することができる。
上記制御装置は、前記記憶手段に記憶された信号を線形補間することにより、指定時刻が記憶手段に記憶された信号間にある場合にも、A/D変換値を取得することができる。
上記制御装置において、前記選択手段は、前記記憶手段に記憶されたA/D変換値の変化量を算出し、該変化量が閾値を越えた場合には異常値として検出し、制御に使用可能なA/D変換値を取得する手段を採用する。
上記制御装置は、異常値の検出により、信頼性の高いA/D変換値を取得することができる。
上記制御装置は、異常値の検出により、信頼性の高いA/D変換値を取得することができる。
本発明によれば、制御装置がタイムトリガA/D機能を搭載していなくとも、指定時刻でのA/D変換値を取得することが可能となる。
添付図面を参照しながら本発明の好適な実施例を説明する。
図2に、本発明の制御装置をエンジン制御ECU(Electronic Control Unit)に適用した実施例1の構成を示す。
図2に示すようにエンジン制御ECU10は、A/D変換用のIC(Integrated Circuit)20と、マイコン21Aとを備えている。
図2に示すようにエンジン制御ECU10は、A/D変換用のIC(Integrated Circuit)20と、マイコン21Aとを備えている。
IC20は、バッテリセンサ11、バキュームセンサ12、吸気温センサ13、水温センサ14、O2センサ15、スロットルポジションセンサ16等のセンサによって測定されたセンサ信号を入力する。IC20は、入力したセンサ信号をA/D変換し、マイコン21Aに出力する。
マイコン21Aは、IC20から取り込んだセンサ信号と、スタータ信号17と、エンジン回転信号18と、車速信号19とから車両状態を推定し、最適な車両状態にするために、AFヒータ23、インジェクタ24、点火プラグ25を含む各種アクチュエータを制御するパルス信号を出力する。
マイコン21Aは、パルス信号の出力レベルをモニタするために、出力したパルス信号を取り込み、車両の制御に使用する。
マイコン21Aは、パルス信号の出力レベルをモニタするために、出力したパルス信号を取り込み、車両の制御に使用する。
マイコン21Aは、図3に示すハードウェアによって実現される。マイコン21Aは、A/D変換を行うA/D変換器22と、時刻を計時する計時部27と、信号の入出力を行う入出力部34と、制御部28から構成される。また、制御部28は、ECUによる制御処理を実現するためのプログラムや、ソフトウェア処理部29で使用するA/D変換値を取得するプログラムなどが格納されたROM32と、ROM32に格納されたプログラムを読み込んで実行する中央処理装置(CPU)31と、プログラムを実行する際に使用される一時的なデータを保存するRAM(記憶手段)33から構成される。
次に、マイコン21Aで指定時刻でのA/D変換値を取得する処理について図4から図6を参照しながら説明する。
図4にマイコン21Aのハードウェア構成と、プログラム制御によって実現されるソフトウェア処理部29の機能ブロック図を示す。
図4に示すようにマイコン21Aは、ハードウェアとして計時部27と、信号を入力するチャネルを複数有するA/D変換器22と、RAM33を有している。
図4に示すようにマイコン21Aは、ハードウェアとして計時部27と、信号を入力するチャネルを複数有するA/D変換器22と、RAM33を有している。
計時部27からの割込み入力を検出して、例えば1mecごとにA/D変換器22を起動する。A/D変換器22は信号を入力するチャネルを複数有しており、各チャネルの入力信号のA/D変換処理を行う。
ソフトウェア処理部29は、A/D変換器22が全チャネルのA/D変換を完了した時刻を計時部27から取得し、A/D変換器22がA/D変換した全チャネルのA/D変換値をA/D変換器22から取得する。ソフトウェア処理部29は、取得した時刻、各チャネルのA/D変換値の順に、取得した値をRAM33に記憶する。
ソフトウェア処理部29は、上記処理を1msec毎に有効範囲分(例えば16msec)繰返し行い、図5に示されるA/D変換の完了時刻と、各チャネルのA/D変換値とが格納されたデータテーブルを完成する。
ソフトウェア処理部29は、上記処理を1msec毎に有効範囲分(例えば16msec)繰返し行い、図5に示されるA/D変換の完了時刻と、各チャネルのA/D変換値とが格納されたデータテーブルを完成する。
ソフトウェア処理部29は全チャネルのA/D変換が完了した時刻を計時部27から取得しRAM33に記憶するため、各チャネルのA/D変換完了時刻は、RAM33には記憶されていない。そこで、ソフトウェア処理部29は、各チャネルにおけるA/D変換の完了時刻を、A/D変換器22のスペックで決定される1チャネルあたりのA/D変換時刻(Tad)を用いて求める。
図6で示されるチャネルの最大値を7とし、ある定期起動時刻における全チャネルのA/D変換完了時刻をT0とすると、チャネルnのA/D変換完了時刻は、
T0−((7−n)×Tad) n=0〜7
で計算される。したがって、各チャネルのA/D変換完了時刻を精度よく推定できる。
図6で示されるチャネルの最大値を7とし、ある定期起動時刻における全チャネルのA/D変換完了時刻をT0とすると、チャネルnのA/D変換完了時刻は、
T0−((7−n)×Tad) n=0〜7
で計算される。したがって、各チャネルのA/D変換完了時刻を精度よく推定できる。
次に、ソフトウェア処理部29がA/D変換を起動する処理手順を、図7に示すフローチャートを参照しながら説明する。
ソフトウェア処理部29は計時部27からの割込み入力を検知すると(ステップS1/YES)、A/D変換器22を起動して、チャネル0からチャネル7までのA/D変換値を取得する(ステップS2)。この際、全チャネルで同一の信号を取り込み、指定時刻に最も近いチャネルに入力された信号のA/D変換値を取得しても良い。
割込み入力がない場合には、ソフトウェア処理部29は、割込み入力を検知するまで待機する(ステップS1/NO)。
ソフトウェア処理部29は計時部27からの割込み入力を検知すると(ステップS1/YES)、A/D変換器22を起動して、チャネル0からチャネル7までのA/D変換値を取得する(ステップS2)。この際、全チャネルで同一の信号を取り込み、指定時刻に最も近いチャネルに入力された信号のA/D変換値を取得しても良い。
割込み入力がない場合には、ソフトウェア処理部29は、割込み入力を検知するまで待機する(ステップS1/NO)。
次に、ソフトウェア処理部29がRAM33へ、A/D変換完了時刻およびA/D変換値を格納する処理手順を、図8に示すフローチャートを参照しながら説明する。
A/D変換器22は、A/D変換が完了すると、A/D変換完了割込み処理をCPU31に行う。
ソフトウェア処理部29は、CPU31にA/D変換完了割込みが入力されたことを検知すると(ステップS11/YES)、時刻を計時する計時部27からA/D変換完了時刻を取得し、CPU31のレジスタgtmに格納する。ソフトウェア処理部29は、レジスタgtmに格納されたA/D変換完了時刻を、現在時刻を表す変数Tnowに代入する(ステップS12)。
A/D変換器22は、A/D変換が完了すると、A/D変換完了割込み処理をCPU31に行う。
ソフトウェア処理部29は、CPU31にA/D変換完了割込みが入力されたことを検知すると(ステップS11/YES)、時刻を計時する計時部27からA/D変換完了時刻を取得し、CPU31のレジスタgtmに格納する。ソフトウェア処理部29は、レジスタgtmに格納されたA/D変換完了時刻を、現在時刻を表す変数Tnowに代入する(ステップS12)。
ここで、ソフトウェア処理部29が、A/D変換完了時刻と、全チャネルのA/D変換値を図5に示すデータテーブルに格納する処理について説明する。
データテーブルは、16行×9列の2次元配列構造をしており、0列目は計時部27から取得するA/D変換完了時刻を格納し、1列目から8列目はチャネル0から7のA/D変換値を格納する。また、各行は、1msecごとのA/D変換完了時刻と、各チャネルのA/D変換値とを格納し、16msec過去分までを記憶する。
データテーブルは、16行×9列の2次元配列構造をしており、0列目は計時部27から取得するA/D変換完了時刻を格納し、1列目から8列目はチャネル0から7のA/D変換値を格納する。また、各行は、1msecごとのA/D変換完了時刻と、各チャネルのA/D変換値とを格納し、16msec過去分までを記憶する。
最初に、ソフトウェア処理部29は、A/D変換完了時刻を図5のテーブルに格納する。前述したとおり、A/D変換完了時刻は0列目に格納されるので、ソフトウェア処理部29は、現在の処理位置に対応するindex行の、0列目であるaddata[index][0]に変数Tnowを代入する(ステップS13)。ここで、indexは初期値を0とし、現在の処理位置を示す変数である。
次にソフトウェア処理部29は、index行の1列目から8列目に各チャネルのA/D変換値を格納する。CPU31のレジスタadbuf[0]〜adbuf[7]には、チャネル0からチャネル7の8チャネルのA/D変換結果が格納されているので、ソフトウェア処理部29は、レジスタから全チャネルのA/D変換値を取り込み、index行の1列目から8列目のデータを表すaddata[index][1]〜addata[index][8]へと代入する(ステップS14)。ソフトウェア処理部29は、代入処理の終了後、データテーブルの次行に次の定期起動処理によるA/D変換完了時刻およびA/D変換値を格納するために、インデックスを更新する(ステップS15)。
以上の処理を繰り返し、ソフトウェア処理部29は、図5に示されるデータテーブルを完成する。
次に、前述の処理によって完成した図5のデータテーブルから、ON/OFF切替えがある信号の指定時刻におけるA/D変換値を取得する手順について、図10から図12を用いて説明する。なお、ON/OFF切替えがある信号とは、図9に示されるONとOFFとを交互に繰り返す信号をいう。
図10は、ソフトウェア処理部29がパルス出力からONレベル取得の指定時刻と、OFFレベル取得の指定時刻を求める処理フローを示している。ソフトウェア処理部29は、周期的にON/OFFの信号を出力しているので、信号出力の周期からON信号が出力される時間を計算することができる。そこで、ソフトウェア処理部29は、現在の時刻と信号出力の周期とから、ON信号が出力される時間を算出する(ステップS31)。ソフトウェア処理部29は、現在時刻の取得処理からON信号の出力処理が終了するまで、他の処理の割込みを禁止するため割込み禁止処理を行う(ステップS32)。
ソフトウェア処理部29はON時間を算出(ステップS31)しているため、ON信号が出力される時刻がわかっている。そこで、ON信号を出力する直前の現在時刻を計時部27より取得し変数Tnowに取得した時刻(gtm)を代入する(ステップS33)。変数Tnowが、後述するONレベル取得の指定時刻およびOFFレベル取得の指定時刻を算出するための基準となる。
ソフトウェア処理部29は、算出したON信号の出力時刻に、ON信号の出力処理を行う(ステップS34)。そして、ON出力の継続時間後にOFF出力信号を出力するための予約を行う(ステップS35)。ON信号の出力処理後、ソフトウェア処理部29は割込み許可処理を行う(ステップS36)。
ソフトウェア処理部29は、ON信号の出力直前の時刻を取得しているので(ステップS33)、変数Tnowにパルス信号が十分ONレベルに立ち上がる時間を表す遅延時間の変数であるTdlyを加算した値を、ONレベル取得の指定時刻を表す変数Tonに代入する。また、変数Tnowの値をOFFレベル取得の指定時刻であるToffに代入する(ステップS37)。
なお、図10中のステップS35は、パルス出力時の一動作を表したものであるが、このステップは行わなくても良い。
なお、図10中のステップS35は、パルス出力時の一動作を表したものであるが、このステップは行わなくても良い。
次に、図5のデータテーブルを使用して、前述の処理で求められたONレベル取得の指定時刻とOFFレベルの指定時刻における、指定チャネルX(Xは0から7)のA/D変換値を取得する処理について説明する。
図11は、ソフトウェア処理部29におけるONレベルのA/D変換値の取得処理のフローチャートを示している。
本実施例では、ソフトウェア処理部29は、例えば16msecごとに、ONレベルのA/D変換値の取得処理を行うこととする(ステップS21)。
本実施例では、ソフトウェア処理部29は、例えば16msecごとに、ONレベルのA/D変換値の取得処理を行うこととする(ステップS21)。
図5に示すデータテーブルに格納されたデータのうち、A/D変換値の検出処理の直前に更新されたデータから遡って、指定時刻に最も近いA/D変換完了時刻を検索するため、ソフトウェア処理部29は、変数iに処理位置を示す変数indexの最新の値を代入する(ステップS22)。
index行の0列目に格納されているデータは、全チャネルのA/D変換完了時刻または、A/D変換起動時刻であるため、ソフトウェア処理部29は、チャネルXのA/D変換完了時刻を表す変数Tchx[i]を求め、ONレベル取得の指定時刻Tonと比較する(ステップS23)。
ここで、ソフトウェア処理部29は、A/D変換完了時刻を起点とする場合には、A/D変換値を取得するチャネルXにおけるA/D変換完了時刻を以下の計算式により算出する。
Tchx[i]=addata[i][0]−(7−X)×Tad
一方、ソフトウェア処理部29は、A/D変換起動時刻を起点とする場合には、A/D変換値を取得するチャネルXにおけるA/D変換完了時刻を以下の計算式により算出する。
Tchx[i]=addata[i][0]+(X+1)×Tad
ここで、ソフトウェア処理部29は、A/D変換完了時刻を起点とする場合には、A/D変換値を取得するチャネルXにおけるA/D変換完了時刻を以下の計算式により算出する。
Tchx[i]=addata[i][0]−(7−X)×Tad
一方、ソフトウェア処理部29は、A/D変換起動時刻を起点とする場合には、A/D変換値を取得するチャネルXにおけるA/D変換完了時刻を以下の計算式により算出する。
Tchx[i]=addata[i][0]+(X+1)×Tad
ソフトウェア処理部29は、A/D変換完了時刻の値がTonよりも大きい場合には(ステップS23/YES)、ONレベルのindexを仮設定するために、iの値を仮のインデックス値を表す変数index_oに代入する(ステップS24)。次に、1周期前のA/D変換完了時刻との比較を行うため、ソフトウェア処理部29は、iの値をデクリメントする(ステップS25)。そして、ソフトウェア処理部29は、デクリメントされたiによって得られるA/D変換完了時刻とTonをさらに比較する(ステップS23)。ソフトウェア処理部29は、チャネルXのA/D変換完了時刻がTon以下になるまで、同様の処理を継続する。
A/D変換完了時刻の値がTon以下になった場合には(ステップS23/NO)、Tonが、チャネルXのA/D変換完了時刻Tchx[index_o]とTchx[i]との間にある時刻であることがわかる。
そこで、ONレベルのA/D変換値は、指定時刻よりも後にA/D変換器22に入力された信号のA/D変換値を取得することとすると、ONレベルのA/D変換値を表すAD_onにaddata[index_o][X+1]を代入することで求められる。(ステップS26)。
この手順によれば、ソフトウェア処理部29は、指定時刻よりも後にA/D変換器22に入力された信号のA/D変換値を取得することができる。したがって、信号が十分安定したONレベルの信号のA/D変換値を確実に取得することができる。
そこで、ONレベルのA/D変換値は、指定時刻よりも後にA/D変換器22に入力された信号のA/D変換値を取得することとすると、ONレベルのA/D変換値を表すAD_onにaddata[index_o][X+1]を代入することで求められる。(ステップS26)。
この手順によれば、ソフトウェア処理部29は、指定時刻よりも後にA/D変換器22に入力された信号のA/D変換値を取得することができる。したがって、信号が十分安定したONレベルの信号のA/D変換値を確実に取得することができる。
図12は、ソフトウェア処理部29におけるOFFレベルのA/D変換値の取得処理のフローチャートを示している。
ステップS41からステップS45は、図11に示したONレベルのA/D変換値の取得処理フローチャートのステップS21からステップS25に対応する。
本処理は、OFFレベルのA/D変換値は指定時刻よりも前にA/D変換器22に入力された信号のA/D変換値であると仮定して、OFFレベルのA/D変換値を表すAD_offにaddata[i][X+1]を代入する点において、ONレベルのA/D変換値の取得処理とは異なる(ステップS46)。
この手順によれば、ソフトウェア処理部29は、指定時刻よりも前にA/D変換器22に入力された信号のA/D変換値を取得することができる。したがって、ON信号が出力される前の、OFFレベルの信号のA/D変換値を確実に取得することができる。
ステップS41からステップS45は、図11に示したONレベルのA/D変換値の取得処理フローチャートのステップS21からステップS25に対応する。
本処理は、OFFレベルのA/D変換値は指定時刻よりも前にA/D変換器22に入力された信号のA/D変換値であると仮定して、OFFレベルのA/D変換値を表すAD_offにaddata[i][X+1]を代入する点において、ONレベルのA/D変換値の取得処理とは異なる(ステップS46)。
この手順によれば、ソフトウェア処理部29は、指定時刻よりも前にA/D変換器22に入力された信号のA/D変換値を取得することができる。したがって、ON信号が出力される前の、OFFレベルの信号のA/D変換値を確実に取得することができる。
指定時刻に一致する各チャネルのA/D変換完了時刻が存在しない場合には、指定時刻前後のA/D変換値を取得して、線形補間を行うことにより、指定時刻でのA/D変換値を求めることができる。
そこで、指定時刻前後のA/D変換値を取得し、線形補間することにより、指定時刻でのA/D変換値を求める手順を、図13および図14を用いて説明する。
そこで、指定時刻前後のA/D変換値を取得し、線形補間することにより、指定時刻でのA/D変換値を求める手順を、図13および図14を用いて説明する。
まず、図13を用いて、リニアに変化する信号において、指定時刻におけるA/D変換値を線形補間して取得する原理を説明する。
図13において、Tは指定時刻を、T3とT4は、指定時刻Tを挟むRAM33に記憶された時刻情報であり、V3とV4は、時刻情報T3とT4に対応する信号のA/D変換値を表している。
図13の信号における指定時刻TでのA/D変換値Vは、T3、T4、V3、およびV4を用いて、以下の計算式により求めることができる。
V=V3+(V4−V3)×(T−T3)/(T4−T3)
図13において、Tは指定時刻を、T3とT4は、指定時刻Tを挟むRAM33に記憶された時刻情報であり、V3とV4は、時刻情報T3とT4に対応する信号のA/D変換値を表している。
図13の信号における指定時刻TでのA/D変換値Vは、T3、T4、V3、およびV4を用いて、以下の計算式により求めることができる。
V=V3+(V4−V3)×(T−T3)/(T4−T3)
図14は、前述した手順に基づいて、ソフトウェア処理部29が、線形補間により指定時刻でのA/D変換値を求める処理のフローチャートである。
本実施例では、ソフトウェア処理部29は、例えば16msecごとに、線形補間によるA/D変換値の取得処理を行うこととする(ステップS51)。
本実施例では、ソフトウェア処理部29は、例えば16msecごとに、線形補間によるA/D変換値の取得処理を行うこととする(ステップS51)。
図5に示すデータテーブルに格納されたデータのうち、A/D変換値の検出処理の直前に更新されたデータから遡って、指定時刻に最も近いA/D変換完了時刻を検索するため、ソフトウェア処理部29は、変数iに処理位置を示す変数indexの最新の値を代入する(ステップS52)。
index行の0列目に格納されているデータは、全チャネルのA/D変換完了時刻または、A/D変換起動時刻であるため、ソフトウェア処理部29は、チャネルXのA/D変換完了時刻を表す変数Tchx[i]を求め、指定時刻を表す変数Ttarと比較する(ステップS53)。
ここで、ソフトウェア処理部29は、A/D変換完了時刻を起点とした場合には、A/D変換値を取得するチャネルXにおけるA/D変換完了時刻を以下の計算式により算出する。
Tchx[i]=addata[i][0]−(7−X)×Tad
一方、ソフトウェア処理部29は、A/D変換起動時刻を起点とした場合には、A/D変換値を取得するチャネルXにおけるA/D変換完了時刻を以下の計算式により算出する。
Tchx[i]=addata[i][0]+(X+1)×Tad
ここで、ソフトウェア処理部29は、A/D変換完了時刻を起点とした場合には、A/D変換値を取得するチャネルXにおけるA/D変換完了時刻を以下の計算式により算出する。
Tchx[i]=addata[i][0]−(7−X)×Tad
一方、ソフトウェア処理部29は、A/D変換起動時刻を起点とした場合には、A/D変換値を取得するチャネルXにおけるA/D変換完了時刻を以下の計算式により算出する。
Tchx[i]=addata[i][0]+(X+1)×Tad
ソフトウェア処理部29は、A/D変換完了時刻の値がTtarよりも大きい場合には(ステップS53/YES)、ONレベルのindexを仮設定するために、iの値をindex_oに代入する(ステップS54)。次に、1周期前のA/D変換完了時刻と比較を行うため、ソフトウェア処理部29は、iの値をデクリメントする(ステップS55)。そして、ソフトウェア処理部29は、デクリメントされたiによって得られるA/D変換完了時刻とTtarをさらに比較する(ステップS53)。ソフトウェア処理部29は、A/D変換完了時刻が指定時刻を表す変数Ttar以下になるまで、同様の処理を継続する。
A/D変換完了時刻の値がTtar以下になった場合には(ステップS53/NO)、Ttarは、チャネルXのA/D変換完了時刻Tchx[i]とTchx[index_o]との間の時刻であることがわかる。
すると、両A/D変換完了時刻Tchx[i]およびTchx[index_o]は、それぞれ、図13におけるT3およびT4に対応する。また、両A/D変換完了時刻におけるA/D変換値addata[i][X+1]およびaddata[index_o][X+1]は、それぞれ、図13におけるV3およびV4にあたる。
よって、ソフトウェア処理部29は、Tchx[i]とTchx[index_o]とaddata[i][X]とaddata[index_o][X]とを用いて、指定時刻でのA/D変換値を線形補間して求めることができる(ステップS56)。
すると、両A/D変換完了時刻Tchx[i]およびTchx[index_o]は、それぞれ、図13におけるT3およびT4に対応する。また、両A/D変換完了時刻におけるA/D変換値addata[i][X+1]およびaddata[index_o][X+1]は、それぞれ、図13におけるV3およびV4にあたる。
よって、ソフトウェア処理部29は、Tchx[i]とTchx[index_o]とaddata[i][X]とaddata[index_o][X]とを用いて、指定時刻でのA/D変換値を線形補間して求めることができる(ステップS56)。
上述してきたように、ソフトウェア処理部29は、データテーブルや、線形補間から、指定時刻のA/D変換値を取得することができる。しかし、ソフトウェア処理部29は、指定時刻のA/D変換値を取得する場合に、1ポイントのA/D変換結果を取得するため、図16に示されるノイズを取り込み真の値からかけ離れた値が取り込まれる場合がある。
そこで、ソフトウェア処理部29が、取得したA/D変換値が異常値かどうかを検出し、制御に使用可能なA/D変換値を取得する処理について、図15を用いて説明する。
そこで、ソフトウェア処理部29が、取得したA/D変換値が異常値かどうかを検出し、制御に使用可能なA/D変換値を取得する処理について、図15を用いて説明する。
図15は、ソフトウェア処理部29が異常値を検出する処理のフローチャートである。
A/D変換値の取得処理を実行すると、取得したA/D変換値が格納されたデータテーブル中の行番号が決定する。このA/D変換値の取得処理で決定した行番号をindexとする。(ステップS61)。
A/D変換値の取得処理を実行すると、取得したA/D変換値が格納されたデータテーブル中の行番号が決定する。このA/D変換値の取得処理で決定した行番号をindexとする。(ステップS61)。
次に、ソフトウェア処理部29は、チャネルXのi行でのA/D変換値addata[i][X+1]と1周期前のA/D変換値addata[i−1][X+1]を用いて、過去の値との変化量であるΔAD1を求める。ここで、変数iはindexの値を表す。また、チャネルXのi行でのA/D変換値addata[i][X+1]と1周期後のA/D変換値addata[i+1][X+1]を用いて、未来の値との変化量であるΔAD2を求める(ステップS62)。
ソフトウェア処理部29は、取得したA/D変換値addata[i][X+1]が異常値かどうかを検出するために、ΔAD1の絶対値と変化量の許容値であるΔADMAXを比較し、ΔAD2の絶対値とΔADMAXを比較する(ステップS63)。
ソフトウェア処理部29は、ΔAD1またはΔAD2のいずれか一方の絶対値がΔADMAXよりも大きい場合には(ステップS63/YES)、addata[i][X+1]は異常値であるため、制御に使用すべきでない。そこで、異常値検出処理を経て決定したA/D変換値を表す変数ADに、addata[0][X+1]からaddata[15][X+1]の平均値を代入する。(ステップS65)。なお、本ステップS65での処理では、addata[0][X+1]からaddata[15][X+1]の平均値を代入する代わりに、安全値として設定してあるデフォルト値をADへ代入しても良い。
ΔAD1とΔAD2のいずれの絶対値もΔADMAX以下である場合には(ステップS63/NO)、取得したA/D変換値addata[i][X]は異常値ではないため、ソフトウェア処理部29は、取得したA/D変換値であるaddata[i][X]をADへ代入する(ステップS64)。
ソフトウェア処理部29は、本処理により求めたA/D変換値を、制御に使用する(ステップS67)。
ソフトウェア処理部29は、本処理により求めたA/D変換値を、制御に使用する(ステップS67)。
このように本実施例によれば、タイムトリガA/D機能を有さないマイコン21Aが、信号入力チャネルを複数有するA/D変換器22のA/D変換完了時刻と、各チャネルのA/D変換値とを用いて、指定時刻のA/D変換値を取得することができる。また、マイコン21Aは、異常値の検出処理を行うことで、信頼性の高いA/D変換値を取得し、制御に使用することができる。
次に、添付図面を参照しながら、実施例2について説明する。ただし、実施例2の構成は実施例1と同一であるので、構成の詳細な説明は省略する。
実施例2は、ソフトウェア処理部29がA/D変換起動時刻およびA/D変換値をデータテーブルに格納する処理において、実施例1と異なるため、以下では本処理手順について説明する。
実施例2は、ソフトウェア処理部29がA/D変換起動時刻およびA/D変換値をデータテーブルに格納する処理において、実施例1と異なるため、以下では本処理手順について説明する。
マイコン21Bが、指定時刻でのA/D変換値を取得する処理について、実施例1と異なる部分を中心に、図17から図21を参照しながら説明する。
図17にマイコン21Bのハードウェア構成とプログラム制御によって実現されるソフトウェア処理部29の機能ブロック図を示す。
図17に示すようにマイコン21Bは、ハードウェアとして計時部27と、信号を入力するチャネルを複数有するA/D変換器22と、RAM33を有している。
図17に示すようにマイコン21Bは、ハードウェアとして計時部27と、信号を入力するチャネルを複数有するA/D変換器22と、RAM33を有している。
A/D変換器22は信号を入力するチャネルを複数有しており、ソフトウェア処理部29からの命令により、例えば1msecごとに定期起動され、各チャネルの入力信号のA/D変換処理を行う。
ソフトウェア処理部29は、A/D変換器22が起動された時刻を計時部27から取得し、A/D変換器22がA/D変換した全チャネルのA/D変換値をA/D変換器22から取得する。ソフトウェア処理部29は、取得した時刻、各チャネルのA/D変換値の順に、取得した値をRAM33に記憶する。
ソフトウェア処理部29は、上記処理を1msec毎に有効範囲分(例えば16msec)繰り返し行い、図18に示されるA/D変換の起動時刻と、各チャネルのA/D変換値とが格納されたデータテーブルを完成する。
ソフトウェア処理部29は、上記処理を1msec毎に有効範囲分(例えば16msec)繰り返し行い、図18に示されるA/D変換の起動時刻と、各チャネルのA/D変換値とが格納されたデータテーブルを完成する。
ソフトウェア処理部29は、A/D変換を起動した時刻を計時部27から取得しRAM33に記憶するため、各チャネルのA/D変換完了時刻はRAM33には記憶されていない。そこで、ソフトウェア処理部29は、各チャネルにおけるA/D変換の完了時刻を、A/D変換器22のスペックで決定される1チャネルあたりのA/D変換時刻(Tad)を用いて求める。
図19で示されるチャネルの最大値を7とし、ある定期起動時刻における全チャネルのA/D変換完了時刻をT0とすると、チャネルnの変換時刻は、
T0+((n+1)×Tad) n=0〜7
で計算される。したがって、各チャネルのA/D変換完了時刻を精度よく推定できる。
図19で示されるチャネルの最大値を7とし、ある定期起動時刻における全チャネルのA/D変換完了時刻をT0とすると、チャネルnの変換時刻は、
T0+((n+1)×Tad) n=0〜7
で計算される。したがって、各チャネルのA/D変換完了時刻を精度よく推定できる。
次に、ソフトウェア処理部29が、A/D変換起動時刻をRAM33に格納する処理について、図20を用いて説明する。
ソフトウェア処理部29は、計時部27からの割込み入力を検知し(ステップS71/YES)、A/D変換器22の起動時刻取得処理から、A/D変換器22の起動処理までの間、他の処理の割込み禁止処理を行う(ステップS72)。
ソフトウェア処理部29は、計時部27からの割込み入力を検知し(ステップS71/YES)、A/D変換器22の起動時刻取得処理から、A/D変換器22の起動処理までの間、他の処理の割込み禁止処理を行う(ステップS72)。
ソフトウェア処理部29は、計時部27からA/D変換起動時刻を取得し、CPU31のレジスタgtmに格納する。ソフトウェア処理部29は、レジスタgtmに格納されたA/D変換完了時刻gtmを変数Tnowへ代入する(ステップ73)。
次に、ソフトウェア処理部29は、変数Tnowを図18のテーブルに格納する処理を行う。
A/D変換起動時刻は図18のデータテーブルの0列目に格納されるので、ソフトウェア処理部29は、現在の処理位置に対応するindex行の0列目であるaddata[index][0]に変数Tnowを代入する(ステップS74)。ここで、indexは初期値を0とし、現在の処理位置を示す変数である。
A/D変換起動時刻は図18のデータテーブルの0列目に格納されるので、ソフトウェア処理部29は、現在の処理位置に対応するindex行の0列目であるaddata[index][0]に変数Tnowを代入する(ステップS74)。ここで、indexは初期値を0とし、現在の処理位置を示す変数である。
ソフトウェア処理部29からの命令により定期起動されたA/D変換器22は、チャネル0からチャネル7までのA/D変換を行う(ステップS75)。この際、全チャネルで同一の信号を取り込み、指定時刻に最も近いチャネルに入力された信号のA/D変換値を取得しても良い。
ソフトウェア処理部29はA/D変換器22の起動後、割込み許可処理を行う(ステップS76)。
ソフトウェア処理部29はA/D変換器22の起動後、割込み許可処理を行う(ステップS76)。
図21は、ソフトウェア処理部29が、CPU31のレジスタに格納されている各チャネルのA/D変換値を、RAM33に格納する処理を示したフローチャートである。
A/D変換器22は、A/D変換完了後、CPU31にA/D変換完了割込み処理を行う。
ソフトウェア処理部29は、A/D変換の完了割込みの入力を検知すると(ステップS81/YES)、CPU31のレジスタ(adbuf[0]〜adbuf[7])に格納されている全チャネルのA/D変換値を、index行の1列目から8列目のデータを表すaddata[index][1]〜addata[index][8]へと代入する(ステップS82)。ソフトウェア処理部29は代入処理の終了後、データテーブルの次行に次の定期起動処理によるA/D変換完了時刻およびA/D変換値を格納するために、インデックスを更新する(ステップS83)。
ソフトウェア処理部29は、A/D変換の完了割込みの入力を検知すると(ステップS81/YES)、CPU31のレジスタ(adbuf[0]〜adbuf[7])に格納されている全チャネルのA/D変換値を、index行の1列目から8列目のデータを表すaddata[index][1]〜addata[index][8]へと代入する(ステップS82)。ソフトウェア処理部29は代入処理の終了後、データテーブルの次行に次の定期起動処理によるA/D変換完了時刻およびA/D変換値を格納するために、インデックスを更新する(ステップS83)。
以上の処理を繰返し、ソフトウェア処理部29は、図18に示されるデータテーブルを完成する。
このように本実施例によれば、タイムトリガA/D機能を有さないマイコン21Bは、入力チャネルを複数有するA/D変換器22のA/D変換起動時刻と、各チャネルのA/D変換値とを用いて指定時刻のA/D変換値を取得することができる。
以上、本発明の好ましい実施の形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
上述した実施例は、車両の制御装置での実施例を示したが、これに限定されず、計時部27とA/D変換器22を有するマイコンであれば、本発明の適用が可能である。
上述した実施例は、車両の制御装置での実施例を示したが、これに限定されず、計時部27とA/D変換器22を有するマイコンであれば、本発明の適用が可能である。
11…バッテリ
12…バキュームセンサ
13…吸気温センサ
14…水温センサ
15…O2センサ
16…スロットルポジションセンサ
17…スタータ信号
18…エンジン回転信号
19…車速センサ
20…IC
21A、21B、40…マイコン
22…A/D変換器
23…AFヒーター
24…インジェクタ
25…点火プラグ
26…タイムトリガA/D機能
27…計時部
28…制御部
29…ソフトウェア処理部
30…比較部
31…CPU
32…ROM
33…RAM(記憶手段)
34…入出力部
12…バキュームセンサ
13…吸気温センサ
14…水温センサ
15…O2センサ
16…スロットルポジションセンサ
17…スタータ信号
18…エンジン回転信号
19…車速センサ
20…IC
21A、21B、40…マイコン
22…A/D変換器
23…AFヒーター
24…インジェクタ
25…点火プラグ
26…タイムトリガA/D機能
27…計時部
28…制御部
29…ソフトウェア処理部
30…比較部
31…CPU
32…ROM
33…RAM(記憶手段)
34…入出力部
Claims (7)
- 計時部と、A/D変換器とを備える制御装置であって、
前記計時部の計時する時刻情報に従って、前記A/D変換器を所定周期で起動させる起動手段と、
前記A/D変換器でA/D変換された信号を取得して記憶手段に記憶させる記憶処理手段と、
前記記憶手段に前記所定周期ごとに記憶された信号から、車両の制御に使用する信号を選択する選択手段と、
を有することを特徴とする制御装置。 - 前記A/D変換器は、信号を入力するチャネルを複数有し、
前記選択手段は、前記A/D変換器の起動時刻に、各チャネルのA/D変換処理時間を加算して、所定チャネルでのA/D変換完了時刻を判定し、該A/D変換完了時刻に基づいて車両の制御に使用する信号を選択することを特徴とする請求項1記載の制御装置。 - 前記A/D変換器は、信号を入力するチャネルを複数有し、
前記選択手段は、前記A/D変換器からA/D変換処理の完了後に入力する割り込み信号の入力時刻から、各チャネルのA/D変換処理時間を減算して、所定チャネルでのA/D変換完了時刻を判定し、該A/D変換完了時刻に基づいて車両の制御に使用する信号を選択することを特徴とする請求項1記載の制御装置。 - 前記選択手段は、入力信号のONレベルのA/D変換値を取得するときは、取得タイミングとして指定された時刻よりも後に前記A/D変換器に入力された信号のA/D変換値を前記記憶手段から選択し、
前記入力信号のOFFレベルのA/D変換値を取得するときは、取得タイミングとして指定された時刻よりも前に前記A/D変換器に入力された信号のA/D変換値を前記記憶手段から選択することを特徴とする請求項1から3のいずれか一項記載の制御装置。 - 前記選択手段は、取得タイミングとして指定された時刻の前後のA/D変換値を前記記憶手段より抽出し、抽出された2つのA/D変換値を用いて線形補間を行うことで、取得タイミングとして指定された時刻のA/D変換値を取得することを特徴とする請求項1から4のいずれか一項記載の制御装置。
- 前記選択手段は、前記記憶手段に記憶されたA/D変換値の変化量を算出し、該変化量が閾値を越えた場合には異常値として検出し、制御に使用可能な信号のA/D変換値を取得することを特徴とする請求項1から5のいずれか一項記載の制御装置。
- 計時部と、A/D変換器とを備える制御装置における制御方法であって、
前記計時部の計時する時刻情報に従って、前記A/D変換器を所定周期で起動させる起動ステップと、
前記A/D変換器の入力信号であって、前記A/D変換器でA/D変換された信号を取得して記憶手段に記憶させる記憶処理ステップと、
前記記憶手段に前記所定周期ごとに記憶された信号から、車両の制御に使用する信号を選択する選択ステップと、
を有することを特徴とする制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009095991A JP2010251842A (ja) | 2009-04-10 | 2009-04-10 | 制御装置および制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009095991A JP2010251842A (ja) | 2009-04-10 | 2009-04-10 | 制御装置および制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010251842A true JP2010251842A (ja) | 2010-11-04 |
Family
ID=43313730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009095991A Withdrawn JP2010251842A (ja) | 2009-04-10 | 2009-04-10 | 制御装置および制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010251842A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018096273A (ja) * | 2016-12-13 | 2018-06-21 | 株式会社デンソー | 電子制御装置 |
US10727855B2 (en) | 2018-03-22 | 2020-07-28 | Casio Computer Co., Ltd. | Analog-to-digital conversion apparatus |
JP2021015613A (ja) * | 2016-12-13 | 2021-02-12 | 株式会社デンソー | 電子制御装置 |
-
2009
- 2009-04-10 JP JP2009095991A patent/JP2010251842A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018096273A (ja) * | 2016-12-13 | 2018-06-21 | 株式会社デンソー | 電子制御装置 |
JP2021015613A (ja) * | 2016-12-13 | 2021-02-12 | 株式会社デンソー | 電子制御装置 |
US10727855B2 (en) | 2018-03-22 | 2020-07-28 | Casio Computer Co., Ltd. | Analog-to-digital conversion apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005167972A (ja) | A/d変換処理装置、その使用方法及び電子制御装置 | |
EP1707937B1 (en) | Stroke determination unit for 4-cycle engine | |
JP5102778B2 (ja) | 筒内圧センサの出力補正装置及びこれを備えた筒内圧検出装置 | |
JP2004353531A (ja) | 内燃機関のノック制御装置 | |
JP4705690B2 (ja) | 内燃機関に対する少なくとも1つの測定センサの出力信号の分解能を高めるための方法並びに所属の制御装置 | |
JP2005220796A (ja) | 燃焼圧信号処理装置 | |
JP2009257316A (ja) | 内燃機関のノッキング検出装置 | |
JP2010251842A (ja) | 制御装置および制御方法 | |
JP4375331B2 (ja) | ノックセンサ信号処理装置 | |
JP5163475B2 (ja) | 信号処理装置 | |
JP2004340914A (ja) | ガス濃度センサの制御装置 | |
JP6237303B2 (ja) | クランク角検出装置 | |
JP4869366B2 (ja) | 内燃機関のノッキング検出装置 | |
JP2016105065A (ja) | 酸素濃度センサの制御装置 | |
JP2015194483A (ja) | ガスセンサ制御装置 | |
KR101921822B1 (ko) | 검출 장치 및 시동 장치 | |
JP2005201236A (ja) | 内燃機関の筒内圧検出装置 | |
JP3777963B2 (ja) | エンジン制御装置 | |
JP2008256723A (ja) | 筒内圧センサの出力補正装置及びこれを備えた筒内圧検出装置 | |
JPS61244856A (ja) | エンジンの信号処理装置 | |
JP2006217507A (ja) | 電子制御装置 | |
JP2008076083A (ja) | サンプリング周期の設定方法および信号処理装置 | |
JPH0692771B2 (ja) | エンジンの燃焼解析装置 | |
JP2006125240A (ja) | エンジン制御装置 | |
JP2016094921A (ja) | 燃料噴射制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120703 |