(57)【特許請求の範囲】
【請求項１】
所定の診断タイミング毎にＲＡＭをリード・ライト方式で診断し、かつ予め定めた診断単位バイト数ずつの診断対象ＲＡＭ毎に診断を行うＲＡＭ診断手段と、診断中の割込みを禁止する割込み禁止手段と、を備える自動車用制御装置のＲＡＭの診断装置において、
前記所定の診断タイミング毎に前記診断単位バイト数ずつの診断対象ＲＡＭ毎に行う診断の開始に先立って、算術論理ユニット以外のハードウェアが直接ＲＡＭにアクセスする外部割込みの状態を判断する外部割込み監視手段と、
この監視手段により外部割込み可能状態と判断したときに前記ＲＡＭ診断手段による当該診断対象ＲＡＭの診断を禁止すると共に、そのアドレスを記憶保持して、次回の診断タイミングにて診断させる診断禁止手段と、
を設けたことを特徴とするＲＡＭの診断装置。
【請求項２】
前記外部割込み監視手段は、外部割込みの状態として、ダイレクトメモリアクセスコントローラの起動が許可されているか否かを監視するものであることを特徴とする請求項１記載のＲＡＭの診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自動車用エンジンなどにおいて各種電子制御機器の制御用マイコンに使用されるＲＡＭの診断装置に関する。
【０００２】
【従来の技術】
従来より、自動車用エンジンの制御装置においては、制御用マイコンのＣＰＵの自己診断の他、ＣＰＵによるＲＯＭ、ＲＡＭ等の診断を行っている。
ＲＡＭ診断は、所定の診断タイミング毎に、ＲＡＭの書換え防止のため割込みを禁止した上で、予め定めた診断単位バイト数（例えば４バイト）ずつの診断対象ＲＡＭに対し、リード・ライトチェックを行っている。
【０００３】
【発明が解決しようとする課題】
しかしながら、ＣＰＵの構成上、ＡＬＵ（算術論理ユニット）以外のハードウェアが直接ＲＡＭにアクセスする機能を持つ場合、診断中のＲＡＭがＡＬＵの命令とは無関係に書換えられることで、誤診断することがあった。
例えば、メインＣＰＵとサブＣＰＵとが通信線を介して接続されている場合、通信により、ＣＰＵ内のＤＭＡＣ（ダイレクトメモリアクセスコントローラ）によってＲＡＭが書換えられることがあり、ＤＭＡＣは割込みレベルが高いので、割込み禁止としても対策できない。
【０００４】
本発明は、このような従来の問題点に鑑み、ＣＰＵの構成上、ＡＬＵ（算術論理ユニット）以外のハードウェアが直接ＲＡＭにアクセスする機能を持つ場合に、これによる誤診断を防止できるようにすることを目的とする。
【０００５】
【課題を解決するための手段】
このため、請求項１に係る発明では、図１に示すように、所定の診断タイミング毎にＲＡＭをリード・ライト方式で診断し、かつ予め定めた診断単位バイト数ずつの診断対象ＲＡＭ毎に診断を行うＲＡＭ診断手段と、診断中の割込みを禁止する割込み禁止手段と、を備える自動車用制御装置のＲＡＭの診断装置において、前記所定の診断タイミング毎に前記診断単位バイト数ずつの診断対象ＲＡＭ毎に行う診断の開始に先立って、ＡＬＵ（算術論理ユニット）以外のハードウェアが直接ＲＡＭにアクセスする外部割込みの状態を判断する外部割込み監視手段と、この監視手段により外部割込み可能状態と判断したときに前記ＲＡＭ診断手段による当該診断対象ＲＡＭの診断を禁止すると共に、そのアドレスを記憶保持して、次回の診断タイミングにて診断させる診断禁止手段と、を設けたことを特徴とする。
【０００６】
請求項２に係る発明では、前記外部割込み監視手段は、外部割込みの状態として、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）の起動が許可されているか否かを監視するものであることを特徴とする。
【０００７】
【発明の効果】
請求項１に係る発明によれば、ＡＬＵ（算術論理ユニット）以外のハードウェアが直接ＲＡＭにアクセスする外部割込みが起こり得る状態にて、ＲＡＭ診断を禁止することで、診断中のＲＡＭがＡＬＵの命令とは無関係に書換えられる恐れがある場合の誤診断を防止でき、ＲＡＭ診断の信頼性を向上できる。
また、ＲＡＭ診断を禁止したときは、そのときの診断対象ＲＡＭのアドレスを記憶保持して、次回の診断タイミングにて診断させることで、診断を保証できる。
【０００８】
請求項２に係る発明によれば、外部割込みの状態として、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）の起動が許可されているか否かを監視することで、ＤＭＡＣによってＲＡＭが書換えられ得る事態を確実に検出できる。
【０００９】
【発明の実施の形態】
以下に本発明の一実施形態について図２〜図４により説明する。
図２は制御用マイコンのシステム構成を示し、メインＣＰＵとサブＣＰＵとが通信線を介して接続されている。メインＣＰＵには、ＡＬＵ（算術論理ユニット）の他、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）が備えられ、ＲＡＭには、ＡＬＵの他、ＤＭＡＣが直接にアクセス可能で、読込んだ通信データを書込み可能となっている。
【００１０】
図３はＤＭＡＣ起動時の処理内容を示すフローチャートである。
先ず、割込み処理により、内部レジスタのＤＭＡＣ起動許可フラグ（データ受信許可フラグ；ＣＨＣＲn のビット０）をセットし（Ｆ１）、データ受信待ち状態となる（Ｆ２）。
その後、通信を開始し（Ｆ３）、通信データを読込み（Ｆ４）、読込んだ通信データをＲＡＭに書込んで（Ｆ５）、通信を終了する（Ｆ６）。
【００１１】
そして、終了割込み発生により、割込み処理により、内部レジスタのＤＭＡＣ起動許可フラグをクリアする（Ｆ７）。
図４は制御用マイコンのメインＣＰＵ（そのＡＬＵ）により実行されるＲＡＭ診断のフローチャートであり、所定の診断タイミング毎に（例えば時間同期で）、予め定めた診断単位バイト数（例えば４バイト）ずつの診断対象ＲＡＭに対して行う診断内容を示している。
【００１２】
Ｓ１では、診断中のＲＡＭの書換えを防止するため、割込みを禁止する。
Ｓ２では、内部レジスタのＤＭＡＣ起動許可フラグ（受信許可フラグ；ＣＨＣＲn のビット０）がセットされているか否かを判定する。
ＤＭＡＣ起動許可フラグがセットされていない場合、すなわち、フラグ＝０の場合は、ＲＡＭ診断のため、Ｓ３へ進む。
【００１３】
Ｓ３では、診断対象ＲＡＭアドレスを参照する。尚、診断対象ＲＡＭアドレスは、１フロー毎に、４バイトずつの診断対象ＲＡＭに対して診断を行って、最終的にＲＡＭの全アドレスに対して診断を行うように、別途設定される（初期設定後は、１フロー毎にインクリメントされる）。
Ｓ４では、診断対象ＲＡＭアドレスに基づく診断対象ＲＡＭのデータ（４バイトデータ）をバッファに退避する。
【００１４】
Ｓ５では、診断対象ＲＡＭのデータをテンポラリ（ＣＰＵ側の一時レジスタ）にコピーする。
Ｓ６では、テンポラリのデータをビット反転する。これにより、例えば００００００００ｈの場合、ＦＦＦＦＦＦＦＦｈとなる。
Ｓ７では、診断対象ＲＡＭにテンポラリのデータを格納する。
【００１５】
Ｓ８では、診断対象ＲＡＭのデータとテンポラリのデータとの比較を行う。
この比較の結果、相違があった場合に、ＲＡＭ診断ＮＧとして、Ｓ１１へ進み、ＮＧ処理へ移行する。一致している場合は、Ｓ９へ進む。
Ｓ９では、診断対象ＲＡＭにバッファのデータを復帰する。
Ｓ１０では、診断対象ＲＡＭのデータとバッファのデータとの比較を行う。
【００１６】
この比較の結果、相違があった場合に、ＲＡＭ診断ＮＧとして、Ｓ１１へ進み、ＮＧ処理へ移行する。一致している場合は、Ｓ１３へ進み、割込みを許可して、本フローを終了する。
一方、ＤＭＡＣ起動許可フラグ（受信許可フラグ；ＣＨＣＲn のビット０）がセットされている場合、すなわち、フラグ＝１の場合は、Ｓ２からＳ１２を経てＳ１３へ進み、割込みを許可して、本フローを終了する。従って、ＲＡＭ診断（Ｓ３〜Ｓ１０）を禁止する。
【００１７】
このように、ＤＭＡＣによってＲＡＭが書換えられる恐れがある場合、ＤＭＡＣは割込みレベルが高いため、割込み禁止としても対策できないが、ＲＡＭ診断を禁止することで、誤診断を防止できる。
但し、ＲＡＭ診断を禁止する場合は、Ｓ１２で診断を禁止された診断対象ＲＡＭのアドレス（診断禁止アドレス）を記憶保持し、次回の診断タイミング（次サイクル）にて診断を行わせるようにする。
【００１８】
ここで、Ｓ３〜Ｓ１０がＲＡＭ診断手段に相当し、Ｓ１が割込み禁止手段に相当する。また、Ｓ２が外部割込み監視手段に相当し、Ｓ２での判定でフラグ＝１のときにＳ３〜Ｓ１０を実行しないようにする部分（Ｓ１２を含む部分）が診断禁止手段に相当する。
ＮＧ処理（Ｓ１１）としては、制御対象機器の電源ＯＦＦ等を行う。例えば、自動車用エンジンの制御装置で、電制スロットル弁を制御している場合は、電制スロットル弁のモータに対する電源回路のリレーをＯＦＦにする。リレーＯＦＦにより、電制スロットル弁はリターンスプリングの作用で、比較的低開度側のフェイルセーフ開度に固定され、エンジン出力が規制されるものの、最低限のリンプホーム運転が可能となる。
【００１９】
尚、ＲＡＭ診断の方式自体については、図４の方式に限るものではなく、例えば、Ｓ４とＳ５との間にステップを追加して、診断対象ＲＡＭに所定の４バイトデータ、例えばＡＡＡＡＡＡＡＡｈを格納するようにしてもよい。この場合は、コピー後のテンポラリデータをＳ６でビット反転すると、正常であれば、ＡＡＡＡＡＡＡＡｈ→５５５５５５５５ｈとなる。
【図面の簡単な説明】
【図１】  本発明の構成を示す機能ブロック図
【図２】  本発明の一実施形態のシステム図
【図３】  ＤＭＡＣ起動時のフローチャート
【図４】  ＲＡＭ診断のフローチャート
【図１】
0003741872.tif 000002
【図２】
0003741872.tif 000003
【図３】
0003741872.tif 000004
【図４】
0003741872.tif 000005