(57)【特許請求の範囲】
【請求項１】
カウンタロード値及びクロック信号に応じてパルス幅変調出力信号を生成するパルス幅変調回路であって、
−  前記カウンタロード値を記憶するよう適合される入力レジスタ、並びに記憶された前記ロード値及び制御信号に応答する第１論理回路を含み、前記第１論理回路が、前記ロード値又は該ロード値の補数のいずれかである論理回路出力を供給するよう適合されているカウンタ装置であって、前記クロック信号に基づいて前記論理回路出力に対してカウントし、前記制御信号に応じて前記論理回路出力に対してカウントを再開するよう適合されるカウンタ回路を更に含む当該カウンタ装置と、
−  前記カウンタがオーバフローしきい値に達するのに応じて前記制御信号を作成するよう適合される第２論理回路と、
を備えるとともに、
−  カウンタに対応する最小カウント及び最大カウントにおいて適切な出力状態を強制するよう適合される第３論理回路であって、最小のカウントにおいて前記パルス幅変調出力をハイにさせ、最大のカウントにおいて前記パルス幅変調出力をローにさせるよう適合されている第３論理回路を、更に備えるパルス幅変調回路。
【請求項２】
前記第３論理回路が、当該回路中のトグルフリップフロップへの選択された入力を駆動して、前記パルス幅変調出力を強制するよう適合される少なくとも１つのゲートを含むことを特徴とする請求項１に記載のパルス幅変調回路。
【請求項３】
前記第３論理回路が、直接的にポートピンロジックを駆動して、前記パルス幅変調出力を強制するよう適合されることを特徴とする請求項１に記載のパルス幅変調回路。
【請求項４】
クロック信号を持つデジタル回路において使用するために、カウンタロード値に応じてパルス幅変調出力信号を生成する方法であって、
−  前記カウンタロード値を記憶するステップと、
−  記憶された前記ロード値及び制御信号に応答し、該ロード値又は該ロード値の補数のいずれかである論理回路出力を作成するステップと、
−  前記論理回路出力に応じて、デジタルカウンタを用いて、前記クロック信号に基づいて該論理回路出力に対してカウントをし、前記制御信号に応じて該論理回路出力に対して前記カウントを再開するステップと、
−  前記カウントがオーバフローしきい値に達するのに応じて前記制御信号を作成するステップと、
−  カウンタに対応する最小カウント及び最大カウントにおいて適切な出力状態を強制して、最小のカウントにおいて前記パルス幅変調出力をハイにさせ、最大のカウントにおいて前記パルス幅変調出力をローにさせるステップと、
を有する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル信号生成、より特定的にはパルス幅変調システム及び方法に関する。
【０００２】
【従来の技術】
パルス幅変調（PWM）は、一般に、多種多様のアプリケーションのためにデジタル信号処理装置において用いられる。幾つかのアプリケーションにおいては、入力刺激(input stimulus)が、各パルスの幅が入力刺激の値に比例する一定振幅のパルスを持つ信号を生成するために用いられる。入力信号のサンプリングレートは、適用できるサンプリング定理を満たし、それによって十分に正確なPWM出力信号を供給するのに十分速い。PWM回路に対する需要は非常に多いので、（マイクロプロセッサとしても知られている）マイクロコントローラのチップを含む今日のプログラマブルICの多くは、１つ以上の専用の入力／出力チップピンを備える組み込みのPWM回路を持つ。
【０００３】
より高機能の（例えば、プログラマブルな）ICの一部として、又は別個の論理回路を用いて、PWM出力信号は、典型的には、タイマ／カウンタ（「カウンタ」）、比較値保持レジスタ(compare-value-holding register)及び比較器を含む様々なモジュールを用いて生成される。PWM出力信号がマイクロプロセッサで用いられる場合には、マイクロプロセッサは、時として、PWM出力信号の作成において他のモジュールと直接的にかかわる。しかしながら、プロセッサ命令のために必要とされるサイクルタイムに対して、PWM出力信号の生成は長い時間をとり得る。マイクロプロセッサのタスクの１つがPWM出力信号の生成において手助けするものである場合、マイクロプロセッサ上で走るソフトウェアは、典型的には、カウンタ、比較値保持レジスタ及び比較器の処理と関連する様々な義務を果たすためにリアルタイムに割込みをかけられる。これらの割込みが、頻繁に生じ、典型的にはマイクロプロセッサの処理時間のうちの相対的にかなり多くの時間帯(relatively significant windows)を占めることから、チップのマイクロプロセッサのPWMモジュールとのかかわり (involvement)は、マイクロプロセッサの能力において、他の（PWM関連ではない）タスクに遅れずについていくのに著しい負担となり得る。
【０００４】
マイクロプロセッサがPWM関連ではないタスクに遅れずにより良くついていくことが出来るようにマイクロプロセッサをサポートするための努力がなされている。或るアプローチは、専らこれらのPWM関連のタスクのうちの幾つかを行なう付加的な論理回路をチップの設計に盛り込み、それによって、直接的にこの負担を幾らか相殺するものである。このようなアプリケーションにおいては、カウンタの出力は、時として、PWM出力信号によって表わされる入力パルスの所望のパラメータを計算するためにマイクロプロセッサのソフトウェアによって用いられる。別のアプローチは、マイクロプロセッサのクロックスピードは絶えず増大しているので、単に、この増大したクロックスピードを用いて、他のタスクがより素早く完了されるようにし、それによって、マイクロプロセッサが、負担となっているPWM関連のタスクをサポートするのに利用可能な時間をより多くするものである。残念なことに、多くのチップ及びアプリケーションの場合、チップ面積(chip real estate)及び利用可能な処理時間は、あまり融通の利くものではない。
【０００５】
他のアプリケーションは、典型的には、専用の機能に対して利用可能なチップピンがより少ないチップ内のより汎用性のある機能（又はプログラマブルな柔軟性）、及びより速いデータ処理速度を必要とする。典型的に、専用の機能のために利用可能なチップピンがより少ないコンパクトなチップ設計の場合は、専用回路のために残されているスペースは、たとえあるとしても、ほとんどない。これらの例において、各チップピンに対して多数の機能を供給し、機能が、現場(field)でプログラマブルに、又は製造のより遅い段階において規定されることは有利である。
【０００６】
【発明が解決しようとする課題】
本発明は、上記の課題に対処するパルス幅変調(PWM)回路、及び必要とされてはいないが、PWM機能専用である比較値保持レジスタ及び比較器などの回路なしに実施され得るPWM技法を目的としている。本発明は、多数の実施例及びアプリケーションにおいて例示され、その幾つかが以下に要約されている。
【０００７】
【課題を解決するための手段】
或る実施例によれば、本発明は、PWM信号がカウンタロード値及びクロック信号に応じて生成される技法及び回路装置を目的としている。前記技法は、前記カウンタロード値を記憶する入力レジスタを持つ回路装置の使用を伴う。第１論理回路は、前記ロード値又は該ロード値の補数(complement)のいずれかである論理回路出力を供給するために記憶された該ロード値及び制御信号に応答する。更に、PWM回路は、前記論理回路出力に対してカウントをし、前記制御信号に応じて前記論理回路出力に対してカウントを再開するカウンタ回路を持つ。第２論理回路は、前記カウンタがオーバフローしきい値に達するのに応じて前記制御信号を作成し、前記PWM出力信号は、前記制御信号から又は該制御信号と関連して供給され得る。これらの実施例は、相対的に少量の付加的な回路で既存のタイマ／カウンタにPWM機能が付加されることを可能にし、上記の背景に記載されている問題を含む問題に対処する。
【０００８】
他の特徴は、上記の制御信号の付加的な使用を目的としている。例えば、或るより特定的な実施例においては、前記制御信号が、ロード値又は該ロード値の補数のいずれかとして論理回路出力を供給するのと関連して第１論理回路にタイミングを供給するのに用いられる。別の特定の実施例においては、前記制御信号は、前記ロード値の補数として前記論理回路出力を供給するのと関連して用いられる１の補数の実施の原因となるために補正がなされるべきか否かを示すために用いられる。
【０００９】
有利なことには、上記の技法（及びその変形例）は、現在多くの市販のチップ中に存在するカウンタによって供給される機能をはずすことなしに実施され得る。少数の付加的な論理ゲートを設けるだけで、現在のカウンタ設計は、該設計の既存の機能又はPWM機能のいずれかを選択的に（プログラマブルに）供給するよう適合され得る。回路スペース及び／又は利用可能なチップピンに関して関心を持つチップ設計に対して、本発明の実施は極めて有益であり得る。上記の本発明の要約は、本発明の例示される実施例の各々又は全ての実施例を説明することを意図するものではない。以下の図及び詳細な説明は、より特定的にこれらの実施例を例示する。
【００１０】
本発明は、添付図面と関連して後述する本発明の様々な実施例の詳細な説明を考慮してより完全に理解され得る。
【００１１】
本発明は、様々な変形例及び別の形態に適用可能であるが、それらのうちの特定のものを、図面において一例として図示しており、以下に詳細に記載している。しかしながら、本発明を記載されている特定の実施例に限定することを意図したものではないことを理解されたい。逆に、添付されている特許請求の範囲によって規定されているような本発明の趣旨及び範囲内に入る全ての変形例、均等物及び代替例を対象として含めることを意図している。
【００１２】
【発明の実施の形態】
本発明は、パルス幅変調(PWM)機能を必要とする又はPWM機能によって恩恵を受ける様々な異なるタイプのアプリケーションに適用可能であると考えられ、別のカウンタ関連の機能を供給するために容易に再構成され得るPWM回路アーキテクチャ、又は挑戦的な回路スペースであり、比較値保持レジスタ及び比較器の回路などの従来のPWM回路を収容することが出来ないPWM回路アーキテクチャによって恩恵を受けるチップアプリケーションに対してとりわけ有用であることが分かった。必ずしもこのようなアプリケーションに限定されないが、本発明の様々な特徴は、このことに関連する様々な例の記載を介して認識され得る。
【００１３】
或る実施例によれば、本発明は、選択可能な動作モードを持つ再構成可能なＰＷＭ回路アーキテクチャを供給する。このアーキテクチャは、PWM出力信号を生成するパルス幅変調回路を含み、このPWM出力信号は主として自動リロードカウンタのための被制御フィードバック(controlled feedback)を用いて生成される。多くの従来の自動リロードカウンタは、カウンタのオーバフロー条件(overflow condition)の発生を示す出力トグル機能を持つ。或る特定の実施例は、出力トグル機能（即ち「トグル信号」）を用いて、自動リロードタイマ／カウンタ（「カウンタ」）にフィードバックを供給して、タイマカウントを変える。特定的には、タイマカウントは、（例えば、計数機(counting machine)をロードするために用いられる）入力保持レジスタと、（例えば、逐次カウントを行なうために計数機によって用いられる）カウントレジスタとの間のリロード・パスにおいて補数にされる。カウンタがオーバフローする場合、入力保持レジスタのコンテンツがカウントレジスタに転送され、カウントはカウントレジスタ中の値から行なわれる。
【００１４】
本発明によれば、PWM信号の周期が一定であれば、PWM信号は、バイナリ・タイムライン(binary timeline)に沿ったハイマーク(high mark)及びローマークの合計から成っていると見なされ得る。例えば、全周期が256タイマカウントである場合には、全周期を規定するタイムラインに沿ったハイの時間(high times)及びローの時間(low times)は互いの負の値、即ち、ハイ = −ロー、ロー = −ハイである。これに関連して、PWM信号は、トグル信号の一方のフェーズにおいてカウントレジスタに二進数「X」をロードし、他方のフェーズにおいて二進数「-X」をロードすることにより達成される。この方法において、一方のフェーズの場合は、計数機は、二進数「X」から、オーバフロー条件が発生するまでカウントし、オーバフロー条件が発生する時には、トグル信号の他方のフェーズが、カウントのために二進数「-X」をロードし、それにより、前記一方のフェーズが計数機に再び二進数「X」からカウントさせるまでカウンタにカウントさせる。
【００１５】
計数機及び該計数機の関連するレジスタの各々が「N」ビット幅であり、Nが３と等しい特定の例を考える。この例は、PWM信号を表わすための2N（又は8）個のバイナリカウント状態(binary counting states)を可能にする。カウンタは、カウントアップ（逆にダウン）をし、入力保持レジスタは、最初に、PWMサイクルが５−ハイ／３−ローのデューティサイクル比を作成すべきことを示すために二進数「101」をロードされると仮定すると、計数機はカウントレジスタから「101」を受け取り、カウントはカウントレジスタ中のこのバイナリ値から行なわれる。このカウント中、トグル信号は3サイクルの間同じ状態のままである。カウントがオーバフロー条件に達すると、二進数「-X」、即ちこの例においては「011」をロードするトグル信号の他方のフェーズに遷移する。カウントレジスタに「011」をロードすることにより、計数機は、オーバフロー条件への到達に対応する5サイクルの間トグル信号が逆の状態のままであるようにカウントする。計数機が再びオーバフロー条件に達する場合、トグル信号から供給されるフィードバックにより、「101」がもう一度カウントレジスタにロードされ、カウントが上記のように行なわれ、それによって、所望の５−ハイ／３−ローのデューティサイクルを確立する。このようなアプローチは、１の補数(one’s complement)が正確には所望のデューティサイクルを作成しない或る状況の場合には近似である。しかしながら、正確なデューティサイクルの達成が重要ではない、及び／又は「N」が相対的に大きいことが不正確さを相対的に取るに足らなくする多くのアプリケーションとってこれは許容可能であり得る。
【００１６】
本発明の他の実施例は、事実上又は実際に、入力保持レジスタとカウントレジスタとの間のリロード・パスにおいてバイナリ値の（１の補数ではなく）「２の補数」をもたらすロジックを用いて、この近似を克服し、所望のデューティサイクルを正確に供給する。斯くして、二進数「-X」は、単に二進数「X」のビットの各々を反転させる代わりに、真の「２の補数」を達成するロジックを用いて作成され、所望のデューティサイクル比は、計数機が入力保持レジスタ中の真の補数にされたバイナリ値(true complemented binary value)からサイクルの全数をカウントすることを可能にすることによって達成される。
【００１７】
当業者には、「補数」が、例えば、入力保持レジスタとカウンタレジスタとの間でNビットの各々に対して2入力XORゲート（又は「XNOR」ゲート、XOR関数となるいずれか一方）を用いることを含む様々な方法で達成され得ることが分かる。例えば、80C51タイプのマイクロコントローラチップにおいては、8ビットの各々に対してTHxレジスタとTLxレジスタとの間に2入力XORゲートが付加される。XORへの一方の入力はTHxレジスタの出力であり、他方の入力はトグルピン(toggledpin)、Txである。XORゲートの出力は、TLxレジスタに供給される。斯くして、TLxレジスタには、トグル出力(toggled output) 、Txの状態に依存して、プログラムされた値「X」又は「X」の補数のいずれかがロードされる。
【００１８】
上記に関連して真の「２の補数」を達成するための様々な方法もある。或る方法は、「２の補数」の計算を用いる他のアプリケーションにおいては普通なことであるが、XOR関数を供給する回路に加えて又は該回路の代わりにより高度な論理回路を用いるものである。他の例においては、「２の補数」は、入力保持レジスタとカウンタレジスタとの間でNビットの各々に対して上記のXOR関数のロジックを使用し、且つカウンタのオーバフロー条件の１サイクル／カウント前にトグル機能をトリガするロジックも使用することにより、達成され得る。これは、例えば、カウンタのパラレル出力の最下位ビット(LSB)のパス中にORゲート（又はNORゲート、各々がOR関数を供給する）を配置して、ORゲートの出力がカウンタのオーバフロー条件（典型的には、Nビットの各々が論理の「1」である場合）を検出するために用いられるロジック（即ちANDゲート）のLSBを駆動する(drive)ようにすることにより達成され得る。ORゲートは、（典型的にはラッチされる）トグル信号が逆の状態（即ち「-X」フェーズ）のために作成されている場合にしか用いられない。斯くして、単一のORゲートへの2入力の一方は、カウンタのパラレル出力のLSBであり、他方の入力は、ラッチされたトグル信号であり、ORゲートの出力は、カウンタのオーバフロー条件を検出するのに用いられるANDゲートのLSB入力を駆動する。このように、カウンタがオーバフローしきい値に達するのを検出するために単一のORゲートが用いられる。多数の例に照らして、この２の補数のロジックが用いられていない場合、オーバフローしきい値はカウンタのオーバフロー条件と同じであることは分かるであろう。
【００１９】
このようにカウンタのオーバフロー条件を予測することは、少なくとも２つの理由で有利である。第１に、このアプローチは、ほとんど付加的なロジックを必要とせず、例えば、ORゲートがEXORロジックに対する著しい付加である。第２に、このアプローチは、Nが小さいアプリケーションに対してさえ、極めて正確な２の補数を供給する。
【００２０】
図１は、本発明の上記の特徴のためのアーキテクチャを供給するために用いられ得る様々な例の回路を示している。図１においては、パルス幅変調回路１００は、最初に、入力（リロード）レジスタ１１０に対してロードし、ポート１１２におけるパルス幅変調出力信号のためのデューティサイクルを規定するマイクロプロセッサ（即ち、「MPU」で示されているマイクロコントローラ）１０４などのツールを含む。入力レジスタ１１０は、変更されていない形態又は補数にされた形態のいずれかでカウンタ１１６のためにパラレルにロードされた値を記憶し、出力するよう設計される。図１において示されている例においては、トグル・フリップ／フロップロジック１２４が、「-X」条件／フェーズがあることを示す場合にのみ、ロードされた値は、ロード値の１の補数を作成する補数論理回路(complement logic circuit)１２０を介して与えられる。上記のように、この１の補数の関数は、EXORゲートを介して達成され得る。「X」条件／フェーズの間、補数論理回路１２０は、単にロード値をカウンタ１１６へ通過させる。
【００２１】
カウンタ１１６は、クロック信号によって規定される速度で、ロードされた値（即ち論理回路出力）に対して、例えば、該ロードされた値から始めて、カウントし、カウンタがしきいカウントに達すると、このリロードを命じるカウンタのオーバフローロジック１２８に応じて論理回路出力に対してカウントを再開するよう適合されるアップカウンタである。
【００２２】
カウンタのオーバフローロジック１２８は、上記のORゲート機能を用いて、「-X」条件／フェーズのための真の「２の補数」の達成と関連して上記の補正を供給するよう実施され得る。このように、カウンタのオーバフローロジック１２８は、「X」条件／フェーズの間に実際のオーバフロー条件がある場合、及び「-X」条件／フェーズの間に実際のオーバフロー条件が予測(anticipate)される場合にカウンタ１１６にリロードするよう命じる。
【００２３】
また、本発明によれば、上記の技法の変形例は、ロード機能、補数機能及びカウント機能の各々を実施するのにソフトウェアを用いるマイクロプロセッサにおいて行なわれ得る。或るこのような特定の実施例においては、タイマフラグ割込みが、オーバフロー条件の発生に応じて用いられ、これに応じて、２つのあり得る値（変更されていない値又は補数にされた値）のうちのどちらが次のカウントサイクルに対してロードされる必要があるかを決定するために出力ピンの状態がチェックされる。
【００２４】
本発明のより特定的な実施例においては、カウントが0000 0000又は1111 1111のいずれかである場合に適切な出力状態を強制し、事実上、零のカウントに対してはPWM出力をハイにさせ、最大のカウントに対してはPWM出力をローにさせる１つ以上の論理回路が付加される。これは、回路（例えばトグルフリップフロップ）へのプリセット入力又はクリア入力のいずれかを駆動する、又は適切な出力をもたらすために直接的にポートピンロジックを駆動するための単純なゲートを用いて実施され得る。これは、一般に、零のカウントにおいてはPWM出力をハイにさせ、最大のカウントにおいてはPWM出力をローにさせることにより対処されている、あり得る最小カウント及びあり得る最大カウント（例えば、8ビットカウンタの場合は0000 0000及び1111 1111）と関連する問題に対処するのにとりわけ有用である。この点について、図１は１つの実施例を示しており、この実施例においては、最小（例えば全零の）検出器１３０は、PWM出力をハイにさせるためにトグル・フリップ／フロップロジック１２４にプリセット信号１３２を送るよう適合され、最大（例えば全１の）検出器１４０は、PWM出力をローにさせるためにトグル・フリップ／フロップロジック１２４にクリア信号１４２を送るよう適合される。
【００２５】
上記の様々な実施例は、一例として記載されているに過ぎず、本発明を限定するよう解釈されるべきではない。上記の記載及び図表に基づいて、当業者は、本明細書に図示され、記載されている典型的な実施例及びアプリケーションに厳密には従わない本発明に対する様々な修正及び変形がなされ得ることを容易に認識するであろう。このような修正例及び変形例は、特許請求の範囲に記載の本発明の本当の趣旨及び範囲から外れない。
【図面の簡単な説明】
【図１】  本発明の様々な特徴を実施し、実行するのに用いられ得る様々な例示回路を図示するブロック図である。
【図１】
0004098091.tif 000002