(57)【要約】【課題】タイムトリガＡ／Ｄ機能が搭載されていなくとも、指定時刻でＡ／Ｄ変換値の取得を行うことができる制御装置および制御方法を提供する。【解決手段】計時部２７と、Ａ／Ｄ変換器２２とを備える制御装置であって、前記計時部２７の計時する時刻情報に従って、前記Ａ／Ｄ変換器２２を所定周期で起動し、前記Ａ／Ｄ変換器２２の入力信号であって、前記Ａ／Ｄ変換器２２でＡ／Ｄ変換された信号を取得して記憶手段に記憶させ、前記記憶手段に前記所定周期ごとに記憶された信号から、制御に使用する信号を選択するソフトウェア処理部２９を有する構成としている。【選択図】図４
2010251842.tif 000002
【特許請求の範囲】
【請求項１】
計時部と、Ａ／Ｄ変換器とを備える制御装置であって、
前記計時部の計時する時刻情報に従って、前記Ａ／Ｄ変換器を所定周期で起動させる起動手段と、
前記Ａ／Ｄ変換器でＡ／Ｄ変換された信号を取得して記憶手段に記憶させる記憶処理手段と、
前記記憶手段に前記所定周期ごとに記憶された信号から、車両の制御に使用する信号を選択する選択手段と、
を有することを特徴とする制御装置。
【請求項２】
前記Ａ／Ｄ変換器は、信号を入力するチャネルを複数有し、
前記選択手段は、前記Ａ／Ｄ変換器の起動時刻に、各チャネルのＡ／Ｄ変換処理時間を加算して、所定チャネルでのＡ／Ｄ変換完了時刻を判定し、該Ａ／Ｄ変換完了時刻に基づいて車両の制御に使用する信号を選択することを特徴とする請求項１記載の制御装置。
【請求項３】
前記Ａ／Ｄ変換器は、信号を入力するチャネルを複数有し、
前記選択手段は、前記Ａ／Ｄ変換器からＡ／Ｄ変換処理の完了後に入力する割り込み信号の入力時刻から、各チャネルのＡ／Ｄ変換処理時間を減算して、所定チャネルでのＡ／Ｄ変換完了時刻を判定し、該Ａ／Ｄ変換完了時刻に基づいて車両の制御に使用する信号を選択することを特徴とする請求項１記載の制御装置。
【請求項４】
前記選択手段は、入力信号のＯＮレベルのＡ／Ｄ変換値を取得するときは、取得タイミングとして指定された時刻よりも後に前記Ａ／Ｄ変換器に入力された信号のＡ／Ｄ変換値を前記記憶手段から選択し、
前記入力信号のＯＦＦレベルのＡ／Ｄ変換値を取得するときは、取得タイミングとして指定された時刻よりも前に前記Ａ／Ｄ変換器に入力された信号のＡ／Ｄ変換値を前記記憶手段から選択することを特徴とする請求項１から３のいずれか一項記載の制御装置。
【請求項５】
前記選択手段は、取得タイミングとして指定された時刻の前後のＡ／Ｄ変換値を前記記憶手段より抽出し、抽出された２つのＡ／Ｄ変換値を用いて線形補間を行うことで、取得タイミングとして指定された時刻のＡ／Ｄ変換値を取得することを特徴とする請求項１から４のいずれか一項記載の制御装置。
【請求項６】
前記選択手段は、前記記憶手段に記憶されたＡ／Ｄ変換値の変化量を算出し、該変化量が閾値を越えた場合には異常値として検出し、制御に使用可能な信号のＡ／Ｄ変換値を取得することを特徴とする請求項１から５のいずれか一項記載の制御装置。
【請求項７】
計時部と、Ａ／Ｄ変換器とを備える制御装置における制御方法であって、
前記計時部の計時する時刻情報に従って、前記Ａ／Ｄ変換器を所定周期で起動させる起動ステップと、
前記Ａ／Ｄ変換器の入力信号であって、前記Ａ／Ｄ変換器でＡ／Ｄ変換された信号を取得して記憶手段に記憶させる記憶処理ステップと、
前記記憶手段に前記所定周期ごとに記憶された信号から、車両の制御に使用する信号を選択する選択ステップと、
を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置および制御方法に関する。本発明は、特に、車両に搭載される制御装置および制御方法に関する。
【背景技術】
【０００２】
車両に搭載される制御装置はＡ／Ｄ変換器を備え、車両に搭載された各種センサからの信号をＡ／Ｄ変換したＡ／Ｄ変換値を制御に使用している（例えば、特許文献１参照）。信号の入力には、制御装置が定期的（例えば、４ｍｓｅｃ毎）にＡ／Ｄ変換器を起動して信号を入力する場合と、基準時刻から任意の遅延時間を経過した後（以下、指定時刻と略記する）にＡ／Ｄ変換器を起動して信号を入力する場合とがある。
【０００３】
図１に従来のマイコンの構成を示す。マイコン４０は、ソフトウェアによる処理を実現するソフトウェア処理部２９と、時刻を計時する計時部２７と、タイムトリガＡ／Ｄ機能２６と、入力信号のＡ／Ｄ変換を実行するＡ／Ｄ変換器２２と、計時部２７の時刻とタイムトリガＡ／Ｄ機能２６の指定時刻とを比較する比較部３０とを有する。ここで、タイムトリガＡ／Ｄ機能２６とは、指定した時刻で自動的にＡ／Ｄ変換を起動する機能をいう。
【０００４】
次に、マイコン４０が指定時刻でのＡ／Ｄ変換値を取得する手順を説明する。
ソフトウェア処理部２９は、計時部２７より取得した現在時刻に遅延時間を加算する。そして、現在時刻に遅延時間を加算した時刻を指定時刻として、タイムトリガＡ／Ｄ機能２６に設定する。指定時刻が設定されると、タイムトリガＡ／Ｄ機能２６は、Ａ／Ｄ変換を起動する指定時刻とＡ／Ｄ変換器２２の起動信号とを比較部３０に出力する。
【０００５】
比較部３０は、タイムトリガＡ／Ｄ機能２６からのＡ／Ｄ変換を起動する指定時刻と計時部２７の時刻とを比較し、両者が一致した場合にＡ／Ｄ変換器２２の起動信号を出力する。起動信号を受けたＡ／Ｄ変換器２２は、入力信号のＡ／Ｄ変換を行い、Ａ／Ｄ変換が終了すると、ソフトウェア処理部２９にＡ／Ｄ変換完了の割込み入力を行う。Ａ／Ｄ変換完了の割込み入力を検知したソフトウェア処理部２９は、Ａ／Ｄ変換値を取得する。
以上の手順によって、マイコン４０は指定時刻でのＡ／Ｄ変化値を取得する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−４４２５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、タイムトリガＡ／Ｄ機能を備えた制御装置は一般的ではなく、一般的な制御装置では、基準時刻から所定の時間を経過した時刻でＡ／Ｄ変換器を起動する処理を実現することが困難であった。
【０００８】
本発明は、上記の事情に鑑みてなされたものであり、タイムトリガＡ／Ｄ機能が搭載されていなくとも、指定時刻でＡ／Ｄ変換値の取得を行うことができる制御装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の制御装置は、計時部の計時する時刻情報に従って、Ａ／Ｄ変換器を所定周期で起動させる手段と、前記計時部の時刻情報と、前記Ａ／Ｄ変換器でＡ／Ｄ変換された信号を、前記所定周期ごとに記憶手段に記憶させる手段と、前記記憶手段に前記所定周期ごとに記憶された信号から、制御に使用する信号を選択する手段とを有する。
制御装置は、Ａ／Ｄ変換器を所定周期ごとに起動し、所定周期ごとにＡ／Ｄ変換された信号を記憶手段に記憶しているため、タイムトリガＡ／Ｄ機能を持たなくとも、指定時刻でのＡ／Ｄ変換値を取得することができる。
【００１０】
上記制御装置において、前記Ａ／Ｄ変換器は、信号を入力するチャネルを複数有し、前記選択手段は、前記Ａ／Ｄ変換器の起動時刻に、各チャネルのＡ／Ｄ変換処理時間を加算して、所定チャネルでのＡ／Ｄ変換完了時刻を判定し、該Ａ／Ｄ変換完了時刻に基づいて車両の制御に使用するの信号を選択する手段を採用する。
上記制御装置は、所定チャネルでのＡ／Ｄ変換完了時刻を判定することができるため、Ａ／Ｄ変換器が、信号を入力するチャネルを複数有する場合にも、所定チャネルの指定時刻でのＡ／Ｄ変換値を取得することができる。
【００１１】
上記制御装置において、前記Ａ／Ｄ変換器は、信号を入力するチャネルを複数有し、前記選択手段は、前記Ａ／Ｄ変換器からＡ／Ｄ変換処理の完了後に入力する割り込み信号の入力時刻から、各チャネルのＡ／Ｄ変換処理時間を減算して、所定チャネルでのＡ／Ｄ変換完了時刻を判定し、該Ａ／Ｄ変換完了時刻に基づいて車両の制御に使用するの信号を選択する手段を採用する。
上記制御装置は、所定チャネルでのＡ／Ｄ変換完了時刻を判定することができるため、Ａ／Ｄ変換器が、信号を入力するチャネルを複数有する場合にも、所定チャネルの指定時刻でのＡ／Ｄ変換値を取得することができる。
【００１２】
上記制御装置において、前記選択手段は、ＯＮ／ＯＦＦ切替えがある信号において、ＯＮレベルのＡ／Ｄ変換値を取得するときは、指定時刻よりも後に前記Ａ／Ｄ変換器に入力された信号のＡ／Ｄ変換値を前記記憶手段から選択し、前期入力信号のＯＦＦレベルのＡ／Ｄ変換値を取得するときは、指定時刻よりも前に前記Ａ／Ｄ変換器に入力された信号のＡ／Ｄ変換値を前記記憶手段から選択する手段を採用する。
上記制御装置は、指定時刻よりも後に前記Ａ／Ｄ変換器に入力された信号のＡ／Ｄ変換値を前記記憶手段から選択するため、信号レベルが十分に安定した時刻のＯＮレベルのＡ／Ｄ変換値を取得することができる。また、上記制御装置は、指定時刻よりも前に前記Ａ／Ｄ変換器に入力された信号のＡ／Ｄ変換値を前記記憶手段から取得するため、ＯＮ出力時刻直前のＯＦＦレベルのＡ／Ｄ変換値を取得することができる。
【００１３】
上記制御装置において、前記選択手段は、前記記憶手段に記憶された信号の線形補間によって指定時刻のＡ／Ｄ変換値を取得する手段を採用する。
上記制御装置は、前記記憶手段に記憶された信号を線形補間することにより、指定時刻が記憶手段に記憶された信号間にある場合にも、Ａ／Ｄ変換値を取得することができる。
【００１４】
上記制御装置において、前記選択手段は、前記記憶手段に記憶されたＡ／Ｄ変換値の変化量を算出し、該変化量が閾値を越えた場合には異常値として検出し、制御に使用可能なＡ／Ｄ変換値を取得する手段を採用する。
上記制御装置は、異常値の検出により、信頼性の高いＡ／Ｄ変換値を取得することができる。
【発明の効果】
【００１５】
本発明によれば、制御装置がタイムトリガＡ／Ｄ機能を搭載していなくとも、指定時刻でのＡ／Ｄ変換値を取得することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】指定時刻でＡ／Ｄ変換値を取得するための従来のマイコンの構成図である。
【図２】本発明の実施の一例であるエンジン制御ＥＣＵの構成を示す図である。
【図３】マイコンのハードウェア構成を示す図である。
【図４】本発明の実施例１におけるマイコンのハードウェアとソフトウェア処理部の構成を示す図である。
【図５】本発明の実施例１において完成されるデータテーブルを示す図である。
【図６】各チャネルのＡ／Ｄ変換完了時刻の取得を模式的に示した図である。
【図７】計時部からの取得時刻をＡ／Ｄ変換完了時刻とした場合の、Ａ／Ｄ変換器起動手順を示すフローチャートである。
【図８】ソフトウェア処理部において、計時部からの取得時刻をＡ／Ｄ変換完了時刻とした場合の、Ａ／Ｄ変換値の取り込み処理手順を示すフローチャートである。
【図９】ＯＮ／ＯＦＦ切替えのある信号波形の一例を示した図である。
【図１０】ＯＮ／ＯＦＦ切替えがある信号の指定時刻を求める処理手順を示すフローチャートである。
【図１１】ソフトウェア処理部において、ＯＮ／ＯＦＦ切替えがある信号の、ＯＮレベルでのＡ／Ｄ変換値を取得する処理手順を示すフローチャートである。
【図１２】ソフトウェア処理部において、ＯＮ／ＯＦＦ切替えがある信号の、ＯＦＦレベルでのＡ／Ｄ変換値を取得する処理手順を示すフローチャートである。
【図１３】線形補間によって、指定時刻におけるＡ／Ｄ変換値を取得する原理を示す図である。
【図１４】ソフトウェア処理部において、線形補間によって、指定時刻におけるＡ／Ｄ変換値を取得する処理手順を示すフローチャートである。
【図１５】ソフトウェア処理部において、Ａ／Ｄ変換値の異常値を検出し、制御に使用可能なＡ／Ｄ変換値を取得する処理手順を示すフローチャートである。
【図１６】信号レベルの異常値の例を示した図である。
【図１７】本発明の実施例２におけるマイコンのハードウェアとソフトウェア処理部の構成を示す図である。
【図１８】本発明の実施例２において完成されるデータテーブルを示す図である。
【図１９】各チャネルのＡ／Ｄ変換完了時刻の取得を模式的に示した図である。
【図２０】計時部からの取得時刻をＡ／Ｄ変換起動時刻とした場合の、ソフトウェア処理部によるＡ／Ｄ変換時刻の取得処理手順と、Ａ／Ｄ変換器起動手順を示すフローチャートである。
【図２１】ソフトウェア処理部において、計時部からの取得時刻をＡ／Ｄ変換起動時刻とした場合の、Ａ／Ｄ変換値の取り込み処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
添付図面を参照しながら本発明の好適な実施例を説明する。
【実施例１】
【００１８】
図２に、本発明の制御装置をエンジン制御ＥＣＵ（Electronic Control Unit）に適用した実施例１の構成を示す。
図２に示すようにエンジン制御ＥＣＵ１０は、Ａ／Ｄ変換用のＩＣ（Integrated Circuit）２０と、マイコン２１Ａとを備えている。
【００１９】
ＩＣ２０は、バッテリセンサ１１、バキュームセンサ１２、吸気温センサ１３、水温センサ１４、Ｏ２センサ１５、スロットルポジションセンサ１６等のセンサによって測定されたセンサ信号を入力する。ＩＣ２０は、入力したセンサ信号をＡ／Ｄ変換し、マイコン２１Ａに出力する。
【００２０】
マイコン２１Ａは、ＩＣ２０から取り込んだセンサ信号と、スタータ信号１７と、エンジン回転信号１８と、車速信号１９とから車両状態を推定し、最適な車両状態にするために、ＡＦヒータ２３、インジェクタ２４、点火プラグ２５を含む各種アクチュエータを制御するパルス信号を出力する。
マイコン２１Ａは、パルス信号の出力レベルをモニタするために、出力したパルス信号を取り込み、車両の制御に使用する。
【００２１】
マイコン２１Ａは、図３に示すハードウェアによって実現される。マイコン２１Ａは、Ａ／Ｄ変換を行うＡ／Ｄ変換器２２と、時刻を計時する計時部２７と、信号の入出力を行う入出力部３４と、制御部２８から構成される。また、制御部２８は、ＥＣＵによる制御処理を実現するためのプログラムや、ソフトウェア処理部２９で使用するＡ／Ｄ変換値を取得するプログラムなどが格納されたＲＯＭ３２と、ＲＯＭ３２に格納されたプログラムを読み込んで実行する中央処理装置（ＣＰＵ）３１と、プログラムを実行する際に使用される一時的なデータを保存するＲＡＭ（記憶手段）３３から構成される。
【００２２】
次に、マイコン２１Ａで指定時刻でのＡ／Ｄ変換値を取得する処理について図４から図６を参照しながら説明する。
【００２３】
図４にマイコン２１Ａのハードウェア構成と、プログラム制御によって実現されるソフトウェア処理部２９の機能ブロック図を示す。
図４に示すようにマイコン２１Ａは、ハードウェアとして計時部２７と、信号を入力するチャネルを複数有するＡ／Ｄ変換器２２と、ＲＡＭ３３を有している。
【００２４】
計時部２７からの割込み入力を検出して、例えば１ｍｅｃごとにＡ／Ｄ変換器２２を起動する。Ａ／Ｄ変換器２２は信号を入力するチャネルを複数有しており、各チャネルの入力信号のＡ／Ｄ変換処理を行う。
【００２５】
ソフトウェア処理部２９は、Ａ／Ｄ変換器２２が全チャネルのＡ／Ｄ変換を完了した時刻を計時部２７から取得し、Ａ／Ｄ変換器２２がＡ／Ｄ変換した全チャネルのＡ／Ｄ変換値をＡ／Ｄ変換器２２から取得する。ソフトウェア処理部２９は、取得した時刻、各チャネルのＡ／Ｄ変換値の順に、取得した値をＲＡＭ３３に記憶する。
ソフトウェア処理部２９は、上記処理を１ｍｓｅｃ毎に有効範囲分（例えば１６ｍｓｅｃ）繰返し行い、図５に示されるＡ／Ｄ変換の完了時刻と、各チャネルのＡ／Ｄ変換値とが格納されたデータテーブルを完成する。
【００２６】
ソフトウェア処理部２９は全チャネルのＡ／Ｄ変換が完了した時刻を計時部２７から取得しＲＡＭ３３に記憶するため、各チャネルのＡ／Ｄ変換完了時刻は、ＲＡＭ３３には記憶されていない。そこで、ソフトウェア処理部２９は、各チャネルにおけるＡ／Ｄ変換の完了時刻を、Ａ／Ｄ変換器２２のスペックで決定される１チャネルあたりのＡ／Ｄ変換時刻（Ｔａｄ）を用いて求める。
図６で示されるチャネルの最大値を７とし、ある定期起動時刻における全チャネルのＡ／Ｄ変換完了時刻をＴ０とすると、チャネルｎのＡ／Ｄ変換完了時刻は、
Ｔ０−（（７−ｎ）×Ｔａｄ）  ｎ＝０〜７
で計算される。したがって、各チャネルのＡ／Ｄ変換完了時刻を精度よく推定できる。
【００２７】
次に、ソフトウェア処理部２９がＡ／Ｄ変換を起動する処理手順を、図７に示すフローチャートを参照しながら説明する。
ソフトウェア処理部２９は計時部２７からの割込み入力を検知すると（ステップＳ１／ＹＥＳ）、Ａ／Ｄ変換器２２を起動して、チャネル０からチャネル７までのＡ／Ｄ変換値を取得する（ステップＳ２）。この際、全チャネルで同一の信号を取り込み、指定時刻に最も近いチャネルに入力された信号のＡ／Ｄ変換値を取得しても良い。
割込み入力がない場合には、ソフトウェア処理部２９は、割込み入力を検知するまで待機する（ステップＳ１／ＮＯ）。
【００２８】
次に、ソフトウェア処理部２９がＲＡＭ３３へ、Ａ／Ｄ変換完了時刻およびＡ／Ｄ変換値を格納する処理手順を、図８に示すフローチャートを参照しながら説明する。
Ａ／Ｄ変換器２２は、Ａ／Ｄ変換が完了すると、Ａ／Ｄ変換完了割込み処理をＣＰＵ３１に行う。
ソフトウェア処理部２９は、ＣＰＵ３１にＡ／Ｄ変換完了割込みが入力されたことを検知すると（ステップＳ１１／ＹＥＳ）、時刻を計時する計時部２７からＡ／Ｄ変換完了時刻を取得し、ＣＰＵ３１のレジスタｇｔｍに格納する。ソフトウェア処理部２９は、レジスタｇｔｍに格納されたＡ／Ｄ変換完了時刻を、現在時刻を表す変数Ｔｎｏｗに代入する（ステップＳ１２）。
【００２９】
ここで、ソフトウェア処理部２９が、Ａ／Ｄ変換完了時刻と、全チャネルのＡ／Ｄ変換値を図５に示すデータテーブルに格納する処理について説明する。
データテーブルは、１６行×９列の２次元配列構造をしており、０列目は計時部２７から取得するＡ／Ｄ変換完了時刻を格納し、１列目から８列目はチャネル０から７のＡ／Ｄ変換値を格納する。また、各行は、１ｍｓｅｃごとのＡ／Ｄ変換完了時刻と、各チャネルのＡ／Ｄ変換値とを格納し、１６ｍｓｅｃ過去分までを記憶する。
【００３０】
最初に、ソフトウェア処理部２９は、Ａ／Ｄ変換完了時刻を図５のテーブルに格納する。前述したとおり、Ａ／Ｄ変換完了時刻は０列目に格納されるので、ソフトウェア処理部２９は、現在の処理位置に対応するｉｎｄｅｘ行の、０列目であるａｄｄａｔａ［ｉｎｄｅｘ］［０］に変数Ｔｎｏｗを代入する（ステップＳ１３）。ここで、ｉｎｄｅｘは初期値を０とし、現在の処理位置を示す変数である。
【００３１】
次にソフトウェア処理部２９は、ｉｎｄｅｘ行の１列目から８列目に各チャネルのＡ／Ｄ変換値を格納する。ＣＰＵ３１のレジスタａｄｂｕｆ［０］〜ａｄｂｕｆ［７］には、チャネル０からチャネル７の８チャネルのＡ／Ｄ変換結果が格納されているので、ソフトウェア処理部２９は、レジスタから全チャネルのＡ／Ｄ変換値を取り込み、ｉｎｄｅｘ行の１列目から８列目のデータを表すａｄｄａｔａ［ｉｎｄｅｘ］［１］〜ａｄｄａｔａ［ｉｎｄｅｘ］［８］へと代入する（ステップＳ１４）。ソフトウェア処理部２９は、代入処理の終了後、データテーブルの次行に次の定期起動処理によるＡ／Ｄ変換完了時刻およびＡ／Ｄ変換値を格納するために、インデックスを更新する（ステップＳ１５）。
【００３２】
以上の処理を繰り返し、ソフトウェア処理部２９は、図５に示されるデータテーブルを完成する。
【００３３】
次に、前述の処理によって完成した図５のデータテーブルから、ＯＮ／ＯＦＦ切替えがある信号の指定時刻におけるＡ／Ｄ変換値を取得する手順について、図１０から図１２を用いて説明する。なお、ＯＮ／ＯＦＦ切替えがある信号とは、図９に示されるＯＮとＯＦＦとを交互に繰り返す信号をいう。
【００３４】
図１０は、ソフトウェア処理部２９がパルス出力からＯＮレベル取得の指定時刻と、ＯＦＦレベル取得の指定時刻を求める処理フローを示している。ソフトウェア処理部２９は、周期的にＯＮ／ＯＦＦの信号を出力しているので、信号出力の周期からＯＮ信号が出力される時間を計算することができる。そこで、ソフトウェア処理部２９は、現在の時刻と信号出力の周期とから、ＯＮ信号が出力される時間を算出する（ステップＳ３１）。ソフトウェア処理部２９は、現在時刻の取得処理からＯＮ信号の出力処理が終了するまで、他の処理の割込みを禁止するため割込み禁止処理を行う（ステップＳ３２）。
【００３５】
ソフトウェア処理部２９はＯＮ時間を算出（ステップＳ３１）しているため、ＯＮ信号が出力される時刻がわかっている。そこで、ＯＮ信号を出力する直前の現在時刻を計時部２７より取得し変数Ｔｎｏｗに取得した時刻（ｇｔｍ）を代入する（ステップＳ３３）。変数Ｔｎｏｗが、後述するＯＮレベル取得の指定時刻およびＯＦＦレベル取得の指定時刻を算出するための基準となる。
【００３６】
ソフトウェア処理部２９は、算出したＯＮ信号の出力時刻に、ＯＮ信号の出力処理を行う（ステップＳ３４）。そして、ＯＮ出力の継続時間後にＯＦＦ出力信号を出力するための予約を行う（ステップＳ３５）。ＯＮ信号の出力処理後、ソフトウェア処理部２９は割込み許可処理を行う（ステップＳ３６）。
【００３７】
ソフトウェア処理部２９は、ＯＮ信号の出力直前の時刻を取得しているので（ステップＳ３３）、変数Ｔｎｏｗにパルス信号が十分ＯＮレベルに立ち上がる時間を表す遅延時間の変数であるＴｄｌｙを加算した値を、ＯＮレベル取得の指定時刻を表す変数Ｔｏｎに代入する。また、変数Ｔｎｏｗの値をＯＦＦレベル取得の指定時刻であるＴｏｆｆに代入する（ステップＳ３７）。
なお、図１０中のステップＳ３５は、パルス出力時の一動作を表したものであるが、このステップは行わなくても良い。
【００３８】
次に、図５のデータテーブルを使用して、前述の処理で求められたＯＮレベル取得の指定時刻とＯＦＦレベルの指定時刻における、指定チャネルＸ（Ｘは０から７）のＡ／Ｄ変換値を取得する処理について説明する。
【００３９】
図１１は、ソフトウェア処理部２９におけるＯＮレベルのＡ／Ｄ変換値の取得処理のフローチャートを示している。
本実施例では、ソフトウェア処理部２９は、例えば１６ｍｓｅｃごとに、ＯＮレベルのＡ／Ｄ変換値の取得処理を行うこととする（ステップＳ２１）。
【００４０】
図５に示すデータテーブルに格納されたデータのうち、Ａ／Ｄ変換値の検出処理の直前に更新されたデータから遡って、指定時刻に最も近いＡ／Ｄ変換完了時刻を検索するため、ソフトウェア処理部２９は、変数ｉに処理位置を示す変数ｉｎｄｅｘの最新の値を代入する（ステップＳ２２）。
【００４１】
ｉｎｄｅｘ行の０列目に格納されているデータは、全チャネルのＡ／Ｄ変換完了時刻または、Ａ／Ｄ変換起動時刻であるため、ソフトウェア処理部２９は、チャネルＸのＡ／Ｄ変換完了時刻を表す変数Ｔｃｈｘ［ｉ］を求め、ＯＮレベル取得の指定時刻Ｔｏｎと比較する（ステップＳ２３）。
ここで、ソフトウェア処理部２９は、Ａ／Ｄ変換完了時刻を起点とする場合には、Ａ／Ｄ変換値を取得するチャネルＸにおけるＡ／Ｄ変換完了時刻を以下の計算式により算出する。
Ｔｃｈｘ［ｉ］＝ａｄｄａｔａ［ｉ］［０］−（７−Ｘ）×Ｔａｄ
一方、ソフトウェア処理部２９は、Ａ／Ｄ変換起動時刻を起点とする場合には、Ａ／Ｄ変換値を取得するチャネルＸにおけるＡ／Ｄ変換完了時刻を以下の計算式により算出する。
Ｔｃｈｘ［ｉ］＝ａｄｄａｔａ［ｉ］［０］＋（Ｘ＋１）×Ｔａｄ
【００４２】
ソフトウェア処理部２９は、Ａ／Ｄ変換完了時刻の値がＴｏｎよりも大きい場合には（ステップＳ２３／ＹＥＳ）、ＯＮレベルのｉｎｄｅｘを仮設定するために、ｉの値を仮のインデックス値を表す変数ｉｎｄｅｘ＿ｏに代入する（ステップＳ２４）。次に、１周期前のＡ／Ｄ変換完了時刻との比較を行うため、ソフトウェア処理部２９は、ｉの値をデクリメントする（ステップＳ２５）。そして、ソフトウェア処理部２９は、デクリメントされたｉによって得られるＡ／Ｄ変換完了時刻とＴｏｎをさらに比較する（ステップＳ２３）。ソフトウェア処理部２９は、チャネルＸのＡ／Ｄ変換完了時刻がＴｏｎ以下になるまで、同様の処理を継続する。
【００４３】
Ａ／Ｄ変換完了時刻の値がＴｏｎ以下になった場合には（ステップＳ２３／ＮＯ）、Ｔｏｎが、チャネルＸのＡ／Ｄ変換完了時刻Ｔｃｈｘ［ｉｎｄｅｘ＿ｏ］とＴｃｈｘ［ｉ］との間にある時刻であることがわかる。
そこで、ＯＮレベルのＡ／Ｄ変換値は、指定時刻よりも後にＡ／Ｄ変換器２２に入力された信号のＡ／Ｄ変換値を取得することとすると、ＯＮレベルのＡ／Ｄ変換値を表すＡＤ＿ｏｎにａｄｄａｔａ［ｉｎｄｅｘ＿ｏ］［Ｘ＋１］を代入することで求められる。（ステップＳ２６）。
この手順によれば、ソフトウェア処理部２９は、指定時刻よりも後にＡ／Ｄ変換器２２に入力された信号のＡ／Ｄ変換値を取得することができる。したがって、信号が十分安定したＯＮレベルの信号のＡ／Ｄ変換値を確実に取得することができる。
【００４４】
図１２は、ソフトウェア処理部２９におけるＯＦＦレベルのＡ／Ｄ変換値の取得処理のフローチャートを示している。
ステップＳ４１からステップＳ４５は、図１１に示したＯＮレベルのＡ／Ｄ変換値の取得処理フローチャートのステップＳ２１からステップＳ２５に対応する。
本処理は、ＯＦＦレベルのＡ／Ｄ変換値は指定時刻よりも前にＡ／Ｄ変換器２２に入力された信号のＡ／Ｄ変換値であると仮定して、ＯＦＦレベルのＡ／Ｄ変換値を表すＡＤ＿ｏｆｆにａｄｄａｔａ［ｉ］［Ｘ＋１］を代入する点において、ＯＮレベルのＡ／Ｄ変換値の取得処理とは異なる（ステップＳ４６）。
この手順によれば、ソフトウェア処理部２９は、指定時刻よりも前にＡ／Ｄ変換器２２に入力された信号のＡ／Ｄ変換値を取得することができる。したがって、ＯＮ信号が出力される前の、ＯＦＦレベルの信号のＡ／Ｄ変換値を確実に取得することができる。
【００４５】
指定時刻に一致する各チャネルのＡ／Ｄ変換完了時刻が存在しない場合には、指定時刻前後のＡ／Ｄ変換値を取得して、線形補間を行うことにより、指定時刻でのＡ／Ｄ変換値を求めることができる。
そこで、指定時刻前後のＡ／Ｄ変換値を取得し、線形補間することにより、指定時刻でのＡ／Ｄ変換値を求める手順を、図１３および図１４を用いて説明する。
【００４６】
まず、図１３を用いて、リニアに変化する信号において、指定時刻におけるＡ／Ｄ変換値を線形補間して取得する原理を説明する。
図１３において、Ｔは指定時刻を、Ｔ３とＴ４は、指定時刻Ｔを挟むＲＡＭ３３に記憶された時刻情報であり、Ｖ３とＶ４は、時刻情報Ｔ３とＴ４に対応する信号のＡ／Ｄ変換値を表している。
図１３の信号における指定時刻ＴでのＡ／Ｄ変換値Ｖは、Ｔ３、Ｔ４、Ｖ３、およびＶ４を用いて、以下の計算式により求めることができる。
Ｖ＝Ｖ３＋（Ｖ４−Ｖ３）×（Ｔ−Ｔ３）／（Ｔ４−Ｔ３）
【００４７】
図１４は、前述した手順に基づいて、ソフトウェア処理部２９が、線形補間により指定時刻でのＡ／Ｄ変換値を求める処理のフローチャートである。
本実施例では、ソフトウェア処理部２９は、例えば１６ｍｓｅｃごとに、線形補間によるＡ／Ｄ変換値の取得処理を行うこととする（ステップＳ５１）。
【００４８】
図５に示すデータテーブルに格納されたデータのうち、Ａ／Ｄ変換値の検出処理の直前に更新されたデータから遡って、指定時刻に最も近いＡ／Ｄ変換完了時刻を検索するため、ソフトウェア処理部２９は、変数ｉに処理位置を示す変数ｉｎｄｅｘの最新の値を代入する（ステップＳ５２）。
【００４９】
ｉｎｄｅｘ行の０列目に格納されているデータは、全チャネルのＡ／Ｄ変換完了時刻または、Ａ／Ｄ変換起動時刻であるため、ソフトウェア処理部２９は、チャネルＸのＡ／Ｄ変換完了時刻を表す変数Ｔｃｈｘ［ｉ］を求め、指定時刻を表す変数Ｔｔａｒと比較する（ステップＳ５３）。
ここで、ソフトウェア処理部２９は、Ａ／Ｄ変換完了時刻を起点とした場合には、Ａ／Ｄ変換値を取得するチャネルＸにおけるＡ／Ｄ変換完了時刻を以下の計算式により算出する。
Ｔｃｈｘ［ｉ］＝ａｄｄａｔａ［ｉ］［０］−（７−Ｘ）×Ｔａｄ
一方、ソフトウェア処理部２９は、Ａ／Ｄ変換起動時刻を起点とした場合には、Ａ／Ｄ変換値を取得するチャネルＸにおけるＡ／Ｄ変換完了時刻を以下の計算式により算出する。
Ｔｃｈｘ［ｉ］＝ａｄｄａｔａ［ｉ］［０］＋（Ｘ＋１）×Ｔａｄ
【００５０】
ソフトウェア処理部２９は、Ａ／Ｄ変換完了時刻の値がＴｔａｒよりも大きい場合には（ステップＳ５３／ＹＥＳ）、ＯＮレベルのｉｎｄｅｘを仮設定するために、ｉの値をｉｎｄｅｘ＿ｏに代入する（ステップＳ５４）。次に、１周期前のＡ／Ｄ変換完了時刻と比較を行うため、ソフトウェア処理部２９は、ｉの値をデクリメントする（ステップＳ５５）。そして、ソフトウェア処理部２９は、デクリメントされたｉによって得られるＡ／Ｄ変換完了時刻とＴｔａｒをさらに比較する（ステップＳ５３）。ソフトウェア処理部２９は、Ａ／Ｄ変換完了時刻が指定時刻を表す変数Ｔｔａｒ以下になるまで、同様の処理を継続する。
【００５１】
Ａ／Ｄ変換完了時刻の値がＴｔａｒ以下になった場合には（ステップＳ５３／ＮＯ）、Ｔｔａｒは、チャネルＸのＡ／Ｄ変換完了時刻Ｔｃｈｘ［ｉ］とＴｃｈｘ［ｉｎｄｅｘ＿ｏ］との間の時刻であることがわかる。
すると、両Ａ／Ｄ変換完了時刻Ｔｃｈｘ［ｉ］およびＴｃｈｘ［ｉｎｄｅｘ＿ｏ］は、それぞれ、図１３におけるＴ３およびＴ４に対応する。また、両Ａ／Ｄ変換完了時刻におけるＡ／Ｄ変換値ａｄｄａｔａ［ｉ］［Ｘ＋１］およびａｄｄａｔａ［ｉｎｄｅｘ＿ｏ］［Ｘ＋１］は、それぞれ、図１３におけるＶ３およびＶ４にあたる。
よって、ソフトウェア処理部２９は、Ｔｃｈｘ［ｉ］とＴｃｈｘ［ｉｎｄｅｘ＿ｏ］とａｄｄａｔａ［ｉ］［Ｘ］とａｄｄａｔａ［ｉｎｄｅｘ＿ｏ］［Ｘ］とを用いて、指定時刻でのＡ／Ｄ変換値を線形補間して求めることができる（ステップＳ５６）。
【００５２】
上述してきたように、ソフトウェア処理部２９は、データテーブルや、線形補間から、指定時刻のＡ／Ｄ変換値を取得することができる。しかし、ソフトウェア処理部２９は、指定時刻のＡ／Ｄ変換値を取得する場合に、１ポイントのＡ／Ｄ変換結果を取得するため、図１６に示されるノイズを取り込み真の値からかけ離れた値が取り込まれる場合がある。
そこで、ソフトウェア処理部２９が、取得したＡ／Ｄ変換値が異常値かどうかを検出し、制御に使用可能なＡ／Ｄ変換値を取得する処理について、図１５を用いて説明する。
【００５３】
図１５は、ソフトウェア処理部２９が異常値を検出する処理のフローチャートである。
Ａ／Ｄ変換値の取得処理を実行すると、取得したＡ／Ｄ変換値が格納されたデータテーブル中の行番号が決定する。このＡ／Ｄ変換値の取得処理で決定した行番号をｉｎｄｅｘとする。（ステップＳ６１）。
【００５４】
次に、ソフトウェア処理部２９は、チャネルＸのｉ行でのＡ／Ｄ変換値ａｄｄａｔａ［ｉ］［Ｘ＋１］と１周期前のＡ／Ｄ変換値ａｄｄａｔａ［ｉ−１］［Ｘ＋１］を用いて、過去の値との変化量であるΔＡＤ１を求める。ここで、変数ｉはｉｎｄｅｘの値を表す。また、チャネルＸのｉ行でのＡ／Ｄ変換値ａｄｄａｔａ［ｉ］［Ｘ＋１］と１周期後のＡ／Ｄ変換値ａｄｄａｔａ［ｉ＋１］［Ｘ＋１］を用いて、未来の値との変化量であるΔＡＤ２を求める（ステップＳ６２）。
【００５５】
ソフトウェア処理部２９は、取得したＡ／Ｄ変換値ａｄｄａｔａ［ｉ］［Ｘ＋１］が異常値かどうかを検出するために、ΔＡＤ１の絶対値と変化量の許容値であるΔＡＤＭＡＸを比較し、ΔＡＤ２の絶対値とΔＡＤＭＡＸを比較する（ステップＳ６３）。
【００５６】
ソフトウェア処理部２９は、ΔＡＤ１またはΔＡＤ２のいずれか一方の絶対値がΔＡＤＭＡＸよりも大きい場合には（ステップＳ６３／ＹＥＳ）、ａｄｄａｔａ［ｉ］［Ｘ＋１］は異常値であるため、制御に使用すべきでない。そこで、異常値検出処理を経て決定したＡ／Ｄ変換値を表す変数ＡＤに、ａｄｄａｔａ［０］［Ｘ＋１］からａｄｄａｔａ［１５］［Ｘ＋１］の平均値を代入する。（ステップＳ６５）。なお、本ステップＳ６５での処理では、ａｄｄａｔａ［０］［Ｘ＋１］からａｄｄａｔａ［１５］［Ｘ＋１］の平均値を代入する代わりに、安全値として設定してあるデフォルト値をＡＤへ代入しても良い。
【００５７】
ΔＡＤ１とΔＡＤ２のいずれの絶対値もΔＡＤＭＡＸ以下である場合には（ステップＳ６３／ＮＯ）、取得したＡ／Ｄ変換値ａｄｄａｔａ［ｉ］［Ｘ］は異常値ではないため、ソフトウェア処理部２９は、取得したＡ／Ｄ変換値であるａｄｄａｔａ［ｉ］［Ｘ］をＡＤへ代入する（ステップＳ６４）。
ソフトウェア処理部２９は、本処理により求めたＡ／Ｄ変換値を、制御に使用する（ステップＳ６７）。
【００５８】
このように本実施例によれば、タイムトリガＡ／Ｄ機能を有さないマイコン２１Ａが、信号入力チャネルを複数有するＡ／Ｄ変換器２２のＡ／Ｄ変換完了時刻と、各チャネルのＡ／Ｄ変換値とを用いて、指定時刻のＡ／Ｄ変換値を取得することができる。また、マイコン２１Ａは、異常値の検出処理を行うことで、信頼性の高いＡ／Ｄ変換値を取得し、制御に使用することができる。
【実施例２】
【００５９】
次に、添付図面を参照しながら、実施例２について説明する。ただし、実施例２の構成は実施例１と同一であるので、構成の詳細な説明は省略する。
実施例２は、ソフトウェア処理部２９がＡ／Ｄ変換起動時刻およびＡ／Ｄ変換値をデータテーブルに格納する処理において、実施例１と異なるため、以下では本処理手順について説明する。
【００６０】
マイコン２１Ｂが、指定時刻でのＡ／Ｄ変換値を取得する処理について、実施例１と異なる部分を中心に、図１７から図２１を参照しながら説明する。
【００６１】
図１７にマイコン２１Ｂのハードウェア構成とプログラム制御によって実現されるソフトウェア処理部２９の機能ブロック図を示す。
図１７に示すようにマイコン２１Ｂは、ハードウェアとして計時部２７と、信号を入力するチャネルを複数有するＡ／Ｄ変換器２２と、ＲＡＭ３３を有している。
【００６２】
Ａ／Ｄ変換器２２は信号を入力するチャネルを複数有しており、ソフトウェア処理部２９からの命令により、例えば１ｍｓｅｃごとに定期起動され、各チャネルの入力信号のＡ／Ｄ変換処理を行う。
【００６３】
ソフトウェア処理部２９は、Ａ／Ｄ変換器２２が起動された時刻を計時部２７から取得し、Ａ／Ｄ変換器２２がＡ／Ｄ変換した全チャネルのＡ／Ｄ変換値をＡ／Ｄ変換器２２から取得する。ソフトウェア処理部２９は、取得した時刻、各チャネルのＡ／Ｄ変換値の順に、取得した値をＲＡＭ３３に記憶する。
ソフトウェア処理部２９は、上記処理を１ｍｓｅｃ毎に有効範囲分（例えば１６ｍｓｅｃ）繰り返し行い、図１８に示されるＡ／Ｄ変換の起動時刻と、各チャネルのＡ／Ｄ変換値とが格納されたデータテーブルを完成する。
【００６４】
ソフトウェア処理部２９は、Ａ／Ｄ変換を起動した時刻を計時部２７から取得しＲＡＭ３３に記憶するため、各チャネルのＡ／Ｄ変換完了時刻はＲＡＭ３３には記憶されていない。そこで、ソフトウェア処理部２９は、各チャネルにおけるＡ／Ｄ変換の完了時刻を、Ａ／Ｄ変換器２２のスペックで決定される１チャネルあたりのＡ／Ｄ変換時刻（Ｔａｄ）を用いて求める。
図１９で示されるチャネルの最大値を７とし、ある定期起動時刻における全チャネルのＡ／Ｄ変換完了時刻をＴ０とすると、チャネルｎの変換時刻は、
Ｔ０＋（（ｎ＋１）×Ｔａｄ）  ｎ＝０〜７
で計算される。したがって、各チャネルのＡ／Ｄ変換完了時刻を精度よく推定できる。
【００６５】
次に、ソフトウェア処理部２９が、Ａ／Ｄ変換起動時刻をＲＡＭ３３に格納する処理について、図２０を用いて説明する。
ソフトウェア処理部２９は、計時部２７からの割込み入力を検知し（ステップＳ７１／ＹＥＳ）、Ａ／Ｄ変換器２２の起動時刻取得処理から、Ａ／Ｄ変換器２２の起動処理までの間、他の処理の割込み禁止処理を行う（ステップＳ７２）。
【００６６】
ソフトウェア処理部２９は、計時部２７からＡ／Ｄ変換起動時刻を取得し、ＣＰＵ３１のレジスタｇｔｍに格納する。ソフトウェア処理部２９は、レジスタｇｔｍに格納されたＡ／Ｄ変換完了時刻ｇｔｍを変数Ｔｎｏｗへ代入する（ステップ７３）。
【００６７】
次に、ソフトウェア処理部２９は、変数Ｔｎｏｗを図１８のテーブルに格納する処理を行う。
Ａ／Ｄ変換起動時刻は図１８のデータテーブルの０列目に格納されるので、ソフトウェア処理部２９は、現在の処理位置に対応するｉｎｄｅｘ行の０列目であるａｄｄａｔａ［ｉｎｄｅｘ］［０］に変数Ｔｎｏｗを代入する（ステップＳ７４）。ここで、ｉｎｄｅｘは初期値を０とし、現在の処理位置を示す変数である。
【００６８】
ソフトウェア処理部２９からの命令により定期起動されたＡ／Ｄ変換器２２は、チャネル０からチャネル７までのＡ／Ｄ変換を行う（ステップＳ７５）。この際、全チャネルで同一の信号を取り込み、指定時刻に最も近いチャネルに入力された信号のＡ／Ｄ変換値を取得しても良い。
ソフトウェア処理部２９はＡ／Ｄ変換器２２の起動後、割込み許可処理を行う（ステップＳ７６）。
【００６９】
図２１は、ソフトウェア処理部２９が、ＣＰＵ３１のレジスタに格納されている各チャネルのＡ／Ｄ変換値を、ＲＡＭ３３に格納する処理を示したフローチャートである。
【００７０】
Ａ／Ｄ変換器２２は、Ａ／Ｄ変換完了後、ＣＰＵ３１にＡ／Ｄ変換完了割込み処理を行う。
ソフトウェア処理部２９は、Ａ／Ｄ変換の完了割込みの入力を検知すると（ステップＳ８１／ＹＥＳ）、ＣＰＵ３１のレジスタ（ａｄｂｕｆ［０］〜ａｄｂｕｆ［７］）に格納されている全チャネルのＡ／Ｄ変換値を、ｉｎｄｅｘ行の１列目から８列目のデータを表すａｄｄａｔａ［ｉｎｄｅｘ］［１］〜ａｄｄａｔａ［ｉｎｄｅｘ］［８］へと代入する（ステップＳ８２）。ソフトウェア処理部２９は代入処理の終了後、データテーブルの次行に次の定期起動処理によるＡ／Ｄ変換完了時刻およびＡ／Ｄ変換値を格納するために、インデックスを更新する（ステップＳ８３）。
【００７１】
以上の処理を繰返し、ソフトウェア処理部２９は、図１８に示されるデータテーブルを完成する。
【００７２】
このように本実施例によれば、タイムトリガＡ／Ｄ機能を有さないマイコン２１Ｂは、入力チャネルを複数有するＡ／Ｄ変換器２２のＡ／Ｄ変換起動時刻と、各チャネルのＡ／Ｄ変換値とを用いて指定時刻のＡ／Ｄ変換値を取得することができる。
【００７３】
以上、本発明の好ましい実施の形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
上述した実施例は、車両の制御装置での実施例を示したが、これに限定されず、計時部２７とＡ／Ｄ変換器２２を有するマイコンであれば、本発明の適用が可能である。
【符号の説明】
【００７４】
１１…バッテリ
１２…バキュームセンサ
１３…吸気温センサ
１４…水温センサ
１５…Ｏ２センサ
１６…スロットルポジションセンサ
１７…スタータ信号
１８…エンジン回転信号
１９…車速センサ
２０…ＩＣ
２１Ａ、２１Ｂ、４０…マイコン
２２…Ａ／Ｄ変換器
２３…ＡＦヒーター
２４…インジェクタ
２５…点火プラグ
２６…タイムトリガＡ／Ｄ機能
２７…計時部
２８…制御部
２９…ソフトウェア処理部
３０…比較部
３１…ＣＰＵ
３２…ＲＯＭ
３３…ＲＡＭ（記憶手段）
３４…入出力部
【図１】
2010251842.tif 000003
【図２】
2010251842.tif 000004
【図３】
2010251842.tif 000005
【図４】
2010251842.tif 000006
【図５】
2010251842.tif 000007
【図６】
2010251842.tif 000008
【図７】
2010251842.tif 000009
【図８】
2010251842.tif 000010
【図９】
2010251842.tif 000011
【図１０】
2010251842.tif 000012
【図１１】
2010251842.tif 000013
【図１２】
2010251842.tif 000014
【図１３】
2010251842.tif 000015
【図１４】
2010251842.tif 000016
【図１５】
2010251842.tif 000017
【図１６】
2010251842.tif 000018
【図１７】
2010251842.tif 000019
【図１８】
2010251842.tif 000020
【図１９】
2010251842.tif 000021
【図２０】
2010251842.tif 000022
【図２１】
2010251842.tif 000023