JP2018092241A - 車載電子制御装置 - Google Patents

車載電子制御装置 Download PDF

Info

Publication number
JP2018092241A
JP2018092241A JP2016232953A JP2016232953A JP2018092241A JP 2018092241 A JP2018092241 A JP 2018092241A JP 2016232953 A JP2016232953 A JP 2016232953A JP 2016232953 A JP2016232953 A JP 2016232953A JP 2018092241 A JP2018092241 A JP 2018092241A
Authority
JP
Japan
Prior art keywords
control
program
vehicle
control program
execution
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.)
Granted
Application number
JP2016232953A
Other languages
English (en)
Other versions
JP6702161B2 (ja
Inventor
上原 一浩
Kazuhiro Uehara
一浩 上原
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 JP2016232953A priority Critical patent/JP6702161B2/ja
Priority to DE102017221291.8A priority patent/DE102017221291A1/de
Publication of JP2018092241A publication Critical patent/JP2018092241A/ja
Application granted granted Critical
Publication of JP6702161B2 publication Critical patent/JP6702161B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】制御プログラムの有効性を判定して実行する車載電子制御装置を提供する。【解決手段】制御プログラムが異なるタイミングで書き込まれる書換え可能な複数のプログラム領域SA,SBを有するメモリ25と、複数のプログラム領域SA,SBに記憶されている複数の制御プログラムPA,PBの中から実行する制御プログラムを選択するように構成された制御選択部と、を備える。メモリ25には、プログラム領域SA,SBのそれぞれに対して、制御プログラムPA,PBの書き込みが完了しているか否かの状態を示す完了フラグFlgA,FlgB、及び、当該プログラム領域に記憶されている制御プログラムが何番目に書き込まれたものであるかを示す書込みカウンタCntA,CntB、が記憶されている。制御選択部は、完了フラグFlgA,FlgB及び書込みカウンタCntA,CntBを用いて、実行する制御プログラムを選択する。【選択図】図2

Description

本開示は、書換え可能な記憶領域に複数の制御プログラムが記憶されるメモリを備えた車載電子制御装置に関する。
この種の電子制御装置として、特許文献1に記載の電子制御装置がある。特許文献1に記載の電子制御装置は、制御プログラムを実行する際に、複数の分割記憶領域のうちの1つを選択し、選択した分割記憶領域である実行領域から制御プログラムを読み込んで実行する。そして、上記電子制御装置は、制御プログラムを書換える際には、実行中の制御プログラムを書き換えて動作に支障が生じないように、実行領域とは異なる分割記憶領域である非実行領域を選択し、その非実行領域の制御プログラムの書換えを実行する。
特開2013−254263号公報
上記電子制御装置は、制御プログラムを実行する際に、制御プログラムの有効性を判定することなく、読み込んで実行している。そのため、例えば制御プログラムの書込みが完了していない場合など、有効でない制御プログラムが実行される可能性がある。有効でない制御プログラムが実行されると、意図しない車両制御状態が継続されるおそれがある。
本開示は、上記実情に鑑みてなされたものであり、制御プログラムの有効性を判定して実行する車載電子制御装置を提供する。
本開示は、車載電子制御装置であって、車両に搭載された制御対象を制御するためのプログラムを制御プログラムとし、制御プログラムが記憶される書換え可能な記憶領域をプログラム領域として、同じ制御対象に対する制御プログラムが異なるタイミングで書き込まれる複数のプログラム領域(SA,SB)を有するメモリ(25)と、複数のプログラム領域に記憶されている複数の制御プログラム(PA,PB)の中から実行する制御プログラムを選択するように構成された制御選択部(S10〜S40,S70,S80)と、を備える。メモリには、プログラム領域のそれぞれに対して、制御プログラムの書き込みが完了しているか否かの状態を示す完了フラグ(FlgA,FlgB)、及び、当該プログラム領域に記憶されている制御プログラムが何番目に書き込まれたものであるかを示す書込みカウンタ(CntA,CntB)、が記憶されている。制御選択部は、完了フラグ及び書込みカウンタを用いて、実行する制御プログラムを選択するように構成されている。
本開示によれば、異なるタイミングで書き込まれた制御プログラムが、異なるプログラム領域に記憶されているとともに、メモリには、各プログラム領域に対して、完了フラグと書込みカウンタとが記憶されている。よって、各制御プログラに対応した完了フラグ及び書込みカウンタを用いて各制御プログラムの有効性を判定し、有効な制御プログラムを実行することができる。
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。
車載電子制御システムの概略構成を示すブロック図である。 車載電子制御装置の記憶領域の構成を示す図である。 ブートプログラムを実行する処理手順を示すフローチャートである。 第1実施形態に係る制御動作を監視する処理手順を示すフローチャートである。 リプロプログラムを実行する処理手順を示すフローチャートである。 制御プログラムの書込みに伴うカウンタ及び完了フラグの更新を説明する説明図である。 第2実施形態に係る制御動作を監視する処理手順を示すフローチャートである。
以下、図面を参照しながら、発明を実施するための形態を説明する。
(第1実施形態)
<1.構成>
まず、本実施形態に係る車載電子制御システム10の全体構成について、図1を参照して説明する。車載電子制御システム10は、車両に搭載されており、接続ノード20、接続ノード30、中継装置40、及び無線通信装置50を備える。接続ノード20、接続ノード30、中継装置40、及び無線通信装置50は、CANやイーサネットの通信線で接続されて、車両ネットワークを構成している。なお、CAN及びイーサネットは登録商標である。
接続ノード20は、車載電子制御装置(以下、ECU)であり、エンジンやブレーキなどの車両に搭載された制御対象の制御を行う。ECUは、CPU23、RAM24、ROM25、及びデータ送受信部22を備えたマイクロコンピュータ21(以下、マイコン21)を主体として構成されている。CPU23は、演算装置であり、RAM24は、CPU23の演算結果等を一時記憶するための揮発性メモリである。ROM25は、書換え可能な記憶領域を有する不揮発性メモリであり、例えば、EEPROMである。ROM25には、CPU23により実行されるプログラムが記憶される。データ送受信部22は、車両ネットワークを構成する各装置との間で、通信線を介してデータの送受信を行う。なお、ROM25の構成の詳細については後述する。
接続ノード30は、接続ノード20と同様に、車両に搭載された制御対象の制御を行うECUである。図1では省略しているが、車両には多くの制御対象が搭載されており、各制御対象を制御する多くのECUが接続ノードとして車両ネットワークを構成している。
無線通信装置50は、車両ネットワーク外の外部装置と無線接続して、データ送受信部51を介して、データの送受信を行う。無線接続する外部装置としては、センタ80や携帯端末90が挙げられる。センタ80は、車両のユーザが、ディーラに車両を持ち込むことなく、ROM25に記憶されているプログラムをアップデートできるように設置されている。センタ80は、ROM25に記憶されているプログラムのアップデートが必要になったときに、無線通信装置50を介して、接続ノード20へ新しいプログラムを送信する。携帯端末90は、車両のユーザが所持する機器であり、例えば、スマートフォンやタブレット端末である。携帯端末90は、無線通信装置50を介して、接続ノード20にエラーが発生した時等に通知を受け取る。
中継装置40は、無線通信装置50と、各接続ノードとに接続されており、外部装置から無線通信装置50を介して車両ネットワークに送出されたデータを、接続ノードのいずれかに中継する。また、中継装置40は、接続ノードのいずれかから車両ネットワークに送出されたデータを、無線通信装置50へ中継する。さらに、中継装置40は、外部装置である診断装置70と有線接続され、診断装置70と接続ノードと間のデータの送受信を中継する。診断装置70は、各接続ノードから制御対象に関するデータを受信して、車両の診断を行う。
次に、ROM25の構成について、図2を参照して説明する。ROM25は、書換え可能な記憶領域である書換え領域251と、書換え不可能な記憶領域である非書換え領域252と、を備える。本実施形態では、ROM25がメモリに相当する。
書換え領域251は、異なるタイミング制御プログラムが書込まれる複数のプログラム領域SA,Bを有する。プログラム領域SAには制御プログラムPAが記憶されており、プログラム領域SBには制御プログラムPBが記憶されている。制御プログラムPA,PBは、車両に搭載された同じ制御対象を制御するためのプログラムである。
また、プログラム領域SAには、プログラム領域SAに対する完了フラグFlgA及び書込みカウンタCntA(以下、カウンタCntA)が記憶されている。完了フラグFlgAは、制御プログラムPAの書込みが完了しているか否かの状態を示すフラグである。カウンタCntAは、書換え領域251において、プログラム領域SAに記憶されている制御プログラムPAが何番目に書き込まれたものであるかを示す書込みカウンタである。プログラム領域SAにおいて制御プログラムPAの書換えが行われる都度、カウンタCntAは増加する。同様に、プログラム領域SBには、完了フラグFlgB及びカウンタCntBが記憶されている。完了フラグFlgA,FlgBの値は、OK又はNGであり、OKは書き込みが完了している状態を示し、NGは書き込みが完了していない状態を示す。また、カウンタCntA,CntBは、値が大きい方に対応する制御プログラムが、新しい、つまり後から書き込まれていることを示す。なお、CPU23が制御プログラムPA,PBを実行する処理により、異常検出部及び異常対応部の機能が実現される。
一方、非書換え領域252には、ブートプログラムとリプロプログラムが記憶されている。ブートプログラムは、接続ノード20の電源がオフからオンに切り替わった際に、CPU23により実行される起動プログラムである。リプロプログラムは、書換え領域251に記憶されている制御プログラムPA,PBを書き換えるためのプログラムである。なお、CPU23がブートプログラムを実行する処理により、制御選択部、エラー対応部、及び停止要求部の機能が実現される。
<2.処理>
<2−1.ブートプログラムを実行する処理>
次に、ブートプログラムを実行する処理手順について、図3のフローチャートを参照して説明する。本処理手順は、接続ノード20の電源がオフからオンに切り替わった際に実行される。
まず、S5では、ブートプログラムの実行を開始する。続いて、S10では、プログラム領域SAのカウンタCntAの値と、プログラム領域SBのカウンタCntBの値とが等しいか否か判定する。本来、カウンタCntA,CntBの値は、等しくなることはなく、どちらか一方が大きくなるが、データ化け等により等しくなることがある。S10において、カウンタCntA,CntBの値が異なる場合は、否定判定をしてS20へ進む。
S20では、カウンタCntAの値が、カウンタCntBの値よりも小さいか否か判定する。S20において、カウンタCntAの値がカウンタCntBの値よりも大きい場合、すなわち、制御プログラムPBよりも制御プログラムPAの方が新しいと見なせる場合は、否定判定をしてS30へ進む。
S30では、プログラム領域SAの完了フラグFlgAがOKか否か判定する。S30において、完了フラグFlgAがOKの場合は、肯定判定をしてS40へ進む。S40では、相対的に新しく且つ書込みが完了している制御プログラムPAを、有効なプログラムと判定して、実行対象に選択する。そして、ブートプログラムの記憶領域から制御プログラムPAのスタートアドレスへジャンプし、制御プログラムPAを起動し実行する。
一方、S10において、カウンタCntAの値とカウンタCntBの値とが等しい場合は、肯定判定をして、S50へ進む。また、S30において、完了フラグFlgAがNGの場合は、否定判定をして、S50へ進む。
S50では、有効なプログラムが記憶されているプログラム領域が存在しないと判定して、どの制御プログラムも実行対象として選択しない。そして、相対的に古い方の制御プログラムを有効なプログラムに書換えるために、ブートプログラムの記憶領域からリプログラムのスタートアドレスへジャンプして、リプロプログラムを起動し実行する。リプロプロプログラムを実行する処理の詳細は後述する。
さらに、S50では、接続ノード20の制御対象が、車両の走行制御に関する制御対象である場合には、車両の駆動を制御する他の接続ノードへ制御停止の要求を送信して、車両の駆動を停止する制御を実行させる。走行制御に関する制御対象とは、走る、止まる、曲がるといった車両の操作を行う制御対象であり、アクセルや、ブレーキ、操舵である。車両の駆動を制御する他の接続ノードとは、エンジンを制御するエンジンECU、インジェクタの燃料噴射を制御するインジェクタECU等である。例えば、接続ノード20の制御対象がブレーキで、どの制御プログラムも実行できない状態の場合は、燃料噴射を停止させて、エンジンを停止させる。つまり、接続ノード20の制御対象が走行制御に関する制御対象であった場合に、制御プログラムPA,PBのいずれも起動できない状態になると、不安定な走行を行うおそれがあるため、車両の駆動を停止させる。
続いて、S60では、有線で接続された外部装置である診断装置70や、無線で接続された外部装置であるセンタ80及び携帯端末90へ、エラーステータスとして、どの制御プログラムも実行できない状態を通知し、外部装置にエラーステータスを表示させる。
一方、S20において、カウンタCntBの値がカウンタCntAの値よりも大きい場合、すなわち、制御プログラムPAよりも制御プログラムPBの方が新しいと見なせる場合は、肯定判定をしてS70へ進む。
S70では、プログラム領域SBの完了フラグFlgBがOKか否か判定する。S70において、完了フラグFlgBがOKの場合は、肯定判定をしてS80へ進む。S80では、相対的に新しく且つ書込みが完了している制御プログラムPBを、有効なプログラムと判定して、実行対象に選択する。そして、ブートプログラムの記憶領域から制御プログラムPBのスタートアドレスへジャンプし、制御プログラムPBを起動し実行する。
一方、S70において、完了フラグFlgBがNGの場合は、否定判定をしてS90及びS100へ進む。S90では、S50と同様の処理を実行し、S100では、S60と同様の処理を実行する。以上で本処理を終了する。なお、S10〜S40,S70,S80の処理により実現される機能が選択部に相当し、S50,S60,S90,S100の処理により実現される機能が、エラー対応部に相当する。また、S50,S90の処理により実現される機能が、停止要求部に相当する。
<2−2.制御動作の監視処理>
次に、制御プログラムPAを実行した場合における、制御プログラムPAの制御動作を監視する処理手順について、図4のフローチャートを参照して説明する。本処理手順は、電源がオフになるまで繰り返し実行される。なお、制御プログラムPBを実行した場合における、制御プログラムPBの制御動作を監視する処理手順は、図4のフローチャートにおいて、AとBを入れ替えるだけであるので、説明を省略する。
まず、S490では、制御プログラムPAの実行を開始する。続いて、S500では、制御プログラムPAの制御動作の異常を検出したか否か判定する。制御プログラムPAに不備がある場合、制御動作に異常が発生し、意図した制御が実現されないおそれがある。例えば、制御プログラムPAに不備があり、マイコン21の通信端子設定等の初期化処理が正しく実行されなかった場合には、通信途絶が発生し、意図した制御を実現できない状態に陥るおそれがある。よって、制御プログラムPAに不備がある場合に、不備のある制御プログラムPAの実行を継続することは好ましくない。そこで、制御プログラムPAの実行による制御動作を監視し、異常を検出したか否か判定する。
詳しくは、制御プログラムPAの実行によって故障診断情報、及び制御対象の制御情報の少なくとも一方を監視し、制動動作の異常を検出したか否か判定する。制御情報は、制御対象を駆動する駆動信号や、制御対象の動作をセンサで検出した検出値である。例えば、通信端子設定処理が正しく実行されなかった場合には、制御プログラムPAの実行により通信途絶を検出し、故障診断情報に通信途絶検出が含まれる。また、インジェクタからの燃料噴射量の設定処理が正しく実行されなかった場合には、制御情報に噴射制御異常を示す駆動信号や検出値が含まれる。
S500において、異常を検出した場合には、肯定判定をしてS510へ進み、異常を検出していない場合には、否定判定をして本処理を一旦終了する。
S510では、プログラム領域SBに対するカウンタCntBの値を、プログラム領域SAに対するカウンタCntAの値+1に更新する。これにより、次にブートプログラムを実行した際には、プログラム領域SBに記憶されている制御プログラムPBが、制御プログラムPAよりも新しい制御プログラムと見なされる。
続いて、S520では、外部装置へ、エラーステータスとして、制御プログラムPAによる制御動作の異常状態及び電源再起動要求を通知し、外部装置にエラーステータスを表示させる。この電源再起動要求を受けたユーザにより、接続ノード20の電源が一旦オフにされ、再度オンされる。
続いて、S530では、接続ノード20の電源がオフになったか否か判定する。S530において、電源がオフになっていない場合は、否定判定をして電源がオフになるまで待機し、電源がオフになっている場合は、肯定判定をして本処理を終了する。この後、接続ノード20の電源が再度オンになると、ブートプログラムが実行され、制御プログラムPBの完了フラグがOKであれば、制御プログラムPBの起動へ切り替わる。なお、S500の処理により実現される機能が異常検出部に相当し、S510,S520の処理により実現される機能が異常対応部に相当する。
<2−3.リプロプログラムを実行する処理>
次に、リプロプログラムを実行する処理手順について、図5のフローチャートを参照して説明する。リプロプログラムは、上述したように、ブートプログラムの実行時に有効な制御プログラムが選択されなかった場合に、S50及びS90において実行される。また、リプロプログラムは、制御プログラムPA又は制御プログラムPBの実行中に、外部装置から接続ノード20がリプロプログラムへの移行要求を受け取った場合にも実行される。
まず、S190では、リプロプログラムの実行を開始する。続いて、S200では、外部装置との認証を完了したか否か判定する。この場合の外部装置は、新しい制御プログラムを送信するセンタ80である。S200において、認証を完了していない場合は、否定判定をして認証が完了するまで待機し、認証を完了している場合は、肯定判定をしてS210へ進む。
S210では、外部装置から消去要求を受信したか否か判定する。S210において、消去要求を受信していない場合は、否定判定をして消去要求を受信するまで待機し、消去要求を受信している場合は、肯定判定をしてS220へ進む。
S220では、複数のプログラム領域のうち、カウンタ値の最も小さいプログラム領域SX、すなわち、最も古いと見なせる制御プログラムが記憶されているプログラム領域SXに対する完了フラグFlgXをNGに設定する。本実施形態において、XはA又はBである。
続いて、S230では、プログラム領域SXのカウンタCntXの値を初期化する。つまり、カウンタCntXの値を「0」にする。
続いて、S240では、プログラム領域SXに記憶されている制御プログラムPXを消去する。
続いて、S250では、消去完了の応答を外部装置へ送信する。
続いて、S260では、外部装置から書込みプログラム、すなわち新しい制御プログラムを受信したか否か判定する。書込みプログラムを受信していない場合は、否定判定をして書込みプログラムを受信するまで待機し、書込みプログラムを受信している場合は、肯定判定をしてS270へ進む。
S270では、プログラム領域SXへ、外部装置から受信した新しい制御プログラムを書き込む。
続いて、S280では、書込み完了の応答を外部装置へ送信する。
続いて、S290では、ベリファイがOKか否か判定する。S290において、ベリファイがNGの場合は、否定判定をしてベリファイがOKになるまで待機し、ベリファイがOKの場合は、肯定判定をしてS300へ進む。
S300では、プログラム領域SXに対する完了フラグFlgXをOKに設定する。
続いて、S310では、プログラム領域SXに対するカウンタCntXの値を更新する。詳しくは、もう一方のプログラム領域に対するカウンタ値+1にする。例えば、X=Aの場合は、カウンタCntAの値をカウンタCntBの値+1に更新する。これにより、書換え領域251に記憶されているカウンタ値の中で、カウンタCntXの値が最も大きな値となり、S270で書き込まれた制御プログラムPXが、書換え領域251に記憶されている制御プログラムの中で最も新しい制御プログラムであることが示される。
続いて、S320では、ベリファイ完了の応答を外部装置へ送信する。
続いて、S330では、接続ノード20の電源がオフになったか否か判定する。S330において、電源がオフになっていない場合は、否定判定をして電源がオフになるまで待機し、電源がオフになっている場合は、肯定判定をして本処理を終了する。
<3.動作>
次に、制御プログラムの書込みに伴うカウンタ値及び完了フラグの更新動作について、図6を参照して説明する。図6は、1回目にプログラム領域SA、2回目にプログラム領域SBに制御プログラムが書込まれた状態で、3回目の制御プログラムの書込みを行う場合を示している。
3回目の制御プログラムの書込みを行う前は、プログラム領域SAには、カウンタCntA=1、完了フラグFlgA=OKが記憶されており、プログラム領域SBには、カウンタCntB=2、完了フラグFlgB=OKが記憶されている。
そして、接続ノード20が外部装置から消去要求を受信すると、カウンタ値が小さい方のプログラム領域SAに対する完了フラグFlgAがNGに設定され、カウンタ値CntAが初期値「0」に設定される。続いて、プログラム領域SAに記憶されている相対的に古い制御プログラムPAが消去される。
続いて、接続ノード20が外部装置から新しい制御プログラムを受信すると、プログラム領域SAに新しい制御プログラムが書込まれる。そして、ベリファイがOKになると、完了フラグFlgAがOKに設定される。続いて、プログラム領域SAに対するカウンタCntAの値が、プログラム領域SBに対するカウンタCntBの値「2」よりも1大きい「3」に設定される。これにより、プログラム領域SAに記憶されている制御プログラムPAは、プログラム領域SBに記憶されている制御プログラムPBよりも新しい制御プログラムと見なされる。したがって、接続ノード20の電源を再起動すると、ブートプログラムの実行からプログラム領域SAに記憶されている制御プログラムPAの実行へ移行する。
そして、制御プログラムPAの実行中に、制御動作に異常が検出されると、カウンタCntBの値が、カウンタCntAの値「3」よりも1大きい「4」に更新される。これにより、次に接続ノード20の電源を再起動した際には、制御プログラムPBの方が、実際には制御プログラムPAよりも先に書き込まれた制御プログラムであるにも関わらず、新しい制御プログラムと見なされ実行される。
<4.効果>
以上説明した第1実施形態によれば、以下の効果が得られる。
(1)プログラム領域SA,SBのそれぞれに対して、完了フラグFlgA,FlgBとカウンタCntA,CntBとが記憶されている。そして、カウンタ値が最も大きく、且つ、完了フラグがOKとなっているプログラム領域に記憶されている制御プログラムが、実行対象として選択され実行される。したがって、制御プログラムの中で最新且つ書込み状態が正常であると保証された制御プログラムを、確実に実行することができる。
(2)接続ノード20の電源投入時にブートプログラムが実行されて、完了フラグFlgA,FlgB及びカウンタCntA,CntBが参照されることにより、電源投入後に有効な制御プログラムの実行へ速やかに移行することができる。
(3)複数の制御プログラムの中に有効性が保証された実行対象が存在しない場合には、制御プログラムを書き換えるためのリプロプログラムが実行されるとともに、外部装置へエラーステータスが通知される。これにより、制御プログラムを有効な制御プログラムに更新できるとともに、ユーザやディーラが車載電子制御装置の動作状況を把握することができる。
(4)制御プログラムの実行による制御動作が監視され、制御動作の異常が検出された場合には、実行中の制御プログラムとは異なる制御プログラムに対応するカウンタ値が、実行中の制御プログラムに対応するカウンタ値よりも1つ大きな値に更新されるとともに、電源再起動の要求が外部装置へ通知される。そして、ユーザが電源再起動の要求を受けて電源を再起動すると、前回実行した制御プログラムよりも対応するカウンタ値の大きい制御プログラムが選択されて実行される。これにより、制御動作に異常が検出された制御プログラムを停止して、他の有効な制御プログラムを実行することができる。
(5)車両の走行制御に関する制御対象を制御するための制御プログラムが、いずれも有効でない場合には、他の車載電子制御装置へ制御停止の要求が送信されて、車両の駆動を停止する制御が実行される。これにより、不安定な状態での走行を回避し、ユーザの安全を確保することができる。
(第2実施形態)
<1.第1実施形態との相違点>
第2実施形態は、基本的な構成は第1実施形態と同様であるため、共通する構成については説明を省略し、相違点を中心に説明する。なお、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
上述した第1実施形態と第2実施形態とでは、制御プログラムPA,PBの実行中における、制御プログラムPA,PBの制御動作を監視する処理手順が異なる。第1実施形態では、制御プログラムの制御動作に異常が検出された場合は、カウンタCntBを更新して、外部装置へ電源の再起動を要求した。これに対して、第2実施形態では、カウンタCntBを更新した後、電源の再起動を要求することなく、自動的に制御プログラムPBを起動する点が異なる。
<2.処理>
次に、第2実施形態に係る制御プログラムPAの制御動作を監視する処理手順について、図7のフローチャートを参照して説明する。なお、第2実施形態に係る制御プログラムPBの制御動作を監視する処理手順は、図7のフローチャートにおいて、AとBを入れ替えるだけであるので、説明を省略する。
まず、S390〜S410では、S490〜S510と同様の処理を実行する。
続いて、S420では、プログラム領域SBに対する完了フラグFlgBがOKか否か判定する。S420において、完了フラグFlgBがNGの場合は、実行できる制御プログラムが存在しないため、S430において、外部装置へ、エラーステータスとして、どの制御プログラムも実行できない状態を通知し、外部装置にエラーステータスを表示させる。その後、S460へ進む。
一方、S420において、完了フラグFlgBがOKの場合は、制御プログラムPBを実行できるため、S440において、外部装置へ、エラーステータスとして、制御プログラムPBの有効状態を通知し、外部装置にエラーステータスを表示させる。その後、S450において、制御プログラムPBを起動して実行する。すなわち、制御プログラムPAから制御プログラムPBへ実行対象を切り替える。その後、S460へ進む。
S460では、S530と同様の処理を実行する。なお、S400の処理により実現される機能が異常検出部に相当し、S410,S440,S450の処理により実現される機能が異常対応部に相当する。
<3.効果>
以上詳述した第2実施形態によれば、前述した第1実施形態の効果(1)〜(3),(5)に加え、以下の効果が得られる。
(6)制御プログラムの実行による制御動作が監視され、制御動作の異常が検出された場合には、外部装置へエラーステータスが通知されるとともに、実行中の制御プログラムとは異なる制御プログラムへ実行対象が切替えられる。これにより、制御動作に異常が検出された場合には、ユーザが状況を把握することができる。さらに、制御動作に異常が検出された実行中の制御プログラムの実行継続を停止して、他の制御プログラムの実行へ速やかに切り替えることができる。ひいては、車両制御に対する制御動作の異常の影響を抑制することができる。
(他の実施形態)
以上、本発明を実施するための形態について説明したが、本発明は上述の実施形態に限定されることなく、種々変形して実施することができる。
(a)上記実施形態では、ROM25の書換え領域251に2つのプログラム領域が設けられている例を示したが、これに限定されるものではない。書換え領域251に3つ以上のプログラム領域が設けられていてもよい。3つ以上のプログラム領域が設けられている場合、3つ以上の制御プログラムの中で、最新且つ完了フラグがOKの制御プログラムを実行対象として選択すればよい。また、選択した制御プログラムの制御動作に異常が検出された場合には、次に新しく且つ完了フラグがOKの制御プログラムへ実行対象を切り替えるようにすればよい。
(b)上記実施形態では、プログラム領域のそれぞれに対する完了フラグ及びカウンタが、プログラム領域のそれぞれに記憶されているが、プログラム領域のそれぞれに記憶されていなくてもよい。書換え領域251のどこかに、各プログラム領域に対応付けて、各プログラム領域に対する完了フラグ及びカウンタが記憶されていればよい。
(c)上記実施形態では、ユーザの携帯端末と接続ノード20とを無線で接続しているが、携帯端末が車両内に存在する場合は、携帯端末と接続ノード20とを有線で接続してもよい。
(d)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
(e)上述した車載電子制御装置の他、当該車載電子制御装置を構成要素とするシステム、当該車載電子制御装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体など、種々の形態で本発明を実現することもできる。
25…ROM、CntA,CntB…カウンタ、FlgA,FlgB…完了フラグ、PA,PB…制御プログラム、SA,SB…プログラム領域。

Claims (7)

  1. 車両に搭載された制御対象を制御するためのプログラムを制御プログラムとし、前記制御プログラムが記憶される書換え可能な記憶領域をプログラム領域として、同じ前記制御対象に対する前記制御プログラムが異なるタイミングで書き込まれる複数のプログラム領域(SA,SB)を有するメモリ(25)と、
    前記複数のプログラム領域に記憶されている複数の前記制御プログラム(PA,PB)の中から実行する前記制御プログラムを選択するように構成された制御選択部(S10〜S40,S70,S80)と、を備え、
    前記メモリには、前記プログラム領域のそれぞれに対して、前記制御プログラムの書き込みが完了しているか否かの状態を示す完了フラグ(FlgA,FlgB)、及び、当該プログラム領域に記憶されている制御プログラムが何番目に書き込まれたものであるかを示す書込みカウンタ(CntA,CntB)、が記憶されており、
    前記制御選択部は、前記完了フラグ及び前記書込みカウンタを用いて、実行する前記制御プログラムを選択するように構成されている、車載電子制御装置。
  2. 前記メモリには、電源投入時に実行されるブートプログラムが記憶されており、
    前記制御選択部は、前記ブートプログラムを実行する処理により実現される機能である、請求項1に記載の車載電子制御装置。
  3. 前記制御選択部は、前記複数の制御プログラムのうち、前記書込みカウンタの値が他の前記書込みカウンタの値よりも大きく、且つ、前記完了フラグが完了状態を示している前記プログラム領域の前記制御プログラムを、実行対象として選択するように構成されている、請求項2に記載の車載電子制御装置。
  4. 前記メモリには、前記制御プログラムを書き換えるためのリプロプログラムが記憶されており、
    前記制御選択部により、前記書込みカウンタの値が他の前記書込みカウンタの値よりも大きくない、あるいは、前記完了フラグが完了状態を示している前記プログラム領域が存在しないと判定された場合に、前記リプロプログラムを実行し、且つ、前記車載電子制御装置に接続された外部装置(70,80,90)へ、エラーステータスを通知するように構成されたエラー対応部(S50,S60,S90,S100)を、更に備える、請求項2又は3に記載の車載電子制御装置。
  5. 実行中の前記制御プログラムを実行プログラムとして、前記制御プログラムの実行による制御動作を監視し、前記制御動作の異常を検出するように構成された異常検出部(S500)と、
    前記異常検出部により前記制御動作の異常が検出された場合に、前記実行プログラムと異なる前記制御プログラムが記憶されている前記プログラム領域に対する前記書込みカウンタの値を、前記実行プログラムが記憶されている前記プログラム領域に対する前記書込みカウンタの値よりも大きな値に更新し、且つ、前記車載電子制御装置に接続された外部装置へ、電源再起動の要求を通知するように構成された異常対応部(S510,S520)と、を更に備える、請求項1〜4のいずれか1項に記載の車載電子制御装置。
  6. 実行中の前記制御プログラムを実行プログラムとして、
    前記制御プログラムの実行による制御動作を監視し、前記制御動作の異常を検出するように構成された異常検出部(S400)と、
    前記異常検出部により前記制御動作の異常が検出された場合に、前記車載電子制御装置に接続された外部装置へ、エラーステータスを通知し、且つ、前記実行プログラムから前記実行プログラムと異なる前記制御プログラムへ実行対象を切替えるように構成された異常対応部(S410,S440,S450)と、を備える、請求項1〜4のいずれか1項に記載の車載電子制御装置。
  7. 前記制御対象は、前記車両の走行制御に関する制御対象であり、
    前記制御選択部により、いずれの前記制御プログラムも実行対象として選択されない場合には、前記車両の駆動を制御する他の車載電子制御装置へ制御停止の要求を送信して、前記車両の駆動を停止する制御を実行させるように構成された停止要求部(S50,S90)を備える、請求項1〜6のいずれか1項に記載の車載電子制御装置。
JP2016232953A 2016-11-30 2016-11-30 車載電子制御装置 Active JP6702161B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016232953A JP6702161B2 (ja) 2016-11-30 2016-11-30 車載電子制御装置
DE102017221291.8A DE102017221291A1 (de) 2016-11-30 2017-11-28 Elektronische steuereinheit in fahrzeug

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016232953A JP6702161B2 (ja) 2016-11-30 2016-11-30 車載電子制御装置

Publications (2)

Publication Number Publication Date
JP2018092241A true JP2018092241A (ja) 2018-06-14
JP6702161B2 JP6702161B2 (ja) 2020-05-27

Family

ID=62117584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016232953A Active JP6702161B2 (ja) 2016-11-30 2016-11-30 車載電子制御装置

Country Status (2)

Country Link
JP (1) JP6702161B2 (ja)
DE (1) DE102017221291A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066960A (ja) * 1998-08-25 2000-03-03 Fujitsu Ltd バックアップ方式
JP2006301960A (ja) * 2005-04-20 2006-11-02 Denso Corp 自動車用制御ユニット
JP2014016890A (ja) * 2012-07-10 2014-01-30 Denso Corp 電子制御装置およびデータ書換システム
JP2014099097A (ja) * 2012-11-15 2014-05-29 Mitsubishi Electric Corp 情報処理装置、情報処理方法、およびコンピュータプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5900168B2 (ja) 2012-06-05 2016-04-06 株式会社デンソー 電子制御装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066960A (ja) * 1998-08-25 2000-03-03 Fujitsu Ltd バックアップ方式
JP2006301960A (ja) * 2005-04-20 2006-11-02 Denso Corp 自動車用制御ユニット
JP2014016890A (ja) * 2012-07-10 2014-01-30 Denso Corp 電子制御装置およびデータ書換システム
JP2014099097A (ja) * 2012-11-15 2014-05-29 Mitsubishi Electric Corp 情報処理装置、情報処理方法、およびコンピュータプログラム

Also Published As

Publication number Publication date
DE102017221291A1 (de) 2018-05-30
JP6702161B2 (ja) 2020-05-27

Similar Documents

Publication Publication Date Title
JP6682019B2 (ja) プログラム更新システムおよびプログラム書込装置
JP4367513B2 (ja) 電子制御装置
JP2017157004A (ja) プログラム更新システム、プログラム更新方法及びコンピュータプログラム
US10936306B2 (en) Vehicle control system and software compatibility checking method
JP2019084941A (ja) 更新システム、電子制御装置、更新管理装置、及び更新管理方法
WO2019058607A1 (ja) 車載電子制御装置およびその異常時処理方法
JP2009102003A (ja) ソフトウェア更新装置およびソフトウェア更新方法
JP2007065856A (ja) 情報書き換えシステムおよび情報書き換え装置
JP2018132957A (ja) 制御装置および制御プログラム更新方法
JP6060782B2 (ja) 中継装置
JPWO2018105609A1 (ja) プログラム更新システム、配信装置及びプログラム更新方法
CN108427564B (zh) 控制器和控制程序更新方法
JP2007092621A (ja) 電子制御装置
JP2001123874A (ja) 電子制御装置のプログラム書換システム及びメモリ書換装置
JP4753929B2 (ja) 車載用制御ユニットの不揮発性メモリの書き換えシステム
JP2016126699A (ja) 自動車用電子制御装置
JP2008055980A (ja) 自動車の電子制御装置
JP6702161B2 (ja) 車載電子制御装置
JP2007316800A (ja) 車載プログラム書換え制御装置
JP2014099097A (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
US20220244946A1 (en) Ota master, update control method, non-transitory storage medium, and vehicle
JP2009087107A (ja) 車両用制御システム
JP7230768B2 (ja) 電子制御装置、セッション確立プログラム及び制御プログラム
JP5029123B2 (ja) 電子制御装置及び通信システム
US20220342653A1 (en) Ota master, center, system, update method, non-transitory storage medium, and vehicle

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200319

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200420

R151 Written notification of patent or utility model registration

Ref document number: 6702161

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