(57)【特許請求の範囲】
【請求項１】
メモリ及びプロセッサを備えた自動車用電子制御装置において、
前記プロセッサが、前記メモリの一部の領域を論理的に分割した各分割領域について、フォールトトレラント時間間隔より短い所定時間ごとに、そこに格納されたデータが書き換えられているか否かを順番に診断する、
ことを特徴とする自動車用電子制御装置。
【請求項２】
前記メモリの一部の領域の分割数は、前記プロセッサの処理能力に応じて設定される、
ことを特徴とする請求項１に記載の自動車用電子制御装置。
【請求項３】
前記メモリの一部の領域は、自動車の安全性に係るデータが格納されている領域である、
ことを特徴とする請求項１又は請求項２に記載の自動車用電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車用電子制御装置に関する。
【背景技術】
【０００２】
自動車に搭載される電子制御装置では、安全性を確保するため、機能安全規格ＩＳＯ２６２６２を準拠する要求が高まっている。機能安全規格において、ＲＡＭ（Random Access Memory）などのメモリの異常を診断するため、特開２００３−３２３３５３号公報（特許文献１）に記載されるように、自動車の安全性に与える影響度に応じて記憶領域を分割し、影響度に応じて各分割領域を診断する間隔を変更する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３２３３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、機能安全規格においては、フォールト（個々の部品の故障）の発生を起点として、車両の危険事象が発生すると考えられるまでのフォールトトレラント時間間隔（ＦＴＴＩ）を考慮しなければならない。ＦＴＴＩは、例えば、電子制御スロットルシステムにおいて、スロットルバルブを制御するシステムの部品に何らかの異常が発生したとき、それがスロットルバルブの開度異常となって、車両が制御不能となるまでの時間間隔である。
【０００５】
一方、電子制御装置のメモリ領域は、制御プログラムの複雑化などによって容量が大きくなっており、これに伴って分割領域の容量も大きくなっている。このため、分割領域を診断するのにある程度の時間を要し、電子制御装置が所定時間ごとに実行する定時ジョブに影響が及んでしまうおそれがあった。従って、自動車の安全性に与える影響が高い記憶領域をＦＴＴＩ内に診断することが困難であり、メモリ診断について機能安全規格を準拠することはできなかった。
【０００６】
そこで、本発明は、メモリ診断について機能安全規格を準拠可能な、自動車用電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
このため、自動車用電子制御装置のプロセッサは、メモリの一部の領域を論理的に分割した各分割領域について、フォールトトレラント時間間隔より短い所定時間ごとに、そこに格納されたデータが書き換えられているか否かを順番に診断する。
【発明の効果】
【０００８】
本発明によれば、メモリ診断について機能安全規格を準拠することができる。
【図面の簡単な説明】
【０００９】
【図１】車両用内燃機関の一例を示すシステム図である。
【図２】電子制御装置の概要を例示するブロック図である。
【図３】電子制御スロットルチャンバの論理的制御構造を例示する説明図である。
【図４】ＲＡＭの論理的分割構造を例示する説明図である。
【図５】機能安全規格を準拠する第１の手法の説明図である。
【図６】機能安全規格を準拠する第２の手法の説明図である。
【図７】定時ジョブの一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
図１は、車両用内燃機関の一例を示す。
【００１１】
内燃機関１００の吸気通路１１０には、吸気流通方向に沿って、空気中の埃などを濾過するエアクリーナ１２０、電子制御スロットルチャンバ１３０、図示しない動弁機構により開閉する吸気バルブ１４０がこの順番で配設されている。電子制御スロットルチャンバ１３０と吸気バルブ１４０との間に位置する吸気通路１１０には、吸気バルブ１４０の傘部に向けて燃料を噴射する、電子制御式の燃料噴射弁１５０が取り付けられている。
【００１２】
電子制御スロットルチャンバ１３０は、吸気流量を調整するスロットルバルブ１３２と、スロットルバルブ１３２を回動させるステッピングモータなどのアクチュエータ１３４と、スロットルバルブ１３２の開度（スロットル開度）を検出するポテンショメータなどのスロットルポジションセンサ１３６と、を有する。そして、電子制御スロットルチャンバ１３０は、外部からの開度信号に応じて、アクチュエータ１３４によってスロットルバルブ１３２を開閉する。
【００１３】
一方、内燃機関１００の排気通路１６０には、排気流通方向に沿って、排気バルブ１７０、排気中のＣＯ（一酸化炭素），ＨＣ（炭化水素），ＮＯｘ（窒素酸化物）を同時に還元浄化する三元触媒コンバータ１８０、排気音を低減するマフラー１９０がこの順番で配設されている。
【００１４】
また、内燃機関１００のシリンダヘッド１０２には、燃焼室１０４を臨むように、ディストリビュータ２００からの点火電流に応答して、燃料と空気との混合気を火花点火する点火プラグ２１０が取り付けられている。なお、ディストリビュータ２００は、内燃機関１００の各気筒に配設された点火プラグ２１０に対して、運転状態に応じたタイミングで点火電流を分配する。
【００１５】
内燃機関１００の所定箇所には、内燃機関１００の回転速度を検出する回転速度センサ２２０と、内燃機関１００の負荷を検出する負荷センサ２３０と、が取り付けられている。ここで、内燃機関１００の負荷としては、例えば、吸気流量、吸気圧力、過給圧力など、内燃機関１００の出力トルクと密接に関連する状態量を使用することができる。
【００１６】
車両の運転者が操作するアクセルペダル２４０には、アクセルペダル２４０の踏み込み量（アクセル操作量）を検出するアクセルセンサ２５０が併設されている。ここで、アクセルセンサ２５０としては、例えば、ポテンショメータを使用することができる。
【００１７】
スロットルポジションセンサ１３６、回転速度センサ２２０、負荷センサ２３０及びアクセルセンサ２５０の各出力信号は、マイクロコンピュータを内蔵した電子制御装置２６０に入力される。電子制御装置２６０は、図２に示すように、プロセッサの一例として挙げられるＣＰＵ（Central Processing Unit）２６２と、揮発性メモリの一例として挙げられるＲＡＭ２６４と、不揮発性メモリの一例として挙げられるＲＯＭ（Read Only Memory）２６６と、ＣＰＵ２６２，ＲＡＭ２６４及びＲＯＭ２６６を相互に接続するバス２６８と、を有する。ここで、ＲＯＭ２６６としては、例えば、電気的にデータを書き換え可能なフラッシュＲＯＭを使用することができる。なお、ＲＡＭ２６４が、メモリの一例として挙げられる。
【００１８】
そして、電子制御装置２６０は、ＲＯＭ２６６に格納された制御プログラムを実行することで、スロットル開度，回転速度，負荷，アクセル操作量などに応じて、電子制御スロットルチャンバ１３０，燃料噴射弁１５０及びディストリビュータ２００を夫々電子制御する。
【００１９】
即ち、電子制御装置２６０は、内燃機関１００の回転速度及び負荷に応じた燃料噴射量及び燃料噴射時期を求め、クランク角度が燃料噴射時期になったときに、燃料噴射弁１５０に燃料噴射量に応じた作動信号を出力する。また、電子制御装置２６０は、内燃機関１００の回転速度及び負荷に応じた点火時期を求め、クランク角度が点火時期になったときに、ディストリビュータ２００に作動信号を出力する。さらに、電子制御装置２６０は、アクセル操作量及びその変化量に応じた目標スロットル開度を求め、目標スロットル開度とスロットル開度との偏差に応じて、電子制御スロットルチャンバ１３０のアクチュエータ１３４をフィードバック制御する。
【００２０】
電子制御装置２６０の制御部分においては、図３に示すように、機能安全を適用しなければならない安全関連部分（ＡＳＩＬ；Automotive Safety Integrity Level）と機能安全を適用する必要がない非安全関連部分（ＱＭ；Quality Management）とが混在している。ここで、安全関連部分としては、車両の安全性に直接影響を及ぼす、例えば、電子制御スロットルチャンバ１３０の制御が一例として挙げられる。
【００２１】
このため、電子制御装置２６０のＲＡＭ２６４は、図４に示すように、ＡＳＩＬに相当するＳＭ（Safety Mechanism）ＲＡＭ領域２６４Ａと、ＱＭに相当する通常ＲＡＭ領域２６４Ｂと、に論理的に分けることができる。なお、電子制御装置２６０のＲＡＭ２６４に、ＤＭＡＣ（Direct Memory Access Controller）がメモリと直接データを転送する、ＤＭＡＣＲＡＭ領域を含めることができる。
【００２２】
ＳＭＲＡＭ領域２６４Ａは、機能安全規格を準拠するため、ＦＴＴＩ内に、他のエレメント（燃料噴射システムなどの他のシステム）によって内容が書き換えられているか否か、要するに、他のエレメントから侵害（ＲＡＭ侵害）があるか否かを診断する必要がある。ＲＡＭ侵害が発生する一例としては、例えば、プログラムのバグによって他のエレメントのメモリ領域をアクセスすることが挙げられる。
【００２３】
ＳＭＲＡＭ領域２６４Ａのサイズが大きい場合、そこに格納されているデータのすべてをチェックするのにある程度の時間を要し、電子制御装置２６０が所定時間ごとに実行する定時ジョブ、例えば、電子制御スロットルチャンバ１３０の開度制御に影響が及んでしまうおそれがある。なお、ＳＭＲＡＭ領域２６４Ａが、自動車の安全性に係るデータが格納されている領域の一例として挙げられる。
【００２４】
そこで、次のような手法を適用することで、定時ジョブへの影響を軽減しつつ、ＦＴＴＩ内にＳＭＲＡＭ領域２６４ＡにおいてＲＡＭ侵害が発生しているか否かの診断を可能とする。なお、通常ＲＡＭ領域２６４Ｂについては、例えば、１バイトずつ所定のデータを書き込んで読み込む、いわゆる「Ｒｅａｄ／Ｗｒｉｔｅチェック」など、公知の手法でＲＡＭ診断を行うことができる。
【００２５】
［第１の手法］
ＲＡＭ２６４の一部の領域であるＳＭＲＡＭ領域２６４Ａを、図５に示すように、所定数ｎ（ｎ：１以上の整数）で論理的に分割した、分割領域１〜ｎに分ける。そして、電子制御装置２６０のＣＰＵ２６２は、ＦＴＴＩよりも短い所定時間（例えば、１０ｍｓ）ごとに、例えば、ＳＵＭ値，その反転値，ハッシュ値などの異常検出値を用いてＲＡＭ侵害の有無を診断する。ここで、ＳＭＲＡＭ領域２６４Ａを分割する所定数ｎは、すべての分割領域１〜ｎのＲＡＭ侵害の診断を終了するまでに要する時間がＦＴＴＩ以下となる制約下で、例えば、データの重要度、ＣＰＵ２６２の処理能力などを考慮して適宜決定することができる。なお、各分割領域１〜ｎは、同一サイズに限らず、異なるサイズを有していてもよい（以下同様）。
【００２６】
電子制御装置２６０が、１つのＣＰＵ２６２を有する場合、ＳＭＲＡＭ領域２６４Ａの分割領域１〜ｎは、例えば、１０ｍｓ間隔で実行される定時ジョブでＲＡＭ侵害を診断することができる。この場合、電子制御装置２６０のＣＰＵ２６２は、処理負荷を軽減すべく、処理負荷が小さいバックグラウンドで異常検出値を求めることができる。
【００２７】
電子制御装置２６０が、２つのＣＰＵ２６２を有する場合、ＳＭＲＡＭ領域２６４Ａの分割領域１〜ｎは、一方のＣＰＵ２６２が実行する定時ジョブでＲＡＭ侵害を診断し、他方のＣＰＵ２６２が異常検出値を求めることができる。また、ＲＡＭ侵害の診断精度を向上させるために、２つのＣＰＵ２６２が同期ととりながら、ＲＡＭ侵害の診断を多重化することもできる。なお、電子制御装置２６０は、２つのＣＰＵ２６２の代わりに、１つのチップに複数のコアが内蔵されたマルチコアＣＰＵを使用することもできる。
【００２８】
このようにすれば、電子制御装置２６０のＣＰＵ２６２は、定時ジョブを実行するとき、ＳＭＲＡＭ領域２６４Ａの分割領域１〜ｎの１つについて、ＲＡＭ侵害を順番に診断することができる。この場合、ＳＭＲＡＭ領域２６４Ａを分割する所定数ｎは、ＣＰＵ２６２の処理能力などを考慮して適宜決定されているため、所定時間ごとに実行される定時ジョブには影響が及び難い。また、ＳＭＲＡＭ領域２６４Ａは、ＲＡＭ２６４の一部の領域であるため、その全領域についてＲＡＭ侵害を診断するよりも短い時間で、ＲＡＭ侵害の診断を終了することができる。従って、ＳＭＲＡＭ領域２６４Ａのすべての分割領域１〜ｎは、ＦＴＴＩ内にＲＡＭ侵害の診断が終了し、機能安全規格を準拠することができる。
【００２９】
［第２の手法］
ＲＡＭ２６４の一部の領域であるＳＭＲＡＭ領域２６４Ａを、図６に示すように、所定数ｎ（ここではｎ＝３とする）で論理的に分割した、分割領域１〜３に分ける。各分割領域１，２及び３には、他の分割領域の異常判定値、即ち、分割領域３，１及び２の異常判定値を格納する領域が夫々確保されている。そして、電子制御装置２６０のＣＰＵ２６２は、電子制御装置２６０の起動時に、すべての分割領域１〜３の異常判定値を求め、これを各分割領域１〜３に格納しておく。なお、ＳＭＲＡＭ領域２６４Ａを分割する所定数ｎは、３に限らず、データの重要度やＣＰＵ２６２の処理能力などに応じて、２又は４以上とすることもできる。
【００３０】
電子制御装置２６０のＣＰＵ２６２は、最初に定時ジョブを実行するとき、分割領域１について異常判定値を用いてＲＡＭ侵害を診断し、所定の処理を実行した後、異常判定値を分割領域２に格納する。次に、電子制御装置２６０のＣＰＵ２６２は、定時ジョブを実行するとき、分割領域２について異常判定値を用いてＲＡＭ侵害を診断し、所定の処理を実行した後、異常判定値を分割領域３に格納する。その次に、電子制御装置２６０のＣＰＵ２６２は、定時ジョブを実行するとき、分割領域３について異常判定値を用いてＲＡＭ侵害を診断し、所定の処理を実行した後、異常判定値を分割領域１に格納する。このようにして、電子制御装置２６０のＣＰＵ２６２は、所定時間ごとに分割領域１〜３について順番にＲＡＭ侵害を診断し、ＲＡＭ侵害の診断に用いた異常判定値を他の分割領域に格納する。
【００３１】
このようにすれば、先の第１の手法の作用及び効果に加えて、異常判定値もＲＡＭ侵害の診断対象となり、診断精度を向上させることができる。なお、第２の手法の作用及び効果については、先の第１の手法の説明を参照されたい。
【００３２】
第１の手法及び第２の手法は、以下に説明するように、例えば、定時ジョブに組み込むことで実現できる。
【００３３】
図７は、電子制御装置２６０が起動されたことを契機として、そのＣＰＵ２６２が起動時及び所定時間ごとに実行する、定時ジョブの一例を示す。ここでは、電子制御装置２６０のＣＰＵ２６２は、定時ジョブを実行するたびに、ＳＭＲＡＭ領域２６４Ａを所定数ｎで分割した各分割領域１〜ｎについて順番にＲＡＭ侵害を診断する。要するに、定時ジョブを実行するときに、ＲＡＭ侵害の診断対象となる分割領域が順次変更される。なお、以下の例では、定時ジョブにＲＡＭ侵害の診断を組み込んでいるが、他の定時ジョブとしてＲＡＭ侵害を診断することもできる。
【００３４】
ステップ１（図では「Ｓ１」と略記する。以下同様。）では、電子制御装置２６０のＣＰＵ２６２が、ＳＵＭ値，その反転値，ハッシュ値などの異常判定値を用いて、診断対象となる分割領域についてＲＡＭ侵害を診断する。具体的には、電子制御装置２６０のＣＰＵ２６２は、診断対象となる分割領域に格納されている異常判定値を読み込むと共に、診断対象となる分割領域に格納されているデータについて所定演算を施して異常判定値を求める。そして、電子制御装置２６０のＣＰＵ２６２は、分割領域から読み込んだ異常判定値と分割領域のデータから求めた異常判定値とを比較することで、分割領域のデータが書き換えられているか否か、要するに、ＲＡＭ侵害が発生しているか否かを診断する。
【００３５】
ステップ２では、電子制御装置２６０のＣＰＵ２６２が、ステップ１の診断結果に応じて、診断対象となる分割領域にＲＡＭ侵害が発生しているか否かを判定する。そして、電子制御装置２６０のＣＰＵ２６２は、ＲＡＭ侵害が発生していないと判定すれば（Ｙｅｓ）、処理をステップ３へと進める。一方、電子制御装置２６０のＣＰＵ２６２は、ＲＡＭ侵害が発生していると判定すれば（Ｎｏ）、処理をステップ５へと進める。
【００３６】
ステップ３では、電子制御装置２６０のＣＰＵ２６２が、ＲＡＭ侵害が発生していない通常時の処理、例えば、アクセル操作量及びその変化量に基づくスロットル開度制御を実行する。
【００３７】
ステップ４では、通常時の処理により診断対象となる分割領域のデータが書き換えられた可能性を勘案し、電子制御装置２６０のＣＰＵ２６２が、分割領域に格納されているデータについて所定演算を施して異常判定値を求める。なお、ここで求められた異常判定値は、分割領域に格納され、後のＲＡＭ侵害の診断に利用される。
【００３８】
ステップ５では、診断対象となる分割領域にＲＡＭ侵害が発生しているため、電子制御装置２６０のＣＰＵ２６２が、通常の定時ジョブを異常時の処理へと移行する。異常時の処理としては、例えば、内燃機関１００の出力を制限する、フェールセーフ処理などが挙げられる。
【００３９】
このようにすれば、ＳＭＲＡＭ領域２６４ＡにＲＡＭ侵害が発生した場合、通常の定時ジョブの代わりに異常時の処理が実行されるため、例えば、電子制御スロットルチャンバ１３０の異常によって車両が制御不能となることがなく、車両の安全性を確保することができる。また、ＳＭＲＡＭ領域２６４ＡのＲＡＭ侵害の診断機能は、ソフトウエアで実現されるため、例えば、ＯＳ（Operating System）などが相違する、様々な電子制御装置であっても容易に実装することができる。
【００４０】
なお、上記実施形態においては、機能安全規格の適用対象として、電子制御スロットルチャンバ１３０を例示したが、例えば、ブレーキ制御システム、操舵システム、自動運転システムなど、自動車の安全性を確保すべきシステムとすることができる。
【符号の説明】
【００４１】
２６０  電子制御装置
２６２  ＣＰＵ（プロセッサ）
２６４  ＲＡＭ（メモリ）
２６４Ａ  ＳＭＲＡＭ領域
【図１】
0006306530.tif 000002
【図２】
0006306530.tif 000003
【図３】
0006306530.tif 000004
【図４】
0006306530.tif 000005
【図５】
0006306530.tif 000006
【図６】
0006306530.tif 000007
【図７】
0006306530.tif 000008