(58)【調査した分野】(Int.Cl.,DB名)
前記即時出力固定要求の指令固定レベルがオンレベルであるときには、前記エッジ極性切替部により極性を変更し(S105a)つつ、前記次回デューティ記憶部に次回の指令デューティ値を0に設定し(S107)、その後、前記強制デューティマッチ設定部により前記強制デューティマッチ指令記憶部にフラグ設定する(S108)請求項2記載の電子制御装置。
前記即時出力固定要求の指令固定レベルがオフレベルであるときには、前記エッジ極性切替部による極性を保持し(S105b)つつ、前記次回デューティ記憶部に次回の指令デューティ値を0に設定し(S102)、その後、前記強制デューティマッチ設定部により前記強制デューティマッチ指令記憶部にフラグ設定する(S108)請求項3記載の電子制御装置。
前記即時出力固定要求を受け付けたときに当該即時出力固定要求の指令固定レベルに応じて前記エッジ極性切替部によりエッジ極性を変更したときには、前記即時出力固定要求を解除し通常出力に復帰するための通常出力復帰要求を受け付けたときにはエッジ極性を復元するエッジ極性復元部(8,S203)をさらに備える請求項1から6の何れか一項に記載の電子制御装置。
【発明を実施するための形態】
【0012】
以下、本発明の電子制御装置の幾つかの実施形態について図面を参照しながら説明する。第2実施形態以降においては、第1実施形態と同一又は類似部分に同一又は類似符号を付して必要に応じて説明を省略し、第2実施形態以降では第1実施形態と異なる部分を中心に説明する。
【0013】
(第1実施形態)
図1から
図7は第1実施形態の説明図を示している。
図1は車両に搭載された多数の電子制御装置(ECU)のうちの一部の電子制御装置1と、センサ2,3及びソレノイド4との接続関係を示している。
【0014】
電子制御装置1は、例えばエンジンECUとして機能するもので内部にマイクロコンピュータ(以下、マイコンと略す)5、入力回路6、及び出力回路7を備える。この電子制御装置1には車速センサ2及び回転数センサ3が接続されている。車速センサ2は、車両の速度に応じた信号を検出しこの検出信号を電子制御装置1に出力する。回転数センサ3は、クランクセンサ(図示せず)の回転数に応じた信号を検出しこの検出信号を電子制御装置1に出力する。
【0015】
マイコン5は、制御指令主体となるCPU8、及び、このCPU8による指令を受けて実質的に制御するPWM制御部9を備え、さらにRAM、ROM、EEPROM等による記憶部(図示せず)を備える。この記憶部は非遷移的実態的記録媒体として用いられる。このマイコン5は、車速センサ2及び回転数センサ3から入力回路6を通じて検出信号をCPU8に入力し、CPU8は、記憶部に記憶されたプログラムに応じてソレノイド4をPWM駆動制御するために必要な値を演算処理する。CPU8は記憶部に記憶されたプログラムを実行することに応じて、次回デューティ値設定部、強制デューティマッチ設定部としての機能を実現する。CPU8は、この値をPWM制御部9に出力し、PWM制御部9は出力回路7を通じてPWM信号を出力しソレノイド4をPWM駆動制御する。
【0016】
図2はPWM制御部9の内部構成を概略的に示すブロック図である。PWM制御部9は、指令周期記憶部及び現在周期記憶部としての現在周期レジスタ10、次回周期記憶部としての次回周期レジスタ11、現在デューティ記憶部としての現在デューティレジスタ12、次回デューティ記憶部としての次回デューティレジスタ13、タイマカウンタ(カウンタ相当)14、第1比較器15、第2比較器16、強制デューティマッチ指令記憶部としての強制デューティマッチ生成レジスタ17、エッジ極性切替部18、及び、出力部としてのPWM出力回路19、によるブロックを備える。
【0017】
現在周期レジスタ10及び現在デューティレジスタ12は
CPU8から直接的に読取可能であるものの書換不能なレジスタであり、次回周期レジスタ11及び次回デューティレジスタ13は書換可能なレジスタであ
り、次回周期レジスタ11の記憶値を現在周期レジスタ10に対し転送命令により転送可能になっており、次回デューティレジスタ13の記憶値を現在デューティレジスタ12に対し転送命令により転送可能になっている。
【0018】
このため、現在周期レジスタ10、現在デューティレジスタ12の記憶値を更新、書換えるためには、一旦、次回周期レジスタ11、次回デューティレジスタ13に値を書換えた後、これらのレジスタ11,13の値をそれぞれ現在周期レジスタ10、現在デューティレジスタ12にリロードする。
【0019】
タイマカウンタ14は、CPU8からクロック信号を入力するとカウントアップする。タイマカウンタ14は、入力されるクロック信号の立上り又は立下りエッジ発生回数をカウントする。第1比較器15は、タイマカウンタ14のカウンタ値と現在デューティレジスタ12の記憶値とを比較し、タイマカウンタ14のカウンタ値が現在デューティレジスタ12の記憶値を下回っているときには、通常時、第1レベル(例えば「1」)を比較結果としてエッジ極性切替部18に出力し、タイマカウンタ14のカウンタ値が現在デューティレジスタ12の記憶値以上になると、通常時、第2レベル(例えば「0」)を比較結果としてエッジ極性切替部18に出力する。
【0020】
この第1比較器15は、強制デューティマッチ生成レジスタ17を強制デューティ指令記憶部として接続している。この強制デューティマッチ生成レジスタ17は、CPU8によりデューティマッチ指令用のフラグが設定されることに応じて、タイマカウンタ14のカウンタ値が現在デューティレジスタ12の記憶値よりも下回っていてもタイマカウンタ14のカウント値を現在デューティレジスタ12の指令デューティに強制的に見做しマッチさせる機能を備えており、第1比較器15の比較結果を第2レベル(例えば「0」)に変更してエッジ極性切替部18に出力する強制指令用のレジスタである。
【0021】
第2比較器16は、タイマカウンタ14のカウンタ値と現在周期レジスタ10の記憶値とを比較し、例えばタイマカウンタ14のカウンタ値が現在周期レジスタ10の記憶値を下回っているときには、通常時、第2レベル(例えば「0」)を比較結果としてエッジ極性切替部18に出力し、タイマカウンタ14のカウンタ値が現在周期レジスタ10の記憶値以上になると、通常時、第1レベル(例えば「1」)を比較結果としてエッジ極性切替部18に出力する。エッジ極性切替部18は、CPU8から入力される極性切替命令によりライズ/フォールのエッジ極性を切替可能になっている。このエッジ極性切替部18は第1及び第2比較器15及び16の出力及び極性切替命令に応じて出力レベル「ON」「OFF」の何れかを設定しPWM出力回路19に出力する。
【0022】
このため、PWM出力回路19が設定された出力レベル(例えばオンレベル「ON」、オフレベル「OFF」)を出力すると、出力回路7は、この出力レベル「ON」「OFF」に対応した電圧をソレノイド4に印加することで当該ソレノイド4をPWM駆動制御できる。
前述した構成の動作の具体例について
図3以降の図面を参照しながら説明する。
【0023】
<通常動作について>
通常時、CPU8が、次回周期レジスタ11及び次回デューティレジスタ13にそれぞれ値を設定し、現在周期レジスタ10、及び現在デューティレジスタ12に値が転送されると、PWM制御部9は、これらのレジスタ10〜13に記憶された値に基づいて動作しPWM信号を出力する。
【0024】
例えば
図3に示すように、CPU8が、次回周期レジスタ11にT、次回デューティレジスタ13にT/2を指令周期および指令デューティとして設定し、さらに、現在周期レジスタ10にT、現在デューティレジスタ12にT/2が転送された場合を例に挙げて説明する。前述したように、エッジ極性切替部18によるエッジ極性はライズ/フォールに切替設定可能になっているが、例では初期状態をライズエッジとする。
【0025】
タイマカウンタ14は、CPU8からクロック信号が与えられると初期値(例えば0)からカウントアップし、現在周期レジスタ10の記憶値Tに達するまでカウントする(
図3の期間Ta,Tb等参照)。
【0026】
タイマカウンタ14がカウント開始すると、第2比較器16は、現在周期レジスタ10の記憶値Tとタイマカウンタ14のカウンタ値とを比較し、タイマカウンタ14のカウンタ値が現在周期レジスタ10の記憶値Tを下回るときに第2レベル「0」を出力する。第1比較器15は、現在デューティレジスタ12の記憶値T/2とタイマカウンタ14のカウンタ値とを比較し、タイマカウンタ14のカウンタ値が現在デューティレジスタ12の記憶値T/2を下回るときに第1レベル「1」を出力する。このため、エッジ極性切替部18は、第1比較器15により出力される第1レベル「1」をライズエッジ出力することでオンレベル「ON」を出力し、これに応じて、PWM出力回路19はオンレベル「ON」を出力する(
図3の期間Ta参照)。
【0027】
タイマカウンタ14のカウント値がT/2に達すると、この値T/2が現在デューティレジスタ12の記憶値T/2に一致するため、第1比較器15は第2レベル「0」を出力する。なお、タイマカウンタ14のカウント値が、デューティに対応した値に一致することを、以下では必要に応じて「デューティマッチ」と称する。
【0028】
エッジ極性切替部18は、第1比較器15により出力される第2レベル「0」をライズエッジ出力することでオフレベル「OFF」を出力し、これに応じて、PWM出力回路19はオフレベル「OFF」を出力する。これにより、タイマカウンタ14のカウンタ値が、現在デューティレジスタ12の指令デューティに応じたデューティ値T/2に達した時にオフレベル「OFF」を出力する(
図3の期間Tb参照)。
【0029】
さらに、タイマカウンタ14のカウント値がTに達すると、この値Tが現在周期レジスタ10の記憶値Tに一致するため、第2比較器16が第1レベル「1」を出力する。なお、タイマカウンタ14のカウント値が、周期に対応した値に一致することを、以下では必要に応じて「周期マッチ」と称する。
【0030】
タイマカウンタ14は、この第2比較器16の出力レベル「1」を入力し、タイマカウンタ14を初期値(例えば0)にクリアする。CPU8は、このクロック信号のカウント値Tを計数して周期マッチすると、一周期経過したと判断し、次回周期レジスタ11の記憶値を現在周期レジスタ10にリロードさせると共に、次回デューティレジスタ13の記憶値を現在デューティレジスタ12にリロードさせる。
【0031】
したがって、通常時には、タイマカウンタ14が初期値0からカウントをスタートすると、PWM出力回路19は、初期値からカウント開始した時に第1レベル「1」としタイマカウンタ14のカウント値が現在デューティレジスタ12の指令デューティに応じたデューティ値に達した時に第2レベル「0」とし、タイマカウンタ14のカウント値が現在周期レジスタ10の指令周期Tに応じた周期カウント値に達した時に再度第1レベル「1」を出力する。
【0032】
したがって、
図3の期間Ta、Tbの中で、次回デューティレジスタ13が値T/2に設定されているときには、期間Tcの始期に、次回デューティレジスタ13の値T/2が現在デューティレジスタ12に転送されることになり、PWM出力回路19は、期間Tc,Tdにおいても周期T、デューティ値T/2(デューティ比50%)のPWM信号を出力する。
【0033】
CPU8は、期間Tcまたは期間Tdにおいて次回デューティレジスタ13に値T/4を設定すると、その次のPWM信号の出力期間Te,Tfにおいて、この次回デューティレジスタ13の値T/4が現在デューティレジスタ12に転送されることになる。このため、PWM出力回路19は、期間Te,Tfにおいて周期T、デューティ値T/4(デューティ比25%)のPWM信号を出力する。
【0034】
なお、ここでは詳細説明を省略するが、CPU8が次回周期レジスタ11に値Tとは異なる値(例えば2・Tとする)を設定することで、次周期のPWM信号の出力開始タイミングにおいて、この次回周期レジスタ11の値2・Tが現在周期レジスタ10にリロードされる。このとき、PWM出力回路19は、周期2・TのPWM信号を出力することになる。
【0035】
<強制デューティマッチの基本的機能>
CPU8が強制デューティマッチ生成レジスタ17にフラグ設定すると、第1比較器15は、この強制デューティマッチ生成レジスタ17のセットフラグに応じてタイマカウンタ14と現在デューティレジスタ12のコンペアマッチを強制的に発生させることができる。
【0036】
したがって
図4に示すように、PWM出力回路19がオンレベル「ON」を出力しているときに、CPU8が強制デューティマッチ生成レジスタ17にフラグセットすると、第1比較器15の比較結果に拘わらず、第1比較器15は強制的に第2レベル「0」を出力するようになり、エッジ極性切替部18は、第1比較器15の出力「0」をライズエッジ極性として出力することでオフレベル「OFF」を出力し、これに応じて、PWM出力回路19はオフレベル「OFF」を次回のPWM信号を発生開始させるまで出力し続ける。これにより、特に次回デューティレジスタ13に次回の値を設定することなく出力レベルをオフレベル「OFF」に固定でき、特に固定オフレベル「OFF」を出力するときに即時性が要求されるときには都合がよい。なお、この強制デューティマッチ生成レジスタ17のフラグは、強制デューティマッチ設定処理を終了することでハードウェア的に即時クリアされる(
図4のFlagSET参照)。
【0037】
<即時固定要求に応じた出力レベル固定機能>
前述のとおり、CPU8が、強制デューティマッチ生成レジスタ17にフラグ設定すると、タイマカウンタ14と現在デューティレジスタ12とのコンペアマッチを強制的に発生させることができるが、PWM出力回路19がオフレベル「OFF」を出力しているときにオンレベル「ON」の出力に強制的に切替える場合には、強制デューティマッチ生成レジスタ17にフラグ設定しても、第1比較器15は第2レベル「0」を強制的に出力し続けることになりPWM出力回路19はオフレベル「OFF」を出力し続けることになってしまう。
【0038】
このため本実施形態では利便性を高めるため、アプリケーションによる上位層からの即時固定要求の指令固定レベルのオンレベル「ON」,オフレベル「OFF」の何れにも対応するため、CPU8は、
図5のフローチャートに示す処理を実行する。
【0039】
まず
図5に示すように、CPU8は、即時固定要求の指令固定レベルがオンレベル「ON」であるか、オフレベル「OFF」であるかを判定する(S100)。このときCPU8は、S100において指令固定レベルがオンレベル「ON」であれば、一旦、デューティ比を100%に設定し(S101)てから、S103に移行する。すなわち、現在周期レジスタ10の記憶値が値Tに設定されていれば、CPU8は、この周期の値Tのデューティ比100%に対応するデューティ値Tを次回デューティレジスタ13にセットしてからS103に移行する。逆にCPU8は、S100において指令固定レベルがオフレベル「OFF」であれば、デューティ比を0%に設定し(S102)てから、S103に移行する。すなわちCPU8は、S102において次回デューティレジスタ13に値0をセットしてS103に移行する。
【0040】
<S103の処理時点にて余裕時間を確保できない場合>
ここでCPU8は、S103の処理を実行している時点で、周期マッチまでの時間が予め定められた余裕時間以上あるか否かを判定し(S103)、余裕時間以上なければ(NO)、この処理ルーチンを抜け、次回周期レジスタ11及び次回デューティレジスタ13の転送処理まで待機する。ここで、この「余裕時間以上ある」条件とは、「次回の周期マッチの予定時刻から現在時刻を減算した時間」と「設定に必要な時間」とを比較して前者が後者の時間以上ある条件を示している。
【0041】
一旦処理ルーチンを抜けて転送処理に移行すると、次周期のPWM信号の出力開始タイミングにおいて、次回周期レジスタ11及び次回デューティレジスタ13の値が、それぞれ現在周期レジスタ10及び現在デューティレジスタ12にリロードされる。
【0042】
これによりPWM出力回路19は、デューティ比100%又は0%のPWM信号、すなわちオンレベル「ON」又はオフレベル「OFF」を固定的に出力する。CPU8は、周期マッチまでの時間<余裕時間となるときに、少なくとも次回のPWM信号の出力開始タイミングにて即時固定要求に応えることができ、この固定レベル「ON」又は「OFF」を出力できるようになる。
【0043】
<S103の処理時点にて余裕時間を確保できる場合>
他方CPU8は、S103の処理を実行している時に、周期マッチまでの時間が余裕時間以上ある場合には(S103:YES)、設定されているデューティ比に応じた処理を実行する(S105a,S106a,S107:S105b,S106b)。
【0044】
<<即時固定要求の指令固定レベルがオンレベル「ON」の場合:
図6>>
図5において、指令固定レベルがオンレベル「ON」であり、S101においてデューティ比が100%に設定されたときには、CPU8はS104にてYESと判定し、エッジ極性切替部18に極性変更指令し(S105a)、エッジ極性変更フラグをオンし(S106a)、次回のデューティ比を0%に対応したタイマカウンタ14の値、すなわち値0に設定し(S107)、強制デューティマッチ生成レジスタ17にフラグ設定する(S108)。
【0045】
CPU8はS105aにおいてエッジ極性変更指令すると、
図6に示すように、エッジ極性切替部18はライズエッジをフォールエッジに切替変更する。そしてCPU8は、S106aにおいてエッジ極性変更フラグをオンし、S107においてデューティ比を0%に設定するため次回デューティレジスタ13に値0をセットする。そしてCPU8は、S108において強制デューティマッチ生成レジスタ17にフラグ設定すると、第1比較器15の比較結果に拘わらず、第1比較器15は強制的に第2レベル「0」を出力する。エッジ極性切替部18は、第1比較器15の出力レベル「0」をフォールエッジ出力することでオンレベル「ON」を出力し、これに応じてPWM出力回路19はオンレベル「ON」を出力する(
図6のタイミングt1参照)。なお、この強制デューティマッチ生成レジスタ17のフラグはハードウェア的に即時クリアされる。
【0046】
この後、次の周期マッチのときには、
図6のタイミングt2に示すように、次回デューティレジスタ13の記憶値0が現在デューティレジスタ12にリロードされデューティ比が0%とされ、このタイミングt2以降においても、即時固定要求に応じて出力されているオンレベル「ON」が継続して出力され続ける。
【0047】
これにより、即時固定要求の指令固定レベルのオンレベル「ON」に応じて、PWM出力回路19はオンレベル「ON」を出力し続ける。このように、オンレベル「ON」を出力し続けるとき、現在周期レジスタ10および次回周期レジスタ11は変更されないため、要求受付時の指令周期Tを保ったまま、周期マッチを繰り返すことになる。
【0048】
<<即時固定要求の指令固定レベルがオフレベル「OFF」の場合:
図7>>
図5において、指令固定レベルがオフレベル「OFF」であるときに、S102においてデューティ比が0%に設定されているときには、この指令固定レベル「OFF」が実際にPWM出力回路19が出力しているオフレベル「OFF」と等しくなる。このためエッジ極性切替部18によるエッジ切替処理は不要となる。
【0049】
したがってCPU8は、エッジ極性切替部18による極性を保持し(S105b:破線記載)、エッジ極性変更フラグをオフのままとする(S106b:破線記載)。この破線記載部分はプログラムコード上で示されることはなく実質的に処理時間を要することはない。そしてCPU8は強制デューティマッチ生成レジスタ17にフラグ設定する(S108)。
【0050】
CPU8は、S105bにてエッジ極性を保持し、S106bにて極性変更フラグをオフのまま保持し、S108において強制デューティマッチ生成レジスタ17にフラグをセットする。すると、第1比較器15の比較結果に拘わらず、第1比較器15は強制的に第2レベル「0」を出力するようになり、エッジ極性切替部は、第1比較器15の出力「0」をライズエッジ出力することでオフレベル「OFF」を出力し続ける。これに応じてPWM出力回路19はオフレベル「OFF」を出力する(
図7のタイミングt3参照)。
【0051】
この後、次の周期マッチのときには、次回デューティレジスタ13の値0が現在デューティレジスタ12にリロードされ、その後においてもオフレベル「OFF」が出力され続けることになる(
図7のタイミングt4以降参照)。これにより即時オフ固定要求に応じてPWM出力回路19がオフレベル「OFF」を出力し続けることになる。このようにオフレベル「OFF」を出力し続けるときもまた、現在周期レジスタ10および次回周期レジスタ11は変更されないため、要求受付時の指令周期Tを保ったまま周期マッチを繰り返すことになる。
【0052】
このように、CPU8が更新設定すべきレジスタが、次回デューティレジスタ13、エッジ極性切替部18の設定レジスタ、強制デューティマッチ生成レジスタ17だけであり、レジスタのアクセス回数を減らすことができると共に制御を簡素化でき、現在周期レジスタ10および現在デューティレジスタ12に書換不能なマイコン5を採用した場合においても、現在周期Tを固定しながら即時出力固定要求に即時対応できるようになる。
【0053】
<本実施形態の概念的なまとめ>
要するに、本実施形態によれば次のような構成、作用効果を備える。現在周期レジスタ10はPWM信号の指令周期(例えばT)を記憶しており、現在デューティレジスタ10は現在のPWM信号の指令デューティ(例えばT/2)を記憶している。次回デューティレジスタ13は、現在デューティレジスタ12に記憶値を転送可能に構成されている。タイマカウンタ14は、現在周期レジスタ10に記憶された指令周期に対応した周期カウント値(例えばT)までカウントする。
【0054】
通常時、PWM出力回路19は、タイマカウンタ14が初期値からカウント開始した時にオンレベル「ON」とし、このタイマカウンタ14のカウント値が指令デューティに応じたデューティ値(例えばT/2)に達した時に再度オフレベル「OFF」とする。さらにタイマカウンタ14のカウント値が現在周期レジスタ10の指令周期Tに応じた周期カウント値Tに達した時に再度オンレベル「ON」を出力する。
【0055】
またエッジ極性切替部18は、即時出力固定要求を受け付けたときに現在周期レジスタ10にPWM信号の指令周期Tを保持したまま当該即時出力固定要求の指令固定レベルに応じて、出力レベルのライズ/フォールのエッジ極性の変更有無を切替える(S105a,S105b)。
【0056】
そしてCPU8は、指令固定レベル「ON」「OFF」に応じた固定デューティ値を次回デューティレジスタ13に設定するが、この固定デューティ値を設定するときにはエッジ極性切替部18によるエッジ極性の変更有無に応じた固定デューティ値「0」を次回デューティレジスタ13に設定している(S102,S107)。
【0057】
例えば、指令固定レベルがオンレベル「ON」であるときには、エッジ極性切替部18によりエッジ極性をフォールエッジに変更しつつ(S105a)、次回デューティレジスタ13に固定デューティ値「0」を設定している(S107)。逆に、例えば指令固定レベルがオフレベル「OFF」であるときには、エッジ極性切替部18によりエッジ極性をライズエッジに保持しつつ(S105b)、次回デューティレジスタ13に固定デューティ値「0」を設定している(S102)。このため、指令固定レベル「ON」「OFF」を受け付けたときにエッジ極性の変更有無に応じた指令デューティ値「0」を次回デューティレジスタ13に設定することで、PWM出力回路19によるPWM信号の出力レベルをそれぞれオンレベル「ON」又はオフレベル「OFF」に固定できる。
【0058】
これにより、エッジ極性切替部18によりエッジ極性を必要に応じて変更すると共に、次回デューティレジスタ13に固定デューティ値「0」を設定することでPWM信号の出力レベルを即座にオンレベル「ON」又はオフレベル「OFF」に固定できる。これにより、レジスタへのアクセス回数を少なくすることができ処理速度を向上できる。
【0059】
例えば指令固定レベルがオンレベル「ON」であるときには、CPU8は、エッジ極性切替部18によりエッジ極性を変更した後に、強制デューティマッチ生成レジスタ17にフラグ設定する。このため、指令固定レベル「ON」とデューティマッチの発生後の出力状態「OFF」が異なる場合であっても、即時に出力レベルをオンレベル「ON」に固定できる。
【0060】
例えば指令固定レベルがオフレベル「OFF」であるときには、CPU8は、エッジ極性切替部18によりエッジ極性を保持している条件下において、強制デューティマッチ生成レジスタ17にフラグ設定する。このため、デューティ比の設定と強制デューティマッチの設定処理を行うだけで、即時に出力レベルをオフレベル「OFF」に固定できる。
【0061】
また、本実施形態によれば、エッジ極性切替部18によりエッジ極性を必要に応じて変更して強制デューティマッチ生成レジスタ17にフラグ設定して強制的にデューティマッチさせ、次回デューティレジスタ13に設定されたデューティ値「0」を現在デューティレジスタ12に転送することで、PWM出力回路19が固定的な出力レベル「ON」又は「OFF」を即時出力できるようになる。したがって、たとえ現在周期レジスタ10及び現在デューティレジスタ12が読取可能で書換不能であったとしても要求を満たすことができる。
【0062】
(第2実施形態)
図8から
図10は、第2実施形態の追加説明図を示している。第2実施形態では、即時出力固定要求を受け付けたときに当該即時出力固定要求の指令固定レベルに応じてエッジ極性切替部18によりエッジ極性を変更した後、即時出力固定要求を解除し通常出力に復帰するための通常出力復帰要求を受け付けたときには、エッジ極性を復元しているところに特徴を備える。本実施形態ではCPU8がエッジ極性復元部としての機能を備える。
【0063】
第1実施形態に示したように、CPU8が即時出力固定要求を受け付けたときには、エッジ極性切替部18により指令固定レベルに応じてエッジ極性をフォールエッジ/ライズエッジに変更又は保持する。このため、PWM出力回路19の出力レベルが固定された後であっても、さらに設定した周期及び設定デューティ比に応じて通常のPWM信号を出力復帰したいときに復帰できるようにすることが望ましい。そこで本実施形態においては、CPU8は、指令固定レベルに出力を固定した後に通常出力復帰要求を受け付けたとき、
図8に示す処理を実行することで通常の処理に復帰できるようにしている。
【0064】
<即時オフ固定要求「OFF」を受け付けた後に通常出力復帰要求を受け付けた場合>
図9は即時オフ固定要求を受け付けた後に通常出力復帰要求を受け付けたときのタイミングチャートを概略的に示している。この
図9は、タイミングt11以降において周期T1且つデューティ値T1/2(デューティ比50%)のPWM信号をオンレベル「ON」から出力し、タイミングt12において現在デューティレジスタの値T1/2に応じて出力をオフレベル「OFF」に変化させた後に、タイミングt13において即時オフ固定要求を受付け、さらにその後、タイミングt14において周期T2且つデューティ値T2/2(デューティ比50%)のPWM信号を出力復帰要求を受け付けた場合の例を示している。
【0065】
CPU8は、
図9のタイミングt13において上位層のアプリケーションから固定要求レベル「OFF」の即時固定要求を受付けると、
図5のS105aにおいてエッジ極性切替部18によるエッジ極性を保持し、極性変更フラグをオフしたまま、S108において強制デューティマッチ生成レジスタ17にフラグをセットする。これにより、PWM出力回路19の出力を「OFF」に固定できる(
図9のタイミングt13以降)。
【0066】
この後、CPU8が、
図9のタイミングt14にて通常出力復帰要求を受け付けると、CPU8は、
図8のS201においてエッジ極性変更フラグがオンされているか否かを判定する。そして、S201においてエッジ極性変更フラグがオフされていることを確認するとS201でNOと判定し、エッジ極性を変更することなく、S206において次回周期レジスタ11の周期レジスタ値、及び、次回デューティレジスタ13のデューティ値の更新処理を開始する。
【0067】
すなわち、
図9のタイミングt14において、CPU8は、次回周期レジスタ11に値T2を設定し、そのデューティ比50%に対応した値T2/2を次回デューティレジスタ13に設定し、その後の周期T1を経過したタイミングt15において、次回周期レジスタ11の値を現在周期レジスタ10にリロードすると共に、次回デューティレジスタ13の値を現在デューティレジスタ12にリロードする。これにより、現在周期レジスタ10の値T2及び現在デューティレジスタ12の値T2/2を更新でき、このタイミングt15以降、PWM出力回路19は、これらの現在周期レジスタ10の値T2及び現在デューティレジスタ12の値T2/2に応じたPWM信号を出力できる。周期の値T1とT2は互いに同一値でも異なっていても良い。
<即時オン固定要求「ON」を受け付けた後に通常出力復帰要求を受け付けた場合>
【0068】
図10は、即時オン固定要求を受け付けた後に通常出力復帰要求を受け付けたときのタイミングチャートを概略的に示している。この
図10は、タイミングt11以降において周期T1且つデューティ値T1/2(デューティ比50%)のPWM信号をオンレベル「ON」から出力し、タイミングt12において現在デューティレジスタの値T1/2に応じて出力をオフレベル「OFF」に変化させた後に、タイミングt23において即時オン固定要求を受付けて出力をオンレベル「ON」に変更し、さらにその後、タイミングt24において周期T2且つデューティ値T2/2(デューティ比50%)のPWM信号を出力復帰要求を受け付けた場合の例を示している。
【0069】
他方、CPU8は、
図10のタイミングt23において上位層のアプリケーションから固定要求レベル「ON」の即時固定要求を受付けると、
図5のS105aにおいてエッジ極性切替部18にエッジ極性変更指令し、S106aにおいてエッジ極性変更フラグをオンし、S107においてデューティ比が0%に対応した値(すなわち0)を次回デューティレジスタ13に設定し、S108において強制デューティマッチ生成レジスタ17にフラグをセットする。このため、エッジ極性切替部18によるエッジ極性をフォールエッジとしつつオンレベル「ON」を固定出力できる(
図10のタイミングt23参照)。この後、PWM出力回路19はオンレベル「ON」を出力し続ける。
【0070】
その後、CPU8が、
図10のタイミングt24において通常出力復帰要求を受付けると、CPU8は、周期マッチまでの時間が余裕時間以上確保されていることを条件として(
図8のS202でYES)、エッジ極性を復元する(S203)。すなわちCPU8は、エッジ極性切替部18に極性復帰指令することでエッジ極性をライズエッジに復帰変更する。
【0071】
そしてCPU8は、S204においてデューティ比を100%に設定する。このS204の時点では現在周期レジスタ10の値がT1に設定されているため、デューティ比を100%に対応した値、すなわち現在周期レジスタ10の値と同一の値T1を次回デューティレジスタ13に設定する。そしてCPU8はS205においてエッジ極性変更フラグをオフに変更する(
図10のタイミングt24参照)。
【0072】
ステップS204において、デューティ比を一旦100%に設定している理由は、エッジ極性を復元するためにエッジ極性フラグを変更した後にデューティを実際の値に更新するまでの間に、周期マッチを発生する場合を想定しているためである。この場合、例えばエッジ極性の変更後、固定オン要求に応じた「0」を次回デューティレジスタ13に設定したまま、周期マッチを生じるとデューティ0%のPWM信号を一周期分出力してしまうことになる。固定オン要求に応じた出力レベル「ON」と逆の出力レベル「OFF」が1周期分出力されることを防ぐため、一旦デューティ比を100%に設定してから、S205においてエッジ極性変更フラグをオフに設定している。
【0073】
そしてCPU8は、S206において現在周期レジスタ10及び現在デューティレジスタ12を共に更新する。例えば、周期T2、デューティ比50%の値T2/2を設定する場合には、CPU8は、次回周期レジスタ11に値T2を設定すると共にデューティ比50%に対応した設定値T2/2を次回デューティレジスタ13に設定する(
図10のタイミングt24参照)。そしてCPU8は、タイマカウンタ14のカウントに応じて周期マッチを生じるタイミングt25において、次回周期レジスタ11の格納値T2を現在周期レジスタ10にリロードすると共に、次回デューティレジスタ13の格納値T2/2を現在デューティレジスタ12にリロードする。これにより、現在周期レジスタ10の値T2及び現在デューティレジスタの値T2/2を更新でき、このタイミングt25以降、PWM出力回路19は、これらの現在周期レジスタの値T2及び現在デューティレジスタの値T2/2に応じたPWM信号を出力することになる。
<本実施形態に係る概念的なまとめ>
【0074】
要するに、本実施形態によれば、即時出力固定要求を受け付けたときに当該即時出力固定要求の指令固定レベル「ON」に応じてエッジ極性切替部18によりエッジ極性を変更したときには、即時オン出力固定要求を解除し通常出力に復帰するための通常出力復帰要求を受け付けたときにはエッジ極性を復元する(S203)ようにしている。このため、たとえ即時出力固定要求に応じてエッジ極性切替部18によりエッジ極性を変更した場合であっても、通常出力復帰要求を受け付けたときにはエッジ極性を復元するため、PWM信号を通常通り出力できるようになる。
【0075】
(他の実施形態)
本発明は、前述実施形態に限定されるものではなく、例えば、以下に示す変形又は拡張が可能である。前述した複数の実施形態の構成、機能を組み合わせても良い。前述実施形態の一部を、課題を解決できる限りにおいて省略した態様も実施形態と見做すことが可能である。また、特許請求の範囲に記載した文言によって特定される発明の本質を逸脱しない限度において考え得るあらゆる態様も実施形態と見做すことが可能である。
【0076】
本開示は、前述した実施形態に準拠して記述したが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範畴や思想範囲に入るものである。