説明

A/D変換手法

【課題】
A/D変換によりCPUに発生するA/D変換待ち処理をなくし、CPU負荷を削減する手法を提供する。A/D変換には通常十数μsの時間を要するが、CPUは、A/D変換終了後に結果をRAMに格納するため、A/D変換終了を待つ必要があり、この間他処理を実行できない。公知例では、マルチ制御部を新設することで、A/D変換終了を待たなくて済むとしているが、指定されたタイミングで最新のA/D値が必要な場合、やはり待ち時間が必要となる。そのため、A/D変換実行中は他の処理が実行できず、変換が終了するまで待たなくてはならないという課題がある。
【解決手段】
検出データ間隔を計測し、間隔時間に基づきA/D変換開始時期を変更することによって、A/D値を必要とするタイミングでは既にA/D変換が終了している状態とする。これによりA/D変換終了を待つ必要がなくなり、CPUに掛かる負荷を削減することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、センサが検出したアナログ信号をデジタル信号に変換するA/D変換器を備える自動車等の電子制御装置に関する。
【背景技術】
【0002】
自動車等の電子制御装置に用いるマイクロコンピュータのA/D変換器では、A/D変換するアナログ信号を入力してその電圧をホールドし、この入力電圧とA/D変換器内の複数の基準電圧を逐次比較してゆき、デジタル信号に変換する。A/D変換器においては、変換精度は複数の基準電圧との比較回数に比例するので、比較回数の多い方が精度は良くなるが、その反面A/D変換に掛かる時間が長くなる欠点もある。
【0003】
自動車等のエンジン制御を行う電子制御装置では、センサが検出したアナログ信号を精度良くデジタル信号に変換して入力し、かつ高速で演算して諸種の制御を行わなければならないため、高精度かつ高速にA/D変換の結果を得る必要がある。一方、電子制御装置のCPUは、絶えず諸種の制御が必要なため、高速かつ高精度な演算が必要であり、演算の実行時間を短縮する工夫が必要である。A/D変換実行後に即A/D変換結果を使用した演算を行う場合、CPUはA/D変換が終了するのを待って結果をRAMに格納し、演算処理を実行する。A/D変換には通常十数μsの時間を要するが、この間CPUは待たなくてはならないため、他の処理を実行できない無駄な時間が発生している。アナログ信号によりデータ検出タイミングが異なり、データ検出タイミングが周期的な場合には周期間隔が短くなると前述のA/D変換による待ち時間により負荷が増大する。A/D変換を開始後、他の処理に移行し、A/D変換の終了時に割り込みを発生させて割り込み処理にて結果をRAMに格納することで、待ち時間を削除できるが、割り込みを使うことで処理が複雑になるというデメリットがある。
【0004】
A/D変換開始から変換結果読み出しまでの時間を短くする技術として、特許文献1に記載の技術が公知である。これは、マルチ制御部を新設し、CPUが担当していた処理の一部をマルチ制御部が実施することでCPUの実行時間を短縮しているが、A/D変換に掛かる時間と比べると僅かな時間である。
【0005】
【特許文献1】特開2007−288651号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
公知例では、マルチ制御部を新設することで、A/D変換終了を待たなくて済むとしているが、指定されたタイミングで最新のA/D値が必要であり、かつA/D値を用いた演算を同一タイミングで行う必要がある場合、指定されたタイミングでA/D変換の起動を指示し変換終了まで待つため、A/D変換実行中は他の処理が実行できないという課題がある。
【0007】
本発明は、デジタル値に変換したデータを必要とする検出タイミングが周期的であることに着目し、検出データ間隔を計測し、検出データ間隔時間に基づいてA/D変換開始時期を変更し、A/D値を必要とするタイミングでは既にA/D変換が終了している状態とすることでA/D変換待ち時間を削減できるA/D変換手段を備えた、電子制御装置を提供するものである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の電子制御装置は、基本的に次のような構成をとる。制御に必要なデータをアナログ信号として検出する検出手段と、前記検出手段で検出されたアナログ信号をデジタル値に変換するA/D変換手段と、A/D変換結果を所定のレジスタに格納する変換結果格納手段を備え、予め定義されたタイミング毎にアナログ信号のA/D変換結果を取得する場合において、前記A/D変換手段の実行タイミングの間隔に応じて前記A/D変換手段の実行タイミングを変更する。
【発明の効果】
【0009】
データ検出間隔によりA/D変換開始時期を変更することで、A/D変換の待ち時間を削減でき、CPU負荷を削減することができる。
【発明を実施するための最良の形態】
【0010】
以下、本発明にかかる実施例を説明する。
【実施例1】
【0011】
図1は、本発明を適用した、自動車等のエンジン制御を行う電子制御装置の例を示したブロック図である。本装置は、CPU101,RAM102,ROM103,A/D変換器A104,A/D変換器B105,A/D変換器C106、及びバス113を備える。本実施例においては、CPU101,RAM102,ROM103,A/D変換器A104,A/D変換器B105、及びA/D変換器C106の各モジュールが、1つのチップに搭載されたシングルチップマイコン100を使用している。上記の各モジュールは、シングルチップマイコン100の内部でバス113によって接続され、互いに情報を授受している。また、制御装置に接続される自動車等に接続されたセンサ(図示せず)は制御に必要なデータを検出するが、この検出されたアナログ信号のデータのなかで、A/D変換器の変換チャネル124で指定されたデータがA/D変換器に入力される。A/D変換器A104にはアナログ信号(A0)107〜(A3)110が、A/D変換器B105にはアナログ信号(A4〜A7)111が、A/D変換器C106にはアナログ信号(A8〜A11)112が、それぞれ入力される。A/D変換器A104,A/D変換器B105、及びA/D変換器C106は構成が同じであるため、A/D変換器B105,A/D変換器C106、及びこれらに入力されるアナログ信号111,112は、図を簡略化してある。以下、A/D変換器A104で処理を行う場合を例に挙げて説明する。
【0012】
ROM103には、CPU101が実行するメインプログラムが格納してある。メインプログラムは、制御,演算,入出力等を行う各種プログラムの集合体である。本実施例では、上記の各種プログラムの他に、A/D変換を開始する変換開始手段、及びA/D変換の結果を読み出す変換結果読み出し手段もメインプログラムに記述している。
【0013】
CPU101は、メインプログラムに従い、各A/D変換器への指示等を行う。A/D変換器A104に対しては、変換チャネル124を設定してアナログ信号(A0〜A3)107〜110のうちA/D変換を行う信号の入力を指示すると共に、変換開始手段を実行して変換処理の開始を指示する。
【0014】
変換終了フラグ125はA/D変換が開始すると値が1から0に変化し、A/D変換が終了すると値が0から1に変化し、変換が終了したことを通知する。変換終了フラグ125の値を監視することで、A/D変換の終了を検知することができる。
【0015】
A/D変換器A104は、入力されたアナログ信号の電圧をホールドし、デジタル値への変換を行う。この変換には十数μsの時間を要する。デジタル値への変換が終了すると、A/D変換器A104は、変換チャネル124で指定した変換結果レジスタ(0〜3)120〜123にデジタル値を格納する。
【0016】
CPU101は、変換結果レジスタ(0〜3)120〜123から変換したデジタル値を読み出し、RAM102へ格納する。
【0017】
なお、A/D変換器B105やA/D変換器C106を使用してA/D変換を行う場合
も、上記と同様の手順で処理するため、説明は省略する。
【0018】
ここで、A/D変換方法について、従来技術の例を図2に示すタイミングチャートを用
いて説明する。図2では、データ検出タイミングは不定周期であり、A/D値を必要とする処理はデータ検出タイミングの2回に1回起動している。A/D値を必要とする処理が何回のデータ検出タイミングに1回起動するかは、アナログ信号の種類により異なる。また、データ有効範囲とはデータ検出タイミングを基準としてA/D変換を実施すべき時間的範囲を示したものであり、データ検出タイミングから離れたタイミングでA/D変換した結果を使わないようにするための範囲である。
【0019】
従来のA/D変換処理方法では、CPUは、メインプログラムに基づき、データ検出タイミング202または204においてA/D変換器に変換開始を指示した後、A/D変換の終了を待つ。変換終了フラグの0から1への変化により、A/D変換の終了を認識し変換結果を読み出しRAMに格納した後、他の処理を実行する。このようにA/D変換値をリアルタイムに取得したい場合、どうしてもA/D変換に必要な時間Tadを待つ必要がある。
【0020】
本発明によるA/D変換方法の例を、図3,図4に示すタイミングチャートを用いて説明する。図3は変換結果使用タイミングの一回前のタイミングでA/D変換を開始した場合の本発明の動作例を示し、図4は変換結果使用タイミングの一回前のタイミングではA/D変換を開始できない場合の本発明の動作例を示す。図3,図4では図2と同様に、データ検出タイミングは不定周期であり、A/D値を必要とする処理はデータ検出タイミングの2回に1回起動している。各データ検出タイミングでは、周期計測処理によりデータ検出タイミング間隔時間(Ta,Tb,Tc)を計測し、間隔時間により変換結果使用タイミングの一回前のデータ検出タイミングでA/D変換を開始するか否かを決定する。例えば自動車の電子制御装置では一定のクランク角度ごとにデータ検出を行うため、同一の回転数ではデータ検出タイミングも一定となり、TbをもとにTcを予測できる。Tbがデータ有効期間内に収まれば、Tcもデータ有効期間内に収まると判断し、一回前のデータ検出タイミングでA/D変換を開始すると、変換結果使用タイミングでは既にA/D変換が終了しているため、待ち時間なくRAMに変換結果を読み出すことができる。
【0021】
図3により変換結果使用タイミングの一回前のタイミングでA/D変換を開始した場合の本発明の動作例を説明する。タイミング302およびタイミング304で変換結果を使用しているが、ここではタイミング304に着目して説明する。データ検出タイミング303においてタイミング302で保持した時間とタイミング303での時間からTbを求める。Tbがデータ有効期間より短いため、Tcもデータ有効期間内に収まり、タイミング303でA/D変換を開始した結果をタイミング304で使用できるとCPUは判断しA/D変換開始を指示する。タイミング304においてタイミング303で開始したA/D変換の結果をRAMに読み出すが、A/D変換時間Tadはタイミング303とタイミング304の間に経過しタイミング304の時点では既にA/D変換が終了しているため、タイミング304では待ち時間なしで変換結果をRAMに読み出すことができ、CPUの処理待ち時間を削減できる。データ検出タイミングが短くなると、データ検出に同期した処理の起動間隔が短くなり、CPU負荷が高くなりやすい。本手法はデータ検出タイミングが短くなった場合にA/D変換に掛かる待ち時間を削減できるため、CPU負荷の増加を抑止できる。
【0022】
図4により変換結果使用タイミングの一回前のタイミングではA/D変換を開始できない場合の本発明の動作例を図4により説明する。図3の説明と同様に変換結果使用タイミング404に着目して説明する。タイミング403においてタイミング402で保持した時間とタイミング403での時間からTbを求める。Tbがデータ有効範囲よりも長いため、Tcも長くタイミング403におけるA/D変換結果はデータ有効範囲外のデータとなると推定できるため、タイミング403ではA/D変換を実行せず、従来通りのタイミング404でA/D変換を開始しA/D変換の終了後に変換結果をRAMに格納する。周期計測処理により、検出タイミングごとにデータ検出間隔を測定しているため、データ検出タイミングが変動しTbがデータ有効範囲から外れた場合にA/D変換起動タイミングを変更することで、データ有効期間を守ったA/D値をRAMに取り込むことが出来る。
【0023】
図3,図4ではデータ検出間隔が不定である場合の動作例を示したが、図5では、データ検出間隔が一定である場合の動作例を示す。データ検出間隔が一定であり、常にデータ有効期間内に収まる場合には、周期計測処理によるA/D変換開始時期の判断を行う必要はない。無条件で変換結果使用タイミング504の一回前のデータ検出タイミング503おいてA/D変換開始を指示すればよい。A/D変換時間Tadはタイミング503とタイミング504の間に経過しタイミング504では既にA/D変換が終了しているため、タイミング504では待ち時間なしで変換結果をRAMに読み出すことができ、CPUに掛かる負荷を削減できる。
【0024】
図3,図4,図5の動作例は、データ検出タイミング2回に1回データ使用処理を行っているが、データ検出タイミングに対するデータ使用処理の回数に関わらず、本発明の成果を得ることが可能である。図6にデータ検出タイミング3回に1回データ使用処理を行う場合の動作例を示す。3回に1回となった場合でも、A/D変換結果使用タイミングの1回前のタイミング603での間隔計測結果Tbに基づき、タイミング603でA/D変換を開始するか否かを判断する。図6の動作例ではTbがデータ有効期間より短いため、Tcもデータ有効期間内に収まり、タイミング603でA/D変換を開始した結果をタイミング604で使用できるとCPUは判断し、タイミング603でA/D変換開始を指示する。タイミング604においてタイミング603で開始したA/D変換の結果をRAMに読み出すが、A/D変換時間Tadはタイミング603とタイミング604の間に経過しタイミング604では既にA/D変換が終了しているため待ち時間なしで変換結果をRAMに読み出すことができ、CPUに掛かる負荷を削減できる。
【0025】
以上のように、本発明によれば、データ使用処理を行う1回前のデータ検出タイミングにおいてA/D変換を起動し、データ使用処理を行うタイミングで変換結果を格納することでA/D変換終了を待つ必要がなくなる。
【産業上の利用可能性】
【0026】
本発明は、センサで検出したアナログ信号をデジタル信号に変換するA/D変換器を用いる、自動車等の電子制御装置に利用できる。
【図面の簡単な説明】
【0027】
【図1】A/D変換を行う電子制御装置ブロック図。
【図2】従来技術による動作例。
【図3】本発明による変換結果使用タイミングの1回前のデータ検出タイミングにおいてA/D変換を開始した場合の動作例。
【図4】本発明による変換結果使用タイミングの1回前のデータ検出タイミングにおいてA/D変換を開始しない場合の動作例。
【図5】本発明によるデータ検出タイミングが一定の場合の動作例。
【図6】本発明によるデータ検出タイミング3回に1回データ使用処理を行う場合の動作例。
【符号の説明】
【0028】
100 シングルチップマイコン
101 CPU
102 RAM
103 ROM
104 A/D変換器A
105 A/D変換器B
106 A/D変換器C
107 アナログ信号A0
108 アナログ信号A1
109 アナログ信号A2
110 アナログ信号A3
111 アナログ信号A4〜A7
112 A8〜A12
113 バス
120 変換結果レジスタ1
121 変換結果レジスタ2
122 変換結果レジスタ3
124 変換チャネル
125 変換終了フラグ
201,202,203,204,301,302,303,304,401,402,403,404,501,502,503,504,601,602,603,604 データ検出タイミング

【特許請求の範囲】
【請求項1】
制御に必要なデータをアナログ信号として検出する検出手段と、
前記検出手段で検出されたアナログ信号をデジタル値に変換するA/D変換手段と、
A/D変換結果を所定のレジスタに格納する変換結果格納手段を備え、
予め定義されたタイミング毎にアナログ信号のA/D変換結果を取得する場合において、前記A/D変換手段の実行タイミングの間隔に応じて前記A/D変換手段の実行タイミングを変更すること、
を特徴とする電子制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate