(57)【要約】  タイマポートを使用することなく多チャネルのＰＷＭ制御を実現することができる電源制御装置及び電源制御方法を提供する。  電源制御装置は、所定のＰＷＭ周期でオン動作及びオフ動作を繰り返す複数の電源部のＰＷＭ制御を行う。電源制御装置は、複数の電源部それぞれをオン動作させるか又はオフ動作させるかをＰＷＭ周期より短い所定周期毎に定めた動作データをＰＷＭ周期に亘って生成する生成部と、生成部で生成した動作データを、所定周期毎に複数の電源部それぞれへ出力する出力部とを備える。
2015145805.tif 000002
【特許請求の範囲】
【請求項１】
所定のＰＷＭ周期でオン動作及びオフ動作を繰り返す複数の電源部のＰＷＭ制御を行う電源制御装置において、
前記複数の電源部それぞれをオン動作させるか又はオフ動作させるかを前記ＰＷＭ周期より短い所定周期毎に定めた動作データを前記ＰＷＭ周期に亘って生成する生成部と、
該生成部で生成した動作データを、前記所定周期毎に前記複数の電源部それぞれへ出力する出力部と
を備えることを特徴とする電源制御装置。
【請求項２】
前記生成部が生成した動作データを記憶する記憶部と、
前記所定周期に同期して前記記憶部に記憶した動作データのうち前記所定周期に対応する動作データを前記出力部へ転送する転送部と
を備えることを特徴とする請求項１に記載の電源制御装置。
【請求項３】
前記生成部は、
前記複数の電源部それぞれを最初にオン動作させる前記ＰＷＭ周期内での前記所定周期の順位が異なるように前記動作データを生成するようにしてあることを特徴とする請求項１又は請求項２に記載の電源制御装置。
【請求項４】
前記複数の電源部に印加される電圧を検出する電圧検出部を備え、
前記生成部は、
前記電圧検出部で検出した電圧に応じて、前記複数の電源部をオン動作させる前記ＰＷＭ周期内での前記所定周期の数を増減するようにしてあることを特徴とする請求項１から請求項３までのいずれか１項に記載の電源制御装置。
【請求項５】
前記ＰＷＭ制御のデューティ比を特定する指令を前記ＰＷＭ周期内での任意の所定周期で取得する取得部を備え、
前記生成部は、
前記取得部で取得した指令に基づいて動作データを更新するようにしてあり、
前記出力部は、
前記任意の所定周期の後の所定周期で前記生成部が更新した動作データを出力するようにしてあることを特徴とする請求項１から請求項４までのいずれか１項に記載の電源制御装置。
【請求項６】
前記複数の電源部がそれぞれの負荷へ供給する電流を検出する複数の電流検出部と、
前記生成部が生成した動作データに基づいて、前記複数の電源部それぞれがオン動作している所定周期で前記複数の電流検出部が電流を検出すべく制御する制御部と
を備えることを特徴とする請求項１から請求項５までのいずれか１項に記載の電源制御装置。
【請求項７】
前記生成部は、
所定のテーブルと、
前記動作データを前記所定周期毎に纏めて前記テーブルに順次書き込む書込部と
を備え、
前記テーブルに書き込んだ動作テーブルを前記記憶部に記憶するようにしてあることを特徴とする請求項２に記載の電源制御装置。
【請求項８】
前記生成部は、
前記ＰＷＭ周期の前段で前記複数の電源部それぞれを前記所定周期毎に順次最初にオン動作させるための前段動作データを生成する前段生成部と、
前記ＰＷＭ周期の後段で前記複数の電源部それぞれを前記所定周期毎に順次最初にオフ動作させるための後段動作データを生成する後段生成部と
前記前段及び後段の間の中段で前記複数の電源部それぞれを前記所定周期毎にオン動作させるための中段動作データを生成する中段生成部と
をさらに備え、
前記書込部は、
前記前段動作データ、中段動作データ及び後段動作データそれぞれを前記所定周期毎に纏めて前記テーブルに順次書き込むようにしてあることを特徴とする請求項７に記載の電源制御装置。
【請求項９】
前記中段生成部は、
前記ＰＷＭ制御のデユーティ比に応じて前記中段動作データに含まれる所定周期の数を調整するようにしてあることを特徴とする請求項８に記載の電源制御装置。
【請求項１０】
前段動作データ、中段動作データ及び後段動作データそれぞれに含まれる所定周期を合計した合計周期が前記ＰＭＷ周期を越えているか否かを判定する周期判定部と、
該周期判定部で前記合計周期が前記ＰＷＭ周期を越えていると判定した場合、前記後段動作データのうち、周期が超えた部分に相当する後段動作データ及び前記前段動作データの前記所定周期毎の論理和を前記所定周期の順に算出する論理和算出部と
を備え、
前記前段生成部は、
前記論理和算出部で算出したデータを前段動作データとして生成するようにしてあることを特徴とする請求項８又は請求項９に記載の電源制御装置。
【請求項１１】
所定のＰＷＭ周期でオン動作及びオフ動作を繰り返す複数の電源部のＰＷＭ制御を行う電源制御方法において、
前記複数の電源部それぞれをオン動作させるか又はオフ動作させるかを前記ＰＷＭ周期より短い所定周期毎に定めた動作データを前記ＰＷＭ周期に亘って生成するステップと、
生成された動作データを、前記所定周期毎に前記複数の電源部それぞれへ出力するステップと
を含むことを特徴とする電源制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のＰＷＭ周期でオン動作及びオフ動作を繰り返す複数の電源部のＰＷＭ制御を行う電源制御装置及び電源制御方法に関する。
【背景技術】
【０００２】
車載用の電源電圧は、負荷の状況によって変動するため、各種ランプなどの灯火系負荷の輝度がちらつく現象が発生する。このため、例えば、車載電源から電圧を検出し、検出した電圧及び所定電圧に基づいて、デューティ比を演算し、演算したデューティ比により車載電源からの電圧をＰＷＭ（Pulse Width Modulation）制御して灯火系負荷に供給する車両用電源制御装置が開示されている（特許文献１参照）。【０００３】
また、ＰＷＭ制御を行う場合、マイコン（マイクロプロセッサ、マイクロコンピュータ）に備えられたタイマポートを利用し、タイマポートから出力されるタイマを用いて灯火系負荷の一定輝度制御が行われている。また、灯火系負荷への給電は、例えば、ＩＰＤ（インテリジェント・パワー・デバイス）を使用して制御される。ＩＰＤは灯火系負荷への通電電流のモニタ端子を有し、マイコンにより灯火系負荷への電流検知を行い、検知した電流に関する情報を、灯火系負荷及びワイヤーハーネスの保護、断線検知に利用している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２５５４０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
図３１はマイコンを用いた従来のＰＷＭ制御を行う電源制御装置の第１例を示すブロック図である。図３１に示すように、電源制御装置は、灯火系負荷の数に対応した数のＩＰＤを備える。また、マイコンは、ＰＷＭ周期タイマ、ＩＰＤの数に対応したＤＵＴＹタイマを備える。マイコンは、各ＤＵＴＹタイマからＯＮ／ＯＦＦ指令（ＰＷＭ信号）を対応するそれぞれのＩＰＤへ出力する。図３１の例では、一定輝度制御が必要な灯火系負荷の数だけタイマポートが必要である。一般的に、タイマポートの数が多いマイコンは高価であり、低コスト化が困難である。【０００６】
また、図３１のように、ＰＷＭ周期タイマを１つだけ備える構成では、ＰＷＭ制御を行う際の各灯火系負荷の位相が一致するため、各ＩＰＤがオンするタイミングが一致し、灯火系負荷への突入電流が増大し、ノイズ（伝導ノイズ又は輻射ノイズ）が増加するという問題がある。【０００７】
図３２はマイコンを用いた従来のＰＷＭ制御を行う電源制御装置の第２例を示すブロック図である。図３２の例では、各ＩＰＤに対応してＰＷＭ周期タイマを備えるので、各灯火系負荷の位相をシフトする（ずらす）ことができるので、灯火系負荷への突入電流を抑制して、ノイズ（伝導ノイズ又は輻射ノイズ）を低減することが可能となる。しかし、位相シフトのためのタイマがさらに必要となるため、一層低コスト化が困難となる。【０００８】
また、位相シフトを行うことにより、灯火系負荷毎にＩＰＤをオンさせるタイミングが異なる。灯火系負荷に流れる出力電流を検知するためには、ＩＰＤがオンしている期間で電流を検知しなければならないが、マイコンは、ＰＷＭ周期タイマと同期していないので、各ＩＰＤがいつオンしているかを把握することができない。このため、ＩＰＤがオンしているタイミング（電流検知のためのＡＤ変換のタイミング）をマイコンへ通知するための余分な回路が必要となる。【０００９】
図３３はマイコンを用いた従来のＰＷＭ制御の一例を示すタイムチャートである。図３３のチャートは、上段から順に、外部からの負荷駆動指令のＯＮ／ＯＦＦ、負荷駆動指令に基づくＤＵＴＹタイマレジスタ値（外部からのデューティ比の値）、周期タイマ、ＤＵＴＹタイマカウント値、出力波形を示す。図３３に示すように、負荷駆動指令がＯＦＦからＯＮとなり、デューティ比を０％から５０％に更新されたとする。負荷駆動指令（デューティ比更新）を外部ＥＣＵから受信した場合、タイマポートのＤＵＴＹ更新が反映されるタイミングは、通常、デューティ比を更新して、次のＰＷＭ周期からである。このため、灯具点灯指令を外部ＥＣＵから受けて、すぐ灯具を点灯する必要がある場合でも、直ちに点灯することができず、最大でＰＷＭ周期の１周期分の遅延時間が生じるという問題がある。【００１０】
本発明は、斯かる事情に鑑みてなされたものであり、タイマポートを使用することなく多チャネルのＰＷＭ制御を実現することができる電源制御装置及び電源制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る電源制御装置は、所定のＰＷＭ周期でオン動作及びオフ動作を繰り返す複数の電源部のＰＷＭ制御を行う電源制御装置において、前記複数の電源部それぞれをオン動作させるか又はオフ動作させるかを前記ＰＷＭ周期より短い所定周期毎に定めた動作データを前記ＰＷＭ周期に亘って生成する生成部と、該生成部で生成した動作データを、前記所定周期毎に前記複数の電源部それぞれへ出力する出力部とを備えることを特徴とする。【００１２】
本発明に係る電源制御方法は、所定のＰＷＭ周期でオン動作及びオフ動作を繰り返す複数の電源部のＰＷＭ制御を行う電源制御方法において、前記複数の電源部それぞれをオン動作させるか又はオフ動作させるかを前記ＰＷＭ周期より短い所定周期毎に定めた動作データを前記ＰＷＭ周期に亘って生成するステップと、生成された動作データを、前記所定周期毎に前記複数の電源部それぞれへ出力するステップとを含むことを特徴とする。【００１３】
本発明にあっては、生成部は、複数の電源部それぞれをオン動作させるか又はオフ動作させるかをＰＷＭ周期より短い所定周期毎に定めた動作データをＰＷＭ周期に亘って生成する。ＰＷＭ周期は、電源部がオン動作及びオフ動作を繰り返す場合の１周期である。ＰＷＭ周期に対するオン動作の時間の割合はＰＷＭ制御におけるデューティ比である。所定周期は、ＰＷＭ周期を所要の数（例えば、デューティ分解能に対応する数値）で区分した場合の各区分の周期とすることができる。ＰＷＭ周期を１００Ｈｚとすると、１周期は１０ｍｓであるので、デューティ分解能を１％とする場合、ＰＷＭ周期を１００個に区分するので、所定周期は、１０ｍｓ／１００＝１００μｓとすることができる。動作データは、所定周期毎に定められ、所定周期毎に１組の動作データがあるとすると、ＰＷＭ周期に亘って生成される動作データは、１００組となる。１組の動作データは、複数の電源部それぞれをオン動作させるか又はオフ動作させるかを定めるので、仮に電源部が８個あるとすると、１組の動作データには、電源部の数に対応して８個のデータ（例えば、８ビットの情報）がある。この場合、ＰＷＭ周期の１周期に亘っては、動作データは８００個のデータ（８×１００）となる。【００１４】
出力部は、生成部で生成した動作データを、所定周期毎に前記複数の電源部それぞれへ出力する。上述の例では、出力部は、１００μ毎に１組の動作データ（８個の電源部に対応する８ビットのデータ）をそれぞれの電源部へ出力する。例えば、１個目の電源部には、０ビット目の動作データ、２個目の電源部には、１ビット目の動作データ、…８個目の電源部には、７ビット目の動作データを出力する。各ビットの動作データは、１又は０の二値化データであり、１は電源部をオン動作させるデータであり、０は電源部をオフ動作させるデータであるとすることができる。任意の１つの電源部に注目すれば、出力部は、当該電源部に対して、ＰＷＭ周期の１周期に亘って所定周期毎に、１又は０の動作データを順次出力することになり、１の動作データが続く期間は、オン動作を行い、０の動作データが続く期間はオフ動作を行うので、電源部に対してＰＷＭ制御を行うことができる。これにより、複数の電源部に対して同時にＰＷＭ制御を行うことができ、タイマポートを使用することなく多チャネルのＰＷＭ制御を実現することができる。【００１５】
本発明に係る電源制御装置は、前記生成部が生成した動作データを記憶する記憶部と、前記所定周期に同期して前記記憶部に記憶した動作データのうち前記所定周期に対応する動作データを前記出力部へ転送する転送部とを備えることを特徴とする。【００１６】
本発明にあっては、記憶部は、生成部が生成した動作データを記憶する。転送部は、所定周期に同期して記憶部に記憶した動作データのうち所定周期に対応する動作データを出力部へ転送する。記憶部は、例えば、ＲＡＭなどのメモリでもよくレジスタでもよい。出力部は、例えば、ポートレジスタで構成することができ、転送部は、ＤＭＡ（ダイレクト・メモリ・アクセス）とすることができる。タイマが所定周期に同期して割込信号をＤＭＡへ出力することにより、ＤＭＡは、メモリから所定周期に対応する動作データ（１組の動作データ）をポートレジスタへ転送する。これにより、タイマポートを使用することなく多チャネルのＰＷＭ制御を実現することができる。【００１７】
本発明に係る電源制御装置は、前記生成部は、前記複数の電源部それぞれを最初にオン動作させる前記ＰＷＭ周期内での前記所定周期の順位が異なるように前記動作データを生成するようにしてあることを特徴とする。【００１８】
本発明にあっては、生成部は、複数の電源部それぞれを最初にオン動作させるＰＷＭ周期内での所定周期の順位が異なるように動作データを生成する。例えば、上述のように、ＰＷＭ周期を１００Ｈｚとし、所定周期を１００μｓとすると、ＰＷＭ周期内で所定周期は１００個存在する。ここで、所定周期の順位を最初から順番に１番目…１００番目とする。また、電源部の数を８とする。そして、１つ目の電源部を１０番目の所定周期でオフ動作からオン動作にし、２つ目の電源部を２０番目の所定周期でオフ動作からオン動作にし、以下同様に、８つ目の電源部を８０番目の所定周期でオフ動作からオン動作にしたとすると、各電源部でオフ動作からオン動作に移るタイミングが異なり、ＰＷＭ周期内で位相シフトを実現することができる。これにより、タイマポートを使用することなく、突入電流を抑制して、ノイズ（伝導ノイズ又は輻射ノイズ）を低減することができる。【００１９】
本発明に係る電源制御装置は、前記複数の電源部に印加される電圧を検出する電圧検出部を備え、前記生成部は、前記電圧検出部で検出した電圧に応じて、前記複数の電源部をオン動作させる前記ＰＷＭ周期内での前記所定周期の数を増減するようにしてあることを特徴とする。【００２０】
本発明にあっては、電圧検出部は、複数の電源部に印加される電圧を検出する。例えば、電圧検出部は、複数の電源部に給電するバッテリの電圧を検出する。生成部は、電圧検出部で検出した電圧に応じて、複数の電源部をオン動作させるＰＷＭ周期内での所定周期の数を増減する。ＰＷＭ周期内で電源部をオン動作させる所定周期の数を増やすと、オン動作の期間を長くすることができ、デューティ比を大きくすることができる。また、ＰＷＭ周期内で電源部をオン動作させる所定周期の数を減らすと、オン動作の期間を短くすることができ、デューティ比を小さくすることができる。そして、例えば、負荷の状況によってバッテリなどの電源電圧が低下した場合には、灯火系負荷の輝度が低下するのを抑制すべく、ＰＷＭ周期内で電源部をオン動作させる所定周期の数を増やすことにより、デューティ比を大きくする。これにより、負荷の状況により電源電圧が変動する場合でも、灯火系負荷の輝度を一定にすることができる。【００２１】
本発明に係る電源制御装置は、前記ＰＷＭ制御のデューティ比を特定する指令を前記ＰＷＭ周期内での任意の所定周期で取得する取得部を備え、前記生成部は、前記取得部で取得した指令に基づいて動作データを更新するようにしてあり、前記出力部は、前記任意の所定周期の後の所定周期で前記生成部が更新した動作データを出力するようにしてあることを特徴とする。【００２２】
本発明にあっては、取得部は、ＰＷＭ制御のデューティ比を特定する指令をＰＷＭ周期内での任意の所定周期で取得する。すなわち、取得部は、ＰＷＭ周期内の任意の所定周期でデューティ比を特定する指令を取得することができる。デューティ比を特定する指令とは、例えば、灯火系負荷を消灯から点灯する指令、あるいは点灯中のデューティ比を変更する指令などである。生成部は、取得部で取得した指令に基づいて動作データを更新する。例えば、動作データを記憶部に記憶している場合には、記憶部に記憶した動作データを、新しい指令に応じた動作データで書き換えればよい。出力部は、任意の所定周期の次の所定周期で生成部が更新した動作データを出力する。任意の所定周期の後の所定周期とは、任意の所定周期の次の所定周期でもよく、あるいは、所定周期の２周期分又は３周期分後の周期でもよい。これにより、次のＰＷＭ周期の開始を待つことなく更新した動作データを出力することができるので、例えば、外部ＥＣＵから灯具点灯指令を受信した後、直ちに灯具を点灯させることができる。【００２３】
本発明に係る電源制御装置は、前記複数の電源部がそれぞれの負荷へ供給する電流を検出する複数の電流検出部と、前記生成部が生成した動作データに基づいて、前記複数の電源部それぞれがオン動作している所定周期で前記複数の電流検出部が電流を検出すべく制御する制御部とを備えることを特徴とする。【００２４】
本発明にあっては、複数の電流検出部は、複数の電源部がそれぞれの負荷へ供給する電流を検出する。制御部は、生成部が生成した動作データに基づいて、複数の電源部それぞれがオン動作している所定周期で複数の電流検出部が電流を検出すべく制御する。動作データは、複数の電源部それぞれをＰＷＭ周期内のいずれの所定周期でオン動作させるか又はオフ動作させるかを定めるデータであるので、動作データを参照することにより、各電源部がいつオン動作をするかがわかる。そして、オン動作しているタイミングで負荷へ供給する電流を検出することができる。これにより、各電源部がオンしているタイミング（電流検知のためのＡＤ変換のタイミング）を検知するための余分な回路が不必要となる。【００２５】
本発明に係る電源制御装置は、前記生成部は、所定のテーブルと、前記動作データを前記所定周期毎に纏めて前記テーブルに順次書き込む書込部とを備え、前記テーブルに書き込んだ動作テーブルを前記記憶部に記憶するようにしてあることを特徴とする。【００２６】
本発明にあっては、生成部は、所定のテーブル（ＰＷＭデータ生成用バッファテーブルとも称する）と、動作データを所定周期毎に纏めてテーブルに順次書き込む書込部とを備える。所定のテーブルは、例えば、動作データを生成するためのバッファテーブルであり、生成した動作データを記憶部に記憶する前、すなわち、生成中の動作データを一時的に記録するものである。デューティ分解能を１％とすると、１つのＰＷＭ周期には１００個の所定周期が含まれる。そして、電源部の数（ポートの数）を８とすると、所定周期毎の１組の動作データは、８個のデータ（例えば、８ビットの情報）を有する。この場合、所定のテーブルは、少なくとも８００個のデータ（８×１００）を記録するだけのデータ容量を有する。【００２７】
そして、書込部は、所定周期毎の１組の動作データを纏めて１回のループ（繰返処理）としてバッファに書き込むので、例えば、１回のループで８ビットの情報を書き込むことができ、すべての動作データを書き込むのに必要なループの回数は約１００となる。これにより、約８００個の個々のデータを順番にバッファに書き込んで約８００回のループを繰り返す場合に比べると、動作データを生成するための処理時間を短縮することができ、処理労力（処理に係る負荷）を低減することができる。【００２８】
本発明に係る電源制御装置は、前記生成部は、前記ＰＷＭ周期の前段で前記複数の電源部それぞれを前記所定周期毎に順次最初にオン動作させるための前段動作データを生成する前段生成部と、前記ＰＷＭ周期の後段で前記複数の電源部それぞれを前記所定周期毎に順次最初にオフ動作させるための後段動作データを生成する後段生成部と、前記前段及び後段の間の中段で前記複数の電源部それぞれを前記所定周期毎にオン動作させるための中段動作データを生成する中段生成部とをさらに備え、前記書込部は、前記前段動作データ、中段動作データ及び後段動作データそれぞれを前記所定周期毎に纏めて前記テーブルに順次書き込むようにしてあることを特徴とする。【００２９】
本発明にあっては、前段生成部は、ＰＷＭ周期の前段で複数の電源部それぞれを所定周期毎に順次最初にオン動作させるための前段動作データを生成する。前段とは、例えば、ＰＷＭ周期内の最初の所定周期から所要数の所定周期までの期間をいう。例えば、電源部が４個あり、電源部を駆動する出力部のポートを、それぞれポート０、１、２、３とする。また、電源部をオン動作させるデータを１とし、オフ動作させるデータを０とする。前段動作データの所定周期の順位を最初から１番目、２番目…とすると、例えば、前段動作データは、ポート０に対しては、所定周期の順番に、１、１、１とし、ポート１に対しては、所定周期の順番に、０、１、１とし、ポート２に対しては、所定周期の順番に、０、０、１とし、ポート３に対しては、所定周期の順番に、０、０、０とすることができる。すなわち、前段動作データは、各電源部が、所定周期毎に順次オン動作するような動作データとなっており、ＰＷＭ制御において、各電源部がオン動作を開始するタイミング（所定周期）をシフトさせた位相シフトデータである。なお、前段動作データには、すべての電源部がオン動作する所定周期のデータは含まれない。【００３０】
後段生成部は、ＰＷＭ周期の後段で複数の電源部それぞれを所定周期毎に順次最初にオフ動作させるための後段動作データを生成する。後段とは、例えば、ＰＷＭ周期内の所要の所定周期から最後の所定周期までの期間をいう。例えば、電源部が４個あり、電源部を駆動する出力部のポートを、それぞれポート０、１、２、３とする。また、電源部をオン動作させるデータを１とし、オフ動作させるデータを０とする。後段動作データ所定周期の順位を最初から１番目、２番目…とすると、例えば、後段動作データは、ポート０に対しては、所定周期の順番に、０、０、０とし、ポート１に対しては、所定周期の順番に、１、０、０とし、ポート２に対しては、所定周期の順番に、１、１、０とし、ポート３に対しては、所定周期の順番に、１、１、１とすることができる。すなわち、後段動作データは、各電源部が、所定周期毎に順次オフ動作するような動作データとなっている。なお、後段動作データには、すべての電源部がオン動作する所定周期のデータは含まれない。すなわち、後段動作データは、ＰＷＭ制御において、各電源部がオフ動作を開始するタイミング（所定周期）をシフトさせた反転位相シフトデータである。なお、後段動作データは、前段動作データの１、０をそれぞれ反転させた構成となっている。【００３１】
中段生成部は、前段及び後段の間の中段で複数の電源部それぞれを所定周期毎にオン動作させるための中段動作データを生成する。中段とは、ＰＷＭ周期内で前段と後段とを除いた残りの所定周期の期間である。すなわち、中段動作データは、各電源部が、所定周期毎に常にオン動作するような動作データとなっている。仮に、すべての電源部を稼働させる場合には、所定周期毎の１組の動作データは、全ポートに対してすべて１となる。なお、任意のポートに対して、ＰＷＭ周期に対する、前段動作データ、中段動作データ及び後段動作データ内でデータが１となっている各所定周期を合計した合計周期の割合がデューティ比となる。【００３２】
書込部は、前段動作データ、中段動作データ及び後段動作データそれぞれを所定周期毎に纏めてテーブルに順次書き込む。これにより、動作データを１個ずつ（１ビットずつ）順番にバッファに書き込んでループを繰り返す場合に比べると、所定周期毎のデータを１回のループで書き込むことができるので、動作データを生成するための処理時間を短縮することができ、処理労力（処理に係る負荷）を低減することができる。【００３３】
本発明に係る電源制御装置は、前記中段生成部は、前記ＰＷＭ制御のデユーティ比に応じて前記中段動作データに含まれる所定周期の数を調整するようにしてあることを特徴とする。【００３４】
本発明にあっては、中段生成部は、ＰＷＭ制御のデユーティ比に応じて中段動作データに含まれる所定周期の数を調整する。これにより、所定周期毎の１組の動作データの書き込み回数を増減するだけで所望のデユーティ比で電源部を動作させることができる。【００３５】
本発明に係る電源制御装置は、前段動作データ、中段動作データ及び後段動作データそれぞれに含まれる所定周期を合計した合計周期が前記ＰＭＷ周期を越えているか否かを判定する周期判定部と、該周期判定部で前記合計周期が前記ＰＷＭ周期を越えていると判定した場合、前記後段動作データのうち、周期が超えた部分に相当する後段動作データ及び前記前段動作データの前記所定周期毎の論理和を前記所定周期の順に算出する論理和算出部とを備え、前記前段生成部は、前記論理和算出部で算出したデータを前段動作データとして生成するようにしてあることを特徴とする。【００３６】
本発明にあっては、周期判定部は、前段動作データ、中段動作データ及び後段動作データそれぞれに含まれる所定周期を合計した合計周期がＰＭＷ周期を越えているか否かを判定する。例えば、出力部のポートを、ポート０、１、２、３とし、デューティ分解能の数を１０とする。分解能の数は、ＰＷＭ周期内の所定周期の数であり、分解能の数が１０の場合、１ＰＷＭ周期内に１０個の所定周期が含まれる。１０個の所定周期を最初から、Ｔ１、Ｔ２、…Ｔ１０で表すとする。また、ポート数が４つあるので、前段動作データ及び後段動作データは、それぞれ３個の所定周期を含む。【００３７】
仮に、デューティ比を８０％とすると、任意のポートに対して、ＰＷＭ周期内でデータが１となる所定周期の数は８個となる。例えば、ポート０に対して前段動作データを、（１、１、１）とし、後段動作データを、（０、０、０）とすると、デューティ比を８０％とするためには、ポート０に対する中段動作データは、（１、１、１、１、１）の如く、所定周期の数を５とする必要がある。そうすると、前段動作データ、中段動作データ及び後段動作データそれぞれに含まれる所定周期を合計した数は１１（＝３＋５＋３）となり、合計周期がＰＷＭ周期を超えることなる。この場合、ポート０に対する所定周期毎のデータは、（１、１、１、１、１、１、１、１、０、０、０）となり（１１個のデータ）、最後の所定周期の「０」が超過分となる。この場合、１所定周期分だけ超過している。【００３８】
また、各ポートの位相シフトを考慮して、例えば、ポート３に対して前段動作データを、（０、０、０）とし、後段動作データを、（１、１、１）とすると、デューティ比を８０％とするためには、ポート３に対する中段動作データは、（１、１、１、１、１）の如く、所定周期の数を５とする必要がある。そうすると、前段動作データ、中段動作データ及び後段動作データそれぞれに含まれる所定周期を合計した数は１１（＝３＋５＋３）となり、合計周期がＰＷＭ周期を超えることなる。この場合、ポート３に対する所定周期毎のデータは、（０、０、０、１、１、１、１、１、１、１、１）となり（１１個のデータ）、最後の所定周期の「１」が超過分となる。この場合、１所定周期分だけ超過している。【００３９】
論理和算出部は、周期判定部で合計周期がＰＷＭ周期を越えていると判定した場合、後段動作データのうち、周期が超えた部分に相当する後段動作データ及び前段動作データの所定周期毎の論理和を所定周期の順に算出する。そして、前段生成部は、論理和算出部で算出したデータを前段動作データとして生成する。例えば、ポート０については、１所定周期の超過分のデータが「０」であり、前段動作データの最初の１所定周期のデータが「１」であるから、両者の論理和は「１」となる。前段動作データは、元々（１、１、１）であるので、前段動作データの最初の所定周期のデータは変更されない。この場合、ポート０に対するＰＷＭ周期内の所定周期毎のデータは、デューティ比が８０％の（１、１、１、１、１、１、１、１、０、０）となる。【００４０】
一方、ポート３については、１所定周期の超過分のデータが「１」であり、前段動作データの最初の１所定周期のデータが「０」であるから、両者の論理和は「１」となる。この場合、ポート３に対する前段動作データの最初の所定周期のデータは「０」から「１」に変更され、前段動作データは、（０、０、０）から（１、０、０）に変更される。このため、ポート３に対するＰＷＭ周期内の所定周期毎のデータは、（１、０、０、１、１、１、１、１、１、１）となり、デューティ比が８０％の正しい動作データを生成することができる。
【発明の効果】
【００４１】
本発明によれば、タイマポートを使用することなく多チャネルのＰＷＭ制御を実現することができる。
【図面の簡単な説明】
【００４２】
【図１】第１実施形態の電源制御装置の構成の一例を示すブロック図である。
【図２】ＰＷＭ周期とタイマ割込周期との関係の一例を示す説明図である。
【図３】動作データの一例を示す説明図である。
【図４】図３の動作データに基づくＰＷＭ制御の一例を示す説明図である。
【図５】動作データの他の例を示す説明図である。
【図６】図５の動作データに基づくＰＷＭ制御の他の例を示す説明図である。
【図７】第１実施形態の電源制御装置による動作の一例を示すタイムチャートである。
【図８】第２実施形態の電源制御装置の構成の一例を示すブロック図である。
【図９】第２実施形態の電源制御装置による動作の一例を示すタイムチャートである。
【図１０Ａ】第１及び第２実施形態の動作データの生成方法の一例を示す模式図である。
【図１０Ｂ】第１及び第２実施形態の動作データの生成方法の一例を示す模式図である。
【図１０Ｃ】第１及び第２実施形態の動作データの生成方法の一例を示す模式図である。
【図１１】第３実施形態のマイクロプロセッサの構成の一例を示すブロック図である。
【図１２】デューティ比５０％で位相シフトがない場合のＰＷＭ制御の一例を示す説明図である。
【図１３】図１２のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブルで生成されるＰＷＭデータの一例を示す説明図である。
【図１４】ポート駆動データの一例を示す説明図である。
【図１５】デューティ比６０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図である。
【図１６】図１５のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。
【図１７Ａ】位相シフトデータの一例を示す説明図である。
【図１７Ｂ】反転位相シフトデータの一例を示す説明図である。
【図１８】デューティ比７０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図である。
【図１９】図１８のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。
【図２０】デューティ比８０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図である。
【図２１】図２０のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。
【図２２】デューティ比９０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図である。
【図２３】図２２のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。
【図２４】デューティ比２０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図である。
【図２５】図２４のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。
【図２６】第３実施形態のマイクロプロセッサが生成するＰＷＭデータの一例を示す説明図である。
【図２７】図２６のＰＷＭデータを生成するために用いるポート駆動データを示す説明図である。
【図２８Ａ】図２６のＰＷＭデータを生成するために用いる位相シフトデータを示す説明図である。
【図２８Ｂ】図２６のＰＷＭデータを生成するために用いる反転位相シフトデータを示す説明図である。
【図２９Ａ】第３実施形態の動作データの生成方法の一例を示す模式図である。
【図２９Ｂ】第３実施形態の動作データの生成方法の一例を示す模式図である。
【図３０Ａ】第３実施形態の動作データの生成方法の一例を示す模式図である。
【図３０Ｂ】第３実施形態の動作データの生成方法の一例を示す模式図である。
【図３１】マイコンを用いた従来のＰＷＭ制御を行う電源制御装置の第１例を示すブロック図である。
【図３２】マイコンを用いた従来のＰＷＭ制御を行う電源制御装置の第２例を示すブロック図である。
【図３３】マイコンを用いた従来のＰＷＭ制御の一例を示すタイムチャートである。
【発明を実施するための形態】
【００４３】
（第１実施形態）
以下、本発明をその実施の形態を示す図面に基づいて説明する。図１は第１実施形態の電源制御装置５０の構成の一例を示すブロック図である。以下では、電源制御装置５０として、車載用の電源制御装置を例に挙げて説明するが、電源制御装置５０は、車載用に限定されるものではない。図１に示すように、電源制御装置５０は、マイクロプロセッサ（マイクロコンピュータ）３０、電圧検出回路４１、インタフェース回路４２などを備える。また、マイクロプロセッサ３０は、タイマ３１、ＤＭＡ（Direct Memory Access）３２、ポートレジスタ３３、メモリ３４などを備える。
【００４４】
ポートレジスタ３３は、出力部としての機能を有し、例えば、８個のポートを有し、８個のＩＰＤ（インテリジェント・パワー・デバイス）１１、１２、…１８が接続されている。ポートレジスタ３３の各ポートからは、オン／オフ指令（ＰＷＭ信号）が対応するＩＰＤへ出力される。８個のＩＰＤ１１〜１８は、複数の電源部をなす。
【００４５】
ＩＰＤ１１には、灯火系負荷である負荷（灯具）２１が接続され、ＩＰＤ１２には、灯火系負荷である負荷（灯具）２２が接続され、以下、同様に、ＩＰＤ１８には、灯火系負荷である負荷（灯具）２８が接続されている。すなわち、図１の例では、灯火系負荷が８系統存在する。なお、ポートレジスタ３３のポート数、ＩＰＤの数、負荷の数は８個に限定されるものではない。また、図１の例では、各ＩＰＤ１１〜１８は、電源制御装置５０とは別個の構成であるが、これに限定されるものではなく、電源制御装置５０に各ＩＰＤ１１〜１８を内蔵する構成であってもよい。
【００４６】
各ＩＰＤ１１〜１８は、ポートレジスタ３３から出力されたオン／オフ指令（ＰＷＭ信号）に基づいて、所定のＰＷＭ周期（例えば、１００Ｈｚ）でオン動作及びオフ動作を繰り返す。また、各ＩＰＤ１１〜１８は、それぞれの負荷に流れる電流を検知する機能を有し、検知した電流情報をマイクロプロセッサ３０へ出力する。これにより、マイクロプロセッサ３０は、各ＩＰＤ１１〜１８がそれぞれの負荷へ供給する電流を検出する電流検出部としての機能を有する。
【００４７】
バッテリ１は、各ＩＰＤ１１〜１８に所要の電力を供給する。なお、バッテリ１には、灯火系負荷以外の負荷、例えば、モータ、エアコンなどの動力系負荷（不図示）が接続されている。
【００４８】
電圧検出回路４１は、電圧検出部としての機能を有し、ＩＰＤ１１〜１８に印加される電圧、すなわちバッテリ１の電圧を検出し、検出した電圧をマイクロプロセッサ３０へ出力する。
【００４９】
インタフェース回路４２は、取得部としての機能を有し、例えば、外部ＥＣＵ（不図示）からＰＷＭ制御のデューティ比を特定する指令を取得する。また、インタフェース回路４２は、電源制御装置５０、ＩＰＤ１１〜１８、負荷２１〜２８などの状態情報（ステータス情報）を外部のＥＣＵなどへ出力する。
【００５０】
マイクロプロセッサ３０は、生成部としての機能を有し、複数のＩＰＤ１１〜１８それぞれをオン動作させるか又はオフ動作させるかをＰＷＭ周期より短いタイマ割込周期（所定周期）毎に定めた動作データをＰＷＭ周期に亘って生成する。ＰＷＭ周期は、各ＩＰＤ１１〜１８がオン動作及びオフ動作を繰り返す場合の１周期である。ＰＷＭ周期に対するオン動作の時間の割合はＰＷＭ制御におけるデューティ比である。本実施の形態では、所定周期として、タイマ割込周期を例に挙げて説明する。
【００５１】
図２はＰＷＭ周期とタイマ割込周期との関係の一例を示す説明図である。図２に示すように、タイマ割込周期は、ＰＷＭ周期を所要の数（例えば、デューティ分解能に対応する数値）で区分した場合の各区分の周期とすることができる。ＰＷＭ周期を１００Ｈｚとすると、１周期は１０ｍｓであるので、デューティ分解能を１％とする場合、ＰＷＭ周期を１００個に区分するので、タイマ割込周期は、１０ｍｓ／１００＝１００μｓとすることができる。
【００５２】
動作データ（テーブルデータとも称する）は、タイマ割込周期毎に定められ、タイマ割込周期毎に１組の動作データがあるとすると、ＰＷＭ周期に亘って生成される動作データは、１００組となる。１組の動作データは、複数のＩＰＤ１１〜１８それぞれをオン動作させるか又はオフ動作させるかを定めるので、図１に例示するように、ＩＰＤが８個あるとすると、１組の動作データには、ＩＰＤ１１〜１８の数に対応して８個のデータ（例えば、８ビットの情報）がある。この場合、ＰＷＭ周期の１周期に亘っては、動作データは８００個のデータ（８×１００）となる。
【００５３】
マイクロプロセッサ３０は、生成した動作データを記憶部としてのメモリ３４に記憶する。メモリ３４は、例えば、ＲＡＭであるが、メモリ３４に代えて記憶部としてのレジスタでもよい。
【００５４】
タイマ３１は、上述のタイマ割込周期に同期して、割込信号をＤＭＡ３２へ出力する。
【００５５】
ＤＭＡ３２は、転送部としての機能を有し、タイマ３１が出力する割込信号を取得すると、メモリ３４に記憶した動作データのうち、当該割込信号に同期するタイマ割込周期に対応する動作データをポートレジスタ３３へ転送する。このように、タイマ３１がタイマ割込周期に同期して割込信号をＤＭＡ３２へ出力することにより、ＤＭＡ３２は、メモリ３４からタイマ割込周期に対応する動作データ（１組の動作データ）をポートレジスタ３３へ転送する。
【００５６】
ポートレジスタ３３は、マイクロプロセッサ３０で生成した動作データを、タイマ割込周期毎にＩＰＤ１１〜１８それぞれへ出力する。上述の例では、ポートレジスタ３３は、１００μ毎に１組の動作データ（８個のＩＰＤ１１〜１８に対応する８ビットのデータ）をそれぞれのＩＰＤ１１〜１８へ出力する。
【００５７】
例えば、１個目のＩＰＤ１１には、０ビット目（ポート０とも称する）の動作データ、２個目のＩＰＤ１２には、１ビット目（ポート１とも称する）の動作データ、以下同様に、…８個目のＩＰＤ１８には、７ビット目（ポート７）の動作データを出力する。各ビット（各ポート）の動作データは、１又は０の二値化データであり、１はＩＰＤをオン動作させるデータであり、０はＩＰＤをオフ動作させるデータであるとすることができる。
【００５８】
任意の１つのＩＰＤ（例えば、ＩＰＤ１１）に注目すれば、ポートレジスタ３３は、ＩＰＤ１１に対して、ＰＷＭ周期の１周期に亘ってタイマ割込周期毎に、１又は０の動作データを順次出力することになり、１の動作データが続く期間は、オン動作を行い、０の動作データが続く期間はオフ動作を行うので、ＩＰＤ１１に対してＰＷＭ制御を行うことができる。他のＩＰＤ１２〜１８についても同様である。
【００５９】
図３は動作データの一例を示す説明図であり、図４は図３の動作データに基づくＰＷＭ制御の一例を示す説明図である。図３及び図４の例では、簡便のため、タイマ割込周期Ｔ１、Ｔ２、Ｔ３、Ｔ４でＰＷＭ周期の１周期分とする。すなわち、ＰＷＭ周期は、４つのタイマ割込周期で区分されているとする。また、ポートレジスタ３３は、４つのポート（４ビット分の出力ポート）を有するとし、ＩＰＤは４個あるとする。また、ポートレジスタ３３のビット位置（ポート番号）０〜３それぞれにＩＰＤ１１〜ＩＰＤ１４が対応しているとする。
【００６０】
図３に示すように、タイマ割込周期Ｔ１での１組の動作データは、ビット位置０から３の順に、１、０、０、１となる。また、タイマ割込周期Ｔ２での１組の動作データは、ビット位置０から３の順に、１、１、０、０となる。また、タイマ割込周期Ｔ３での１組の動作データは、ビット位置０から３の順に、０、１、１、０となる。また、タイマ割込周期Ｔ４での１組の動作データは、ビット位置０から３の順に、０、０、１、１となる。
【００６１】
図３に例示した動作データを、例えば、ＩＰＤ１１について見ると、タイマ割込周期がＴ１からＴ４へ移行する間に、動作データは、１、１、０、０と変化する。動作データ１がＩＰＤ１１をオン動作させるとし、動作データ０がＩＰＤ１１をオフ動作させるとすると、ＩＰＤ１１のＰＷＭ制御は、図４に示すように、タイマ割込周期Ｔ１〜Ｔ２でオン動作となり、タイマ割込周期Ｔ３〜Ｔ４でオフ動作となり、デューティ比５０％のＰＷＭ制御を行うことができる。他のＩＰＤ１２〜１４についても同様に、デューティ比５０％のＰＷＭ制御を行うことができる。
【００６２】
これにより、複数のＩＰＤに対して同時にＰＷＭ制御を行うことができ、タイマポートを使用することなく多チャネルのＰＷＭ制御を実現することができる。
【００６３】
そして、マイクロプロセッサ３０は、複数のＩＰＤ１１〜１８それぞれを最初にオン動作させるＰＷＭ周期内でのタイマ割込周期の順位が異なるように動作データを生成する。例えば、上述のように、ＰＷＭ周期を１００Ｈｚとし、タイマ割込周期を１００μｓとすると、ＰＷＭ周期内でタイマ割込周期の数は１００個存在する。ここで、タイマ割込周期の順位を最初から順番に１番目…１００番目とする。また、ＩＰＤの数を８とする。そして、１つ目のＩＰＤ１１を１０番目のタイマ割込周期でオフ動作からオン動作にし、２つ目のＩＰＤ１２を２０番目のタイマ割込周期でオフ動作からオン動作にし、以下同様に、８つ目のＩＰＤ１８を８０番目のタイマ割込周期でオフ動作からオン動作にしたとすると、各ＩＰＤ１１〜１８でオフ動作からオン動作に移るタイミングが異なり、ＰＷＭ周期内で位相シフトを実現することができる。これにより、タイマポートを使用することなく、突入電流を抑制して、ノイズ（伝導ノイズ又は輻射ノイズ）を低減することができる。
【００６４】
図４の例で説明すると以下のとおりである。図４の例では、ＰＷＭ周期内でタイマ割込周期の数は４個存在する。タイマ割込周期の順位を最初から順番にＴ１、Ｔ２、Ｔ３、Ｔ４とする。また、ＩＰＤは、ＩＰＤ１１〜１４の４個とする。
【００６５】
１つ目のＩＰＤ１１は、最初のタイマ割込周期Ｔ１でオフ動作からオン動作にする。また、２つ目のＩＰＤ１２は、２番目のタイマ割込周期Ｔ２でオフ動作からオン動作にする。また、３つ目のＩＰＤ１３は、３番目のタイマ割込周期Ｔ３でオフ動作からオン動作にする。また、４つ目のＩＰＤ１４は、最後のタイマ割込周期Ｔ４でオフ動作からオン動作にする。これにより、ＰＷＭ周期内で位相シフトを実現することができ、タイマポートを使用することなく、突入電流を抑制して、ノイズ（伝導ノイズ又は輻射ノイズ）を低減することができる。
【００６６】
電圧検出回路４１は、複数のＩＰＤ１１〜１８に印加される電圧を検出する。例えば、図１に例示するように、電圧検出回路４１は、複数のＩＰＤ１１〜１８に給電するバッテリ１の電圧を検出する。
【００６７】
マイクロプロセッサ３０は、電圧検出回路４１で検出した電圧に応じて、複数のＩＰＤ１１〜１８をオン動作させるＰＷＭ周期内でのタイマ割込周期の数を増減する。以下、例を挙げて説明する。
【００６８】
図５は動作データの他の例を示す説明図であり、図６は図５の動作データに基づくＰＷＭ制御の他の例を示す説明図である。図５に示すように、タイマ割込周期Ｔ１での１組の動作データは、ビット位置０から３の順に、１、０、１、１となる。また、タイマ割込周期Ｔ２での１組の動作データは、ビット位置０から３の順に、１、１、０、１となる。また、タイマ割込周期Ｔ３での１組の動作データは、ビット位置０から３の順に、１、１、１、０となる。また、タイマ割込周期Ｔ４での１組の動作データは、ビット位置０から３の順に、０、１、１、１となる。
【００６９】
図５に例示した動作データを、例えば、ＩＰＤ１１について見ると、タイマ割込周期がＴ１からＴ４へ移行する間に、動作データは、１、１、１、０と変化する。動作データ１がＩＰＤ１１をオン動作させるとし、動作データ０がＩＰＤ１１をオフ動作させるとすると、ＩＰＤ１１のＰＷＭ制御は、図５に示すように、タイマ割込周期Ｔ１〜Ｔ３でオン動作となり、タイマ割込周期Ｔ４でオフ動作となり、デューティ比７５％のＰＷＭ制御を行うことができる。他のＩＰＤ１２〜１４についても同様に、デューティ比７５％のＰＷＭ制御を行うことができる。
【００７０】
上述のように、ＰＷＭ周期内でＩＰＤをオン動作させるタイマ割込周期の数を増やすと、オン動作の期間を長くすることができ、デューティ比を大きくすることができる。また、ＰＷＭ周期内でＩＰＤをオン動作させるタイマ割込周期の数を減らすと、オン動作の期間を短くすることができ、デューティ比を小さくすることができる。
【００７１】
例えば、電動系の負荷の状況によってバッテリ１などの電源電圧が低下した場合には、灯火系負荷の輝度が低下するのを抑制すべく、ＰＷＭ周期内でＩＰＤをオン動作させるタイマ割込周期の数を増やすことにより、デューティ比を大きくする。これにより、負荷の状況により電源電圧が変動する場合でも、灯火系負荷の輝度を一定にすることができる。
【００７２】
図７は第１実施形態の電源制御装置５０による動作の一例を示すタイムチャートである。図７において、上段のチャートは、タイマ割込周期を表す。図７の例では、ＰＷＭ周期Ｔを２０個のタイマ割込周期で区分している。中段のチャートは、ポートレジスタ３３のレジスタ値であり、ビット０〜７（ポート０〜７と称することもできる）が、それぞれ８個のＩＰＤ１１〜１８に対応して８ビットのビット情報により画定される。下段のそれぞれのチャートは、各ＩＰＤ１１〜１８のオン動作又はオフ動作を示すタイムチャートである。
【００７３】
例えば、レジスタ値が０ｘ０１の場合、ビット０（ＩＰＤ１１）に対応するビットがオン（すなわち、ＩＰＤをオン動作させる）となる。同様に、レジスタ値が０ｘ０３の場合、ビット０及び１（ＩＰＤ１１及びＩＰＤ１２）に対応するビットがオン（すなわち、ＩＰＤをオン動作させる）となる。他のレジスタ値も同様である。
【００７４】
各ＩＰＤ１１〜１８は、電流検出部の機能を有し、それぞれの負荷２１〜２８へ供給する電流を検出することができる。
【００７５】
マイクロプロセッサ３０は、制御部としての機能を有し、生成した動作データに基づいて、複数のＩＰＤ１１〜１８それぞれがオン動作しているタイマ割込周期でＩＰＤ１１〜１８が電流を検出すべく制御する。
【００７６】
例えば、図７に示すように、マイクロプロセッサ３０は、ＩＰＤ１１がオン動作をしている期間のうち、例えば、時刻ｔ１において負荷２１へ流れる電流を検出すべく制御する。同様に、マイクロプロセッサ３０は、ＩＰＤ１２がオン動作をしている期間のうち、例えば、時刻ｔ２において負荷２２へ流れる電流を検出すべく制御する。また、マイクロプロセッサ３０は、ＩＰＤ１３がオン動作をしている期間のうち、例えば、時刻ｔ３において負荷２３へ流れる電流を検出すべく制御する。また、マイクロプロセッサ３０は、ＩＰＤ１８がオン動作をしている期間のうち、例えば、時刻ｔ８において負荷２８へ流れる電流を検出すべく制御する。他のＩＰＤについても同様である。
【００７７】
マイクロプロセッサ３０が生成する動作データは、複数のＩＰＤ１１〜１８それぞれをＰＷＭ周期内のいずれのタイマ割込周期でオン動作させるか又はオフ動作させるかを定めるデータであるので、マイクロプロセッサ３０は、自身が生成する動作データを参照することにより、各ＩＰＤ１１〜１８がいつオン動作をするかがわかる。そして、各ＩＰＤ１１〜１８がオン動作しているタイミングで負荷へ供給する電流を検出することができる。これにより、各ＩＰＤ１１〜１８がオンしているタイミング（電流検知のためのＡＤ変換のタイミング）を検知するための余分な回路が不必要となる。
【００７８】
インタフェース回路４２は、例えば、外部ＥＣＵ等から、ＰＷＭ制御のデューティ比を特定する指令（負荷駆動指令）をＰＷＭ周期内での任意のタイマ割込周期で取得する。デューティ比を特定する指令（負荷駆動指令）とは、例えば、灯火系負荷を消灯から点灯する指令、あるいは点灯中のデューティ比を変更する指令などである。
【００７９】
マイクロプロセッサ３０は、インタフェース回路４２で取得した指令に基づいて動作データを更新する。例えば、動作データをメモリ３４に記憶している場合には、メモリ３４に記憶した動作データを、新しい指令に応じた動作データで書き換えればよい。
【００８０】
ポートレジスタ３３は、負荷駆動指令を取得した任意のタイマ割込周期の次のタイマ割込周期で、マイクロプロセッサ３０が更新した動作データを出力する。ここで、任意のタイマ割込周期の後のタイマ割込周期とは、図７に示すように、任意のタイマ割込周期の次のタイマ割込周期でもよく、あるいは、タイマ割込周期の２周期分又は３周期分後の周期でもよい。
【００８１】
これにより、次のＰＷＭ周期の開始を待つことなく更新した動作データを出力することができるので、例えば、外部ＥＣＵから灯具点灯指令を受信した後、直ちに灯具を点灯させることができる。
【００８２】
上述のように、本実施の形態の電源制御装置５０によれば、タイマポートを使用することなく、多チャネルのＰＷＭ制御を実現することができる。また、従来のように、タイマポートを使用した場合に、多チャネルの位相シフトを行うと、いつＩＰＤがオンしているのかをマイコン（ＣＰＵ）が検知するようにするには、電流検知のためのＡＤ変換のタイミング制御が煩雑になるが、本実施の形態によれば、事前にマイクロプロセッサ３０が動作テーブルを生成するので、各ＩＰＤのオン又はオフのタイミング検知が容易になり、異常状態の検知（ヒューズ機能）のための電流検知及びＡＤ変換のタイミング制御を簡単に行うことができる。また、位相シフトを行うことにより、電気雑音の低減が可能となる。さらに、次のＰＷＭ周期の開始を待つことなく、外部ＥＣＵ等からの負荷駆動指令に対して直ちに（タイマ割込周期の１周期分程度の遅延時間で）ＩＰＤの動作を制御することができる。
【００８３】
上述の実施の形態では、ＰＷＭ周期が１００Ｈｚの場合、デューティ比の必要分解能を１％としたときには、タイマ割込周期を１００μｓに設定して、動作データを１００個用意する構成であったが、これらの数値は一例であって、これらの数値に限定されるものではない。また、例えば、ＰＷＭ周期を２００Ｈｚに設定し、ＰＷＭ周期をＰＷＭ周期１とＰＷＭ周期２の２つに分割する。そして、例えば、ＰＷＭ周期が１００Ｈｚでデューティ比９０％（オン時間が９ｍｓ）を出力したい場合には、ＰＷＭ周期１では、デューティ比１００％（オン時間が５ｍｓ）を出力し、ＰＷＭ周期２では、デューティ比８０％（オン時間が４ｍｓ）を出力することにより、擬似的にＰＷＭ周期が１００Ｈｚでデューティ比９０％（オン時間が９ｍｓ）を出力することができる。ＰＷＭ周期１及びＰＷＭ周期２で動作データを書き換えることにより、１００個分の動作データの代わりに５０個分の動作データを用意すればよいので、メモリの容量を少なくすることができる。
【００８４】
（第２実施形態）
図８は第２実施形態の電源制御装置５０の構成の一例を示すブロック図であり、図９は第２実施形態の電源制御装置５０による動作の一例を示すタイムチャートである。上述の第１実施形態では、マイクロプロセッサ３０が、内部の電流値読取タイミング生成タイマを用いて、図７に例示した時刻ｔ１、ｔ２…に各ＩＰＤから各負荷に流れる電流を検出する構成であった。電流値読取タイミングは、タイマを用いる構成に限定されるものではない。第２実施形態では、ＩＰＤへのオン／オフ指令に用いるポートのうち、１ポート（例えば、ポート７）を電流値読取タイミング情報として用いる。
【００８５】
図８及び図９に示すように、ポートレジスタ３３のポート０〜６の７つポートを用いてＩＰＤ１１〜１７に対するオン／オフ指令を出力する。そして、ポート７は、電流値ＡＤ要求割込をＩＮＴ３５へ出力する。ＩＮＴ３５は、例えば、マイクロプロセッサ３０内の割込みポートである。これにより、所要の時刻ｔ１、ｔ２、ｔ３…において電流値を読み取ることができるとともに、電流値読取タイミング生成タイマが不要となる。
【００８６】
次に、第１実施形態及び第２実施形態での、動作データの生成方法について説明する。図１０Ａ、図１０Ｂ及び図１０Ｃは第１及び第２実施形態の動作データの生成方法の一例を示す模式図である。以下では、動作データをＰＷＭデータとも称する。図１０Ａは、ＰＷＭデータ生成用バッファテーブルの構成を示す。ＰＷＭデータ生成用バッファテーブルは、ポートレジスタ３３のポート数（図１０の例では、ポート０からポート７の８ポート）に対応するエントリを有する。そして、ＰＷＭデータ生成用バッファテーブルは、それぞれのポートに対して、デューティ分解能の数（図１０の例では、番号[data num]０から９９までの１００個）と位相シフト超過部（図１０の例では、番号[data num]１００から１１３までの１４個）との合計数（１１４個）のデータを保持することができる。すなわち、ＰＷＭデータ生成用バッファテーブルは、ＰＷＭ周期内のＰＷＭデータ（動作データ）として、８００個（８×１００）のデータを保持し、位相シフト超過部として、１１２（８×１４）のデータを保持することができる。なお、ポート数、デューティ分解能の数は一例であって、図１０の例に限定されない。
【００８７】
ＰＷＭデータを生成する場合、まず、図１０Ａに示すように、ＰＷＭデータ生成用バッファテーブルをクリアする（全てのデータを０にする）。
【００８８】
次に、図１０Ｂに示すように、１ポート分ずつＰＷＭデータを書き込む。この場合、デューティ比を９５％、ポート間位相シフト量を２％、駆動するポートを０、２、４、６とする。ポート間位相シフト量は、隣り合うポート間での位相シフトの量を示し、ポート間位相シフト量が２％ということは、隣り合うポート間で、デューティ分解能（１％）の数が２に相当する量だけシフトするということである。図１０Ｂに示すように、まず、ポート０を選択し、データ「１」を０番目から９４番目まで９５個書き込み、データ「０」を９５番目から９９番目まで書き込む。この場合、書込み処理（ループ）が１００回繰り返される。次に、ポート１を選択し、ポート間位相シフト量を考慮して、データ「０」を２番目から１０１番目まで１００個書き込む。この場合も、書込み処理（ループ）が１００回繰り返される。以下、同様にして、ポート２からポート７までの各ポートに対して同様の書込み処理を繰り返す。この場合、８００回程度の書込み処理が繰り返されることになる。また、図１０Ｂに示すように、ポート間位相シフト量を考慮してデータを書き込むため、ポート３からポート７までは、書き込むデータが位相シフト超過部にはみ出ている。
【００８９】
次に、図１０Ｃに示すように、ポート間位相シフト量を考慮して書き込んだデータのうち、位相シフト超過部にはみ出したデータ（１００番目から１１３番目まで）と、先頭のデータ（０番目から１３番目）とを論理和した結果を先頭部分（０番目から１３番目）に書き込む。
【００９０】
最後にＰＷＭデータ生成用バッファテーブルに生成したデータのうち、位相シフト超過部のデータを除いたＰＷＭデータ（０番目から９９番目のデータ）をメモリ３４に記憶する。これにより、メモリ３４には、ＰＷＭデータ(動作データ)が記憶される。
【００９１】
（第３実施形態）
ＰＷＭデータの生成方法は、図１０の例に限定されるものではない。次に、さらに効率のよいＰＷＭデータの生成方法について説明する。図１１は第３実施形態のマイクロプロセッサ３０の構成の一例を示すブロック図である。図１１に示すように、マイクロプロセッサ３０は、ポート駆動データテーブル５１、ＰＷＭデータ生成用バッファテーブル５２、位相シフトデータテーブル５３、反転位相シフトデータテーブル５４、ＡＮＤ回路（論理積算出部）５５、５６、ＯＲ回路（論理和算出部）５７などを備える。また、マイクロプロセッサ３０は、後述の書込部、周期判定部としての機能を有する。
【００９２】
ＰＷＭデータ生成用バッファテーブル５２は、ポートレジスタ３３のポート数に対応するエントリを有し、それぞれのポートに対して、デューティ分解能の数と位相シフト超過部との合計数のデータを保持することができる。
【００９３】
ポート駆動データテーブル５１は、後述のポート駆動データを記憶する。また、位相シフトデータテーブル５３は、後述の位相シフトデータを記憶し、反転位相シフトデータテーブル５４は、後述の反転位相シフトデータを記憶する。
【００９４】
ＰＷＭデータの生成方法の大凡の手順は、まず、マイクロプロセッサ３０は、ポート駆動データテーブル５１に記憶したポート駆動データをタイマ割込周期（所定周期）毎に纏めて、デューティ比に応じたデューティ分解能の数（タイマ割込周期の数に相当）だけＰＷＭデータ生成用バッファテーブル５２に書き込む。この場合、ＰＷＭデータ生成用バッファテーブル５２の前段部分には、位相シフトデータが書き込まれるので、前段部分は空けておく。
【００９５】
次に、マイクロプロセッサ３０は、ポート駆動データと、反転位相シフトデータテーブル５４に記憶した反転位相シフトデータとをＡＮＤ回路５６で論理積した結果のデータを、タイマ割込周期（所定周期）毎に纏めてＰＷＭデータ生成用バッファテーブル５２の後段部分に書き込む。この場合、ＡＮＤ回路５６で論理積した結果のデータは、ポート駆動データが書き込まれた部分の後段側に書き込まれる。
【００９６】
次に、マイクロプロセッサ３０は、ポート駆動データと、位相シフトデータテーブル５３に記憶した位相シフトデータとをＡＮＤ回路５５で論理積した結果のデータを、ＯＲ回路５７を用いてＰＷＭデータ生成用バッファテーブル５２の位相シフト超過部のデータと論理和した結果のデータをタイマ割込周期（所定周期）毎に纏めてＰＷＭデータ生成用バッファテーブル５２の前段部分に書き込む。
【００９７】
最後にＰＷＭデータ生成用バッファテーブル５２に生成したデータのうち、位相シフト超過部のデータを除いたＰＷＭデータをメモリ３４に記憶する。これにより、メモリ３４には、ＰＷＭデータ(動作データ)が記憶される。
【００９８】
上述のように、マイクロプロセッサ３０は、タイマ割込周期（所定周期）毎の１組のＰＷＭデータ（動作データ）を纏めて１回のループ（繰返処理）としてＰＷＭデータ生成用バッファテーブル５２に書き込む。例えば、デューティ分解能を１％とし、ポート数を８とすると、１回のループで８ビットの情報を書き込むことができ、すべての動作データを書き込むのに必要なループの回数は約１００となる。これにより、図１０に例示した方法のように、８００個程度の個々のデータを順番にバッファに書き込んで８００回程度のループを繰り返す場合に比べると、ＰＷＭデータを生成するための処理時間を短縮することができ、処理労力（処理に係る負荷）を低減することができる。
【００９９】
次に、ＰＷＭデータ生成の具体例について説明する。以下の例では、簡便のため、ポート数は４とし、デューティ分解能を１０％とし、ポート間位相シフト量を１０％とする。すなわち、ＰＷＭ周期内には１０個のタイマ割込周期が含まれる。
【０１００】
まず、位相シフトがない場合のＰＷＭデータ生成の具体例について説明する。図１２はデューティ比５０％で位相シフトがない場合のＰＷＭ制御の一例を示す説明図であり、図１３は図１２のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。図１２及び図１３に示すように、ＰＷＭ周期内のタイマ割込周期を最初からＴ１、Ｔ２、…、Ｔ１０で表す。また、ＰＷＭデータ生成用バッファテーブル５２は、予めクリアされているとする。
【０１０１】
図１４はポート駆動データの一例を示す説明図である。駆動データは、ＩＰＤを稼働させるか否か、すなわちＩＰＤを駆動するか否かを示すデータであり、「１」はＩＰＤを駆動し、「０」はＩＰＤを駆動しない（停止させたままとする）。なお、簡便のため、すべてのポート０〜３に対して、駆動データを１としているが、駆動データは図１４の例に限定されるものではない。
【０１０２】
図１２に示すように、タイマ割込周期Ｔ４〜Ｔ８において、ＩＰＤをオン動作させ、残りのタイマ割込周期（Ｔ１〜Ｔ３、Ｔ９、Ｔ１０）において、ＩＰＤをオフ動作させる場合、マイクロプロセッサ３０は、図１４に示すポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ４の位置に一括に書き込む。タイマ割込周期Ｔ４の位置での書き込みの後、マイクロプロセッサ３０は、ポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ５の位置に一括に書き込む。以下、同様にして、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ８の位置まで書き込み処理を繰り返す。これにより、図１２に示すようなＰＷＭ制御を行うためのＰＷＭデータを生成することができる。
【０１０３】
上述のように、マイクロプロセッサ３０は、タイマ割込周期（所定周期）毎の１組のＰＷＭデータ（動作データ）を纏めて１回のループ（繰返処理）としてＰＷＭデータ生成用バッファテーブル５２に書き込む。これにより、１ビットずつデータを、順番にバッファに書き込む場合に比べると、ＰＷＭデータを生成するための処理時間を短縮することができ、処理労力（処理に係る負荷）を低減することができる。
【０１０４】
次に、位相シフトがある場合のＰＷＭデータ生成の具体例について説明する。位相シフトがある場合には、後述の位相シフトデータ及び反転位相シフトデータを用いる。また、ポート駆動データは、図１４に例示したデータを用いる。
【０１０５】
図１５はデューティ比６０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図であり、図１６は図１５のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。ＰＷＭデータ生成用バッファテーブル５２は、予めクリアされているとする。
【０１０６】
図１７Ａは位相シフトデータの一例を示す説明図であり、図１７Ｂは反転位相シフトデータの一例を示す説明図である。位相シフトデータ（前段動作データとも称する）は、ＰＷＭ周期の前段で複数のＩＰＤそれぞれをタイマ割込周期毎に順次最初にオン動作させるためのデータである。ここで、前段とは、例えば、ＰＷＭ周期内の最初のタイマ割込周期から所要数のタイマ割込周期までの期間をいう。
【０１０７】
例えば、ＩＰＤが４個あり、ＩＰＤを駆動する出力部のポートを、それぞれポート０、１、２、３とする。また、ＩＰＤをオン動作させるデータを１とし、オフ動作させるデータを０とする。位相シフトデータのタイマ割込周期の順位を最初から０、１、２…とする。図１７Ａに示すように、位相シフトデータは、ポート０に対しては、タイマ割込周期の順番に、１、１、１となる。また、ポート１に対しては、タイマ割込周期の順番に、０、１、１となる。また、ポート２に対しては、タイマ割込周期の順番に、０、０、１となる。さらに、ポート３に対しては、タイマ割込周期の順番に、０、０、０となる。
【０１０８】
すなわち、位相シフトデータは、各ＩＰＤが、タイマ割込周期毎に順次オン動作するような動作データとなっている。つまり、位相シフトデータは、ＰＷＭ制御において、各ＩＰＤがオン動作を開始するタイミング（タイマ割込周期）をシフトさせたデータである。なお、位相シフトデータには、任意のタイマ割込周期で、すべてのＩＰＤがオン動作するようなデータは含まれない。
【０１０９】
反転位相シフトデータ（後段動作データとも称する）は、ＰＷＭ周期の後段で複数のＩＰＤそれぞれをタイマ割込周期毎に順次最初にオフ動作させるためのデータである。後段とは、例えば、ＰＷＭ周期内の所要のタイマ割込周期から最後のタイマ割込周期までの期間をいう。
【０１１０】
例えば、ＩＰＤが４個あり、ＩＰＤを駆動する出力部のポートを、それぞれポート０、１、２、３とする。また、ＩＰＤをオン動作させるデータを１とし、オフ動作させるデータを０とする。反転位相シフトデータのタイマ割込周期の順位を最初から０、１、２…とする。図１７Ｂに示すように、反転位相シフトデータは、ポート０に対しては、タイマ割込周期の順番に、０、０、０となる。また、ポート１に対しては、タイマ割込周期の順番に、１、０、０となる。また、ポート２に対しては、タイマ割込周期の順番に、１、１、０となる。さらに、ポート３に対しては、タイマ割込周期の順番に、１、１、１となる。
【０１１１】
すなわち、反転位相シフトデータは、各ＩＰＤが、タイマ割込周期毎に順次オフ動作するような動作データとなっている。つまり、反転位相シフトデータは、ＰＷＭ制御において、各ＩＰＤがオフ動作を開始するタイミング（タイマ割込周期）をシフトさせたデータである。なお、反転位相シフトデータには、任意のタイマ割込周期で、すべてのＩＰＤがオン動作するようなデータは含まれない。
【０１１２】
なお、反転位相シフトデータは、位相シフトデータの「１」を「０」に反転させ、位相シフトデータの「０」を「１」に反転させた構成となっている。図１１の例では、反転位相シフトデータテーブル５４を備え、反転位相シフトデータを反転位相シフトデータテーブル５４に記憶するようにしてあるが、かかる構成に限定されるものではない。例えば、反転回路を備えておき、位相シフトデータを反転回路で反転させて反転位相シフトデータを生成することもできる。
【０１１３】
図１５に示すように、ポート０に対して、タイマ割込周期Ｔ１〜Ｔ６において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ７〜Ｔ１０において、ＩＰＤをオフ動作させるとする。また、ポート１に対して、タイマ割込周期Ｔ２〜Ｔ７において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１、Ｔ８〜Ｔ１０において、ＩＰＤをオフ動作させるとする。また、ポート２に対して、タイマ割込周期Ｔ３〜Ｔ８において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１〜Ｔ２、Ｔ９〜Ｔ１０において、ＩＰＤをオフ動作させるとする。さらに、ポート３に対して、タイマ割込周期Ｔ４〜Ｔ９において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１〜Ｔ３、Ｔ１０において、ＩＰＤをオフ動作させるとする。
【０１１４】
図１６に示すように、ＰＷＭデータ生成用バッファテーブル５２は、タイマ割込周期がＴ１からＴ３までの前段位相シフト部５２１、タイマ割込周期がＴ４からＴ６までの位相シフトしない部分５２２、タイマ割込周期がＴ７からＴ９までの後段位相シフト部５２３に分けることができる。前段位相シフト部５２１は、位相シフトデータが書き込まれる領域であり、位相シフトしない部分５２２は、ポート駆動データが書き込まれる領域であり、後段位相シフト部５２３は、反転位相シフトデータが書き込まれる領域である。
【０１１５】
つまり、マイクロプロセッサ３０は、図１４に示すポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ４の位置に一括に書き込む。タイマ割込周期Ｔ４の位置での書き込みの後、マイクロプロセッサ３０は、ポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ５の位置に一括に書き込む。以下、同様にして、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ６の位置まで書き込み処理を繰り返す。
【０１１６】
つまり、マイクロプロセッサ３０は、中段生成部としての機能を有し、ＰＷＭデータ生成用バッファテーブル５２の前段及び後段の間の中段（図１６の例では、タイマ割込周期Ｔ４からＴ６まで）で複数のＩＰＤそれぞれをタイマ割込周期毎にオン動作させるための中段動作データを生成する。中段とは、ＰＷＭ周期内で前段と後段とを除いた残りのタイマ割込周期の期間である（図１６の位相シフトしない部分）。
【０１１７】
すなわち、中段動作データは、各ＩＰＤが、タイマ割込周期毎に常にオン動作するような動作データとなっている。なお、任意のポートに対して、ＰＷＭ周期に対する、前段動作データ、中段動作データ及び後段動作データ内でデータが１となっている各タイマ割込周期を合計した合計周期の割合がデューティ比となる。
【０１１８】
次に、マイクロプロセッサ３０は、図１７Ｂに示す反転位相シフトデータをタイマ割込周期毎に纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ７〜Ｔ９それぞれの位置に一括に書き込む。
【０１１９】
すなわち、マイクロプロセッサ３０は、後段生成部としての機能を有し、ＰＷＭ周期の後段で複数のＩＰＤそれぞれをタイマ割込周期毎に順次最初にオフ動作させるための後段動作データを生成する。
【０１２０】
次に、マイクロプロセッサ３０は、図１７Ａに示す位相シフトデータをタイマ割込周期毎に纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ１〜Ｔ３それぞれの位置に一括に書き込む。
【０１２１】
すなわち、マイクロプロセッサ３０は、前段生成部としての機能を有し、ＰＷＭ周期の前段で複数のＩＰＤそれぞれをタイマ割込周期毎に順次最初にオン動作させるための前段動作データを生成する。
【０１２２】
マイクロプロセッサ３０は、前段位相シフト部５２１のＰＷＭデータ（前段動作データ）、位相シフトしない部分５２２のＰＷＭデータ（中段動作データ）及び後段位相シフト部５２３のＰＷＭデータ（後段動作データ）それぞれをタイマ割込周期毎に纏めてＰＷＭデータ生成用バッファテーブル５２に順次書き込む。これにより、ＰＷＭデータを１個ずつ（１ビットずつ）順番にバッファに書き込んでループを繰り返す場合に比べると、タイマ割込周期毎のＰＷＭデータを１回のループで書き込むことができるので、ＰＷＭデータを生成するための処理時間を短縮することができ、処理労力（処理に係る負荷）を低減することができる。
【０１２３】
図１８はデューティ比７０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図であり、図１９は図１８のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。ＰＷＭデータ生成用バッファテーブル５２は、予めクリアされているとする。ポート駆動データは、図１４に例示したデータを用いる。また、位相シフトデータ及び反転位相シフトデータは、図１７に例示したデータを用いる。
【０１２４】
図１８に示すように、ポート０に対して、タイマ割込周期Ｔ１〜Ｔ７において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ８〜Ｔ１０において、ＩＰＤをオフ動作させるとする。また、ポート１に対して、タイマ割込周期Ｔ２〜Ｔ８において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１、Ｔ９〜Ｔ１０において、ＩＰＤをオフ動作させるとする。また、ポート２に対して、タイマ割込周期Ｔ３〜Ｔ９において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１〜Ｔ２、Ｔ１０において、ＩＰＤをオフ動作させるとする。さらに、ポート３に対して、タイマ割込周期Ｔ４〜Ｔ１０において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１〜Ｔ３において、ＩＰＤをオフ動作させるとする。
【０１２５】
図１９に示すように、ＰＷＭデータ生成用バッファテーブル５２は、タイマ割込周期がＴ１からＴ３までの前段位相シフト部５２１、タイマ割込周期がＴ４からＴ７までの位相シフトしない部分５２２、タイマ割込周期がＴ８からＴ１０までの後段位相シフト部５２３に分けることができる。前段位相シフト部５２１は、位相シフトデータが書き込まれる領域であり、位相シフトしない部分５２２は、ポート駆動データが書き込まれる領域であり、後段位相シフト部５２３は、反転位相シフトデータが書き込まれる領域である。
【０１２６】
つまり、マイクロプロセッサ３０は、図１４に示すポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ４の位置に一括に書き込む。タイマ割込周期Ｔ４の位置での書き込みの後、マイクロプロセッサ３０は、ポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ５の位置に一括に書き込む。以下、同様にして、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ７の位置まで書き込み処理を繰り返す。
【０１２７】
上述のように、マイクロプロセッサ３０は、ＰＷＭ制御のデユーティ比に応じて位相シフトしない部分５２２のＰＷＭデータ（中段動作データ）に含まれるタイマ割込周期の数を調整する。上述のように、デューティ比が６０％の場合には、位相シフトしない部分５２２のＰＷＭデータに含まれるタイマ割込周期の数が３であるのに対し(図１６)、デューティ比が７０％の場合には、位相シフトしない部分５２２のＰＷＭデータに含まれるタイマ割込周期の数が４である（図１９）。これにより、タイマ割込周期毎の１組の動作データの書き込み回数を増減するだけで所望のデユーティ比でＩＰＤを動作させることができる。
【０１２８】
また、図１６の場合と同様に、ＰＷＭデータを１個ずつ（１ビットずつ）順番にバッファに書き込んでループを繰り返す場合に比べると、タイマ割込周期毎のＰＷＭデータを１回のループで書き込むことができるので、ＰＷＭデータを生成するための処理時間を短縮することができ、処理労力（処理に係る負荷）を低減することができる。
【０１２９】
次に、デユーティ比が大きい場合に、ＰＷＭデータ生成用バッファテーブル５２の位相シフト超過部を用いる例について説明する。
【０１３０】
図２０はデューティ比８０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図であり、図２１は図２０のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。ＰＷＭデータ生成用バッファテーブル５２は、位相シフト超過部として、タイマ割込周期Ｄ１、Ｄ２、Ｄ３で示す位置にデータを保持する。なお、ＰＷＭデータ生成用バッファテーブル５２は、予めクリアされているとする。ポート駆動データは、図１４に例示したデータを用いる。また、位相シフトデータ及び反転位相シフトデータは、図１７に例示したデータを用いる。
【０１３１】
図２０に示すように、ポート０に対して、タイマ割込周期Ｔ１〜Ｔ８において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ９〜Ｔ１０において、ＩＰＤをオフ動作させるとする。また、ポート１に対して、タイマ割込周期Ｔ２〜Ｔ９において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１、Ｔ１０において、ＩＰＤをオフ動作させるとする。また、ポート２に対して、タイマ割込周期Ｔ３〜Ｔ１０において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１〜Ｔ２において、ＩＰＤをオフ動作させるとする。さらに、ポート３に対して、タイマ割込周期Ｔ１、Ｔ４〜Ｔ１０において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ２〜Ｔ３において、ＩＰＤをオフ動作させるとする。
【０１３２】
この場合、図２１に示すように、ＰＷＭデータ生成用バッファテーブル５２は、タイマ割込周期がＴ１からＴ３までの前段位相シフト部５２１、タイマ割込周期がＴ４からＴ８までの位相シフトしない部分５２２、タイマ割込周期がＴ９からＴ１０、及び位相シフト超過部のタイマ割込周期Ｄ１までの後段位相シフト部５２３に分けることができる。
【０１３３】
つまり、マイクロプロセッサ３０は、図１４に示すポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ４の位置に一括に書き込む。以下、同様にして、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ８の位置まで書き込み処理を繰り返す。
【０１３４】
マイクロプロセッサ３０は、周期判定部としての機能を有し、前段位相シフト部５２１のＰＷＭデータ（前段動作データ）、位相シフトしない部分５２２のＰＷＭデータ（中段動作データ）及び後段位相シフト部５２３のＰＷＭデータ（後段動作データ）それぞれに含まれるタイマ割込周期を合計した合計周期がＰＭＷ周期を越えているか否かを判定する。
【０１３５】
例えば、出力部のポートを、ポート０、１、２、３とし、デューティ分解能の数を１０とする。分解能の数は、ＰＷＭ周期内のタイマ割込周期の数であり、分解能の数が１０の場合、１ＰＷＭ周期内に１０個のタイマ割込周期が含まれる。１０個のタイマ割込周期を最初から、Ｔ１、Ｔ２、…Ｔ１０で表すとする。また、ポート数が４つあるので、前段位相シフト部５２１及び後段位相シフト部５２３は、それぞれ３個のタイマ割込周期を含む。
【０１３６】
そして、デューティ比を８０％とすると、任意のポートに対して、ＰＷＭ周期内でデータが１となるタイマ割込周期の数は８個となる。例えば、図２１に示すように、ポート０に対して前段位相シフト部５２１のＰＷＭデータを、（１、１、１）とし、後段位相シフト部５２３のＰＷＭデータを、（０、０、０）とすると、デューティ比を８０％とするためには、ポート０に対する位相シフトしない部分５２２のＰＷＭデータは、（１、１、１、１、１）の如く、タイマ割込周期の数を５とする必要がある。そうすると、前段位相シフト部５２１のＰＷＭデータ、位相シフトしない部分５２２のＰＷＭデータ及び後段位相シフト部５２３のＰＷＭデータそれぞれに含まれるタイマ割込周期を合計した数は１１（＝３＋５＋３）となり、合計周期がＰＷＭ周期を超えることなる。この場合、ポート０に対するタイマ割込周期毎のデータは、（１、１、１、１、１、１、１、１、０、０、０）となり（１１個のデータ）、最後のタイマ割込周期Ｄ１の「０」が超過分となる。この場合、１タイマ割込周期分だけ超過している。
【０１３７】
また、各ポートの位相シフトを考慮して、例えば、ポート３に対して前段位相シフト部５２１のＰＷＭデータを、（０、０、０）とし、後段位相シフト部５２３のＰＷＭデータを、（１、１、１）とすると、デューティ比を８０％とするためには、ポート３に対する位相シフトしない部分５２２のＰＷＭデータは、（１、１、１、１、１）の如く、タイマ割込周期の数を５とする必要がある。そうすると、前段位相シフト部５２１のＰＷＭデータ、位相シフトしない部分５２２のＰＷＭデータ及び後段位相シフト部５２３のＰＷＭデータそれぞれに含まれるタイマ割込周期を合計した数は１１（＝３＋５＋３）となり、合計周期がＰＷＭ周期を超えることなる。この場合、ポート３に対するタイマ割込周期毎のデータは、（０、０、０、１、１、１、１、１、１、１、１）となり（１１個のデータ）、最後のタイマ割込周期Ｄ１の「１」が超過分となる。この場合、１タイマ割込期分だけ超過している。
【０１３８】
マイクロプロセッサ３０は、合計周期がＰＷＭ周期を越えていると判定した場合、ＯＲ回路１７を用いて、後段位相シフト部５２３のＰＷＭデータのうち、周期が超えた部分に相当するデータ及び前段位相シフト部５２１のＰＷＭデータのタイマ割込周期毎の論理和をタイマ割込周期の順に算出する。そして、マイクロプロセッサ３０は、ＯＲ回路５７で算出したデータを前段位相シフト部５２１のＰＷＭデータとして生成する。
【０１３９】
図２１に示すように、例えば、ポート０については、１タイマ割込周期（Ｄ１）の超過分のデータが「０」であり、前段位相シフト部５２１の最初の１タイマ割込周期（Ｔ１）のデータが「１」であるから、両者の論理和は「１」となる。前段位相シフト部５２１のＰＷＭデータは、元々（１、１、１）であるので、前段位相シフト部５２１の最初のタイマ割込周期（Ｔ１）のデータは変更されない。この場合、ポート０に対するＰＷＭ周期内のタイマ割込周期毎のデータは、Ｔ１からＴ１０の順に、デューティ比が８０％の（１、１、１、１、１、１、１、１、０、０）となる。なお、ポート１、２についても、ポート０と同様である。
【０１４０】
一方、ポート３については、１タイマ割込周期（Ｄ１）の超過分のデータが「１」であり、前段位相シフト部５２１の最初の１タイマ割込周期（Ｔ１）のデータが「０」であるから、両者の論理和は「１」となる。この場合、ポート３に対する前段位相シフト部５２１の最初のタイマ割込周期のデータは「０」から「１」に変更され、前段位相シフト部５２１のＰＷＭデータは、（０、０、０）から（１、０、０）に変更される。このため、ポート３に対するＰＷＭ周期内のタイマ割込周期毎のデータは、Ｔ１からＴ１０の順に（１、０、０、１、１、１、１、１、１、１）となり、デューティ比が８０％の正しいＰＷＭデータ（動作データ）を生成することができる。
【０１４１】
図２２はデューティ比９０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図であり、図２３は図２２のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。ＰＷＭデータ生成用バッファテーブル５２は、予めクリアされているとする。ポート駆動データは、図１４に例示したデータを用いる。また、位相シフトデータ及び反転位相シフトデータは、図１７に例示したデータを用いる。
【０１４２】
図２２に示すように、ポート０に対して、タイマ割込周期Ｔ１〜Ｔ９において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１０において、ＩＰＤをオフ動作させるとする。また、ポート１に対して、タイマ割込周期Ｔ２〜Ｔ１０において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１において、ＩＰＤをオフ動作させるとする。また、ポート２に対して、タイマ割込周期Ｔ３〜Ｔ１０、Ｔ１において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ２において、ＩＰＤをオフ動作させるとする。さらに、ポート３に対して、タイマ割込周期Ｔ１、Ｔ４〜Ｔ１０、Ｔ１〜Ｔ２において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ３において、ＩＰＤをオフ動作させるとする。
【０１４３】
この場合、図２３に示すように、ＰＷＭデータ生成用バッファテーブル５２は、タイマ割込周期がＴ１からＴ３までの前段位相シフト部５２１、タイマ割込周期がＴ４からＴ９までの位相シフトしない部分５２２、タイマ割込周期がＴ１０、及び位相シフト超過部のタイマ割込周期Ｄ１〜Ｄ２までの後段位相シフト部５２３に分けることができる。
【０１４４】
つまり、マイクロプロセッサ３０は、図１４に示すポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ４の位置に一括に書き込む。以下、同様にして、ＰＷＭデータ生成用バッファテーブル５２のタイマ割込周期Ｔ９の位置まで書き込み処理を繰り返す。
【０１４５】
デューティ比を９０％とすると、任意のポートに対して、ＰＷＭ周期内でデータが１となるタイマ割込周期の数は９個となる。例えば、図２３に示すように、ポート０に対して前段位相シフト部５２１のＰＷＭデータを、（１、１、１）とし、後段位相シフト部５２３のＰＷＭデータを、（０、０、０）とすると、デューティ比を９０％とするためには、ポート０に対する位相シフトしない部分５２２のＰＷＭデータは、（１、１、１、１、１、１）の如く、タイマ割込周期の数を６とする必要がある。そうすると、前段位相シフト部５２１のＰＷＭデータ、位相シフトしない部分５２２のＰＷＭデータ及び後段位相シフト部５２３のＰＷＭデータそれぞれに含まれるタイマ割込周期を合計した数は１２（＝３＋６＋３）となり、合計周期がＰＷＭ周期を超えることなる。この場合、ポート０に対するタイマ割込周期毎のデータは、（１、１、１、１、１、１、１、１、１、０、０、０）となり（１２個のデータ）、位相シフト超過部のタイマ割込周期Ｄ１、Ｄ２の「０」が超過分となる。この場合、２タイマ割込周期分だけ超過している。
【０１４６】
また、各ポートの位相シフトを考慮して、例えば、ポート３に対して前段位相シフト部５２１のＰＷＭデータを、（０、０、０）とし、後段位相シフト部５２３のＰＷＭデータを、（１、１、１）とすると、デューティ比を９０％とするためには、ポート３に対する位相シフトしない部分５２２のＰＷＭデータは、（１、１、１、１、１、１）の如く、タイマ割込周期の数を６とする必要がある。そうすると、前段位相シフト部５２１のＰＷＭデータ、位相シフトしない部分５２２のＰＷＭデータ及び後段位相シフト部５２３のＰＷＭデータそれぞれに含まれるタイマ割込周期を合計した数は１２（＝３＋６＋３）となり、合計周期がＰＷＭ周期を超えることなる。この場合、ポート３に対するタイマ割込周期毎のデータは、（０、０、０、１、１、１、１、１、１、１、１、１）となり（１２個のデータ）、位相シフト超過部のタイマ割込周期Ｄ１、Ｄ２の「１」が超過分となる。この場合、２タイマ割込期分だけ超過している。
【０１４７】
図２３に示すように、例えば、ポート０については、タイマ割込周期（Ｄ１）の超過分のデータが「０」であり、前段位相シフト部５２１の最初のタイマ割込周期（Ｔ１）のデータが「１」であるから、両者の論理和は「１」となる。また、ポート０については、タイマ割込周期（Ｄ２）の超過分のデータが「０」であり、前段位相シフト部５２１の２番目のタイマ割込周期（Ｔ２）のデータが「１」であるから、両者の論理和は「１」となる。前段位相シフト部５２１のＰＷＭデータは、元々（１、１、１）であるので、前段位相シフト部５２１のタイマ割込周期（Ｔ１、Ｔ２）のデータは変更されない。この場合、ポート０に対するＰＷＭ周期内のタイマ割込周期毎のデータは、Ｔ１からＴ１０の順に、（１、１、１、１、１、１、１、１、０、０）となる。なお、ポート１についても、同様に、前段位相シフト部５２１のタイマ割込周期（Ｔ１、Ｔ２）のデータは変更されない。
【０１４８】
一方、ポート３については、タイマ割込周期（Ｄ１）の超過分のデータが「１」であり、前段位相シフト部５２１の最初のタイマ割込周期（Ｔ１）のデータが「０」であるから、両者の論理和は「１」となる。また、ポート３については、タイマ割込周期（Ｄ２）の超過分のデータが「１」であり、前段位相シフト部５２１の２番目のタイマ割込周期（Ｔ２）のデータが「０」であるから、両者の論理和は「１」となる。この場合、ポート３に対する前段位相シフト部５２１のタイマ割込周期（Ｔ１、Ｔ２）のデータは「０」から「１」に変更され、前段位相シフト部５２１のＰＷＭデータは、（０、０、０）から（１、１、０）に変更される。このため、ポート３に対するＰＷＭ周期内のタイマ割込周期毎のデータは、Ｔ１からＴ１０の順に（１、１、０、１、１、１、１、１、１、１）となり、デューティ比が９０％の正しいＰＷＭデータ（動作データ）を生成することができる。なお、ポート２についても、前段位相シフト部５２１のＰＷＭデータは、（０、０、１）から（１、０、１）に変更される。
【０１４９】
次に、デューティ比が小さい場合について説明する。デューティ比が小さい場合とは、前段位相シフト部５２１及び位相シフトしない部分５２２を用いることができない場合であり、前述の各例では、デューティ比は少なくとも４０％以上であることが必要であるから、デューティ比が３０％以下となるような場合である。なお、前段位相シフト部５２１及び位相シフトしない部分５２２を用いることができるか否かは、デューティ比だけでなく、ポート数、デューティ分解能の数、ポート間位相シフト量に応じて適宜決定することができる。
【０１５０】
図２４はデューティ比２０％で位相シフトがある場合のＰＷＭ制御の一例を示す説明図であり、図２５は図２４のＰＷＭ制御を行うためのＰＷＭデータ生成用バッファテーブル５２で生成されるＰＷＭデータの一例を示す説明図である。なお、ＰＷＭデータ生成用バッファテーブル５２は、予めクリアされているとする。
【０１５１】
図２４に示すように、ポート０に対して、タイマ割込周期Ｔ１〜Ｔ２において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ３〜Ｔ１０において、ＩＰＤをオフ動作させるとする。また、ポート１に対して、タイマ割込周期Ｔ２〜Ｔ３において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１、Ｔ４〜Ｔ１０において、ＩＰＤをオフ動作させるとする。また、ポート２に対して、タイマ割込周期Ｔ３〜Ｔ４において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１〜Ｔ２、Ｔ５〜Ｔ１０において、ＩＰＤをオフ動作させるとする。さらに、ポート３に対して、タイマ割込周期Ｔ４〜Ｔ５において、ＩＰＤをオン動作させ、タイマ割込周期Ｔ１〜Ｔ３、Ｔ６〜Ｔ１０において、ＩＰＤをオフ動作させるとする。
【０１５２】
この場合、図２５に示すように、まず、ポート０を選択し、タイマ割込周期Ｔ１〜Ｔ２に対してデータ「１」を書き込み、タイマ割込周期Ｔ３〜Ｔ１０に対してデータ「０」を書き込む。他のポートについても同様である。なお、ＰＷＭデータ生成用バッファテーブル５２に予めデータ「０」が書き込まれている（クリアされている）場合には、ポート０については、タイマ割込周期Ｔ１、Ｔ２に対してデータ「１」だけを書き込み、ポート１については、タイマ割込周期Ｔ２、Ｔ３に対してデータ「１」だけを書き込み、ポート２については、タイマ割込周期Ｔ３、Ｔ４に対してデータ「１」だけを書き込み、ポート３については、タイマ割込周期Ｔ４、Ｔ５に対してデータ「１」だけを書き込むこともできる。これにより、書込み処理に要する時間を短縮することができる。
【０１５３】
次に、第３実施形態を、図１０と対比させた態様で説明する。図２６は第３実施形態のマイクロプロセッサ３０が生成するＰＷＭデータの一例を示す説明図である。すなわち、以下では、図２６に例示するＰＷＭデータをどのように生成するかについて説明する。図２６に示すように、生成するＰＷＭデータは、デューティ比を９５％、デューティ分解能を１％（デューティ分解能の数を１００）、ポート間位相シフト量を２％、駆動するポートを０、２、４、６とする。
【０１５４】
図２７は図２６のＰＷＭデータを生成するために用いるポート駆動データを示す説明図である。駆動するポートが０、２、４、６であるので、ポート駆動データは、ポート０、２、４、６に対しては「１」となり、他のポートに対しては「０」となっている。
【０１５５】
図２８Ａは図２６のＰＷＭデータを生成するために用いる位相シフトデータを示す説明図であり、図２８Ｂは図２６のＰＷＭデータを生成するために用いる反転位相シフトデータを示す説明図である。ポート間位相シフト量が２％である場合、隣り合うポート間では、２タイマ割込周期分だけシフトするので、ポート数が８であるときの、位相シフトデータに含まれるタイマ割込周期の数は、１４[＝２×（８−１）]となる。図２８Ａに示すように、ポート０については、０番目から１３番目までのすべてのデータは「１」である。また、ポート１については、０番目及び１番目のデータが「０」であり、２番目から１３番目までのすべてのデータは「１」である。他のポートについても同様であり、ポート７については、０番目から１３番目までのすべてのデータは「０」である。
【０１５６】
また、図２８Ｂに示すように、反転位相シフトデータは、位相シフトデータの「０」、「１」をそれぞれ「１」、「０」に反転させたデータとなっている。
【０１５７】
図２９Ａ、図２９Ｂ、図３０Ａ、図３０Ｂは第３実施形態の動作データの生成方法の一例を示す模式図である。図２９Ａは、ＰＷＭデータ生成用バッファテーブル５２の構成を示す。ＰＷＭデータ生成用バッファテーブル５２は、ポートレジスタ３３のポート数（図２９の例では、ポート０からポート７の８ポート）に対応するエントリを有する。そして、ＰＷＭデータ生成用バッファテーブル５２は、それぞれのポートに対して、デューティ分解能の数（図２９の例では、番号[data num]０から９９までの１００個）と位相シフト超過部（図２９の例では、番号[data num]１００から１１３までの１４個）との合計数（１１４個）のデータを保持することができる。なお、ＰＷＭデータ生成用バッファテーブル５２の各番号は、タイマ割込周期に対応している。このように、ＰＷＭデータ生成用バッファテーブル５２は、ＰＷＭ周期内のＰＷＭデータ（動作データ）として、８００個（８×１００）のデータを保持し、位相シフト超過部として、１１２（８×１４）のデータを保持することができる。なお、ポート数、デューティ分解能の数は一例であって、図２９の例に限定されない。
【０１５８】
ＰＷＭデータを生成する場合、まず、図２９Ａに示すように、ＰＷＭデータ生成用バッファテーブル５２をクリアする（全てのデータを０にする）。
【０１５９】
次に、図２９Ｂに示すように、マイクロプロセッサ３０は、図２７に示すポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２の１４番目の位置に一括に書き込む。０番目から１３番目までは、位相シフトデータを書き込む位置であるので、その次の１４番目の位置を最初の書き込み位置としている。１４番目の位置での書き込みの後、マイクロプロセッサ３０は、ポート駆動データを纏めて、ＰＷＭデータ生成用バッファテーブル５２の１５番目の位置に一括に書き込む。以下、同様にして、ＰＷＭデータ生成用バッファテーブル５２の９４番目の位置まで書き込み処理を繰り返す。
【０１６０】
次に、図３０Ａに示すように、マイクロプロセッサ３０は、図２８Ｂに示す反転位相シフトデータを、タイマ割込周期毎に纏めて、９５番目の位置から１０８番目の位置まで順次書き込む。この場合、反転位相シフトデータの０番目のデータを、ＰＷＭデータ生成用バッファテーブル５２の９５番目の位置に書き込み、以下同様にして、反転位相シフトデータの１３番目のデータを、ＰＷＭデータ生成用バッファテーブル５２の１０８番目の位置に書き込む。
【０１６１】
次に、図３０Ｂに示すように、マイクロプロセッサ３０は、１００番目から１１３番目までの位相シフト超過部の各データと、位相シフトデータとの論理和を算出し、算出した結果のデータを、タイマ割込周期毎に纏めて、ＰＷＭデータ生成用バッファテーブル５２の０番目から１３番目までの位置に書き込む。
【０１６２】
最後にＰＷＭデータ生成用バッファテーブル５２に生成したデータのうち、位相シフト超過部のデータを除いたＰＷＭデータ（０番目から９９番目のデータ）をメモリ３４に記憶する。これにより、メモリ３４には、ＰＷＭデータ(動作データ)が記憶される。これにより、図２６に示すＰＷＭデータを生成することができる。
【０１６３】
上述のように、ポート駆動データ、位相シフトデータ及び反転位相シフトデータという簡単なデータを予め準備しておくだけで、所望のデューティ比のＰＷＭデータを正しく生成することができる。また、タイマ割込周期毎に纏めてデータを書き込むことにより、書き込み処理の繰り返し回数を低減することができ、１ポート毎にデータを書き込む場合に比べて、書込み処理に要する時間（ＰＷＭデータの生成に要する時間）を短縮することができ、書込み処理に係る負荷を低減することができる。
【符号の説明】
【０１６４】
１  バッテリ
１１、１２〜１８  ＩＰＤ（電源部、電流検出部）
２１、２２〜２８  負荷
３０  マイクロプロセッサ（生成部、書込部、周期判定部、制御部）
３１  タイマ
３２  ＤＭＡ（転送部）
３３  ポートレジスタ（出力部）
３４  メモリ（記憶部）
４１  電圧検出回路（電圧検出部）
４２  インタフェース回路（取得部）
５０  電源制御装置
５１  ポート駆動データテーブル（中段生成部）
５２  ＰＷＭデータ生成用バッファテーブル（テーブル）
５３  位相シフトデータテーブル（前段生成部）
５４  反転位相シフトデータテーブル（後段生成部）
５５  ＡＮＤ（前段生成部）
５６  ＡＮＤ（後段生成部）
５７  ＯＲ（論理和算出部）
【図１】
2015145805.tif 000003
【図２】
2015145805.tif 000004
【図３】
2015145805.tif 000005
【図４】
2015145805.tif 000006
【図５】
2015145805.tif 000007
【図６】
2015145805.tif 000008
【図７】
2015145805.tif 000009
【図８】
2015145805.tif 000010
【図９】
2015145805.tif 000011
【図１０Ａ】
2015145805.tif 000012
【図１０Ｂ】
2015145805.tif 000013
【図１０Ｃ】
2015145805.tif 000014
【図１１】
2015145805.tif 000015
【図１２】
2015145805.tif 000016
【図１３】
2015145805.tif 000017
【図１４】
2015145805.tif 000018
【図１５】
2015145805.tif 000019
【図１６】
2015145805.tif 000020
【図１７Ａ】
2015145805.tif 000021
【図１７Ｂ】
2015145805.tif 000022
【図１８】
2015145805.tif 000023
【図１９】
2015145805.tif 000024
【図２０】
2015145805.tif 000025
【図２１】
2015145805.tif 000026
【図２２】
2015145805.tif 000027
【図２３】
2015145805.tif 000028
【図２４】
2015145805.tif 000029
【図２５】
2015145805.tif 000030
【図２６】
2015145805.tif 000031
【図２７】
2015145805.tif 000032
【図２８Ａ】
2015145805.tif 000033
【図２８Ｂ】
2015145805.tif 000034
【図２９Ａ】
2015145805.tif 000035
【図２９Ｂ】
2015145805.tif 000036
【図３０Ａ】
2015145805.tif 000037
【図３０Ｂ】
2015145805.tif 000038
【図３１】
2015145805.tif 000039
【図３２】
2015145805.tif 000040
【図３３】
2015145805.tif 000041
【国際調査報告】
2015145805.tif 000042
2015145805.tif 000043
2015145805.tif 000044
2015145805.tif 000045