(57)【特許請求の範囲】
【請求項１】
ソフトウェアを実行することで所定の制御を実現する制御装置であって、
前記ソフトウェアの異常を検出する異常検出部（Ｓ１０，Ｓ１１）と、
前記ソフトウェアの異常の要因ごとに特定のアドレスが割り振られ、該アドレスに、ＥＣＣ（Error Correction Code）エラーが生じるようにデータ及び誤り訂正符号が記憶されてなる異常要因アドレス領域を有するメモリ（２２，２３）と、
前記異常検出部により検出された前記ソフトウェアの異常の要因に基づき、異常の要因に対応する前記アドレスへジャンプし、該アドレスに記憶された前記データを読み出すジャンプ処理部（Ｓ１２）と、
読み出された前記データの誤りを前記誤り訂正符号に基づいて検出するとともに、誤りが検出された前記アドレスを記憶するＥＣＣ機能部（２４）と、
を備える制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この明細書における開示は、制御装置に関する。
【背景技術】
【０００２】
特許文献１には、異常の要因（種別）ごとにメモリにフラグを設け、異常の要因に対応するフラグをオンさせることで、異常を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３７２１５６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ソフトウェアを実行することで所定の制御を実現する制御装置においても、上記した技術が用いられる。たとえば、メモリとしてのＲＡＭ上に、異常要因に対応してフラグが設けられる。これにより、ソフトウェアの異常が生じたときに、フラグに基づいて異常要因を解析することができる。
【０００５】
しかしながら、フラグを必要とする上に、フラグの初期化処理、異常発生時のフラグ設定処理などが必要となる。したがって、メモリ容量が大きくなる。また、初期化やフラグ設定処理が必要であるため、処理負荷が増加する。
【０００６】
本開示はこのような課題に鑑みてなされたものであり、ソフトウェアの異常要因を解析可能な制御装置において、メモリ容量を低減しつつ、処理負荷を低減することを目的とする。
【課題を解決するための手段】
【０００７】
本開示は、上記目的を達成するために以下の技術的手段を採用する。なお、括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、技術的範囲を限定するものではない。
【０００８】
本開示のひとつは、ソフトウェアを実行することで所定の制御を実現する制御装置であって、
ソフトウェアの異常を検出する異常検出部（Ｓ１０，Ｓ１１）と、
ソフトウェアの異常の要因ごとに特定のアドレスが割り振られ、該アドレスに、ＥＣＣ（Error Correction Code）エラーが生じるようにデータ及び誤り訂正符号が記憶されてなる異常要因アドレス領域を有するメモリ（２２，２３）と、
異常検出部により検出されたソフトウェアの異常の要因に基づき、異常の要因に対応するアドレスへジャンプし、該アドレスに記憶されたデータを読み出すジャンプ処理部（Ｓ１２）と、
読み出されたデータの誤りを誤り訂正符号に基づいて検出するとともに、誤りが検出されたアドレスを記憶するＥＣＣ機能部（２４）と、
を備える。
【０００９】
これによれば、制御装置が備えるＥＣＣ機能部を利用し、ソフトウェアの異常要因に対応するアドレスを記憶することができる。したがって、記憶されたアドレスから、異常要因を解析することができる。
【００１０】
また、メモリに異常要因アドレス領域を設け、ジャンプ処理を実施することで、メモリ上の異常要因フラグ領域や、フラグの初期化処理、フラグ設定処理を不要とすることができる。このため、フラグを用いる構成に較べて、メモリの容量を低減することができる。また、処理負荷を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る制御装置の概略構成を示す図である。
【図２】ＲＯＭに記憶されている情報を示す図である。
【図３】異常要因とＲＯＭのアドレスとの関係を説明するための図である。
【図４】ＲＯＭの異常要因アドレス領域に記憶された情報を示す図である。
【図５】ＣＰＵが実行する処理を示すフローチャートである。
【図６】ＣＰＵ及びＥＣＣ機能部が実行する処理を示すシーケンス図である。
【図７】本実施形態の効果を示す図である。
【発明を実施するための形態】
【００１２】
図面を参照しながら、複数の実施形態を説明する。複数の実施形態において、機能的に及び／又は構造的に対応する部分には同一の参照符号を付与する。
【００１３】
（第１実施形態）
先ず、図１に基づき、本実施形態に係る制御装置の概略構成を説明する。この制御装置は、車両に搭載される。制御装置は、車両に搭載された各種センサや他の制御装置から、車両情報を取得する。そして、取得した車両情報に基づいて、車両における制御対象の制御を実行する。たとえば表示部の制御を実行する。
【００１４】
図１に示すように、制御装置１０は、マイコン２０を中心に構成されている。マイコン２０は、ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、ＥＣＣ機能部２４、リセット部２５、電源回路２６などを備えている。ＲＡＭ２２及びＲＯＭ２３が、メモリに相当する。ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、及びリセット部２５は、バス２７を介して通信可能に接続されている。
【００１５】
マイコン（マイクロコンピュータ）２０において、ＣＰＵ（Central Processing Unit）２１が、ＲＡＭ（Random Access Memory）２２や図示しないレジスタなどの一時記憶機能を利用しつつ、ＲＯＭ（Read Only Memory）２３に予め記憶された制御プログラム、図示しない通信線を介して各種センサや他の制御装置から取得したデータに応じて、信号処理を行う。また、この信号処理で得られた信号を、通信線を介してマイコン２０の外部に出力したりする。このようにして、マイコン２０は、各種機能を実行する。
【００１６】
本実施形態では、図１に示すように、ＲＯＭ２３が、ＥＣＣ機能部２４を有している。すなわち、ＥＣＣ機能付きのＲＯＭ２３となっている。ＥＣＣ機能部２４は、メモリに生じるビットエラーを検出又は訂正する周知の回路（ハードウェア）である。
【００１７】
ＲＯＭ２３の所定アドレスにデータ（プログラム）を書き込む際、ＥＣＣ機能部２４は、書き込むデータに基づいて誤り訂正符号を生成する。生成された誤り訂正符号は、データに対応付けられて、ＲＯＭ２３に書き込まれる。データ及び誤り訂正符号は、たとえば同じアドレスに書き込まれる。誤り訂正符号は、ＥＣＣ（Error Correction Code）と称される。
【００１８】
一方、ＣＰＵ２１がＲＯＭ２３から所定アドレスのデータを読み出す際、ＥＣＣ機能部２４は、読み出したデータに基づいて誤り訂正符号（ＥＣＣ１）を生成する。そして、生成したＥＣＣ１と、データとともにＲＯＭ２３に記憶されている誤り訂正符号（ＥＣＣ２）とを照合する。ＥＣＣ機能部２４は、ＥＣＣ１とＥＣＣ２が一致する場合に、データが正常であると判定する。
【００１９】
ＲＯＭ２３のデータにデータ化け等が生じると、ＥＣＣ１とＥＣＣ２が一致しなくなる。ＥＣＣ機能部２４は、ＥＣＣ１とＥＣＣ２が一致しない場合、データに誤りが生じた、すなわちＥＣＣエラーが生じたと判定する。
【００２０】
ＥＣＣ機能部２４は、ＥＣＣエラーの発生後においてＥＣＣエラーが発生したアドレスを確認できるように、周知のエラーアドレス確認レジスタ２４ａを有している。ＥＣＣエラーが生じたと判定した場合、ＥＣＣ機能部２４は、エラーアドレス確認レジスタ２４ａに、ＥＣＣエラーが発生したアドレスを記憶する。
【００２１】
また、ＥＣＣ機能部２４は、ＥＣＣエラーが生じたと判定すると、その旨を示すＥＣＣエラー信号をリセット部２５に出力する。
【００２２】
リセット部２５は、異常を検出した際に、電源回路２６に対して、検出した異常に対応するリセット信号を出力する。リセット部２５は、たとえばＥＣＣエラー信号を取得することで異常を検出すると、ＣＰＵ２１をリセットさせるためのリセット信号を、電源回路２６に出力する。
【００２３】
電源回路２６は、車両に搭載されたバッテリから供給されるバッテリ電圧ＶＢに基づいて、ＣＰＵ２１の動作する動作電圧Ｖｃｐｕ、ＲＡＭ２２の動作するＶｒａｍ、及びＲＯＭ２３の動作するＶｒｏｍをそれぞれ生成する。電源回路２６は、たとえばＣＰＵ２１をリセットさせるためのリセット信号を取得すると、ＣＰＵ２１の動作電圧Ｖｃｐｕを一時的に遮断した後、動作電圧Ｖｃｐｕの供給を再開する。これにより、ＣＰＵ２１がリセットされる。
【００２４】
次に、図２〜図６に基づき、ソフトウェア（プログラム）の異常検出時に、制御装置１０が実行する処理について説明する。
【００２５】
先ず、ソフトウェアの異常検出のために、ＲＯＭ２３に記憶されている情報について説明する。図２に示すように、ＲＯＭ２３は、情報の格納領域として、ＣＰＵ２１が実行するジャンプ処理のプログラムが記憶されたジャンプ処理の領域２３ａと、異常要因アドレス領域２３ｂを有している。
【００２６】
ジャンプ処理の領域２３ａには、ソフトウェアの異常が検出された場合に、異常の要因（以下、異常要因と示す）に対応する特定のアドレスへジャンプし、ジャンプ先のアドレスのデータを読み出すジャンプ処理のプログラムが記憶されている。
【００２７】
異常要因アドレス領域２３ｂは、上記ジャンプ処理によるジャンプ先の領域である。ソフトウェアの異常要因としては、たとえばＲＯＭサムチェック異常、ＲＡＭチェック異常、状態遷移異常などがある。本実施形態では、図３に示すように、異常要因ごとに特定のアドレスが割り振られている。そして、図４に示すように、異常要因に対応する各アドレスの情報（データ及び誤り訂正符号）が、ＥＣＣエラーが生じるように予め記憶されている。
【００２８】
具体的には、図４に示すデータにより生成される誤り訂正符号、すなわち上記ＥＣＣ１と、データと同じアドレスに記憶されている誤り訂正符号、すなわちＥＣＣ２とが一致しないように、データ及び誤り訂正符号が設定されている。このように、異常要因アドレス領域２３ｂには、図４に示す情報が記憶されている。ＲＯＭ２３には、それ以外にも、周知のように、ソフトウェアの異常を検出するためのプログラム、ＲＯＭサムチェックを実行するためのプログラムなどが記憶されている。
【００２９】
次いで、ＣＰＵ２１及びＥＣＣ機能部２４が実行する処理について説明する。図５は、ＲＯＭ２３に記憶されたプログラムにしたがってＣＰＵ２１が実行する処理を示している。ＣＰＵ２１は、図５に示す処理を所定の周期で繰り返し実行する。図６は、ＣＰＵ２１及びＥＣＣ機能部２４が実行する処理を示している。
【００３０】
図５に示すように、ＣＰＵ２１は、先ず、ソフトウェアの異常検出処理を実行する（ステップＳ１０）。ＣＰＵ２１は、ＲＯＭサムチェックなどを実行する。
【００３１】
次いで、ＣＰＵ２１は、ステップＳ１０の結果に基づいて、ソフトウェアの異常が生じているか否かを判定する（ステップＳ１１）。ステップＳ１０，Ｓ１１の処理が、異常検出部に相当する。たとえばＣＰＵ２１は、ＲＯＭ２３における対象領域の総和が所定値とならない場合、ＲＯＭサムチェック異常が生じていると判定する。図６に示すように、ＣＰＵ２１は、時刻ｔ１でソフトウェアの異常を検出する。すなわち、時刻ｔ１で、ステップＳ１０，Ｓ１１の処理を実行する。
【００３２】
異常が生じていると判定した場合、ＣＰＵ２１は、異常要因に対応するアドレスへのジャンプ処理を実行する（ステップＳ１２）。ステップＳ１２の処理が、ジャンプ処理部に相当する。異常が生じていると判定した場合、ＣＰＵ２１は、ＲＯＭ２３のジャンプ処理の領域２３ａに記憶されているプログラムにしたがって、異常要因に対応するアドレスへジャンプする。そして、ジャンプ先のアドレス、すなわち、異常要因に対応するアドレスのデータを読み出す。そして、一連の処理を終了する。図６に示すように、ＣＰＵ２１は、時刻ｔ２で、ジャンプ処理（ジャンプ及び読み出し）を実行する。
【００３３】
なお、ＣＰＵ２１は、ステップＳ１１において、ソフトウェアの異常なしと判定した場合、ステップＳ１２の処理を実行せずに、一連の処理を終了する。
【００３４】
ＣＰＵ２１によるステップＳ１２の処理、具体的にはデータの読み出し処理をトリガにして、ＥＣＣ機能部２４は、ＥＣＣエラー検出処理を開始する。ＣＰＵ２１が、ＲＯＭ２３の異常要因アドレス領域２３ｂから、検出された異常要因に対応するアドレスのデータを読み出す際、ＥＣＣ機能部２４は、読み出したデータに基づいて誤り訂正符号（ＥＣＣ１）を生成する。そして、生成したＥＣＣ１と、データとともに異常要因アドレス領域２３ｂに記憶されている誤り訂正符号（ＥＣＣ２）とを照合する。
【００３５】
上記したように、異常要因アドレス領域２３ｂに記憶されている情報（データ及び誤り訂正符号）は、ＥＣＣエラーが生じるように予め記憶されたものである。したがって、ＥＣＣ１及びＥＣＣ２は必ず一致せず、ＥＣＣ機能部２４は、ＥＣＣエラーが生じたと判定する。このように、ソフトウェアの異常が生じたときには、ＥＣＣエラーが必ず生じるようになっている。図６に示すように、ＣＰＵ２１は、時刻ｔ３で、誤り訂正符号の照合を実施する。
【００３６】
上記したように、ＥＣＣ機能部２４は、エラーアドレス確認レジスタ２４ａを有している。したがって、ソフトウェアの異常によりＥＣＣエラーが生じると、ＥＣＣ機能部２４は、エラーアドレス確認レジスタ２４ａに、ＥＣＣエラーが発生したアドレス、すなわちソフトウェアの異常要因に対応するアドレスを記憶する。
【００３７】
また、ＥＣＣ機能部２４は、ソフトウェアの異常によりＥＣＣエラーが生じると、その旨を示すＥＣＣエラー信号をリセット部２５に出力する。これにより、リセット部２５は、ＣＰＵ２１をリセットさせるためのリセット信号を、電源回路２６に出力する。そして、電源回路２６は、ＣＰＵ２１の動作電圧Ｖｃｐｕを一時的に遮断した後、動作電圧Ｖｃｐｕの供給を再開する。
【００３８】
次に、本実施形態に係る制御装置１０及びマイコン２０の効果について説明する。
【００３９】
本実施形態によれば、ＲＯＭ２３の異常要因アドレス領域２３ｂのアドレスが、異常要因ごとに割り振られており、各アドレスには、ＥＣＣ機能部２４による照合時にＥＣＣエラーが生じるべく、データ及び誤り訂正符号が予め記憶されている。ＣＰＵ２１は、ソフトウェアの異常が生じると、ＲＯＭ２３における異常要因に対応するアドレスへジャンプし、ジャンプ先のアドレス、すなわち異常要因に対応するアドレスのデータを読み出す。
【００４０】
異常要因アドレス領域２３ｂから、検出された異常要因に対応するアドレスのデータを読み出す際、ＥＣＣ機能部２４は、読み出したデータに基づいて誤り訂正符号（ＥＣＣ１）を生成する。そして、生成したＥＣＣ１と、データとともに異常要因アドレス領域２３ｂに記憶されている誤り訂正符号（ＥＣＣ２）とを照合する。上記したように、異常要因アドレス領域２３ｂに記憶されている情報（データ及び誤り訂正符号）は、ＥＣＣエラーが生じるように予め記憶されたものであるため、ＥＣＣ１及びＥＣＣ２は必ず一致せず、ＥＣＣ機能部２４は、ＥＣＣエラーが生じたと判定する。また、ソフトウェアの異常によりＥＣＣエラーが生じると、ＥＣＣ機能部２４は、エラーアドレス確認レジスタ２４ａに、ＥＣＣエラーが発生したアドレス、すなわちソフトウェアの異常要因に対応するアドレスを記憶する。
【００４１】
近年、機能安全対応として、マイコン２０はＥＣＣ機能部２４を備えている。本実施形態では、メモリ、たとえばＲＡＭ２２上に異常要因を解析するためのフラグを設けなくとも、マイコン２０が備えるＥＣＣ機能部２４を利用し、ＥＣＣ機能部２４のエラーアドレス確認レジスタ２４ａに、ソフトウェアの異常要因に対応するアドレスを記憶する。したがって、開発時やディーラーなどでの異常解析時において、エラーアドレス確認レジスタ２４ａに記憶されているアドレスから、どのような要因のソフトウェア異常が生じたかを確認することができる。たとえば、開発時にはエラーアドレス確認レジスタ２４ａに記憶されているアドレスをデバッグの情報とし、ディーラーにおいては上記アドレスをダイアグ情報として扱うことができる。
【００４２】
図７に示すように、本実施形態では、ＲＡＭ２２上に異常要因フラグ領域を設ける必要がない。また、ＲＯＭ２３上には、異常要因アドレス領域２３ｂと、ジャンプ処理のためのプログラムが記憶される領域２３ａが必要となる。たとえば、ソフトウェアの異常要因が１０あるとすると、異常要因アドレス領域として１０ｂｉｔ（２ｂｙｔｅ）、ジャンプ処理の領域２３ａとして４０ｂｙｔｅ程度、必要となる。すなわち、異常要因に関する領域として、ＲＡＭ２２の使用領域が０ｂｙｔｅであり、ＲＯＭ２３の使用領域は４２ｂｙｔｅとなる。異常要因と特定するための情報であるアドレスは、ＥＣＣ機能部２４（ハードウェア）のエラーアドレス確認レジスタ２４ａに記憶される。
【００４３】
一方、従来の構成（図７の比較例）では、ＲＡＭ上に異常要因フラグ領域が必要となる。また、ＲＯＭ２３上には、フラグ初期化処理のためのプログラムが記憶される領域と、フラグを設定する、すなわちフラグをセットするためのプログラムが記憶される領域が必要となる。上記同様、ソフトウェアの異常要因が１０あるとすると、異常要因フラグ領域として１０ｂｉｔ（２ｂｙｔｅ）、フラグ初期化処理の領域として１００ｂｙｔｅ程度、フラグ設定処理の領域として５０ｂｙｔｅ程度、必要となる。すなわち、異常要因に関する領域として、ＲＡＭの使用領域が２ｂｙｔｅであり、ＲＯＭの使用領域は１５０ｂｙｔｅとなる。
【００４４】
このように、本実施形態によれば、フラグを用いる従来の構成に較べて、メモリ（ＲＡＭ２２及びＲＯＭ２３）の容量を低減することができる。また、処理の一部をＥＣＣ機能部２４が実行するため、ＣＰＵ２１が実行する処理、すなわち処理負荷を低減することができる。
【００４５】
この明細書の開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。たとえば、開示は、実施形態において示された要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、特許請求の範囲の記載によって示され、さらに特許請求の範囲の記載と均等の意味及び範囲内でのすべての変更を含むものと解されるべきである。
【００４６】
ＲＯＭ２３がＥＣＣ機能部２４を有する例を示した。しかしながら、ＲＡＭ２２がＥＣＣ機能部２４を有してもよい。ＲＡＭ２２及びＲＯＭ２３が、ともにＥＣＣ機能部２４を有してもよい。
【００４７】
さらには、マイコン２０内において、メモリ以外に、ＥＣＣ機能部２４が設けられてもよい。
【符号の説明】
【００４８】
１０…制御装置、
２０…マイコン、
２１…ＣＰＵ、
２２…ＲＡＭ、
２３…ＲＯＭ、
２４…ＥＣＣ機能部、
２４ａ…エラーアドレス確認レジスタ、
２５…リセット部、
２６…電源回路、
２７…バス
【図１】
0006512156.tif 000002
【図２】
0006512156.tif 000003
【図３】
0006512156.tif 000004
【図４】
0006512156.tif 000005
【図５】
0006512156.tif 000006
【図６】
0006512156.tif 000007
【図７】
0006512156.tif 000008