(58)【調査した分野】(Int.Cl.,DB名)
PWM信号に基づいて、スイッチングを行うスイッチ部を有し、直流の電源電圧を任意の直流電圧に変換するDC/DCコンバータから出力される出力電圧に基づいて、前記DC/DCコンバータが生成する電源電圧を制御する電圧制御部を備え、
前記電圧制御部は、
前記DC/DCコンバータから出力される電圧をディジタルデータに変換するA/D変換器と、
前記A/D変換器が変換した前記ディジタルデータに基づいて、前記スイッチ部をオンする時間的割合を算出し、制御ディジタルデータとして出力するディジタル演算器と、
前記ディジタル演算器が算出した前記制御ディジタルデータに基づいて、前記スイッチ部を駆動する前記PWM信号を生成するPWM生成部と、
を有し、
前記ディジタル演算器は、少なくとも前記A/D変換器のサンプリング周波数に同期して、前記A/D変換器が変換したディジタルデータから設定された指令値を減算した誤差データ、前記ディジタル演算器におけるディジタル演算の内部状態データ、およびディジタルフィルタによる算出結果データをそれぞれ保持および更新し、前記算出結果データに加算するオフセットデータを保持し、前記誤差データの時間的変化に応じて、前記ディジタル演算器が算出した前記制御ディジタルデータを次の算出結果データへの加算値とするように前記オフセットデータに保持し、前記内部状態データをクリアし、クリアした際の前記A/D変換器から出力される前記ディジタルデータを前記指令値とすることにより前記誤差データをクリアする、半導体集積回路装置。
【発明を実施するための形態】
【0033】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
【0034】
また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【0035】
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。
【0036】
同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは特に明示した場合および原理的に明らかにそうではないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【0037】
また、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。なお、図面をわかりやすくするために平面図であってもハッチングを付す場合がある。
【0038】
(実施の形態1)
〈概要〉
電源装置100は、インダクタ112とコンデンサ115とMOSFET113とを含んで入力を目標の出力に変換するパワーステージ110と、パワーステージ110のMOSFET113を駆動する制御系120とにて構成する。
【0039】
制御系120は、パワーステージ110の出力をディジタル値に変換するADC121と、位相補償部としてのIIRフィルタ計算結果にオフセット値を加算してMOSFET113の時比率とする減算器122およびDSP123とで構成するディジタル演算器と、時比率をパルス信号に変換してパワーステージ110のMOSFET113を駆動するPWM生成部124にて構成する。
【0040】
ディジタル演算器は、ADC121のサンプリング周期に呼応して、IIRフィルタ計算を実行し、並行してCPU127は誤差値の時間的変化を監視し、誤差値が所定の許容値以内の場合には指令値を目標値に線形に近づけていき、許容値を超過した場合は指令値を維持し、許容値の超過が所定の許容期間連続した場合は指令値を現在のパワーステージの出力にするとともに、IIRフィルタのZバッファの内部状態データを零クリアしてオフセット値を現在の時比率に基づき更新する。
【0042】
〈電源装置の構成例〉
図1は、本実施の形態1における電源装置の構成の一例を示す説明図である。この
図1では、入力電圧を昇圧して出力電圧をレギュレーションする電源装置100の例を示している。
【0043】
電源装置100は、例えば携帯電話やノート型パーソナルコンピュータなどの電子機器に設けられる電源装置であり、電子機器に備えられたバッテリを入力電圧として、電子機器の動作電源電圧となる直流電源を生成して出力するスイッチング電源装置である。
【0044】
電源装置100は、この他にも、停電時などにバッテリに蓄えた電力を供給する蓄電システムの電源装置などにも適用することができる。この場合、電源装置100には、バッテリから供給される直流電源電圧が入力される。
【0045】
そして、電源装置100によって、例えば200V程度の直流電圧を生成し、電源装置100の出力部に接続されたインバータ回路などに供給する。インバータ回路では、供給された200程度の直流電圧を交流100V程度の電源に変換して供給する。
【0046】
電源装置100は、パワーステージ110および電圧制御部である制御系120により構成されている。パワーステージ110は、入力電源端子111、インダクタ112、MOSFET113、ダイオード114、コンデンサ115、出力端子116、および抵抗117,118を有する。
【0047】
また、パワーステージ110におけるMOSFET113、ダイオード114、抵抗117,118、および制御系120は、たとえば、半導体集積回路装置内に設けられた回路である。パワーステージ110におけるインダクタ112およびコンデンサ115は、半導体集積回路装置の外部に設けられた回路である。
【0048】
なお、ここでは、一例としてパワーステージ110のMOSFET113、ダイオード114、および抵抗117,118を半導体集積回路装置内に設けた構成としたが、これらの回路は、半導体集積回路装置の外部に設けるようにしてもよい。
【0049】
入力電源端子111には、外部から直流電圧が入力される。また、インダクタ112、MOSFET113、ダイオード114、およびコンデンサ115によって一般的なDC/DCコンバータ回路が構成され、出力端子116を介して接続された外部の負荷に対して直流電圧を供給する。ダイオード114は、還流ダイオード、すなわちフリーホイールダイオードである。DC/DCコンバータ回路は、特に制限されないが、
図1においては、昇圧コンバータの代表的なトポロジであるブーストコンバータを例示している。
【0050】
パワーステージ110において、スイッチ部となるMOSFET113のゲートは、制御系120が出力するPWM信号であるゲート信号GSによってドライブされる。なお、ゲート信号GSは、必要に応じてドライバ101などを介してMOSFET113のゲートに入力される。
【0051】
抵抗117および抵抗118は、出力端子116間に直列接続されている。これら抵抗117,118によって分圧された信号は、出力電圧モニタ信号VMとして制御系120に出力されている。
【0052】
制御系120は、ADC121、減算器122、DSP123、PWM生成部124、DMAC( Direct Memory Access Controller)125,126、およびCPU127などを有する。また、減算器122およびDSP123によってディジタル演算器が構成されている。
【0053】
制御系120において、出力電圧モニタ信号VMは、A/D変換器であるADC121によってアナログ信号からディジタルデータに変換され、減算器122によって指令値データレジスタ131に設定される指令値Vrefから減算した誤差値データEoutが計算される。
【0054】
そして、DSP123によって位相補償した制御ディジタルデータである時比率データDoutが計算され、PWM生成部124によってパルス幅変調されることでゲート信号GSを生成してパワーステージ110を制御する。
【0055】
ADC121は、図中省略したが、PWM生成部124からキャリア周期開始パルス信号が入力されており、該キャリア周期開始パルス信号のエッジにて、出力電圧モニタ信号VMの電圧レベルを保持し、出力モニタディジタルデータMDDに変換して減算器122に出力する。
【0056】
同時に、図中省略したが減算器122に対しては変換終了信号が出力されており、ADC121は、該変換終了信号をアサートする。なお、この変換終了信号は、変換開始時にADC121がネゲートする。
【0057】
また、ADC121には、CPU127から出力される制御信号が入力され、上述したキャリア周期開始パルス信号と同様に動作する。ここで、CPU127が出力する制御信号は、例えばCPU127のメモリ空間上にマッピングされた機能レジスタへのビット操作にてアサート/ネゲートする信号である。
【0058】
減算器122は、ADC121からの変換終了信号がアサートしたことを受けて、指令値データレジスタ131の指令値Vrefから、出力モニタディジタルデータMDDを減算して、その結果を誤差値データ計算結果レジスタ130に書き込む。
【0059】
同時に、図中省略したがDMAC125に対しては転送要求パルス信号を出力する。なお、指令値データレジスタ131は、少なくともキャリア周波数でCPU127のプログラムによって書き換え可能なように構成される。
【0060】
減算器122は、例えば16ビット符号付整数演算器とし、指令値データレジスタ131および誤差値データ計算結果レジスタ130は、16ビットにて構成する。
【0061】
DMAC125は、減算器122からの転送要求パルス信号のエッジで、誤差値データ計算結果レジスタ130の内容を、DSP123の誤差値データEinの格納場所に書き込む。
【0062】
DSP123は、誤差値データEinが書き込まれたことに呼応して、予めDSP123にプログラムされているディジタルフィルタ計算であるIIR計算DFIを実行する。
【0063】
そして、IIR計算の結果であるデータdataに、オフセットoffsetを加算して時比率計算結果データDoutの格納場所に書き込み、同時に図中省略したがDMAC126に対して転送要求パルス信号を出力する。
【0064】
本実施の形態において、CPU127のプログラムは、誤差値データEinを監視して必要と判断した場合には、予めDSP123にプログラムされたIIR計算DFIとは別のルーチンを起動するなどの操作を行い、IIR計算の内部状態であるZバッファ群BFFの内部状態データを零クリアする。Zバッファ群BFFは、例えばZ00〜Zklである。但し、k=0〜各セクションkのタップ数−1、l=0〜セクション数−1である。
【0065】
続いて、そのときの時比率計算結果データDoutの格納場所の内容にCPU127が与える係数mを乗じたデータを新たなオフセットoffsetの内容として該オフセットoffsetの格納場所に書き込む。
【0066】
そして、そのときの指令値データレジスタ131の内容から誤差値データEinを減算したデータを新たな指令値データレジスタ131の内容として書き込む。その後、DSP123のプログラムが誤差値データEinが書き込まれることに呼応したIIR計算DFIの起動が可能な状態に戻すように構成される。
【0067】
DMAC126は、DSP123からの転送要求パルス信号のエッジで、時比率計算結果データDoutが格納された番地の内容を、PWM生成部124内の時比率データレジスタ150に書き込む。
【0068】
PWM生成部124は、ディジタルPWMで構成され、パワーステージ110のスイッチング周波数と同一周波数(以下、キャリア周波数と記載し、その周期をキャリア周期と記載する)の三角波を搬送波として、時比率データレジスタ150の内容をパルス幅変調したゲート信号GSを生成する。
【0069】
〈DSPの構成例〉
図2は、
図1の電源装置100が有するDSP123における構成の一例を示す説明図である。
【0070】
DSP123は、
図2に示すように、レジスタファイル201、積和演算レジスタ202、演算器203、コントロールストレージ204、およびプログラム実行制御部205を有する。
【0071】
レジスタファイル201は、演算器203にて演算の対象となるデータ格納領域である。このレジスタファイル201は、例えば16ビットレジスタの16本からなり、演算器203の演算に用いられるデータの格納領域である。
【0072】
レジスタファイル201は、CPUインタフェース206を介してCPU127あるいはDMAインタフェース207を介して制御系120内のその他の機能モジュール、例えば減算器122やPWM生成部124などとのデータアクセスが可能となっている。
【0073】
レジスタファイル201への書き込みが同一アドレスまたは同一時刻で競合した場合は、演算器203の演算結果の格納を最優先とされる。次いでDMAインタフェース207を優先し、優先順位の低いアクセスは、優先順の高い書き込みが終了するのを待ってから書き込むように、DMAインタフェース207およびCPUインタフェース206が構成される。
【0074】
演算器203は、16ビット固定小数点演算器、すなわち整数演算器である。演算器203は、コントロールストレージ204に格納されたプログラムの演算命令にしたがって、レジスタファイル201に格納された16ビットデータあるいは最大ビット(MSB:Most Significant Bit)側にビット拡張された36ビットの積和演算レジスタ202に格納された36ビットデータを演算して格納する。
【0075】
演算器203の演算命令は、特に限定されないが、算術加減算命令、算術シフト命令、算術乗算命令、積和演算命令、および36ビット16ビット算術シフト命令などを有する。
【0076】
算術加減算命令は、演算命令で指定されたレジスタファイル201上の任意の2データについて16ビット加減算して指定されたレジスタファイル201に格納する。算術シフト命令は、レジスタファイル201上の任意データについて算術シフトして指定されたレジスタファイル201に格納する。
【0077】
算術乗算命令は、レジスタファイル201上の任意2データについて16ビット乗算して結果の32ビットを符号拡張して積和演算レジスタ202に格納する。積和演算命令は、レジスタファイル201上の任意2データについて乗算して結果の32ビットを符号拡張して積和演算レジスタ202上の36ビットデータを加算して積和演算レジスタ202に格納する。36ビット16ビット算術シフト命令は、積和演算レジスタ202上の36ビットデータを算術シフトして指定されたレジスタファイル201に格納する。
【0078】
なお、演算器203は、例えば符号付固定小数点演算器にて構成され、小数点位置の管理は例えばDSPプログラムによって行われる。
【0079】
上記した算術加減算、算術乗算、算術シフト演算によって結果を格納する際、格納先のビット長によりオーバーフローする場合は、符号の最大値のデータを該演算ステップ内で出力することができる。ここで、符号の最大値は、正の場合には最大値であり、負の場合には最小値である。
【0080】
そして、特に制限はしないが演算精度を向上するために、例えば右シフト演算で切り捨てられるデータについて、出力データの最小ビット(LSB:Least Significant Bit)に四捨五入のまるめ(LSBからの桁上がりを含む)を該演算ステップ内で行うことができる。
【0081】
コントロールストレージ204は、DSPプログラムを格納するメモリであり、CPU127によって書き込まれる。プログラム実行制御部205は、プログラム実行制御レジスタCTLやプログラムカウンタレジスタPCを有する。
【0082】
このプログラム実行制御部205は、CPUインタフェース206を介して、CPU127がプログラム実行制御レジスタCTL内のビット操作により、予めCPU127がプログラムカウンタレジスタPCに設定したプログラム番地、すなわちコントロールストレージ204のアドレスからコントロールストレージ204内に格納されたプログラムを実行するように制御する。
【0083】
すなわち、プログラムカウンタレジスタPCが指し示すアドレスに格納されたコントロールストレージ204内の命令をデコードする。そして、演算命令の場合には、演算器203を該命令で制御してプログラムカウンタレジスタPCをインクリメントし、制御命令の場合には、該命令を実行してプログラムカウンタレジスタPCを更新していくことでDSPプログラムを実行する。なお、制御命令の場合は、演算器203には、何もしないことを意味するNOP(Non OPeration)が送信される。
【0084】
制御命令は、特に制限されないが、例えば、wait(待機)命令、goto(分岐)命令、event(転送要求発効)命令などを有する。wait命令は、命令で指定されたレジスタファイル201のデータが更新されるまで、すなわちCPUインタフェース206またはDMAインタフェース207を介したアクセスによって書き換えられるまで、プログラムカウンタレジスタPCを保持しつづける。
【0085】
goto命令は、命令で指定されたアドレスに分岐する。event命令は、DMAインタフェース207を介してDSP123から他の機能モジュールにデータ転送するDMAC125,126に対して、そのタイミングを与えるための転送要求パルス信号を発効する。
【0086】
以上、パワーステージ110の出力電圧モニタ信号VMを負帰還して、MOSFET113のゲート信号GSをディジタル制御する構成例について述べた。
【0087】
〈電源装置の詳細構成および動作〉
次に、本実施の形態に係る動作を実現するための構成の詳細と動作について説明する。
【0088】
パワーステージ110において、ブーストコンバータを構成する回路パラメータは色々な組み合わせが考えられる。ここで、例えば、電源装置100の仕様を入力電源端子111に与える入力電圧が50V、出力端子116からの出力電圧の目標値が200V、最大出力電流が2Aであるとし、スイッチング周波数を50KHzとすれば、インダクタ112を0.4mH、コンデンサ115は、2700μFとすることができる。
【0089】
制御系120におけるADC121は、例えば、0V〜3.3Vを入力とし、後述に詳細を説明するPWM生成部124が出力するキャリア周期開始パルス信号のエッジに呼応して出力電圧モニタ信号VMの電圧レベルを保持する。また、オペレーション時間250nsで分解能10bitのディジタル値に変換して出力モニタディジタルデータMDDを出力するように構成する。
【0090】
パワーステージ110の分圧抵抗である抵抗117,118は、0Vから目標電圧200Vを含んで変動する出力端子116間電圧について、例えば、抵抗117を198kΩ、抵抗118をWkΩとすることで、出力電圧モニタ信号VMの電圧レベルを制御系120のADC121が変換可能な電圧範囲に分圧する。
【0091】
減算器122、DMAC125、DSP123、およびDMAC126は、出力モニタディジタルデータMDDが生成されてから、スイッチング周波数の逆数であるキャリア周期の1/2となる10μsで減算、IIR計算、オフセット加算、およびオフセット更新を行う。
【0092】
PWM生成部1244内の時比率データレジスタ150を更新するように動作することで、サンプリング周期、スイッチング周期、およびキャリア周期を同一として量子化に係る遅延時間を最短とするスイッチング電源ディジタル制御系を構成する。そのためには、例えば、減算器122の減算速度、DSP123の演算・制御命令実行速度、CPU127の命令実行速度、およびDMAC125,126のバス速度を50MHzにて構成する。
【0093】
減算器122は、ADC121が出力モニタディジタルデータMDDを出力してから60ns以内に整数減算を実行し、結果を誤差値データ計算結果レジスタ130に書き込む。なお、出力モニタディジタルデータMDDの10ビットデータは、例えば、16ビットデータのLSB側としてMSB側6ビットに“0”を補って16ビット符号付整数演算が行われる。
【0094】
DMAC126は、誤差値データ計算結果レジスタ130のデータを80ns以内にDSP123内の誤差値データEinの格納場所に転送する。
【0095】
DSP123において、
図1における誤差値データEin、時比率データDout、Zバッファ群BFF、オフセットoffset、あるいは係数mは、
図2におけるレジスタファイル201に割り当てられる。
【0096】
そして、
図1におけるIIR計算DFIおよびオフセットoffsetの加算・更新に係る計算は、
図2においてコントロールストレージ204に格納されたプログラムによってCPU127がプログラム実行制御部205内のレジスタのビットを操作することで、1演算当り20nsの速度にて実行する。
【0097】
IIR計算DFIは、位相補償器としての動作を実現する計算である。位相補償器の特性は、特に制限しないが、一般に式1に示す3P2Z型の伝達関数とすることができる。
【0099】
ここで、式1において、sはラプラス演算子、Kは負帰還利得パラメータ、fz0とfz1は零点周波数パラメータ、fp0とfp1は極点周波数パラメータである。上述した仕様のパワーステージ110に対して、上記パラメータとして、例えば、
【0101】
とすることで、負帰還ループのカットオフ周波数であるクロスオーバ周波数fcを、およそ360Hz近辺として、位相が180度にならない、すなわち負帰還が正帰還とならない位相補償器とすることができる。
【0102】
式1の伝達関数は、Z変換することで、一般的にディジタル演算に適した離散時間の伝達関数とすることができる。3P2Z型の伝達関数について、Zが最大2次式の要素となるようにZ変換することで、式5に示すように2セクションからなるIIR計算式とすることができる。
【0104】
式5において、Zは離散時間のデータ列を表すもので、Zの−n乗はnサンプル前のデータであることを示す。
【0105】
図3は、IIR計算DFIにおける式5の計算手順を示すブロック線図である。
【0106】
式5および
図3において、C
02は、第2セクション(初段)の係数、Z
12は第2セクションのZバッファ、a
12 ,b
12は第2セクションの係数である。
【0107】
また、C
01は、第1セクション(後段)の係数、Z
11は第1セクションの第1タップのZバッファ、a
11,b
11は、第1セクションの第1タップの係数である。Z
21は第1セクションの第2タップのZバッファ、a
21,b
21は、第1セクションの第2タップの係数である。
【0108】
式5および
図3におけるパラメータは、前記伝達関数(式1)のパラーメタ(式2〜式4)としてサンプリング周期を20μsとすれば、IIRのパラメータを、
【0111】
これによって、
図3の誤差値データEinからデータdataの動作速度、すなわち
図3におけるnを更新する速度を50KHzにすることで、パラーメタ(式2〜式4)による前記伝達関数(式1)を等価的に実現できる。
【0112】
なお、
図3におけるnは説明の便宜上、離散時間を1進める毎に同時に更新することを示すために記載したものであり、nを付した変数は現離散時間のデータのみを保持すればよく、配列とする必要はない。
図3において、離散時間を更新した過去の状態n−1およびn−2は、Zバッファに内部状態データとして保持される。
【0113】
DSP123において、上述したIIRのパラメータ(式6〜式13)は、レジスタファイル201に割り当てられ、予めCPU127によって書き込まれる。そして、IIR計算DFIの計算結果のデータdataに、オフセットoffsetを加算して時比率データDoutとして出力する。なお、
図3のブロック線図の計算およびオフセットの加算や更新をする際の中間データなども適宜レジスタファイル201に割り当てられる。
【0114】
DSP123は、上記したDSPプログラムを実行することにより、誤差値データEinにデータが書き込まれてから、9.53μs以内に時比率データDoutを出力する。
【0115】
DMAC126は、DSP123内のレジスタファイル201上の時比率データDoutを80ns以内にPWM生成部124内の時比率データレジスタ150に転送する。
【0116】
制御系120におけるPWM生成部124は、上記スイッチング周波数50KHzの搬送波(キャリア周期20μs)で動作するように構成するもので、例えば分解能1nsであり、搬送波を三角波とすれば、1GHzにて動作する14bitアップ/ダウンカウンタで構成される。
【0117】
初期値10,000から0までカウントダウンした後、10,000(0x2710)までカウントアップし、再び0までカウントダウンする動作を反復することで、50KHzの三角波としての動作が実現される。
【0118】
そして、14bitアップ/ダウンカウンタが時比率データレジスタ150の内容未満であるとき、ゲート信号GSをアサートしてパワーステージ110のMOSFET113をオンし、該14bitアップ/ダウンカウンタの内容が時比率データレジスタ150の内容以上であるときゲート信号GSをネゲートしてMOSFET113をオフする。
【0119】
これにより、時比率データレジスタ150の大きさがキャリア周期内のMOSFET113のオン期間とするパルス幅に変調される。そして、14bitアップ/ダウンカウンタ値が10,000(0x2710)となる度に、ADC121に対するキャリア周期開始パルス信号を出力する。
【0120】
〈DSPプログラムの処理例〉
次に、上記した構成によるDSPプログラムの処理例について説明する。
【0121】
図4は、DSPプログラムの一例を示すリストであり、
図5は、
図4のDSPプログラムのリストにおけるレジスタファイル201の割り当ての一例を示す説明図である。
【0122】
図4におけるリストのステップにおいて、「step」には、コントロールストレージ204の格納アドレスを示しており、前述の演算速度(1ステップ当り20μs)で動作するものとする。
【0123】
また、各ステップに記載した演算命令(上述した制御命令を除く命令)の書式は、特に制限されるものではなく、一般的なDSPにおける演算器構成技術によって容易に実現可能な演算をC言語の書式に準じて示している。
【0124】
変数SUMは、積和演算レジスタ202(36ビット)を示し、それ以外の変数は、
図5にて示すように割り当てたレジスタファイル201上の格納領域(16ビットデータ)である。
【0125】
また、シフト演算の定数は、当該ステップとともにコントロールストレージ204に格納された4ビットデータである。制御命令は、前記説明した機能を実行するものであり、その引数は、当該ステップの制御命令とともにコントロールストレージ204に格納された定数である。
【0126】
初期状態において、プログラム実行制御部205内のプログラムカウンタレジスタPCは、ステップ0を指し示している。CPU127によるプログラム実行制御部205内のプログラム実行制御レジスタCTLのビット操作によってDSPプログラムが開始されると、プログラム実行制御部205は、step0から
図4のリストにおけるプログラムの各ステップが順次実行されていく。
【0127】
図4のリストのstep0において、DSP123は、係数mの格納番地(アドレス3)にデータが書きこまれるまで、プログラムカウンタレジスタPCをstep0のまま保持する。
【0128】
CPU127がレジスタファイル201のアドレス3(係数m)にデータを書き込むことに呼応して、プログラムカウンタレジスタPCは、インクリメントされstep1以降のプログラムを順次実行していく。
【0129】
step1〜step3の実行において、IIR計算DFIの内部状態を保持するZバッファ群BFFの内部状態データが零クリアされる。そして、step4〜step5の実行においてオフセットoffsetが更新される。
【0130】
step6において、DSP123は、誤差値データEinの格納番地について、step3同様にプログラムカウンタレジスタPCを保持(アドレス2のデータ書き込み待ち状態を保持)し、アドレス2のデータが書き込まれると、次ステップ以降のプログラムに進む。
【0131】
step7〜step24がIIR計算DFIであり、
図3に示したブロック線図をプログラムしたものである。step7の左4ビットシフトする変数xは、
図5に示すとおり誤差値データEinであり固定小数点位置を、(整数ビット.少数ビット)=(6.10)と見做して、当該stepからの固定小数点演算がなされる。
【0132】
すなわち、ADC121の出力の10ビットであるため、出力電圧モニタ信号VMが3.3V、すなわち、パワーステージ110の出力が330Vに対して1.0、正確には0x3FF/0x400となるように固定小数点位置を定める。前述した伝達関数の負帰還利得の計算は、このフィードバック利得(1/330)が織り込まれたものになっている。
【0133】
そして、前述のIIRパラメタータ(式6〜式13)は、
図4に示すレジスタファイル201のアドレス7〜14に
図5に示した固定小数点位置で整数化した初期値がCPU127によって書き込まれている。
【0134】
step8〜step22の桁合わせを含む演算の逐次的な実行により、一時データとしてtemp(アドレス3)に、固定小数点位置(1.15)の0.0〜1.0に正規化された時比率が計算される。
【0135】
step23〜step24で、該時比率に前述したPWM生成部124における三角波の最大値10,000(0x2710)を乗じて、スケールを時比率データDoutに出力すべきデータ範囲にスケーリングする。
【0136】
その後、step25にてオフセットoffsetを加算して、時比率データDout(アドレス0)に格納し、step26においてアドレス0に格納したデータの転送要求を発効する。
【0137】
続いて、step27にてプログラムカウンタレジスタPCがstep6に無条件に分岐し、上記アドレス2のデータ書き込み待ち状態に戻る。なお、Zバッファの離散時間の更新は、step12とstep20〜step21の演算命令で実行される。
【0138】
〈CPUの処理例〉
次に、CPU127におけるプログラムの処理、いわゆるCPUプログラムの処理について説明する。CPU127は、CPUプログラムに基づいて、DSPプログラムを含む制御系全体の動作を制御する。
【0139】
図6は、CPU127によるメインプログラム500の処理例を示すフローチャートである。
【0140】
まず、CPU127は、ハードウェア設定処理を実行する(ステップS101)。このハードウェア設定処理は、ADC121、減算器122、DMAC125,126、およびPWM生成部124における動作設定処理であり、プログラムデータの書き込み処理および初期値の書き込み処理である。
【0141】
プログラムデータの書き込み処理は、DSP123のコントロールストレージ204への
図4に示すリストのプログラムデータの書き込みである。初期値の書き込み処理は、レジスタファイル201への
図5に示した初期値の書き込みを行う処理である。
【0142】
続いて、CPU127が実行するプログラム内の変数の初期化、および制御系120内のディジタル処理する機能モジュール内の変数の初期化が行われる(ステップS102)。このステップS102の処理において、CPU127におけるプログラム内の変数および定数のうち、広域変数として用いられる主な変数および定数の初期化は次のとおりである。
【0143】
目標値は、電源装置100の出力電圧の目標値となる出力電圧モニタ信号VMのディジタル変換値である。出力電圧200Vを示す0x026Cを設定する。
【0144】
指令値Vrefは、パワーステージ110に対する出力電圧の指令値であり、指令値データレジスタ131に設定する変数値である。指令値Vrefの初期化は後述するステップS104の処理にて実行される。
【0145】
異常値は、電源装置100が規定する出力電圧となる出力電圧モニタ信号VMのディジタル変換値である。例えば出力電圧200Vの10%とする場合は、220Vを示す0x02AAを設定する。
【0146】
許容値は、IIR計算がスタック状態に陥ったことを検出するための誤差値データEinの絶対値に対する許容電圧である。例えば出力電圧200V±5%とする場合は、10Vを示す0x001Fを設定する。
【0147】
収束値は、IIR計算においてパワーステージが定常状態になったか否かを判定するための誤差値データEinの絶対値に対する収束電圧である。例えば出力電圧200V±2%、これはリプル電圧を1%以内としてその4倍とする場合は、4Vを示す0x000Cを設定する。
【0148】
ΔVrefは、スタートアップおよびスタックからの再起時に指令値Vrefを目標値
まで上昇させるための刻み量である。誤差値の絶対値の収束値より大きいとし、例えば5Vとする。
【0149】
収束カウンタは、IIR計算においてパワーステージが定常状態になったことを判定するためのカウンタ変数である。ステップS102の処理における初期化では、0に設定する。
【0150】
収束判定カウント値は、IIR計算においてパワーステージが定常状態に収束したと判断する収束カウンタの値であり、キャリア周期の回数で指定する。例えば、指令値Vrefに比例して算出する変数とする。あるいは、例えば20(400μsに相当)とする定数の設定としてもよい。
【0151】
スタック検出カウンタは、IIR計算がスタック状態に陥ったことを検出するためのカウンタ変数である。ステップS102の処理の初期化では、0に設定する。
【0152】
スタック判定カウント値は、IIR計算がスタック状態に陥ったと判断する収束カウンタの値であり、キャリア周期の回数で指定する。例えば250(5msに相当)を設定する。
【0153】
異常検出フラグは、電源装置100の出力電圧が前述した異常値を超過した場合に“1”とする状態変数である。ステップS102の処理の初期化では、0に設定する。
【0154】
また、ステップS102の処理において、PWM生成部124内の時比率データレジスタ150、および減算器122内の誤差値データ計算結果レジスタ130と指令値データレジスタ131を零(0x0000)に初期化する。そして、ステップS102の処理において、DSP123のプログラム実行制御部205内のプログラムカウンタレジスタPCを零(0x0000)に初期化する。
【0155】
そして、電源制御割り込み有効化処理を実行する(ステップS103)。この電源制御割り込み有効化処理は、電源装置100におけるスイッチング電源制御方式を、
図7に示すキャリア周期単位に実行する電源制御割り込みルーチンにて実現するために、電源制御割り込みルーチンに対する割り込みを有効化する。
【0156】
電源制御割り込みルーチンに対する割り込みは、例えば、DMAC125における誤差値データEinへのデータ転送完了毎に割り込み要因を生成するデータ転送完了割り込みとすることができる。
【0157】
続いて、ADC121、減算器122、DMAC125、およびDMAC126を動作可能状態にする(ステップS104)。その後、CPU127からADC121への制御信号をアサートしてネゲートすることでADC121を1度だけ動作させる。
【0158】
これにより、減算器122およびDMAC125が動作し、レジスタファイル201上の誤差値データEinにデータが格納された後、該誤差値データEinをリードし、現在の指令値データレジスタ131に設定されている指令値Vref(初期値は任意)を減算する。これによって、現在の出力電圧を求めて、求めた出力電圧を指令値Vrefの初期値とするとともに、該初期化した指令値Vrefを指令値データレジスタ131に書き込む。
【0159】
そして、DSP123のプログラム実行制御部205内のプログラム実行制御レジスタCTLをビット操作して、
図4に示すDSPプログラムの実行を開始し、レジスタファイル201内の係数m(アドレス3)に零(0x0000)を書き込む。
【0160】
これにより、ADC121、減算器122、およびDMAC125,126は、各実行開始を制御する信号待ち状態となり、DSP123は、IIR計算(
図4のstep6以降)をするためのレジスタファイル201内の誤差値データEin(アドレス2)への書き込み待ち状態となる。その後、PWM生成部124の実行を開始することで、出力電圧の立ち上がりをなだらかにする制御であるソフトスタートからの昇圧変換が開始される。
【0161】
そして、CPU127は、システム監視処理を実行する(ステップS105)。システム監視処理は、例えば外部から与えられる停止などのシステム全般の信号制御、あるいは過電流検出などの異常検出の異常処理が行われ、外部からの停止要求や回復不可能なエラーを検出した場合に、PWM生成部124から出力するゲート信号GSをネゲートして電源装置100の動作を停止する(ステップS106)。
【0162】
〈電源制御割り込みルーチンの処理例〉
図7は、
図6のステップS103の処理にて有効化される電源制御割り込みルーチンにおける処理の一例を示すフローチャートである。
【0163】
電源制御割り込みルーチンは、
図6にて説明したとおり、キャリア周期毎の割り込みによって呼び出される。
【0164】
図7において、電源制御割り込みルーチンは、異常処理、IIR計算のスタックの検出とIIR再起処理、およびソフトスタート処理が行われる。
【0165】
まず、異常処理について説明する。DSP123の誤差値データEinがリードされ、現在の指令値Vrefから誤差値データEinを減算した値、すなわち出力電圧を計算して、これと異常値と比較する(ステップS201)。
【0166】
減算値が異常値以上、すなわち出力電圧が異常電圧である場合は、異常検出フラグを“1”にセットして割り込み処理を終了する(ステップS202)。異常検出フラグが“1”である場合には、
図6におけるステップS105において処理され、電源装置100の動作を終了する。
【0167】
続いて、IIR計算DFIのスタック検出および再起処理について説明する。
【0168】
ステップS201の処理においてリードした誤差値データEinの絶対値と許容値とを比較する(ステップS203)。許容値を超過していた場合は、収束カウンタを零クリアし(ステップS204)、スタック検出カウンタをインクリメントする(ステップS205)。
【0169】
そして、スタック検出カウンタが比較され(ステップS206)、スタック判定カウント値未満であれば割り込み処理を終了する。また、スタック判定カウント値に達している場合は、スタック状態に陥ったと判断され、指令値Vrefを更新し(ステップS207)、IIR計算DFIの再起処理を行った後(ステップS216)、スタック検出カウンタを零クリアし(ステップS208)、割り込み処理を終了する。
【0170】
ステップS207の処理では、CPU127が広域変数で管理する現在の指令値Vrefから誤差値データEinを減算することでパワーステージ110の出力電圧を示すディジタル値を求めて該指令値Vrefを更新する。このとき、該減算した結果が目標値を超過した場合、指令値Vrefが目標値となるように更新する。
【0171】
〈IIR再起処理の例〉
図8は、
図6のステップS216の処理におけるIIR再起処理の一例を示すフローチャートである。
【0172】
まず、DSPプログラムの実行を、
図4のstep0に移して係数mの書き込み待ち状態にする(ステップS301)。そして、
図6のステップS207の処理において更新した指令値Vrefを減算器122の指令値データレジスタ131に書き込む(ステップS302)。
【0173】
そして、係数mに書き込む値を通常は1.0(0x7FFF)とし(ステップS303)、
図7のステップS207の処理にて減算が目標値超過した場合にはその度合いに応じて1.0より小さく(ただし、0.0以上)なるように計算する。
【0174】
レジスタファイル201の係数mに係数を書き込むことで、DSP123は、IIR計算DFIの内部状態であるZバッファ群BFFの内部状態データを零クリアし、現在の時比率データDoutを乗数mしてオフセットoffsetとした後、
図4のstep6以降のIIR計算の実行開始待ち状態になる。
【0175】
ステップS207,S216の処理により、IIRの内部状態はクリアされるが、パワーステージ110の出力電圧を指令値Vrefにすることで引き続き入力する誤差データEinは零から始まるデータ列となり、オーバーフローすることなく計算可能な状態となる。そして、IIRの出力をオフセットとして出力に加算することで、PWM生成部124の時比率データレジスタ150への出力を連続にすることができる。
【0176】
〈出力電圧の変化による処理例〉
図9は、負荷変動が発生した際のパワーステージ110における出力電圧の変化の一例を示した説明図である。
【0177】
図9において、目標値と等しい出力電圧に制御されている定常状態から、急激な負荷変動に伴い時比率を大きく変動させるIIR計算において、オーバーフローあるいはアンダーフローが発生し、これによって、出力電圧が点線にて示す出力電圧変化802に示すようにスタックした場合であっても、実線で示す出力電圧変化801の動作となるようにスタック状態を解消してIIR計算を再起させる制御を可能とすることができる。
【0178】
また、
図7のステップS207の処理において、指令値Vrefを現在の出力電圧にする際、目標値以下に制限することで、IIR計算のオーバーフローやアンダーフローによってパワーステージ110の出力電圧が異常値となることを未然に回避することができる。
【0179】
〈ソフトスタート処理例〉
次に、ソフトスタート処理について説明する。
【0180】
図7において、現在の指令値Vrefと目標値が比較され、目標値未満の場合にステップS210の処理以降のソフトスタート処理を実行し(ステップS209)、目標値である場合は、定常状態としてスタック検出カウンタを零クリアし(ステップS208)、割り込み処理を終了する。
【0181】
目標値でない場合は、ステップS201の処理においてリードした誤差値データEinの絶対値が収束値と比較され(ステップS210)、収束値を超過している場合はステップS203の処理以降のスタック検出と再起処理と同一の処理が行われる。また、収束値以下である場合は、ステップS211の処理以降の収束判定と指令値Vrefの更新、およびIIR再起処理を用いたソフトスタートが行われる。
【0182】
ステップS210の処理において、収束値を超過している場合は、リードした誤差値データEinの絶対値が収束値以内の場合に収束カウンタをインクリメントする(ステップS211)。
【0183】
続いて、収束カウンタが収束判定カウント値以上であるか否かを判断し(ステップS212)、収束判定カウント値未満であれば割り込み処理を終了する。また、ステップS212の処理において、収束カウンタが収束判定カウント値に達している場合は、収束したと判断し、現在の指令値VrefにΔVrefを加算して指令値Vrefを更新する(ステップS213)。ステップS213の処理の加算結果が目標値を超過する場合は、指令値Vrefを目標値とする。
【0184】
そして、収束カウンタを零クリアする(ステップS214)。その後、ステップS216の処理を行うことにより、スタートアップに伴うZバッファの増加を抑制し、IIR計算のオーバーフローやアンダーフローすることを未然に回避することができる。
【0185】
なお、ソフトスタート期間中であっても、誤差値データEinが許容値を逸脱した場合は、反復的な電源制御割り込みルーチンの実行において、ステップS203の処理による分岐においてスタック検出および再起処理と同一の処理が行われる。
【0186】
また、スタートアップにおいて、急激な時比率の増加は過大な突入電流となる。それを防ぐためには、例えばインタバルカウンタが広域変数として設けられる。そして、ステップS212の処理では、指令値Vrefの更新から少なくとも必要期間経過後に、ステップS213の処理を行うための判定が追加され、指令値Vrefの時間的な増加が制限される。
【0187】
インタバルカウンタは、電源制御割り込みルーチンが呼び出される都度インクリメントし、ステップS214の処理の収束カウンタのクリアともに零クリアする。必要期間の経過を判定するインタバル判定カウント値は例えば500とされる。
【0188】
〈スタートアップの出力電圧の変化による処理例〉
図10は、パワーステージ110のスタートアップにおける出力電圧の変化の一例を示す説明図である。
【0189】
この
図10において、定常状態の制御に最適化されたビット長の演算器が、スタートアップ時に大きな電圧変化でZバッファがオーバーフローしてしまう場合には、出力電圧が点線にて示す出力電圧変化903となってしまうことになる。
【0190】
しかし、パワーステージ110では、指令値Vrefの上昇とともに増加するZバッファの内部状態データを零クリアしながら時比率を上昇させることができるのでオーバーフローを起こすことなく、出力電圧を実線にて示す出力電圧変化901となるようにソフトスタートを実現することが可能になる。
【0191】
また、ソフトスタート期間中に、温度変化などの外乱によって、IIR計算におけるオーバーフローあるいはアンダーフローが発生し、出力がスタックするような場合には、IIR計算によるスタックの検出およびIIR再起処理が実行される。
【0192】
これによって、出力電圧は、例えば
図10の一点鎖線に示す出力電圧変化902となるようにスタック状態を解消してIIR計算を再起させる制御を可能とすることができる。
【0193】
以上により、誤差値が所定の許容値以内の場合には指令値Vrefを目標値に近づけていくことによってスタートアップのソフトスタート制御を実現することができる。
【0194】
また、IIR計算に係る変数の格納領域のビット長が桁あふれ(オーバーフロー)または桁落ち(アンダーフロー)を起こして時比率の更新がされない状態に陥っても、指令値Vrefを現在のパワーステージ110の出力値に設定する。そして、DSP123におけるIIRフィルタのZバッファの内部状態データを零クリアすることで、スタートアップ時同様のIIR計算が可能な状態に復帰することができる。
【0195】
桁あふれ(オーバーフロー)または桁落ち(アンダーフロー)は、スタートアップ時のパワーステージ110の過渡状態における突入電流や定常状態を含めた負荷変動や温度変化などの外乱に起因した回路パラメータの変動により、時比率に大きな変更を要したことにより発生する。
【0196】
同時に、オフセット値に現在の時比率を設定することで、時比率は連続した動作になるので、線形性を大きく逸脱することなく時比率の制御が可能にできる。
【0197】
すなわち、本実施の形態による電源装置100の制御技術によれば、回路パラメータの変動で時比率に大きな変更があった場合には、ディジタル演算器のオーバーフローあるいはアンダーフローを許容することができる。これによって、IIRフィルタ計算に係る変数の整数部をパワーステージ110の定常状態に演算に必要最低限のビット長とすることができる。
【0198】
このことは、パワーステージ110の定常状態についてのディジタル制御に、メモリ格納領域のビット長の内の多くの桁数を小数部として割り当てることを可能とさせ、その結果、ビット長の少ない固定小数点演算器にて高精度なディジタル電源制御技術を提供するということができる。
【0199】
(実施の形態2)
〈概要〉
本実施の形態2では、IIR計算DFIをハードウェア化したディジタル制御スイッチング電源装置の例について説明する。
【0200】
前記実施の形態1では、
図3の演算器203の機能をDSPソフトウェアによって構成したが、演算器203は、論理回路によるハードウェアによって構成することもできる。
【0201】
〈演算器の構成例〉
図11は、本実施の形態2によるDSP123における演算器203の動作を論理回路にて実現したときのブロック線図の一例を示す説明図である。
【0202】
図11において、IIR計算を行う論理回路は、1本の制御信号modifyが外部から与えられる。制御信号modifyがアサートすると、Zバッファの内部状態データは零クリアされ、オフセットには、IIR計算DFIの出力である時比率データDoutに係数mを乗じて格納される。
【0203】
前記実施の形態1にて説明したDSP123を
図11に示すブロック線図で動作する論理回路に置き換える。そして、
図8にて示したIIR再起処理であるステップS216の処理において、ステップS301の処理を省き、ステップS303の処理の次に
図11の制御信号modifyを、該論理回路の動作クロックの1クロックだけアサートする実行ステップを設ける。
【0204】
これによって、その他の回路構成、CPU127の制御、制御系120の動作、および効果を前記実施の形態1と同様に実現することができる。さらに、回路の最適化が可能になるので、ハードウェアをより小さく実現することができる。
【0205】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0206】
なお、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【0207】
また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加、削除、置換をすることが可能である。