(57)【特許請求の範囲】
【請求項１】
所定の演算処理を可能とするＣＰＵと、
ＰＷＭパルスの生成を可能とするＰＷＭタイマと、を含み、上記ＰＷＭパルスを外部装置に供給可能なマイクロコンピュータであって、
上記ＰＷＭタイマは、上記ＰＷＭパルスのデューティ値パターンをセット可能なＲＡＭと、
それぞれＰＷＭパルスの生成を可能とする複数のＰＷＭコントローラと、
上記ＣＰＵによる上記ＰＷＭタイマの動作制御に必要な情報と上記ＣＰＵから上記ＲＡＭへのアクセス要求とを取り込むバスインターフェースと、
上記ＣＰＵによる上記ＲＡＭへのアクセス要求と上記複数のＰＷＭコントローラから上記ＲＡＭへのアクセス要求との競合を調停可能なアービタと、
上記複数のＰＷＭコントローラで生成された上記ＰＷＭパルスの外部出力を可能とするポートと、を含み、
上記複数のＰＷＭコントローラにおける個々のＰＷＭコントローラは、設定された値を初期値としてカウントアップ可能なＰＷＭカウンタを含み、
上記ＰＷＭパルスの単位波形は、上記ＲＡＭ内のデューティ値と上記ＰＷＭカウンタの出力値とのコンペアマッチにより生成され、上記コンペアマッチ毎に次のデューティ値が上記ＣＰＵの介在無しに上記複数のＰＷＭコントローラからの要求により上記ＲＡＭからロードされることで、外部出力される上記ＰＷＭパルスのデューティ値の時系列変化が可能にされて成ることを特徴とするマイクロコンピュータ。
【請求項２】
上記ＰＷＭタイマは、上記ＰＷＭコントローラの動作開始及び動作停止を指示するためのビットを記憶可能なコントロールレジスタを含み、上記コントロールレジスタは、上記ＣＰＵによって書き込み可能とされて成る請求項１記載のマイクロコンピュータ。
【請求項３】
上記ＰＷＭコントローラは、上記ＰＷＭカウンタの周期を設定可能なＰＷＭ周期レジスタを含み、上記ＰＷＭカウンタは、上記ＰＷＭ周期レジスタの出力とのコンペアマッチによりクリアされる請求項１記載のマイクロコンピュータ。
【請求項４】
上記ＰＷＭコントローラは、現在のデューティ値を記憶可能なデューティコンペアレジスタを含み、
上記ＰＷＭコントローラからのＰＷＭパルス出力は、上記ＰＷＭカウンタの出力値が論理値‘０’となる条件でハイレベルとされ、上記ＰＷＭカウンタの出力値と上記デューティコンペアレジスタの出力値とのコンペアマッチによりローレベルとされる請求項１記載のマイクロコンピュータ。
【請求項５】
上記ＰＷＭコントローラは、上記ＲＡＭの読み出し開始アドレスを設定可能なデューティポインタレジスタを含み、
上記デューティポインタレジスタの出力値に従って、上記ＲＡＭの読み出し開始アドレスが指定される請求項１記載のマイクロコンピュータ。
【請求項６】
上記ＰＷＭコントローラは、上記デューティポインタレジスタの上限値を設定可能なデューティポインタ上限値レジスタと、
上記デューティポインタレジスタのリロード値を設定可能なデューティポインタリロードレジスタと、を含み、
上記デューティポインタレジスタの出力値と上記デューティポインタ上限値レジスタの出力値とのコンペアマッチにより、上記デューティポインタリロードレジスタの設定値が上記デューティポインタレジスタにリロードされる請求項５記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ、さらにはそれに含まれるＰＷＭ（Pulse Width Modulation）タイマの改良技術に関する。
【背景技術】
【０００２】
ＰＷＭは、パルス波のデューティ比を変化させて変調する変調方法であり、マイクロコンピュータ（マイクロコントローラ又はマイクロプロセッサなどと称されることもある）においては、ＰＷＭタイマによって、そのようなＰＷＭパルスが生成される。
【０００３】
特許文献１には、ＰＷＭ信号のアクティブ・レベルを制御するために、デューティ比を設定するデータの内容を、ハードウェアで監視し、ソフトウェア処理の負担を軽くするための技術が記載されている。この技術は、コンペア・レジスタに設定した値が、下限値設定用レジスタの値よりも小さい場合、下限値設定用レジスタの値がデューティ比となり、上限値設定用レジスタの値よりも大きい場合、上限値設定用レジスタの値がデューティ比となりデューティ比信号として出力される。それによれば、ハードウェア的にデューティ比を監視するためにソフトウェアによる監視が不必要となる。
【０００４】
また、特許文献２には、基準クロックに同期したＰＷＭ信号を出力するようにしたパルス幅変調器が記載されている。
【０００５】
【特許文献１】特開平０６−０８３９８５号公報
【特許文献２】特開２００３−１１４１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＰＷＭタイマを含めた一般のタイマ、ＳＣＩ（Serial Communication Interface）、ＣＡＮ（Controller Area Network）などのマイクロコンピュータに搭載されるペリフェラル機能（周辺回路モジュール）では、中央処理装置（ＣＰＵ）からの書込みによって、ペリフェラル機能の所定のコントロールレジスタに然るべき値を設定する必要がある。そのよう方式について本願発明者が検討したところ、ＣＰＵのバストラフィックの混雑による、ＣＰＵからの書込みに一時的なトラップが発生する可能性があり、当該トラップが発生すると、ＣＰＵからのＰＷＭコントロールが行き届かなくなることで、正しいＰＷＭパルスの出力ができなくなるおそれがあることが見いだされた。また、デューティ値を更新するために、ＣＰＵに対して割り込みを発生させることが考えられるが、その場合には、当該割込み信号の、何らかの原因によるソフトエラーやハードウェアの断線などに起因する障害の発生により、正しいＰＷＭパルスの出力ができなくなるおそれがあることが見いだされた。このことは、システムの信頼性の低下を招来する。
【０００７】
本発明の目的は、マイクロコンピュータにおけるＰＷＭパルス生成の信頼性の向上を図るための技術を提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１０】
すなわち、ＣＰＵとＰＷＭタイマとを設ける。上記ＰＷＭタイマは、上記ＰＷＭパルスのデューティ値パターンをセット可能なＲＡＭと、ＰＷＭパルスの生成を可能とするＰＷＭコントローラとを含む。上記ＰＷＭコントローラは、ＰＷＭカウンタを含み、上記ＰＷＭパルスの単位波形は、上記ＲＡＭ内のデューティ値と上記ＰＷＭカウンタの出力値とのコンペアマッチにより生成され、上記コンペアマッチ毎に次のデューティ値が上記ＣＰＵの介在無しに上記ＲＡＭからロードされることで、上記ＰＷＭパルスのデューティ値の時系列変化が可能にされる。そのような構成により、ＰＷＭパルスの生成においてＣＰＵのバストラフィックの混雑の影響を避け、ＣＰＵからの書込みの一時的なトラップの発生を回避する。
【発明の効果】
【００１１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１２】
すなわち、マイクロコンピュータにおけるＰＷＭパルス生成の信頼性の向上を図るための技術を提供することができる。
【発明を実施するための最良の形態】
【００１３】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１４】
〔１〕本発明の代表的な実施の形態に係るマイクロコンピュータ（１００）は、所定の演算処理を可能とするＣＰＵ（１６）と、ＰＷＭパルスの生成を可能とするＰＷＭタイマ（２５）とを含む。上記ＰＷＭタイマは、上記ＰＷＭパルスのデューティ値パターンをセット可能なＲＡＭと（２５１）、ＰＷＭパルスの生成を可能とするＰＷＭコントローラ（２５４，２５５）とを含む。上記ＰＷＭコントローラは、設定された値を初期値としてカウントアップ可能なＰＷＭカウンタ（ＲＰＴＣＮＴ１，ＲＰＴＣＮＴ２）を含み、上記ＰＷＭパルスの単位波形は、上記ＲＡＭ内のデューティ値と上記ＰＷＭカウンタの出力値とのコンペアマッチにより生成され、上記コンペアマッチ毎に次のデューティ値が上記ＣＰＵの介在無しに上記ＲＡＭからロードされることで、上記ＰＷＭパルスのデューティ値の時系列変化が可能にされて成る。
【００１５】
上記の構成によれば、ＰＷＭパルスの生成においてＣＰＵのバストラフィックの混雑の影響を受けず、ＣＰＵからの書込みの一時的なトラップの発生を確実に回避できるので、常に正しいＰＷＭパルス波形を出力することができ、それによってＰＷＭパルスの信頼性の向上を図ることができる。
【００１６】
〔２〕本発明の代表的な実施の形態に係る別のマイクロコンピュータ（１００）は、所定の演算処理を可能とするＣＰＵ（１６）と、ＰＷＭパルスの生成を可能とするＰＷＭタイマ（２５）と、を含み、上記ＰＷＭパルスを外部装置に供給可能に構成される。上記ＰＷＭタイマは、上記ＰＷＭパルスのデューティ値パターンをセット可能なＲＡＭ（２５１）と、それぞれＰＷＭパルスの生成を可能とする複数のＰＷＭコントローラ（２５４，２５５）と、上記複数のＰＷＭコントローラで生成された上記ＰＷＭパルスの外部出力を可能とするポート（３０）とを含む。上記複数のＰＷＭコントローラにおける個々のＰＷＭコントローラは、設定された値を初期値としてカウントアップ可能なＰＷＭカウンタ（ＲＰＴＣＮＴ１，ＲＰＴＣＮＴ２）を含み、上記ＰＷＭパルスの単位波形は、上記ＲＡＭ内のデューティ値と上記ＰＷＭカウンタの出力値とのコンペアマッチにより生成され、上記コンペアマッチ毎に次のデューティ値が上記ＣＰＵの介在無しに上記ＲＡＭからロードされることで、外部出力される上記ＰＷＭパルスのデューティ値の時系列変化が可能にされて成る。かかる構成においても、ＰＷＭパルスの生成においてＣＰＵのバストラフィックの混雑の影響を受けず、ＣＰＵからの書込みの一時的なトラップの発生を確実に回避できるので、常に正しいＰＷＭパルス波形を出力することができ、それによってＰＷＭパルスの信頼性の向上を図ることができる。
【００１７】
〔３〕上記ＰＷＭタイマは、上記ＰＷＭコントローラの動作開始及び動作停止を指示するためのビットを記憶可能なコントロールレジスタ（ＲＰＣＲ）を含み、上記コントロールレジスタは、上記ＣＰＵによって書き込み可能に構成することができる。
【００１８】
〔４〕上記ＰＷＭコントローラは、上記ＰＷＭカウンタの周期を設定可能なＰＷＭ周期レジスタ（ＲＰＰＷＣＲ１，ＲＰＰＷＣＲ２）を含み、上記ＰＷＭカウンタは、上記ＰＷＭ周期レジスタの出力とのコンペアマッチによりクリアされるように構成することができる。
【００１９】
〔５〕上記ＰＷＭコントローラは、現在のデューティ値を記憶可能なデューティコンペアレジスタ（ＲＰＤＴＣＲ１，ＲＰＤＴＣＲ２）を含み、上記ＰＷＭコントローラからのＰＷＭパルス出力は、上記ＰＷＭカウンタの出力値が論理値‘０’となる条件でハイレベルとされ、上記ＰＷＭカウンタの出力値と上記デューティコンペアレジスタの出力値とのコンペアマッチによりローレベルとなるように構成することができる。
【００２０】
〔６〕上記ＰＷＭコントローラは、上記ＲＡＭの読み出し開始アドレスを設定可能なデューティポインタレジスタ（ＲＰＣＰＴＲ１，ＲＰＣＰＴＲ２）を含み、上記デューティポインタレジスタの出力値に従って、上記ＲＡＭの読み出し開始アドレスが指定されるように構成することができる。
【００２１】
〔７〕上記ＰＷＭコントローラは、上記デューティポインタレジスタの上限値を設定可能なデューティポインタ上限値レジスタ（ＲＰＭＰＴＲ１，ＲＰＭＰＴＲ２）と、上記デューティポインタレジスタのリロード値を設定可能なデューティポインタリロードレジスタ（ＲＰＲＰＴＲ１，ＲＰＲＰＴＲ２）とを含み、上記デューティポインタレジスタの出力値と上記デューティポインタ上限値レジスタの出力値とのコンペアマッチにより、上記デューティポインタリロードレジスタの設定値が上記デューティポインタレジスタにリロードされるように構成することができる。
【００２２】
〔８〕上記ＰＷＭタイマには、上記複数のＰＷＭコントローラから上記ＲＡＭへのアクセス要求の競合を調停可能なアービタ（２５２）を設けることができる。
【００２３】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２４】
図９には、本発明にかかるマイクロコンピュータの構成例が示される。
【００２５】
図９に示されるマイクロコンピュータ１００は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。上記マイクロコンピュータ１００は、特に制限されないが、内蔵ＲＯＭ（リードオンリーメモリ）１０、内蔵ＲＡＭ（ランダムアクセスメモリ）１２、割り込みコントローラ（ＩＮＴＣ）１３、ＲＯＭキャッシュ１４、ＲＡＭインタフェース１５、ＣＰＵ（中央処理装置）１６、バスブリッジ（ＢＢＲＤＧ）１７，１８，１９、ダイレクトメモリアクセスコントローラ（２０）、Ａ／Ｄ変換器（ＡＤＣ）２１、コントローラエリアネットワーク（ＣＡＮ）２２、クロック発振器（ＣＰＧ）２３、マルチファンクションタイマパルスユニット（ＭＴＵ）２４、リロードパタンジェネレータタイマ（ＲＰＧＴ）２５、及び二重化系診断部３１を含む。
【００２６】
上記内蔵ＲＯＭ１０は、上記ＣＰＵ１６で実行されるプログラムを保持する。上記内蔵ＲＯＭ１０にはフラッシュメモリが適用される。ＲＯＭキャッシュメモリ１４は、ＣＰＵバス（フェッチバス）ＢＵＳ１、ＣＰＵバス（メモリアクセスバス）ＢＵＳ２、及び内部バスＢＵＳ３に結合され、使用頻度の高いデータを蓄積しておくことにより上記内蔵ＲＯＭ１０へのアクセス回数を減らすために設けられる。上記ＣＰＵ１６は、上記内蔵ＲＯＭ１０に格納されているプログラムを実行することにより所定の演算処理を可能とする。上記内蔵ＲＡＭ１２は、ＲＡＭインタフェース１５を介してＣＰＵバスＢＵＳ１，ＢＵＳ２、及び内部バスＢＵＳ３に結合され、上記ＣＰＵ１６での演算処理における作業領域などに利用される。上記ＣＰＵ１６に対する外部割り込みを可能とするため、割り込みコントローラ１３が配置される。この割り込みコントローラ１３は、外部端子およびそれに接続されたポート１１を介して入力されるＮＭＩ（Non-Maskable Interrupt）やＩＲＱ（Interrupt Request）に基づいて上記ＣＰＵ１６に対する割り込み制御を行う。ＣＰＵバスＢＵＳ１，ＢＵＳ２は、バスブリッジ（ＢＢＲＤＧ）１７を介して内部バスＢＵＳ３に結合され、内部バスＢＵＳ３は、バスブリッジ（ＢＢＲＤＧ）１８を介して周辺バスＢＵＳ４に結合される。内部バスＢＵＳ３にはＤＭＡＣ２０が結合される。上記ＤＭＡＣ２０は、上記ＣＰＵ１６の介在無しにメモリ間でのデータ転送を可能とする。上記周辺バスＢＵＳ４には、ＡＤＣ２１、ＲＣＡＮ−ＴＬ２２、ＣＰＧ２８、ＭＴＵ２４、ＲＰＧＴ２５が結合されている。ＡＤＣ２１は、外部端子およびそれに接続されたポート２１を介して入力されたアナログ信号をデジタル信号に変換する。ＣＡＮ２２は、外部端子およびそれに接続されたポート２７を介してコントロールエリアネットワークにおける各種情報のやり取りを可能とする。ＣＰＧ２３は、ポート２８およびそれに接続された外部端子を介して水晶振動子に結合され、所定周波数のクロック信号を形成する。ＭＴＵ２４は、ポート２９およびそれに接続された外部端子を介して各種タイマパルスの入出力を可能とする。ＲＰＧＴ２５は、デューティを周期的に変動させることができるＰＷＭタイマとされ、任意のデューティ値パターンを後述するデューティ値ＲＡＭにセットして使用することにより、ポート３０およびそれに接続された外部端子を介して外部出力されるＰＷＭパルス波形のデューティを時系列で周期的に変化させることができる。上記ＭＴＵ２４及びＲＰＧＴ２５は、バスブリッジ（ＢＢＲＤＧ）１９を介して周辺バスＢＵＳ４に結合される。特に制限されないが、周辺バスＢＵＳ４でのクロック周波数が例えば４０ＭＨｚとされるのに対して、上記ＭＴＵ２４及びＲＰＧＴ２５は、分解能を高めるために例えば８０ＭＨｚで動作されている。このため、バスブリッジ１９では、バスサイクルを整合させるための周波数変換が行われる。
【００２７】
上記二重化系診断部３１は、二重化系診断により、マイクロコンピュータ１００での演算処理の信頼性の向上を図るために設けられる。上記二重化系診断部３１は、基本的には、内蔵ＲＯＭ１０、内蔵ＲＡＭ１２、割り込みコントローラ１３、ＲＯＭキャッシュ１４、ＲＡＭインタフェース１５、ＣＰＵ１６、バスブリッジ１７，１８，１９、ＤＭＡＣ２０に対応して、それらと同一機能を有する機能モジュール、すなわち、内蔵ＲＯＭ１０’、内蔵ＲＡＭ１２’、割り込みコントローラ１３’、ＲＯＭキャッシュ１４’、ＲＡＭインタフェース１５’、ＣＰＵ１６’、バスブリッジ１７’，１８’，１９’、ＤＭＡＣ２０’が設けられ、さらに上記二重化系診断のために、ＣＰＵバスＢＵＳ１，２、内部バスＢＵＳ３、及び周辺バスＢＵＳ４におけるデータ比較を可能とする比較器３３が設けられる。比較器３３は、ＣＰＵバス比較部３３１，３３２、Ｉバスブリッジ／ＲＡＭインタフェース／ＲＯＭキャッシュ比較部３３３、ＤＭＡＣ比較部３３４、及びバスブリッジ比較部３３５を含んで成り、この比較器３３でのデータ比較結果は、ポート３２を介して外部出力可能とされ、このマイクロコンピュータ１００が搭載されたユーザシステムに反映される。上記比較器３３でのデータ比較結果が完全に一致する場合には、マイクロコンピュータ１００での演算処理は正しく行われていることになる。しかし、上記比較器３３でのデータ比較結果が完全に一致しない場合には、マイクロコンピュータ１００での演算処理結果に誤りが含まれることが考えられる。誤りが検出された場合には、例えば、マイクロコンピュータをリセットする、ＣＰＵに対して割込要求を出力する、誤りが一定回数以上発生した場合にリセットをかける等、マイクロコンピュータ自身の動作を正常動作に遷移するための制御を行う。このような二重化系診断が行われることで、ユーザシステムの信頼性の向上を図ることができる。
【００２８】
図１には、上記マイクロコンピュータ１００に含まれるＲＰＧＴ２５の主要構成が示される。ＲＰＧＴ２５は、特に制限されないが、デューティ値ＲＡＭ２５１、アービタ２５２、バスインタフェース２３５、ＰＷＭコントローラ（ＣＨ１）２５４、ＰＷＭコントローラ（ＣＨ２）２５５を含む。デューティ値ＲＡＭ２５１には、任意のデューティ値パターンが設定される。ＰＷＭコントローラ２５４、及びＰＷＭコントローラ２５５は、後述するように、設定された値を初期値としてカウントアップ可能なＰＷＭカウンタを含む。さらに、ＰＷＭパルスをマイクロコンピュータの外部に出力するための１または複数の外部端子２５８を有する。ＰＷＭパルスの単位波形は、デューティ値ＲＡＭ２５１内のデューティ値と上記ＰＷＭカウンタの出力値とのコンペアマッチにより生成され、上記コンペアマッチ毎に次のデューティ値が上記ＣＰＵ１６の介在無しに上記デューティ値ＲＡＭ２５１からロードされることで、上記ＰＷＭパルスのデューティ値の時系列変化が可能にされる。図１に示される構成例では、ＰＷＭコントローラが２チャンネル分（ＣＨ１，ＣＨ２）設けられているため、それぞれデューティ値の時系列変化が可能な２系統のＰＷＭ出力（ＲＰＧＴＯＵＴ１，ＲＰＧＴＯＵＴ２）が得られる。バスインタフェース２３５は、バスブリッジ１９を介して周辺バスＢＵＳ４に結合され、ＰＲＧＴ２５の動作制御に必要となる各種情報は、上記バスブリッジ１９を介してＲＰＧＴ２５内に取り込むことができる。アービタ２５２は、上記バスインタフェース２５３、ＰＷＭコントローラ２５４，２５５からのＲＡＭアクセス要求が競合した場合の調停を行う。このアービタ２５２によって認証された要求元のアクセス信号に従って、デューティ値ＲＡＭ２５１へのデューティ値パターンの書き込みや、デューティ値ＲＡＭ２５１からのデューティ値の読み出しが可能とされる。
【００２９】
図２には、上記ＲＰＧＴ２５のさらに詳細な構成例が示される。
【００３０】
バスインタフェース２５３は、周辺バスＢＵＳ４からブリッジ１９を介してアドレス、リード信号、ライト信号、モジュールセレクト信号を取り込む。また、ブリッジ１９を介して必要なデータを周辺バスＢＵＳ４に出力することもできる。バスインタフェース２５３からのＲＡＭアクセス要求０に対して、アービタ２５３からバスインタフェース２５３にバスアクセス認証０が与えられると、デューティ値ＲＡＭ２５１へのアクセス信号０がバスインタフェース２５３からアービタ２５２に出力される。これによってバスインタフェース２５３からデューティ値ＲＡＭ２５１へのアクセスが可能とされる。このバスインタフェース２５３からデューティ値ＲＡＭ２５１へのアクセスにおいて、デューティ値ＲＡＭ２５１へのデューティ値パターンの書き込みが可能とされる。このデューティ値パターンの書き込みは、マイクロコンピュータ１００の初期化の際に、ＣＰＵ１６の制御によって行われる。また、ＰＷＭコントローラ２５４からのＲＡＭアクセス要求１に対して、アービタ２５２からＰＷＭコントローラ２５４にバスアクセス認証１が与えられると、デューティ値ＲＡＭ２５１へのアクセス信号１がＰＷＭコントローラ２５４からアービタ２５２に出力される。これによってＰＷＭコントローラ２５４からデューティ値ＲＡＭ２５１へのアクセスが可能とされる。このＰＷＭコントローラ２５４からデューティ値ＲＡＭ２５１へのアクセスによって、デューティ値ＲＡＭ２５１内のデューティ値がＰＷＭコントローラ２５４に読み込まれる。同様に、ＰＷＭコントローラ２５５からのＲＡＭアクセス要求２に対して、アービタ２５２からＰＷＭコントローラ２５５にバスアクセス認証２が与えられると、デューティ値ＲＡＭ２５１へのアクセス信号２がＰＷＭコントローラ２５５からアービタ２５２に出力される。これによってＰＷＭコントローラ２５５からデューティ値ＲＡＭ２５１へのアクセスが可能とされる。このＰＷＭコントローラ２５５からデューティ値ＲＡＭ２５１へのアクセスによって、デューティ値ＲＡＭ２５１内のデューティ値がＰＷＭコントローラ２５５に読み込まれる。
【００３１】
さらに、ＲＰＧＴ２５には、ＲＰＧＴコントロールレジスタＲＰＣＲ、プリスケーラＰＲＳＣＲ、プリスケーラ設定レジスタＲＰＩＳＲ、ＲＰＧＴイベント発生許可レジスタＲＰＩＣＲ、ＲＰＧＴイベントステータスレジスタＲＰＩＳＲが設けられる。ＲＰＧＴコントロールレジスタＲＰＣＲは、ＰＷＭコントローラ２５４，２５５の動作開始及び動作停止を指示するためのビットＯＰ１，ＯＰ２を記憶可能なレジスタとされる。ＣＰＵ１６によってビットＯＰ１に論理値“１”が書き込まれることで、ＰＷＭコントローラ２５４を起動させることができ、ＣＰＵ１６によってビットＯＰ２に論理値“１”が書き込まれることで、ＰＷＭコントローラ２５５を起動させることができる。また、ＣＰＵ１６によってビットＯＰ１に論理値“０”が書き込まれることで、ＰＷＭコントローラ２５４の動作を停止させることができ、ＣＰＵ１６によってビットＯＰ２に論理値“０”が書き込まれることで、ＰＷＭコントローラ２５５の動作を停止させることができる。イベント発生許可レジスタＲＰＩＣＲは、ポインタ上限割り込み１，２、イベントコンペア割り込み１，２、Ａ／Ｄ変換起動トリガ１，２の許可／不許可を設定するためのレジスタとされる。ＲＰＧＴイベントステータスレジスタＲＰＩＳＲは、ＰＷＭコントローラ２５４，２５５からのイベント発生許可レジスタＲＰＩＣＲは、ポインタ上限割り込み１，２、イベントコンペア割り込み１，２を保持するために設けられる。ポインタ上限割り込み１，２、イベントコンペア割り込み１，２、Ａ／Ｄ変換起動トリガ１，２と、上記イベント発生許可レジスタＲＰＩＣＲの出力とのアンド論理が得られることで、許可／不許可の切替えが可能とされる。
【００３２】
次に、上記ＰＷＭコントローラ２５４，２５５の内部構成について説明する。ここで、ＰＷＭコントローラ２５４，２５５は、互いに同一構成とされるため、ＰＷＭコントローラ２５４についてのみ詳細に説明し、ＰＷＭコントローラ２５５についての詳細な説明を省略する。尚、ＰＷＭコントローラ２５４，２５５間で同一機能を有するものには同一符号を付し、チャネル（ＣＨ１，ＣＨ２）に対応する添え字「１」，「２」によって識別するものとする。
【００３３】
ＰＷＭコントローラ２５４は、デューティポインタ上限値レジスタＲＰＭＰＴＲ１、デューティポインタレジスタＲＰＣＰＴＲ１、デューティポインタリロードレジスタＲＰＲＰＴＲ１、デューティバッファレジスタＲＰＤＴＢＲ１、ＰＷＭ周期レジスタＲＰＰＷＣＲ１、ＰＷＭカウンタＲＰＴＣＮＴ１、デューティコンペアレジスタＲＰＤＴＣＲ１、イベントコンペアレジスタＲＰＥＣＲ１、イベントカウンタＲＰＥＣＮＴ１、コンパレータＣＯＭＰ１−１、コンパレータＣＯＭＰ１−２、コンパレータＣＯＭＰ１−３、コンパレータＣＯＭＰ１−４、アンドゲートＡＮＤ１−１を含む。
【００３４】
デューティポインタ上限値レジスタＲＰＭＰＴＲ１は、デューティポインタレジスタＲＰＣＰＴＲ１の上限値を保持する。デューティポインタレジスタＲＰＣＰＴＲ１は、デューティ値ＲＡＭ２５１からデューティ値を読み出すためのアドレスを示すポインタを保持する。このポインタに基づいてデューティ値ＲＡＭ２５１のアドレス信号（アクセス信号１）が形成される。上記デューティポインタ上限値レジスタＲＰＭＰＴＲ１とデューティポインタリロードレジスタＲＰＲＰＴＲ１との差分が出力波形１周期中のＰＷＭパルス数から「１」を引いた数に相当する。デューティポインタ上限値レジスタＲＰＭＰＴＲ１とデューティポインタリロードレジスタＲＰＲＰＴＲ１との差分がコンパレータＣＯＭＰ１−１で得られ、それらのコンペアマッチによりデューティポインタリロードレジスタＲＰＲＰＴＲ１の設定値がリロードされるようになっている。デューティポインタリロードレジスタＲＰＲＰＴＲ１には、デューティポインタレジスタＲＰＣＰＴＲ１のリロード値が保持される。デューティバッファレジスタＲＰＤＴＢＲ１には、デューティポインタレジスタＲＰＣＰＴＲ１によって示されるアドレスに基づくデューティ値ＲＡＭ２５１からのリードデータ（デューティ値）が保持される。このデューティバッファレジスタＲＰＤＴＢＲ１の保持値は、このＰＷＭコントローラ２５４において次に形成されるＰＷＭパルスのデューティ値とされる。ＰＷＭ周期レジスタＲＰＰＷＣＲ１の出力値とＰＷＭカウンタＲＰＴＣＮＴ１の出力値とがコンパレータＣＯＭＰ１−２で比較され、それらのコンペアマッチによりＲＡＭアクセス要求１がハイレベルにされることで、デューティバッファレジスタＲＰＤＴＢＲ１の出力値がアンドゲートＡＮＤ１−１を介してデューティコンペアレジスタＲＰＤＴＣＲ１にロードされる。
【００３５】
ＰＷＭ周期レジスタＲＰＰＷＣＲ１には、ＣＰＵ１６によりＰＷＭカウンタ周期が設定される。ＰＷＭカウンタＲＰＴＣＮＴ１には、初期値として任意の値を書き込むことができる。ＰＷＭカウンタＲＰＴＣＮＴ１は、設定された値を初期値としてカウントアップされ、その出力値がコンパレータＣＯＭＰ１−２やコンパレータＣＯＭＰ１−３に伝達される。コンパレータＣＯＭＰ１−２では、ＰＷＭ周期レジスタＲＰＰＷＣＲ１の出力値と、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値とが比較され、それらのコンペアマッチによりＲＡＭアクセス要求１がハイレベルにされる。イベントカウンタＲＰＥＣＮＴ１は、上記コンパレータＣＯＭＰ１−２の出力に基づいて、ＰＷＭカウンタの周回毎にカウントアップされる。デューティコンペアレジスタＲＰＤＴＣＲ１は、ＰＷＭパルスの現在のデューティ値が保持される。ＲＰＧＴＯＵＴ１の値は、ＰＷＭカウンタＲＰＴＣＮＴ１の値が論理値‘０’の条件でハイレベルとなり、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値とデューティコンペアレジスタＲＰＤＴＣＲ１の出力値とがコンパレータＣＯＭＰ１−３で比較され、それらのコンペアマッチにより、ローレベルにされる。イベントコンペアレジスタＲＰＥＣＲ１はイベント発生カウント値が保持される。イベントコンペアレジスタＲＰＥＣＲ１の出力値とイベントカウンタＲＰＥＣＮＴ１の出力値とがコンパレータＣＯＭＰ１−４で比較され、ＲＰＩＣＲによってイベント発生が許可されている場合には、イベントコンペアレジスタＲＰＥＣＲ１の出力値とイベントカウンタＲＰＥＣＮＴ１の出力値とのコンペアマッチにより、Ａ／Ｄ変換起動トリガ１イベントコンペア割り込み１がアサートされる。
【００３６】
尚、上記各レジスタは、リセット信号によりリセット可能とされる。
【００３７】
図６には、上記デューティバッファレジスタＲＰＤＴＢＲ１と出力波形（ＲＰＧＴＯＵＴ）との関係が示される。横軸ｔは時間を示している。
【００３８】
特に制限されないが、ＰＷＭ周期レジスタＲＰＰＷＣＲ１には、ＰＷＭカウンタ周期として、ＲＰＰＷＣＲ１〔７：０〕＝２５５が設定されているものとする。ＰＷＭカウンタＲＰＴＣＮＴ１がカウントアップされ、その出力値が、ＰＷＭ周期レジスタＲＰＰＷＣＲ１の出力値（２５５）と一致すると、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値が論理値‘０’にクリアされ、ＰＷＭパルス（ＰＲＧＴＯＵＴ１）がハイレベルにされる。そして、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値とデューティコンペアレジスタＲＰＤＴＣＲ１の出力値とのコンペアマッチによりＰＷＭパルス（ＰＲＧＴＯＵＴ１）がローレベルにされる。換言すれば、ＰＷＭパルスの単位波形は、デューティ値ＲＡＭ２５１内のデューティ値と上記ＰＷＭカウンタＲＰＴＣＮＴ１の出力値とのコンペアマッチにより生成され、上記コンペアマッチ毎に次のデューティ値が上記デューティ値ＲＡＭ２５１からロードされることで、上記ＰＷＭパルスのデューティ値の時系列変化が可能にされる。すなわち、デューティポインタレジスタＲＰＣＰＴＲ１の出力値（ポインタによって示される値）に対応するディーティ値が、ディーティ値ＲＡＭ２５１からデューティバッファレジスタＲＰＤＴＢＲ１にロードされ、さらにアンドゲートＡＮＤ１−１を介してデューティコンペアレジスタＲＰＤＴＣＲ１に書き込まれることで、上記ＰＷＭカウンタＲＰＴＣＮＴ１の出力値との比較が可能とされる。ここで、ディーティ値ＲＡＭ２５１からデューティバッファレジスタＲＰＤＴＢＲ１にロードされ、さらにアンドゲートＡＮＤ１−１を介してデューティコンペアレジスタＲＰＤＴＣＲ１に書き込まれた値が、「１２７」、「１９１」、「２２３」、…、「３１」、「６３」、「１２７」のように更新された場合、それに応じて、ＰＷＭパルス（ＰＲＧＴＯＵＴ１）のデューティが経時的に変更される。
【００３９】
図３には、上記アービタ２５２の構成例が示される。
【００４０】
図３に示されるように上記アービタ２５２は、プライオリティデコーダ２５２Ａとアクセス信号セレクタ２５２Ｂとを含む。プライオリティデコーダ２５２Ａは、バスインタフェース２５３、ＰＷＭコントローラ２５４，２５５からのＲＡＭアクセス要求が競合した場合、優先順位を決定して何れかひとつに対してＲＡＭアクセス認証を与える。優先順位決定の手段としては、（ａ）予めハードウェアによって固定する、（ｂ）ソフトウェアで静的に可変する、（ｃ）ソフトウェアで動的に可変する、（ｄ）最後にアクセスのあったものの優先度をハードウェアにより最下位に下げる、等が考えられる。そして、アクセス認証されたチャネルに対応するＲＡＭアクセス信号（アドレス等）は、アクセス信号セレクタ部２５２Ａで選択されてデューティ値ＲＡＭ２５１に伝達される。
【００４１】
図７には、上記のように構成されたマイクロコンピュータ１００におけるＰＷＭパルス生成のフローチャートが示される。
【００４２】
ＣＰＵ１６によってビットＯＰ１が論理値“１”にされることで、ＰＷＭコントローラ２５４が起動され、ＣＰＵ１６によってビットＯＰ２が論理値“１”にされることで、ＰＷＭコントローラ２５５が起動される。ここでは、説明の便宜上、ＣＰＵ１６によってビットＯＰ１が論理値“１”にされることで、ＰＷＭコントローラ２５４が起動される場合について説明する。ＰＷＭコントローラ２５４が起動され（Ｓ１）、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値が論理値‘０’であるか否かが判別される（Ｓ２）。ＰＷＭカウンタＲＰＴＣＮＴ１の出力値が論理値‘０’である場合、ＰＷＭ波形が立ち上げられ（Ｓ３）、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値が論理値‘１’である場合、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値とデューティコンペアレジスタＲＰＤＴＣＲ１の出力値とのコンペアマッチが判別される（Ｓ４）。この判別において、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値とデューティコンペアレジスタＲＰＤＴＣＲ１の出力値とが一致する場合にはＰＷＭ波形が立ち下げられる（Ｓ５）。次に、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値とＰＷＭ周期レジスタＲＰＰＷＣＲ１の出力値とのコンペアマッチが判別される（Ｓ６）。ＰＷＭカウンタＲＰＴＣＮＴ１の出力値とＰＷＭ周期レジスタＲＰＰＷＣＲ１の出力値とが一致しない場合、ＰＷＭカウンタＲＰＴＣＮＴ１がインクリメント（＋１）される（Ｓ７）。また、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値とＰＷＭ周期レジスタＲＰＰＷＣＲ１の出力値とが一致する場合、ＰＷＭカウンタＲＰＴＣＮＴ１の出力値が論理値‘０’にクリアされ、デューティ値が更新される（Ｓ９〜Ｓ１２）。すなわち、デューティバッファレジスタＲＰＤＴＢＲ１の保持値がデューティコンペアレジスタＲＰＤＴＣＲ１にロードされることにより、デューティコンペアレジスタＲＰＤＴＣＲ１が更新され（Ｓ９）、次のデューティ値を得るためにデューティ値ＲＡＭ２５１への読み出し要求が行われ（Ｓ１０）、それが認証された場合には（Ｓ１１）、デューティポインタレジスタＲＰＣＰＴＲ１がカウントアップされ、それによってデューティ値ＲＡＭ２５１から新たに読み出されたデューティ値によってデューティバッファレジスタＲＰＤＴＢＲ１が更新される（Ｓ１２）。
【００４３】
以上は、ＣＰＵ１６によってビットＯＰ１が論理値“１”にされることで、ＰＷＭコントローラ２５４が起動される場合について説明したが、ＣＰＵ１６によってビットＯＰ２が論理値“１”にされることで、ＰＷＭコントローラ２５５が起動される場合についても、ＰＷＭコントローラ２５５において上記と同様にＰＷＭパルスの生成が行われる。尚、ＰＷＭコントローラ２５４，２５５が同時に起動される場合もあり得る。
【００４４】
図５には、ＰＷＭコントローラ２５４，２５５の双方が動作され、ＰＷＭコントローラ２５４，２５５からデューティ値ＲＡＭ２５１へのアクセスが競合する場合について説明する。図５において、ＣＨ１はＰＷＭコントローラ２５４，ＣＨ２はＰＷＭコントローラ２５５を示している。ＰＷＭコントローラ２５４，２５５からデューティ値ＲＡＭ２５１へのアクセスが競合した場合、以下のようにアクセス調停が行われる。ＣＨ１、ＣＨ２から同時にアクセス要求があった場合、アービタ２５２において所定の優先順位に従うアクセス制御（調停）が行われる。図５に示される例では、ＣＨ１がＣＨ２より優先順位が高い場合のケースを示しており、結果としてＣＨ２のアクセス認証が1クロック分だけ遅延される。しかし、見かけ上は、ＣＨ１とＣＨ２とで同時にデューティ値ＲＡＭ２５１のアクセスが行われ、それぞれ所定のデューティ値を読み出し、それに基づくディーティ制御が行われる。
【００４５】
このように、見かけ上、ＣＨ１とＣＨ２とで同時にデューティ値ＲＡＭ２５１のアクセスが行われることを利用して、ＰＷＭパルス生成を二重化することができる。例えば、デューティ値ＲＡＭ２５１において第１記憶領域とそれとは異なる第２記憶領域とに、互いに同じデューティ値パターンを重複してセットしておく。第１記憶領域をＰＷＭコントローラ２５４（ＣＨ１）に対応させ、第２記憶領域をＰＷＭコントローラ２５５（ＣＨ２）に対応させ、ＰＷＭコントローラ２５４（ＣＨ１）とＰＷＭコントローラ２５５（ＣＨ２）とで、互いに等しいＰＷＭパルスを生成する。この場合、図８に示されるように、ＰＷＭコントローラ２５４（ＣＨ１）のＰＷＭ出力（ＲＰＧＴＯＵＴ１）と、ＰＷＭコントローラ２５５（ＣＨ２）のＰＷＭ出力（ＲＰＧＴＯＵＴ２）とを比較器ＣＭＰで比較する。両者が一致しない場合には、ＰＷＭコントローラ２５４（ＣＨ１）又はＰＷＭコントローラ２５５（ＣＨ２）の異常が考えられるため、例えばＰＷＭコントローラ２５４（ＣＨ１）のＰＷＭ出力（ＲＰＧＴＯＵＴ１）がユーザシステムにおける制御に使用されるものとすると、このＰＷＭ出力（ＲＰＧＴＯＵＴ１）の信頼性の向上を図ることができる。上記比較器ＣＭＰは、マイクロコンピュータ１００内に配置しても良いし、このマイクロコンピュータ１００が搭載されるユーザシステムに配置しても良い。
【００４６】
図１１には、上記ＲＰＧＴ２５の比較対象とされる構成例が示される。
【００４７】
図１１に示される構成では、デューティ値設定用のデューティ値レジスタ５５４，５５５が設けられ、ＰＷＭコントローラ４５４，４５５では、対応する上記デューティ値レジスタ５５４，５５５の設定値に応じたＰＷＭパルスが生成される。このＰＷＭパルスのデューティを変更するには、上記デューティ値レジスタ５５４，５５５の保持値を更新すれば良い。上記デューティ値レジスタ５５４，５５５の保持値の更新は、ＣＰＵバスＢＵＳ１，ＢＵＳ２、内部バスＢＵＳ３、及び周辺バスＢＵＳ４を介してＣＰＵ１６によって行われる。つまり、図１２に示されるように、ＰＷＭパルスのデューティ変更毎に、ＰＷＭコントローラ４５４，４５５からＣＰＵ１６に対して、ディーティ値レジスタセットのための割り込みを発生させ、ディーティ値レジスタセットのための割り込み処理において、ＣＰＵ１６は、ＣＰＵバスＢＵＳ１，ＢＵＳ２、内部バスＢＵＳ３、及び周辺バスＢＵＳ４を介して、デューティ値レジスタ５５４，５５５に新たなデューティ値の書き込みを行う。そのよう方式においては、ＣＰＵ１６のバストラフィックの混雑による、ＣＰＵ１６からの書込みに一時的なトラップが発生する可能性がある。当該トラップが発生すると、ＣＰＵ１６からのＰＷＭコントロールが行き届かなくなることで、正しいＰＷＭパルスの出力ができなくなるおそれがある。また、デューティ値を更新するために、ＣＰＵ１６に対して割り込みを発生させる必要があり、当該割込み信号の、何らかの原因によるソフトエラーやハードウェアの断線などに起因する障害の発生により、正しいＰＷＭパルスの出力ができなくなるおそれがある。
【００４８】
また、上記デューティ値レジスタ５５４，５５５の保持値の更新をＤＭＡＣにより行うこともできるが、その場合においては、ＤＭＡＣから上記デューティ値レジスタ５５４，５５５に至る経路に存在するバスの使用権をＤＭＡＣが獲得する必要があるため、図１１に示される構成の場合と同様にバストラフィックの混雑等に起因する不都合は否めない。
【００４９】
これに対して、図１乃至図３に示される構成によれば、マイクロコンピュータ１００の初期化において、デューティ値ＲＡＭ２５１にデューティ値パターンをセットすることができるため、ＣＰＵ１６のバストラフィックの混雑の影響を受けず、ＣＰＵ１６からの書込みの一時的なトラップの発生を確実に回避することができる。すなわち、常時正しいＰＷＭパルス波形の出力ができ、ＰＷＭパルスの信頼性の向上を図ることができる。また、ＰＷＭパルスのデューティを更新するための割込み信号を有さないため、当該割込みの、何らかの原因によるソフトエラーやハードウェアの断線などに起因する障害の心配も無い。
【００５０】
また、図１１に示される構成では、リアルタイムでＣＰＵ１６での割り込み処理によってデューティ値レジスタ５５４，５５５のデューティ値を頻繁に更新する必要があるから、当該更新が正しく行われたか否かをソフトウェアで確認しようとすると、ＰＷＭパルス生成が間に合わなくなるおそれがある。
【００５１】
これに対して、図１乃至図３に示される構成によれば、図４に示されるように、ＰＷＭパルスの発生が開始される前、例えばマイクロコンピュータ１００の初期化において、デューティ値ＲＡＭ２５１にデューティ値パターンをセットすることができるため、このデューティ値パターンのセットが正しく行われたか否かを、実際にＰＷＭパルスが発生される前に確認することができる。このことは、ＰＷＭパルスの信頼性の向上を図る上で有利とされる。
【００５２】
上記の例によれば、以下の作用効果を得ることができる。
【００５３】
（１）ＣＰＵのバストラフィックの混雑の影響を受けず、ＣＰＵからの書込みの一時的なトラップの発生を確実に回避できるので、常に正しいＰＷＭパルス波形を出力することができ、それによってＰＷＭパルスの信頼性の向上を図ることができる。
【００５４】
（２）ＣＰＵのバストラフィックの混雑の影響を受けず、ＣＰＵ１６からの書込みの一時的なトラップの発生を確実に回避できる。すなわち、常時正しいＰＷＭパルスを出力することができ、それによって信頼性の向上を図ることができる。
【００５５】
（３）デューティを更新するためのＣＰＵ１６への割込み信号を具備しないため、当該割込み信号の、何らかの原因によるソフトエラーやハードの断線などによる、障害の心配も低減できる。
【００５６】
（４）ＰＷＭパルスの発生が開始される前、例えばマイクロコンピュータ１００の初期化において、デューティ値ＲＡＭ２５１にデューティ値パターンをセットすることができるため、このデューティ値パターンのセットが正しく行われたか否かを、実際にＰＷＭパルスが発生される前に確認することができる。
【００５７】
（５）ＰＷＭコントローラ２５４，２５５を多重化した場合には、コンパレータＣＭＰにより異常出力波形の感知が容易となる。それにより、ユーザシステムの信頼性の向上を図ることができる。
【００５８】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００５９】
図１０には、上記マイクロコンピュータ１００の適用例が示される。
【００６０】
マイクロコンピュータ１００はユーザシステムに搭載される。ユーザシステムは、外部装置の一例とされ、特に制限されないが、自動車におけるパワーステアリング制御装置とされる。ユーザシステムが搭載される自動車には、ステアリング１０１と、自動車の車輪に対して能動的に舵角を与えるためのモータ１０６とが設けられる。上記ステアリング１０１には、その軸角度検出を可能とするレゾルバセンサ１０２、上記レゾルバセンサへ励磁信号を出力するためのＣＲフィルタ等の回路１０８が設けられる。また、上記モータ１０６には、その軸角度検出を可能とするレゾルバセンサ１０７、上記レゾルバセンサ１０７へ励磁信号を出力するためのＣＲフィルタ等の回路１０９が設けられる。上記レゾルバセンサ１０２，１０７は、ロータとステータを含んで成り、上記ロータに励磁用ＡＣ信号（励磁用アナログ信号）を供給すると、上記ステータには軸角度をパラメータとするＡＣ信号が得られる。上記レゾルバセンサ１０２，１０７への励磁用ＡＣ信号の供給は、ＲＰＧＴ２５によりポート３０および外部端子を介してデジタル矩形波であるＰＷＭパルスが上記ＣＲフィルタ等の回路１０８、１０９へ供給さる。さらに、上記ＰＷＭパルスに応じて上記ＣＲフィルタ等の回路によってアナログ信号である正弦波が生成され、それが上記励磁用ＡＣ信号として供給される。行われる。上記マイクロコンピュータ１００は、２チャンネル分のＰＷＭコントローラ４５４，４５５を有するため、ＰＷＭコントローラ４５４をレゾルバセンサ１０２に対応させ、ＰＷＭコントローラ４５５をレゾルバセンサ１０７に対応させるようにしている。そして上記レゾルバセンサ１０２の検出信号（ＡＣ信号）は、ポート２６を介してＡＤＣ２１に取り込まれ、そこでデジタル信号に変換されてからモータ１０６の回転駆動制御のための演算処理に供されるようになっている。この演算処理はＣＰＵ１６で行われ、その演算処理結果がＭＴＵ２４及びポート２９を介してドライバ１０４に供給され、そこで増幅されてから後段の駆動回路１０５に供給される。駆動回路１０５は、パワーＭＯＳトランジスタによって形成され、上記ドライバ１０４の出力信号に基づいて上記モータ１０６の回転駆動を行う。このとき、上記モータ１０６の軸角度がレゾルバセンサ１０７によって検出され、それが外部端子とポート２６を介してＡＤＣ２１に取り込まれ、そこでデジタル信号に変換されてからＣＰＵ１６に供給されることで、実際のモータ軸角度情報がＣＰＵ１６にフィードバッグされ、上記モータ１０６の回転駆動の補正が行われるようになっている。尚、車速情報はポート２７を介して取り込まれ、上記ＣＰＵ１６での演算処理に供される。また、電源回路１０３が設けられ、マイクロコンピュータ１００の動作用電源電圧は、上記電源回路１０３から供給される。上記マイクロコンピュータ１００と、モータ、レゾルバセンサ、ＣＲフィルタ等の回路、電源回路などの外部に接続される回路は、直接的に接続しても良いし、記載はされないがその他の回路を介在させても良い。
【００６１】
上記の構成においては、上記（１）〜（５）の作用効果を奏するマイクロコンピュータ１００が用いられているため、ステアリング制御の信頼性の向上を図ることができる。
【００６２】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６３】
例えば、デューティ値ＲＡＭ２５１にＥＣＣ（Error Check and Correct）あるいはパリティビットなどのエラー訂正機能を設けることができる。このようなエラー訂正機能を設けることにより、デューティ値ＲＡＭ２５１で読み出しエラーを生じた場合にそれを訂正することができるので、ＰＷＭパルス生成の信頼性をさらに向上させることができる。
【図面の簡単な説明】
【００６４】
【図１】本発明にかかるマイクロコンピュータに含まれる主要部の構成例ブロック図である。
【図２】上記マイクロコンピュータに含まれる主要部のさらに詳細な構成例ブロック図である。
【図３】図１及び図２に含まれるアービタの構成例ブロック図である。
【図４】上記マイクロコンピュータに含まれる主要部の動作タイミング図である。
【図５】上記マイクロコンピュータに含まれる主要部の動作タイミング図である。
【図６】上記マイクロコンピュータに含まれる主要部の動作波形図である。
【図７】上記マイクロコンピュータに含まれる主要部の動作を示すフローチャートである。
【図８】上記マイクロコンピュータに含まれる主要部の別の構成例ブロック図である。
【図９】上記マイクロコンピュータに含まれる主要部のさらに詳細な構成例ブロック図である。
【図１０】上記マイクロコンピュータが適用されたユーザシステムにおける主要部の構成例ブロック図である。
【図１１】上記マイクロコンピュータにおける主要部の比較対象とされる構成例ブロック図である。
【図１２】図１１における主要部の動作タイミング図である。
【符号の説明】
【００６５】
１６  ＣＰＵ
１７，１８，１９  ブリッジ
２５  ＲＰＧＴ
２６〜３０  ポート
１００  マイクロコンピュータ
１０２，１０７  レゾルバセンサ
２５１  デューティ値ＲＡＭ
２５２  アービタ
２５３  バスインタフェース
２５４  ，２５５  ＰＷＭコントローラ
ＲＰＭＰＴＲ１，ＲＰＣＰＴＲ２  デューティポインタ上限値レジスタ
ＲＰＣＰＴＲ１，ＲＰＣＰＴＲ２  デューティポインタレジスタ
ＲＰＲＰＴＲ１，ＲＰＲＰＴＲ２  デューティポインタリロードレジスタ
ＲＰＤＴＢＲ１，ＲＰＤＴＢＲ２  デューティバッファレジスタ
ＲＰＰＷＣＲ１，ＲＰＰＷＣＲ２  ＰＷＭ周期レジスタ
ＲＰＴＣＮＴ１，ＲＰＴＣＮＴ２  ＰＷＭカウンタ
ＲＰＤＴＣＲ１，ＲＰＤＴＣＲ２  デューティコンペアレジスタ
ＲＰＥＣＲ１，ＲＰＥＣＲ２  イベントコンペアレジスタ
ＲＰＥＣＮＴ１，ＲＰＥＣＮＴ２  イベントカウンタ
【図１】
0005271602.tif 000002
【図２】
0005271602.tif 000003
【図３】
0005271602.tif 000004
【図４】
0005271602.tif 000005
【図５】
0005271602.tif 000006
【図６】
0005271602.tif 000007
【図７】
0005271602.tif 000008
【図８】
0005271602.tif 000009
【図９】
0005271602.tif 000010
【図１０】
0005271602.tif 000011
【図１１】
0005271602.tif 000012
【図１２】
0005271602.tif 000013