周期信号処理装置
【課題】消費電流の増大や装置のコスト上昇を招くことなく、信号源が出力する周期信号との同期を適切にとりながら当該信号を処理できる周期信号処理装置を提供する。
【解決手段】CPU2に対してタスク切替え信号を出力するタスク切替えタイマ8を備え、CPU2は、信号処理タスクにおいてセンサ10の発振動作に伴い出力される駆動矩形波信号のエッジ検出を行い、そのエッジを検出するとタスク切替えタイマ8にカウントデータをセットし、自身に与えられる割込みの禁止状態を解除してからセンサ信号処理を開始する。タスク切替えタイマ8は、カウントデータに基づく計時を終了する直前にCPU2に対する割込みを禁止するように設定し、計時を終了するとCPU2に信号処理タスクを実行させるためにタスク切替え信号を出力する。
【解決手段】CPU2に対してタスク切替え信号を出力するタスク切替えタイマ8を備え、CPU2は、信号処理タスクにおいてセンサ10の発振動作に伴い出力される駆動矩形波信号のエッジ検出を行い、そのエッジを検出するとタスク切替えタイマ8にカウントデータをセットし、自身に与えられる割込みの禁止状態を解除してからセンサ信号処理を開始する。タスク切替えタイマ8は、カウントデータに基づく計時を終了する直前にCPU2に対する割込みを禁止するように設定し、計時を終了するとCPU2に信号処理タスクを実行させるためにタスク切替え信号を出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号源より与えられる、物理量の検出状態又は自身の駆動状態に応じた周期的な信号を処理する周期信号処理装置に関する。
【背景技術】
【0002】
物理量として例えば角速度を検出するヨーレートセンサ(ジャイロセンサ,信号源)は、所定周期で振動する振動子を備えており、その振動方向に対して直交する方向の振動を検出することで、回転角速度に応じた電圧をセンサ信号として出力する。そして、一般には、センサ信号を、振動子の発振周波数に基づいて同期検波し、その検波結果を全波整流してから必要な信号成分を抽出するようにフィルタリング処理する。特許文献1には、ヨーレートセンサが出力するセンサ信号をフィルタリング処理する構成の一例が開示されている。
【特許文献1】特開2003−214893号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記の信号処理を、CPUやDSPなどのプロセッサを用いて行うことを想定すると、プロセッサが上記信号処理以外の処理も並行して行う場合には、他の処理(例えば通信など)の実行要求が割り込み信号として与えられる(図11(a)参照)。センサ信号を同期検波するには、振動子の発振周波数に等しい周波数の駆動矩形波信号についてレベル変化エッジを検出する必要があるが、他の処理の実行要求割り込みが発生するタイミングによってはエッジが検出できなくなるおそれがある(図11(b)参照)。その場合、センサ信号の整流処理が不完全となり(図11(c),「異なる位相成分の混入」参照)、信号レベルの検出精度が低下する。
【0004】
上記の問題を回避するには、CPUを高い周波数で動作させるか、積和演算などの処理能力が高い演算器(コプロセッサ)を使用する必要があり、消費電流が増大したり、装置の回路規模が大きくなることやコストの上昇につながる。
また、上記のような信号処理は、センサに限るものではなく、例えばモータのようなアクチュエータ(信号源)が駆動された場合に、周期的に出力される電圧や電流などの信号を検出することでアクチュエータの変位量や位置を検出する場合についても、信号の同期をとる必要があることから、同様の問題がある。
【0005】
本発明は上記事情に鑑みてなされたものであり、その目的は、消費電流の増大や装置のコスト上昇を招くことなく、信号源が出力する周期信号との同期を適切にとりながら当該信号を処理できる周期信号処理装置を提供することにある。
【課題を解決するための手段】
【0006】
請求項1記載の周期信号処理装置によれば、複数のタスクを並行して実行するCPUに対し、タスクの実行状態を切替えさせる信号を出力するタスク切替えタイマを備える。CPUは、信号処理タスクにおいて、信号源より出力される周期信号との同期をとる同期処理を行うとタスク切替えタイマにタイマ値をセットし、自身に与えられる割込みの禁止状態を解除してから周期信号処理を開始する。そして、タスク切替えタイマは、タイマ値相当時間の計時を終了する直前にCPUに対する割込みを禁止するように設定し、計時を終了すると、CPUに信号処理タスクを実行させるための切替え信号を出力する。
【0007】
即ち、CPUが信号処理タスクにおいて同期処理を行う期間は、その他のタスク処理要求である割込みが禁止されるので、同期処理を確実に実行できる。また、その後にCPUが他のタスクを実行している場合でも、タスク切替えタイマが計時を終了すれば切替え信号を出力するので、次の同期タイミングが到来するまでに信号処理タスクの実行を開始できる。従って、消費電流の増大や装置のコスト上昇を招くことなく、CPUは、周期信号との同期をとりつつ信号処理を確実に実行することができる。
【0008】
請求項2記載の周期信号処理装置によれば、信号源がセンサであり、検出した物理量に応じて周期的なセンサ信号を出力すると共に、センサ信号の位相を示す位相信号を出力する場合、CPUは、信号処理タスクにおいて、センサ信号のフィルタリング処理を行うと共に位相信号を利用して同期処理を行う。すなわち、位相信号を利用することでセンサ信号との同期をとれば、センサ信号をサンプリングするタイミングを一定に維持してフィルタリング処理を適切に行うことができる。
【0009】
請求項3記載の周期信号処理装置によれば、センサが、位相信号として自身の発振動作に伴う駆動矩形波信号を出力する場合、CPUは、信号処理タスクにおいて、駆動矩形波信号のエッジを検出して同期処理を行う。この場合、タスク切替えタイマにセットするタイマ値は、駆動矩形波信号周期の1/2未満に相当する値に設定する。すなわち、位相信号が矩形波であれば、そのエッジを検出することでセンサ信号との同期を容易にとることができる。
【0010】
請求項4記載の周期信号処理装置によれば、CPUは、信号処理タスクにおいて、駆動矩形波信号のエッジ検出タイミングに同期してセンサ信号をサンプリングすることで同期検波を行い、その検波結果をフィルタリング処理する。従って、周期的な変化を呈するセンサ信号を同期検波により捉えてフィルタリング処理する必要があるものに、有効に適用できる。
【0011】
請求項5記載の周期信号処理装置によれば、CPUは、フィルタリング処理により得られたセンサ信号についてセンサが有する特性に応じた補正処理を行うので、例えば、温度特性などを補償することで、センサ信号を高精度に検出できる。
【0012】
請求項6記載の周期信号処理装置によれば、CPUは、信号処理タスクにおいて、同期処理を完了した時点でその他のタスクが実行待ち状態であれば前記他のタスクを実行するように切り替え、当該タスクの処理が完了すると、再び信号処理タスクを実行するように切り替える。即ち、同期処理が完了した以降に行なうセンサ信号の処理については時間的に余裕があるので、他のタスクが実行待ち状態であればそのタスクを先に実行した後に残りの信号処理を再開・継続することで、複数のタスクの処理バランスを適切に維持することができる。
【0013】
請求項7記載の周期信号処理装置によれば、タスク切替えタイマは、タイマ値に相当する時間の計時を終了する直前に、CPUに対して命令実行を停止させるための信号も出力する。即ち、CPUがある命令の実行を開始してからその実行を完了するまでには所定の時間を要するので、先に命令実行停止信号を与えてから実行中のタスクを信号処理タスクに切替えるようにすれば、その間に命令の実行を完了させることができ、タスクの切替えをスムーズに行うことができる。
【0014】
請求項8記載の周期信号処理装置によれば、信号源が複数ある場合、信号処理タスクを、複数の信号源にそれぞれ対応した同期処理サブタスクと信号処理サブタスクとで構成する。そして、同期処理サブタスクは、信号処理サブタスクよりも優先度を高く設定し、複数の信号源にそれぞれ対応した同期処理サブタスクの間にも優先順位を付与しておく。また、タスク切替えタイマは、複数の信号源に対応した複数のカウンタを備え、各カウンタがそれぞれ計時を終了すると、切替え信号と共に、何れの信号処理タスクを実行するように切り替えを行うかを示す識別信号をCPUに出力する。
従って、複数の信号源の信号処理を並行して行なう必要がある場合でも、それぞれの同期処理を確実に行ないつつ対応する信号処理を行なうことができる。
【発明を実施するための最良の形態】
【0015】
(第1実施例)
以下、本発明の第1実施例について図1乃至図5を参照して説明する。図1は、センサ信号処理装置の構成を示す機能ブロック図である。センサ信号処理装置(周期信号処理装置)は、マイクロコンピュータ(マイコン)1により、例えば車両に搭載されるECU(Electronic Control Unit)として構成されている。マイコン1は、CPU2,メモリ3,割込み制御回路4,A/D変換器5,I/Oポート6,通信回路7,タスク切替えタイマ8等を備えており、これらは、アドレス及びデータバス9を介して接続されている。
【0016】
メモリ3は、ROM,RAMなどで構成され、CPU2の制御プログラムやデータが記憶されていると共に、CPU2が上記制御プログラムに従って処理を実行する場合のワークエリアとして使用される。割込み制御回路4は、A/D変換器5,I/Oポート6,通信回路7がCPU2に対して発生させる各種の割込みを制御する。A/D変換器5は、ヨーレートセンサ(振動子,信号源)10が出力するセンサ信号(周期信号)をA/D変換し、その変換処理が終了すると、CPU2に対してA/D変換割り込みを発生させる。
【0017】
発振回路11は、ヨーレートセンサ10を構成している振動子を励起するもので、周知のインバータゲートや抵抗素子,コンデンサ等で構成されている。ヨーレートセンサ10が発振動作することに伴い出力される駆動矩形波信号(位相信号)は、I/Oポート6に与えられており、CPU2は、I/Oポート6を介して駆動矩形波信号のエッジ検出を行う。I/Oポート6は、矩形波信号のレベルがハイ(H),ロウ(L)に変化すると、その変化したレベルを保持するようになっている。
通信回路7は、図示しない他のマイコン(ECU)と例えば車内LANなどにより通信を行うもので、他のECUがマイコン1に対して通信を開始する場合には、CPU2に対して通信開始要求割込みを発生させる。
【0018】
CPU2は、図11に示した場合と同様に、ヨーレートセンサ10より出力される信号を処理するための信号処理タスクと、通信回路7を介して行う他のマイコンとの通信を処理するための通信処理タスクとを並行して実行するように制御プログラムが構成されている。そして、タスク切替えタイマ8は、実行対象とするタスクをCPU2に切り替えさせるための信号を出力する。
【0019】
図2は、タスク切替えタイマ8の構成を示すもので、図3は、タスク切替えタイマ8の動作例を示すタイミングチャートである。タスク切替えタイマ8は、タイマカウンタ12,減算器13,マルチプレクサ14などを備えている。書き込み制御信号をアクティブ(ハイ)にすると、CPU2がマルチプレクサ14を介してタイマカウンタ12にカウントデータを書き込むことが可能となり(図3(a),(b)参照)、その他の場合は、図示しないカウントクロックの周期に応じて減算器13がカウントデータをデクリメントする(図3(c)参照)。すなわち、タスク切替えタイマ8は、ダウンカウントタイマとして構成されている。
【0020】
また、タスク切替えタイマ8は、カウントデータが「3」になると、割込み制御回路4に対する割込みマスク信号をアクティブにして(図3(d)参照)CPU2に対する割込みを禁止させる。同時に、CPU2に対する命令実行停止信号をアクティブにして(図3(e)参照)、CPU2がその時点で実行中である命令の実行が完了した時点で、以降の命令実行を停止させる。そして、カウントデータが「3」になると、割込みマスク信号及び命令実行停止信号をインアクティブにすると共に、CPU2に対してタスク切替え信号を1クロック期間だけ出力する(図3(f)参照)。
【0021】
尚、命令実行停止信号をアクティブにする期間は、CPU2が実行する命令の最長サイクルに併せて設定する。即ち、CPU2がある命令の実行を開始してからその実行を完了するまでには所定の時間を要するので、先に命令実行停止信号を与えてから実行中のタスクを信号処理タスクに切替えるようにし、その間に通信タスクにおける命令の実行を完了させる。例えばCPU2がパイプライン処理を行っている場合には、実行中の命令についてのパイプライン処理を完了させるための時間を確保する。
【0022】
CPU2は、タスク切替え信号が与えられると、信号処理タスクの実行を開始するように構成されている。その時点で通信タスクを実行している場合は当該タスクの処理を中断し、プログラムカウンタ(PC)値やステータスレジスタ,コンディションコードレジスタ等の値を、退避レジスタやスタック領域などに退避させてから、信号処理タスクの実行を開始する。
【0023】
次に、本実施例の作用について図4及び図5も参照して説明する。図4は、CPU2により実行される信号処理タスクの内容を示すフローチャートである。CPU2は、先ず、I/Oポート6を介して駆動矩形波信号をサンプリングし、エッジ検出処理(同期処理)を行う(ステップS1,S2)。サンプリングした駆動矩形波信号のレベルは、メモリ3に保持しておく。尚、この段階では、上述したタスク切替えタイマ8の作用により、CPU2に対する割込みは禁止された状態となっている。
【0024】
前回のサンプルレベルと今回のサンプルレベルとが相違することで、駆動矩形波信号のエッジを検出すると(ステップS2:YES)、CPU2は、タスク切替えタイマ8にカウントデータ(例えば「99」)をセットする(ステップS3)。この時、CPU2は、割込み制御回路4に設定されている割り込み禁止フラグをリセットして、自身に対する割込み禁止を解除する。尚、上記カウントデータは、駆動矩形波信号周期の1/2よりも短い期間に相当する値に設定する。
続いて、CPU2は、A/D変換器5を介してセンサ10が出力するセンサ信号をサンプリングすると(ステップS4)、ステップS1において検出した駆動矩形波信号のレベルがハイ(H),ロウ(L)の何れであるかを判断する(ステップS5)。
【0025】
ステップS5において駆動矩形波信号レベルがハイの場合は、ステップS7に移行してローパスフィルタ(LPF)機能を実現するためのデジタル演算を行う。一方、ステップS5において駆動矩形波信号レベルがロウの場合は、センサ信号のレベルを反転させて、すなわちセンサ信号振幅の最大値と最小値との間の中央値を基準としてレベルを折り返す処理を行ってから(ステップS6)ステップS7に移行する。ステップS7の実行後は、ステップS4におけるセンサ信号のサンプリング回数をカウントするためのカウンタをインクリメントし(ステップS8)、上記回数カウンタの値が所定数に達しなければ(ステップS9:NO)、ステップS4に戻って引き続きセンサ信号のサンプリングを行う。
尚、ステップS1〜S6は、同期検波処理に対応する。また、ステップS7におけるフィルタリング処理は、同期検波したセンサ信号の直流成分を抽出するもので、その直流レベルが、ヨーレートセンサ10により検出された角速度を示す。
【0026】
ステップS9において、センサ信号のサンプリング回数が所定数に達すると(YES)、CPU2は、ヨーレートセンサ10や回路自体について予め与えられている特性情報に基づき(例えば、温度特性など)、検出結果についてオフセットや感度の補正を行うと(ステップS10)、補正した検出結果を出力する(ステップS11)。ここでの「出力」とは、検出結果を通信処理タスク側に渡して外部に送信することを示す。
【0027】
図5は、図4のフローチャートに対応する処理の一例(タスクスケジューリング)を示すタイミングチャートである。図5(b)に示すように、前回の信号処理タスクの実行が終了した時点から、タスク切替えタイマ8のカウント値が「0」になるまでの間に通信要求割り込みが発生すると、CPU2は通信タスクの実行を開始する。そして、通信タスクの実行中にタスク切替えタイマ8のカウント値が「0」になると、タスク切替えタイマ8はタスク切替え信号を出力するので、CPU2は、通信タスクの実行を中断して信号処理タスクの実行を開始する。この時、割込は禁止状態に設定されている。
【0028】
信号処理タスクにおいて、駆動矩形波信号のエッジ検出が完了すると、CPU2は、中断させた通信タスクの処理を再開する(図5(b),(c)参照)。即ち、エッジ検出が完了した以降に行なうセンサ信号の処理については時間的に余裕があるため、待機中の通信タスクを先に処理する。またこの時、割込み禁止は解除される。そして、通信タスクの実行が完了すると再び信号処理タスクに移行して、残りのステップS4〜S11の処理を行う。
【0029】
以上のように本実施例によれば、CPU2に対してタスク切替え信号を出力するタスク切替えタイマ8を備え、CPU2は、信号処理タスクにおいて、センサ10の発振動作に伴い出力される駆動矩形波信号のエッジ検出を行い、そのエッジを検出するとタスク切替えタイマ8にカウントデータをセットし、自身に与えられる割込みの禁止状態を解除してからセンサ信号処理を開始する。そして、タスク切替えタイマ8は、カウントデータに基づく計時を終了する直前にCPU2に対する割込みを禁止するように設定し、計時を終了すると、CPU2に信号処理タスクを実行させるためにタスク切替え信号を出力する。
【0030】
従って、CPU2が信号処理タスクにおいて駆動矩形波信号のエッジ検出を行う期間は、通信タスクの処理要求として発生する割込みの受付が禁止(マスク)されるので、エッジを確実に検出できる。また、その後にCPU2が通信タスクを実行している場合でも、タスク切替えタイマ8が計時を終了すれば切替え信号を出力するので、次のエッジ検出タイミングが到来するまでに信号処理タスクの実行を開始できる。従って、消費電流の増大や装置のコスト上昇を招くことなく、CPU2は、駆動矩形波信号のエッジ検出タイミングに同期して、センサ信号処理を確実に実行することができる。
【0031】
また、CPU2は、信号処理タスクにおいて、エッジを検出した時点で通信タスクが実行待ち状態であれば通信タスクを実行するように切り替え、当該タスクの処理が完了すると、再び信号処理タスクを実行するように切り替えるので、複数のタスクの処理バランスを適切に維持することができる。そして、タスク切替えタイマ8は、計時を終了する直前に、CPU2に対して命令実行停止信号も出力するので、タスクの切替えをスムーズに行うことができる。
【0032】
更に、CPU2は、信号処理タスクにおいて、駆動矩形波信号のエッジ検出タイミングに同期してセンサ信号をサンプリングすることで同期検波を行い、その検波結果をフィルタリング処理するので、周期的な変化を呈するセンサ信号を同期検波により捉えて、センサ信号をサンプリングするタイミングを一定に維持し、適切にフィルタリング処理することができる。加えて、CPU2は、フィルタリング処理により得られたセンサ信号についてセンサや回路等が有する特性に応じた補正処理を行うので、センサ信号を高精度に検出できる。
【0033】
(第2実施例)
図6乃至図9は本発明の第2実施例を示すものであり、第1実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。第2実施例のマイクロコンピュータ21(センサ信号処理装置,周期信号処理装置)は、図6に示すように、2つのヨーレートセンサ10A,10Bが出力するセンサ信号を並行して処理するように構成されている。従って、マイコン21は、2つのセンサ10A,10Bに対応して、2つのA/D変換器5A,5Bと、2つのI/Oポート6A,6Bを備えている。また、CPU2はCPU22に、タスク切替えタイマ8はタスク切替えタイマ23に置き換えられている。
【0034】
尚、2つのセンサ10A,10Bは、例えば、同一の軸周りについて発生する角速度を同時に検出して冗長性を持たせても良いし(フェイルセーフ対策)、或いは、それぞれ異なる軸周りについて発生する角速度を検出しても良い。
【0035】
図7は、タスク切替えタイマ23の内部構成を示すものである。基本的には、図2に示すタスク切替えタイマ8の構成を、2つのセンサに応じて2組(A,B)備えたもので、タイマカウンタ12A,12Bに対してそれぞれカウントデータを設定するために、ANDゲート24A,24Bとマルチプレクサ25とを備えている。ANDゲート24A,24Bの一方の入力端子には、CPU22が出力する書き込み制御信号が共通に与えられている。
【0036】
マルチプレクサ25には、CPU22が、何れのカウンタ12A,12Bに書き込みを行うかを選択するためのカウンタ選択信号が、例えば図示しないアドレスデコーダより与えられる。但し、カウンタ選択信号がハイの場合はカウンタ12A側を、同選択信号がロウの場合はカウンタ12B側を選択するように設定されている。そして、マルチプレクサ25は、カウンタ選択信号がハイの場合はANDゲート24A側の他方の入力端子に、同選択信号がロウの場合はANDゲート24B側の他方の入力端子にハイレベル信号を、それぞれ出力する。
【0037】
また、タスク切替えタイマ23は、タイマカウンタ12A,12Bのカウントデータが「0」になると、タスク切替え信号と共に、カウンタ12A,12Bの何れによる切替え信号かを示す識別信号も出力するように構成されている。例えば、カウンタ12A側であれば切替え識別信号をL,カウンタ12B側であれば切替え識別信号をHとするように設定する。
【0038】
次に、第2実施例の作用について図8及び図9も参照して説明する。図8は、CPU22によって実行される各タスクの処理内容を示すフローチャートである。第2実施例では、2つのセンサ10A,10Bより出力されるセンサ信号を処理するために、センサA信号処理タスクとセンサB信号処理タスクとがあり、各信号処理タスクは、エッジ検出(同期処理)サブタスク((a),(c))と信号処理サブタスク((b),(d))とで構成されている。
【0039】
また、図9は、図5相当図であるが、上記4つのサブタスクに加えて通信タスクがあり、計5つのタスクの優先順位は、高い方より
1.センサAエッジ検出サブタスク
2.センサBエッジ検出サブタスク
3.センサA信号処理サブタスク
4.センサB信号処理サブタスク
5.通信タスク
となるように設定されている。この場合、CPU22には、これらのタスクを切り換えて実行するため、それぞれのPC値やレジスタ値を退避させる領域を確保する。
【0040】
そして、図8に示す各フローチャート、サブタスク(a),(b)のペアと、サブタスク(c),(d)のペアとは、基本的に第1実施例の図4に示すフローチャートを2つに分割したものであり、(a),(c)に示すエッジ検出サブタスクでは、ステップS3を実行すると、(b),(d)に示す信号処理サブタスクを起動して(ステップS12)処理を終了するようになっている。ここでの起動処理は、例えば信号処理サブタスクを起動するためのフラグを設けておき、ステップS12ではその起動フラグをセットする。そして、CPU22のアイドル中に起動フラグがセットされたか否かをチェックするようにして、起動フラグのセットを認識すると信号処理サブタスク実行を開始する。
【0041】
図9(a),(b)に示すように、センサ10A,10Bの駆動矩形波信号周期は異なっており、(A>B)となっている。そして、それぞれの駆動矩形波信号のエッジを、センサAエッジ検出サブタスクと、センサBエッジ検出サブタスクとで検出する。また、各信号周期に対応して、各タイマカウンタ12A,12Bに設定するカウントデータは、例えば「99」,「89」と異なる値にする。
【0042】
図9(c)〜(f)に示す信号処理タスクは、優先順位が高い方から順次実行されて行く。図9(d)に示すように、センサBエッジ検出サブタスクにおいて、センサ10Bの駆動矩形波信号のエッジを検出すると、タイマカウンタ12Bにカウントデータ「89」をセットする(図9(i)参照)。それから、割込み禁止を解除してセンサB信号処理サブタスクを起動するが、センサA信号処理サブタスクが実行待ちになっているため、先にセンサA信号処理サブタスクを実行する。そして、前記タスクの実行が終了すると、センサB信号処理サブタスクを実行するように切り替える。
【0043】
図9(g)に示すように、優先順位が最低である通信タスクの実行中に、タイマカウンタ12Aのカウントデータが「0」に達すると、通信処理タスクの実行を停止してセンサAエッジ検出サブタスクを実行するように切り替える。また、その後にタイマカウンタ12Bのカウントデータが「0」に達しても、切り替えの重複を避けるため、タイマカウンタ12Aのカウントデータが「0」である間は、タスク切替え信号並びに切替え識別信号を有効化しないようにする。
【0044】
そして、センサAエッジ検出サブタスクにおいて、センサ10A側のエッジが検出され、タイマカウンタ12Aにカウントデータが「99」がセットされ、当該サブタスクが終了した時点で(図9(h)参照)センサBエッジ検出サブタスクが起動され、実行待ち状態となる。それから、割込み禁止を解除してセンサAエッジ検出サブタスクを終了し、センサA信号処理サブタスクを起動するが、センサBエッジ検出サブタスクが実行待ちになっているため、先にセンサBエッジ検出サブタスクを実行する。そして、前記タスクの実行が終了すると、センサA信号処理サブタスクを実行するように切り替える。
【0045】
また、通信タスクの実行が完了してCPU22がアイドル状態にある間に、先にタイマカウンタ12Bのカウントデータが「0」に達すればセンサBエッジ検出サブタスクが起動されるが、当該タスクの実行中にタイマカウンタ12Aのカウントデータが「0」に達すると、その実行を停止してセンサAエッジ検出サブタスクを実行するように切り替える。また、タイマカウンタ12A,12Bのカウントデータがほぼ同時に「0」に達した場合も、センサA側の信号処理タスクが優先される。
【0046】
以上のように第2実施例によれば、2つのセンサ10A,10Bがある場合、信号処理タスクを、センサ10A,10Bにそれぞれ対応したエッジ検出サブタスクと信号処理サブタスクとで構成する。そして、エッジ検出サブタスクは、信号処理サブタスクよりも優先度を高く設定し、センサ10A,10Bにそれぞれ対応したエッジ検出サブタスクの間にも優先順位を付与し、タスク切替えタイマ23は、センサ10A,10Bに対応した複数のタイマカウンタ12A,12Bを備え、それぞれ計時を終了すると、タスク切替え信号と共に、何れの信号処理タスクを実行するように切り替えるのかを示す識別信号をCPU22に出力する。従って、各駆動矩形波のエッジ検出を確実に行ない、それぞれのエッジ検出タイミングに同期した処理を行なうことができる。
【0047】
(第3実施例)
図10は本発明の第3実施例を示すものであり、第1実施例と異なる部分について説明する。第3実施例のマイクロコンピュータ31(周期信号処理装置)は、第1実施例のセンサ10に替えて、アクチュエータ32(信号源)より出力される位置信号を処理するように構成されている。アクチュエータ32は、例えばモータ等であり、上記位置信号として出力されるのはモータ電圧やモータ電流などである。
【0048】
CPU33は、通信回路7を介して、図示しないホストマイコンよりアクチュエータ32の制御指令(例えば目標回転速度など)を受信すると、その制御指令に応じてI/Oポート6を介してアクチュエータ32を駆動制御する。すると、アクチュエータ32では、駆動状態に応じて電圧や電流が発生するが、マイコン31は、そのモータ電圧や電流をロータの位置信号として受け取り、A/D変換器5によりA/D変換する。そして、例えばモータの誘起電圧であれば、信号処理タスクにおいて、そのゼロクロス点の間隔を検出して同期処理を行う。
【0049】
この場合、CPU33が、ゼロクロス点の間隔をカウンタにより計測すれば、例えば電気角60°に相当するカウントデータが得られる。すると、そのデータに基づいて詳細なロータ位置(アクチュエータの変位位置)を得ることができ、例えばモータを正弦波駆動することが可能となる。そして、同期処理を行った後は、第1実施例と同様に、タスク切替えタイマ8にタイマ値をセットして割込み禁止を解除する。
以上のように第3実施例によれば、信号源がアクチュエータ32である場合にも、アクチュエータ32が出力する位置信号との同期をとりつつ、その位置信号を処理することができる。
【0050】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、以下のような変形または拡張が可能である。
タイマに設定するカウントデータの値は一例であり、適宜変更して良い。
割込み制御回路は必要に応じて設ければ良く、割込み制御をCPUの内部で行っても良い。
信号処理タスクにおいてエッジ検出を行った時点で通信タスクが実行待ち状態にある場合でも、先に信号処理タスクにおける残りの処理を完了した後に、通信タスクを実行しても良い。
【0051】
信号処理タスク以外のタスクは、通信タスクに限ることはない。
フィルタリング処理は、ローパスフィルタに対応するものに限らず、ハイパスフィルタやバンドパスフィルタなどに対応する処理を行っても良い。従って、フィルタリング処理して得るセンサ信号は、所定の周波数を含むものであっても良い。
タスク切替えタイマは、アップカウント動作を行うように構成しても良い。
矩形波信号のエッジに同期して、同期検波以外の同期処理を行っても良い。
ステップS10における補正処理は、必要に応じて行えば良い。
命令実行停止信号の出力も必要に応じて行えば良く、CPUの内部においてタスク切替え時の命令実行状態を制御しても良い。
第2実施例において、センサの数を3つ以上としても良い。
【0052】
センサはヨーレートセンサに限らず、例えば加速度センサなどでも良い。また、位相信号は矩形波信号に限ることはなく、更に、必ずしも発振動作した状態で検出を行うセンサに限らない。
また、第2実施例で複数のセンサの信号を取り扱う場合、それらが例えばヨーレートセンサと加速度センサといったように、異なる物理量を検出するセンサであっても良い。この場合でも、それぞれのセンサ信号に同期した処理を行うことができる。
センサ信号処理装置は、車両に搭載されるECUを構成するものに限ることはない。
第3実施例において、アクチュエータはリニアモータ等でも良い。
【図面の簡単な説明】
【0053】
【図1】本発明の第1実施例であり、センサ信号処理装置の構成を示す機能ブロック図
【図2】タスク切替えタイマの構成を示す図
【図3】タスク切替えタイマの動作例を示すタイミングチャート
【図4】信号処理タスクの内容を示すフローチャート
【図5】図4のフローチャートに対応する処理の一例を示すタイミングチャート
【図6】本発明の第2実施例を示す図1相当図
【図7】図2相当図
【図8】図3相当図
【図9】図4相当図
【図10】本発明の第3実施例を示す図1相当図
【図11】従来技術を説明するタイミングチャート
【符号の説明】
【0054】
図面中、1はマイクロコンピュータ(周期信号処理装置)、2はCPU、8はタスク切替えタイマ、10はセンサ、21はマイクロコンピュータ(周期信号処理装置)、22はCPU、23はタスク切替えタイマ、31はマイクロコンピュータ(周期信号処理装置)、32はアクチュエータ(信号源)、33はCPUを示す。
【技術分野】
【0001】
本発明は、信号源より与えられる、物理量の検出状態又は自身の駆動状態に応じた周期的な信号を処理する周期信号処理装置に関する。
【背景技術】
【0002】
物理量として例えば角速度を検出するヨーレートセンサ(ジャイロセンサ,信号源)は、所定周期で振動する振動子を備えており、その振動方向に対して直交する方向の振動を検出することで、回転角速度に応じた電圧をセンサ信号として出力する。そして、一般には、センサ信号を、振動子の発振周波数に基づいて同期検波し、その検波結果を全波整流してから必要な信号成分を抽出するようにフィルタリング処理する。特許文献1には、ヨーレートセンサが出力するセンサ信号をフィルタリング処理する構成の一例が開示されている。
【特許文献1】特開2003−214893号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記の信号処理を、CPUやDSPなどのプロセッサを用いて行うことを想定すると、プロセッサが上記信号処理以外の処理も並行して行う場合には、他の処理(例えば通信など)の実行要求が割り込み信号として与えられる(図11(a)参照)。センサ信号を同期検波するには、振動子の発振周波数に等しい周波数の駆動矩形波信号についてレベル変化エッジを検出する必要があるが、他の処理の実行要求割り込みが発生するタイミングによってはエッジが検出できなくなるおそれがある(図11(b)参照)。その場合、センサ信号の整流処理が不完全となり(図11(c),「異なる位相成分の混入」参照)、信号レベルの検出精度が低下する。
【0004】
上記の問題を回避するには、CPUを高い周波数で動作させるか、積和演算などの処理能力が高い演算器(コプロセッサ)を使用する必要があり、消費電流が増大したり、装置の回路規模が大きくなることやコストの上昇につながる。
また、上記のような信号処理は、センサに限るものではなく、例えばモータのようなアクチュエータ(信号源)が駆動された場合に、周期的に出力される電圧や電流などの信号を検出することでアクチュエータの変位量や位置を検出する場合についても、信号の同期をとる必要があることから、同様の問題がある。
【0005】
本発明は上記事情に鑑みてなされたものであり、その目的は、消費電流の増大や装置のコスト上昇を招くことなく、信号源が出力する周期信号との同期を適切にとりながら当該信号を処理できる周期信号処理装置を提供することにある。
【課題を解決するための手段】
【0006】
請求項1記載の周期信号処理装置によれば、複数のタスクを並行して実行するCPUに対し、タスクの実行状態を切替えさせる信号を出力するタスク切替えタイマを備える。CPUは、信号処理タスクにおいて、信号源より出力される周期信号との同期をとる同期処理を行うとタスク切替えタイマにタイマ値をセットし、自身に与えられる割込みの禁止状態を解除してから周期信号処理を開始する。そして、タスク切替えタイマは、タイマ値相当時間の計時を終了する直前にCPUに対する割込みを禁止するように設定し、計時を終了すると、CPUに信号処理タスクを実行させるための切替え信号を出力する。
【0007】
即ち、CPUが信号処理タスクにおいて同期処理を行う期間は、その他のタスク処理要求である割込みが禁止されるので、同期処理を確実に実行できる。また、その後にCPUが他のタスクを実行している場合でも、タスク切替えタイマが計時を終了すれば切替え信号を出力するので、次の同期タイミングが到来するまでに信号処理タスクの実行を開始できる。従って、消費電流の増大や装置のコスト上昇を招くことなく、CPUは、周期信号との同期をとりつつ信号処理を確実に実行することができる。
【0008】
請求項2記載の周期信号処理装置によれば、信号源がセンサであり、検出した物理量に応じて周期的なセンサ信号を出力すると共に、センサ信号の位相を示す位相信号を出力する場合、CPUは、信号処理タスクにおいて、センサ信号のフィルタリング処理を行うと共に位相信号を利用して同期処理を行う。すなわち、位相信号を利用することでセンサ信号との同期をとれば、センサ信号をサンプリングするタイミングを一定に維持してフィルタリング処理を適切に行うことができる。
【0009】
請求項3記載の周期信号処理装置によれば、センサが、位相信号として自身の発振動作に伴う駆動矩形波信号を出力する場合、CPUは、信号処理タスクにおいて、駆動矩形波信号のエッジを検出して同期処理を行う。この場合、タスク切替えタイマにセットするタイマ値は、駆動矩形波信号周期の1/2未満に相当する値に設定する。すなわち、位相信号が矩形波であれば、そのエッジを検出することでセンサ信号との同期を容易にとることができる。
【0010】
請求項4記載の周期信号処理装置によれば、CPUは、信号処理タスクにおいて、駆動矩形波信号のエッジ検出タイミングに同期してセンサ信号をサンプリングすることで同期検波を行い、その検波結果をフィルタリング処理する。従って、周期的な変化を呈するセンサ信号を同期検波により捉えてフィルタリング処理する必要があるものに、有効に適用できる。
【0011】
請求項5記載の周期信号処理装置によれば、CPUは、フィルタリング処理により得られたセンサ信号についてセンサが有する特性に応じた補正処理を行うので、例えば、温度特性などを補償することで、センサ信号を高精度に検出できる。
【0012】
請求項6記載の周期信号処理装置によれば、CPUは、信号処理タスクにおいて、同期処理を完了した時点でその他のタスクが実行待ち状態であれば前記他のタスクを実行するように切り替え、当該タスクの処理が完了すると、再び信号処理タスクを実行するように切り替える。即ち、同期処理が完了した以降に行なうセンサ信号の処理については時間的に余裕があるので、他のタスクが実行待ち状態であればそのタスクを先に実行した後に残りの信号処理を再開・継続することで、複数のタスクの処理バランスを適切に維持することができる。
【0013】
請求項7記載の周期信号処理装置によれば、タスク切替えタイマは、タイマ値に相当する時間の計時を終了する直前に、CPUに対して命令実行を停止させるための信号も出力する。即ち、CPUがある命令の実行を開始してからその実行を完了するまでには所定の時間を要するので、先に命令実行停止信号を与えてから実行中のタスクを信号処理タスクに切替えるようにすれば、その間に命令の実行を完了させることができ、タスクの切替えをスムーズに行うことができる。
【0014】
請求項8記載の周期信号処理装置によれば、信号源が複数ある場合、信号処理タスクを、複数の信号源にそれぞれ対応した同期処理サブタスクと信号処理サブタスクとで構成する。そして、同期処理サブタスクは、信号処理サブタスクよりも優先度を高く設定し、複数の信号源にそれぞれ対応した同期処理サブタスクの間にも優先順位を付与しておく。また、タスク切替えタイマは、複数の信号源に対応した複数のカウンタを備え、各カウンタがそれぞれ計時を終了すると、切替え信号と共に、何れの信号処理タスクを実行するように切り替えを行うかを示す識別信号をCPUに出力する。
従って、複数の信号源の信号処理を並行して行なう必要がある場合でも、それぞれの同期処理を確実に行ないつつ対応する信号処理を行なうことができる。
【発明を実施するための最良の形態】
【0015】
(第1実施例)
以下、本発明の第1実施例について図1乃至図5を参照して説明する。図1は、センサ信号処理装置の構成を示す機能ブロック図である。センサ信号処理装置(周期信号処理装置)は、マイクロコンピュータ(マイコン)1により、例えば車両に搭載されるECU(Electronic Control Unit)として構成されている。マイコン1は、CPU2,メモリ3,割込み制御回路4,A/D変換器5,I/Oポート6,通信回路7,タスク切替えタイマ8等を備えており、これらは、アドレス及びデータバス9を介して接続されている。
【0016】
メモリ3は、ROM,RAMなどで構成され、CPU2の制御プログラムやデータが記憶されていると共に、CPU2が上記制御プログラムに従って処理を実行する場合のワークエリアとして使用される。割込み制御回路4は、A/D変換器5,I/Oポート6,通信回路7がCPU2に対して発生させる各種の割込みを制御する。A/D変換器5は、ヨーレートセンサ(振動子,信号源)10が出力するセンサ信号(周期信号)をA/D変換し、その変換処理が終了すると、CPU2に対してA/D変換割り込みを発生させる。
【0017】
発振回路11は、ヨーレートセンサ10を構成している振動子を励起するもので、周知のインバータゲートや抵抗素子,コンデンサ等で構成されている。ヨーレートセンサ10が発振動作することに伴い出力される駆動矩形波信号(位相信号)は、I/Oポート6に与えられており、CPU2は、I/Oポート6を介して駆動矩形波信号のエッジ検出を行う。I/Oポート6は、矩形波信号のレベルがハイ(H),ロウ(L)に変化すると、その変化したレベルを保持するようになっている。
通信回路7は、図示しない他のマイコン(ECU)と例えば車内LANなどにより通信を行うもので、他のECUがマイコン1に対して通信を開始する場合には、CPU2に対して通信開始要求割込みを発生させる。
【0018】
CPU2は、図11に示した場合と同様に、ヨーレートセンサ10より出力される信号を処理するための信号処理タスクと、通信回路7を介して行う他のマイコンとの通信を処理するための通信処理タスクとを並行して実行するように制御プログラムが構成されている。そして、タスク切替えタイマ8は、実行対象とするタスクをCPU2に切り替えさせるための信号を出力する。
【0019】
図2は、タスク切替えタイマ8の構成を示すもので、図3は、タスク切替えタイマ8の動作例を示すタイミングチャートである。タスク切替えタイマ8は、タイマカウンタ12,減算器13,マルチプレクサ14などを備えている。書き込み制御信号をアクティブ(ハイ)にすると、CPU2がマルチプレクサ14を介してタイマカウンタ12にカウントデータを書き込むことが可能となり(図3(a),(b)参照)、その他の場合は、図示しないカウントクロックの周期に応じて減算器13がカウントデータをデクリメントする(図3(c)参照)。すなわち、タスク切替えタイマ8は、ダウンカウントタイマとして構成されている。
【0020】
また、タスク切替えタイマ8は、カウントデータが「3」になると、割込み制御回路4に対する割込みマスク信号をアクティブにして(図3(d)参照)CPU2に対する割込みを禁止させる。同時に、CPU2に対する命令実行停止信号をアクティブにして(図3(e)参照)、CPU2がその時点で実行中である命令の実行が完了した時点で、以降の命令実行を停止させる。そして、カウントデータが「3」になると、割込みマスク信号及び命令実行停止信号をインアクティブにすると共に、CPU2に対してタスク切替え信号を1クロック期間だけ出力する(図3(f)参照)。
【0021】
尚、命令実行停止信号をアクティブにする期間は、CPU2が実行する命令の最長サイクルに併せて設定する。即ち、CPU2がある命令の実行を開始してからその実行を完了するまでには所定の時間を要するので、先に命令実行停止信号を与えてから実行中のタスクを信号処理タスクに切替えるようにし、その間に通信タスクにおける命令の実行を完了させる。例えばCPU2がパイプライン処理を行っている場合には、実行中の命令についてのパイプライン処理を完了させるための時間を確保する。
【0022】
CPU2は、タスク切替え信号が与えられると、信号処理タスクの実行を開始するように構成されている。その時点で通信タスクを実行している場合は当該タスクの処理を中断し、プログラムカウンタ(PC)値やステータスレジスタ,コンディションコードレジスタ等の値を、退避レジスタやスタック領域などに退避させてから、信号処理タスクの実行を開始する。
【0023】
次に、本実施例の作用について図4及び図5も参照して説明する。図4は、CPU2により実行される信号処理タスクの内容を示すフローチャートである。CPU2は、先ず、I/Oポート6を介して駆動矩形波信号をサンプリングし、エッジ検出処理(同期処理)を行う(ステップS1,S2)。サンプリングした駆動矩形波信号のレベルは、メモリ3に保持しておく。尚、この段階では、上述したタスク切替えタイマ8の作用により、CPU2に対する割込みは禁止された状態となっている。
【0024】
前回のサンプルレベルと今回のサンプルレベルとが相違することで、駆動矩形波信号のエッジを検出すると(ステップS2:YES)、CPU2は、タスク切替えタイマ8にカウントデータ(例えば「99」)をセットする(ステップS3)。この時、CPU2は、割込み制御回路4に設定されている割り込み禁止フラグをリセットして、自身に対する割込み禁止を解除する。尚、上記カウントデータは、駆動矩形波信号周期の1/2よりも短い期間に相当する値に設定する。
続いて、CPU2は、A/D変換器5を介してセンサ10が出力するセンサ信号をサンプリングすると(ステップS4)、ステップS1において検出した駆動矩形波信号のレベルがハイ(H),ロウ(L)の何れであるかを判断する(ステップS5)。
【0025】
ステップS5において駆動矩形波信号レベルがハイの場合は、ステップS7に移行してローパスフィルタ(LPF)機能を実現するためのデジタル演算を行う。一方、ステップS5において駆動矩形波信号レベルがロウの場合は、センサ信号のレベルを反転させて、すなわちセンサ信号振幅の最大値と最小値との間の中央値を基準としてレベルを折り返す処理を行ってから(ステップS6)ステップS7に移行する。ステップS7の実行後は、ステップS4におけるセンサ信号のサンプリング回数をカウントするためのカウンタをインクリメントし(ステップS8)、上記回数カウンタの値が所定数に達しなければ(ステップS9:NO)、ステップS4に戻って引き続きセンサ信号のサンプリングを行う。
尚、ステップS1〜S6は、同期検波処理に対応する。また、ステップS7におけるフィルタリング処理は、同期検波したセンサ信号の直流成分を抽出するもので、その直流レベルが、ヨーレートセンサ10により検出された角速度を示す。
【0026】
ステップS9において、センサ信号のサンプリング回数が所定数に達すると(YES)、CPU2は、ヨーレートセンサ10や回路自体について予め与えられている特性情報に基づき(例えば、温度特性など)、検出結果についてオフセットや感度の補正を行うと(ステップS10)、補正した検出結果を出力する(ステップS11)。ここでの「出力」とは、検出結果を通信処理タスク側に渡して外部に送信することを示す。
【0027】
図5は、図4のフローチャートに対応する処理の一例(タスクスケジューリング)を示すタイミングチャートである。図5(b)に示すように、前回の信号処理タスクの実行が終了した時点から、タスク切替えタイマ8のカウント値が「0」になるまでの間に通信要求割り込みが発生すると、CPU2は通信タスクの実行を開始する。そして、通信タスクの実行中にタスク切替えタイマ8のカウント値が「0」になると、タスク切替えタイマ8はタスク切替え信号を出力するので、CPU2は、通信タスクの実行を中断して信号処理タスクの実行を開始する。この時、割込は禁止状態に設定されている。
【0028】
信号処理タスクにおいて、駆動矩形波信号のエッジ検出が完了すると、CPU2は、中断させた通信タスクの処理を再開する(図5(b),(c)参照)。即ち、エッジ検出が完了した以降に行なうセンサ信号の処理については時間的に余裕があるため、待機中の通信タスクを先に処理する。またこの時、割込み禁止は解除される。そして、通信タスクの実行が完了すると再び信号処理タスクに移行して、残りのステップS4〜S11の処理を行う。
【0029】
以上のように本実施例によれば、CPU2に対してタスク切替え信号を出力するタスク切替えタイマ8を備え、CPU2は、信号処理タスクにおいて、センサ10の発振動作に伴い出力される駆動矩形波信号のエッジ検出を行い、そのエッジを検出するとタスク切替えタイマ8にカウントデータをセットし、自身に与えられる割込みの禁止状態を解除してからセンサ信号処理を開始する。そして、タスク切替えタイマ8は、カウントデータに基づく計時を終了する直前にCPU2に対する割込みを禁止するように設定し、計時を終了すると、CPU2に信号処理タスクを実行させるためにタスク切替え信号を出力する。
【0030】
従って、CPU2が信号処理タスクにおいて駆動矩形波信号のエッジ検出を行う期間は、通信タスクの処理要求として発生する割込みの受付が禁止(マスク)されるので、エッジを確実に検出できる。また、その後にCPU2が通信タスクを実行している場合でも、タスク切替えタイマ8が計時を終了すれば切替え信号を出力するので、次のエッジ検出タイミングが到来するまでに信号処理タスクの実行を開始できる。従って、消費電流の増大や装置のコスト上昇を招くことなく、CPU2は、駆動矩形波信号のエッジ検出タイミングに同期して、センサ信号処理を確実に実行することができる。
【0031】
また、CPU2は、信号処理タスクにおいて、エッジを検出した時点で通信タスクが実行待ち状態であれば通信タスクを実行するように切り替え、当該タスクの処理が完了すると、再び信号処理タスクを実行するように切り替えるので、複数のタスクの処理バランスを適切に維持することができる。そして、タスク切替えタイマ8は、計時を終了する直前に、CPU2に対して命令実行停止信号も出力するので、タスクの切替えをスムーズに行うことができる。
【0032】
更に、CPU2は、信号処理タスクにおいて、駆動矩形波信号のエッジ検出タイミングに同期してセンサ信号をサンプリングすることで同期検波を行い、その検波結果をフィルタリング処理するので、周期的な変化を呈するセンサ信号を同期検波により捉えて、センサ信号をサンプリングするタイミングを一定に維持し、適切にフィルタリング処理することができる。加えて、CPU2は、フィルタリング処理により得られたセンサ信号についてセンサや回路等が有する特性に応じた補正処理を行うので、センサ信号を高精度に検出できる。
【0033】
(第2実施例)
図6乃至図9は本発明の第2実施例を示すものであり、第1実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分について説明する。第2実施例のマイクロコンピュータ21(センサ信号処理装置,周期信号処理装置)は、図6に示すように、2つのヨーレートセンサ10A,10Bが出力するセンサ信号を並行して処理するように構成されている。従って、マイコン21は、2つのセンサ10A,10Bに対応して、2つのA/D変換器5A,5Bと、2つのI/Oポート6A,6Bを備えている。また、CPU2はCPU22に、タスク切替えタイマ8はタスク切替えタイマ23に置き換えられている。
【0034】
尚、2つのセンサ10A,10Bは、例えば、同一の軸周りについて発生する角速度を同時に検出して冗長性を持たせても良いし(フェイルセーフ対策)、或いは、それぞれ異なる軸周りについて発生する角速度を検出しても良い。
【0035】
図7は、タスク切替えタイマ23の内部構成を示すものである。基本的には、図2に示すタスク切替えタイマ8の構成を、2つのセンサに応じて2組(A,B)備えたもので、タイマカウンタ12A,12Bに対してそれぞれカウントデータを設定するために、ANDゲート24A,24Bとマルチプレクサ25とを備えている。ANDゲート24A,24Bの一方の入力端子には、CPU22が出力する書き込み制御信号が共通に与えられている。
【0036】
マルチプレクサ25には、CPU22が、何れのカウンタ12A,12Bに書き込みを行うかを選択するためのカウンタ選択信号が、例えば図示しないアドレスデコーダより与えられる。但し、カウンタ選択信号がハイの場合はカウンタ12A側を、同選択信号がロウの場合はカウンタ12B側を選択するように設定されている。そして、マルチプレクサ25は、カウンタ選択信号がハイの場合はANDゲート24A側の他方の入力端子に、同選択信号がロウの場合はANDゲート24B側の他方の入力端子にハイレベル信号を、それぞれ出力する。
【0037】
また、タスク切替えタイマ23は、タイマカウンタ12A,12Bのカウントデータが「0」になると、タスク切替え信号と共に、カウンタ12A,12Bの何れによる切替え信号かを示す識別信号も出力するように構成されている。例えば、カウンタ12A側であれば切替え識別信号をL,カウンタ12B側であれば切替え識別信号をHとするように設定する。
【0038】
次に、第2実施例の作用について図8及び図9も参照して説明する。図8は、CPU22によって実行される各タスクの処理内容を示すフローチャートである。第2実施例では、2つのセンサ10A,10Bより出力されるセンサ信号を処理するために、センサA信号処理タスクとセンサB信号処理タスクとがあり、各信号処理タスクは、エッジ検出(同期処理)サブタスク((a),(c))と信号処理サブタスク((b),(d))とで構成されている。
【0039】
また、図9は、図5相当図であるが、上記4つのサブタスクに加えて通信タスクがあり、計5つのタスクの優先順位は、高い方より
1.センサAエッジ検出サブタスク
2.センサBエッジ検出サブタスク
3.センサA信号処理サブタスク
4.センサB信号処理サブタスク
5.通信タスク
となるように設定されている。この場合、CPU22には、これらのタスクを切り換えて実行するため、それぞれのPC値やレジスタ値を退避させる領域を確保する。
【0040】
そして、図8に示す各フローチャート、サブタスク(a),(b)のペアと、サブタスク(c),(d)のペアとは、基本的に第1実施例の図4に示すフローチャートを2つに分割したものであり、(a),(c)に示すエッジ検出サブタスクでは、ステップS3を実行すると、(b),(d)に示す信号処理サブタスクを起動して(ステップS12)処理を終了するようになっている。ここでの起動処理は、例えば信号処理サブタスクを起動するためのフラグを設けておき、ステップS12ではその起動フラグをセットする。そして、CPU22のアイドル中に起動フラグがセットされたか否かをチェックするようにして、起動フラグのセットを認識すると信号処理サブタスク実行を開始する。
【0041】
図9(a),(b)に示すように、センサ10A,10Bの駆動矩形波信号周期は異なっており、(A>B)となっている。そして、それぞれの駆動矩形波信号のエッジを、センサAエッジ検出サブタスクと、センサBエッジ検出サブタスクとで検出する。また、各信号周期に対応して、各タイマカウンタ12A,12Bに設定するカウントデータは、例えば「99」,「89」と異なる値にする。
【0042】
図9(c)〜(f)に示す信号処理タスクは、優先順位が高い方から順次実行されて行く。図9(d)に示すように、センサBエッジ検出サブタスクにおいて、センサ10Bの駆動矩形波信号のエッジを検出すると、タイマカウンタ12Bにカウントデータ「89」をセットする(図9(i)参照)。それから、割込み禁止を解除してセンサB信号処理サブタスクを起動するが、センサA信号処理サブタスクが実行待ちになっているため、先にセンサA信号処理サブタスクを実行する。そして、前記タスクの実行が終了すると、センサB信号処理サブタスクを実行するように切り替える。
【0043】
図9(g)に示すように、優先順位が最低である通信タスクの実行中に、タイマカウンタ12Aのカウントデータが「0」に達すると、通信処理タスクの実行を停止してセンサAエッジ検出サブタスクを実行するように切り替える。また、その後にタイマカウンタ12Bのカウントデータが「0」に達しても、切り替えの重複を避けるため、タイマカウンタ12Aのカウントデータが「0」である間は、タスク切替え信号並びに切替え識別信号を有効化しないようにする。
【0044】
そして、センサAエッジ検出サブタスクにおいて、センサ10A側のエッジが検出され、タイマカウンタ12Aにカウントデータが「99」がセットされ、当該サブタスクが終了した時点で(図9(h)参照)センサBエッジ検出サブタスクが起動され、実行待ち状態となる。それから、割込み禁止を解除してセンサAエッジ検出サブタスクを終了し、センサA信号処理サブタスクを起動するが、センサBエッジ検出サブタスクが実行待ちになっているため、先にセンサBエッジ検出サブタスクを実行する。そして、前記タスクの実行が終了すると、センサA信号処理サブタスクを実行するように切り替える。
【0045】
また、通信タスクの実行が完了してCPU22がアイドル状態にある間に、先にタイマカウンタ12Bのカウントデータが「0」に達すればセンサBエッジ検出サブタスクが起動されるが、当該タスクの実行中にタイマカウンタ12Aのカウントデータが「0」に達すると、その実行を停止してセンサAエッジ検出サブタスクを実行するように切り替える。また、タイマカウンタ12A,12Bのカウントデータがほぼ同時に「0」に達した場合も、センサA側の信号処理タスクが優先される。
【0046】
以上のように第2実施例によれば、2つのセンサ10A,10Bがある場合、信号処理タスクを、センサ10A,10Bにそれぞれ対応したエッジ検出サブタスクと信号処理サブタスクとで構成する。そして、エッジ検出サブタスクは、信号処理サブタスクよりも優先度を高く設定し、センサ10A,10Bにそれぞれ対応したエッジ検出サブタスクの間にも優先順位を付与し、タスク切替えタイマ23は、センサ10A,10Bに対応した複数のタイマカウンタ12A,12Bを備え、それぞれ計時を終了すると、タスク切替え信号と共に、何れの信号処理タスクを実行するように切り替えるのかを示す識別信号をCPU22に出力する。従って、各駆動矩形波のエッジ検出を確実に行ない、それぞれのエッジ検出タイミングに同期した処理を行なうことができる。
【0047】
(第3実施例)
図10は本発明の第3実施例を示すものであり、第1実施例と異なる部分について説明する。第3実施例のマイクロコンピュータ31(周期信号処理装置)は、第1実施例のセンサ10に替えて、アクチュエータ32(信号源)より出力される位置信号を処理するように構成されている。アクチュエータ32は、例えばモータ等であり、上記位置信号として出力されるのはモータ電圧やモータ電流などである。
【0048】
CPU33は、通信回路7を介して、図示しないホストマイコンよりアクチュエータ32の制御指令(例えば目標回転速度など)を受信すると、その制御指令に応じてI/Oポート6を介してアクチュエータ32を駆動制御する。すると、アクチュエータ32では、駆動状態に応じて電圧や電流が発生するが、マイコン31は、そのモータ電圧や電流をロータの位置信号として受け取り、A/D変換器5によりA/D変換する。そして、例えばモータの誘起電圧であれば、信号処理タスクにおいて、そのゼロクロス点の間隔を検出して同期処理を行う。
【0049】
この場合、CPU33が、ゼロクロス点の間隔をカウンタにより計測すれば、例えば電気角60°に相当するカウントデータが得られる。すると、そのデータに基づいて詳細なロータ位置(アクチュエータの変位位置)を得ることができ、例えばモータを正弦波駆動することが可能となる。そして、同期処理を行った後は、第1実施例と同様に、タスク切替えタイマ8にタイマ値をセットして割込み禁止を解除する。
以上のように第3実施例によれば、信号源がアクチュエータ32である場合にも、アクチュエータ32が出力する位置信号との同期をとりつつ、その位置信号を処理することができる。
【0050】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、以下のような変形または拡張が可能である。
タイマに設定するカウントデータの値は一例であり、適宜変更して良い。
割込み制御回路は必要に応じて設ければ良く、割込み制御をCPUの内部で行っても良い。
信号処理タスクにおいてエッジ検出を行った時点で通信タスクが実行待ち状態にある場合でも、先に信号処理タスクにおける残りの処理を完了した後に、通信タスクを実行しても良い。
【0051】
信号処理タスク以外のタスクは、通信タスクに限ることはない。
フィルタリング処理は、ローパスフィルタに対応するものに限らず、ハイパスフィルタやバンドパスフィルタなどに対応する処理を行っても良い。従って、フィルタリング処理して得るセンサ信号は、所定の周波数を含むものであっても良い。
タスク切替えタイマは、アップカウント動作を行うように構成しても良い。
矩形波信号のエッジに同期して、同期検波以外の同期処理を行っても良い。
ステップS10における補正処理は、必要に応じて行えば良い。
命令実行停止信号の出力も必要に応じて行えば良く、CPUの内部においてタスク切替え時の命令実行状態を制御しても良い。
第2実施例において、センサの数を3つ以上としても良い。
【0052】
センサはヨーレートセンサに限らず、例えば加速度センサなどでも良い。また、位相信号は矩形波信号に限ることはなく、更に、必ずしも発振動作した状態で検出を行うセンサに限らない。
また、第2実施例で複数のセンサの信号を取り扱う場合、それらが例えばヨーレートセンサと加速度センサといったように、異なる物理量を検出するセンサであっても良い。この場合でも、それぞれのセンサ信号に同期した処理を行うことができる。
センサ信号処理装置は、車両に搭載されるECUを構成するものに限ることはない。
第3実施例において、アクチュエータはリニアモータ等でも良い。
【図面の簡単な説明】
【0053】
【図1】本発明の第1実施例であり、センサ信号処理装置の構成を示す機能ブロック図
【図2】タスク切替えタイマの構成を示す図
【図3】タスク切替えタイマの動作例を示すタイミングチャート
【図4】信号処理タスクの内容を示すフローチャート
【図5】図4のフローチャートに対応する処理の一例を示すタイミングチャート
【図6】本発明の第2実施例を示す図1相当図
【図7】図2相当図
【図8】図3相当図
【図9】図4相当図
【図10】本発明の第3実施例を示す図1相当図
【図11】従来技術を説明するタイミングチャート
【符号の説明】
【0054】
図面中、1はマイクロコンピュータ(周期信号処理装置)、2はCPU、8はタスク切替えタイマ、10はセンサ、21はマイクロコンピュータ(周期信号処理装置)、22はCPU、23はタスク切替えタイマ、31はマイクロコンピュータ(周期信号処理装置)、32はアクチュエータ(信号源)、33はCPUを示す。
【特許請求の範囲】
【請求項1】
物理量の検出状態又は自身の駆動状態に応じて周期的な信号(周期信号)を出力する信号源より、前記周期信号が与えられて当該信号を処理する周期信号処理装置において、
複数のタスクを並行して実行するCPUと、
前記CPUに対し、当該CPUにより実行される複数のタスクの実行状態を切替えさせる信号を出力するタスク切替えタイマとを備え、
前記複数のタスクの1つは、前記周期信号を処理するための信号処理タスクであり、
前記CPUは、前記信号処理タスクにおいて、前記周期信号との同期をとる同期処理を行うと前記タスク切替えタイマにタイマ値をセットし、その他のタスクの実行要求として自身に与えられる割込みの禁止状態を解除してから前記周期信号の処理を開始し、
前記タスク切替えタイマは、前記タイマ値に相当する時間の計時を終了する直前に前記CPUに対する割込みを禁止するように設定し、前記計時を終了すると、前記CPUに前記信号処理タスクを実行させるための切替え信号を出力することを特徴とする周期信号処理装置。
【請求項2】
前記信号源が、検出した物理量に応じて周期的なセンサ信号を出力すると共に、前記センサ信号の位相を示す位相信号を出力するセンサである場合、
前記CPUは、前記信号処理タスクにおいて、前記センサ信号のフィルタリング処理を行うと共に、前記センサ信号をサンプリングするタイミングを一定に維持するため、前記位相信号を利用して前記同期処理を行うことを特徴とする請求項1記載の周期信号処理装置。
【請求項3】
前記センサが、前記位相信号として自身の発振動作に伴う駆動矩形波信号を出力する場合、
前記CPUは、前記信号処理タスクにおいて、前記駆動矩形波信号のエッジを検出して前記同期処理を行うことを特徴とする請求項2記載の周期信号処理装置。
【請求項4】
前記CPUは、前記信号処理タスクにおいて、前記駆動矩形波信号のエッジ検出タイミングに同期して前記センサ信号をサンプリングすることで同期検波を行い、その検波結果をフィルタリング処理することを特徴とする請求項3記載の周期信号処理装置。
【請求項5】
前記CPUは、前記フィルタリング処理により得られたセンサ信号について、前記センサが有する特性に応じた補正処理を行うことを特徴とする請求項2乃至4の何れかに記載の周期信号処理装置。
【請求項6】
前記CPUは、前記信号処理タスクにおいて、前記同期処理を完了した時点でその他のタスクが実行待ちとなっている場合は前記他のタスクを実行するように切り替え、
前記他のタスクの処理が完了すると、再び前記信号処理タスクを実行するように切り替えることを特徴とする請求項1乃至5の何れかに記載の周期信号処理装置。
【請求項7】
前記タスク切替えタイマは、前記タイマ値に相当する時間の計時を終了する直前に、前記CPUに対して命令実行を停止させるための信号も出力することを特徴とする請求項1乃至6の何れかに記載の周期信号処理装置。
【請求項8】
前記信号源が複数ある場合、
前記信号処理タスクは、前記複数の信号源にそれぞれ対応した同期処理サブタスクと信号処理サブタスクとからなり、
前記同期処理サブタスクは、前記信号処理サブタスクよりも優先度が高く設定されていると共に、前記複数の信号源にそれぞれ対応した同期処理サブタスクの間においても優先順位が付与されており、
前記タスク切替えタイマは、前記複数の信号源に対応した複数のカウンタを備え、前記複数のカウンタがそれぞれ計時を終了すると、前記切替え信号と共に、何れの信号処理タスクを実行するように切り替えるのかを示す識別信号を出力することを特徴とする請求項1乃至7の何れかに記載の周期信号処理装置。
【請求項1】
物理量の検出状態又は自身の駆動状態に応じて周期的な信号(周期信号)を出力する信号源より、前記周期信号が与えられて当該信号を処理する周期信号処理装置において、
複数のタスクを並行して実行するCPUと、
前記CPUに対し、当該CPUにより実行される複数のタスクの実行状態を切替えさせる信号を出力するタスク切替えタイマとを備え、
前記複数のタスクの1つは、前記周期信号を処理するための信号処理タスクであり、
前記CPUは、前記信号処理タスクにおいて、前記周期信号との同期をとる同期処理を行うと前記タスク切替えタイマにタイマ値をセットし、その他のタスクの実行要求として自身に与えられる割込みの禁止状態を解除してから前記周期信号の処理を開始し、
前記タスク切替えタイマは、前記タイマ値に相当する時間の計時を終了する直前に前記CPUに対する割込みを禁止するように設定し、前記計時を終了すると、前記CPUに前記信号処理タスクを実行させるための切替え信号を出力することを特徴とする周期信号処理装置。
【請求項2】
前記信号源が、検出した物理量に応じて周期的なセンサ信号を出力すると共に、前記センサ信号の位相を示す位相信号を出力するセンサである場合、
前記CPUは、前記信号処理タスクにおいて、前記センサ信号のフィルタリング処理を行うと共に、前記センサ信号をサンプリングするタイミングを一定に維持するため、前記位相信号を利用して前記同期処理を行うことを特徴とする請求項1記載の周期信号処理装置。
【請求項3】
前記センサが、前記位相信号として自身の発振動作に伴う駆動矩形波信号を出力する場合、
前記CPUは、前記信号処理タスクにおいて、前記駆動矩形波信号のエッジを検出して前記同期処理を行うことを特徴とする請求項2記載の周期信号処理装置。
【請求項4】
前記CPUは、前記信号処理タスクにおいて、前記駆動矩形波信号のエッジ検出タイミングに同期して前記センサ信号をサンプリングすることで同期検波を行い、その検波結果をフィルタリング処理することを特徴とする請求項3記載の周期信号処理装置。
【請求項5】
前記CPUは、前記フィルタリング処理により得られたセンサ信号について、前記センサが有する特性に応じた補正処理を行うことを特徴とする請求項2乃至4の何れかに記載の周期信号処理装置。
【請求項6】
前記CPUは、前記信号処理タスクにおいて、前記同期処理を完了した時点でその他のタスクが実行待ちとなっている場合は前記他のタスクを実行するように切り替え、
前記他のタスクの処理が完了すると、再び前記信号処理タスクを実行するように切り替えることを特徴とする請求項1乃至5の何れかに記載の周期信号処理装置。
【請求項7】
前記タスク切替えタイマは、前記タイマ値に相当する時間の計時を終了する直前に、前記CPUに対して命令実行を停止させるための信号も出力することを特徴とする請求項1乃至6の何れかに記載の周期信号処理装置。
【請求項8】
前記信号源が複数ある場合、
前記信号処理タスクは、前記複数の信号源にそれぞれ対応した同期処理サブタスクと信号処理サブタスクとからなり、
前記同期処理サブタスクは、前記信号処理サブタスクよりも優先度が高く設定されていると共に、前記複数の信号源にそれぞれ対応した同期処理サブタスクの間においても優先順位が付与されており、
前記タスク切替えタイマは、前記複数の信号源に対応した複数のカウンタを備え、前記複数のカウンタがそれぞれ計時を終了すると、前記切替え信号と共に、何れの信号処理タスクを実行するように切り替えるのかを示す識別信号を出力することを特徴とする請求項1乃至7の何れかに記載の周期信号処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−210553(P2009−210553A)
【公開日】平成21年9月17日(2009.9.17)
【国際特許分類】
【出願番号】特願2008−227014(P2008−227014)
【出願日】平成20年9月4日(2008.9.4)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】
【公開日】平成21年9月17日(2009.9.17)
【国際特許分類】
【出願日】平成20年9月4日(2008.9.4)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】
[ Back to top ]