"中央処理装置と、前記中央処理装置によって設定された生成条件に応じてPWM信号を生成するPWM信号生成部と、前記PWM信号生成部によって生成されたPWM信号に基づいて該PWM信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記PWM信号のパルス周期及びパルス幅とを比較することにより、前記PWM信号生成部の診断を行う診断部とを有するマイクロコントローラ。請求項1において、前記診断部は、PWM信号のパルス幅がゼロになる前記生成条件が前記PWM信号生成部に設定された場合には、前記設定された生成条件のパルス周期よりも短い第1期間だけハイレベルとなるように前記入力したPWM信号を補正するとともに、補正後のPWM信号のパルス周期とパルス幅を検出して前記比較を行うマイクロコントローラ。請求項2において、前記診断部は、PWM信号のパルス幅とパルス周期とが一致する前記生成条件が前記PWM信号生成部に設定された場合には、前記設定された生成条件のパルス周期よりも短い第2期間だけローレベルとなるように前記入力したPWM信号を補正するとともに、補正後のPWM信号のパルス周期とパルス幅を検出して前記比較を行うマイクロコントローラ。請求項3において、前記診断部は、前記PWM信号生成部に設定された前記生成条件に応じて、入力された前記PWM信号を補正して出力するパルス補正部と、前記パルス補正部から出力された信号の立ち上がりエッジと立ち下がりエッジを検出する検出部と、前記検出したエッジに基づいて前記パルス補正部から出力された信号のパルス周期とパルス幅を算出し、算出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅を比較する比較部とを有し、前記パルス補正部は、PWM信号のパルス幅がゼロになる前記生成条件が前記PWM信号生成部に設定された場合には、1つ前のPWM信号の立ち上がりからパルス周期分の時間が経過したタイミングにおいて、前記第1期間だけハイレベルとなる第1信号を生成し、前記第1信号と前記入力したPWM信号の論理和をとることで前記補正後のPWM信号を生成し、前記比較部は、PWM信号のパルス幅がゼロになる前記生成条件が前記PWM信号生成部に設定された場合には、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致し、且つ前記算出したパルス幅と前記第1期間に応じたパルス幅とが一致するならば、前記生成条件に応じたPWM信号が生成されていると判断し、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致せず、又は前記算出したパルス幅と前記第1期間に応じたパルス幅とが一致しないならば、前記生成条件に応じたPWM信号が生成されていないと判断するマイクロコントローラ。請求項4において、前記パルス補正部は、PWM信号のパルス幅とパルス周期とが一致する前記生成条件が前記PWM信号生成部に設定された場合には、前記入力されたPWM信号が立ち上がってから所定期間が経過したタイミングにおいて、前記第2期間だけハイレベルとなる第2信号を生成し、前記第2信号の反転信号と前記入力したPWM信号の論理積をとることで前記補正後のPWM信号を生成し、前記比較部は、PWM信号のパルス幅とパルス周期とが一致する前記生成条件が前記PWM信号生成部に設定された場合には、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致し、且つ前記算出したパルス幅と、前記生成条件に応じたパルス幅を前記第2期間だけ短くしたパルス幅と、が一致するならば、前記生成条件に応じたPWM信号が生成されていると判断し、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致せず、又は前記算出したパルス幅と前記第2期間だけ短くしたパルス幅とが一致しないならば、前記生成条件に応じたPWM信号が生成されていないと判断するマイクロコントローラ。請求項3において、前記PWM信号生成部はパルス周期とパルス幅を含む前記生成条件を格納するための第1レジスタを有し、前記診断部は、前記第1レジスタに格納される前記生成条件を含む情報を格納するための第2レジスタを更に有し、前記診断部は、前記第2レジスタに格納された前記生成条件に基づいて前記判別を行うマイクロコントローラ。請求項3において、前記診断部は、前記中央処理装置による前記第1レジスタに対する前記生成条件の書き込みを監視し、前記中央処理装置が書き込む前記生成条件を取得して前記第2レジスタに格納するマイクロコントローラ。請求項7において、前記中央処理装置と、前記PWM信号生成部と、前記診断部とは内部バスを介して互いに接続され、前記中央処理装置は、前記第1レジスタに前記生成条件を書き込むとき、前記第1レジスタを示すアドレス値と前記生成条件に係るデータとを前記内部バス上に出力し、前記診断部は、前記内部バス上に出力されるアドレス値を監視し、出力されたアドレス値が前記第1レジスタを示すアドレス値である場合には、前記内部バス上に出力された前記生成条件に係るデータを取得して、前記第2レジスタに保持するマイクロコントローラ。請求項3において、前記PWM信号生成部によって生成されたPWM信号を外部に出力するための第1端子と、外部から信号を入力するための第2端子とを更に有し、前記診断部は、前記第1端子に出力されるPWM信号と、前記第2端子を介して入力されるPWM信号とを前記判別対象のPWM信号として選択可能であるマイクロコントローラ。請求項3において、前記PWM信号生成部と前記診断部とは、共通の回路モジュール内に構成されるマイクロコントローラ。請求項3において、前記PWM信号生成部と前記診断部とは、互いに別個の回路モジュールとして構成されるマイクロコントローラ。請求項3において、第1バスクロックで動作し、前記中央処理装置が接続される第1バスと、前記第1バスクロックとは異なる第2バスクロックで動作し、前記PWM信号生成部と前記診断部とが接続される第2バスと、前記第1バスと前記第2バスとの間の通信を制御するためのバス制御部とを更に有し、前記第2バスクロックは、前記第1バスクロックよりも低い周波数とされるマイクロコントローラ。請求項1において、前記PWM信号生成部は、互いに異なる複数のPWM信号を生成するよう、複数の下位PWM信号生成部を含んで構成され、前記PWM信号生成部から出力された複数のPWM信号を入力し、入力した複数のPWM信号のうち何れかの信号を選択して出力する第1選択部を更に有し、前記診断部は、前記第1選択部から出力されたPWM信号を入力し、入力したPWM信号に基づいて該PWM信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記PWM信号のパルス周期及びパルス幅とを比較するマイクロコントローラ。請求項13において、前記PWM信号生成部によって生成された複数のPWM信号を外部に出力するための複数の第1端子と、前記第1選択部が入力するPWM信号を外部から受けるための第2端子とを更に有し、前記第1選択部は、前記第1端子に出力される複数のPWM信号のうち何れか1つのPWM信号を選択して第1PWM信号として出力するとともに、前記第2端子を介して入力された複数のPWM信号のうち何れか1つのPWM信号を選択して第2PWM信号として出力し、前記診断部は、前記第1PWM信号と前記第2PWM信号とを前記判別対象のPWM信号として選択可能であるマイクロコントローラ。請求項1において、前記PWM信号生成部から出力されたPWM信号を入力し、入力したPWM信号に基づいて該PWM信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記PWM信号のパルス周期及びパルス幅とを比較する機能を有し、前記診断部とは異なる他の診断部を更に有するマイクロコントローラ。請求項15において、前記PWM信号生成部によって生成されたPWM信号を外部に出力するための第1端子と、外部から信号を入力するための複数の第2端子と、前記複数の第2端子から入力されたPWM信号を入力し、入力したPWM信号のうち何れか1つの信号を選択して1つの前記診断部に出力する選択回路を前記診断回路に対応して複数有する第1選択部とを更に有し、夫々の前記診断部は、前記第1端子に出力されるPWM信号と、対応する前記選択回路で選択された信号とを前記判別対象のPWM信号として選択可能であるマイクロコントローラ。請求項1において、前記PWM信号生成部は、互いに異なるmmは2以上の整数個のPWM信号を生成するよう、前記m個の下位PWM信号生成部を含んで構成され、前記PWM信号生成部から出力された複数のPWM信号を入力し、入力した複数のPWM信号のうち何れかの信号を選択して出力する第1選択部を更に有し、前記診断部は、前記第1選択部から出力されたPWM信号を入力し、入力したPWM信号に基づいて該PWM信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記PWM信号のパルス周期及びパルス幅とを比較するnnは1以上の整数個の下位診断部を含んで構成されるマイクロコントローラ。請求項17において、前記生成されたm個のPWM信号を外部に出力するためのm個の第1端子と、前記第1選択部に入力するPWM信号を外部から受けるための複数の第2端子とを更に有し、前記第1選択部は、1つの前記診断部に対し、前記第1端子に出力されるm個のPWM信号のうち何れか1つのPWM信号を選択して第1PWM信号として出力するとともに、前記第2端子を介して入力された複数のPWM信号のうち何れか1つのPWM信号を選択して第2PWM信号として出力する選択回路を、前記診断部に対応してn個有し、夫々の前記診断部は、前記第1端子に出力されるPWM信号と、対応する前記選択回路で選択された信号とを前記判別対象のPWM信号として選択可能であるマイクロコントローラ。モータを制御するための制御装置であって、モータを駆動するためのPWM信号を生成するとともに、生成したPWM信号が異常である場合には外部端子からエラー信号を出力するマイクロコントローラと、前記生成されたPWM信号に基づいて、モータを駆動するためのドライバと、前記エラー信号を受けてモータの異常動作を防止するため処理を行う安全装置とを有し、前記マイクロコントローラは、中央処理装置と、前記中央処理装置によって設定された生成条件に応じてPWM信号を生成するPWM信号生成部と、前記生成されたPWM信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別する診断部とを有し、前記判別結果に応じて前記エラー信号を前記外部端子に出力する制御装置。設定された生成条件に応じてPWM信号を生成するPWM信号生成部と、前記PWM信号生成部によって生成されたPWM信号が、自らに設定された条件に応じたパルス周期及びパルス幅を持つ信号であるか否かを判別する診断部とを有するマイクロコンピュータの前記診断部が正常であるか否かを判別する判別方法であって、前記PWM信号生成部に設定された前記生成条件と等価な条件を前記診断部に設定し、前記診断部が、前記生成されたPWM信号が前記等価な条件に応じたPWM信号と一致すると判別した場合には、前記診断部が正常であると判別し、一致しないと判別した場合には前記診断部が異常であると判断する第1ステップと、前記PWM信号生成部に設定された前記生成条件と異なる条件を前記診断部に設定し、前記診断部が、前記生成されたPWM信号が前記異なる条件に応じたPWM信号と一致すると判断した場合には、前記診断部が異常であると判別し、一致しないと判断した場合には前記診断部が正常であると判別する第2ステップとを有する判別方法。特許文献1乃至3の技術であれば、上記機器に組み込まれる部品に要求されていた従来の信頼性を十分に満足することができたかもしれない。しかしながら、近年更なる信頼性の向上が求められていることと、今後も今以上に高い信頼性が求められる可能性が高いことから、更なる詳細な故障診断のための技術が必要であると本願発明者は考えた。例えば自動車には多くのモータが使われており、その制御にはマイコンが用いられる。モータの駆動制御の方式の1つとしてPWM方式がある。PWM方式では、マイコンがモータの回転数に対して十分短い周期のパルス信号を与え、そのパルス幅を変化させることによって供給エネルギーをコントロールする。例えば、マイコンに搭載されている中央処理装置CPUは制御対象であるモータに供給するエネルギーの目標値が決まると、それに応じたPWMパルス信号のパルス周期とパルス幅を計算し、マイコンに搭載されているPWMタイマ内のレジスタに算出したパルス周期とパルス幅を設定する。そして、PWMタイマは設定値に応じたPWMパルス信号を出力する。自動車用のマイコンでは、このPWMパルス信号が正しく出力されているか否かを検査したいというニーズがある。このニーズに対し、仮に、自動車用マイコンに特許文献1の技術を適用すれば、PWMタイマ内のカウンタ回路の異常を検出することは可能である。しかしながら、特許文献1の技術では、出力されたPWMパルス信号のパルス周期とパルス幅が設定された通りになっているか等を検査することができず、故障検査としては不十分である。そこで、本願発明者は本願発明に先立って、PWMタイマの故障診断の方法について検討を行った。図19は、本願発明者が先立って検討したPWMタイマの診断機能を有するマイクロコントローラの一例を示すブロック図である。同図のマイクロコントローラ200において、PWMタイマ81は、CPU11によって設定されたパルス周期とパルス幅に応じたPWM信号を生成する信号生成部82と、生成したPWM信号の立ち上がりエッジ及び立ち下がりエッジを検出するパルス検出部83と、を備える。信号生成部82は、カウンタCNTR823によって、クロック発生回路CPG16から入力されたクロック信号CLKをカウントする。信号生成部82のレジスタREG_PRD821及びレジスタREG_PW822に設定されるパルス周期とパルス幅は、前記カウンタ823のカウント値と比較される値が設定される。信号生成部82のパルス発生回路PG820は、前記カウンタ823のカウント値と、前記レジスタ821、822に設定されたパルス周期とパルス幅に基づいてPWM信号210を生成して出力する。パルス検出部83は、信号生成部82から出力されたPWM信号210の立ち上がりエッジを検出したときのカウント値と、立ち下がりエッジを検出したときのカウント値をレジスタ811、812に保持し、立ち上がりエッジを検出したら割り込み発生回路INT_CNT813によって割り込み信号を発生させてCPU11に通知する。CPU11はその通知を受けとると、パルス検出部83内のレジスタ811、812にアクセスし、立ち上がりエッジに係るカウンタ値と立ち下がりエッジに係るカウンタ値を取得する。そして、CPU11は取得したカウンタ値に基づいてパルス周期及びパルス幅を算出し、その算出結果が前記信号生成部82に設定したパルス周期及びパルス幅と一致するか否かを判定する。図20は、本願発明者が先立って検討したPWMタイマの診断機能を有するマイクロコントローラの別の一例を示すブロック図である。同図のマイクロコントローラ201は、前述の図19のマイクロコントローラ200とは異なり、PWM信号を生成するPWMタイマ84と、生成したPWM信号の立ち上がりエッジ及び立ち下がりエッジを検出するパルス検出部85とが、別個の回路モジュールとして構成される。PWMタイマ84は、前述の信号生成部82と同様の方法によりPWM信号211を生成して出力する。パルス検出部85は、前述のパルス検出部83と同様の方法により、PWM信号211の立ち上がりエッジを検出したときのカウント値と、立ち下がりエッジを検出したときのカウント値をレジスタREG_REDG811及びレジスタREG_FEDG812に保持し、立ち上がりエッジを検出したら割り込み信号を発生させてCPU11に通知する。そして、CPU11は取得したカウンタ値に基づいてパルス周期及びパルス幅を算出し、その算出結果が信号生成部84に設定したパルス周期及びパルス幅と一致するか否かを判定する。以上のように、図19に示されるマイクロコントローラ200と図20に示されるマイクロコントローラ201によれば、PWMタイマによって生成されたPWMパルス信号のパルス周期とパルス幅が設定通りになっているか否かを診断することができる。しかしながら、上記マイクロコントローラ200、201では、生成されたPWMパルス信号210、211のパルス幅及びパルス周期が前記信号生成部82、84の設定値と一致するか否かを判定するための処理をCPUが行うため、CPUによる処理負担が大きくなってしまう。本発明の目的は、PWMタイマを内蔵するマイクロコントローラにおけるCPUによる処理負担の増加を抑えつつ、PWMタイマのより詳細な故障診断を可能とする技術を提供することにある。本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。すなわち、本マイクロコントローラは、中央処理装置と、前記中央処理装置によって設定されたPWM信号の生成条件に応じてPWM信号を生成するPWM信号生成部と、前記生成されたPWM信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別する診断部と、を有する。本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。すなわち、本マイクロコントローラは、CPUによる処理負担の増加を抑えつつ、PWMタイマのより詳細な故障診断を可能とする。1.実施の形態の概要先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。1PWM信号の診断用の専用回路モジュールを備えるマイクロコントローラ本発明の代表的な実施の形態に係るマイクロコントローラ1~10は、中央処理装置11と、前記中央処理装置によって設定されたPWM信号の生成条件に応じてPWM信号を生成するPWM信号生成部200、21と、を有する。更に、前記マイクロコントローラは、前記PWM信号生成部によって生成されたPWM信号に基づいて該PWM信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記PWM信号のパルス周期及びパルス幅とを比較することにより、前記PWM信号生成部の診断を行う診断部を有する。この診断部は、例えば、前記PWM信号生成部によって生成されたPWM信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅とを比較することにより、前記PWM信号生成部の診断を行う診断部201、20、30、40としてもよい。これによれば、前記中央処理装置ではなく前記診断部が前記診断のための処理を行うから、前記中央処理装置の処理負担を増加させることなく、前記PWM信号生成部の故障判定を行うことができる。また、前記検出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅とを比較することすることで、前記PWM信号生成部のより詳細な故障判定を可能とする。2PWM信号の補正デューティ比0項1のマイクロコントローラにおいて、前記診断部40は、PWM信号のパルス幅がゼロになる前記生成条件が前記PWM信号生成部に設定された場合には、前記設定された生成条件のパルス周期よりも短い第1期間例えば、クロック信号CLKの1クロックサイクル分の期間だけハイレベルとなるように前記入力したPWM信号を補正するとともに、補正後のPWM信号190のパルス周期とパルス幅を検出して前記比較を行う。項2のマイクロコントローラでは、前記生成条件としてデューティ比0が設定された場合には信号の立ち上がりエッジが検出できるようにPWM信号を補正する。これにより、デューティ比0であってもパルスを検出することができるから、前記生成条件としてデューティ比0が設定された場合でも前記PWM信号生成部の故障判定を行うことができる。3PWM信号を補正デューティ比100項1又は2のマイクロコントローラにおいて、前記診断部40は、PWM信号のパルス幅とパルス周期とが一致する前記生成条件が前記PWM信号生成部に設定された場合には、前記設定された生成条件のパルス周期よりも短い第2期間例えば、クロック信号CLKの1クロックサイクル分の期間だけローレベルとなるように前記入力したPWM信号を補正するとともに、補正後のPWM信号190のパルス周期とパルス幅を検出して前記比較を行う。項3のマイクロコントローラでは、前記生成条件としてデューティ比100が設定された場合には信号の立ち下がりエッジが検出できるようにPWM信号を補正する。これにより、デューティ比100であってもパルスを検出することができるから、前記生成条件としてデューティ比100が設定された場合でも前記PWM信号生成部の故障判定を行うことができる。4デューティ比0のときの補正パルスの生成方法項2又は3のマイクロコントローラにおいて、前記診断部は、前記PWM信号生成部に設定された前記生成条件に応じて、入力された前記PWM信号を補正して出力するパルス補正部191と、前記パルス補正部から出力された信号の立ち上がりエッジと立ち下がりエッジを検出する検出部171と、前記検出したエッジに基づいて前記パルス補正部から出力された信号のパルス周期とパルス幅を算出し、算出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅を比較する比較部192と、を有する。前記パルス補正部は、PWM信号のパルス幅がゼロになる前記生成条件が前記PWM信号生成部に設定された場合には、1つ前のPWM信号の立ち上がりからパルス周期分の時間が経過したタイミング例えば、図10のクロックサイクル11のタイミングにおいて、前記第1期間だけハイレベルとなる第1信号仮想立ち上がりエッジ信号を生成し、前記第1信号と前記入力したPWM信号の論理和をとることで前記補正後のPWM信号を生成する。また、前記比較部は、PWM信号のパルス幅がゼロになる前記生成条件が前記PWM信号生成部に設定された場合には、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致し、且つ前記算出したパルス幅と前記第1期間に応じたパルス幅とが一致するならば、前記生成条件に応じたPWM信号が生成されていると判断し、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致せず、又は前記算出したパルス幅と前記第1期間に応じたパルス幅とが一致しないならば、前記生成条件に応じたPWM信号が生成されていないと判断する。これによれば、前記生成条件としてデューティ比0が設定された場合に、PWM信号を容易に補正することができ、且つ、前記PWM信号生成部の故障判定が容易となる。5デューティ比100のときの補正パルスの生成方法項4のマイクロコントローラにおいて、前記パルス補正部は、PWM信号のパルス幅とパルス周期とが一致する前記生成条件が前記PWM信号生成部に設定された場合には、前記入力されたPWM信号が立ち上がってから所定期間が経過したタイミング例えば、図11のクロックサイクル14のタイミングにおいて、前記第2期間だけハイレベルとなる第2信号仮想立ち下がりエッジ信号を生成し、前記第2信号の反転信号と前記入力したPWM信号の論理積をとることで前記補正後のPWM信号を生成する。また、前記比較部は、PWM信号のパルス幅とパルス周期とが一致する前記生成条件が前記PWM信号生成部に設定された場合には、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致し、且つ前記算出したパルス幅と、前記生成条件に応じたパルス幅を前記第2期間だけ短くしたパルス幅と、が一致するならば、前記生成条件に応じたPWM信号が生成されていると判断し、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致せず、又は前記算出したパルス幅と前記第2期間だけ短くしたパルス幅とが一致しないならば、前記生成条件に応じたPWM信号が生成されていないと判断する。これによれば、前記生成条件としてデューティ比100が設定された場合に、PWM信号を容易に補正することができ、且つ、前記PWM信号生成部の故障判定が容易となる。6診断部における生成条件を格納するレジスタ項1乃至3のいずれかのマイクロコントローラ3、4において、前記PWM信号生成部はパルス周期とパルス幅を含む前記生成条件を格納するための第1レジスタ152、153を有する。また、前記診断部は、前記第1レジスタに格納される前記生成条件を含む情報を格納するための第2レジスタ183、184を更に有する。更に、前記診断部30、40は、前記第2レジスタに格納された前記生成条件に基づいて前記判別を行う。項6のマイクロコントローラは、前記PWM信号生成部と前記診断部の夫々に前記生成条件を格納するためのレジスタを設けるから、前記診断部の信頼性をより向上させることができる。7生成条件をスヌープして取得して診断部のレジスタに格納項6のマイクロコントローラにおいて、前記診断部30、40、170は、前記中央処理装置による前記第1レジスタに対する前記生成条件の書き込みを監視し、前記中央処理装置が書き込む前記生成条件を取得して前記第2レジスタに格納する。これによれば、前記中央処理装置ではなく前記診断部が自ら前記第2レジスタに前記生成条件を書き込むから、前記中央処理装置の処理負担を増加させることがない。8スヌープ処理の詳細項7のマイクロコントローラにおいて、前記中央処理装置11と、前記PWM信号生成部21と、前記診断部30、40、170とは内部バス13を介して互いに接続される。前記中央処理装置は、前記第1レジスタに前記生成条件を書き込むとき、前記第1レジスタを示すアドレス値と前記生成条件に係るデータとを前記内部バス上に出力する。また、前記診断部は、前記内部バス上に出力されるアドレス値を監視し、出力されたアドレス値が前記第1レジスタを示すアドレス値である場合には、前記内部バス上に出力された前記生成条件に係るデータを取得して、前記第2レジスタに保持する。これによれば、前記診断部が前記第2レジスタに前記生成条件を書き込むことを容易に実現することができる。9PWM信号の出力端子と入力端子項1乃至3又は項6乃至8のいずれかのマイクロコントローラは、前記PWM信号生成部によって生成されたPWM信号を外部に出力するための第1端子POUTと、外部から信号を入力するための第2端子PINと、を更に有する。前記診断部は、前記第1端子に出力されるPWM信号と、前記第2端子を介して入力されるPWM信号とを前記判別対象のPWM信号として選択可能としてもよい。これによれば、例えば、前記第1端子と前記第2端子をマイクロコントローラの外部で電気的に接続することで、前記第1端子からPWM信号を出力する出力機能、及び前記第2端子から信号を入力する入力機能の異常も診断することが可能となる。10PWM信号生成部と診断部は同一モジュール項1乃至9のいずれかのマイクロコントローラ1において、前記PWM信号生成部200と前記診断部201とは、共通の回路モジュール15内に構成される。これによれば、例えば、前記PWM信号生成部を構成する要素回路と、前記診断部を構成する要素回路を供用できる可能性が高くなるので、前記PWM信号生成部及び前記診断部を含む回路モジュールの小面積化とコスト削減に資する。11PWM信号生成部と診断部は別モジュール項1乃至9のいずれかのマイクロコントローラ2~9において、前記PWM信号生成部21と前記診断部20、30、40とは、互いに別個の回路モジュールとして構成される。例えば、前記PWM信号生成部と前記診断部を別個の半導体チップで構成することにより、診断対象と診断主体との独立性を担保することができる。これにより、より高い信頼性を要求する安全規格に適合させることが可能となる。また、前記PWM信号生成部と前記診断部を同一の半導体チップ内に構成した場合であっても、夫々の回路ブロックを分離させて配置させることで、信頼性をより高めることが可能となる。12高速バスと低速バス項1乃至11のいずれかのマイクロコントローラ5~9は、第1バスクロック高速クロックで動作し、前記中央処理装置が接続される第1バス13と、前記第1バスクロックとは異なる第2バスクロック低速クロックで動作し、前記PWM信号生成部と前記診断部とが接続される第2バス52と、前記第1バスと前記第2バスとの間の通信を制御するためのバス制御部51と、を更に有する。前記第2バスクロックは、前記第1バスクロックよりも低い周波数とされる。これによれば、高速な処理が要求されない前PWM信号生成部等を前記中央処理装置の動作クロックよりも低速な動作クロックで動作させることで、消費電力を抑えることができる。13複数のPWMタイマ1個の診断部本発明の代表的な実施の形態に係る別のマイクロコントローラ7は、項1において、前記PWM信号生成部が、互いに異なる複数のPWM信号を生成するよう、複数の下位PWM信号生成部を含んで構成され、前記PWM信号生成部から出力された複数のPWM信号を入力し、入力した複数のPWM信号のうち何れかの信号を選択して出力する第1選択部を更に有し、前記診断部が、前記第1選択部から出力されたPWM信号を入力し、入力したPWM信号に基づいて該PWM信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記PWM信号のパルス周期及びパルス幅とを比較するマイクロコントローラである。より具体的に記述すれば、当該マイクロコントローラ7は、例えば、中央処理装置11と、前記中央処理装置によって設定されたPWM信号の生成条件に応じてPWM信号を生成する複数の下位PWM信号生成部21_1~21_Mと、前記下位PWM信号生成部から出力された複数のPWM信号を入力し、入力したPWM信号のうち何れかの信号を選択して出力する第1選択部55と、を有する。また、前記マイクロコントローラは、前記第1選択部から出力されたPWM信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別する診断部20を有する。これによれば、項1と同様に、前記中央処理装置の処理負担を増加させることなく、前記PWM信号生成部のより詳細な故障判定を行うことができる。また、これによれば、複数のPWM信号が生成される場合であっても、1つの診断部によって選択的に診断を行うことができるから、生成されるPWM信号の数に応じて診断部を設ける必要がなく、マイクロコントローラの小面積化に資する。14PWM信号の出力端子と入力端子項13のマイクロコントローラは、前記PWM信号生成部によって生成された複数のPWM信号を外部に出力するための複数の第1端子POUT_1~POUT_Mと、前記第1選択部が入力するPWM信号を外部から受けるための第2端子PIN_1~PIN_Nとを更に有する。前記第1選択部は、前記第1端子に出力される複数のPWM信号のうち何れか1つのPWM信号を選択して第1PWM信号として出力するとともに、前記第2端子を介して入力された複数のPWM信号のうち何れか1つのPWM信号を選択して第2PWM信号として出力する。また、前記診断部は、前記第1PWM信号と前記第2PWM信号とを前記判別対象のPWM信号として選択可能としてもよい。これによれば、例えば、前記第1端子と前記第2端子をマイクロコントローラの外部で電気的に接続することで、前記第1端子からPWM信号を出力する出力機能、及び前記第2端子から信号を入力する入力機能の異常も診断することが可能となる。151個のPWMタイマ複数の診断部本発明の代表的な実施の形態に係る別のマイクロコントローラ8は、項1において、前記PWM信号生成部から出力されたPWM信号を入力し、入力したPWM信号に基づいて該PWM信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記PWM信号のパルス周期及びパルス幅とを比較する機能を有し、前記診断部とは異なる他の診断部を更に有するマイクロコントローラである。より具体的に記述すれば、当該マイクロコントローラ8は、中央処理装置11と、前記中央処理装置によって設定されたPWM信号の生成条件に応じてPWM信号を生成するPWM信号生成部21と、を有する。また、前記マイクロコントローラは、前記PWM信号生成部から出力されたPWM信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別する複数の診断部20_1~20_Nを有する。これによれば、項1と同様に、前記中央処理装置の処理負担を増加させることなく、前記PWM信号生成部のより詳細な故障判定を行うことができる。また、これによれば、1つのPWM信号を複数の診断部によって診断することができるから、診断結果の信頼度が向上する。16PWM信号の出力端子と入力端子項15のマイクロコントローラは、前記PWM信号生成部によって生成されたPWM信号を外部に出力するための第1端子POUTと、外部から信号を入力するための複数の第2端子PIN_1~PIN_Nと、を有する。また、前記マイクロコントローラは、前記複数の第2端子から入力されたPWM信号を入力し、入力したPWM信号のうち何れか1つの信号を選択して1つの前記診断部に出力する選択回路622_1~622_Nを前記診断回路に対応して複数有する第1選択部62と、を更に有する。夫々の前記診断部は、前記第1端子に出力されるPWM信号と、対応する前記選択回路で選択された信号とを前記判別対象のPWM信号として選択可能としてもよい。これによれば、例えば、前記第1端子と前記第2端子をマイクロコントローラの外部で電気的に接続することで、前記第1端子からPWM信号を出力する出力機能、及び前記第2端子から信号を入力する入力機能の異常も診断することが可能となる。17複数のPWMタイマ複数の診断部本発明の代表的な実施の形態に係る別のマイクロコントローラ9は、項1において、前記PWM信号生成部が、互いに異なるmmは2以上の整数個のPWM信号を生成するよう、前記m個の下位PWM信号生成部を含んで構成され、前記PWM信号生成部から出力された複数のPWM信号を入力し、入力した複数のPWM信号のうち何れかの信号を選択して出力する第1選択部を更に有し、前記診断部が、前記第1選択部から出力されたPWM信号を入力し、入力したPWM信号に基づいて該PWM信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記PWM信号のパルス周期及びパルス幅とを比較するnnは1以上の整数個の下位診断部を含んで構成されるマイクロコントローラである。より具体的に記述すれば、当該マイクロコントローラ9は、中央処理装置11と、前記中央処理装置によって設定されたPWM信号の生成条件に応じてPWM信号を生成するmmは1以上の整数個の下位PWM信号生成部21_1~21_Mと、前記下位PWM信号生成部から出力された複数のPWM信号164_1~164_M、165_1~165_Nを入力し、入力したPWM信号のうち何れかの信号を選択して出力する第1選択部65と、有する。また、前記マイクロコントローラは、前記第1選択部から出力されたPWM信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別するnnは1以上の整数個の下位診断部20_1~20_Nと、を有する。これによれば、項1と同様に、前記中央処理装置の処理負担を増加させることなく、前記PWM信号生成部のより詳細な故障判定を行うことができる。また、これによれば、前記PWM信号生成部と前記診断部の夫々の個数に応じて診断対象と診断主体の組み合わせを自由に決定することができるから、設計の自由度が増す。18PWM信号の出力端子と入力端子項17のマイクロコントローラは、前記生成されたm個のPWM信号を外部に出力するためのm個の第1端子POUT_1~POUT_Mと、前記第1選択部に入力するPWM信号を外部から受けるための複数の第2端子PIN_1~PIN_Nとを更に有する。前記第1選択部は、1つの前記診断部に対し、前記第1端子に出力されるm個のPWM信号のうち何れか1つのPWM信号を選択して第1PWM信号として出力するとともに前記第2端子を介して入力された複数のPWM信号のうち何れか1つのPWM信号を選択して第2PWM信号として出力する選択回路651_1~651_N、652_1~652_Nを、前記診断部に対応してn個有する。また、夫々の前記診断部は、前記第1端子に出力されるPWM信号と、対応する前記選択回路で選択された信号とを前記判別対象のPWM信号として選択可能としてもよい。これによれば、例えば、前記第1端子と前記第2端子をマイクロコントローラの外部で電気的に接続することで、前記第1端子からPWM信号を出力する出力機能、及び前記第2端子から信号を入力する入力機能の異常も診断することが可能となる。19制御装置本発明の代表的な実施の形態に係る制御装置104は、モータを制御するための制御装置である。前記制御装置は、モータを駆動するためのPWM信号を生成するとともに、生成したPWM信号が異常である場合には外部端子EOUTからエラー信号を出力するマイクロコントローラ10と、前記生成されたPWM信号に基づいて、モータ101を駆動するためのドライバ105と、前記エラー信号を受けてモータの異常動作を防止するため処理を行う安全装置106と、を有する。前記マイクロコントローラは、中央処理装置11と、前記中央処理装置によって設定された生成条件に応じてPWM信号を生成するPWM信号生成部200、21と、前記生成されたPWM信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別する診断部201、20、30、40と、を有する。更に前記マイクロコントローラは、前記判別結果に応じて前記エラー信号を前記外部端子に出力する。これによれば、項1と同様に、前記マイクロコントローラ内の前記中央処理装置の処理負担を増加させることなく、前記PWM信号生成部の故障判定を行うことができる。また、前記検出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅とを比較するという、より詳細な故障判定が可能となるから、モータ制御の安全性をより高めることができる。20診断部自身の診断方法本発明の代表的な実施の形態に係る判別方法は、設定された生成条件に応じてPWM信号を生成するPWM信号生成部200、21と、前記PWM信号生成部によって生成されたPWM信号が、自らに設定された条件に応じたパルス周期とパルス幅を持つ信号であるか否かを判別する診断部201、20、30、40とを有するマイクロコンピュータ1~9の前記診断部が正常であるか否かを判別するための判別方法である。前記判別方法は、前記PWM信号生成部に設定された前記生成条件第1生成条件と等価な条件第1生成条件を前記診断部に設定し、前記診断部が、前記生成されたPWM信号が前記等価な条件に応じたPWM信号と一致すると判別した場合には、前記診断部が正常であると判別し、一致しないと判別した場合には前記診断部が異常であると判断する第1ステップS105~S107を有する。更に、前記判別方法は、前記PWM信号生成部に設定された前記生成条件第1生成条件と異なる条件第2生成条件を前記診断部に設定し、前記診断部が、前記生成されたPWM信号が前記異なる条件に応じたPWM信号と一致すると判断した場合には、前記診断部が異常であると判別し、一致しないと判断した場合には前記診断部が正常であると判別する第2ステップS108、S109を有する。これによれば、前記診断部自身が正常に動作するか否かを容易に判別することができる。また、PWM信号生成部に設定する生成条件と等価な条件を設定する前記第1ステップと、PWM信号生成部に設定する生成条件と異なる条件を設定する前記第2ステップの2つのステップで診断を行うので、前記診断部に対する診断の精度を上げることができる。これにより、PWM信号生成部の信頼性だけでなく、診断部の信頼性をも向上させることができる。2.実施の形態の詳細実施の形態について更に詳述する。≪実施の形態1≫図1は、PWMタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図に示されるマイクロコントローラMCU1は、例えば、CPU11、メモリMRY12、内部バス13、割り込みコントローラINT_CNT14、PWMタイマ15、及びクロック発生回路CPG16と、その他図示されない周辺回路モジュールから構成される。CPU11は、メモリ12等に格納されたプログラムに係る命令を実行し、演算やデータ転送などの処理を行うプロセッサである。メモリ12は、CPU11が実行するプログラム、及び当該プログラム処理によって算出されたデータを記憶するための記憶領域を備える。割り込みコントローラ14はPWMタイマ15等の周辺回路モジュールからの割り込み要求を受け取り、受け取った割り込み要求の中から最も優先順位の高いものを選択し、専用線18を介してCPU2に割り込み信号を出力する。クロック発生回路16は、例えば外部端子を介して水晶発振器で生成された外部クロック信号EX_CLKを入力し、入力した外部クロック信号EX_CLKに基づいて精度の高いクロック信号CLKを生成してマイクロコントローラ1内の各回路モジュールに供給する。PWMタイマ15は、PWM信号を生成する信号生成機能部200と、PWM信号の診断を行う診断機能部201とを備える。初めに、信号生成機能について説明する。PWMタイマ15は、信号生成機能部200として、例えば、制御レジスタREG_CNT151、パルス周期レジスタREG_PRD152、パルス幅レジスタREG_PW153、パルス幅バッファ154、パルス発生回路PG156、及びカウンタCNTR157を有する。例えば、CPU11が内部バス13を経由して上記レジスタ151~153にPWM信号の生成条件を設定すると、パルス発生回路156が、カウンタ157によってカウントされたクロック信号CLKのカウント値C_VALと、設定された生成条件とに基づいてPWM信号164が生成する。制御レジスタ151は、例えば、パルス発生回路156がPWM信号の出力を行うか否かを示す情報以下、パルス出力制御情報、とも称する。と、後述する診断対象のPWM信号を指定するための選択情報以下、パルス選択情報、とも称する。と、後述する診断結果がエラーであった場合に割り込みを発生させる否かを示す情報以下、割り込み発生制御情報、とも称する。と、後述する比較回路161によって比較処理を行うか否かを示す情報以下、比較処理制御情報、とも称する。と、がCPU11によって設定される。パルス周期レジスタ152は、例えば、生成すべきPWM信号のパルス周期を示す情報がCPU11によって設定される。また、パルス幅レジスタ153は、例えば、生成すべきPWM信号のパルス幅を示す情報がCPU11によって設定される。パルス周期レジスタ152及びパルス幅レジスタ153に設定される値は、例えば、カウンタ157によってカウントされるカウント値と比較される値である。ここで、パルス周期レジスタ152に設定された値は、その時点で出力中のPWM信号のパルス周期を指定するものとする。また、パルス幅レジスタ153に設定された値は、次に出力されるPWM信号が出力されるタイミングでパルス幅バッファ154に書き込まれるものとし、パルス幅バッファ154に書き込まれた値は、その時点で出力中のPWM信号のパルス幅を指定するものとする。パルス幅バッファ154は、前記パルス幅レジスタ153に設定されたパルス幅のPWM信号を出力するタイミングを調整するためにバッファであり、前記パルス幅レジスタ153の値が設定される。パルス幅バッファ154の詳細については後述する。制御レジスタ151、パルス周期レジスタ152、及びパルス幅レジスタ153の値は、パルス発生回路156、比較回路161、及び割り込み発生回路163に出力される。カウンタ157は、クロックCLKをカウントし、そのカウント値C_VALはPWM信号のパルス周期およびパルス幅を決定するために使用される。パルス発生回路156は、カウンタ157のカウンタ値C_VALを監視する。パルス発生回路156は、パルス幅バッファ154の値がゼロデューティ比0でなく、且つカウンタ値C_VALがパルス周期レジスタ152に設定された値と一致したら、次のクロック信号CLKの立ち上がりタイミングでPWM信号164の信号レベルをハイHighレベルに変化させるとともに、パルス幅バッファ154に書き込み信号を出力してパルス幅レジスタ153の値を書き込ませる。このとき、パルス発生回路156は更に、カウンタ157にリセット信号を出力してカウンタ値C_VALを初期値1にする。その後、パルス発生回路156はカウンタ値C_VALがパルス幅バッファ154の値に一致したら、クロック信号CLKの次の立ち上がりタイミングでPWM信号164の信号レベルをローLowレベルに変化させる。なお、パルス幅として設定できる値はゼロからパルス周期の値までである。パルス幅がゼロである場合にはPWM信号164は1周期の間全てローレベルの信号デューティ比0となり、パルス幅がパルス周期と同じ値である場合には1周期の間全てハイレベルの信号デューティ比100となる。PWM信号164の具体的に生成方法について、図2を用いて詳細に説明する。図2は、PWMタイマ15の動作タイミングの一例を示すタイミングチャートである。同図において、制御レジスタ151にはパルス出力を行う設定がなされているとする。同図では、理解を容易にするため、パルス幅の異なる2つのPWM信号のパルス周期が極めて短い値とした場合を示しているが、これに限られない。例えば、実動作ではクロック信号CLKの周波数を20MHzとすると、PWM信号164は20kHz程度のパルス周期であり、1000サイクルとなる。なお、同図ではクロック信号CLKにクロックサイクルを表す番号を付している。同図において、内部バス13に出力される信号は、レディ信号RDY、コマンド信号CMD、アドレス信号A、及びライトデータWDである。例えば、前記レディ信号RDYはバスコマンドCMDが有効か無効かを示し、有効な場合は1High、無効な場合は0Lowとなる。バスコマンドCMDはCPU11のアクセスの種類を示し、Wは書き込み命令、Nは何もしないことを示す命令NOP:NoOperationを表す。アドレスAはCPU11がアクセスする対象であるレジスタやメモリのアドレスである。ライトデータWDはアドレスAで指定したレジスタ等に書き込むデータである。同図に示されるように、クロックサイクル1において、CPU11は内部バス13にライトコマンドWとアドレスA1を出力する。アドレスA1は、パルス周期レジスタ152のアドレスである。次のクロックサイクル2でCPU11はライトデータD1を出力する。そして、クロックサイクル3においてライトデータD1がパルス周期レジスタ152に書き込まれると、カウンタ157がカウントを開始する。また、クロックサイクル3においてCPU11は内部バス13にライトコマンドWとアドレスA2を出力する。アドレスA2は、パルス幅レジスタ153のアドレスである。次のクロックサイクル4でCPU11はライトデータD2を出力し、クロックサイクル5においてライトデータD2がパルス幅レジスタ153に書き込まれる。また、クロックサイクル7においてもCPU11によるパルス幅レジスタ153へのライトアクセスが行われ、ライトデータD3=3が書き込まれる。パルス発生回路156は、クロックサイクル6でカウンタ157の値がパルス周期レジスタ152の値D1=4と一致すると、次のクロックサイクル7でPWM信号154の信号レベルをハイレベルにするとともに、カウンタ157を初期値1にリセットし、パルス幅レジスタ153の値D2=2をパルス幅バッファ154に書き込む。その後、クロックサイクル8において、カウンタ157の値がパルス幅バッファ154の値2と一致すると、パルス発生回路156はPWM信号164の信号レベルをローレベルにする。仮に、パルス発生回路156がパルス幅バッファ154ではなく前記パルス幅レジスタ153に基づいてパルス幅を決定すると、PWM信号が立ち下がるタイミングより前のタイミングで前記パルス幅レジスタ153に書き込みが行われた場合には、出力中のPWM信号のパルス幅としてパルス幅レジスタ153の値が反映されるが、パルスの立ち下がるタイミングより後に書き込みが行われた場合には、その時点で出力中のPWM信号のパルス幅としてパルス幅レジスタ153の値を反映することができない。すなわち、CPU11がパルス幅レジスタ153に書き込みを行うタイミングとパルスの立ち下がりのタイミングが前後することにより、パルス幅レジスタ153に設定された値がPWM信号に反映されない場合がある。このような現象が生じるのを防ぐために、PWMタイマ15では、パルス幅レジスタ153の値を次のパルス周期の開始されるタイミング例えば、図2におけるクロックサイクル7及びクロックサイクル11でパルス幅バッファ154に書き込み、パルス幅バッファ154に設定された値に基づいてPWM信号のパルス幅を決定する。その後、クロックサイクル10においてカウンタ157の値がパルス周期レジスタ152の値4と一致すると、次のクロックサイクル11においてPWM信号164の信号レベルをハイレベルにするとともに、カウンタ154を初期値1にリセットし、パルス幅レジスタ153の値D3=3をパルス幅バッファ154に書き込む。そして、クロックサイクル13において、カウンタ157の値がパルス幅バッファ154の値3と一致すると、次のクロックサイクル14においてパルス発生回路156はPWM信号164の信号レベルをローレベルにする。以上の処理を繰り返す行うことにより、PWMタイマ15はCPU11によって設定されたPWM信号の生成条件にしたがってPWM信号を生成する。次に、PWMタイマ15の診断機能について説明する。PWMタイマ15は、診断機能部201として、例えば、フリップフロップ回路FF158、パルス選択回路SLCTR159、エッジ検出回路DTCT_EDG160、比較回路CMP161、状態レジスタREG_ST162、及び割り込み発生回路INT163を有する。パルス選択回路159は、入力したPWM信号から診断対象のPWM信号を選択してエッジ検出回路160に出力する。例えばパルス選択回路159は、パルス生成回路156から出力されたPWM信号164と、外部入力端子PINから入力された外部PWM信号165とを入力し、いずれかのPWM信号を選択して出力する。どちらのPWM信号を選択するかは、例えば、制御レジスタ151に設定された前記パルス選択情報に応じて決定される。エッジ検出回路160は、パルス選択回路159によって選択されたPWM信号166の立ち上がりエッジ及び立ち下がりエッジを検出し、エッジ検出信号を出力する。フリップフロップ回路158はカウンタ値C_VALをクロック信号CLKの1サイクル分遅らせたカウンタ値以下、カウンタ遅延値、とも称する。CD_VALを出力する。比較回路161は、エッジ検出回路160からのエッジ検出信号に応じて、立ち上がりエッジが検出されたときのFF158のカウンタ遅延値CD_VALと、立ち下がりエッジが検出されたときのフリップフロップ回路158のカウンタ遅延値CD_VALとを取り込む。そして、立ち上がりエッジが検出されたときのフリップフロップ回路158の値と前記パルス周期レジスタ152の値とを比較して一致するか否かを判別するとともに、立ち下がりエッジが検出されたときのフリップフロップ回路158の値と前記パルス幅レジスタ153に設定された値とを比較して一致するか否かを判別する。その判別の結果は、状態レジスタ162に出力される。状態レジスタ162は、比較回路161が不一致を検出したか否かを示す故障検出ビットを備える。例えば、比較回路161がパルス周期又はパルス幅の不一致を検出した場合には、エラーを示す値を保持し、その後もその値を保持し続ける。割り込み発生回路163は、状態レジスタ162を監視し、状態レジスタ162にエラーを示す情報が設定されたら、割り込みコントローラ14に対して割り込み要求を発行する。比較回路161がパルス周期又はパルス幅の不一致を検出した場合に割り込みを発生させるか否かは、制御レジスタ151に設定された前記割り込み発生制御情報にしたがって決定される。PWM信号の診断に係る動作タイミングについて、前述の図2を用いて詳細に説明する。同図では、一例として、パルス選択回路159がPWM信号164を選択して出力するものとする。図2に示されるように、クロックサイクル9においてエッジ検出回路160がPWM信号164の立ち下がりエッジを検出すると、比較回路161はカウンタ遅延値CD_VAL=2とパルス幅バッファ153の値とを比較する比較処理C1を行う。すなわち、パルスの立ち上がりのタイミングとカウンタ157によるカウント開始のタイミングを合わせていること、及びカウント値C_VALを遅延させたカウント遅延値CD_VALを生成することにより、立ち下がりエッジのタイミングにおけるカウンタ遅延時CD_VALの値をPWM信号164のパルス幅の値として読み取ることができる。したがって、当該タイミングで読み取ったカウント遅延値CD_VALとパルス幅バッファ153の値とを比較することで、設定通りのパルス幅のPWM信号が生成されているか否かを判別することができる。その後、クロックサイクル11においてエッジ検出回路160がPWM信号164の立ち上がりエッジを検出すると、カウンタ遅延値CD_VALとパルス周期レジスタ152の値を比較する比較処理C2を行う。すなわち、前述したように、パルスの立ち上がりのタイミングとカウンタ157によるカウント開始のタイミングを合わせていること、及びカウント値C_VALを遅延させたカウント遅延値CD_VALを生成することにより、立ち上がりエッジのタイミングにおけるカウンタ遅延時CD_VALの値をPWM信号164のパルス周期の値として読み取ることができる。したがって、当該タイミングで読み取ったカウント遅延値CD_VALとパルス周期レジスタ152の値とを比較することで、設定通りのパルス周期のPWM信号が生成されているか否かを判別することができる。同様の方法により、クロックサイクル14においてパルス幅の比較の処理C3が行われ,クロックサイクル15においてパルス周期の比較の処理C4が行われる。以上実施の形態1に係るマイクロコントローラ1によれば、PWM信号のパルス幅とパルス周期を検出することにより、PWM信号がCPU11によって設定された生成条件通りに生成されているか否かを診断することができ、PWMタイマ15の詳細な故障診断が可能となる。また、CPU11ではなくエッジ検出回路160や比較回路161等によって前記診断のための処理を実現するから、CPU11の処理負担を増加させることなく、PWMタイマ15の故障判定を行うことができる。またマイクロコントローラ1によれば、例えば、外部出力端子POUTと外部入力端子PINをマイクロコントローラ1の外部で電気的に接続することで、パルス発生回路156で生成したPWM信号164を、外部入力端子PINを介して入力し、入力したPWM信号の診断を行うことも可能である。これによれば、外部出力端子POUTからPWM信号164を出力する出力機能と、外部入力端子PINからPWM信号を入力する入力機能が正常であるか否かの診断も行うことができる。マイクロコントローラ1によれば、PWM信号のエラーを検出したときに割り込みを発生させるか否かを、制御レジスタ151の前記割り込み発生制御情報によって決定することができるから、システム設計の自由度が増す。例えば、割り込み要求を発生させない設定にすることで、CPU11がPWM信号のエラーが検出されたときには実行中の処理を中断せず、その処理が完了してから前記エラー検出に応じた処理を行うようなシステムとすることが可能となる。この場合、例えば、CPU11が定期的に状態レジスタ162をアクセスしてその値を監視するように設計すればよい。更に、マイクロコントローラ1は、PWM信号を生成する機能部とPWM信号を診断する機能部とがPWMタイマ15内に構成されるので、PWM信号を生成する機能部とPWM信号を診断する機能部との間で回路を供用することができる。例えば、PWM信号を診断する機能部は、パルス周期レジスタ152、パルス幅レジスタ153、及びパルス幅バッファ154の値を診断のためのリファレンスとして利用することができるので、別途、前記生成条件を設定するためのレジスタ等を設ける必要がない。同様に、PWM信号を生成するための基準となるカウンタ157のカウント値C_VALを利用してカウンタ遅延値CD_VALを生成することで、診断機能のために別途、カウンタを設ける必要がない。したがって、マイクロコントローラ1によれば、既存のPWMタイマ15に診断機能を追加したことによるチップ面積の増加を抑えることができる。特にPWMタイマ15を新規設計する場合に、有効な手段と言える。≪実施の形態2≫図3は、実施の形態2に係る、PWMタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。実施の形態1では、PWMタイマ15がPWM信号を生成する機能部とPWM信号を診断する機能部とを備える構成としたが、実施の形態2では、PWM信号を診断する機能部をPWMタイマから独立した別の回路モジュールとする。図3に示されるように、マイクロコントローラ2は、PWMタイマ21に加え、PWM信号診断部20を有する。なお、同図において、図1のマイクロコントローラ1と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。PWM信号診断部20は、パルス選択回路SLCTR159、カウンタCNTR172、エッジ検出回路DTCT_EDG171、立ち上がりエッジレジスタREG_REDG173、比較回路CMP176、状態レジスタREG_ST162、制御レジスタREG_CNT174、及び割り込み発生回路INT163を有する。制御レジスタ174には、前記パルス選択情報と、前記割り込み発生制御情報と、前記比較処理制御情報とが、内部バス13を介してCPU11によって設定される。なお、PWMタイマ21内の制御レジスタ151には、前記パルス出力制御情報が設定される。カウンタ172はPWMタイマ21のカウンタ157とは独立してクロック信号CLKをカウントする。カウンタ172は、カウンタ157と同様にPWM信号164の1周期毎に初期化するカウンタでもよいが、ここでは、初期化を行わないフリーランニングカウンタとする場合を例示する。パルス選択回路159は、制御レジスタ174に設定された前記パルス選択情報に応じたPWM信号を選択し、エッジ検出回路171に与える。エッジ検出回路171は、パルス選択回路159によって選択されたPWM信号166の立ち上がりエッジ及び立ち下がりエッジを検出する。エッジ検出回路171は、選択されたPWM信号の立ち下がりエッジを検出すると、立ち上がりエッジレジスタ173に対してカウンタ172のカウント値CF_VALの書き込みを指示するとともに、比較回路176に対して比較処理の実行を指示する。また、エッジ検出回路171は、選択されたPWM信号の立ち上がりエッジを検出した場合も同様に、比較回路176に対して比較処理の実行を指示する。立ち上がりエッジレジスタ173は、エッジ検出回路171からの書き込みの指示に応じて、そのときのカウント値CF_VALを保持する。比較回路176は、エッジ検出回路171が立ち上がりエッジを検出したときに出力する比較処理の実行の指示を受けとると、そのときのカウンタ172のカウント値CF_VALと、立ち上がりエッジレジスタ173の値を取得し、取得した値に基づいてPWM信号166のパルス周期を算出するとともに、算出したパルス周期の値とPWMタイマ21におけるパルス周期レジスタ152の値を比較し、比較の結果を状態レジスタ162に出力する。パルス周期の算出は、例えば、立ち上がり時に取得したカウント値CF_VALから前記立ち上がりエッジレジスタ173の値を減算することにより行う。また、比較回路176は、エッジ検出回路171による立ち下がりエッジ検出時の比較処理の実行の指示を受けると、そのときのカウンタ172のカウント値CF_VALと、立ち上がりエッジレジスタ173の値を取得し、取得した値に基づいてPWM信号166のパルス幅を算出するとともに、算出したパルス幅の値とPWMタイマ21におけるパルス幅バッファ154の値を比較し、比較の結果を状態レジスタ162に出力する。パルス幅の算出は、例えば、立ち下がり時に取得したカウント値CF_VALから前記立ち上がりエッジレジスタ173の値を減算することにより行う。なお、比較回路176が比較処理を行うか否かは、制御レジスタ174に設定された前記比較処理制御情報にしたがって決定される。状態レジスタ162は、実施の形態1と同様に、比較回路176がパルス周期又はパルス幅の不一致を検出した場合には、エラーを示す値を保持し、その後もその値を保持し続ける。割り込み発生回路163は、状態レジスタ162を監視し、状態レジスタ162にエラーを示す情報が設定されたら、割り込みコントローラ14に対して割り込み要求17を発行する。パルス周期又はパルス幅の不一致を検出した場合に割り込みを発生させるか否かは、制御レジスタ174に設定された前記割り込み発生制御情報にしたがって決定される。図4は、PWMタイマ21とPWM信号診断部20の動作タイミングの一例を示すタイミングチャートである。同図では、前述の図2と同様に、制御レジスタ151にはパルス出力を行う設定がなされているものとし、パルス選択回路159がPWM信号164を選択して出力するものとする。なお、同図ではクロック信号CLKにクロックサイクルを表す番号を付している。同図において、PWM信号164の生成タイミングは図2と同様である。クロックサイクル7において、エッジ検出回路171がPWM信号164の立ち上がりエッジを検出すると、次のクロックサイクル8において、立ち上がりエッジレジスタ173にカウンタ172のカウント値CF_VAL=42が書き込まれる。その後、クロックサイクル9において、エッジ検出回路171がPWM信号164の立ち下がりエッジを検出すると、比較回路176はパルス幅を算出するとともに、算出結果とパルス幅バッファ154の値と比較する比較処理C1を行う。同図の場合、立ち下がりエッジ検出時のカウンタ値CF_VAL=44から前記立ち上がりエッジレジスタ173の値=42を減算した値=2がPWM信号164のパルス幅の値となり、パルス幅バッファ154の値D2=2と一致する。その後、クロックサイクル11において、エッジ検出回路171がPWM信号164の立ち上がりエッジを検出すると、比較回路176はパルス周期を算出するとともに、算出結果とパルス周期レジスタ152の値と比較する比較処理C2を行う。同図の場合、立ち上がりエッジ検出時のカウンタ値CF_VAL=46から前記立ち上がりエッジレジスタ173の値=42を減算した値=4がPWM信号164のパルス周期の値となり、パルス周期レジスタ152の値D1=4と一致する。また、エッジ検出回路171がPWM信号164の立ち上がりエッジを検出した次のクロックサイクル12において、立ち上がりエッジレジスタ173にカウンタ172のカウント値CF_VAL=46が書き込まれる。同様の方法により、クロックサイクル14においてパルス幅の比較の処理が行われ,クロックサイクル15においてパルス周期の比較の処理が行われる。以上実施の形態2に係るマイクロコントローラ2によれば、実施の形態1と同様に、CPU11の処理負担を増加させることなく、PWMタイマ21のより詳細な故障判定を行うことができる。また、マイクロコントローラ2はPWMタイマ21から独立した回路モジュールとしてPWM診断回路20を備えるから、既存の設計資産を用いてPWMタイマ21を設計した場合であっても、PWMタイマ部分の改造が少なくて済むという利点がある。また、PWMタイマ21とPWM診断回路20を同一の半導体チップ内に構成した場合、夫々の回路ブロックを分離させて配置させることで、信頼性をより高めることが可能となる。仮にPWMタイマ21とPWM診断回路20を別個の半導体チップで構成した場合、診断対象と診断主体との独立性を担保することができるから、より高い信頼性を要求する安全規格に適合させることが可能となる。≪実施の形態3≫図5は、実施の形態3に係る、PWMタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ1及び2と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。同図に示されるマイクロコントローラ3は、PWM診断部30の内部に、PWM信号の診断に利用するPWM信号の生成条件の情報を格納するためのレジスタを備える。PWM信号診断部30は、パルス選択回路SLCTR159、カウンタCNTR172、エッジ検出回路DTCT_EDG171、立ち上がりエッジレジスタREG_REDG173、比較回路CMP186、レジスタ制御回路170、状態レジスタREG_ST162、制御レジスタREG_CNT174、スヌープレジスタREG_SNP_A181、スヌープレジスタREG_SNP_B182、パルス周期レジスタREG_PRD183、パルス幅レジスタREG_PW184、パルス幅バッファ185、及び割り込み発生回路INT163を有する。制御レジスタ174には、前記パルス選択情報、前記割り込み発生制御情報、及び前記比較処理制御情報に加え、後述するレジスタ制御部170によるスヌープ機能を有効にするか否かを示す情報以下、スヌープ制御情報、とも称する。が設定される。パルス周期レジスタ183は、PWMタイマ21のパルス周期レジスタ152に設定されるPWM信号のパルス周期を示す情報が設定される。パルス幅レジスタ184は、PWMタイマ21のパルス幅レジスタ153に設定されるPWM信号のパルス幅を示す情報が設定される。パルス周期レジスタ183及びパルス幅レジスタ184の設定は、例えば、レジスタ制御部170のスヌープ機能によって実現される。レジスタ制御回路170は、内部バス13上に出力されるアドレス値を監視し、出力されたアドレス値に対応するPWM診断部30内のレジスタに、前記内部バス13上に出力されたライトデータを書き込む。例えば、内部バス13上に制御レジスタ174のアドレス値が出力されたら、前記内部バス13上に出力されたライトデータを取得し、制御レジスタ174に書き込む。また、レジスタ制御部170はスヌープ機能を備える。具体的には、レジスタ制御部170は、スヌープレジスタ181、182に格納された値に応じたアドレス値が内部バス上13に出力されたら、内部バス13に出力されたライトデータを取得し、スヌープレジスタ181、182に対応づけられた所定のレジスタに前記取得したライトデータを書き込む。スヌープレジスタ181、182には、スヌープ対象のレジスタ等のアドレス値が設定される。例えば、スヌープレジスタ181にPWMタイマ21内のパルス周期レジスタ152のアドレス値が設定され、スヌープレジスタ181がパルス周期レジスタ183に対応づけられている場合、レジスタ制御部170は、内部バス13上にパルス周期レジスタ152のアドレス値が出力されたら、そのライトデータを取得し、取得したライトデータをパルス周期レジスタ183に書き込む。また、例えば、スヌープレジスタ182にPWMタイマ21内のパルス幅レジスタ153のアドレス値が設定され、スヌープレジスタ182がパルス幅レジスタ184に対応づけられている場合、レジスタ制御部170は、内部バス13上にパルス幅レジスタ153のアドレス値が出力されたら、そのライトデータを取得し、取得したライトデータをパルス周期レジスタ184に書き込む。これによれば、PWM信号の診断のために、CPU11がパルス周期レジスタ183及びパルス幅レジスタ184に前記生成条件を設定する必要がないから、PWM信号の診断に係るCPU11の処理負担の増加を抑えることができる。なお、レジスタ制御部170によるスヌープ機能を有効にするか否かは、制御レジスタ174に設定された前記スヌープ機能制御情報によって決定される。スヌープ機能を有効にしない場合には、例えば、パルス周期レジスタ183とパルス幅レジスタ184に固有のアドレスを割り当て、CPU11がそのアドレスを指定してアクセスできるようにすることも可能である。比較回路186は、エッジ検出回路171が立ち上がりエッジを検出したときに出力する比較処理の実行の指示を受けとると、そのときのカウンタ172のカウント値CF_VALと、立ち上がりエッジレジスタ173の値を取得し、取得した値に基づいてPWM信号166のパルス周期を算出するとともに、算出したパルス周期の値とパルス周期レジスタ183の値を比較し、比較の結果を状態レジスタ162に出力する。パルス周期の算出は、例えば、立ち上がり時に取得したカウント値CF_VALから前記立ち上がりエッジレジスタ173の値を減算することにより行う。また、比較回路186は、エッジ検出回路171が立ち下がりエッジを検出したときに出力する比較処理の実行の指示を受けとると、そのときのカウンタ172のカウント値CF_VALと、立ち上がりエッジレジスタ173の値を取得し、取得した値に基づいてPWM信号166のパルス幅を算出するとともに、算出したパルス幅の値とパルス幅バッファ185の値を比較し、比較の結果を状態レジスタ162に出力する。パルス幅の算出は、例えば、立ち下がり時に取得したカウント値CF_VALから前記立ち上がりエッジレジスタ173の値を減算することにより行う。図6は、PWMタイマ21とPWM診断部30の動作タイミングの一例を示すタイミングチャートである。同図では、前述の図2及び図4と同様に、制御レジスタ151にはパルス出力を行う設定がなされているものとし、パルス選択回路159がPWM信号164を選択して出力するものとする。また、PWM診断部308のスヌープレジスタ181にはPWMタイマ21のパルス周期レジスタ152のアドレスA1が書き込まれており、スヌープレジスタ182にはPWMタイマ21のパルス幅レジスタ153のアドレスA2が書き込まれているものとする。なお、同図ではクロック信号CLKにクロックサイクルを表す番号を付している。同図において、PWM信号164の生成タイミングは図2及び図4と同様である。クロックサイクル1において内部バス13上にコマンド信号W及びアドレスA1が出力されると、レジスタ制御部170は、次のクロックサイクル2で出力されたライトデータD1=4を取得して、クロックサイクル3においてパルス周期レジスタ183にライトデータD1を書き込む。また、クロックサイクル3において、内部バス13上にコマンド信号W及びアドレスA2が出力されると、レジスタ制御部170は、次のクロックサイクル4で出力されたライトデータD2=2を取得して、クロックサイクル5においてパルス幅レジスタ184にライトデータD2を書き込む。これにより、PWMタイマ21に設定された生成条件と同一の条件が、PWM信号診断部30に設定される。クロックサイクル7において、エッジ検出回路171がPWM信号164の立ち上がりエッジを検出すると、次のクロックサイクル8において、立ち上がりエッジレジスタ173にカウンタ172のカウント値CF_VAL=42が書き込まれるとともに、パルス幅バッファ185にパルス幅レジスタ183の値が書き込まれる。その後、クロックサイクル9において、エッジ検出回路171がPWM信号164の立ち下がりエッジを検出すると、比較回路186はパルス幅を算出するとともに、算出結果とパルス幅バッファ185の値と比較する比較処理C1を行う。同図の場合、立ち下がりエッジ検出時のカウンタ値CF_VAL=44から前記立ち上がりエッジレジスタ173の値=42を減算した値=2がPWM信号164のパルス幅の値となり、パルス幅バッファ185の値D2=2と一致する。その後、クロックサイクル11において、エッジ検出回路171がPWM信号164の立ち上がりエッジを検出すると、比較回路186はパルス周期を算出するとともに、算出結果とパルス周期レジスタ183の値と比較する比較処理C2を行う。同図の場合、立ち上がりエッジ検出時のカウンタ値CF_VAL=46から前記立ち上がりエッジレジスタ173の値=42を減算した値=4がPWM信号164のパルス周期の値となり、パルス周期レジスタ183の値D1=4と一致する。また、エッジ検出回路171がPWM信号164の立ち上がりエッジを検出した次のクロックサイクル12において、立ち上がりエッジレジスタ173にカウンタ172のカウント値CF_VAL=46が書き込まれる。同様の方法により、クロックサイクル14においてパルス幅の比較の処理が行われ、クロックサイクル15においてパルス周期の比較の処理が行われる。以上実施の形態3に係るマイクロコントローラ3によれば、実施の形態1、2と同様に、CPU11の処理負担を増加させることなく、PWMタイマ21のより詳細な故障判定を行うことができる。また、マイクロコントローラ3は、PWM信号診断部30内にパルス周期レジスタ183、パルス幅レジスタ184、及びパルス幅バッファ185を備えることで、PWMタイマ21が備えるパルス周期レジスタ152、パルス幅レジスタ153、及びパルス幅バッファ154と独立してPWM信号の期待値を持つことができる。これにより、実施の形態2に係るPWM信号診断部20よりも更に信頼性を向上させることができる。独立したPWM信号診断部30内に上記レジスタ183~185を設けたことにより、CPU11による当該レジスタ183~185に対する書き込み処理が必要になるところ、マイクロコントローラ3によれば、PWM診断部30が前記スヌープ機能を備えるので、CPU11による上記レジスタ183~185に対する書き込み処理が不要となり、CPU11の処理負担の増加を抑えることができる。≪実施の形態4≫図7は、実施の形態4に係る、PWMタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ1乃至3と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。同図に示されるマイクロコントローラ4は、PWM信号の生成条件としてデューティ比0、100が設定された場合であってもPWM信号の診断を可能とする。PWM信号のパルス幅が0ゼロとなる場合デューティ比0の場合には、PWM信号の1周期の期間の信号レベルが全てローレベルとなり、1つ前のPWM信号との間に立ち上がりエッジが発生しない。図8にデューティ比0のPWM信号を生成する場合を例示する。同図には、PWMタイマ21内のパルス周期レジスタ152にパルス周期D1=4を設定し、パルス幅レジスタ153に設定するパルス幅をD2=2からD3=0に変化させた場合のPWM信号の変化が示される。この場合、パルス幅バッファ154にパルス幅レジスタ153の値D3が設定されるクロックサイクル11においてPWM信号164が立ち上がらないため、クロックサイクル11~14でPWM信号164のパルス幅がゼロとなる。また、パルス幅とパルス周期とが一致する場合デューティ比100の場合には、PWM信号の1周期の期間の信号レベルが全てハイレベルとなり、次に発生するPWM信号との間に立ち下がりエッジが発生しない。図9にデューティ比100のPWM信号を生成する場合を例示する。同図には、PWMタイマ21内のパルス周期レジスタ152にパルス周期D1=4を設定し、パルス幅レジスタ153に設定するパルス幅をD2=2からD3=4に変化させた場合のPWM信号の変化が示される。この場合、パルス幅バッファ154にパルス幅レジスタ153の値D3が設定されるクロックサイクル11においてPWM信号164が立ち上がってから、その後立ち下がらないため、クロックサイクル15でパルスが発生しない。以上のように、PWM信号のデューティ比が0又は100の場合には、PWM信号にエッジが発生しないため、PWM信号の診断を行うことが困難である。そこで、実施の形態4に係るPWM診断部40では、実施の形態3に係るPWM信号診断部30の構成要素に加えて、パルス補正回路P_REV191を備え、パルス補正回路191によってPWM信号を補正し、補正後のPWM信号190に基づいて診断処理を行う。パルス補正回路191は、パルス周期レジスタ値183、パルス幅レジスタ184、及びパルス幅バッファ185を監視し、これらに設定されたPWM信号の生成条件に応じて、パルス選択回路159から出力されたPWM信号166を補正してエッジ検出回路171に出力する。例えば、パルス補正回路191は、パルス幅レジスタ184に設定されたパルス幅がゼロである場合と、パルス幅バッファ185に設定されたパルス幅とパルス周期レジスタ183に設定されたパルス周期が一致する場合には、入力したPWM信号166を補正した信号をPWM信号190として出力し、上記2つの生成条件以外の条件が設定された場合には、入力したPWM信号166を補正せず、PWM信号190として出力する。パルス補正回路191によるPWM信号の補正方法について図10及び図11を用いて具体的に説明する。図10は、デューティ比0のPWM信号の診断を行う場合のPWM診断部40の動作タイミングの一例を示すタイミングチャートである。同図では、前述の図6と同様に、制御レジスタ151にはパルス出力を行う設定がなされているものとし、パルス選択回路159がPWM信号164を選択して出力するものとする。また、PWM診断部40のスヌープレジスタ181にはPWMタイマ21のパルス周期レジスタ152のアドレスA1が書き込まれており、スヌープレジスタ182にはPWMタイマ21のパルス幅レジスタ153のアドレスA2が書き込まれているものとする。同図に示されるように、前記スヌープ機能により、クロックサイクル3においてパルス周期レジスタ183にパルス周期D1=4が設定され、クロックサイクル5においてパルス幅レジスタ184にパルス幅D2=2が設定される。この生成条件の場合、パルス補正回路191は入力されたPWM信号164の補正は行わない。すなわち、クロックサイクル7からクロックサイクル10の期間において、パルス補正回路191はPWM信号164をPWM信号190として出力する。その後、クロックサイクル9においてパルス幅レジスタ184にパルス幅D3=0が設定されると、パルス補正回路191は、1つ前の周期のPWM信号の立ち上がりエッジクロックサイクル7から1周期分経過したタイミングクロックサイクル11で仮想立ち上がりエッジ信号を生成する。具体的には、パルス補正回路191は、立ち上がりエッジレジスタ173の値とパルス周期レジスタ183の値とを加算した値がカウンタ値CF_VALと一致したら、前記仮想立ち下がりエッジ信号を生成する。例えば、クロックサイクル11において、立ち上がりエッジレジスタ173の値=42とパルス周期レジスタ183の値=4を加算した値=46とカウンタ値CF_VAL=46とが一致するので、このタイミングでパルス補正回路191が前記仮想立ち上がりエッジ信号を生成する。同図では、前記仮想立ち上がりエッジ信号のパルス幅を、クロック信号CLKの1クロックサイクル分のパルス幅とする例が示されている。前記仮想立ち上がりエッジ信号は上記タイミングで立ち上がる信号であればそのパルス幅に特に制限はないが、前記仮想立ち上がりエッジ信号のパルス幅をクロック信号CLKの1クロックサイクル分のパルス幅とすることで、前記仮想立ち上がりエッジ信号の生成が容易となるため、パルス補正回路191の回路構成の簡素化を図ることができるという利点がある。パルス補正回路191は、上記の方法で生成した前記仮想立ち上がりエッジ信号と入力されたPWM信号164との論理和をとった信号をPWM信号190として出力する。すなわち、クロックサイクル11からクロックサイクル14の1周期の期間に、クロックサイクル11のタイミングで1クロックサイクル分だけハイレベルとなるPWM信号190が生成される。その後のクロックサイクル15のタイミングでも同様の補正が行われる。これにより、デューティ比0のPWM信号164が生成された場合であっても、補正後のPWM信号190を用いてエッジ検出を行うことができる。図11は、デューティ比100のPWM信号の診断を行う場合のPWM診断部40の動作タイミングの一例を示すタイミングチャートである。同図では、前述の図10と同様に、制御レジスタ151にはパルス出力を行う設定がなされているものとし、パルス選択回路159がPWM信号164を選択して出力するものとする。また、PWM診断部40のスヌープレジスタ181にはPWMタイマ21のパルス周期レジスタ152のアドレスA1が書き込まれており、スヌープレジスタ182にはPWMタイマ21のパルス幅レジスタ153のアドレスA2が書き込まれているものとする。同図に示されるように、クロックサイクル8までの動作タイミングは図10と同様である。クロックサイクル9においてパルス幅レジスタ184にパルス幅D3=4が設定されると、パルス補正回路191は、次のPWM信号164の立ち上がりエッジのタイミングクロックサイクル11からパルス周期より短い期間が経過したタイミングクロックサイクル14で仮想立ち下がりエッジ信号を生成する。具体的には、パルス補正回路191は、立ち上がりエッジレジスタ173の値とパルス周期レジスタ183の値とを加算した値から11クロックサイクル分だけ減算した値と、カウンタ値CF_VALとが一致したら、前記仮想立ち下がりエッジ信号を生成する。例えば、クロックサイクル14において、立ち上がりエッジレジスタ173の値=46とパルス周期レジスタ183の値=4を加算した値=50から1だけ減算した値=49が、カウンタ値=49に一致するので、このタイミングでパルス補正回路191が前記仮想立ち下がりエッジ信号を生成する。上記の減算する値11クロックサイクル分は、前記仮想立ち下がりエッジ信号のパルス幅を規定する値である。上記の例では、減算する値を11クロックサイクル分としたが、デューティ比100のPWM信号164の1周期が経過する前に前記仮想立ち下がり信号が生成されるのであれば、その値に制限はない。すなわち、前記仮想立ち下がりエッジ信号のパルス幅に特に制限はないが、パルス幅をクロック信号CLKの1クロックサイクル分のパルス幅とすることで、仮想立ち下がりエッジ信号の生成が容易となるため、パルス補正回路191の回路構成の簡素化を図ることができるという利点がある。パルス補正回路191は、上記の方法で生成した前記仮想立ち下がりエッジ信号の反転信号を生成し、その反転信号と入力されたPWM信号164との論理積をとった信号をPWM信号190として出力する。すなわち、クロックサイクル14のタイミングで1クロックサイクル分だけローレベルとなるPWM信号190が生成される。これにより、デューティ比100のPWM信号164が生成された場合であっても、補正後のPWM信号190を用いてエッジ検出を行うことができる。エッジ検出回路171は、実施の形態3と同様に、パルス補正回路191から出力されたPWM信号190の立ち上がりエッジを検出すると、立ち上がりエッジレジスタ173に対してカウンタ172のカウント値CF_VALの書き込みを指示するとともに、比較回路186に対して比較処理の実行を指示する。また、エッジ検出回路171は、PWM信号190の立ち上がりエッジを検出した場合も同様に、比較回路176に対して比較処理の実行を指示する。比較回路192は、パルス周期レジスタ183、パルス幅レジスタ184、及びパルス幅バッファ185を監視し、上記2つの生成条件デューティ比0、デューティ比100以外の条件が設定された場合には、実施の形態3と同様の方法で比較処理を実行し、比較の結果を状態レジスタ162に出力する。一方、デューティ比0の生成条件パルス幅レジスタ184の値がゼロが設定された場合の比較回路192の処理内容は以下となる。エッジ検出回路171がPWM信号190の立ち上がりエッジを検出すると、比較回路192はパルス周期を算出するとともに、算出結果とパルス周期レジスタ152の値と比較する比較処理を行う。例えば、図10の場合、クロックサイクル11において、立ち上がりエッジ検出時のカウンタ値CF_VAL=46から前記立ち上がりエッジレジスタ173の値=42を減算した値=4がPWM信号164のパルス周期の値となるので、減算した値=4とパルス周期レジスタ183の値D1=4とが一致するか否かを判別する。また、エッジ検出回路171がPWM信号190の立ち下がりエッジを検出すると、比較回路192はパルス幅を算出するとともに、算出結果とパルス周期レジスタ152の値と比較する比較処理を行う。例えば、図10の場合、クロックサイクル12において、立ち下がりエッジ検出時のカウンタ値CF_VAL=47から前記立ち上がりエッジレジスタ173の値=46を減算した値=1が、パルス幅バッファ185の値D3=0に1を加算した値と一致するか否かを判別する。すなわち、前述のパルス補正回路190によるPWM信号の補正により、デューティ比0のPWM信号164が1クロックサイクル分のパルス幅となるPWM信号190に補正されていることを考慮して比較処理を行う。これにより、生成条件に応じてデューティ比0のPWM信号164が生成されているか否かを判別することができる。デューティ比100の生成条件パルス幅レジスタ184の値がゼロが設定された場合の比較回路192の処理内容は以下となる。この場合、エッジ検出回路171がPWM信号190の立ち上がりエッジを検出すると、比較回路192はパルス周期を算出するとともに、算出結果とパルス周期レジスタ152の値と比較する比較処理を行う。例えば、図11の場合、クロックサイクル11において、立ち上がりエッジ検出時のカウンタ値CF_VAL=46から前記立ち上がりエッジレジスタ173の値=42を減算した値=4がPWM信号164のパルス周期となるので、算出した値=4とパルス周期レジスタ183の値D1=4とが一致するか否かを判別する。また、エッジ検出回路171がPWM信号190の立ち下がりエッジを検出すると、比較回路192はパルス幅を算出するとともに、算出結果とパルス周期レジスタ152の値と比較する比較処理を行う。例えば、図11の場合、クロックサイクル14において、立ち下がりエッジ検出時のカウンタ値CF_VAL=49から前記立ち上がりエッジレジスタ173の値=46を減算した値=3が、パルス幅バッファ185の値D3=4に-1を加算した値と一致するか否かを判別する。すなわち、前述のパルス補正回路190によるPWM信号の補正により、デューティ比100のPWM信号164が3クロックサイクル分のパルス幅となるPWM信号190に補正されていることを考慮した比較処理を行う。これにより、生成条件に応じてデューティ比100のPWM信号164が生成されているか否かを判別することができる。以上実施の形態4に係るマイクロコントローラ4によれば、実施の形態1乃至3と同様に、CPU11の処理負担を増加させることなくPWMタイマ21のより詳細な故障判定を行うことができる。また、PWM信号診断部40の診断対象からの独立性を担保しつつ、前記スヌープ機能によってCPU11の処理負担の増加を抑えることができる。更に、マイクロコントローラ4によれば、パルス補正回路191を備えることで、パルスエッジが発生しない条件においてもPWMタイマ21の出力の診断が可能となるから、故障検出率を向上させることができ、更なる信頼性の向上を図ることができる。≪実施の形態5≫図12は、実施の形態5に係る、PWMタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ1乃至4と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。同図に示されるマイクロコントローラ5は、内部バス13とシステムバス52の2つのバスを有し、PWMタイマはシステムバス52に接続される。ここで、前記PWMタイマは、実施の形態1に係る診断機能を備えたPWMタイマ15である。システムバス52は、低速なバスクロック低速クロックで動作し、割り込みコントローラ14、PWMタイマ15、バスブリッジBUS_BRG51が接続される。一方、内部バス13は、システムバス52よりも高速なバスクロック高速クロックで動作し、CPU11、メモリ12、及びバスブリッジ51が接続される。バスブリッジ51は、内部バス13に接続される回路とシステムバス52に接続される回路との間の通信を制御する。このような階層バス構成は、CPU11が高速動作する場合に特に有効である。例えば、CPU11がシステムバス52に接続されている周辺回路にアクセスすると、そのアクセスが完了するまでCPU11のパイプラインが停止するため処理の無駄が生じる。特に内部バス13とシステムバス52のクロック周波数の比が大きいほど、無駄なサイクル数が増える。そのため、前述の先行検討例のようにCPU11がPWMタイマの診断に係る処理を行うと、処理の無駄が増えるため、CPU11の高速動作を阻害する。一方、本実施の形態に係るマイクロコントローラ5によれば、PWMタイマ15自身が診断機能を備えるので、CPU11によるPWMタイマの診断に係る処理が不要となり、CPU11の高速動作を可能とする。また、階層バス構成とすることで、CPU11とメモリ12は高速なクロックで動作させ、高速に動作する必要のないPWMタイマ15や割り込みコントローラ14等の周辺回路は低速なクロックで動作させることができるから、マイクロコントローラ全体の消費電力を抑えることができる。≪実施の形態6≫図13は、実施の形態6に係る、PWMタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ1乃至5と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。同図に示されるマイクロコントローラ6は、実施の形態5に係るマイクロコントローラ5と同様に内部バス13とシステムバス52の2つのバスを有し、PWMタイマとPWM信号診断部はシステムバス52に接続される。同図における前記PWMタイマとしては、実施の形態2におけるPWMタイマ21が適用可能であり、前記PWM信号診断部としては、実施の形態2乃至4におけるPWM診断回路20、30、40のいずれかが適用可能である。図13では、一例としてPWM診断部20を適用した場合を代表的に示している。これによれば、実施の形態5と同様に、CPU11にPWMタイマ21の診断に係る処理負担を低減させることができ、且つマイクロコントローラ全体の消費電力を抑えることができる。特に、スヌープ機能によって実現されるPWM信号診断部30、40へのパルス周期及びパルス幅の期待値設定により、CPU11の診断に係る処理負荷を増加させることがない。≪実施の形態7≫図14は、実施の形態7に係る、PWMタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ1乃至6と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。同図に示されるマイクロコントローラ7は、実施の形態6に係るマイクロコントローラ6と同様に内部バス13とシステムバス52の2つのバスを有し、PWM信号を生成するPWM信号生成部としてのMMは2以上の整数個のPWMタイマ21_1~21_Mと1つのPWM信号診断部がシステムバス52に接続される。同図における前記PWMタイマ21_1~21_Mとしては、実施の形態2におけるPWMタイマ21が適用可能であり、前記PWM信号診断部としては、実施の形態2乃至4におけるPWM診断部20、30、40のいずれかが適用可能である。図14では、一例としてPWM診断部20を適用した場合を代表的に示している。M個のPWMタイマ21_1~21_Mによって夫々生成されるPWM信号164_1~164_Mは、M個の外部出力端子POUT_1~P_OUTMを介して出力される。また、マイクロコントローラ7は、N個Nは1以上の整数の外部入力端子PIN_1~PIN_Nを有し、マイクロコントローラ外部からのPWM信号外部PWM信号165_1~165_Nの入力を可能にする。生成されたPWM信号164_1~164_Mと外部PWM信号165_1~165_Nは、選択部55に入力される。選択部55は、例えば第1選択回路551と第2選択回路552を有する。第1選択回路551は、PWM信号164_1~164_Mの夫々を入力するとともに、選択信号56に基づいて、入力した信号のうち何れかの信号を選択し、選択した信号をPWM信号164としてPWM信号診断部20に出力する。第2選択回路552は、外部PWM信号165_1~165_Nの夫々を入力するとともに、選択信号56に基づいて、入力した信号のうち何れかの信号を選択し、選択した信号を外部PWM信号165としてPWM信号診断部20に出力する。選択信号56、57は、何れのPWM信号を選択して出力するか指示する信号であり、診断パルス選択指示部54から出力される。診断パルス選択回路54は、システムバス52を介して書き込み可能な制御レジスタ541を有し、制御レジスタ541に設定された値にしたがって、信号生成部542が選択信号56、57を生成して出力する。本マイクロコントローラ7によれば、実施の形態2乃至4と同様に、前記中央処理装置の処理負担を増加させることなく、PWMタイマのより詳細な故障判定を行うことができる。また、複数のPWM信号が生成される場合であっても、1つのPWM信号診断部によって選択的に診断を行うことができるから、生成されるPWM信号の数に応じて診断部を設ける必要がなく、マイクロコントローラの小面積化に資する。更に、マイクロコントローラ7によれば、例えば外部出力端子POUT_1~POUT_Mと外部入力端子PIN_1~PIN_Nをマイクロコントローラの外部で電気的に接続することで、PWMタイマ21_1~21_Mによって生成されたPWM信号164_1~164_Mを、外部入力端子PIN_1~PIN_Nを介して入力し、入力した信号を選択して診断することができる。これによれば、外部出力端子POUT_1~POUT_MからPWM信号を出力する出力機能と、外部入力端子PIN_1~PIN_NからPWM信号を入力する入力機能が正常であるか否かの診断も行うことができる。≪実施の形態8≫図15は、実施の形態8に係る、PWMタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ1乃至7と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。同図に示されるマイクロコントローラ8は、前記マイクロコントローラ6と同様に内部バス13とシステムバス52の2つのバスを有し、1個のPWMタイマ21とNNは2以上の整数個のPWM信号診断部がシステムバス52に接続される。同図における前記PWM信号診断部としては、実施の形態2乃至4におけるPWM診断部20、30、40のいずれかが適用可能である。図15では、一例としてPWM診断部20を適用した場合を代表的に示している。PWMタイマ21によって生成されるPWM信号164は、PWM信号診断部20_1~20_Nに夫々入力されると共に、外部出力端子POUTを介してマイクロコントローラ8の外部に出力される。また、マイクロコントローラ8は、N個の外部入力端子PIN_1~PIN_Nを有し、マイクロコントローラ外部からのPWM信号外部PWM信号165_1~165_Nの入力を可能にする。外部PWM信号165_1~165_Nは、選択部62に入力される。選択部62は、例えばN個の第3選択回路622_1~622_Nを有する。第3選択回路622_1~622_Nは、PWM信号診断部20_1~20_N毎に対応して設けられる。夫々のPWM信号診断部20_1~20_Nは外部PWM信号165_1~165_Nを入力し、対応する選択信号61_1~61_Nに基づいて、入力した信号のうち何れかの信号を選択するとともに、選択した信号を外部PWM信号165として、対応するPWM信号診断部20_1~20_Nに出力する。選択信号61_1~61_Nは、何れの外部PWM信号165_1~165_Nを選択して出力するか指示する信号であり、診断パルス選択指示部60から出力される。診断パルス選択回路60は、システムバス52を介して書き込み可能な制御レジスタ601を有し、制御レジスタ601に設定された値にしたがって、信号生成部602が選択信号61_1~61_Nを生成して出力する。本マイクロコントローラ7によれば、実施の形態2乃至4と同様に、前記中央処理装置の処理負担を増加させることなく、前記PWMタイマのより詳細な故障判定を行うことができる。また、1つのPWM信号を複数の診断部によって診断することができるから、診断結果の信頼度が向上する。更に、マイクロコントローラ8によれば、例えば外部出力端子POUTと外部入力端子PIN_1~PIN_Nをマイクロコントローラの外部で電気的に接続することで、PWMタイマ21によって生成されたPWM信号164を、外部入力端子PIN_1~PIN_Nを介して入力し、入力した信号を選択して診断することができる。これによれば、外部出力端子POUTからPWM信号を出力する出力機能と、外部入力端子PIN_1~PIN_NからPWM信号を入力する入力機能が正常であるか否かの診断も行うことができる。≪実施の形態9≫図16は、実施の形態9に係る、PWMタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ1乃至8と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。同図に示されるマイクロコントローラ9は、前記マイクロコントローラ6と同様に内部バス13とシステムバス52の2つのバスを有し、PWM信号を生成するPWM信号生成部としてのM個のPWMタイマ21と、PWMタイマ機能を診断するための診断部としてのN個のPWM信号診断部がシステムバス52に接続される。同図における前記PWM信号診断部としては、実施の形態2乃至4におけるPWM診断部20、30、40のいずれかが適用可能である。図16では、一例としてPWM診断部20を適用した場合を代表的に示している。M個のPWMタイマ21_1~21_Mによって夫々生成されるPWM信号164_1~164_Mは、M個の外部出力端子POUT_1~POUT_Mを介して出力される。また、マイクロコントローラ9は、N個Nは1以上の整数の外部入力端子PIN_1~PIN_Nを有し、マイクロコントローラ外部からのPWM信号外部PWM信号165_1~165_Nの入力を可能にする。生成されたPWM信号164_1~164_Mと外部PWM信号165_1~165_Nは、選択部65に入力される。選択部65は、例えば第4選択回路651_1~651_Nと第5選択回路652_1~651_Nを有する。第4選択回路651_1~651_Nと第5選択回路652_1~651_Nは、PWM信号診断部20_1~20_N毎に対応して設けられる。例えば、第4選択回路651_1~651_Nの夫々は、PWM信号164_1~164_Mを入力し、対応する選択信号63_1~63_Nに基づいて、入力した信号のうち何れかの信号を選択するとともに、選択した信号をPWM信号164として対応するPWM信号診断部20_1~20_Nに出力する。同様に、第5選択回路652_1~652_Nの夫々は、外部PWM信号165_1~165_Nを入力し、対応する選択信号64_1~64_Nに基づいて、入力した信号のうち何れかの信号を選択するとともに、選択した信号を外部PWM信号165として対応するPWM信号診断部20_1~20_Nに出力する。選択信号63_1~63_Nは、何れのPWM信号164_1~164_Nを選択して出力するか指示する信号であり、選択信号64_1~64_Nは、何れのPWM信号165_1~165_Nを選択して出力するか指示する信号である。選択信号63_1~63_N及び選択信号64_1~64_Nは、診断パルス選択指示部66から出力される。診断パルス選択回路66は、システムバス52を介して書き込み可能な制御レジスタ661を有し、制御レジスタ661に設定された値にしたがって、信号生成部662が選択信号63_1~63_Nと選択回路64_1~64_Nを生成して出力する。本マイクロコントローラ9によれば、実施の形態2乃至4と同様に、前記中央処理装置の処理負担を増加させることなく、PWMタイマのより詳細な故障判定を行うことができる。また、PWMタイマ21_1~21_MとPWM信号診断部20_1~20_Nの夫々の個数に応じて診断対象と診断主体との組み合わせを自由に決定することができるから、システム設計や診断方法の自由度が増す。更に、マイクロコントローラ9によれば、外部出力端子POUT_1~POUT_Mと外部入力端子PIN_1~PIN_Nとをマイクロコントローラの外部で電気的に接続することで、PWMタイマ21によって生成されたPWM信号164_1~164_Mを、外部入力端子PIN_1~PIN_Nを介して入力し、入力した信号を選択して診断することができる。これによれば、外部出力端子POUT_1~POUT_MからPWM信号を出力する出力機能と、外部入力端子PIN_1~PIN_NからPWM信号を入力する入力機能が正常であるか否かの診断も行うことができる。≪実施の形態10≫図17は、PWM信号の診断機能の診断方法の一例を示すフローチャートである。例えば、本診断方法による診断対象となるPWM信号診断部は、実施の形態2乃至9で示されるPWM信号診断部30、及び40である。PWM信号診断部が正常であるか否かを判別するための診断処理は、例えば、マイクロコントローラ2乃至9における各種機能部の動作確認を行うテスト処理に含まれ、例えば、パワーオンリセット後の通常動作に移行する前に実行される。前記テスト処理には、上記PWMタイマのテストの他に、例えば、メモリ12のテスト、CPU11のテスト、及びその他の機能部のテストが含まれる。ここでは、代表的に、実施の形態3に係るマイクロコントローラ3において前記テスト処理を行う場合の具体的な処理フローについて説明する。図17に示されるように、先ずマイクロコントローラ3に電源が投入され、パワーオンリセットが解除されると、各機能部の初期設定が行われるS101。その後、各機能部のテスト処理が開始される。前記テスト処理では先ず、メモリ12のテストが実行されるS102。続いてCPU11テストが実行されるS103。次に、その他の機能部のテストが実行されるS104。その後、PWM信号診断部30のテストが開始される。PWM信号診断部30のテストでは先ず、CPU11が、例えば第1パルス周期かつ第1パルス幅のPWM信号を生成するための生成条件以下、第1生成条件、とも称する。をPWMタイマ21のレジスタ151~153に設定するS105。設定する第1パルス周期と第1パルス幅の値に特に制限はない。次に、CPU11はPWM信号診断部30にアクセスし、パルス周期レジスタ183及びパルス幅レジスタ184に前記第1生成条件を設定するS106。そして、CPU11はPWM信号診断部30に診断処理を実行させ、その診断結果を確認するS107。ステップ107においてエラーを示す診断結果が出力された場合には、CPU11はPWM信号診断部が異常である判断し、そうでない場合には、PWM信号診断部が正常であると判断する。CPU11は、ステップ107でPWM信号診断部が正常であると判断した場合には、CPU11はPWM信号診断部30に再度アクセスし、パルス周期レジスタ183及びパルス幅レジスタ184に、例えば第2パルス周期かつ第2パルス幅のPWM信号を生成するための生成条件以下、第2生成条件、とも称する。を設定するS108。第2生成条件は、第1生成条件と異なる生成条件であればよく、その第2パルス幅及び第2パルス周期の値に特に制限はない。そして、CPU11はPWM信号診断部30に診断処理を実行させ、その診断結果を確認するS109。ステップ109においてエラーを示す診断結果が出力された場合には、CPU11はPWM信号診断部が正常である判断し、そうでない場合には、PWM信号診断部が異常であると判断する。ステップ109でPWM信号診断部が正常であると判断された場合には、その他の機能部のテスト処理に移行し、すべてのテスト処理が完了したら、マイクロコントローラ3は通常動作を開始する。これによれば、PWM信号診断部自身が正常に動作するか否かを容易に判別することができる。特に、PWMタイマに設定する生成条件と一致する条件をPWM信号診断部に設定した場合の診断と、PWMタイマに設定する生成条件と異なる条件をPWM信号診断部に設定した場合の診断の2つの診断を行うので、PWM信号診断部に対する診断の精度を上げることができる。これにより、PWMタイマの信頼性だけでなく、PWM信号診断部の信頼性をも向上させることができる。上記の診断方法は、実施の形態1に係るPWMタイマ15にも適用することが可能である。例えば、PWMタイマ15内の比較回路161にパルス周期レジスタ152及びパルス幅レジスタ154の値を格納するためのバッファ回路を設け、前記バッファ回路はCPU11によってアクセス可能とする。比較回路161が比較処理を行う場合には、前記バッファ回路に格納されたパルス幅とパルス周期の値をリファレンスとして用いてPWM信号164の診断を行うようにする。PWM信号の診断機能のテスト時には、図17のステップ105においてCPU11がパルス周期レジスタ152及びパルス周期レジスタ153に前記第1生成条件を設定した後、ステップ106においてCPU11が比較回路161の前記バッファ回路にアクセスして前記第1生成条件を設定し、診断処理を実行させる。その後、ステップ108においてCPU11が再度前記バッファ回路にアクセスして前記第2生成条件を設定し、診断処理を実行させる。このようにすることで、実施の形態1に係るPWMタイマ15において、PWM信号の診断機能が正常であるか否かを診断することができる。実施の形態2に係るPWM診断部20においても上記と同様の方法により、PWM信号の診断機能が正常であるか否かを診断することができる。≪実施の形態11≫図18は、PWMタイマ機能とその診断機能を備えるマイクロコントローラを搭載した電子制御装置の一例を示すブロック図である。同図に示される電子制御装置104は、例えば、自動車のパワートレイン系を制御するための制御装置である。前記電子制御装置104は、例えば、マイクロコントローラ10と、ドライバ105と、安全装置106とを備える。前記マイクロコントローラ10は、自動車を駆動するモータ101を制御するための制御部であり、例えば、実施の形態1乃至9におけるマイクロコントローラ1乃至9のいずれかの回路構成をベースとし、更にPWM信号の診断結果を通知するための外部端子EOUTを備える。図18では、マイクロコントローラ10の回路構成として、複数のPWM信号164_1~164_Mを出力するマイクロコントローラ7を適用した場合を代表的に示しているが、これに限定されない。マイクロコントローラ10から出力されたPWM信号164_1~164_Mは、ドライバ105に入力される。ドライバ105はインバータ102を駆動するための回路であり、入力したPWM信号164_1~164_Mを増幅してインバータ102に出力する。インバータ102は、増幅されたPWM信号164_1~164_Nに基づいてモータ101を駆動する。マイクロコントローラ10におけるPWM信号の診断機能により、PWM信号164_1~164_Mのいずれかの異常が検出されると、マイクロコントローラ10は、エラー信号を外部出力端子EOUTを介して安全装置106に出力する。安全装置106は、エラー信号に応じてモータ101の異常動作を防止するため処理を行う。当該処理の処理内容は、システムに依存するが、例えば自動車のダッシュボードに故障を示す警告を通知させたり、PWM信号生成のマイコン制御を停止させたりする方法が考えられる。その他にも、例えば電子制御装置105内に同じ機能を有するマイクロコントローラ10を複数設けておき、エラー信号に応じてマイクロコントローラを切り替える方法でもよい。具体的には、複数のマイクロコントローラに同一の処理を実行させておき、1つのマイクロコントローラによるPWM信号をドライバ105に入力させる。そして、安全装置106は、前記エラー信号が通知されたら、当該エラーを通知したマイクロコントローラに代えて、別のマイクロコントローラからのPWM信号をドライバ105に入力させる。以上、実施の形態10に係るマイクロコントローラ10によれば、設定されたパルス周期及びパルス幅に従ってPWM信号が生成されているか否かを判別することができるから、より詳細な故障判定が可能となり、モータ制御の安全性をより高めることができる。また、前記診断は、CPUとは異なる別の回路モジュールによって実現されるから、マイクロコントローラ内のCPUの処理負担を増加させることない。以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。例えば、実施の形態1において、カウンタ157の値をフリップフロップ回路158で遅延させたカウンタ遅延値CD_VALを診断処理のために利用する方法を例示したが、これに限られない。例えば、実施の形態3又は4のように、診断処理のためのカウンタ172を別途設け、そのカウント値を診断処理に利用する方法でもよい。この場合のカウンタ172の構成は、フリーランニングカウンタでもよいし、PWM信号の1周期毎にリセットされる方式のカウンタでもよい。"