JP6396873B2 - 電子制御装置及び診断方法 - Google Patents

電子制御装置及び診断方法 Download PDF

Info

Publication number
JP6396873B2
JP6396873B2 JP2015209878A JP2015209878A JP6396873B2 JP 6396873 B2 JP6396873 B2 JP 6396873B2 JP 2015209878 A JP2015209878 A JP 2015209878A JP 2015209878 A JP2015209878 A JP 2015209878A JP 6396873 B2 JP6396873 B2 JP 6396873B2
Authority
JP
Japan
Prior art keywords
crc
calculation
processor
calculator
modules
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
JP2015209878A
Other languages
English (en)
Other versions
JP2017084000A (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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2015209878A priority Critical patent/JP6396873B2/ja
Publication of JP2017084000A publication Critical patent/JP2017084000A/ja
Application granted granted Critical
Publication of JP6396873B2 publication Critical patent/JP6396873B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、自動車に搭載する電子制御装置及び診断方法に関する。
自動車の電子制御装置における機能安全のソフトウェア設計のコンセプトとして、プログラムを構成する複数のモジュールの機能安全の適用に関し、例えば、自動車用機能安全規格(ISO 26262)では、ハザードを評価する指標としてASIL(Automotive Safety Integrity Level)が提案されている。ASILでは、過酷度(Severity)、ハザードの発生頻度(probability of Exposure)、回避可能性(Controllability)等でクラス分けし、それに見合った設計レベルによる開発が要求されている。
また、自動車用機能安全規格では、ソフトウェアのシステムにおいて、設計レベルの違いにより安全関連部分と非安全関連部分とが混在する場合、自動車用機能安全規格のFFI(Freedom from Interference)に基づいて、互いに非干渉であることの保証が求められ、実質的に独立していなければならないことが要求される。
ここで、FFIに基づく独立性の実現手法の1つとして、例えば、安全関連部分のモジュール(セーフティモジュール(SM:Safety Module)ともいう。)においては、複数のモジュールの実行により所定の機能安全を発揮する場合、モジュール間の実行順序を監視することが望ましい。つまり、モジュールの実行順序が規定されている場合、想定した順序で実行されていることの検証が必要になる(特許文献1参照)。
特開2001−175497号公報
しかし、モジュールの実行順序を評価する手段に異常が発生すると、本来ならば、実行順序が正常であるにも拘わらず、誤診断をする可能性が発生する。ここで、自動車の制御装置において、実行順序を評価する手段として、巡回冗長検査(CRC:Cyclic Redundancy Check)の演算器(以下「CRC演算器」という。)を用いた場合、当該CRC演算器の動作保証が問題となる。
そこで、本発明は、上記問題点に鑑み、モジュールの実行順序を評価するためのCRC演算器に対して、動作保証を行なえる技術を提供することを目的とする。
本発明に係る電子制御装置は、複数のモジュールの実行順序が予め決められている制御プログラムを実行する自動車用の電子制御装置であって、上記モジュールの実行順序に従って付与された識別データを含む入力データに対して、上記識別データを用いた演算結果が反映されるCRC演算を順次施す演算処理を実行するCRC演算器と、上記演算処理により上記CRC演算器が最終的に出力したCRC値と上記CRC演算器を模擬したシミュレーションによる上記CRC演算の出力値である基準値とを比較することにより、上記CRC演算器が正常に動作するか否かを診断した上で、上記モジュールの実行順序が正しいか否かを診断する処理を実行する診断部と、を備える。
また、本発明に係る診断方法は、複数のモジュールの実行順序が予め決められている制御プログラムを実行する自動車用の電子制御装置の診断方法であって、上記モジュールの実行順序に従って付与された識別データを含む入力データに対して、上記識別データを用いた演算結果が反映されるCRC演算を順次施す演算処理を実行するCRC演算器が最終的に出力したCRC値と上記CRC演算器を模擬したシミュレーションによる上記CRC演算の出力値である基準値とを比較することにより、上記CRC演算器が正常に動作するか否かを診断した上で、上記モジュールの実行順序が正しいか否かを診断する処理を実行する。
本発明によれば、上記CRC演算器に対して上記診断処理を実行するので、上記CRC演算器の動作保証を行なうことができる。
本実施形態におけるECU(Electronic Control Unit)の構成例を示すブロック図である。 本実施形態における制御プログラムの一例を示す説明図である。 本実施形態の動作処理の概要を示す説明図である。 本実施形態における診断方法の動作の一例を示すフローチャートである。 CRC演算プログラム用のサブルーチンの処理を示すフローチャートである。 図5に示すフローチャートの流れを模式的に示した説明図である。 CRC演算器用のサブルーチンの処理を示すフローチャートである。 図7に示すフローチャートの流れを模式的に示した説明図である。
以下、添付された図面を参照し、本発明を実施するための実施形態について詳述する。
[ECUの構成例]
図1は、本実施形態におけるECUの構成例を示すブロック図である。図1に示すECU1は、自動車に搭載された各種の電子機器20、例えば、電子制御式のスロットル弁、燃料噴射弁、変速機、電動ブレーキシステム、ABS(Antilock Brake System)、可変バルブタイミング機構等(図示省略)を制御するものである。本実施形態では、説明の便宜上、各種の電子機器20を1つのブロック図で表している。
図1に示す通り、ECU1は、プロセッサ11と、通信回路12と、ROM(Read Only Memory)13と、RAM(Random Access Memory)14と、CRC演算器15と、バス16と、を備える。プロセッサ11、通信回路12、ROM13、RAM14及びCRC演算器15は、バス16を介して、互いに接続されている。また、ECU1は、通信回路12を介して自動車のエンジンを制御する各種の電子機器20と接続されている。
プロセッサ11は、例えば、システムの中心的な処理を担うCPU(Central Processing Unit)であって、ECU1の統括的な制御を行なうものである。また、プロセッサ11は、モジュールの実行順序をCRC演算器15で評価する前提として、所定規則でCRC演算を実行してCRC演算器15が出力したCRC値と、予め定めた基準値とを比較することにより、そのCRC演算器15が正常に動作するか否かを診断する診断処理を実行する診断部の一例としても機能する。
通信回路12は、各種の電子機器20に接続するための通信インターフェースを提供する。なお、通信回路12は、例えば、CAN(Controller Area Network)の通信プロトコルを実現するバスコントローラ(CANコントローラ)を含んでいる。
ROM13は、例えば、フラッシュROM等、電源(図示省略)からの電源供給を遮断してもデータが保持される不揮発性の半導体メモリである。RAM14は、例えば、演算処理等に用いられるデータの一時的な作業領域となるメモリであって、電源供給が遮断されると、記憶内容が消える揮発性メモリである。RAM14は、例えば、ダイナミックRAMやスタティックRAMであってもよい。なお、プロセッサ11は、モジュールの実行順序を評価するために、CRC演算器15を模擬したシミュレーションによるCRC演算を実行するプログラム(以下「CRC演算プログラム」という。)で処理する際、レジスタ(図示省略)を利用する。このレジスタは、RAM14に設けられてもよい。
CRC演算器15は、複数のモジュールの実行順序を評価するため、入力データに対して所定規則に従ってCRC演算を実行する演算器である。CRC演算器15は、例えば、CRC演算専用のレジスタ(図示省略)を含み、巡回冗長検査用の電子回路を備える。但し、本実施形態では、CRC演算器15をモジュールの実行順序を評価する手段として用いる。ここで、所定規則とは、例えば、後述する図6、図8に示すような演算処理である。詳細については、フローチャート等を用いて説明する。バス16は、例えば、CAN通信のデータ転送等に利用することができる。
また、ECU1は、プロセッサ11、ROM13、RAM14、CRC演算器15等のハードウェアと、ROM13に記憶されている制御プログラムやCRC演算プログラム等のソフトウェアとが協働することにより、各種機能を実現する。この制御プログラムには、本実施形態の複数のモジュールが含まれる。したがって、プロセッサ11は、制御プログラムを実行しているときに、本実施形態のCRC演算の処理を実現する。
図2は、本実施形態における制御プログラムの一例を示す説明図である。図2に示す制御プログラムP1は、例えば電子制御式のスロットル弁(図示省略)の制御に用いる。この制御プログラムP1は、スロットル弁の制御を実現するため、複数のモジュールM(1〜n)から構成される。なお、説明を分かりやすくするため、n=4に簡略化した場合について例示する。具体的には、制御プログラムP1は、プロセッサ11により実行され、アクセルポジションセンサ(APS:Accel Position Sensor)処理用のモジュールM1、スロットルポジションセンサ(TPS:Throttle Position Sensor)処理用のモジュールM2、目標開度の演算処理用のモジュールM3、デューティ出力処理用のモジュールM4を含む。
APS処理用のモジュールM1は、アクセル開度(アクセルペダルの踏み込み量)を検出する処理を実行する。TPS処理用のモジュールM2は、スロットル弁の実開度を検出する処理を実行する。目標開度の演算処理用のモジュールM3は、例えば、アクセル開度及びその変化量に基づいて、目標開度を演算する。デューティ出力処理用のモジュールM4は、スロットル弁の実開度と目標開度とを比較し、実開度と目標開度が一致するように、スロットル弁の開度を調節するモータの駆動デューティを求め、フィードバック制御により、スロットル弁の開度を調節する。
ここで、本実施形態では、安全関連部分に分類される複数のモジュールで構成される種々の制御プログラムにおいて、各モジュールに識別データを付与する。本実施形態では、一例として識別データをモジュールの実行順序に従ってシーケンスに付与する。例えば、識別データは、モジュールのプログラムに書き込まれている。ここで、制御プログラムP1の各モジュールの識別データID(n)として、一例として、ID(1)=1、ID(2)=2、ID(3)=3、ID(4)=4とする。そして、本実施形態では、モジュールM1にID(1)、モジュールM2にID(2)、モジュールM3にID(3)、モジュールM4にID(4)を付与し、CRC演算器15を用いて、モジュールの実行順序が正しいか否かを診断する。以下、動作処理について説明をする。
[本実施形態の動作処理]
図3は、本実施形態の動作処理の概要を示す説明図である。以下の説明では、制御プログラムについては、スロットル弁の開度を調節する制御プログラムP1について適用するが、これに限定されるものではない。
本実施形態では、CRC演算器15の診断処理による故障検出の考え方として、例えば、ECU1を起動させるときに、CRC演算プログラムを利用して、CRC演算器15が正常に動作するか否かを診断する診断処理を実行する。
詳細には、例えば、イグニッションスイッチ(IGNSW)がオンされると、ECU1のプロセッサ11は、ECU1自体の起動に伴って、上記の診断処理を実行する。例えば、プロセッサ11は、先ず、各種の電子機器20を起動させるために必要な初期化処理を開始する。初期化処理が完了すると、続いて、プロセッサ11は、上記の診断処理を実行する。つまり、本実施形態では、ECU1を起動させ、初期化処理が完了した後、CRC演算器15の異常の有無を診断することができる。
より詳細には、プロセッサ11は、先ず、プログラムの流れを監視するフローチェック対象の制御プログラムP1について、実行順序の確認処理として、実際の駆動制御を実行せずに、CRC演算プログラムを実行する。そして、プロセッサ11は、最終的に得られた演算結果のCRC値を第1の検証データとして求める。第1の検証データは、基準値の一例であって、CRC演算プログラムが出力した値である。
さらに、プロセッサ11は、CRC演算プログラムと同一の手順で、ハードウェア(CRC演算器15)を利用してCRC演算を実行する。なお、同一の手順とは、実質的に同一の手順も含まれる。そして、プロセッサ11は、最終的に得られた演算結果のCRC値を第2の検証データとして求める。プロセッサ11は、第1の検証データと第2の検証データとが一致していれば、CRC演算器15が動作保証されていると判断する。一方、プロセッサ11は、第1の検証データと第2の検証データとが不一致であれば、CRC演算器15に異常ありとして、例えば、警告表示により運転者に通知する処理を行なう。
そして、通常制御に移行すると、プロセッサ11は、制御プログラムP1の各モジュールを実行する毎に、CRC演算をCRC演算器15にて実行する。これにより、CRC演算の処理が高速化される。そして、プロセッサ11は、キーオフによりイグニッションスイッチ(IGNSW)がオフされ、シャットダウンをする終了処理に移行する前まで、フローチェックにより各モジュールの実行順序を監視する。そして、プロセッサ11は、CRC演算器15が出力するCRC値に基づいて、CRCエラーが発生した場合には、例えば予め規定している異常発生時のフェールセーフ制御を実行する。
図4は、本実施形態における診断方法の動作の一例を示すフローチャートである。プロセッサ11は、このフローチャートを初期化処理が完了すると実行する。なお、説明を分かりやすくするため、図2に示す制御プログラムP1を例示して以下説明を続ける。
ステップS101:プロセッサ11は、CRC演算プログラムに基づくCRC演算を実行するため、CRC演算プログラム用のサブルーチンの処理に移行する。詳細は、図5を用いて後述する。
ステップS102:プロセッサ11は、CRC演算器15にCRC演算を実行させるため、CRC演算器15用のサブルーチンの処理に移行する。詳細は、図7を用いて後述する。
ステップS103:プロセッサ11は、演算結果の照合をする。
ステップS104:プロセッサ11は、演算結果の照合に基づいて、CRC演算器15の異常の有無を判定する。CRC演算器15に異常ありと判定した場合(ステップS104:Yes)、ステップS105の処理に移行し、CRC演算器15に異常なしと判定した場合(ステップS104:No)、プロセッサ11は、図4に示すフローチャートの処理を終了する。
ステップS105:プロセッサ11は、CRC演算器15の異常時の処理を実行する。具体的には、プロセッサ11は、一例として、スピードメータ内に設けられている警告灯(例えば、MIL(Multi function Indicator Lamp)点灯)をオン状態にし、運転者に、異常を知らせる。この場合、CRC演算器15に異常が認められたのであって、各種の電子機器20に異常が発生したわけではない。したがって、プロセッサ11は、プログラムによるフローチェック診断を停止させ、システム障害時における縮退運転には移行させないようにする。そして、プロセッサ11は、図4に示すフローチャートの処理を終了する。
次に、CRC演算プログラム用のサブルーチンの処理について説明をする。
図5は、CRC演算プログラム用のサブルーチンの処理を示すフローチャートである。プロセッサ11は、サブルーチンの処理を実行するに際し、CRC演算プログラムの一例として、CRC演算器15の演算処理を代替するCRC演算プログラムP2を用いる。これにより、プロセッサ11は、制御プログラムP1における最初のモジュールの識別データ及びCRC演算を開始するための初期値(以下「CRC初期値」という。)に対して、巡回冗長検査における所定規則の演算を施し、その演算結果を求める。以下、詳細に説明する。
ステップS201:プロセッサ11は、プログラムのループ処理用の変数nに0(ゼロ)を代入する。
ステップS202:プロセッサ11は、nを、1ずつインクリメントする処理を実行する。
ステップS203:プロセッサ11は、n番目のモジュールについて、CRC演算プログラムP2を実行する。具体的には、プロセッサ11は、例えばn=1の場合、1番目のモジュールの識別データ(ID(1))と、CRC初期値とを入力データとして、CRC演算プログラムP2を実行する。なお、CRC演算プログラムP2のアルゴリズムは、誤り検出方式の一例であって、検査用のデータを値とみなして、所定の定数で割った余り(余剰)を用いて誤りの検知を行なう演算方法である。また、CRC初期値は、例えば、任意のデータ列の値であってよい。
ここで、CRC演算については、例えば、CRC演算に用いる生成多項式に応じて様々な種類が公知であるが、本実施形態のように2つのパラメータ(識別データ、CRC値(n=1の場合にはCRC初期値))からなる入力データに基づいて、毎回、CRC値が求めることができれば、特に限定されない。なお、本実施形態では、演算負荷やROM13の容量を考慮して、例えば、生成多項式(X16+X12+X+1)を採用することが好ましい。また、CRC演算プログラムP2は、CRC演算を実行することにより、演算結果のCRC値として、例えば、n番目のモジュールについてCRC(n)を求める。
ステップS204:プロセッサ11は、nの値が制御プログラムP1のモジュールの総数に達したか否かを判定する。総数に達した場合(ステップS204:Yes)、ステップS205の処理に移行し、総数に達していない場合(ステップS204:No)、ステップS202の処理に戻り、nの値をインクリメント(n=n+1)する。
ステップS205:プロセッサ11は、CRC(n)を、制御プログラムP1のモジュールの実行順序を評価する第1の検証データ(基準値)として求める。そして、プロセッサ11は、その第1の検証データをRAM14に記憶する。
図6は、図5に示すフローチャートの流れを模式的に示した説明図である。先ず、プロセッサ11は、APS処理用のモジュールM1に対応する識別データ(ID(1))と、CRC演算のCRC初期値とを入力データとして、CRC演算プログラムP2を実行する。このCRC演算プログラムP2は、1回目の演算処理の演算結果として、CRC(1)を求める。
次に、プロセッサ11は、TPS処理用のモジュールM2に対応する識別データ(ID(2))と、直前のCRC(n−1)であるCRC(1)とを入力データとして、CRC演算プログラムP2を実行する。CRC演算プログラムP2は、2回目の演算処理の演算結果として、CRC(2)を求める。
ここで、CRC(1)には、APS処理に対応する識別データ(ID(1))を用いてCRC演算された結果が含まれている。さらに、CRC(2)には、TPS処理に対応する識別データ(ID(2))を用いてCRC演算された結果が含まれている。もし、CRC演算の順序が逆の場合、CRC(1)及びCRC(2)は、異なった値となる。
つまり、CRC(1)には、APS処理に対応する識別データ(ID(1))を用いた演算結果が反映され、CRC(2)には、APS処理に対応する識別データ(ID(1))を用いた演算結果のみならず、さらに、次の実行順序であるTPS処理に対応する識別データ(ID(2))を用いた演算結果が反映されている。
次に、プロセッサ11は、目標開度の演算処理に対応する識別データ(ID(3))と、CRC(2)とを入力データとして、CRC演算プログラムP2を実行する。CRC演算プログラムP2は、3回目の演算処理の演算結果として、CRC(3)を求める。CRC(3)は、CRC(2)と比較して、さらに、次の実行順序である目標開度の演算処理に対応する識別データ(ID(3))を用いた演算結果が反映されている。
次に、プロセッサ11は、デューティ出力処理に対応する識別データ(ID(4))と、CRC(3)のデータとを入力データとして、CRC演算プログラムP2を実行する。CRC演算プログラムP2は、4回目の演算処理の演算結果として、CRC(4)を求める。CRC(4)は、CRC(3)と比較して、さらに、次の実行順序であるデューティ出力処理に対応する識別データ(ID(4))を用いた演算結果が反映されている。
続いて、プロセッサ11は、CRC演算プログラムP2を終了すると、CRC(4)をRAM14に記憶する。CRC(4)は、APS処理、TPS処理、目標開度の演算処理、デューティ出力処理というように予め設定した実行順序を評価する第1の検証データとして利用することができる。つまり、本実施形態では、図4に示すフローチャートにて実行したCRC演算の最終結果のCRC(n=4)を第1の検証データとして利用する。
以上の処理をまとめると、プロセッサ11は、制御プログラムP1における最初のモジュールの識別データ及びCRC初期値に対して、演算を施し、その演算結果を求める。続いて、プロセッサ11は、制御プログラムP1の2番目以降の各モジュールについて、今回のモジュールの識別データ及び直前に実行したモジュールに係る演算結果に対してCRC演算を順次施す。このような演算処理が所定規則の一例である。そして、プロセッサ11は、最終的に求められた演算結果を、第1の検証データとする。つまり、プロセッサ11は、CRC演算プログラムP2によるCRC演算により、第1の検証データを取得する。
なお、第1の検証データについては、予めROM13に記憶しておくようにしてもよい。この場合、図4に示す診断方法の動作の一例を示すフローチャートにおいて、プロセッサ11は、ステップS101の処理をスキップして、ステップS103の演算結果の照合でROM13から第1の検証データを読み出すようにしてもよい。このようにすれば、プロセッサ11は、毎回、ステップS101の処理にて、CRC演算プログラム用のサブルーチンの処理を実行せずに済む。
次に、CRC演算器15用のサブルーチンの処理について説明する。
図7は、CRC演算器15用のサブルーチンの処理を示すフローチャートである。図7に示すフローチャートは、図5に示すフローチャートと比較して、ステップ203の処理とステップ303の処理とが、主に異なる。つまり、プロセッサ11は、CRC演算プログラムP2と同一の手順で、CRC演算器15でCRC演算を実行し、第2の検証データを求める。つまり、プロセッサ11は、例えば、CRC初期値を同一とし、同一の順番でモジュール毎に同一の識別データを適用して、CRC演算を実行する。
ステップS301:プロセッサ11は、プログラムのループカウンタ用の変数nに0(ゼロ)を代入する。
ステップS302:プロセッサ11は、nを、1ずつインクリメントする処理を実行する。
ステップS303:プロセッサ11は、CRC演算プログラムP2と同一の手順で、モジュール毎に同じ入力データを入力して、CRC演算器15を用いてn番目のCRC演算を実行する。但し、n=1番目の場合には、n―1番目のCRC値が存在しないので、CRC初期値を入力する。CRC演算器15は、演算結果として、CRC(n)を出力する。
ステップS304:プロセッサ11は、nの値が制御プログラムP1のモジュールの総数に達したか否かを判定する。総数に達した場合(ステップS304:Yes)、ステップS305の処理に移行し、総数に達していない場合(ステップS304:No)、ステップS302の処理に戻る。
ステップS305:プロセッサ11は、第2の検証データを求める。そして、プロセッサ11は、図7に示すフローチャートの処理を終了し、図4に示すステップS103の処理に戻る。
図8は、図7に示すフローチャートの流れを模式的に示した説明図である。先ず、プロセッサ11は、先ず、APS処理(モジュールM1)に対応する識別データ(ID(1))と、CRC初期値とを入力データとして、CRC演算器15に代入する。すると、CRC演算器15は、CRC演算を実行し、1回目の演算結果としてCRC(1)を出力する。
次に、プロセッサ11は、TPS処理(モジュールM2)に対応する識別データ(ID(2))と、CRC(1)とを入力データとして、CRC演算器15に代入する。すると、CRC演算器15は、CRC演算を実行し、2回目の演算結果としてCRC(2)を出力する。
次に、プロセッサ11は、目標開度の演算処理(モジュールM3)に対応する識別データ(ID(3))と、CRC(2)のデータとを入力データとして、CRC演算器15に代入する。すると、CRC演算器15は、3回目の演算結果として、CRC(3)を出力する。
次に、プロセッサ11は、デューティ出力処理(モジュールM4)に対応する識別データ(ID(4))と、CRC(3)とを入力データとして、CRC演算器15に代入する。すると、CRC演算器15は、4回目の演算結果として、CRC(4)を出力する。これにより、プロセッサ11は、図1に示すステップS103の処理において、演算結果の照合をすることができる。
ここで、自動車用機能安全規格では、例えば、故障を検出するための安全機構で発生する故障を検出するための指標(LFM(Latent Failure Metrics))が示されている。故障を検出するための安全機構が故障した場合、運転の制御に直接には影響を及ぼさないものの、異常が検出できなくなる。そのため、故障を検出するための安全機構が正常に動作するか否かを診断する機能診断(以下「Latent機能診断」という。)を行なうことが好ましい。
本実施形態では、例えば、運転者がエンジンキーをオンした後、ECU1の起動に伴って、CRC演算器15に対して、上述した診断処理(Latent機能診断の一例)を予め実行する。これにより、運転者は、故障を検出するための安全機構(CRC演算器15)における異常の有無を、上述した警告灯の表示の有無にて、すぐに知ることができる。
次に、通常制御時における診断処理の動作について説明する。プロセッサ11は、図4に示すフローチャートの処理が異常なしで終了した後、キーオフ操作によりイグニッションスイッチ(IGNSW)がオフされるまで、チェックフロー対象の制御プログラムP1を実行する毎に、モジュールの実行順序をチェックする。
具体的には、プロセッサ11は、制御プログラムP1の最初のモジュールを実行する場合、そのモジュールの識別データ及びCRC初期値をCRC演算器15に代入し、CRC値を求める。そして、プロセッサ11は、制御プログラムP1の2番目以降の各モジュールを実行する場合、モジュールの識別データ及び直前に実行したモジュールに係るCRC演算器15から出力されたCRC値をそのCRC演算器15に順次代入する。さらに、プロセッサ11は、最後に実行したモジュールに係るCRC演算器15から出力されたCRC値(第2の検証データ)と第1の検証データとの比較に基づいて、モジュールの実行順序を診断する。
ここで、プロセッサ11は、全てのモジュールを実行した後、CRC演算結果がエラーか否かを判定する。具体的には、プロセッサ11は、第1の検証データと、最後のモジュールの実行後におけるCRC演算器15が出力したCRC(n)値(第2の検証データ)とを比較する。第1の検証データと第2の検証データとが一致しており、エラーでないと判定した場合、診断処理を終了し、再度、制御プログラムP1が実行されると、診断処理を再開する。
一方、第1の検証データと第2の検証データとが一致せず、エラーであると判定した場合、プロセッサ11は、異常時の処理を実行する。プロセッサ11は、例えば、予め規定している異常発生時のフェールセーフ制御を実行する。
なお、本実施形態では、例えば、ECU1をメインのマイクロコンピュータとし、図示省略の他のECUをサブのマイクロコンピュータとする構成にしてもよい。この場合、CRC演算器15の演算結果を、サブのマイクロコンピュータに送信するようにして、サブのマイクロコンピュータ側で、エラーであるか否かの判定をし、エラーの場合には、異常発生時のフェールセーフ制御を実行するようにしてもよい。
以上より、本実施形態では、モジュールの実行順序を評価するためのCRC演算器15に対して、上述した診断処理を実行することにより、動作保証を行なえる技術を提供できる。つまり、本実施形態では、CRC演算プログラムP2とCRC演算器15とに対して、同一の手順に従ってCRC演算を実行することで、容易に動作保証を行なえる。
[上記実施形態の補足事項]
上記実施形態では、説明を分かりやすくするため、モジュール数を4に限定して説明したが、上記実施形態では、モジュール数を2以上の任意の数に適用できる。つまり、上述した通り、制御プログラムの数やモジュール数の数が多くなるほど、プロセッサ11の処理負荷を抑制でき、使用するRAM14の使用率を抑制できる。また、上記実施形態では、所定時間経過しても、モジュールの総数分のモジュールが実行されない場合には、モジュールの実行漏れにより総数に達しないと判定し、フェールセーフ制御を実行するようにしてもよい。
上記実施形態では、例えば、ECU1の起動に伴って、診断処理を実行したが、これに限定されず、例えば、定期的に診断処理を実行するようにしてもよいし、或いは、ECU1を停止させるときに、診断処理を実行するようにしてもよい。すなわち、上記実施形態では、必要に応じて、診断処理のタイミングを設定してよい。
以上、本件に開示する実施形態について明細書及び図面等を用いて説明したが、本件開示の技術は、上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。
1…ECU
11…プロセッサ
12…通信回路
13…ROM
14…RAM
15…CRC演算器
16…バス
20…電子機器
P1…制御プログラム
P2…CRC演算プログラム

Claims (3)

  1. 複数のモジュールの実行順序が予め決められている制御プログラムを実行する自動車用の電子制御装置であって、
    前記モジュールの実行順序に従って付与された識別データを含む入力データに対して、前記識別データを用いた演算結果が反映されるCRC演算を順次施す演算処理を実行するCRC演算器と、
    前記演算処理により前記CRC演算器が最終的に出力したCRC値と、前記CRC演算器を模擬したシミュレーションによる前記CRC演算の出力値である基準値とを比較することにより、前記CRC演算器が正常に動作するか否かを診断した上で、前記モジュールの実行順序が正しいか否かを診断する処理を実行する診断部と、
    を備えることを特徴とする電子制御装置。
  2. 前記診断部は、電子制御装置自体の起動に伴って、前記診断処理を実行することを特徴とする請求項1に記載の電子制御装置。
  3. 複数のモジュールの実行順序が予め決められている制御プログラムを実行する自動車用の電子制御装置の診断方法であって、
    前記モジュールの実行順序に従って付与された識別データを含む入力データに対して、前記識別データを用いた演算結果が反映されるCRC演算を順次施す演算処理を実行するCRC演算器が最終的に出力したCRC値と、前記CRC演算器を模擬したシミュレーションによる前記CRC演算の出力値である基準値とを比較することにより、前記CRC演算器が正常に動作するか否かを診断した上で、前記モジュールの実行順序が正しいか否かを診断する処理を実行する診断方法。
JP2015209878A 2015-10-26 2015-10-26 電子制御装置及び診断方法 Active JP6396873B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015209878A JP6396873B2 (ja) 2015-10-26 2015-10-26 電子制御装置及び診断方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015209878A JP6396873B2 (ja) 2015-10-26 2015-10-26 電子制御装置及び診断方法

Publications (2)

Publication Number Publication Date
JP2017084000A JP2017084000A (ja) 2017-05-18
JP6396873B2 true JP6396873B2 (ja) 2018-09-26

Family

ID=58714242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015209878A Active JP6396873B2 (ja) 2015-10-26 2015-10-26 電子制御装置及び診断方法

Country Status (1)

Country Link
JP (1) JP6396873B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149626A (ja) * 1992-11-13 1994-05-31 Fujitsu Ten Ltd 電子制御装置
JP5463565B2 (ja) * 2009-05-25 2014-04-09 株式会社日立製作所 レジスタ診断装置及びレジスタ診断方法
JP6131688B2 (ja) * 2013-04-11 2017-05-24 富士電機株式会社 安全関連装置、そのプログラム

Also Published As

Publication number Publication date
JP2017084000A (ja) 2017-05-18

Similar Documents

Publication Publication Date Title
US11352019B2 (en) Electronic control device for vehicle
US9058419B2 (en) System and method for verifying the integrity of a safety-critical vehicle control system
US7533322B2 (en) Method and system for performing function-specific memory checks within a vehicle-based control system
JP4124514B2 (ja) エラー診断装置およびエラー診断方法
JP5967059B2 (ja) 車両用電子制御装置
US7437218B2 (en) Method and device for controlling the functional unit of a motor vehicle
US11001211B2 (en) Method and system for secure signal manipulation for testing integrated safety functionalities
JP2010128627A (ja) 車載用電子制御装置
US20030023407A1 (en) Method and device for monitoring the functioning of a system
CN108146250B (zh) 一种基于多核cpu的汽车扭矩安全控制方法
JP5680514B2 (ja) 自己診断機能を備えたコンピュータ、ソフトウェア作成方法、およびソフトウェア作成装置
JP6434840B2 (ja) 電子制御装置
JP6396873B2 (ja) 電子制御装置及び診断方法
JP5842783B2 (ja) 車両用制御装置
GB2551516A (en) Activity monitor
JP5706463B2 (ja) 階層的蓄積型妥当性確認システム及び方法
JP2015123748A (ja) 検査システム
JP6075262B2 (ja) 制御装置
JP2002091834A (ja) Rom診断装置
Schneider et al. Safety element out of context-a practical approach
JP6604661B2 (ja) 車両制御装置
CN109960627B (zh) 电子控制设备及其操作方法与计算机可读记录介质
JP2009215944A (ja) 電子制御装置及びその運転方法
JP6597489B2 (ja) 車両制御装置
Franco et al. Teaching model-in-the loop: A case study for controller of distributed dashboard in a road vehicle

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180720

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180830

R150 Certificate of patent or registration of utility model

Ref document number: 6396873

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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