JP2008226043A - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP2008226043A
JP2008226043A JP2007065625A JP2007065625A JP2008226043A JP 2008226043 A JP2008226043 A JP 2008226043A JP 2007065625 A JP2007065625 A JP 2007065625A JP 2007065625 A JP2007065625 A JP 2007065625A JP 2008226043 A JP2008226043 A JP 2008226043A
Authority
JP
Japan
Prior art keywords
test
microcomputer
answer
electronic control
control device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007065625A
Other languages
English (en)
Other versions
JP4432988B2 (ja
Inventor
Akira Ito
章 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2007065625A priority Critical patent/JP4432988B2/ja
Priority to EP08004501A priority patent/EP1970785B1/en
Priority to US12/073,938 priority patent/US7941702B2/en
Publication of JP2008226043A publication Critical patent/JP2008226043A/ja
Application granted granted Critical
Publication of JP4432988B2 publication Critical patent/JP4432988B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/04Monitoring the functioning of the control system
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/005Testing of electric installations on transport means
    • G01R31/006Testing of electric installations on transport means on road vehicles, e.g. automobiles or trucks
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31707Test strategies

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】マイコンの動作を監視する監視用ICの機能を簡略化させると共に、制御モードに合わせたテストの選択を容易にすることが可能な電子制御装置の提供。
【解決手段】車両のエンジンを制御するECU(電子制御装置)1は、マイコンとしてのMPU3と、MPU3の動作を監視するIC5とを備えている。MPU3には、プログラムの実行により実現される機能手段として、確認結果チェック及びテスト選択部(以下単に、テスト選択部という)3aが設けられており、そのテスト選択部3aがMPU3の機能を検証するためのテストを選択する。そして、MPU3は、テスト選択部3aにより選択されたテストを実施して、その実施結果を示すテスト回答をIC5へ送信し、IC5は、MPU3からのテスト回答の正誤を判定して、その判定結果であるテスト回答確認結果をMPU3へ送信するようになっている。この構成により課題が解決される。
【選択図】図1

Description

本発明は、マイコンと、そのマイコンの動作を監視するICとを備えた電子制御装置に関するものである。
従来より、車両用電子制御装置に搭載されたマイコンの動作を監視する手法として、例えば特許文献1や特許文献2に記載のものがある。それら文献1,2に記載の電子制御装置では、マイコンの他に監視ICを備えており、その監視ICからマイコンへ質問が送信される。そして、マイコンは、監視ICからの質問に応じたテストを実施して、その実施結果を回答として監視ICに送信し、監視ICは、マイコンからの回答を当該監視IC内の期待値と比較することでマイコンの動作を監視するようになっている。
特表平10−507805号公報 特表平11−505587号公報
上記従来技術では、監視IC側で、マイコンに対する質問(即ち、マイコンで実施されるべきテスト)を選択すると共に、その質問に対するマイコンからの回答と期待値とを比較する、という構成であるため、監視IC側に、マイコンからの回答を処理する機能だけでなく、質問を選択する機能が必要となり、その結果、監視ICの構成が複雑になってしまうという問題がある。
更に、マイコンとは別の監視ICが質問を選択するため、例えば、マイコンにおける現在の制御モードに適したテストを実施したくても、それを実現するのが困難となる。監視ICは、マイコンの制御モードを把握できないため、当然、現在の制御モードに適したテストが実施されるように質問を選択することができないからである。
本発明は、こうした問題に鑑みなされたものであり、マイコンの動作を監視する監視用ICの機能を簡略化させると共に、制御モードに合わせたテストの選択を容易にすることが可能な電子制御装置の提供を目的としている。
請求項1の電子制御装置は、制御対象を制御するための処理を行うマイコンと、そのマイコンの動作を監視するICとを備えている。特に、この電子制御装置では、マイコン側に、そのマイコンの機能を検証するためのテストを選択するテスト選択手段が設けられている。そして、マイコンは、テスト選択手段により選択されたテストを実施して、その実施結果を示すテスト回答をICへ送信し、ICは、マイコンからのテスト回答の正誤を判定する。尚、マイコンからのテスト回答が「正(正しい)」でなく「誤(誤り,正しくない)」であれば、異常が生じているということである。
このような請求項1の電子制御装置によれば、テストを選択する機能をIC側に設ける必要が無いため、そのICの機能を簡略化することができる。
しかも、マイコン自身でテストを選択することとなるため、制御モードに合わせたテストの選択が極めて容易となる。
そこで、例えば、マイコン側のテスト選択手段は、請求項2に記載のように、制御対象の制御モードに応じて、現在の制御モード時に実行される処理のテストを、他の制御モード時に実行される処理のテストよりも、高い頻度で選択するように構成することができる。そして、この構成によれば、現在の制御モードに関係する異常をいち早く検出することができるようになり、機能テストの実施効率を高めることができる。
次に、請求項3の電子制御装置では、請求項1,2の電子制御装置において、ICは、テスト回答の正誤の判定結果である正誤判定結果を、マイコンへ送信するように構成されている。この構成によれば、マイコン側においても、ICからの正誤判定結果により、異常があるか否かを把握することができる。
次に、請求項4の電子制御装置では、請求項3の電子制御装置において、マイコン側のテスト選択手段は、ICからの正誤判定結果に応じて、該正誤判定結果が「正」ならば、次のテストとして前回とは異なるテストを選択し、前記正誤判定結果が「誤」ならば、次のテストとして前回と同じテストを選択するようになっている。
この構成によれば、あるテストのテスト回答がICで「誤」と判定された場合に、そのテストが再度実施されることとなり、異常状態を1度でなく連続して複数回確認することが可能となる。また、一般に、異常検出においては、あるテストで複数回連続して「誤」と判定(つまり、異常と判定)したならば、本当に異常であると確定判定するように構成されるが、請求項4の構成によれば、例えば全種類のテストが一巡してから再テストを実施する構成と比べると、異常確定判定までの時間を短縮できるという利点もある。
次に、請求項5の電子制御装置では、請求項4の電子制御装置において、マイコンは、ICへ、テスト回答と共に、今回実施したテストの識別情報であるテストIDを送信するようになっている。そして、ICは、マイコンからのテストIDに基づき、マイコンからのテスト回答の期待値を設定し、その期待値とテスト回答とを比較することにより、そのテスト回答の正誤を判定する。
この構成によれば、ICによる正誤判定の精度を高めることができる。例えば、マイコン側からICへテスト回答と共に期待値を送信する構成も考えられるが、その構成の場合には、マイコンの故障によりテスト回答と期待値とが誤って一致してしまい、本当はマイコンに異常が生じているのにICにてテスト回答が「正」と判定されてしまう可能性がある。これに対して、請求項5の構成によれば、そのような誤判定の可能性を回避することができる。
尚、ICにて期待値を設定する手法としては、例えば、予め記憶しておいた複数の期待値の中から、テストIDに対応するものを選択するという手法や、テストIDの値から所定の演算ルールで期待値を算出するという手法が考えられる。
次に、請求項6の電子制御装置では、請求項5の電子制御装置において、ICは、テスト回答の正誤判定結果と共に、その正誤判定結果に対応するテストのテストIDをマイコンへ送信するように構成されている。そして、マイコン側のテスト選択手段は、ICからの正誤判定結果が「誤」の場合には、その正誤判定結果と共にICから送られてきたテストIDに対応するテストを、前回と同じテストとして選択する。
この構成によれば、マイコン側とIC側との同期を確実にとることができる。つまり、マイコン側とIC側で認識しているテストIDのズレを防ぐことができ、特に、ICにてマイコンからのテスト回答が「誤」であると判定された場合に、前回と同じテストを確実に再実施することができるようになる。
次に、請求項7の電子制御装置では、請求項5,6の電子制御装置において、ICは、マイコンからの前回のテスト回答が「誤」であると判定したにも拘わらず、マイコンから前回と同じテストIDが送信されてこなかった場合に、マイコンが異常であると判定するように構成されている。
この構成によれば、マイコン側の再テスト実行機能(テスト選択手段の請求項4に記載の機能)が正常か否かを、IC側にて検証することができる。
一方、請求項8の電子制御装置では、請求項1〜3の電子制御装置において、請求項5の電子制御装置と同様に、マイコンは、ICへ、テスト回答と共に、今回実施したテストの識別情報であるテストIDを送信するようになっている。そして、ICは、マイコンからのテストIDに基づき、マイコンからのテスト回答の期待値を設定し、その期待値とテスト回答とを比較することにより、そのテスト回答の正誤を判定する。
このため、請求項8の電子制御装置によっても、請求項5の電子制御装置と同様に、ICによる正誤判定の精度を高めることができる。
次に、請求項9の電子制御装置では、請求項5〜8の電子制御装置において、ICは、マイコンから送信されてきたテストIDを記憶すると共に、一定時間が経過する毎に、その今回経過した一定時間の期間中にマイコンから全種類のテストIDが送信されてきたか否かを判定して、全種類のテストIDが送信されてきていなければ、マイコンが異常であると判定する全テスト実施確認機能を備えている。
この構成によれば、マイコンの故障のうち「特定のテストが実行されない」という故障を検出することができるようになる。また、この構成によれば、マイコンからのテストIDの送信順序が変わっても対応可能である。
次に、請求項10の電子制御装置では、請求項9の電子制御装置において、ICは、全テスト実施確認機能の判定結果もマイコンへ送信するように構成されている。また、マイコンには全テスト実施確認機能テスト手段が備えられている。そして、その全テスト実施確認機能テスト手段は、全種類のテストIDのうちの何れかがICへ送信されるのを禁止し、その状態で前記一定時間より長い所定時間が経過しても、ICから全テスト実施確認機能の判定結果として、異常を示す判定結果が送信されてこなければ、全テスト実施確認機能が異常であると判定する。
この構成によれば、IC側の全テスト実施確認機能が正常か否かを、マイコン側にて検証することができる。
次に、請求項11の電子制御装置では、請求項3〜7の電子制御装置において、マイコンにはIC側判定機能テスト手段が備えられている。そして、そのIC側判定機能テスト手段は、所定のICテスト実行タイミングが到来すると、テスト回答として、ICにて「誤」と判定されるはずのテスト回答を送信し、そのテスト回答に対するICからの正誤判定結果が「誤」であるか否かを判定する。尚、ICからの正誤判定結果が「誤」でなければ、異常と判定されることとなる。
この構成によれば、マイコンからのテスト回答の正誤を判定するICの正誤判定機能が正常か否かを、マイコン側にて検証することができる。そして、このため、ICの正誤判定機能に異常が生じて、本当はマイコンからICへのテスト回答が誤りであるにも拘わらずICからマイコンへの正誤判定結果が「正」になってしまい、マイコン側にて正常と誤判定してしまう、ということを防止できるようになる。
次に、請求項12の電子制御装置では、請求項4〜7の電子制御装置において、ICは、マイコンからのテスト回答が「誤」であると判定する毎に異常判定カウンタをカウントアップさせる機能を備えると共に、その異常判定カウンタの値を、前記正誤判定結果と共にマイコンへ送信するように構成されている。また、マイコンにはIC側カウント機能テスト手段が備えられている。そして、そのIC側カウント機能テスト手段は、所定のICテスト実行タイミングが到来すると、テスト回答として、ICにて「誤」と判定されるはずのテスト回答を送信し、そのテスト回答に対してICから正誤判定結果と共に送られてきた異常判定カウンタの値が正常に加算されているか否かを判定する。
この構成によれば、異常判定カウンタをカウントアップさせるICのカウント機能が正常か否かを、マイコン側にて検証することができる。
次に、請求項13の電子制御装置では、請求項3の電子制御装置において、ICには、マイコンからのテスト回答の正誤を判定して、その判定結果である正誤判定結果をマイコンへ送信する回路ブロックが複数備えられている。そして、マイコンは、前記複数の回路ブロックから送信されてきた正誤判定結果が全て「正」ならば正常と判定するようになっている。
この構成によれば、請求項11に記載のIC側判定機能テスト手段を設けなくても、請求項11の電子制御装置による効果と同様の効果を得ることができる。ICにおける複数の回路ブロックのうちの何れかに異常が生じて、本当はマイコンからICへのテスト回答が誤りであるにも拘わらず、その異常な回路ブロックからマイコンへの正誤判定結果が「正」になったとしても、他の回路ブロックからの正誤判定結果が「誤」ばらば、マイコンは正常と誤判定しないからである。
尚、マイコンは、ICにおける複数の回路ブロックから送信されてきた正誤判定結果を比較して、全て同じでなければ異常であると判定するように構成することもできる。
また、ICにおける複数の各回路ブロックが、マイコンへテストIDを送信する構成の場合にも、マイコンは、その各回路ブロックから送信されてきたテストIDを比較して、全て同じでなければ異常であると判定するように構成することができる。
また、ICにおける複数の各回路ブロックが、前述した全テスト実施確認機能を備えると共に、その全テスト実施確認機能の判定結果をマイコンへ送信する構成の場合にも、マイコンは、その各回路ブロックから送信されてきた判定結果を比較して、全て同じでなければ異常であると判定するように構成することができる。そして、この構成によれば、請求項10の電子制御装置による効果と同様の効果を得ることができる。
以下に、本発明が適用された実施形態の電子制御装置について説明する。尚、本実施形態の電子制御装置(以下、ECUという)は、例えば車両に搭載されたエンジンを制御するものである。
[第1実施形態]
図1に示すように、第1実施形態のECU1は、エンジンを制御するための各種処理を行うマイコンとしてのMPU(Micro Processing Unit)3と、MPU3の動作を監視する監視IC5とを備えている。
MPU3は、例えば各種センサ等からの入力情報に基づきエンジンを作動させるためのアクチュエータの制御量を決定する、といった様々な制御機能を実現するための制御処理を行う。尚、こうした制御処理のプログラム(制御機能を実現するためのプログラム)は、図示しないROMに予め記憶されている。
例えば、制御機能の1つとして、図2に示すようなアクチュエータ制御量算出機能がある。そして、このアクチュエータ制御量算出機能においては、ECU1に備えられたメインとサブとの2つの信号入力系統(図示省略)のうち、メインの信号入力系統が正常な場合であって、MPU3が通常モードでエンジンを制御する場合には、そのメインの信号入力系統から入力される電圧V1に対して、「V1×定数A+定数B」という演算を行い、その演算結果を制御量とする。また、メインの信号入力系統が異常になった場合であって、MPU3がフェイルセーフモードでエンジンを制御する場合には、サブの信号入力系統から入力される電圧V2に対して、「V2×定数C+定数D」という演算を行い、その演算結果を制御量とする。つまり、通常モード時には、図2の点線で囲まれたパスの処理が行われ、フェイルセーフモード時には、図2の一点鎖線で囲まれたパスの処理が行われる。
そして、ECU1においては、MPU3の機能検証用のテストを実施するために、MPU3には、確認結果チェック及びテスト選択部3aと、テスト結果管理部3bとが設けられ、監視IC5には、テスト回答確認部5aが設けられている。更に、MPU3と監視IC5は、一定時間毎(本実施形態では8ms毎)に通信するようになっている。
MPU3側の確認結果チェック及びテスト選択部3aは、監視IC5からの情報を参照して、今回実施すべきテストを選択する部分であり、具体的には、実施すべきテストのテストIDを選択する。尚、テストIDは、テストの識別情報である。
そして、MPU3は、確認結果チェック及びテスト選択部3aで選択されたテストIDに対応する内容のテストを、複数の制御機能#1,#2,…の各々について実施する。
また、MPU3側のテスト結果管理部3bは、テストの実施結果を示すテスト回答を生成し、そのテスト回答とテストIDを監視IC5へ送信する部分である。
尚、このテスト結果管理部3bによって監視IC5へ送信されるテストIDは、MPU3にて今回実施したテストのテストIDである。また、MPU3側の確認結果チェック及びテスト選択部3aと、テスト結果管理部3bとの各機能は、MPU3がROM内のプログラムを実行することで実現されるものである。
一方、監視IC5のテスト回答確認部5aは、MPU3から送信されてきたテスト回答の正誤を判定し、その正誤判定結果(以下、テスト回答確認結果、或いは単に、確認結果という)を、それに対応するテストのテストIDと共にMPU3へ送信する。尚、このテスト回答確認部5aによってMPU3へ送信されるテストIDは、MPU3からテスト回答と共に送信されてきたテストIDである。
また、テスト回答確認部5aは、MPU3からのテスト回答が「誤」であると判定する毎に異常判定カウンタとしてのエラーカウンタECic2をカウントアップさせる機能を備えており、そのエラーカウンタECic2の値も、テスト回答確認結果及びテストIDと共にMPU3へ送信する。
そして、MPU3側の確認結果チェック及びテスト選択部3aは、監視IC5からのテスト回答確認結果、テストID、及びエラーカウンタECic2の値を参照して、今回実施すべきテストのテストIDを選択する。このため、図1における〈1〉→〈2〉→〈3〉→〈4〉の順に信号が流れることとなる。
また更に、監視IC5のテスト回答確認部5aは、MPU3から送信されてきたテストIDを記憶すると共に、一定時間Thcが経過する毎に、その今回経過した一定時間Thcの期間中にMPU3から全種類のテストIDが送信されてきたか否か(換言すれば、全種類のテストが実施されたか否か)を判定して、全種類のテストIDが送信されてきていなければ、MPU3が異常であると判定する全テスト実施確認機能を備えている。そして、テスト回答確認部5aは、上記全テスト実施確認機能による判定を実施した場合には、その全テスト実施確認機能の判定結果である履歴確認結果も、テスト回答確認結果、テストID、及びエラーカウンタECic2の値と共にMPU3へ送信する。
次に、MPU3側の確認結果チェック及びテスト選択部3aの処理内容について、図3〜図7のフローチャートを用い説明する。
MPU3は、ECU1に電源が投入されて動作を開始すると、図3に示す確認結果チェック及びテスト選択部3aの処理を、監視IC5との通信間隔である一定時間(8ms)毎に実行する。尚、ECU1の起動時において、MPU3における後述の各カウンタ及びテストIDの値は0に初期化され、後述のフラグはオフの方に初期化される。
そして、図3に示すように、確認結果チェック及びテスト選択部3aの処理では、まずS110にて、今回の処理実行が起動直後の初回であるか否かを判定し、初回であれば(S110:YES)、S115に進んで、図4のテストID選択処理を実行する。尚、本実施形態では、使用されるテストIDが1〜5の5通りある。そして、テストID選択処理は、これから実施すべきテストのテストIDを、1〜5のうちから選択して設定するための処理であり、それの詳しい内容は後述する。
S115でテストID選択処理が終了すると、S120に進んで、エラーカウンタECmpu2の値を0に初期化し、その後、当該確認結果チェック及びテスト選択部3aの処理を終了する。
一方、上記S110にて、起動直後の初回ではない(2回目以降である)と判定した場合には、S122に移行して、前回の処理実行時から今回までの間に監視IC5からテスト回答確認結果、テストID、及びエラーカウンタECic2の値と共に、履歴確認結果を受信したか否かを判定する。そして、履歴確認結果を受信していなければ、S145に移行するが、履歴確認結果を受信したならば、S125に進む。
S125では、監視IC5からの履歴確認結果が“正常”を示す「OK」であるか否かを判定し、履歴確認結果が「OK」であれば、S130に進んで、エラーカウンタECmpu1の値を0に初期化した後、S145に進む。
また、S125にて、監視IC5からの履歴確認結果が「OK」ではないと判定したならば、S135に移行して、エラーカウンタECmpu1をインクリメントし、次のS140にて、エラーカウンタECmpu1の値が、異常確定判定用の規定値以上になったか否かを判定する。そして、エラーカウンタECmpu1の値が規定値以上になっていなかった場合にも、S145に進む。
S145では、図7に示すテスト回答確認結果の解析処理を実行し、その後、S150に進む。尚、テスト回答確認結果の解析処理の詳しい内容については後述するが、その処理は、監視IC5から受信したテスト回答確認結果とエラーカウンタECic2の値とを解析して、当該MPU3と監視IC5とを含めた総合的な検査結果であるテスト最終結果を決定する処理である。
そして、S150では、今回のS145で決定されたテスト最終結果が“正常”を示す「OK」であるか否かを判定し、テスト最終結果が「OK」であれば、前述のS115へ移行する。よって、この場合も、図4のテストID選択処理が実行されると共に、エラーカウンタECmpu2の値が0に初期化される。
また、テスト最終結果が「OK」でなければ(S150:NO)、S155に進み、これから実施すべきテストのテストIDとして、前回選択したテストIDと同じテストIDを選択する。具体的には、監視IC5からテスト回答確認結果と共に送られてきたテストIDを、これから実施すべきテストのテストIDとして設定する。このS155の処理により、前回と同じテストが再度実施されることとなる。
そして、次のS160にて、エラーカウンタECmpu2をインクリメントし、次のS165にて、エラーカウンタECmpu2の値が、異常確定判定用の規定値以上になったか否かを判定する。そして、エラーカウンタECmpu2の値が規定値以上になっていなければ、そのまま当該確認結果チェック及びテスト選択部3aの処理を終了する。
また、上記S140にて、エラーカウンタECmpu1の値が規定値以上になったと判定した場合、或いは、上記165にて、エラーカウンタECmpu2の値が規定値以上になったと判定した場合には、S170に移行して、予め定められたフェイルセーフ処理を実行し、その後、当該確認結果チェック及びテスト選択部3aの処理を終了する。
尚、S170に移行する場合には、MPU3又は監視IC5に何等かの異常が生じている可能性があるため、S170で実行されるフェイルセーフ処理としては、例えば、スロットル開度を小さくしてエンジンの出力を低減させるような処理が考えられる。また、S140とS165との各判定で用いられる異常確定判定用の規定値は、同じ値であっても異なる値であっても良い。
次に、図4に示すように、図3のS115でテストID選択処理が開始されると、まずS210にて、現在の制御モードが通常モードであるか否かを判定し、通常モードであれば、S220にて、図5に示す通常モード時用のテストID選択処理を実行する。また、現在の制御モードが通常モードではなくフェイルセーフモードであれば(S210:NO)、S230に移行して、図6に示すフェイルセーフモード時用のテストID選択処理を実行する。そして、S220又はS230の処理が終わると、図3におけるS115でのテストID選択処理が終了する。
ここで、図5に示すように、図4のS220で実行される通常モード時用のテストID選択処理では、まずS310にて、後述するフェイルセーフモード時用のテストID選択処理で使用される第2カウンタCnt2の値を0に初期化する。
そして、次のS315にて、第1カウンタCnt1の値が3以下であるか否かを判定し、3以下であれば、S320に進む。
S320では、現在のテストIDが1であるか否かを判定し、1でなければ、S325に進んで、今回のテストIDを1に設定する。そして、S335に進んで、第1カウンタCnt1をインクリメントし、その後、当該通常モード時用のテストID選択処理を終了する。
また、S320で現在のテストIDが1であると判定した場合には、S330に移行して、今回のテストIDを2に設定し、その後、S335に進む。
一方、S315で第1カウンタCnt1の値が3以下ではないと判定した場合には、S340に移行して、第1カウンタCnt1の値が5以下であるか否かを判定し、5以下であれば、S345に進む。
S345では、現在のテストIDが3であるか否かを判定し、3でなければ、S350に進んで、今回のテストIDを3に設定し、その後、S335に進む。
また、S345で現在のテストIDが3であると判定した場合には、S355に移行して、今回のテストIDを4に設定し、その後、S335に進む。
一方、S340で第1カウンタCnt1の値が5以下ではないと判定した場合には、S360に移行して、第1カウンタCnt1の値が6以下であるか否かを判定し、6以下であれば、S365に進む。S365では、今回のテストIDを5に設定し、続くS370にて、ICテスト実行フラグをオン(ON)し、その後、S335に進む。尚、ICテスト実行フラグは、監視IC5へ故意に「誤」と判定されるはずのテスト回答(後述するNG判定確認用のテスト回答)を送信して、それに対する監視IC5からのテスト回答確認結果が「誤」であることを確認するICテスト期間であることを示すフラグである。そして、テストIDが5に設定され、且つ、ICテスト実行フラグがオンされると、後述するテスト結果管理部3bの処理(図8)により、監視IC5へ故意に「誤」と判定されるはずのテスト回答が送信されることとなる。よって、ICテスト実行フラグがオンされている場合には、監視IC5からMPU3へのテスト回答確認結果が「誤」に該当する「NG」であることが、正常ということである。
また、S360で第1カウンタCnt1の値が6以下ではないと判定した場合には、S375に移行して、第1カウンタCnt1の値を0に戻す。そして、続くS380にて、ICテスト実行フラグをオフ(OFF)し、その後、当該通常モード時用のテストID選択処理を終了する。
このような通常モード時用のテストID選択処理では、図13に示すように、第1カウンタCnt1を0〜7の間でラップラウンドさせることとなる。
そして、第1カウンタCnt1の値が0〜3の場合には、テストIDを1と2に交互に設定し(S315〜S330)、第1カウンタCnt1の値が4の場合には、テストIDを3に設定し、第1カウンタCnt1の値が5の場合には、テストIDを4に設定することとなる(S340〜S355)。また、第1カウンタCnt1の値が6の場合には、テストIDを5に設定すると共に、ICテスト実行フラグをオンし(S360〜S370)、第1カウンタCnt1の値が7の場合には、テストIDを5に設定したままで、ICテスト実行フラグをオフすることとなる(S380)。
尚、1と2のテストID(ID=1,2)は、通常モード時に使用されるロジック(通常モード時に実行される処理)のテストを示すIDであり、3と4のテストID(ID=3,4)は、フェイルセーフモード時に使用されるロジック(フェイルセーフモード時に実行される処理)のテストを示すIDである。そして、通常モード時用のテストID選択処理では、ID=1,2をID=3,4よりも高い頻度で選択することとなる。また、5のテストID(ID=5)は、監視IC5のテストを示すIDである。
次に、図6に示すように、図4のS230で実行されるフェイルセーフモード時用のテストID選択処理では、まずS310にて、前述した通常モード時用のテストID選択処理で使用される第1カウンタCnt1の値を0に初期化する。
そして、次のS415にて、第2カウンタCnt2の値が3以下であるか否かを判定し、3以下であれば、S420に進む。
S420では、現在のテストIDが3であるか否かを判定し、3でなければ、S425に進んで、今回のテストIDを3に設定する。そして、S435に進んで、第2カウンタCnt2をインクリメントし、その後、当該フェイルセーフモード時用のテストID選択処理を終了する。
また、S420で現在のテストIDが3であると判定した場合には、S430に移行して、今回のテストIDを4に設定し、その後、S435に進む。
一方、S415で第2カウンタCnt2の値が3以下ではないと判定した場合には、S440に移行して、第2カウンタCnt2の値が5以下であるか否かを判定し、5以下であれば、S445に進む。
S445では、現在のテストIDが1であるか否かを判定し、1でなければ、S450に進んで、今回のテストIDを1に設定し、その後、S435に進む。
また、S445で現在のテストIDが1であると判定した場合には、S455に移行して、今回のテストIDを2に設定し、その後、S435に進む。
一方、S440で第2カウンタCnt2の値が5以下ではないと判定した場合には、S460に移行して、第2カウンタCnt2の値が6以下であるか否かを判定し、6以下であれば、S465に進む。S465では、今回のテストIDを5に設定し、続くS470にて、ICテスト実行フラグをオン(ON)し、その後、S435に進む。
また、S460で第2カウンタCnt2の値が6以下ではないと判定した場合には、S475に移行して、第2カウンタCnt2の値を0に戻す。そして、続くS480にて、ICテスト実行フラグをオフ(OFF)し、その後、当該フェイルセーフモード時用のテストID選択処理を終了する。
このようなフェイルセーフモード時用のテストID選択処理では、図13に示すように、第2カウンタCnt2を0〜7の間でラップラウンドさせることとなる。
そして、第2カウンタCnt2の値が0〜3の場合には、テストIDを3と4に交互に設定し(S415〜S430)、第2カウンタCnt2の値が4の場合には、テストIDを1に設定し、第2カウンタCnt2の値が5の場合には、テストIDを2に設定することとなる(S440〜S455)。また、第2カウンタCnt2の値が6の場合には、テストIDを5に設定すると共に、ICテスト実行フラグをオンし(S460〜S470)、第2カウンタCnt2の値が7の場合には、テストIDを5に設定したままで、ICテスト実行フラグをオフすることとなる(S480)。このため、フェイルセーフモード時用のテストID選択処理では、通常モード時用のテストID選択処理とは逆に、ID=3,4をID=1,2よりも高い頻度で選択することとなる。
次に、図7に示すように、図3のS145で実行されるテスト回答確認結果の解析処理では、まずS510にて、監視IC5から受信したテスト回答確認結果が「正」に該当する「OK」であるか否かを判定し、テスト回答確認結果が「OK」であれば、S515に進んで、ICテスト実行フラグがオンされているか否かを判定する。そして、ICテスト実行フラグがオンされていなければ、S520に進み、監視IC5から受信したエラーカウンタECic2の値が0であるか否かを判定し、0であれば、S525に進む。
S525では、当該MPU3と監視IC5とを含めた総合的な検査結果であるテスト最終結果を、“正常”を示す「OK」に設定し、その後、当該テスト回答確認結果の解析処理を終了する。
また、S510にて、監視IC5からのテスト回答確認結果が「OK」ではないと判定した場合には、S530に移行して、ICテスト実行フラグがオンされているか否かを判定する。そして、ICテスト実行フラグがオンされていれば、S535に進み、監視IC5から受信したエラーカウンタECic2の値が1であるか否かを判定し、1であれば、S525に移行する。よって、この場合にも、テスト最終結果が「OK」に設定される。
一方、S530にて、ICテスト実行フラグがオンされていないと判定した場合には、監視IC5へ故意に「誤」と判定されるはずのテスト回答を送信しているわけではないのに、監視IC5からのテスト回答確認結果が「OK」ではなかった(「NG」であった)ということであり、当該MPU3から監視IC5へ送信されたテスト回答が本当に誤っていたと考えられるため、S540に移行して、テスト最終結果を、“異常”を示す「NG」に設定する。そして、その後、当該テスト回答確認結果の解析処理を終了する。
また、S535にて、エラーカウンタECic2の値が1ではないと判定した場合には、監視IC5におけるエラーカウンタECic2のカウントアップ機能(後述する図10のS745の処理)に異常が生じていると判断して、この場合にもS540に移行し、テスト最終結果を「NG」に設定する。
また、S515にて、ICテスト実行フラグがオンされていると判定した場合には、監視IC5へ故意に「誤」と判定されるはずのテスト回答を送信したのに、監視IC5からのテスト回答確認結果が「OK」であったということであるため、テスト回答に対する監視IC5の判定機能(テスト回答確認部5a)に異常が生じていると判断して、この場合にもS540に移行し、テスト最終結果を「NG」に設定する。
また、S520にて、エラーカウンタECic2の値が0ではないと判定した場合には、監視IC5におけるエラーカウンタECic2のリセット機能(後述する図10のS740の処理)に異常が生じていると判断して、この場合にもS540に移行し、テスト最終結果を「NG」に設定する。
尚、図7のS525又はS540で「OK」か「NG」に設定されるテスト最終結果が、図3のS150で参照されることとなる。
そして、MPU3は、図3の処理が終了すると、その回のS115又はS155で選択されたテストIDに対応する内容のテストを複数の制御機能#1,#2,…の各々について実施する。
ここで、MPU3で実施されるテストの内容について説明する。
まず、MPU3は、前述したメインとサブの信号入力系統のうち、メインの信号入力系統が正常であれば通常モードとなり、メインの信号入力系統が異常であればフェイルセーフモードとなる。
また、本実施形態において、テスト対象となる制御機能は#1〜#16の16種類ある。そして、それら制御機能#1〜#16の各々は、図2に例示したように、通常モード時には、メインの信号入力系統から入力される電圧V1に対して予め定められた演算を行うことにより、その制御機能に対応するアクチュエータの制御量等を求め、フェイルセーフモード時には、サブの信号入力系統から入力される電圧V2に対して予め定められた演算を行うことにより、その制御機能に対応するアクチュエータの制御量等を求める、といったものである。
そして、テストID=1のテストでは、各制御機能#1〜#16における通常モード時のパス(処理経路)に対して、第1のダミー入力値を与え、そのダミー入力値に対する演算結果を、テスト結果として取得する。
また、テストID=2のテストでは、各制御機能#1〜#16における通常モード時のパスに対して、上記第1のダミー入力値とは異なる第2のダミー入力値を与え、その入力値に対する演算結果を、テスト結果として取得する。
一方、テストID=3のテストでは、各制御機能#1〜#16におけるフェイルセーフモード時のパスに対して、第3のダミー入力値を与え、その入力値に対する演算結果を、テスト結果として取得する。
また、テストID=4のテストでは、各制御機能#1〜#16におけるフェイルセーフモード時のパスに対して、上記第3のダミー入力値とは異なる第4のダミー入力値を与え、その入力値に対する演算結果を、テスト結果として取得する。
尚、第1のダミー入力値は、各制御機能#1〜#16毎に異なる値であっても同じ値であっても良い。そして、このことは、第2〜第4のダミー入力値についても同様である。
また、テストID=5の場合には、制御機能#1〜#16のテストは実施せずに、後述する図8の処理により、ICテスト用のテスト回答(監視IC5の機能を検証するためのNG判定確認用のテスト回答とOK判定確認用のテスト回答)を作成するのみである。
そして、MPU3は、図3の処理でテストIDが1〜4の何れかに設定されて、そのテストIDに対応する内容のテストを制御機能#1〜#16の各々について実施するか、或いは、図3の処理でテストIDが5に設定されると、図8に示すテスト結果管理部3bの処理を実行する。
図8に示すように、テスト結果管理部3bの処理では、まずS610にて、今回のテストIDが5であるか否かを判定し、5でなければ(即ち、1〜4の何れかであれば)、S615に進む。
S615では、制御機能#1〜#16の各々について、今回実施したテストのテスト結果が正しいか否かを自己判定する。
具体的に説明すると、MPU3には、制御機能#1〜#16の各々について、その制御機能における通常モード時のパスに前述した第1のダミー入力値を与えた場合の正しい演算結果が、通常モードテスト用の期待値として記憶されている。また、MPU3には、制御機能#1〜#16の各々について、その制御機能におけるフェイルセーフモード時のパスに前述した第3のダミー入力値を与えた場合の正しい演算結果が、フェイルセーフモードテスト用の期待値として記憶されている。
そして、S615では、今回のテストIDが1又は2であれば、制御機能#1〜#16の各々について、テスト結果と通常モードテスト用の期待値とを比較し、両者が一致していれば、テスト結果が正しいと判定する。また、今回のテストIDが3又は4であれば、制御機能#1〜#16の各々について、テスト結果とフェイルセーフモードテスト用の期待値とを比較し、両者が一致していれば、テスト結果が正しいと判定する。
このため、テストIDが1又は3の場合に、ある制御機能のテストとS615の判定とが正常に行われたならば、S615では、その制御機能について“テスト結果が正しい”と判定されるが、テストIDが2又は4の場合に、ある制御機能のテストとS615の判定とが正常に行われたならば、S615では、その制御機能について“テスト結果が正しくない”と判定されることとなる。
つまり、テストID=1,3のテストが、S615で“テスト結果が正しい”と判定されることを期待したテスト(OK期待のテスト)であるのに対して、テストID=2,4のテストは、S615で“テスト結果が正しくない”と判定されることを期待したテスト(NG期待のテスト)である。尚、このように、OK期待のテストだけでなくNG期待のテストも設けているのは、S615での判定が“YES”と“NO”の何れかに固着していないことを確認できるようにするためである。
このようなS615により、テスト結果が正しいと判定した制御機能については、S620にて、テスト回答として「OK」を示すテスト回答を作成する。また、S615により、テスト結果が正しくないと判定した制御機能については、S625にて、テスト回答として「NG」を示すテスト回答を作成する。
具体的には、図9(A)に示す規則でテスト回答を作成する。
即ち、テストIDが1又は2の場合に、S615にて、ある制御機能#n(nは1〜16の何れか)についてテスト結果が正しいと判定したならば、図9(A)における「ID=1」の縦列に記載された数値のうち、「#n」に対応する数値を、その制御機能#nについての「OK」を示すテスト回答とする。
また、テストIDが1又は2の場合に、S615にて、ある制御機能#nについてテスト結果が正しくないと判定したならば、図9(A)における「ID=2」の縦列に記載された数値のうち、「#n」に対応する数値を、その制御機能#nについての「NG」を示すテスト回答とする。
よって、例えば、テストIDが1又は2の場合に、S615にて、制御機能#1についてテスト結果が正しいと判定したならば、{01}が、その制御機能#1についての「OK」を示すテスト回答となる。また、テストIDが1又は2の場合に、S615にて、制御機能#1についてテスト結果が正しくないと判定したならば、{11}が、その制御機能#1についての「NG」を示すテスト回答となる。尚、図9に記載の数値及び{}内の数値は、16進数表示の数値である。
同様に、テストIDが3又は4の場合に、S615にて、ある制御機能#nについてテスト結果が正しいと判定したならば、図9(A)における「ID=3」の縦列に記載された数値のうち、「#n」に対応する数値を、その制御機能#nについての「OK」を示すテスト回答とする。
また、テストIDが3又は4の場合に、S615にて、ある制御機能#nについてテスト結果が正しくないと判定したならば、図9(A)における「ID=4」の縦列に記載された数値のうち、「#n」に対応する数値を、その制御機能#nについての「NG」を示すテスト回答とする。
よって、例えば、テストIDが3又は4の場合に、S615にて、制御機能#1についてテスト結果が正しいと判定したならば、{21}が、その制御機能#1についての「OK」を示すテスト回答となる。また、テストIDが3又は4の場合に、S615にて、制御機能#1についてテスト結果が正しくないと判定したならば、{31}が、その制御機能#1についての「NG」を示すテスト回答となる。
尚、前述したように、テストID=2,4のテストは、S615で“テスト結果が正しくない”と判定されるはずのNG期待のテストであるため、MPU3が正常ならば、テストIDがm(mは1〜4の何れか)である場合、図9(A)における「ID=m」の縦列に記載された各数値が、各制御機能#1〜#16についてのテスト回答となる。
また、上記S610にて、今回のテストIDが5であると判定した場合には、S630に移行して、ICテスト実行フラグがオンされているか否かを判定する。
そして、ICテスト実行フラグがオンされていれば(S630:YES)、S635に進み、各制御機能#1〜#16についてのテスト回答として、監視IC5側で「誤」と判定されるはずのNG判定確認用のテスト回答を作成する。また、ICテスト実行フラグがオフされていれば(S630:NO)、S640に進み、各制御機能#1〜#16についてのテスト回答として、監視IC5側で「正」と判定されるはずのOK判定確認用のテスト回答を作成する。
具体的には、図9(B)に示す規則でテスト回答を作成する。
即ち、S635では、図9(B)における左側の縦列に記載された数値のうち、「#n」に対応する数値を、制御機能#nについてのテスト回答とする。また、S640では、図9(B)における右側の縦列に記載された数値のうち、「#n」に対応する数値を、制御機能#nについてのテスト回答とする。
よって、テストIDが5で、且つ、ICテスト実行フラグがオンされている場合、各制御機能#1〜#16についてのテスト回答は全て{FF}となる。また、テストIDが5で、且つ、ICテスト実行フラグがオフされている場合、例えば、制御機能#1についてのテスト回答は{41}となり、制御機能#2についてのテスト回答は{42}となる。
上記S610〜S640の処理により、各制御機能#1〜#16についてのテスト回答が作成されると、S645にて、その各制御機能#1〜#16についてのテスト回答と、今回のテストID(即ち、MPU3にて今回選択し実施したテストのテストID)とを、監視IC5へ送信し、その後、当該テスト結果管理部3bの処理を終了する。
次に、監視IC5におけるテスト回答確認部5aが行う処理内容について、図10及び図11のフローチャートを用い説明する。
監視IC5のテスト回答確認部5aは、MPU3から送信されたテスト回答とテストIDを受信する毎に、図10の処理を開始する。尚、監視IC5における各カウンタの値も、ECU1の起動時に0に初期化される。
そして、まずS710にて、図11に示すテスト回答解析処理を行う。
図11に示すように、テスト回答解析処理では、最初のS810にて、MPU3から今回受信したテストIDを、当該監視IC5に設けられたメモリにおける履歴記憶領域にテスト履歴として累積記憶し、続くS815にて、履歴確認タイミングカウンタをインクリメントする。次に、S820にて、履歴確認タイミングカウンタの値が前述の一定時間Thcに相当するしきい値に達したか否かにより、その一定時間Thc毎の履歴確認タイミングが到来したか否かを判定する。
そして、履歴確認タイミングカウンタの値がしきい値に達しておらず、履歴確認タイミングが到来していないと判定した場合には(S820:NO)、そのままS855に移行するが、履歴確認タイミングが到来したと判定した場合には(S820:YES)、S825に進む。
S825では、履歴確認タイミングカウンタの値を0に戻し、次のS830にて、上記履歴記憶領域内にテスト履歴として1〜5の全種類のテストIDが記憶されているか否か(即ち、今回経過した一定時間Thcの期間中にMPU3から全種類のテストIDが送信されてきたか否かであり、換言すれば全種類のテストが実施されたか否か)を判定する。
そして、履歴記憶領域内に全種類のテストIDがあれば(S830:YES)、S840にて、履歴確認結果を“正常”を示す「OK」に設定し、S850にて、履歴記憶領域内のテスト履歴(テストID)を消去した後、S855へ進む。
また、履歴記憶領域内に全種類のテストIDがなければ(S830:NO)、S845にて、履歴確認結果を“異常”を示す「NG」に設定し、S850にて、履歴記憶領域内のテスト履歴(テストID)を消去した後、S855へ進む。
そして、上記S810〜S850の処理により、前述した全テスト実施確認機能が実現されている。尚、本実施形態において、履歴確認タイミングの到来間隔である一定時間Thcは、図13に示すように例えば96msである。
次にS855では、MPU3へ前回送信したテスト回答確認結果が「誤」に該当する「NG」であったか否かを判定する。そして、前回のテスト回答確認結果が「NG」でなければ(S855:NO)、そのままS865に移行するが、前回のテスト回答確認結果が「NG」であれば(S855:YES)、S860に進む。そして、S860にて、MPU3から今回受信したテストIDが前回受信したテストIDと同じであるか否かを判定し、今回のテストIDが前回と同じであれば、S865に進む。
そして、S865では、正誤判定用期待値の選択処理を行う。正誤判定用期待値とは、MPU3から受信したテスト回答の正誤を判定するための期待値である。
具体的に説明すると、まず、監視IC5には、図12に示すように、MPU3側に記憶されている前述の規則であって、図9(A)及び図9(B)における右側の規則と全く同じ規則が記憶されている。そして、S865では、MPU3から今回受信したテストIDがM(Mは1〜5の何れか)であるとすると、図12における「ID=M」の縦列に記載された各数値を、各制御機能#1〜#16についてのテスト回答に対する正誤判定用期待値として選択する。
次に、S870に進み、各制御機能#1〜#16について、MPU3から今回受信したテスト回答と上記S865で選択した正誤判定用期待値とが一致しているか否かを判定する。
そして、全ての制御機能#1〜#16について、テスト回答と正誤判定用期待値とが一致していたならば(S870:YES)、S875に進んで、テスト回答確認結果を「正」に該当する「OK」に設定し、その後、当該テスト回答解析処理を終了する。
また、制御機能#1〜#16のうちの1つ以上について、テスト回答と正誤判定用期待値とが一致していなければ(S870:NO)、S880に進んで、テスト回答確認結果を「誤」に該当する「NG」に設定し、その後、当該テスト回答解析処理を終了する。
また、上記S860にて、今回のテストIDが前回のテストIDと同じではないと判定した場合にも、S880に進んで、テスト回答確認結果を「NG」に設定し、その後、当該テスト回答解析処理を終了する。
図10に戻り、上記S710でテスト回答解析処理が終了すると、次にS712にて、今回が履歴確認タイミングであったか否か(即ち、今回の上記S820で履歴確認タイミングが到来したと判定したか否か)を判定する。そして、今回が履歴確認タイミングでなければ、そのままS735へ移行するが、今回が履歴確認タイミングであれば、S715に進む。
S715では、今回のテスト回答解析処理のS840又はS845で設定された履歴確認結果が「OK」であるか否かを判定し、履歴確認結果が「OK」であれば、S720に進んで、エラーカウンタECic1の値を0に初期化した後、S735に進む。
また、S715にて、履歴確認結果が「OK」ではないと判定したならば、S725に移行して、エラーカウンタECic1をインクリメントし、次のS730にて、エラーカウンタECic1の値が、異常確定判定用の規定値以上になったか否かを判定する。そして、エラーカウンタECic1の値が規定値以上になっていなかった場合にも、S735に進む。
S735では、今回のテスト回答解析処理のS875又はS880で設定されたテスト回答確認結果が「OK」であるか否かを判定し、テスト回答確認結果が「OK」であれば、S740に進んで、エラーカウンタECic2の値を0に初期化した後、S755に進む。
また、S735にて、テスト回答確認結果が「OK」ではないと判定したならば、S745に移行して、エラーカウンタECic2をインクリメントし、次のS750にて、エラーカウンタECic2の値が、異常確定判定用の規定値以上になったか否かを判定する。そして、エラーカウンタECic2の値が規定値以上になっていなかった場合にも、S755に進む。
一方、上記S730にて、エラーカウンタECic1の値が規定値以上になったと判定した場合、或いは、上記750にて、エラーカウンタECic2の値が規定値以上になったと判定した場合には、S760に移行して、予め定められたフェイルセーフ処理を実行し、その後、S755に進む。
尚、S760に移行する場合には、MPU3に何等かの異常が生じている可能性があるため、S760で実行されるフェイルセーフ処理としては、MPU3からの出力よりも優先してエンジンの出力を低減させるようなフェイルセーフ用信号を出力する処理などが考えられる。また、S730とS750との各判定で用いられる異常確定判定用の規定値は、同じ値であっても異なる値であっても良い。
そして、S755では、MPU3へ情報を送信する処理を行う。具体的には、今回が一定時間Thc毎の履歴確認タイミングであったならば、今回のテスト回答解析処理で設定されたテスト回答確認結果及び履歴確認結果と、エラーカウンタECic2の値と、MPU3からテスト回答と共に受信したテストIDとを、MPU3へ送信する。また、今回が履歴確認タイミングでなければ、今回のテスト回答解析処理で設定されたテスト回答確認結果と、エラーカウンタECic2の値と、MPU3からテスト回答と共に受信したテストIDとを、MPU3へ送信する。そして、このS755の処理を行った後、当該図10の処理を終了する。
次に、図10及び図11の処理による監視IC5の作用について説明する。
まず、MPU3が正常ならば、図13に示すように、MPU3からのテストIDが5以外から5になった場合(即ち、MPU3側でICテスト実行フラグがオンされた場合)にだけ、テスト回答確認結果が「NG」となり(S880)、それ以外の場合には、テスト回答確認結果が「OK」となる(S875)。MPU3からのテストIDが5以外から5になった場合には、MPU3から監視IC5へ送信される各制御機能#1〜#16についてのテスト回答が全て{FF}となるのに対し、監視IC5側における図11のS870で用いられる正誤判定用期待値は、図12の最右列のように{41},{42},{43},…{50}となるからである。
尚、MPU3が正常で、監視IC5へのテストIDが5以外から5になった場合、監視IC5では、テスト回答確認結果が「NG」となる上に、図10のS745でエラーカウンタECic2がカウントアップされるため、監視IC5からMPU3へは、テスト回答確認結果として「NG」が送信されると共に、エラーカウンタECic2の値として1が送信される。しかし、その場合、MPU3側の図7の処理では、S510:NO→S530:YES→S535:YES→S525と処理が進むため、テスト最終結果は「NG」にならず「OK」となる。
一方、MPU3に異常が生じて、例えば図14に示すように、テストID=1のテストを実施したテスト結果が、図8のS615で判定に用いられる期待値とは異なる値になったとすると、MPU3から監視IC5へのテスト回答が、図9(A)における「ID=1」の縦列に記載された数値群「{01},{02},…{10}」とは異なるものとなる。
このため、監視IC5側では、図11のS870にて、MPU3からのテスト回答と正誤判定用期待値とが一致していないと判定し、テスト回答確認結果を「NG」に設定すると共に(S880)、エラーカウンタECic2をカウントアップさせることとなる(S745)。
そして、監視IC5からMPU3へのテスト回答確認結果が「NG」になると、この場合、MPU3側では、ICテスト実行フラグがオンされていないため、図7の処理にて、S510:NO→S530:NOと判定されて、テスト最終結果が「NG」に設定される(S540)。すると、図3におけるS155,S160の処理が実行されることとなり、MPU3にて前回と同じテストID=1のテストが再度実施されると共に、MPU3から監視IC5へ、前回と同じテストID(=1)が送信されることとなる。
よって、図14に示すように、MPU3において、テストID=1のテストが正常に実施されない異常状態が続くと、監視IC5側では、エラーカウンタECic2がカウントアップされていき(S745)、そのエラーカウンタECic2の値が規定値に達すると、図10のS750で“YES”と判定されてフェイルセーフ処理(S760)が実行されることとなる。また、MPU3側においても、エラーカウンタECmpu2がカウントアップされていき(S160)、そのエラーカウンタECmpu2の値が規定値に達すると、図3のS165で“YES”と判定されてフェイルセーフ処理(S170)が実行されることとなる。
尚、MPU3において、例えば図8の処理でテスト回答を正常に作成することができなくなった場合にも、監視IC5側では、図11のS870にて、MPU3からのテスト回答と正誤判定用期待値とが一致していないと判定することとなるため、異常が検知される。
また、図15に示すように、MPU3に異常が生じて、例えばテストID=3が一定時間Thc(96ms)以上選択されなくなったとすると、監視IC5側では、図11におけるS810〜S850の処理により履歴確認結果が「NG」に設定されると共に、図10のS715及びS725の処理によりエラーカウンタECic1がカウントアップされる。そして、その状態が継続して、エラーカウンタECic1の値が規定値に達すると、図10のS730で“YES”と判定されてフェイルセーフ処理(S760)が実行されることとなる。更に、監視IC5による一定時間Thc毎の履歴確認結果はMPU3へ送信され、その履歴確認結果が「NG」になると、MPU3側でも、図3のS125及びS135の処理によりエラーカウンタECmpu1がカウントアップされる。そして、MPU3側においても、エラーカウンタECmpu1の値が規定値に達すると、図3のS140で“YES”と判定されてフェイルセーフ処理(S170)が実行されることとなる。
また、監視IC5では、MPU3へ前回送信したテスト回答確認結果が「NG」であった(即ち、MPU3からの前回のテスト回答が「誤」であると判定した)にも拘わらず、MPU3から前回と同じテストIDが送信されてこなかった場合(図11のS855:YES→S860:NO)には、MPU3が異常であると判定して、その場合にもテスト回答確認結果を「NG」に設定するようになっている。
このため、MPU3において図3のS150及びS155の処理が正常に実行されなくなった異常(即ち、再テスト実行機能の異常)を検知することもできる。
尚、MPU3が正常であっても、テストIDが5以外から5になった場合には、MPU3から監視IC5へ故意に「誤」と判定されるはずのNG判定確認用のテスト回答が送信されて、監視IC5側ではテスト回答確認結果が「NG」となる。そして、そのテスト回答確認結果を受けたMPU3では、ICテスト実行フラグがオンされているため、図7にて、S510:NO→S530:YES→S535:YES→S525と処理を進めることとなり、テスト最終結果は「OK」となる。よって、この場合には、監視IC5からMPU3へのテスト回答確認結果が「NG」であっても、MPU3側で図3におけるS150及びS155の処理が実行されない。しかし、この場合には、図3のS115で実行される図5又は図6の処理により、テストIDは前回に続いて5のままに設定されることとなる。つまり、テストID=5は、元々、MPU3から監視IC5へ2回連続して送信されるようになっている。よって、監視IC5においては、MPU3からのテストIDが5以外から5になった場合に、テスト回答確認結果が「NG」になっても、次回も前回と同じテストID=5を受信することとなり、図11のS860で“NO”と判定されることはなく、誤って異常と判定してしまうことはない。
以上のようなECU1では、MPU3側に、機能検証用のテストを選択する確認結果チェック及びテスト選択部3aが設けられている。そして、MPU3は、その確認結果チェック及びテスト選択部3aにより選択されたテストを実施して、その実施結果を示すテスト回答を監視IC5へ送信し、監視IC5は、MPU3からのテスト回答の正誤を判定するようになっている。
このため、監視IC5には、テストを選択する機能を設ける必要が無く、その監視IC5の機能を簡略化することができる。
しかも、MPU3自身でテストを選択することとなるため、制御モードに合わせたテストの選択が極めて容易となる。MPU3側はエンジンの制御状態に関するパラメータを全て持っているため、このようなテスト選択が可能となる。
そこで、本実施形態において、MPU3側の確認結果チェック及びテスト選択部3aは、図4(図5,図6)の処理により、通常モード時には、通常モード時に実行される処理のテスト(ID=1,2のテスト)を、フェイルセーフ時に実行される処理のテスト(ID=3,4のテスト)よりも高い頻度で選択し、また逆に、フェイルセーフモード時には、フェイルセーフモード時に実行される処理のテスト(ID=3,4のテスト)を、通常モード時に実行される処理のテスト(ID=1,2のテスト)よりも高い頻度で選択するようになっている。つまり、現在の制御モード時に実行される処理のテストを、他の制御モード時に実行される処理のテストよりも、高い頻度で選択するようになっている。そして、このような制御モードに応じたテスト選択により、現在の制御モードに関係する異常をいち早く検知できるようになる。
また、監視IC5は、MPU3からのテスト回答の正誤を判定した結果であるテスト回答確認結果を、MPU3へ送信するようになっているため、MPU3側においても、監視IC5からのテスト回答確認結果により、異常があるか否かを把握することができる。
そして、MPU3側の確認結果チェック及びテスト選択部3aは、図7の処理により、基本的には、監視IC5からのテスト回答確認結果が「OK」ならばテスト最終結果を「OK」とし、監視IC5からのテスト回答確認結果が「NG」ならばテスト最終結果を「NG」とするが、テスト最終結果が「NG」になった場合には、次のテストとして前回と同じテストを選択するようになっている(図3のS155)。
このため、あるテストのテスト回答が監視IC5で「NG」と判定された場合(図11のS870で“NO”と判定された場合)に、そのテストが再度実施されることとなり、異常状態を1度でなく連続して複数回確認することが可能となる。更に、全種類のテストが一巡してから再テストを実施する構成と比べると、異常確定判定されるまでの時間を短縮できるという利点もある。
また、MPU3は、監視IC5へ、テスト回答と共に、今回実施したテストのテストIDを送信するようになっている。そして、監視IC5は、MPU3からのテストIDに基づいて、MPU3からのテスト回答の期待値を設定し(S865)、その期待値とテスト回答とを比較することにより、そのテスト回答の正誤を判定するようになっている(S870)。このため、例えばMPU3側から監視IC5へテスト回答と共に正誤判定用期待値も送信するといった構成と比べると、監視IC5による正誤判定の精度(信憑性)を高めることができる。
尚、上記実施形態において、監視IC5は、予め記憶しておいた複数の正誤判定用期待値の中から、テストIDに対応するものを選択するようになっていたが、テストIDの値から所定の演算ルールで正誤判定用期待値を算出するという構成を採っても良い。
また、上記実施形態のECU1において、監視IC5は、テスト回答確認結果と共に、テストIDもMPU3へ送信するようになっている。そして、MPU3側の確認結果チェック及びテスト選択部3aは、図3のS155で前回と同じテストのテストIDを選択する場合に、監視IC5からのテストIDを、前回と同じテストのテストIDとして選択するようになっている。このため、MPU3側と監視IC5側で認識しているテストIDのズレを防ぐことができ、前回と同じテストを実施したい場合に、その再テストを確実に実施することができる。
また前述したように、監視IC5は、MPU3からの前回のテスト回答が「誤」であると判定したにも拘わらず、MPU3から前回と同じテストIDが送信されてこなかった場合(S860:NO)には、MPU3が異常であると判定して、その場合にもテスト回答確認結果を「NG」に設定するようになっている。このため、MPU3側の再テスト実行機能の異常を検知することもできる。
また、監視IC5は、図11のS810〜S850による全テスト実施確認機能を備えているため、MPU3の故障のうち「特定のテストが実行されない」という故障を検出することもできる。また、その全テスト実施確認機能によれば、MPU3からのテストIDの送信順序が変わっても対応できる。
また、MPU3は、テストIDが5以外から5になる毎に、監視IC5へ故意に「誤」と判定されるはずのNG判定確認用のテスト回答を送信し(S635)、そのテスト回答に対する監視IC5からのテスト回答確認結果が「NG」であるか否かを、図7のS510,S515,S530によって確認し、テスト回答確認結果が「NG」でなければ異常と判定するようになっている(S510:YES→S515:YES→S540)。このため、MPU3からのテスト回答の正誤を判定する監視IC5の正誤判定機能が正常か否かを、MPU3側にて検証することができる。
更に、本実施形態において、監視IC5は、MPU3からのテスト回答が「誤」であると判定する毎にエラーカウンタECic2をカウントアップさせる機能(S745)を備えると共に、そのエラーカウンタECic2の値を、テスト回答確認結果と共にMPU3へ送信するようになっている。そして、MPU3は、NG判定確認用のテスト回答に対して監視IC5からテスト回答確認結果と共に送信されてきたエラーカウンタECic2の値が正常にカウントアップされているか否かを、図7のS535によって確認し、カウントアップされていなければ異常と判定するようになっている(S535:NO→S540)。このため、エラーカウンタECic2をカウントアップさせる監視IC5のカウントアップ機能が正常か否かを、MPU3側にて検証することができる。
尚、上記実施形態では、MPU3における確認結果チェック及びテスト選択部3aが、テスト選択手段に相当している。また、MPU3が行う処理のうち、図8のS635と図7のS510,S515,S530が、IC側判定機能テスト手段に相当している。また、MPU3が行う処理のうち、図8のS635と図7のS535が、IC側カウント機能テスト手段に相当している。
[第2実施形態]
次に、第2実施形態について説明する。尚、第2実施形態のECUは、第1実施形態のECU1とハードウェア構成は同じであるため、各部の符号としては、第1実施形態と同じものを用いる。
第2実施形態のECU1は、第1実施形態と比較すると、MPU3が、監視IC5側の全テスト実施確認機能(S810〜S850)と、エラーカウンタECic1のリセット機能及びカウントアップ機能(S715〜S725)とが正常であるか否を確認するためのテストを行うようになっている。また、監視IC5は、図10のS755にて、履歴確認結果を送信する場合、エラーカウンタECic1の値もMPU3へ送信するようになっている。
このため、第2実施形態では、MPU3が、図3の処理に代えて、図16に示す確認結果チェック及びテスト選択部3aの処理を実行する。そして、図16の処理は、図3の処理と比較すると、下記(1−1)〜(1−3)の点が異なっている。
(1−1):S115では、図4の処理に代えて、図17のテストID選択処理を実行する。
(1−2):S122にて履歴確認結果を受信したと判定すると、S123にて図18の履歴確認結果の解析処理を実行し、その後、S125に進む。
尚、履歴確認結果の解析処理の詳しい内容については後述するが、その処理は、監視IC5から受信した履歴確認結果とエラーカウンタECic1の値とを解析して、MPU3側にて全種類のテストが実施されているか否かと、監視IC5側の全テスト実施確認機能が正常であるか否かと、監視IC5におけるエラーカウンタECic1のリセット機能及びカウントアップ機能が正常であるか否かとを、総合的に判断した検査結果である履歴確認最終結果を決定する処理である。
(1−3):S125では、監視IC5から受信した履歴確認結果ではなく、今回のS123で決定された履歴確認最終結果が“正常”を示す「OK」であるか否かを判定する。
次に、図16のS115で実行される図17のテストID選択処理について説明する。尚、図17のテストID選択処理は、図4のテストID選択処理(S210〜S230)に、S240〜S270の処理が追加されたものである。
図17に示すように、第2実施形態のテストID選択処理では、まずS240にて、テスト実施中フラグがオンされているか否かを判定する。
尚、本第2実施形態において、MPU3は、監視IC5側の全テスト実施確認機能が正常であるか否を確認するために、全種類のテストIDのうちの何れか(本実施形態では1〜5のうちの5)が監視IC5へ送信されるのを故意に禁止するようになっており、テスト実施中フラグは、そのテストID=5の送信を禁止している期間(即ち、全テスト実施確認機能のテスト期間でもあり、以下、特定ID送信禁止期間という)中であることを示すフラグである。また、このテスト実施中フラグは、後述するS255でオンされ、後述する図18のS940又はS950でオフされる。
上記S240にて、テスト実施中フラグがオンされていないと判定した場合には、S245に進んで、テスト開始タイミングカウンタの値がタイムアップ値以上であるか否かを判定し、タイムアップ値以上でなければ、S250に進んで、テスト開始タイミングカウンタをインクリメントする。そして、その後、前述のS210へ進む。
尚、テスト開始タイミングカウンタは、前回の特定ID送信禁止期間が終了してからの経過時間を計測するためのカウンタである。そして、タイムアップ値は、前回の特定ID送信禁止期間が終了してから次回の特定ID送信禁止期間が開始されるまでの時間間隔を決める値であり、例えば、前述した一定時間Thcの数倍又は数十倍の値に設定されている。また、S210〜S230の処理は、図4と同じであり、S220又はS230の処理が終了すると、図16におけるS115でのテストID選択処理が終了する。
一方、上記S245にて、テスト開始タイミングカウンタの値がタイムアップ値以上であると判定した場合には、S255に移行して、テスト実施中フラグをオンし、その後、S260へ進む。
また、上記S240にて、テスト実施中フラグがオンされていると判定した場合には、そのままS260へ進む。
S260では、テスト開始タイミングカウンタの値を0にクリアし、続くS265にて、S220の処理(通常モード時用のテストID選択処理:図5)で使用される第1カウンタCnt1の値と、S230の処理(フェイルセーフモード時用のテストID選択処理:図6)で使用される第2カウンタCnt2の値とを0に初期化する。
そして、次のS270にて、特定ID送信禁止期間中のID選択処理を実行する。この特定ID送信禁止期間中のID選択処理は、現在のテストID(即ち、前回送信したテストID)が1ならば今回のテストIDを2に設定し、現在のテストIDが2ならば今回のテストIDを3に設定し、現在のテストIDが3ならば今回のテストIDを4に設定し、現在のテストIDが1〜3の何れでもないならば(4ならば)今回のテストIDを1に設定する、という処理である。そして、このS270の処理が終了すると、図16におけるS115でのテストID選択処理が終了する。
つまり、図17のテストID選択処理では、テスト開始タイミングカウンタの値がタイムアップ値に達するまでは(S245:NO)、第1実施形態の図4と同じS210〜S230の処理によってテストIDを選択するが、テスト開始タイミングカウンタの値がタイムアップ値に達すると、テスト実施中フラグをオンすると共に(S255)、テスト開始タイミングカウンタをクリアし(S260)、以後は、テスト実施中フラグが図18のS940又はS950でオフされるまで、S270の処理により、テストIDを5以外の1〜4だけで変化させるようにしている。
次に、図16のS123で実行される履歴確認結果の解析処理について説明する。
図18に示すように、履歴確認結果の解析処理では、まずS910にて、監視IC5から受信した履歴確認結果が「OK」であるか否かを判定し、履歴確認結果が「OK」であれば、S915に進んで、テスト実施中フラグがオンされているか否かを判定する。そして、テスト実施中フラグがオンされていなければ、S920に進み、監視IC5から履歴確認結果と共に受信したエラーカウンタECic1の値が0であるか否かを判定し、0であれば、S925に進む。
S925では、履歴確認最終結果を、“正常”を示す「OK」に設定し、その後、当該履歴確認結果の解析処理を終了する。
また、上記S915にて、テスト実施中フラグがオンされていると判定した場合には、S945に移行して、テスト実施中フラグがオンされてから規定時間Tovが経過したか否かを判定する。尚、この規定時間Tovは、前述の一定時間Thc(96ms)よりも長い時間であって、その時間だけ何れかのテストIDの送信を禁止すれば、監視IC5側の全テスト実施確認機能によって履歴確認結果が「NG」に設定されるはずの時間であり、本実施形態では、例えば一定時間Thcの2倍未満の112msに設定されている。
そして、S945にて、規定時間Tovが経過していないと判定した場合には、テストID=5の送信を禁止している期間中ではあるものの、未だ監視IC5側の全テスト実施確認機能が異常であるとは特定できないため、そのまま当該履歴確認結果の解析処理を終了する。尚、この場合、履歴確認最終結果は前回の設定値のままとなる。
これに対し、S945にて、規定時間Tovが経過したと判定した場合には、テストID=5の送信を止めてから規定時間Tovが経過したのに、監視IC5からの履歴確認結果が「NG」にならずに「OK」であるということから、監視IC5側の全テスト実施確認機能が異常であると判断して、S950に進み、テスト実施中フラグをオフする。そして、次のS955にて、履歴確認最終結果を、“異常”を示す「NG」に設定し、その後、当該履歴確認結果の解析処理を終了する。
また、上記S920にて、エラーカウンタECic1の値が0ではないと判定した場合には、監視IC5におけるエラーカウンタECic1のリセット機能(S720)に異常が生じていると判断して、この場合にもS950に移行する。よって、この場合にも、テスト実施中フラグがオフされると共に、履歴確認最終結果が「NG」に設定される。
一方、上記S910にて、監視IC5からの履歴確認結果が「OK」ではないと判定した場合には、S930に移行して、テスト実施中フラグがオンされているか否かを判定する。そして、テスト実施中フラグがオンされていれば、テストID=5の送信を禁止している期間中であり、監視IC5側の全テスト実施確認機能が正常である故に、その監視IC5からの履歴確認結果が「OK」ではなかった(「NG」であった)と判断できるため、次のS935に進んで、監視IC5から受信したエラーカウンタECic1の値が1であるか否かを判定する。そして、エラーカウンタECic1の値が1であれば、監視IC5におけるエラーカウンタECic1のカウントアップ機能(S725)も正常であると判断できるため、S940に進んで、テスト実施中フラグをオフし、その後、S925に移行する。よって、この場合には、履歴確認最終結果が「OK」に設定される。
これに対し、上記S930にて、テスト実施中フラグがオンされていないと判定した場合には、テストID=5の送信を禁止していたわけではないのに、監視IC5からの履歴確認結果が「NG」であったということであり、当該MPU3において全種類のテストが本当に実施されていないと判断し、S955に移行する。よって、この場合には、履歴確認最終結果が「NG」に設定される。
また、上記S935にて、エラーカウンタECic1の値が1ではないと判定した場合には、監視IC5におけるエラーカウンタECic1のカウントアップ機能(S725)に異常が生じていると判断して、S950に移行し、テスト実施中フラグをオフした後、S955に進む。よって、この場合にも、履歴確認最終結果が「NG」に設定される。
そして、本第2実施形態では、図18の処理で「OK」か「NG」に設定される履歴確認最終結果が、図16のS125で参照され、その履歴確認最終結果が「NG」となった連続回数が規定値以上になると、フェイルセーフ処理が実行されることとなる(S140:YES→S170)。
以上のような第2実施形態のECU1によれば、監視IC5側の全テスト実施確認機能が異常になったことをMPU3側にて検知することができる。また、監視IC5におけるエラーカウンタECic1のリセット機能及びカウントアップ機能が異常になったこともMPU3側にて検知することができる。
尚、上記第2実施形態では、図17におけるS240〜S270の処理と、図18におけるS910,S915,S945,S950及びS955の処理とが、全テスト実施確認機能テスト手段に相当している。一方、図18のS935では、エラーカウンタECic1の値が1以上か否かを判定し、1以上であれば正常と判断して、S940へ進むようにしても良い。
[第3実施形態]
次に、第3実施形態について説明する。尚、第3実施形態において、第1実施形態と同じ構成要素については、それと同一の符号を用いるため詳細な説明は省略する。
図19に示す第3実施形態のECU10は、第1実施形態のECU1と比較すると、下記(2−1)〜(2−5)の点が異なっている。
(2−1):図19に示すように、監視IC5には、テスト回答確認部5aに加えて、そのテスト回答確認部5aと同じ構成及び機能のテスト回答確認部5bが設けられている。そして、その2つのテスト回答確認部5a,5bは並行して動作する。
また、テスト回答確認部5a,5bの各々が図10におけるS760の処理で出力するフェイルセーフ用信号は、オア回路5cを介して監視IC5の外部へ出力されるようになっている。つまり、2つのテスト回答確認部5a,5bのうちの少なくとも一方がフェイルセーフ用信号を出力すれば、その信号が監視IC5から出力されてエンジンの出力が低減されるようになっている。
尚、オア回路5cに代えてアンド回路を設けるようにしても良い。また、本第3実施形態では、2つのテスト回答確認部5a,5bが、請求項13に記載の複数の回路ブロックに相当している。
(2−2):MPU3は、図3のS145にて、図7の処理に代えて、図20に示すテスト回答確認結果の解析処理を実行する。
図20の処理では、まずS550にて、監視IC5から受信した第1のテスト回答確認結果が「OK」であるか否かを判定する。尚、第1のテスト回答確認結果とは、テスト回答確認部5aが送信したテスト回答確認結果である。
そして、第1のテスト回答確認結果が「OK」ならば、次のS555にて、監視IC5から受信した第2のテスト回答確認結果が「OK」であるか否かを判定する。尚、第2のテスト回答確認結果とは、テスト回答確認部5bが送信したテスト回答確認結果である。
そして、第2のテスト回答確認結果も「OK」ならば、S560に進んで、テスト最終結果を「OK」に設定し、その後、当該テスト回答確認結果の解析処理を終了する。
また、上記S550で第1のテスト回答確認結果が「NG」であると判定した場合、或いは、上記S555で第2のテスト回答確認結果が「NG」であると判定した場合には、S565に移行して、テスト最終結果を「NG」に設定し、その後、当該テスト回答確認結果の解析処理を終了する。
つまり、図20の処理では、2つのテスト回答確認部5a,5bによって送信されたテスト回答確認結果が全て「OK」ならば、正常と判定してテスト最終結果を「OK」に設定し、それらテスト回答確認結果の何れか1つでも「NG」ならば、異常と判定してテスト最終結果を「NG」に設定するようになっている。
このため、本第3実施形態のECU10によれば、第1実施形態のように、MPU3が監視IC5へNG判定確認用のテスト回答を送信し、そのテスト回答に対するテスト回答確認結果が「NG」であることを確認する、といった処理を行わなくても、監視IC5側の正誤判定機能の異常による影響をなくすことができる。監視IC5における2つのテスト回答確認部5a,5bのうちの何れかに異常が生じて、本当はMPU3から監視IC5へのテスト回答が誤りであるにも拘わらず、その異常なテスト回答確認部からMPU3へのテスト回答確認結果が「OK」になったとしても、他のテスト回答確認部からのテスト回答確認結果が「NG」ばらば、MPU3は正常と誤判定しない(即ち、テスト最終結果を「OK」にしない)からである。
また、このため、本第3実施形態では、テストID=5が存在せず、MPU3では、テストIDが1〜4の何れかに設定されて、監視IC5へはテストID=1〜4が送信されるようになっている。そして、そのための第1実施形態に対する相違点が、下記の(2−3)〜(2−5)である。
(2−3):MPU3は、図4のS220にて、図5の処理に代えて、図21に示す通常モード時用のテストID選択処理を実行し、また、図4のS230にて、図6の処理に代えて、図22に示すフェイルセーフモード時用のテストID選択処理を実行する。
そして、図21の処理では、図5の処理と比較すると、S360〜S370及びS380が削除されており、S340で第1カウンタCnt1の値が5以下ではないと判定した場合には、S375に移行して、第1カウンタCnt1の値を0に戻し、その後、S325へ移行して、テストIDを1に設定するようになっている。
このため、テストIDは、「1→2→1→2→3→4→1→2→1→2→3→4→1」という順で選択されていくこととなる。
また、図22の処理では、図6の処理と比較すると、S460〜S470及びS480が削除されており、S440で第2カウンタCnt2の値が5以下ではないと判定した場合には、S475に移行して、第2カウンタCnt2の値を0に戻し、その後、S425へ移行して、テストIDを3に設定するようになっている。
このため、テストIDは、「3→4→3→4→1→2→3→4→3→4→1→2→3」という順で選択されていくこととなる。
(2−4):MPU3は、テスト結果管理部3bの処理として、図8の処理の代わりに、図23の処理を実行する。
そして、図23の処理では、図8の処理と比較すると、S610及びS630〜640が削除されている。また、MPU3には、図9(B)に示した規則は記憶されておらず、図9(A)と同じ図24の規則だけが記憶されており、図23のS620又はS625でテスト回答を作成する際には、図24の規則を用いる。尚、このため、図23のS620又はS625でテスト回答を作成する手順及び作成されるテスト回答の内容は、第1実施形態と同じである。
(2−5):監視IC5におけるテスト回答確認部5a,5bの各々には、図12の規則に代えて、MPU3側と同じ図24の規則が記憶されている。尚、図24の規則は、図12の規則から、テストID=5に関する情報を削除したものである。そして、テスト回答確認部5a,5bの各々は、図11のS865では、その図24の規則を用いて正誤判定用期待値を選択する。
一方、第1実施形態との他の相違点として、MPU3は、図3のS125では、監視IC5における2つのテスト回答確認部5a,5bのうちの一方(例えばテスト回答確認部5a)からの履歴確認結果が「OK」であるか否かを判定する。同様に、MPU3は、図3のS155では、2つのテスト回答確認部5a,5bのうちの一方(例えばテスト回答確認部5a)から送られてきたテストIDを、前回と同じテストID(即ち、再テストのテストID)として設定する。また、本第3実施形態において、監視IC5の各テスト回答確認部5a,5bは、MPU3へエラーカウンタECic2の値は送信しなくても良い。
以上のような第3実施形態のECU3によれば、第1実施形態よりも、監視IC5の動作検証を行うためのMPU3側の処理を簡略化できるという利点がある。
尚、上記第3実施形態において、MPU3は、監視IC5の各テスト回答確認部5a,5bから送信されてきたテスト回答確認結果を比較して、全て同じでなければ監視IC5が異常であると判定するように構成することもできる。つまり、各テスト回答確認部5a,5bからの情報を比較して不一致ならば、それらの何れかが異常であると判断することができる。このため、例えば、MPU3は、監視IC5の各テスト回答確認部5a,5bから送信されてきたテストIDを比較して、全て同じでなければ異常であると判定するように構成することもできる。また、MPU3は、監視IC5の各テスト回答確認部5a,5bから送信されてきた履歴確認結果を比較して、全て同じでなければ異常であると判定するように構成することもできる。そして、このようにすれば、第2実施形態と同様に、監視IC5側の全テスト実施確認機能が正常か否かをMPU3側にて検証することができる。
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
例えば、上記実施形態では、制御モードが2つであったが、3つ以上の制御モードがあっても良い。
また、NG期待のテストを設けずに、OK期待のテストだけを実施するようにしても良く、その場合には、前述したテストID=1,2をまとめて1つのテストIDとし、前述したテストID=3,4をまとめて他の1つのテストIDとすれば良い。
また、MPU3は、実施したテストのテスト結果をそのままテスト回答として監視IC5へ送信し、監視IC5側では、そのテスト結果のままのテスト回答について正誤を判定するように構成することもできる。
第1実施形態のECUの構成を表す構成図である。 MPUの制御機能の一例を説明する説明図である。 第1実施形態のMPUにおける確認結果チェック及びテスト選択部の処理を表すフローチャートである。 図3中のテストID選択処理を表すフローチャートである。 図4中の通常モード時用のテストID選択処理を表すフローチャートである。 図4中のフェイルセーフモード時用のテストID選択処理を表すフローチャートである。 図3中のテスト回答確認結果の解析処理を表すフローチャートである。 第1実施形態のMPUにおけるテスト結果管理部の処理を表すフローチャートである。 MPUにおけるテスト回答の作成規則を説明する説明図である。 監視ICのテスト回答確認部が行う処理を表すフローチャートである。 図10中のテスト回答解析処理を表すフローチャートである。 監視ICにおける正誤判定用期待値の設定規則を説明する説明図である。 第1実施形態のECUの作用を表す第1のタイムチャートである。 第1実施形態のECUの作用を表す第2のタイムチャートである。 第1実施形態のECUの作用を表す第3のタイムチャートである。 第2実施形態のMPUにおける確認結果チェック及びテスト選択部の処理を表すフローチャートである。 図16中のテストID選択処理を表すフローチャートである。 図16中の履歴確認結果の解析処理を表すフローチャートである。 第3実施形態のECUの構成を表す構成図である。 第3実施形態のテスト回答確認結果の解析処理を表すフローチャートである。 第3実施形態の通常モード時用のテストID選択処理を表すフローチャートである。 第3実施形態のフェイルセーフモード時用のテストID選択処理を表すフローチャートである。 第3実施形態のMPUにおけるテスト結果管理部の処理を表すフローチャートである。 第3実施形態のMPUにおけるテスト回答の作成規則、及び監視ICにおける正誤判定用期待値の設定規則を説明する説明図である。
符号の説明
1…ECU(電子制御装置)、3…MPU(マイコン)、3a…確認結果チェック及びテスト選択部、3b…テスト結果管理部、5…監視IC、5a,5b…テスト回答確認部、5c…オア回路

Claims (13)

  1. 制御対象を制御するための処理を行うマイコンと、該マイコンの動作を監視するICとを備えた電子制御装置であって、
    前記マイコン側に、当該マイコンの機能を検証するためのテストを選択するテスト選択手段が設けられ、
    前記マイコンは、前記テスト選択手段により選択されたテストを実施すると共に、その実施結果を示すテスト回答を前記ICへ送信し、
    前記ICは、前記マイコンからのテスト回答の正誤を判定するように構成されていること、
    を特徴とする電子制御装置。
  2. 請求項1に記載の電子制御装置において、
    前記テスト選択手段は、前記制御対象の制御モードに応じて、現在の制御モード時に実行される処理のテストを、他の制御モード時に実行される処理のテストよりも、高い頻度で選択すること、
    を特徴とする電子制御装置。
  3. 請求項1又は請求項2に記載の電子制御装置において、
    前記ICは、前記テスト回答の正誤の判定結果である正誤判定結果を前記マイコンへ送信するように構成されていること、
    を特徴とする電子制御装置。
  4. 請求項3に記載の電子制御装置において、
    前記マイコン側のテスト選択手段は、前記ICからの正誤判定結果に応じて、該正誤判定結果が「正」ならば、次のテストとして前回とは異なるテストを選択し、前記正誤判定結果が「誤」ならば、次のテストとして前回と同じテストを選択すること、
    を特徴とする電子制御装置。
  5. 請求項4に記載の電子制御装置において、
    前記マイコンは、前記ICへ、前記テスト回答と共に、今回実施したテストの識別情報であるテストIDを送信するようになっており、
    前記ICは、前記マイコンからのテストIDに基づき、前記マイコンからのテスト回答の期待値を設定し、その期待値と前記テスト回答とを比較することにより、前記テスト回答の正誤を判定すること、
    を特徴とする電子制御装置。
  6. 請求項5に記載の電子制御装置において、
    前記ICは、前記正誤判定結果と共に、その正誤判定結果に対応するテストのテストIDを前記マイコンへ送信するように構成されており、
    前記マイコン側のテスト選択手段は、前記ICからの正誤判定結果が「誤」の場合には、その正誤判定結果と共に前記ICから送られてきたテストIDに対応するテストを、前回と同じテストとして選択すること、
    を特徴とする電子制御装置。
  7. 請求項5又は請求項6に記載の電子制御装置において、
    前記ICは、前記マイコンからの前回のテスト回答が「誤」であると判定したにも拘わらず、前記マイコンから前回と同じテストIDが送信されてこなかった場合に、前記マイコンが異常であると判定するように構成されていること、
    を特徴とする電子制御装置。
  8. 請求項1ないし請求項3の何れか1項に記載の電子制御装置において、
    前記マイコンは、前記ICへ、前記テスト回答と共に、今回実施したテストの識別情報であるテストIDを送信するようになっており、
    前記ICは、前記マイコンからのテストIDに基づき、前記マイコンからのテスト回答の期待値を設定し、その期待値と前記テスト回答とを比較することにより、前記テスト回答の正誤を判定すること、
    を特徴とする電子制御装置。
  9. 請求項5ないし請求項8の何れか1項に記載の電子制御装置において、
    前記ICは、前記マイコンから送信されてきたテストIDを記憶すると共に、一定時間が経過する毎に、その今回経過した一定時間の期間中に前記マイコンから全種類のテストIDが送信されてきたか否かを判定して、全種類のテストIDが送信されてきていなければ、前記マイコンが異常であると判定する全テスト実施確認機能を備えていること、
    を特徴とする電子制御装置。
  10. 請求項9に記載の電子制御装置において、
    前記ICは、前記全テスト実施確認機能の判定結果も前記マイコンへ送信するように構成されており、
    前記マイコンは、全種類のテストIDのうちの何れかが前記ICへ送信されるのを禁止し、その状態で前記一定時間より長い所定時間が経過しても、前記ICから前記全テスト実施確認機能の判定結果として、異常を示す判定結果が送信されてこなければ、前記全テスト実施確認機能が異常であると判定する全テスト実施確認機能テスト手段を備えていること、
    を特徴とする電子制御装置。
  11. 請求項3ないし請求項7の何れか1項に記載の電子制御装置において、
    前記マイコンは、所定のICテスト実行タイミングが到来すると、前記テスト回答として、前記ICにて「誤」と判定されるはずのテスト回答を送信し、そのテスト回答に対する前記ICからの正誤判定結果が「誤」であるか否かを判定するIC側判定機能テスト手段を備えていること、
    を特徴とする電子制御装置。
  12. 請求項4ないし請求項7の何れか1項に記載の電子制御装置において、
    前記ICは、前記マイコンからのテスト回答が「誤」であると判定する毎に異常判定カウンタをカウントアップさせる機能を備えると共に、前記異常判定カウンタの値を、前記正誤判定結果と共に前記マイコンへ送信するように構成されており、
    前記マイコンは、所定のICテスト実行タイミングが到来すると、前記テスト回答として、前記ICにて「誤」と判定されるはずのテスト回答を送信し、そのテスト回答に対して前記ICから前記正誤判定結果と共に送られてきた前記異常判定カウンタの値が正常に加算されているか否かを判定するIC側カウント機能テスト手段を備えていること、
    を特徴とする電子制御装置。
  13. 請求項3に記載の電子制御装置において、
    前記ICには、前記マイコンからのテスト回答の正誤を判定して、その判定結果である正誤判定結果を前記マイコンへ送信する回路ブロックが複数備えられており、
    前記マイコンは、前記複数の回路ブロックから送信されてきた正誤判定結果が全て「正」ならば正常と判定すること、
    を特徴とする電子制御装置。
JP2007065625A 2007-03-14 2007-03-14 電子制御装置 Active JP4432988B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007065625A JP4432988B2 (ja) 2007-03-14 2007-03-14 電子制御装置
EP08004501A EP1970785B1 (en) 2007-03-14 2008-03-11 Electronic control unit
US12/073,938 US7941702B2 (en) 2007-03-14 2008-03-12 Electronic control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007065625A JP4432988B2 (ja) 2007-03-14 2007-03-14 電子制御装置

Publications (2)

Publication Number Publication Date
JP2008226043A true JP2008226043A (ja) 2008-09-25
JP4432988B2 JP4432988B2 (ja) 2010-03-17

Family

ID=39535827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007065625A Active JP4432988B2 (ja) 2007-03-14 2007-03-14 電子制御装置

Country Status (3)

Country Link
US (1) US7941702B2 (ja)
EP (1) EP1970785B1 (ja)
JP (1) JP4432988B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014044492A (ja) * 2012-08-24 2014-03-13 Denso Corp 電子制御装置
JP2015093559A (ja) * 2013-11-12 2015-05-18 日立オートモティブシステムズ株式会社 車載装置
DE102015221980A1 (de) 2014-11-21 2016-05-25 Denso Corporation Elektronische Steuervorrichtung
JP2020030714A (ja) * 2018-08-24 2020-02-27 ルネサスエレクトロニクス株式会社 自己診断装置、半導体装置及び自己診断方法
JP2021105371A (ja) * 2019-12-26 2021-07-26 株式会社デンソー 電子制御装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2241952A1 (de) * 2009-04-17 2010-10-20 Siemens Aktiengesellschaft Verfahren zur Überprüfung einer Datenverarbeitungseinrichtung auf die Eignung zur Durchführung fehlersicherer Automatisierungsabläufe
US10754753B1 (en) * 2017-06-28 2020-08-25 Amazon Technologies, Inc. Performance of virtual machine instances using machine recognition of screenshot images
US11003153B2 (en) * 2017-11-17 2021-05-11 Intel Corporation Safety operation configuration for computer assisted vehicle
JP6984512B2 (ja) 2018-03-22 2021-12-22 株式会社デンソー 電子制御装置
JP2019191942A (ja) * 2018-04-25 2019-10-31 株式会社デンソーテン 制御装置および機能検査方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151017A (ja) 1991-11-29 1993-06-18 Oki Electric Ind Co Ltd マイクロコンピユータ
EP0704343A3 (de) * 1994-10-01 1997-01-15 Bayerische Motoren Werke Ag Elektronisches Steuergerät in Kraftfahrzeugen
DE4438714A1 (de) 1994-10-29 1996-05-02 Bosch Gmbh Robert Verfahren und Vorrichtung zur Steuerung der Antriebseinheit eines Fahrzeugs
DE19609242A1 (de) 1996-03-09 1997-09-11 Bosch Gmbh Robert Verfahren und Vorrichtung zur Steuerung einer Antriebseinheit eines Fahrzeugs
US6243629B1 (en) * 1996-04-19 2001-06-05 Honda Giken Kogyo Kabushiki Kaisha Electronic control unit for automotive vehicles
JP3616319B2 (ja) * 2000-09-05 2005-02-02 株式会社日立製作所 Cpuの診断装置
US7007209B2 (en) * 2002-02-25 2006-02-28 Richard Charles Jaworski System of testing the upstream cable modem channel
JP4428927B2 (ja) * 2003-02-06 2010-03-10 株式会社デンソー 電子制御装置
JP2004259137A (ja) * 2003-02-27 2004-09-16 Denso Corp 電子制御装置
JP4473609B2 (ja) * 2003-06-10 2010-06-02 株式会社デンソー 電子システム
JP4282390B2 (ja) * 2003-07-04 2009-06-17 富士通テン株式会社 マイコンのロジック開発装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014044492A (ja) * 2012-08-24 2014-03-13 Denso Corp 電子制御装置
JP2015093559A (ja) * 2013-11-12 2015-05-18 日立オートモティブシステムズ株式会社 車載装置
DE102015221980A1 (de) 2014-11-21 2016-05-25 Denso Corporation Elektronische Steuervorrichtung
JP2016099798A (ja) * 2014-11-21 2016-05-30 株式会社デンソー 電子制御装置
JP2020030714A (ja) * 2018-08-24 2020-02-27 ルネサスエレクトロニクス株式会社 自己診断装置、半導体装置及び自己診断方法
JP7083728B2 (ja) 2018-08-24 2022-06-13 ルネサスエレクトロニクス株式会社 自己診断装置、半導体装置及び自己診断方法
JP2021105371A (ja) * 2019-12-26 2021-07-26 株式会社デンソー 電子制御装置
JP7251469B2 (ja) 2019-12-26 2023-04-04 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
EP1970785B1 (en) 2011-12-21
EP1970785A2 (en) 2008-09-17
JP4432988B2 (ja) 2010-03-17
US20080229151A1 (en) 2008-09-18
US7941702B2 (en) 2011-05-10
EP1970785A3 (en) 2009-05-13

Similar Documents

Publication Publication Date Title
JP4432988B2 (ja) 電子制御装置
CN106482772B (zh) 识别至少一个第一交通运输工具的至少一个第一传感器的至少一个传感器故障的方法和设备
JP5918723B2 (ja) 車両診断システム
US10178094B2 (en) Communication system and information collection method executed in communication system
JP6418217B2 (ja) 通信システムで実行される情報集約方法
US7730782B2 (en) Sensor device
JP6874125B2 (ja) 電子制御装置
CN103810063B (zh) 电脑测试系统及方法
US9641383B2 (en) Method for error diagnosis of can communication
JP6207987B2 (ja) 車載用電子制御装置
CN109597389B (zh) 一种嵌入式控制系统的测试系统
JP5960632B2 (ja) 車両用電子制御装置
JP2016057888A (ja) 電子制御装置及び通信システム
CN108737160B (zh) 通信电路、通信系统及通信电路的自我诊断方法
US11080161B2 (en) Control device, and processing method in event of failure in control device
JP6102667B2 (ja) 電子制御装置
US20190340112A1 (en) Test device, test method, and computer readable medium
JP6341069B2 (ja) 電子制御装置
JP2006222800A (ja) 多重通信装置
US11422544B2 (en) Failure diagnosis system
JP2006113668A (ja) 故障診断装置
JP2009147555A (ja) 車載用電子制御ユニットの故障予測システム
JP7211036B2 (ja) 車両電子制御装置及び診断システム
US20190332506A1 (en) Controller and function testing method
CN113711209A (zh) 电子控制装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091201

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091214

R151 Written notification of patent or utility model registration

Ref document number: 4432988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250