(57)【要約】【課題】冗長化に対応するためのデータ記憶量の増大を抑制する【解決手段】ＥＣＣ装置１７，１８は、データをＲＯＭ１２とＲＡＭ１３に書き込むときには、書き込むデータに基づいて誤り訂正符号を生成し、対応する書き込みデータに誤り訂正符号を付加する。ＥＣＣ装置１７，１８は、記憶されているデータをＲＯＭ１２とＲＡＭ１３から読み出すときに、誤り訂正符号を用いて、記憶されているデータにおける１ビットの誤りを訂正するとともに、１ビット以上の誤りを検出する。ＥＣＵ１は、ＥＣＣ装置１７，１８が１ビットの誤りを検出した場合に、１ビットの誤りが訂正された訂正データを、エミュレーションＲＡＭ２１に記憶する。またＥＣＵ１は、ＥＣＣ装置１７，１８が２ビット以上の誤りを検出した場合に、２ビット以上の誤りが検出されたデータに対応する訂正データを、エミュレーションＲＡＭ２１から取得する。【選択図】図１
2016081341.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための処理を行う電子制御装置（１）であって、
前記制御対象を制御するためのデータを記憶する記憶装置（１２，１３）と、
データを前記記憶装置に書き込むときには、書き込むデータに基づいて誤り訂正符号を生成して、対応する書き込みデータに前記誤り訂正符号を付加し、記憶されているデータを前記記憶装置から読み出すときには、読み出すデータに付加されている前記誤り訂正符号を用いて、記憶されているデータにおける１ビットの誤りを訂正するとともに、記憶されているデータにおける１ビット以上の誤りを検出する誤り検出訂正手段（１７，１８）と、
前記誤り検出訂正手段が１ビットの誤りを検出した場合に、１ビットの誤りが訂正された訂正データを、予め設定された訂正データ記憶領域（２１）に記憶する訂正データ記憶手段（Ｓ４０）と、
前記誤り検出訂正手段が２ビット以上の誤りを検出した場合に、２ビット以上の誤りが検出されたデータである２ビット誤りデータに対応する前記訂正データを、前記訂正データ記憶領域から取得する訂正データ取得手段（Ｓ７０）とを備える
ことを特徴とする電子制御装置。
【請求項２】
前記２ビット誤りデータに対応する前記訂正データが前記訂正データ記憶領域内に存在しない場合に、当該電子制御装置をリセットするリセット手段（Ｓ８０）を備える
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記２ビット誤りデータに対応する前記訂正データが前記訂正データ記憶領域内に存在しない場合に、前記誤り検出訂正手段による誤り検出を禁止する誤り検出禁止手段（Ｓ１２０）を備える
ことを特徴とする請求項１に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶する記憶装置を備える電子制御装置に関する。
【背景技術】
【０００２】
従来、制御プログラムを記憶する主記憶部と、少なくとも制御プログラムを記憶する冗長記憶部とを備え、主記憶部に記憶されている制御プログラムの異常が検出されたときに、冗長記憶部に記憶されている制御プログラムに基づいて制御を継続する電子制御装置が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９５２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の技術では、主記憶部と冗長記憶部の両方に同一の制御プログラムを記憶しているため、冗長化に対応しない場合と比較してデータ記憶量が倍増してしまうという問題があった。
【０００５】
本発明は、こうした問題に鑑みてなされたものであり、冗長化に対応するためのデータ記憶量の増大を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するためになされた本発明は、制御対象を制御するための処理を行う電子制御装置であって、記憶装置と、誤り検出訂正手段と、訂正データ記憶手段と、訂正データ取得手段とを備える。
【０００７】
記憶装置は、制御対象を制御するためのデータを記憶する。
誤り検出訂正手段は、データを記憶装置に書き込むときには、書き込むデータに基づいて誤り訂正符号を生成して、対応する書き込みデータに誤り訂正符号を付加する。さらに誤り検出訂正手段は、記憶されているデータを記憶装置から読み出すときには、読み出すデータに付加されている誤り訂正符号を用いて、記憶されているデータにおける１ビットの誤りを訂正するとともに、記憶されているデータにおける１ビット以上の誤りを検出する。
【０００８】
訂正データ記憶手段は、誤り検出訂正手段が１ビットの誤りを検出した場合に、１ビットの誤りが訂正された訂正データを、予め設定された訂正データ記憶領域に記憶する。
訂正データ取得手段は、誤り検出訂正手段が２ビット以上の誤りを検出した場合に、２ビット以上の誤りが検出されたデータである２ビット誤りデータに対応する訂正データを、訂正データ記憶領域から取得する。
【０００９】
このように構成された本発明の電子制御装置は、記憶装置から読み出されたデータに１ビットの誤りが検出された場合には、誤り訂正符号を用いて訂正されたデータを取得することができる。さらに本発明の電子制御装置は、記憶装置から読み出されたデータに２ビット以上の誤りが検出された場合には、１ビットの誤りが訂正された訂正データが記憶されている訂正データ記憶領域から、２ビット誤りデータに対応する訂正データを取得する。これにより、本発明の電子制御装置は、記憶装置から読み出されたデータに２ビット以上の誤りが検出された場合であっても、２ビット誤りデータに対応する訂正データが訂正データ記憶領域内に存在していれば、誤りがないデータを取得することができる。このため、本発明の電子制御装置は、記憶装置に記憶されたデータに２ビット以上の誤りが発生する事態に対応するために、誤りが発生する可能性を有する全てのデータを別途記憶する必要がなく、冗長化に対応するためのデータ記憶量の増大を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】電子制御装置１の構成を示すブロック図である。
【図２】第１実施形態のメモリ故障割込処理を示すフローチャートである。
【図３】第２実施形態のメモリ故障割込処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
（第１実施形態）
以下に本発明の第１実施形態を図面とともに説明する。
本実施形態の電子制御装置（Electronic Control Unit）１（以下、ＥＣＵ１という）は、車両に搭載され、車両に搭載された電子スロットル（不図示）を制御する。
【００１２】
ＥＣＵ１は、図１に示すように、マイクロコンピュータ（以下、マイコンという）２と、電子スロットル駆動回路３とを備える。
電子スロットル駆動回路３は、電子スロットルを制御するためのスロットル制御信号がマイコン２から入力され、このスロットル制御信号に基づいて、電子スロットルを駆動するための駆動信号を生成して出力する。
【００１３】
マイコン２は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＡＤ変換器１４、ＰＷＭ（Pulse Width Modulation）タイマ出力装置１５、アクセス制御装置１６、ＥＣＣ（Error Check and  correction）装置１７，１８、エラー処理装置１９、故障履歴バッファ２０、エミュレーションＲＡＭ２１およびアクセスモード切換装置２２を備える。
【００１４】
ＣＰＵ１１は、ＲＯＭ１２に記憶されたプログラムに基づいて各種処理を実行する。
ＲＯＭ１２は、記憶内容を書き換え可能な不揮発性メモリであり、ＣＰＵ１１が実行するプログラムと、プログラムの実行時に参照される定数を記憶する。
【００１５】
ＲＡＭ１３は、揮発性メモリであり、ＣＰＵ１１の演算結果等を一時的に記憶する。
ＡＤ変換器１４は、運転者によるアクセルペダルの踏み込み量を検出するアクセルセンサ６からアナログ信号が入力され、このアナログ信号の電圧値をデジタル信号に変換して、ＣＰＵ１１へ出力する。
【００１６】
ＰＷＭタイマ出力装置１５は、ＣＰＵ１１により設定されたオンタイミングとオフタイミングとの間でハイレベルになるパルス幅変調信号を、上記スロットル制御信号として生成して出力する。
【００１７】
アクセス制御装置１６は、ＣＰＵ１１によるＲＯＭ１２およびＲＡＭ１３へのメモリアクセスを制御する。
ＥＣＣ装置１７は、ＲＯＭ１２へデータを書き込むときに、書き込むデータに基づいて、誤り訂正用のデータとなる誤り訂正符号（以下、ＥＣＣ（Error Correction Code）という）を生成する。以下、ＥＣＣの生成の際に用いられたデータを元データという。そしてＥＣＣ装置１７は、生成したＥＣＣと元データとを対応付けてＲＯＭ１２に書き込む。
【００１８】
またＥＣＣ装置１７は、ＲＯＭ１２から元データを読み出すときに、この元データとともに、対応するＥＣＣを読み出す。そしてＥＣＣ装置１７は、読み出したＥＣＣと、読み出した元データを用いて生成したＥＣＣとを比較することにより、誤りが発生したか否かを検出する。
【００１９】
そしてＥＣＣ装置１７は、検出結果に基づいて、誤りが発生していないと判断した場合には、読み出した元データをそのままアクセス制御装置１６へ出力する。またＥＣＣ装置１７は、１ビットの誤りを検出した場合には、読み出したＥＣＣを用いて、読み出した元データを訂正して、訂正後の元データをアクセス制御装置１６へ出力する。またＥＣＣ装置１７は、１ビット以上の誤りを検出した場合には、エラービット数とエラーアドレスを示すＥＣＣエラー検出情報を、エラー処理装置１９へ出力する。なおエラービット数は、読み出した元データで誤りを検出したビットの数を示す。またエラーアドレスは、ＲＯＭ１２において、誤りが検出された元データが記憶されているアドレスを示す。
【００２０】
ＥＣＣ装置１８は、ＲＡＭ１３へデータを書き込むときに、書き込むデータに基づいてＥＣＣを生成する。そしてＥＣＣ装置１８は、生成したＥＣＣと元データとを対応付けてＲＡＭ１３に書き込む。
【００２１】
またＥＣＣ装置１８は、ＲＡＭ１３から元データを読み出すときに、この元データとともに、対応するＥＣＣを読み出す。そしてＥＣＣ装置１８は、読み出したＥＣＣと、読み出した元データを用いて生成したＥＣＣとを比較することにより、誤りが発生したか否かを検出する。
【００２２】
そしてＥＣＣ装置１８は、検出結果に基づいて、誤りが発生していないと判断した場合には、読み出した元データをそのままアクセス制御装置１６へ出力する。またＥＣＣ装置１８は、１ビットの誤りを検出した場合には、読み出したＥＣＣを用いて、読み出した元データを訂正して、訂正後の元データをアクセス制御装置１６へ出力する。またＥＣＣ装置１８は、１ビット以上の誤りを検出した場合には、エラービット数とエラーアドレスを示すＥＣＣエラー検出情報を、エラー処理装置１９へ出力する。なおエラービット数は、読み出した元データで誤りを検出したビットの数を示す。またエラーアドレスは、ＲＡＭ１３において、誤りが検出された元データが記憶されているアドレスを示す。
【００２３】
エラー処理装置１９は、ＥＣＣ装置１７，１８からＥＣＣエラー検出情報が入力されると、このＥＣＣエラー検出情報をＣＰＵ１１へ出力する。またエラー処理装置１９は、ＥＣＣ装置１７，１８により検出されたエラー以外にも、ＲＯＭ１２とＲＡＭ１３の異常を検出することが可能に構成されている。そしてエラー処理装置１９は、ＲＯＭ１２とＲＡＭ１３の異常を検出すると、その異常の内容を示すメモリ異常検出情報をＣＰＵ１１へ出力する。
【００２４】
故障履歴バッファ２０は、ＥＣＣ装置１７，１８によって誤りが検出されたデータのアドレスを記憶する。
エミュレーションＲＡＭ２１は、ＥＣＣ装置１７，１８によって誤りが訂正された後のデータ（以下、訂正データという）を記憶する。
【００２５】
アクセスモード切換装置２２は、ＣＰＵ１１からの指示に基づいて、アクセス制御装置１６がデータへアクセスするときの方法（以下、アクセスモードという）を変更する。
このように構成されたＥＣＵ１において、マイコン２のＣＰＵ１１は、メモリ故障割込処理を実行する。このメモリ故障割込処理は、ＥＣＣエラー検出情報またはメモリ異常検出情報がＣＰＵ１１に入力されることにより開始される割り込み処理である。
【００２６】
このメモリ故障割込処理が実行されると、ＣＰＵ１１は、図２に示すように、まずＳ１０にて、ＥＣＣエラーが発生したか否かを判断する。具体的には、今回のメモリ故障割込処理がＥＣＣエラー検出情報の入力により開始された場合には、ＥＣＣエラーが発生したと判断する。一方、メモリ異常検出情報の入力により開始された場合には、ＥＣＣエラーが発生していないと判断する。
【００２７】
そして、ＥＣＣエラーが発生していない場合には（Ｓ１０：ＮＯ）、Ｓ２０にて、メモリ異常検出情報が示す異常の内容に応じて予め設定された異常対応処理を実行し、メモリ故障割込処理を終了する。一方、ＥＣＣエラーが発生した場合には（Ｓ１０：ＹＥＳ）、Ｓ３０にて、ＥＣＣエラー検出情報が示すエラービット数に基づいて、ＥＣＣエラーが１ビットの誤りであるか否かを判断する。
【００２８】
ここで、１ビットの誤りである場合には（Ｓ３０：ＹＥＳ）、Ｓ４０にて、訂正データを時系列でエミュレーションＲＡＭ２１に記憶する。具体的には、ＥＣＣ装置１７，１８からアクセス制御装置１６を介して入力された直近のデータを時系列でエミュレーションＲＡＭ２１に記憶する。
【００２９】
さらにＳ５０にて、今回のメモリ故障割込処理の開始の起因となったＥＣＣエラー検出情報が示すエラーアドレスを、時系列で故障履歴バッファ２０に記憶し、メモリ故障割込処理を終了する。
【００３０】
またＳ３０にて、１ビットの誤りでない場合には（Ｓ３０：ＮＯ）、２ビット以上の誤りであると判断し、Ｓ６０にて、今回のメモリ故障割込処理の開始の起因となったＥＣＣエラー検出情報が示すエラーアドレス（以下、今回のエラーアドレスという）が、故障履歴バッファ２０に記憶されているか否かを判断する。
【００３１】
ここで、今回のエラーアドレスが故障履歴バッファ２０に記憶されている場合には（Ｓ６０：ＹＥＳ）、Ｓ７０にて、アクセスモードを通常モードからエミュレーションモードへ変更させるエミュレーションモード指令をアクセスモード切換装置２２へ出力し、メモリ故障割込処理を終了する。これにより、ＣＰＵ１１からエミュレーションモード指令を取得したアクセスモード切換装置２２は、アクセス制御装置１６のアクセスモードを通常モードからエミュレーションモードへ切り換える。
【００３２】
なお通常モードでは、アクセス制御装置１６は、ＣＰＵ１１が指示するアドレスに対応するデータをＲＯＭ１２またはＲＡＭ１３から読み出す。一方、エミュレーションモードでは、アクセス制御装置１６は、今回のエラーアドレスに対応するデータをエミュレーションＲＡＭ２１から読み出す。なお、エラーアドレスと訂正データはそれぞれ時系列で記憶されている。このため、今回のエラーアドレスが故障履歴バッファ２０内に記憶されている記憶順に基づき、エミュレーションＲＡＭ２１内において今回のエラーアドレスに対応する訂正データが記憶されている記憶位置を特定することができる。
【００３３】
そしてアクセス制御装置１６は、今回のエラーアドレスに対応するデータをエミュレーションＲＡＭ２１から読み出し、このデータをＣＰＵ１１へ出力すると、通常モードへ遷移する。
【００３４】
またＳ６０にて、今回のエラーアドレスが故障履歴バッファ２０に記憶されていない場合には（Ｓ６０：ＮＯ）、Ｓ８０にて、マイコン２のリセットを行い、メモリ故障割込処理を終了する。
【００３５】
このように構成されたＥＣＵ１は、電子スロットルを制御するためのデータを記憶するＲＯＭ１２およびＲＡＭ１３を備える。
またＥＣＵ１は、ＥＣＣ装置１７，１８を備える。ＥＣＣ装置１７およびＥＣＣ装置１８はそれぞれ、データをＲＯＭ１２およびＲＡＭ１３に書き込むときには、書き込むデータに基づいて誤り訂正符号を生成して、対応する書き込みデータに誤り訂正符号を付加する。さらに、ＥＣＣ装置１７およびＥＣＣ装置１８はそれぞれ、記憶されているデータをＲＯＭ１２およびＲＡＭ１３から読み出すときには、読み出すデータに付加されている誤り訂正符号を用いて、記憶されているデータにおける１ビットの誤りを訂正するとともに、記憶されているデータにおける１ビット以上の誤りを検出する。
【００３６】
そしてＥＣＵ１は、ＥＣＣ装置１７，１８が１ビットの誤りを検出した場合に、１ビットの誤りが訂正された訂正データを、エミュレーションＲＡＭ２１に記憶する（Ｓ４０）。またＥＣＵ１は、ＥＣＣ装置１７，１８が２ビット以上の誤りを検出した場合に、２ビット以上の誤りが検出されたデータ（以下、２ビット誤りデータという）に対応する訂正データを、エミュレーションＲＡＭ２１から取得する（Ｓ７０）。
【００３７】
このようにＥＣＵ１は、ＲＯＭ１２およびＲＡＭ１３から読み出されたデータに１ビットの誤りが検出された場合には、誤り訂正符号を用いて訂正されたデータを取得することができる。さらにＥＣＵ１は、ＲＯＭ１２およびＲＡＭ１３から読み出されたデータに２ビット以上の誤りが検出された場合には、１ビットの誤りが訂正された訂正データが記憶されているエミュレーションＲＡＭ２１から、２ビット誤りデータに対応する訂正データを取得する。これによりＥＣＵ１は、ＲＯＭ１２およびＲＡＭ１３から読み出されたデータに２ビット以上の誤りが検出された場合であっても、２ビット誤りデータに対応する訂正データがエミュレーションＲＡＭ２１内に存在していれば、誤りがないデータを取得することができる。このためＥＣＵ１は、ＲＯＭ１２およびＲＡＭ１３に記憶されたデータに２ビット以上の誤りが発生する事態に対応するために、誤りが発生する可能性を有する全てのデータを別途記憶する必要がなく、冗長化に対応するためのデータ記憶量の増大を抑制することができる。
【００３８】
またＥＣＵ１は、２ビット誤りデータに対応する訂正データがエミュレーションＲＡＭ２１内に存在しない場合に、ＥＣＵ１をリセットする（Ｓ８０）。これによりＥＣＵ１は、ＲＯＭ１２およびＲＡＭ１３から読み出されたデータに誤りが存在するという異常状態になった場合に、ＥＣＵ１をリセットすることにより、ＥＣＵ１を正常な状態に戻すことができる。
【００３９】
以上説明した実施形態において、ＥＣＵ１は本発明における電子制御装置、ＲＯＭ１２およびＲＡＭ１３は本発明における記憶装置、ＥＣＣ装置１７，１８は本発明における誤り検出訂正手段、エミュレーションＲＡＭ２１は本発明における訂正データ記憶領域、Ｓ４０の処理は本発明における訂正データ記憶手段、Ｓ７０の処理は本発明における訂正データ取得手段、Ｓ８０の処理は本発明におけるリセット手段である。
【００４０】
（第２実施形態）
以下に本発明の第２実施形態を図面とともに説明する。なお第２実施形態では、第１実施形態と異なる部分を説明する。
【００４１】
第２実施形態のＥＣＵ１は、メモリ故障割込処理が変更された点以外は第１実施形態と同じである。
第２実施形態のメモリ故障割込処理は、図３に示すように、Ｓ８０の処理の代わりにＳ１１０，Ｓ１２０の処理が実行される点以外は第１実施形態と同じである。
【００４２】
すなわち、Ｓ６０にて、今回のエラーアドレスが故障履歴バッファ２０に記憶されていない場合には（Ｓ６０：ＮＯ）、Ｓ１１０にて、ＰＷＭタイマ出力装置１５がパルス幅変調信号を出力しないように、ＰＷＭタイマ出力装置１５の設定を変更する。これによりＥＣＵ１は、電子スロットルの駆動を停止する。
【００４３】
さらにＳ１２０にて、ＥＣＣ装置１７，１８による誤り検出を禁止し、メモリ故障割込処理を終了する。これにより、ＥＣＣ装置１７およびＥＣＣ装置１８は、それぞれＲＯＭ１２およびＲＡＭ１３からデータを読み出した後に、読み出したデータで誤りが発生したか否かを検出することなく、読み出したデータをアクセス制御装置１６へ出力する。
【００４４】
このように構成されたＥＣＵ１は、２ビット誤りデータに対応する訂正データがエミュレーションＲＡＭ２１内に存在しない場合に、ＥＣＣ装置１７，１８による誤り検出を禁止する（Ｓ１２０）。これによりＥＣＵ１は、リセットを行うことなくＥＣＵ１による制御を継続した場合であっても、エミュレーションＲＡＭ２１内に存在しない２ビット誤りデータが繰り返しＲＯＭ１２およびＲＡＭ１３から読み出されたときに、ＥＣＣ装置１７，１８が繰り返しＥＣＣエラー検出情報を出力してしまうという事態の発生を抑制することができる。
【００４５】
以上説明した実施形態において、Ｓ１２０の処理は本発明における誤り検出禁止手段である。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
【００４６】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【符号の説明】
【００４７】
１…ＥＣＵ、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１７，１８…ＥＣＣ装置、２１…エミュレーションＲＡＭ
【図１】
2016081341.tif 000003
【図２】
2016081341.tif 000004
【図３】
2016081341.tif 000005