(57)【要約】【課題】一定時間毎にＡ／Ｄ変換器を起動して複数のアナログ信号をＡ／Ｄ変換する信号処理装置において、何れかのアナログ信号について、それのＡ／Ｄ変換データのＡ／Ｄ変換器からメモリへのＤＭＡ転送を、Ａ／Ｄ変換器の起動間隔とは異なる任意の間隔で行えるようにする。【解決手段】マイコン１０にて、Ａ／Ｄ変換器１１からＲＡＭ１７にデータを転送するＤＭＡコントローラ１６へは、Ａ／Ｄ変換完了時毎に生じるＤＭＡ転送要求信号（ＴｒｇＢ）とは別のＤＭＡ転送要求信号（ＴｒｒＣ）が、タイマユニット２５から与えられ、そのタイマユニット２５は、ＣＰＵ２１により周期とパルス幅が設定されるＰＷＭ信号出力回路２３からのＰＷＭ信号に特定方向のエッジが生じるとＴｒｇＣを出力する。更にＤＭＡコントローラ１６は、ＴｒｇＢ，Ｃの各々について、Ａ／Ｄ変換器１１のどのチャンネルのＡ／Ｄ変換データを転送対象とするかがＣＰＵ２１により指定される。【選択図】図１
2010146258.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するＣＰＵと、
Ａ／Ｄ変換対象のアナログ信号が入力される入力端子を複数有すると共に、Ａ／Ｄ変換の実施を指令するＡ／Ｄ変換要求信号を受けると、前記各入力端子からの複数のアナログ信号をＡ／Ｄ変換するＡ／Ｄ変換動作を開始して、該Ａ／Ｄ変換動作が完了すると、Ａ／Ｄ変換完了信号を出力するＡ／Ｄ変換器と、
前記Ａ／Ｄ変換器に前記Ａ／Ｄ変換要求信号を一定時間毎に出力するＡ／Ｄ変換要求手段と、
前記Ａ／Ｄ変換器によってＡ／Ｄ変換された後のデータであるＡ／Ｄ変換データを格納するためのメモリと、
前記Ａ／Ｄ変換器からの前記Ａ／Ｄ変換完了信号が、前記Ａ／Ｄ変換器から前記メモリへのＤＭＡ転送を指令するＤＭＡ転送要求信号として与えられるようになっており、そのＤＭＡ転送要求信号を受けると、前記Ａ／Ｄ変換器から前記メモリへのデータ転送を行うＤＭＡコントローラと、
を備えた信号処理装置であって、
前記ＣＰＵにより設定される周期及びパルス幅のＰＷＭ信号を出力するＰＷＭ信号出力回路と、
前記ＰＷＭ信号出力回路から出力されるＰＷＭ信号が入力され、そのＰＷＭ信号に特定方向のエッジが発生すると、前記ＤＭＡコントローラに、前記Ａ／Ｄ変換完了信号とは別のＤＭＡ転送要求信号を出力するデータ転送要求手段とを備え、
更に、前記ＤＭＡコントローラは、自己に与えられる前記ＤＭＡ転送要求信号の各々について、前記Ａ／Ｄ変換器の何れの入力端子に対応するＡ／Ｄ変換データを前記メモリに転送するかが前記ＣＰＵによって指定されるようになっており、前記ＤＭＡ転送要求信号の何れかを受けると、前記Ａ／Ｄ変換器の各入力端子のうち、その受けたＤＭＡ転送要求信号について前記ＣＰＵにより事前に指定されている入力端子に対応したＡ／Ｄ変換データを、前記Ａ／Ｄ変換器から前記メモリに転送すること、
を特徴とする信号処理装置。
【請求項２】
請求項１に記載の信号処理装置において、
前記ＰＷＭ信号のエッジは、前記ＣＰＵによって前記ＰＷＭ信号出力回路に設定される周期及びパルス幅の各値のうち、前記周期の値により発生間隔が変化し、且つ、前記パルス幅の値によっては発生タイミングが変化しない方のエッジである周期エッジと、その周期エッジとは逆方向のエッジであって、前記パルス幅の値により前記周期エッジからの発生間隔が変化する方のデューティエッジとがあり、
前記特定方向のエッジは、前記周期エッジであること、
を特徴とする信号処理装置。
【請求項３】
請求項１に記載の信号処理装置において、
前記ＰＷＭ信号のエッジは、前記ＣＰＵによって前記ＰＷＭ信号出力回路に設定される周期及びパルス幅の各値のうち、前記周期の値により発生間隔が変化し、且つ、前記パルス幅の値によっては発生タイミングが変化しない方のエッジである周期エッジと、その周期エッジとは逆方向のエッジであって、前記パルス幅の値により前記周期エッジからの発生間隔が変化する方のデューティエッジとがあり、
前記特定方向のエッジは、前記デューティエッジであること、
を特徴とする信号処理装置。
【請求項４】
請求項１に記載の信号処理装置において、
前記ＰＷＭ信号のエッジは、前記ＣＰＵによって前記ＰＷＭ信号出力回路に設定される周期及びパルス幅の各値のうち、前記周期の値により発生間隔が変化し、且つ、前記パルス幅の値によっては発生タイミングが変化しない方のエッジである周期エッジと、その周期エッジとは逆方向のエッジであって、前記パルス幅の値により前記周期エッジからの発生間隔が変化する方のデューティエッジとがあり、
前記特定方向のエッジは、前記周期エッジと、前記デューティエッジとの両方であり、
前記データ転送要求手段は、前記ＰＷＭ信号に前記周期エッジが発生したときと、前記ＰＷＭ信号に前記デューティエッジが発生したときとで、別々のＤＭＡ転送要求信号を前記ＤＭＡコントローラに出力するようになっていること、
を特徴とする信号処理装置。
【請求項５】
請求項３に記載の信号処理装置において、
前記ＣＰＵは、前記ＰＷＭ信号の周期を、前記Ａ／Ｄ変換要求信号の出力周期のｎ倍（ｎは１以上の整数）に設定すると共に、前記ＰＷＭ信号のパルス幅を所定値に設定するようになっており、
更に、前記ＣＰＵは、前記データ転送要求手段が前記ＤＭＡ転送要求信号を出力したタイミングを検出し、その検出結果に基づいて、前記データ転送要求手段からの前記ＤＭＡ転送要求信号の出力タイミングが、前記Ａ／Ｄ変換器が前記Ａ／Ｄ変換動作を完了してから次回の前記Ａ／Ｄ変換動作を開始するまでの期間中における特定タイミングとなるように、前記ＰＷＭ信号のパルス幅の設定値を補正するパルス幅補正処理を行うこと、
を特徴とする信号処理装置。
【請求項６】
請求項５に記載の信号処理装置において、
前記ＣＰＵは、前記パルス幅補正処理として、
前記データ転送要求手段が前記ＤＭＡ転送要求信号を出力する直前に前記Ａ／Ｄ変換器が前記Ａ／Ｄ変換動作を完了した時刻から、前記データ転送要求手段が前記ＤＭＡ転送要求信号を出力するまでの時間であるＡ／Ｄ変換完了後余裕時間を、前記ＤＭＡ転送要求信号の出力タイミングとして検出し、その検出結果に基づいて、前記Ａ／Ｄ変換完了後余裕時間が該Ａ／Ｄ変換完了後余裕時間の目標値となるように、前記ＰＷＭ信号のパルス幅の設定値を補正する第１の補正処理と、
前記データ転送要求手段が前記ＤＭＡ転送要求信号を出力してから前記Ａ／Ｄ変換器が次回の前記Ａ／Ｄ変換動作を開始するまでの時間であるＡ／Ｄ変換開始前余裕時間を、前記ＤＭＡ転送要求信号の出力タイミングとして検出し、その検出結果に基づいて、前記Ａ／Ｄ変換開始前余裕時間が該Ａ／Ｄ変換開始前余裕時間の目標値となるように、前記ＰＷＭ信号のパルス幅の設定値を補正する第２の補正処理と、
前記データ転送要求手段が前記ＤＭＡ転送要求信号を出力する直前に前記Ａ／Ｄ変換器が前記Ａ／Ｄ変換動作を開始した時刻から、前記データ転送要求手段が前記ＤＭＡ転送要求信号を出力するまでの時間であるＡ／Ｄ変換開始後余裕時間を、前記ＤＭＡ転送要求信号の出力タイミングとして検出し、その検出結果に基づいて、前記Ａ／Ｄ変換開始後余裕時間が該Ａ／Ｄ変換開始後余裕時間の目標値となるように、前記ＰＷＭ信号のパルス幅の設定値を補正する第３の補正処理とのうち、
少なくとも１つを行うことを特徴とする信号処理装置。
【請求項７】
請求項４に記載の信号処理装置において、
前記ＣＰＵは、前記ＰＷＭ信号の周期を、前記Ａ／Ｄ変換要求信号の出力周期のｎ倍（ｎは１以上の整数）に設定すると共に、前記ＰＷＭ信号のパルス幅を所定値に設定するようになっており、
更に、前記ＣＰＵは、前記データ転送要求手段が前記デューティエッジに対応する方のＤＭＡ転送要求信号を出力したタイミングを検出し、その検出結果に基づいて、前記デューティエッジに対応する方のＤＭＡ転送要求信号の出力タイミングが、前記Ａ／Ｄ変換器が前記Ａ／Ｄ変換動作を完了してから次回の前記Ａ／Ｄ変換動作を開始するまでの期間中における特定タイミングとなるように、前記ＰＷＭ信号のパルス幅の設定値を補正するパルス幅補正処理を行うこと、
を特徴とする信号処理装置。
【請求項８】
請求項７に記載の信号処理装置において、
前記ＣＰＵは、前記パルス幅補正処理として、
前記データ転送要求手段が前記デューティエッジに対応する方のＤＭＡ転送要求信号を出力する直前に前記Ａ／Ｄ変換器が前記Ａ／Ｄ変換動作を完了した時刻から、前記データ転送要求手段が前記デューティエッジに対応する方のＤＭＡ転送要求信号を出力するまでの時間であるＡ／Ｄ変換完了後余裕時間を、前記デューティエッジに対応する方のＤＭＡ転送要求信号の出力タイミングとして検出し、その検出結果に基づいて、前記Ａ／Ｄ変換完了後余裕時間が該Ａ／Ｄ変換完了後余裕時間の目標値となるように、前記ＰＷＭ信号のパルス幅の設定値を補正する第１の補正処理と、
前記データ転送要求手段が前記デューティエッジに対応する方のＤＭＡ転送要求信号を出力してから前記Ａ／Ｄ変換器が次回の前記Ａ／Ｄ変換動作を開始するまでの時間であるＡ／Ｄ変換開始前余裕時間を、前記デューティエッジに対応する方のＤＭＡ転送要求信号の出力タイミングとして検出し、その検出結果に基づいて、前記Ａ／Ｄ変換開始前余裕時間が該Ａ／Ｄ変換開始前余裕時間の目標値となるように、前記ＰＷＭ信号のパルス幅の設定値を補正する第２の補正処理と、
前記データ転送要求手段が前記デューティエッジに対応する方のＤＭＡ転送要求信号を出力する直前に前記Ａ／Ｄ変換器が前記Ａ／Ｄ変換動作を開始した時刻から、前記データ転送要求手段が前記デューティエッジに対応する方のＤＭＡ転送要求信号を出力するまでの時間であるＡ／Ｄ変換開始後余裕時間を、前記デューティエッジに対応する方のＤＭＡ転送要求信号の出力タイミングとして検出し、その検出結果に基づいて、前記Ａ／Ｄ変換開始後余裕時間が該Ａ／Ｄ変換開始後余裕時間の目標値となるように、前記ＰＷＭ信号のパルス幅の設定値を補正する第３の補正処理とのうち、
少なくとも１つを行うことを特徴とする信号処理装置。
【請求項９】
請求項１ないし請求項３、請求項５及び請求項６の何れか１項に記載の信号処理装置において、
前記ＣＰＵは、前記ＰＷＭ信号の周期を、前記Ａ／Ｄ変換要求信号の出力周期のｎ倍（ｎは１以上の整数）に設定するようになっており、
更に、前記ＣＰＵは、前記データ転送要求手段が前記ＤＭＡ転送要求信号を出力する間隔である信号出力間隔と、前記Ａ／Ｄ変換器が前記Ａ／Ｄ変換動作を行う間隔であるＡ／Ｄ変換間隔の前記ｎ倍の間隔と検出し、その両検出値の差に基づいて、前記信号出力間隔が前記Ａ／Ｄ変換間隔の前記ｎ倍の間隔と等しくなるように、前記ＰＷＭ信号の周期の設定値を補正する周期補正処理を行うこと、
を特徴とする信号処理装置。
【請求項１０】
請求項４、請求項７及び請求項８の何れか１項に記載の信号処理装置において、
前記ＣＰＵは、前記ＰＷＭ信号の周期を、前記Ａ／Ｄ変換要求信号の出力周期のｎ倍（ｎは１以上の整数）に設定するようになっており、
更に、前記ＣＰＵは、前記データ転送要求手段が前記デューティエッジに対応する方のＤＭＡ転送要求信号を出力する間隔と前記データ転送要求手段が前記周期エッジに対応する方のＤＭＡ転送要求信号を出力する間隔との何れかである信号出力間隔と、前記Ａ／Ｄ変換器が前記Ａ／Ｄ変換動作を行う間隔であるＡ／Ｄ変換間隔の前記ｎ倍の間隔とを検出し、その両検出値の差に基づいて、前記信号出力間隔が前記Ａ／Ｄ変換間隔の前記ｎ倍の間隔と等しくなるように、前記ＰＷＭ信号の周期の設定値を補正する周期補正処理を行うこと、
を特徴とする信号処理装置。
【請求項１１】
請求項１ないし請求項１０の何れか１項に記載の信号処理装置において、
前記ＰＷＭ信号出力回路及び前記データ転送要求手段を複数組備えていること、
を特徴とする信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ａ／Ｄ変換機能を有した信号処理装置に関するものである。
【背景技術】
【０００２】
例えば、自動車のエンジンを制御するマイクロコンピュータ（以下、マイコンともいう）として、Ａ／Ｄ変換器を備えたものが知られている。そして、この種のマイコンでは、Ａ／Ｄ変換器を一定時間毎に起動すると共に、その起動間隔と同じ間隔で、Ａ／Ｄ変換器からＲＡＭへのデータ転送（即ち、Ａ／Ｄ変換データのＲＡＭへの格納）を行っている（例えば、特許文献１参照）。
【０００３】
ここで、こうしたマイコンの構成例について、図１６を用い説明する。
【０００４】
図１６に示すマイコン１００は、Ａ／Ｄ変換器１１と、Ａ／Ｄ起動タイマ１３と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ１５と、ＲＡＭ１７と、プログラムが格納されるＲＯＭ１９と、ＲＯＭ１９内のプログラムを実行するＣＰＵ２１とを備えている。
【０００５】
そして、Ａ／Ｄ変換器１１は、アナログ信号が入力される入力端子を複数（この例では４つ）有すると共に、Ａ／Ｄ変換の実施を指令するＡ／Ｄ変換要求信号（図１６におけるＴｒｇＡ）を受けると、各入力端子からの複数のアナログ信号をＡ／Ｄ変換するＡ／Ｄ変換動作を開始し、そのＡ／Ｄ変換動作が完了すると、Ａ／Ｄ変換完了信号を出力する。
【０００６】
また、Ａ／Ｄ起動タイマ１３は、ＣＰＵ２１によって設定される一定時間毎に、Ａ／Ｄ変換器１１へ上記Ａ／Ｄ変換要求信号を出力する。このため、Ａ／Ｄ変換器１１は、そのＡ／Ｄ変換要求信号が出力される一定時間毎に起動することとなる。
【０００７】
尚、この例のＡ／Ｄ変換器１１は、各入力端子のアナログ信号を順次切り替えて１つのＡ／Ｄ変換回路でＡ／Ｄ変換する多チャンネルＡ／Ｄ変換器であり、各入力端子はＡ／Ｄ変換の各チャンネルｃｈ１〜ｃｈ４になっている。また、Ａ／Ｄ変換要求信号は、Ａ／Ｄ変換実施のトリガであることから、以下では、そのＡ／Ｄ変換要求信号のことを、トリガＡを意味するＴｒｇＡとも言う。
【０００８】
一方、ＤＭＡコントローラ１５には、Ａ／Ｄ変換器１１からのＡ／Ｄ変換完了信号が、Ａ／Ｄ変換器１１からＲＡＭ１７へのＤＭＡ転送を指令するＤＭＡ転送要求信号（図１６におけるＴｒｇＢ）として与えられる。そして、ＤＭＡコントローラ１５は、そのＤＭＡ転送要求信号を受けると、Ａ／Ｄ変換器１１の全チャンネル、又はＣＰＵ２１によって事前に指定されているチャンネルのＡ／Ｄ変換データを、Ａ／Ｄ変換器１１からＲＡＭ１７に転送（ＤＭＡ転送）する。尚、ＤＭＡ転送要求信号は、ＤＭＡ転送実施のトリガであることから、以下では、Ａ／Ｄ変換器１１からＤＭＡコントローラ１５へのＤＭＡ転送要求信号のことを、トリガＢを意味するＴｒｇＢとも言う。
【０００９】
そして、このようなマイコン１００では、Ａ／Ｄ変換要求信号（ＴｒｇＡ）が発生する一定時間毎に、Ａ／Ｄ変換器１１の起動とＡ／Ｄ変換データのＲＡＭ１７への転送とが行われることとなる。
【００１０】
尚、Ａ／Ｄ変換器からＲＡＭへのデータ転送を、ＣＰＵによって行う構成も考えられるが、ＣＰＵの処理負荷を余分に増大させてしまうため、例えばＣＰＵに車両のエンジン制御用の処理を実行させる場合に、高精度な処理ができなくなる可能性がある。一方、マイコンとしては、ＣＰＵによって設定される周期及びパルス幅のＰＷＭ信号を出力するＰＷＭ信号出力回路（ＰＷＭ信号生成回路）を備えたものもある（例えば、特許文献２，３参照）。
【特許文献１】特開２００２−８９３４６号公報
【特許文献２】特開平１１−２１４９７０号公報
【特許文献３】特開平１０−２２４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記従来の技術では、Ａ／Ｄ変換器１１の起動と、Ａ／Ｄ変換データのＲＡＭへの格納とを、異なる間隔で行うことができないという不便さがある。
【００１２】
このため、例えば、必要なサンプリング間隔が異なるアナログ信号をＡ／Ｄ変換する場合であって、短い間隔ＴＳでのＡ／Ｄ変換データが必要なアナログ信号（必要なサンプリング間隔が短いアナログ信号）と、その間隔ＴＳよりも長い間隔ＴＬでのＡ／Ｄ変換データが取得できれば良いアナログ信号（必要なサンプリング間隔が長いアナログ信号）とがある場合に、ＲＡＭ１７の記憶容量の無駄が生じることとなる。
【００１３】
つまり、Ａ／Ｄ変換器１１を起動する間隔は上記短い間隔ＴＳに合わせることとなるが、長い間隔ＴＬでのＡ／Ｄ変換データが取得できれば良いアナログ信号については、必要以上に短い間隔ＴＳでのＡ／Ｄ変換データがＲＡＭ１７に格納されることとなるからである。また、ＣＰＵ２１の処理によって、ＲＡＭ１７から余分なＡ／Ｄ変換データを間引きして削除することも考えられるが、ＣＰＵの処理負荷が余分に増加してしまう。
【００１４】
本発明は、こうした問題に鑑みなされたものであり、一定時間毎にＡ／Ｄ変換器を起動して複数のアナログ信号をＡ／Ｄ変換する信号処理装置において、何れかのアナログ信号について、それのＡ／Ｄ変換データのＡ／Ｄ変換器からメモリへのＤＭＡ転送を、Ａ／Ｄ変換器の起動間隔とは異なる任意の間隔で行えるようにすることを目的としている。
【課題を解決するための手段】
【００１５】
請求項１の信号処理装置は、プログラムを実行するＣＰＵと、Ａ／Ｄ変換器と、そのＡ／Ｄ変換器に対してＡ／Ｄ変換の実施を指令するためのＡ／Ｄ変換要求信号を一定時間毎に出力するＡ／Ｄ変換要求手段と、Ａ／Ｄ変換器によってＡ／Ｄ変換された後のデータであるＡ／Ｄ変換データを格納するためのメモリと、ＤＭＡコントローラとを備えている。
【００１６】
そして、Ａ／Ｄ変換器は、Ａ／Ｄ変換対象のアナログ信号が入力される入力端子を複数有しており、上記Ａ／Ｄ変換要求信号を受ける毎に、各入力端子からの複数のアナログ信号をＡ／Ｄ変換するＡ／Ｄ変換動作を開始して、該Ａ／Ｄ変換動作が完了すると、Ａ／Ｄ変換完了信号を出力する。
【００１７】
また、ＤＭＡコントローラは、Ａ／Ｄ変換器からのＡ／Ｄ変換完了信号が、Ａ／Ｄ変換器から前記メモリへのＤＭＡ転送を指令するＤＭＡ転送要求信号として与えられるようになっており、そのＤＭＡ転送要求信号を受けると、Ａ／Ｄ変換器からメモリへのデータ転送を行う。
【００１８】
ここで特に、請求項１の信号処理装置は、ＣＰＵにより設定される周期及びパルス幅のＰＷＭ信号を出力するＰＷＭ信号出力回路と、そのＰＷＭ信号出力回路から出力されるＰＷＭ信号が入力されるデータ転送要求手段とを備えている。
【００１９】
そして、データ転送要求手段は、ＰＷＭ信号出力回路からのＰＷＭ信号に特定方向のエッジが発生すると、ＤＭＡコントローラに、前記Ａ／Ｄ変換完了信号とは別のＤＭＡ転送要求信号を出力する。
【００２０】
更に、ＤＭＡコントローラは、自己に与えられるＤＭＡ転送要求信号の各々について、Ａ／Ｄ変換器の何れの入力端子に対応するＡ／Ｄ変換データを前記メモリに転送するかが、ＣＰＵによって指定されるようになっている。そして、ＤＭＡコントローラは、ＤＭＡ転送要求信号の何れかを受けると、Ａ／Ｄ変換器の各入力端子のうち、その受けたＤＭＡ転送要求信号についてＣＰＵにより事前に指定されている入力端子に対応したＡ／Ｄ変換データを、Ａ／Ｄ変換器から前記メモリに転送する。尚、入力端子に対応したＡ／Ｄ変換データとは、その入力端子からのアナログ信号をＡ／Ｄ変換したＡ／Ｄ変換データのことであり、以下では、単に入力端子のＡ／Ｄ変換データともいう。
【００２１】
このような信号処理装置によれば、ＤＭＡコントローラに対して、Ａ／Ｄ変換器からのＡ／Ｄ変換完了信号であるＤＭＡ転送要求信号（以下、第１種ＤＭＡ転送要求信号ともいう）とは別のＤＭＡ転送要求信号（以下、第２種ＤＭＡ転送要求信号ともいう）を、データ転送要求手段からＰＭＷ信号の周期で与えることができる。
【００２２】
そして、そのＰＷＭ信号の周期であって、第２種ＤＭＡ転送要求信号の発生周期は、ＣＰＵによって（換言すればプログラムによって）ＰＷＭ信号出力回路に設定する周期の値により任意に設定することができる。
【００２３】
更に、ＤＭＡコントローラが、どのＤＭＡ転送要求信号を受けた場合に、Ａ／Ｄ変換器のどの入力端子のＡ／Ｄ変換データをメモリにＤＭＡ転送するのかも、ＣＰＵによって任意に設定することができる。
【００２４】
よって、第２種ＤＭＡ転送要求信号に対してＤＭＡ転送の対象に設定した入力端子のＡ／Ｄ変換データについては、Ａ／Ｄ変換器からメモリへのＤＭＡ転送を、任意に設定可能なＰＷＭ信号の周期であって、Ａ／Ｄ変換器の起動間隔とは異なる任意の間隔で行うことができる。
【００２５】
このため、請求項１の信号処理装置によれば、一定時間毎にＡ／Ｄ変換器を起動して複数のアナログ信号をＡ／Ｄ変換する場合に、任意のアナログ信号について、それのＡ／Ｄ変換データのＡ／Ｄ変換器からメモリへのＤＭＡ転送を、Ａ／Ｄ変換器の起動間隔とは異なる任意の間隔で行うことができる。
【００２６】
そして更に、このことから、下記［１］，［２］の効果も得られる。
【００２７】
［１］必要なサンプリング間隔が異なるアナログ信号をＡ／Ｄ変換する場合であって、短い間隔ＴＳでのＡ／Ｄ変換データが必要なアナログ信号（必要なサンプリング間隔が短い間隔ＴＳであるアナログ信号）Ａｓ１と、その間隔ＴＳよりも長い間隔ＴＬでのＡ／Ｄ変換データが取得できれば良いアナログ信号（必要なサンプリング間隔が長い間隔ＴＬであるアナログ信号）Ａｓ２とがある場合に、メモリの必要容量を従来よりも低減することができる。
【００２８】
具体的に説明すると、その場合には、Ａ／Ｄ変換器の起動間隔（Ａ／Ｄ変換要求手段がＡ／Ｄ変換要求信号を出力する間隔）を、上記短い間隔ＴＳの方である最速サンプリング間隔に合わせることとなる。
【００２９】
そして、アナログ信号Ａｓ１については、ＤＭＡコントローラが第１種ＤＭＡ転送要求信号（Ａ／Ｄ変換完了信号）を受けたときに、そのアナログ信号Ａｓ１のＡ／Ｄ変換データをメモリへ転送するように設定することで、上記短い間隔ＴＳでのＡ／Ｄ変換データをメモリに順次格納することができる。
【００３０】
また、アナログ信号Ａｓ２については、ＤＭＡコントローラが第２種ＤＭＡ転送要求信号を受けたときに、そのアナログ信号Ａｓ２のＡ／Ｄ変換データをメモリへ転送するように設定すると共に、ＰＷＭ信号の周期を上記長い間隔ＴＬに設定することで、Ａ／Ｄ変換間隔（＝アナログ信号Ａｓ１のサンプリング間隔）よりも長い間隔ＴＬでのＡ／Ｄ変換データだけをメモリに順次格納することができる。
【００３１】
よって、アナログ信号Ａｓ２について、必要以上に短い間隔ＴＳでのＡ／Ｄ変換データがメモリに格納されることを回避できる。また、メモリから不要なＡ／Ｄ変換データを間引く処理をＣＰＵが行う必要もなくなる。
【００３２】
［２］上記アナログ信号Ａｓ２のＡ／Ｄ変換データを、上記アナログ信号Ａｓ１のＡ／Ｄ変換データと時間的に相関性の良いものにすることができる。
【００３３】
なぜなら、第２種ＤＭＡ転送要求信号の源（ソース）となるＰＷＭ信号の周期を、Ａ／Ｄ変換間隔のｎ倍（ｎは１以上の整数）に設定すれば、メモリに格納されるアナログ信号Ａｓ２のＡ／Ｄ変換データは、アナログ信号Ａｓ１のサンプリング間隔のｎ倍の間隔でＡ／Ｄ変換したデータとなるからである。
【００３４】
尚、例えば、エンジンの冷却水温を検出するための水温センサからの信号のように、比較的長い時間をかけて値が徐々に変化していくアナログ信号がＡ／Ｄ変換対象ならば、それのＡ／Ｄ変換データを、ＣＰＵが、処理負荷の小さいときにＡ／Ｄ変換器から読み出してメモリに書き込むようにすることもできる。これに対して、本発明は、Ａ／Ｄ変換データのメモリへの格納をＤＭＡコントローラで行うため、Ａ／Ｄ変換間隔ほどのサンプリング間隔は要らないが、そのＡ／Ｄ変換間隔の数倍〜数十倍程度の間隔ではサンプリングしたいアナログ信号をＡ／Ｄ変換する場合において、特に有効である。
【００３５】
一方、Ａ／Ｄ変換要求手段は、ＣＰＵとは別の回路であっても良いし、ＣＰＵがプログラムを実行することで実現される手段でも良い。
【００３６】
次に、ＰＷＭ信号の上記特定方向のエッジであって、第２種ＤＭＡ転送要求信号を発生させることとなるＰＷＭ信号の有効エッジについて述べる。
【００３７】
まず、ＰＷＭ信号出力回路が出力するＰＷＭ信号のエッジには、立ち上がりエッジと立ち下がりエッジとがあるが、本明細書では、そのうちの一方を周期エッジと呼び、他方をデューティエッジと呼ぶ。
【００３８】
ここで、周期エッジは、ＣＰＵによってＰＷＭ信号出力回路に設定される周期及びパルス幅の各値のうち、周期の値によって発生間隔が変化し、且つ、パルス幅の値によっては発生タイミングが変化しない方のエッジである。
【００３９】
また、デューティエッジは、周期エッジとは逆方向のエッジであって、ＣＰＵにより設定されるパルス幅の値によって周期エッジからの発生間隔が変化する方のエッジである。尚、デューティエッジの発生間隔も、周期エッジの間隔と同じであり、ＣＰＵにより設定される周期の値によって変化する。
【００４０】
そして、上記特定方向のエッジとしては、請求項２に記載のように、周期エッジであっても良いし、請求項３に記載のように、デューティエッジであっても良い。
【００４１】
また特に、デューティエッジを、上記特定方向のエッジとしたならば、下記の点で有利である。
【００４２】
まず、第２種ＤＭＡ転送要求信号の発生タイミング（即ち、データ転送要求手段がＤＭＡ転送要求信号を出力するタイミングであって、ＤＭＡコントローラがＤＭＡ転送を開始するタイミング）は、Ａ／Ｄ変換器がＡ／Ｄ変換動作を完了してから次回のＡ／Ｄ変換動作を開始するまでのＡ／Ｄ変換停止期間中における特定タイミングであって、より詳しくは、Ａ／Ｄ変換器でのＡ／Ｄ変換データが確定し、且つ、次回のＡ／Ｄ変換動作が開始されるまでにＤＭＡコントローラがＤＭＡ転送を終了できるタイミングに設定するべきである。Ａ／Ｄ変換データのメモリへの格納を確実に行えるようにするためである。
【００４３】
また、ＰＷＭ信号のデューティエッジの発生タイミングは、ＰＷＭ信号出力回路に設定するパルス幅の値により、周期エッジを基準にして調整することができる。
【００４４】
このため、請求項３に記載の信号処理装置のように、ＰＷＭ信号のデューティエッジによって第２種ＤＭＡ転送要求信号が発生するように構成すれば、その第２種ＤＭＡ転送要求信号の発生タイミングを、ＰＷＭ信号出力回路に設定するパルス幅の値により、ＰＷＭ信号の周期エッジを基準にして設定することができる。
【００４５】
よって、ＰＷＭ信号に周期エッジが発生するタイミングと、例えばＡ／Ｄ変換要求手段がＡ／Ｄ変換要求信号を出力するタイミング（即ち、Ａ／Ｄ変換器の起動タイミング）とのずれが分かっており、且つ、ＰＷＭ信号の周期の値をＡ／Ｄ変換間隔のｎ倍（ｎは１以上の整数）に設定すれば、ＰＷＭ信号出力回路に設定するパルス幅の値のみによって、第２種ＤＭＡ転送要求信号の発生タイミングを、Ａ／Ｄ変換停止期間中における上記特定タイミングに合わせることができ、そのタイミング調整が容易となるのである。
【００４６】
また、請求項４に記載のように、上記特定方向のエッジを、周期エッジとデューティエッジとの両方とし、データ転送要求手段が、ＰＷＭ信号に周期エッジが発生したときと、ＰＷＭ信号にデューティエッジが発生したときとで、別々のＤＭＡ転送要求信号をＤＭＡコントローラに出力するように構成すれば、１つのＰＷＭ信号で２つの第２種ＤＭＡ転送要求信号を生成することができる。そして、周期エッジに対応する方のＤＭＡ転送要求信号が発生したときと、デューティエッジに対応する方のＤＭＡ転送要求信号が発生したときとで、それぞれ異なる入力端子のＡ／Ｄ変換データをメモリに転送することができるため、その異なる入力端子のＡ／Ｄ変換データを、Ａ／Ｄ変換間隔よりも長い同じ間隔で、且つ、ＰＷＭ信号のパルス幅の分だけ位相がずれたタイミングで、メモリに格納することができるようになる。
【００４７】
ところで、前述したように請求項３の信号処理装置によれば、ＰＷＭ信号出力回路に設定するパルス幅の値のみによって、第２種ＤＭＡ転送要求信号の発生タイミングを、Ａ／Ｄ変換停止期間中における最適な特定タイミングに合わせることができるが、そのＰＷＭ信号出力回路に設定したパルス幅の値が、何らかの原因（外乱ノイズなど）で変わってしまったとすると、第２種ＤＭＡ転送要求信号の発生タイミングが最適なタイミングからずれてしまうこととなる。そこで、こうした不都合を回避するためには、請求項５の信号処理装置のように構成すると良い。
【００４８】
即ち、請求項５の信号処理装置では、請求項３の信号処理装置において、ＣＰＵは、ＰＷＭ信号の周期を、Ａ／Ｄ変換要求信号の出力周期（Ａ／Ｄ変換間隔）のｎ倍（ｎは１以上の整数）に設定すると共に、ＰＷＭ信号のパルス幅を所定値に設定するようになっている。
【００４９】
そして更に、ＣＰＵは、パルス幅補正処理を行うようになっており、そのパルス幅補正処理では、データ転送要求手段がＤＭＡ転送要求信号を出力したタイミングを検出し、その検出結果に基づいて、データ転送要求手段からのＤＭＡ転送要求信号の出力タイミング（第２種ＤＭＡ転送要求信号の発生タイミング）が、Ａ／Ｄ変換器がＡ／Ｄ変換動作を完了してから次回のＡ／Ｄ変換動作を開始するまでの期間中における特定タイミングとなるように、ＰＷＭ信号のパルス幅の設定値を補正する。つまり、第２種ＤＭＡ転送要求信号の実際の発生タイミングを確認して、そのタイミングが目的の上記特定タイミングとなるように、パルス幅の設定値を設定し直すのである。
【００５０】
そして、このような請求項５の信号処理装置によれば、第２種ＤＭＡ転送要求信号の発生タイミングが目的のタイミングからずれたままになることを防止することができる。また仮に、パルス幅の値として最初に設定した上記所定値が不適切な値であったとしても、パルス幅補正処理が行われることで、そのパルス幅の値を適切な値（即ち、第２種ＤＭＡ転送要求信号の発生タイミングを上記特定タイミングにすることのできる値）へと、自動的に設定し直すことができる。
【００５１】
尚、パルス幅補正処理は、定期的に行われるようにすることが好ましいが、例えば、当該信号処理装置が起動した後の所定タイミングで一回だけ行われるようにしても良い。
【００５２】
また、パルス幅補正処理としては、具体的には、請求項６に記載のような第１〜第３の補正処理のうちの少なくとも１つが考えられる。
【００５３】
即ち、第１の補正処理は、データ転送要求手段がＤＭＡ転送要求信号を出力する直前にＡ／Ｄ変換器がＡ／Ｄ変換動作を完了した時刻から、データ転送要求手段がＤＭＡ転送要求信号を出力するまでの時間であるＡ／Ｄ変換完了後余裕時間を、ＤＭＡ転送要求信号の出力タイミングとして検出し、その検出結果に基づいて、Ａ／Ｄ変換完了後余裕時間が該Ａ／Ｄ変換完了後余裕時間の目標値となるように、ＰＷＭ信号のパルス幅の設定値を補正する、という処理である。
【００５４】
また、第２の補正処理は、データ転送要求手段がＤＭＡ転送要求信号を出力してからＡ／Ｄ変換器が次回の前記Ａ／Ｄ変換動作を開始するまでの時間であるＡ／Ｄ変換開始前余裕時間を、ＤＭＡ転送要求信号の出力タイミングとして検出し、その検出結果に基づいて、Ａ／Ｄ変換開始前余裕時間が該Ａ／Ｄ変換開始前余裕時間の目標値となるように、ＰＷＭ信号のパルス幅の設定値を補正する、という処理である。
【００５５】
そして、第３の補正処理は、データ転送要求手段がＤＭＡ転送要求信号を出力する直前にＡ／Ｄ変換器がＡ／Ｄ変換動作を開始した時刻から、データ転送要求手段がＤＭＡ転送要求信号を出力するまでの時間であるＡ／Ｄ変換開始後余裕時間を、ＤＭＡ転送要求信号の出力タイミングとして検出し、その検出結果に基づいて、Ａ／Ｄ変換開始後余裕時間が該Ａ／Ｄ変換開始後余裕時間の目標値となるように、ＰＷＭ信号のパルス幅の設定値を補正する、という処理である。
【００５６】
尚、この第３の補正処理の場合、Ａ／Ｄ変換開始後余裕時間の目標値は、第１の補正処理におけるＡ／Ｄ変換完了後余裕時間の目標値に対して、Ａ／Ｄ変換器のＡ／Ｄ変換動作時間を加えた値となる。
【００５７】
一方、請求項４の信号処理装置においても、ＰＷＭ信号のデューティエッジによって第２種ＤＭＡ転送要求信号を発生させるという点では、請求項３の信号処理装置と同じである。
【００５８】
そのため、請求項７の信号処理装置では、請求項４の信号処理装置において、請求項５の信号処理装置と同様に、ＣＰＵが、ＰＷＭ信号の周期を、Ａ／Ｄ変換要求信号の出力周期のｎ倍（ｎは１以上の整数）に設定すると共に、ＰＷＭ信号のパルス幅を所定値に設定するようになっており、更に、デューティエッジに対応する方のＤＭＡ転送要求信号について、請求項５の信号処理装置と同様のパルス幅補正処理を行うようになっている。尚、デューティエッジに対応する方のＤＭＡ転送要求信号とは、ＰＷＭ信号にデューティエッジが発生したときに、データ転送要求手段が出力するＤＭＡ転送要求信号のことである。
【００５９】
そして、その請求項７の信号処理装置によれば、請求項５の信号処理装置について述べた効果と同じ効果を、デューティエッジに対応する方のＤＭＡ転送要求信号に関して得ることができる。
【００６０】
また、請求項７に記載のパルス幅補正処理としては、具体的には、請求項８に記載のような第１〜第３の補正処理のうちの少なくとも１つが考えられる。尚、その第１〜第３の補正処理は、請求項６に記載の第１〜第３の補正処理を、デューティエッジに対応する方のＤＭＡ転送要求信号について行うものである。
【００６１】
ところで、第２種ＤＭＡ転送要求信号の発生タイミングが常に前述の特定タイミングとなるようにするためには、ＰＷＭ信号の周期をＡ／Ｄ変換間隔のｎ倍（ｎは１以上の整数）に設定することとなるが、ＣＰＵによってＰＷＭ信号出力回路に設定された周期の値が、何らかの原因（外乱ノイズなど）で変わってしまったとすると、第２種ＤＭＡ転送要求信号の発生タイミングが最適な特定タイミングからずれてしまうこととなる。そこで、こうした不都合を回避するためには、請求項９の信号処理装置のように構成すると良い。
【００６２】
即ち、請求項９の信号処理装置では、請求項１〜３，５，６の信号処理装置において、ＣＰＵは、ＰＷＭ信号の周期を、Ａ／Ｄ変換要求信号の出力周期（Ａ／Ｄ変換間隔）のｎ倍（ｎは１以上の整数）に設定するようになっている。そして更に、ＣＰＵは、周期補正処理を行うようになっており、その周期補正処理では、データ転送要求手段がＤＭＡ転送要求信号を出力する間隔である信号出力間隔と、Ａ／Ｄ変換器がＡ／Ｄ変換動作を行う間隔であるＡ／Ｄ変換間隔の前記ｎ倍の間隔と検出し、その両検出値の差に基づいて、前記信号出力間隔がＡ／Ｄ変換間隔の前記ｎ倍の間隔と等しくなるように、ＰＷＭ信号の周期の設定値を補正する。つまり、第２種ＤＭＡ転送要求信号の実際の発生間隔を確認して、その発生間隔が、実際のＡ／Ｄ変換間隔のｎ倍となるように、周期の設定値を設定し直すのである。
【００６３】
そして、このような請求項９の信号処理装置によれば、第２種ＤＭＡ転送要求信号の発生タイミングが目的のタイミングからずれたままになることを防止することができる。
【００６４】
尚、周期補正処理は、定期的に行われるようにすることが好ましいが、例えば、当該信号処理装置が起動した後の所定タイミングで一回だけ行われるようにしても良い。
【００６５】
また、請求項１０の信号処理装置では、請求項４，７，８の信号処理装置において、請求項９の信号処理装置と同様に、ＣＰＵが、ＰＷＭ信号の周期を、Ａ／Ｄ変換要求信号の出力周期のｎ倍（ｎは１以上の整数）に設定するようになっており、更に、デューティエッジに対応する方のＤＭＡ転送要求信号、又は周期エッジに対応する方のＤＭＡ転送要求信号について、請求項９の信号処理装置と同様の周期補正処理を行うようになっている。尚、周期エッジに対応する方のＤＭＡ転送要求信号とは、ＰＷＭ信号に周期エッジが発生したときに、データ転送要求手段が出力するＤＭＡ転送要求信号のことである。
【００６６】
具体的には、請求項１０の信号処理装置における周期補正処理では、データ転送要求手段がデューティエッジに対応する方のＤＭＡ転送要求信号を出力する間隔とデータ転送要求手段が周期エッジに対応する方のＤＭＡ転送要求信号を出力する間隔との何れかを、信号出力間隔として検出すると共に、Ａ／Ｄ変換器がＡ／Ｄ変換動作を行う間隔であるＡ／Ｄ変換間隔のｎ倍の間隔を検出し、その両検出値の差に基づいて、前記信号出力間隔がＡ／Ｄ変換間隔の前記ｎ倍の間隔と等しくなるように、ＰＷＭ信号の周期の設定値を補正する。
【００６７】
そして、その請求項１０の信号処理装置によっても、請求項９の信号処理装置と同様に、第２種ＤＭＡ転送要求信号の発生タイミングが目的のタイミングからずれたままになることを防止することができる。
【００６８】
次に、請求項１１の信号処理装置は、請求項１〜１０の信号処理装置において、ＰＷＭ信号出力回路及びデータ転送要求手段を複数組備えている。
【００６９】
この請求項１１の信号処理装置によれば、複数の第２種ＤＭＡ転送要求信号を異なる周期で発生させることができ、また、その各第２種ＤＭＡ転送要求信号について、ＤＭＡコントローラがＡ／Ｄ変換器のどの入力端子に対応するＡ／Ｄ変換データをメモリにＤＭＡ転送するのかも、ＣＰＵによって任意に設定することができる。このため、Ａ／Ｄ変換器の異なる入力端子に対応する各Ａ／Ｄ変換データを、Ａ／Ｄ変換間隔とは異なる複数通りの各周期で、メモリにそれぞれ転送することができるようになる。
【発明を実施するための最良の形態】
【００７０】
以下に、本発明が適用された実施形態の信号処理装置としてのマイコンについて説明する。尚、本実施形態のマイコンは、例えば、車両のコモンレール式ディーゼルエンジンを制御する電子制御装置（以下、ＥＣＵという）に搭載されて、そのエンジンを制御するための処理を実行するが、以下では、本発明に直接関係する部分について説明する。
［第１実施形態］
図１に示すように、本実施形態のマイコン１０は、図１６に示したマイコン１００と比較すると、ＰＷＭ信号出力回路２３とタイマユニット２５を更に備えている点と、ＤＭＡコントローラ１５に代わるＤＭＡコントローラ１６を備えている点とが異なっている。尚、図１において、図１６と同じ構成要素については、同一の符号を付しているため、説明を省略する。
【００７１】
ＰＷＭ信号出力回路２３は、ＣＰＵ２１によってＰＷＭ信号の周期の値（周期値）とパルス幅の値（パルス幅値）とがそれぞれ書き込まれる周期値レジスタ２３ａ及びパルス幅値レジスタ２３ｂを備えており、上記周期値レジスタ２３ａに書き込まれた値の周期を有し、且つ、上記パルス幅値レジスタ２３ｂに書き込まれた値のパルス幅を有したＰＷＭ信号を生成して、そのＰＷＭ信号を当該マイコン１０の信号出力端子Ｊ１から外部に出力する。尚、こうしたＰＷＭ信号出力回路２３は、例えば前述の特許文献２に記載されており、その特許文献２では、ＰＷＭ信号のパルス幅値のことを、デューティ値と称している。
【００７２】
また、本実施形態においては、ＰＷＭ信号のエッジのうち、立ち上がりエッジが前述の周期エッジであり、立ち下がりエッジが前述のデューティエッジである。そして、図２に示すように、本実施形態におけるＰＷＭ信号では、立ち上がりから立ち下がりまで（周期エッジからデューティエッジまで）のハイ時間が、上記パルス幅値レジスタ２３ｂの値に該当する時間幅を有したパルス幅Ｔｄｕｔｙである。尚、図２において、Ｔｐｗｍは、ＰＷＭ信号の周期であって、周期エッジの間隔であるが、当然デューティエッジの間隔もＴｐｗｍと同じである。
【００７３】
タイマユニット２５は、フリーランタイマ回路や、タイマ割込を発生させるための回路や、インプットキャプチャ機能の回路を有したブロックである。そして、図１６では図示を省略したが、そのタイマユニット２５と同様のものは、図１６に示したマイコン１００にも備えられる。
【００７４】
但し、本実施形態のマイコン１０に備えられたタイマユニット２５は、更に、当該マイコン１０の信号入力端子Ｊ２からの入力信号に特定方向のエッジが発生すると、ＤＭＡコントローラ１６に、Ａ／Ｄ変換完了信号（ＴｒｇＢ）とは別のＤＭＡ転送要求信号を出力するＤＭＡ転送要求機能の回路２５ａを有している。
【００７５】
そして、上記信号入力端子Ｊ２は、当該マイコン１０の外部の配線により、上記信号出力端子Ｊ１と接続されている。このため、タイマユニット２５には、ＰＷＭ信号出力回路２３によってマイコン１０の外部に出力されたＰＷＭ信号が、信号入力端子Ｊ２から入力される。
【００７６】
また、本実施形態において、上記特定方向のエッジは、立ち下がりエッジである。つまり、タイマユニット２５（詳しくは、上記ＤＭＡ転送要求機能の回路２５ａ）は、信号入力端子Ｊ２からの入力信号に立ち下がりエッジが発生すると、ＤＭＡコントローラ１６にＤＭＡ転送要求信号を出力するようになっている。
【００７７】
よって、タイマユニット２５は、ＰＷＭ信号出力回路２３からのＰＷＭ信号に、立ち下がりエッジであるデューティエッジが生じると、ＤＭＡコントローラ１６にＤＭＡ転送要求信号を出力することとなる。尚、そのタイマユニット２５からＤＭＡコントローラ１６へのＤＭＡ転送要求信号も、ＤＭＡ転送実施のトリガであることから、以下では、そのタイマユニット２５からの上記ＤＭＡ転送要求信号のことを、トリガＣを意味するＴｒｇＣとも言う。
【００７８】
ＤＭＡコントローラ１６は、自己に与えられるＤＭＡ転送要求信号（本実施形態では、Ａ／Ｄ変換器１１からのＴｒｇＢと、タイマユニット２５からのＴｒｇＣ）の各々について、Ａ／Ｄ変換器１１の何れの入力端子に対応するＡ／Ｄ変換データをＲＡＭ１７に転送するか（即ち、Ａ／Ｄ変換器１１のどのチャンネルのＡ／Ｄ変換データをＲＡＭ１７に転送するか）がＣＰＵ２１によって指定（設定）されるようになっている。そして、ＤＭＡコントローラ１６は、ＤＭＡ転送要求信号の何れかを受けると、Ａ／Ｄ変換器１１のチャンネルのうち、その受けたＤＭＡ転送要求信号についてＣＰＵ２１により事前に転送対象として指定されているチャンネルのＡ／Ｄ変換データを、Ａ／Ｄ変換器１１からＲＡＭ１７に転送（ＤＭＡ転送）する。
【００７９】
一方、図１に示すように、マイコン１０が搭載されたＥＣＵ１の制御対象であるエンジン３では、そのエンジン３の各気筒（本実施形態では４気筒の各々）へコモンレールからの燃料を噴射する各インジェクタＩＪ１〜ＩＪ４に、そのインジェクタＩＪ１〜ＩＪ４内の燃料圧（以下、インジェクタ圧という）を検出する圧力センサＳ１〜Ｓ４が設けられている。
【００８０】
そして、その各圧力センサＳ１〜Ｓ４からのアナログ信号であるインジェクタ圧信号Ｐ１〜Ｐ４が、ＥＣＵ１に設けられた入力回路５を介して、マイコン１０内におけるＡ／Ｄ変換器１１の各チャンネル（各入力端子）ｃｈ１〜ｃｈ４に入力されるようになっている。
【００８１】
次に、マイコン１０における各部の動作等について説明する。
【００８２】
図２に示すように、マイコン１０では、Ａ／Ｄ起動タイマ１３が、ＣＰＵ２１によって設定された一定時間毎に、Ａ／Ｄ変換器１１へ、Ａ／Ｄ変換要求信号であるＴｒｇＡを出力する。そして、Ａ／Ｄ変換器１１は、そのＴｒｇＡが出力される毎に起動して、各チャンネルｃｈ１〜ｃｈ４のアナログ信号（即ち、各気筒のインジェクタ圧信号Ｐ１〜Ｐ４）を順次（本実施形態ではチャンネル番号が小さいものから順に）Ａ／Ｄ変換し、そのＡ／Ｄ変換動作が完了すると、ＤＭＡコントローラ１６へ、Ａ／Ｄ変換完了信号且つＤＭＡ転送要求信号であるＴｒｇＢを出力する。
【００８３】
また、Ａ／Ｄ起動タイマ１３からのＴｒｇＡの出力周期であってＡ／Ｄ変換間隔である上記一定時間は、何れかの気筒のインジェクタ圧信号Ｐ１〜Ｐ４をサンプリングする最小の間隔（本実施形態では例えば２０μｓ）に設定されている。
【００８４】
一方、ＰＷＭ信号出力回路２３の周期値レジスタ２３ａには、ＴｒｇＡの出力周期のｎ倍（ｎは１以上の整数であり、本実施形態ではｎ＝２）の時間に相当する値がＣＰＵ２１によりセットされる。
【００８５】
このため、図２に示すように、ＰＷＭ信号出力回路２３からは、周期ＴｐｗｍがＴｒｇＡの周期の２倍であるＰＷＭ信号が出力される。
【００８６】
そして、そのＰＷＭ信号にデューティエッジ（立ち下がりエッジ）が生じる毎に、タイマユニット２５からＤＭＡコントローラ１６へ、ＴｒｇＢとは別のＤＭＡ転送要求信号（第２種ＤＭＡ転送要求信号）であるＴｒｇＣが出力される。尚、ＰＷＭ信号のデューティエッジも、周期エッジと同様に、そのＰＷＭ信号の周期Ｔｐｗｍ毎に生じるため、ＴｒｇＣは、ＴｒｇＡ及びＴｒｇＢの発生周期の２倍の周期で発生することとなる。
【００８７】
また、ＰＷＭ信号出力回路２３のパルス幅値レジスタ２３ｂには、図３に示すように、ＴｒｇＣの発生タイミングが、Ａ／Ｄ変換器１１のＡ／Ｄ変換動作が完了してから次回のＡ／Ｄ変換動作が開始されるまでのＡ／Ｄ変換停止期間中における特定タイミングとなるように、ＣＰＵ２１によって値がセットされる。そして、その特定タイミングとは、Ａ／Ｄ変換器１１での全チャンネルのＡ／Ｄ変換データが確定し、且つ、次回のＡ／Ｄ変換動作が開始されるまでにＤＭＡコントローラ１６がＤＭＡ転送を終了できるタイミングである。尚、このように設定するのは、ＴｒｇＣによるＡ／Ｄ変換データのＲＡＭ１７へのＤＭＡ転送を確実に行えるようにするためである。
【００８８】
ここで、パルス幅値レジスタ２３ｂに設定するパルス幅値について、図４を用い更に詳しく説明する。
【００８９】
まず、ＣＰＵ２１は、動作を開始して、初期設定処理により、ＴｒｇＡの出力周期の設定と、ＰＷＭ信号の周期値及びパルス幅値の設定を行った後、Ａ／Ｄ起動タイマ１３とＰＷＭ信号出力回路２３を起動するが、その両者の起動時間差は、図４に示すように、Ａ／Ｄ起動タイマ１３からのＴｒｇＡの出力タイミングと、ＰＷＭ信号出力回路２３からのＰＷＭ信号に周期エッジが発生するタイミングとの時間差Ｔｓｄとして現れる。そして、その時間差Ｔｓｄは既知である。尚、本実施形態において、ＣＰＵ２１は、Ａ／Ｄ起動タイマ１３とＰＷＭ信号出力回路２３とを、プログラム中の連続した各処理ステップで順次起動するようになっている。そして、上記時間差Ｔｓｄは、その各処理ステップの実行時間差と、ＣＰＵ２１がＡ／Ｄ起動タイマ１３の起動処理を行ってから該Ａ／Ｄ起動タイマ１３が動作を開始してＴｒｇＡを出力するまでの時間と、ＣＰＵ２１がＰＷＭ信号出力回路２３の起動処理を行ってから該ＰＷＭ信号出力回路２３が動作を開始してＰＷＭ信号を最初にハイへと変化させるまでの時間とから計算することができる。
【００９０】
また、図４において、時刻Ｔｓａｄは、パルス幅値を決定するための基準となるＴｒｇＡの出力タイミングであり、時刻Ｔｔｒｇは、ＴｒｇＣを発生させたい目標の上記特定タイミングであり、時間Ｔｔｇは、時刻Ｔｓａｄから時刻Ｔｔｒｇまでの時間であって、ＴｒｇＡが発生してからＴｒｇＣを発生させるまでの時間である。
【００９１】
そして、Ｔｉａｄは、ＴｒｇＡの出力タイミングからＡ／Ｄ変換器１１がＡ／Ｄ変換動作を完了するまでのＡ／Ｄ変換時間（Ａ／Ｄ変換動作をする時間）である。
【００９２】
また、余裕時間Ｔｍａは、Ａ／Ｄ変換器１１がＡ／Ｄ変換動作を完了した時刻（Ａ／Ｄ変換完了時刻）Ｔｅａｄから、ＴｒｇＣを発生させたい目標の時刻Ｔｔｒｇまでの時間である。そして、その余裕時間Ｔｍａは、Ａ／Ｄ変換器１１でのＡ／Ｄ変換動作が完了してから全チャンネルのＡ／Ｄ変換データが確定してＤＭＡ転送を開始できるまでの最大時間と同じか、それよりも若干の余裕分だけ長い時間である。
【００９３】
また、余裕時間Ｔｍｂは、ＴｒｇＣを発生させたい目標の時刻Ｔｔｒｇから、ＴｒｇＡの次の出力タイミングまでの時間である。そして、その余裕時間Ｔｍｂは、ＤＭＡコントローラ１６によるＤＭＡ転送に必要な最大時間と同じか、それよりも若干の余裕分だけ長い時間である。
【００９４】
更に、「Ｔｍａ＋Ｔｍｂ」は、Ａ／Ｄ変換完了時刻ＴｅａｄからＴｒｇＡの次の出力タイミングまでの時間（換言すれば、ＴｒｇＡの出力周期であるＡ／Ｄ変換間隔ＴａｄからＡ／Ｄ変換時間Ｔｉａｄを引いた残りの時間）と等しくなるように定められている。
【００９５】
一方、図４において、Ｔｄｕｔｙは、ＰＷＭ信号のパルス幅であり、Ｔｉｄは、ＰＷＭ信号にデューティエッジが発生してから、タイマユニット２５がＴｒｇＣを出力するまでのハードウェア上の遅れ時間である。
【００９６】
そして、図４から明らかなように、下記の式１が成立し、その式１を変形すると、下記の式２となる。
【００９７】
Ｔｔｇ＝Ｔｉａｄ＋Ｔｍａ＝Ｔｓｄ＋Ｔｄｕｔｙ＋Ｔｉｄ  …式１
Ｔｄｕｔｙ＝Ｔｉａｄ＋Ｔｍａ−（Ｔｓｄ＋Ｔｉｄ）  …式２
よって、パルス幅値レジスタ２３ｂに、「Ｔｉａｄ＋Ｔｍａ−（Ｔｓｄ＋Ｔｉｄ）」の時間に相当する値をセットすれば、ＴｒｇＣを、Ａ／Ｄ変換データのＲＡＭ１７へのＤＭＡ転送が確実に行える上記特定タイミングで発生させることができる。
【００９８】
このため、ＣＰＵ２１は、上記初期設定処理において、パルス幅値レジスタ２３ｂに、「Ｔｉａｄ＋Ｔｍａ−（Ｔｓｄ＋Ｔｉｄ）」の時間に相当する値をセットするようになっている。
【００９９】
尚、ＰＷＭ信号のパルス幅Ｔｄｕｔｙを、Ａ／Ｄ変換間隔Ｔａｄ以上の値に設定することも考えられる。そして、Ｔｄｕｔｙを、Ｔａｄのｍ倍（ｍは１以上の整数）以上で、且つ、Ｔａｄの「ｍ＋１」倍未満の範囲内に設定するのであれば、上記式１及び式２における「Ｔｉａｄ」を、「Ｔａｄ×ｍ＋Ｔｉａｄ」に置き換えれば良い。
【０１００】
一方、ＣＰＵ２１は、ＴｒｇＢとＴｒｇＣとの各々ついて、ＤＭＡコントローラ１６がＤＭＡ転送の対象とするＡ／Ｄ変換器１１のチャンネル（以下、転送対象Ａ／Ｄチャンネルという）を、下記のように切り替える。
【０１０１】
まず、ＴｒｇＢについての転送対象Ａ／Ｄチャンネルは、各気筒の燃料噴射タイミングを含む１８０°ＣＡ分の期間毎に、その今回の１８０°ＣＡ分の期間中において燃料噴射タイミングが到来する気筒のインジェクタ圧信号Ｐ１〜Ｐ４が入力されているチャンネルに切り替える。そして、ＴｒｇＣについての転送対象Ａ／Ｄチャンネルは、上記１８０°ＣＡ分の期間毎に、その今回の１８０°ＣＡ分の期間中において燃料噴射タイミングが到来しない気筒（本実施形態では、ＴｒｇＢについての転送対象Ａ／Ｄチャンネルに対応する気筒とは３６０°ＣＡだけ行程がずれている気筒）のインジェクタ圧信号Ｐ１〜Ｐ４が入力されているチャンネルに切り替える。尚、ＣＡは、エンジン３のクランク軸の回転角度を意味する慣用語である。
【０１０２】
このため、エンジン３の１サイクル（７２０°ＣＡ分の期間）を４等分した１８０°ＣＡ分の期間のうち、第１気筒の燃料噴射タイミングを含む１８０°ＣＡ分の期間においては、図２に示すように、Ａ／Ｄ変換器１１のチャンネルｃｈ１〜ｃｈ４のうち、第１気筒のインジェクタ圧信号Ｐ１が入力されるチャンネルｃｈ１が、ＴｒｇＢについての転送対象Ａ／Ｄチャンネルとして設定されると共に、第３気筒のインジェクタ圧信号Ｐ３が入力されるチャンネルｃｈ３が、ＴｒｇＣについての転送対象Ａ／Ｄチャンネルとして設定されることとなる。
【０１０３】
そして、この場合、ＤＭＡコントローラ１６は、Ａ／Ｄ変換器１１からのＴｒｇＢを受ける毎に、チャンネルｃｈ１のＡ／Ｄ変換データ（即ち、第１気筒のインジェクタ圧信号Ｐ１のＡ／Ｄ変換データ）をＲＡＭ１７にＤＭＡ転送し、また、タイマユニット２５からのＴｒｇＣを受ける毎に、チャンネルｃｈ３のＡ／Ｄ変換データ（即ち、第３気筒のインジェクタ圧信号Ｐ３のＡ／Ｄ変換データ）をＲＡＭ１７にＤＭＡ転送することとなる。尚、図２及び後述する他の図において、「ＤＭＡ転送Ｂ」とは、ＴｒｇＢを契機にしたＤＭＡ転送のことであり、同様に「ＤＭＡ転送Ｃ」とは、ＴｒｇＣを契機にしたＤＭＡ転送のことである。
【０１０４】
このように、本実施形態では、燃料噴射が行われる噴射対象気筒のインジェクタ圧信号のＡ／Ｄ変換データを、Ａ／Ｄ変換間隔と同じ間隔でＲＡＭ１７にＤＭＡ転送し、また、それと並行して、燃料噴射が行われない非噴射対象気筒のインジェクタ圧信号のＡ／Ｄ変換データを、Ａ／Ｄ変換間隔の２倍の間隔でＲＡＭ１７にＤＭＡ転送するようになっている。そして、このようにしている理由は、下記の通りである。
【０１０５】
まず、本実施形態では、噴射対象気筒に燃料噴射が行われたときの、その噴射対象気筒のインジェクタ圧を積分することで、実際の燃料噴射量を計算し、エンジン３への燃料噴射量を高精度に制御する。
【０１０６】
しかし、燃料噴射の実施中に、例えばコモンレールに燃料を圧送する高圧ポンプが動作を開始したりしてコモンレールの圧力に変化が生じると、その変化による影響がインジェクタ圧にも現れることとなる。このため、噴射対象気筒のインジェクタ圧から、非噴射対象気筒のインジェクタ圧を減算する補正を行うことで、噴射対象気筒の正確なインジェクタ圧を算出するようにしている。
【０１０７】
ここで、噴射対象気筒のインジェクタ圧は、燃料噴射の実施に伴い短時間に急な変化を示すこととなるが、非噴射対象気筒のインジェクタ圧は、たとえ変化しても、緩やかに且つ単調にしか変化しないと考えられるため、噴射対象気筒のインジェクタ圧よりもサンプリング間隔を長くして、補完演算等により任意の時点の値を算出することができる。
【０１０８】
このため、本実施形態のマイコン１０では、非噴射対象気筒のインジェクタ圧信号については、それのＡ／Ｄ変換データをＡ／Ｄ変換間隔の２倍の間隔でＲＡＭ１７にＤＭＡ転送することにより、実質的なサンプリング間隔をＡ／Ｄ変換間隔の２倍にし、ＣＰＵ２１が、そのＲＡＭ１７に転送されたＡ／Ｄ変換データの何れかに対して補完演算を行うことにより、上記減算補正に用いる非噴射対象気筒のインジェクタ圧を得るようにしている。
【０１０９】
以上のような実施形態のマイコン１０によれば、ＤＭＡコントローラ１６に対して、ＴｒｇＢとは別のＤＭＡ転送要求信号であるＴｒｇＣをＰＭＷ信号の周期で与えることができ、そのＴｒｇＣの発生周期は、ＣＰＵ２１によって（換言すればプログラムによって）ＰＷＭ信号出力回路２３に設定する周期の値により任意に設定することができる。
【０１１０】
更に、ＤＭＡコントローラ１６による転送対象Ａ／Ｄチャンネルも、ＴｒｇＢとＴｒｇＣとの各々ついて、ＣＰＵ２１により任意に設定することができる。
【０１１１】
よって、ＴｒｇＣに対する転送対象Ａ／ＤチャンネルのＡ／Ｄ変換データについては、Ａ／Ｄ変換器１１からＲＡＭ１７へのＤＭＡ転送を、Ａ／Ｄ変換間隔とは異なる任意の間隔で行うことができる。
【０１１２】
このため、本実施形態のマイコン１０によれば、一定時間毎にＡ／Ｄ変換器１１を起動して複数のアナログ信号をＡ／Ｄ変換する場合に、任意のアナログ信号について、それのＡ／Ｄ変換データのＡ／Ｄ変換器１１からＲＡＭ１７へのＤＭＡ転送を、Ａ／Ｄ変換間隔とは異なる任意の間隔で行うことができる。
【０１１３】
そして更に、このことから、前述した［１］，［２］の効果が得られる。尚、本実施形態では、噴射対象気筒のインジェクタ圧信号が、［１］，［２］で説明したアナログ信号Ａｓ１（必要なサンプリング間隔が短い方のアナログ信号）に相当し、非噴射対象気筒のインジェクタ圧信号が、［１］，［２］で説明したアナログ信号Ａｓ２（必要なサンプリング間隔が長い方のアナログ信号）に相当することとなる。
【０１１４】
また、本実施形態では、ＰＷＭ信号のデューティエッジによってＴｒｇＣが発生するようにしているため、そのＴｒｇＣの発生タイミングを、ＰＷＭ信号出力回路２３に設定するパルス幅の値により、ＰＷＭ信号の周期エッジを基準にして設定し易いという利点がある。
【０１１５】
尚、本実施形態では、Ａ／Ｄ起動タイマ１３がＡ／Ｄ変換要求手段に相当し、ＲＡＭ１７がメモリに相当している。そして、タイマユニット２５内の回路のうち、ＴｒｇＣを出力するＤＭＡ転送要求機能の回路２５ａがデータ転送要求手段に相当している。
［第２実施形態］
第２実施形態のマイコンは、第１実施形態のマイコン１０と比較すると下記の点が異なっている。尚、以下の第２実施形態に関する説明においては、符号として第１実施形態と同じものを用いる。
【０１１６】
即ち、第２実施形態のマイコン１０では、図５に示すように、タイマユニット２５（詳しくは、ＤＭＡ転送要求機能の回路２５ａ）が、信号入力端子Ｊ２からの入力信号であって、ＰＷＭ信号出力回路２３からのＰＷＭ信号に、デューティエッジではなく周期エッジ（立ち上がりエッジ）が発生すると、ＴｒｇＣを出力するようになっている。
【０１１７】
このため、本第２実施形態において、ＣＰＵ２１は、図５に示すように、ＴｒｇＣの発生タイミングが、前述したＡ／Ｄ変換停止期間中における特定タイミングとなるように、Ａ／Ｄ起動タイマ１３を起動してから所定の時間差を空けてＰＷＭ信号出力回路２３を起動するようにしている。つまり、図４における時間差Ｔｓｄが、図４における「Ｔｉａｄ＋Ｔｍａ−Ｔｉｄ」となるように、Ａ／Ｄ起動タイマ１３の起動タイミングとＰＷＭ信号出力回路２３の起動タイミングとを故意にずらしている。尚、Ａ／Ｄ起動タイマ１３とＰＷＭ信号出力回路２３とをずらして起動するには、例えばタイマ割込を利用しても良い。
【０１１８】
そして、このような第２実施形態によっても第１実施形態と同様の効果が得られる。また、ＰＷＭ信号のパルス幅値は何でも良いという利点がある。
［第３実施形態］
図６に示すように、第３実施形態のマイコン２０は、第１実施形態のマイコン１０と比較すると下記（１）〜（３）の点が異なっている。尚、以下において、既述した他の実施形態と同じ構成要素については、その実施形態と同一の符号を用いるため、説明を省略する。
【０１１９】
（１）ＰＷＭ信号出力回路２３と同じＰＷＭ信号出力回路２４を更に備えている。
【０１２０】
そして、そのＰＷＭ信号出力回路２４は、ＣＰＵ２１により周期値レジスタ２４ａに書き込まれた値の周期を有し、且つ、ＣＰＵ２１によりパルス幅値レジスタ２４ｂに書き込まれた値のパルス幅を有したＰＷＭ信号を生成して、そのＰＷＭ信号を当該マイコン２０の信号出力端子Ｊ３から外部に出力する。更に、その信号出力端子Ｊ３は、当該マイコン２０の外部の配線により、当該マイコン２０の信号入力端子Ｊ４に接続されている。
【０１２１】
（２）ＤＭＡコントローラ１６に代えて、ＤＭＡコントローラ２６を備えている。
【０１２２】
そして、そのＤＭＡコントローラ２６には、ＴｒｇＢ及びＴｒｇＣとは別のＤＭＡ転送要求信号（以下、ＴｒｇＤと言う）も入力されるようになっている。更に、ＤＭＡコントローラ２６は、そのＴｒｇＤについても、転送対象Ａ／ＤチャンネルがＣＰＵ２１によって設定されるようになっている。
【０１２３】
（３）タイマユニット２５は、ＤＭＡ転送要求機能の回路２５ａと同じ回路２５ｂを更に備えている。そして、その回路２５ｂは、当該マイコン２０の信号入力端子Ｊ４からの入力信号（即ち、ＰＷＭ信号出力回路２４からのＰＷＭ信号）に特定方向のエッジ（本実施形態では、立ち下がりエッジ）が発生すると、ＤＭＡコントローラ２６に上記ＴｒｇＤを出力する。
【０１２４】
このため、タイマユニット２５からＤＭＡコントローラ２６へは、ＰＷＭ信号出力回路２４からのＰＷＭ信号にデューティエッジが生じるとＴｒｇＤが出力され、また、第１実施形態と同様に、ＰＷＭ信号出力回路２３からのＰＷＭ信号にデューティエッジが生じるとＴｒｇＣが出力されることとなる。
【０１２５】
そして、このような第３実施形態のマイコン２０によれば、図７に示すように、ＤＭＡコントローラ２６に対して、ＴｒｇＢとは別に２つのＴｒｇＣとＴｒｇＤを異なる周期で発生させることができ、また、ＴｒｇＤについても転送対象Ａ／ＤチャンネルをＣＰＵ２１によって任意に設定することができるため、Ａ／Ｄ変換器１１の異なるチャンネルの各Ａ／Ｄ変換データを、Ａ／Ｄ変換間隔とは異なる複数通りの各周期で、ＲＡＭ１７にそれぞれ転送することができるようになる。
【０１２６】
尚、図７及び後述する他の図において、「ＰＷＭ信号Ｃ」とは、ＴｒｇＣの源となるＰＷＭ信号出力回路２３からのＰＷＭ信号であり、同様に「ＰＷＭ信号Ｄ」とは、ＴｒｇＤの源となるＰＷＭ信号出力回路２４からのＰＷＭ信号であり、「ＤＭＡ転送Ｄ」とは、ＴｒｇＤを契機にしたＤＭＡ転送のことである。また、図７の例では、ＰＷＭ信号出力回路２３から、Ａ／Ｄ変換間隔（ＴｒｇＡの周期）の２倍の周期のＰＷＭ信号を出力することにより、ＴｒｇＣをＡ／Ｄ変換間隔の２倍の周期で発生させ、ＰＷＭ信号出力回路２４からは、Ａ／Ｄ変換間隔の４倍の周期のＰＷＭ信号を出力することにより、ＴｒｇＤをＡ／Ｄ変換間隔の４倍の周期で発生させている。そして、図７は、ＴｒｇＢによってチャンネルｃｈ１のＡ／Ｄ変換データをＲＡＭ１７にＤＭＡ転送し、ＴｒｇＣによってチャンネルｃｈ３のＡ／Ｄ変換データをＲＡＭ１７にＤＭＡ転送し、ＴｒｇＤによってチャンネルｃｈ４のＡ／Ｄ変換データをＲＡＭ１７にＤＭＡ転送している場合を示している。
【０１２７】
一方、本第３実施形態では、タイマユニット２５内の上記回路２５ａ，２５ｂの各々が、データ転送要求手段に相当している。
【０１２８】
また、タイマユニット２５内の上記各回路２５ａ，２５ｂのうちの両方又は一方は、第２実施形態と同様に、ＰＷＭ信号に周期エッジが発生するとＤＭＡ転送要求信号（ＴｒｇＣ又はＴｒｇＤ）を出力するように構成しても良い。
［第４実施形態］
図８に示すように、第４実施形態のマイコン３０は、第１実施形態のマイコン１０と比較すると下記（ａ）及び（ｂ）の点が異なっている。
【０１２９】
（ａ）ＤＭＡコントローラ１６に代えて、第３実施形態（図６）と同じＤＭＡコントローラ２６を備えている。
【０１３０】
（ｂ）タイマユニット２５は、ＤＭＡ転送要求機能の回路２５ａに代わる回路２５ｃを備えている。
【０１３１】
そして、そのＤＭＡ転送要求機能の回路２５ｃは、当該マイコン２０の信号入力端子Ｊ２からの入力信号に立ち下がりエッジが発生すると、ＤＭＡコントローラ２６にＴｒｇＣを出力し、その信号入力端子Ｊ２からの入力信号に立ち上がりエッジが発生すると、ＤＭＡコントローラ２６にＴｒｇＤを出力する。
【０１３２】
このため、タイマユニット２５からＤＭＡコントローラ２６へは、ＰＷＭ信号出力回路２３からのＰＷＭ信号にデューティエッジが生じるとＴｒｇＣが出力されるだけでなく、そのＰＷＭ信号に周期エッジが生じるとＴｒｇＤが出力されることとなる。
【０１３３】
そして、このような第４実施形態のマイコン３０によれば、図９に示すように、１つのＰＷＭ信号で２つのＴｒｇＣとＴｒｇＤを生成することができる。そして、そのＴｒｇＣとＴｒｇＤの各々について、転送対象Ａ／ＤチャンネルをＣＰＵ２１によって任意に設定することができるため、Ａ／Ｄ変換器１１の異なるチャンネルの各Ａ／Ｄ変換データを、Ａ／Ｄ変換間隔よりも長い間隔（図９の例ではＡ／Ｄ変換間隔の２倍の間隔）で、且つ、ＰＷＭ信号のパルス幅Ｔｄｕｔｙの分だけ位相がずれたタイミングで、ＲＡＭ１７に格納することができるようになる。
【０１３４】
尚、図９も、前述した図７と同様に、ＴｒｇＢによってチャンネルｃｈ１のＡ／Ｄ変換データをＲＡＭ１７にＤＭＡ転送し、ＴｒｇＣによってチャンネルｃｈ３のＡ／Ｄ変換データをＲＡＭ１７にＤＭＡ転送し、ＴｒｇＤによってチャンネルｃｈ４のＡ／Ｄ変換データをＲＡＭ１７にＤＭＡ転送している場合を示している。
【０１３５】
また、本第４実施形態においても、ＰＷＭ信号の周期エッジによって発生するＴｒｇＤについては、第２実施形態で述べた手法（Ａ／Ｄ起動タイマ１３とＰＷＭ信号出力回路２３との起動をずらす手法）により、そのＴｒｇＤの発生タイミングがＡ／Ｄ変換停止期間中の特定タイミングとなるようにすれば良い。そして、ＰＷＭ信号のデューティエッジによって発生するＴｒｇＣについては、第１実施形態で述べたＰＷＭ信号のパルス幅値の設定手法により、そのＴｒｇＣの発生タイミングがＡ／Ｄ変換停止期間中の特定タイミングとなるようにすれば良い。
【０１３６】
一方、本第４実施形態では、タイマユニット２５内の回路２５ｃがデータ転送要求手段に相当している。
［第５実施形態］
ところで、ＰＷＭ信号出力回路２３からのＰＷＭ信号のデューティエッジによってＴｒｇＣを発生させる第１、第３及び第４実施形態のマイコン１０，２０，３０においては、ＰＷＭ信号出力回路２３に設定したパルス幅の値（パルス幅値レジスタ２３ｂの値）が、外乱ノイズなどの要因で変わってしまうと、そのＴｒｇＣの発生タイミングが最適なタイミングからずれてしまうこととなる。また、第３実施形態のマイコン２０では、ＰＷＭ信号出力回路２４からのＰＷＭ信号のデューティエッジによってＴｒｇＤを発生させるため、そのＴｒｇＤの発生タイミングも、ＰＷＭ信号出力回路２４に設定したパルス幅の値（パルス幅値レジスタ２４ｂの値）が外乱ノイズなどの要因で変わってしまうと、最適なタイミングからずれてしまう。
【０１３７】
そこで、第５実施形態として、こうした不都合を回避するための技術について述べる。尚、ここでは、第３実施形態のマイコン２０に対して本第５実施形態の技術を適用した場合を例に挙げて説明するが、本第５実施形態の技術は、第１及び第４実施形態のマイコンについても同様に適用することができる。また、以下の第５実施形態に関する説明においては、符号として第３実施形態と同じものを用いる。
【０１３８】
第５実施形態のマイコン２０は、第３実施形態のマイコン２０と比較すると、ＣＰＵ２１が、タイマユニット２５から出力されるＤＭＡ転送要求信号（ＴｒｇＣとＴｒｇＤ）の各々について、それの源であるＰＷＭ信号のパルス幅設定値を補正するためのパルス幅補正処理を、例えば定期的に行う点が異なっている。
【０１３９】
ＴｒｇＣの方を例に挙げて説明すると、パルス幅補正処理では、タイマユニット２５がＴｒｇＣを出力したタイミングを検出し、その検出結果に基づいて、ＴｒｇＣの出力タイミングが前述のＡ／Ｄ変換停止期間中における特定タイミングとなるように、そのＴｒｇＣの源であるＰＷＭ信号出力回路２３からのＰＷＭ信号（以下、ＰＷＭ信号Ｃという）のパルス幅設定値を補正する。
【０１４０】
次に、パルス幅補正処理の具体的な内容について説明する。尚、以下においても、説明を簡略化するために、ＴｒｇＣとＴｒｇＤとのうち、ＴｒｇＣの方を例に挙げて説明するが、ＴｒｇＤの方についても同様の処理が行われる。
【０１４１】
パルス幅補正処理は、以下に述べる第１〜第３の補正処理からなっている。そして、パルス幅設定値の補正を実施すべき定期タイミングが到来すると、第１〜第３の各補正処理がＡ／Ｄ変換間隔よりも十分に短い一定の時間毎に繰り返し実行され、その各補正処理の何れかによってパルス幅設定値が補正されると、第１〜第３の補正処理の全ての実行が停止される（つまり、１回のパルス幅補正処理の実施が終了する）。
【０１４２】
［第１の補正処理］
まず、第１の補正処理では、図１０における時間ｔ１であって、タイマユニット２５からＴｒｇＣが出力される直前にＡ／Ｄ変換器１１がＡ／Ｄ変換動作を完了した時刻から、ＴｒｇＣが出力されるまでの時間であるＡ／Ｄ変換完了後余裕時間ｔ１を、ＴｒｇＣの出力タイミングとして検出する。そして、その検出結果に基づいて、Ａ／Ｄ変換完了後余裕時間ｔ１が該時間ｔ１の目標値である図４の余裕時間Ｔｍａと等しくなるように、ＰＷＭ信号Ｃのパルス幅設定値（即ち、パルス幅値レジスタ２３ｂの値）を補正する。
【０１４３】
次に、図１１を用い更に具体的に説明する。尚、図１１は、第１の補正処理を表すフローチャートである。
【０１４４】
図１１に示すように、ＣＰＵ２１は第１の補正処理の実行を開始すると、まずＳ１１０にて、今回の処理タイミングが、Ａ／Ｄ変換完了タイミング（即ち、Ａ／Ｄ変換器１１がＡ／Ｄ変換動作を完了したタイミングであり、図４，図１０におけるＴｅａｄのタイミング）であるか否かを判定する。
【０１４５】
尚、本実施形態では、Ａ／Ｄ変換器１１がＡ／Ｄ変換動作を完了したか否かを、Ａ／Ｄ変換器１１内のステータス情報によって判定できるようになっている。このため、Ｓ１１０では、上記ステータス情報を読み込んで、前回のステータス情報がＡ／Ｄ変換動作の未完了（Ａ／Ｄ変換実施中）を示し、今回のステータス情報がＡ／Ｄ変換動作の完了を示していれば、今回がＡ／Ｄ変換完了タイミングであると判定する。
【０１４６】
このＳ１１０にて、Ａ／Ｄ変換完了タイミングではないと判定した場合には、そのままＳ１３０に移行するが、Ａ／Ｄ変換完了タイミングであると判定した場合には、Ｓ１２０に進んで、現在時刻に該当するフリーランタイマの現在値を、Ａ／Ｄ変換完了時刻Ｔｅａｄとして更新記憶し、その後、Ｓ１３０に進む。
【０１４７】
Ｓ１３０では、上記Ｓ１２０の処理によってＡ／Ｄ変換完了時刻Ｔｅａｄが既に記憶されているか否かを判定し、Ａ／Ｄ変換完了時刻Ｔｅａｄが記憶されていなければ、そのまま当該第１の補正処理を一旦終了するが、Ａ／Ｄ変換完了時刻Ｔｅａｄが既に記憶されていれば、Ｓ１４０に進む。
【０１４８】
そして、Ｓ１４０では、ＰＷＭ信号のデューティエッジによるＤＭＡ転送要求信号（この例ではＴｒｇＣ）が発生したか否かを判定する。
【０１４９】
尚、本実施形態では、タイマユニット２５がＴｒｇＣを出力すると、そのタイマユニット２５内において、ＴｒｇＣの発生を示すトリガ発生フラグがセットされる共に、フリーランタイマの現在値がトリガ発生時刻レジスタにコピーされる。また、前述のＳ１２０では、上記トリガ発生フラグのリセットも行うようになっている。そして、Ｓ１４０では、上記トリガ発生フラグを参照することにより、ＴｒｇＣが発生したか否かを判定する。つまり、トリガ発生フラグがセットされていれば、ＴｒｇＣが発生したと判定する。
【０１５０】
このＳ１４０にて、ＴｒｇＣが発生していないと判定した場合には、そのまま当該第１の補正処理を一旦終了するが、ＴｒｇＣが発生したと判定した場合には、Ｓ１５０に進んで、タイマユニット２５内の上記トリガ発生時刻レジスタに記憶されている値（即ち、ＴｒｇＣが発生したときのフリーランタイマの値）を、ＤＭＡ転送要求信号発生時刻Ｔｇとして記憶し、その後、Ｓ１６０に進む。尚、上記トリガ発生時刻レジスタが無ければ、Ｓ１５０では、フリーランタイマの現在値をＤＭＡ転送要求信号発生時刻Ｔｇとして記憶すれば良い。
【０１５１】
Ｓ１６０では、Ｓ１２０で記憶した最新のＡ／Ｄ変換完了時刻Ｔｅａｄと、Ｓ１５０で記憶したＤＭＡ転送要求信号発生時刻Ｔｇとを、下記の式３に代入することにより、パルス幅補正値Ｔｄｍを算出する。
【０１５２】
Ｔｄｍ＝Ｔｍａ−（Ｔｇ−Ｔｅａｄ）  …式３
尚、式３において、Ｔｍａは、図４の余裕時間Ｔｍａであり、「Ｔｇ−Ｔｅａｄ」は、Ａ／Ｄ変換完了後余裕時間ｔ１の実測値である。
【０１５３】
次にＳ１７０にて、ＰＷＭ信号Ｃの現在のパルス幅設定値Ｔｄｕｔｙに、上記Ｓ１６０で算出したパルス幅補正値Ｔｄｍを加算し、その加算後の値「Ｔｄｕｔｙ＋Ｔｄｍ」を、補正後のパルス幅設定値Ｔｄｕｔｙとして、ＰＷＭ信号出力回路２３におけるパルス幅値レジスタ２３ｂに再セットする。つまり、Ａ／Ｄ変換完了後余裕時間ｔ１の実測値と、それの目標値であるＴｍａとの差分だけ、パルス幅設定値Ｔｄｕｔｙを補正するようにしている。
【０１５４】
尚、ＴｒｇＣの発生タイミングが目標の特定タイミングから大幅にずれて、例えば、次のＡ／Ｄ変換完了タイミングの直前辺りにまで遅れていた場合には、式３における「Ｔｇ−Ｔｅａｄ」が大きくなって、上記加算後の値「Ｔｄｕｔｙ＋Ｔｄｍ」が０以下になる可能性がある。このため、Ｓ１７０では、「Ｔｄｕｔｙ＋Ｔｄｍ」が０以下になった場合、その「Ｔｄｕｔｙ＋Ｔｄｍ」にＡ／Ｄ変換間隔Ｔａｄを加えた値を、補正後のパルス幅設定値Ｔｄｕｔｙとして上記パルス幅値レジスタ２３ｂにセットする。また、Ｓ１７０において、もし上記加算後の「Ｔｄｕｔｙ＋Ｔｄｍ」が周期値Ｔｐｗｍ以上になった場合には、その「Ｔｄｕｔｙ＋Ｔｄｍ」からＡ／Ｄ変換間隔Ｔａｄを引いた値を、補正後のパルス幅設定値Ｔｄｕｔｙとして上記パルス幅値レジスタ２３ｂにセットする。
【０１５５】
そして、このようなＳ１７０の後、当該第１の補正処理を終了する。
【０１５６】
以上のような第１の補正処理により、ＴｒｇＣのＡ／Ｄ変換完了後余裕時間ｔ１が図４の余裕時間Ｔｍａと等しくなるように、ＰＷＭ信号Ｃのパルス幅設定値が補正される。
【０１５７】
また同様に、ＴｒｇＤについて行われる第１の補正処理により、ＴｒｇＤのＡ／Ｄ変換完了後余裕時間ｔ１（図１０参照）が図４の余裕時間Ｔｍａと等しくなるように、ＰＷＭ信号出力回路２４からのＰＷＭ信号（以下、ＰＷＭ信号Ｄという）のパルス幅設定値（即ち、パルス幅値レジスタ２４ｂの値）が補正されることとなる。
【０１５８】
［第２の補正処理］
まず、第２の補正処理では、図１０における時間ｔ２であって、ＴｒｇＣが出力されてからＡ／Ｄ変換器１１が次回のＡ／Ｄ変換動作を開始するまでの時間であるＡ／Ｄ変換開始前余裕時間ｔ２を、ＴｒｇＣの出力タイミングとして検出する。そして、その検出結果に基づいて、Ａ／Ｄ変換開始前余裕時間ｔ２が該時間ｔ２の目標値である図４の余裕時間Ｔｍｂと等しくなるように、ＰＷＭ信号Ｃのパルス幅設定値を補正する。
【０１５９】
次に、図１２を用い更に具体的に説明する。尚、図１２は、第２の補正処理を表すフローチャートである。
【０１６０】
図１２に示すように、ＣＰＵ２１は第２の補正処理の実行を開始すると、まずＳ２１０にて、ＰＷＭ信号のデューティエッジによるＤＭＡ転送要求信号（この例ではＴｒｇＣ）が発生したか否かを判定する。尚、このＳ２１０では、図１１のＳ１４０と同様に、タイマユニット２５内の上記トリガ発生フラグを参照することで、ＴｒｇＣが発生したか否かを判定する。また、そのトリガ発生フラグは、当該第２の補正処理が最初に実行される前に予めＣＰＵ２１によりリセットされるようになっている。
【０１６１】
そして、このＳ２１０にて、ＴｒｇＣが発生していないと判定した場合には、そのままＳ２３０に移行するが、ＴｒｇＣが発生したと判定した場合には、Ｓ２２０に進んで、図１１のＳ１５０と同様に、タイマユニット２５内の上記トリガ発生時刻レジスタに記憶されている値、或いはフリーランタイマの現在値を、ＤＭＡ転送要求信号発生時刻Ｔｇとして記憶し、その後、Ｓ２３０に進む。
【０１６２】
Ｓ２３０では、上記Ｓ２２０の処理によってＤＭＡ転送要求信号発生時刻Ｔｇが既に記憶されているか否かを判定し、ＤＭＡ転送要求信号発生時刻Ｔｇが記憶されていなければ、そのまま当該第２の補正処理を一旦終了するが、ＤＭＡ転送要求信号発生時刻Ｔｇが既に記憶されていれば、Ｓ２４０に進む。
【０１６３】
Ｓ２４０では、今回の処理タイミングが、Ａ／Ｄ変換開始タイミング（即ち、Ａ／Ｄ変換器１１がＡ／Ｄ変換動作を開始したタイミングであり、図４，図１０におけるＴｓａｄのタイミング）であるか否かを判定する。
【０１６４】
尚、このＳ２４０では、Ａ／Ｄ変換器１１内の上記ステータス情報を読み込んで、前回のステータス情報がＡ／Ｄ変換動作の完了を示し、今回のステータス情報がＡ／Ｄ変換動作の未完了を示していれば、今回がＡ／Ｄ変換開始タイミングであると判定する。また、ＴｒｇＡが発生したこと自体をＣＰＵ２１がモニタできるのであれば、Ｓ２４０では、ＴｒｇＡの発生有無を判定するようにしても良い。
【０１６５】
そして、Ｓ２４０にて、Ａ／Ｄ変換開始タイミングではないと判定した場合には、そのまま当該第２の補正処理を一旦終了するが、Ａ／Ｄ変換開始タイミングであると判定した場合には、Ｓ２５０に進んで、現在時刻に該当するフリーランタイマの現在値を、Ａ／Ｄ変換開始時刻Ｔｓａｄとして記憶し、その後、Ｓ２６０に進む。
【０１６６】
Ｓ２６０では、Ｓ２２０で記憶したＤＭＡ転送要求信号発生時刻Ｔｇと、Ｓ２５０で記憶したＡ／Ｄ変換開始時刻Ｔｓａｄとを、下記の式４に代入することにより、パルス幅補正値Ｔｄｍを算出する。
【０１６７】
Ｔｄｍ＝（Ｔｓａｄ−Ｔｇ）−Ｔｍｂ  …式４
尚、式４において、Ｔｍｂは、図４の余裕時間Ｔｍｂであり、「Ｔｓａｄ−Ｔｇ」は、Ａ／Ｄ変換開始前余裕時間ｔ２の実測値である。
【０１６８】
次にＳ２７０にて、ＰＷＭ信号Ｃの現在のパルス幅設定値Ｔｄｕｔｙに、上記Ｓ２６０で算出したパルス幅補正値Ｔｄｍを加算し、その加算後の値「Ｔｄｕｔｙ＋Ｔｄｍ」を、補正後のパルス幅設定値Ｔｄｕｔｙとして、ＰＷＭ信号出力回路２３におけるパルス幅値レジスタ２３ｂに再セットする。つまり、Ａ／Ｄ変換開始前余裕時間ｔ２の実測値と、それの目標値であるＴｍｂとの差分だけ、パルス幅設定値Ｔｄｕｔｙを補正するようにしている。
【０１６９】
尚、ＴｒｇＣの発生タイミングが目標の特定タイミングから大幅にずれて、例えば、次のＡ／Ｄ変換開始タイミングの直後辺りにまで遅れていた場合には、式４における「Ｔｓａｄ−Ｔｇ」がＡ／Ｄ変換間隔Ｔａｄと同程度の値となり、上記加算後の値「Ｔｄｕｔｙ＋Ｔｄｍ」がＰＷＭ信号の周期値Ｔｐｗｍ以上になる可能性がある。このため、Ｓ２７０では、「Ｔｄｕｔｙ＋Ｔｄｍ」が周期値Ｔｐｗｍ以上になった場合、その「Ｔｄｕｔｙ＋Ｔｄｍ」からＡ／Ｄ変換間隔Ｔａｄを引いた値を、補正後のパルス幅設定値Ｔｄｕｔｙとして上記パルス幅値レジスタ２３ｂにセットする。また、Ｓ２７０において、もし上記加算後の「Ｔｄｕｔｙ＋Ｔｄｍ」が０以下になった場合には、その「Ｔｄｕｔｙ＋Ｔｄｍ」にＡ／Ｄ変換間隔Ｔａｄを加えた値を、補正後のパルス幅設定値Ｔｄｕｔｙとして上記パルス幅値レジスタ２３ｂにセットする。
【０１７０】
そして、このようなＳ２７０の後、当該第２の補正処理を終了する。
【０１７１】
以上のような第２の補正処理により、ＴｒｇＣのＡ／Ｄ変換開始前余裕時間ｔ２が図４の余裕時間Ｔｍｂと等しくなるように、ＰＷＭ信号Ｃのパルス幅設定値が補正される。
【０１７２】
また同様に、ＴｒｇＤについて行われる第２の補正処理により、ＴｒｇＤのＡ／Ｄ変換開始前余裕時間ｔ２（図１０参照）が図４の余裕時間Ｔｍｂと等しくなるように、ＰＷＭ信号Ｄのパルス幅設定値が補正されることとなる。
【０１７３】
［第３の補正処理］
まず、第３の補正処理では、図１０における時間ｔ３であって、タイマユニット２５からＴｒｇＣが出力される直前にＡ／Ｄ変換器１１がＡ／Ｄ変換動作を開始した時刻から、ＴｒｇＣが出力されるまでの時間であるＡ／Ｄ変換開始後余裕時間ｔ３を、ＴｒｇＣの出力タイミングとして検出する。そして、その検出結果に基づいて、Ａ／Ｄ変換開始後余裕時間ｔ３が該時間ｔ３の目標値である図４の「Ｔｉａｄ＋Ｔｍａ」と等しくなるように、ＰＷＭ信号Ｃのパルス幅設定値を補正する。
【０１７４】
次に、図１３を用い更に具体的に説明する。尚、図１３は、第３の補正処理を表すフローチャートである。
【０１７５】
図１３に示すように、ＣＰＵ２１は第３の補正処理の実行を開始すると、まずＳ３１０にて、図１２のＳ２４０と同様に、今回の処理タイミングがＡ／Ｄ変換開始タイミングであるか否かを判定する。
【０１７６】
そして、Ａ／Ｄ変換開始タイミングではないと判定した場合には、そのままＳ３３０に移行するが、Ａ／Ｄ変換開始タイミングであると判定した場合には、Ｓ３２０に進んで、現在時刻に該当するフリーランタイマの現在値を、Ａ／Ｄ変換開始時刻Ｔｓａｄとして更新記憶すると共に、タイマユニット２５内の上記トリガ発生フラグをリセットする処理を行い、その後、Ｓ３３０に進む。
【０１７７】
Ｓ３３０では、上記Ｓ３２０の処理によってＡ／Ｄ変換開始時刻Ｔｓａｄが既に記憶されているか否かを判定し、Ａ／Ｄ変換開始時刻Ｔｓａｄが記憶されていなければ、そのまま当該第３の補正処理を一旦終了するが、Ａ／Ｄ変換開始時刻Ｔｓａｄが既に記憶されていれば、Ｓ３４０に進む。
【０１７８】
そして、Ｓ３４０では、ＰＷＭ信号のデューティエッジによるＤＭＡ転送要求信号（この例ではＴｒｇＣ）が発生したか否かを判定する。尚、このＳ３４０では、図１１のＳ１４０と同様に、タイマユニット２５内の上記トリガ発生フラグを参照することで、ＴｒｇＣが発生したか否かを判定する。
【０１７９】
上記Ｓ３４０にて、ＴｒｇＣが発生していないと判定した場合には、そのまま当該第３の補正処理を一旦終了するが、ＴｒｇＣが発生したと判定した場合には、Ｓ３５０に進んで、図１１のＳ１５０と同様に、タイマユニット２５内の上記トリガ発生時刻レジスタに記憶されている値、或いはフリーランタイマの現在値を、ＤＭＡ転送要求信号発生時刻Ｔｇとして記憶し、その後、Ｓ３６０に進む。
【０１８０】
Ｓ３６０では、Ｓ３２０で記憶した最新のＡ／Ｄ変換開始時刻Ｔｓａｄと、Ｓ３５０で記憶したＤＭＡ転送要求信号発生時刻Ｔｇとを、下記の式５に代入することにより、パルス幅補正値Ｔｄｍを算出する。
【０１８１】
Ｔｄｍ＝（Ｔｉａｄ＋Ｔｍａ）−（Ｔｇ−Ｔｓａｄ）  …式５
尚、式５において、「Ｔｉａｄ＋Ｔｍａ」は、図４に示したＡ／Ｄ変換時間Ｔｉａｄに図４の余裕時間Ｔｍａを加えた時間であり、「Ｔｇ−Ｔｓａｄ」は、Ａ／Ｄ変換開始後余裕時間ｔ３の実測値である。
【０１８２】
次にＳ３７０にて、ＰＷＭ信号Ｃの現在のパルス幅設定値Ｔｄｕｔｙに、上記Ｓ３６０で算出したパルス幅補正値Ｔｄｍを加算し、その加算後の値「Ｔｄｕｔｙ＋Ｔｄｍ」を、補正後のパルス幅設定値Ｔｄｕｔｙとして、ＰＷＭ信号出力回路２３におけるパルス幅値レジスタ２３ｂに再セットする。つまり、Ａ／Ｄ変換開始後余裕時間ｔ３の実測値と、それの目標値である「Ｔｉａｄ＋Ｔｍａ」との差分だけ、パルス幅設定値Ｔｄｕｔｙを補正するようにしている。
【０１８３】
尚、Ｓ３７０において、もし上記加算後の「Ｔｄｕｔｙ＋Ｔｄｍ」が周期値Ｔｐｗｍ以上になった場合には、その「Ｔｄｕｔｙ＋Ｔｄｍ」からＡ／Ｄ変換間隔Ｔａｄを引いた値を、補正後のパルス幅設定値Ｔｄｕｔｙとして上記パルス幅値レジスタ２３ｂにセットする。また、もし上記加算後の「Ｔｄｕｔｙ＋Ｔｄｍ」が０以下になった場合には、その「Ｔｄｕｔｙ＋Ｔｄｍ」にＡ／Ｄ変換間隔Ｔａｄを加えた値を、補正後のパルス幅設定値Ｔｄｕｔｙとして上記パルス幅値レジスタ２３ｂにセットする。
【０１８４】
そして、このようなＳ３７０の後、当該第３の補正処理を終了する。
【０１８５】
以上のような第３の補正処理により、ＴｒｇＣのＡ／Ｄ変換開始後余裕時間ｔ３が図４の「Ｔｉａｄ＋Ｔｍａ」と等しくなるように、ＰＷＭ信号Ｃのパルス幅設定値が補正される。
【０１８６】
また同様に、ＴｒｇＤについて行われる第３の補正処理により、ＴｒｇＤのＡ／Ｄ変換開始後余裕時間ｔ３（図１０参照）が図４の「Ｔｉａｄ＋Ｔｍａ」と等しくなるように、ＰＷＭ信号Ｄのパルス幅設定値が補正されることとなる。
【０１８７】
そして、以上のような第５実施形態のマイコン２０によれば、ＰＷＭ信号のデューティティエッジを源としたＴｒｇＣとＴｒｇＤの発生タイミングが目的のタイミングからずれたままになることを防止することができる。また仮に、前述の初期設定処理によって最初に設定したＰＷＭ信号のパルス幅値が不適切な値であったとしても、そのパルス幅値を適切な値へと自動的に設定し直すことができる。
【０１８８】
尚、第４実施形態のマイコン３０ならば、ＴｒｇＣとＴｒｇＤのうち、ＴｒｇＣを対象にして上記パルス幅補正処理（第１〜第３の補正処理）を行うようにすれば良い。
【０１８９】
一方、パルス幅補正処理としては、第１〜第３の補正処理のうち、１つ又は２つだけを行うようにしても良い。また、パルス幅補正処理は、定期的にではなく、不定期に行うようにしたり、例えばマイコンが起動した後の所定タイミングで一回だけ行うようにしても良い。
［第６実施形態］
上記各実施形態のマイコン１０，２０，３０においては、ＰＷＭ信号出力回路２３，２４に設定した周期の値（周期値レジスタ２３ａ，２４ａの値）が、外乱ノイズなどの要因で変わってしまうと、ＰＷＭ信号の周期とＡ／Ｄ変換間隔との倍数関係が崩れるため、ＴｒｇＣ，ＴｒｇＤの発生タイミングが最適な特定タイミングからずれてしまう。
【０１９０】
そこで、第６実施形態として、こうした不都合を回避するための技術について述べる。尚、ここでは、第１実施形態のマイコン１０に対して本第６実施形態の技術を適用した場合を例に挙げて説明するが、本第６実施形態の技術は、第２〜第５実施形態のマイコンについても同様に適用することができる。また、以下の第６実施形態に関する説明においては、符号として第１実施形態と同じものを用いる。
【０１９１】
第６実施形態のマイコン１０は、第１実施形態のマイコン１０と比較すると、ＣＰＵ２１が、図１４に示す周期補正処理を例えば定期的に行う点が異なっている。
【０１９２】
そして、図１４の周期補正処理では、まず、Ｓ４１０にて、実際のＡ／Ｄ変換間隔を計測する処理を行う。
【０１９３】
具体的には、Ａ／Ｄ変換間隔よりも十分に短い一定の時間毎に、前述した図１２のＳ２４０と同様の手順により、Ａ／Ｄ変換開始タイミングが到来したか否かを判定し、Ａ／Ｄ変換開始タイミングと判定する毎に、その時のフリーランタイマの値をＡ／Ｄ変換開始時刻Ｔｓａｄとして記憶する。そして、図１５に示すように、２回記憶した各Ａ／Ｄ変換開始時刻Ｔｓａｄの間隔を、実際のＡ／Ｄ変換間隔Ｔａｄの計測値として記憶する。尚、このＳ４１０の処理は、Ａ／Ｄ変換間隔Ｔａｄを１回計測できたならば、以後はスキップされる。また、Ａ／Ｄ変換完了タイミングの間隔を、Ａ／Ｄ変換間隔Ｔａｄとして計測するようにしても良い。
【０１９４】
次に、Ｓ４２０にて、タイマユニット２５からのＤＭＡ転送要求信号（この例ではＴｒｇＣ）の出力間隔を計測する処理を行う。
【０１９５】
具体的に説明すると、まず、準備処理として、タイマユニット２５内の上記トリガ発生フラグをリセットする処理を行い、その後、Ａ／Ｄ変換間隔よりも十分に短い一定の時間毎に、上記トリガ発生フラグを参照することにより、ＴｒｇＣが発生したか否かを判定する。そして、ＴｒｇＣが発生したと判定する毎に、上記トリガ発生フラグをリセットすると共に、前述した図１１の１５０と同様に、タイマユニット２５内の上記トリガ発生時刻レジスタに記憶されている値、或いはフリーランタイマの現在値を、ＤＭＡ転送要求信号発生時刻Ｔｇとして記憶する。そして更に、図１５に示すように、２回記憶した各ＤＭＡ転送要求信号発生時刻Ｔｇの間隔を、ＴｒｇＣの出力間隔Ｔｉｎｔとして記憶する。
【０１９６】
次に、Ｓ４３０にて、Ａ／Ｄ変換間隔ＴａｄとＴｒｇＣの出力間隔Ｔｉｎｔとの計測が完了したか否かを判定し、それらの計測が完了したならば、Ｓ４４０に移行する。
【０１９７】
そして、Ｓ４４０では、Ｓ４１０の処理で計測したＡ／Ｄ変換間隔Ｔａｄと、Ｓ４２０の処理で計測したＴｒｇＣの出力間隔Ｔｉｎｔとを、下記の式６に代入することにより、ＰＷＭ信号の周期の補正値である周期補正値Ｔｔｍを算出する。
【０１９８】
Ｔｔｍ＝Ｔａｄ×ｎ−Ｔｉｎｔ  …式６
尚、式６における「ｎ」は、ＰＷＭ信号の周期をＴｒｇＡの出力周期（Ａ／Ｄ変換間隔）の何倍に初期設定しているかを示す整数値であり、本実施形態では既述した通り「ｎ＝２」である。
【０１９９】
次にＳ４５０にて、ＰＷＭ信号の現在の周期設定値Ｔｐｗｍに、上記Ｓ４４０で算出した周期補正値Ｔｔｍを加算し、その加算後の値「Ｔｐｗｍ＋Ｔｔｍ」を、補正後の周期設定値Ｔｐｗｍとして、ＰＷＭ信号出力回路２３における周期値レジスタ２３ａに再セットする。そして、この再セットにより、当該周期補正処理が終了する。
【０２００】
つまり、周期補正処理では、Ａ／Ｄ変換間隔Ｔａｄのｎ倍の間隔（＝Ｔａｄ×ｎ）と、本来ならそれと同じはずであるＴｒｇＣの出力間隔Ｔｉｎｔとを検出し、それらの差分だけＰＷＭ信号の周期設定値Ｔｐｗｍを補正することで、ＴｒｇＣの出力間隔Ｔｉｎｔが実際のＡ／Ｄ変換間隔Ｔａｄのｎ倍の間隔と等しくなるようにしている。
【０２０１】
そして、このような第６実施形態のマイコン１０によれば、ＴｒｇＣの発生タイミングが目的のタイミングからずれたままになることを防止することができる。
【０２０２】
尚、周期補正処理によって周期設定値を補正した後（具体的にはＳ４５０の後）、第５実施形態で説明したパルス幅補正処理を実施して、パルス幅設定値の補正も行うことが好ましい。ＰＷＭ信号の周期が変更されたことにより、ＴｒｇＣの発生タイミングが最適タイミングからずれてしまうのを防止するためである。
【０２０３】
また、上記の周期補正処理は、第２〜第５実施形態のマイコンにおいても同様に実施することができる。そして、第３実施形態のマイコン２０ならば、ＴｒｇＣ及びＰＷＭ信号Ｃについてだけでなく、ＴｒｇＤ及びＰＷＭ信号Ｄについても周期補正処理を行うようにすれば良い。また、第４実施形態のマイコン３０ならば、図１４のＳ４２０にて、ＴｒｇＣとＴｒｇＤとのうちの何れか一方の出力間隔を計測すれば良い。
【０２０４】
一方、周期補正処理は、定期的にではなく、不定期に行うようにしたり、例えばマイコンが起動した後の所定タイミングで一回だけ行うようにしても良い。
【０２０５】
また、上記Ｓ４１０の処理では、Ａ／Ｄ変換間隔Ｔａｄの計測値に僅かながら誤差が生じることとなる。なぜなら、本実施形態では、Ａ／Ｄ変換器１１の状態を一定の時間毎にモニタすることで、Ａ／Ｄ変換開始タイミングを検知していることと、Ａ／Ｄ変換開始タイミングと判定してからフリーランタイマの値を記憶するまでに若干の処理遅れがあるためであり、更に、厳密にはフリーランタイマの１カウント分の時間も計測誤差の要因となる。また、このことは、Ａ／Ｄ変換完了タイミングの間隔をＡ／Ｄ変換間隔Ｔａｄとして計測するようにした場合も同様である。
【０２０６】
このため、例えば、Ｓ４１０ではＡ／Ｄ変換間隔Ｔａｄの計測を複数回行い、その平均値を周期設定値の補正に使用（具体的には、前述の式６に代入）するようにして、Ａ／Ｄ変換間隔Ｔａｄの計測誤差による影響を少なくするようにしても良い。また更に、計測したＡ／Ｄ変換間隔Ｔａｄの平均値をそのまま用いるのではなく、その平均値から、設計上想定される計測誤差（計測値のばらつき）の中央値を引き、その減算後の値をＡ／Ｄ変換間隔Ｔａｄの計測値として、前述の式６に代入するようにしても良い。
【０２０７】
尚、Ａ／Ｄ変換器１１のＡ／Ｄ変換開始タイミング（あるいはＡ／Ｄ変換完了タイミング）にて、フリーランタイマの値が特定のレジスタにコピーされるようになっているのであれば、その特定のレジスタからＡ／Ｄ変換開始時刻（あるいはＡ／Ｄ変換完了時刻）を取得することができるため、Ａ／Ｄ変換器１１の状態を一定の時間毎にモニタすることによる誤差やフリーランタイマの値を記憶するまでの処理遅れによる誤差の心配はない。
【０２０８】
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
【０２０９】
例えば、Ａ／Ｄ変換器１１は、各入力端子のアナログ信号を複数のＡ／Ｄ変換回路でそれぞれ並行してＡ／Ｄ変換する構成のものでも良い。
【０２１０】
また、ＤＭＡコントローラ１６に対して設定する転送対象Ａ／Ｄチャンネルは、各ＤＭＡ転送要求信号（ＴｒｇＢ、ＴｒｇＣ、ＴｒｇＤ）について１つに限らず複数設定できるようになっていても良い。
【０２１１】
また、マイコン１０，２０，３０は、１チップマイコンに限らず、前述した構成要素の一部が別チップになっていても良い。つまり、本発明の信号処理装置は、複数チップからなるマイコンの形態でも良く、また、マイコン以外の形態でも良い。
【０２１２】
また、Ａ／Ｄ起動タイマ１３は、全てハードウェアによって構成されたタイマに限らず、ソフトウェアを利用したタイマでも良い。
【０２１３】
また、Ａ／Ｄ変換対象は、インジェクタ圧信号に限らず、例えばエンジンの気筒内の圧力を検出するための気筒内圧センサからの信号等でも良い。
【０２１４】
また、ＰＷＭ信号出力回路２３，２４は、パルス幅値レジスタ２３ｂ，２４ｂに書き込まれた値に該当する時間だけローになるＰＷＭ信号（即ち、ロー時間がパルス幅であるＰＷＭ信号）を出力するようになっていても良い。
【図面の簡単な説明】
【０２１５】
【図１】第１実施形態のマイコンと、それを搭載したＥＣＵとを表す構成図である。
【図２】第１実施形態のマイコンにおける各部の動作を表すタイムチャートである。
【図３】ＤＭＡ転送要求信号（ＴｒｇＣ）を発生させるタイミングを説明するための説明図である。
【図４】パルス幅値レジスタに設定するＰＷＭ信号のパルス幅Ｔｄｕｔｙを説明するための説明図である。
【図５】第２実施形態のマイコンにおける各部の動作を表すタイムチャートである。
【図６】第３実施形態のマイコンと、それを搭載したＥＣＵとを表す構成図である。
【図７】第３実施形態のマイコンにおける各部の動作を表すタイムチャートである。
【図８】第４実施形態のマイコンと、それを搭載したＥＣＵとを表す構成図である。
【図９】第４実施形態のマイコンにおける各部の動作を表すタイムチャートである。
【図１０】第５実施形態のマイコンで行われる第１〜第３の補正処理を説明するための説明図である。
【図１１】第１の補正処理を表すフローチャートである。
【図１２】第２の補正処理を表すフローチャートである。
【図１３】第３の補正処理を表すフローチャートである。
【図１４】第６実施形態のマイコンで行われる周期補正処理を表すフローチャートである。
【図１５】周期補正処理を説明するための説明図である。
【図１６】従来のマイコンを説明するための説明図である。
【符号の説明】
【０２１６】
１…ＥＣＵ（電子制御装置）、３…エンジン、５…入力回路、ＩＪ１〜ＩＪ４…インジェクタ、Ｓ１〜Ｓ４…圧力センサ、１０，２０，３０…マイコン、１１…Ａ／Ｄ変換器、１３…Ａ／Ｄ起動タイマ、１６，２６…ＤＭＡコントローラ、１７…ＲＡＭ、１９…ＲＯＭ、２１…ＣＰＵ、２３，２４…ＰＷＭ信号出力回路、２３ａ，２４ａ…周期値レジスタ、２３ｂ，２４ｂ…パルス幅値レジスタ、２５…タイマユニット、２５ａ，２５ｂ，２５ｃ…ＤＭＡ転送要求機能の回路、Ｊ１，Ｊ３…信号出力端子、Ｊ２，Ｊ４…信号入力端子
【図１】
2010146258.tif 000003
【図２】
2010146258.tif 000004
【図４】
2010146258.tif 000005
【図５】
2010146258.tif 000006
【図６】
2010146258.tif 000007
【図７】
2010146258.tif 000008
【図８】
2010146258.tif 000009
【図９】
2010146258.tif 000010
【図１０】
2010146258.tif 000011
【図１１】
2010146258.tif 000012
【図１２】
2010146258.tif 000013
【図１３】
2010146258.tif 000014
【図１４】
2010146258.tif 000015
【図１５】
2010146258.tif 000016
【図１６】
2010146258.tif 000017
【図３】
2010146258.tif 000018