JP6468168B2 - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP6468168B2
JP6468168B2 JP2015217816A JP2015217816A JP6468168B2 JP 6468168 B2 JP6468168 B2 JP 6468168B2 JP 2015217816 A JP2015217816 A JP 2015217816A JP 2015217816 A JP2015217816 A JP 2015217816A JP 6468168 B2 JP6468168 B2 JP 6468168B2
Authority
JP
Japan
Prior art keywords
microcomputer
data
reference value
write data
unit
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
JP2015217816A
Other languages
English (en)
Other versions
JP2017091057A (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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2015217816A priority Critical patent/JP6468168B2/ja
Priority to DE102016221667.8A priority patent/DE102016221667A1/de
Publication of JP2017091057A publication Critical patent/JP2017091057A/ja
Application granted granted Critical
Publication of JP6468168B2 publication Critical patent/JP6468168B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Description

本発明は、マイコンと、マイコンの外部に設けられ、書換可能な不揮発性の外部メモリと、を備え、書換装置から送信された書込データがマイコンにより転送されて外部メモリに書き込まれ、外部メモリのデータが更新される電子制御装置に関する
特許文献1には、マイコンと、マイコンの外部に設けられ、書換可能な不揮発性の外部メモリと、を備え、書換装置から送信された書込データがマイコンにより転送されて外部メモリに書き込まれ、外部メモリのデータが更新される電子制御装置が開示されている。
特開2006−268107号公報
特許文献1に開示された電子制御装置では、マイコン(第一マイコン)が、外部メモリ(第二マイコンのROM)から取得した書込データと、書換装置から送信された、書込データと同一のデータである比較対象データとを比較する。そして、マイコンは、比較結果を書換装置に送信する。これにより、マイコンから外部メモリへのデータ転送過程でエラーが生じたか否かを、書換装置にて把握することができる。
しかしながら、上記電子制御装置では、第三者により不正データが書き込まれた場合、外部メモリに書き込まれたデータと比較対象データが一致することとなるため、不正データの書き込みを検出することができない。
本発明は上記問題点に鑑み、書込データがマイコンにより転送されて外部メモリに書き込まれ、外部メモリのデータが更新される電子制御装置において、不正データの書き込みを検出できるようにすることを目的とする。
ここに開示される発明は、上記目的を達成するために以下の技術的手段を採用する。なお、特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、発明の技術的範囲を限定するものではない。
開示された発明のひとつは、マイコン(30)と、マイコンの外部に設けられ、書換可能な不揮発性の外部メモリ(44)と、を備え、
書換装置(60)から送信された書込データがマイコンにより転送されて外部メモリに書き込まれ、外部メモリのデータが更新される電子制御装置であって、
マイコンが、書込データが不正データであるか否かを判定するための基準値を、受信した書込データ内の所定アドレスから抽出する抽出部(S506,S508)と、外部メモリに書き込まれた書込データを、外部メモリから取得する取得部(S520,S522)と、取得部が取得した書込データのうち、基準値を除くデータを用いて、所定の演算を実行する演算部(S524,S526,S528)と、演算部による演算結果と基準値との関係が、予め設定された所定の関係を満たすか否かを判定する判定部(S602)と、判定部の判定結果を書換装置に送信する通知部(S606,S610)と、を有し、
マイコンは、書換可能な不揮発性メモリ(34)を有し、
基準値のアドレス情報は、不揮発性メモリにおいてデータの書き換えが不可能な非書換領域(34b)に予め記憶されている。
不正データが書き込まれた場合、書込データ内の所定アドレスには基準値が格納されていない。よって、マイコンが所定アドレスから抽出した値と、所定アドレスのデータを除く書込データによる演算結果との関係が、所定の関係を満たすことはない。一方、正規の書込データが書き込まれた場合、書込データ内の所定アドレスには基準値が格納されている。よって、マイコンが抽出した基準値と、基準値を除く書込データによる演算結果との関係が、所定の関係を満たす。このように本発明によれば、書込データが正規に書き込まれたデータであるか、それとも不正データであるのかを判定することができる。すなわち、不正データの書き込みを検出することができる。
第1実施形態に係る電子制御装置及びデータ書換システムの概略構成を示す図である。 第2マイコンのROMのデータ更新手順を示す図である。 第2マイコンのROMのデータ更新に際して、第1マイコンが実行する処理を示すフローチャートである。 第1マイコンが実行する消去通信処理を示すフローチャートである。 第1マイコンが実行する書換通信処理を示すフローチャートである。 第1マイコンが実行する不正確認処理を示すフローチャートである。 第2マイコンのROMのデータ更新に際して、書換装置が実行する処理を示すフローチャートである。 第2マイコンのROMのデータ更新に際して、第2マイコンが実行する処理を示すフローチャートである。 第2実施形態において、第1マイコンのROMに記憶される複数のアドレス情報を示す図である。 第2実施形態において、第2マイコンのデータ更新に際し、第1マイコンが実行する処理を示すフローチャートである。 第3実施形態において、第2マイコンのデータ更新に際し、第1マイコンが実行する処理を示すフローチャートである。
以下、本発明の実施形態を図に基づいて説明する。なお、各実施形態において、共通乃至関連する要素には同一の符号を付与するものとする。
(第1実施形態)
先ず、図1に基づき、本実施形態に係る電子制御装置及びデータ書換システムの概略構成を説明する。
図1に示すように、データ書換システム10は、電子制御装置20と、書換装置60と、を備えている。以下において、電子制御装置20をECU20と称する。ECUは、Electronic Control Unitの略称である。
ECU20は、車両用の電子制御装置である。ECU20の制御対象としては、たとえばエンジンを挙げることができる。しかしながら、制御対象についてエンジンに特に限定されず、各種電子制御装置に適用することができる。ECU20は、第1マイコン30と、第2マイコン40と、外部通信線50と、内部通信線51などを有している。
第1マイコン30は、通信回路31,32、CPU33、ROM34、RAM35、図示しないレジスタ、及びI/Oポートなどを備えて構成されたマイクロコンピュータである。この第1マイコン30がマイコンに相当し、ROM34が不揮発性メモリに相当する。
第1マイコン30において、CPU33が、RAM35やレジスタの一時記憶機能を利用しつつ、ROM34に予め記憶された制御プログラム、通信線を介して取得した各種データなどに応じて信号処理を行う。また、この信号処理で得られた信号を、通信線を介して第1マイコン30の外部に出力したりする。このようにして、第1マイコン30は、各種機能を実行する。
CPU33は、通信回路31及び外部通信線50を介して、書換装置60とシリアル通信が可能である。さらにCUP33は、通信回路32及び内部通信線51を介して、第2マイコン40とシリアル通信が可能である。
ROM34は、書換可能、すなわちデータの消去及び書き込みが可能な不揮発性メモリである。ROM34としては、電気的に書換可能なフラッシュメモリを採用することができる。ROM34は、データの消去及び書き込みが可能な書換可能領域34aと、データの消去及び書き込みが不可能な非書換領域34bと、を有している。非書換領域34bは、マスク領域とも称される。
書換可能領域34aには、第1マイコン30が制御対象を制御するために必要な演算処理を、CPU33にて実行するための制御プログラムなどが記憶されている。なお、制御プログラムは、制御ソフトとも称される。書換可能領域34aには、制御プログラムなどが記憶される領域とは別に、正規データの書き込みが完了したか否かを管理するためのフラグが記憶されるフラグ領域34a1が設けられている。
非書換領域34bには、第1マイコン30が、ROM34における書換可能領域34a内に記憶されたデータ(制御プログラムなど)を更新したり、書換可能領域34aに新規データを追加するための書換プログラムなどが記憶されている。なお、プログラムの書き換えは、リプログラミング、リプログ、リプロとも称される。このため、書換プロフラムは、リプログソフトとも称される。非書換領域34bには、書換プログラムなどが記憶される領域とは別に、後述する基準値格納先のアドレス情報が記憶されるアドレス情報領域34b1が設けられている。本実施形態では、アドレス情報領域34b1に、基準値のアドレス情報のみが記憶されている。
第2マイコン40は、通信回路41、CPU43、ROM44、RAM45、図示しないレジスタ、及びI/Oポートなどを備えて構成されたマイクロコンピュータである。第2マイコン40のROM44が、不揮発性の外部メモリに相当する。
第2マイコン40において、CPU43が、RAM45やレジスタの一時記憶機能を利用しつつ、ROM44に予め記憶された制御プログラム、通信線を介して取得した各種データなどに応じて信号処理を行う。また、この信号処理で得られた信号を、通信線を介して第2マイコン40の外部に出力したりする。このようにして、第2マイコン40は、各種機能を実行する。
CPU43は、通信回路41及び内部通信線51を介して第1マイコン30とシリアル通信が可能である。ROM44は、書換可能な不揮発性メモリである。ROM44としては、ROM34同様、電気的に書換可能なフラッシュメモリを採用することができる。ROM44も、データの消去及び書き込みが可能な書換可能領域44aと、データの消去及び書き込みが不可能な非書換領域44bと、を有している。
書換可能領域44aには、第2マイコン40が制御対象を制御するために必要な演算処理を、CPU43にて実行するための制御プログラムなどが記憶されている。非書換領域44bには、第2マイコン40が、ROM44における書換可能領域44a内に記憶されたデータ(制御プログラムなど)を更新したり、書換可能領域44aに新規データを追加するための書換プログラムなどが記憶されている。
次に、図2に基づき、第2マイコン40のROM44のデータ更新について説明する。データ更新は、たとえばECU20の工場出荷時や、工場出荷後にディーラーなどで実行される。なお、更新するデータ、すなわち書き換えるプログラムは、ECU20が各種制御を実行するための制御プログラムなどである。本実施形態では、一例として、制御プログラムを書き換える。図2では、第1マイコン30を第1MC、第2マイコン40を第2MCとも示す。
図2に示すように、第1マイコン30は、書換装置60から第2マイコン40のROM44の書換可能領域44aに記憶されている制御ログラムのリプロ要求(書換要求)を受信すると、上記したフラグを異常値にセットする。そして、第1マイコン30は、セットが完了したことを示す応答信号を、書換装置60に送信する。
次いで、第1マイコン30が、書換装置60から第2マイコン40への消去コマンドを受信及びROM44のデータを消去するアドレスデータを受信すると、消去コマンド及びアドレスデータを第2マイコン40に転送する。第2マイコン40は、消去コマンドを受信すると、CPU43にて実行する書換プログラムにより、書換可能領域44aにおけるアドレスデータに従う領域内のデータを消去する。データが消去された領域は、データ書き込み可能な状態となる。消去処理が終了すると、第2マイコン40は、消去処理終了を示す応答信号を第1マイコン30に送信し、第1マイコン30は、この応答信号を書換装置60に転送する。
次いで、第1マイコン30が、書換装置60から第2マイコン40への書込コマンド及び書込データを受信すると、書込コマンド及び書込データを第2マイコン40に転送する。第1マイコン30は、受信した書込データ内の所定アドレスに格納されている基準値を抽出する。第1マイコン30は、書込データを受信しながら基準値を抽出する。
本実施形態では、ECU20を安価に構成するために、第2マイコン40として第1マイコン30よりも不揮発性メモリ(ROM44)の容量が小さく、受信処理能力が低い安価なマイコンを用いている。したがって、書換装置60と第1マイコン30との間に一度に送受信可能なデータ量に対して、第1マイコン30と第2マイコン40との間で一度に送受信可能なデータ量が小さい。このため、第1マイコン30は、受信したデータを一旦RAM35に保存し、第2マイコン40が一度に受信可能なデータ量に分割して送信する。
第2マイコン40は、書込コマンドを受信すると、その後送られてくる書込データを、ROM44の書換可能領域44a内において、データ消去によりデータ書き込み可能な状態となった領域に書き込み、ROM44が記憶するデータ(制御プログラム)を更新する。
受信分の書込処理が終了すると、第2マイコン40は、書込処理終了を示す応答信号を第1マイコン30に送信し、第1マイコン30は、この応答信号を書換装置60に転送する。
次いで、第1マイコン30は、書換装置60からROM44に書き込まれた書込データを読み出すための読出コマンドを受信すると、この読出コマンドを第2マイコン40に転送する。第2マイコン40は、読出コマンドを受信すると、先の書込処理によって書換可能領域44aに書き込んだ書込データを読み出して、第1マイコン30に送信する。以下においては、第2マイコン40から第1マイコン30へ送信する書込データを、読出データと示す。
第1マイコン30は読出データを受信しながら、予め設定された所定の演算を実行し、演算結果をRAM35に保存する。第1マイコン30は、後述するように、読出データに基準値が含まれていると、この基準値を除外して演算を実行する。そして、第2マイコン40から送信された読出データについて演算が終了すると、終了を示す応答信号を書換装置60に送信する。本実施形態では、図2に示すように、所定バイト単位、たとえば第2マイコン40が一括消去できるブロック単位(一例として16kバイト)で、上記した書き込み及び読み出しを繰り返す。したがって、最終的には、演算結果が、基準値を除くすべての読出データを用いたものとなる。
すべての書込データについてデータの書き込み及び読み出しが完了すると、書換装置60は、第1マイコン30に対して、不正確認コマンドを送信する。不正確認コマンドは、先に書き込まれた書込データが、不正に書き込まれたデータであったか否か、すなわちROM44のデータが不正に改ざんされたか否かの確認を指示するチェックコマンドである。不正確認コマンドは、ベリファイコマンドとも称される。
第1マイコン30は、不正確認コマンドを受信すると、基準値と演算結果とに基づき、書込データが不正データか否かについて判定する判定処理を実行する。そして、判定結果に応じてフラグをセットし、判定結果、すなわちフラグのセット状態に応じた応答信号を、書換装置60に送信する。
次に、図3〜図6に基づき、第2マイコン40のROM44のデータ更新に際して、第1マイコン30が実行する処理について説明する。第1マイコン30は、書換装置60から第2マイコン40のリプロ要求を受信すると、以下に示す処理を実行する。具体的には、第1マイコン30のCPU33が、ROM34の非書換領域34bに記憶されている書換プログラムに従って、処理を実行する。
書換装置60から、リプロ要求として、IDコードを含むデータが暗号化されて送信される。第1マイコン30は、通信回路31により受信したリプロ要求を復号し、非書換領域34bのアドレス情報領域34b1に記憶されている第2マイコン40のデータ更新用のIDコードと照合する。そして、照合の結果、一致する場合、図3に示すように、IDコードに関連付けられてアドレス情報領域34b1に記憶されている基準値のアドレス情報を、RAM35に設定(保存)する(ステップS100)。
また、第1マイコン30は、書換可能領域34aのフラグ領域34a1に記憶されるフラグを異常値にセットする(ステップS200)。なお、ステップS100,S200の処理は、いずれを先に実行してもよい。たとえばフラグを異常値にセットした後に、アドレス情報をRAM35に設定してもよい。
データの暗号化及び復号については、AES(Advanced Encryption Standard)などの共通鍵暗号アルゴリズムや公開鍵暗号アルゴリズムなどの周知技術を用いることができる。なお、リプロ要求に限らず、その他の各種コマンドや書込データも書換装置60にて暗号化されて送信され、第1マイコン30で復号される。以下において、暗号化及び復号に関する記載を省略する。
ステップS100,S200の処理が終了すると、第1マイコン30は、フラグセットが完了したことを示す応答信号を、通信回路31を介して書換装置60に送信する(ステップS300)。ステップS300が終了すると、第1マイコン30は、消去通信処理を実行する(ステップS400)。図4は、第1マイコン30が実行する消去通信処理を示している。
図4に示すように、第1マイコン30は、通信回路31を介して第2マイコン40への消去コマンドを受信したか否かを判定する(ステップS402)。第1マイコン30は、消去コマンドを受信するまで待機する。
第2マイコン40への消去コマンドを受信したと判定すると、第1マイコン30は、通信回路31を介して、データを消去するROM44のアドレスデータを受信する(ステップS404)。ステップS404では、第1マイコン30が、アドレスデータを受信するだけでなく、受信したアドレスデータを第2マイコン40用のアドレスデータに変換し、これをRAM35に保存することで、受信処理を終了する。
ステップS404の終了後、第1マイコン30は、受信した消去コマンドを、第2マイコン40が受付可能な第2マイコン40用の消去コマンドに変換し、通信回路32を介して第2マイコン40に送信する(ステップS406)。次いで第1マイコン30は、変換したアドレスデータを第2マイコン40に送信する(ステップS408)。アドレスデータについては、必要に応じて第2マイコン40が一度に受信可能なデータ量に分割し、通信回路32を介して第2マイコンに送信する。
ステップS408の終了後、第1マイコン30は、第2マイコン40の消去処理が終了したか否かを判定する(ステップS410)。第1マイコン30は、通信回路32を介して、第2マイコン40から消去処理終了を示す応答信号を受信するまで待機する。消去処理終了を示す応答信号を受信したと判定すると、第1マイコン30は次のステップS412の処理を実行する。第1マイコン30は、ステップS412において、第2マイコン40の消去処理が終了したことを示す応答信号を書換装置60に送信する。以上により、第1マイコン30は、消去通信処理を終了する。
図3に戻り、第1マイコン30は、ステップS400の消去通信処理が終了すると、次いで、書換通信処理を実行する(ステップS500)。図5は、第1マイコン30が実行する書換通信処理を示している。
図5に示すように、第1マイコン30は、通信回路31を介して第2マイコン40への書込コマンドを受信したか否かを判定する(ステップS502)。第1マイコン30は、書込コマンドを受信するまで待機する。
書込コマンドを受信したと判定すると、第1マイコン30は、通信回路31を介して書込データを受信する(ステップS504)。ステップS504では、第1マイコン30が書込データを受信するだけでなく、受信した書込データを第2マイコン40が解釈可能な書込データに変換し、これをRAM35に保存することで、受信処理を終了する。
上記したように、本実施形態では、第2マイコン40のデータを更新する際に、第1マイコン30が1回の処理で全書込データを受信するのではなく、所定バイト単位分の書込データを受信する。
第1マイコン30は、RAM35に設定されている基準値のアドレス情報(ステップS100参照)に基づき、書込データに所定アドレスのデータが含まれているか否か、すなわち所定アドレスのデータを受信したか否かを判定する(ステップS506)。第1マイコン30は、所定アドレスのデータを受信したと判定すると、当該アドレスの値を基準値としてRAM35に保存し(ステップS508)、次いでステップS510を実行する。ステップS506,508の処理については、書込データをRAM35に保存しつつ順に実行してもよいし、すべての書込データをRAM35に保存してから実行してもよい。なお、ステップS506,S508の処理が、抽出部に相当する。
一方、受信した書込データが所定アドレスのものではないと判定した場合、ステップS508の処理を実行せずに、ステップS510の処理を実行する。ステップS510において、第1マイコン30は、通信回路32を介して第2マイコン40へ書込コマンドを送信する。このとき、第1マイコン30は、書込コマンドを、第2マイコン40が受付可能な書込コマンドに変換し、変換した書込コマンドを第2マイコン40へ送信する。
次いで、第1マイコン30は、書込データを、第2マイコン40が一度に受信可能なデータ量に分割し、分割した書込データを通信回路32を介して順に第2マイコン40へ送信する(ステップS512)。第1マイコン30は、1回の送信で書換装置60から送信された分の書込データについて、書き込みが終了したか否かを判定する(ステップS514)。第1マイコン30は、書き込みが終了するまで待機する。第1マイコン30は、第2マイコン40から書込処理終了を示す応答信号を受信すると、書き込みが終了したと判定する。書込終了と判定すると、マイコン30は、通信回路31を介して書換装置60に、1回の送信分の書き込みが終了したことを示す応答信号を送信する(ステップ516)。
次いで、第1マイコン30は、通信回路31を介して第2マイコン40への読出コマンドを受信したか否かを判定する(ステップS518)。第1マイコン30は、読出コマンドを受信するまで待機する。
読出コマンドを受信すると、第1マイコン30は、読出コマンドを、第2マイコン40が受付可能な読出コマンドに変換し、変換した読出コマンドを第2マイコン40へ送信する(ステップS520)。そして、第2マイコン40から送信された読出データを受信する(ステップS522)。ステップS520,S522の処理が取得部に相当する。
次いで、第1マイコン30は、RAM35に設定されている基準値のアドレス情報に基づき、読出データに所定アドレスのデータが含まれているか否か、すなわち所定アドレスのデータを受信したか否かを判定する(ステップS524)。そして、所定アドレスのデータを受信したと判定した場合、当該アドレスの値が基準値であるとして、演算処理の対象から除外し(ステップS526)、予め設定された所定の演算を実行して演算結果をRAM35に保存する(ステップS528)。一方、読出データが所定アドレスのデータではない場合、ステップS526を実行せず、ステップS528を実行する。ステップS524,S526,S528の処理が、演算部に相当する。
このように、所定アドレスに格納された値である基準値は演算に用いず、基準値以外のデータを演算に用いる。演算手法については特に限定されない。
次いで、第1マイコン30は、第2マイコン40から読み出した読出データについて演算が終了すると、演算終了を示す応答信号を書換装置60に送信する(ステップS530)。そして、第1マイコン30は、再び第2マイコン40への書込コマンドを受信したか否かを判定する(ステップS532)。書込コマンドを受信したと判定すると、ステップS504に戻り、ステップS504以降の処理を繰り返す。書換装置60から送信される書込データが残っている場合、ステップS532で書込コマンドを受信することとなる。
ステップS532で書込コマンドの受信なしと判定すると、第1マイコン30は、不正確認コマンドを受信したか否かを確認する(ステップS534)。そして、不正確認コマンドを受信したと判定すると、一連の処理を終了する。書換装置60から送信される書込データがなくなると、ステップS534で不正確認コマンドを受信することとなる。
一方、ステップS534で不正確認コマンドの受信なしと判定すると、ステップS532に戻る。すなわち、ステップS530の送信処理後、書込コマンド及び不正確認コマンドのいずれかを受信するまで、ステップS532,S534の処理を繰り返す。
図3に戻り、第1マイコン30は、ステップS500の書換通信処理が終了すると、次いで、不正確認処理を実行する(ステップS600)。そして、不正確認処理の実行後、一連の処理を終了する。図6は、第1マイコン30が実行する不正確認処理を示している。
第1マイコン30は、不正確認コマンドを受信すると、図6に示す不正確認処理を実行する。先ず第1マイコン30は、最終的にステップS528で得られた演算結果と、ステップS508でRAM35に保存した基準値とが、予め決定された所定の関係を満たすか否かを判定する。その一例として本実施形態では、第1マイコン30が、演算結果と基準値とが一致するか否かを判定する(ステップS602)。
ステップS602で一致と判定すると、第1マイコン30は、フラグ領域34a1に記憶されるフラグを正常値にセットする(ステップS604)。そして、第1マイコン30は、書換装置60へ不正データの書き込みなし、すなわち第三者によるデータ改ざんなしを示す確認結果を送信し(ステップS606)、一連の処理を終了する。
一方、ステップS602で一致せずと判定すると、第1マイコン30は、フラグ領域34a1に記憶されるフラグを異常値のまま維持する(ステップS608)。換言すれば、フラグを異常時に再びセットする。そして、第1マイコン30は、書換装置60へ不正データの書き込みあり、すなわち第三者によるデータ改ざんありを示す確認結果を送信し(ステップS610)、一連の処理を終了する。
なお、ステップS602に示す処理が、判定部に相当する。ステップS606,S610に示す処理が、通知部に相当する。ステップS200,S604,S608に示す処理が、フラグ状態設定部に相当する。
次に、図7に基づき、第2マイコン40のROM44のデータ更新に際して、書換装置60が実行する処理について説明する。
書換装置60は、先ず、第1マイコン30に対して、第2マイコン40のリプロ要求を送信する(ステップS700)。このリプロ要求として、上記したように、第2マイコン40のデータ更新用のIDコードを含むデータが暗号化されて送信される。
次いで、書換装置60は、第1マイコン30のフラグが異常値にセットされたか否かを判定する(ステップS702)。書換装置60は、フラグが異常値にセットされたと判定するまで待機する。書換装置60は、第1マイコン30から、異常値へのセット完了を示す応答信号を受信すると、フラグセット済みと判定する。
次いで、書換装置60は、第1マイコン30に対して、第2マイコン40への消去コマンドを送信し(ステップS704)、送信後は、第2マイコン40の消去処理が終了したか否かを判定する(ステップS706)。書換装置60は、第1マイコン30から、第2マイコン40の消去処理終了を示す応答信号を受信するまで待機する。
ステップS706において消去処理終了と判定すると、書換装置60は、第1マイコン30に対して、第2マイコン40への書込コマンドを送信し(ステップS708)、次いで書込データを送信する(ステップS710)。上記したように、書換装置60は、1回の書込コマンドにつき、所定バイト分の書込データを送信する。
次いで、書換装置60は、送信分の書込データの書込処理が終了したか否かを判定する(ステップS712)。書換装置60は、第1マイコン30から、第2マイコン40の書込終了を示す応答信号を受信するまで待機する。ステップS712で書込処理が終了していると判定すると、書換装置60は、第2マイコン40への読出コマンドを送信する(ステップS714)。
そして、書換装置60は、第2マイコン40のROM44のデータ更新に際して、すべての書込データの送信が終了したか否かを判定する(ステップS716)。ステップS716で、全書込データの送信が終了していないと判定すると、書換装置60は、ステップS708に戻り、残りの書込データについて、ステップS708以降の処理を実行する。書換装置60は、第1マイコン30から演算終了を示す応答信号(ステップS530参照)を受信したときに、書込データの送信に残りがある場合、全書込データの送信が終了していないと判定し、応答信号を受信したときに書込データに残りがないと、全書込データの送信が終了したと判定する。
ステップS716で、全書込データの送信が終了したと判定すると、次いで書換装置60は、第1マイコン30に対し、不正確認コマンドを送信する(ステップS718)。そして、書換装置60は、第1マイコン30の判定結果を受信し(ステップS720)、判定結果に関して、ECU20の外部に通知する通知処理を実行する(ステップS722)。以上により、一連の処理を終了する。
なお、通知処理としては、たとえば車両のモニタに不正データの書き込みがなされたことを表示させるなどが考えられる。これによれば、ユーザに対して、書換装置60を用いた第2マイコン40のROM44のデータ更新の再度の実行を促すことができる。
次に、図8に基づき、第2マイコン40のROM44のデータ更新に際して、第2マイコン40が実行する処理について説明する。第2マイコン40は、消去コマンド及びアドレスデータを受信すると、以下に示す処理を実行する。具体的には、第2マイコン40のCPU43が、ROM44の非書換領域44bに記憶されている書換プログラムに従って、処理を実行する。
消去コマンド及びアドレスデータを受信すると、図8に示すように、第2マイコン40は、書換可能領域44aにおけるアドレスデータに従う領域内のデータを消去する(ステップS800)。データが消去された領域は、データ書き込み可能な状態となる。消去処理が終了すると、第2マイコン40は、消去処理終了を示す応答信号を第1マイコン30に送信する(ステップS802)。
次いで第2マイコン40は、第1マイコン30から書込コマンドを受信したか否かを判定する(ステップS804)。第2マイコン40は、書込コマンドを受信するまで待機する。書込コマンドの受信後、第2マイコン40は、第1マイコン30から書込データを受信し(ステップS806)、データが消去された領域に書込データの書込処理を実行する(ステップS808)。
第2マイコン40は、受信分の書込データの書き込みが終了すると、書込終了を示す応答信号を第1マイコン30に送信する(ステップS810)。応答信号の送信後、第2マイコン40は、第1マイコン30から読出コマンドを受信したか否かを判定する(ステップS812)。第2マイコン40は、読出コマンドを受信するまで待機する。
読出コマンドを受信したと判定すると、第2マイコン40は、ROM44の書換可能領域44aに書き込んだ書込データを読み出し、読出データとして第1マイコン30に送信する(ステップS814)。第2マイコン40は、読出データの送信から予め設定された所定時間の間に、書込コマンドを再び受信するか否かを判定する(ステップS816)。書込コマンドを受信したと判定すると、ステップS806に戻り、ステップS806以降の処理を実行する。書込データが残っている場合には、ステップS816で書込コマンドを受信することとなる。
一方、すべての書込データについての書き込み及び読み出しが終了している場合、ステップS816で書込コマンドを受信することはなく、一連の処理は終了となる。
次に、上記したECU20及びデータ書換システム10の効果について説明する。
書込データとして、第三者により不正データが書き込まれた場合、書込データ内の所定アドレスには基準値が格納されていない。よって、アドレス情報により第1マイコン30が抽出した基準値と、基準値を除く書込データによる演算結果との関係が、所定の関係を満たすことはない。
一方、書換装置60により正規の書込データが書き込まれた場合、書込データ内の所定アドレスには基準値が格納されている。よって、アドレス情報により第1マイコン30が抽出した基準値と、基準値を除く書込データによる演算結果との関係が、所定の関係を満たす。
このように本実施形態によれば、基準値と演算結果との判定結果に基づき、書込データが正規に書き込まれたデータであるか、それとも不正データであるのかを判定することができる。すなわち、書込データが第1マイコン30により転送されて第2マイコン40のROM44(外部メモリ)に書き込まれ、ROM44のデータが更新されるECU20及びデータ書換システム10において、第三者による不正データの書き込み、すなわちデータ改ざんを検出することができる。
なお、不正データの書き込みのみならず、ノイズ重畳により、第1マイコン30と第2マイコン40との通信過程でエラーが生じた場合にも、基準値と演算結果とが所定の関係を満たさなくなる。したがって、通信過程でのエラーも検出することができる。
また、本実施形態では、基準値のアドレス情報が、第1マイコン30のROM34における非書換領域34b(アドレス情報領域34b1)に予め記憶されている。よって、基準値のアドレス情報を、第1マイコン30の外部から取得する構成に較べて、基準値及びアドレス情報が外部に第三者の手に渡りにくく、セキュリティ性を向上することができる。
また、本実施形態では、第1マイコン30のROM34のうち、書換可能領域34aにフラグ領域34a1を設け、フラグ領域34a1に、正規データの書き込みが完了したか否かを管理するフラグを記憶されている。そして、第1マイコン30は、書込データを第2マイコン40に送信する前に、敢えてフラグを異常状態に設定し、基準値と演算結果との判定の結果、所定の関係を満たす場合にのみフラグを正常状態に設定しなおす。一方、所定の関係を満たさない場合、フラグを異常状態に維持する。このように、フラグを用いることで、フラグ情報をROM44に格納することが厳しい第2マイコン40を用いる場合でも、不正データの確認を容易に行うことができる。また、途中で処理が止まっても、フラグの状態を確認することができる。
(第2実施形態)
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示したECU20及びデータ書換システム10と共通する部分についての説明は省略する。
たとえば、要求される機能に応じて、複数の第2マイコン40の中からひとつを選択し、ECU20に搭載することが考えられる。このため、本実施形態では、非書換領域34bのアドレス情報領域34b1に、図9に示すように、複数のアドレス情報が記憶されている。具体的には、ECU20として搭載可能な複数の第2マイコン40分の基準値のアドレス情報が記憶されている。
本実施形態でも、書換装置60から、リプロ要求として、IDコードを含むデータが暗号化されて送信される。また、図9に示すように、第2マイコン40の種類に応じてIDコードが設定されている。したがって、第1マイコン30は、リプロ要求を受信すると、図10に示すように、リプロ要求として受信したデータのIDコードに基づいて、搭載されている第2マイコン40の種類、すなわち対応する基準値のアドレス情報を選択する(ステップS90)。このステップS90に示す処理が、選択部に相当する。
ステップS90の実行後、第1マイコン30は、ステップS100を実行する。すなわち、ステップS90で選択した基準値のアドレス情報を、RAM35に設定する。以下の処理は第1実施形態と同じである。
本実施形態によれば、第2マイコン40を変更しても、共通する第1マイコン30にて、不正データの書き込み検出を実行することができる。
(第3実施形態)
本実施形態は、先行実施形態を参照できる。このため、先行実施形態に示したECU20及びデータ書換システム10と共通する部分についての説明は省略する。
先行実施形態では、第1マイコン30が有するROM34の非書換領域34b(アドレス情報領域34b1)に、基準値のアドレス情報が予め記憶されている例を示した。これに対し、本実施形態では、書換装置60がリプロ要求として、IDコードに加えて基準値のアドレス情報も送信する。
このため、第1マイコン30は、リプロ要求として、基準値のアドレス情報を受信する。そして、図11に示すように、受信した基準値のアドレス情報を、RAM35に設定する(ステップS110)。それ以後の処理については第1実施形態と同じである。ステップS110に示す処理が、設定部に相当する。
これによれば、ROM44の容量や基準値の格納されるアドレスに変更が生じた場合にも、不正データの書き込み検出を実施することができる。すなわち、設計の自由度を向上することができる。また、ROM34に、予め基準値のアドレス情報を記憶させておく必要がない。
上記実施形態の構造は、あくまで例示であって、本発明の範囲はこれらの記載の範囲に限定されるものではない。本発明の範囲は、特許請求の範囲の記載によって示され、さらに特許請求の範囲の記載と均等の意味及び範囲内でのすべての変更を含むものである。
上記実施形態では、外部メモリとして、第2マイコン40のROM44の例を示したが
これに限定されるものではない。外部メモリとしては、第1マイコン30(マイコン)の外部に設けられ、書換可能な不揮発性のメモリであれば採用することができる。
上記実施形態では、第2マイコン40のROM44のデータ(制御プログラム)を更新する際に、所定バイト単位で書き込み及び読み出しを実行する例を示した。しかしながら、更新するためのすべての書込データを1回の書込コマンドで第1マイコン30に送信し、1回の読出コマンドですべての読出データを第1マイコン30に送信する構成を採用することもできる。この場合、図5に示したステップS530が不要となる。
フラグを用いる例を示したが、フラグのない構成を採用することもできる。
10…データ書換システム、20…電子制御装置(ECU)、30…第1マイコン、31,32…通信回路、33…CPU、34…ROM、34a…書換可能領域、34a1…フラグ領域、34b…非書換領域、34b1…アドレス情報領域、40…第2マイコン、41…通信回路、43…CPU、44…ROM、44a…書換可能領域、44b…非書換領域、45…RAM、50…外部通信線、51…内部通信線、60…書換装置

Claims (5)

  1. マイコン(30)と、前記マイコンの外部に設けられ、書換可能な不揮発性の外部メモリ(44)と、を備え、
    書換装置(60)から送信された書込データが前記マイコンにより転送されて前記外部メモリに書き込まれ、前記外部メモリのデータが更新される電子制御装置であって、
    前記マイコンが、前記書込データが不正データであるか否かを判定するための基準値を、受信した前記書込データ内の所定アドレスから抽出する抽出部(S506,S508)と、前記外部メモリに書き込まれた前記書込データを、前記外部メモリから取得する取得部(S520,S522)と、前記取得部が取得した前記書込データのうち、前記基準値を除くデータを用いて、所定の演算を実行する演算部(S524,S526,S528)と、前記演算部による演算結果と前記基準値との関係が、予め設定された所定の関係を満たすか否かを判定する判定部(S602)と、前記判定部の判定結果を前記書換装置に送信する通知部(S606,S610)と、を有し、
    前記マイコンは、書換可能な不揮発性メモリ(34)を有し、
    前記基準値のアドレス情報は、前記不揮発性メモリにおいてデータの書き換えが不可能な非書換領域(34b)に予め記憶されている電子制御装置。
  2. 前記非書換領域には、複数のアドレス情報が予め記憶されており、
    前記マイコンは、前記書換装置から送信された情報に基づいて、前記複数のアドレス情報の中からひとつを選択する選択部(S90)を有し、
    前記抽出部は、選択された前記アドレス情報に基づいて前記基準値を抽出する請求項1に記載の電子制御装置。
  3. マイコン(30)と、前記マイコンの外部に設けられ、書換可能な不揮発性の外部メモリ(44)と、を備え、
    書換装置(60)から送信された書込データが前記マイコンにより転送されて前記外部メモリに書き込まれ、前記外部メモリのデータが更新される電子制御装置であって、
    前記マイコンが、前記書込データが不正データであるか否かを判定するための基準値を、受信した前記書込データ内の所定アドレスから抽出する抽出部(S506,S508)と、前記外部メモリに書き込まれた前記書込データを、前記外部メモリから取得する取得部(S520,S522)と、前記取得部が取得した前記書込データのうち、前記基準値を除くデータを用いて、所定の演算を実行する演算部(S524,S526,S528)と、前記演算部による演算結果と前記基準値との関係が、予め設定された所定の関係を満たすか否かを判定する判定部(S602)と、前記判定部の判定結果を前記書換装置に送信する通知部(S606,S610)と、を有し、
    前記マイコンは、前記書換装置から送信された情報を、前記基準値のアドレス情報として設定する設定部(S110)を有し、
    前記抽出部は、設定された前記アドレス情報に基づいて前記基準値を抽出する電子制御装置。
  4. 前記マイコンは、前記書込データを前記外部メモリに送信する前に、正規データの書き込みが完了したか否かを管理するフラグを異常状態に設定し、前記基準値と前記演算結果とが所定関係を満たす場合に、前記フラグを正常状態に設定するフラグ状態設定部(S200,S604,S608)を有する請求項1〜3いずれか1項に記載の電子制御装置。
  5. 前記マイコンは第1マイコンであり、
    前記第1マイコンとは別に設けられた第2マイコン(40)をさらに備え、
    前記第2マイコンに、前記外部メモリが内蔵されている請求項1〜4いずれか1項に記載の電子制御装置。
JP2015217816A 2015-11-05 2015-11-05 電子制御装置 Active JP6468168B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015217816A JP6468168B2 (ja) 2015-11-05 2015-11-05 電子制御装置
DE102016221667.8A DE102016221667A1 (de) 2015-11-05 2016-11-04 Elektronische Steuereinheit und Datenumschreibesystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015217816A JP6468168B2 (ja) 2015-11-05 2015-11-05 電子制御装置

Publications (2)

Publication Number Publication Date
JP2017091057A JP2017091057A (ja) 2017-05-25
JP6468168B2 true JP6468168B2 (ja) 2019-02-13

Family

ID=58585312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015217816A Active JP6468168B2 (ja) 2015-11-05 2015-11-05 電子制御装置

Country Status (2)

Country Link
JP (1) JP6468168B2 (ja)
DE (1) DE102016221667A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6898643B2 (ja) * 2017-08-10 2021-07-07 株式会社Subaru 車両用の電子制御装置
JP2022163546A (ja) * 2021-04-14 2022-10-26 日立Astemo株式会社 制御装置及び制御システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000200193A (ja) * 1999-01-06 2000-07-18 Toshiba Tec Corp デ―タ処理装置
JP2004030539A (ja) * 2002-06-28 2004-01-29 Sony Corp 情報処理装置および方法、記録媒体、並びにプログラム
JP2005178169A (ja) * 2003-12-19 2005-07-07 Canon Inc 印刷装置
JP2005275843A (ja) * 2004-03-25 2005-10-06 Murata Mach Ltd データ処理装置
JP2006268107A (ja) 2005-03-22 2006-10-05 Denso Corp 電子制御装置
JP2008040924A (ja) * 2006-08-09 2008-02-21 Murata Mach Ltd ファームウェアの書き換え方法、及び、ファームウェアの読み込み方法
JP5744078B2 (ja) * 2013-01-31 2015-07-01 Necプラットフォームズ株式会社 組み込み機器制御システム、組み込み機器制御装置、及び組み込み機器制御装置の制御方法

Also Published As

Publication number Publication date
DE102016221667A1 (de) 2017-05-11
JP2017091057A (ja) 2017-05-25

Similar Documents

Publication Publication Date Title
US10013365B2 (en) Method for programming a control unit of a motor vehicle
JP5411122B2 (ja) 情報処理装置
CN103198270B (zh) 使用清单来记录有效软件和校准文件的存在
US20120060008A1 (en) Information processing trminal, method, program, and integrated circuit for controlling access to confidential information, and recording medium having the program recorded thereon
JP6354566B2 (ja) マイクロコンピュータ
JP6468168B2 (ja) 電子制御装置
KR20170102285A (ko) 보안 요소
JP6895373B2 (ja) 自動車用電子制御装置
JP6656409B2 (ja) 情報処理装置および情報処理方法
JP6354438B2 (ja) 情報処理装置、情報処理システム及び処理プログラム
JP7087334B2 (ja) 電子制御装置
JP6610060B2 (ja) 中継装置、プログラム及び情報処理システム
JP7211189B2 (ja) 更新処理システム及び更新処理方法
WO2020090418A1 (ja) 電子制御装置、電子制御装置のリプログラミング方法
US20050034034A1 (en) Control device with rewriteable control data
JP5358599B2 (ja) ソフトウエア書き換え装置およびその装置を用いたソフトウエアの書き換え方法
JP5226383B2 (ja) マイクロコンピュータの識別情報管理システム及び方法
JP4661244B2 (ja) 空気調和機
JP6107710B2 (ja) プログラム管理装置、車両用制御装置及びプログラム管理プログラム
JP7408593B2 (ja) 制御装置、情報処理装置、および情報処理システム
JP2008052618A (ja) 電子制御装置
KR101787272B1 (ko) 초기 데이터 관리가 가능한 전자 제어장치 및 이를 이용한 초기 데이터 관리방법
JP5749832B2 (ja) 自動車用電子制御装置及び自動車用電子制御装置におけるデータ書き込み方法
JP4601968B2 (ja) データ整合性検査を省けるicカードおよびicカード用プログラム
JP2020181285A (ja) Ic媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181231

R151 Written notification of patent or utility model registration

Ref document number: 6468168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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