(57)【要約】【課題】  カウンタや大きさ比較器の遅延の影響を受けないパルス幅変調システムを提供すること。【解決手段】  パルス幅変調システムおよび方法について記載する。一態様において、パルス幅変調システムは、レジスタおよびコードワード発生器を含む。コードワード発生器は、指定出力周波数および指定デューティサイクルを受信するための入力を有し、種々の長さのコードワードを生成する働きをする。コードワード発生器は、指定出力周波数を実現するように設定された長さのベースコードであって、指定デューティサイクルによって決まるサーモメータコード値を有するベースコードを生成する。さらにコードワード発生器は、ベースコードワードの１以上のコピーからなるシーケンスを含むコードワードパターンをレジスタにロードする働きをする。【選択図】図１
2005304017.tif 000002
【特許請求の範囲】
【請求項１】
レジスタと、
指定出力周波数および指定デューティサイクルを受信するための入力を有し、異なる長さのコードワードを生成するように動作するコードワード発生器と、
からなるパルス幅変調システムであって、
前記コードワード発生器は、前記指定出力周波数を実現するように設定された長さのべースコードワードであって、前記指定デューティサイクルによって決まるサーモメータコード値セットを有するべースコードワードを生成するように動作し、前記コードワード発生器は、前記ベースコードワードの１以上のコピーからなるシーケンスを含むコードワードパターンを前記レジスタにロードするようにさらに動作する、パルス幅変調システム。
【請求項２】
前記レジスタは、パラレル入力およびシリアル出力を有する、請求項１に記載のパルス幅変調システム。
【請求項３】
前記レジスタは、前記シリアル出力に接続されたシリアル入力をさらに有する、請求項２に記載のパルス幅変調システム。
【請求項４】
前記コードワード発生器は、前記指定デューティサイクルを受信するための入力を有するデコーダであって、前記指定デューティサイクルをサーモメータコードワードにデコードする動作をするデコーダを含む、請求項１に記載のパルス幅変調システム。
【請求項５】
前記デューティサイクルはＫビットのバイナリワードによって指定され、
前記デコーダは、前記バイナリワードを２Kビットの前記サーモメータコードワードにデコードするように動作する、請求項４に記載のパルス幅変調システム。
【請求項６】
前記レジスタは、周波数ｆCLKのクロック供給を受け、
ｊを０からＭまでの整数、Ｍを１以上の整数値、Ｋを前記指定デューティサイクルを指定するビット分解能に等しい整数としたときに、前記指定出力周波数ｆOUTが、ｆOUT＝ｆCLK／２K+J-1によって与えられる、請求項４に記載のパルス幅変調システム。
【請求項７】
前記コードワード発生器は、前記サーモメータコードワードの各ビットを２j-1回複製し、複製したビットを前記指定デューティサイクルによって決まるサーモメータコード値セットがエンコードされた２K+j-1ビットのベースコードワードとして組み立てるように動作する、請求項６に記載のパルス幅変調システム。
【請求項８】
前記コードワード発生器は、前記ベースコードワードの２M-j個のコピーを含むコードワードパターンを前記レジスタにロードするように動作する、請求項６に記載のパルス幅変調システム。
【請求項９】
前記レジスタは、少なくとも２K+M-1個のビットを有する、請求項６に記載のパルス幅変調システム。
【請求項１０】
前記コードワード発生器は、前記指定出力周波数が閾出力周波数よりも大きいときに、デューティサイクル分解能を低下させることにより前記指定出力周波数を実現するように動作する、請求項１に記載のパルス幅変調システム。
【請求項１１】
複数の使用可能な出力周波数の組の中から選択された指定出力周波数と、複数の使用可能なデューティサイクルの組の中から選択された指定デューティサイクルとを受信するステップと、
前記指定出力周波数および前記指定デューティサイクルに応じて、前記指定出力周波数を実現するように設定された長さのベースコードワードであって、前記指定デューティサイクルによって決まるサーモメータコード値セットを有するベースコードワードを生成するステップと、
前記ベースコードワードの１以上のコピーからなるシーケンスを含むコードワードパターンを生成するステップと、
からなるパルス幅変調方法。
【請求項１２】
生成されたコードワードパターンを、前記指定出力周波数および前記指定デューティサイクルでパルス幅変調信号を給送する出力を有するレジスタにロードするステップをさらに含む、請求項１１に記載のパス幅変調方法。
【請求項１３】
前記パルス幅変調信号を前記レジスタの入力にフィードバックするステップをさらに含む、請求項１２に記載のパルス幅変調方法。
【請求項１４】
前記指定デューティサイクルをサーモメータコードワードにデコードするステップをさらに含む、請求項１１に記載のパルス幅変調方法。
【請求項１５】
前記デューティサイクルはＫビットのバイナリワードによって指定され、
前記デコーダは、前記バイナリワードを２Kビットのサーモメータコードワードにデコードするように動作する、請求項１４に記載のパルス幅変調方法。
【請求項１６】
ｆOUTをレジスタクロッキング周波数、ｉを０からＭまでの整数値、Ｍを１以上の整数値、Ｋを前記デューティサイクルを指定するビット分解能に等しい整数値としたときに、前記指定出力周波数ｆOUTが、ｆOUT＝ｆCLK／２K+j-1によって与えられる、請求項１４に記載のパルス幅変調方法。
【請求項１７】
前記ベースコードワードは、前記サーモメータコードワードの各ビットを２i回複製し、複製したビットを前記指定デューティサイクルによって決まるサーモメータコード値セットがエンコードされた２K+j-1ビットのベースコードワードとして組み立てることによって生成される、請求項１６に記載のパルス幅変調方法。
【請求項１８】
前記生成されたコードワードパターンは、前記ベースコードワードの２M-j個のコピーを含む、請求項１６に記載のパルス幅変調方法。
【請求項１９】
前記生成されたコードワードパターンを少なくとも２K+M-1ビットを有するレジスタにロードするステップをさらに含む、請求項１６に記載のパルス幅変調方法。
【請求項２０】
前記指定出力周波数が閾出力周波数よりも大きいときにデューティサイクル分解能を低下させることにより前記指定出力周波数を実現するステップをさらに含む、請求項１１に記載のパルス幅変調方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概してパルス幅変調システムに関し、詳しくはコードワード発生器とレジスタを用いたパルス幅変調システムに関する。
【背景技術】
【０００２】
パルス幅変調システムは一般に、波の生成、モータの制御、アンチロックブレーキシステムなどの種々の用途に幅広く使用されている。一般的なパルス幅変調システムは、固定周波数で可変デューティサイクルのパルス列を生成する。矩形パルスの理想的なパルス列の場合、デューティサイクルはパルス周期とパルス持続時間の比である。多くの方法では、デューティサイクルをデジタル入力コードによって指定すると、パルス幅変調システムが、そのデジタル入力コードの値に比例する幅の固定周波数のパルス列を生成する。
【０００３】
一般的なパルス幅変調システムは、少なくとも１つのカウンタ、少なくとも１つの大きさ比較器、および高周波クロックによって実施される。実施形態によっては、コンパレータは、デューティサイクル入力コードから生成された基準カウントと、クロック信号から生成されたクロックカウントとを比較することにより、パルス幅変調出力を生成するものもある。クロック分周器を使用すると、高速クロック信号からクロック信号を生成することができる。クロック分周器の除数パラメータを変えると、パルス幅変調信号の周波数を変化させることができる。しかしながら、この種のパルス幅変調システムの動作周波数は、カウンタや大きさ比較器に特有の遅延による制限を受けることが多い。また、伝搬遅延は、それらの設計を製造変動に対して非常に敏感なものにし、この種のパルス幅変調システムの製造の容易さを低下させる。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明の一態様において、パルス幅変調システムは、レジスタおよびコードワード発生器を含む。コードワード発生器は、指定出力周波数および指定デューティサイクルを受信するための入力を有し、様々な長さのコードワードを生成する働きをする。コードワード発生器は、指定出力周波数を実現するように設定された長さのベースコードワードであって、指定デューティサイクルによって決まるサーモメータコード値を有するベースコードワードを生成する働きをする。また、コードワード発生器は、ベースコードワードの１以上のコピーからなるシーケンスを含むコードワードパターンをレジスタにロードする働きも有する。
【０００５】
他の態様において、本発明は、指定出力周波数および指定デューティサイクルを受信することによるパルス幅変調方法を提供する。複数の使用可能な出力周波数の組の中から指定出力周波数を選択し、複数の使用可能なデューティサイクルの組の中から指定デューティサイクルを選択する。そして、指定出力周波数および指定デューティサイクルに応じてベースコードワードを生成する。ベースコードワードは、指定出力周波数を実現するように設定された長さを有し、指定デューティサイクルによって決まるサーモメータコード値を含む。そして、ベースコードワードの１以上のコピーからなるシーケンスを含むコードワードパターンを生成する。
【０００６】
本発明の他の特徴および利点は、図面および特許請求の範囲の記載と合わせて、下記の説明から明らになるであろう。
【発明を実施するための最良の形態】
【０００７】
下記の説明では、同じ参照符号を用いて類似の構成要素を識別する。また、図面は、実施形態の主な特徴の概略的に示すことを意図している。図面は、実際の実施形態の特徴を全て描いたものでもなければ、構成要素間の相対的寸法を描いたものでもなく、寸法通りに描かれてもいない。
【０００８】
以下で詳細に説明する幾つかのパルス幅変調の実施形態では、特別にコード化されたコードワードパターンを生成することにより、パルス幅変調出力信号のデューティサイクルと出力周波数とを同時に制御する。コードワードパターンは、レジスタから直列に出力され、可変周波数および可変デューティサイクルのパルス幅変調信号を生成する。このように、それらの実施形態は、パルス幅変調システムにしばしば付随する、個々のコンポーネント（クロック分周器やコンパレータなど）によって起こる遅延や信号伝搬に対する影響を回避し、パルス幅変調周波数を変化させ、パルス幅変調デューティサイクルを設定する。
【０００９】
図１は、レジスタ１２およびコードワード発生器１４を含むパルス幅変調システム１０の一実施形態を示す。レジスタ１２は、パラレル入力１６およびシリアル出力１８を有するシフトレジスタである。レジスタ１２は通常、大きな（幅の広い）シフトレジスタであり、使用可能な出力周波数を最大数確保するとともに、最大のデューティサイクル分解能を得るのに十分なビット数を有する。図示の実施形態において、レジスタ１２は、フィードバックループ２２によってシリアル出力１８に接続されたシリアル入力２０を有する。コードワード発生器１４は、特定のハードウェアまたはソフトウェアの構成に限定されることなく、デジタル電子回路や、コンピュータのハードウェア、ファームウェア、ソフトウェアなどを含む、任意のコンピュータ環境または処理環境で実施することができる。
【００１０】
図２は、可変周波数および可変デューティサイクルのパルス幅変調出力信号２４を生成するためにパルス幅変調システム１０によって実施される方法の一実施形態を示す。
【００１１】
コードワード発生器１４は、複数の使用可能な出力周波数の組の中から選択された指定出力周波数２６を受信する（ブロック２８）。出力周波数２６は、実施形態によって異なる種々の方法で指定することができる。出力周波数２６は、例えばデジタルコードワード値や単一の入力パラメータ値によって指定することができる。一部の実施形態では、使用可能な各出力周波数として、レジスタ１２に供給されるクロック信号３１の周波数（ｆＣＬＫ）を分割したものが使用される。
【００１２】
また、コードワード発生器１４は、複数の使用可能なデューティサイクルの組の中から選択された指定デューティサイクル３０を受信する（ブロック３２）。出力周波数２６と同様にデューティサイクル３０も、実施形態によって異なる種々の方法で指定される。例えば一部の実施形態では、デューティサイクルがＫビットのバイナリコードワードによって指定される。ただし、Ｋは、デューティサイクル３０を指定する際の分解能に対応する１以上の整数値である。
【００１３】
コードワード発生器１４は、指定出力周波数２６および指定デューティサイクル３０に応じて、指定出力周波数を実現するように設定された長さのベースコードワードであって、指定デューティサイクル３０によって決まるサーモメータコード値セットを有するベースコードワードを生成する（ブロック３４）。一部の実施形態において、ベースコードワードの長さは、デューティサイクルを指定する分解能に応じて設定される。例えば、デューティサイクル分解能がＫである場合、ベースコードワードの長さは２Kビットにする。サーモメータコードは、（２L−１）個のデジタル入力を用いて２L個のデジタルワードを表現する既知の符号化方式である。ただし、Ｌは１以上の整数値である。下記の変換表は、０〜７の範囲の十進値について、十進コードワード、バイナリコードワードおよびサーモメータコードワードの間の変換を示す。
【００１４】
【表１】
2005304017.tif 000003
【００１５】
図３を参照し、図示の例において、デューティサイクル分解能が３ビット（すなわち、デューティサイクル値は２3＝８個の値をとり得る）、指定デューティサイクルが５／８（すなわち６２．５％）、パルス幅変調信号２４の出力周波数として使用可能な出力周波数の数が３であるものと仮定する。使用可能な出力周波数（ｆOUT1、ｆOUT2、ｆOUT3）は、レジスタクロック周波数ｆCLKを分割したものに対応する。この例では、出力周波数はｆOUTj＝ｆCLK／２K+j-1によって与えられる。ただし、Ｋはデューティサイクル分解能（すなわちこの例では３）であり、ｊはｊ＝１，・・・，Ｍであり、Ｍは使用可能な出力周波数の数（すなわちこの例では３）に等しい。
【００１６】
指定出力周波数がｆOUT1（すなわちｊ＝１）である場合、コードワード発生器１４は、２K+j-1＝２3＝８ビットの長さのベースコードワードであって、デューティサイクル値「５」（すなわちバイナリコードだと「１０１」）に対応するサーモメータコード値を有するベースコードワード「０００１１１１１」を生成する。指定出力周波数がｆOUT2（すなわちｊ＝２）である場合、コードワード発生器１４は、２K+j-1＝２4＝１６ビットの長さのベースコードワードであって、デューティサイクル値「５」（すなわちバイナリコードだと「１０１」）に対応するサーモメータコード値を有するベースコードワード「００００００１１１１１１１１１１」を生成する。指定出力周波数がｆOUT3（すなわちｊ＝３）である場合、コードワード発生器１４は、２K+j-1＝２5＝３２ビットの長さのベースコードワードであって、デューティサイクル値「５」（すなわちバイナリコードだと「１０１」）に対応するサーモメータコード値を有するベースコードワード「００００００００００００１１１１１１１１１１１１１１１１１１１１」を生成する。
【００１７】
図２に戻り、コードワード発生器１４は、レジスタ１２のビットを完全に埋めるのに十分なだけのベースコードワードのコピーを含むコードワードパターンを生成する（ブロック３６）。そして、コードワード発生器１４は、生成されたコードワードパターンをレジスタ１２にロードする（ブロック３７）。上記の例において指定出力周波数がｆOUT1である場合、コードワード発生器１４は、８ビットのベースコードワード「０００１１１１１」の４つのコピー４０，４２，４４，４６を含むコードワードパターン３８を、３２ビット幅のレジスタ１２にロードする。指定出力周波数がｆOUT2である場合、コードワード発生器１４は、１６ビットのベースコードワード「００００００１１１１１１１１１１」の２つのコピー５０，５２を含むコードワードパターン４８を、３２ビット幅のレジスタ１２にロードする。指定出力周波数がｆOUT3である場合、コードワード発生器１４は、３２ビットのベースコードワード「００００００００００００１１１１１１１１１１１１１１１１１１１１」の１つのコピー５６を含むコードワードパターン５４を、３２ビット幅のレジスタ１２にロードする。
【００１８】
図４を参照し、他の例において、デューティサイクル分解能が５ビット（すなわち、デューティサイクル値は２5＝３２個の値をとり得る）、指定デューティサイクルが１７／３２（すなわち５３．１２５％）であるものと仮定する。この例では、レジスタ１２の幅が３２ビットであるものと仮定しているので、パルス幅変調信号２４の出力周波数は、１つ（ｆOUT1）しかとりえない。出力周波数は、ｆOUT1＝ｆCLK／２K+j-1によって与えられる。この例ではＫ＝５、ｊ＝１であるから、ｆOUT1はｆOUT1＝ｆCLK／３２となる。コードワード発生器１４は、２K+j-1＝２5＝３２ビットの長さのベースコードワードであって、デューティサイクル値「１７」（すなわち５ビットのバイナリコードだと「０１００１」）に対応するサーモメータコード値を有するベースコードワード「０００００００００００００００１１１１１１１１１１１１１１１１１」を生成する。コードワード発生器１４は、この３２ビットのベースコードワード「０００００００００００００００１１１１１１１１１１１１１１１１１」の１つのコピー６０を含むコードワードパターン５８を３２ビット幅のレジスタ１２にロードする。
【００１９】
実施形態によっては、コードワード発生器１４は、指定出力周波数が閾値ｆCLK／３２より大きいときに、デューティサイクル分解能Ｋを低下させることによって指定出力周波数を実現するように動作させてもよい。そのような実施形態では、コードワード発生器１４が、デューティサイクル分解能をＫからＫ−ｈに低下させることにより、出力周波数ｆCLK／２K-h+j-1を実現する場合がある。ただし、ｈは１からＫ−１の範囲の整数値である。図４の例では、Ｋ＝５，ｊ＝１であるから、ｆCLK／３２よりも高い可能な出力周波数はｆCLK／２5-hによって与えられる。ただし、ｈはデューティサイクル分解能を低下させるビット数に対応する。図４の例では、デューティサイクル分解能を１ビットだけ低下させることにより（すなわちｈ＝１）、さらに高い出力周波数ｆ’OUT1＝ｆCLK／１６を実現する。コードワード発生器１４は、２K-h+j-1＝２4＝１６ビットの長さのベースコードワードであって、デューティサイクル分解能１７／２＝８．５（すなわち５ビットバイナリコードだと１００１．１）を基数で丸めて、４ビットのデューティサイクル分解能に近似したものに対応するサーモメータコード値を有するベースコードワード「００００００００１１１１１１１１」を生成する。コードワード発生器１４は、ベースコードワード「０００００００００００００００１１１１１１１１１１１１１１１１１」の２つのコピー６４，６６を含むコードワードパターン６２を３２ビット幅のレジスタ１２にロードする。
【００２０】
図１に示す実施形態において、コードワード発生器１４は、所与の指定デューティサイクル３０および出力周波数２６について生成されたコードワードパターンを、レジスタ１２に１回だけロードする。コードワードパターンがロードされた後、レジスタ１２は出力１８からコードワードパターンを直列に出力する。出力されたビットがシリアル入力２０にフィードバックされるので、レジスタ１２は、コードワード発生器１４からコードワードパターンを再びロードすることなく、パルス幅変調出力信号２４の生成を継続することができる。これに関し、コードワード発生器１４は、外部ソースから受信した制御データ７０をもとにしてレジスタ制御信号６８を生成する。レジスタ制御信号６８は、コードワードパターンのパラレルロードと、出力１８からシリアル入力２０にフィードバックされたパルス幅変調出力信号２４のシリアルロードとを制御する。他の実施形態において、コードワード発生器１４は、ビットをレジスタ１２に直列に連続的にロードし、シフトアウトされたビットを置き換えることにより、パルス幅変調出力２４を生成するように構成してもよい。
【００２１】
図５は、コードワード発生器１４がデコーダ８２および制御ロジック８４によって実施されるパルス幅変調システム１０の一実施形態８０を示す。一部の実施形態において、デューティサイクル３０はＫビットのバイナリワードによって指定され、デコーダ８２は、そのバイナリワードを２Kビットのサーモメータコードワードにデコードする（例えばデューティサイクルコードワードが「１０１」である場合、デコーダ８２はそのデューティサイクルコードワードを「０００１１１１１」にデコードする）。ただし、Ｋは１からＮまでの整数値であり、Ｎはデコーダ８２への入力ビットラインの最大数に対応する整数値である。
【００２２】
デコーダ８２は、任意のタイプのバイナリ−サーモメータコードデコーダでよく、制御ロジック８４も、以下で説明する機能を有するように構成されていれば、任意のタイプの論理処理方式であってよい。デコーダ８２および制御ロジック８４は、特定のハードウェアまたはソフトウェアの構成に限定されることなく、デジタル電子回路や、コンピュータのハードウェア、ファームウェア、ソフトウェアなどを含む任意のコンピュータ環境または処理環境で実施することができる。
【００２３】
図６を参照すると、一部の実施形態において、パルス幅変調システム実施形態８０は、パルス幅変調出力信号２４を下記のようにして生成する。デコーダ８２が、Ｋビットの分解能を持つ指定デューティサイクル３０を受信する（ブロック８６）。デコーダ８２は、指定デューティサイクルをサーモメータコードのコードワードにデコードする（ブロック８８）。制御ロジック８４は、ｆOUT＝ｆCLK／２K+j-1で決まる出力周波数の組の中から選択された指定出力周波数２６を受信する（ブロック９０）。ただし、ｊはｊ＝１，・・・，Ｍであり、Ｍは使用可能な周波数の総数に等しい整数値である。制御ロジック８４は、デコーダ８２から受信したサーモメータコードワードの各ビットを２j-1回複製することによって、指定デューティサイクルによって決まるサーモメータコード値がエンコードされた２K+j-1ビットのベースコードワードを生成する（ブロック９２）。
【００２４】
つまり、図３に関する上記の例の場合、ｋ＝ｊ＝３であり、デューティサイクルコードワードが「１０１」であるから、デコーダ８２はそのデューティサイクルコードワードを「０００１１１１１」に変換する（ブロック８８）。指定出力周波数がｊ＝１に対応するもの（すなわちｆOUT1＝ｆCLK／２3）である場合、制御ロジック８４は、そのベースコードワードを２0＝１回生成することにより、指定デューティサイクルによって決まるサーモメータコード値がエンコードされた２3ビットのコードワード（すなわち「０００１１１１１」）を生成する（ブロック９２）。指定出力周波数がｊ＝２に対応するもの（すなわちｆOUT2＝ｆCLK／２4）である場合、制御ロジック８４は、そのベースコードワードを２1＝２回生成することにより、指定デューティサイクルによって決まるサーモメータコード値がエンコードされた２4ビットのコードワード（すなわち「００００００１１１１１１１１１１」）を生成する（ブロック９２）。指定出力周波数がｊ＝３に対応するもの（すなわちｆOUT3＝ｆCLK／２5）である場合、制御ロジック８４は、そのベースコードワードを２2＝４回生成し、指定デューティサイクルによって決まるサーモメータコード値がエンコードされた２5ビットのコードワード（すなわち「００００００００００００１１１１１１１１１１１１１１１１１１１１」）を生成する（ブロック９２）。
【００２５】
ベースコードワードを生成した後（ブロック９２）、ベースコードワードを２M-j回複製することによってコードワードパターン９４を生成し、ベースコードワードの２M-j個のコピーからなるシーケンスを生成する（ブロック９６）。ここでも図３に関する上記の例を考えると、ｊ＝１の場合、制御ロジック８４はベースコードワード「０００１１１１１」を２2＝４回複製し、ベースコードワードの４つのコピーからなるシーケンスを生成する。ｊ＝２の場合、制御ロジック８４はベースコードワード「００００００１１１１１１１１１１」を２1＝２回複製し、ベースコードワードの２つのコピーからなるシーケンスを生成する。ｊ＝３の場合、制御ロジック８４はベースコードワード「０００１１１１１」を２0＝１回複製し、ベースコードワードの１つのコピーからなるシーケンスを生成する。
【００２６】
コードワードパターン９４の生成（ブロック９６）が完了すると、制御ロジック８４はそのコードワードパターンを、少なくとも２N+M-1ビットを有するレジスタ１２にロードする（ブロック９８）。
【００２７】
他の実施形態も特許請求の範囲に記載した発明の範囲内である。
【図面の簡単な説明】
【００２８】
【図１】パルス幅変調システムの一実施形態を示すブロック図である。
【図２】パルス幅変調方法の一実施形態を示すフロー図である。
【図３】図２の方法に従って３つの異なるコードワードパターンがロードされたレジスタの３つの例を示す図である。
【図４】図２の方法に従って２つの異なるコードワードパターンがロードされたレジスタの２つの例を示す図である。
【図５】図１のパルス幅変調システムの一実施形態を示すブロック図である。
【図６】図５のパルス幅変調システムによって実施されるパルス幅変調方法の一実施形態を示すフロー図である。
【図１】
2005304017.tif 000004
【図２】
2005304017.tif 000005
【図３】
2005304017.tif 000006
【図４】
2005304017.tif 000007
【図５】
2005304017.tif 000008
【図６】
2005304017.tif 000009