(57)【特許請求の範囲】
【請求項１】
中央処理装置と、
前記中央処理装置によって設定された生成条件に応じてＰＷＭ信号を生成するＰＷＭ信号生成部と、
前記ＰＷＭ信号生成部によって生成されたＰＷＭ信号に基づいて該ＰＷＭ信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記ＰＷＭ信号のパルス周期及びパルス幅とを比較することにより、前記ＰＷＭ信号生成部の診断を行う診断部とを有し、
前記診断部は、前記ＰＷＭ信号生成部によって生成されたＰＷＭ信号が入力され、ＰＷＭ信号のパルス幅がゼロになる前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記設定された生成条件のパルス周期よりも短い第１期間だけハイレベルとなるように前記入力されたＰＷＭ信号を補正するとともに、補正後のＰＷＭ信号のパルス周期とパルス幅を検出して前記比較を行う
マイクロコントローラ。
【請求項２】
請求項１において、
前記診断部は、ＰＷＭ信号のパルス幅とパルス周期とが一致する前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記設定された生成条件のパルス周期よりも短い第２期間だけローレベルとなるように前記入力されたＰＷＭ信号を補正するとともに、補正後のＰＷＭ信号のパルス周期とパルス幅を検出して前記比較を行う
マイクロコントローラ。
【請求項３】
請求項２において、
前記診断部は、
前記ＰＷＭ信号生成部に設定された前記生成条件に応じて、前記入力されたＰＷＭ信号を補正して出力するパルス補正部と、
前記パルス補正部から出力された信号の立ち上がりエッジと立ち下がりエッジを検出する検出部と、
前記検出したエッジに基づいて前記パルス補正部から出力された信号のパルス周期とパルス幅を算出し、算出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅を比較する比較部と
を有し、
前記パルス補正部は、ＰＷＭ信号のパルス幅がゼロになる前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、１つ前のＰＷＭ信号の立ち上がりからパルス周期分の時間が経過したタイミングにおいて、前記第１期間だけハイレベルとなる第１信号を生成し、前記第１信号と前記入力されたＰＷＭ信号の論理和をとることで前記補正後のＰＷＭ信号を生成し、
前記比較部は、ＰＷＭ信号のパルス幅がゼロになる前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致し、且つ前記算出したパルス幅と前記第１期間に応じたパルス幅とが一致するならば、前記生成条件に応じたＰＷＭ信号が生成されていると判断し、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致せず、又は前記算出したパルス幅と前記第１期間に応じたパルス幅とが一致しないならば、前記生成条件に応じたＰＷＭ信号が生成されていないと判断する
マイクロコントローラ。
【請求項４】
請求項３において、
前記パルス補正部は、ＰＷＭ信号のパルス幅とパルス周期とが一致する前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記入力されたＰＷＭ信号が立ち上がってから所定期間が経過したタイミングにおいて、前記第２期間だけハイレベルとなる第２信号を生成し、前記第２信号の反転信号と前記入力されたＰＷＭ信号の論理積をとることで前記補正後のＰＷＭ信号を生成し、
前記比較部は、ＰＷＭ信号のパルス幅とパルス周期とが一致する前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致し、且つ前記算出したパルス幅と、前記生成条件に応じたパルス幅を前記第２期間だけ短くしたパルス幅と、が一致するならば、前記生成条件に応じたＰＷＭ信号が生成されていると判断し、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致せず、又は前記算出したパルス幅と前記第２期間だけ短くしたパルス幅とが一致しないならば、前記生成条件に応じたＰＷＭ信号が生成されていないと判断する
マイクロコントローラ。
【請求項５】
請求項２において、
前記ＰＷＭ信号生成部はパルス周期とパルス幅を含む前記生成条件を格納するための第１レジスタを有し、
前記診断部は、前記第１レジスタに格納される前記生成条件を含む情報を格納するための第２レジスタを更に有し、
前記診断部は、前記第２レジスタに格納された前記生成条件に基づいて前記判別を行う
マイクロコントローラ。
【請求項６】
請求項２において、
前記診断部は、前記中央処理装置による前記第１レジスタに対する前記生成条件の書き込みを監視し、前記中央処理装置が書き込む前記生成条件を取得して前記第２レジスタに格納する
マイクロコントローラ。
【請求項７】
請求項６において、
前記中央処理装置と、前記ＰＷＭ信号生成部と、前記診断部とは内部バスを介して互いに接続され、
前記中央処理装置は、前記第１レジスタに前記生成条件を書き込むとき、前記第１レジスタを示すアドレス値と前記生成条件に係るデータとを前記内部バス上に出力し、
前記診断部は、前記内部バス上に出力されるアドレス値を監視し、出力されたアドレス値が前記第１レジスタを示すアドレス値である場合には、前記内部バス上に出力された前記生成条件に係るデータを取得して、前記第２レジスタに保持する
マイクロコントローラ。
【請求項８】
請求項２において、
前記ＰＷＭ信号生成部によって生成されたＰＷＭ信号を外部に出力するための第１端子と、
外部から信号を入力するための第２端子と
を更に有し、
前記診断部は、前記第１端子に出力されるＰＷＭ信号と、前記第２端子を介して入力されるＰＷＭ信号とを前記判別対象のＰＷＭ信号として選択可能である
マイクロコントローラ。
【請求項９】
請求項２において、
前記ＰＷＭ信号生成部と前記診断部とは、共通の回路モジュール内に構成される
マイクロコントローラ。
【請求項１０】
請求項２において、
前記ＰＷＭ信号生成部と前記診断部とは、互いに別個の回路モジュールとして構成される
マイクロコントローラ。
【請求項１１】
請求項２において、
第１バスクロックで動作し、前記中央処理装置が接続される第１バスと、
前記第１バスクロックとは異なる第２バスクロックで動作し、前記ＰＷＭ信号生成部と前記診断部とが接続される第２バスと、
前記第１バスと前記第２バスとの間の通信を制御するためのバス制御部と
を更に有し、
前記第２バスクロックは、前記第１バスクロックよりも低い周波数とされる
マイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パルス幅変調（ＰＷＭ：Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）タイマの診断機能を有するマイクロコントローラ、前記マイクロコントローラを内蔵する制御装置、及び前記マイクロコントローラにおける前記診断機能が正常であるか否かを判別するための判別方法に関し、特に、より高い信頼性が要求される、ＰＷＭタイマを内蔵したマイクロコントローラに適用して有効な技術に関する。
【背景技術】
【０００２】
家電製品、ＡＶ機器、携帯電話、自動車、及び産業機械等の機器には、マイクロコントローラ（以下単に「マイコン」とも称する）が組み込まれている。マイコンは、メモリに記憶されているプログラムにしたがって処理を行うことで、それぞれの機器の制御を行う半導体集積回路である。これらの機器に組み込まれるマイコンを含む部品は、用途に応じた信頼性が要求される。例えば自動車では、制御装置の故障が事故につながる可能性があるため、マイコンを含む部品に高い信頼性が求められる。例えば、自動車用のマイコンでは、故障が発生した場合にはこれを検出して自動車が危険な状態にならないように安全装置を働かせる機能が要求されている。そのため、マイコンは、例えば、制御対象であるセンサやアクチュエータ等の診断を行ってこれらの故障を検出するだけでなく、マイコン自身の故障も検出する必要がある。
【０００３】
電子機器の故障を検出する従来技術について特許文献１乃至３に開示がある。特許文献１には、タイマ回路において、タイマ回路内のカウンタ回路のカウンタ値と一つ前のカウンタ値の反転値との論理加算処理を行い、その値が“０（零）”である場合にはカウント動作が異常と判断してその結果を外部に知らせる技術が開示されている。特許文献２には、マイコンと出力ドライバ回路を備える自動車用電子制御装置において、出力ドライバ回路の地絡・天絡や断線、パワートランジスタの過電流、パワートランジスタの過温度を診断する技術が開示されている。更に、特許文献３には、ＣＰＵとメモリからなる複数の処理系を備えるマイクロコントローラにおいて、夫々の処理系のＣＰＵによって処理されたデータを比較して処理系の異常を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２３９０５５号公報
【特許文献２】特開２００４−３３９９７７号公報
【特許文献３】特開２０１０−１１３３８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１乃至３の技術であれば、上記機器に組み込まれる部品に要求されていた従来の信頼性を十分に満足することができたかもしれない。しかしながら、近年更なる信頼性の向上が求められていることと、今後も今以上に高い信頼性が求められる可能性が高いことから、更なる詳細な故障診断のための技術が必要であると本願発明者は考えた。
【０００６】
例えば自動車には多くのモータが使われており、その制御にはマイコンが用いられる。モータの駆動制御の方式の１つとしてＰＷＭ方式がある。ＰＷＭ方式では、マイコンがモータの回転数に対して十分短い周期のパルス信号を与え、そのパルス幅を変化させることによって供給エネルギーをコントロールする。例えば、マイコンに搭載されている中央処理装置（ＣＰＵ）は制御対象であるモータに供給するエネルギーの目標値が決まると、それに応じたＰＷＭパルス信号のパルス周期とパルス幅を計算し、マイコンに搭載されているＰＷＭタイマ内のレジスタに算出したパルス周期とパルス幅を設定する。そして、ＰＷＭタイマは設定値に応じたＰＷＭパルス信号を出力する。自動車用のマイコンでは、このＰＷＭパルス信号が正しく出力されているか否かを検査したいというニーズがある。このニーズに対し、仮に、自動車用マイコンに特許文献１の技術を適用すれば、ＰＷＭタイマ内のカウンタ回路の異常を検出することは可能である。しかしながら、特許文献１の技術では、出力されたＰＷＭパルス信号のパルス周期とパルス幅が設定された通りになっているか等を検査することができず、故障検査としては不十分である。そこで、本願発明者は本願発明に先立って、ＰＷＭタイマの故障診断の方法について検討を行った。
【０００７】
図１９は、本願発明者が先立って検討したＰＷＭタイマの診断機能を有するマイクロコントローラの一例を示すブロック図である。同図のマイクロコントローラ２００において、ＰＷＭタイマ８１は、ＣＰＵ１１によって設定されたパルス周期とパルス幅に応じたＰＷＭ信号を生成する信号生成部８２と、生成したＰＷＭ信号の立ち上がりエッジ及び立ち下がりエッジを検出するパルス検出部８３と、を備える。信号生成部８２は、カウンタ（ＣＮＴＲ）８２３によって、クロック発生回路（ＣＰＧ）１６から入力されたクロック信号ＣＬＫをカウントする。信号生成部８２のレジスタ（ＲＥＧ＿ＰＲＤ）８２１及びレジスタ（ＲＥＧ＿ＰＷ）８２２に設定されるパルス周期とパルス幅は、前記カウンタ８２３のカウント値と比較される値が設定される。信号生成部８２のパルス発生回路（ＰＧ）８２０は、前記カウンタ８２３のカウント値と、前記レジスタ８２１、８２２に設定されたパルス周期とパルス幅に基づいてＰＷＭ信号２１０を生成して出力する。パルス検出部８３は、信号生成部８２から出力されたＰＷＭ信号２１０の立ち上がりエッジを検出したときのカウント値と、立ち下がりエッジを検出したときのカウント値をレジスタ８１１、８１２に保持し、立ち上がりエッジを検出したら割り込み発生回路（ＩＮＴ＿ＣＮＴ）８１３によって割り込み信号を発生させてＣＰＵ１１に通知する。ＣＰＵ１１はその通知を受けとると、パルス検出部８３内のレジスタ８１１、８１２にアクセスし、立ち上がりエッジに係るカウンタ値と立ち下がりエッジに係るカウンタ値を取得する。そして、ＣＰＵ１１は取得したカウンタ値に基づいてパルス周期及びパルス幅を算出し、その算出結果が前記信号生成部８２に設定したパルス周期及びパルス幅と一致するか否かを判定する。
【０００８】
図２０は、本願発明者が先立って検討したＰＷＭタイマの診断機能を有するマイクロコントローラの別の一例を示すブロック図である。同図のマイクロコントローラ２０１は、前述の図１９のマイクロコントローラ２００とは異なり、ＰＷＭ信号を生成するＰＷＭタイマ８４と、生成したＰＷＭ信号の立ち上がりエッジ及び立ち下がりエッジを検出するパルス検出部８５とが、別個の回路モジュールとして構成される。ＰＷＭタイマ８４は、前述の信号生成部８２と同様の方法によりＰＷＭ信号２１１を生成して出力する。パルス検出部８５は、前述のパルス検出部８３と同様の方法により、ＰＷＭ信号２１１の立ち上がりエッジを検出したときのカウント値と、立ち下がりエッジを検出したときのカウント値をレジスタ（ＲＥＧ＿ＲＥＤＧ）８１１及びレジスタ（ＲＥＧ＿ＦＥＤＧ）８１２に保持し、立ち上がりエッジを検出したら割り込み信号を発生させてＣＰＵ１１に通知する。そして、ＣＰＵ１１は取得したカウンタ値に基づいてパルス周期及びパルス幅を算出し、その算出結果が信号生成部８４に設定したパルス周期及びパルス幅と一致するか否かを判定する。
【０００９】
以上のように、図１９に示されるマイクロコントローラ２００と図２０に示されるマイクロコントローラ２０１によれば、ＰＷＭタイマによって生成されたＰＷＭパルス信号のパルス周期とパルス幅が設定通りになっているか否かを診断することができる。しかしながら、上記マイクロコントローラ２００、２０１では、生成されたＰＷＭパルス信号２１０、２１１のパルス幅及びパルス周期が前記信号生成部８２、８４の設定値と一致するか否かを判定するための処理をＣＰＵが行うため、ＣＰＵによる処理負担が大きくなってしまう。
【００１０】
本発明の目的は、ＰＷＭタイマを内蔵するマイクロコントローラにおけるＣＰＵによる処理負担の増加を抑えつつ、ＰＷＭタイマのより詳細な故障診断を可能とする技術を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、本マイクロコントローラは、中央処理装置と、前記中央処理装置によって設定されたＰＷＭ信号の生成条件に応じてＰＷＭ信号を生成するＰＷＭ信号生成部と、前記生成されたＰＷＭ信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別する診断部と、を有する。
【発明の効果】
【００１４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１５】
すなわち、本マイクロコントローラは、ＣＰＵによる処理負担の増加を抑えつつ、ＰＷＭタイマのより詳細な故障診断を可能とする。
【図面の簡単な説明】
【００１６】
【図１】図１は、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【図２】図２は、ＰＷＭタイマ１５の動作タイミングの一例を示すタイミングチャートである。
【図３】図３は、実施の形態２に係るＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【図４】図４は、ＰＷＭタイマ２１とＰＷＭ信号診断部２０の動作タイミングの一例を示すタイミングチャートである。
【図５】図５は、実施の形態３に係るＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【図６】図６は、ＰＷＭタイマ２１とＰＷＭ診断部３０の動作タイミングの一例を示すタイミングチャートである。
【図７】図７は、実施の形態４に係るＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【図８】図８は、デューティ比０％のＰＷＭ信号を生成する場合の動作タイミングの一例を示すタイミングチャートである。
【図９】図９は、デューティ比１００％のＰＷＭ信号を生成する場合の動作タイミングの一例を示すタイミングチャートである。
【図１０】図１０は、デューティ比０％のＰＷＭ信号の診断を行う場合のＰＷＭ診断部４０の動作タイミングの一例を示すタイミングチャートである。
【図１１】図１１は、デューティ比１００％のＰＷＭ信号の診断を行う場合のＰＷＭ診断部４０の動作タイミングの一例を示すタイミングチャートである。
【図１２】図１２は、実施の形態５に係るＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【図１３】図１３は、実施の形態６に係るＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【図１４】図１４は、実施の形態７に係るＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【図１５】図１５は、実施の形態８に係るＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【図１６】図１６は、実施の形態９に係るＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【図１７】図１７は、ＰＷＭ信号の診断機能の診断方法の一例を示すフローチャートである。
【図１８】図１８は、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラを搭載した電子制御装置の一例を示すブロック図である。
【図１９】図１９は、本願発明者が先立って検討したＰＷＭタイマの診断機能を有するマイクロコントローラの一例を示すブロック図である。
【図２０】図２０は、本願発明者が先立って検討したＰＷＭタイマの診断機能を有するマイクロコントローラの別の一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕（ＰＷＭ信号の診断用の専用回路モジュールを備えるマイクロコントローラ）
本発明の代表的な実施の形態に係るマイクロコントローラ（１〜１０）は、中央処理装置（１１）と、前記中央処理装置によって設定されたＰＷＭ信号の生成条件に応じてＰＷＭ信号を生成するＰＷＭ信号生成部（２００、２１）と、を有する。更に、前記マイクロコントローラは、前記ＰＷＭ信号生成部によって生成されたＰＷＭ信号に基づいて該ＰＷＭ信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記ＰＷＭ信号のパルス周期及びパルス幅とを比較することにより、前記ＰＷＭ信号生成部の診断を行う診断部を有する。この診断部は、例えば、前記ＰＷＭ信号生成部によって生成されたＰＷＭ信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅とを比較することにより、前記ＰＷＭ信号生成部の診断を行う診断部（２０１、２０、３０、４０）としてもよい。
【００１９】
これによれば、前記中央処理装置ではなく前記診断部が前記診断のための処理を行うから、前記中央処理装置の処理負担を増加させることなく、前記ＰＷＭ信号生成部の故障判定を行うことができる。また、前記検出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅とを比較することすることで、前記ＰＷＭ信号生成部のより詳細な故障判定を可能とする。
【００２０】
〔２〕（ＰＷＭ信号の補正（デューティ比０％））
項１のマイクロコントローラにおいて、前記診断部（４０）は、ＰＷＭ信号のパルス幅がゼロになる前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記設定された生成条件のパルス周期よりも短い第１期間（例えば、クロック信号ＣＬＫの１クロックサイクル分の期間）だけハイレベルとなるように前記入力したＰＷＭ信号を補正するとともに、補正後のＰＷＭ信号（１９０）のパルス周期とパルス幅を検出して前記比較を行う。
【００２１】
項２のマイクロコントローラでは、前記生成条件としてデューティ比０％が設定された場合には信号の立ち上がりエッジが検出できるようにＰＷＭ信号を補正する。これにより、デューティ比０％であってもパルスを検出することができるから、前記生成条件としてデューティ比０％が設定された場合でも前記ＰＷＭ信号生成部の故障判定を行うことができる。
【００２２】
〔３〕（ＰＷＭ信号を補正（デューティ比１００％））
項１又は２のマイクロコントローラにおいて、前記診断部（４０）は、ＰＷＭ信号のパルス幅とパルス周期とが一致する前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記設定された生成条件のパルス周期よりも短い第２期間（例えば、クロック信号ＣＬＫの１クロックサイクル分の期間）だけローレベルとなるように前記入力したＰＷＭ信号を補正するとともに、補正後のＰＷＭ信号（１９０）のパルス周期とパルス幅を検出して前記比較を行う。
【００２３】
項３のマイクロコントローラでは、前記生成条件としてデューティ比１００％が設定された場合には信号の立ち下がりエッジが検出できるようにＰＷＭ信号を補正する。これにより、デューティ比１００％であってもパルスを検出することができるから、前記生成条件としてデューティ比１００％が設定された場合でも前記ＰＷＭ信号生成部の故障判定を行うことができる。
【００２４】
〔４〕（デューティ比０％のときの補正パルスの生成方法）
項２又は３のマイクロコントローラにおいて、前記診断部は、前記ＰＷＭ信号生成部に設定された前記生成条件に応じて、入力された前記ＰＷＭ信号を補正して出力するパルス補正部（１９１）と、前記パルス補正部から出力された信号の立ち上がりエッジと立ち下がりエッジを検出する検出部（１７１）と、前記検出したエッジに基づいて前記パルス補正部から出力された信号のパルス周期とパルス幅を算出し、算出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅を比較する比較部（１９２）と、を有する。前記パルス補正部は、ＰＷＭ信号のパルス幅がゼロになる前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、１つ前のＰＷＭ信号の立ち上がりからパルス周期分の時間が経過したタイミング（例えば、図１０のクロックサイクル１１のタイミング）において、前記第１期間だけハイレベルとなる第１信号（仮想立ち上がりエッジ信号）を生成し、前記第１信号と前記入力したＰＷＭ信号の論理和をとることで前記補正後のＰＷＭ信号を生成する。また、前記比較部は、ＰＷＭ信号のパルス幅がゼロになる前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致し、且つ前記算出したパルス幅と前記第１期間に応じたパルス幅とが一致するならば、前記生成条件に応じたＰＷＭ信号が生成されていると判断し、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致せず、又は前記算出したパルス幅と前記第１期間に応じたパルス幅とが一致しないならば、前記生成条件に応じたＰＷＭ信号が生成されていないと判断する。
【００２５】
これによれば、前記生成条件としてデューティ比０％が設定された場合に、ＰＷＭ信号を容易に補正することができ、且つ、前記ＰＷＭ信号生成部の故障判定が容易となる。
【００２６】
〔５〕（デューティ比１００％のときの補正パルスの生成方法）
項４のマイクロコントローラにおいて、前記パルス補正部は、ＰＷＭ信号のパルス幅とパルス周期とが一致する前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記入力されたＰＷＭ信号が立ち上がってから所定期間が経過したタイミング（例えば、図１１のクロックサイクル１４のタイミング）において、前記第２期間だけハイレベルとなる第２信号（仮想立ち下がりエッジ信号）を生成し、前記第２信号の反転信号と前記入力したＰＷＭ信号の論理積をとることで前記補正後のＰＷＭ信号を生成する。また、前記比較部は、ＰＷＭ信号のパルス幅とパルス周期とが一致する前記生成条件が前記ＰＷＭ信号生成部に設定された場合には、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致し、且つ前記算出したパルス幅と、前記生成条件に応じたパルス幅を前記第２期間だけ短くしたパルス幅と、が一致するならば、前記生成条件に応じたＰＷＭ信号が生成されていると判断し、前記算出したパルス周期と前記生成条件に応じたパルス周期とが一致せず、又は前記算出したパルス幅と前記第２期間だけ短くしたパルス幅とが一致しないならば、前記生成条件に応じたＰＷＭ信号が生成されていないと判断する。
【００２７】
これによれば、前記生成条件としてデューティ比１００％が設定された場合に、ＰＷＭ信号を容易に補正することができ、且つ、前記ＰＷＭ信号生成部の故障判定が容易となる。
【００２８】
〔６〕（診断部における生成条件を格納するレジスタ）
項１乃至３のいずれかのマイクロコントローラ（３、４）において、前記ＰＷＭ信号生成部はパルス周期とパルス幅を含む前記生成条件を格納するための第１レジスタ（１５２、１５３）を有する。また、前記診断部は、前記第１レジスタに格納される前記生成条件を含む情報を格納するための第２レジスタ（１８３、１８４）を更に有する。更に、前記診断部（３０、４０）は、前記第２レジスタに格納された前記生成条件に基づいて前記判別を行う。
【００２９】
項６のマイクロコントローラは、前記ＰＷＭ信号生成部と前記診断部の夫々に前記生成条件を格納するためのレジスタを設けるから、前記診断部の信頼性をより向上させることができる。
【００３０】
〔７〕（生成条件をスヌープして取得して診断部のレジスタに格納）
項６のマイクロコントローラにおいて、前記診断部（３０、４０、１７０）は、前記中央処理装置による前記第１レジスタに対する前記生成条件の書き込みを監視し、前記中央処理装置が書き込む前記生成条件を取得して前記第２レジスタに格納する。
【００３１】
これによれば、前記中央処理装置ではなく前記診断部が自ら前記第２レジスタに前記生成条件を書き込むから、前記中央処理装置の処理負担を増加させることがない。
【００３２】
〔８〕（スヌープ処理の詳細）
項７のマイクロコントローラにおいて、前記中央処理装置（１１）と、前記ＰＷＭ信号生成部（２１）と、前記診断部（３０、４０、１７０）とは内部バス（１３）を介して互いに接続される。前記中央処理装置は、前記第１レジスタに前記生成条件を書き込むとき、前記第１レジスタを示すアドレス値と前記生成条件に係るデータとを前記内部バス上に出力する。また、前記診断部は、前記内部バス上に出力されるアドレス値を監視し、出力されたアドレス値が前記第１レジスタを示すアドレス値である場合には、前記内部バス上に出力された前記生成条件に係るデータを取得して、前記第２レジスタに保持する。
【００３３】
これによれば、前記診断部が前記第２レジスタに前記生成条件を書き込むことを容易に実現することができる。
【００３４】
〔９〕（ＰＷＭ信号の出力端子と入力端子）
項１乃至３又は項６乃至８のいずれかのマイクロコントローラは、前記ＰＷＭ信号生成部によって生成されたＰＷＭ信号を外部に出力するための第１端子（ＰＯＵＴ）と、外部から信号を入力するための第２端子（ＰＩＮ）と、を更に有する。前記診断部は、前記第１端子に出力されるＰＷＭ信号と、前記第２端子を介して入力されるＰＷＭ信号とを前記判別対象のＰＷＭ信号として選択可能としてもよい。
【００３５】
これによれば、例えば、前記第１端子と前記第２端子をマイクロコントローラの外部で電気的に接続することで、前記第１端子からＰＷＭ信号を出力する出力機能、及び前記第２端子から信号を入力する入力機能の異常も診断することが可能となる。
【００３６】
〔１０〕（ＰＷＭ信号生成部と診断部は同一モジュール）
項１乃至９のいずれかのマイクロコントローラ（１）において、前記ＰＷＭ信号生成部（２００）と前記診断部（２０１）とは、共通の回路モジュール（１５）内に構成される。
【００３７】
これによれば、例えば、前記ＰＷＭ信号生成部を構成する要素回路と、前記診断部を構成する要素回路を供用できる可能性が高くなるので、前記ＰＷＭ信号生成部及び前記診断部を含む回路モジュールの小面積化とコスト削減に資する。
【００３８】
〔１１〕（ＰＷＭ信号生成部と診断部は別モジュール）
項１乃至９のいずれかのマイクロコントローラ（２〜９）において、前記ＰＷＭ信号生成部（２１）と前記診断部（２０、３０、４０）とは、互いに別個の回路モジュールとして構成される。
【００３９】
例えば、前記ＰＷＭ信号生成部と前記診断部を別個の半導体チップで構成することにより、診断対象と診断主体との独立性を担保することができる。これにより、より高い信頼性を要求する安全規格に適合させることが可能となる。また、前記ＰＷＭ信号生成部と前記診断部を同一の半導体チップ内に構成した場合であっても、夫々の回路ブロックを分離させて配置させることで、信頼性をより高めることが可能となる。
【００４０】
〔１２〕（高速バスと低速バス）
項１乃至１１のいずれかのマイクロコントローラ（５〜９）は、第１バスクロック（高速クロック）で動作し、前記中央処理装置が接続される第１バス（１３）と、前記第１バスクロックとは異なる第２バスクロック（低速クロック）で動作し、前記ＰＷＭ信号生成部と前記診断部とが接続される第２バス（５２）と、前記第１バスと前記第２バスとの間の通信を制御するためのバス制御部（５１）と、を更に有する。前記第２バスクロックは、前記第１バスクロックよりも低い周波数とされる。
【００４１】
これによれば、高速な処理が要求されない前ＰＷＭ信号生成部等を前記中央処理装置の動作クロックよりも低速な動作クロックで動作させることで、消費電力を抑えることができる。
【００４２】
〔１３〕（複数のＰＷＭタイマ＋１個の診断部）
本発明の代表的な実施の形態に係る別のマイクロコントローラ（７）は、項１において、前記ＰＷＭ信号生成部が、互いに異なる複数のＰＷＭ信号を生成するよう、複数の下位ＰＷＭ信号生成部を含んで構成され、前記ＰＷＭ信号生成部から出力された複数のＰＷＭ信号を入力し、入力した複数のＰＷＭ信号のうち何れかの信号を選択して出力する第１選択部を更に有し、前記診断部が、前記第１選択部から出力されたＰＷＭ信号を入力し、入力したＰＷＭ信号に基づいて該ＰＷＭ信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記ＰＷＭ信号のパルス周期及びパルス幅とを比較するマイクロコントローラである。より具体的に記述すれば、当該マイクロコントローラ（７）は、例えば、中央処理装置（１１）と、前記中央処理装置によって設定されたＰＷＭ信号の生成条件に応じてＰＷＭ信号を生成する複数の下位ＰＷＭ信号生成部（２１＿１〜２１＿Ｍ）と、前記下位ＰＷＭ信号生成部から出力された複数のＰＷＭ信号を入力し、入力したＰＷＭ信号のうち何れかの信号を選択して出力する第１選択部（５５）と、を有する。また、前記マイクロコントローラは、前記第１選択部から出力されたＰＷＭ信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別する診断部（２０）を有する。
【００４３】
これによれば、項１と同様に、前記中央処理装置の処理負担を増加させることなく、前記ＰＷＭ信号生成部のより詳細な故障判定を行うことができる。また、これによれば、複数のＰＷＭ信号が生成される場合であっても、１つの診断部によって選択的に診断を行うことができるから、生成されるＰＷＭ信号の数に応じて診断部を設ける必要がなく、マイクロコントローラの小面積化に資する。
【００４４】
〔１４〕（ＰＷＭ信号の出力端子と入力端子）
項１３のマイクロコントローラは、前記ＰＷＭ信号生成部によって生成された複数のＰＷＭ信号を外部に出力するための複数の第１端子（ＰＯＵＴ＿１〜ＰＯＵＴ＿Ｍ）と、前記第１選択部が入力するＰＷＭ信号を外部から受けるための第２端子（ＰＩＮ＿１〜ＰＩＮ＿Ｎ）とを更に有する。前記第１選択部は、前記第１端子に出力される複数のＰＷＭ信号のうち何れか１つのＰＷＭ信号を選択して第１ＰＷＭ信号として出力するとともに、前記第２端子を介して入力された複数のＰＷＭ信号のうち何れか１つのＰＷＭ信号を選択して第２ＰＷＭ信号として出力する。また、前記診断部は、前記第１ＰＷＭ信号と前記第２ＰＷＭ信号とを前記判別対象のＰＷＭ信号として選択可能としてもよい。
【００４５】
これによれば、例えば、前記第１端子と前記第２端子をマイクロコントローラの外部で電気的に接続することで、前記第１端子からＰＷＭ信号を出力する出力機能、及び前記第２端子から信号を入力する入力機能の異常も診断することが可能となる。
【００４６】
〔１５〕（１個のＰＷＭタイマ＋複数の診断部）
本発明の代表的な実施の形態に係る別のマイクロコントローラ（８）は、項１において、前記ＰＷＭ信号生成部から出力されたＰＷＭ信号を入力し、入力したＰＷＭ信号に基づいて該ＰＷＭ信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記ＰＷＭ信号のパルス周期及びパルス幅とを比較する機能を有し、前記診断部とは異なる他の診断部を更に有するマイクロコントローラである。より具体的に記述すれば、当該マイクロコントローラ（８）は、中央処理装置（１１）と、前記中央処理装置によって設定されたＰＷＭ信号の生成条件に応じてＰＷＭ信号を生成するＰＷＭ信号生成部（２１）と、を有する。また、前記マイクロコントローラは、前記ＰＷＭ信号生成部から出力されたＰＷＭ信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別する複数の診断部（２０＿１〜２０＿Ｎ）を有する。
【００４７】
これによれば、項１と同様に、前記中央処理装置の処理負担を増加させることなく、前記ＰＷＭ信号生成部のより詳細な故障判定を行うことができる。また、これによれば、１つのＰＷＭ信号を複数の診断部によって診断することができるから、診断結果の信頼度が向上する。
【００４８】
〔１６〕（ＰＷＭ信号の出力端子と入力端子）
項１５のマイクロコントローラは、前記ＰＷＭ信号生成部によって生成されたＰＷＭ信号を外部に出力するための第１端子（ＰＯＵＴ）と、外部から信号を入力するための複数の第２端子（ＰＩＮ＿１〜ＰＩＮ＿Ｎ）と、を有する。また、前記マイクロコントローラは、前記複数の第２端子から入力されたＰＷＭ信号を入力し、入力したＰＷＭ信号のうち何れか１つの信号を選択して１つの前記診断部に出力する選択回路（６２２＿１〜６２２＿Ｎ）を前記診断回路に対応して複数有する第１選択部（６２）と、を更に有する。夫々の前記診断部は、前記第１端子に出力されるＰＷＭ信号と、対応する前記選択回路で選択された信号とを前記判別対象のＰＷＭ信号として選択可能としてもよい。
【００４９】
これによれば、例えば、前記第１端子と前記第２端子をマイクロコントローラの外部で電気的に接続することで、前記第１端子からＰＷＭ信号を出力する出力機能、及び前記第２端子から信号を入力する入力機能の異常も診断することが可能となる。
【００５０】
〔１７〕（複数のＰＷＭタイマ＋複数の診断部）
本発明の代表的な実施の形態に係る別のマイクロコントローラ（９）は、項１において、前記ＰＷＭ信号生成部が、互いに異なるｍ（ｍは２以上の整数）個のＰＷＭ信号を生成するよう、前記ｍ個の下位ＰＷＭ信号生成部を含んで構成され、前記ＰＷＭ信号生成部から出力された複数のＰＷＭ信号を入力し、入力した複数のＰＷＭ信号のうち何れかの信号を選択して出力する第１選択部を更に有し、前記診断部が、前記第１選択部から出力されたＰＷＭ信号を入力し、入力したＰＷＭ信号に基づいて該ＰＷＭ信号のパルス周期及びパルス幅を検出するとともに、検出した前記パルス周期及びパルス幅と前記生成条件に基づく前記ＰＷＭ信号のパルス周期及びパルス幅とを比較するｎ（ｎは１以上の整数）個の下位診断部を含んで構成されるマイクロコントローラである。より具体的に記述すれば、当該マイクロコントローラ（９）は、中央処理装置（１１）と、前記中央処理装置によって設定されたＰＷＭ信号の生成条件に応じてＰＷＭ信号を生成するｍ（ｍは１以上の整数）個の下位ＰＷＭ信号生成部（２１＿１〜２１＿Ｍ）と、前記下位ＰＷＭ信号生成部から出力された複数のＰＷＭ信号（１６４＿１〜１６４＿Ｍ、１６５＿１〜１６５＿Ｎ）を入力し、入力したＰＷＭ信号のうち何れかの信号を選択して出力する第１選択部（６５）と、有する。また、前記マイクロコントローラは、前記第１選択部から出力されたＰＷＭ信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに、検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別するｎ（ｎは１以上の整数）個の下位診断部（２０＿１〜２０＿Ｎ）と、を有する。
【００５１】
これによれば、項１と同様に、前記中央処理装置の処理負担を増加させることなく、前記ＰＷＭ信号生成部のより詳細な故障判定を行うことができる。また、これによれば、前記ＰＷＭ信号生成部と前記診断部の夫々の個数に応じて診断対象と診断主体の組み合わせを自由に決定することができるから、設計の自由度が増す。
【００５２】
〔１８〕（ＰＷＭ信号の出力端子と入力端子）
項１７のマイクロコントローラは、前記生成されたｍ個のＰＷＭ信号を外部に出力するためのｍ個の第１端子（ＰＯＵＴ＿１〜ＰＯＵＴ＿Ｍ）と、前記第１選択部に入力するＰＷＭ信号を外部から受けるための複数の第２端子（ＰＩＮ＿１〜ＰＩＮ＿Ｎ）とを更に有する。前記第１選択部は、１つの前記診断部に対し、前記第１端子に出力されるｍ個のＰＷＭ信号のうち何れか１つのＰＷＭ信号を選択して第１ＰＷＭ信号として出力するとともに前記第２端子を介して入力された複数のＰＷＭ信号のうち何れか１つのＰＷＭ信号を選択して第２ＰＷＭ信号として出力する選択回路（６５１＿１〜６５１＿Ｎ、６５２＿１〜６５２＿Ｎ）を、前記診断部に対応してｎ個有する。また、夫々の前記診断部は、前記第１端子に出力されるＰＷＭ信号と、対応する前記選択回路で選択された信号とを前記判別対象のＰＷＭ信号として選択可能としてもよい。
【００５３】
これによれば、例えば、前記第１端子と前記第２端子をマイクロコントローラの外部で電気的に接続することで、前記第１端子からＰＷＭ信号を出力する出力機能、及び前記第２端子から信号を入力する入力機能の異常も診断することが可能となる。
【００５４】
〔１９〕（制御装置）
本発明の代表的な実施の形態に係る制御装置（１０４）は、モータを制御するための制御装置である。前記制御装置は、モータを駆動するためのＰＷＭ信号を生成するとともに、生成したＰＷＭ信号が異常である場合には外部端子（ＥＯＵＴ）からエラー信号を出力するマイクロコントローラ（１０）と、前記生成されたＰＷＭ信号に基づいて、モータ（１０１）を駆動するためのドライバ（１０５）と、前記エラー信号を受けてモータの異常動作を防止するため処理を行う安全装置（１０６）と、を有する。前記マイクロコントローラは、中央処理装置（１１）と、前記中央処理装置によって設定された生成条件に応じてＰＷＭ信号を生成するＰＷＭ信号生成部（２００、２１）と、前記生成されたＰＷＭ信号を入力し、入力した信号に基づいてパルス周期とパルス幅を検出するとともに検出したパルス周期とパルス幅が前記生成条件に応じたパルス周期とパルス幅に一致するか否かを判別する診断部（２０１、２０、３０、４０）と、を有する。更に前記マイクロコントローラは、前記判別結果に応じて前記エラー信号を前記外部端子に出力する。
【００５５】
これによれば、項１と同様に、前記マイクロコントローラ内の前記中央処理装置の処理負担を増加させることなく、前記ＰＷＭ信号生成部の故障判定を行うことができる。また、前記検出したパルス周期及びパルス幅と前記生成条件に応じたパルス周期及びパルス幅とを比較するという、より詳細な故障判定が可能となるから、モータ制御の安全性をより高めることができる。
【００５６】
〔２０〕（診断部自身の診断方法）
本発明の代表的な実施の形態に係る判別方法は、設定された生成条件に応じてＰＷＭ信号を生成するＰＷＭ信号生成部（２００、２１）と、前記ＰＷＭ信号生成部によって生成されたＰＷＭ信号が、自らに設定された条件に応じたパルス周期とパルス幅を持つ信号であるか否かを判別する診断部（２０１、２０、３０、４０）とを有するマイクロコンピュータ（１〜９）の前記診断部が正常であるか否かを判別するための判別方法である。前記判別方法は、前記ＰＷＭ信号生成部に設定された前記生成条件（第１生成条件）と等価な条件（第１生成条件）を前記診断部に設定し、前記診断部が、前記生成されたＰＷＭ信号が前記等価な条件に応じたＰＷＭ信号と一致すると判別した場合には、前記診断部が正常であると判別し、一致しないと判別した場合には前記診断部が異常であると判断する第１ステップ（Ｓ１０５〜Ｓ１０７）を有する。更に、前記判別方法は、前記ＰＷＭ信号生成部に設定された前記生成条件（第１生成条件）と異なる条件（第２生成条件）を前記診断部に設定し、前記診断部が、前記生成されたＰＷＭ信号が前記異なる条件に応じたＰＷＭ信号と一致すると判断した場合には、前記診断部が異常であると判別し、一致しないと判断した場合には前記診断部が正常であると判別する第２ステップ（Ｓ１０８、Ｓ１０９）を有する。
【００５７】
これによれば、前記診断部自身が正常に動作するか否かを容易に判別することができる。また、ＰＷＭ信号生成部に設定する生成条件と等価な条件を設定する前記第１ステップと、ＰＷＭ信号生成部に設定する生成条件と異なる条件を設定する前記第２ステップの２つのステップで診断を行うので、前記診断部に対する診断の精度を上げることができる。これにより、ＰＷＭ信号生成部の信頼性だけでなく、診断部の信頼性をも向上させることができる。
【００５８】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００５９】
≪実施の形態１≫
図１は、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【００６０】
同図に示されるマイクロコントローラ（ＭＣＵ）１は、例えば、ＣＰＵ１１、メモリ（ＭＲＹ）１２、内部バス１３、割り込みコントローラ（ＩＮＴ＿ＣＮＴ）１４、ＰＷＭタイマ１５、及びクロック発生回路（ＣＰＧ）１６と、その他図示されない周辺回路モジュールから構成される。ＣＰＵ１１は、メモリ１２等に格納されたプログラムに係る命令を実行し、演算やデータ転送などの処理を行うプロセッサである。メモリ１２は、ＣＰＵ１１が実行するプログラム、及び当該プログラム処理によって算出されたデータを記憶するための記憶領域を備える。割り込みコントローラ１４はＰＷＭタイマ１５等の周辺回路モジュールからの割り込み要求を受け取り、受け取った割り込み要求の中から最も優先順位の高いものを選択し、専用線１８を介してＣＰＵ２に割り込み信号を出力する。クロック発生回路１６は、例えば外部端子を介して水晶発振器で生成された外部クロック信号ＥＸ＿ＣＬＫを入力し、入力した外部クロック信号ＥＸ＿ＣＬＫに基づいて精度の高いクロック信号ＣＬＫを生成してマイクロコントローラ１内の各回路モジュールに供給する。
【００６１】
ＰＷＭタイマ１５は、ＰＷＭ信号を生成する信号生成機能部２００と、ＰＷＭ信号の診断を行う診断機能部２０１とを備える。初めに、信号生成機能について説明する。
【００６２】
ＰＷＭタイマ１５は、信号生成機能部２００として、例えば、制御レジスタ（ＲＥＧ＿ＣＮＴ）１５１、パルス周期レジスタ（ＲＥＧ＿ＰＲＤ）１５２、パルス幅レジスタ（ＲＥＧ＿ＰＷ）１５３、パルス幅バッファ１５４、パルス発生回路（ＰＧ）１５６、及びカウンタ（ＣＮＴＲ）１５７を有する。例えば、ＣＰＵ１１が内部バス１３を経由して上記レジスタ１５１〜１５３にＰＷＭ信号の生成条件を設定すると、パルス発生回路１５６が、カウンタ１５７によってカウントされたクロック信号ＣＬＫのカウント値Ｃ＿ＶＡＬと、設定された生成条件とに基づいてＰＷＭ信号１６４が生成する。
【００６３】
制御レジスタ１５１は、例えば、パルス発生回路１５６がＰＷＭ信号の出力を行うか否かを示す情報（以下、パルス出力制御情報、とも称する。）と、後述する診断対象のＰＷＭ信号を指定するための選択情報（以下、パルス選択情報、とも称する。）と、後述する診断結果がエラーであった場合に割り込みを発生させる否かを示す情報（以下、割り込み発生制御情報、とも称する。）と、後述する比較回路１６１によって比較処理を行うか否かを示す情報（以下、比較処理制御情報、とも称する。）と、がＣＰＵ１１によって設定される。
【００６４】
パルス周期レジスタ１５２は、例えば、生成すべきＰＷＭ信号のパルス周期を示す情報がＣＰＵ１１によって設定される。また、パルス幅レジスタ１５３は、例えば、生成すべきＰＷＭ信号のパルス幅を示す情報がＣＰＵ１１によって設定される。パルス周期レジスタ１５２及びパルス幅レジスタ１５３に設定される値は、例えば、カウンタ１５７によってカウントされるカウント値と比較される値である。ここで、パルス周期レジスタ１５２に設定された値は、その時点で出力中のＰＷＭ信号のパルス周期を指定するものとする。また、パルス幅レジスタ１５３に設定された値は、次に出力されるＰＷＭ信号が出力されるタイミングでパルス幅バッファ１５４に書き込まれるものとし、パルス幅バッファ１５４に書き込まれた値は、その時点で出力中のＰＷＭ信号のパルス幅を指定するものとする。
【００６５】
パルス幅バッファ１５４は、前記パルス幅レジスタ１５３に設定されたパルス幅のＰＷＭ信号を出力するタイミングを調整するためにバッファであり、前記パルス幅レジスタ１５３の値が設定される。パルス幅バッファ１５４の詳細については後述する。
【００６６】
制御レジスタ１５１、パルス周期レジスタ１５２、及びパルス幅レジスタ１５３の値は、パルス発生回路１５６、比較回路１６１、及び割り込み発生回路１６３に出力される。
【００６７】
カウンタ１５７は、クロックＣＬＫをカウントし、そのカウント値Ｃ＿ＶＡＬはＰＷＭ信号のパルス周期およびパルス幅を決定するために使用される。
【００６８】
パルス発生回路１５６は、カウンタ１５７のカウンタ値Ｃ＿ＶＡＬを監視する。パルス発生回路１５６は、パルス幅バッファ１５４の値がゼロ（デューティ比０％）でなく、且つカウンタ値Ｃ＿ＶＡＬがパルス周期レジスタ１５２に設定された値と一致したら、次のクロック信号ＣＬＫの立ち上がりタイミングでＰＷＭ信号１６４の信号レベルをハイ（Ｈｉｇｈ）レベルに変化させるとともに、パルス幅バッファ１５４に書き込み信号を出力してパルス幅レジスタ１５３の値を書き込ませる。このとき、パルス発生回路１５６は更に、カウンタ１５７にリセット信号を出力してカウンタ値Ｃ＿ＶＡＬを初期値“１”にする。その後、パルス発生回路１５６はカウンタ値Ｃ＿ＶＡＬがパルス幅バッファ１５４の値に一致したら、クロック信号ＣＬＫの次の立ち上がりタイミングでＰＷＭ信号１６４の信号レベルをロー（Ｌｏｗ）レベルに変化させる。なお、パルス幅として設定できる値はゼロからパルス周期の値までである。パルス幅がゼロである場合にはＰＷＭ信号１６４は１周期の間全てローレベルの信号（デューティ比０％）となり、パルス幅がパルス周期と同じ値である場合には１周期の間全てハイレベルの信号（デューティ比１００％）となる。ＰＷＭ信号１６４の具体的に生成方法について、図２を用いて詳細に説明する。
【００６９】
図２は、ＰＷＭタイマ１５の動作タイミングの一例を示すタイミングチャートである。
【００７０】
同図において、制御レジスタ１５１にはパルス出力を行う設定がなされているとする。同図では、理解を容易にするため、パルス幅の異なる２つのＰＷＭ信号のパルス周期が極めて短い値とした場合を示しているが、これに限られない。例えば、実動作ではクロック信号ＣＬＫの周波数を２０ＭＨｚとすると、ＰＷＭ信号１６４は２０ｋＨｚ程度のパルス周期であり、１０００サイクルとなる。なお、同図ではクロック信号ＣＬＫにクロックサイクルを表す番号を付している。
【００７１】
同図において、内部バス１３に出力される信号は、レディ信号ＲＤＹ、コマンド信号ＣＭＤ、アドレス信号Ａ、及びライトデータＷＤである。例えば、前記レディ信号ＲＤＹはバスコマンドＣＭＤが有効か無効かを示し、有効な場合は“１（Ｈｉｇｈ）”、無効な場合は“０（Ｌｏｗ）”となる。バスコマンドＣＭＤはＣＰＵ１１のアクセスの種類を示し、“Ｗ”は書き込み命令、“Ｎ”は何もしないことを示す命令（ＮＯＰ：Ｎｏ  Ｏｐｅｒａｔｉｏｎ）を表す。アドレスＡはＣＰＵ１１がアクセスする対象であるレジスタやメモリのアドレスである。ライトデータＷＤはアドレスＡで指定したレジスタ等に書き込むデータである。
【００７２】
同図に示されるように、クロックサイクル１において、ＣＰＵ１１は内部バス１３にライトコマンドＷとアドレスＡ１を出力する。アドレスＡ１は、パルス周期レジスタ１５２のアドレスである。次のクロックサイクル２でＣＰＵ１１はライトデータＤ１を出力する。そして、クロックサイクル３においてライトデータＤ１がパルス周期レジスタ１５２に書き込まれると、カウンタ１５７がカウントを開始する。また、クロックサイクル３においてＣＰＵ１１は内部バス１３にライトコマンドＷとアドレスＡ２を出力する。アドレスＡ２は、パルス幅レジスタ１５３のアドレスである。次のクロックサイクル４でＣＰＵ１１はライトデータＤ２を出力し、クロックサイクル５においてライトデータＤ２がパルス幅レジスタ１５３に書き込まれる。また、クロックサイクル７においてもＣＰＵ１１によるパルス幅レジスタ１５３へのライトアクセスが行われ、ライトデータＤ３（＝３）が書き込まれる。
【００７３】
パルス発生回路１５６は、クロックサイクル６でカウンタ１５７の値がパルス周期レジスタ１５２の値Ｄ１（＝４）と一致すると、次のクロックサイクル７でＰＷＭ信号１５４の信号レベルをハイレベルにするとともに、カウンタ１５７を初期値“１”にリセットし、パルス幅レジスタ１５３の値Ｄ２（＝２）をパルス幅バッファ１５４に書き込む。その後、クロックサイクル８において、カウンタ１５７の値がパルス幅バッファ１５４の値“２”と一致すると、パルス発生回路１５６はＰＷＭ信号１６４の信号レベルをローレベルにする。仮に、パルス発生回路１５６がパルス幅バッファ１５４ではなく前記パルス幅レジスタ１５３に基づいてパルス幅を決定すると、ＰＷＭ信号が立ち下がるタイミングより前のタイミングで前記パルス幅レジスタ１５３に書き込みが行われた場合には、出力中のＰＷＭ信号のパルス幅としてパルス幅レジスタ１５３の値が反映されるが、パルスの立ち下がるタイミングより後に書き込みが行われた場合には、その時点で出力中のＰＷＭ信号のパルス幅としてパルス幅レジスタ１５３の値を反映することができない。すなわち、ＣＰＵ１１がパルス幅レジスタ１５３に書き込みを行うタイミングとパルスの立ち下がりのタイミングが前後することにより、パルス幅レジスタ１５３に設定された値がＰＷＭ信号に反映されない場合がある。このような現象が生じるのを防ぐために、ＰＷＭタイマ１５では、パルス幅レジスタ１５３の値を次のパルス周期の開始されるタイミング（例えば、図２におけるクロックサイクル７及びクロックサイクル１１）でパルス幅バッファ１５４に書き込み、パルス幅バッファ１５４に設定された値に基づいてＰＷＭ信号のパルス幅を決定する。
【００７４】
その後、クロックサイクル１０においてカウンタ１５７の値がパルス周期レジスタ１５２の値“４”と一致すると、次のクロックサイクル１１においてＰＷＭ信号１６４の信号レベルをハイレベルにするとともに、カウンタ１５４を初期値“１”にリセットし、パルス幅レジスタ１５３の値Ｄ３（＝３）をパルス幅バッファ１５４に書き込む。そして、クロックサイクル１３において、カウンタ１５７の値がパルス幅バッファ１５４の値“３”と一致すると、次のクロックサイクル１４においてパルス発生回路１５６はＰＷＭ信号１６４の信号レベルをローレベルにする。
【００７５】
以上の処理を繰り返す行うことにより、ＰＷＭタイマ１５はＣＰＵ１１によって設定されたＰＷＭ信号の生成条件にしたがってＰＷＭ信号を生成する。
【００７６】
次に、ＰＷＭタイマ１５の診断機能について説明する。ＰＷＭタイマ１５は、診断機能部２０１として、例えば、フリップフロップ回路（ＦＦ）１５８、パルス選択回路（ＳＬＣＴＲ）１５９、エッジ検出回路（ＤＴＣＴ＿ＥＤＧ）１６０、比較回路（ＣＭＰ）１６１、状態レジスタ（ＲＥＧ＿ＳＴ）１６２、及び割り込み発生回路（ＩＮＴ）１６３を有する。
【００７７】
パルス選択回路１５９は、入力したＰＷＭ信号から診断対象のＰＷＭ信号を選択してエッジ検出回路１６０に出力する。例えばパルス選択回路１５９は、パルス生成回路１５６から出力されたＰＷＭ信号１６４と、外部入力端子ＰＩＮから入力された外部ＰＷＭ信号１６５とを入力し、いずれかのＰＷＭ信号を選択して出力する。どちらのＰＷＭ信号を選択するかは、例えば、制御レジスタ１５１に設定された前記パルス選択情報に応じて決定される。
【００７８】
エッジ検出回路１６０は、パルス選択回路１５９によって選択されたＰＷＭ信号１６６の立ち上がりエッジ及び立ち下がりエッジを検出し、エッジ検出信号を出力する。フリップフロップ回路１５８はカウンタ値Ｃ＿ＶＡＬをクロック信号ＣＬＫの１サイクル分遅らせたカウンタ値（以下、カウンタ遅延値、とも称する。）ＣＤ＿ＶＡＬを出力する。
【００７９】
比較回路１６１は、エッジ検出回路１６０からのエッジ検出信号に応じて、立ち上がりエッジが検出されたときのＦＦ１５８のカウンタ遅延値ＣＤ＿ＶＡＬと、立ち下がりエッジが検出されたときのフリップフロップ回路１５８のカウンタ遅延値ＣＤ＿ＶＡＬとを取り込む。そして、立ち上がりエッジが検出されたときのフリップフロップ回路１５８の値と前記パルス周期レジスタ１５２の値とを比較して一致するか否かを判別するとともに、立ち下がりエッジが検出されたときのフリップフロップ回路１５８の値と前記パルス幅レジスタ１５３に設定された値とを比較して一致するか否かを判別する。その判別の結果は、状態レジスタ１６２に出力される。
【００８０】
状態レジスタ１６２は、比較回路１６１が不一致を検出したか否かを示す故障検出ビットを備える。例えば、比較回路１６１がパルス周期又はパルス幅の不一致を検出した場合には、エラーを示す値を保持し、その後もその値を保持し続ける。
【００８１】
割り込み発生回路１６３は、状態レジスタ１６２を監視し、状態レジスタ１６２にエラーを示す情報が設定されたら、割り込みコントローラ１４に対して割り込み要求を発行する。比較回路１６１がパルス周期又はパルス幅の不一致を検出した場合に割り込みを発生させるか否かは、制御レジスタ１５１に設定された前記割り込み発生制御情報にしたがって決定される。
【００８２】
ＰＷＭ信号の診断に係る動作タイミングについて、前述の図２を用いて詳細に説明する。同図では、一例として、パルス選択回路１５９がＰＷＭ信号１６４を選択して出力するものとする。
【００８３】
図２に示されるように、クロックサイクル９においてエッジ検出回路１６０がＰＷＭ信号１６４の立ち下がりエッジを検出すると、比較回路１６１はカウンタ遅延値ＣＤ＿ＶＡＬ（＝２）とパルス幅バッファ１５３の値とを比較する比較処理Ｃ１を行う。すなわち、パルスの立ち上がりのタイミングとカウンタ１５７によるカウント開始のタイミングを合わせていること、及びカウント値Ｃ＿ＶＡＬを遅延させたカウント遅延値ＣＤ＿ＶＡＬを生成することにより、立ち下がりエッジのタイミングにおけるカウンタ遅延時ＣＤ＿ＶＡＬの値をＰＷＭ信号１６４のパルス幅の値として読み取ることができる。したがって、当該タイミングで読み取ったカウント遅延値ＣＤ＿ＶＡＬとパルス幅バッファ１５３の値とを比較することで、設定通りのパルス幅のＰＷＭ信号が生成されているか否かを判別することができる。
【００８４】
その後、クロックサイクル１１においてエッジ検出回路１６０がＰＷＭ信号１６４の立ち上がりエッジを検出すると、カウンタ遅延値ＣＤ＿ＶＡＬとパルス周期レジスタ１５２の値を比較する比較処理Ｃ２を行う。すなわち、前述したように、パルスの立ち上がりのタイミングとカウンタ１５７によるカウント開始のタイミングを合わせていること、及びカウント値Ｃ＿ＶＡＬを遅延させたカウント遅延値ＣＤ＿ＶＡＬを生成することにより、立ち上がりエッジのタイミングにおけるカウンタ遅延時ＣＤ＿ＶＡＬの値をＰＷＭ信号１６４のパルス周期の値として読み取ることができる。したがって、当該タイミングで読み取ったカウント遅延値ＣＤ＿ＶＡＬとパルス周期レジスタ１５２の値とを比較することで、設定通りのパルス周期のＰＷＭ信号が生成されているか否かを判別することができる。
【００８５】
同様の方法により、クロックサイクル１４においてパルス幅の比較の処理（Ｃ３）が行われ，クロックサイクル１５においてパルス周期の比較の処理（Ｃ４）が行われる。
【００８６】
以上実施の形態１に係るマイクロコントローラ１によれば、ＰＷＭ信号のパルス幅とパルス周期を検出することにより、ＰＷＭ信号がＣＰＵ１１によって設定された生成条件通りに生成されているか否かを診断することができ、ＰＷＭタイマ１５の詳細な故障診断が可能となる。また、ＣＰＵ１１ではなくエッジ検出回路１６０や比較回路１６１等によって前記診断のための処理を実現するから、ＣＰＵ１１の処理負担を増加させることなく、ＰＷＭタイマ１５の故障判定を行うことができる。
【００８７】
またマイクロコントローラ１によれば、例えば、外部出力端子ＰＯＵＴと外部入力端子ＰＩＮをマイクロコントローラ１の外部で電気的に接続することで、パルス発生回路１５６で生成したＰＷＭ信号１６４を、外部入力端子ＰＩＮを介して入力し、入力したＰＷＭ信号の診断を行うことも可能である。これによれば、外部出力端子ＰＯＵＴからＰＷＭ信号１６４を出力する出力機能と、外部入力端子ＰＩＮからＰＷＭ信号を入力する入力機能が正常であるか否かの診断も行うことができる。
【００８８】
マイクロコントローラ１によれば、ＰＷＭ信号のエラーを検出したときに割り込みを発生させるか否かを、制御レジスタ１５１の前記割り込み発生制御情報によって決定することができるから、システム設計の自由度が増す。例えば、割り込み要求を発生させない設定にすることで、ＣＰＵ１１がＰＷＭ信号のエラーが検出されたときには実行中の処理を中断せず、その処理が完了してから前記エラー検出に応じた処理を行うようなシステムとすることが可能となる。この場合、例えば、ＣＰＵ１１が定期的に状態レジスタ１６２をアクセスしてその値を監視するように設計すればよい。
【００８９】
更に、マイクロコントローラ１は、ＰＷＭ信号を生成する機能部とＰＷＭ信号を診断する機能部とがＰＷＭタイマ１５内に構成されるので、ＰＷＭ信号を生成する機能部とＰＷＭ信号を診断する機能部との間で回路を供用することができる。例えば、ＰＷＭ信号を診断する機能部は、パルス周期レジスタ１５２、パルス幅レジスタ１５３、及びパルス幅バッファ１５４の値を診断のためのリファレンスとして利用することができるので、別途、前記生成条件を設定するためのレジスタ等を設ける必要がない。同様に、ＰＷＭ信号を生成するための基準となるカウンタ１５７のカウント値Ｃ＿ＶＡＬを利用してカウンタ遅延値ＣＤ＿ＶＡＬを生成することで、診断機能のために別途、カウンタを設ける必要がない。したがって、マイクロコントローラ１によれば、既存のＰＷＭタイマ１５に診断機能を追加したことによるチップ面積の増加を抑えることができる。特にＰＷＭタイマ１５を新規設計する場合に、有効な手段と言える。
【００９０】
≪実施の形態２≫
図３は、実施の形態２に係る、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。
【００９１】
実施の形態１では、ＰＷＭタイマ１５がＰＷＭ信号を生成する機能部とＰＷＭ信号を診断する機能部とを備える構成としたが、実施の形態２では、ＰＷＭ信号を診断する機能部をＰＷＭタイマから独立した別の回路モジュールとする。
【００９２】
図３に示されるように、マイクロコントローラ２は、ＰＷＭタイマ２１に加え、ＰＷＭ信号診断部２０を有する。なお、同図において、図１のマイクロコントローラ１と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。
【００９３】
ＰＷＭ信号診断部２０は、パルス選択回路（ＳＬＣＴＲ）１５９、カウンタ（ＣＮＴＲ）１７２、エッジ検出回路（ＤＴＣＴ＿ＥＤＧ）１７１、立ち上がりエッジレジスタ（ＲＥＧ＿ＲＥＤＧ）１７３、比較回路（ＣＭＰ）１７６、状態レジスタ（ＲＥＧ＿ＳＴ）１６２、制御レジスタ（ＲＥＧ＿ＣＮＴ）１７４、及び割り込み発生回路（ＩＮＴ）１６３を有する。
【００９４】
制御レジスタ１７４には、前記パルス選択情報と、前記割り込み発生制御情報と、前記比較処理制御情報とが、内部バス１３を介してＣＰＵ１１によって設定される。なお、ＰＷＭタイマ２１内の制御レジスタ１５１には、前記パルス出力制御情報が設定される。
【００９５】
カウンタ１７２はＰＷＭタイマ２１のカウンタ１５７とは独立してクロック信号ＣＬＫをカウントする。カウンタ１７２は、カウンタ１５７と同様にＰＷＭ信号１６４の１周期毎に初期化するカウンタでもよいが、ここでは、初期化を行わないフリーランニングカウンタとする場合を例示する。
【００９６】
パルス選択回路１５９は、制御レジスタ１７４に設定された前記パルス選択情報に応じたＰＷＭ信号を選択し、エッジ検出回路１７１に与える。エッジ検出回路１７１は、パルス選択回路１５９によって選択されたＰＷＭ信号１６６の立ち上がりエッジ及び立ち下がりエッジを検出する。エッジ検出回路１７１は、選択されたＰＷＭ信号の立ち下がりエッジを検出すると、立ち上がりエッジレジスタ１７３に対してカウンタ１７２のカウント値ＣＦ＿ＶＡＬの書き込みを指示するとともに、比較回路１７６に対して比較処理の実行を指示する。また、エッジ検出回路１７１は、選択されたＰＷＭ信号の立ち上がりエッジを検出した場合も同様に、比較回路１７６に対して比較処理の実行を指示する。
【００９７】
立ち上がりエッジレジスタ１７３は、エッジ検出回路１７１からの書き込みの指示に応じて、そのときのカウント値ＣＦ＿ＶＡＬを保持する。
【００９８】
比較回路１７６は、エッジ検出回路１７１が立ち上がりエッジを検出したときに出力する比較処理の実行の指示を受けとると、そのときのカウンタ１７２のカウント値ＣＦ＿ＶＡＬと、立ち上がりエッジレジスタ１７３の値を取得し、取得した値に基づいてＰＷＭ信号１６６のパルス周期を算出するとともに、算出したパルス周期の値とＰＷＭタイマ２１におけるパルス周期レジスタ１５２の値を比較し、比較の結果を状態レジスタ１６２に出力する。パルス周期の算出は、例えば、立ち上がり時に取得したカウント値ＣＦ＿ＶＡＬから前記立ち上がりエッジレジスタ１７３の値を減算することにより行う。また、比較回路１７６は、エッジ検出回路１７１による立ち下がりエッジ検出時の比較処理の実行の指示を受けると、そのときのカウンタ１７２のカウント値ＣＦ＿ＶＡＬと、立ち上がりエッジレジスタ１７３の値を取得し、取得した値に基づいてＰＷＭ信号１６６のパルス幅を算出するとともに、算出したパルス幅の値とＰＷＭタイマ２１におけるパルス幅バッファ１５４の値を比較し、比較の結果を状態レジスタ１６２に出力する。パルス幅の算出は、例えば、立ち下がり時に取得したカウント値ＣＦ＿ＶＡＬから前記立ち上がりエッジレジスタ１７３の値を減算することにより行う。なお、比較回路１７６が比較処理を行うか否かは、制御レジスタ１７４に設定された前記比較処理制御情報にしたがって決定される。
【００９９】
状態レジスタ１６２は、実施の形態１と同様に、比較回路１７６がパルス周期又はパルス幅の不一致を検出した場合には、エラーを示す値を保持し、その後もその値を保持し続ける。割り込み発生回路１６３は、状態レジスタ１６２を監視し、状態レジスタ１６２にエラーを示す情報が設定されたら、割り込みコントローラ１４に対して割り込み要求１７を発行する。パルス周期又はパルス幅の不一致を検出した場合に割り込みを発生させるか否かは、制御レジスタ１７４に設定された前記割り込み発生制御情報にしたがって決定される。
【０１００】
図４は、ＰＷＭタイマ２１とＰＷＭ信号診断部２０の動作タイミングの一例を示すタイミングチャートである。同図では、前述の図２と同様に、制御レジスタ１５１にはパルス出力を行う設定がなされているものとし、パルス選択回路１５９がＰＷＭ信号１６４を選択して出力するものとする。なお、同図ではクロック信号ＣＬＫにクロックサイクルを表す番号を付している。
【０１０１】
同図において、ＰＷＭ信号１６４の生成タイミングは図２と同様である。クロックサイクル７において、エッジ検出回路１７１がＰＷＭ信号１６４の立ち上がりエッジを検出すると、次のクロックサイクル８において、立ち上がりエッジレジスタ１７３にカウンタ１７２のカウント値ＣＦ＿ＶＡＬ（＝４２）が書き込まれる。その後、クロックサイクル９において、エッジ検出回路１７１がＰＷＭ信号１６４の立ち下がりエッジを検出すると、比較回路１７６はパルス幅を算出するとともに、算出結果とパルス幅バッファ１５４の値と比較する比較処理Ｃ１を行う。同図の場合、立ち下がりエッジ検出時のカウンタ値ＣＦ＿ＶＡＬ（＝４４）から前記立ち上がりエッジレジスタ１７３の値（＝４２）を減算した値（＝２）がＰＷＭ信号１６４のパルス幅の値となり、パルス幅バッファ１５４の値Ｄ２（＝２）と一致する。
【０１０２】
その後、クロックサイクル１１において、エッジ検出回路１７１がＰＷＭ信号１６４の立ち上がりエッジを検出すると、比較回路１７６はパルス周期を算出するとともに、算出結果とパルス周期レジスタ１５２の値と比較する比較処理Ｃ２を行う。同図の場合、立ち上がりエッジ検出時のカウンタ値ＣＦ＿ＶＡＬ（＝４６）から前記立ち上がりエッジレジスタ１７３の値（＝４２）を減算した値（＝４）がＰＷＭ信号１６４のパルス周期の値となり、パルス周期レジスタ１５２の値Ｄ１（＝４）と一致する。また、エッジ検出回路１７１がＰＷＭ信号１６４の立ち上がりエッジを検出した次のクロックサイクル１２において、立ち上がりエッジレジスタ１７３にカウンタ１７２のカウント値ＣＦ＿ＶＡＬ（＝４６）が書き込まれる。同様の方法により、クロックサイクル１４においてパルス幅の比較の処理が行われ，クロックサイクル１５においてパルス周期の比較の処理が行われる。
【０１０３】
以上実施の形態２に係るマイクロコントローラ２によれば、実施の形態１と同様に、ＣＰＵ１１の処理負担を増加させることなく、ＰＷＭタイマ２１のより詳細な故障判定を行うことができる。また、マイクロコントローラ２はＰＷＭタイマ２１から独立した回路モジュールとしてＰＷＭ診断回路２０を備えるから、既存の設計資産を用いてＰＷＭタイマ２１を設計した場合であっても、ＰＷＭタイマ部分の改造が少なくて済むという利点がある。また、ＰＷＭタイマ２１とＰＷＭ診断回路２０を同一の半導体チップ内に構成した場合、夫々の回路ブロックを分離させて配置させることで、信頼性をより高めることが可能となる。仮にＰＷＭタイマ２１とＰＷＭ診断回路２０を別個の半導体チップで構成した場合、診断対象と診断主体との独立性を担保することができるから、より高い信頼性を要求する安全規格に適合させることが可能となる。
【０１０４】
≪実施の形態３≫
図５は、実施の形態３に係る、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ１及び２と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。
【０１０５】
同図に示されるマイクロコントローラ３は、ＰＷＭ診断部３０の内部に、ＰＷＭ信号の診断に利用するＰＷＭ信号の生成条件の情報を格納するためのレジスタを備える。
【０１０６】
ＰＷＭ信号診断部３０は、パルス選択回路（ＳＬＣＴＲ）１５９、カウンタ（ＣＮＴＲ）１７２、エッジ検出回路（ＤＴＣＴ＿ＥＤＧ）１７１、立ち上がりエッジレジスタ（ＲＥＧ＿ＲＥＤＧ）１７３、比較回路（ＣＭＰ）１８６、レジスタ制御回路１７０、状態レジスタ（ＲＥＧ＿ＳＴ）１６２、制御レジスタ（ＲＥＧ＿ＣＮＴ）１７４、スヌープレジスタ（ＲＥＧ＿ＳＮＰ＿Ａ）１８１、スヌープレジスタ（ＲＥＧ＿ＳＮＰ＿Ｂ）１８２、パルス周期レジスタ（ＲＥＧ＿ＰＲＤ）１８３、パルス幅レジスタ（ＲＥＧ＿ＰＷ）１８４、パルス幅バッファ１８５、及び割り込み発生回路（ＩＮＴ）１６３を有する。
【０１０７】
制御レジスタ１７４には、前記パルス選択情報、前記割り込み発生制御情報、及び前記比較処理制御情報に加え、後述するレジスタ制御部１７０によるスヌープ機能を有効にするか否かを示す情報（以下、スヌープ制御情報、とも称する。）が設定される。
【０１０８】
パルス周期レジスタ１８３は、ＰＷＭタイマ２１のパルス周期レジスタ１５２に設定されるＰＷＭ信号のパルス周期を示す情報が設定される。パルス幅レジスタ１８４は、ＰＷＭタイマ２１のパルス幅レジスタ１５３に設定されるＰＷＭ信号のパルス幅を示す情報が設定される。パルス周期レジスタ１８３及びパルス幅レジスタ１８４の設定は、例えば、レジスタ制御部１７０のスヌープ機能によって実現される。
【０１０９】
レジスタ制御回路１７０は、内部バス１３上に出力されるアドレス値を監視し、出力されたアドレス値に対応するＰＷＭ診断部３０内のレジスタに、前記内部バス１３上に出力されたライトデータを書き込む。例えば、内部バス１３上に制御レジスタ１７４のアドレス値が出力されたら、前記内部バス１３上に出力されたライトデータを取得し、制御レジスタ１７４に書き込む。
【０１１０】
また、レジスタ制御部１７０はスヌープ機能を備える。具体的には、レジスタ制御部１７０は、スヌープレジスタ１８１、１８２に格納された値に応じたアドレス値が内部バス上１３に出力されたら、内部バス１３に出力されたライトデータを取得し、スヌープレジスタ１８１、１８２に対応づけられた所定のレジスタに前記取得したライトデータを書き込む。スヌープレジスタ１８１、１８２には、スヌープ対象のレジスタ等のアドレス値が設定される。例えば、スヌープレジスタ１８１にＰＷＭタイマ２１内のパルス周期レジスタ１５２のアドレス値が設定され、スヌープレジスタ１８１がパルス周期レジスタ１８３に対応づけられている場合、レジスタ制御部１７０は、内部バス１３上にパルス周期レジスタ１５２のアドレス値が出力されたら、そのライトデータを取得し、取得したライトデータをパルス周期レジスタ１８３に書き込む。また、例えば、スヌープレジスタ１８２にＰＷＭタイマ２１内のパルス幅レジスタ１５３のアドレス値が設定され、スヌープレジスタ１８２がパルス幅レジスタ１８４に対応づけられている場合、レジスタ制御部１７０は、内部バス１３上にパルス幅レジスタ１５３のアドレス値が出力されたら、そのライトデータを取得し、取得したライトデータをパルス周期レジスタ１８４に書き込む。これによれば、ＰＷＭ信号の診断のために、ＣＰＵ１１がパルス周期レジスタ１８３及びパルス幅レジスタ１８４に前記生成条件を設定する必要がないから、ＰＷＭ信号の診断に係るＣＰＵ１１の処理負担の増加を抑えることができる。なお、レジスタ制御部１７０によるスヌープ機能を有効にするか否かは、制御レジスタ１７４に設定された前記スヌープ機能制御情報によって決定される。スヌープ機能を有効にしない場合には、例えば、パルス周期レジスタ１８３とパルス幅レジスタ１８４に固有のアドレスを割り当て、ＣＰＵ１１がそのアドレスを指定してアクセスできるようにすることも可能である。
【０１１１】
比較回路１８６は、エッジ検出回路１７１が立ち上がりエッジを検出したときに出力する比較処理の実行の指示を受けとると、そのときのカウンタ１７２のカウント値ＣＦ＿ＶＡＬと、立ち上がりエッジレジスタ１７３の値を取得し、取得した値に基づいてＰＷＭ信号１６６のパルス周期を算出するとともに、算出したパルス周期の値とパルス周期レジスタ１８３の値を比較し、比較の結果を状態レジスタ１６２に出力する。パルス周期の算出は、例えば、立ち上がり時に取得したカウント値ＣＦ＿ＶＡＬから前記立ち上がりエッジレジスタ１７３の値を減算することにより行う。また、比較回路１８６は、エッジ検出回路１７１が立ち下がりエッジを検出したときに出力する比較処理の実行の指示を受けとると、そのときのカウンタ１７２のカウント値ＣＦ＿ＶＡＬと、立ち上がりエッジレジスタ１７３の値を取得し、取得した値に基づいてＰＷＭ信号１６６のパルス幅を算出するとともに、算出したパルス幅の値とパルス幅バッファ１８５の値を比較し、比較の結果を状態レジスタ１６２に出力する。パルス幅の算出は、例えば、立ち下がり時に取得したカウント値ＣＦ＿ＶＡＬから前記立ち上がりエッジレジスタ１７３の値を減算することにより行う。
【０１１２】
図６は、ＰＷＭタイマ２１とＰＷＭ診断部３０の動作タイミングの一例を示すタイミングチャートである。同図では、前述の図２及び図４と同様に、制御レジスタ１５１にはパルス出力を行う設定がなされているものとし、パルス選択回路１５９がＰＷＭ信号１６４を選択して出力するものとする。また、ＰＷＭ診断部３０８のスヌープレジスタ１８１にはＰＷＭタイマ２１のパルス周期レジスタ１５２のアドレス（Ａ１）が書き込まれており、スヌープレジスタ１８２にはＰＷＭタイマ２１のパルス幅レジスタ１５３のアドレス（Ａ２）が書き込まれているものとする。なお、同図ではクロック信号ＣＬＫにクロックサイクルを表す番号を付している。
【０１１３】
同図において、ＰＷＭ信号１６４の生成タイミングは図２及び図４と同様である。クロックサイクル１において内部バス１３上にコマンド信号Ｗ及びアドレスＡ１が出力されると、レジスタ制御部１７０は、次のクロックサイクル２で出力されたライトデータＤ１（＝４）を取得して、クロックサイクル３においてパルス周期レジスタ１８３にライトデータＤ１を書き込む。また、クロックサイクル３において、内部バス１３上にコマンド信号Ｗ及びアドレスＡ２が出力されると、レジスタ制御部１７０は、次のクロックサイクル４で出力されたライトデータＤ２（＝２）を取得して、クロックサイクル５においてパルス幅レジスタ１８４にライトデータＤ２を書き込む。これにより、ＰＷＭタイマ２１に設定された生成条件と同一の条件が、ＰＷＭ信号診断部３０に設定される。
【０１１４】
クロックサイクル７において、エッジ検出回路１７１がＰＷＭ信号１６４の立ち上がりエッジを検出すると、次のクロックサイクル８において、立ち上がりエッジレジスタ１７３にカウンタ１７２のカウント値ＣＦ＿ＶＡＬ（＝４２）が書き込まれるとともに、パルス幅バッファ１８５にパルス幅レジスタ１８３の値が書き込まれる。その後、クロックサイクル９において、エッジ検出回路１７１がＰＷＭ信号１６４の立ち下がりエッジを検出すると、比較回路１８６はパルス幅を算出するとともに、算出結果とパルス幅バッファ１８５の値と比較する比較処理Ｃ１を行う。同図の場合、立ち下がりエッジ検出時のカウンタ値ＣＦ＿ＶＡＬ（＝４４）から前記立ち上がりエッジレジスタ１７３の値（＝４２）を減算した値（＝２）がＰＷＭ信号１６４のパルス幅の値となり、パルス幅バッファ１８５の値Ｄ２（＝２）と一致する。
【０１１５】
その後、クロックサイクル１１において、エッジ検出回路１７１がＰＷＭ信号１６４の立ち上がりエッジを検出すると、比較回路１８６はパルス周期を算出するとともに、算出結果とパルス周期レジスタ１８３の値と比較する比較処理Ｃ２を行う。同図の場合、立ち上がりエッジ検出時のカウンタ値ＣＦ＿ＶＡＬ（＝４６）から前記立ち上がりエッジレジスタ１７３の値（＝４２）を減算した値（＝４）がＰＷＭ信号１６４のパルス周期の値となり、パルス周期レジスタ１８３の値Ｄ１（＝４）と一致する。また、エッジ検出回路１７１がＰＷＭ信号１６４の立ち上がりエッジを検出した次のクロックサイクル１２において、立ち上がりエッジレジスタ１７３にカウンタ１７２のカウント値ＣＦ＿ＶＡＬ（＝４６）が書き込まれる。同様の方法により、クロックサイクル１４においてパルス幅の比較の処理が行われ、クロックサイクル１５においてパルス周期の比較の処理が行われる。
【０１１６】
以上実施の形態３に係るマイクロコントローラ３によれば、実施の形態１、２と同様に、ＣＰＵ１１の処理負担を増加させることなく、ＰＷＭタイマ２１のより詳細な故障判定を行うことができる。また、マイクロコントローラ３は、ＰＷＭ信号診断部３０内にパルス周期レジスタ１８３、パルス幅レジスタ１８４、及びパルス幅バッファ１８５を備えることで、ＰＷＭタイマ２１が備えるパルス周期レジスタ１５２、パルス幅レジスタ１５３、及びパルス幅バッファ１５４と独立してＰＷＭ信号の期待値を持つことができる。これにより、実施の形態２に係るＰＷＭ信号診断部２０よりも更に信頼性を向上させることができる。独立したＰＷＭ信号診断部３０内に上記レジスタ１８３〜１８５を設けたことにより、ＣＰＵ１１による当該レジスタ１８３〜１８５に対する書き込み処理が必要になるところ、マイクロコントローラ３によれば、ＰＷＭ診断部３０が前記スヌープ機能を備えるので、ＣＰＵ１１による上記レジスタ１８３〜１８５に対する書き込み処理が不要となり、ＣＰＵ１１の処理負担の増加を抑えることができる。
【０１１７】
≪実施の形態４≫
図７は、実施の形態４に係る、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ１乃至３と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。
【０１１８】
同図に示されるマイクロコントローラ４は、ＰＷＭ信号の生成条件としてデューティ比０％、１００％が設定された場合であってもＰＷＭ信号の診断を可能とする。
【０１１９】
ＰＷＭ信号のパルス幅が０（ゼロ）となる場合（デューティ比０％の場合）には、ＰＷＭ信号の１周期の期間の信号レベルが全てローレベルとなり、１つ前のＰＷＭ信号との間に立ち上がりエッジが発生しない。図８にデューティ比０％のＰＷＭ信号を生成する場合を例示する。
【０１２０】
同図には、ＰＷＭタイマ２１内のパルス周期レジスタ１５２にパルス周期Ｄ１（＝４）を設定し、パルス幅レジスタ１５３に設定するパルス幅をＤ２（＝２）からＤ３（＝０）に変化させた場合のＰＷＭ信号の変化が示される。この場合、パルス幅バッファ１５４にパルス幅レジスタ１５３の値Ｄ３が設定されるクロックサイクル１１においてＰＷＭ信号１６４が立ち上がらないため、クロックサイクル１１〜１４でＰＷＭ信号１６４のパルス幅がゼロとなる。
【０１２１】
また、パルス幅とパルス周期とが一致する場合（デューティ比１００％の場合）には、ＰＷＭ信号の１周期の期間の信号レベルが全てハイレベルとなり、次に発生するＰＷＭ信号との間に立ち下がりエッジが発生しない。図９にデューティ比１００％のＰＷＭ信号を生成する場合を例示する。
【０１２２】
同図には、ＰＷＭタイマ２１内のパルス周期レジスタ１５２にパルス周期Ｄ１（＝４）を設定し、パルス幅レジスタ１５３に設定するパルス幅をＤ２（＝２）からＤ３（＝４）に変化させた場合のＰＷＭ信号の変化が示される。この場合、パルス幅バッファ１５４にパルス幅レジスタ１５３の値Ｄ３が設定されるクロックサイクル１１においてＰＷＭ信号１６４が立ち上がってから、その後立ち下がらないため、クロックサイクル１５でパルスが発生しない。
【０１２３】
以上のように、ＰＷＭ信号のデューティ比が０％又は１００％の場合には、ＰＷＭ信号にエッジが発生しないため、ＰＷＭ信号の診断を行うことが困難である。そこで、実施の形態４に係るＰＷＭ診断部４０では、実施の形態３に係るＰＷＭ信号診断部３０の構成要素に加えて、パルス補正回路（Ｐ＿ＲＥＶ）１９１を備え、パルス補正回路１９１によってＰＷＭ信号を補正し、補正後のＰＷＭ信号１９０に基づいて診断処理を行う。
【０１２４】
パルス補正回路１９１は、パルス周期レジスタ値１８３、パルス幅レジスタ１８４、及びパルス幅バッファ１８５を監視し、これらに設定されたＰＷＭ信号の生成条件に応じて、パルス選択回路１５９から出力されたＰＷＭ信号１６６を補正してエッジ検出回路１７１に出力する。例えば、パルス補正回路１９１は、パルス幅レジスタ１８４に設定されたパルス幅がゼロである場合と、パルス幅バッファ１８５に設定されたパルス幅とパルス周期レジスタ１８３に設定されたパルス周期が一致する場合には、入力したＰＷＭ信号１６６を補正した信号をＰＷＭ信号１９０として出力し、上記２つの生成条件以外の条件が設定された場合には、入力したＰＷＭ信号１６６を補正せず、ＰＷＭ信号１９０として出力する。
【０１２５】
パルス補正回路１９１によるＰＷＭ信号の補正方法について図１０及び図１１を用いて具体的に説明する。
【０１２６】
図１０は、デューティ比０％のＰＷＭ信号の診断を行う場合のＰＷＭ診断部４０の動作タイミングの一例を示すタイミングチャートである。同図では、前述の図６と同様に、制御レジスタ１５１にはパルス出力を行う設定がなされているものとし、パルス選択回路１５９がＰＷＭ信号１６４を選択して出力するものとする。また、ＰＷＭ診断部４０のスヌープレジスタ１８１にはＰＷＭタイマ２１のパルス周期レジスタ１５２のアドレス（Ａ１）が書き込まれており、スヌープレジスタ１８２にはＰＷＭタイマ２１のパルス幅レジスタ１５３のアドレス（Ａ２）が書き込まれているものとする。
【０１２７】
同図に示されるように、前記スヌープ機能により、クロックサイクル３においてパルス周期レジスタ１８３にパルス周期Ｄ１（＝４）が設定され、クロックサイクル５においてパルス幅レジスタ１８４にパルス幅Ｄ２（＝２）が設定される。この生成条件の場合、パルス補正回路１９１は入力されたＰＷＭ信号１６４の補正は行わない。すなわち、クロックサイクル７からクロックサイクル１０の期間において、パルス補正回路１９１はＰＷＭ信号１６４をＰＷＭ信号１９０として出力する。
【０１２８】
その後、クロックサイクル９においてパルス幅レジスタ１８４にパルス幅Ｄ３（＝０）が設定されると、パルス補正回路１９１は、１つ前の周期のＰＷＭ信号の立ち上がりエッジ（クロックサイクル７）から１周期分経過したタイミング（クロックサイクル１１）で仮想立ち上がりエッジ信号を生成する。具体的には、パルス補正回路１９１は、立ち上がりエッジレジスタ１７３の値とパルス周期レジスタ１８３の値とを加算した値がカウンタ値ＣＦ＿ＶＡＬと一致したら、前記仮想立ち下がりエッジ信号を生成する。例えば、クロックサイクル１１において、立ち上がりエッジレジスタ１７３の値（＝４２）とパルス周期レジスタ１８３の値（＝４）を加算した値（＝４６）とカウンタ値ＣＦ＿ＶＡＬ（＝４６）とが一致するので、このタイミングでパルス補正回路１９１が前記仮想立ち上がりエッジ信号を生成する。同図では、前記仮想立ち上がりエッジ信号のパルス幅を、クロック信号ＣＬＫの１クロックサイクル分のパルス幅とする例が示されている。前記仮想立ち上がりエッジ信号は上記タイミングで立ち上がる信号であればそのパルス幅に特に制限はないが、前記仮想立ち上がりエッジ信号のパルス幅をクロック信号ＣＬＫの１クロックサイクル分のパルス幅とすることで、前記仮想立ち上がりエッジ信号の生成が容易となるため、パルス補正回路１９１の回路構成の簡素化を図ることができるという利点がある。
【０１２９】
パルス補正回路１９１は、上記の方法で生成した前記仮想立ち上がりエッジ信号と入力されたＰＷＭ信号１６４との論理和をとった信号をＰＷＭ信号１９０として出力する。すなわち、クロックサイクル１１からクロックサイクル１４の１周期の期間に、クロックサイクル１１のタイミングで１クロックサイクル分だけハイレベルとなるＰＷＭ信号１９０が生成される。その後のクロックサイクル１５のタイミングでも同様の補正が行われる。これにより、デューティ比０％のＰＷＭ信号１６４が生成された場合であっても、補正後のＰＷＭ信号１９０を用いてエッジ検出を行うことができる。
【０１３０】
図１１は、デューティ比１００％のＰＷＭ信号の診断を行う場合のＰＷＭ診断部４０の動作タイミングの一例を示すタイミングチャートである。同図では、前述の図１０と同様に、制御レジスタ１５１にはパルス出力を行う設定がなされているものとし、パルス選択回路１５９がＰＷＭ信号１６４を選択して出力するものとする。また、ＰＷＭ診断部４０のスヌープレジスタ１８１にはＰＷＭタイマ２１のパルス周期レジスタ１５２のアドレス（Ａ１）が書き込まれており、スヌープレジスタ１８２にはＰＷＭタイマ２１のパルス幅レジスタ１５３のアドレス（Ａ２）が書き込まれているものとする。
【０１３１】
同図に示されるように、クロックサイクル８までの動作タイミングは図１０と同様である。クロックサイクル９においてパルス幅レジスタ１８４にパルス幅Ｄ３（＝４）が設定されると、パルス補正回路１９１は、次のＰＷＭ信号１６４の立ち上がりエッジのタイミング（クロックサイクル１１）からパルス周期より短い期間が経過したタイミング（クロックサイクル１４）で仮想立ち下がりエッジ信号を生成する。具体的には、パルス補正回路１９１は、立ち上がりエッジレジスタ１７３の値とパルス周期レジスタ１８３の値とを加算した値から“１（１クロックサイクル分）”だけ減算した値と、カウンタ値ＣＦ＿ＶＡＬとが一致したら、前記仮想立ち下がりエッジ信号を生成する。例えば、クロックサイクル１４において、立ち上がりエッジレジスタ１７３の値（＝４６）とパルス周期レジスタ１８３の値（＝４）を加算した値（＝５０）から“１”だけ減算した値（＝４９）が、カウンタ値（＝４９）に一致するので、このタイミングでパルス補正回路１９１が前記仮想立ち下がりエッジ信号を生成する。上記の減算する値“１（１クロックサイクル分）”は、前記仮想立ち下がりエッジ信号のパルス幅を規定する値である。上記の例では、減算する値を“１（１クロックサイクル分）”としたが、デューティ比１００％のＰＷＭ信号１６４の１周期が経過する前に前記仮想立ち下がり信号が生成されるのであれば、その値に制限はない。すなわち、前記仮想立ち下がりエッジ信号のパルス幅に特に制限はないが、パルス幅をクロック信号ＣＬＫの１クロックサイクル分のパルス幅とすることで、仮想立ち下がりエッジ信号の生成が容易となるため、パルス補正回路１９１の回路構成の簡素化を図ることができるという利点がある。
【０１３２】
パルス補正回路１９１は、上記の方法で生成した前記仮想立ち下がりエッジ信号の反転信号を生成し、その反転信号と入力されたＰＷＭ信号１６４との論理積をとった信号をＰＷＭ信号１９０として出力する。すなわち、クロックサイクル１４のタイミングで１クロックサイクル分だけローレベルとなるＰＷＭ信号１９０が生成される。これにより、デューティ比１００％のＰＷＭ信号１６４が生成された場合であっても、補正後のＰＷＭ信号１９０を用いてエッジ検出を行うことができる。
【０１３３】
エッジ検出回路１７１は、実施の形態３と同様に、パルス補正回路１９１から出力されたＰＷＭ信号１９０の立ち上がりエッジを検出すると、立ち上がりエッジレジスタ１７３に対してカウンタ１７２のカウント値ＣＦ＿ＶＡＬの書き込みを指示するとともに、比較回路１８６に対して比較処理の実行を指示する。また、エッジ検出回路１７１は、ＰＷＭ信号１９０の立ち上がりエッジを検出した場合も同様に、比較回路１７６に対して比較処理の実行を指示する。
【０１３４】
比較回路１９２は、パルス周期レジスタ１８３、パルス幅レジスタ１８４、及びパルス幅バッファ１８５を監視し、上記２つの生成条件（デューティ比０％、デューティ比１００％）以外の条件が設定された場合には、実施の形態３と同様の方法で比較処理を実行し、比較の結果を状態レジスタ１６２に出力する。
【０１３５】
一方、デューティ比０％の生成条件（パルス幅レジスタ１８４の値がゼロ）が設定された場合の比較回路１９２の処理内容は以下となる。エッジ検出回路１７１がＰＷＭ信号１９０の立ち上がりエッジを検出すると、比較回路１９２はパルス周期を算出するとともに、算出結果とパルス周期レジスタ１５２の値と比較する比較処理を行う。例えば、図１０の場合、クロックサイクル１１において、立ち上がりエッジ検出時のカウンタ値ＣＦ＿ＶＡＬ（＝４６）から前記立ち上がりエッジレジスタ１７３の値（＝４２）を減算した値（＝４）がＰＷＭ信号１６４のパルス周期の値となるので、減算した値（＝４）とパルス周期レジスタ１８３の値Ｄ１（＝４）とが一致するか否かを判別する。また、エッジ検出回路１７１がＰＷＭ信号１９０の立ち下がりエッジを検出すると、比較回路１９２はパルス幅を算出するとともに、算出結果とパルス周期レジスタ１５２の値と比較する比較処理を行う。例えば、図１０の場合、クロックサイクル１２において、立ち下がりエッジ検出時のカウンタ値ＣＦ＿ＶＡＬ（＝４７）から前記立ち上がりエッジレジスタ１７３の値（＝４６）を減算した値（＝１）が、パルス幅バッファ１８５の値Ｄ３（＝０）に“＋１”を加算した値と一致するか否かを判別する。すなわち、前述のパルス補正回路１９０によるＰＷＭ信号の補正により、デューティ比０％のＰＷＭ信号１６４が１クロックサイクル分のパルス幅となるＰＷＭ信号１９０に補正されていることを考慮して比較処理を行う。これにより、生成条件に応じてデューティ比０％のＰＷＭ信号１６４が生成されているか否かを判別することができる。
【０１３６】
デューティ比１００％の生成条件（パルス幅レジスタ１８４の値がゼロ）が設定された場合の比較回路１９２の処理内容は以下となる。この場合、エッジ検出回路１７１がＰＷＭ信号１９０の立ち上がりエッジを検出すると、比較回路１９２はパルス周期を算出するとともに、算出結果とパルス周期レジスタ１５２の値と比較する比較処理を行う。例えば、図１１の場合、クロックサイクル１１において、立ち上がりエッジ検出時のカウンタ値ＣＦ＿ＶＡＬ（＝４６）から前記立ち上がりエッジレジスタ１７３の値（＝４２）を減算した値（＝４）がＰＷＭ信号１６４のパルス周期となるので、算出した値（＝４）とパルス周期レジスタ１８３の値Ｄ１（＝４）とが一致するか否かを判別する。また、エッジ検出回路１７１がＰＷＭ信号１９０の立ち下がりエッジを検出すると、比較回路１９２はパルス幅を算出するとともに、算出結果とパルス周期レジスタ１５２の値と比較する比較処理を行う。例えば、図１１の場合、クロックサイクル１４において、立ち下がりエッジ検出時のカウンタ値ＣＦ＿ＶＡＬ（＝４９）から前記立ち上がりエッジレジスタ１７３の値（＝４６）を減算した値（＝３）が、パルス幅バッファ１８５の値Ｄ３（＝４）に“−１”を加算した値と一致するか否かを判別する。すなわち、前述のパルス補正回路１９０によるＰＷＭ信号の補正により、デューティ比１００％のＰＷＭ信号１６４が３クロックサイクル分のパルス幅となるＰＷＭ信号１９０に補正されていることを考慮した比較処理を行う。これにより、生成条件に応じてデューティ比１００％のＰＷＭ信号１６４が生成されているか否かを判別することができる。
【０１３７】
以上実施の形態４に係るマイクロコントローラ４によれば、実施の形態１乃至３と同様に、ＣＰＵ１１の処理負担を増加させることなくＰＷＭタイマ２１のより詳細な故障判定を行うことができる。また、ＰＷＭ信号診断部４０の診断対象からの独立性を担保しつつ、前記スヌープ機能によってＣＰＵ１１の処理負担の増加を抑えることができる。更に、マイクロコントローラ４によれば、パルス補正回路１９１を備えることで、パルスエッジが発生しない条件においてもＰＷＭタイマ２１の出力の診断が可能となるから、故障検出率を向上させることができ、更なる信頼性の向上を図ることができる。
【０１３８】
≪実施の形態５≫
図１２は、実施の形態５に係る、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ１乃至４と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。
【０１３９】
同図に示されるマイクロコントローラ５は、内部バス１３とシステムバス５２の２つのバスを有し、ＰＷＭタイマはシステムバス５２に接続される。ここで、前記ＰＷＭタイマは、実施の形態１に係る診断機能を備えたＰＷＭタイマ１５である。システムバス５２は、低速なバスクロック（低速クロック）で動作し、割り込みコントローラ１４、ＰＷＭタイマ１５、バスブリッジ（ＢＵＳ＿ＢＲＧ）５１が接続される。一方、内部バス１３は、システムバス５２よりも高速なバスクロック（高速クロック）で動作し、ＣＰＵ１１、メモリ１２、及びバスブリッジ５１が接続される。バスブリッジ５１は、内部バス１３に接続される回路とシステムバス５２に接続される回路との間の通信を制御する。このような階層バス構成は、ＣＰＵ１１が高速動作する場合に特に有効である。例えば、ＣＰＵ１１がシステムバス５２に接続されている周辺回路にアクセスすると、そのアクセスが完了するまでＣＰＵ１１のパイプラインが停止するため処理の無駄が生じる。特に内部バス１３とシステムバス５２のクロック周波数の比が大きいほど、無駄なサイクル数が増える。そのため、前述の先行検討例のようにＣＰＵ１１がＰＷＭタイマの診断に係る処理を行うと、処理の無駄が増えるため、ＣＰＵ１１の高速動作を阻害する。一方、本実施の形態に係るマイクロコントローラ５によれば、ＰＷＭタイマ１５自身が診断機能を備えるので、ＣＰＵ１１によるＰＷＭタイマの診断に係る処理が不要となり、ＣＰＵ１１の高速動作を可能とする。また、階層バス構成とすることで、ＣＰＵ１１とメモリ１２は高速なクロックで動作させ、高速に動作する必要のないＰＷＭタイマ１５や割り込みコントローラ１４等の周辺回路は低速なクロックで動作させることができるから、マイクロコントローラ全体の消費電力を抑えることができる。
【０１４０】
≪実施の形態６≫
図１３は、実施の形態６に係る、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ１乃至５と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。
【０１４１】
同図に示されるマイクロコントローラ６は、実施の形態５に係るマイクロコントローラ５と同様に内部バス１３とシステムバス５２の２つのバスを有し、ＰＷＭタイマとＰＷＭ信号診断部はシステムバス５２に接続される。同図における前記ＰＷＭタイマとしては、実施の形態２におけるＰＷＭタイマ２１が適用可能であり、前記ＰＷＭ信号診断部としては、実施の形態２乃至４におけるＰＷＭ診断回路２０、３０、４０のいずれかが適用可能である。図１３では、一例としてＰＷＭ診断部２０を適用した場合を代表的に示している。
【０１４２】
これによれば、実施の形態５と同様に、ＣＰＵ１１にＰＷＭタイマ２１の診断に係る処理負担を低減させることができ、且つマイクロコントローラ全体の消費電力を抑えることができる。特に、スヌープ機能によって実現されるＰＷＭ信号診断部３０、４０へのパルス周期及びパルス幅の期待値設定により、ＣＰＵ１１の診断に係る処理負荷を増加させることがない。
【０１４３】
≪実施の形態７≫
図１４は、実施の形態７に係る、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ１乃至６と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。
【０１４４】
同図に示されるマイクロコントローラ７は、実施の形態６に係るマイクロコントローラ６と同様に内部バス１３とシステムバス５２の２つのバスを有し、ＰＷＭ信号を生成するＰＷＭ信号生成部としてのＭ（Ｍは２以上の整数）個のＰＷＭタイマ２１＿１〜２１＿Ｍと１つのＰＷＭ信号診断部がシステムバス５２に接続される。同図における前記ＰＷＭタイマ２１＿１〜２１＿Ｍとしては、実施の形態２におけるＰＷＭタイマ２１が適用可能であり、前記ＰＷＭ信号診断部としては、実施の形態２乃至４におけるＰＷＭ診断部２０、３０、４０のいずれかが適用可能である。図１４では、一例としてＰＷＭ診断部２０を適用した場合を代表的に示している。
【０１４５】
Ｍ個のＰＷＭタイマ２１＿１〜２１＿Ｍによって夫々生成されるＰＷＭ信号１６４＿１〜１６４＿Ｍは、Ｍ個の外部出力端子ＰＯＵＴ＿１〜Ｐ＿ＯＵＴＭを介して出力される。また、マイクロコントローラ７は、Ｎ個（Ｎは１以上の整数）の外部入力端子ＰＩＮ＿１〜ＰＩＮ＿Ｎを有し、マイクロコントローラ外部からのＰＷＭ信号（外部ＰＷＭ信号）１６５＿１〜１６５＿Ｎの入力を可能にする。
【０１４６】
生成されたＰＷＭ信号１６４＿１〜１６４＿Ｍと外部ＰＷＭ信号１６５＿１〜１６５＿Ｎは、選択部５５に入力される。選択部５５は、例えば第１選択回路５５１と第２選択回路５５２を有する。第１選択回路５５１は、ＰＷＭ信号１６４＿１〜１６４＿Ｍの夫々を入力するとともに、選択信号５６に基づいて、入力した信号のうち何れかの信号を選択し、選択した信号をＰＷＭ信号１６４としてＰＷＭ信号診断部２０に出力する。第２選択回路５５２は、外部ＰＷＭ信号１６５＿１〜１６５＿Ｎの夫々を入力するとともに、選択信号５６に基づいて、入力した信号のうち何れかの信号を選択し、選択した信号を外部ＰＷＭ信号１６５としてＰＷＭ信号診断部２０に出力する。選択信号５６、５７は、何れのＰＷＭ信号を選択して出力するか指示する信号であり、診断パルス選択指示部５４から出力される。診断パルス選択回路５４は、システムバス５２を介して書き込み可能な制御レジスタ５４１を有し、制御レジスタ５４１に設定された値にしたがって、信号生成部５４２が選択信号５６、５７を生成して出力する。
【０１４７】
本マイクロコントローラ７によれば、実施の形態２乃至４と同様に、前記中央処理装置の処理負担を増加させることなく、ＰＷＭタイマのより詳細な故障判定を行うことができる。また、複数のＰＷＭ信号が生成される場合であっても、１つのＰＷＭ信号診断部によって選択的に診断を行うことができるから、生成されるＰＷＭ信号の数に応じて診断部を設ける必要がなく、マイクロコントローラの小面積化に資する。
【０１４８】
更に、マイクロコントローラ７によれば、例えば外部出力端子ＰＯＵＴ＿１〜ＰＯＵＴ＿Ｍと外部入力端子ＰＩＮ＿１〜ＰＩＮ＿Ｎをマイクロコントローラの外部で電気的に接続することで、ＰＷＭタイマ２１＿１〜２１＿Ｍによって生成されたＰＷＭ信号１６４＿１〜１６４＿Ｍを、外部入力端子ＰＩＮ＿１〜ＰＩＮ＿Ｎを介して入力し、入力した信号を選択して診断することができる。これによれば、外部出力端子ＰＯＵＴ＿１〜ＰＯＵＴ＿ＭからＰＷＭ信号を出力する出力機能と、外部入力端子ＰＩＮ＿１〜ＰＩＮ＿ＮからＰＷＭ信号を入力する入力機能が正常であるか否かの診断も行うことができる。
【０１４９】
≪実施の形態８≫
図１５は、実施の形態８に係る、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ１乃至７と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。
【０１５０】
同図に示されるマイクロコントローラ８は、前記マイクロコントローラ６と同様に内部バス１３とシステムバス５２の２つのバスを有し、１個のＰＷＭタイマ２１とＮ（Ｎは２以上の整数）個のＰＷＭ信号診断部がシステムバス５２に接続される。同図における前記ＰＷＭ信号診断部としては、実施の形態２乃至４におけるＰＷＭ診断部２０、３０、４０のいずれかが適用可能である。図１５では、一例としてＰＷＭ診断部２０を適用した場合を代表的に示している。
【０１５１】
ＰＷＭタイマ２１によって生成されるＰＷＭ信号１６４は、ＰＷＭ信号診断部２０＿１〜２０＿Ｎに夫々入力されると共に、外部出力端子ＰＯＵＴを介してマイクロコントローラ８の外部に出力される。また、マイクロコントローラ８は、Ｎ個の外部入力端子ＰＩＮ＿１〜ＰＩＮ＿Ｎを有し、マイクロコントローラ外部からのＰＷＭ信号（外部ＰＷＭ信号）１６５＿１〜１６５＿Ｎの入力を可能にする。外部ＰＷＭ信号１６５＿１〜１６５＿Ｎは、選択部６２に入力される。選択部６２は、例えばＮ個の第３選択回路６２２＿１〜６２２＿Ｎを有する。第３選択回路６２２＿１〜６２２＿Ｎは、ＰＷＭ信号診断部２０＿１〜２０＿Ｎ毎に対応して設けられる。夫々のＰＷＭ信号診断部２０＿１〜２０＿Ｎは外部ＰＷＭ信号１６５＿１〜１６５＿Ｎを入力し、対応する選択信号６１＿１〜６１＿Ｎに基づいて、入力した信号のうち何れかの信号を選択するとともに、選択した信号を外部ＰＷＭ信号１６５として、対応するＰＷＭ信号診断部２０＿１〜２０＿Ｎに出力する。選択信号６１＿１〜６１＿Ｎは、何れの外部ＰＷＭ信号１６５＿１〜１６５＿Ｎを選択して出力するか指示する信号であり、診断パルス選択指示部６０から出力される。診断パルス選択回路６０は、システムバス５２を介して書き込み可能な制御レジスタ６０１を有し、制御レジスタ６０１に設定された値にしたがって、信号生成部６０２が選択信号６１＿１〜６１＿Ｎを生成して出力する。
【０１５２】
本マイクロコントローラ７によれば、実施の形態２乃至４と同様に、前記中央処理装置の処理負担を増加させることなく、前記ＰＷＭタイマのより詳細な故障判定を行うことができる。また、１つのＰＷＭ信号を複数の診断部によって診断することができるから、診断結果の信頼度が向上する。
【０１５３】
更に、マイクロコントローラ８によれば、例えば外部出力端子ＰＯＵＴと外部入力端子ＰＩＮ＿１〜ＰＩＮ＿Ｎをマイクロコントローラの外部で電気的に接続することで、ＰＷＭタイマ２１によって生成されたＰＷＭ信号１６４を、外部入力端子ＰＩＮ＿１〜ＰＩＮ＿Ｎを介して入力し、入力した信号を選択して診断することができる。これによれば、外部出力端子ＰＯＵＴからＰＷＭ信号を出力する出力機能と、外部入力端子ＰＩＮ＿１〜ＰＩＮ＿ＮからＰＷＭ信号を入力する入力機能が正常であるか否かの診断も行うことができる。
【０１５４】
≪実施の形態９≫
図１６は、実施の形態９に係る、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラの一例を示すブロック図である。同図において、マイクロコントローラ１乃至８と同一の構成要素には同一の符号を付して、その詳細な説明を省略する。
【０１５５】
同図に示されるマイクロコントローラ９は、前記マイクロコントローラ６と同様に内部バス１３とシステムバス５２の２つのバスを有し、ＰＷＭ信号を生成するＰＷＭ信号生成部としてのＭ個のＰＷＭタイマ２１と、ＰＷＭタイマ機能を診断するための診断部としてのＮ個のＰＷＭ信号診断部がシステムバス５２に接続される。同図における前記ＰＷＭ信号診断部としては、実施の形態２乃至４におけるＰＷＭ診断部２０、３０、４０のいずれかが適用可能である。図１６では、一例としてＰＷＭ診断部２０を適用した場合を代表的に示している。
【０１５６】
Ｍ個のＰＷＭタイマ２１＿１〜２１＿Ｍによって夫々生成されるＰＷＭ信号１６４＿１〜１６４＿Ｍは、Ｍ個の外部出力端子ＰＯＵＴ＿１〜ＰＯＵＴ＿Ｍを介して出力される。また、マイクロコントローラ９は、Ｎ個（Ｎは１以上の整数）の外部入力端子ＰＩＮ＿１〜ＰＩＮ＿Ｎを有し、マイクロコントローラ外部からのＰＷＭ信号（外部ＰＷＭ信号）１６５＿１〜１６５＿Ｎの入力を可能にする。
【０１５７】
生成されたＰＷＭ信号１６４＿１〜１６４＿Ｍと外部ＰＷＭ信号１６５＿１〜１６５＿Ｎは、選択部６５に入力される。選択部６５は、例えば第４選択回路６５１＿１〜６５１＿Ｎと第５選択回路６５２＿１〜６５１＿Ｎを有する。第４選択回路６５１＿１〜６５１＿Ｎと第５選択回路６５２＿１〜６５１＿Ｎは、ＰＷＭ信号診断部２０＿１〜２０＿Ｎ毎に対応して設けられる。例えば、第４選択回路６５１＿１〜６５１＿Ｎの夫々は、ＰＷＭ信号１６４＿１〜１６４＿Ｍを入力し、対応する選択信号６３＿１〜６３＿Ｎに基づいて、入力した信号のうち何れかの信号を選択するとともに、選択した信号をＰＷＭ信号１６４として対応するＰＷＭ信号診断部２０＿１〜２０＿Ｎに出力する。同様に、第５選択回路６５２＿１〜６５２＿Ｎの夫々は、外部ＰＷＭ信号１６５＿１〜１６５＿Ｎを入力し、対応する選択信号６４＿１〜６４＿Ｎに基づいて、入力した信号のうち何れかの信号を選択するとともに、選択した信号を外部ＰＷＭ信号１６５として対応するＰＷＭ信号診断部２０＿１〜２０＿Ｎに出力する。
【０１５８】
選択信号６３＿１〜６３＿Ｎは、何れのＰＷＭ信号１６４＿１〜１６４＿Ｎを選択して出力するか指示する信号であり、選択信号６４＿１〜６４＿Ｎは、何れのＰＷＭ信号１６５＿１〜１６５＿Ｎを選択して出力するか指示する信号である。選択信号６３＿１〜６３＿Ｎ及び選択信号６４＿１〜６４＿Ｎは、診断パルス選択指示部６６から出力される。診断パルス選択回路６６は、システムバス５２を介して書き込み可能な制御レジスタ６６１を有し、制御レジスタ６６１に設定された値にしたがって、信号生成部６６２が選択信号６３＿１〜６３＿Ｎと選択回路６４＿１〜６４＿Ｎを生成して出力する。
【０１５９】
本マイクロコントローラ９によれば、実施の形態２乃至４と同様に、前記中央処理装置の処理負担を増加させることなく、ＰＷＭタイマのより詳細な故障判定を行うことができる。また、ＰＷＭタイマ２１＿１〜２１＿ＭとＰＷＭ信号診断部２０＿１〜２０＿Ｎの夫々の個数に応じて診断対象と診断主体との組み合わせを自由に決定することができるから、システム設計や診断方法の自由度が増す。
【０１６０】
更に、マイクロコントローラ９によれば、外部出力端子ＰＯＵＴ＿１〜ＰＯＵＴ＿Ｍと外部入力端子ＰＩＮ＿１〜ＰＩＮ＿Ｎとをマイクロコントローラの外部で電気的に接続することで、ＰＷＭタイマ２１によって生成されたＰＷＭ信号１６４＿１〜１６４＿Ｍを、外部入力端子ＰＩＮ＿１〜ＰＩＮ＿Ｎを介して入力し、入力した信号を選択して診断することができる。これによれば、外部出力端子ＰＯＵＴ＿１〜ＰＯＵＴ＿ＭからＰＷＭ信号を出力する出力機能と、外部入力端子ＰＩＮ＿１〜ＰＩＮ＿ＮからＰＷＭ信号を入力する入力機能が正常であるか否かの診断も行うことができる。
【０１６１】
≪実施の形態１０≫
図１７は、ＰＷＭ信号の診断機能の診断方法の一例を示すフローチャートである。例えば、本診断方法による診断対象となるＰＷＭ信号診断部は、実施の形態２乃至９で示されるＰＷＭ信号診断部３０、及び４０である。
【０１６２】
ＰＷＭ信号診断部が正常であるか否かを判別するための診断処理は、例えば、マイクロコントローラ２乃至９における各種機能部の動作確認を行うテスト処理に含まれ、例えば、パワーオンリセット後の通常動作に移行する前に実行される。前記テスト処理には、上記ＰＷＭタイマのテストの他に、例えば、メモリ１２のテスト、ＣＰＵ１１のテスト、及びその他の機能部のテストが含まれる。
【０１６３】
ここでは、代表的に、実施の形態３に係るマイクロコントローラ３において前記テスト処理を行う場合の具体的な処理フローについて説明する。
【０１６４】
図１７に示されるように、先ずマイクロコントローラ３に電源が投入され、パワーオンリセットが解除されると、各機能部の初期設定が行われる（Ｓ１０１）。その後、各機能部のテスト処理が開始される。前記テスト処理では先ず、メモリ１２のテストが実行される（Ｓ１０２）。続いてＣＰＵ１１テストが実行される（Ｓ１０３）。次に、その他の機能部のテストが実行される（Ｓ１０４）。
【０１６５】
その後、ＰＷＭ信号診断部３０のテストが開始される。ＰＷＭ信号診断部３０のテストでは先ず、ＣＰＵ１１が、例えば第１パルス周期かつ第１パルス幅のＰＷＭ信号を生成するための生成条件（以下、第１生成条件、とも称する。）をＰＷＭタイマ２１のレジスタ１５１〜１５３に設定する（Ｓ１０５）。設定する第１パルス周期と第１パルス幅の値に特に制限はない。次に、ＣＰＵ１１はＰＷＭ信号診断部３０にアクセスし、パルス周期レジスタ１８３及びパルス幅レジスタ１８４に前記第１生成条件を設定する（Ｓ１０６）。そして、ＣＰＵ１１はＰＷＭ信号診断部３０に診断処理を実行させ、その診断結果を確認する（Ｓ１０７）。ステップ１０７においてエラーを示す診断結果が出力された場合には、ＣＰＵ１１はＰＷＭ信号診断部が異常である判断し、そうでない場合には、ＰＷＭ信号診断部が正常であると判断する。
【０１６６】
ＣＰＵ１１は、ステップ１０７でＰＷＭ信号診断部が正常であると判断した場合には、ＣＰＵ１１はＰＷＭ信号診断部３０に再度アクセスし、パルス周期レジスタ１８３及びパルス幅レジスタ１８４に、例えば第２パルス周期かつ第２パルス幅のＰＷＭ信号を生成するための生成条件（以下、第２生成条件、とも称する。）を設定する（Ｓ１０８）。第２生成条件は、第１生成条件と異なる生成条件であればよく、その第２パルス幅及び第２パルス周期の値に特に制限はない。そして、ＣＰＵ１１はＰＷＭ信号診断部３０に診断処理を実行させ、その診断結果を確認する（Ｓ１０９）。ステップ１０９においてエラーを示す診断結果が出力された場合には、ＣＰＵ１１はＰＷＭ信号診断部が正常である判断し、そうでない場合には、ＰＷＭ信号診断部が異常であると判断する。ステップ１０９でＰＷＭ信号診断部が正常であると判断された場合には、その他の機能部のテスト処理に移行し、すべてのテスト処理が完了したら、マイクロコントローラ３は通常動作を開始する。
【０１６７】
これによれば、ＰＷＭ信号診断部自身が正常に動作するか否かを容易に判別することができる。特に、ＰＷＭタイマに設定する生成条件と一致する条件をＰＷＭ信号診断部に設定した場合の診断と、ＰＷＭタイマに設定する生成条件と異なる条件をＰＷＭ信号診断部に設定した場合の診断の２つの診断を行うので、ＰＷＭ信号診断部に対する診断の精度を上げることができる。これにより、ＰＷＭタイマの信頼性だけでなく、ＰＷＭ信号診断部の信頼性をも向上させることができる。
【０１６８】
上記の診断方法は、実施の形態１に係るＰＷＭタイマ１５にも適用することが可能である。例えば、ＰＷＭタイマ１５内の比較回路１６１にパルス周期レジスタ１５２及びパルス幅レジスタ１５４の値を格納するためのバッファ回路を設け、前記バッファ回路はＣＰＵ１１によってアクセス可能とする。比較回路１６１が比較処理を行う場合には、前記バッファ回路に格納されたパルス幅とパルス周期の値をリファレンスとして用いてＰＷＭ信号１６４の診断を行うようにする。ＰＷＭ信号の診断機能のテスト時には、図１７のステップ１０５においてＣＰＵ１１がパルス周期レジスタ１５２及びパルス周期レジスタ１５３に前記第１生成条件を設定した後、ステップ１０６においてＣＰＵ１１が比較回路１６１の前記バッファ回路にアクセスして前記第１生成条件を設定し、診断処理を実行させる。その後、ステップ１０８においてＣＰＵ１１が再度前記バッファ回路にアクセスして前記第２生成条件を設定し、診断処理を実行させる。このようにすることで、実施の形態１に係るＰＷＭタイマ１５において、ＰＷＭ信号の診断機能が正常であるか否かを診断することができる。実施の形態２に係るＰＷＭ診断部２０においても上記と同様の方法により、ＰＷＭ信号の診断機能が正常であるか否かを診断することができる。
【０１６９】
≪実施の形態１１≫
図１８は、ＰＷＭタイマ機能とその診断機能を備えるマイクロコントローラを搭載した電子制御装置の一例を示すブロック図である。同図に示される電子制御装置１０４は、例えば、自動車のパワートレイン系を制御するための制御装置である。前記電子制御装置１０４は、例えば、マイクロコントローラ１０と、ドライバ１０５と、安全装置１０６とを備える。前記マイクロコントローラ１０は、自動車を駆動するモータ１０１を制御するための制御部であり、例えば、実施の形態１乃至９におけるマイクロコントローラ１乃至９のいずれかの回路構成をベースとし、更にＰＷＭ信号の診断結果を通知するための外部端子ＥＯＵＴを備える。図１８では、マイクロコントローラ１０の回路構成として、複数のＰＷＭ信号１６４＿１〜１６４＿Ｍを出力するマイクロコントローラ７を適用した場合を代表的に示しているが、これに限定されない。
【０１７０】
マイクロコントローラ１０から出力されたＰＷＭ信号１６４＿１〜１６４＿Ｍは、ドライバ１０５に入力される。ドライバ１０５はインバータ１０２を駆動するための回路であり、入力したＰＷＭ信号１６４＿１〜１６４＿Ｍを増幅してインバータ１０２に出力する。インバータ１０２は、増幅されたＰＷＭ信号１６４＿１〜１６４＿Ｎに基づいてモータ１０１を駆動する。
【０１７１】
マイクロコントローラ１０におけるＰＷＭ信号の診断機能により、ＰＷＭ信号１６４＿１〜１６４＿Ｍのいずれかの異常が検出されると、マイクロコントローラ１０は、エラー信号を外部出力端子ＥＯＵＴを介して安全装置１０６に出力する。安全装置１０６は、エラー信号に応じてモータ１０１の異常動作を防止するため処理を行う。当該処理の処理内容は、システムに依存するが、例えば自動車のダッシュボードに故障を示す警告を通知させたり、ＰＷＭ信号生成のマイコン制御を停止させたりする方法が考えられる。その他にも、例えば電子制御装置１０５内に同じ機能を有するマイクロコントローラ１０を複数設けておき、エラー信号に応じてマイクロコントローラを切り替える方法でもよい。具体的には、複数のマイクロコントローラに同一の処理を実行させておき、１つのマイクロコントローラによるＰＷＭ信号をドライバ１０５に入力させる。そして、安全装置１０６は、前記エラー信号が通知されたら、当該エラーを通知したマイクロコントローラに代えて、別のマイクロコントローラからのＰＷＭ信号をドライバ１０５に入力させる。
【０１７２】
以上、実施の形態１０に係るマイクロコントローラ１０によれば、設定されたパルス周期及びパルス幅に従ってＰＷＭ信号が生成されているか否かを判別することができるから、より詳細な故障判定が可能となり、モータ制御の安全性をより高めることができる。また、前記診断は、ＣＰＵとは異なる別の回路モジュールによって実現されるから、マイクロコントローラ内のＣＰＵの処理負担を増加させることない。
【０１７３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１７４】
例えば、実施の形態１において、カウンタ１５７の値をフリップフロップ回路１５８で遅延させたカウンタ遅延値ＣＤ＿ＶＡＬを診断処理のために利用する方法を例示したが、これに限られない。例えば、実施の形態３又は４のように、診断処理のためのカウンタ１７２を別途設け、そのカウント値を診断処理に利用する方法でもよい。この場合のカウンタ１７２の構成は、フリーランニングカウンタでもよいし、ＰＷＭ信号の１周期毎にリセットされる方式のカウンタでもよい。
【符号の説明】
【０１７５】
１〜１０  マイクロコントローラ（ＭＣＵ）
１１  ＣＰＵ
１２  メモリ（ＭＲＹ）
１３  内部バス
１４  割り込みコントローラ（ＩＮＴ＿ＣＮＴ）
１５、２１  ＰＷＭタイマ（ＰＷＭ＿ＴＭＲ）
１６  クロック発生回路（ＣＰＧ）
１７  割り込み要求
１８  専用線
ＥＸ＿ＣＬＫ  外部クロック信号
ＣＬＫ  クロック信号
ＰＯＵＴ、ＰＯＵＴ＿１〜ＰＯＵＴ＿Ｍ  外部出力端子
ＰＩＮ、ＰＩＮ＿１〜ＰＩＮ＿Ｎ  外部入力端子
２００  信号生成機能部
２０１  診断機能部
１５１  制御レジスタ（ＲＥＧ＿ＣＮＴ）
１５２  パルス周期レジスタ（ＲＥＧ＿ＰＲＤ）
１５３  パルス幅レジスタ（ＲＥＧ＿ＰＷ）
１５４  パルス幅バッファ
１５６  パルス発生回路（ＰＧ）
１５７  カウンタ（ＣＮＴＲ）
１５８  フリップフロップ回路（ＦＦ）
１５９  パルス選択回路（ＳＬＣＴＲ）
１６０  エッジ検出回路（ＤＴＣＴ＿ＥＤＧ）
１６１  比較回路（ＣＭＰ）
１６２  状態レジスタ（ＲＥＧ＿ＳＴ）
１６３  割り込み発生回路（ＩＮＴ）
１６４、１６４＿１〜１６４＿Ｍ  ＰＷＭ信号
１６５、１６５＿１〜１６５＿Ｎ  外部ＰＷＭ信号
１６６  選択されたＰＷＭ信号
Ｃ＿ＶＡＬ  カウンタ値
ＣＤ＿ＶＡＬ  カウンタ遅延値
２０  ＰＷＭ信号診断部（ＰＷＭ＿ＣＨＫ）
１７１  エッジ検出回路（ＤＴＣＴ＿ＥＤＧ）
１７２  カウンタ（ＣＮＴＲ）
１７３  立ち上がりエッジレジスタ（ＲＥＧ＿ＲＥＤＧ）
１７４  制御レジスタ（ＲＥＧ＿ＣＮＴ）
１７６  比較回路（ＣＭＰ）
３０  ＰＷＭ信号診断部（ＰＷＭ＿ＣＨＫ）
１８６  比較回路（ＣＭＰ）
１７０  レジスタ制御回路
１８１  スヌープレジスタ（ＲＥＧ＿ＳＮＰ＿Ａ）
１８２  スヌープレジスタ（ＲＥＧ＿ＳＮＰ＿Ｂ）
１８３  パルス周期レジスタ（ＲＥＧ＿ＰＲＤ）
１８４  パルス幅レジスタ（ＲＥＧ＿ＰＷ）
１８５  パルス幅バッファ
ＣＦ＿ＶＡＬ  カウンタ値
４０  ＰＷＭ信号診断部（ＰＷＭ＿ＣＨＫ）
１９０  補正後のＰＷＭ信号
１９１  パルス補正回路（Ｐ＿ＲＥＶ）
１９２  比較回路（ＣＭＰ）
５１  バスブリッジ（ＢＵＳ＿ＢＲＧ）
５２  システムバス
２１＿１〜２１＿Ｍ  ＰＷＭタイマ（ＰＷＭ＿ＴＭＲ）
５５  選択部
５５１  第１選択回路
５５２  第２選択回路
５４  診断パルス選択回路
５４１  制御レジスタ    
５４２  信号生成部
５６、５７  選択信号
２０＿１〜２０＿Ｎ  ＰＷＭ信号診断部（ＰＷＭ＿ＣＨＫ）
１７＿１〜１７＿Ｎ  割り込み要求
６２  選択部
６２１＿１〜６２１＿Ｎ  第３選択回路
６０  診断パルス選択回路
６０１  制御レジスタ
６０２  信号生成部
６１＿１〜６１＿Ｎ  選択信号
６５  選択部
６５１＿１〜６５１＿Ｎ  第４選択回路
６５２＿１〜６５２＿Ｎ  第５選択回路
６６  診断パルス選択回路
６６１  制御レジスタ    
６６２  信号生成部
６３＿１〜６３＿Ｎ、６４＿１〜６４＿Ｎ  選択信号
１００  自動車
１０１  モータ
１０２  インバータ
１０３  バッテリ
１０４  電子制御装置
１０５  ドライバ
１０６  安全装置
１０  マイクロコントローラ
ＥＯＵＴ  外部出力端子
８００、８０１  マイクロコントローラ
８１、８４  ＰＷＭタイマ
８２  信号生成部
８３、８５  パルス検出部
８２０  パルス発生回路
８２１  パルス周期レジスタ（ＲＥＧ＿ＰＲＤ）
８２２  パルス幅レジスタ（ＲＥＧ＿ＰＷ）
８２３、８１６  カウンタ
２１０、２１１  ＰＷＭ信号
８１１  立ち上がりエッジレジスタ（ＲＥＧ＿ＲＥＤＧ）
８１２  立ち下がりエッジレジスタ（ＲＥＧ＿ＦＥＤＧ）
８１３  割り込み発生回路
８１４  フリッププロップ回路
８１５  エッジ検出回路
【図１】
0005722150.tif 000002
【図２】
0005722150.tif 000003
【図３】
0005722150.tif 000004
【図４】
0005722150.tif 000005
【図５】
0005722150.tif 000006
【図６】
0005722150.tif 000007
【図７】
0005722150.tif 000008
【図８】
0005722150.tif 000009
【図９】
0005722150.tif 000010
【図１０】
0005722150.tif 000011
【図１１】
0005722150.tif 000012
【図１２】
0005722150.tif 000013
【図１３】
0005722150.tif 000014
【図１４】
0005722150.tif 000015
【図１５】
0005722150.tif 000016
【図１６】
0005722150.tif 000017
【図１７】
0005722150.tif 000018
【図１８】
0005722150.tif 000019
【図１９】
0005722150.tif 000020
【図２０】
0005722150.tif 000021