(57)【特許請求の範囲】
【請求項１】
制御対象に対する制御量の演算を主体とする第１のマイクロコンピュータと、前記第１のマイクロコンピュータに対する動作の監視を主体とする第２のマイクロコンピュータとを備え、前記演算に基づいて前記制御対象を制御するようにした電子制御装置であって、
前記第１のマイクロコンピュータは、前記第２のマイクロコンピュータをマスターとし前記第１のマイクロコンピュータをスレーブとして動作する通信手段と、自身が前記制御量の演算に用いるデータの少なくとも一部を記憶するメモリを有し、
前記通信手段は、前記第２のマイクロコンピュータからの指示に基づいて、前記第1のマイクロコンピュータの演算リソースを用いずに、前記メモリに記憶された前記データの少なくとも一部を読み出して前記第２のマイクロコンピュータに送信するように構成され、
前記第２のマイクロコンピュータは、前記送信されたデータに基づいて前記第１のマイクロコンピュータの異常の有無を判断するように構成されている、
ことを特徴とする電子制御装置。
【請求項２】
前記通信手段は、ダイレクト・メモリ・アクセス・コントローラにより構成されている、
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記第２のマイクロコンピュータは、前記第１のマイクロコンピュータが異常であると判断したときは、異常信号を出力する、
ことを特徴とする請求項１又は２に記載の電子制御装置。
【請求項４】
前記第２のマイクロコンピュータは、前記第１のマイクロコンピュータが異常であると判断したときは、前記制御対象の駆動を停止させるととともに、異常信号を前記第１のマイクロコンピュータへ送信することを特徴とする請求項１から３のうちの何れか一項に記載の電子制御装置。
【請求項５】
前記第２のマイクロコンピュータは、前記第１のマイクロコンピュータに比較して機能的に下位の機種により構成されている、
ことを特徴とする請求項１から４のうちの何れか一項に記載の電子制御装置。
【請求項６】
前記第１のマイクロコンピュータは、前記第２のマイクロコンピュータの動作を監視するように構成されている、
ことを特徴とする請求項１から５のうちの何れか一項に記載の電子制御装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マイクロコンピュータを複数備え、そのうちの一つのマイクロコンピュータにより他方のマイクロコンピュータの異常を監視するようにした電子制御装置に関するものである。
【背景技術】
【０００２】
従来、いわゆるフェールセーフ強化のために、第１のマイクロコンピュータと、第２のマイクロコンピュータを備え（以下、マイクロコンピュータをマイコンと称する）、第１のマイコンが主に制御対象の制御を司り、第２のマイコンが主に第１のマイコン及び周辺回路の異常を監視するように構成され、或いは、第１のマイコンと第２のマイコンをほぼ同一機能・機種で構成し、相互に制御と異常の監視を行うように構成された電子制御装置がある（例えば、特許文献１参照）。この従来の電子制御装置に於いて、前述の監視は、両マイコンの通信機能を介して、チェックサム、若しくは所定の処理を行い、その答えをチェック、比較することにより行なわれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３８３５３１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている従来の装置は、第２のマイコンが第１のマイコンの動作（演算）を監視する構成であり、その監視の方法は、第１のマイコンの所定のＲＡＭ値とその反転値を第２のマイコンに送信し、チェックサムにより第１のマイコンの異常を監視し、又、第１のマイコンが所定の演算を行なったデータを第２のマイコンへ送信し、第２のマイコンがそのデータの正常、異常を判別するものである。しかし、特許文献１には、第１のマイコンから第２のマイコンへのデータ送信方法については全く言及されておらず、第１のマイコンの異常によって第１のマイコンから第２のマイコンに送信されるデータが正常と判別されるデータに固着されてしまうと、第２のマイコンによって第１のマイコンの異常を検出することが出来ないという問題があった。
【０００５】
この発明は、従来の装置に於ける前述のような課題を解決するためになされたもので、第１のマイコンに異常が生じた場合でも、第１のマイコンから第２のマイコンに送信されるデータが正常と判断されるデータに固着されてしまうことのないマイコン間通信を実現し、第２のマイコンが第１のマイコンの異常を的確に監視することができる電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明による電子制御装置は、
制御対象に対する制御量の演算を主体とする第１のマイクロコンピュータと、前記第１のマイクロコンピュータに対する動作の監視を主体とする第２のマイクロコンピュータとを備え、前記演算に基づいて前記制御対象を制御するようにした電子制御装置であって、
前記第１のマイクロコンピュータは、前記第２のマイクロコンピュータをマスターとし前記第１のマイクロコンピュータをスレーブとして動作する通信手段と、自身が前記制御量の演算に用いるデータの少なくとも一部を記憶するメモリを有し、
前記通信手段は、前記第２のマイクロコンピュータからの指示に基づいて、前記第1のマイクロコンピュータの演算リソースを用いずに、前記メモリに記憶された前記データの少なくとも一部を読み出して前記第２のマイクロコンピュータに送信するように構成され、
前記第２のマイクロコンピュータは、前記送信されたデータに基づいて前記第１のマイクロコンピュータの異常の有無を判断するように構成されている、
ことを特徴とするものである。 
【発明の効果】
【０００７】
この発明による電子制御装置によれば、第１のマイクロコンピュータは、自身が制御量の演算に用いるデータの少なくとも一部を自身の演算リソースを用いずに第２のマイクロコンピュータに送信するように構成され、第２のマイクロコンピュータは、送信されたデータに基づいて第１のマイクロコンピュータの異常の有無を判断するように構成されているので、第１のマイクロコンピュータに異常が発生した場合でも、第２のマイクロコンピュータにより第１のマイクロコンピュータの異常を確実に検出することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１による電子制御装置の全体構成を示すブロック図である。
【図２】この発明の実施の形態１による電子制御装置の動作を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、この発明の実施の形態１による電子制御装置を図に基づいて説明する。この発明の実施の形態１による電子制御装置の全体構成を示すブロック図である。図１に於いて、この発明の実施の形態１による電子制御装置は、例えば車両の電子制御スロットルの制御装置として提供されたものであり、コントロールユニット（以下、ＥＣＵと称する）１と、アクチュエータ２と、センサ１０とにより構成されている。
【００１０】
アクチュエータ２は、例えば制御対象としてのスロットルを駆動してその開度を制御するように構成されている。ＥＣＵ１は、電子制御装置による制御の中心をなすものであり、センサ１０からの検出データ等の情報に基づき制御対象の制御量を算出し、その算出した制御量に基づいてアクチュエータ２を駆動する。
【００１１】
センサ１０は、例えばスロットルの開度を検出するセンサであり、スロットルの開度に応じたデータを制御対象の情報として出力する。ＥＣＵ１は、主として、電源５と、センサ１０からの情報を入力する入力インターフェース（以下、Ｉ／Ｆと称する）６と、第１のマイコン３と、第２のマイコン４と、制御対象であるアクチュエータ２を駆動するドライバ７とにより構成されている。
【００１２】
前述のように構成されたＥＣＵ１に於いて、第１のマイコン３と第２のマイコン４とを更に機能的に分解すると、夫々、以下のように複数の機能ブロックにより構成されている。即ち、第１のマイコン３は、演算の中心をなす第１の演算手段（以下、第１のＣＰＵと称する）３１と、第１の入力ポート３２と、第１の出力ポート３３と、不揮発性メモリとしての第１のＲＯＭ３４と、書き込み及び読み出し可能なメモリとしての第１のＲＡＭ３５と、第１の通信ポート３７と、通信コントローラ３６とから構成されている。尚、第１のマイコン３を構成する前述の各機能ブロックは、アドレスバス若しくはデータバスとしての第１の接続バス３８により相互に接続されている。
【００１３】
一方、第２のマイコン４は、第１のマイコン３の構成に類似しており、第２の演算手段（以下、第２のＣＰＵと称する）４１と、第２の入力ポート４２と、第２の出力ポート４３と、不揮発性メモリとしての第２のＲＯＭ４４と、書き込み及び読み出し可能なメモリとしての第２のＲＡＭ４５と、第２の通信ポート４７と、これ等の機能ブロックを相互に接続するアドレスバス若しくはデータバスとしての第２の接続バス４８とから構成されている。又、第１のマイコン３の異常を検出した場合に異常信号を出力する出力ライン９が設けられている。出力ライン９は、ドライバ７、及び第１のマイコン３に接続されている。
【００１４】
次に第１のマイコン３の動作について説明する。センサ１０からの情報を入力すると、第１のＲＯＭ３４に内蔵されたソフトウエアに従ってアクチュエータ２を駆動する制御量を第１のＣＰＵ３１が演算する。その際、第１のＲＡＭ３５からアクチュエータ２を駆動する制御量の演算に用いる所定のデータを読み出すと共に、演算の入力値と中間値と出力値とを第１のＲＡＭ３５に記憶させる。制御量が決定されると第１の出力ポート３３からその制御量が出力され、ドライバ７を制御し、アクチュエータ２を駆動する。第２のマイコン４との間で自己の監視のためではない通信をする必要がある場合、例えば、第２のマイコン４へ制御のための情報提供他を行う場合、第１の通信ポート３７を使用するが、図示していない通信ポートを利用して、別途、データの授受を行うことがある。
【００１５】
次に、第２のマイコン４の動作について説明する。センサ１０からの情報を入力すると、第２のＲＯＭ４４に内蔵されたソフトウエアに従ってアクチュエータ２を駆動する制御量を第２のＣＰＵ４１が演算する。その際、第２のＲＡＭ４５から所定のデータの読み出すと共に、演算の入力値と中間値と出力値とを第２のＲＡＭ４５に記憶させる。第２のＣＰＵ４１の演算結果は、出力ライン９を介して第１のマイコン３１に送信すると共に、ドライバ７に駆動の継続、停止の信号を出力する。この動作は、後述する第１のマイコン３の監視とは別に行われる。
【００１６】
第２のマイコン４による第１のマイコン３の異常の監視に関しては、先ず、第２のマイコン４がマスターとなり、第１のマイコン３がスレーブとなって、第１のマイコン３の監視を行なうためのデータ通信を行う。第２のマイコン４の独自タイミングで、通信指示を第２の通信ポート４７を介して第１のマイコン３へ送信する。この送信は第１のマイコン３の制御周期とは無関係に第２のマイコン４の独自の任意のタイミングで実行され、その通信指示は、第１のマイコン３の第１のＲＡＭ３５に格納されている所定のアドレスのデータを引き出すためのものである。
【００１７】
第２のマイコン４からの通信指示が第１のマイコン３の第１の通信ポート３７に入力されると、通信コントローラ３６が起動する。この通信コントローラ３６は、第１のＣＰＵ３１とは独立に処理できるコントローラであって、第２のマイコン４をマスターとし第１のマイコン３をスレーブとして動作する。例えば、通信コントローラ３６は、ＤＭＡＣ（Direct Memory Access controller）のように、第１のＣＰＵ３１とは独立して、データ
の読み出し、伝達ができる手段である。通信コントローラ３６は、第２のマイコン４の通信指示を受けて起動され、第１のＲＡＭ３５の所定のアドレスからデータを読み出し、そのデータを第１の通信ポート３７から第２のマイコン４の第２の通信ポート４７へ送信する。この通信は通信ライン８を介して行われる。通信ポート削減のためシリアル通信、例えばＳＰＩ（Serial Peripheral Interface）、ＳＣＩ（Serial Communication Interface）を利用する。
【００１８】
ここで、第１のマイコン３は、通信コントローラ３６がデータを読み出す第１のＲＡＭ３５の領域を、制御に用いる値を格納するＲＡＭとして使用する。即ち、少なくとも、 
第１のマイコン３の監視を行なうために第２のマイコン４に送信する値を格納するＲＡＭとして第１のＲＡＭ３５を使用する。例えば、ＤＭＡＣを用いて通信を行なう場合、ＤＭＡＣは第１のＲＡＭ３５の予め定めたアドレス範囲のデータを第１のＣＰＵ３１とは独立に送信する。このため、第１のマイコンは、例えば第１のマイコン３１で行なう演算の入力値と中間値と出力値とを、ＤＭＡＣが読み出す第１のＲＡＭ３５の予め定めたアドレス範囲に直接格納し、そのＲＡＭ値を読み出して制御に用いるように構成されている。
【００１９】
このように構成することで、第１のマイコン３は、自身のＣＰＵリソースを用いずに、制御に用いている値そのものを第１のマイコン３の監視を行なうためのデータとして第２
のマイコン４に送信することができる。このため、第１のマイコン３の演算に異常、即ち、ＣＰＵリソースの故障が生じた場合でも、第２のマイコン４は制御に用いている値に基づいて確実に第１のマイコン３の故障監視を行なうことができる。
【００２０】
第２のマイコン４は、第１のマイコン３から送信されたデータを自己の保有しているデータと比較して、所定範囲内に入っているかを検証し、又は、第２のマイコン４が第２のＣＰＵ４１で演算した結果と比較検証することで、第１のマイコン３の正常、異常を判断する。第２のマイコン４は、第２のＣＰＵ４１とは独立して動作する通信コントローラを備えていなくてもよく、第２のＣＰＵ４１から直接指示して通信してもよい。勿論、第２のマイコン４にも通信コントローラが内蔵していてもよく、この場合はその通信コントローラを利用してもよい。
【００２１】
第２のマイコン４による前述の比較検証により第１のマイコン３が異常であると判断した場合、第２のマイコン４は、異常信号を出力する。この異常信号は出力ライン９を介して、ドライバ７を停止したり、第１のマイコン３に送信したり、又は警報を行う。第１のマイコン３の異常の状況によっては、一過性のものであったり、故障の箇所が一部であったり、軽症であった等により、更には後の点検に使用できるため、異常判断を第２のマイコン４のみならず第１のマイコン３も第２のマイコン４からの異常信号を記憶しておくとよい。
【００２２】
次に、第１のＣＰＵ３１、第２のＣＰＵ４１のソフトウエアによる動作の一例を図２のフローチャートに沿って説明する。図２は、この発明の実施の形態１による電子制御装置の動作を説明するフローチャートであり、（Ａ）は第１のマイコン３に於ける第１のＣＰＵ３１のフローチャートであり、（Ｂ）は第２のマイコン４に於ける第２のＣＰＵ４１のフローチャートである。
【００２３】
先ず、第１のＣＰＵ３１の動作について説明する。図２の（Ａ）に於いて、第１のＣＰＵ３１に電源が投入されると、ステップＳ１０に於いて第１の入力ポート３２、第１の出力ポート３３、及び第１のＲＡＭ３５等を初期化する。このとき、通信コントローラ３６（例えばＤＭＡＣ）を、第２のＣＰＵ４１からの通信指示で第１のＲＡＭ３５の所定のアドレス範囲のデータを第２のＣＰＵ４１に送信するように設定する。
【００２４】
次にステップＳ１１に進み、センサ１０からの情報を入力Ｉ／Ｆ６、第１の入力ポート３２を介して入力する。ステップＳ１２では、その入力した情報に基づき制御対象に対する制御量を演算する。次に、ステップＳ１３では、いわゆるフェールセーフを実行し、特に第１のＣＰＵ３１以外の異常の有無をチェックする。次に、ステップＳ１４に於いてフェールセーフの結果の反映、及び制御量を第１の出力ポート３３を介してドライバ７へ出力する。
【００２５】
次に、ステップＳ１５では、例えばＤＭＡＣにより構成されている通信コントローラ３６が読み出す第１のＲＡＭ３５の所定のアドレス範囲のＲＡＭに第２のマイコン４に送信するデータを格納する。このデータとしては、例えば第１のマイコン３が制御対象に対する制御量の演算に用いているデータの少なくとも一部である。ここで、第１のＣＰＵ３１は、第１のＲＡＭ３５の前述の所定のアドレス範囲のＲＡＭに格納した値を用いて制御量の演算を行なう。尚、前述のデータを格納するステップＳ１５での処理は、図２の（Ａ）のフローチャートに示すステップＳ１５の位置でなくても、例えば制御量演算過程のものであれば、ステップＳ１２の中で格納してもよいし、或いは、次のステップＳ１７の処理に時間的に余裕のあるときに格納してもよい。
【００２６】
ステップＳ１５で第１のＲＡＭ３５に格納したデータは、第１のＣＰＵ３１の一連の処
理とは別に第２のマイコン４からの通信指示に基づいて通信コントローラ３６を介して第２のマイコン４に送信される。この送信をステップＳ１６の破線で示している。最後にステップＳ１７に於いて、第１のＣＰＵ３１が所定の制御周期になるようにＴ１時間待機する。待機時間Ｔ１が経過すればステップＳ１１へ戻り、前述と同様の処理を繰り返す。
【００２７】
次に第２のＣＰＵ４１の動作について説明する。図２の（Ｂ）に於いて、第２のＣＰＵ４１に電源が投入されると、ステップＳ２０に於いて第２の入力ポート４２、第２の出力ポート４３、及び第２のＲＡＭ４５等を初期化する。ステップＳ２１では、センサ１０からの情報を入力Ｉ／Ｆ６、第２の入力ポート４２を介して入力する。次に、ステップＳ２２に進み、第２のマイコン４として受け持っている出力、処理等のために演算処理を行なう。ステップＳ２３では、その演算結果に基づき出力する。ここまでは通常の処理フローであるが、次の動作からは監視フローとなる。
【００２８】
ステップＳ２４に於いて、第２の通信ポート４７から第２のＣＰＵ４１のクロック（図示せず）に従って第１のマイコン３へ通信指示を出力する。この通信指示の出力が破線で示すステップＳ２５である。第１のマイコン３は、第２のマイコン４からの通信指示に基づいて、前述のステップＳ１６によりデータを第２のマイコン４へ返信する。
【００２９】
次に、ステップＳ２６に於いて、第２のマイコン４は、第１のマイコン３から返信されたデータを自己の保有しているデータと比較して、その返信されたデータが所定範囲内に入っているか否かを検証し、又は、第２のマイコン４が第２のＣＰＵ４１にて演算した結果と前述の返信されたデータとを比較検証することで、返信されたデータが異常であるか否かを判断し、これにより第１のマイコン３が正常であるか異常であるかを判断する。
【００３０】
ステップＳ２６に於いてデータ異常と判断された場合（Ｙ）、ステップＳ２７に進んで異常処理を行う。この異常処理は、例えば、図１に示す出力ライン９に異常信号を出力すると共に、第２のＣＰＵ４１が異常を記憶する。
【００３１】
以上のように、第２のマイコン４がマスター、第１のマイコン３がスレーブとなって通信を行ない、かつ、 通信コントローラ３６によって第１のマイコン３自身のＣＰＵリソ
ースを用いずに、第１のマイコン３が制御に用いているＲＡＭのデータを第２のマイコン４に送信する。このため、第１のマイコン３の異常（ＣＰＵリソースの異常）が生じた場合でも、第２のマイコン４によって第１のマイコン３の故障を確実に検出することが出来る。
【００３２】
以上、２個のマイコンが存在する構成について説明したが、第１のマイコンは複数あってもよい。この場合、第２のマイコンが複数の第１のマイコンに夫々、又は、同一の通信指示を行うことで同様な機能を有することができる。更に、第１のマイコン、第２のマイコンともに複数存在することも可能で、各第２のマイコンが各第１のマイコンを夫々担当して前述と同様の処理を行なうことで第１のマイコンの異常の有無を判断することができる。
【００３３】
実施の形態２．
次に、この発明の実施の形態２による電子制御装置について説明する。実施の形態１では第１のマイコンの動作を第２のマイコンが監視する構成について説明したが、第１のマイコンと第２のマイコンが相互に相手の動作を監視することも可能である。電子制御装置の制御対象物に応じては、２つのマイコンを用い、各マイコンに制御機能を有するもの、或いは、冗長系を構成し、一方のマイコンが故障の場合、他方のマイコンで駆動を継続するようなシステムも多い。このようなシステムでは、２つのマイコンで相互に相手の動作を監視する構成が好適である。
【００３４】
このような構成では、例えば第１のマイコンがマスター、第２のマイコンがスレーブとして動作する第１の通信手段を備え、第２のマイコンが実施の形態１と同様に自身のＣＰＵリソースを用いずに第１のマイコンと通信を行い、また、第２のマイコンがマスター、第１のマイコンがスレーブとして動作する第２の通信手段を備え、第１のマイコンが実施の形態１と同様に自身のＣＰＵリソースを用いずに第２のマイコンと通信を行うことで実現可能である。但し、この場合は、通信コントローラを第１のマイコンと第２のマイコンのそれぞれに保有している必要がある。
【００３５】
尚、この発明は、その発明の範囲内に於いて、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【００３６】
１    コントロールユニット（以下、ＥＣＵと称する）
２    アクチュエータ                      ３    第１のマイクロコンピュータ
４    第２のマイクロコンピュータ          ５    電源
６    入力インターフェース（Ｉ／Ｆ）      ７    ドライバ
９    出力ライン                        １０    センサ
３１    第１の演算手段（ＣＰＵ）        ３２    第１の入力ポート
３３    第１の出力ポート                ３４    第１のＲＯＭ
３５    第１のＲＡＭ                    ３６    通信コントローラ
３７    第１の通信ポート                ３８    第１の接続バス
４１    第２の演算手段（ＣＰＵ）        ４３    第２の出力ポート
４４    第２のＲＯＭ                    ４５    第２のＲＡＭ４７
４７  第２の通信ポート                  ４８    第２の接続バス
【図１】
0005575086.tif 000002
【図２】
0005575086.tif 000003