JP6147792B2 - プログラム書換装置及びプログラム書換方法 - Google Patents

プログラム書換装置及びプログラム書換方法 Download PDF

Info

Publication number
JP6147792B2
JP6147792B2 JP2015068949A JP2015068949A JP6147792B2 JP 6147792 B2 JP6147792 B2 JP 6147792B2 JP 2015068949 A JP2015068949 A JP 2015068949A JP 2015068949 A JP2015068949 A JP 2015068949A JP 6147792 B2 JP6147792 B2 JP 6147792B2
Authority
JP
Japan
Prior art keywords
ecu
program
rewriting
rewrite
ecus
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.)
Expired - Fee Related
Application number
JP2015068949A
Other languages
English (en)
Other versions
JP2016188022A (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.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co 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 Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to JP2015068949A priority Critical patent/JP6147792B2/ja
Priority to DE112016000992.5T priority patent/DE112016000992T5/de
Priority to CN201680020073.4A priority patent/CN107531198B/zh
Priority to US15/562,153 priority patent/US20180081671A1/en
Priority to PCT/JP2016/058908 priority patent/WO2016158547A1/ja
Publication of JP2016188022A publication Critical patent/JP2016188022A/ja
Application granted granted Critical
Publication of JP6147792B2 publication Critical patent/JP6147792B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、車両の外部から前記車両内の電子制御装置(以下「ECU」という。)のネットワークに接続し、プログラム書換えが必要なECUを選択してプログラム書換えを行うプログラム書換装置及びプログラム書換方法に関する。
近年の車両には多数のECUが搭載されているが、制御仕様の一部改良等に対応してプログラムのバージョンアップが行われることがある。その場合、関連する複数のECUに対してプログラム書換えが必要になる場合がある。
ところで、車両に搭載された複数のECUの多くは、通信によって相互に異常を監視する機能を有している。このため、プログラム書換えに当たっては、1つのECUのプログラムを書き換える場合に、外部のプログラム書換装置からの書込み要求と併せて、書換対象ECUと他のECUとの間で発生する通信異常を故障と判断しないように故障診断を停止する必要がある。さらに、書換え後にはこの停止解除のために、車両のイグニッションスイッチをオフした後に再オンさせる再起動操作が必要になる。
従って、車両をメンテナンスする販売店等での書換作業では、1回の書換えに対応する複数の書換対象ECUについて、1つずつ順番に書換えを行い、各ECUの書換えの都度イグニッションスイッチに対するオフ操作及び再オン操作を行う大変手間のかかる作業が行われていた。
これに対して、特許文献1のように、書換対象となる複数のECUの書換データを、CD−ROM等の媒体又は移動通信網等を介して入手し、互いに協調制御を行う複数のECUについて、それぞれの書換えを行った後に、その複数のECUをまとめて再起動することも検討されている。
特開2012−091755号公報
特許文献1の方法では、書換作業自体は容易に行えるようになる。しかしながら、書換対象となる複数のECUの識別情報、プログラムの互換性情報、協調制御の対象ECUの組合せ等のデータを考慮して書換順番の指定を予め作成する必要がある。このため、1回の書換えの度にデータの作成に大変手間がかかる。
また、プログラム等のデータの量が大きいため、データに間違いがないか又は正常かを照合するためのセット情報を併せて設けること等の必要がある。さらには、書換対象となるECUのうち一部のECUで書換えの失敗があった場合に、再度の書換えを行うに当たり、正常な書換え終了部分との兼ね合いでの書換順番の配慮が必要になる。このため、修復に大変手間がかかる場合があった。
本発明は上記のような課題を考慮してなされたものであり、プログラム書換えを簡易に行うことが可能なプログラム書換装置及びプログラム書換方法を提供することを目的とする。
本発明に係るプログラム書換装置は、車両の外部から前記車両内の電子制御装置(以下「ECU」という。)のネットワークに接続するネットワーク接続部と、プログラム書換えが必要なECU(以下「対象ECU」という。)を選択してプログラム書換えを行う書換制御部とを備えるものであって、
前記プログラム書換装置は、
前記車両に搭載されている書換え可能な全ての前記ECUの識別記号に対応させて、書換えの優先順番を予め記憶した順番データベースと、
プログラム書換えが必要な前記車両の変更対象動作毎に、前記対象ECUの候補である書換候補ECUの識別記号と、前記書換候補ECUの搭載プログラムの最新バージョン情報との組合せを書換候補情報として記憶する書換候補情報データベースと
を備え、
前記書換候補情報データベースに記憶される前記最新バージョン情報は、書換プログラムが前記書換候補情報データベースに記憶される時点でのバージョン情報であり、
前記書換制御部は、
プログラム書換えを実行する際、書換え可能な全ての前記ECUに対して故障コードを要求し、前記故障コードがないこと及び前記故障コードの記録があっても前記ネットワークに関する通信故障履歴を示すものでないことが確認できた場合に、前記書換え可能な全ての前記ECUから読み出した前記ECUの識別記号と、前記書換候補情報に含まれる前記書換候補ECUの識別記号とを照合して前記対象ECUを特定し、
特定した前記対象ECU全てに対して、前記順番データベースに記憶されている前記優先順番で連続してプログラム書換えを実行することを特徴とする。
本発明によれば、対象ECUに対するプログラム書換えの前に、対象ECUそれぞれに関する通信故障履歴がないことを確認する。これにより、プログラム書換装置が対象ECUと通信できない場合の理由が、プログラム書換装置を接続している車両が対象ECUを搭載していない車種であることなのか、又は対象ECUが搭載されているものの通信故障が発生していることであるのかを、プログラム書換えの開始前に確認することが可能となる。従って、通信故障を、対象ECUが非搭載であることと誤解することを抑制することができる。このため、プログラム書換えにおける手間を軽減することができる。
前記プログラム書換装置は、書換プログラムを記憶する書換プログラムデータベースを備え、前記書換制御部は、前記ネットワークに含まれる書換え可能な全ての前記ECUから前記ECUの識別記号及び搭載プログラムの現在バージョン情報を対にして読み出し、読み出した前記現在バージョン情報と、当該現在バージョン情報に対応する前記最新バージョン情報とを比較して、前記最新バージョン情報と一致しない前記現在バージョン情報と対になる前記書換候補ECUを前記対象ECUとして抽出し、抽出した前記対象ECUに対して前記順番データベースに記憶されている前記優先順番でプログラム書換動作を連続して実行してもよい。
本発明によれば、車両の変更対象動作で書換えが必要となるECU(対象ECU)の組合せに対応する優先順番でプログラム書換えを行う。このため、その車両に最適な順番でプログラム書換えを行うことが可能となる。
また、本発明によれば、現在バージョン情報と最新バージョン情報とが一致しない書換候補ECUである対象ECUに対して、変更対象動作毎の優先順番に従って最新バージョンのプログラムへの書換えを連続して実行する。このため、書換えが必要な書換候補ECUのみについて書換えを行うので、書換作業を効率よく行うことが可能となる。
以上によれば、市場に出回っている車両に対するプログラム書換えを、販売店等の整備事業者が行う場合も、整備事業者(作業者)による対象ECUの選定を誤ることがない。加えて、書換順番を特定する作業負担を軽減でき、適切な書換作業の容易な実施が可能になる。
また、プログラム書換え中に書換えを失敗した対象ECUが存在しても、再度書換作業を行うことにより、既に書換えが成功している対象ECUを除いて、書換えが終了していない対象ECUに対して書換えを行うことが可能となる。
前記書換制御部は、
前記ネットワークにおいてゲートウェイ機能を有する前記ECUであるゲートウェイ電子制御装置(以下「ゲートウェイECU」という。)に対して前記故障コードを要求し、
前記ゲートウェイECUに前記故障コードがないこと及び前記故障コードの記録があっても前記通信故障履歴を示すものでないことが確認できた場合に、前記ゲートウェイECU以外の前記ECUに対して前記故障コードを要求し、
前記ゲートウェイECU以外の前記ECUに前記故障コードがないこと及び前記故障コードの記録があっても前記通信故障履歴を示すものでないことを確認してもよい。これにより、対象ECUと通信できない場合、ゲートウェイECUに問題があるのか、それとも対象ECU自体又は他のECUに問題があるのかを確認することで、原因箇所の特定を容易化することが可能となる。
前記順番データベースに記憶されている前記優先順番は、前記書換え可能な全ての前記ECUのうち他のECUのデータ利用することが設定されているECUが、利用相手のECUより先になるように設定され、前記ゲートウェイECUは、通信が中継される他の前記対象ECUよりも後にプログラム書換動作が実行されてもよい。これにより、複数のECUを連続して書き換える際に、連携する他のECUの書換えによる利用データの変更等の影響を受けることなく、ゲートウェイECU及び他の対象ECUに対するプログラム書換えを連続的に行うことが可能となる。
本発明に係るプログラム書換方法は、車両の外部から前記車両内の電子制御装置(以下「ECU」という。)のネットワークに接続するネットワーク接続部と、プログラム書換えが必要なECU(以下「対象ECU」という。)を選択してプログラム書換えを行う書換制御部とを備えるプログラム書換装置におけるプログラム書換方法であって、
前記プログラム書換装置は、
前記車両に搭載されている書換え可能な全ての前記ECUの識別記号に対応させて、書換えの優先順番を予め記憶した順番データベースと、
プログラム書換えが必要な前記車両の変更対象動作毎に、前記対象ECUの候補である書換候補ECUの識別記号と、前記書換候補ECUの搭載プログラムの最新バージョン情報との組合せを書換候補情報として記憶する書換候補情報データベースと
を備え、
前記書換候補情報データベースに記憶される前記最新バージョン情報は、書換プログラムが前記書換候補情報データベースに記憶される時点でのバージョン情報であり、
前記書換制御部は、
プログラム書換えを実行する際、書換え可能な全ての前記ECUに対して故障コードを要求し、前記故障コードがないこと及び前記故障コードの記録があっても前記ネットワークに関する通信故障履歴を示すものでないことが確認できた場合に、前記書換え可能な全ての前記ECUから読み出した前記ECUの識別記号と、前記書換候補情報に含まれる前記書換候補ECUの識別記号とを照合して前記対象ECUを特定し、
特定した前記対象ECU全てに対して、前記順番データベースに記憶されている前記優先順番で連続して前記プログラム書換えを実行する
ことを特徴とする。
本発明によれば、複数の前記対象ECUのプログラム書換えを簡易に行うことが可能となる。
本発明の一実施形態に係るプログラム書換装置を含むプログラム書換システムを簡略的に示す概略構成図である。 前記実施形態における記憶部の構成を概念的に記載した図である。 前記実施形態においてプログラム書換えを行うフローチャートである。 前記実施形態における書換候補ECU組合せ選択処理のフローチャート(図3のS4の詳細)である。 前記実施形態におけるプログラム連続書換処理のフローチャート(図3のS8の詳細)である。 前記実施形態におけるプログラム連続書換処理及び書換完了確認処理において前記プログラム書換装置及び各電子制御装置の通信状態及び動作状態を説明するための図である。 前記実施形態における書換完了確認処理のフローチャート(図3のS9の詳細)である。 比較例において、各対象電子制御装置の電源オフを順番に確認していく様子の一例を示す図である。 前記実施形態において、各対象電子制御装置の電源オフを順番に確認していく様子の一例を示す図である。
A.一実施形態
[A1.プログラム書換システム10の構成]
(A1−1.全体構成)
図1は、本発明の一実施形態に係るプログラム書換装置12(以下「書換装置12」ともいう。)を含むプログラム書換システム10(以下「書換システム10」又は「システム10」ともいう。)を簡略的に示す概略構成図である。システム10は、書換装置12に加え、車両14を含む。図1では、書換装置12及び車両14をそれぞれ1つずつ示しているが、それぞれ複数設けることも可能である。
(A1−2.プログラム書換装置12)
(A1−2−1.プログラム書換装置12の全体構成)
書換装置12は、車両14の第1〜第10電子制御装置62a〜62j(以下「第1〜第10ECU62a〜62j」又は「ECU62a〜62j」という。)のうちプログラム書換対象のECUに記憶されたプログラムを書き換える(又は更新する)。以下では、ECU62a〜62jをECU62と総称する。プログラム書換対象のECU62を「対象ECU62tar」ともいう。ECU62に記憶されているプログラムを「搭載プログラムPi」又は「プログラムPi」ともいう。
図1に示すように、書換装置12は、信号入出力部20、操作入力部22、演算部24、記憶部26及び表示部28を有する。
信号入出力部20(ネットワーク接続部)は、車両14との間で信号の入出力を行う。信号入出力部20は、データケーブル30及びデータリンクコネクタ32(以下「DLC32」ともいう。)を有し、車両14の外部から車両14内の通信ネットワーク60に接続する。
操作入力部22は、書換装置12のユーザ(又は作業者)からの操作入力を受け付ける。本実施形態において、操作入力部22は、車両14の変更対象動作Otarを選択する変更対象動作選択部として機能する。ここにいう変更対象動作Otarは、例えば、車両14の性能(燃費、旋回性能等)を向上するため又は車両14における不具合を解消するために車両14に施す動作をいう。
演算部24(書換制御部)は、書換装置12の各部を制御すると共に、車両14の対象ECU62tarに対するプログラム書換えを制御する。演算部24は、例えば、中央演算装置(CPU)を含む。演算部24の動作の詳細は、図2〜図9を参照して後述する。
記憶部26は、図示しない揮発性メモリ及び不揮発性メモリを有し、演算部24が実行する各種のプログラム及び各種のデータ並びに書換え用のプログラム(以下「書換プログラムPr」又は「プログラムPr」ともいう。)を記憶する。以下では、搭載プログラムPiと書換プログラムPrを合わせてプログラムPともいう。
表示部28は、プログラム書換え等に関する表示画面を表示する。表示部28をタッチパネルとすることで、操作入力部22と表示部28とを統合してもよい。
(A1−2−2.記憶部26)
図2は、本実施形態における記憶部26の構成を概念的に記載した図である。図2では、1つのECU62のみを示し、その他のECU62の図示を省略している。図1及び図2に示すように、記憶部26は、プログラムID履歴データベース50(以下「プログラムID履歴DB50」ともいう。)と、書換順番データベース52(以下「順番DB52」ともいう。)と、書換組合せ情報データベース54(以下「組合せDB54」ともいう。)と、書換プログラムデータベース56(以下「プログラムDB56」ともいう。)と、プログラム書換え用リスト58(以下「書換え用リスト58」又は「リスト58」ともいう。)とを有する。
プログラムID履歴DB50は、プログラムPの識別情報(以下「プログラムID」という。)の変更履歴を、ECU62の識別情報(以下「ECU ID」という。)及び日付と共に記憶する(図2参照)。本実施形態において、プログラムIDは、プログラム名とバージョン情報Iverとを含む。例えば、プログラムIDは、「XXXX.001」のように表記される。このうち「XXXX」がプログラム名に対応し、「001」がバージョン情報Iverである。また、ECU IDは、各ECU62が制御する下位システムの識別情報(システムID)をも意味する。
順番DB52は、車両14に搭載されている書換え可能な全てのECU62の識別情報(ECU ID)に対応させて、書換えの優先順番Opを示す優先順番情報Ipo(以下「順番情報Ipo」ともいう。)を予め記憶する(図2参照)。本実施形態の順番情報Ipoは、複数車種の車両14に搭載されるECU62の優先順番Opを含む。本実施形態の優先順番Opは、ECU IDの並び順によって示される。このため、順番情報Ipoは、例えば、第1車種の車両14に搭載されるECU62(図2においてECU IDが例えばXX、YY、ZZのもの)の優先順番Opと、第2車種の車両14に搭載されるECU62(図2においてECU IDが例えばAA、BB、CC、DDのもの)の優先順番Opをまとめて示す。或いは、順番情報Ipoは、単一車種の車両14に搭載されるECU62の優先順番Opのみを示すものであってもよい。
図2の例では、並び順が優先順番Op(以下「書換優先順番Op」又は「書換順番Op」ともいう。)を示しているが、例えば、「1:ZZ、2:YY、3:XX」のように、書換順番Opを順番情報Ipoに含めることも可能である。
また、書換順番Opは、対象ECU62tarのプログラム書換えを行う順番である。書換順番Opの更なる詳細については、図5のステップS41と関連させて後述する。
組合せDB54(書換候補データベース)は、車両14の変更対象動作Otar毎に、書換候補のECU62(以下「書換候補ECU62can」又は「候補ECU62can」という。)の組合せを記憶する。より具体的には、組合せDB54は、組合せ番号Nsetと、変更対象動作Otarと、日付と、候補ECU62canの識別記号(以下「書換候補ECU ID」又は「候補ECU ID」ともいう。)と、候補ECU62canに対応するプログラムID(以下「書換候補プログラムID」又は「候補プログラムID」ともいう。)とを組み合せて記憶する(図2参照)。候補プログラムIDは、プログラム名とバージョン情報Iverとを含む。以下では、組合せDB54に記憶される情報を書換候補情報Icanともいう。
書換プログラムDB56は、書換プログラムPrを記憶する。本実施形態のプログラムDB56は、同一のプログラム名を有する書換プログラムPrについて最新バージョンのものを記憶する。図2では、書換プログラムPrとしてプログラムP1、P2が示されている。書換え用リスト58は、プログラム書換えのために一時的に作成されるリスト(記憶領域)である。リスト58の利用方法は、図4、図5及び図7のフローチャート等を参照して後述する。
(A1−3.車両14)
図1に示すように、車両14は、通信ネットワーク60(以下「車内ネットワーク60」又は「ネットワーク60」ともいう。)を備える。ネットワーク60は、通信線64で接続された複数のECU62a〜62jを備える。また、ネットワーク60は、データリンクコネクタ66(以下「DLC66」ともいう。)を介してプログラム書換装置12に接続される。
各ECU62a〜62jは、車両14の各部を制御する。複数のECU62a〜62jのうち第1ECU62aは、ゲートウェイ機能を有する。すなわち、第1ECU62aは、ネットワーク60をプロトコルの異なるプログラム書換装置12のネットワークと接続するためのネットワークノードである。以下では、第1ECU62aをゲートウェイECU62aともいう。なお、図1では、ゲートウェイECU62aが1つのみ示されているが、複数のゲートウェイECU62aを設けることも可能である。また、1つ又は複数のゲートウェイECU62aは、図1に示すような位置に配置される制限はなく、ネットワーク60内の任意の位置に配置されてもよい。
第2〜第10ECU62b〜62jには、例えば、エンジン電子制御装置(以下「ENG ECU」という。)と、アンチロックブレーキシステム電子制御装置(以下「ABS ECU」という。)と、補助拘束システム電子制御装置(以下「SRS ECU」という。)と、イモビライザ電子制御装置とが含まれる。ENG ECUは、図示しないエンジンの出力を制御する。ENG ECUは、エンジン回転数Ne[rpm]を検出するエンジン回転数センサ(図示せず)と、車両14の車速V[km/h]を検出する車速センサ(図示せず)とに接続されている。ABS ECUは、図示しないブレーキシステムの制御を行う。SRS ECUは、図示しないエアバッグの制御を行う。イモビライザECUは、図示しないイモビライザ装置の制御を行う。
各ECU62a〜62jは、通信線64を介して互いにデータ通信を行う。より具体的には、各ECU62a〜62jは、特定のECU62(例えば、ENG ECU)からの通信データ(例えば、エンジン回転数Neや車速Vのデータ)に基づいて、他のECU62(例えば、ABS ECU、SRS ECU及びイモビライザECU)は車両14の協調制御を行う。さらに、各ECU62a〜62jは、相互に故障診断(通信データの異常検出)を行う。
第2〜第4ECU62b、62c、62dは、第1下位ネットワーク68aを形成する。第5〜第7ECU62e、62f、62gは、第2下位ネットワーク68bを形成する。第8〜第10ECU62h、62i、62jは、第3下位ネットワーク68cを形成する。第1〜第3下位ネットワーク68a〜68cは、例えば、CAN(Controller Area Network)を構成する。ここでのCANは、例えば、高速CANとすることができる。なお、図1の例では、10個のECU62a〜62jの例を示しているが、ECU62の数は、これに限らず、例えば、3〜200のいずれかの値であってもよい。
図1に示すように、第1ECU62aは、信号入出力部70、演算部72及び記憶部74を有する。図1では示していないが、第2〜第10ECU62b〜62jも第1ECU62aと同様の構成を有する。但し、具体的な仕様は、第1〜第10ECU62a〜62jで異なる。
各ECU62a〜62jは、起動スイッチとしてのイグニッションスイッチ80(以下「IGSW80」という。)によりオン及びオフされる。より具体的には、各ECU62a〜62jは、図示しない電力線及びこの電力線上に配置されたIGSW80を介してバッテリ82(蓄電装置)と接続されている。
本実施形態のIGSW80は、ロータリ式であり、図示しないインスツルメントパネルに向かって左側から「オフ」、「ACC」(アクセサリ)及び「オン」の位置を選択可能である。また、IGSW80は、「オン」の位置からさらに右側(時計回り)に回すと、「ST」(エンジンスタート)の位置となり、エンジンが始動する。
本実施形態では、IGSW80が「ACC」及び「オン」の位置にあるとき、バッテリ82から各ECU62への電力供給が行われる。IGSW80が「オフ」の位置にあるとき、バッテリ82から各ECU62への電力供給は、基本的に停止される。
なお、車両14がいわゆるスマートスタート機能を有している場合、IGSW80は、いわゆるスマートスタート機能で用いるプッシュスイッチであってもよい。
第1〜第10ECU62a〜62jは、自らの動作に関連して異常が発生した場合、故障履歴としての故障コード(DTC)を自らの記憶部74に記憶する。また、ゲートウェイECU62は、第2〜第10ECU62b〜62jとの通信に関連して異常が発生した場合もDTCを記憶部26に記憶する。ここでの故障履歴には、通信に関する故障履歴(以下「通信故障履歴」という。)と、それ以外の故障履歴(以下「非通信故障履歴」ともいう。)とが含まれる。通信故障履歴及び非通信故障履歴を合わせて全般故障履歴ともいう。
例えば、第8ECU62hの手前(図1の地点84)で断線が発生した場合、ゲートウェイECU62a及び第8ECU62hの両方が記憶部74にDTCを記憶する。但し、断線が発生している状態では、第8ECU62hは、ゲートウェイECU62aと通信ができない。このため、書換装置12は、第8ECU62hに記憶されたDTCを読み出すことができない。また、各ECU62a〜62jにおいてプログラム書換えが中断してしまった場合も、各ECU62a〜62jは、通信故障履歴としてのDTCを自らの記憶部74に記憶する。
[A2.プログラム書換え]
次に、本実施形態において、対象ECU62tarに記憶されている搭載プログラムPiの書換えについて説明する。
(A2−1.事前準備)
特定の変更対象動作Otarについてプログラム書換えを行う前に、書換装置12のユーザ(又は作業者)は、当該変更対象動作Otarに対応するデータを書換装置12の記憶部26に記憶させる。より具体的には、ユーザは、当該特定の変更対象動作Otarに対応する複数の書換プログラムPrをプログラムDB56(書換プログラムデータベース)に記憶させる。
また、ユーザは、変更対象動作Otarに対応させて書換プログラムPrそれぞれのプログラムID(バージョン情報Iverを含む。)等をプログラムID履歴DB50に記憶させる(図2参照)。さらに、ユーザは、書換プログラムPrの優先順番情報Ipoを順番DB52に記憶させる(図2参照)。さらにまた、ユーザは、書換プログラムPrの組合せ番号Nset、候補ECU ID、候補プログラムID等を組合せDB54に記憶させる(図2参照)。例えば、書換装置12のDLC32を図示しないパーソナルコンピュータに接続し、当該パーソナルコンピュータから記憶部26に上記データをコピーする。
なお、書換装置12にコピーされるデータは、プログラム書換システム10の管理者が作成し、図示しない外部サーバに保存する。当該外部サーバに保存されたデータは、前記パーソナルコンピュータにダウンロードされる。書換装置12に外部サーバとの通信機能がある場合、書換装置12は、外部サーバから直接データを取得することも可能である。
(A2−2.実際の書換え)
(A2−2−1.書換え時の全体的な流れ)
図3は、本実施形態においてプログラム書換えを行うフローチャートである。図3及び後述する図4、図5及び図7の処理は、主として、書換装置12の演算部24(書換制御部)が実行する。図3のステップS1において、ユーザが書換装置12の電源スイッチ(図示せず)をオンにすると、書換装置12が起動する。ステップS2において、書換装置12は、選択メニューを表示部28に表示させる。当該選択メニューとしては、例えば、プログラムPの連続書換え、プログラムPの個別書換え等を含む。連続書換えは、複数の対象ECU62tarのプログラムPiを連続して書き換えるためのメニューであり、個別書換えは、単一の対象ECU62tarのプログラムPiを書き換えるためのメニューである。
選択メニューのうちプログラムPの連続書換えが選択されると(S3:YES)、ステップS4〜S10においてプログラムPの連続書換えを行う。プログラムPの連続書換え以外のメニューが選択されると(S3:NO)、当該メニューを行う(図3では、当該メニューに対応するステップの図示を省略している。)。
ステップS4において、書換装置12は、書換候補ECU62canの組合せを選択する処理(以下「書換候補ECU組合せ選択処理」又は「組合せ選択処理」という。)を実行する。ステップS4の詳細は、図4を参照して後述する。ステップS5において、書換装置12は、組合せ選択処理の結果、選択可能な書換候補ECU62canの組合せが存在するか否かを判定する。選択可能な組合せが存在する場合(S5:YES)、ステップS6に進む。
ステップS6において、書換装置12は、選択可能な組合せを表示部28に表示させる。なお、選択可能な組合せが1つしかない場合、当該1つの組合せを表示する。また、書換候補ECU組合せ選択処理において選択可能と判断された組合せであっても、その組合せの中に、書換えの禁止設定がなされているECU62が含まれている場合、書換装置12は、その旨を表示部28に表示させてもよい。
選択可能な組合せが複数ある場合、書換装置12は、組合せDB54に記憶された日付が新しいもののみを表示してもよい。これにより、各組合せに同じECU62に関する異なるバージョン情報Iverが含まれている場合、より新しいバージョンのプログラムPrを先に書き換えることが可能となる。これにより、より旧いバージョンのプログラムPrについては書換えを省略することができる。
ステップS7において、書換装置12は、操作入力部22を介してユーザによりいずれかの組合せが選択されたか否かを判定する。いずれかの組合せが選択された場合(S7:YES)、ステップS8に進む。いずれかの組合せも選択されずに連続書換えの終了が選択された場合(S7:NO)、ステップS10に進む。
ステップS8において、書換装置12は、選択した組合せに含まれる複数の書換候補ECU62canの中から実際にプログラム書換えを行うECU62(対象ECU62tar)それぞれについてプログラム書換えを連続して行う処理(以下「プログラム連続書換処理」という。)を実行する。ステップS8の詳細は、図5を参照して後述する。ステップS9において、書換装置12は、プログラム書換えの完了を確認する処理(以下「書換完了確認処理」という。)を実行する。ステップS9の詳細は、図7を参照して後述する。ステップS9の後、ステップS5に戻る。
ステップS5において選択可能な書換候補ECU62canの組合せが存在しない場合(S5:NO)、ステップS10において、書換装置12は、プログラム書換えのために一時的に作成していた書換え用リスト58を消去してプログラムPの連続書換えを終了する。リスト58については、図4のステップS30等において後述する。
(A2−2−2.書換候補ECU組合せ選択処理(図3のS4の詳細))
図4は、本実施形態における書換候補ECU組合せ選択処理のフローチャート(図3のS4の詳細)である。図4のステップS21において、書換装置12は、車内ネットワーク60とのリンクを確立する。リンクの確立に際し、書換装置12は、各ECU62a〜62jにおけるセッションが終了するまで、所定時間待機する。
ステップS22において、書換装置12は、ゲートウェイECU62aに対してDTCを要求する。当該要求に対し、ゲートウェイECU62aは、自らの記憶部74に記憶されているDTCがあれば、当該DTCを書換装置12に送信する。DTCがなければ、ゲートウェイECU62aは、DTCが記録されていない旨の回答を行う。或いは、DTCがない場合、ゲートウェイECU62aは、応答しないことも可能である。
ステップS23において、書換装置12は、ゲートウェイECU62aからの応答に基づいて、ゲートウェイECU62aに通信故障がないか否かを判定する。例えば、書換装置12は、ゲートウェイECU62aからDTCを受信した場合、当該DTCが通信故障履歴に関するものであるか否かを判定する。或いは、DTCが記録されていない旨の回答をゲートウェイECU62aが出力する場合、書換装置12は、ゲートウェイECU62aから何らかの応答があるか否かに基づいて、ゲートウェイECU62aに通信故障があるか否かを判定することも可能である。
ゲートウェイECU62aに通信故障がない場合(S23:YES)、ステップS24において、書換装置12は、ゲートウェイECU62a以外の他のECU62(第2〜第10ECU62b〜62j)に対してDTCを要求する。当該要求に対し、第2〜第10ECU62b〜62jは、自らの記憶部74に記憶されているDTCがあれば、書換装置12に送信する。DTCがなければ、第2〜第10ECU62b〜62jは、DTCが記録されていない旨の回答を行う。或いは、第2〜第10ECU62b〜62jは、DTCが記録されていない場合、応答しないことも可能である。
ステップS25において、書換装置12は、他のECU62(第2〜第10ECU62b〜62j)からの応答に基づいて、他のECU62(第2〜第10ECU62b〜62j)に通信故障がないか否かを判定する。当該判定は、ステップS23と同様に行うことができる。他のECU62(第2〜第10ECU62b〜62j)に通信故障がない場合(S25:YES)、ステップS27に進む。
ステップS23においてゲートウェイECU62aに通信故障がある場合(S23:NO)又はステップS25においてゲートウェイECU62a以外のECU62(第2〜第10ECU62b〜62j)のいずれかに通信故障がある場合(S25:NO)、ステップS26において、書換装置12は、当該通信故障を通知するエラーメッセージを表示部28に表示させる。
ステップS27において、書換装置12は、ネットワーク60に含まれ且つプログラム書換えが可能な全てのECU62(第1〜第10ECU62a〜62j)からECU ID(システムID)及び現在のプログラムID(以下「現在プログラムID」ともいう。)を読み出す。現在プログラムIDには、プログラム名と、現在のバージョン情報Iver(以下「現在バージョン情報Iver」ともいう。)が含まれる。
続くステップS28〜S30では、車両14において必要とされる変更対象動作Otarを特定する。すなわち、ステップS28において、書換装置12は、ステップS28で読み出した現在プログラムIDそれぞれに対応する最新のプログラムID(以下「最新プログラムID」ともいう。)をプログラムID履歴DB50から抽出する。そして、書換装置12は、抽出した最新プログラムIDを、ECU ID及び現在プログラムIDと組み合わせて保持する。
なお、本実施形態では、1つのECU62は、1つのプログラムPiのみを有している(図2参照)。このため、最新プログラムIDの抽出(S28)に際しては、現在プログラムIDに代えて、ECU IDを用いて最新プログラムIDを特定してもよい。
ステップS29において、書換装置12は、抽出した最新プログラムIDの組合せの一部又は全部と完全一致する候補プログラムIDの組合せ及び組合せ番号Nset(換言すると変更対象動作Otar)を組合せDB54から抽出して保持する。これにより、車両14において必要とされる1つ又は複数の変更対象動作Otarの候補を特定することができる。
ステップS30において、書換装置12は、車両14においてプログラム書換えを要する変更対象動作Otarを特定してリスト58に登録する。
すなわち、書換装置12は、プログラム名が同じであるにもかかわらず、最新プログラムIDと一致しない現在プログラムIDが存在するか否かを組合せ(変更対象動作Otar)毎に判定する。そして、書換装置12は、最新プログラムIDと一致しない現在プログラムIDが存在する組合せ(変更対象動作Otar)を、プログラム書換えを要する組合せ(変更対象動作Otar)として抽出する。書換装置12は、抽出した当該組合せに関する情報(組合せ番号Nset、ECU ID、現在プログラムID及び最新プログラムID)をリスト58に登録する。このリスト58に登録された組合せが、図3のステップS5における選択可能な組合せとなる。
一方、最新プログラムIDと一致しない現在プログラムIDが存在しない組合せについては、プログラム書換えが完了済みであり、プログラム書換えを要さないと判定可能である。このため、書換装置12は、最新プログラムIDと一致しない現在プログラムIDが存在しない組合せに関する情報を消去する(又は保持を終了する)。なお、リスト58に登録する組合せが1つもない場合、書換装置12は、その旨を表示部28に表示させる。
(A2−2−3.プログラム連続書換処理(図3のS8の詳細))
図5は、本実施形態におけるプログラム連続書換処理のフローチャート(図3のS8の詳細)である。図6は、本実施形態におけるプログラム連続書換処理及び書換完了確認処理において書換装置12及び各ECU62の通信状態及び動作状態を説明するための図である。上記のように、プログラム連続書換処理(図3のS8)は、図3のステップS7において選択可能な組合せの1つをユーザが選択した後に行われる。図6において、プログラム連続書換処理のうち実際の連続的なプログラム書換え(プログラム連続書換え(図5のS48等))は、時点t2〜t3の間に実行され、書換完了確認処理は、時点t3〜t6の間に実行される。
図5のステップS41において、書換装置12は、ユーザが選択した組合せ(又は組合せ番号Nset若しくは変更対象動作Otar)に対応する書換優先順番Opを順番DB52の優先順番情報Ipoを用いて特定する。
順番DB52における書換順番Opを設定する規則(又は基準)としては、例えば、次のものを用いる。
(規則1) ゲートウェイECU62a(上位ECU)については、それ以外のECU62b〜62j(下位ECU)よりも書換えの順番を後にする。
(規則2) 他のECU62の書換えに用いるデータを出力するECU62(データ提供ECU)については、当該他のECU62よりも書換えの順番を後にする。
規則1に関し、ゲートウェイECU62aのプログラムPを先に書き換えてしまうと、ゲートウェイECU62aは、再起動するまで通信仲介機能を停止することになる。このため、ゲートウェイECU62aの書換えを後にする。
規則2に関し、データ提供ECUのプログラムPを先に書き換えてしまうと、データ提供ECUは、再起動するまで他のECU62の書換えに必要なデータの提供を停止することになる。このため、データ提供ECUの書換えを後にする。なお、規則2に関連する場合として、例えば、他のECU62の書換えの開始条件として、車速Vがゼロ[km/h]であることが設定されており且つ車速Vはデータ提供ECUから他のECU62に提供される場合がある。
図5のステップS42において、書換装置12は、ステップS41で特定した書換順番Opを用いて、候補ECU ID、現在プログラムID及び最新プログラムIDの組合せを並べ直す。並べ直す前の候補ECU ID、現在プログラムID及び最新プログラムIDの組合せは、図4のステップS27〜S30を介してリスト58に登録されたものである。
ステップS43において、書換装置12は、並べ直した候補ECU ID、現在プログラムID及び最新プログラムIDの組合せそれぞれに整理番号Nrefを割り当てる。整理番号Nrefは、各組合せに関する書換え順を示す。
ステップS44において、書換装置12は、書換え順が来た整理番号Nrefを示す書換対象番号Ntar(以下「対象番号Ntar」ともいう。)をリセットしてゼロにする。ステップS45において、書換装置12は、書換対象番号Ntarの現在値に1を足して新たな対象番号Ntarとする。なお、あるECU62に対してプログラム書換えを終えた後、別のECU62に対してプログラム書換えを開始する際、ステップS44の前又は後において、書換装置12は、別のECU62におけるセッションが終了するまで所定時間待機する。
ステップS46において、書換装置12は、書換対象番号Ntarと一致する整理番号Nrefを有する候補ECU62canに対応する現在プログラムID(以下「対象プログラムID」ともいう。)を特定する。ステップS47において、書換装置12は、プログラム名が同じ対象プログラムIDと最新プログラムIDとを比較し、両者が一致するか否かを確認する。両者が一致する場合(S47:YES)、既に搭載プログラムPiは最新バージョンである。この場合、書換対象番号Ntarと一致する整理番号Nrefを有する候補ECU62canに対してプログラム書換えを行わずにステップS49に進む。
一方、両者が一致しない場合(S47:NO)、搭載プログラムPiは最新バージョンではないため、搭載プログラムPiの書換えが必要である。この場合、候補ECU62canは、対象ECU62tarとされる。そして、ステップS48において、書換装置12は、書換対象番号Ntarと一致する整理番号Nrefを有する対象ECU62tarに対してプログラム書換えを実行する。
さらに、書換装置12は、各ECU62に対してネットワーク通信停止要求信号Sstp(以下「通信停止要求信号Sstp」又は「停止要求信号Sstp」ともいう。)の定期的送信を開始する。停止要求信号Sstpは、各ECU62a〜62j(対象ECU62tar及びそれ以外のECU62)に対し、各ECU62間相互通信の停止及びDTC保存の禁止を要求する信号である。停止要求信号Sstpの送信は、プログラム書換えの実行開始前に開始される(図6参照)。
停止要求信号Sstpの送信は、所定の間隔(例えば、2〜4秒毎)に行われる。停止要求信号Sstpを受信した各ECU62a〜62jは、ネットワーク60における通信並びに通信関連のDTCの保存及び出力を所定期間(例えば、4〜10秒のいずれか)停止する。これにより、書換装置12が停止要求信号Sstpの送信を継続している間、対象ECU62tar以外のECU62は、ネットワーク通信を停止し続けると共に、通信関連のDTCを保存しない。停止要求信号Sstpは、ネットワーク通信停止解除要求信号(解除要求信号Sfin)が送信されるまでネットワーク通信の停止を要求するものとしてもよい。
なお、ステップS48では、プログラム書換えを終了した対象ECU62tarの再起動を行わないことに留意されたい。対象ECU62tarの再起動は、書換完了確認処理(後述する図7のS51〜S55)において行われる。
図6では、時点t1〜t3の間において、書換装置12が通信停止要求信号Sstpを定期的に送信する様子が示されている。停止要求信号Sstpを受信した各ECU62a〜62jは、相互の通信を停止する通信停止状態となる。但し、実際にプログラム書換えが行われる対象ECU62tarについては、プログラム書換えのため、書換装置12との間で通信が可能である。
ステップS49において、書換装置12は、書換対象番号Ntarが整理番号Nrefの最大値Nref_maxと等しいか否かを判定する。書換対象番号Ntarが最大値Nref_maxと等しくない場合(S49:NO)、搭載プログラムPiが最新バージョンか否かの確認を終えていない候補ECU62canがある。そのため、ステップS45に戻る。書換対象番号Ntarが最大値Nref_maxと等しい場合(S49:YES)、組合せの中の全ての候補ECU62canが、搭載プログラムPiが最新バージョンか否かの確認を終えている。そこで、書換装置12は、プログラム連続書換処理を終え、書換完了確認処理(図3のS9、図7)に進む。
(A2−2−4.書換完了確認処理(図3のS9の詳細))
(A2−2−4−1.全体的な流れ)
図7は、本実施形態における書換完了確認処理のフローチャート(図3のS9の詳細)である。ステップS51において、書換装置12は、各対象ECU62tarの電源オフをユーザに求める電源オフ要求を表示部28に表示させる。本実施形態における電源オフ要求では、IGSW80をオフにすることをユーザに求める。なお、通信停止要求信号Sstpは、図5のステップS48の時点から定期的に送信され続けている。
ステップS52において、書換装置12は、各対象ECU62tarが電源オフであるか否かを確認する。具体的には、書換装置12は、全ての対象ECU62tarに対して第1動作確認信号Scnf1を送信する。そして、書換装置12は、第1動作確認信号Scnf1に対する応答がないことをもって各対象ECU62tarの電源オフを確認する。第1動作確認信号Scnf1としては、例えば、バッテリ82の電圧の読出しを要求するバッテリ電圧要求信号を用いることができる。なお、IGSW80のオンオフ信号を書換装置12に出力することにより、当該判定を行うことも可能である。本実施形態では、電源オフであるか否かの確認を、対象ECU62tar1つ1つ順番に行う(詳細は、図8及び図9を参照して後述する。)。
いずれかの対象ECU62tarが電源オフでない場合(S52:NO)、ステップS52に戻る。但し、所定期間を経過しても、いずれかの対象ECU62tarが電源オフとならない場合、書換装置12は、その旨を表示部28に表示させてもよい。全ての対象ECU62tarが電源オフである場合(S52:YES)、ステップS53に進む。
ステップS53において、書換装置12は、各ECU62a〜62jに対する通信停止要求信号Sstpの送信を終了する(図6の時点t4)。ステップS54において、書換装置12は、各対象ECU62tarの電源再オンをユーザに求める電源再オン要求を表示部28に表示させる。本実施形態における電源再オン要求では、IGSW80を再オンにすることをユーザに求める。
ステップS55において、書換装置12は、全ての対象ECU62tarが電源オンになったか否か(換言すると、全ての対象ECU62tarが再起動したか否か)を判定する。具体的には、書換装置12は、全ての対象ECU62tarに対して第2動作確認信号Scnf2を送信する。そして、書換装置12は、第2動作確認信号Scnf2に対する応答があることをもって各対象ECU62tarの電源オンを確認する。
第2動作確認信号Scnf2としては、各対象ECU62tarの現在プログラムIDを要求する現在プログラムID要求信号Sreqpid(以下「ID要求信号Sreqpid」ともいう。)を用いることができる。上記のように、現在プログラムIDは、プログラム名と現在バージョン情報Iverを含む。このため、ID要求信号Sreqpidは、バージョン情報要求信号としても機能する。第2動作確認信号Scnf2としてID要求信号Sreqpidを用いることで、後述するステップS56の処理を円滑に行うことが可能である。なお、IGSW80のオンオフ信号を書換装置12に出力することにより、ステップS56の判定を行うことも可能である。
いずれかの対象ECU62tarが電源オンでない場合(S55:NO)、ステップS55を繰り返す。すなわち、書換装置12は、現在プログラムIDを受信していない対象ECU62tarに対して、ID要求信号Sreqpidを連続的に送信し続ける。但し、所定期間を経過しても、いずれかの対象ECU62tarが電源オンとならない場合、書換装置12は、その旨を表示部28に表示させてもよい。全ての対象ECU62tarが電源オンである場合(S55:YES)、ステップS56に進む。
ステップS56において、書換装置12は、全ての対象ECU62tarの現在プログラムIDが最新プログラムIDと一致するか否かを判定する。換言すると、書換装置12は、各対象ECU62tarの搭載プログラムPiについて現在バージョン情報Iverと最新バージョン情報Iverとが一致するか否かを判定する。なお、ここでの最新プログラムIDは、リスト58に登録されているものである。また、ステップS55において、各対象ECU62tarの電源オンの確認をID要求信号Sreqpid以外によって行う場合、ステップS55、S56の間において、各対象ECU62tarに対してID要求信号Sreqpidを送信して、各対象ECU62tarの現在プログラムIDを取得する。
全ての対象ECU62tarの現在プログラムIDが最新プログラムIDと一致する場合(S56:YES)、書換装置12は、ステップS57において、書換え完了を表示部28に表示させた後、書換完了確認処理を終了する。いずれかの対象ECU62tarの現在プログラムIDが最新プログラムIDと一致しない場合(S56:NO)、ステップS58において、書換装置12は、その旨のエラーメッセージを表示部28に表示させる。
(A2−2−4−2.各対象ECU62tarが電源オフしたか否かの判定(図7のS52)と表示部28の表示(S51、S54)の関係)
上記のように、図7のステップS52では、各対象ECU62tarの電源オフを順番に確認していく。この場合、各対象ECU62tarが電源オフであることを確実に確認できる。その一方、当該確認にかかる時間は比較的長くなるため、IGSW80がオフにされてから再オンまでの時間が短いと、各対象ECU62tarが電源オフであるとの判定を確定することができなくなる。その場合、図7のステップS52を繰り返すのみで、ステップS53に進めなくなる可能性がある。
そこで、本実施形態では、表示部28の表示(S51、S54)を用いることで、各対象ECU62tarが電源オフであるとの判定を確実に確定することができる。この点について、図8及び図9を用いてより具体的に説明する。
図8は、比較例において、各対象ECU62tarの電源オフを順番に確認していく様子の一例を示す図である。当該比較例(及び図9の例)では、対象ECU62tarの数は3個である。当該比較例では、本実施形態における表示部28の表示(図7のS51、S54)を用いない。代わりに、書換装置12のユーザ(又は作業者)は、整備マニュアル等から作業の情報を得る。図8の比較例では、ユーザによるIGSW80のオフ操作から再オン操作までの時間が短いため、第3対象ECU62tar(例えば、第1ECU62a)が電源オフになったことを書換装置12が確定することができない。
すなわち、図8において、書換装置12は、時点t11から第1対象ECU62tar(例えば、第4ECU62d)が電源オフであるか否かの判定を開始する。時点t12において、ユーザがIGSW80をオフにすると、各対象ECU62tarは電源オフとなる。時点t12から時点t13になると、書換装置12は、第1対象ECU62tarが電源オフであるとの判定を確定する。次いで、書換装置12は、第2対象ECU62tar(例えば、第7ECU62g)が電源オフであるか否かの判定を開始する。時点t13から時点t14になると、書換装置12は、第2対象ECU62tarが電源オフであるとの判定を確定する。
次いで、書換装置12は、第3対象ECU62tar(例えば、第1ECU62a)が電源オフであるか否かの判定を開始する。時点t15において、ユーザは、IGSW80をオンにする。これにより、3つの対象ECU62tarは、全て再起動する。その一方、時点t15において、書換装置12は、第3対象ECU62tarが電源オフであるとの判定を確定していない。このため、書換装置12は、第3対象ECU62tarが電源オフでないため、図7のステップS53に進めなくなる。
図9は、本実施形態において、各対象ECU62tarの電源オフを順番に確認していく様子の一例を示す図である。図9の例では、全ての対象ECU62tarが電源オフになったとの判定が確定するまで、電源再オン要求(IGSWオン要求)が表示部28に表示されない。このため、作業者によるIGSW80のオフ操作から再オン操作までの時間を十分に取ることが可能となり、第3対象ECU62tar(例えば、第1ECU62a)が電源オフになったことを書換装置12が確定することができる。
すなわち、図9において、書換装置12は、時点t21から第1対象ECU62tar(例えば、第4ECU62d)が電源オフであるか否かの判定を開始する。この際、書換装置12は、表示部28に電源オフ要求を表示させる(図7のS51)。
時点t22において、ユーザがIGSW80をオフにすると、各対象ECU62tarは電源オフとなる。時点t22から時点t23になると、書換装置12は、第1対象ECU62tarが電源オフであるとの判定を確定する。次いで、書換装置12は、第2対象ECU62tar(例えば、第7ECU62g)が電源オフであるか否かの判定を開始する。時点t23から時点t24になると、書換装置12は、第2対象ECU62tarが電源オフであるとの判定を確定する。
次いで、書換装置12は、第3対象ECU62tar(例えば、第1ECU62a)が電源オフであるか否かの判定を開始する。図9の例では、表示部28における電源オフ要求は表示部28に表示され続けている。このため、図8の比較例と異なり、ユーザは、IGSW80をオンにすることがない。なお、書換装置12は、第1対象ECU62tarが電源オフであるとの判定を確定した時点等で、表示部28の表示を電源オフ要求から待機要求に切り替えてもよい。
時点t24から時点t25になると、書換装置12は、第3対象ECU62tarが電源オフであるとの判定を確定する。これに伴い、書換装置12は、表示部28の表示を電源再オン要求に切り替える(図7のS54)。時点t26において、作業者は、IGSW80をオンにする。これにより、3つの対象ECU62tarは、全て再起動する。各対象ECU62tarが電源オンになると(図7のS55:YES)、書換装置12は、電源再オン要求の表示を終了する(時点t27)。
以上より、図9の例において、書換装置12は、全ての対象ECU62tarが電源オフになったとの判定を確定できたため、図7のステップS53に進むことができる。
[A3.本実施形態における効果]
以上のような本実施形態によれば、対象ECU62tarに対するプログラム書換えの前に、対象ECU62tarのそれぞれに関するネットワーク60の通信に関する通信故障履歴がないことを確認する(図4のS23、S25)。これにより、プログラム書換装置12が対象ECU62tarと通信できない場合の理由が、書換装置12を接続している車両14が対象ECU62tarを搭載していない車種であることなのか、又は対象ECU62tarが搭載されているものの通信故障が発生していることであるのかを、プログラム書換えの開始前に確認することが可能となる。従って、通信故障を、対象ECU62tarが非搭載であることと誤解することを抑制することができる。このため、プログラム書換えにおける手間を軽減することができる。
本実施形態において、書換装置12は、プログラムDB56(書換プログラムデータベース)を備える(図1)。また、書換装置12の演算部24(書換制御部)は、ネットワーク60に含まれる書換え可能な全てのECU62a〜62jからECU ID及び現在プログラムID(搭載プログラムPiの現在バージョン情報Iverを含む。)を対にして読み出す(図4のS27)。演算部24は、読み出した現在バージョン情報Iverと、当該現在バージョン情報Iverに対応する最新バージョン情報Iverとを比較して、最新バージョン情報Iverと一致しない現在バージョン情報Iverと対になる書換候補ECU62canを対象ECU62tarとして抽出する(図5のS47)。演算部24は、抽出した対象ECU62tarに対して順番DB52に記憶されている優先順番Opでプログラム書換えを連続して実行する(図3のS8、図5)。
本実施形態によれば、車両14の変更対象動作Otarで書換えが必要となるECU62(対象ECU62tar)の組合せに対応する優先順番Opでプログラム書換えを行う(図5)。このため、その車両14に最適な順番でプログラム書換えを行うことが可能となる。
また、本実施形態によれば、現在プログラムID(現在バージョン情報Iver)と最新プログラムID(最新バージョン情報Iver)とが一致しない書換候補ECU62canである対象ECU62tarに対して、変更対象動作Otar毎の優先順番Opに従って最新バージョンのプログラムPへの書換えを連続して実行する(図5)。このため、書換えが必要な候補ECU62canのみについて書換えを行うので、書換作業を効率よく行うことが可能となる。
以上によれば、市場に出回っている車両14に対するプログラム書換えを、販売店等の整備事業者が行う場合も、整備事業者(作業者)による対象ECU62tarの選定を誤ることがない。加えて、書換順番を特定する作業負担を軽減でき、適切な書換作業の容易な実施が可能になる。
また、プログラム書換え中に書換えを失敗した対象ECU62tarが存在しても、再度書換作業を行うことにより、既に書換えが成功している対象ECU62tarを除いて、書換えが終了していない対象ECU62tarに対して書換えを行うことが可能となる。
本実施形態において、書換装置12の演算部24(書換制御部)は、ゲートウェイECU62aに対して通信故障履歴を問い合わせ(図4のS23)、その後、ゲートウェイECU62a以外のECU62(第2〜第10ECU62a〜62j)に対して通信故障履歴を問い合わせること(S25)により、通信故障履歴がないことを確認する。これにより、対象ECU62tarと通信できない場合、ゲートウェイECU62aに問題があるのか、それとも対象ECU62tar自体又は他のECU62に問題があるのかを確認することで、原因箇所の特定を容易化することが可能となる。
本実施形態において、書換装置12の演算部24(書換制御部)は、ゲートウェイECU62aに対して、DTC(通信故障履歴を含む全般故障履歴)を問い合わせ、DTCがないこと又はDTCの中に通信故障履歴が含まれないことに基づいて通信故障履歴がないことを確認する(図4のS23)。その後、演算部24は、対象ECU62tar自体に対してDTCを問い合わせ、DTCがないこと又はDTCの中に通信故障履歴が含まれないことに基づいて通信故障履歴がないことを確認する(S25)。これにより、対象ECU62tar及びゲートウェイECU62aは、通信故障履歴とそれ以外の故障履歴を区別する必要がなくなるため、各ECU62の構成を簡素化することが可能となる。
本実施形態において、順番DB52に記憶されている優先順番Opは、書換え可能な全てのECU62a〜62jのうち他のECU62(例えば、第2〜第10ECU62b〜62j)のデータ利用することが設定されているECUが、利用相手のECUより先になるように設定される。また、ゲートウェイECU62aは、通信が中継される他の対象ECU62tarよりも後にプログラム書換動作が実行される(図5のS41)。これにより、複数のECU62を連続して書き換える際に、連携する他のECU62の書換えによる利用データの変更等の影響を受けることなく、ゲートウェイECU62a及び他の対象ECU62tarに対するプログラム書換えを連続的に行うことが可能となる。
B.変形例
なお、本発明は、上記実施形態に限らず、本明細書の記載内容に基づき、種々の構成を採り得ることはもちろんである。例えば、以下の構成を採用することができる。
[B1.適用対象]
上記実施形態では、システム10を車両14用に用いたが、これに限らず、例えば、その他の移動体(飛行機、船舶、ヘリコプタ等)であってもよい。
[B2.プログラム書換システム10の構成]
(B2−1.プログラム書換装置12)
(B2−1−1.全般)
上記実施形態では、書換装置12を車両14の外部から接続するものとした(図1)。しかしながら、例えば、プログラム書換えの前に通信故障がないことを確認する観点(図4のS23、S25)からすれば、これに限らず、書換装置12を車両14に搭載することも可能である。
上記実施形態では、書換装置12と車内ネットワーク60との通信を有線で行った(図1)。しかしながら、例えば、車内ネットワーク60との通信の観点からすれば、これに限らず、無線で通信することも可能である。
(B2−1−2.記憶部26)
上記実施形態の順番DB52は、複数車種のECU62の書換優先順番Opを一緒に記憶した(図2)。しかしながら、例えば、特定の変更対象動作Otarについて優先順番Opを特定する観点からすれば、これに限らない。例えば、順番DB52は、単一車種のECU62の優先順番Opのみを記憶することも可能である。或いは、順番DB52は、変更対象動作Otar毎に優先順番Opを記憶してもよい。
上記実施形態では、各DB50、52、54、56及びリスト58を書換装置12に設けた(図1)。しかしながら、例えば、書換装置12が外部サーバとの通信機能を有する場合、DB50、52、54、56及びリスト58のうちの1つ又は複数を前記外部サーバに設け、書換装置12は、外部サーバから必要なデータを取得してもよい。
(B2−2.車両14)
上記実施形態では、車両14がガソリン車であることを想定していたが、これに限らない。車両14は、例えば、電動車両(ハイブリッド車、燃料電池車等を含む。)であってもよい。
[B3.プログラム書換え]
(B3−1.全般)
上記実施形態では、プログラム名とバージョン情報Iverとを一体化したプログラムIDの形で処理を行った。例えば、プログラムID履歴DB50、組合せDB54等では、プログラムIDとしてデータを管理した(図2)。しかしながら、プログラム名とバージョン情報Iverとを用いる観点からすれば、プログラム名とバージョン情報Iverとを別々に管理することも可能である。
上記実施形態では、ECU IDとプログラムIDとを分けて設定した(図2)。しかしながら、例えば、各ECU62で用いられるプログラムPが1種類のみである場合、ECU IDとプログラムIDとを統合して用いることも可能である。
(B3−2.対象ECU組合せ選択処理(図3のS4、図4))
上記実施形態において、書換装置12は、プログラムID履歴DB50を用いて最新プログラムIDを特定した(図4のS28)。しかしながら、例えば、候補ECU62canにおける現在プログラムIDが最新バージョンであるか否かを確認する観点からすれば、これに限らない。
例えば、書換装置12は、組合せDB54に記憶されている候補プログラムIDを最新プログラムIDとして扱うことも可能である。この場合、同じプログラム名であるにもかかわらず、変更対象動作Otar毎に最新バージョン情報Iverが相違する可能性がある。この場合、書換装置12は、特定の変更対象動作Otar(第1変更対象動作)に関してプログラム書換えを行う場合、他の変更対象動作Otar(第2変更対象動作)に関する候補プログラムIDと比較してもよい。そして、第2変更対象動作に関する候補プログラムIDの方が、第1変更対象動作に関する候補プログラムIDよりも新しいバージョンである場合、第2変更対象動作に関する候補プログラムIDを用いることができる。
上記実施形態では、書換候補ECU組合せ選択処理(図4)において、現在バージョン情報Iverが最新バージョン情報Iverと一致する書換候補ECU62canの情報についてもリスト58に登録した(図4のS30)。そして、プログラム連続書換処理(図5)において、対象プログラムID(現在プログラムID)が最新プログラムIDと一致する場合(S47:YES)、プログラム書換えを行わないこととした。
しかしながら、例えば、現在バージョン情報Iverが最新バージョン情報Iverと一致しない書換候補ECU62canに対してプログラム書換えを行う観点からすれば、これに限らない。例えば、図4のステップS30においてリスト58に登録する候補ECU ID(及び候補プログラムID)は、現在バージョン情報Iverが最新バージョン情報Iverと一致しない書換候補ECU62canのみに限定してもよい。これにより、図5のステップS47の処理を省略することが可能となる。なお、図4のステップS30(図3のS4の一部)において組合せ番号Nsetを合わせてリスト58に登録しておけば、その後の図3のステップS5では、登録した組合せ番号Nsetを用いて選択可能な組合せを判定することが可能となる。
上記実施形態では、通信故障がないことを、ゲートウェイECU62aとその他のECU62(ECU62b〜62j)とに分けて判定した(図4のS23、S25)。しかしながら、例えば、ネットワーク60全体又は対象ECU62tarにおける通信故障を判定する観点からすれば、これに限らない。例えば、図4のステップS23、S25を統合することも可能である。その際、通信故障がないことの確認を、全ECU62a〜62jではなく、対象ECU62tarとゲートウェイECU62aの組合せのみ又は対象ECU62tarのみに限ることも可能である。
また、例えば、プログラム書換えを要する変更対象動作Otarを特定する観点からすれば、通信故障がないことの確認(図4のS22〜S25)を省略することも可能である。
上記実施形態では、プログラム書換えを要する変更対象動作Otarを、プログラムIDの対比に基づいて特定した(図4のS27〜S30)。しかしながら、例えば、プログラム書換えを要する変更対象動作Otarを特定する観点からすれば、これに限らない。例えば、プログラム書換えを要する変更対象動作OtarをECU IDの対比に基づいて特定してもよい。車両14毎にプログラム書換えの履歴を管理しており、プログラム書換えを要する変更対象動作Otarが予め特定可能な場合、書換装置12自身で変更対象動作Otarを選択することも可能である。
(B3−3.プログラム連続書換処理(図3のS8、図5のS48))
上記実施形態では、ネットワーク通信停止要求信号Sstpを定期的に送信した。しかしながら、例えば、各ECU62を所望の状態に維持させる観点からすれば、送信する信号は、これに限らない。例えば、書換装置12は、各ECU62に対して定期的に現状の状態(DTCの保存を禁止した状態と、各ECU62間相互通信の停止状態)の維持を要求する信号を送信することも可能である。
(B3−4.書換完了確認処理(図3のS9、図7))
上記実施形態では、各対象ECU62tarを再起動させるため、書換装置12のユーザによるIGSW80のオフ操作及び再オン操作を求めた(図7のS51、S54)。しかしながら、例えば、各対象ECU62tarを再起動させる観点からすれば、これに限らない。例えば、書換装置12から各対象ECU62tarに対して再起動信号を出力することも可能である。
上記実施形態では、プログラム書換え後の各対象ECU62tarの電源オフの確認(図7のS52)を、対象ECU62tar1つ1つについて順番に行った(図9)。しかしながら、例えば、変更対象動作Otar毎にプログラム書換えを行う観点からすれば、これに限らない。例えば、書換装置12は、複数の対象ECU62tarの電源オフの確認を同時に行うことも可能である。
(B3−5.その他)
上記実施形態では、変更対象動作Otarの選択を書換装置12のユーザが行った(図3のS6、S7)。換言すると、変更対象動作Otarを選択する変更対象動作選択部は、ユーザの操作を入力する操作入力部22であった。しかしながら、例えば、変更対象動作Otarを選択する観点からすれば、これに限らない。例えば、書換装置12自身で変更対象動作Otarを選択することも可能である。
12…プログラム書換装置 14…車両
20…信号入出力部(ネットワーク接続部)
22…操作入力部(変更対象動作選択部)
24…演算部(書換制御部) 26…記憶部
52…順番DB 54…組合せDB
56…プログラムDB(書換プログラムデータベース)
60…ネットワーク 62…ECU
62a…ゲートウェイECU 62can…書換候補ECU
62tar…対象ECU Op…優先順番
Otar…変更対象動作 P…プログラム
Pi…搭載プログラム Pr…書換プログラム

Claims (4)

  1. 車両の外部から前記車両内の電子制御装置(以下「ECU」という。)のネットワークに接続するネットワーク接続部と、プログラム書換えが必要なECU(以下「対象ECU」という。)を選択してプログラム書換えを行う書換制御部とを備えるプログラム書換装置であって、
    前記プログラム書換装置は、
    前記車両に搭載されている書換え可能な全ての前記ECUの識別記号に対応させて、書換えの優先順番を予め記憶した順番データベースと、
    プログラム書換えが必要な前記車両の変更対象動作毎に、前記対象ECUの候補である書換候補ECUの識別記号と、前記書換候補ECUの搭載プログラムの最新バージョン情報との組合せを書換候補情報として記憶する書換候補情報データベースと
    を備え、
    前記書換候補情報データベースに記憶される前記最新バージョン情報は、書換プログラムが前記書換候補情報データベースに記憶される時点でのバージョン情報であり、
    前記書換制御部は、
    プログラム書換えを実行する際、書換え可能な全ての前記ECUに対して故障コードを要求し、
    前記故障コードがないこと及び前記故障コードの記録があっても前記ネットワークに関する通信故障履歴を示すものでないことが確認できた場合に、前記書換え可能な全ての前記ECUから読み出した前記ECUの識別記号と、前記書換候補情報に含まれる前記書換候補ECUの識別記号とを照合して前記対象ECUを特定し、
    特定した前記対象ECU全てに対して、前記順番データベースに記憶されている前記優先順番で連続してプログラム書換えを実行し、
    前記順番データベースに記憶されている前記優先順番は、前記書換え可能な全ての前記ECUのうち、他のECUのデータを利用することが設定されているECUの順番が、利用相手のECUより先になるように設定され、
    前記ネットワークにおいてゲートウェイ機能を有する前記ECUであるゲートウェイ電子制御装置(以下「ゲートウェイECU」という。)は、通信が中継される他の前記対象ECUよりも後にプログラム書換動作が実行される
    ことを特徴とするプログラム書換装置。
  2. 請求項1に記載のプログラム書換装置において、
    前記プログラム書換装置は、書換プログラムを記憶する書換プログラムデータベースを備え、
    前記書換制御部は、
    前記ネットワークに含まれる書換え可能な全ての前記ECUから前記ECUの識別記号及び搭載プログラムの現在バージョン情報を対にして読み出し、
    読み出した前記現在バージョン情報と、当該現在バージョン情報に対応する前記最新バージョン情報とを比較して、前記最新バージョン情報と一致しない前記現在バージョン情報と対になる前記書換候補ECUを前記対象ECUとして抽出し、
    抽出した前記対象ECUに対して前記順番データベースに記憶されている前記優先順番でプログラム書換動作を連続して実行する
    ことを特徴とするプログラム書換装置。
  3. 請求項1又は2に記載のプログラム書換装置において、
    前記書換制御部は、
    記ゲートウェイECUに対して前記故障コードを要求し、
    前記ゲートウェイECUに前記故障コードがないこと及び前記故障コードの記録があっても前記通信故障履歴を示すものでないことが確認できた場合に、前記ゲートウェイECU以外の前記ECUに対して前記故障コードを要求し、
    前記ゲートウェイECU以外の前記ECUに前記故障コードがないこと及び前記故障コードの記録があっても前記通信故障履歴を示すものでないことを確認する
    ことを特徴とするプログラム書換装置。
  4. 車両の外部から前記車両内の電子制御装置(以下「ECU」という。)のネットワークに接続するネットワーク接続部と、プログラム書換えが必要なECU(以下「対象ECU」という。)を選択してプログラム書換えを行う書換制御部とを備えるプログラム書換装置におけるプログラム書換方法であって、
    前記プログラム書換装置は、
    前記車両に搭載されている書換え可能な全ての前記ECUの識別記号に対応させて、書換えの優先順番を予め記憶した順番データベースと、
    プログラム書換えが必要な前記車両の変更対象動作毎に、前記対象ECUの候補である書換候補ECUの識別記号と前記書換候補ECUの搭載プログラムの最新バージョン情報との組合せを書換候補情報として記憶する書換候補情報データベースと
    を備え、
    前記書換候補情報データベースに記憶される前記最新バージョン情報は、書換プログラムが前記書換候補情報データベースに記憶される時点でのバージョン情報であり、
    前記書換制御部は、
    プログラム書換えを実行する際、書換え可能な全ての前記ECUに対して故障コードを要求し、
    前記故障コードがないこと及び前記故障コードの記録があっても前記ネットワークに関する通信故障履歴を示すものでないことが確認できた場合に、前記書換え可能な全ての前記ECUから読み出した前記ECUの識別記号と、前記書換候補情報に含まれる前記書換候補ECUの識別記号とを照合して前記対象ECUを特定し、
    特定した前記対象ECU全てに対して、前記順番データベースに記憶されている前記優先順番で連続して前記プログラム書換えを実行し、
    前記順番データベースに記憶されている前記優先順番は、前記書換え可能な全ての前記ECUのうち、他のECUのデータを利用することが設定されているECUの順番が、利用相手のECUより先になるように設定され、
    前記ネットワークにおいてゲートウェイ機能を有する前記ECUであるゲートウェイ電子制御装置は、通信が中継される他の前記対象ECUよりも後にプログラム書換動作が実行される
    ことを特徴とするプログラム書換方法。
JP2015068949A 2015-03-30 2015-03-30 プログラム書換装置及びプログラム書換方法 Expired - Fee Related JP6147792B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015068949A JP6147792B2 (ja) 2015-03-30 2015-03-30 プログラム書換装置及びプログラム書換方法
DE112016000992.5T DE112016000992T5 (de) 2015-03-30 2016-03-22 Programmneuschreibvorrichtung und programmneuschreibverfahren
CN201680020073.4A CN107531198B (zh) 2015-03-30 2016-03-22 程序改写装置和程序改写方法
US15/562,153 US20180081671A1 (en) 2015-03-30 2016-03-22 Program rewriting device and program rewriting method
PCT/JP2016/058908 WO2016158547A1 (ja) 2015-03-30 2016-03-22 プログラム書換装置及びプログラム書換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015068949A JP6147792B2 (ja) 2015-03-30 2015-03-30 プログラム書換装置及びプログラム書換方法

Publications (2)

Publication Number Publication Date
JP2016188022A JP2016188022A (ja) 2016-11-04
JP6147792B2 true JP6147792B2 (ja) 2017-06-14

Family

ID=57240256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015068949A Expired - Fee Related JP6147792B2 (ja) 2015-03-30 2015-03-30 プログラム書換装置及びプログラム書換方法

Country Status (1)

Country Link
JP (1) JP6147792B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099830B2 (en) 2019-02-22 2021-08-24 Honda Motor Co., Ltd. Software updating apparatus, vehicle, and software updating method
US11429370B2 (en) 2019-02-22 2022-08-30 Honda Motor Co., Ltd. Software updating apparatus, vehicle, and software updating method
US11561789B2 (en) 2019-02-22 2023-01-24 Honda Motor Co., Ltd. Software update device, vehicle, and software update method
US11604638B2 (en) 2019-02-22 2023-03-14 Honda Motor Co., Ltd. Software update device, vehicle, and software update method

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6785720B2 (ja) 2017-05-29 2020-11-18 日立オートモティブシステムズ株式会社 車両用制御装置及びプログラム書き換え方法
JP6927809B2 (ja) * 2017-08-31 2021-09-01 矢崎総業株式会社 制御システム及び書き込み装置
JP7011983B2 (ja) * 2018-07-11 2022-01-27 日立Astemo株式会社 演算システム、演算装置
KR102540932B1 (ko) * 2018-11-16 2023-06-08 현대자동차주식회사 차량의 업데이트 제공 장치 및 컴퓨터 기록 매체
EP4122773A4 (en) * 2020-03-18 2023-04-26 Nissan Motor Co., Ltd. SOFTWARE UPDATE DEVICE, SOFTWARE UPDATE METHOD AND SOFTWARE UPDATE PROCESSOR PROGRAM

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4311067B2 (ja) * 2003-04-02 2009-08-12 株式会社デンソー データ書換方法及び電子制御装置
JP2008168649A (ja) * 2007-01-05 2008-07-24 Mazda Motor Corp 車両用制御システム
JP2011070307A (ja) * 2009-09-24 2011-04-07 Toyota Motor Corp プログラム更新装置
JP2012091755A (ja) * 2010-10-29 2012-05-17 Honda Motor Co Ltd 車両用プログラム書換えシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099830B2 (en) 2019-02-22 2021-08-24 Honda Motor Co., Ltd. Software updating apparatus, vehicle, and software updating method
US11429370B2 (en) 2019-02-22 2022-08-30 Honda Motor Co., Ltd. Software updating apparatus, vehicle, and software updating method
US11561789B2 (en) 2019-02-22 2023-01-24 Honda Motor Co., Ltd. Software update device, vehicle, and software update method
US11604638B2 (en) 2019-02-22 2023-03-14 Honda Motor Co., Ltd. Software update device, vehicle, and software update method

Also Published As

Publication number Publication date
JP2016188022A (ja) 2016-11-04

Similar Documents

Publication Publication Date Title
CN107531198B (zh) 程序改写装置和程序改写方法
JP6147792B2 (ja) プログラム書換装置及びプログラム書換方法
JP6147791B2 (ja) プログラム書換装置及びプログラム書換方法
JP6665728B2 (ja) 車載更新装置、車載更新システム及び通信装置の更新方法
US11029935B2 (en) On-board update device and on-board update system
WO2018070156A1 (ja) ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
US10936306B2 (en) Vehicle control system and software compatibility checking method
JP2017157004A (ja) プログラム更新システム、プログラム更新方法及びコンピュータプログラム
JP6486484B2 (ja) 車載制御装置、および車載制御装置の情報更新システム
JP6147790B2 (ja) プログラム書換装置及びプログラム書換方法
JP6465258B1 (ja) 制御装置、制御方法、およびコンピュータプログラム
JP6060782B2 (ja) 中継装置
WO2020080273A1 (ja) 車載更新装置、更新処理プログラム及び、プログラムの更新方法
CN111782234A (zh) 一种车载软件的刷写方法、控制装置、中央处理器及汽车
WO2018043107A1 (ja) 車載更新装置及び車載更新システム
US20220063646A1 (en) Onboard device, information generating method, non-transitory storage medium, and vehicle
JP7310570B2 (ja) 車載更新装置、プログラム及び、プログラムの更新方法
US20230254374A1 (en) Vehicle master device, update data verification method and computer program product
US11861347B2 (en) Server, update managing method, non-transitory storage medium, software updating device, center, and OTA master
WO2021205825A1 (ja) 車載装置、情報処理方法及びコンピュータプログラム
US11803364B2 (en) Server, software updating device, vehicle, software updating system, control method, and non-transitory storage medium
JP5034866B2 (ja) 車載制御装置
CN115129337A (zh) 控制装置和终端装置
JP2019200789A (ja) 電子制御装置及びセッション確立プログラム
US20220222054A1 (en) Center, update management method, and non-transitory storage medium

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170309

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170517

R150 Certificate of patent or registration of utility model

Ref document number: 6147792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees