JP2023104466A - 車載電子制御装置、及びメモリ制御方法 - Google Patents
車載電子制御装置、及びメモリ制御方法 Download PDFInfo
- Publication number
- JP2023104466A JP2023104466A JP2022005463A JP2022005463A JP2023104466A JP 2023104466 A JP2023104466 A JP 2023104466A JP 2022005463 A JP2022005463 A JP 2022005463A JP 2022005463 A JP2022005463 A JP 2022005463A JP 2023104466 A JP2023104466 A JP 2023104466A
- Authority
- JP
- Japan
- Prior art keywords
- nonvolatile memory
- electronic control
- vehicle electronic
- control device
- microcomputer
- 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.)
- Pending
Links
Images
Abstract
【課題】不揮発性メモリから読み出したデータの正常性を確保する。【解決手段】車載電子制御装置であって、不揮発性メモリ及び揮発性メモリを含むマイコンを備え、前記不揮発性メモリは、その記憶領域をファンクションブロックより小さい大きさに分割した論理ブロックで構成されており、前記マイコンは、前記不揮発性メモリに格納されたデータのECCエラーを検出し、ECCエラー検出時に、前記ECCエラーが検出された論理ブロックのCRC計算を実行し、CRCエラーが検出された場合、前記不揮発性メモリに格納されたデータが異常であると判定する。【選択図】図5
Description
本発明は、自動車に搭載される電子制御装置に関し、不揮発性メモリの制御技術に関する。
車両には、様々な機能を提供する複数の電子制御装置(ECU:Electric Control Unit)が搭載されている。ECUには、様々な機能が割り当てられたマイクロコンピュータ(以下、マイコンと称する)が搭載されている。マイコンは、不揮発性メモリ(ROM:Read Only Memory)に記憶されている制御用ソフトウェアの実行によって、制御対象の装置の動作を制御する。
ECUでは、不揮発性メモリに書き込まれたソフトウェアの信頼性を確保するために、不揮発性メモリの診断(不揮発性メモリ診断)が行われる。例えば、マイコンに搭載されるECC(Error Correction Code)によって、1ビットのエラーを訂正したうえでソフトウェアを実行し、2ビットのエラーを検出してフェールセーフ等の安全動作を行うことができる。
本技術分野の背景技術として、以下の特許文献がある。特許文献1(特開2008-250426号公報)には、RFIDタグへのデータの書き込み時には、データおよび対応するチェックコードを書き込んでおき、データの読み出し時には、チェックコードを用いて、読み出したデータの誤りをCRCによって検出し、誤りが検出されると、ECCによる誤り訂正を行い、更に、訂正後のデータの誤りをCRCによって検出し、訂正後のデータの誤りが検出されたときには、データが異常であることを通知し、誤りが検出されなかったときには、データの誤りを訂正したことを通知する書き込み処理方法が記載されている。
特許文献2(特開2001-27957号公報)には、データ部の誤りを訂正する誤り訂正コードECCと、データ部の誤りを検出する第1の誤り検出コードと、該第1の誤り検出コードとは別の1つ以上の誤り検出コードとを備え、前記誤り訂正コードECCによる誤り訂正後、前記第1の誤り検出コードにより誤り検査をし、更に、前記別の誤り検出コードにより誤り検査を行う誤訂正検出方法が記載されている。
ECC機能を利用して不揮発性メモリを診断すると、1ビットエラーを訂正でき、2ビットエラーを検出できるが、3ビット以上のエラーは正しく検出されず、例えば、3ビットのエラーが発生しても1ビットのエラーと誤検出する可能性があり、完全な正常性を確保できないことがある。
この問題に対し、特許文献1、2ではECCの1ビットエラー検出後にCRC(巡回冗長検査:Cyclic Redundancy Check)によって再検査を行って、誤検出に対して保証している。既存のCRC計算は不揮発性メモリを機能毎に分割した領域(ファンクションブロック)毎に行っている。一般的に、ファンクションブロックは大きな領域であり、CRC計算時間が長い問題がある。
そのため、不揮発性メモリが正常の場合、通常制御の再開が遅延する。また、不揮発性メモリが故障している場合、安全制御への移行が遅延する。安全な車両制御を実現するためにはCRC計算時間の短縮が求められる。一方、いずれの先行技術文献にも、CRC計算時間を短縮する観点や手段の開示も示唆もない。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、車載電子制御装置であって、不揮発性メモリ及び揮発性メモリを含むマイコンを備え、前記不揮発性メモリは、その記憶領域をファンクションブロックより小さい大きさに分割した論理ブロックで構成されており、前記マイコンは、前記不揮発性メモリに格納されたデータのECCエラーを検出し、ECCエラー検出時に、前記ECCエラーが検出された論理ブロックのCRC計算を実行し、CRCエラーが検出された場合、前記不揮発性メモリに格納されたデータが異常であると判定することを特徴とする。
本発明の一態様によれば、不揮発性メモリから読み出したデータの正常性を確保できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
以下、添付された図面を参照し、本発明の実施例を詳述する。
<実施例1>
図1は、本発明の実施例1の電子制御装置(ECU:(Electric Control Unit)1の構成を示す図である。
図1は、本発明の実施例1の電子制御装置(ECU:(Electric Control Unit)1の構成を示す図である。
電子制御装置1は、マイコン2を有し、例えば車両に搭載されており、車両搭載機器を制御する。電子制御装置1は、マイコン2の他、他の電子制御装置やセンサ類と通信する通信インターフェースを有する。マイコン2は、ソフトウェアによる演算処理を実行する少なくとも1つのCPU(Central Processor Unit)3と、少なくとも一つの揮発性メモリ(RAM:Random Access Memory)4と、プログラムやデータを保持する少なくとも一つの不揮発性メモリ5を有する。
図2は、従来の不揮発性メモリの構造を示す図である。不揮発性メモリ内の記憶領域はファンクションブロック毎に分割され、各ファンクションブロックはCRC(Cyclic Redundancy Check)計算結果期待値を有している。ファンクションブロックとは、所定の機能を実現するプログラムブロックの単位である。
図3は、実施例1の不揮発性メモリ5の構成を示す図である。
不揮発性メモリ5内の記憶領域はファンクションブロック6毎に分割され、各ファンクションブロック6は1KB毎にm個の論理ブロック10に分割されている。論理ブロック10の分割サイズは、通常制御への復帰許容時間内及び安全制御への移行許容時間内のいずれでもCRC計算が完了する時間(例えば、図6のステップS19でエラー発生と判定されて、CRCチェックで一致と判定されて通常制御に戻る時間)であれば1KB以外でもよい。また、論理ブロック10の分割サイズ及び分割個数は、ファンクションブロック6毎に異なってもよい。
ファンクションブロック6の最後の論理ブロックmにはCRCテーブル11が設けられる。CRCテーブル11は、論理ブロック10と同じm個に分割され、分割された領域の各々には各論理ブロック10のCRC計算結果期待値12が格納される。CRC計算結果を記録するCRCテーブル11は、不揮発性メモリ5ではなく、揮発性メモリ4に格納してもよい。その場合、初期動作の中で各論理ブロック毎のCRCを計算して記録してもよい。CRC計算結果期待値12を纏めてCRCテーブル11に記録するので、実行コードと区別してCRC計算結果期待値12を記録できる。また、不揮発性メモリ5と揮発性メモリ4の両方に格納してもよい。
図4は、実施例1の不揮発性メモリ書き込み用バイナリコード作成処理のフローチャートである。
ビルドPCは、電子制御装置1で実行されるソフトウェアをコンパイルしてバイナリコードを作成するビルド処理を実行し(ステップS1)、CRCを計算する対象の論理ブロック10を選択する(ステップS2)。その後、プログラム中で計算されるCRCの期待値を計算し(ステップS3)、計算結果をCRCテーブル11に記録する(ステップS4)。ステップS2からS4の処理を各論理ブロック10に対し実行し、全ての論理ブロック10のCRCがCRCテーブル11に記録された後に、処理を終了する。
図6は、実施例1の通常動作時の処理のフローチャートである。
マイコン2がソフトウェアを実行すると、電子制御装置1の起動時に実行される初期動作(ステップS7)の後、通常動作(ステップS17)が実行される。通常制御(ステップS18)において不揮発性メモリ5を読み出し、ECC(Error Correction Code)2ビットエラーを検出し、読み出したデータにECC2ビットエラーが発生しているか判定する(ステップS28)。ECC2ビットエラーが発生していれば、安全制御(ステップS16)を行う。ECC2ビットエラーが発生していなければ、ステップS19に進む。その後、読み出したデータにECC1ビットエラーの検出及び訂正を試みて、ECC1ビットエラーが発生しているかを判定する(ステップS19)。ECC1ビットエラーが発生していなければ、通常制御(ステップS18)を繰り返す。一方、ECC1ビットエラーが発生していれば、予め不揮発性メモリ5に保存された各論理ブロック10の先頭アドレスとサイズの情報を取得する(ステップS20)。その後、予め分割されたファンクションブロック6のどの論理ブロック10でECCエラーが発生したかを判定し、エラーが検出された論理ブロック10でのみ、ECCエラー訂正済のデータからCRCを計算する(ステップS21)。その後、ステップS21におけるCRC計算結果と、CRCテーブル11に格納されたCRC計算結果期待値12とを比較する(ステップS22)。ステップS23において比較結果が不一致であれば、3ビット以上のエラーが発生しているので、不揮発性メモリ5の故障を判定し、安全制御を実行する(ステップS16)。比較結果が一致であれば、通常制御(ステップS19)に復帰する。
実施例1では、3ビット以上のECCエラーも検出可能となり、不揮発性メモリ5から読み出したデータの正常性を確保できる。ECC1ビットのエラーが発生した論理ブロック10でのみCRCを計算すればよいので、1回のCRC計算の時間を短縮でき、車両動作遅延を小さくして、安全な車両制御を実現できる。
また、1ビットECCエラー訂正後のデータを用いて、論理ブロック10のCRC計算の結果によって、前記不揮発性メモリに格納されたデータの異常を判定するので、3ビット以上に生じたエラーを検出できる。
また、予め不揮発性メモリ5に保存された各論理ブロック10の先頭アドレスとサイズの情報によって、エラー発生箇所を特定するので、エラー発生箇所が簡単に特定できる。
<実施例2>
実施例2では、前述した実施例1と異なり、通常動作(ステップS17)の前の初期動作(ステップS7)において不揮発性メモリ5に格納されているデータをチェックする。
実施例2では、前述した実施例1と異なり、通常動作(ステップS17)の前の初期動作(ステップS7)において不揮発性メモリ5に格納されているデータをチェックする。
図5は、本発明の実施例2の初期動作処理のフローチャートである。
マイコン2がソフトウェアを実行すると、電子制御装置1の起動後にプログラムの開始(ステップS6)時に初期動作(ステップS7)を実行する。初期動作(ステップS7)では、不揮発性メモリ5の先頭アドレスを読み出しアドレスに指定する(ステップS8)。その後、読み出しアドレスから読み出し単位毎にデータを読み出し(ステップS9)、読み出したデータにECC2ビットエラーを検出し、読み出したデータにECC2ビットエラーが発生しているか判定する(ステップS24)。ECC2ビットエラーが発生していれば、安全制御(ステップS16)を行う。ECC2ビットエラーが発生していなければ、ステップS10に進む。ECC1ビットエラーの検出及び訂正を試みて、読み出したデータにECC1ビットエラーが発生しているかを判定する(ステップS10)。ECC1ビットエラーが発生していなければ、ステップS14に進む。一方、ECC1ビットエラーが発生していれば、エラーが検出された論理ブロック10でのみ、ECCエラー訂正済のデータからCRCを計算する(ステップS11)。その後、ステップS11におけるCRC計算結果と、CRCテーブル11に格納されたCRC計算結果期待値12とを比較する(ステップS12)。ステップS13において比較結果が不一致であれば、3ビット以上のエラーが発生しているので、不揮発性メモリ5の故障を判定し、安全制御を実行する(ステップS16)。比較結果が一致であれば、不揮発性メモリ5の終了アドレスまで全領域のデータを読み出して、ECC1ビットエラーがチェックされているか判定する(ステップS14)。ECC1ビットエラーチェックが終了アドレスまで完了していなければ、次のアドレスを読み出しアドレスに変更して(ステップS15)、ステップS9に戻る。ECC1ビットエラーチェックが終了アドレスまで完了していれば、通常動作(ステップS17)を開始する。
実施例2では、初期動作(ステップS7)において不揮発性メモリ5に格納されているデータをチェックするので、通常動作(ステップS17)の前の不揮発性メモリ5の全領域のチェックができ、通常動作から安全制御(ステップS16)に移行する機会を減少でき、走行安全性を向上できる。
<実施例3>
実施例3は、実施例1、2で前述したECC1ビットエラーチェックと縮退制御を組み合わせたものである。
実施例3は、実施例1、2で前述したECC1ビットエラーチェックと縮退制御を組み合わせたものである。
図7は、実施例3の縮退制御のフローチャートである。
マイコン2がソフトウェアを実行し、初期動作(ステップS7)又は通常動作(ステップS17)において不揮発性メモリ5の故障を判定すると、安全制御(ステップS16)において、縮退制御実行可否を判定する(ステップS25)。縮退制御が可能であれば、縮退制御(ステップS26)を実行し、縮退制御が不可能であれば異常時制御(ステップS27)を実行する。
図8は、実施例3の不揮発性メモリ5内の論理ブロック10の割り当てを示す図である。
通常動作(ステップS17)において、通常制御用のプログラム又はデータが格納されている論理ブロック13が異常と判定された場合、縮退制御が可能である。一方、縮退制御用のプログラム又はデータが格納されている論理ブロック14が異常と判定された場合、縮退制御が不可能であり、安全制御(ステップS16)に進む。
縮退制御実行可否判定(ステップS25)において、縮退制御用のプログラム又はデータが格納されている論理ブロック14にCRC計算を実施し、CRCテーブル11に格納されたCRC計算結果期待値12と一致する場合に縮退制御を可能とする条件を追加してもよい。また、縮退制御(ステップS26)の実行中に、通常制御(ステップS18)と同様のECCチェックによって故障と判定された場合、異常時制御(ステップS27)を実行してもよい。
縮退制御用のプログラム又はデータが格納されている論理ブロック14は、図示したように連続する論理ブロック10に格納されても、連続しない論理ブロック10に格納されてもよい。
実施例3では、不揮発性メモリ5の故障判定時に縮退制御(ステップS26)を実行するので、不揮発性メモリ5の故障時にも車両が突然制御不能にならず、機能が制限されても車両の走行を継続し、車両動作と安全性を両立した制御ができる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
1 電子制御装置
2 マイコン
3 CPU
4 揮発性メモリ(RAM)
5 不揮発性メモリ(ROM)
6 ファンクションブロック
10 論理ブロック
11 CRCテーブル
12 CRC計算結果期待値
13 通常制御が格納されている論理ブロック
14 縮退制御が格納されている論理ブロック
2 マイコン
3 CPU
4 揮発性メモリ(RAM)
5 不揮発性メモリ(ROM)
6 ファンクションブロック
10 論理ブロック
11 CRCテーブル
12 CRC計算結果期待値
13 通常制御が格納されている論理ブロック
14 縮退制御が格納されている論理ブロック
Claims (9)
- 車載電子制御装置であって、
不揮発性メモリ及び揮発性メモリを含むマイコンを備え、
前記不揮発性メモリは、その記憶領域をファンクションブロックより小さい大きさに分割した論理ブロックで構成されており、
前記マイコンは、
前記不揮発性メモリに格納されたデータのECCエラーを検出し、
ECCエラー検出時に、前記ECCエラーが検出された論理ブロックのCRC計算を実行し、
CRCエラーが検出された場合、前記不揮発性メモリに格納されたデータが異常であると判定することを特徴とする車載電子制御装置。 - 請求項1に記載の車載電子制御装置であって、
前記マイコンは、
1ビットECCエラー訂正後のデータを用いて、論理ブロックのCRCを計算し、
CRC計算の結果によって、前記不揮発性メモリに格納されたデータの異常を判定することを特徴とする車載電子制御装置。 - 請求項1に記載の車載電子制御装置であって、
前記マイコンは、
前記車載電子制御装置の起動時に前記不揮発性メモリに格納された全データを読み出し、
前記読み出したデータのECCエラーを検出し、
ECCエラー検出時に、前記ECCエラーが検出された論理ブロックのCRC計算を実行し、
CRCエラーが検出された場合、前記不揮発性メモリに格納されたデータが異常であると判定することを特徴とする車載電子制御装置。 - 請求項1に記載の車載電子制御装置であって、
前記マイコンは、前記CRC計算の結果を、前記不揮発性メモリ及び前記揮発性メモリの少なくとも一方に格納することを特徴とする車載電子制御装置。 - 請求項4に記載の車載電子制御装置であって、
前記不揮発性メモリは、前記車載電子制御装置に書き込まれるバイナリコードの作成時に計算されたCRC値を記録し、
前記マイコンは、前記格納されたCRC計算の結果と、前記不揮発性メモリに記録されたCRC値とを比較して、前記不揮発性メモリに格納されたデータの異常を判定することを特徴とする車載電子制御装置。 - 請求項5に記載の車載電子制御装置であって、
前記マイコンは、前記格納されたCRC計算の結果と、前記不揮発性メモリに記録されたCRC値とが一致する場合、前記不揮発性メモリに格納されたデータが正常であると判定し、通常制御に復帰することを特徴とする車載電子制御装置。 - 請求項5に記載の車載電子制御装置であって、
前記マイコンは、前記格納されたCRC計算の結果と、前記不揮発性メモリに記録されたCRC値とが不一致である場合、ECCエラーが検出されていない論理ブロックを用いて縮退制御を行うことを特徴とする車載電子制御装置。 - 請求項1に記載の車載電子制御装置であって、
前記マイコンは、前記不揮発性メモリの各論理ブロックの先頭アドレスとサイズの情報を参照して、ECCエラーが検出された論理ブロックを特定することを特徴とする車載電子制御装置。 - 車載電子制御装置におけるメモリ制御方法であって、
前記車載電子制御装置は、不揮発性メモリ及び揮発性メモリを含むマイコンを有し、
前記不揮発性メモリは、その記憶領域をファンクションブロックより小さい大きさに分割した論理ブロックで構成されており、
前記メモリ制御方法は、
前記マイコンが、前記不揮発性メモリに格納されたデータのECCエラーを検出し、
前記マイコンが、ECCエラー検出時に、前記ECCエラーが検出された論理ブロックのCRC計算を実行し、
前記マイコンが、CRCエラーが検出された場合、前記不揮発性メモリに格納されたデータが異常であると判定することを特徴とするメモリ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022005463A JP2023104466A (ja) | 2022-01-18 | 2022-01-18 | 車載電子制御装置、及びメモリ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022005463A JP2023104466A (ja) | 2022-01-18 | 2022-01-18 | 車載電子制御装置、及びメモリ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023104466A true JP2023104466A (ja) | 2023-07-28 |
Family
ID=87379183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022005463A Pending JP2023104466A (ja) | 2022-01-18 | 2022-01-18 | 車載電子制御装置、及びメモリ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023104466A (ja) |
-
2022
- 2022-01-18 JP JP2022005463A patent/JP2023104466A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2095234B1 (en) | Memory system with ecc-unit and further processing arrangement | |
US20040168101A1 (en) | Redundant memory system and memory controller used therefor | |
CN108062259B (zh) | Mcu内部数据存储ecc处理系统及其处理方法 | |
KR101805234B1 (ko) | 데이터 메모리의 모니터링 방법, 비일시적 컴퓨터 판독가능 저장 매체 및 보조 메모리 | |
KR102292212B1 (ko) | 복수의 데이터 비트와 복수의 어드레스 비트로 이루어진 블록용 에러 코드 발생장치 및 방법 | |
EP3483732B1 (en) | Redundant storage of error correction code (ecc) checkbits for validating proper operation of a static random access memory (sram) | |
CN103594120A (zh) | 以读代写的存储器纠错方法 | |
US10108469B2 (en) | Microcomputer and microcomputer system | |
CN112379843B (zh) | Eeprom数据处理方法、系统、存储介质及终端 | |
CN103890739A (zh) | 电子控制装置 | |
KR101512927B1 (ko) | 비휘발성 메모리의 페이지 관리 방법 및 장치 | |
US7240272B2 (en) | Method and system for correcting errors in a memory device | |
JP2023104466A (ja) | 車載電子制御装置、及びメモリ制御方法 | |
JP4950214B2 (ja) | データ記憶装置における停電を検出する方法、およびデータ記憶装置を復旧する方法 | |
JP4851525B2 (ja) | データ処理システムおよびその駆動方法 | |
JP5910356B2 (ja) | 電子装置、電子装置制御方法及び電子装置制御プログラム | |
EP3882774B1 (en) | Data processing device | |
JP5453984B2 (ja) | Ram診断装置、そのプログラム | |
JP6332134B2 (ja) | メモリ診断回路 | |
JP6193112B2 (ja) | メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、及び、メモリアクセス制御プログラム | |
JP4135413B2 (ja) | メモリチェックシステムおよびメモリチェック方法、信号処理装置および信号処理装置のメモリチェック方法、ならびに、メモリチェックプログラム | |
KR102411938B1 (ko) | 위성 시스템에서 메모리를 관리하기 위한 장치 및 방법 | |
US8595570B1 (en) | Bitline deletion | |
JP6501703B2 (ja) | 車載制御装置 | |
JP5125099B2 (ja) | 情報記憶装置、情報記憶方法及びプログラム |