車両に搭載されたセンサからの検出信号に基づいて、アクチュエータの駆動信号を生成するマイクロコンピュータを備える車載電子制御装置であって、前記マイクロコンピュータは、ハードウェア部とソフトウェア部とを含んで構成されており、前記マイクロコンピュータの内部に設けられ、前記ハードウェア部の各要素の異常を監視するハードウェア要素監視手段と、前記マイクロコンピュータの内部に設けられ、前記ソフトウェア部の各要素の異常を監視するソフトウェア要素監視手段と、前記マイクロコンピュータの外部に設けられ、前記マイクロコンピュータの異常を監視する外部監視手段と、を備えることを特徴とする車載電子制御装置。前記ハードウェア要素監視手段は、監視対象のハードウェア要素とは異なる構造で、且つ当該監視対象のハードウェア要素と入出力特性が等しい監視用ハードウェア要素を備え、前記監視対象のハードウェア要素と前記監視用ハードウェア要素とに同一信号を入力したときの出力信号を比較することで、前記監視対象のハードウェア要素の異常を監視することを特徴とする請求項1に記載の車載電子制御装置。前記ハードウェア要素監視手段は、上記異常を検出すると、前記アクチュエータを停止するための停止処置を行うことを特徴とする請求項1又は2に記載の車載電子制御装置。前記ハードウェア要素監視手段は、上記異常を検出すると、前記外部監視手段にこれを通知し、前記外部監視手段は、前記ハードウェア要素監視手段からの前記通知を受けて、前記アクチュエータを停止するための停止処置を行うことを特徴とする請求項1~3の何れか1項に記載の車載電子制御装置。前記ソフトウェア要素監視手段は、監視対象のソフトウェア要素とは異なる構造で、且つ当該監視対象のソフトウェア要素と同等の演算処理を行う監視用ソフトウェア要素を備え、前記監視対象のソフトウェア要素と前記監視用ソフトウェア要素とに同一信号を入力し、両者の演算結果の差が許容範囲内であるか否かにより、前記監視対象のソフトウェア要素の異常を監視することを特徴とする請求項1~4の何れか1項に記載の車載電子制御装置。前記許容範囲は、前記監視対象のソフトウェア要素の演算結果と前記監視用ソフトウェア要素の演算結果とが同符号であり、且つ前記監視対象のソフトウェア要素の演算結果の絶対値が前記監視用ソフトウェア要素の演算結果の絶対値よりも小さい範囲に設定することを特徴とする請求項5に記載の車載電子制御装置。前記ソフトウェア要素監視手段は、上記異常を検出すると、前記監視対象のソフトウェア要素の演算結果を前記許容範囲内に制限する制限手段を備えることを特徴とする請求項5又は6に記載の車載電子制御装置。前記外部監視手段は、前記マイクロコンピュータのクロックを監視することで、前記マイクロコンピュータの異常を監視することを特徴とする請求項1~7の何れか1項に記載の車載電子制御装置。前記外部監視手段は、前記ハードウェア要素監視手段及び前記ソフトウェア要素監視手段が動作していることを監視することで、前記マイクロコンピュータの異常を監視することを特徴とする請求項1~8の何れか1項に記載の車載電子制御装置。前記外部監視手段は、上記異常を検出すると、前記アクチュエータを停止するための停止処置を行うことを特徴とする請求項1~9の何れか1項に記載の車載電子制御装置。しかしながら、上記のようなロックステップ方式を採用した監視機能では、制御部と監視部とが同一コアを使用していると、コアの演算器に演算ミスが生じるような不具合があった場合に、異常として検出することができない。また、上記のような2CPU方式を採用した監視機能では、制御CPUの演算をきめ細かく診断することができない。このように、異常の詳細を診断することができないため、異常発生時には、異常の詳細によらず一律に制御を停止していた。ところが、車両の大型化による制御停止時のドライバ負担や車両安全制御の規格化などの観点から、異常の詳細によっては異常発生時にも制御を続行することが望まれる。そこで、本発明は、マイクロコンピュータの異常の詳細を適切に診断することができる車載電子制御装置を提供することを課題としている。上記課題を解決するために、本発明に係る車載電子制御装置は、車両に搭載されたセンサからの検出信号に基づいて、アクチュエータの駆動信号を生成するマイクロコンピュータを備える車載電子制御装置であって、前記マイクロコンピュータは、ハードウェア部とソフトウェア部とを含んで構成されており、前記マイクロコンピュータの内部に設けられ、前記ハードウェア部の各要素の異常を監視するハードウェア要素監視手段と、前記マイクロコンピュータの内部に設けられ、前記ソフトウェア部の各要素の異常を監視するソフトウェア要素監視手段と、前記マイクロコンピュータの外部に設けられ、前記マイクロコンピュータの異常を監視する外部監視手段と、を備えることを特徴としている。このように、マイクロコンピュータをハードウェア監視、ソフトウェア監視、外部監視の3つで総合監視するので、マイクロコンピュータの異常の詳細を診断することができる。そのため、マイクロコンピュータの異常発生時には、異常の詳細に応じた適切な処置が可能となる。また、上記において、前記ハードウェア要素監視手段は、監視対象のハードウェア要素とは異なる構造で、且つ当該監視対象のハードウェア要素と入出力特性が等しい監視用ハードウェア要素を備え、前記監視対象のハードウェア要素と前記監視用ハードウェア要素とに同一信号を入力したときの出力信号を比較することで、前記監視対象のハードウェア要素の異常を監視することを特徴としている。このように、監視対象のハードウェア要素の入出力を監視するので、当該監視対象のハードウェア要素の故障を適切に検出することができる。さらに、監視用ハードウェア要素を監視対象のハードウェア要素とは異なる構造で実装するので、例えば、両者で処理完了までの遅延時間を異ならせることができる。その結果、両者が共通して影響を受ける故障要因に対しても、適切に故障として検出することができる。また、上記において、前記ハードウェア要素監視手段は、上記異常を検出すると、前記アクチュエータを停止するための停止処置を行うことを特徴としている。このように、マイクロコンピュータの異常の詳細に応じて適切な処置を行うことができる。さらに、上記において、前記ハードウェア要素監視手段は、上記異常を検出すると、前記外部監視手段にこれを通知し、前記外部監視手段は、前記ハードウェア要素監視手段からの前記通知を受けて、前記アクチュエータを停止するための停止処置を行うことを特徴としている。このように、異常を検出した際に、直接アクチュエータの停止処置を実施する手段と、外部監視手段を介してアクチュエータの停止処置を実施する手段とを併用することで、当該停止処置の実施手段を冗長化することができる。これにより、異常発生時には、より確実にアクチュエータを停止することができる。また、上記において、前記ソフトウェア要素監視手段は、監視対象のソフトウェア要素とは異なる構造で、且つ当該監視対象のソフトウェア要素と同等の演算処理を行う監視用ソフトウェア要素を備え、前記監視対象のソフトウェア要素と前記監視用ソフトウェア要素とに同一信号を入力し、両者の演算結果の差が許容範囲内であるか否かにより、前記監視対象のソフトウェア要素の異常を監視することを特徴としている。このように、監視対象のソフトウェア要素の演算結果を監視するので、当該監視対象のソフトウェア要素の異常を適切に検出することができる。さらに、監視用ソフトウェア要素を監視対象のソフトウェア要素とは異なる構造で実装するので、例えば、両者で演算に使用されるインストラクションを異ならせることができる。その結果、両者に共通して影響を受ける異常要因に対しても、適切に異常として検出することができる。また、演算結果の比較に際し、所定の許容範囲を設定するので、異なる実装を実現したことにより生じる演算誤差を考慮した異常診断を行うことができる。さらにまた、上記において、前記許容範囲は、前記監視対象のソフトウェア要素の演算結果と前記監視用ソフトウェア要素の演算結果とが同符号であり、且つ前記監視対象のソフトウェア要素の演算結果の絶対値が前記監視用ソフトウェア要素の演算結果の絶対値よりも小さい範囲に設定することを特徴としている。このように、監視対象のソフトウェア要素の演算結果の絶対値が小さいほど、アクチュエータの実際の制御動作は小さく、不具合を発生する動作に繋がりにくいことを考慮して、異常を非検出とする許容範囲を設定することができる。そのため、むやみに異常診断するのを抑制することができる。また、上記において、前記ソフトウェア要素監視手段は、上記異常を検出すると、前記監視対象のソフトウェア要素の演算結果を前記許容範囲内に制限する制限手段を備えることを特徴としている。これにより、マイクロコンピュータに異常が発生している場合であっても、その異常がソフトウェア要素の異常である場合には、アクチュエータの駆動制御を続行させることができる。このように、マイクロコンピュータの異常の詳細に応じて適切な処置を行うことができる。さらに、上記において、前記外部監視手段は、前記マイクロコンピュータのクロックを監視することで、前記マイクロコンピュータの異常を監視することを特徴としている。これにより、マイクロコンピュータ内部の各機能が共通して影響を受けるクロック異常が発生し、マイクロコンピュータ内部で故障/異常の診断が行えない場合には、これを異常として検出することができる。そのため、信頼性の高い異常診断を行うことができる。また、上記において、前記外部監視手段は、前記ハードウェア要素監視手段及び前記ソフトウェア要素監視手段が動作していることを監視することで、前記マイクロコンピュータの異常を監視することを特徴としている。このように、ハードウェア要素監視手段そのものが動作していない場合や、ソフトウェア要素監視手段そのものが動作していない場合には、これを異常として検出することができる。そのため、信頼性の高い異常診断を行うことができる。さらにまた、上記において、前記外部監視手段は、前記外部監視手段は、上記異常を検出すると、前記アクチュエータを停止するための停止処置を行うことを特徴としている。このように、マイクロコンピュータの異常の詳細に応じて適切な処置を行うことができる。本発明の車載電子制御装置では、マイクロコンピュータのハードウェア部及びソフトウェア部の内部監視と、マイクロコンピュータの外部監視との総合監視が可能であるため、マイクロコンピュータの異常の詳細を適切に診断することができる。その結果、異常の詳細に応じた適切な処置が可能となる。以下、本発明の実施の形態を図面に基づいて説明する。図1は、本実施形態における車載電子制御装置の機能を示す図である。図中、符号1は車両の制御を行う車載電子制御装置であり、この車載電子制御装置は、マイクロコンピュータMCU2を備える。MCU2は、ハードウェア部21とソフトウェア部22とを含んで構成されている。ハードウェア部21は、複数のMCU内部要素と、これらMCU内部要素のうちの主機能22の故障を監視する監視機能23とを備える。ここで、MCU内部要素とは、中央演算処理回路CPUやバス、ROM、RAM、周辺回路タイマ、シリアル通信、CAN通信、外部出力ポートなどである。また、ソフトウェア部24は、ソフトウェア要素S/W要素と、S/W要素のうちの主機能25で実行する演算処理の異常を監視する監視機能26とを備える。すなわち、MCU2内部において、ハードウェア要素の監視とソフトウェア要素の監視とを行うようになっている。MCU2には、車両に搭載されている各種センサ11で検出した検出信号が、入力I/F回路3を介して入力される。そして、MCU2は、入力された検出信号に基づいて、車両に搭載されたアクチュエータブレーキアクチュエータ、アクティブサスペンション等12を駆動制御するための指令信号を演算し、これをアクチュエータ駆動回路4に出力する。アクチュエータ駆動回路4は、ブリッジ回路FET、FET駆動回路、リレー、リレー駆動回路などを含んで構成されており、MCU2で演算した指令信号をもとにアクチュエータ12を駆動制御する。また、車載電子制御装置1は、MCU2の外部でMCU2の故障を監視する故障処理回路5を備える。なお、図1において、監視機能23がハードウェア要素監視手段に対応し、監視機能26がソフトウェア要素監視手段に対応し、故障処理回路5が外部監視手段に対応している。次に、MCU2のハードウェア部21の監視機能23について詳細に説明する。図2は、ハードウェア部21の監視機能23を説明するためのブロック図である。この図2に示すように、複数のMCU内部要素主機能31に、それぞれ監視機能23として故障処理要素32が配置されている。ここで、MCU内部要素31と故障処理要素32とは、異なる構造で実装する。故障処理要素32は、監視対象のMCU内部要素31の入出力を監視し、当該MCU内部要素31が故障しているか否かを診断する。ここでは、図3に示すように、故障処理要素32は、演算処理回路32aと比較回路32bとを備える。演算処理回路32aは、監視対象のMCU内部要素31を構成する演算処理回路31aとは異なる実装で、且つ演算処理回路31aと入出力特性が等しい。すなわち、演算処理回路32aは、その機能が正常である場合に演算処理回路31aと同一の信号を入力したとき、演算処理回路31aと同一の信号を出力するものであり、演算処理回路31aとは異なるトランジスタ数で実装する。故障処理用の演算処理は、診断のための演算値が求められればよいため、主機能の演算処理よりも簡素化できる。そのため、ここでは、トランジスタ数を異ならせて、演算処理回路32aを演算処理回路31aに対して簡素化した構造とする。そして、この演算処理回路32aに演算処理回路31aの入力信号を入力し、その出力信号を比較回路32bに入力する。すると、比較回路32bは、演算処理回路31aの出力信号と演算処理回路32aの出力とを比較する。このとき、同一結果となっていない場合には、MCU内部要素31が故障していると判断し、故障処理要素32は、図2に示すMCU内部要素外部出力機能33及び故障後処置要素34に故障を検出したことを示す診断結果を通知する。MCU内部要素33は、故障処理要素32の診断結果を受けて、アクチュエータ駆動回路4へ故障後処置の実施指令を出力する。故障後処置の実施指令の例としては、例えば、アクチュエータ駆動回路4を構成するブリッジ回路のFET駆動回路への停止信号がある。この場合、当該停止信号が出力されることで、全FETがOFFし、アクチュエータ12を停止させることができる。また、故障後処置の実施指令の別の例としては、例えば、アクチュエータ駆動回路4のリレー駆動回路への停止信号がある。この場合、当該停止信号が出力されることで、リレーがOFFし、アクチュエータ12への電力供給を停止することができる。このように、本実施形態では、故障後処置としてアクチュエータ12の停止処置を適用する。また、故障後処置要素34は、故障処理要素32の診断結果を受けて、故障処理回路5へMCU内部要素31の故障を通知する。故障処理回路5は、故障後処置要素34から当該故障通知を受け取ると、アクチュエータ駆動回路4へ故障後処置の実施指令を出力する。このように、通知手段を冗長化することにより、MCU内部要素33及び故障後処置要素34の何れかの通知機能が失われた状態でも、確実にアクチュエータ駆動回路4へ故障後処置の実施指令を出力することができる。次に、MCU2のソフトウェア部24の監視機能26について詳細に説明する。図4は、S/W要素の診断例を示すブロック図である。この図4に示すように、S/W要素主機能41には、監視機能26として異常処理S/W42が配置されている。ここで、S/W要素41と異常処理S/W42とは、異なる構造で実装する。異常処理S/W42は、監視対象のS/W要素41の演算結果を監視し、当該S/W要素に異常が発生しているか否かを診断する。ここでは、異常処理S/W42は、演算処理42aと、比較処理42bと、制限処理42cとを備える。演算処理42aは、監視対象のS/W要素41の演算処理41aとは異なる実装で、且つ演算処理41aと同等の演算を行う。すなわち、演算処理42aは、演算処理41aとは異なるインストラクション数で、演算処理41aと数式上同一となる演算を行うものである。故障処理用の演算処理は、診断のための演算値が求められればよいため、主機能の演算処理よりも簡素化できる。そのため、ここでは、インストラクション数を異ならせて、演算処理42aを演算処理41aに対して簡素化したものとする。そして、この演算処理42aに演算処理41aの入力信号を入力し、その演算結果を比較処理42bに入力する。すると、比較処理42bは、演算処理41aの演算結果と演算処理42aの演算結果とを比較する。このとき、両者の誤差が所定の許容範囲内にない場合には、S/W要素41に異常が発生していると判断する。すなわち、図5に示すように、主機能側の値演算処理41aの演算結果が監視側の値演算処理42aの演算結果に対して±所定範囲となる領域を許容領域とし、それ以外の斜線で示す領域を異常診断領域とする。そして、主機能側の値と監視側の値とによって決まる点が異常診断領域内にあるとき、上記誤差が許容範囲内にないと判断する。なお、図5の破線で示す直線は、主機能側の値と監視側の値とが等しい領域である。このように、所定の許容範囲を設定するため、演算処理42aを簡素化したことにより生じる演算誤差分を考慮した異常判定を行うことができる。また、異常診断領域は、例えば図6に示すように設定することもできる。この例は、主機能側の値と監視側の値とが同符号で、且つ主機能側の値の絶対値が監視側の値の絶対値よりも小さい領域±所定範囲を許容範囲としたものである。すなわち、主機能側の値と監視側の値とによって決まる点が、図6の斜線に示す異常診断領域内にあるとき、上記誤差が許容範囲内にないと判断する。これにより、実際の動作の値が小さいものは、不具合発生に繋がる可能性が低いと判断して許容することができるので、むやみに異常判定されるのを抑制することができる。そして、比較処理42bは、S/W要素41に異常が発生していることを検出すると、その診断結果を図4の制限処理制限手段42cに出力する。制限処理42cには、演算処理41aの演算結果が入力される。比較処理42bから異常を検出したことを示す診断結果が入力された場合には、制限処理42cは、演算処理41aの演算結果を許容できる制限値まで制限して出力する。ここで、上記制限値は、車両で許容できる範囲を実験的に検証して決定することが望ましい。一方、比較処理42bから異常を検出したことを示す診断結果が入力されていない場合には、制限処理42cは、演算処理41aの演算結果をそのまま出力する。次に、故障処理回路5の構成について具体的に説明する。図7は、故障処理回路5の機能を示すブロック図である。故障処理回路5は、MCU2の故障をMCU2の外部から監視するものである。MCU2の監視方法としては、MCU2のクロック27を監視する方法と、MCU2の監視機能23及び26が動作していることを監視する方法とを採用する。すなわち、故障処理回路5は、MCU2のクロック27を監視するために、MCU2とは独立したクロック51と、クロック監視処理52とを備える。クロック監視処理52は、クロック27のクロックパルスとクロック51のクロックパルスとを比較することで、クロック27の故障を検出する。クロック27は、MCU2の一連の作業の基準となるものであり、例えばRC発振回路やセラミック振動子、水晶振動子、水晶振動子内蔵オシレータ、水晶振動子分周器内蔵オシレータなどからなる。なお、図7では、クロック監視処理52を故障処理回路5内部のS/Wで実装する場合について示しているが、MCU2内部のH/WやS/Wで実装することもできる。また、故障処理回路5は、MCU2の監視機能23の動作を監視するために、故障処理要素32のウォッチドッグタイマの出力パルスを監視するパルス監視処理53を備える。パルス監視処理53は、上記出力パルスが所定時間停止したことをもって、監視機能23の異常を検出する。なお、図7では監視機能23の異常検出についてのみ示しているが、監視機能26異常処理S/W42についても同様の方法で異常を検出するものとする。すなわち、監視機能26異常処理S/W42が正しく実行されたときにウォッチドッグタイマからパルスを出力することによって、監視機能26が実行されない状態監視されていない状態をMCU2の外部の故障処理回路5で診断することができる。そして、故障処理回路5は、クロック監視処理52及びパルス監視処理53の少なくとも一方でMCU2の故障を検出すると、アクチュエータ12を停止させるべく、アクチュエータ駆動回路4に対して故障後処置の実施指令を出力する。このように、本実施形態では、MCUをハードウェア監視、ソフトウェア監視、外部監視の3つで総合監視するので、MCUの異常を詳細に監視することができる。すなわち、ハードウェア監視においては、MCU内部要素ごとに故障処理要素を配置してMCU内部要素の入出力信号を監視するので、MCU内部要素の故障をきめ細かく診断することができる。また、このとき、故障処理要素を監視対象のMCU内部要素とは異なる構造で実装するので、例えば、両者で処理完了までの遅延時間を異ならせることができる。その結果、両者に共通して影響を受ける故障要因に対しても、適切に故障として検出することができる。さらに、トランジスタ数を少なくするなどにより、故障処理要素を監視対象のMCU内部要素よりも簡素化した構造で実装するので、比較的簡易且つ安価に故障処理要素を設けることができる。さらに、上記ハードウェア監視の他に、MCU内部でソフトウェア監視を行うので、ハードウェア監視の故障処理要素で検出しきれない演算不具合を検出することができる。このとき、ソフトウェア監視においては、S/W要素に異常処理S/Wを配置してS/W要素の演算結果を監視するので、S/W要素の異常を適切に診断することができる。さらに、異常処理S/Wを監視対象のS/W要素とは異なる構造で実装するので、例えば、両者で演算に使用されるインストラクションを異ならせることができる。その結果、両者に共通して影響を受ける異常要因に対しても、適切に異常として検出することができる。また、演算結果の比較に際し、所定の許容範囲を設定するので、異常処理S/Wを簡素化した構造としたことにより生じる演算誤差を考慮した異常診断を行うことができる。例えば、監視対象のS/W要素の演算結果と異常処理S/Wの演算結果とが同符号であり、且つ監視対象のS/W要素の演算結果の絶対値が異常処理S/Wの演算結果の絶対値よりも小さい範囲を、上記許容範囲とする。これにより、監視対象のS/W要素の演算結果が、アクチュエータの実際の制御動作が小さく不具合を発生する動作に繋がりにくいような値の場合には、監視対象のS/W要素の演算結果と異常処理S/Wの演算結果とに比較的大きな誤差が生じている場合でも許容することができる。そのため、むやみに異常診断するのを抑制することができる。そして、ハードウェア監視においてMCU内部要素の故障を検出した場合には、アクチュエータを停止する処置を行い、ソフトウェア監視においてS/W要素の異常を検出した場合には、S/W要素の演算結果を許容範囲内に制限する補正を行って、アクチュエータの駆動制御を続行する処置を行う。車両に搭載される電子制御用MCUは、異常発生時には異常の詳細によらず制御を停止させるのが一般的であった。ところが、車両の大型化による制御停止時のドライバ負担や車両安全制御の規格化などの観点から、異常発生時にも異常の詳細によっては制御を続行させる必要がある。本実施形態では、MCUの異常をきめ細かく診断することができるので、異常の詳細に応じて制御を停止したり制御を続行したりすることができるなど、適切な処置を行うことができる。さらに、MCU外部でMCUの故障を監視する外部監視を行うので、MCU内部の監視機能であるハードウェア監視とソフトウェア監視とが共通して影響を受ける要因に対して診断を実施することができる。例えば、MCUの外部にMCUとは独立したクロックを配置し、MCUのクロックを監視することで、MCU内部の各監視機能が共通して影響を受けるクロック異常が発生し、MCU内部で故障/異常の診断が行えない場合には、これを異常として検出することができる。また、MCU内部の各監視機能のウォッチドッグタイマの出力パルスを監視することで、MCU内部の各監視機能が動作していない場合には、これを異常として検出することができる。このように、MCUの機能不全をMCUの外部で検出し、処置することができる。そして、この外部監視においては、自身の監視機能でMCUの故障を検出した場合や、異常処理要素からMCU内部要素の故障を検出したことを示す情報を取得した場合に、アクチュエータを停止する処置を行う。すなわち、ハードウェア監視でMCU内部要素の故障を検出した場合には、ハードウェア監視によって直接アクチュエータを停止する処置を行う手段と、外部監視を介してアクチュエータを停止する処置を行う手段とを併用することができる。その結果、MCU内部要素の故障が発生した場合には、確実にアクチュエータを停止することができる。