(57)【要約】【課題】精度の高いＰＷＭ信号を生成できるパルス信号生成回路を提供する【解決手段】ＰＷＭ周期調整部４００は、クロックの分周により生成されるカウントアップ信号ｅｎを、パルス周期を広げる付加パルスの付加頻度を示すＰＷＰＡＲＬ２１０の設定値に基づいて調整した第２カウントアップ信号ｅｎ２を生成する。ＰＷＭ波形生成部５００は、第２カウントアップ信号ｅｎ２と、予め定められたデューティー比と、に基づいてＰＷＭ信号を生成する。【選択図】図１
2013211682.tif 000002
【特許請求の範囲】
【請求項１】
クロックを基に生成されるカウントアップ信号を、ＰＷＭ信号のパルス周期を広げる付加パルスの付加頻度を示す第１設定値に基づいて調整した第２カウントアップ信号を生成するＰＷＭ周期調整部と、
前記第２カウントアップ信号と、予め定められたデューティー比と、に基づいて前記ＰＷＭ信号を生成するＰＷＭ波形生成部と、を備え、
前記ＰＷＭ周期調整部は、前記カウントアップ信号をカウントするカウント部と、
前記カウント部のカウント値、前記第１設定値、及び前記第１設定値のビット幅に基づいて、前記付加パルスを付加するパルス周期を示す指示信号を生成するパルス付加タイミング検出部と、
前記カウント部のカウント値と前記指示信号に基づき、前記カウントアップ信号に前記付加パルスを付加するタイミングを示すマスク信号を生成し、前記マスク信号に応じて前記カウントアップ信号をマスクすることにより前記第２カウントアップ信号を生成する第２カウントアップ信号生成部と、を備えるパルス信号生成回路。
【請求項２】
前記カウント部は、前記付加パルスの幅を示す第２設定値に応じて前記カウントアップ信号のカウントアップをマスクし、
前記第２カウントアップ信号生成部は、前記第２設定値に応じて、前記マスク信号の値の切替タイミングを定めることを特徴とする請求項１に記載のパルス信号生成回路。
【請求項３】
前記第２カウントアップ信号生成部は、前記パルス周期を前記第２設定値だけ常に拡張する、または、前記第１設定値に規定の頻度だけ前記パルス周期を前記第２設定値だけ拡張する、ことのいずれかを規定するモード情報に基づいて、前記第２カウントアップ信号を生成することを特徴とする請求項２に記載のパルス信号生成回路。
【請求項４】
前記第２設定値を変更するパルス幅調整部を更に備えることを特徴とする請求項２に記載のパルス信号生成回路。
【請求項５】
前記第１設定値、前記クロックの分周値を定める設定値、前記デューティー比を定める設定値のうち少なくとも２つを保持する浮動小数点レジスタを備える請求項１に記載のパルス信号生成回路。
【請求項６】
前記ＰＷＭ波形生成部は、前記デューティー比に規定されたハイ幅を変更する頻度を示す第３設定値に基づいて、前記ＰＷＭ信号のハイ幅とロウ幅を調整することを特徴とする請求項１に記載のパルス信号生成回路。
【請求項７】
請求項１に記載のパルス信号生成回路と、前記パルス信号生成回路の生成した前記ＰＷＭ信号により駆動するモータと、を備えた情報処理システム。
【請求項８】
クロックの分周により生成されるカウントアップ信号をカウントし、
前記カウントアップ信号のカウント値、ＰＷＭ信号のパルス周期を広げる付加パルスの付加頻度を示す第１設定値、及び前記第１設定値のビット幅に基づいて、前記付加パルスを付加するパルス周期を示す指示信号を生成し、
前記カウント値と前記指示信号に基づき、前記カウントアップ信号に前記付加パルスを付加するタイミングを示すマスク信号を生成し、
前記マスク信号に応じて前記カウントアップ信号をマスクすることにより生成した第２カウントアップ信号を用いて前記ＰＷＭ信号を生成する、パルス信号生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パルス信号生成回路、及びパルス信号生成方法に関する。
【背景技術】
【０００２】
マイクロコンピュータ内では、各処理部が正確な動作を行うために内部タイマの精度を向上させる必要がある。そのため、マイクロコンピュータは、特定の周波数を生成する専用の水晶発振子を用いてタイマを構成する場合がある。専用の水晶発振子を用いることにより、用途に応じた正確な時間が計れるタイマを構成することが可能となる。
【０００３】
特許文献１には、動作用のクロックの周波数に関わらず、所要のビットレートを生成することができる半導体装置を開示している。当該半導体装置は、特定の周波数を持つ水晶発振子を必要としない。当該半導体装置は、動作用クロックをカウントし、そのカウント結果に基づいて単位転送時間を規定するために用いる基本クロックを生成するボーレートジェネレータと、基本クロックに従って送受信制御を行う送受信コントローラと、を備える。さらに、当該半導体装置は、ボーレートジェネレータへの動作用クロックの供給を部分的にマスクするビットレートモジュレータを備える。ビットレートモジュレータのマスク処理の頻度を調整することにより、専用の水晶発振子を有さない構成であっても、基本クロックの精度を調整することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１１４６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、モータ（ＤＣモータ、ＲＣサーボモータ等）を制御するためにＰＷＭ（Pulse Width Modulation: パルス幅変調）制御技術が用いられる。ＰＷＭ制御技術では、直流電源のスイッチをＯＮしている時間とＯＦＦしている時間との割合（デューティー比）により、モータを制御する。ＰＷＭ制御により生成されるパルス信号（ＰＷＭ信号）は、ＯＮ／ＯＦＦを繰り返す電気信号であり、矩形波で表わされる。
【０００６】
一般的なＰＷＭ制御技術では、パルス信号がハイ（ＯＮ）になっている幅（以下、ハイ幅とも記載する）とロウ（ＯＦＦ）になっている幅（ロウ幅とも記載する）の比、すなわちデューティー比を変更することができる。
【０００７】
しかしながら、本願発明者は、従来の技術ではＰＷＭ信号の周期（ハイ幅とロウ幅の合計幅）を細かく調整することが出来ないという課題を見出した。近年、産業用ロボット等の普及が広がってきている。これらのロボットの制御に用いるモータでは、瞬間的にＯＮ／ＯＦＦを繰り返す制御が必要となる。当該繰り返し制御を行うためには、高速な応答速度が求められる。高速な応答速度を実現するためには、ＰＷＭ信号の周期を細かく設定できることが必須となる。同様に、電気自動車のモータ制御を行う場合にも精密なＰＷＭ制御を行う必要があり、ＰＷＭ信号の周期を細かく設定できることが必須となる。しかしながら、上記した特許文献１の技術はＰＷＭ信号の周期の調整に応用できるものではないため、従来の技術では生成するＰＷＭ信号の精度が十分ではないという問題があった。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、パルス信号生成回路は、クロックの分周により生成されるカウントアップ信号をカウントし、当該カウント値、及びＰＷＭ信号のパルス周期を広げる付加パルスの付加頻度を示す第１設定値に基づいて、前記付加パルスを付加するパルス周期を示す指示信号を生成する。そして、パルス信号生成回路は、前記カウント値と前記指示信号に基づき、前記カウントアップ信号を調整した第２カウントアップ信号を生成し、この第２カウントアップ信号を用いて前記ＰＷＭ信号を生成する。
【発明の効果】
【０００９】
前記一実施の形態によれば、精度の高いＰＷＭ信号を生成することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかるパルス信号生成回路の構成を示すブロック図である。
【図２】一般的なＰＷＭ制御によるＰＷＭ信号の仕組みを説明する概念図である。
【図３】実施の形態１にかかるＰＷＭ周期調整部４００の概略構成を示すブロック図である。
【図４】実施の形態１にかかるＰＷＭ周期調整部４００の動作を示すタイミングチャートである。
【図５】実施の形態１にかかるＰＷＭ周期調整部４００の詳細構成例を示すブロック図である。
【図６】実施の形態１にかかるパルス生成部４２５の詳細構成例を示すブロック図である。
【図７】実施の形態１にかかるＰＷＭ波形生成部５００の概略構成を示すブロック図である。
【図８】実施の形態１にかかるＰＷＭ波形生成部５００の動作を示すタイミングチャートである。
【図９】実施の形態１にかかるＰＷＭ波形生成部５００の詳細構成例を示すブロック図である。
【図１０】実施の形態１にかかるカウンタ部５１０の詳細構成例を示すブロック図である。
【図１１】実施の形態１にかかるパルス信号生成回路の動作概念図である。
【図１２】実施の形態２にかかるＰＷＭ周期調整部４００の概略構成を示すブロック図である。
【図１３】実施の形態２にかかるＰＷＭ周期調整部４００の動作を示すタイミングチャートである。
【図１４】実施の形態２にかかるＰＷＭ周期調整部４００の動作を示すタイミングチャートである。
【図１５】実施の形態２にかかるＰＷＭ周期調整部４００の詳細構成例を示すブロック図である。
【図１６】実施の形態２にかかるカウント調整部４１７の詳細構成例を示すブロック図である。
【図１７】実施の形態２にかかるパルス信号生成回路の動作概念図である。
【図１８】実施の形態２にかかるパルス信号生成回路の動作概念図である。
【図１９】実施の形態３にかかるパルス信号生成回路の構成を示すブロック図である。
【図２０】実施の形態３にかかるパルス信号生成回路の動作概念図である。
【図２１】実施の形態４にかかるパルス信号生成回路の構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態にかかるパルス信号生成回路の構成を示すブロック図である。パルス信号生成回路１は、セレクタ１００と、ＰＷＭコントロールレジスタ（以下、ＰＷＣＲとも記載する）２００と、ＰＷＭ周期調整レジスタ（以下、ＰＷＰＡＲＬとも記載する）２１０と、ＰＷＭデータレジスタ（Ｈ）（以下、ＰＷＤＲＨとも記載する）２２０と、ＰＷＭデータレジスタ（Ｌ）（以下、ＰＷＤＲＬとも記載する）２３０と、エッジ検出部３００と、ＰＷＭ周期調整部４００と、ＰＷＭ波形生成部５００と、を備える。パルス信号生成回路１は、ＰＷＭ制御によるパルス幅変調信号（ＰＷＭ信号）を生成する回路である。例えば、パルス信号生成回路１は、ＰＷＭ信号により駆動するモータを含む情報処理システムに内蔵され得る。
【００１２】
セレクタ１００には、外部から入力されるクロック（外部クロック）、及びシステムクロック（φ）を分周した信号（φ／２、φ／４、φ／８…）が入力される。ここで、外部から入力されるクロックは、システムクロック（φ）と同じソースから生成したφ／（２＾ｎ）（ｎ＞１）の周波数を持つ。セレクタ１００にはＰＷＣＲ２００から値が入力され、当該値に応じて入力された信号（外部クロック、φ／２、φ／４、φ／８）の一つを選択してエッジ検出部３００に供給する。
【００１３】
エッジ検出部３００は、入力信号のエッジを検出して、エッジの検出状態をＰＷＭ周期調整部４００に供給する。以下、エッジ検出部３００が出力する信号をカウントアップタイミング信号ｅｎと記載する。
【００１４】
ＰＷＭ周期調整部４００は、カウントアップ信号ｅｎ及びＰＷＰＡＲＬ２１０に設定された値（第１設定値）に応じて、後述のＰＷＭ波形生成部５００がＰＷＭ信号の生成に用いる第２カウントアップ信号ｅｎ２を生成する。カウントアップ信号ｅｎから第２カウントアップ信号ｅｎ２に変換する処理を行うことにより、パルス信号生成回路１が生成するＰＷＭ信号の周期（ハイ幅とロウ幅の合計幅、以下の説明では説明の便宜のためパルス周期とも記載する。）が調整可能となる。まず、説明の便宜のため、一般的なＰＷＭ制御によるＰＷＭ信号の仕組みについて、図２を参照して説明する。
【００１５】
後述するＰＷＤＲＨ２２０には、ｎビット（ｎは１以上の整数）の数値（デューティー比の基本設定値）が設定される。一般的なパルス信号生成装置では、カウントアップタイミング信号ｅｎ（外部クロックまたはシステムクロックの分周信号）のエッジを２のｎ乗回（ｎ＝８の場合には２５６回）だけカウントし、そのカウントにかかるサイクルを１パルス周期とする。この際、ＰＷＤＲＨ２２０に設定された値のカウントが生じたタイミングで、ＰＷＭ信号をハイレベルからロウレベルに切り替える。例えば、ＰＷＤＲＨ２２０に"１１００００００"（十進数に換算すると１９２）が設定されていた場合、２５６カウントを１パルス周期とし、ハイ幅が１９２カウントのＰＷＭ信号が生成される。
【００１６】
続いて、ＰＷＭ周期調整部４００の概略構成を、図３を参照して説明する。ＰＷＭ周期調整部４００は、概ね３つのブロック（カウンタ部４１０、パルス付加タイミング検出部４２０、第２カウントアップ信号生成部４３０）から構成される。カウンタ部４１０は、入力されたカウントアップタイミング信号ｅｎのエッジ検出回数を出力する。カウンタ部４１０は、フルカウント（２のｎ乗）までカウントした場合、０から再度カウントを行う。カウンタ部４１０は、エッジ検出回数であるｎビットのカウント値（信号Ｓ１）をパルス付加タイミング検出部４２０と第２カウントアップ信号生成部４３０に供給する。
【００１７】
パルス付加タイミング検出部４２０は、ＰＷＰＡＲＬ２１０からｉビット（ｉは１以上の整数）の設定値を読み出す。ＰＷＰＡＲＬ２１０の設定値（第１設定値）は、パルス周期を広げる付加パルスの付加頻度を示す値である。パルス付加タイミング検出部４２０には、カウントアップタイミング信号ｅｎ及びカウンタ部４１０の出力信号（Ｓ１）が入力される。パルス付加タイミング検出部４２０は、パルス周期単位（カウントアップタイミング信号ｅｎのエッジが２のｎ乗回検出される毎）にハイレベル、またはロウレベルが切り替わり得る２値信号Ｓ２を生成する。この２値信号Ｓ２は、付加パルスを付与するパルス周期を指示する（パルス周期を広げる周期を指示する）指示信号である。詳細を図４のタイミングチャートを参照しつつ説明する。
【００１８】
以下、ＰＷＰＡＲＬ２１０には"１１００００"（６ビット値であり、１０進数で４８を示す値）が設定されているものとする。パルス付加タイミング検出部４２０は、ＰＷＰＡＲＬ２１０に設定されたｉビットの値（４８）と、２のｉ乗（６４）と、の比率に応じてハイレベル、ロウレベルを切り替える。すなわち、パルス付加タイミング検出部４２０は、指示信号Ｓ２として、６４パルス周期のうち４８パルス周期だけハイレベル（付加パルスを付与するタイミングを示す値）を出力し、それ以外の場合にはロウレベル（付加パルスを付与しないタイミングを示す値）を出力する。
【００１９】
本実施の形態では、第２カウントアップ信号生成部４３０は、ＡＮＤゲート４３１と、インバータ４３２と、ＡＮＤゲート４３３と、から構成される。ＡＮＤゲート４３１は、信号Ｓ１（ｎビット値）と、指示信号Ｓ２との論理積をマスク信号（ｍｓｋ）としてインバータ４３２及びカウンタ部４１０に出力する。ＡＮＤゲート４３１は、ｎビット値（信号Ｓ１）がフルカウント（全てのビットが１となった状態）であり、かつ指示信号Ｓ２がハイレベルの場合にのみ、マスク信号（ｍｓｋ）としてハイレベルを出力する（図４参照）。マスク信号（ｍｓｋ）は、パルス周期に付加パルスを付加するタイミングを規定する信号である。インバータ４３２は、マスク信号（ｍｓｋ）の反転信号をＡＮＤゲート４３３に供給する。
【００２０】
ＡＮＤゲート４３３は、マスク信号（ｍｓｋ）の反転信号と、カウントアップタイミング信号ｅｎと、の論理積を第２カウントアップタイミング信号ｅｎ２としてＰＷＭ波形生成部５００に出力する。図４に示すように、第２カウントアップタイミング信号ｅｎ２は、マスク信号（ｍｓｋ）としてハイレベルが入力された際には、ロウレベルとなるカウントアップ信号である。
【００２１】
続いて、ＰＷＭ周期調整部４００の詳細構成例を、図５を参照して説明する。図５に示すブロック図は、図３に示したＰＷＭ周期調整部４００の概略構成を具現化した回路構成の一例である。カウンタ部４１０は、インクリメンタ４１１、セレクタ４１２、ＡＮＤゲート４１３、１ビットフリップフロップ４１４、フリップフロップ４１５、及びインバータ４１６を備える。なお、各フリップフロップのクロック端子には、システムクロック（φ）が供給されている（パルス付加タイミング検出部４２０においても同様である。）。
【００２２】
フリップフロップ４１５の出力であるｎビットカウント値は、ＡＮＤゲート４３１、ＡＮＤゲート４２１、インクリメンタ４１１、及びセレクタ４２１に供給される。インクリメンタ４１１は、ｎビットカウント値（信号Ｓ１）に１を加算し、当該加算結果をセレクタ４１２に供給する。セレクタ４１２は、いわゆる２入力のマルチプレクサであり、カウントアップ信号ｅｎを選択制御信号として用いる。セレクタ４１２は、カウントアップ信号ｅｎがハイレベルの場合にはインクリメンタ４１１からの入力信号をＡＮＤゲート４１３に供給し、カウントアップ信号ｅｎがロウレベルの場合にはフリップフロップ４１５からの出力であるｎビットカウント値（信号Ｓ１）をＡＮＤゲート４１３に供給する。
【００２３】
ＡＮＤゲート４１３は、セレクタ４１２の出力信号と、インバータ４１６の出力信号と、の論理積をフリップフロップ４１５の入力端子Ｄに供給する。１ビットフリップフロップ４１４の入力端子Ｄは、ＡＮＤゲート４３１と接続し、出力信号をインバータ４１６に供給する。ここで、１ビットフリップフロップ４１４は、カウントアップ信号ｅｎをイネーブル端子の入力とする。インバータ４１６は、１ビットフリップフロップ４１４の出力信号の反転信号をＡＮＤゲート４１３に供給する。インバータ４１６の出力信号は、第２カウントアップ信号ｅｎ２のカウントアップをマスク信号（ｍｓｋ）により一時的に停止させたことに対応して、カウンタ４１０のカウントアップも一時的に停止させるために用いられる。ただし、ゲートループを回避するために、第２カウントアップ信号ｅｎ２のカウントアップのカウントアップが一時停止したタイミングとは異なるタイミング（１カウント後）にカウントアップが一時停止するように値が設定される。
【００２４】
パルス付加タイミング検出部４２０は、ＡＮＤゲート４２１と、インクリメンタ４２２と、セレクタ４２３と、フリップフロップ４２４と、パルス生成部４２５と、を備える。ＡＮＤゲート４２１は、カウントクロック信号ｅｎとフリップフロップ４１５の出力信号Ｓ１の論理積を、セレクタ４２３の選択制御信号として供給する。インクリメンタ４２２は、フリップフロップ４２４から出力されるｉビット（ｉは１以上の整数）の数値に１を加算し、当該加算結果をセレクタ４２３に供給する。セレクタ４２３は、ＡＮＤゲート４２１の出力信号がハイレベルの場合にはインクリメンタ４２２からの入力信号をフリップフロップ４２４の入力端子Ｄに供給し、ＡＮＤゲート４２１の出力信号がロウレベルの場合にはフリップフロップ４２４からの入力信号をフリップフロップ４２４の入力端子Ｄに供給する。フリップフロップ４２４は、ｉビットの数値をインクリメンタ４２２、セレクタ４２３、及びパルス生成部４２５に供給する。フリップフロップ４２４は、一般的なＤ型フリップフロップであり、パルス周期毎にカウントアップするｉビットのカウンタとして動作する。当該カウント値は、パルス周期毎に１だけカウントアップする。
【００２５】
パルス生成部４２５は、フリップフロップ４２４の出力（ｉビットのカウント値）、及びＰＷＰＡＲＬ２１０の設定値を基に、前述の指示信号Ｓ２を生成する処理部である。パルス生成部４２５の詳細な構成例を図６に示す。
【００２６】
図６に示すＰＷＰＡＲＬ２１０には、６ビット（ｉ＝６）の値が設定されている。パルス生成部４２５は、ＰＷＰＡＲＬ２１０に設定されたビット値のビット幅（すなわち６）に対応するＡＮＤゲート（４５１〜４５６）が備えられている。
【００２７】
以下、ＰＷＰＡＲＬ２１０に設定されている値は、"１１００００（４８）"とする。フリップフロップ４２４の出力値は、前述のようにパルス周期のカウント値（本例では６ビットの値）である。ＡＮＤゲート４５１には、パルス周期のカウント値の最上位ビットと、ＰＷＰＡＲＬ２１０の最上位ビット（すなわち"１"）が入力される。ＡＮＤゲート４５１は、両入力の論理積をＯＲゲート４５７に供給する。同様に、ＡＮＤゲート４５２には、パルス周期のカウント値の最上位ビットの反転値と、パルス周期のカウント値の上位第２ビット値と、ＰＷＰＡＲＬ２１０の上位第２ビット値（すなわち"１"）と、が入力される。ＡＮＤゲート４５２は、これらの入力の論理積をＯＲゲート４５７に供給する。ＡＮＤゲート４５３〜４５６への入力及びＡＮＤゲート４５３〜４５６からの出力は、図示する通りである。
【００２８】
ＯＲゲート４５７は、ＡＮＤゲート４５１〜４５６の出力の論理和を指示信号Ｓ２としてＡＮＤゲート４３１に出力する。以上、説明したように、図６に示す構成により、パルス生成部４２５は、図４に示す出力信号Ｓ２を生成する。
【００２９】
以上がＰＷＭ周期調整部４００の構成例である。なお、上述の図５、図６の構成はあくまで一例であり、各回路を等価な別回路に置き換えても良いことは勿論である。次に、ＰＷＭ周期調整部４００の出力する第２カウントアップ信号ｅｎ２について検討する。例えばカウントアップ信号ｅｎの周波数が２０ＭＨｚである場合、換言するとカウントアップ信号ｅｎの周期が５０ｎｓである場合について検討する。ＰＷＰＡＲＬ２１０に"１０００００"が設定されている場合、パルス生成部４２５は、６４パルス周期のうち３２パルス周期に対して遅延を生じさせる（マスク信号（ｍｓｋ）を立ち上げる）。これにより、第２カウントアップ信号ｅｎ２は、１９．９６ＭＨｚ（周期＝５０．１０ｎｓ）となる。
【００３０】
同様に、ＰＷＰＡＲＬ２１０に"０１００００"が設定されている場合、パルス生成部４２５は、６４パルス周期のうち１６パルス周期に対して遅延を生じさせる（マスク信号（ｍｓｋ）を立ち上げる）。これにより、第２カウントアップ信号ｅｎ２は、１９．９８ＭＨｚ（周期＝５０．０５ｎｓ）となる。ＰＷＰＡＲＬ２１０に"１１００００"が設定されている場合、パルス生成部３２５は、６４パルス周期のうち４８パルス周期に対して遅延を生じさせる（マスク信号（ｍｓｋ）を立ち上げる）。これにより、第２カウントアップ信号ｅｎ２の周期は、１９．９４ＭＨｚ（周期＝５０．１５ｎｓ）となる。同様に、ＰＷＰＡＲＬ２１０に"１１１１１１"が設定されている場合、パルス生成部４２５は、６４パルス周期のうち６３パルス周期に対して遅延を生じさせる（マスク信号（ｍｓｋ）を立ち上げる）。これにより、第２カウントアップ信号ｅｎ２は、１９．９２ＭＨｚ（周期＝５０．１９ｎｓ）となる。
【００３１】
続いて、ＰＷＭ波形生成部５００の構成について説明する。ＰＷＭ波形生成部５００は、ＡＮＤゲート４３３の出力信号（第２カウントアップ信号ｅｎ２）、ＰＷＤＲＨ２２０、及びＰＷＤＲＬ２３０を基にＰＷＭ信号を生成する。図７は、ＰＷＭ波形生成部５００の概略構成を示すブロック図である。
【００３２】
ＰＷＤＲＨ２２０には、前述のようにｎビットの数値が設定されている。このｎビットの設定値は、ＰＷＭ波形生成部５００が出力するＰＷＭ信号のハイ幅の基本値（基本となるデューティー比）を定める。例えば、ＰＷＤＲＨ２２０に８ビットの値"１１００１０００"（十進数で２００）が設定されていた場合、基本のデューティー比は２００：５６となる。
【００３３】
ＰＷＤＲＬ２３０には、ｍビットの数値（第３設定値）が設定されている。このｍビットの設定値は、ＰＷＭ波形生成部５００が出力するＰＷＭ信号のハイ幅を基本デューティー比に定める値から１カウントだけ広くする頻度を定める値である。例えば、ＰＷＤＲＨ２２０に８ビットの値"１１００１０００"が設定され、ＰＷＤＲＬ２３０に６ビットの値"０１０１００"が設定されていた場合、６４パルス周期のうち２０パルス周期だけデューティー比が２０１：５５となり、その他の場合にはデューティー比が２００：５６となる。
【００３４】
ＰＷＭ波形生成部５００は、カウンタ部５１０と、パルス挿入前ＰＷＭ生成部５２０と、ハイ幅調整パルス生成部５３０と、ＯＲゲート５４０と、を備える。カウンタ部５１０は、第２カウントアップ信号ｅｎ２をカウントする。ここで、カウンタ部５１０は、カウント数をｍビット（ＰＷＤＲＬ２３０の設定ビット幅）＋ｎビット（ＰＷＤＲＨ２２０の設定ビット幅）の幅の数値でカウントする。カウンタ部５１０は、カウント値の上位ｍビット値をハイ幅調整パルス生成部５３０に供給し、カウント値の下位ｎビット値をパルス挿入前ＰＷＭ生成部５２０に供給する。
【００３５】
パルス挿入前ＰＷＭ生成部５２０には、第２カウントアップ信号ｅｎ２及びｎビットのカウント値が供給される。パルス挿入前ＰＷＭ生成部５２０にはＰＷＤＲＨ２２０から設定値が入力される。パルス挿入前ＰＷＭ生成部５２０は、設定値に応じた通常のＰＷＭ信号（以下、パルス挿入前ＰＷＭ信号とも記載する。）を生成する。例えば、例えば、ＰＷＤＲＨ２２０に８ビットの値"１１００１０００"が設定されていた場合、パルス挿入前ＰＷＭ生成部５２０は、デューティー比は２００：５６のパルス挿入前ＰＷＭ信号を生成し、ＯＲゲート５４０及びハイ幅調整パルス生成部５３０に供給する。
【００３６】
ハイ幅調整パルス生成部５３０には、パルス挿入前ＰＷＭ信号、及びｍビットのカウント値が供給される。ハイ幅調整パルス生成部５３０には、ＰＷＤＲＬ２３０の設定値が入力される。ハイ幅調整パルス生成部５３０は、当該設定値に応じてデューティー比を調整するためのハイ幅調整信号を生成し、当該ハイ幅調整信号をＯＲゲート５４０に供給する。
【００３７】
ＯＲゲート５４０は、ハイ幅調整パルス生成部５３０の出力するハイ幅調整信号と、パルス挿入前ＰＷＭ生成部５２０の出力信号の論理積を出力する。
【００３８】
図８は、ＰＷＭ波形生成部５００の各処理部の出力信号を示すタイミングチャートである。なお、図８には、後述するＰＷＭ波形生成部５００の詳細構成（図９）に関する信号の状態も一部記載されている。また、前述のようにＰＷＭ波形生成部５００に供給される第２カウントアップ信号ｅｎ２は、図４に示すように一部がマスクされているが、図８では説明の便宜のためマスクされている箇所は記載しない。
【００３９】
パルス挿入前ＰＷＭ生成部５２０は、カウンタ５１０の出力値と、ＰＷＤＲＨ２２０に設定されたデューティー比を基に、パルス挿入前ＰＷＭ信号を生成する。例えば、デューティー比が「Ａ：Ｂ」である場合、パルス挿入前ＰＷＭ生成部５２０は、"Ａ：Ｂ"のデューティー比のパルス挿入前ＰＷＭ信号を生成する。ハイ幅調整パルス生成部５３０は、ＰＷＤＲＬ２３０に設定された頻度で、パルス挿入前ＰＷＭ生成部５２０の生成した信号（パルス挿入前ＰＷＭ信号）の立下り時に１カウント分だけハイレベルとなるハイ幅調整パルス信号を生成する。ＯＲゲート５４０は、ハイ幅調整パルス信号と、パルス挿入前ＰＷＭ信号の論理和をＰＷＭ信号として任意のモータ等に出力する。このＰＷＭ信号は、ハイ幅調整パルス信号がハイレベルの場合、ハイ幅が基本となるデューティー比よりも大きくすることができる。これにより、デューティー比をより細かく設定することができる。
【００４０】
続いて、図９及び図１０を参照して、ＰＷＭ波形生成部５００の詳細な構成例について説明する。図９は、ＰＷＭ波形生成部５００の詳細構成を示すブロック図である。図１０は、カウンタ部５１０の構成例を示すブロック図である。はじめに図１０を参照して、カウンタ部５１０の構成例について説明する。
【００４１】
カウンタ部５１０は、インクリメンタ５１１と、セレクタ５１２と、フリップフロップ５１３と、ＡＮＤゲート５１４と、セレクタ５１５と、フリップフロップ５１６と、インクリメンタ５１７よ、を備える。なお、図１０に示すカウンタ部５１０の構成はあくまで一例であり、第２カウントアップ信号ｅｎ２をｍ＋ｎビット単位でカウントアップし、上位ｍビットと下位ｎビットを出力する構成であればその他の任意の構成であっても良い。
【００４２】
フリップフロップ５１３は、ｎビット値（第２カウントアップ信号ｅｎ２のカウント値の下位ｎビット）をＡＮＤゲート５１４、セレクタ５１２、加算器５１２、比較器５２１、及びＡＮＤゲート５２４に供給する。インクリメンタ５１１は、入力値に１を加算してセレクタ５１２に供給する。セレクタ５１２は、第２カウントアップ信号ｅｎ２がハイレベルの場合にはインクリメンタ５１１からの入力信号をフリップフロップ５１３に供給し、第２カウントアップ信号ｅｎ２がロウレベルの場合にはフリップフロップ５１３からの入力信号をそのままフリップフロップ５１３に供給する。
【００４３】
ＡＮＤゲート５１４には、フリップフロップ５１３からｎビット値が入力されるとともに、第２カウントアップ信号ｅｎ２が入力される。ＡＮＤゲート５１４は、ｎビット値がフルカウント（全てのビットに１が設定されている状態）であり、第２カウントアップ信号ｅｎ２がハイレベルである場合にのみ、ハイレベルを出力する。
【００４４】
フリップフロップ５１６は、ｍビット値（第２カウントアップ信号ｅｎ２のカウント値の上位ｍビット）をセレクタ５１５、インクリメンタ５１７、及びハイ幅調整タイミング生成部５３１に供給する。インクリメンタ５１７は、入力値に１を加算してセレクタ５１５に供給する。セレクタ５１５は、ＡＮＤゲート５１４の出力値がハイレベルの場合にはインクリメンタ５１７からの出力信号をフリップフロップ５１６に供給し、ＡＮＤゲート５１４の出力値がロウレベルの場合にはフリップフロップ５１６からの入力信号をそのままフリップフロップ５１６に供給する。
【００４５】
再び、図９を参照し、ＰＷＭ波形生成部５００内の他の処理部の構成について説明する。パルス挿入前ＰＷＭ生成部５２０は、比較器５２１と、ＡＮＤゲート５２２と、インバータ５２３と、ＡＮＤゲート５２４と、ＯＲゲート５２５と、ＡＮＤゲート５２６と、フリップフロップ５２７と、を備える。
【００４６】
比較器５２１には、カウンタ部５１０からｎビット値が供給される。比較器５２１には、ＰＷＤＲＨ２２０に設定された値が入力される。比較器５２１は、カウンタ部５１０から供給されたｎビット値と、ＰＷＤＲＨ２２０の設定値と、を比較する。比較部５２１の内部構成は、図６に示す構成と略同一である。比較器５２１は、比較結果をＡＮＤゲート５２２に供給する。
【００４７】
ＡＮＤゲート５２２は、第２カウントアップ信号ｅｎ２と、比較器５２１の出力信号と、の論理積をインバータ５２３に供給し、インバータ５２３は、供給された信号の反転信号をＡＮＤゲート５２６に供給する。ＡＮＤゲート５２４には、カウンタ部５１０からｎビット値と、第２カウントアップ信号ｅｎ２と、が供給される。ＡＮＤゲート５２４は、ｎビット値がフルカウント（全てのビットに１が設定されている状態）であり、第２カウントアップ信号ｅｎ２がハイの場合にのみ、ハイレベルをＯＲゲート５２５に出力する。
【００４８】
ＯＲゲート５２５は、ＡＮＤゲート５２４の出力信号と、フリップフロップ５２７の出力信号と、の論理和をＡＮＤゲート５２６に供給する。ＡＮＤゲート５２６は、インバータ５２３の出力と、ＯＲゲート５２５の出力と、の論理積をフリップフロップ５２７に供給する。フリップフロップ５２７は、ＰＷＤＲＨ２２０に設定されたデューティー比のパルス挿入前ＰＷＭ信号をシフト回路５３２及びＯＲゲート５４０に供給する。ＯＲゲート５２５とＡＮＤゲート５２６はその接続の順番が逆であってもかまわない。
【００４９】
ハイ幅調整パルス生成部５３０は、ハイ幅調整タイミング生成部５３１と、シフト回路５３２と、ＡＮＤゲート５３３と、を備える。ハイ幅調整タイミング生成部５３１は、ＰＷＤＲＬ２３０からｍビット値を読み出し、読み出したｍビット値に応じてパルス周期単位でハイレベル、ロウレベルが切り替わる信号をＡＮＤゲート５３３に供給する（図８参照）。ハイ幅調整タイミング生成部５３１の内部構成は、図６に示す構成と略同一であるため、詳細な説明は省略する。
【００５０】
シフト回路５３２には、第２カウントアップ信号ｅｎ２と、パルス挿入前ＰＷＭ信号（フリップフロップ５２７の出力信号）が入力される。シフト回路５３２は、図８に示すように、パルス挿入前ＰＷＭ生成部５２０の出力したパルス挿入前ＰＷＭ信号を第２カウントアップ信号ｅｎ２の１周期（以下、１イネーブルサイクルとも記載する。）だけずらしたＰＷＭ信号であるシフト信号を生成する。シフト回路５３２は、生成したシフト信号をＡＮＤゲート５３３に供給する。
【００５１】
ＡＮＤゲート５３３は、図８に示すように、シフト信号と、ハイ幅調整タイミング生成部５３１の出力信号と、の論理積をハイ幅調整信号としてＯＲゲート５４０に供給する。
【００５２】
ＯＲゲート５４０は、パルス挿入前ＰＷＭ生成部５２０の出力したパルス挿入前ＰＷＭ信号と、ハイ幅調整信号（ＡＮＤゲート５３３の出力信号）と、の論理積をＰＷＭ信号として任意のモータ等に出力する。
【００５３】
（効果）
続いて、本実施の形態にかかるパルス信号生成回路の効果について図１１の動作概念図を参照しつつ、説明する。なお、図１１では、説明の便宜のため、ＰＷＭ波形生成部５００によるハイ幅の調整は行われないものとする。
【００５４】
パルス付加タイミング検出部４２０は、ＰＷＰＡＲＬ２１０の設定値（第１設定値）に応じてパルス周期毎にハイレベル、ロウレベルが切り替わる指示信号Ｓ２を生成する（図１１参照）。例えば、ＰＷＰＡＲＬ２１０に"１１００００"（６ビット値であり、１０進数で４８を示す値）が設定されていた場合、パルス付加タイミング検出部４２０は、指示信号Ｓ２として、６４パルス周期のうち４８パルス周期だけハイレベルを出力する。第２カウントアップ信号生成部４３０は、カウンタ部４１０のカウント値がフルカウントであり、かつ指示信号Ｓ２がハイレベルの場合にのみハイレベルとなるマスク信号（ｍｓｋ）を生成する（図１１参照）。そして、第２カウントアップ信号生成部４３０は、マスク信号（ｍｓｋ）がハイレベルの場合に、カウントアップ信号ｅｎをマスクした第２カウントアップ信号ｅｎ２を生成する（図１１参照）。ＰＷＭ波形生成部５００は、この第２カウントアップ信号ｅｎ２を用いてＰＷＭ信号を生成する。ここで、マスク信号（ｍｓｋ）がハイレベルの場合、第２カウントアップ信号ｅｎ２はカウントアップしない。一時的にカウントアップしない第２カウントアップ信号ｅｎ２を用いて生成されるＰＷＭ信号の周期は、規定値（ＰＷＤＲＨ２２０のビット幅）より広くなる。
【００５５】
すなわち、本実施の形態にかかるパルス信号生成回路は、ＰＷＰＡＲＬ２１０の設定値に応じてＰＷＭ信号のパルス周期を調整すること（周波数を大きくしたり、小さくしたりすること）ができる。ＰＷＭ信号のパルス周期の設定範囲が広がるため、ロボットの制御に用いるモータに必要となる高速な応答速度を実現することが可能となる。
【００５６】
＜実施の形態２＞
実施の形態１にかかるＰＷＭ周期調整部４００は、図４に示すように１イネーブルサイクルだけカウントを調整する、すなわち規定値よりも１イネーブルサイクルだけＰＷＭ信号のパルス周期を大きくするように調整していた。本実施の形態にかかるＰＷＭ周期調整部４００は、複数イネーブルサイクルだけパルス周期を広げることを特徴とする。本実施の形態にかかるＰＷＭ周期調整部４００について、以下に説明する。なお、パルス信号生成回路１の他の処理部については、実施の形態１と略同一（ただし、後述するＰＷＰＡＲＨ２４０、及びモードレジスタ２５０を備える点が異なる）であるため、詳細な説明は省略する。
【００５７】
図１２は、本実施の形態にかかるＰＷＭ周期調整部４００の構成を示すブロック図である。ＰＷＭ周期調整部４００には、レジスタＰＷＰＡＲＨ２４０からｎビット値が入力される。ＰＷＰＡＲＨ２４０は、ＰＷＭ信号のパルス周期の拡張幅を示すｎビット値（以下、付加パルス幅とも記載する。）が設定されている。さらに、ＰＷＭ周期調整部４００には、モードレジスタ２５０からモード情報（０または１のいずれかとなる値）が入力される。モード情報とは、常にパルス周期を付加パルス幅だけ広げることを指示する値（０）、またはＰＷＤＲＨ２２０に設定された頻度に応じてパルス周期を付加パルス幅だけ広げることを指示する値（１）のいずれかを取る情報である。なお、モード情報は、レジスタではなくピンに記憶されても良い。
【００５８】
ＰＷＰＡＲＨ２４０は、ＰＷＰＡＲＬ２１０と関連付けられた値を保持する。詳細には、後述のモードレジスタに０（常にパルス周期をパルス幅だけ広げる）が設定された場合、ＰＷＰＡＲＨ２４０がハイ側の値となり、ＰＷＰＡＲＬ２１０がロウ側の値となる一つの値とみなすことができ、当該値は最終的な第２カウントアップ信号ｅｎ２の拡張パルス幅を示す値となる。例えば、モードレジスタに０が設定した場合であってＰＷＰＡＲＨ２４０に１以上の値を設定した場合、毎パルス周期が、設定されたＰＷＰＡＲＨ２４０に設定されたイネーブルサイクルだけ拡張される。例えば、ＰＷＰＡＲＨ２４０に００００００１１（十進数で３）、ＰＷＰＡＲＬ２１０に１０００００を設定が設定された場合、毎パルス周期が３イネーブルサイクルだけ拡張され、かつパルス周期の２回に１度だけ１イネーブルサイクルが拡張され、平均すると１つのパルス周期が３．５イネーブルサイクルだけ拡張される。これにより、ＰＷＰＡＲＨ２４０が整数部でＰＷＰＡＲＬ２１０が小数部の１つの値にみなすことができる。
モードレジスタに１が設定された場合、毎パルス周期が拡張されることはなくなる。パルス周期は、ＰＷＰＡＲＬ２１０に設定された頻度に応じて、ＰＷＰＡＲＨ２４０に設定したイネーブルサイクルだけ拡張される。
【００５９】
ＰＷＭ周期調整部４００は、カウント部４１０と、付加パルスタイミング生成部４２０と、第２カウントアップ信号生成部４３０と、を備える。カウント部４１０には、カウントアップ信号ｅｎが供給される。カウント部４１０には、ＰＷＰＡＲＨ２４０からｎビット値が入力される。
【００６０】
カウント部４１０は、内部にカウント調整部４１７を備える。マスク信号（ｍｓｋ）は、ＰＷＰＡＲＨ２４０に設定された値だけハイレベルとなる。カウント調整部４１７は、マスク信号（ｍｓｋ）がハイレベルとなっている間だけカウントアップを停止する。これにより、第２カウントアップ信号ｅｎ２の出力先であるＰＷＭ波形生成部５００内のカウンタ部５１０が保持するカウント値とずれが生じないように制御する。
【００６１】
付加パルスタイミング生成部４２０には、実施の形態１と同様に、ＰＷＰＡＲＬ２１０が入力される。付加パルスタイミング生成部４２０は、当該読み出した値に応じてパルス周期単位（カウントアップタイミング信号ｅｎのエッジが２のｎ乗回検出される毎）でハイレベル、またはロウレベルが切り替わり得る２値の指示信号Ｓ２を生成する。
【００６２】
第２カウントアップ信号生成部４３０には、ＰＷＰＡＲＨ２４０の値及びモードレジスタ２５０の設定値が入力される。第２カウントアップ信号生成部４３０は、これらの設定値に応じてマスク信号（ｍｓｋ）を生成し、生成したマスク信号（ｍｓｋ）をカウント部４１０に供給する。詳細には、第２カウントアップ信号生成部４３０は、ＰＷＰＡＲＨ２４０の値と同じ幅のハイ幅を持つマスク信号（ｍｓｋ）を生成する。換言すると第２カウントアップ信号生成部４３０は、ＰＷＰＡＲＨ２４０の値に応じて値の切替タイミング（ハイレベルからロウレベル、ロウレベルからハイレベル）を定める。そして、第２カウントアップ信号生成部４３０は、生成したマスク信号（ｍｓｋ）を用いてカウントアップ信号ｅｎをマスクした第２カウントアップ信号ｅｎ２を生成する。
【００６３】
ＰＷＭ周期調整部４００内の処理部の詳細動作を図１３及び図１４のタイミングチャートを用いて説明する。図１３は、モードレジスタ２５０に０が設定された場合（常にパルス周期を付加パルス幅だけ広げる場合）の各処理部の出力信号を示すタイミングチャートである。図１４は、モードレジスタ２５０に１が設定された場合（ＰＷＤＲＬ２１０に設定された頻度で、パルス周期を付加パルス幅だけ広げる場合）の各処理部の出力信号を示すタイミングチャートである。
【００６４】
はじめに、図１３について説明する。図１３および図１４の説明において、ＰＷＰＡＲＬ２１０には"０１０１０１"（６ビット値であり、１０進数で２１を示す値）が設定されているものとする。パルス付加タイミング検出部４２０は、ＰＷＰＡＲＬ２１０に設定されたｉビットの値（２１）と、２のｉ乗（６４）と、の比率に応じてパルス周期毎にハイレベル、ロウレベルを切り替えた信号Ｓ２を出力する。
【００６５】
また、図１３および図１４の説明において、ＰＷＰＡＲＨ２４０には"００００００１１"（８ビット値であり、１０進数で３を示す値）が設定されているものとする。すなわち、付加パルス幅は３である。前述のように、図１３では、モードレジスタ２５０に０が設定されている。そのため、第２カウントアップ信号生成部４３０は、パルス周期毎に付加パルス幅（３）だけハイレベルとなるマスク信号（ｍｓｋ）を生成する。第２カウントアップ信号生成部４３０は、生成したマスク信号（ｍｓｋ）をカウンタ部４１０に供給する。
【００６６】
カウンタ部４１０は、付加パルス幅に応じて、カウントアップを停止する期間を設けた上でカウントアップを行う。図１３では、カウンタ部４１０は、"０００００００１"を３イネーブルサイクル分だけカウントアップしないように制御している。
【００６７】
マスク信号（ｍｓｋ）が付加パルス幅だけパルス周期毎にハイレベルとなるため、生成される第２カウントアップ信号ｅｎ２は、ＰＷＤＲＨ２２０のビット幅から定まる周波数に対し、付加パルス幅に対応する値だけ調整された周波数を得ることができる。さらに、指示信号Ｓ２がハイレベルになったことに応じて、マスク信号（ｍｓｋ）が１イネーブルサイクル分だけハイレベルとなる。
【００６８】
続いて、図１４について説明する。図１３と同様にパルス付加タイミング検出部４２０は、ＰＷＰＡＲＬ２１０に設定されたｉビットの値（２１）と、２のｉ乗（６４）と、の比率に応じてパルス周期毎にハイレベル、ロウレベルを切り替えた指示信号Ｓ２を出力する。
【００６９】
図１４の例では、モードレジスタ２５０に１が設定されている。そのため、第２カウントアップ信号生成部４３０は、６４回のパルス周期のうち２１回のパルス周期において、付加パルス幅（３）だけハイレベルとなるマスク信号（ｍｓｋ）を生成する。
【００７０】
カウンタ部４１０は、付加パルス幅とマスク信号（ｍｓｋ）に応じて、カウントアップ停止を調整し、カウント値を出力する。ここで、カウンタ部４１０は、マスク信号（ｍｓｋ）がハイレベルとなるパルス周期である場合、カウントアップを停止する期間を設ける。なお、カウンタ部４１０は、モードレジスタ２５０に１が設定されている場合、６４回のパルス周期のうち２１回のパルス周期においてカウントアップを停止する期間を設ける構成であれば他の任意の構成であっても良い。これにより、マスク信号（ｍｓｋ）を生成するカウンタ部４１０もマスクしたイネーブルサイクルだけカウントアップが止まり、カウントアップが止まることによりＰＷＭ波形生成部５００内のカウントアップとのずれを補正し、長い時間で動作が破綻しないようにしている。
【００７１】
続いて、本実施の形態にかかるＰＷＭ周期調整部４００の詳細構成例を、図１５を参照して説明する。図１５に示すブロック図は、図１２に示したＰＷＭ周期調整部４００の概略構成を具現化した回路構成の一例である。
【００７２】
付加パルスタイミング検出部４２０の構成は、図５に示す構成と略同一である。カウンタ４１０の構成は、図５に示す構成と比べ、１ビットフリップフロップ４１４に代わり、カウント調整部４１７を備える構成である。カウント調整部４１７の詳細な構成は、図１６を参照して後述する。
【００７３】
第２カウントアップ信号生成部４３０は、図５に示す構成と比べ、ＡＮＤゲート４３１を有さず、インバータ４３４と、比較器４３５と、ＡＮＤゲート４３６と、インバータ４３７と、ＡＮＤゲート４３８と、ＯＲゲート４３９と、ＡＮＤゲート４４０と、ＡＮＤゲート４４１と、ＡＮＤゲート４４２と、１ビットフリップフロップ４４３と、ＯＲゲート４４４と、を備える。インバータ４３２がマスク信号（ｍｓｋ）を受信する構成やＡＮＤゲート４３３が第２カウントアップタイミング信号ｅｎ２を出力する構成は、図５と同様である。
【００７４】
インバータ４３４は、ＰＷＰＡＲＨ２４０からｉビットの設定値（付加パルス幅）を読み出し、その反転値を比較器４３５に供給する。比較部４３５には、カウント部４１０からｎビットのカウント値が供給される。比較器４３５は、付加パルス幅の反転値よりもカウント値が大きい場合には１をＡＮＤゲート４３８及び４４１に供給し、それ以外の場合には０をＡＮＤゲート４３８及び４４１に供給する。
【００７５】
ＡＮＤゲート４３６には、カウント部４１０からｎビットのカウント値が供給される。ＡＮＤゲート４３６は、各ビットが全て１である場合（フルカウントである場合）に１をＯＲゲート４３９に供給し、それ以外の場合に０をＯＲゲート４３９に供給する。ＡＮＤゲート４３８は、モードレジスタ２５０の設定値と比較部４３５の論理積をＯＲゲート４３９に供給する。
【００７６】
ＯＲゲート４３９は、ＡＮＤゲート４３６の出力値とＡＮＤゲート４３８の出力値との論理和をＡＮＤゲート４４０に供給する。ＡＮＤゲート４４０は、パルス生成部４２５の出力信号Ｓ２とＯＲゲート４３９の出力値との論理積をＡＮＤゲート４４２及びＯＲゲート４４４に供給する。ＡＮＤゲート４４１は、比較器４３５の出力値とモードレジスタ２５０の設定値の反転値との論理積をＡＮＤゲート４４２及びＯＲゲート４４４に供給する。ＡＮＤゲート４４２は、ＡＮＤゲート４４１の出力値とＡＮＤゲート４４０の出力値との論理積を１ビットフリップフロップ４４３のデータ端子に供給する。１ビットフリップフロップ４４３のクロック端子には分周前のクロックが供給され、イネーブル端子にはカウントアップタイミング信号ｅｎが供給される。１ビットフリップフロップ４４３は、一般的な１ビット用のフリップフロップであり、出力値をＯＲゲート４４４に供給する。
【００７７】
ＯＲゲート４４４は、ＡＮＤゲート４４１の出力値と、１ビットフリップフロップ４４２の出力値と、ＡＮＤゲート４４０の出力値と、の論理和をマスク信号（ｍｓｋ）としてインバータ４３２及びカウント調整部４１７に供給する。
【００７８】
続いて、カウント調整部４１７の詳細構成例を、図１６を参照して説明する。カウント調整部４１７は、フリップフロップ４１７１と、インバータ４１７２と、ＡＮＤゲート４１７３と、セレクタ４１７４と、フリップフロップ４１７５と、セレクタ４１７６と、デクリメンタ４１７７と、ＯＲゲート４１７８と、ＡＮＤゲート４１７９と、を備える。
【００７９】
フリップフロップ４１７１のクロック端子（図示せず）には分周前のシステムクロックが供給され、イネーブル端子にはカウントアップタイミング信号ｅｎが供給され、データ端子にはマスク信号（ｍｓｋ）が供給される。フリップフロップ４１７１は、出力信号をＡＮＤゲート４１７３に供給する。ＡＮＤゲート４１７３は、マスク信号（ｍｓｋ）の反転信号と、フリップフロップ４１７１の出力信号と、の論理積をセレクタ４１７４の選択信号として供給する。ＡＮＤゲート４１７３は、マスク信号（ｍｓｋ）の立下りを検出する。
【００８０】
セレクタ４１７４は、ＡＮＤゲート４１７３からの供給信号の値が０である場合にはフリップフロップ４１７５の出力信号をＯＲゲート４１７８に供給する。一方、セレクタ４１７４は、ＡＮＤゲート４１７３からの供給信号の値が１である場合にはＰＷＰＡＲＨ２４０の設定値をＯＲゲート４１７８、セレクタ４１７６、及びデクリメンタ４１７７に供給する。デクリメンタ４１７７は、入力値を１だけ減算してセレクタ４１７６に供給する。セレクタ４１７６は、ＡＮＤゲート４１７９からの入力が０の場合にセレクタ４１７４からの供給値をフリップフロップ４１７５のデータ端子に供給する。セレクタ４１７６は、ＡＮＤゲート４１７９からの入力が１の場合にデクリメンタ４１７７からの供給値をフリップフロップ４１７５のデータ端子に供給する。
【００８１】
フリップフロップ４１７５のクロック端子（図示せず）には分周前のシステムクロックが供給される。フリップフロップ４１７５は、ｎビットの出力値をセレクタ４１７４に供給する。ＯＲゲート４１７８は、入力されたｎビット値の各ビットが全て０である場合にのみ０をＡＮＤゲート４１７９及びインバータ４１６に供給する。ＡＮＤゲート４１７９は、ＯＲゲート４１７８の出力値とカウントアップタイミング信号ｅｎの論理和をセレクタ４１７６に選択信号として供給する。
【００８２】
（効果）
続いて、本実施の形態にかかるパルス信号生成回路の効果について図１７および図１８の動作概念図を参照しつつ、説明する。なお、図１７及び図１８では、説明の便宜のため、ＰＷＭ波形生成部５００によるハイ幅の調整は行われないものとする。
【００８３】
図１７は、モード情報に０が設定された場合のＰＷＭ信号の生成概念を示す図である。図示するように、マスク信号（ｍｓｋ）は、パルス周期毎に、ＰＷＰＡＲＨ２４０の設定値（第２設定値）に応じた数のイネーブルサイクルだけハイレベルとなり、これに応じて生成されるＰＷＭ信号のロウ幅も広がる。毎回のパルス周期が大きくなることにより、ＰＷＭ信号のエッジの出現頻度が少なくなる。エッジの出現頻度が少なくなることにより、ＰＷＭ信号が供給されるモータが慣性で動作する時間が長くなる。これにより、モータ自体の消費電力の削減に寄与することができる。
【００８４】
図１８は、モード情報に１が設定された場合のＰＷＭ信号の生成概念を示す図である。図示するように、マスク信号（ｍｓｋ）は、ＰＷＰＡＲＬ２１０の設定値（第１設定値）の頻度に応じ、複数イネーブルサイクルに渡ってハイレベルとなる。ここで、ハイレベルとなるイネーブルサイクルの幅は、ＰＷＰＡＲＨ２４０の設定値（第２設定値）と同じである。すなわち、パルス周期を広げる頻度及びパルス周期を広げる幅を両方調整できる。そのため、生成するＰＷＭ信号の調整をより細かくすることができる。
【００８５】
＜実施の形態３＞
本実施の形態にかかるパルス信号生成回路は、ＰＷＭ信号の生成中に付加パルス幅を変更できる、すなわちＰＷＭ信号生成中に周波数を適宜調整できることを特徴とする。本実施の形態にかかるパルス信号生成回路について実施の形態２と異なる点を以下に説明する。
【００８６】
図１９は、本実施の形態にかかるパルス信号生成回路の構成を示すブロック図である。本実施の形態にかかるパルス信号生成回路１は、パルス幅調整部６００を備える。ＰＷＭ周期調整部４００の内部構成は、図１２に示す構成と同様である。パルス幅調整部６００は、ＰＷＰＡＲＨ２４０の値を任意のタイミングで変更（たとえば加算、減算）する回路である。ＰＷＰＡＲＨ２４０の値を変更することにより、ＰＷＭ周期調整部４００の生成する第２カウントアップタイミング信号ｅｎ２の周期（周波数）を適宜変更できる。
【００８７】
図２０は、本実施の形態にかかるパルス信号生成回路の各処理部の出力信号を示すタイミングチャートである。なお、図２０の例では、モードレジスタ２５０には０（毎パルス周期に付加パルスを付与する）が設定されているものとする。また、ＰＷＤＲＬ２３０には、０が設定されているものとする。
【００８８】
パルス幅調整部６００は、ＰＷＰＡＲＨ２４０の値を時間の経過が進むにつれて加算している。ＰＷＰＡＲＨ２４０の値が大きくなるため、ＰＷＭ周期調整部４００は、ハイ幅が徐々に大きくなるマスク信号（ｍｓｋ）を内部で生成する。マスク信号（ｍｓｋ）のハイ幅が徐々に大きくなるため、ＰＷＭ波形生成部５００は、ハイ幅が同じ幅であり、ロウ幅が徐々に大きくなるＰＷＭ信号を生成する。
【００８９】
（効果）
図２０に示すように、パルス幅調整部６００がＰＷＰＡＲＨ２４０の値をＰＷＭ信号の生成中に適宜調整することにより、パルス幅が周期毎に異なるＰＷＭ信号を生成することができる。パルス幅を周期毎に調整できることにより、より複雑なモータ制御を実現することができる。なお、パルス幅調整部６００は、加算、減算に限らず例えば乗算によってパルス幅を調整しても良い。
【００９０】
＜実施の形態４＞
本実施の形態にかかるパルス信号生成回路は、レジスタ（ＰＷＣＲ２００，ＰＷＰＡＲＬ２１０等）の値を浮動小数点レジスタに保持できることを特徴とする。本実施の形態にかかるパルス信号生成回路について実施の形態２と異なる点を以下に説明する。
【００９１】
図２１は、本実施の形態にかかるパルス信号生成回路１の構成を示すブロック図である。ＰＷＣＲ２００に格納されていた値は、単一の浮動小数点レジスタ２６０の指数部に格納され、ＰＷＰＡＲＬ２１０及びＰＷＰＡＲＨ２４０に格納されていた値は基数部に格納される。変換部７００は、浮動小数点レジスタ２６０から値を読み出して変換処理（たとえば浮動小数点レジスタ２６０に設定された値の指数部分をセレクタ１００に供給する値（ＰＷＣＲ）として切り出し、基数部分の上位ｎビットをＰＷＭ周期調整部４００に供給する値（ＰＷＰＡＲＬ）として切り出す。）を行う。そして、変換部７００は、セレクタ１００、ＰＷＭ周期調整部４００、及びＰＷＭ波形生成部５００に設定値を供給する。その他の処理部の構成及び動作は、実施の形態１と同様であるため、その詳細な説明は省略する。
【００９２】
なお、図２１では実施の形態１との差異を説明したが、実施の形態３についても浮動小数点レジスタ２６０を備える構成とすることもできる。また、ＰＷＤＲＨ２２０及びＰＷＤＲＬ２３０に格納されていた値を浮動小数点レジスタ２６０の基数部に格納することもできる。
【００９３】
（効果）
近年、パルス信号生成回路を内部に備えるマイクロコンピュータの高集積化が進んでいる。これに伴い、マイクロコンピュータが浮動小数点レジスタを保持できる場面が増えてきている。本実施の形態では、上述のように浮動小数点レジスタ２６０内に各処理部（セレクタ１００等）に対する設定値を一元管理することができる。浮動小数点レジスタ２６０内で設定値を一元管理することにより、例えば各設定値のビット幅を隠蔽することができる。
【００９４】
以上、本発明を実施の形態に即して説明した。しかし、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００９５】
１  パルス信号生成回路  
１００、４１２、４１７４、４１７６、４２３、５１２、５１５  セレクタ
２００  ＰＷＣＲ
２１０  ＰＷＰＡＲＬ
２２０  ＰＷＤＲＨ
２３０  ＰＷＤＲＬ
２４０  ＰＷＰＡＲＨ
２５０  モードレジスタ
２６０  浮動小数点レジスタ
３００  エッジ検出部
４００  ＰＷＭ周期調整部
４１０  カウンタ部
４１１、４２２、５１１、５１７  インクリメンタ
４１３、４１７３、４１７９、４２１、４３１、４３３、４３６、４３８、４４０、４４１、４４２、４５１、４５２、４５３、４５４、４５５、４５６、５１４、５２２、５２４、５２６、５３３  ＡＮＤゲート
４１４、４４３  １ビットフリップフロップ
４１５、４１７１、４１７５，４２４、５１３、５１６  フリップフロップ
４１６、４１７２、４３２、４３４、４３７、５２３  インバータ
４１７  カウント調整部
４１７７  デクリメンタ
４１７８、４３９、４４４、５２５、５２７、５４０  ＯＲゲート
４２０  パルス付加タイミング検出部
４２５  パルス生成部
４３０  第２カウントアップ信号生成部
４３５、５２１  比較器
５００  ＰＷＭ波形生成部
５１０  カウンタ部
５２０  パルス挿入前ＰＷＭ生成部
５３０  付加パルス生成部
５３１  パルス生成部
５３２  シフト回路
６００  パルス幅調整部
７００  変換部
【図１】
2013211682.tif 000003
【図２】
2013211682.tif 000004
【図３】
2013211682.tif 000005
【図４】
2013211682.tif 000006
【図５】
2013211682.tif 000007
【図６】
2013211682.tif 000008
【図７】
2013211682.tif 000009
【図８】
2013211682.tif 000010
【図９】
2013211682.tif 000011
【図１０】
2013211682.tif 000012
【図１１】
2013211682.tif 000013
【図１２】
2013211682.tif 000014
【図１３】
2013211682.tif 000015
【図１４】
2013211682.tif 000016
【図１５】
2013211682.tif 000017
【図１６】
2013211682.tif 000018
【図１７】
2013211682.tif 000019
【図１８】
2013211682.tif 000020
【図１９】
2013211682.tif 000021
【図２０】
2013211682.tif 000022
【図２１】
2013211682.tif 000023