(57)【要約】【課題】１回の書き誤りに起因して異常を繰り返し検出してしまうのを抑制する【解決手段】ＥＣＵ１は、データを書き込むときには、書き込むデータに基づいて誤り訂正符号（ＥＣＣ）を生成して、書き込みデータにＥＣＣを付加し、データを読み出すときには、付加されているＥＣＣを用いて、１ビットの誤りを訂正することができるとともに、２ビット以上の誤りを検出することができ、且つ、２ビット以上の誤りを検出したときに異常検出情報をＥＣＣエラー記憶レジスタ１３３（以下、レジスタ１３３という）に記憶するＥＣＣ機能を搭載したＲＡＭ１３を備え、データ記憶領域１３１のデータを読み出し、レジスタ１３３に異常検出情報が記憶されているか否かを判断する。そして、レジスタ１３３に異常検出情報が記憶されている場合に、データ記憶領域１３１のデータを読み出し、その後に、読み出したデータを同じアドレスに書き込む。【選択図】図１
2014048744.tif 000002
【特許請求の範囲】
【請求項１】
データを書き込むときには、書き込むデータに基づいて誤り訂正符号を生成して、対応する書き込みデータに前記誤り訂正符号を付加し、記憶されているデータを読み出すときには、読み出すデータに付加されている前記誤り訂正符号を用いて、記憶されているデータにおける１ビットの誤りを訂正することができるとともに、記憶されているデータにおける２ビット以上の誤りを検出することができ、且つ、２ビット以上の誤りを検出したときにその旨を示す異常検出情報を、内部に予め設定された異常記憶領域（１３３）に記憶することができるＥＣＣ（Error Correction Code）機能を搭載し、記憶されるデータの書き換えが可能である書換可能メモリ（１３）と、
前記書換可能メモリの記憶領域のうち予め設定された異常検出領域（１３１）に記憶されているデータを読み出す読出手段（Ｓ１２０，Ｓ１３０，Ｓ１４０，Ｓ３４０，Ｓ５４０，５９０，６００）と、
前記異常記憶領域に前記異常検出情報が記憶されているか否かを判断する異常判断手段（Ｓ１９０，Ｓ３６０，Ｓ５６０）と、
前記異常記憶領域に前記異常検出情報が記憶されていると前記異常判断手段が判断した場合に、前記書換可能メモリの前記異常検出領域に記憶されているデータを読み出し、その後に、読み出したデータを、読み出したときと同じアドレスに書き込む書込手段（Ｓ１３０，Ｓ１４０，Ｓ１６０，Ｓ３５０，Ｓ５５０，５９０，６００）とを備える
ことを特徴とする電子制御装置（１）。
【請求項２】
前記異常記憶領域に記憶されている前記異常検出情報を消去する消去手段（Ｓ３２０）を備え、
前記読出手段（Ｓ３４０）は、前記消去手段が前記異常検出情報を消去した後に、前記異常検出領域に記憶されているデータを読み出し、
前記異常判断手段（Ｓ３６０）は、前記異常検出領域に記憶されている全てのデータを読み出した後に、前記異常記憶領域に前記異常検出情報が記憶されているか否かを判断する
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記読出手段（Ｓ５４０，５９０，６００）は、予め設定された読出単位数毎に、前記異常検出領域に記憶されているデータを読み出し、
前記異常判断手段（Ｓ５６０）は、前記読出手段が前記読出単位数のデータを読み出す毎に、前記異常記憶領域に前記異常検出情報が記憶されているか否かを判断し、
前記異常記憶領域に前記異常検出情報が記憶されていると前記異常判断手段が判断した場合に、前記異常判断手段による判断の対象となった前記読出単位数のデータが記憶されているアドレスを特定するためのアドレス情報を記憶する異常アドレス記憶手段（Ｓ５７０）を備える
ことを特徴とする請求項１に記載の電子制御装置。
【請求項４】
前記読出手段によるデータの読み出しと、前記書込手段によるデータの読み出し及び書き込みは、ＤＭＡ（Direct Memory Access）により行われる
ことを特徴とする請求項１〜請求項３の何れか１項に記載の電子制御装置。
【請求項５】
前記書込手段がデータを書き込む前に、前記書込手段以外による前記書換可能メモリへのデータ書き込みを禁止する書込禁止手段（Ｓ１５０，Ｓ３１０，Ｓ５１０）を備える
ことを特徴とする請求項１〜請求項４の何れか１項に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＣＣ機能を搭載するメモリを備えた電子制御装置に関する。
【背景技術】
【０００２】
従来、例えばＲＡＭのようにデータ書換え可能なメモリにおいて、書き込まれたデータの誤りを検出して訂正するためにＥＣＣ（Error Correction Code）機能を搭載したものが知られている（例えば、特許文献１参照）。
【０００３】
ＥＣＣ機能は、データをメモリに書き込む時に誤り訂正符号を付加し、データをメモリから読み出すときに誤り訂正符号を用いてデータの誤りを検出および訂正する機能である。そしてＥＣＣ機能では、１ビットの誤りを検出した場合には、その誤りを訂正することができる。但しＥＣＣ機能では、複数ビットの誤りが発生した場合に、誤りを検出することができるが、その誤りを訂正することはできない。
【０００４】
そして、車両を制御する車両制御装置においては、車両制御装置に搭載されたメモリの異常を検出するために、メモリに記憶されているデータを読み出すことによりＥＣＣ機能を作動させ、これにより２ビット以上の誤りを検出した場合に、フェールセーフ制御に移行させることが一般に行われている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−２８８６１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
書き込み頻度が少ないデータは、このデータを書き込んでから次にこのデータを書き込むまでの期間（以下、データ保持期間という）が長くなる。
そして、例えば車両制御中のようにノイズが多い環境下で、書き込み頻度が少ないデータをメモリに書き込んだ時に２ビット以上の誤りが発生すると、２ビット以上の誤りが発生している状態が少なくとも上記データ保持期間継続する。これにより、データ保持期間中において、書き誤ったデータの読み出しが行われる毎にＥＣＣ機能が作動し、２ビット以上の誤りを何度も検出することになる。
【０００７】
このため、２ビット以上の誤りを検出した回数が予め設定されたフェールセーフ判定回数以上となるとフェールセーフ制御に移行するという処理が車両制御装置で実行される場合には、データ書き換えにおける複数回の書き誤りの発生でフェールセーフ制御に移行することを意図しているにも関わらず、１回の書き誤りに起因してフェールセーフ制御に移行してしまうおそれがあった。
【０００８】
本発明は、こうした問題に鑑みてなされたものであり、１回の書き誤りに起因して異常を繰り返し検出してしまうのを抑制することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するためになされた請求項１に記載の電子制御装置は、データを書き込むときには、書き込むデータに基づいて誤り訂正符号を生成して、対応する書き込みデータに誤り訂正符号を付加し、記憶されているデータを読み出すときには、読み出すデータに付加されている誤り訂正符号を用いて、記憶されているデータにおける１ビットの誤りを訂正することができるとともに、記憶されているデータにおける２ビット以上の誤りを検出することができ、且つ、２ビット以上の誤りを検出したときにその旨を示す異常検出情報を、内部に予め設定された異常記憶領域に記憶することができるＥＣＣ（Error Correction Code）機能を搭載し、記憶されるデータの書き換えが可能である書換可能メモリを備え、読出手段が、書換可能メモリの記憶領域のうち予め設定された異常検出領域に記憶されているデータを読み出し、異常判断手段が、異常記憶領域に異常検出情報が記憶されているか否かを判断する。そして書込手段が、異常記憶領域に異常検出情報が記憶されていると異常判断手段が判断した場合に、書換可能メモリの異常検出領域に記憶されているデータを読み出し、その後に、読み出したデータを、読み出したときと同じアドレスに書き込む。
【００１０】
このように構成された電子制御装置では、まず読出手段が、異常検出領域に記憶されているデータを読み出すことにより、書換可能メモリのＥＣＣ機能が作動し、２ビット以上の誤りを検出したときに、書換可能メモリ内の異常記憶領域に異常検出情報が記憶される。このため異常判断手段が、異常記憶領域に異常検出情報が記憶されていると判断し、書込手段が、データの読み出し、その後に、読み出したデータを、読み出したときと同じアドレスに書き込む。これにより、書換可能メモリのＥＣＣ機能が作動し、読み出したデータに基づいて誤り訂正符号が再度生成され、新たな誤り訂正符号が付加された状態で、データが書き込まれる。すなわち、次に、記憶されたデータを読み出したときには、２ビット以上の誤りがＥＣＣ機能により検出されるという状況が解消されている。
【００１１】
したがって、書き込み頻度が少ないデータを書き込むときに２ビット以上の誤りが発生した場合であっても、以降のデータ読み出し時にＥＣＣ機能によって書換可能メモリ内の異常記憶領域に異常検出情報が記憶されてしまうといった状態が長時間継続するのを抑制することができる。すなわち、１回の書き誤りに起因して異常を繰り返し検出してしまうのを抑制することができる。
【００１２】
このため、２ビット以上の誤りを検出した回数が予め設定されたフェールセーフ判定回数以上となるとフェールセーフ制御に移行するという処理が電子制御装置で実行される場合であっても、１回の書き誤りに起因してフェールセーフ制御に移行してしまうという事態の発生を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】ＥＣＵ１の構成を示すブロック図である。
【図２】第１実施形態のモータ制御処理を示すフローチャートである。
【図３】第１実施形態のＲＡＭ診断処理を示すフローチャートである。
【図４】第２実施形態の時間同期処理を示すフローチャートである。
【図５】第３実施形態のＲＡＭ診断処理を示すフローチャートである。
【図６】第３実施形態のモータ制御処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
（第１実施形態）
以下に本発明の第１実施形態を図面とともに説明する。
本実施形態の電子制御装置（以下、ＥＣＵという）１は、車両に搭載され、図１に示すように、アクセルペダルの踏み込み量を検出するアクセル開度センサ（不図示）からのアクセル開度信号などを用いて、車両の走行用モータ２の制御を行う。
【００１５】
走行用モータ２は、直流電源＋Ｂからリレー３を介して電源電圧が供給されると駆動する。またリレー３は、ＥＣＵ１からの制御信号により、オン状態およびオフ状態の何れかに切り替えられる。
【００１６】
ＥＣＵ１は、走行用モータ２を制御するための処理を実行するマイクロコンピュータ（以下、マイコンという）１０を備える。
マイコン１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＤＭＡ（Direct Memory Access）コントローラ１４、割込コントローラ１５および入出力ポート１６と、これらを相互に接続するバス１７とを備え、ＲＯＭ１２に記憶されたプログラムをＣＰＵ１１が実行することにより各種処理を実行する。
【００１７】
これらのうちＲＡＭ１３は、ＲＡＭ１３に記憶されているデータの誤りを検出および訂正するためにＥＣＣ（Error Correction Code）機能を搭載している。
ＥＣＣ機能を搭載するＲＡＭ１３は、まず、ＲＡＭ１３へデータを書き込む時に、書き込むデータに基づいて、誤り訂正用のデータとなる誤り訂正符号（以下、ＥＣＣ（Error Correction Code）という）を生成する。以下、ＥＣＣの生成の際に用いられたデータを元データという。そしてＲＡＭ１３は、生成したＥＣＣと元データとを対応付けてＲＡＭ１３に書き込む。なお元データは、ＲＡＭ１３内に設けられたデータ記憶領域１３１に記憶され、ＥＣＣは、ＲＡＭ１３内に設けられたＥＣＣ記憶領域１３２に記憶される。
【００１８】
その後ＲＡＭ１３は、ＲＡＭ１３から元データを読み出す時に、この元データとともに、対応するＥＣＣを読み出す。そしてＲＡＭ１３は、読み出したＥＣＣと、読み出した元データを用いて生成したＥＣＣとを比較することにより、誤りが発生したか否かを検出する。
【００１９】
そしてＲＡＭ１３は、誤りが発生していないと検出結果に基づいて判断した場合には、読み出した元データをそのまま外部へ出力する。またＲＡＭ１３は、１ビットの誤りを検出した場合には、読み出したＥＣＣを用いて、読み出した元データを訂正して、訂正後の元データを外部へ出力する。またＲＡＭ１３は、２ビット以上の誤りを検出した場合には、異常を検出した旨を示す異常検出情報を、ＲＡＭ１３内に設けられたＥＣＣエラー記憶レジスタ１３３に記憶する。
【００２０】
またＤＭＡコントローラ１４は、ＣＰＵ１１からＤＭＡ転送要求信号を入力すると、入出力ポート１６に入力した特定のデータを、ＣＰＵ１１の処理を介すことなくＲＡＭ１３へ転送してＲＡＭ１３に記憶させる機能を有する。
【００２１】
また割込コントローラ１５は、様々な割り込み要因の発生を示す信号を入力し、入力した信号が示す割り込み要因毎に予め設定された優先度に基づいて、優先度が最も高い割り込み要因に対応した割込要求信号をＣＰＵ１１に出力する機能を有する。さらに割込コントローラ１５は、入力した信号が示す割り込み要因の優先度とＣＰＵ１１が実行中の処理の優先度とを比較して、割り込み要因の優先度のほうが高い場合に、割込要求信号をＣＰＵ１１に出力する機能を有する。
【００２２】
このように構成されたＥＣＵ１において、マイコン１０のＣＰＵ１１は、後述するモータ制御処理およびＲＡＭ診断処理を実行する。
まず、ＣＰＵ１１が実行するモータ制御処理の手順を図２を用いて説明する。このモータ制御処理は、所定時間毎（本実施形態では１０ｍｓ毎）に繰り返し実行される処理である。
【００２３】
このモータ制御処理が実行されると、ＣＰＵ１１は、まずＳ１０にて、後述するＥＣＣエラーカウンタの値（以下、ＥＣＣエラー回数という）が予め設定されたフェールセーフ判定値（本実施形態では３回を示す値）以上であるか否かを判断する。
【００２４】
ここで、ＥＣＣエラー回数がフェールセーフ判定値未満である場合には（Ｓ１０：ＮＯ）、Ｓ２０にて、モータ制御を実行し、モータ制御処理を一旦終了する。なお、Ｓ２０のモータ制御では、アクセル開度信号などを用いて目標モータ回転速度を決定し、決定した目標モータ回転速度に対応したデューティ制御信号を出力する処理を行う。
【００２５】
一方、ＥＣＣエラー回数がフェールセーフ判定値以上である場合には（Ｓ１０：ＹＥＳ）、Ｓ３０にて、フェールセーフ制御を実行し、モータ制御処理を一旦終了する。なお、Ｓ３０のフェールセーフ制御では、リレー３を強制的にオフ状態とすることにより、走行用モータ２の駆動を停止させる。
【００２６】
次に、ＣＰＵ１１が実行するＲＡＭ診断処理の手順を図３を用いて説明する。このＲＡＭ診断処理は、所定時間毎（本実施形態では１０ｍｓ毎）に繰り返し実行される処理である。
【００２７】
このＲＡＭ診断処理が実行されると、ＣＰＵ１１は、まずＳ１１０にて、診断異常フラグがセットされているか否かを判断する。ここで、診断異常フラグがセットされていない場合には（Ｓ１１０：ＮＯ）、Ｓ１２０にて、Ｓ１４０またはＳ１８０で設定される診断対象アドレスを先頭アドレスとして予め設定された診断単位バイト数（本実施形態では１６バイト）分のデータをデータ記憶領域１３１から読み出す。これにより、ＲＡＭ１３のＥＣＣ機能が作動する。
【００２８】
その後Ｓ１３０にて、データ記憶領域１３１の全領域についてデータの読み出しが完了したか否かを判断する。ここで、全領域の読み出しが完了していない場合には（Ｓ１３０：ＮＯ）、Ｓ１４０にて、診断対象アドレスを診断単位バイト数分だけ次に移動させ、ＲＡＭ診断処理を一旦終了する。
【００２９】
一方Ｓ１１０にて、診断異常フラグがセットされている場合には（Ｓ１１０：ＹＥＳ）、Ｓ１５０にて、ＣＰＵ１１への割り込みを禁止する。これにより、割込コントローラ１５からの割込要求が禁止される。
【００３０】
そしてＳ１６０にて、Ｓ１４０またはＳ１８０で設定される診断対象アドレスを先頭アドレスとして予め設定された診断単位バイト数（本実施形態では１６バイト）分のデータをデータ記憶領域１３１から読み出し、その後、読み出したデータを、同一のアドレスに書き込む。これにより、ＲＡＭ１３のＥＣＣ機能が作動する。
【００３１】
その後Ｓ１７０にて、ＣＰＵ１１への割り込みを許可する。これにより、割込コントローラ１５からの割込要求が許可される。その後Ｓ１３０にて、全領域の読み出しが完了していない場合には（Ｓ１３０：ＮＯ）、Ｓ１４０にて、診断対象アドレスを診断単位バイト数分だけ次に移動させ、ＲＡＭ診断処理を一旦終了する。
【００３２】
またＳ１３０にて、データ記憶領域１３１の全領域についてデータの読み出しが完了した場合には（Ｓ１３０：ＹＥＳ）、Ｓ１８０にて、診断対象アドレスをリセットする。これにより、診断対象アドレスは、データ記憶領域１３１の先頭アドレスに設定される。
【００３３】
そしてＳ１９０にて、異常検出情報がＥＣＣエラー記憶レジスタ１３３に記憶されているか否かを判断する。ここで、異常検出情報がＥＣＣエラー記憶レジスタ１３３に記憶されていない場合には（Ｓ１９０：ＮＯ）、Ｓ２００にて、診断異常フラグをクリアして、ＲＡＭ診断処理を一旦終了する。一方、異常検出情報がＥＣＣエラー記憶レジスタ１３３に記憶されている場合には（Ｓ１９０：ＹＥＳ）、Ｓ２１０にて、診断異常フラグをセットし、さらにＳ２２０にて、ＥＣＣエラーカウンタをインクリメント（１加算）して、ＲＡＭ診断処理を一旦終了する。
【００３４】
このように構成されたＥＣＵ１は、データを書き込むときには、書き込むデータに基づいてＥＣＣを生成して、対応する書き込みデータにＥＣＣを付加し、記憶されているデータを読み出すときには、読み出すデータに付加されているＥＣＣを用いて、記憶されているデータにおける１ビットの誤りを訂正することができるとともに、記憶されているデータにおける２ビット以上の誤りを検出することができ、且つ、２ビット以上の誤りを検出したときにその旨を示す異常検出情報を、内部に予め設定されたＥＣＣエラー記憶レジスタ１３３に記憶することができるＥＣＣ機能を搭載し、記憶されるデータの書き換えが可能であるＲＡＭ１３を備え、データ記憶領域１３１の全領域に記憶されているデータを読み出し（Ｓ１２０，Ｓ１３０，Ｓ１４０）、ＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されているか否かを判断する（Ｓ１９０）。そして、ＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されている場合に（Ｓ１９０：ＹＥＳ、Ｓ１１０：ＹＥＳ）、ＲＡＭ１３のデータ記憶領域１３１に記憶されているデータを読み出し、その後に、読み出したデータを、読み出したときと同じアドレスに書き込む（Ｓ１６０，Ｓ１３０，Ｓ１４０）。
【００３５】
このように構成されたＥＣＵ１では、まず、データ記憶領域１３１に記憶されているデータを読み出すことにより、ＲＡＭ１３のＥＣＣ機能が作動し、２ビット以上の誤りを検出したときに、ＲＡＭ１３内のＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶される。このため、ＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されていると判断し、データの読み出し、その後に、読み出したデータを、読み出したときと同じアドレスに書き込む。これにより、ＲＡＭ１３のＥＣＣ機能が作動し、読み出したデータに基づいてＥＣＣが再度生成され、新たなＥＣＣが付加された状態で、データが書き込まれる。すなわち、次に、記憶されたデータを読み出したときには、２ビット以上の誤りがＥＣＣ機能により検出されるという状況が解消されている。
【００３６】
したがって、書き込み頻度が少ないデータを書き込むときに２ビット以上の誤りが発生した場合であっても、以降のデータ読み出し時にＥＣＣ機能によってＲＡＭ１３内のＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されてしまうといった状態が長時間継続するのを抑制することができる。すなわち、１回の書き誤りに起因して異常を繰り返し検出してしまうのを抑制することができる。
【００３７】
このため、２ビット以上の誤りを検出した回数が予め設定されたフェールセーフ判定回数以上となるとフェールセーフ制御に移行するという処理がＥＣＵ１で実行される場合であっても、１回の書き誤りに起因してフェールセーフ制御に移行してしまうという事態の発生を抑制することができる。
【００３８】
また、ＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されている場合に、データ書き込みが行われるので、ＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されていない場合には、データ書き込みが行われず、データを読み出して書き込むことによる処理負荷の増大を抑制することができ、これにより、ＥＣＵ１の制御性の悪化を抑制することができる。
【００３９】
また、診断単位バイト数分のデータを書き込む処理（Ｓ１６０）を前に、ＣＰＵ１１への割り込みを禁止する（Ｓ１５０）ことにより、診断単位バイト数分のデータ書き込み以外によるＲＡＭ１３へのデータ書き込みを禁止する。
【００４０】
これにより、Ｓ１６０の処理において診断単位バイト数分のデータを読み出す処理と、Ｓ１６０の処理において読み出したデータを同一のアドレスに書き込む処理との間で、この同一のアドレスにデータを書き込むという割り込み処理が発生し、割り込み処理で書き込まれたデータを、Ｓ１６０の処理で上書きしてしまうことを防止することができる。すなわち、マルチタスクのようなシステムにおいてもＲＡＭ１３でのアクセス干渉を防ぐことができ、ＥＣＵ１の制御で不具合が発生するのを抑制することができる。
【００４１】
以上説明した実施形態において、ＲＡＭ１３は本発明における書換可能メモリ、Ｓ１２０，Ｓ１３０，Ｓ１４０の処理は本発明における読出手段、Ｓ１９０の処理は本発明における異常判断手段、Ｓ１６０，Ｓ１３０，Ｓ１４０の処理は本発明における書込手段、ＥＣＣエラー記憶レジスタ１３３は本発明における異常記憶領域、データ記憶領域１３１は本発明における異常検出領域、Ｓ１５０の処理は本発明における書込禁止手段である。
【００４２】
（第２実施形態）
以下に本発明の第２実施形態を図面とともに説明する。なお第２実施形態では、第１実施形態と異なる部分を説明する。
【００４３】
第２実施形態の電子制御装置（ＥＣＵ）１は、モータ制御処理およびＲＡＭ診断処理の代わりに時間同期処理を実行する点以外は第１実施形態と同じである。
ここで、ＣＰＵ１１が実行する時間同期処理の手順を図４を用いて説明する。この時間同期処理は、所定時間毎（本実施形態では１０ｍｓ毎）に繰り返し実行される処理である。
【００４４】
この時間同期処理が実行されると、ＣＰＵ１１は、まずＳ３１０にて、Ｓ１５０と同様にして、ＣＰＵ１１への割り込みを禁止する。そしてＳ３２０にて、ＥＣＣエラー記憶レジスタ１３３をクリアする。これにより、ＥＣＣエラー記憶レジスタ１３３の記憶内容が消去される。
【００４５】
その後Ｓ３３０にて、診断異常フラグがセットされているか否かを判断する。ここで、診断異常フラグがセットされていない場合には（Ｓ３３０：ＮＯ）、Ｓ３４０にて、データ記憶領域１３１のうちモータ制御に関連するデータが記憶される領域として予め設定されたモータ制御記憶領域についてデータの読み出しを行い、Ｓ３６０に移行する。これにより、ＲＡＭ１３のＥＣＣ機能が作動する。
【００４６】
一方、診断異常フラグがセットされている場合には（Ｓ３３０：ＹＥＳ）、Ｓ３５０にて、データ記憶領域１３１のモータ制御記憶領域についてデータの読み出しを行い、その後、読み出したデータを、同一のアドレスに書き込み、Ｓ３６０に移行する。これにより、ＲＡＭ１３のＥＣＣ機能が作動する。
【００４７】
そしてＳ３６０に移行すると、異常検出情報がＥＣＣエラー記憶レジスタ１３３に記憶されているか否かを判断する。ここで、異常検出情報がＥＣＣエラー記憶レジスタ１３３に記憶されていない場合には（Ｓ３６０：ＮＯ）、Ｓ３７０にて、診断異常フラグをクリアして、Ｓ４００に移行する。一方、異常検出情報がＥＣＣエラー記憶レジスタ１３３に記憶されている場合には（Ｓ３６０：ＹＥＳ）、Ｓ３８０にて、診断異常フラグをセットし、さらにＳ３９０にて、ＥＣＣエラーカウンタをインクリメント（１加算）して、Ｓ４００に移行する。
【００４８】
そしてＳ４００に移行すると、Ｓ１７０と同様にして、ＣＰＵ１１への割り込みを許可し、さらにＳ４１０にて、ＥＣＣエラーカウンタの値（ＥＣＣエラー回数）が予め設定されたフェールセーフ判定値（本実施形態では３回を示す値）以上であるか否かを判断する。
【００４９】
ここで、ＥＣＣエラー回数がフェールセーフ判定値未満である場合には（Ｓ４１０：ＮＯ）、Ｓ４２０にて、Ｓ２０と同様にして、モータ制御を実行し、時間同期処理を一旦終了する。
【００５０】
一方、ＥＣＣエラー回数がフェールセーフ判定値以上である場合には（Ｓ４１０：ＹＥＳ）、Ｓ４３０にて、Ｓ３０と同様にして、フェールセーフ制御を実行し、時間同期処理を一旦終了する。
【００５１】
このように構成されたＥＣＵ１では、ＥＣＣエラー記憶レジスタ１３３に記憶されている異常検出情報を消去し（Ｓ３２０）、その後に、データ記憶領域１３１のうちモータ制御に関連するデータが記憶される領域として予め設定されたモータ制御記憶領域に記憶されているデータを読み出し（Ｓ３４０）、モータ制御記憶領域に記憶されている全てのデータを読み出した後に、ＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されているか否かを判断する（Ｓ３６０）。
【００５２】
これにより、ＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されていれば、データ記憶領域１３１のうちモータ制御記憶領域において異常が発生していると判断することができる。すなわち、モータ制御に関連するデータで異常が発生しているか否かを判断することができる。
【００５３】
したがって、ＲＡＭ１３のデータ記憶領域１３１の全体ではなく、ＲＡＭ１３のデータ記憶領域１３１のうちの特定の領域で異常が発生しているか否かを判断することができるため、この特定領域で異常が発生した場合に、この特定領域に対応したフェールセーフ制御に移行するという処理が可能となる。
【００５４】
以上説明した実施形態において、Ｓ３４０の処理は本発明における読出手段、Ｓ３６０の処理は本発明における異常判断手段、Ｓ３５０の処理は本発明における書込手段、Ｓ３１０の処理は本発明における書込禁止手段、Ｓ３２０の処理は本発明における消去手段、モータ制御記憶領域は本発明における異常検出領域である。
【００５５】
（第３実施形態）
以下に本発明の第３実施形態を図面とともに説明する。なお第３実施形態では、第１実施形態と異なる部分を説明する。
【００５６】
第３実施形態の電子制御装置（ＥＣＵ）１は、モータ制御処理およびＲＡＭ診断処理が変更された点以外は第１実施形態と同じである。
まず、第３実施形態のＲＡＭ診断処理の手順を図５を用いて説明する。
【００５７】
このＲＡＭ診断処理が実行されると、ＣＰＵ１１は、まずＳ５１０にて、Ｓ１５０と同様にして、ＣＰＵ１１への割り込みを禁止する。そしてＳ５２０にて、ＥＣＣエラー記憶レジスタ１３３をクリアする。これにより、ＥＣＣエラー記憶レジスタ１３３の記憶内容が消去される。
【００５８】
その後Ｓ５３０にて、診断異常フラグがセットされているか否かを判断する。ここで、診断異常フラグがセットされていない場合には（Ｓ３３０：ＮＯ）、Ｓ５４０にて、Ｓ６００で設定される診断対象アドレスを先頭アドレスとして予め設定された診断単位バイト数（本実施形態では１６バイト）分のデータをデータ記憶領域１３１から読み出し、Ｓ５６０に移行する。これにより、ＲＡＭ１３のＥＣＣ機能が作動する。
【００５９】
一方、診断異常フラグがセットされている場合には（Ｓ５３０：ＹＥＳ）、Ｓ５５０にて、Ｓ６００で設定される診断対象アドレスを先頭アドレスとして予め設定された診断単位バイト数（本実施形態では１６バイト）分のデータをデータ記憶領域１３１から読み出し、その後、読み出したデータを、同一のアドレスに書き込み、Ｓ５６０に移行する。これにより、ＲＡＭ１３のＥＣＣ機能が作動する。
【００６０】
そしてＳ５６０に移行すると、異常検出情報がＥＣＣエラー記憶レジスタ１３３に記憶されているか否かを判断する。ここで、異常検出情報がＥＣＣエラー記憶レジスタ１３３に記憶されていない場合には（Ｓ５６０：ＮＯ）、Ｓ５８０に移行する。一方、異常検出情報がＥＣＣエラー記憶レジスタ１３３に記憶されている場合には（Ｓ５６０：ＹＥＳ）、Ｓ５７０にて、データ記憶領域１３１内において予め設定されたＥＣＣエラーアドレス記憶領域に、現在の診断対象アドレスをＥＣＣエラーアドレスとして記憶し、Ｓ５８０に移行する。
【００６１】
そしてＳ５８０に移行すると、Ｓ１７０と同様にして、ＣＰＵ１１への割り込みを許可し、さらにＳ５９０にて、データ記憶領域１３１の全領域についてデータの読み出しが完了したか否かを判断する。ここで、全領域の読み出しが完了していない場合には（Ｓ５９０：ＮＯ）、Ｓ６００にて、診断対象アドレスを診断単位バイト数分だけ次に移動させ、ＲＡＭ診断処理を一旦終了する。
【００６２】
一方、データ記憶領域１３１の全領域についてデータの読み出しが完了した場合には（Ｓ５９０：ＹＥＳ）、Ｓ６１０にて、診断対象アドレスをリセットする。これにより、診断対象アドレスは、データ記憶領域１３１の先頭アドレスに設定される。
【００６３】
その後Ｓ６２０にて、ＥＣＣエラーアドレス記憶領域にＥＣＣエラーアドレスが記憶されているか否かを判断する。ここで、ＥＣＣエラーアドレスが記憶されていない場合には（Ｓ６２０：ＮＯ）、Ｓ６３０にて、診断異常フラグをクリアして、ＲＡＭ診断処理を一旦終了する。一方、ＥＣＣエラーアドレスが記憶されている場合には（Ｓ６３０：ＹＥＳ）、Ｓ６４０にて、診断異常フラグをセットし、さらにＳ６５０にて、ＥＣＣエラーアドレスに対応するＥＣＣエラーカウンタをインクリメント（１加算）する。なお、ＥＣＣエラーカウンタは、ＥＣＣエラーアドレス毎に予め設けられている。そしてＳ６５０の処理が終了すると、ＲＡＭ診断処理を一旦終了する。
【００６４】
次に、第３実施形態のモータ制御処理の手順を図６を用いて説明する。
このモータ制御処理が実行されると、ＣＰＵ１１は、まずＳ７１０にて、ＥＣＣエラーアドレス毎に設けられているＥＣＣエラーカウンタのうち、ＥＣＣエラーカウンタの値（ＥＣＣエラー回数）が予め設定されたフェールセーフ判定値（本実施形態では３回を示す値）以上であるものが存在するか否かを判断する。
【００６５】
ここで、ＥＣＣエラー回数がフェールセーフ判定値以上となるＥＣＣエラーカウンタが存在しない場合には（Ｓ７１０：ＮＯ）、Ｓ７２０にて、Ｓ２０と同様にして、モータ制御を実行し、モータ制御処理を一旦終了する。
【００６６】
一方、ＥＣＣエラー回数がフェールセーフ判定値以上となるＥＣＣエラーカウンタが存在する場合には（Ｓ７１０：ＹＥＳ）、Ｓ７３０にて、ＥＣＣエラー回数がフェールセーフ判定値以上となるＥＣＣエラーカウンタに対応するＥＣＣエラーアドレスが、モータ制御に関連するデータが記憶されるアドレスであるか否かを判断する。
【００６７】
ここで、ＥＣＣエラーアドレスが、モータ制御に関連するデータが記憶されるアドレスである場合には（Ｓ７３０：ＹＥＳ）、Ｓ７４０にて、Ｓ３０と同様にして、フェールセーフ制御を実行し、モータ制御処理を一旦終了する。
【００６８】
一方、ＥＣＣエラーアドレスが、モータ制御に関連するデータが記憶されるアドレスでない場合には（Ｓ７３０：ＮＯ）、Ｓ７５０にて、フェールセーフ制御として、ワーニングランプ信号（図１を参照）を出力することにより警告灯（不図示）を点灯させて、モータ制御処理を一旦終了する。
【００６９】
このように構成されたＥＣＵ１では、予め設定された診断単位バイト数毎に、データ記憶領域１３１の全領域に記憶されているデータを読み出し（Ｓ５４０）、診断単位バイト数のデータを読み出す毎に、ＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されているか否かを判断し（Ｓ５６０）、ＥＣＣエラー記憶レジスタ１３３に異常検出情報が記憶されている場合に（Ｓ５６０：ＹＥＳ）、判断の対象となった診断単位バイト数のデータが記憶されているアドレスを特定するための診断対象アドレスを記憶する（Ｓ５７０）。
【００７０】
これにより、診断単位バイト数毎に、データで異常が発生しているか否かを判断することができる。
したがって、記憶されているデータで異常が発生した場合に、異常が発生したデータのアドレスに基づいて、異常が発生したデータの内容を特定し、異常が発生したデータの内容に対応したフェールセーフ制御に移行するという処理が可能となる。
【００７１】
以上説明した実施形態において、Ｓ５４０，５９０，６００の処理は本発明における読出手段、Ｓ５６０の処理は本発明における異常判断手段、Ｓ５５０，５９０，６００の処理は本発明における書込手段、Ｓ５１０の処理は本発明における書込禁止手段、Ｓ５７０の処理は本発明における異常アドレス記憶手段、診断単位バイト数は本発明における読出単位数である。
【００７２】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、ＣＰＵ１１が実行する処理で、データの読み出し及び書き込みを行うものを示したが、ＤＭＡコントローラ１４を備えている場合には、データの読み出し及び書き込みがＤＭＡにより行われるようにしてもよい。これにより、ＣＰＵ１１を介すことなく、ＥＣＣ機能を作動させることができるため、データの異常を検出するためにＣＰＵ１１の処理負荷が増大するのを抑制することができる。
【００７３】
また上記第１実施形態では、処理負荷を分散するために、診断単位バイト数毎にデータ記憶領域１３１のデータの読み出し及び書き込みを行うものを示したが、データ記憶領域１３１の全領域について一度にデータの読み出し及び書き込みを行うようにしてもよい。
【００７４】
また上記第２実施形態では、モータ制御記憶領域の全体について一度にデータの読み出し及び書き込みを行うものを示したが、診断単位バイト数毎にモータ制御記憶領域のデータの読み出し及び書き込みを行うようにしてもよい。
【００７５】
また上記第２実施形態では、ＲＡＭ１３のデータ記憶領域１３１のうちの特定の領域で異常が発生しているか否かを判断するものを示したが、ＲＡＭ１３の物理的ページ毎に分割して異常が発生しているか否かを判断するようにしてもよい。
【００７６】
また上記実施形態では、ＲＡＭ１３のデータの読み出し及び書き込みを行う前に、ＣＰＵ１１への割り込みを禁止するものを示したが、ＲＡＭ１３でアクセス干渉が発生する懸念がない場合には、割り込みを禁止しないようにしてもよい。
【符号の説明】
【００７７】
１…ＥＣＵ、１１…ＣＰＵ、１３…ＲＡＭ、１３１…データ記憶領域、１３２…ＥＣＣ記憶領域、１３３…ＥＣＣエラー記憶レジスタ
【図１】
2014048744.tif 000003
【図２】
2014048744.tif 000004
【図３】
2014048744.tif 000005
【図４】
2014048744.tif 000006
【図５】
2014048744.tif 000007
【図６】
2014048744.tif 000008