JP4363471B2 - 故障コード記憶管理装置、及び記憶管理装置 - Google Patents

故障コード記憶管理装置、及び記憶管理装置 Download PDF

Info

Publication number
JP4363471B2
JP4363471B2 JP2007203108A JP2007203108A JP4363471B2 JP 4363471 B2 JP4363471 B2 JP 4363471B2 JP 2007203108 A JP2007203108 A JP 2007203108A JP 2007203108 A JP2007203108 A JP 2007203108A JP 4363471 B2 JP4363471 B2 JP 4363471B2
Authority
JP
Japan
Prior art keywords
failure
code
stored
failure code
sram
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.)
Active
Application number
JP2007203108A
Other languages
English (en)
Other versions
JP2009037533A (ja
Inventor
良夫 中垣
武史 菅沼
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 JP2007203108A priority Critical patent/JP4363471B2/ja
Priority to EP08013847.2A priority patent/EP2042992B1/en
Priority to US12/185,282 priority patent/US8166353B2/en
Publication of JP2009037533A publication Critical patent/JP2009037533A/ja
Application granted granted Critical
Publication of JP4363471B2 publication Critical patent/JP4363471B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components

Description

本発明は、不揮発性メモリに故障コードを記憶させるとともに、少なくともその記憶させた故障コードの誤りを検出する故障コード記憶管理装置、及び記憶管理装置に関する。
従来、例えば車両の各部を制御する電子制御装置(以下、ECUと記載する)では、所定の検出対象について故障検出を行うと共に、故障を検出した場合には、その故障を表す故障コードを、書込み可能な半導体メモリ(例えば、SRAM、EEPROM等)に記憶させるようになっている。この半導体メモリは、一般的にはECUに備えられている。SRAMは、車両のバッテリから常時電圧が供給されるように構成された揮発性のメモリである。また、EEPROMは、不揮発性のメモリである。
ECUは、例えばそのECUと通信可能に接続された外部の診断装置から故障コードの送信要求(以下、故障コード要求と記載する)を受けると、SRAMから故障コードを読み出して、その読み出した故障コードを診断装置に送信する。
ここで、車両のバッテリが取り外されてSRAMに電圧が供給されなくなったりSRAMに異常が生じてそのSRAMが初期化されたりして、SRAMに記憶された故障コードが消失した場合には、EEPROMに記憶させておいた故障コードをSRAMに書込むことによって、SRAMのデータを回復させる。尚、ECUが診断装置から故障コード要求を受けた場合に、そのECUがEEPROMから故障コードを読み出してその診断装置に送信する構成も考えられる。
ところで、不揮発性メモリに記憶された故障コードの内容が、何らかの原因で書き換わってしまったり、或いは破壊されてしまったりすることも想定される。
この点、例えば特許文献1、2には、不揮発性メモリのデータが誤ったデータに書き換わったことを検知するとともに、誤ったデータを正規のデータに復旧させる方法が開示されている。
特許文献1について具体的に説明すると、特許文献1の方法では、不揮発性メモリにおける3つの異なる領域のそれぞれに同じデータを記憶させるとともに、その3つのデータのうち、2つ以上が一致すれば、その一致したデータは正しいデータであると判断する。3つのデータが全て一致すれば、勿論、その3つのデータは正しいと判断する。また、例えば3つのデータのうち2つが一致すればその一致した2つのデータは正しいデータであると判断し、残りのデータは誤っていると判断する。さらに、特許文献1では、誤っていると判断したデータが格納されている領域に、正しいと判断したデータを再度書き込んで、誤ったデータを正規のデータに復旧させるようになっている。
特許文献2にも、特許文献1に類似した思想が開示されている。
特開2005−196515号公報 特開2006−286111号公報
しかし、上記特許文献1、2の方法では、不揮発性メモリにおける3つの異なる領域のそれぞれに記憶された故障コードが相互に異なるものになってしまった場合、何れの故障コードが正しいかを判断できなくなってしまう。
すると、例えばSRAMの故障コードが消失した場合において、そのSRAMの故障コードを正しく回復できなくなってしまうおそれがある。このため、外部の診断装置からの故障コード要求に対し、正しい故障コードを送信できなくなってしまうおそれがある。故障コード要求に対し、不揮発性メモリから直接故障コードを読み込もうとしても、不揮発性メモリに記憶された故障コードのうち何れが正しい故障コードか分からないため、同じである。
また、不揮発性メモリの3つの故障コードのうち少なくとも2つが誤った故障コードに書き換わるとともに、書き換わった後の故障コードがたまたま一致したという場合には、その誤った故障コードが正しい故障コードであると誤認識されてしまう。この場合、ECUは、診断装置からの故障コード要求に対し、誤った故障コードをその診断装置に送信してしまうこととなる。
本発明は、こうした問題に鑑みなされたもので、不揮発性メモリの互いに異なる領域に同じ故障コードを記憶させるとともに、少なくともその記憶された故障コードの誤りを検出する故障コード記憶管理装置において、誤りが生じた場合でも正しい故障コードをより確実に認識できるようにすることを目的とする。
上記目的を達成するためになされた請求項1に記載の故障コード記憶管理装置は、情報の読み書きが可能な不揮発性メモリの互いに異なる領域に、車両に備えられた所定の検出対象について検出された故障を表す故障コードであって同一の故障コードを記憶させる記憶制御手段と、不揮発性メモリに記憶された故障コードが、互いに一致するか否かを判断し、少なくとも何れかが一致しないと判断したならば、その不揮発性メモリに記憶された故障コードに誤りが生じていると判定する誤り検出手段とを備えたものであり、車両に搭載される。
そして特に、不揮発性メモリに記憶されるべき故障コードを含む情報テーブル(以下、故障コードテーブルと言う)を記憶するメモリと、少なくとも誤り検出手段により誤りが生じていることが検出されたならば、不揮発性メモリに記憶された故障コードのそれぞれについて、故障コードテーブルに含まれるか否かを判定し、不揮発性メモリに記憶された故障コードのうち、故障コードテーブルに含まれると判定できた故障コードを、正規の故障コードと認識する正規データ認識手段とを備えている。
故障コードテーブルは、不揮発性メモリに記憶されるべき故障コードを含むものであるため、不揮発性メモリに記憶された故障コードが故障コードテーブルに含まれていない場合は、その不揮発性メモリの故障コードは誤っていると言える。逆に言えば、不揮発性メモリの故障コードが故障コードテーブルに含まれていれば、その不揮発性メモリの故障コードは正しい可能性が高い。
このような請求項1の故障コード記憶管理装置によれば、不揮発性メモリの互いに異なる領域に記憶された故障コードが書き換わって、例えば相互に異なるものになってしまった場合でも、不揮発性メモリに記憶された故障コードとメモリの故障コードテーブルとを照合することで、不揮発性メモリの故障コードのうち何れがその不揮発性メモリに記憶されているべきものか、つまり正しい故障コードであるかを認識できるようになる。言い換えれば、不揮発性メモリの互いに異なる領域に記憶された同一の故障コードが相互に異なるものになってしまった場合でも、正しい故障コードが残ってさえすれば、問題なく正しい故障コードが認識されるようになる。
ここで、請求項1の装置では、具体的に、請求項2のように構成することができる。
請求項2の装置は、請求項1の装置において、記憶制御手段は、不揮発性メモリの互いに異なる2つの領域に、同一の故障コードを記憶させるようになっている。
本請求項2のように、具体的に、不揮発性メモリの2箇所に同一の故障コードを記憶させておけば、それらを比較することで、誤りが生じたか否かを検出することができる。
次に、請求項1の装置では、具体的に、請求項3のように構成することができる。
請求項3の装置は、請求項1の装置において、記憶制御手段は、不揮発性メモリの互いに異なる3つの領域に、同一の故障コードを記憶させるようになっている。
本請求項3のように、具体的に、不揮発性メモリの3箇所に同一の故障コードを記憶させておけば、それらを比較することで、誤りが生じたか否かを検出することができる。また、3箇所の故障コードのうち、例えば2箇所で一致する故障コードについては、信頼性が高いと言え、逆に言えば、他の故障コードは誤っている可能性が高いと言える。このため、請求項2と比較すれば、何れの故障コードが正しいか(或いは誤っているか)の予測が容易である。
ここで、請求項3の装置では、請求項4の装置のように構成するとより好ましい。
請求項4の装置は、請求項3の装置において、正規データ認識手段は、不揮発性メモリに記憶された故障コードのうち過半数の領域で一致した故障コード(以下、過半数一致コードと言う)について、故障コードテーブルに含まれるか否かを判定し、含まれると判定できた場合に、その過半数一致コードを正規の故障コードと認識するようになっている。
前述のように、不揮発性メモリの互いに異なる領域に記憶された故障コードのうち過半数の領域で一致した故障コード(過半数一致コード)については、正しい可能性が高い。2つ或いは3つの故障コードがともに、他のデータに書き換わり、その書き換わった後のデータがたまたま一致するというような確率は、非常に小さいと考えられるためである。さらに、過半数一致コードが故障コードテーブルに含まれていれば、その過半数一致コードが正しい可能性は尚更高い。そのような過半数一致コードを正規の故障コードとすれば、信頼性はより向上する。
次に、請求項5の装置は、請求項1〜4の装置において、故障コードテーブルを記憶するメモリは、ROMであることを特徴としている。
ROMは、書き換え不可な半導体メモリであるため、故障コードテーブルをROMに記憶させておけば、その故障コードテーブルが書き換えられる心配はない。このため、不揮発性メモリの故障コードとその故障コードテーブルとの照合結果の信頼性がより向上する。
ところで、請求項1〜5の装置では、不揮発性メモリの誤った故障コードが正しい故障コードに復旧されると尚良い。
そこで、請求項6の装置では、請求項1〜5の装置において、正規データ認識手段により正規の故障コードと認識された故障コードを、不揮発性メモリの領域のうち、その正規の故障コードとは異なる故障コードが記憶された領域に記憶させる再書込み手段を備えている。
このような請求項6の装置によれば、不揮発性メモリの故障コードのうち、正規の故障コードとは異なる故障コード、つまり、誤った故障コードがその正規の故障コードに復旧されるようになり、不揮発性メモリに誤った故障コードが記憶され続けることを防止することができる。またこのため、不揮発性メモリの故障コードの信頼性向上につながる。
次に、請求項7の装置は、請求項1〜6の装置において、常時電圧の供給を受け、電圧が供給されている間情報を保持するSRAMを備え、記憶制御手段は、故障コードをSRAMに記憶させた後、そのSRAMに記憶させた故障コードと同一の故障コードを不揮発性メモリに記憶させるようになっている。
そして、正規データ認識手段は、少なくとも、不揮発性メモリに記憶された故障コードが何れも故障コードテーブルに含まれないと判定した場合に、SRAMに記憶された故障コードが故障コードテーブルに含まれるか否かを判定し、含まれると判定できた場合に、そのSRAMに記憶された故障コードを正規の故障コードと認識するようになっている。
不揮発性メモリには、SRAMに記憶された故障コードと同一の故障コードが記憶される。つまり、SRAMの故障コードは、不揮発性メモリの故障コードのもととなるものである。このため、不揮発性メモリの故障コードのうち、何れも故障コードテーブルに含まれていないという場合に、SRAMの故障コードと故障コードテーブルとを照合することは有効である。具体的に、SRAMの故障コードが故障コードテーブルに含まれていれば、そのSRAMの故障コードは正しい可能性が高く、そのSRAMの故障コードを正規の故障コードと認識しても、信頼性に問題はない。
ところで、請求項1〜7の装置では、請求項8のように構成するとより確実である。
請求項8の装置は、請求項1〜7の装置において、常時電圧の供給を受け、電圧が供給されている間情報を保持するSRAMを備え、記憶制御手段は、故障コードをSRAMに記憶させた後、そのSRAMに記憶させた故障コードと同一の故障コードを不揮発性メモリに記憶させるようになっている。
そして、正規データ認識手段は、少なくとも誤り検出手段により誤りが生じていることが検出されたならば、不揮発性メモリに記憶された故障コードのそれぞれについて、さらにSRAMに記憶された故障コードと一致するか否かを判定し、不揮発性メモリに記憶された故障コードのうち、SRAMに記憶された故障コードと一致する故障コードを、優先的に正規の故障コードと認識するようになっている。
ところで、不揮発性メモリの故障コードのうち複数種類が故障コードテーブルに含まれる、という場合も想定される。例えば、何れかの故障コードが、故障コードテーブルに含まれる他の故障コードにたまたま書き換わってしまった、というような場合が考えられる。
この場合、不揮発性メモリの故障コードと故障コードテーブルとを照合するのみでは、不揮発性メモリの故障コードの何れが正しいかは判断しかねるが、不揮発性メモリの故障コードと、その不揮発性メモリの故障コードの元になる同一の故障コードが記憶されているSRAMの故障コードとを比較することで、正しい故障コードを認識し得るようになる。具体的に、不揮発性メモリの故障コードがSRAMの故障コードと一致すれば、その不揮発性メモリの故障コードは正しい可能性は高い。逆に言えば、不揮発性メモリの故障コードが故障コードテーブルに含まれる故障コードであっても、SRAMの故障コードと一致しなければ、その不揮発性メモリの故障コードは誤っていると言える。
次に、請求項9の装置は、請求項1〜8の装置において、検出対象は車両であり、少なくとも、車両のイグニションスイッチのオンからオフまで、或いはオンから次のオンまでの期間(以下、トリップ期間と言う)において、誤り検出手段及び正規データ認識手段を起動するトリップ期間起動制御手段を備えている。
誤り検出手段及び正規データ認識手段が、少なくともトリップ期間において起動すれば、不揮発性メモリの故障コードの誤りが検出されないままの状態となってしまうことを防止でき、また、不揮発性メモリの故障コードの誤りが検出された場合に正しい故障コードが認識されないままの状態となってしまうことを防止することができる。このため、不揮発性メモリの故障コードの信頼性が向上する。また、故障コードを用いた故障診断に際し、その故障診断に支障をきたすことがない。
次に、請求項10の装置は、請求項1〜9の装置において、故障コードを取得して検出対象の状態を診断するための外部診断装置が接続されるようになっており、少なくとも外部診断装置から故障コードが要求された際に誤り検出手段及び正規データ認識手段を起動するコード要求時起動制御手段を備えている。
このように、少なくとも外部診断装置から故障コードが要求された際に、誤り検出手段及び正規データ認識手段が起動すれば、外部診断装置に、確実に正しい故障コードが送信されるようにすることができる。逆に言えば、外部診断装置に誤った故障コードが送信されてしまったり、故障コード記憶管理装置において正しい故障コードを認識できないことにより外部診断装置に故障コードが送信されなくなってしまったりすることを防止することができる。
次に、請求項11の発明は、故障コードテーブルを記憶するメモリと、車両に設けられた所定の検査対象について故障が検出された後、当該故障に対応する故障コードテーブルに含まれる故障コードであって同一の故障コードを、情報の読み書きが可能な不揮発性メモリの互いに異なる複数の領域にそれぞれ記憶させる記憶制御手段と、を備えてなる車両に搭載された故障コード記憶管理装置であって、互いに異なる複数の領域から記憶させた故障コードを読み出し、当該読み出した故障コードが、互いに一致するか否かを判断し、少なくとも何れかが一致しないと当該故障コード記憶管理装置にて判断されると、不揮発性メモリの互いに異なる領域にそれぞれ記憶された故障コードと、前記故障コードテーブルとを対比し、一致した故障コードがある場合にその故障コードを、正規の故障コードと認識するようにしたものである。従って、請求項1で述べた効果と同じ効果を得ることができる。
次に、請求項12の発明は、情報の読み書きが可能な不揮発性メモリの互いに異なる領域に、同一のデータを記憶させる記憶制御手段と、不揮発性メモリに記憶されたデータが、互いに一致するか否かを判断し、少なくとも何れかが一致しないと判断したならば、その不揮発性メモリに記憶されたデータに誤りが生じていると判定する誤り検出手段とを備え、車両に搭載される記憶管理装置において、不揮発性メモリに記憶されるべきデータを含む情報テーブル(以下、データテーブルと言う)を記憶するメモリと、少なくとも誤り検出手段により誤りが生じていることが検出されたならば、不揮発性メモリに記憶されたデータのそれぞれについて、データテーブルに含まれるか否かを判定し、不揮発性メモリに記憶されたデータのうち、データテーブルに含まれると判定できたデータを、正規のデータと認識する正規データ認識手段とを備えている記憶管理装置である。
これによれば、請求項1で述べた効果と同じ効果を得ることができる。
以下に、本発明の実施形態を図面に基づき説明する。
図1は、本発明が適用された電子制御装置(以下、ECUと記載する)1の構成図である。このECU1は、車両の各部を制御するためのものである。
ECU1は、マイコン2と、不揮発性メモリとしてのEEPROM14とを備えている。
マイコン2は、所定のプログラムに従って各種処理を実行するCPU4と、CPU4が実行するプログラム等が記憶されるROM8と、CPU4の演算結果等の情報を記憶するためのRAM10と、車両の図示しないバッテリから常時電圧が供給されて、電圧が供給される間データを保持可能なバックアップRAM(以下、SRAMと記載する)12と、外部の電子装置と接続するためのインタフェース(I/O)6と、それらを相互に接続するバス16とを備えている。
CPU4は、ROM8に記憶された故障診断のためのプログラムに従い動作して、車両の故障の有無を検出するようになっている。そして、故障を検出した場合には、故障を表す故障コード(DTC:Diagnostic Trouble Codes)を、SRAM12及びEEPROM14に記憶させる。具体的には、DTCをSRAM12に記憶させると共に、SRAM12に記憶させたDTCと同じデータを、永久故障コード(PDTC:Permanent Diagnostic Trouble Codes)として、EEPROM14に記憶させる。尚、EEPROM14にPDTCを記憶させておくことは、法規により義務づけられている。
以下、故障コードのことをDTCとも言い、特に、EEPROM14に記憶された故障コードのことをPDTCとも言うものとする。
状態診断装置3は、ECU1から故障コードを取得してそのECU1が搭載された車両の状態診断を行う装置であり、I/O6を介して、ECU1のマイコン2と接続される。具体的には、例えば修理工場やディーラーにおいて、修理担当者等が、状態診断装置3をECU1に通信可能に接続する。
マイコン2は、状態診断装置3から故障コードの送信要求を受けると、SRAM12に記憶されたDTCを読み出して、その読み出したDTCを状態診断装置3に送信する。仮に、車両のバッテリが取り外されてSRAM12に電圧が供給されなくなったりSRAM12に異常が生じてそのSRAM12が初期化されたりして、SRAM12に記憶されたDTCが消失した場合には、EEPROM14に記憶させておいたPDTCをSRAM12に書込むことによって、SRAM12のデータを回復させる。
次に、図2は、CPU4が実行するDTC記憶処理を表すフローチャートである。このDTC記憶処理は、例えば、トリップ期間(車両のイグニションスイッチがオンされてからオフされるまでの期間、或いは車両のイグニションスイッチがオンされてから次にオンされるまでの期間であり、ここでは何れの期間もトリップ期間というものとする)において、異常の検出対象のそれぞれについて少なくとも1回実行される。実行タイミングは任意に設定が可能である。
このDTC記憶処理では、まず、S110において、所定の検出対象について異常があるか否かの異常判定を行う。次に、S120に移行し、S110の異常判定に基づき異常が有るか否かを判定し、異常無しと判定した場合には(S120:NO)、そのまま当該処理を終了する。
一方、S120で異常有りと判定すると(S120:YES)、S130に移行し、ROM8に記憶された後述のDTCテーブルから、検出できた異常に対応するDTC(対象DTC)を検索する。DTCテーブルは、SRAM12及びEEPROM14に記憶すべき全ての故障コードを記憶するテーブルである。ここで、図2(a)に、DTCテーブルの例を示す。図2(a)の例では、DTCとして、0x11、0x12、0x20、0x25の4種類を記憶したDTCテーブルを示している。尚、DTCのうち、後半2桁は、16進数表示でコード(数値)を表す部分であり、DTCの実質的部分である。前半2桁は、後半2桁が16進数表示であることを表す符号である。
S130の後、S140に進み、ROM8のDTCテーブル(例えば図2(a)参照)に、今回検出された異常を表すDTC(対象DTC)が記憶されているか否かを判定する。
S140で、ROM8のDTCテーブルに対象DTCが記憶されていないと判定すると(S140:NO)、今回の異常についてはDTCを記憶しておかなくても良い、或いは今回の異常についてはDTCが割り当てられていないと判断して、そのまま当該処理を終了する。
一方、S140で、ROM8のDTCテーブルに対象DTCが記憶されていると判定すると(S140:YES)、S150に移行する。
S150では、そのDTCテーブルに記憶されているDTCであって、今回検出された異常を表すDTCを、SRAM12に記憶させる。そしてその後、当該処理を終了する。
ここで、一連の流れの一例を挙げると、所定のセンサの異常を検出すると共に(S120:YES)、そのセンサの異常を表すDTCとして0x11がDTCテーブルに記憶されていれば(S140:YES)、その0x11をSRAM12に記憶させる(S150)。
尚、S150では、SRAM12に、DTCをミラー方式で記憶させる。具体的に、元データと、元データの逆とも言えるミラーデータとを記憶させる。例えば0x11を例にとると、その0x11とともに、その0x11のミラーデータとして、0x11の16進数部分の「11」に加算した場合に「FF」となるような数値を持つデータを記憶させる。「11」に加算して「FF」となる値は、「EE」である。この場合、SRAM12には、0x11と0xEEとが記憶される。0x11のミラーデータである0xEEは、いわば0x11と同じ内容を表す。例えば0xEEのミラーデータをとれば0x11となる。このようにミラーデータを記憶させるのは、例えば、SRAM12が何らかの原因で書き換わった場合でも、ミラーチェック(元データとミラーデータを加算して「FF」になるか)による信頼性確認を実施(チェックで「FF」でない時は、SRAM12の異常と判断して初期化)できるようにする趣旨である。
次に、図3は、CPU4が実行するPDTC記憶処理の流れを表すフローチャートである。具体的に、SRAM12に記憶されたDTCを、PDTCとしてEEPROM14に記憶させる処理である。また、この処理は、例えば、トリップ期間において少なくとも1回実行される。尚、トリップ期間において定期的に複数回実行されても良い。
このPDTC記憶処理では、まず、S210で、SRAM12にDTCが記憶されているか否かを判定し、記憶されていないと判定すると(S210:NO)、そのまま当該処理を終了する。尚、SRAM12にDTCが記憶されているとすれば、前述のように、ミラー方式でDTCが記憶されている(図3(a)参照)。
一方、S210でSRAM12にDTCが記憶されていると判定すると(S210:YES)、S220に移行し、そのSRAM12に記憶されているDTCを、PDTCとしてEEPROM14に記憶させる。ここでは、EEPROM14が有する格納領域のうち、所定の3箇所に同じPDTCを記憶させる(図3(b))。或いは、EEPROM14が有する格納領域のうち、所定の2箇所に同じPDTCを記憶させる(図3(c))。以下の説明では、前者を3面冗長方式と記載し、後者を2面冗長方式と記載する。
図3(b)に示すように、3面冗長方式では、PDTC(例えば0x11)が3箇所に記憶され、図3(c)に示すように、2面冗長方式では、PDTC(例えば0x11)が2箇所に記憶される。また、3面冗長方式及び2面冗長方式の何れにしても、CPU4は、1面単位でPDTCの書き込み及び読み戻しを行うとともに、読み戻したデータが書込み時のデータに一致すれば、PDTCが正常に書き込まれたと判断する。そして、これを全ての面について行い、その全ての面についてPDTCが正常に書き込まれたと判断して初めて、S220の処理を終了する。
そして、S220の処理の後、当該処理を終了する。
次に、EEPROM14に記憶されたPDTCの信頼性のチェックを行う処理について、図4〜図12を用いて説明する。ここでは、EEPROM14におけるPDTCの記憶方式が2面冗長方式の場合、及び3面冗長方式の場合の両方について説明する。
まず、図4〜図8を用いて、2面冗長方式の場合について説明する。尚、ここでは、EEPROM14には2箇所に0x11が記憶されており、DTCテーブルは、図2(a)と同じ構成であることを前提とする。
また、図4〜図8の処理は、トリップ期間において少なくとも1回実行される。或いは、状態診断装置3から故障コードの送信要求を受けたタイミングで開始される。
図4の処理では、まず、S310で、EEPROM14において2箇所に記憶されたPDTCの比較を行う。
次に、S320に進み、S310の比較結果に基づきその2箇所のPDTCが一致するか否かを判定し、一致すると判定すると(S320:YES)、異常がない(PDTCは信頼できる)と判断してそのまま当該処理を終了する。
一方、S320で、2箇所に記憶されたPDTCが一致しないと判定すると(S320:NO)、S330に移行し、その2箇所に記憶された2種類のPDTCについてそれぞれ、ROM8のDTCテーブルと照合する。具体的には、2種類のPDTCについてそれぞれ、DTCテーブル内の複数種類のDTCのいずれかと一致するものが存在するか否かを照合する。
そして、S340に進み、S330の照合結果に基づきその2箇所のPDTCがDTCテーブルに含まれるか否かを判定し、両PDTCともDTCテーブル内にあると判定すると、図5の処理に移行する。また、2つのPDTCのうち、何れか一方のみがDTCテーブル内にあると判定すると、図6の処理に移行する。また、両PDTCともDTCテーブル内に無いと判定すると、図7の処理に移行する。
尚、両PDTCが一致せずその両PDTCともがDTCテーブル内にある例を図4(a)に示し、2つのPDTCのうち何れか一方のみがDTCテーブル内にある例を図4(b)に示し、両PDTCともDTCテーブル内にない例を図4(c)に示す。
両PDTCが一致せずその両PDTCともがDTCテーブル内にある例としては、図4(a)に示すように、上段の如く何れか一方(2面データ)がたまたまDTCテーブルに含まれるDTCに化けた場合、或いは、下段の如く両PDTCともがたまたまDTCテーブルに含まれるDTCに化けた場合が考えられる。
2つのPDTCのうち何れか一方のみがDTCテーブル内にある例としては、図4(b)に示すように、上段の如くその2つのPDTCのうち何れか一方(2面データ)がDTCテーブルに含まれないデータに化けた場合がある。或いは、下段の如くその2つのPDTCの両方ともが化けてしまったものの、何れか一方(2面データ)がたまたまDTCテーブルに含まれるDTCに化けた場合も想定される。
両PDTCともDTCテーブル内に無い場合としては、図4(c)に示すように、その両PDTCともがDTCテーブルに含まれないデータに化けた場合が考えられる。
次に、図5の処理について説明する。
図5の処理は、前述のように、図4のS340でEEPROM14の2箇所のPDTCともがDTCテーブル内にあると判定された場合に実行される処理であり、まず、S410で、SRAM12に異常が生じているか否かを判定する。ここでは、例えばSRAM12に車両のバッテリから電圧が供給されているか否かを判断して、電圧が供給されていない場合にはSRAM12の異常と判定する。また、SRAM12には、特有のキーワードが記憶されるようになっており、そのキーワードが正しいか否かに基づき、SRAM12に異常があるか否かを判定する。具体的に、SRAM12にキーワードが記憶されていなかったり、キーワードが化けていたり破壊されていたりした場合には、SRAM12に異常があると判定する。さらには、DTCが記憶される領域を参照し、DTCの種類のそれぞれについて、元データとミラーデータとを比較して異常がないか否かを判定すると共に、例えば大部分のDTCについて元データとミラーデータとの比較結果に異常があると判定したならば、SRAM12に何らかの異常が生じていると判定するようにすることもできる。
S410でSRAM12に異常が生じていると判定すると(S410:NO)、S460に移行し、SRAM12に記憶されたDTC及びEEPROM14に記憶されたPDTCを共にクリア(初期化)する。SRAM12のDTC及びEEPROM14のPDTCの何れを信用して良いか不明であるためである。また、EEPROM14が異常である旨を、SRAM12或いはEEPROM14に記憶させる。尚、SRAM12及びEEPROM14には異常が生じている可能性があるため、別の図示しないメモリに、EEPROM14が異常である旨を記憶させるようにしても良い。
一方、S410でSRAM12に異常が生じていないと判定すると(S410:YES)、S420に移行し、SRAM12のDTCとEEPROM14のPDTCとを比較する。
そして、S430に進み、S420で比較した結果SRAM12のDTCとEEPROM14のPDTCとで一致するデータがあるか否かを判定する。S430で一致するデータがないと判定すると(S430:NO)、S460に移行する。SRAM12のDTC及びEEPROM14のPDTCの何れを信用して良いか不明であるためである。
一方、S430で一致するデータがあると判定すると(S430:YES)、S440に移行し、EEPROM14のPDTCのうち、SRAM12のDTCと一致したものを正しいPDTCとして採用する。図2及び図3で前述したように、CPU4は、SRAM12にDTCを記憶させるともに、そのSRAM12に記憶させたDTCをPDTCとしてEEPROM14に記憶させることから、SRAM12には、EEPROM14のPDTCの元となるDTCが記憶されていることとなる。このため、EEPROM14のPDTCのうち、SRAM12のDTCと一致したものについては、正しい(信頼性が高い)データであると言える。
次に、S450に進み、EEPROM14の領域のうち、誤ったPDTCが記憶されている(データ化けしたPDTCが記憶されている)領域(以下、誤情報格納領域と記載する)に対して、S440で採用した正しいPDTCを書き込む再書込み処理を実行する。この再書込み処理については、図8に記載している。そして、S450の再書込み処理の後、当該図5の処理を終了する。
ここで、再書込み処理について、図8を用いて説明する。
この再書込み処理では、まず、S710で、EEPROM14が有する記憶領域が全て故障していないかどうかを判定する。尚、記憶領域のそれぞれについて、その記憶領域が故障している場合には、故障している旨の情報が後述するS780で所定のメモリに記憶される。S710で記憶領域が全て故障していると判定すると(S710:YES)、再書込みができないと判断してそのまま当該処理を終了する。
一方、S710で、記憶領域が全て故障しているわけではない、言い換えると、少なくとも何れかの記憶領域が故障していないと判定すると(S710:NO)、S720に移行し、記憶領域(或いは誤情報格納領域)への正しいPDTCの書込みが失敗した場合にその失敗した回数をカウントする書込失敗カウンタ(図示省略)をリセットし、その値を0にする。
次に、S730に進み、誤情報格納領域に、正しいデータ(PDTC)を書き込む。
次に、S740に進み、S730で誤情報格納領域に書き込んだPDTCを読み出す。
そして、S750に進み、S740で誤情報格納領域から読み出したPDTCが、S730でその誤情報格納領域に書き込んだPDTCと一致するか否かを判定し、一致すると判定すると(S750:YES)、誤情報格納領域に正しいPDTCが正常に書き込まれたと判断して、そのまま当該処理を終了する。
一方、S750で一致しないと判定すると(S750:NO)、S760に移行し、書込失敗カウンタを1だけインクリメントする。
そして次に、S770に進み、書込失敗カウンタの値が2より大きいか否かを判定し、2より大きくないと判定すると(S770:NO)、再びS730に戻り、再書込みを試みる。
一方、S770で書込失敗カウンタの値が2より大きいと判定すると(S770:YES)、正常に再書込みができないと判断してS780に移行し、今回再書込みの対象とした領域について故障が生じている旨を、所定のメモリに記憶する。
次に、S790に移行し、EEPROM14において、他に書込み可能な記憶領域があるか否かを判定し、無いと判定した場合には(S790:NO)、書込みをあきらめてそのまま当該処理を終了する。
一方、S790で他に書込み可能な領域があると判定すると(S790:YES)、S800に移行し、正しいPDTCを記憶させる対象の記憶領域を、その書込み可能な領域に変更する。そして、再びS710に戻る。
次に、図6の処理について説明する。
図6の処理は、前述のように、図4のS340で2種類のPDTCのうち何れか一方のみがDTCテーブル内の複数種類のDTCのいずれかと一致すると判定された場合に実行される処理であり、まずS510で、2種類のPDTCのうちDTCテーブル内に含まれるPDTCを正しいPDTCとして採用する。次に、S520に移行し、前述した図8の再書込み処理を実行する。そしてその後、当該図6の処理を終了する。
尚、非常に稀とは考えられるものの、2つのPDTCのうち何れか一方のみがDTCテーブル内にある場合において、前述のように、その2つのPDTCが誤ったPDTCに化け、たまたま何れか一方がDTCテーブルに含まれるDTCに一致したような場合も想定される。そこで、図6のS510の処理に代えて、2つのPDTCをSRAM12のDTCと照合し、そのDTCと一致したPDTCを正しいPDTCとして採用する、という処理を行っても良い。これによれば、信頼性がより向上する。
次に図7の処理について説明する。
図7の処理は、前述のように、図4のS340で2つのPDTCが共にDTCテーブルに含まれないと判定された場合に実行される処理であり、まず、S610で、SRAM12に異常が生じているか否かを判定する。このS610の処理は、前述のS410の処理と同じである。そして、S610でSRAM12に何らかの異常が生じていると判定すると(S610:NO)、S660に移行する。このS660の処理は、前述のS460の処理と同じである。
一方、S610でSRAM12に異常が生じていないと判定すると(S610:YES)、S620に移行し、SRAM12のDTCと、ROM8のDTCテーブルとを照合する。これは、EEPROM14の2つのPDTCが共にDTCテーブル内に無いためその何れも信用できず、このためEEPROM14に記憶させるPDTCの元となるDTCが記憶されているSRAM12におけるそのDTCが信用できるか否かを判定する趣旨である。
次に、S630に移行し、S620でSRAM12のDTCとROM8のDTCテーブルとを照合した結果、一致するデータがあるか否かを判定し、一致するデータがないと判定すると(S630:NO)、SRAM12のDTCも信用できないと判断してS660に移行する。
一方、S630で一致するデータがあると判定すると(S630:YES)、S640に移行し、SRAM12のDTCを正しいDTCとして採用する。
そして次に、S650に進み、前述の再書込み処理(図8参照)を実行し、その後、当該図7の処理を終了する。
次に、図9〜図12を用いて、3面冗長方式の場合について説明する。尚、ここでは、EEPROM14には3箇所に0x11が記憶されており、DTCテーブルは図2(a)と同じ構成を有しているものとする。
図9の処理では、まず、S810で、EEPROM14において3箇所に記憶されたPDTCの比較を行う。次に、S820に進み、S810の比較結果に基づきその3箇所のPDTCが全て一致するか否かを判定し、全て一致すると判定すると(S820:YES)、異常がないと判断してそのまま当該処理を終了する。
一方、S820で3箇所のPDTCが全て一致するわけではないと判定すると(S820:NO)、S830に移行し、その3箇所に記憶された3つ
のPDTCについてそれぞれ、ROM8に記憶されたDTCテーブルと照合する。具体的には、3つのPDTCについてそれぞれ、DTCテーブル内の複数種類のDTCのいずれかと一致するものが存在するか否かを照合する。
そして、S840で、S830の照合結果に基づきその3箇所のPDTCがDTCテーブルに含まれるか否かを判定し、3つのPDTCのうち、2種類以上がDTCテーブル内にあると判定すると、図10の処理に移行する。また、3つのPDTCのうち1種類のみがDTCテーブル内にあると判定すると、図11の処理に移行する。また、3つのPDTCのうち何れもDTCテーブル内に無いと判定すると、図12の処理に移行する。
尚、3つのPDTCのうち、2種類以上がDTCテーブル内にある例を図9(a)に示し、3つのPDTCのうち1種類のみがDTCテーブル内にある例を図9(b)に示し、3つのPDTCのうち何れもDTCテーブル内に無い例を図9(c)に示す。
3つのPDTCのうち、2種類以上がDTCテーブル内にある例としては、図9(a)に示すように、上段の如く3つのPDTCのうちの2つ(2、3面データ)が化けたものの、その2つのうちの1つ(2面データ)がたまたまDTCテーブルに含まれるDTCに化けた場合、或いは、下段の如く3つのPDTCのうちの1つ(3面データ)が、たまたまDTCテーブルに含まれるDTCに化けた場合がある。
3つのPDTCのうち1種類のみがDTCテーブル内にある例としては、図9(b)に示すように、上段の如く3つのPDTCのうちの2つ(2、3面データ)がDTCテーブルに含まれないデータに化けた場合がある。或いは、下段の如く3つのPDTCが全て化けたものの、その3つのうちの1つ(2面データ)がたまたまDTCテーブルに含まれるDTCに化けた場合も想定される。
3つのPDTCのうち何れもDTCテーブル内に無い例としては、図9(c)に示すように、3つのPDTCがともにDTCテーブルに含まれないデータに化けた場合がある。
次に、図10の処理について説明する。
図10の処理は、前述のように、図9のS840で、3つのPDTCのうち2種類以上がDTCテーブルに含まれると判定された場合に実行される処理であり、まず、S910で、EEPROM14に記憶されたPDTCのうち、2箇所で一致するものがあり、かつその2箇所で一致するPDTCがROM8のDTCテーブルに含まれているか否かを判定する。
S910で、2箇所で一致するPDTCがない、或いは2箇所で一致するPDTCがあってもそのPDTCがROM8のDTCテーブルに含まれていないと判定すると(S910:NO)、S920に移行する。
S920では、SRAM12に異常が生じているか否かを判定し、異常が生じていると判定すると(S920:NO)、S970に移行する。
S970では、SRAM12に記憶されたDTC及びEEPROM14に記憶されたPDTCを共にクリア(初期化)すると共に、EEPROM14が異常である旨を、SRAM12或いはEEPROM14に記憶させる。尚、EEPROM14が異常である旨を、図示しない他のメモリに記憶させても良い。
一方、S920でSRAM12に異常が生じていないと判定すると(S920:YES)、S930に移行し、SRAM12のDTCとEEPROM14のPDTCとを比較する。
次に、S940に進み、EEPROM14のPDTCのうち、何れか1つでもSRAM12のDTCと一致するか否かを判定し、一致しないと判定すると(S940:NO)、S970に移行する。SRAM12のDTC及びEEPROM14のPDTCの何れを信用して良いか不明であるためである。
一方、S940で、EEPROM14のPDTCのうち、何れか1つでもSRAM12のDTCと一致すると判定すると(S940:YES)、S950に移行する。またここで、S910で、EEPROM14に記憶されたPDTCのうち、2箇所で一致するものがあり、かつその2箇所で一致するPDTCがROM8のDTCテーブルに含まれていると判定した場合も(S910:YES)、S950に移行する。
まず、S910から移行した950では、EEPROM14の2箇所で一致し、ROM8のDTCテーブルにも含まれていたPDTCを、正しいPDTCとして採用する。また、S940から移行したS950では、EEPROM14のPDTCのうち、SRAM12のDTCと一致したものを、正しいPDTCとして採用する。
そして次に、S960に進み、前述した再書込み処理(図8参照)を実行する。そしてその後、当該図10の処理を終了する。
次に、図11の処理について説明する。
図11の処理は、前述のように、図9のS840で、3つのPDTCのうち1種類のみがDTCテーブル内の複数種類のDTCのいずれかと一致すると判定された場合に実行される処理であり、まず、S1010で、3つのPDTCのうちDTCテーブル内に含まれる1種類のPDTCを正しいPDTCとして採用する。
S1010の後は、S1020に進み、前述した再書込み処理(図8参照)を実行する。そしてその後、当該図11の処理を終了する。
尚、非常に稀とは考えられるものの、3つのPDTCのうち1種類のみがDTCテーブル内にある場合において、前述のように、3つのPDTCが全て化けたものの、その3つのうちの1つがたまたまDTCテーブルに含まれるDTCに一致したような場合も想定される。そこで、図11のS1010の処理に代えて、3つのPDTCをSRAM12のDTCと照合し、そのDTCと一致したPDTCを正しいPDTCとして採用する、という処理を行っても良い。これによれば、信頼性がより向上する。
次に、図12の処理について説明する。
図12の処理は、前述のように、図9のS840で3つのPDTCのうち何れもDTCテーブル内に無いと判定された場合に実行される処理であり、まず、S1110で、SRAM12に異常が生じているか否かを判定する。このS1110の処理は、前述のS410(或いはS610)の処理と同じである。そして、S1110でSRAM12に何らかの異常が生じていると判定すると(S1110:NO)、S1160に移行し、SRAM12に記憶されたDTC及びEEPROM14に記憶されたPDTCを共にクリア(初期化)すると共に、EEPROM14が異常である旨を、SRAM12或いはEEPROM14に記憶させる。尚、EEPROM14が異常である旨を、図示しない他のメモリに記憶させても良い。
一方、S1110でSRAM12に異常が生じていないと判定すると(S1110:YES)、S1120に移行し、SRAM12のDTCと、ROM8のDTCテーブルとを照合する。これは、3つのPDTCが共にDTCテーブル内に無いためその何れも信用できず、このためEEPROM14に記憶させるPDTCの元となるDTCが記憶されているSRAM12におけるそのDTCが信用できるか否かを判定する趣旨である。
次に、S1130に移行し、S1120でSRAM12のDTCとROM8のDTCテーブルとを照合した結果、一致するデータがあるか否かを判定し、一致するデータがないと判定すると(S1130:NO)、SRAM12のDTCも信用できないと判断してS1160に移行する。
一方、S1130で一致するデータがあると判定すると(S1130:YES)、S1140に移行し、SRAM12のDTCを正しいDTCとして採用する。
そして次に、S1150に進み、前述の再書込み処理(図8参照)を実行し、その後、当該図12の処理を終了する。
以上説明したように、本実施形態においては、車両の故障を表す故障コードを、EEPROM14の互いに異なる領域に記憶させると共に、そのEEPROM14に記憶された故障コードが全て一致することで、その故障コードは正しいと判断するため、EEPROM14のデータ(故障コード)の信頼性が向上する。
また、EEPROM14に記憶された故障コードが書き換わったりして、全て一致するわけではなくなったとしても、EEPROM14に記憶されるべき故障コードのテーブル(故障コードテーブル)と、EEPROM14の故障コードとを照合するため、EEPROM14において正しい故障コードが残ってさえいれば、問題なく、EEPROM14の故障コードのうち、何れが正しい故障コードであるかを認識することができる。これは、EEPROM14の故障コードのうち、故障コードテーブルに含まれないものは誤りであると判断できることからも明らかである。
さらに、EEPROM14に正しい故障コードが残っていなかったとしても、EEPROM14の故障コードの元となる同じ故障コードが記憶されているSRAM12の故障コードと故障データテーブルとを照合して、一致したものを正しい故障コードと認識するため、信頼性を維持することができる。
また、EEPROM14に、故障コードテーブルに含まれる故障コードが複数種類記憶されている場合は、EEPROM14の故障コードとSRAM12の故障コードとを照合することで、EEPROM14の故障コードのうち何れが正しいかを認識できる。前述のように、SRAM12には、EEPROM14の故障コードの元となる同じ故障コードが記憶されているため、EEPROM14の故障コードのうち、SRAM12の故障コードと一致するものについては、正しいと言える。
また、故障コードテーブルはROM8に記憶されているため、書き換わることがなく安心である。
尚、本実施形態において、S150及びS220の処理が記憶制御手段に相当し、S310、S320、S810及びS820の処理が誤り検出手段に相当し、S420〜S440、S510、S620〜S640、S930〜S950、S1010、及びS1120〜S1140が正規データ認識手段に相当し、特に、S420〜S440及びS930〜S950の処理が請求項8の正規データ認識手段に相当し、S510及びS1010の処理が請求項1の正規データ認識手段に相当し、S620〜S640及びS1120〜S1140の処理が請求項7の正規データ認識手段に相当し、図8の処理、特に、S730〜S750の処理が再書込み手段に相当し、CPU4が、トリップ期間起動制御手段及びコード要求時起動制御手段に相当している。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術範囲内において種々の形態をとることができる。
例えば、上記実施形態では、車両の故障を表す故障コードの記憶を例にとり説明したが、記憶対象となるデータは、故障コードのみならず、どのような情報であっても良い。
また、上記実施形態の図4のS320において、非常に稀であるとは思われるものの、2箇所のPDTCがたまたま同じ別のPDTCに化けてしまってその2箇所のPDTCが一致したと判定される場合も否定できないため、2箇所のPDTCが一致した場合でも、S330のように、2箇所のPDTCをROM8に記憶されたDTCテーブルと照合するようにしても良い。そして、そのPDTCがDTCテーブルに含まれていると判断できて初めて、異常がない(PDTCは正しい)と判断するようにしても良い。これによれば、より信頼性が向上する。3面冗長方式の場合でも同様である。つまり、図9のS820で、3箇所のPDTCが全て一致したと判断した場合でも、S830のようにROM8内のDTCテーブルと照合すると共に、そのDTCテーブルに含まれていると判断できて初めて、異常がない(PDTCは正しい)と判断するようにしても良い。
また、上記実施形態の図8の再書込み処理において、対象領域に故障が生じてその対象領域にPDTCを記憶させることができない場合に(S770:YES)、対象領域を他の記憶領域に変更するようにしているが(S800)、変更することなく図8の処理が終了するようにしても良い。
また、上記実施形態において、SRAM12にDTCのミラーデータを記憶させるようにしているが、ミラーデータを記憶させなくても良い。このようにすれば、SRAM12のメモリ資源を節約することができる。また、ミラーデータではなく、元データと同じデータを記憶させるようにしても良い。
本実施形態のECU1の構成図である。 ECU11のCPU4が実行するDTC記憶処理を表すフローチャートである。 ECU11のCPU4が実行するPDTC記憶処理を表すフローチャートである。 ECU11のCPU4が実行するEEPROM14のPDTCの信頼性をチェックする処理を表すフローチャートである(2面冗長方式その1)。 ECU11のCPU4が実行するEEPROM14のPDTCの信頼性をチェックする処理を表すフローチャートである(2面冗長方式その2)。 ECU11のCPU4が実行するEEPROM14のPDTCの信頼性をチェックする処理を表すフローチャートである(2面冗長方式その3)。 ECU11のCPU4が実行するEEPROM14のPDTCの信頼性をチェックする処理を表すフローチャートである(2面冗長方式その4)。 ECU11のCPU4が実行する再書込み処理を表すフローチャートである。 ECU11のCPU4が実行するEEPROM14のPDTCの信頼性をチェックする処理を表すフローチャートである(3面冗長方式その1)。 ECU11のCPU4が実行するEEPROM14のPDTCの信頼性をチェックする処理を表すフローチャートである(3面冗長方式その2)。 ECU11のCPU4が実行するEEPROM14のPDTCの信頼性をチェックする処理を表すフローチャートである(3面冗長方式その3)。 ECU11のCPU4が実行するEEPROM14のPDTCの信頼性をチェックする処理を表すフローチャートである(3面冗長方式その4)。
符号の説明
1…ECU
2…マイコン
3…状態診断装置
4…CPU
6…I/O
8…ROM
10…RAM
12…SRAM
14…EEPROM
16…バス

Claims (12)

  1. 情報の読み書きが可能な不揮発性メモリの互いに異なる領域に、車両に備えられた所定の検出対象について検出された故障を表す故障コードであって同一の故障コードを記憶させる記憶制御手段と、
    前記不揮発性メモリに記憶された前記故障コードが、互いに一致するか否かを判断し、少なくとも何れかが一致しないと判断したならば、その不揮発性メモリに記憶された故障コードに誤りが生じていると判定する誤り検出手段とを備え、前記車両に搭載された故障コード記憶管理装置において、
    前記不揮発性メモリに記憶されるべき前記故障コードを含む情報テーブル(以下、故障コードテーブルと言う)を記憶するメモリと、
    少なくとも前記誤り検出手段により誤りが生じていることが検出されたならば、前記不揮発性メモリに記憶された故障コードのそれぞれについて、前記故障コードテーブルに含まれるか否かを判定し、前記不揮発性メモリに記憶された故障コードのうち、前記故障コードテーブルに含まれると判定できた故障コードを、正規の故障コードと認識する正規データ認識手段と、
    を備えていることを特徴とする故障コード記憶管理装置。
  2. 請求項1に記載の故障コード記憶管理装置において、
    前記記憶制御手段は、前記不揮発性メモリの互いに異なる2つの領域に、前記同一の故障コードを記憶させるようになっていることを特徴とする故障コード記憶管理装置。
  3. 請求項1に記載の故障コード記憶管理装置において、
    前記記憶制御手段は、前記不揮発性メモリの互いに異なる3つの領域に、前記同一の故障コードを記憶させるようになっていることを特徴とする故障コード記憶管理装置。
  4. 請求項3に記載の故障コード記憶管理装置において、
    前記正規データ認識手段は、前記不揮発性メモリに記憶された故障コードのうち過半数の領域で一致した故障コード(以下、過半数一致コードと言う)について、前記故障コードテーブルに含まれるか否かを判定し、含まれると判定できた場合に、その過半数一致コードを正規の故障コードと認識するようになっていることを特徴とする故障コード記憶管理装置。
  5. 請求項1ないし請求項4の何れか1項に記載の故障コード記憶管理装置において、
    前記故障コードテーブルを記憶するメモリは、ROMであることを特徴とする故障コード記憶管理装置。
  6. 請求項1ないし請求項5の何れか1項に記載の故障コード記憶管理装置において、
    前記正規データ認識手段により正規の故障コードと認識された故障コードを、前記不揮発性メモリの領域のうち、その正規の故障コードとは異なる故障コードが記憶された領域に記憶させる再書込み手段を備えていることを特徴とする故障コード記憶管理装置。
  7. 請求項1ないし請求項6の何れか1項に記載の故障コード記憶管理装置において、
    常時電圧の供給を受け、電圧が供給されている間情報を保持するSRAMを備え、
    前記記憶制御手段は、前記故障コードを前記SRAMに記憶させた後、そのSRAMに記憶させた故障コードと同一の故障コードを前記不揮発性メモリに記憶させるようになっており、
    前記正規データ認識手段は、少なくとも、前記不揮発性メモリに記憶された故障コードが何れも前記故障コードテーブルに含まれないと判定した場合に、前記SRAMに記憶された故障コードが前記故障コードテーブルに含まれるか否かを判定し、含まれると判定できた場合に、そのSRAMに記憶された故障コードを正規の故障コードと認識するようになっていることを特徴とする故障コード記憶管理装置。
  8. 請求項1ないし請求項7の何れか1項に記載の故障コード記憶管理装置において、
    常時電圧の供給を受け、電圧が供給されている間情報を保持するSRAMを備え、
    前記記憶制御手段は、前記故障コードを前記SRAMに記憶させた後、そのSRAMに記憶させた故障コードと同一の故障コードを前記不揮発性メモリに記憶させるようになっており、
    前記正規データ認識手段は、少なくとも前記誤り検出手段により誤りが生じていることが検出されたならば、前記不揮発性メモリに記憶された故障コードのそれぞれについて、さらに前記SRAMに記憶された故障コードと一致するか否かを判定し、前記不揮発性メモリに記憶された故障コードのうち、前記SRAMに記憶された故障コードと一致する故障コードを、優先的に正規の故障コードと認識するようになっていることを特徴とする故障コード記憶管理装置。
  9. 請求項1ないし請求項8の何れか1項に記載の故障コード記憶管理装置において、
    少なくとも、前記車両のイグニションスイッチのオンからオフまで、或いはオンから次のオンまでの期間(以下、トリップ期間と言う)において、前記誤り検出手段及び前記正規データ認識手段を起動するトリップ期間起動制御手段を備えていることを特徴とする故障コード記憶管理装置。
  10. 請求項1ないし請求項9の何れか1項に記載の故障コード記憶管理装置において、
    前記故障コードを取得して前記検出対象の状態を診断するための外部診断装置が接続されるようになっており、
    少なくとも前記外部診断装置から前記故障コードが要求された際に前記誤り検出手段及び前記正規データ認識手段を起動するコード要求時起動制御手段を備えていることを特徴とする故障コード記憶管理装置。
  11. 故障コードを含む情報テーブル(以下、故障コードテーブルと言う)を記憶するメモリと、
    車両に設けられた所定の検査対象について故障が検出された後、当該故障に対応する前記故障コードテーブルに含まれる故障コードであって同一の故障コードを、情報の読み書きが可能な不揮発性メモリの互いに異なる複数の領域にそれぞれ記憶させる記憶制御手段と、を備え、車両に搭載された故障コード記憶管理装置であって、
    前記互いに異なる複数の領域から記憶させた故障コードを読み出し、当該読み出した故障コードが、互いに一致するか否かを判断し、少なくとも何れかが一致しないと当該故障コード記憶管理装置にて判断されると、
    前記不揮発性メモリの前記互いに異なる領域にそれぞれ記憶された故障コードと、前記故障コードテーブルとを対比し、前記不揮発性メモリに記憶された前記故障コードが前記故障コードテーブルに含まれている故障コードと一致すると判定できた故障コードを、正規の故障コードと認識する正規データ認識手段と、
    を備えていることを特徴とする故障コード記憶管理装置。
  12. 情報の読み書きが可能な不揮発性メモリの互いに異なる領域に、同一のデータを記憶させる記憶制御手段と、
    前記不揮発性メモリに記憶された前記データが、互いに一致するか否かを判断し、少なくとも何れかが一致しないと判断したならば、その不揮発性メモリに記憶されたデータに誤りが生じていると判定する誤り検出手段とを備え、車両に搭載される記憶管理装置において、
    前記不揮発性メモリに記憶されるべき前記データを含む情報テーブル(以下、データテーブルと言う)を記憶するメモリと、
    少なくとも前記誤り検出手段により誤りが生じていることが検出されたならば、前記不揮発性メモリに記憶されたデータのそれぞれについて、前記データテーブルに含まれるか否かを判定し、前記不揮発性メモリに記憶されたデータのうち、前記データテーブルに含まれると判定できたデータを、正規のデータと認識する正規データ認識手段と、
    を備えていることを特徴とする記憶管理装置。
JP2007203108A 2007-08-03 2007-08-03 故障コード記憶管理装置、及び記憶管理装置 Active JP4363471B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007203108A JP4363471B2 (ja) 2007-08-03 2007-08-03 故障コード記憶管理装置、及び記憶管理装置
EP08013847.2A EP2042992B1 (en) 2007-08-03 2008-08-01 Memory management apparatus
US12/185,282 US8166353B2 (en) 2007-08-03 2008-08-04 Memory management apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007203108A JP4363471B2 (ja) 2007-08-03 2007-08-03 故障コード記憶管理装置、及び記憶管理装置

Publications (2)

Publication Number Publication Date
JP2009037533A JP2009037533A (ja) 2009-02-19
JP4363471B2 true JP4363471B2 (ja) 2009-11-11

Family

ID=40339286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007203108A Active JP4363471B2 (ja) 2007-08-03 2007-08-03 故障コード記憶管理装置、及び記憶管理装置

Country Status (3)

Country Link
US (1) US8166353B2 (ja)
EP (1) EP2042992B1 (ja)
JP (1) JP4363471B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510743B2 (en) * 2007-10-31 2013-08-13 Google Inc. Terminating computer applications
JP4475320B2 (ja) * 2007-11-15 2010-06-09 株式会社デンソー 車両用記憶管理装置
JP4506868B2 (ja) * 2008-04-23 2010-07-21 株式会社デンソー 電子制御装置
US8266454B2 (en) * 2009-04-15 2012-09-11 GM Global Technology Operations LLC Secure flash memory using error correcting code circuitry
JP6044316B2 (ja) * 2012-12-12 2016-12-14 株式会社デンソー 車載電子制御装置
US9514580B2 (en) * 2014-03-19 2016-12-06 Cummins, Inc. Fault code hierarchy system
US9384081B2 (en) * 2014-07-01 2016-07-05 Gogo Llc Delayed disk recovery
US9547449B2 (en) 2014-11-12 2017-01-17 International Business Machines Corporation Performance optimization of read functions in a memory system
JP6281535B2 (ja) * 2015-07-23 2018-02-21 株式会社デンソー 中継装置、ecu、及び、車載システム
CN105388883A (zh) * 2015-11-05 2016-03-09 株洲南车时代电气股份有限公司 主机插件的运行自检方法和装置
US10943283B2 (en) 2016-11-18 2021-03-09 Cummins Inc. Service location recommendation tailoring
JP2019140577A (ja) * 2018-02-13 2019-08-22 株式会社デンソー 電子制御装置及び通信システム
JP7176444B2 (ja) * 2019-03-12 2022-11-22 株式会社デンソー 車両電子制御装置、要求装置、及び故障検出システム
CN111474918A (zh) * 2020-04-23 2020-07-31 江铃汽车股份有限公司 一种电动汽车整车诊断方法
US11623591B2 (en) * 2020-11-18 2023-04-11 Bendix Commercial Vehicle Systems Llc Detection of safety system tampering via DTC analysis

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320295A (ja) 1997-05-21 1998-12-04 Mitsubishi Electric Corp 設定値データ修復方式
JP2002099467A (ja) 2000-09-21 2002-04-05 Canon Inc 記憶装置、データバックアップ・リカバリ方法、記憶媒体および画像形成装置
JP2004021520A (ja) * 2002-06-14 2004-01-22 Denso Corp 車両用電子制御装置
JP4001088B2 (ja) 2002-10-25 2007-10-31 株式会社デンソー 電子制御装置
JP3864341B2 (ja) * 2003-09-04 2006-12-27 株式会社ブロードリーフ 整備業務支援端末、整備業務支援システム及び整備業務支援方法
JP2005156165A (ja) 2003-11-20 2005-06-16 Bosch Automotive Systems Corp 故障誤診断防止方法及び故障誤診断防止プログラム
JP2005196515A (ja) * 2004-01-08 2005-07-21 Meidensha Corp 不揮発性メモリのデータ復旧方式
US7464000B2 (en) * 2004-01-16 2008-12-09 Innova Electronics Corporation Handheld diagnostic device and method for displaying bitmapped graphic characters utilizing a condensed bitmap character library
US7085680B2 (en) * 2004-01-16 2006-08-01 Innova Electronics Corporation Vehicle diagnostic tool
JP4244847B2 (ja) 2004-04-12 2009-03-25 株式会社デンソー データ修復装置
DE102004042002A1 (de) * 2004-08-31 2006-03-02 Daimlerchrysler Ag Verbesserte Reparaturverifikation für elektronische Fahrzeugsysteme
EP1825371B1 (en) * 2004-12-08 2009-07-15 GE Aviation Systems LLC System and method for enhanced error detection in memory peripherals
JP2006286111A (ja) * 2005-04-01 2006-10-19 Toyota Motor Corp 半導体メモリの管理装置
JP4770266B2 (ja) 2005-05-20 2011-09-14 アイシン精機株式会社 データ処理装置
JP4274186B2 (ja) 2006-02-02 2009-06-03 トヨタ自動車株式会社 故障診断装置および故障情報記録方法
US7984362B2 (en) * 2006-12-22 2011-07-19 Detroit Diesel Corporation Method for static fault code synchronization in an internal combustion engine
JP4281808B2 (ja) * 2007-02-09 2009-06-17 トヨタ自動車株式会社 車両の制御装置およびその制御方法

Also Published As

Publication number Publication date
EP2042992B1 (en) 2018-10-17
US20090037780A1 (en) 2009-02-05
EP2042992A2 (en) 2009-04-01
JP2009037533A (ja) 2009-02-19
EP2042992A3 (en) 2010-04-28
US8166353B2 (en) 2012-04-24

Similar Documents

Publication Publication Date Title
JP4363471B2 (ja) 故障コード記憶管理装置、及び記憶管理装置
JP4345860B2 (ja) 車両用記憶管理装置
JP4736828B2 (ja) 電子制御装置
JP4475320B2 (ja) 車両用記憶管理装置
JP4227149B2 (ja) 電子制御装置の情報記憶方法
KR20170131584A (ko) 데이터 버스 트랜시버로부터의 구성 데이터를 보호하기 위한 방법, 데이터 버스 트랜시버 및 데이터 버스 시스템
US9063851B2 (en) Fail safe code functionality
CN109376031B (zh) 一种防止eeprom存储区校验误判发生的方法及装置
JPH10240873A (ja) Icカード
JP2007538340A (ja) 冗長システムを備えるアーキテクチャにおける単一フォールトトレランス
JP2009506445A (ja) 記憶装置構成およびその駆動方法
JP2009289049A (ja) メモリ制御装置
JP4708088B2 (ja) 障害復旧方法およびマイクロコンピュータ
US11726853B2 (en) Electronic control device
JP5342395B2 (ja) 計算機システムおよびその方法
CN110865906B (zh) 一种电机初始位置角度存储方法、装置、车辆及存储介质
US20100287425A1 (en) Method for testing a memory device, as well as a control device having means for testing a memory
JP2018136728A (ja) 電子制御装置
JP2000035923A (ja) 異常検出方法および異常検出装置
JP2004021520A (ja) 車両用電子制御装置
JP2000322535A (ja) Icカードの情報処理方法及び方式
JP7176444B2 (ja) 車両電子制御装置、要求装置、及び故障検出システム
JP2001331382A (ja) 不揮発性メモリの管理方法および管理装置
US8108740B2 (en) Method for operating a memory device
US11537468B1 (en) Recording memory errors for use after restarts

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090722

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: 20090728

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: 20090810

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

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4363471

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: 20130828

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