JP2020101841A - 車両制御装置 - Google Patents
車両制御装置 Download PDFInfo
- Publication number
- JP2020101841A JP2020101841A JP2017076109A JP2017076109A JP2020101841A JP 2020101841 A JP2020101841 A JP 2020101841A JP 2017076109 A JP2017076109 A JP 2017076109A JP 2017076109 A JP2017076109 A JP 2017076109A JP 2020101841 A JP2020101841 A JP 2020101841A
- Authority
- JP
- Japan
- Prior art keywords
- special program
- flag
- vehicle control
- program
- control device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 22
- 230000004913 activation Effects 0.000 description 14
- 230000008672 reprogramming Effects 0.000 description 14
- 239000013589 supplement Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
- B60R16/02—Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Mechanical Engineering (AREA)
- Stored Programmes (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】特殊プログラムを車両制御装置に常駐させつつ、特殊プログラムを確実に非活性化することができる車両制御装置を提供する。【解決手段】本発明に係る車両制御装置は、第1演算装置のみがアクセスすることができる第1記憶領域と、第2演算装置のみがアクセスすることができる第2記憶領域とを備え、特殊プログラムを起動することを許可するか否かを示す第1フラグと第2フラグのうち少なくともいずれかを、前記第1記憶領域と前記第2記憶領域のいずれかに格納する。【選択図】図2
Description
本発明は、車両を制御する装置に関する。
車両が搭載する制御ソフトウェアは、機能安全規格であるISO26262に準拠することが求められている。ISO26262は、車両制御装置の仕様として含まれていない特殊プログラムを非活性化することを保証するよう求めている。特殊プログラムが意図せず起動すると、車両制御に対して意図しない影響を与えて車両動作が不安定になる可能性があるからである。ここでいう特殊プログラムとは、車両を制御する処理以外の処理を実装したプログラムであり、例えばリプログラム処理を実装したプログラム、出荷検査時のハードウェアチェックを実装したプログラムなどがこれに該当する。
ISO26262 Part6
特殊プログラムを非活性化する手法としては、例えば以下のようなものが考えられる。制御プログラムを記憶するROM(Read Only Memory)上に特殊プログラムを併せて書き込んでおき、さらに特殊モードプログラムを起動することを許可するか否かを示すフラグを適当な記憶装置(同じROM、EEPROM(Electrically Erasable Programmable Read Only Memory)など)に書き込む。CPU(Central Processing Unit)は同フラグが特殊プログラムを起動することを許可している場合のみ、特殊プログラムを起動する。
上記のような非活性化手法を用いる場合、フラグが何らかの原因により誤って書き換えられると、本来であれば特殊プログラムを起動することが禁止されているにも関わらず起動することができるとみなされる可能性がある。この場合、特殊プログラムを非活性化することが充分に保証されていないということができる。したがって特殊プログラムを実行するためには、実行するごとに特殊プログラムを車両制御装置に対して書き込み、実行し終えると車両制御装置から特殊プログラムを消去する必要がある。換言すると、特殊プログラムを車両制御装置内に常駐させておくことができない。このような構成は、作業効率の観点から望ましくない。
本発明は、上記のような課題に鑑みてなされたものであり、特殊プログラムを車両制御装置に常駐させつつ、特殊プログラムを確実に非活性化することができる車両制御装置を提供することを目的とする。
本発明に係る車両制御装置は、第1演算装置のみがアクセスすることができる第1記憶領域と、第2演算装置のみがアクセスすることができる第2記憶領域とを備え、特殊プログラムを起動することを許可するか否かを示す第1フラグと第2フラグのうち少なくともいずれかを、前記第1記憶領域と前記第2記憶領域のいずれかに格納する。
本発明に係る車両制御装置によれば、特殊プログラムを常に保持しつつ、特殊プログラムを確実に非活性化することができる。
<実施の形態1>
図1は、本発明の実施形態1に係る車両制御装置100の構成図である。車両制御装置100は、車両の動作を制御する装置であり、第1CPU111、第2CPU112、RAM(Random Access Memory)120、EEPROM130、ROM140を備える。
図1は、本発明の実施形態1に係る車両制御装置100の構成図である。車両制御装置100は、車両の動作を制御する装置であり、第1CPU111、第2CPU112、RAM(Random Access Memory)120、EEPROM130、ROM140を備える。
ROM140は、制御プログラム141、特殊プログラム142、第1フラグ143、第2フラグ144を格納する。制御プログラム141は、車両の動作を制御する処理を実装したプログラムである。特殊プログラム142は、それ以外の処理を実装したプログラムである。例えば先に説明したように、リプログラミング処理やハードウェアチェックを実装したプログラムがこれに相当する。第1フラグ143と第2フラグ144は、特殊プログラム142を実行することを許可するか否かを示す値を有する。
第1CPU111と第2CPU112は、それぞれ制御プログラム141を実行することにより、車両の動作を制御する。第1CPU111と第2CPU112のうちいずれかまたは双方は、さらに特殊プログラム142を実行する。以下では第1CPU111が特殊プログラム142を実行するものとして説明する。
RAM120は、第1CPU111と第2CPU112が動作する際に用いるデータを一時的に記憶するメモリである。EEPROM130は、第1CPU111と第2CPU112が動作する際に用いるデータを記憶する不揮発性記憶装置である。例えば学習済データや故障履歴などのように永続的に記憶すべきデータをEEPROM130に格納することができる。
図2は、ROM140が備える記憶領域について説明する模式図である。ROM140は、第1CPU111のみがアクセスすることができる第1ROM領域145と、第2CPU112のみがアクセスすることができる第2ROM領域146とを有する。第1ROM領域145は、第1フラグ143を格納する。第2ROM領域146は、第2フラグ144を格納する。制御プログラム141と特殊プログラム142は、これらを実行するCPUがアクセスすることができる記憶領域に格納する。本実施形態1においては第1CPU111がこれらを実行することとしたので、第1ROM領域145がこれらプログラムを格納する。
第1CPU111は、第1フラグ143と第2フラグ144がともに、特殊プログラム142を起動することを許可する旨の値を有している場合のみ、特殊プログラム142を実行する。フラグを2重化することにより、いずれかのフラグが特殊プログラム142を起動許可する旨の値に誤って書き換えられたとしても、特殊プログラム142を誤って起動しないようにすることができる。すなわち特殊プログラム142を確実に非活性化することができる。
さらに、第1フラグ143と第2フラグ144のうち少なくともいずれかを、第1ROM領域145と第2ROM領域146のいずれかに格納することにより、各CPUが誤ってフラグを書き換える可能性を抑制できる。例えば第1CPU111が誤動作したとしても、第2フラグ144を書き換えることはできない。これにより、第1フラグ143と第2フラグ144が誤って書き換えられる可能性をさらに抑制し、特殊プログラム142をより確実に非活性化することができる。
図3は、第1CPU111が特殊プログラム142を実行する手順を説明するフローチャートである。第1CPU111は、特殊プログラム142を実行するよう要求するリクエストを例えば車両の外部から受け取ったとき、本フローチャートを開始する。以下図3の各ステップについて説明する。
(図3:ステップS301)
第1CPU111は、特殊プログラム142を起動することを許可する旨を第2フラグ144が示しているか否かを判断する。例えば第1CPU111から第2CPU112に対して第2フラグ144の値を照会することにより、第2フラグ144の値を取得することができる。特殊プログラム142を起動することを第2フラグ144が許可している(有効)場合はステップS302へ進み、それ以外(無効)であればステップS303へ進む。
第1CPU111は、特殊プログラム142を起動することを許可する旨を第2フラグ144が示しているか否かを判断する。例えば第1CPU111から第2CPU112に対して第2フラグ144の値を照会することにより、第2フラグ144の値を取得することができる。特殊プログラム142を起動することを第2フラグ144が許可している(有効)場合はステップS302へ進み、それ以外(無効)であればステップS303へ進む。
(図3:ステップS302)
第1CPU111は、特殊プログラム142を起動することを許可する旨を第1フラグ143が示しているか否かを判断する。特殊プログラム142を起動することを第1フラグ143が許可している(有効)場合はステップS307へ進み、それ以外(無効)であればステップS305へ進む。
第1CPU111は、特殊プログラム142を起動することを許可する旨を第1フラグ143が示しているか否かを判断する。特殊プログラム142を起動することを第1フラグ143が許可している(有効)場合はステップS307へ進み、それ以外(無効)であればステップS305へ進む。
(図3:ステップS303)
第1CPU111は、特殊プログラム142を起動することを許可するように第2フラグ144を書き換える(第2フラグ144を有効化する)コマンドを待機する。例えば特殊プログラム142を実行するよう要求するリクエストを発行した車外装置から、そのようなコマンドを受け取ることができる。
第1CPU111は、特殊プログラム142を起動することを許可するように第2フラグ144を書き換える(第2フラグ144を有効化する)コマンドを待機する。例えば特殊プログラム142を実行するよう要求するリクエストを発行した車外装置から、そのようなコマンドを受け取ることができる。
(図3:ステップS304)
第1CPU111は、ステップS303において受け取ったコマンドにしたがって、第2フラグ144を有効化する。コマンドを待機する処理、およびそのコマンドにしたがって第2フラグ144を書き換える処理は、例えば制御プログラム141のなかに実装することができる。
第1CPU111は、ステップS303において受け取ったコマンドにしたがって、第2フラグ144を有効化する。コマンドを待機する処理、およびそのコマンドにしたがって第2フラグ144を書き換える処理は、例えば制御プログラム141のなかに実装することができる。
(図3:ステップS305〜S306)
第1CPU111は、第1フラグ143についてステップS303〜S304と同様の処理を実施する。
第1CPU111は、第1フラグ143についてステップS303〜S304と同様の処理を実施する。
(図3:ステップS307〜S308)
第1CPU111は、特殊プログラム142を起動することが許可されていると判断する(S307)。第1CPU111は、本フローチャートを開始するリクエストにしたがって特殊プログラム142を実行する(S308)。特殊プログラム142の例として以下のようなものが挙げられる。車両を制御する処理以外のプログラムであれば、その他プログラムも特殊プログラム142として構成することができる。
第1CPU111は、特殊プログラム142を起動することが許可されていると判断する(S307)。第1CPU111は、本フローチャートを開始するリクエストにしたがって特殊プログラム142を実行する(S308)。特殊プログラム142の例として以下のようなものが挙げられる。車両を制御する処理以外のプログラムであれば、その他プログラムも特殊プログラム142として構成することができる。
(図3:ステップS308:特殊プログラム142の例その1)
特殊プログラム142の例として、ROM140が記憶しているデータを書き換えるリプログラミング処理を実装したプログラムが挙げられる。リプログラミングとは、例えば制御プログラム141を新バージョンに更新する処理である。特殊プログラム142、第1フラグ143、第2フラグ144を書き換える処理も、リプログラミング処理として実装することができる。
特殊プログラム142の例として、ROM140が記憶しているデータを書き換えるリプログラミング処理を実装したプログラムが挙げられる。リプログラミングとは、例えば制御プログラム141を新バージョンに更新する処理である。特殊プログラム142、第1フラグ143、第2フラグ144を書き換える処理も、リプログラミング処理として実装することができる。
(図3:ステップS308:特殊プログラム142の例その2)
特殊プログラム142の例として、車両制御装置100が備えるハードウェアが故障しているか否かをチェックするプログラムが挙げられる。故障履歴をチェックする処理もこれに含まれる。
特殊プログラム142の例として、車両制御装置100が備えるハードウェアが故障しているか否かをチェックするプログラムが挙げられる。故障履歴をチェックする処理もこれに含まれる。
(図3:ステップS308:特殊プログラム142の例その3)
特殊プログラム142の例として、車両制御装置100が内部的に保持しているデータを出力するプログラムが挙げられる。例えばEEPROM130が格納している内部変数を車両制御装置100の外へ出力する処理が考えられる。
特殊プログラム142の例として、車両制御装置100が内部的に保持しているデータを出力するプログラムが挙げられる。例えばEEPROM130が格納している内部変数を車両制御装置100の外へ出力する処理が考えられる。
(図3:ステップS308:特殊プログラム142の例その4)
特殊プログラム142の例として、車両制御装置100の外からプログラムやデータを受け取り、これをRAM120に格納するプログラムが挙げられる。
特殊プログラム142の例として、車両制御装置100の外からプログラムやデータを受け取り、これをRAM120に格納するプログラムが挙げられる。
<実施の形態2>
図4は、本発明の実施形態2におけるROM140が備える記憶領域について説明する模式図である。ROM140が備える記憶領域の構成以外は実施形態1と同様なので、以下では主に差異点について説明する。
図4は、本発明の実施形態2におけるROM140が備える記憶領域について説明する模式図である。ROM140が備える記憶領域の構成以外は実施形態1と同様なので、以下では主に差異点について説明する。
本実施形態2において、第2フラグ144はEEPROM130上に格納されている。第1CPU111と第2CPU112ともに、EEPROM130に対してアクセスすることができる。
第1CPU111は、特殊プログラム142を実行するよう要求するリクエストを受け取ると、実施形態1と同様に第2CPU112を介して第2フラグ144の値を取得し、第1フラグ143と併せて、特殊プログラム142を実行することが許可されているか否かを判断する。これにより実施形態1と同様の効果を発揮することができる。
本実施形態2においては、第1CPU111が第2フラグ144を誤って書き換える可能性がある点においては、特殊プログラム142が誤って起動される可能性がある。しかし第2CPU112が第1フラグ143を書き換えることができない点においては実施形態1と同様である。したがって、単にフラグを2重化することと比較して、特殊プログラム142をより確実に非活性化することができる。
本実施形態2において、EEPROM130を2つの記憶領域に分け、一方は第1CPU111のみがアクセスできるように構成し、他方は第2CPU112のみがアクセスできるように構成してもよい。これにより、実施形態1とほぼ同様の効果を発揮することができる。
<実施の形態3>
図5は、本発明の実施形態3におけるROM140が備える記憶領域について説明する模式図である。ROM140が備える記憶領域の構成と後述するタイマ150以外は実施形態1と同様なので、以下では主に差異点について説明する。
図5は、本発明の実施形態3におけるROM140が備える記憶領域について説明する模式図である。ROM140が備える記憶領域の構成と後述するタイマ150以外は実施形態1と同様なので、以下では主に差異点について説明する。
本実施形態3において、第2ROM領域146は制御プログラム147を格納し、第2CPU112は制御プログラム147を実行する。本実施形態3においては、制御プログラム147が実装している処理の一部を、第2フラグ144の代用として用いる。以下その具体的手法を説明する。
第1CPU111または第2CPU112は、車両制御装置100が起動すると、タイマ150を起動する。制御プログラム147は、その制御処理のなかで、タイマ150のカウント値が所定閾値に達したか否かをチェックする条件判断処理を実装している。第2CPU112は、その条件判断処理を実行する過程において、カウント値が所定閾値に達したか否かを判断する。
例えばカウント値が所定閾値未満である場合は特殊プログラム142を起動することを許可し、所定閾値以上である場合は特殊プログラム142を起動することを禁止することができる。これにより、車両制御装置100が起動してから所定閾値に達するまでの間は特殊プログラム142を起動することを許可し、それ以降は特殊プログラム142を起動することを自動的に禁止できるので、第2フラグ144を逐一書き換えるのと比較して処理やメンテナンス作業を簡易化できる。
<実施の形態4>
本発明の実施形態4では、実施形態1〜3で説明した構成を用いて各種作業を実施する手順を説明する。以下では実施形態1の構成を前提とするが、実施形態2〜3の構成においても同様の手順を用いることができる。
本発明の実施形態4では、実施形態1〜3で説明した構成を用いて各種作業を実施する手順を説明する。以下では実施形態1の構成を前提とするが、実施形態2〜3の構成においても同様の手順を用いることができる。
図6は、車両制御装置100を工場から出荷する際の作業手順を説明するフローチャートである。以下図6の各ステップについて説明する。
(図6:ステップS601〜S603)
作業者は、適当な書込装置を用いて、第1ROM領域145に対して制御プログラム141と特殊プログラム142を書き込む(S601)。作業者はさらに、第1ROM領域145に対して第1フラグ143を書き込むとともに(S602)、第2ROM領域146に対して第2フラグ144を書き込む(S603)。以後のステップにおいて特殊プログラム142を実行するので、これらフラグはいずれも、特殊プログラム142を起動することを許可する旨を示す値(有効)とする。
作業者は、適当な書込装置を用いて、第1ROM領域145に対して制御プログラム141と特殊プログラム142を書き込む(S601)。作業者はさらに、第1ROM領域145に対して第1フラグ143を書き込むとともに(S602)、第2ROM領域146に対して第2フラグ144を書き込む(S603)。以後のステップにおいて特殊プログラム142を実行するので、これらフラグはいずれも、特殊プログラム142を起動することを許可する旨を示す値(有効)とする。
(図6:ステップS602〜S603:補足)
書込装置は、例えば車両制御装置100を搭載している車両のメンテナンス端子に対して接続するように構成されている。この場合、書込装置は車両制御装置100が内部的に保持しているデータに対して必ずしも直接的にアクセスできない場合がある。そこで例えば書込装置から車両制御装置100に対してコマンドを発行し、車両制御装置100がそのコマンドを実行することにより、書込装置からの書込指令を実施することができる。ステップS303やS305はそのためのものである。
書込装置は、例えば車両制御装置100を搭載している車両のメンテナンス端子に対して接続するように構成されている。この場合、書込装置は車両制御装置100が内部的に保持しているデータに対して必ずしも直接的にアクセスできない場合がある。そこで例えば書込装置から車両制御装置100に対してコマンドを発行し、車両制御装置100がそのコマンドを実行することにより、書込装置からの書込指令を実施することができる。ステップS303やS305はそのためのものである。
(図6:ステップS604)
作業者は、特殊プログラム142のうち車両制御装置100のハードウェアをチェックする機能を実装したものを起動することにより、出荷検査を実施する。特殊プログラム142が複数存在し、あるいは複数の機能を実装している場合は、出荷検査機能のみを起動すれば足りる。
作業者は、特殊プログラム142のうち車両制御装置100のハードウェアをチェックする機能を実装したものを起動することにより、出荷検査を実施する。特殊プログラム142が複数存在し、あるいは複数の機能を実装している場合は、出荷検査機能のみを起動すれば足りる。
(図6:ステップS605〜S606)
作業者は、ステップS602〜S603と反対の手順により、第1フラグ143と第2フラグ144をそれぞれ、特殊プログラム142を起動することを禁止する値(無効)に書き換える。これにより、特殊プログラム142が非活性化された状態で、車両制御装置100がユーザのもとに届けられることになる。
作業者は、ステップS602〜S603と反対の手順により、第1フラグ143と第2フラグ144をそれぞれ、特殊プログラム142を起動することを禁止する値(無効)に書き換える。これにより、特殊プログラム142が非活性化された状態で、車両制御装置100がユーザのもとに届けられることになる。
図7は、車両制御装置100が故障などにより市場から返却されたときの作業手順を説明するフローチャートである。以下図7の各ステップについて説明する。
(図7:ステップS701)
作業者は、制御プログラム141が備える診断機能を実行することにより、EEPROM130が格納している故障履歴を読み出す。特殊プログラム142が同診断機能を実装している場合は、本ステップの前にステップS702とS703を実施する。
作業者は、制御プログラム141が備える診断機能を実行することにより、EEPROM130が格納している故障履歴を読み出す。特殊プログラム142が同診断機能を実装している場合は、本ステップの前にステップS702とS703を実施する。
(図7:ステップS702〜S706)
これらステップは、ステップS602〜S606と同様である。ただし第1フラグ143と第2フラグ144は既に書き込まれているので、ステップS702とS703においてはこれらフラグを上書更新することになる。
これらステップは、ステップS602〜S606と同様である。ただし第1フラグ143と第2フラグ144は既に書き込まれているので、ステップS702とS703においてはこれらフラグを上書更新することになる。
図8は、リプログラミング作業の手順を説明するフローチャートである。リプログラミング作業は、例えば制御プログラム141をバージョンアップするため、車両制御装置100のメンテナンス作業の一環として実施される。以下図8の各ステップについて説明する。
(図8:ステップS801〜S805)
これらステップは、ステップS702〜S706と同様である。ただしステップS803において、第1ROM領域145をリプログラミングする機能を実装した特殊プログラム142を起動する点のみ、図7の手順とは異なる。
これらステップは、ステップS702〜S706と同様である。ただしステップS803において、第1ROM領域145をリプログラミングする機能を実装した特殊プログラム142を起動する点のみ、図7の手順とは異なる。
(図8:ステップS803:補足その1)
ROM140がフラッシュROMを用いて構成されている場合、書き換える記憶領域をいったん消去(ブランク状態)した上で、ある程度のサイズを有するブロック単位でリプログラミングを実施する必要がある。フラッシュROMはいったんデータを消去しないと新たなデータを書き込むことができず、またブロック単位の書き込みしかできないからである。このことを利用して、例えば特殊プログラム142を格納する記憶領域の一部を第1フラグ143のために利用することができる。例えばリプログラミングを実施する際に特殊プログラム142も書き換えることとし、特殊プログラム142の終端に続く記憶領域を第1フラグ143として用いる。これにより、特殊プログラム142の最終ブロックを書き込む際に、第1フラグ143を併せて書き込むことができる。
ROM140がフラッシュROMを用いて構成されている場合、書き換える記憶領域をいったん消去(ブランク状態)した上で、ある程度のサイズを有するブロック単位でリプログラミングを実施する必要がある。フラッシュROMはいったんデータを消去しないと新たなデータを書き込むことができず、またブロック単位の書き込みしかできないからである。このことを利用して、例えば特殊プログラム142を格納する記憶領域の一部を第1フラグ143のために利用することができる。例えばリプログラミングを実施する際に特殊プログラム142も書き換えることとし、特殊プログラム142の終端に続く記憶領域を第1フラグ143として用いる。これにより、特殊プログラム142の最終ブロックを書き込む際に、第1フラグ143を併せて書き込むことができる。
(図8:ステップS803:補足その2)
上記補足その1を採用した場合において、第1CPU111は、第1フラグ143を格納するアドレスがブランク状態である場合は、特殊プログラム142を起動することを禁止する旨を第1フラグ143が示していると取り扱うこともできる。これにより、例えば第1ROM領域145をいったん消去(ブランク状態)にした後、特殊プログラム142を起動することを禁止したい場合は特殊プログラム142と併せて第1フラグ143を書き込み、起動を許可する場合は特殊プログラム142のみを書き込めば足りる。したがって、リプログラミング作業を簡易化することができる。
上記補足その1を採用した場合において、第1CPU111は、第1フラグ143を格納するアドレスがブランク状態である場合は、特殊プログラム142を起動することを禁止する旨を第1フラグ143が示していると取り扱うこともできる。これにより、例えば第1ROM領域145をいったん消去(ブランク状態)にした後、特殊プログラム142を起動することを禁止したい場合は特殊プログラム142と併せて第1フラグ143を書き込み、起動を許可する場合は特殊プログラム142のみを書き込めば足りる。したがって、リプログラミング作業を簡易化することができる。
(図8:ステップS803:補足その3)
上記補足その1〜その2とは異なり、ROM140としてフラッシュROMを採用した上で、特殊プログラム142を書き込むブロックと第1フラグ143を書き込むブロックを分けることもできる。第1CPU111はこの場合、例えば第1フラグ143を書き込むアドレスがブランク状態であれば特殊プログラム142を起動することが許可されていると取り扱うことができる。また特殊プログラム142を起動することを一時的に許可したい場合は、第1フラグ143を格納するブロックを一括消去すれば足りるので、そのための作業時間は短くて済む。
上記補足その1〜その2とは異なり、ROM140としてフラッシュROMを採用した上で、特殊プログラム142を書き込むブロックと第1フラグ143を書き込むブロックを分けることもできる。第1CPU111はこの場合、例えば第1フラグ143を書き込むアドレスがブランク状態であれば特殊プログラム142を起動することが許可されていると取り扱うことができる。また特殊プログラム142を起動することを一時的に許可したい場合は、第1フラグ143を格納するブロックを一括消去すれば足りるので、そのための作業時間は短くて済む。
(図8:ステップS803:補足その4)
上記補足その2〜その3のように、第1フラグ143がブランク状態であるとき特殊プログラム142を起動することを許可する場合、以下の利点がある。リプログラミング作業が例えば電源遮断などにより途中終了した場合、改めて特殊プログラム142を起動することによりリプログラミングを再開する必要がある。このとき、第1フラグ143を格納する記憶領域は、リプログラミングの最初に消去されてブランク状態になっているので改めて第1フラグ143を有効化しなくともそのまま特殊プログラム142を起動することが許可されていることになる。したがって、リプログラミングを再開するために第1フラグ143を改めて有効化する必要がないので、作業効率の観点から有利である。
上記補足その2〜その3のように、第1フラグ143がブランク状態であるとき特殊プログラム142を起動することを許可する場合、以下の利点がある。リプログラミング作業が例えば電源遮断などにより途中終了した場合、改めて特殊プログラム142を起動することによりリプログラミングを再開する必要がある。このとき、第1フラグ143を格納する記憶領域は、リプログラミングの最初に消去されてブランク状態になっているので改めて第1フラグ143を有効化しなくともそのまま特殊プログラム142を起動することが許可されていることになる。したがって、リプログラミングを再開するために第1フラグ143を改めて有効化する必要がないので、作業効率の観点から有利である。
(図8:ステップS803:補足その5)
上記補足その2〜その3のように、第1フラグ143がブランク状態であるとき特殊プログラム142を起動することを許可する場合、例えば車両制御装置100がハッキングされることにより第1フラグ143が消去されると、特殊プログラム142を不正に起動される可能性がある。しかしこの場合であっても、第1ROM領域145が不正に消去されたことを第2CPU112が何らかの手段によって検出できれば、例えば第1フラグ143が有効であっても特殊プログラム142を一時的に起動禁止することにより、不正起動を防止できる。
上記補足その2〜その3のように、第1フラグ143がブランク状態であるとき特殊プログラム142を起動することを許可する場合、例えば車両制御装置100がハッキングされることにより第1フラグ143が消去されると、特殊プログラム142を不正に起動される可能性がある。しかしこの場合であっても、第1ROM領域145が不正に消去されたことを第2CPU112が何らかの手段によって検出できれば、例えば第1フラグ143が有効であっても特殊プログラム142を一時的に起動禁止することにより、不正起動を防止できる。
<本発明の変形例について>
本発明は上記実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換える事が可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について他の構成の追加・削除・置換をすることができる。
本発明は上記実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換える事が可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について他の構成の追加・削除・置換をすることができる。
以上の実施形態において、第1CPU111と第2CPU112がそれぞれ異なるROM領域に対してのみアクセスできることを説明したが、同様の構成はマルチコアCPUの各コアについても適用することができる。この場合、各コアは自身がアクセスすることができるフラグのみを読み取るので、本発明と同様の効果を発揮することができる。
100:車両制御装置
111:第1CPU
112:第2CPU
120:RAM
130:EEPROM
140:ROM
141:制御プログラム
142:特殊プログラム
143:第1フラグ
144:第2フラグ
145:第1ROM領域
146:第2ROM領域
111:第1CPU
112:第2CPU
120:RAM
130:EEPROM
140:ROM
141:制御プログラム
142:特殊プログラム
143:第1フラグ
144:第2フラグ
145:第1ROM領域
146:第2ROM領域
Claims (5)
- 車両の動作を制御する車両制御装置であって、
前記車両の動作を制御する処理を実装した制御プログラムと、前記車両の動作を制御する処理以外の特殊処理を実装した特殊プログラムとを格納する第1記憶装置、
前記制御プログラムを実行する第1および第2演算装置、
を備え、
前記第1記憶装置は、前記第1演算装置のみがアクセスすることができる第1記憶領域と、前記第2演算装置のみがアクセスすることができる第2記憶領域とを有し、
前記第1記憶領域は、前記特殊プログラムを実行することを許可するか否かを示す第1フラグを格納し、
前記車両制御装置は、前記特殊プログラムを実行することを許可するか否かを示す第2フラグを、前記第1記憶領域とは異なる記憶領域に格納し、
前記第1演算装置は、前記特殊プログラムを実行することを許可する旨を前記第1フラグが示すとともに、前記特殊プログラムを実行することを許可する旨を前記第2フラグが示すときに限り、前記特殊プログラムを実行する
ことを特徴とする車両制御装置。 - 前記車両制御装置はさらに、前記第1演算装置と前記第2演算装置が使用するデータを格納する第2記憶装置を備え、
前記第2記憶装置は、前記第1演算装置と前記第2演算装置がともにアクセスすることができるように構成されており、
前記第2記憶装置は、前記第2フラグを格納する記憶領域を有している
ことを特徴とする請求項1記載の車両制御装置。 - 前記第2記憶領域は、前記第2フラグを格納しており、
前記第2演算装置は、前記特殊プログラムを実行することを許可する旨を前記第2フラグが示しているか否かを、前記第1演算装置に対して通知し、
前記第1演算装置は、前記特殊プログラムを実行することを許可する旨を前記第1フラグが示すとともに、前記特殊プログラムを実行することを許可する旨を前記第2フラグが示している旨の通知を前記第2演算装置から受け取ったときに限り、前記特殊プログラムを実行する
ことを特徴とする請求項1記載の車両制御装置。 - 前記第1演算装置または前記第2演算装置は、前記車両制御装置が起動するとタイマを開始するとともに、前記タイマのカウント値を監視し、
前記第1演算装置は前記カウント値を前記第1フラグとして用い、または前記第2演算装置は前記カウント値を前記第2フラグとして用い、
前記第1演算装置または前記第2演算装置は、前記カウント値が所定閾値未満であるときは前記特殊プログラムを実行することを許可する旨を前記カウント値が示しているものとして取り扱い、前記カウント値が前記所定閾値以上であるときは前記特殊プログラムを実行することを許可しない旨を前記カウント値が示しているものとして取り扱う
ことを特徴とする請求項1記載の車両制御装置。 - 前記第1記憶装置は、何らかのデータが書き込まれている状態と、何らのデータも書き込まれていないブランク状態とを有し、
前記第1演算装置は、前記第1記憶領域のうち前記第1フラグを格納するアドレスが前記ブランク状態である場合は、前記特殊プログラムを実行することを許可する旨を前記第1フラグが示しているものとして取り扱う
ことを特徴とする請求項1記載の車両制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017076109A JP2020101841A (ja) | 2017-04-06 | 2017-04-06 | 車両制御装置 |
PCT/JP2018/008462 WO2018186089A1 (ja) | 2017-04-06 | 2018-03-06 | 車両制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017076109A JP2020101841A (ja) | 2017-04-06 | 2017-04-06 | 車両制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020101841A true JP2020101841A (ja) | 2020-07-02 |
Family
ID=63712463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017076109A Pending JP2020101841A (ja) | 2017-04-06 | 2017-04-06 | 車両制御装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2020101841A (ja) |
WO (1) | WO2018186089A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7128763B2 (ja) * | 2019-03-18 | 2022-08-31 | 日立Astemo株式会社 | 電子制御装置及び制御データの設定方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3723058B2 (ja) * | 2000-08-04 | 2005-12-07 | シャープ株式会社 | アプリケーション管理方法、アプリケーション管理プログラムを記録したコンピュータ読み取り可能な記録媒体、端末装置、および携帯型電話機 |
JP2012208053A (ja) * | 2011-03-30 | 2012-10-25 | Panasonic Corp | アプリ制御システム |
JP6266289B2 (ja) * | 2013-09-30 | 2018-01-24 | クラリオン株式会社 | プログラム実行制御システム |
-
2017
- 2017-04-06 JP JP2017076109A patent/JP2020101841A/ja active Pending
-
2018
- 2018-03-06 WO PCT/JP2018/008462 patent/WO2018186089A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2018186089A1 (ja) | 2018-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6227794B2 (ja) | 車両制御装置、リプログラミングシステム | |
TWI625672B (zh) | 可更新積體電路無線電 | |
JP2007287022A (ja) | 電子制御装置の情報記憶方法 | |
JP2006221274A (ja) | 車両用電子制御装置および制御プログラムの書換え方法 | |
US20120310379A1 (en) | Programmable controller | |
KR101601751B1 (ko) | 차량용 전자제어유닛 및 그 부트 소프트웨어 리프로그래밍 방법 | |
JP6680741B2 (ja) | 数値制御装置 | |
WO2018186089A1 (ja) | 車両制御装置 | |
JP2016126699A (ja) | 自動車用電子制御装置 | |
JP6575157B2 (ja) | ファームウェアのダウンロード方法及びファームウェア組込機器 | |
JP6708596B2 (ja) | 電子制御装置及び制御プログラム検証方法 | |
JP2007316800A (ja) | 車載プログラム書換え制御装置 | |
JP6408450B2 (ja) | 自動車用電子制御装置 | |
JP6192089B2 (ja) | 情報処理装置、情報処理装置の制御方法及び制御プログラム | |
JP2012212415A (ja) | 無線基地局装置 | |
CN112269585B (zh) | 一种关节驱动器固件在线更新方法、装置及关节驱动器 | |
KR102434126B1 (ko) | Plc 프로그램 처리 장치 | |
JP2013125405A (ja) | ファームウェア書換方法およびファームウェア、ならびに電子機器 | |
CN110888653A (zh) | 存储器中固件读写的控制方法、系统、电子设备、芯片 | |
CN106569861B (zh) | 芯片iap数据更新控制方法及系统 | |
KR101548924B1 (ko) | 차량용 ecu 및 튜닝 보호 기능 해제 방법 | |
WO2022215402A1 (ja) | 車両用電子制御装置及びプログラムの書き換え方法 | |
US11137937B2 (en) | Information processing device and control method determining valid data in multiple memory areas based on multiple valid flags | |
JP2008257415A (ja) | プログラム書き込み機能を有するコントローラ | |
JP2020004448A (ja) | 自動車用電子制御装置 |