(57)【要約】      （修正有）【課題】プログラム書換えを簡易に行うことが可能なプログラム書換装置及びプログラム書換方法を提供する。【解決手段】プログラム書換装置１２の書換制御部２４は、プログラム書換えを実行する際、書換え可能な全てのＥＣＵ６２についてネットワーク６０に関する通信故障履歴がないことを確認する。書換制御部２４は、いずれのＥＣＵ６２についても通信故障履歴がないことが確認できた場合、対象ＥＣＵ６２を特定した後、順番ＤＢ５２に記憶されている優先順番で対象ＥＣＵ６２に対してプログラム書換えを実行する。【選択図】図１
2016188022.tif 000002
【特許請求の範囲】
【請求項１】
車両の外部から前記車両内の電子制御装置（以下「ＥＣＵ」という。）のネットワークに接続するネットワーク接続部と、プログラム書換えが必要なＥＣＵ（以下「対象ＥＣＵ」という。）を選択してプログラム書換えを行う書換制御部とを備えるプログラム書換装置であって、
前記プログラム書換装置は、
前記車両に搭載されている書換え可能な全ての前記ＥＣＵの識別記号に対応させて、書換えの優先順番を予め記憶した順番データベースと、
プログラム書換えが必要な前記車両の変更対象動作毎に、前記対象ＥＣＵの候補である書換候補ＥＣＵの識別記号と、前記書換候補ＥＣＵの搭載プログラムの最新バージョン情報との組合せを書換候補情報として記憶する書換候補情報データベースと
を備え、
前記書換制御部は、
プログラム書換えを実行する際、書換え可能な全ての前記ＥＣＵについて前記ネットワークに関する通信故障履歴がないことを確認し、
いずれの前記ＥＣＵについても前記通信故障履歴がないことが確認できた場合、書換え可能な全ての前記ＥＣＵから読み出した前記ＥＣＵの識別記号と、前記書換候補情報に含まれる前記書換候補ＥＣＵの識別記号とを照合して前記対象ＥＣＵを特定し、
特定した前記対象ＥＣＵに対して、前記順番データベースに記憶されている順番でプログラム書換えを実行する
ことを特徴とするプログラム書換装置。
【請求項２】
請求項１に記載のプログラム書換装置において、
前記プログラム書換装置は、書換プログラムを記憶する書換プログラムデータベースを備え、
前記書換制御部は、
前記ネットワークに含まれる書換え可能な全ての前記ＥＣＵから前記ＥＣＵの識別記号及び搭載プログラムの現在バージョン情報を対にして読み出し、
読み出した前記現在バージョン情報と、当該現在バージョン情報に対応する前記最新バージョン情報とを比較して、前記最新バージョン情報と一致しない前記現在バージョン情報と対になる前記書換候補ＥＣＵを前記対象ＥＣＵとして抽出し、
抽出した前記対象ＥＣＵに対して前記順番データベースに記憶されている前記優先順番でプログラム書換動作を連続して実行する
ことを特徴とするプログラム書換装置。
【請求項３】
請求項１又は２に記載のプログラム書換装置において、
前記書換制御部は、前記ネットワークにおいてゲートウェイ機能を有する前記ＥＣＵであるゲートウェイ電子制御装置（以下「ゲートウェイＥＣＵ」という。）に対して前記通信故障履歴を問い合わせ、その後、前記ゲートウェイＥＣＵ以外の前記ＥＣＵに対して前記通信故障履歴を問い合わせることにより、前記通信故障履歴がないことを確認する
ことを特徴とするプログラム書換装置。
【請求項４】
請求項３に記載のプログラム書換装置において、
前記順番データベースに記憶されている前記優先順番は、前記書換え可能な全ての前記ＥＣＵのうち他のＥＣＵのデータ利用が設定されているＥＣＵが、利用相手のＥＣＵより先になるように設定され、
前記ゲートウェイＥＣＵは、通信が中継される他の前記対象ＥＣＵよりも後にプログラム書換動作が実行される
ことを特徴とするプログラム書換装置。
【請求項５】
車両の外部から前記車両内の電子制御装置（以下「ＥＣＵ」という。）のネットワークに接続するネットワーク接続部と、プログラム書換えが必要なＥＣＵ（以下「対象ＥＣＵ」という。）を選択してプログラム書換えを行う書換制御部とを備えるプログラム書換装置におけるプログラム書換方法であって、
前記プログラム書換装置は、
前記車両に搭載されている書換え可能な全ての前記ＥＣＵの識別記号に対応させて、書換えの優先順番を予め記憶した順番データベースと、
プログラム書換えが必要な前記車両の変更対象動作毎に、前記対象ＥＣＵの候補である書換候補ＥＣＵの識別記号と前記書換候補ＥＣＵの搭載プログラムの最新バージョン情報との組合せを書換候補情報として記憶する書換候補情報データベースと
を備え、
前記書換制御部は、
プログラム書換えを実行する際、書換え可能な全ての前記ＥＣＵについて前記ネットワークに関する通信故障履歴がないことを確認し、
いずれの前記ＥＣＵについても前記通信故障履歴がないことが確認できた場合、書換え可能な全ての前記ＥＣＵから読み出した前記ＥＣＵの識別記号と、前記書換候補情報に含まれる前記書換候補ＥＣＵの識別記号とを照合して前記対象ＥＣＵを特定し、
特定した前記対象ＥＣＵに対して、前記順番データベースに記憶されている前記優先順番で前記プログラム書換えを実行する
ことを特徴とするプログラム書換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両の外部から前記車両内の電子制御装置（以下「ＥＣＵ」という。）のネットワークに接続し、プログラム書換えが必要なＥＣＵを選択してプログラム書換えを行うプログラム書換装置及びプログラム書換方法に関する。
【背景技術】
【０００２】
近年の車両には多数のＥＣＵが搭載されているが、制御仕様の一部改良等に対応してプログラムのバージョンアップが行われることがある。その場合、関連する複数のＥＣＵに対してプログラム書換えが必要になる場合がある。
【０００３】
ところで、車両に搭載された複数のＥＣＵの多くは、通信によって相互に異常を監視する機能を有している。このため、プログラム書換えに当たっては、１つのＥＣＵのプログラムを書き換える場合に、外部のプログラム書換装置からの書込み要求と併せて、書換対象ＥＣＵと他のＥＣＵとの間で発生する通信異常を故障と判断しないように故障診断を停止する必要がある。さらに、書換え後にはこの停止解除のために、車両のイグニッションスイッチをオフした後に再オンさせる再起動操作が必要になる。
【０００４】
従って、車両をメンテナンスする販売店等での書換作業では、１回の書換えに対応する複数の書換対象ＥＣＵについて、１つずつ順番に書換えを行い、各ＥＣＵの書換えの都度イグニッションスイッチに対するオフ操作及び再オン操作を行う大変手間のかかる作業が行われていた。
【０００５】
これに対して、特許文献１のように、書換対象となる複数のＥＣＵの書換データを、ＣＤ−ＲＯＭ等の媒体又は移動通信網等を介して入手し、互いに協調制御を行う複数のＥＣＵについて、それぞれの書換えを行った後に、その複数のＥＣＵをまとめて再起動することも検討されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−０９１７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の方法では、書換作業自体は容易に行えるようになる。しかしながら、書換対象となる複数のＥＣＵの識別情報、プログラムの互換性情報、協調制御の対象ＥＣＵの組合せ等のデータを考慮して書換順番の指定を予め作成する必要がある。このため、１回の書換えの度にデータの作成に大変手間がかかる。
【０００８】
また、プログラム等のデータの量が大きいため、データに間違いがないか又は正常かを照合するためのセット情報を併せて設けること等の必要がある。さらには、書換対象となるＥＣＵのうち一部のＥＣＵで書換えの失敗があった場合に、再度の書換えを行うに当たり、正常な書換え終了部分との兼ね合いでの書換順番の配慮が必要になる。このため、修復に大変手間がかかる場合があった。
【０００９】
本発明は上記のような課題を考慮してなされたものであり、プログラム書換えを簡易に行うことが可能なプログラム書換装置及びプログラム書換方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るプログラム書換装置は、車両の外部から前記車両内の電子制御装置（以下「ＥＣＵ」という。）のネットワークに接続するネットワーク接続部と、プログラム書換えが必要なＥＣＵ（以下「対象ＥＣＵ」という。）を選択してプログラム書換えを行う書換制御部とを備えるものであって、前記プログラム書換装置は、前記車両に搭載されている書換え可能な全ての前記ＥＣＵの識別記号に対応させて、書換えの優先順番を予め記憶した順番データベースと、プログラム書換えが必要な前記車両の変更対象動作毎に、前記対象ＥＣＵの候補である書換候補ＥＣＵの識別記号と、前記書換候補ＥＣＵの搭載プログラムの最新バージョン情報との組合せを書換候補情報として記憶する書換候補情報データベースとを備え、前記書換制御部は、プログラム書換えを実行する際、書換え可能な全ての前記ＥＣＵについて前記ネットワークに関する通信故障履歴がないことを確認し、いずれの前記ＥＣＵについても前記通信故障履歴がないことが確認できた場合、書換え可能な全ての前記ＥＣＵから読み出した前記ＥＣＵの識別記号と、前記書換候補情報に含まれる前記書換候補ＥＣＵの識別記号とを照合して前記対象ＥＣＵを特定し、特定した前記対象ＥＣＵに対して、前記順番データベースに記憶されている順番でプログラム書換えを実行することを特徴とする。
【００１１】
本発明によれば、対象ＥＣＵに対するプログラム書換えの前に、対象ＥＣＵそれぞれに関する通信故障履歴がないことを確認する。これにより、プログラム書換装置が対象ＥＣＵと通信できない場合の理由が、プログラム書換装置を接続している車両が対象ＥＣＵを搭載していない車種であることなのか、又は対象ＥＣＵが搭載されているものの通信故障が発生していることであるのかを、プログラム書換えの開始前に確認することが可能となる。従って、通信故障を、対象ＥＣＵが非搭載であることと誤解することを抑制することができる。このため、プログラム書換えにおける手間を軽減することができる。
【００１２】
前記プログラム書換装置は、書換プログラムを記憶する書換プログラムデータベースを備え、前記書換制御部は、前記ネットワークに含まれる書換え可能な全ての前記ＥＣＵから前記ＥＣＵの識別記号及び搭載プログラムの現在バージョン情報を対にして読み出し、読み出した前記現在バージョン情報と、当該現在バージョン情報に対応する前記最新バージョン情報とを比較して、前記最新バージョン情報と一致しない前記現在バージョン情報と対になる前記書換候補ＥＣＵを前記対象ＥＣＵとして抽出し、抽出した前記対象ＥＣＵに対して前記順番データベースに記憶されている前記優先順番でプログラム書換動作を連続して実行してもよい。
【００１３】
本発明によれば、車両の変更対象動作で書換えが必要となるＥＣＵ（対象ＥＣＵ）の組合せに対応する優先順番でプログラム書換えを行う。このため、その車両に最適な順番でプログラム書換えを行うことが可能となる。
【００１４】
また、本発明によれば、現在バージョン情報と最新バージョン情報とが一致しない書換候補ＥＣＵである対象ＥＣＵに対して、変更対象動作毎の優先順番に従って最新バージョンのプログラムへの書換えを連続して実行する。このため、書換えが必要な書換候補ＥＣＵのみについて書換えを行うので、書換作業を効率よく行うことが可能となる。
【００１５】
以上によれば、市場に出回っている車両に対するプログラム書換えを、販売店等の整備事業者が行う場合も、整備事業者（作業者）による対象ＥＣＵの選定を誤ることがない。加えて、書換順番を特定する作業負担を軽減でき、適切な書換作業の容易な実施が可能になる。
【００１６】
また、プログラム書換え中に書換えを失敗した対象ＥＣＵが存在しても、再度書換作業を行うことにより、既に書換えが成功している対象ＥＣＵを除いて、書換えが終了していない対象ＥＣＵに対して書換えを行うことが可能となる。
【００１７】
前記書換制御部は、前記ネットワークにおいてゲートウェイ機能を有する前記ＥＣＵであるゲートウェイ電子制御装置（以下「ゲートウェイＥＣＵ」という。）に対して前記通信故障履歴を問い合わせ、その後、前記ゲートウェイＥＣＵ以外の前記ＥＣＵに対して前記通信故障履歴を問い合わせることにより、前記通信故障履歴がないことを確認してもよい。これにより、対象ＥＣＵと通信できない場合、ゲートウェイＥＣＵに問題があるのか、それとも対象ＥＣＵ自体又は他のＥＣＵに問題があるのかを確認することで、原因箇所の特定を容易化することが可能となる。
【００１８】
前記順番データベースに記憶されている前記優先順番は、前記書換え可能な全ての前記ＥＣＵのうち他のＥＣＵのデータ利用が設定されているＥＣＵが、利用相手のＥＣＵより先になるように設定され、前記ゲートウェイＥＣＵは、通信が中継される他の前記対象ＥＣＵよりも後にプログラム書換動作が実行されてもよい。これにより、複数のＥＣＵを連続して書き換える際に、連携する他のＥＣＵの書換えによる利用データの変更等の影響を受けることなく、ゲートウェイＥＣＵ及び他の対象ＥＣＵに対するプログラム書換えを連続的に行うことが可能となる。
【００１９】
本発明に係るプログラム書換方法は、車両の外部から前記車両内の電子制御装置（以下「ＥＣＵ」という。）のネットワークに接続するネットワーク接続部と、プログラム書換えが必要なＥＣＵ（以下「対象ＥＣＵ」という。）を選択してプログラム書換えを行う書換制御部とを備えるプログラム書換装置におけるプログラム書換方法であって、前記プログラム書換装置は、前記車両に搭載されている書換え可能な全ての前記ＥＣＵの識別記号に対応させて、書換えの優先順番を予め記憶した順番データベースと、プログラム書換えが必要な前記車両の変更対象動作毎に、前記対象ＥＣＵの候補である書換候補ＥＣＵの識別記号と、前記書換候補ＥＣＵの搭載プログラムの最新バージョン情報との組合せを書換候補情報として記憶する書換候補情報データベースとを備え、前記書換制御部は、プログラム書換えを実行する際、書換え可能な全ての前記ＥＣＵについて前記ネットワークに関する通信故障履歴がないことを確認し、いずれの前記ＥＣＵについても前記通信故障履歴がないことが確認できた場合、書換え可能な全ての前記ＥＣＵから読み出した前記ＥＣＵの識別記号と、前記書換候補情報に含まれる前記書換候補ＥＣＵの識別記号とを照合して前記対象ＥＣＵを特定し、特定した前記対象ＥＣＵに対して、前記順番データベースに記憶されている前記優先順番で前記プログラム書換えを実行してもよい。
【発明の効果】
【００２０】
本発明によれば、複数の前記対象ＥＣＵのプログラム書換えを簡易に行うことが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係るプログラム書換装置を含むプログラム書換システムを簡略的に示す概略構成図である。
【図２】前記実施形態における記憶部の構成を概念的に記載した図である。
【図３】前記実施形態においてプログラム書換えを行うフローチャートである。
【図４】前記実施形態における書換候補ＥＣＵ組合せ選択処理のフローチャート（図３のＳ４の詳細）である。
【図５】前記実施形態におけるプログラム連続書換処理のフローチャート（図３のＳ８の詳細）である。
【図６】前記実施形態におけるプログラム連続書換処理及び書換完了確認処理において前記プログラム書換装置及び各電子制御装置の通信状態及び動作状態を説明するための図である。
【図７】前記実施形態における書換完了確認処理のフローチャート（図３のＳ９の詳細）である。
【図８】比較例において、各対象電子制御装置の電源オフを順番に確認していく様子の一例を示す図である。
【図９】前記実施形態において、各対象電子制御装置の電源オフを順番に確認していく様子の一例を示す図である。
【発明を実施するための形態】
【００２２】
Ａ．一実施形態
［Ａ１．プログラム書換システム１０の構成］
（Ａ１−１．全体構成）
図１は、本発明の一実施形態に係るプログラム書換装置１２（以下「書換装置１２」ともいう。）を含むプログラム書換システム１０（以下「書換システム１０」又は「システム１０」ともいう。）を簡略的に示す概略構成図である。システム１０は、書換装置１２に加え、車両１４を含む。図１では、書換装置１２及び車両１４をそれぞれ１つずつ示しているが、それぞれ複数設けることも可能である。
【００２３】
（Ａ１−２．プログラム書換装置１２）
（Ａ１−２−１．プログラム書換装置１２の全体構成）
書換装置１２は、車両１４の第１〜第１０電子制御装置６２ａ〜６２ｊ（以下「第１〜第１０ＥＣＵ６２ａ〜６２ｊ」又は「ＥＣＵ６２ａ〜６２ｊ」という。）のうちプログラム書換対象のＥＣＵに記憶されたプログラムを書き換える（又は更新する）。以下では、ＥＣＵ６２ａ〜６２ｊをＥＣＵ６２と総称する。プログラム書換対象のＥＣＵ６２を「対象ＥＣＵ６２ｔａｒ」ともいう。ＥＣＵ６２に記憶されているプログラムを「搭載プログラムＰｉ」又は「プログラムＰｉ」ともいう。
【００２４】
図１に示すように、書換装置１２は、信号入出力部２０、操作入力部２２、演算部２４、記憶部２６及び表示部２８を有する。
【００２５】
信号入出力部２０（ネットワーク接続部）は、車両１４との間で信号の入出力を行う。信号入出力部２０は、データケーブル３０及びデータリンクコネクタ３２（以下「ＤＬＣ３２」ともいう。）を有し、車両１４の外部から車両１４内の通信ネットワーク６０に接続する。
【００２６】
操作入力部２２は、書換装置１２のユーザ（又は作業者）からの操作入力を受け付ける。本実施形態において、操作入力部２２は、車両１４の変更対象動作Ｏｔａｒを選択する変更対象動作選択部として機能する。ここにいう変更対象動作Ｏｔａｒは、例えば、車両１４の性能（燃費、旋回性能等）を向上するため又は車両１４における不具合を解消するために車両１４に施す動作をいう。
【００２７】
演算部２４（書換制御部）は、書換装置１２の各部を制御すると共に、車両１４の対象ＥＣＵ６２ｔａｒに対するプログラム書換えを制御する。演算部２４は、例えば、中央演算装置（ＣＰＵ）を含む。演算部２４の動作の詳細は、図２〜図９を参照して後述する。
【００２８】
記憶部２６は、図示しない揮発性メモリ及び不揮発性メモリを有し、演算部２４が実行する各種のプログラム及び各種のデータ並びに書換え用のプログラム（以下「書換プログラムＰｒ」又は「プログラムＰｒ」ともいう。）を記憶する。以下では、搭載プログラムＰｉと書換プログラムＰｒを合わせてプログラムＰともいう。
【００２９】
表示部２８は、プログラム書換え等に関する表示画面を表示する。表示部２８をタッチパネルとすることで、操作入力部２２と表示部２８とを統合してもよい。
【００３０】
（Ａ１−２−２．記憶部２６）
図２は、本実施形態における記憶部２６の構成を概念的に記載した図である。図２では、１つのＥＣＵ６２のみを示し、その他のＥＣＵ６２の図示を省略している。図１及び図２に示すように、記憶部２６は、プログラムＩＤ履歴データベース５０（以下「プログラムＩＤ履歴ＤＢ５０」ともいう。）と、書換順番データベース５２（以下「順番ＤＢ５２」ともいう。）と、書換組合せ情報データベース５４（以下「組合せＤＢ５４」ともいう。）と、書換プログラムデータベース５６（以下「プログラムＤＢ５６」ともいう。）と、プログラム書換え用リスト５８（以下「書換え用リスト５８」又は「リスト５８」ともいう。）とを有する。
【００３１】
プログラムＩＤ履歴ＤＢ５０は、プログラムＰの識別情報（以下「プログラムＩＤ」という。）の変更履歴を、ＥＣＵ６２の識別情報（以下「ＥＣＵ  ＩＤ」という。）及び日付と共に記憶する（図２参照）。本実施形態において、プログラムＩＤは、プログラム名とバージョン情報Ｉｖｅｒとを含む。例えば、プログラムＩＤは、「ＸＸＸＸ．００１」のように表記される。このうち「ＸＸＸＸ」がプログラム名に対応し、「００１」がバージョン情報Ｉｖｅｒである。また、ＥＣＵ  ＩＤは、各ＥＣＵ６２が制御する下位システムの識別情報（システムＩＤ）をも意味する。
【００３２】
順番ＤＢ５２は、車両１４に搭載されている書換え可能な全てのＥＣＵ６２の識別情報（ＥＣＵ  ＩＤ）に対応させて、書換えの優先順番Ｏｐを示す優先順番情報Ｉｐｏ（以下「順番情報Ｉｐｏ」ともいう。）を予め記憶する（図２参照）。本実施形態の順番情報Ｉｐｏは、複数車種の車両１４に搭載されるＥＣＵ６２の優先順番Ｏｐを含む。本実施形態の優先順番Ｏｐは、ＥＣＵ  ＩＤの並び順によって示される。このため、順番情報Ｉｐｏは、例えば、第１車種の車両１４に搭載されるＥＣＵ６２（図２においてＥＣＵ  ＩＤが例えばＸＸ、ＹＹ、ＺＺのもの）の優先順番Ｏｐと、第２車種の車両１４に搭載されるＥＣＵ６２（図２においてＥＣＵ  ＩＤが例えばＡＡ、ＢＢ、ＣＣ、ＤＤのもの）の優先順番Ｏｐをまとめて示す。或いは、順番情報Ｉｐｏは、単一車種の車両１４に搭載されるＥＣＵ６２の優先順番Ｏｐのみを示すものであってもよい。
【００３３】
図２の例では、並び順が優先順番Ｏｐ（以下「書換優先順番Ｏｐ」又は「書換順番Ｏｐ」ともいう。）を示しているが、例えば、「１：ＺＺ、２：ＹＹ、３：ＸＸ」のように、書換順番Ｏｐを順番情報Ｉｐｏに含めることも可能である。
【００３４】
また、書換順番Ｏｐは、対象ＥＣＵ６２ｔａｒのプログラム書換えを行う順番である。書換順番Ｏｐの更なる詳細については、図５のステップＳ４１と関連させて後述する。
【００３５】
組合せＤＢ５４（書換候補データベース）は、車両１４の変更対象動作Ｏｔａｒ毎に、書換候補のＥＣＵ６２（以下「書換候補ＥＣＵ６２ｃａｎ」又は「候補ＥＣＵ６２ｃａｎ」という。）の組合せを記憶する。より具体的には、組合せＤＢ５４は、組合せ番号Ｎｓｅｔと、変更対象動作Ｏｔａｒと、日付と、候補ＥＣＵ６２ｃａｎの識別記号（以下「書換候補ＥＣＵ  ＩＤ」又は「候補ＥＣＵ  ＩＤ」ともいう。）と、候補ＥＣＵ６２ｃａｎに対応するプログラムＩＤ（以下「書換候補プログラムＩＤ」又は「候補プログラムＩＤ」ともいう。）とを組み合せて記憶する（図２参照）。候補プログラムＩＤは、プログラム名とバージョン情報Ｉｖｅｒとを含む。以下では、組合せＤＢ５４に記憶される情報を書換候補情報Ｉｃａｎともいう。
【００３６】
書換プログラムＤＢ５６は、書換プログラムＰｒを記憶する。本実施形態のプログラムＤＢ５６は、同一のプログラム名を有する書換プログラムＰｒについて最新バージョンのものを記憶する。図２では、書換プログラムＰｒとしてプログラムＰ１、Ｐ２が示されている。書換え用リスト５８は、プログラム書換えのために一時的に作成されるリスト（記憶領域）である。リスト５８の利用方法は、図４、図５及び図７のフローチャート等を参照して後述する。
【００３７】
（Ａ１−３．車両１４）
図１に示すように、車両１４は、通信ネットワーク６０（以下「車内ネットワーク６０」又は「ネットワーク６０」ともいう。）を備える。ネットワーク６０は、通信線６４で接続された複数のＥＣＵ６２ａ〜６２ｊを備える。また、ネットワーク６０は、データリンクコネクタ６６（以下「ＤＬＣ６６」ともいう。）を介してプログラム書換装置１２に接続される。
【００３８】
各ＥＣＵ６２ａ〜６２ｊは、車両１４の各部を制御する。複数のＥＣＵ６２ａ〜６２ｊのうち第１ＥＣＵ６２ａは、ゲートウェイ機能を有する。すなわち、第１ＥＣＵ６２ａは、ネットワーク６０をプロトコルの異なるプログラム書換装置１２のネットワークと接続するためのネットワークノードである。以下では、第１ＥＣＵ６２ａをゲートウェイＥＣＵ６２ａともいう。なお、図１では、ゲートウェイＥＣＵ６２ａが１つのみ示されているが、複数のゲートウェイＥＣＵ６２ａを設けることも可能である。また、１つ又は複数のゲートウェイＥＣＵ６２ａは、図１に示すような位置に配置される制限はなく、ネットワーク６０内の任意の位置に配置されてもよい。
【００３９】
第２〜第１０ＥＣＵ６２ｂ〜６２ｊには、例えば、エンジン電子制御装置（以下「ＥＮＧ  ＥＣＵ」という。）と、アンチロックブレーキシステム電子制御装置（以下「ＡＢＳ  ＥＣＵ」という。）と、補助拘束システム電子制御装置（以下「ＳＲＳ  ＥＣＵ」という。）と、イモビライザ電子制御装置とが含まれる。ＥＮＧ  ＥＣＵは、図示しないエンジンの出力を制御する。ＥＮＧ  ＥＣＵは、エンジン回転数Ｎｅ［ｒｐｍ］を検出するエンジン回転数センサ（図示せず）と、車両１４の車速Ｖ［ｋｍ／ｈ］を検出する車速センサ（図示せず）とに接続されている。ＡＢＳ  ＥＣＵは、図示しないブレーキシステムの制御を行う。ＳＲＳ  ＥＣＵは、図示しないエアバッグの制御を行う。イモビライザＥＣＵは、図示しないイモビライザ装置の制御を行う。
【００４０】
各ＥＣＵ６２ａ〜６２ｊは、通信線６４を介して互いにデータ通信を行う。より具体的には、各ＥＣＵ６２ａ〜６２ｊは、特定のＥＣＵ６２（例えば、ＥＮＧ  ＥＣＵ）からの通信データ（例えば、エンジン回転数Ｎｅや車速Ｖのデータ）に基づいて、他のＥＣＵ６２（例えば、ＡＢＳ  ＥＣＵ、ＳＲＳ  ＥＣＵ及びイモビライザＥＣＵ）は車両１４の協調制御を行う。さらに、各ＥＣＵ６２ａ〜６２ｊは、相互に故障診断（通信データの異常検出）を行う。
【００４１】
第２〜第４ＥＣＵ６２ｂ、６２ｃ、６２ｄは、第１下位ネットワーク６８ａを形成する。第５〜第７ＥＣＵ６２ｅ、６２ｆ、６２ｇは、第２下位ネットワーク６８ｂを形成する。第８〜第１０ＥＣＵ６２ｈ、６２ｉ、６２ｊは、第３下位ネットワーク６８ｃを形成する。第１〜第３下位ネットワーク６８ａ〜６８ｃは、例えば、ＣＡＮ（Controller Area Network）を構成する。ここでのＣＡＮは、例えば、高速ＣＡＮとすることができる。なお、図１の例では、１０個のＥＣＵ６２ａ〜６２ｊの例を示しているが、ＥＣＵ６２の数は、これに限らず、例えば、３〜２００のいずれかの値であってもよい。
【００４２】
図１に示すように、第１ＥＣＵ６２ａは、信号入出力部７０、演算部７２及び記憶部７４を有する。図１では示していないが、第２〜第１０ＥＣＵ６２ｂ〜６２ｊも第１ＥＣＵ６２ａと同様の構成を有する。但し、具体的な仕様は、第１〜第１０ＥＣＵ６２ａ〜６２ｊで異なる。
【００４３】
各ＥＣＵ６２ａ〜６２ｊは、起動スイッチとしてのイグニッションスイッチ８０（以下「ＩＧＳＷ８０」という。）によりオン及びオフされる。より具体的には、各ＥＣＵ６２ａ〜６２ｊは、図示しない電力線及びこの電力線上に配置されたＩＧＳＷ８０を介してバッテリ８２（蓄電装置）と接続されている。
【００４４】
本実施形態のＩＧＳＷ８０は、ロータリ式であり、図示しないインスツルメントパネルに向かって左側から「オフ」、「ＡＣＣ」（アクセサリ）及び「オン」の位置を選択可能である。また、ＩＧＳＷ８０は、「オン」の位置からさらに右側（時計回り）に回すと、「ＳＴ」（エンジンスタート）の位置となり、エンジンが始動する。
【００４５】
本実施形態では、ＩＧＳＷ８０が「ＡＣＣ」及び「オン」の位置にあるとき、バッテリ８２から各ＥＣＵ６２への電力供給が行われる。ＩＧＳＷ８０が「オフ」の位置にあるとき、バッテリ８２から各ＥＣＵ６２への電力供給は、基本的に停止される。
【００４６】
なお、車両１４がいわゆるスマートスタート機能を有している場合、ＩＧＳＷ８０は、いわゆるスマートスタート機能で用いるプッシュスイッチであってもよい。
【００４７】
第１〜第１０ＥＣＵ６２ａ〜６２ｊは、自らの動作に関連して異常が発生した場合、故障履歴としての故障コード（ＤＴＣ）を自らの記憶部７４に記憶する。また、ゲートウェイＥＣＵ６２は、第２〜第１０ＥＣＵ６２ｂ〜６２ｊとの通信に関連して異常が発生した場合もＤＴＣを記憶部２６に記憶する。ここでの故障履歴には、通信に関する故障履歴（以下「通信故障履歴」という。）と、それ以外の故障履歴（以下「非通信故障履歴」ともいう。）とが含まれる。通信故障履歴及び非通信故障履歴を合わせて全般故障履歴ともいう。
【００４８】
例えば、第８ＥＣＵ６２ｈの手前（図１の地点８４）で断線が発生した場合、ゲートウェイＥＣＵ６２ａ及び第８ＥＣＵ６２ｈの両方が記憶部７４にＤＴＣを記憶する。但し、断線が発生している状態では、第８ＥＣＵ６２ｈは、ゲートウェイＥＣＵ６２ａと通信ができない。このため、書換装置１２は、第８ＥＣＵ６２ｈに記憶されたＤＴＣを読み出すことができない。また、各ＥＣＵ６２ａ〜６２ｊにおいてプログラム書換えが中断してしまった場合も、各ＥＣＵ６２ａ〜６２ｊは、通信故障履歴としてのＤＴＣを自らの記憶部７４に記憶する。
【００４９】
［Ａ２．プログラム書換え］
次に、本実施形態において、対象ＥＣＵ６２ｔａｒに記憶されている搭載プログラムＰｉの書換えについて説明する。
【００５０】
（Ａ２−１．事前準備）
特定の変更対象動作Ｏｔａｒについてプログラム書換えを行う前に、書換装置１２のユーザ（又は作業者）は、当該変更対象動作Ｏｔａｒに対応するデータを書換装置１２の記憶部２６に記憶させる。より具体的には、ユーザは、当該特定の変更対象動作Ｏｔａｒに対応する複数の書換プログラムＰｒをプログラムＤＢ５６（書換プログラムデータベース）に記憶させる。
【００５１】
また、ユーザは、変更対象動作Ｏｔａｒに対応させて書換プログラムＰｒそれぞれのプログラムＩＤ（バージョン情報Ｉｖｅｒを含む。）等をプログラムＩＤ履歴ＤＢ５０に記憶させる（図２参照）。さらに、ユーザは、書換プログラムＰｒの優先順番情報Ｉｐｏを順番ＤＢ５２に記憶させる（図２参照）。さらにまた、ユーザは、書換プログラムＰｒの組合せ番号Ｎｓｅｔ、候補ＥＣＵ  ＩＤ、候補プログラムＩＤ等を組合せＤＢ５４に記憶させる（図２参照）。例えば、書換装置１２のＤＬＣ３２を図示しないパーソナルコンピュータに接続し、当該パーソナルコンピュータから記憶部２６に上記データをコピーする。
【００５２】
なお、書換装置１２にコピーされるデータは、プログラム書換システム１０の管理者が作成し、図示しない外部サーバに保存する。当該外部サーバに保存されたデータは、前記パーソナルコンピュータにダウンロードされる。書換装置１２に外部サーバとの通信機能がある場合、書換装置１２は、外部サーバから直接データを取得することも可能である。
【００５３】
（Ａ２−２．実際の書換え）
（Ａ２−２−１．書換え時の全体的な流れ）
図３は、本実施形態においてプログラム書換えを行うフローチャートである。図３及び後述する図４、図５及び図７の処理は、主として、書換装置１２の演算部２４（書換制御部）が実行する。図３のステップＳ１において、ユーザが書換装置１２の電源スイッチ（図示せず）をオンにすると、書換装置１２が起動する。ステップＳ２において、書換装置１２は、選択メニューを表示部２８に表示させる。当該選択メニューとしては、例えば、プログラムＰの連続書換え、プログラムＰの個別書換え等を含む。連続書換えは、複数の対象ＥＣＵ６２ｔａｒのプログラムＰｉを連続して書き換えるためのメニューであり、個別書換えは、単一の対象ＥＣＵ６２ｔａｒのプログラムＰｉを書き換えるためのメニューである。
【００５４】
選択メニューのうちプログラムＰの連続書換えが選択されると（Ｓ３：ＹＥＳ）、ステップＳ４〜Ｓ１０においてプログラムＰの連続書換えを行う。プログラムＰの連続書換え以外のメニューが選択されると（Ｓ３：ＮＯ）、当該メニューを行う（図３では、当該メニューに対応するステップの図示を省略している。）。
【００５５】
ステップＳ４において、書換装置１２は、書換候補ＥＣＵ６２ｃａｎの組合せを選択する処理（以下「書換候補ＥＣＵ組合せ選択処理」又は「組合せ選択処理」という。）を実行する。ステップＳ４の詳細は、図４を参照して後述する。ステップＳ５において、書換装置１２は、組合せ選択処理の結果、選択可能な書換候補ＥＣＵ６２ｃａｎの組合せが存在するか否かを判定する。選択可能な組合せが存在する場合（Ｓ５：ＹＥＳ）、ステップＳ６に進む。
【００５６】
ステップＳ６において、書換装置１２は、選択可能な組合せを表示部２８に表示させる。なお、選択可能な組合せが１つしかない場合、当該１つの組合せを表示する。また、書換候補ＥＣＵ組合せ選択処理において選択可能と判断された組合せであっても、その組合せの中に、書換えの禁止設定がなされているＥＣＵ６２が含まれている場合、書換装置１２は、その旨を表示部２８に表示させてもよい。
【００５７】
選択可能な組合せが複数ある場合、書換装置１２は、組合せＤＢ５４に記憶された日付が新しいもののみを表示してもよい。これにより、各組合せに同じＥＣＵ６２に関する異なるバージョン情報Ｉｖｅｒが含まれている場合、より新しいバージョンのプログラムＰｒを先に書き換えることが可能となる。これにより、より旧いバージョンのプログラムＰｒについては書換えを省略することができる。
【００５８】
ステップＳ７において、書換装置１２は、操作入力部２２を介してユーザによりいずれかの組合せが選択されたか否かを判定する。いずれかの組合せが選択された場合（Ｓ７：ＹＥＳ）、ステップＳ８に進む。いずれかの組合せも選択されずに連続書換えの終了が選択された場合（Ｓ７：ＮＯ）、ステップＳ１０に進む。
【００５９】
ステップＳ８において、書換装置１２は、選択した組合せに含まれる複数の書換候補ＥＣＵ６２ｃａｎの中から実際にプログラム書換えを行うＥＣＵ６２（対象ＥＣＵ６２ｔａｒ）それぞれについてプログラム書換えを連続して行う処理（以下「プログラム連続書換処理」という。）を実行する。ステップＳ８の詳細は、図５を参照して後述する。ステップＳ９において、書換装置１２は、プログラム書換えの完了を確認する処理（以下「書換完了確認処理」という。）を実行する。ステップＳ９の詳細は、図７を参照して後述する。ステップＳ９の後、ステップＳ５に戻る。
【００６０】
ステップＳ５において選択可能な書換候補ＥＣＵ６２ｃａｎの組合せが存在しない場合（Ｓ５：ＮＯ）、ステップＳ１０において、書換装置１２は、プログラム書換えのために一時的に作成していた書換え用リスト５８を消去してプログラムＰの連続書換えを終了する。リスト５８については、図４のステップＳ３０等において後述する。
【００６１】
（Ａ２−２−２．書換候補ＥＣＵ組合せ選択処理（図３のＳ４の詳細））
図４は、本実施形態における書換候補ＥＣＵ組合せ選択処理のフローチャート（図３のＳ４の詳細）である。図４のステップＳ２１において、書換装置１２は、車内ネットワーク６０とのリンクを確立する。リンクの確立に際し、書換装置１２は、各ＥＣＵ６２ａ〜６２ｊにおけるセッションが終了するまで、所定時間待機する。
【００６２】
ステップＳ２２において、書換装置１２は、ゲートウェイＥＣＵ６２ａに対してＤＴＣを要求する。当該要求に対し、ゲートウェイＥＣＵ６２ａは、自らの記憶部７４に記憶されているＤＴＣがあれば、当該ＤＴＣを書換装置１２に送信する。ＤＴＣがなければ、ゲートウェイＥＣＵ６２ａは、ＤＴＣが記録されていない旨の回答を行う。或いは、ＤＴＣがない場合、ゲートウェイＥＣＵ６２ａは、応答しないことも可能である。
【００６３】
ステップＳ２３において、書換装置１２は、ゲートウェイＥＣＵ６２ａからの応答に基づいて、ゲートウェイＥＣＵ６２ａに通信故障がないか否かを判定する。例えば、書換装置１２は、ゲートウェイＥＣＵ６２ａからＤＴＣを受信した場合、当該ＤＴＣが通信故障履歴に関するものであるか否かを判定する。或いは、ＤＴＣが記録されていない旨の回答をゲートウェイＥＣＵ６２ａが出力する場合、書換装置１２は、ゲートウェイＥＣＵ６２ａから何らかの応答があるか否かに基づいて、ゲートウェイＥＣＵ６２ａに通信故障があるか否かを判定することも可能である。
【００６４】
ゲートウェイＥＣＵ６２ａに通信故障がない場合（Ｓ２３：ＹＥＳ）、ステップＳ２４において、書換装置１２は、ゲートウェイＥＣＵ６２ａ以外の他のＥＣＵ６２（第２〜第１０ＥＣＵ６２ｂ〜６２ｊ）に対してＤＴＣを要求する。当該要求に対し、第２〜第１０ＥＣＵ６２ｂ〜６２ｊは、自らの記憶部７４に記憶されているＤＴＣがあれば、書換装置１２に送信する。ＤＴＣがなければ、第２〜第１０ＥＣＵ６２ｂ〜６２ｊは、ＤＴＣが記録されていない旨の回答を行う。或いは、第２〜第１０ＥＣＵ６２ｂ〜６２ｊは、ＤＴＣが記録されていない場合、応答しないことも可能である。
【００６５】
ステップＳ２５において、書換装置１２は、他のＥＣＵ６２（第２〜第１０ＥＣＵ６２ｂ〜６２ｊ）からの応答に基づいて、他のＥＣＵ６２（第２〜第１０ＥＣＵ６２ｂ〜６２ｊ）に通信故障がないか否かを判定する。当該判定は、ステップＳ２３と同様に行うことができる。他のＥＣＵ６２（第２〜第１０ＥＣＵ６２ｂ〜６２ｊ）に通信故障がない場合（Ｓ２５：ＹＥＳ）、ステップＳ２７に進む。
【００６６】
ステップＳ２３においてゲートウェイＥＣＵ６２ａに通信故障がある場合（Ｓ２３：ＮＯ）又はステップＳ２５においてゲートウェイＥＣＵ６２ａ以外のＥＣＵ６２（第２〜第１０ＥＣＵ６２ｂ〜６２ｊ）のいずれかに通信故障がある場合（Ｓ２５：ＮＯ）、ステップＳ２６において、書換装置１２は、当該通信故障を通知するエラーメッセージを表示部２８に表示させる。
【００６７】
ステップＳ２７において、書換装置１２は、ネットワーク６０に含まれ且つプログラム書換えが可能な全てのＥＣＵ６２（第１〜第１０ＥＣＵ６２ａ〜６２ｊ）からＥＣＵ  ＩＤ（システムＩＤ）及び現在のプログラムＩＤ（以下「現在プログラムＩＤ」ともいう。）を読み出す。現在プログラムＩＤには、プログラム名と、現在のバージョン情報Ｉｖｅｒ（以下「現在バージョン情報Ｉｖｅｒ」ともいう。）が含まれる。
【００６８】
続くステップＳ２８〜Ｓ３０では、車両１４において必要とされる変更対象動作Ｏｔａｒを特定する。すなわち、ステップＳ２８において、書換装置１２は、ステップＳ２８で読み出した現在プログラムＩＤそれぞれに対応する最新のプログラムＩＤ（以下「最新プログラムＩＤ」ともいう。）をプログラムＩＤ履歴ＤＢ５０から抽出する。そして、書換装置１２は、抽出した最新プログラムＩＤを、ＥＣＵ  ＩＤ及び現在プログラムＩＤと組み合わせて保持する。
【００６９】
なお、本実施形態では、１つのＥＣＵ６２は、１つのプログラムＰｉのみを有している（図２参照）。このため、最新プログラムＩＤの抽出（Ｓ２８）に際しては、現在プログラムＩＤに代えて、ＥＣＵ  ＩＤを用いて最新プログラムＩＤを特定してもよい。
【００７０】
ステップＳ２９において、書換装置１２は、抽出した最新プログラムＩＤの組合せの一部又は全部と完全一致する候補プログラムＩＤの組合せ及び組合せ番号Ｎｓｅｔ（換言すると変更対象動作Ｏｔａｒ）を組合せＤＢ５４から抽出して保持する。これにより、車両１４において必要とされる１つ又は複数の変更対象動作Ｏｔａｒの候補を特定することができる。
【００７１】
ステップＳ３０において、書換装置１２は、車両１４においてプログラム書換えを要する変更対象動作Ｏｔａｒを特定してリスト５８に登録する。
【００７２】
すなわち、書換装置１２は、プログラム名が同じであるにもかかわらず、最新プログラムＩＤと一致しない現在プログラムＩＤが存在するか否かを組合せ（変更対象動作Ｏｔａｒ）毎に判定する。そして、書換装置１２は、最新プログラムＩＤと一致しない現在プログラムＩＤが存在する組合せ（変更対象動作Ｏｔａｒ）を、プログラム書換えを要する組合せ（変更対象動作Ｏｔａｒ）として抽出する。書換装置１２は、抽出した当該組合せに関する情報（組合せ番号Ｎｓｅｔ、ＥＣＵ  ＩＤ、現在プログラムＩＤ及び最新プログラムＩＤ）をリスト５８に登録する。このリスト５８に登録された組合せが、図３のステップＳ５における選択可能な組合せとなる。
【００７３】
一方、最新プログラムＩＤと一致しない現在プログラムＩＤが存在しない組合せについては、プログラム書換えが完了済みであり、プログラム書換えを要さないと判定可能である。このため、書換装置１２は、最新プログラムＩＤと一致しない現在プログラムＩＤが存在しない組合せに関する情報を消去する（又は保持を終了する）。なお、リスト５８に登録する組合せが１つもない場合、書換装置１２は、その旨を表示部２８に表示させる。
【００７４】
（Ａ２−２−３．プログラム連続書換処理（図３のＳ８の詳細））
図５は、本実施形態におけるプログラム連続書換処理のフローチャート（図３のＳ８の詳細）である。図６は、本実施形態におけるプログラム連続書換処理及び書換完了確認処理において書換装置１２及び各ＥＣＵ６２の通信状態及び動作状態を説明するための図である。上記のように、プログラム連続書換処理（図３のＳ８）は、図３のステップＳ７において選択可能な組合せの１つをユーザが選択した後に行われる。図６において、プログラム連続書換処理のうち実際の連続的なプログラム書換え（プログラム連続書換え（図５のＳ４８等））は、時点ｔ２〜ｔ３の間に実行され、書換完了確認処理は、時点ｔ３〜ｔ６の間に実行される。
【００７５】
図５のステップＳ４１において、書換装置１２は、ユーザが選択した組合せ（又は組合せ番号Ｎｓｅｔ若しくは変更対象動作Ｏｔａｒ）に対応する書換優先順番Ｏｐを順番ＤＢ５２の優先順番情報Ｉｐｏを用いて特定する。
【００７６】
順番ＤＢ５２における書換順番Ｏｐを設定する規則（又は基準）としては、例えば、次のものを用いる。
（規則１）  ゲートウェイＥＣＵ６２ａ（上位ＥＣＵ）については、それ以外のＥＣＵ６２ｂ〜６２ｊ（下位ＥＣＵ）よりも書換えの順番を後にする。
（規則２）  他のＥＣＵ６２の書換えに用いるデータを出力するＥＣＵ６２（データ提供ＥＣＵ）については、当該他のＥＣＵ６２よりも書換えの順番を後にする。
【００７７】
規則１に関し、ゲートウェイＥＣＵ６２ａのプログラムＰを先に書き換えてしまうと、ゲートウェイＥＣＵ６２ａは、再起動するまで通信仲介機能を停止することになる。このため、ゲートウェイＥＣＵ６２ａの書換えを後にする。
【００７８】
規則２に関し、データ提供ＥＣＵのプログラムＰを先に書き換えてしまうと、データ提供ＥＣＵは、再起動するまで他のＥＣＵ６２の書換えに必要なデータの提供を停止することになる。このため、データ提供ＥＣＵの書換えを後にする。なお、規則２に関連する場合として、例えば、他のＥＣＵ６２の書換えの開始条件として、車速Ｖがゼロ［ｋｍ／ｈ］であることが設定されており且つ車速Ｖはデータ提供ＥＣＵから他のＥＣＵ６２に提供される場合がある。
【００７９】
図５のステップＳ４２において、書換装置１２は、ステップＳ４１で特定した書換順番Ｏｐを用いて、候補ＥＣＵ  ＩＤ、現在プログラムＩＤ及び最新プログラムＩＤの組合せを並べ直す。並べ直す前の候補ＥＣＵ  ＩＤ、現在プログラムＩＤ及び最新プログラムＩＤの組合せは、図４のステップＳ２７〜Ｓ３０を介してリスト５８に登録されたものである。
【００８０】
ステップＳ４３において、書換装置１２は、並べ直した候補ＥＣＵ  ＩＤ、現在プログラムＩＤ及び最新プログラムＩＤの組合せそれぞれに整理番号Ｎｒｅｆを割り当てる。整理番号Ｎｒｅｆは、各組合せに関する書換え順を示す。
【００８１】
ステップＳ４４において、書換装置１２は、書換え順が来た整理番号Ｎｒｅｆを示す書換対象番号Ｎｔａｒ（以下「対象番号Ｎｔａｒ」ともいう。）をリセットしてゼロにする。ステップＳ４５において、書換装置１２は、書換対象番号Ｎｔａｒの現在値に１を足して新たな対象番号Ｎｔａｒとする。なお、あるＥＣＵ６２に対してプログラム書換えを終えた後、別のＥＣＵ６２に対してプログラム書換えを開始する際、ステップＳ４４の前又は後において、書換装置１２は、別のＥＣＵ６２におけるセッションが終了するまで所定時間待機する。
【００８２】
ステップＳ４６において、書換装置１２は、書換対象番号Ｎｔａｒと一致する整理番号Ｎｒｅｆを有する候補ＥＣＵ６２ｃａｎに対応する現在プログラムＩＤ（以下「対象プログラムＩＤ」ともいう。）を特定する。ステップＳ４７において、書換装置１２は、プログラム名が同じ対象プログラムＩＤと最新プログラムＩＤとを比較し、両者が一致するか否かを確認する。両者が一致する場合（Ｓ４７：ＹＥＳ）、既に搭載プログラムＰｉは最新バージョンである。この場合、書換対象番号Ｎｔａｒと一致する整理番号Ｎｒｅｆを有する候補ＥＣＵ６２ｃａｎに対してプログラム書換えを行わずにステップＳ４９に進む。
【００８３】
一方、両者が一致しない場合（Ｓ４７：ＮＯ）、搭載プログラムＰｉは最新バージョンではないため、搭載プログラムＰｉの書換えが必要である。この場合、候補ＥＣＵ６２ｃａｎは、対象ＥＣＵ６２ｔａｒとされる。そして、ステップＳ４８において、書換装置１２は、書換対象番号Ｎｔａｒと一致する整理番号Ｎｒｅｆを有する対象ＥＣＵ６２ｔａｒに対してプログラム書換えを実行する。
【００８４】
さらに、書換装置１２は、各ＥＣＵ６２に対してネットワーク通信停止要求信号Ｓｓｔｐ（以下「通信停止要求信号Ｓｓｔｐ」又は「停止要求信号Ｓｓｔｐ」ともいう。）の定期的送信を開始する。停止要求信号Ｓｓｔｐは、各ＥＣＵ６２ａ〜６２ｊ（対象ＥＣＵ６２ｔａｒ及びそれ以外のＥＣＵ６２）に対し、各ＥＣＵ６２間相互通信の停止及びＤＴＣ保存の禁止を要求する信号である。停止要求信号Ｓｓｔｐの送信は、プログラム書換えの実行開始前に開始される（図６参照）。
【００８５】
停止要求信号Ｓｓｔｐの送信は、所定の間隔（例えば、２〜４秒毎）に行われる。停止要求信号Ｓｓｔｐを受信した各ＥＣＵ６２ａ〜６２ｊは、ネットワーク６０における通信並びに通信関連のＤＴＣの保存及び出力を所定期間（例えば、４〜１０秒のいずれか）停止する。これにより、書換装置１２が停止要求信号Ｓｓｔｐの送信を継続している間、対象ＥＣＵ６２ｔａｒ以外のＥＣＵ６２は、ネットワーク通信を停止し続けると共に、通信関連のＤＴＣを保存しない。停止要求信号Ｓｓｔｐは、ネットワーク通信停止解除要求信号（解除要求信号Ｓｆｉｎ）が送信されるまでネットワーク通信の停止を要求するものとしてもよい。
【００８６】
なお、ステップＳ４８では、プログラム書換えを終了した対象ＥＣＵ６２ｔａｒの再起動を行わないことに留意されたい。対象ＥＣＵ６２ｔａｒの再起動は、書換完了確認処理（後述する図７のＳ５１〜Ｓ５５）において行われる。
【００８７】
図６では、時点ｔ１〜ｔ３の間において、書換装置１２が通信停止要求信号Ｓｓｔｐを定期的に送信する様子が示されている。停止要求信号Ｓｓｔｐを受信した各ＥＣＵ６２ａ〜６２ｊは、相互の通信を停止する通信停止状態となる。但し、実際にプログラム書換えが行われる対象ＥＣＵ６２ｔａｒについては、プログラム書換えのため、書換装置１２との間で通信が可能である。
【００８８】
ステップＳ４９において、書換装置１２は、書換対象番号Ｎｔａｒが整理番号Ｎｒｅｆの最大値Ｎｒｅｆ＿ｍａｘと等しいか否かを判定する。書換対象番号Ｎｔａｒが最大値Ｎｒｅｆ＿ｍａｘと等しくない場合（Ｓ４９：ＮＯ）、搭載プログラムＰｉが最新バージョンか否かの確認を終えていない候補ＥＣＵ６２ｃａｎがある。そのため、ステップＳ４５に戻る。書換対象番号Ｎｔａｒが最大値Ｎｒｅｆ＿ｍａｘと等しい場合（Ｓ４９：ＹＥＳ）、組合せの中の全ての候補ＥＣＵ６２ｃａｎが、搭載プログラムＰｉが最新バージョンか否かの確認を終えている。そこで、書換装置１２は、プログラム連続書換処理を終え、書換完了確認処理（図３のＳ９、図７）に進む。
【００８９】
（Ａ２−２−４．書換完了確認処理（図３のＳ９の詳細））
（Ａ２−２−４−１．全体的な流れ）
図７は、本実施形態における書換完了確認処理のフローチャート（図３のＳ９の詳細）である。ステップＳ５１において、書換装置１２は、各対象ＥＣＵ６２ｔａｒの電源オフをユーザに求める電源オフ要求を表示部２８に表示させる。本実施形態における電源オフ要求では、ＩＧＳＷ８０をオフにすることをユーザに求める。なお、通信停止要求信号Ｓｓｔｐは、図５のステップＳ４８の時点から定期的に送信され続けている。
【００９０】
ステップＳ５２において、書換装置１２は、各対象ＥＣＵ６２ｔａｒが電源オフであるか否かを確認する。具体的には、書換装置１２は、全ての対象ＥＣＵ６２ｔａｒに対して第１動作確認信号Ｓｃｎｆ１を送信する。そして、書換装置１２は、第１動作確認信号Ｓｃｎｆ１に対する応答がないことをもって各対象ＥＣＵ６２ｔａｒの電源オフを確認する。第１動作確認信号Ｓｃｎｆ１としては、例えば、バッテリ８２の電圧の読出しを要求するバッテリ電圧要求信号を用いることができる。なお、ＩＧＳＷ８０のオンオフ信号を書換装置１２に出力することにより、当該判定を行うことも可能である。本実施形態では、電源オフであるか否かの確認を、対象ＥＣＵ６２ｔａｒ１つ１つ順番に行う（詳細は、図８及び図９を参照して後述する。）。
【００９１】
いずれかの対象ＥＣＵ６２ｔａｒが電源オフでない場合（Ｓ５２：ＮＯ）、ステップＳ５２に戻る。但し、所定期間を経過しても、いずれかの対象ＥＣＵ６２ｔａｒが電源オフとならない場合、書換装置１２は、その旨を表示部２８に表示させてもよい。全ての対象ＥＣＵ６２ｔａｒが電源オフである場合（Ｓ５２：ＹＥＳ）、ステップＳ５３に進む。
【００９２】
ステップＳ５３において、書換装置１２は、各ＥＣＵ６２ａ〜６２ｊに対する通信停止要求信号Ｓｓｔｐの送信を終了する（図６の時点ｔ４）。ステップＳ５４において、書換装置１２は、各対象ＥＣＵ６２ｔａｒの電源再オンをユーザに求める電源再オン要求を表示部２８に表示させる。本実施形態における電源再オン要求では、ＩＧＳＷ８０を再オンにすることをユーザに求める。
【００９３】
ステップＳ５５において、書換装置１２は、全ての対象ＥＣＵ６２ｔａｒが電源オンになったか否か（換言すると、全ての対象ＥＣＵ６２ｔａｒが再起動したか否か）を判定する。具体的には、書換装置１２は、全ての対象ＥＣＵ６２ｔａｒに対して第２動作確認信号Ｓｃｎｆ２を送信する。そして、書換装置１２は、第２動作確認信号Ｓｃｎｆ２に対する応答があることをもって各対象ＥＣＵ６２ｔａｒの電源オンを確認する。
【００９４】
第２動作確認信号Ｓｃｎｆ２としては、各対象ＥＣＵ６２ｔａｒの現在プログラムＩＤを要求する現在プログラムＩＤ要求信号Ｓｒｅｑｐｉｄ（以下「ＩＤ要求信号Ｓｒｅｑｐｉｄ」ともいう。）を用いることができる。上記のように、現在プログラムＩＤは、プログラム名と現在バージョン情報Ｉｖｅｒを含む。このため、ＩＤ要求信号Ｓｒｅｑｐｉｄは、バージョン情報要求信号としても機能する。第２動作確認信号Ｓｃｎｆ２としてＩＤ要求信号Ｓｒｅｑｐｉｄを用いることで、後述するステップＳ５６の処理を円滑に行うことが可能である。なお、ＩＧＳＷ８０のオンオフ信号を書換装置１２に出力することにより、ステップＳ５６の判定を行うことも可能である。
【００９５】
いずれかの対象ＥＣＵ６２ｔａｒが電源オンでない場合（Ｓ５５：ＮＯ）、ステップＳ５５を繰り返す。すなわち、書換装置１２は、現在プログラムＩＤを受信していない対象ＥＣＵ６２ｔａｒに対して、ＩＤ要求信号Ｓｒｅｑｐｉｄを連続的に送信し続ける。但し、所定期間を経過しても、いずれかの対象ＥＣＵ６２ｔａｒが電源オンとならない場合、書換装置１２は、その旨を表示部２８に表示させてもよい。全ての対象ＥＣＵ６２ｔａｒが電源オンである場合（Ｓ５５：ＹＥＳ）、ステップＳ５６に進む。
【００９６】
ステップＳ５６において、書換装置１２は、全ての対象ＥＣＵ６２ｔａｒの現在プログラムＩＤが最新プログラムＩＤと一致するか否かを判定する。換言すると、書換装置１２は、各対象ＥＣＵ６２ｔａｒの搭載プログラムＰｉについて現在バージョン情報Ｉｖｅｒと最新バージョン情報Ｉｖｅｒとが一致するか否かを判定する。なお、ここでの最新プログラムＩＤは、リスト５８に登録されているものである。また、ステップＳ５５において、各対象ＥＣＵ６２ｔａｒの電源オンの確認をＩＤ要求信号Ｓｒｅｑｐｉｄ以外によって行う場合、ステップＳ５５、Ｓ５６の間において、各対象ＥＣＵ６２ｔａｒに対してＩＤ要求信号Ｓｒｅｑｐｉｄを送信して、各対象ＥＣＵ６２ｔａｒの現在プログラムＩＤを取得する。
【００９７】
全ての対象ＥＣＵ６２ｔａｒの現在プログラムＩＤが最新プログラムＩＤと一致する場合（Ｓ５６：ＹＥＳ）、書換装置１２は、ステップＳ５７において、書換え完了を表示部２８に表示させた後、書換完了確認処理を終了する。いずれかの対象ＥＣＵ６２ｔａｒの現在プログラムＩＤが最新プログラムＩＤと一致しない場合（Ｓ５６：ＮＯ）、ステップＳ５８において、書換装置１２は、その旨のエラーメッセージを表示部２８に表示させる。
【００９８】
（Ａ２−２−４−２．各対象ＥＣＵ６２ｔａｒが電源オフしたか否かの判定（図７のＳ５２）と表示部２８の表示（Ｓ５１、Ｓ５４）の関係）
上記のように、図７のステップＳ５２では、各対象ＥＣＵ６２ｔａｒの電源オフを順番に確認していく。この場合、各対象ＥＣＵ６２ｔａｒが電源オフであることを確実に確認できる。その一方、当該確認にかかる時間は比較的長くなるため、ＩＧＳＷ８０がオフにされてから再オンまでの時間が短いと、各対象ＥＣＵ６２ｔａｒが電源オフであるとの判定を確定することができなくなる。その場合、図７のステップＳ５２を繰り返すのみで、ステップＳ５３に進めなくなる可能性がある。
【００９９】
そこで、本実施形態では、表示部２８の表示（Ｓ５１、Ｓ５４）を用いることで、各対象ＥＣＵ６２ｔａｒが電源オフであるとの判定を確実に確定することができる。この点について、図８及び図９を用いてより具体的に説明する。
【０１００】
図８は、比較例において、各対象ＥＣＵ６２ｔａｒの電源オフを順番に確認していく様子の一例を示す図である。当該比較例（及び図９の例）では、対象ＥＣＵ６２ｔａｒの数は３個である。当該比較例では、本実施形態における表示部２８の表示（図７のＳ５１、Ｓ５４）を用いない。代わりに、書換装置１２のユーザ（又は作業者）は、整備マニュアル等から作業の情報を得る。図８の比較例では、ユーザによるＩＧＳＷ８０のオフ操作から再オン操作までの時間が短いため、第３対象ＥＣＵ６２ｔａｒ（例えば、第１ＥＣＵ６２ａ）が電源オフになったことを書換装置１２が確定することができない。
【０１０１】
すなわち、図８において、書換装置１２は、時点ｔ１１から第１対象ＥＣＵ６２ｔａｒ（例えば、第４ＥＣＵ６２ｄ）が電源オフであるか否かの判定を開始する。時点ｔ１２において、ユーザがＩＧＳＷ８０をオフにすると、各対象ＥＣＵ６２ｔａｒは電源オフとなる。時点ｔ１２から時点ｔ１３になると、書換装置１２は、第１対象ＥＣＵ６２ｔａｒが電源オフであるとの判定を確定する。次いで、書換装置１２は、第２対象ＥＣＵ６２ｔａｒ（例えば、第７ＥＣＵ６２ｇ）が電源オフであるか否かの判定を開始する。時点ｔ１３から時点ｔ１４になると、書換装置１２は、第２対象ＥＣＵ６２ｔａｒが電源オフであるとの判定を確定する。
【０１０２】
次いで、書換装置１２は、第３対象ＥＣＵ６２ｔａｒ（例えば、第１ＥＣＵ６２ａ）が電源オフであるか否かの判定を開始する。時点ｔ１５において、ユーザは、ＩＧＳＷ８０をオンにする。これにより、３つの対象ＥＣＵ６２ｔａｒは、全て再起動する。その一方、時点ｔ１５において、書換装置１２は、第３対象ＥＣＵ６２ｔａｒが電源オフであるとの判定を確定していない。このため、書換装置１２は、第３対象ＥＣＵ６２ｔａｒが電源オフでないため、図７のステップＳ５３に進めなくなる。
【０１０３】
図９は、本実施形態において、各対象ＥＣＵ６２ｔａｒの電源オフを順番に確認していく様子の一例を示す図である。図９の例では、全ての対象ＥＣＵ６２ｔａｒが電源オフになったとの判定が確定するまで、電源再オン要求（ＩＧＳＷオン要求）が表示部２８に表示されない。このため、作業者によるＩＧＳＷ８０のオフ操作から再オン操作までの時間を十分に取ることが可能となり、第３対象ＥＣＵ６２ｔａｒ（例えば、第１ＥＣＵ６２ａ）が電源オフになったことを書換装置１２が確定することができる。
【０１０４】
すなわち、図９において、書換装置１２は、時点ｔ２１から第１対象ＥＣＵ６２ｔａｒ（例えば、第４ＥＣＵ６２ｄ）が電源オフであるか否かの判定を開始する。この際、書換装置１２は、表示部２８に電源オフ要求を表示させる（図７のＳ５１）。
【０１０５】
時点ｔ２２において、ユーザがＩＧＳＷ８０をオフにすると、各対象ＥＣＵ６２ｔａｒは電源オフとなる。時点ｔ２２から時点ｔ２３になると、書換装置１２は、第１対象ＥＣＵ６２ｔａｒが電源オフであるとの判定を確定する。次いで、書換装置１２は、第２対象ＥＣＵ６２ｔａｒ（例えば、第７ＥＣＵ６２ｇ）が電源オフであるか否かの判定を開始する。時点ｔ２３から時点ｔ２４になると、書換装置１２は、第２対象ＥＣＵ６２ｔａｒが電源オフであるとの判定を確定する。
【０１０６】
次いで、書換装置１２は、第３対象ＥＣＵ６２ｔａｒ（例えば、第１ＥＣＵ６２ａ）が電源オフであるか否かの判定を開始する。図９の例では、表示部２８における電源オフ要求は表示部２８に表示され続けている。このため、図８の比較例と異なり、ユーザは、ＩＧＳＷ８０をオンにすることがない。なお、書換装置１２は、第１対象ＥＣＵ６２ｔａｒが電源オフであるとの判定を確定した時点等で、表示部２８の表示を電源オフ要求から待機要求に切り替えてもよい。
【０１０７】
時点ｔ２４から時点ｔ２５になると、書換装置１２は、第３対象ＥＣＵ６２ｔａｒが電源オフであるとの判定を確定する。これに伴い、書換装置１２は、表示部２８の表示を電源再オン要求に切り替える（図７のＳ５４）。時点ｔ２６において、作業者は、ＩＧＳＷ８０をオンにする。これにより、３つの対象ＥＣＵ６２ｔａｒは、全て再起動する。各対象ＥＣＵ６２ｔａｒが電源オンになると（図７のＳ５５：ＹＥＳ）、書換装置１２は、電源再オン要求の表示を終了する（時点ｔ２７）。
【０１０８】
以上より、図９の例において、書換装置１２は、全ての対象ＥＣＵ６２ｔａｒが電源オフになったとの判定を確定できたため、図７のステップＳ５３に進むことができる。
【０１０９】
［Ａ３．本実施形態における効果］
以上のような本実施形態によれば、対象ＥＣＵ６２ｔａｒに対するプログラム書換えの前に、対象ＥＣＵ６２ｔａｒのそれぞれに関するネットワーク６０の通信に関する通信故障履歴がないことを確認する（図４のＳ２３、Ｓ２５）。これにより、プログラム書換装置１２が対象ＥＣＵ６２ｔａｒと通信できない場合の理由が、書換装置１２を接続している車両１４が対象ＥＣＵ６２ｔａｒを搭載していない車種であることなのか、又は対象ＥＣＵ６２ｔａｒが搭載されているものの通信故障が発生していることであるのかを、プログラム書換えの開始前に確認することが可能となる。従って、通信故障を、対象ＥＣＵ６２ｔａｒが非搭載であることと誤解することを抑制することができる。このため、プログラム書換えにおける手間を軽減することができる。
【０１１０】
本実施形態において、書換装置１２は、プログラムＤＢ５６（書換プログラムデータベース）を備える（図１）。また、書換装置１２の演算部２４（書換制御部）は、ネットワーク６０に含まれる書換え可能な全てのＥＣＵ６２ａ〜６２ｊからＥＣＵ  ＩＤ及び現在プログラムＩＤ（搭載プログラムＰｉの現在バージョン情報Ｉｖｅｒを含む。）を対にして読み出す（図４のＳ２７）。演算部２４は、読み出した現在バージョン情報Ｉｖｅｒと、当該現在バージョン情報Ｉｖｅｒに対応する最新バージョン情報Ｉｖｅｒとを比較して、最新バージョン情報Ｉｖｅｒと一致しない現在バージョン情報Ｉｖｅｒと対になる書換候補ＥＣＵ６２ｃａｎを対象ＥＣＵ６２ｔａｒとして抽出する（図５のＳ４７）。演算部２４は、抽出した対象ＥＣＵ６２ｔａｒに対して順番ＤＢ５２に記憶されている優先順番Ｏｐでプログラム書換えを連続して実行する（図３のＳ８、図５）。
【０１１１】
本実施形態によれば、車両１４の変更対象動作Ｏｔａｒで書換えが必要となるＥＣＵ６２（対象ＥＣＵ６２ｔａｒ）の組合せに対応する優先順番Ｏｐでプログラム書換えを行う（図５）。このため、その車両１４に最適な順番でプログラム書換えを行うことが可能となる。
【０１１２】
また、本実施形態によれば、現在プログラムＩＤ（現在バージョン情報Ｉｖｅｒ）と最新プログラムＩＤ（最新バージョン情報Ｉｖｅｒ）とが一致しない書換候補ＥＣＵ６２ｃａｎである対象ＥＣＵ６２ｔａｒに対して、変更対象動作Ｏｔａｒ毎の優先順番Ｏｐに従って最新バージョンのプログラムＰへの書換えを連続して実行する（図５）。このため、書換えが必要な候補ＥＣＵ６２ｃａｎのみについて書換えを行うので、書換作業を効率よく行うことが可能となる。
【０１１３】
以上によれば、市場に出回っている車両１４に対するプログラム書換えを、販売店等の整備事業者が行う場合も、整備事業者（作業者）による対象ＥＣＵ６２ｔａｒの選定を誤ることがない。加えて、書換順番を特定する作業負担を軽減でき、適切な書換作業の容易な実施が可能になる。
【０１１４】
また、プログラム書換え中に書換えを失敗した対象ＥＣＵ６２ｔａｒが存在しても、再度書換作業を行うことにより、既に書換えが成功している対象ＥＣＵ６２ｔａｒを除いて、書換えが終了していない対象ＥＣＵ６２ｔａｒに対して書換えを行うことが可能となる。
【０１１５】
本実施形態において、書換装置１２の演算部２４（書換制御部）は、ゲートウェイＥＣＵ６２ａに対して通信故障履歴を問い合わせ（図４のＳ２３）、その後、ゲートウェイＥＣＵ６２ａ以外のＥＣＵ６２（第２〜第１０ＥＣＵ６２ａ〜６２ｊ）に対して通信故障履歴を問い合わせること（Ｓ２５）により、通信故障履歴がないことを確認する。これにより、対象ＥＣＵ６２ｔａｒと通信できない場合、ゲートウェイＥＣＵ６２ａに問題があるのか、それとも対象ＥＣＵ６２ｔａｒ自体又は他のＥＣＵ６２に問題があるのかを確認することで、原因箇所の特定を容易化することが可能となる。
【０１１６】
本実施形態において、書換装置１２の演算部２４（書換制御部）は、ゲートウェイＥＣＵ６２ａに対して、ＤＴＣ（通信故障履歴を含む全般故障履歴）を問い合わせ、ＤＴＣがないこと又はＤＴＣの中に通信故障履歴が含まれないことに基づいて通信故障履歴がないことを確認する（図４のＳ２３）。その後、演算部２４は、対象ＥＣＵ６２ｔａｒ自体に対してＤＴＣを問い合わせ、ＤＴＣがないこと又はＤＴＣの中に通信故障履歴が含まれないことに基づいて通信故障履歴がないことを確認する（Ｓ２５）。これにより、対象ＥＣＵ６２ｔａｒ及びゲートウェイＥＣＵ６２ａは、通信故障履歴とそれ以外の故障履歴を区別する必要がなくなるため、各ＥＣＵ６２の構成を簡素化することが可能となる。
【０１１７】
本実施形態において、順番ＤＢ５２に記憶されている優先順番Ｏｐは、書換え可能な全てのＥＣＵ６２ａ〜６２ｊのうち他のＥＣＵ６２（例えば、第２〜第１０ＥＣＵ６２ｂ〜６２ｊ）のデータ利用が設定されているＥＣＵが、利用相手のＥＣＵより先になるように設定される。また、ゲートウェイＥＣＵ６２ａは、通信が中継される他の対象ＥＣＵ６２ｔａｒよりも後にプログラム書換動作が実行される（図５のＳ４１）。これにより、複数のＥＣＵ６２を連続して書き換える際に、連携する他のＥＣＵ６２の書換えによる利用データの変更等の影響を受けることなく、ゲートウェイＥＣＵ６２ａ及び他の対象ＥＣＵ６２ｔａｒに対するプログラム書換えを連続的に行うことが可能となる。
【０１１８】
Ｂ．変形例
なお、本発明は、上記実施形態に限らず、本明細書の記載内容に基づき、種々の構成を採り得ることはもちろんである。例えば、以下の構成を採用することができる。
【０１１９】
［Ｂ１．適用対象］
上記実施形態では、システム１０を車両１４用に用いたが、これに限らず、例えば、その他の移動体（飛行機、船舶、ヘリコプタ等）であってもよい。
【０１２０】
［Ｂ２．プログラム書換システム１０の構成］
（Ｂ２−１．プログラム書換装置１２）
（Ｂ２−１−１．全般）
上記実施形態では、書換装置１２を車両１４の外部から接続するものとした（図１）。しかしながら、例えば、プログラム書換えの前に通信故障がないことを確認する観点（図４のＳ２３、Ｓ２５）からすれば、これに限らず、書換装置１２を車両１４に搭載することも可能である。
【０１２１】
上記実施形態では、書換装置１２と車内ネットワーク６０との通信を有線で行った（図１）。しかしながら、例えば、車内ネットワーク６０との通信の観点からすれば、これに限らず、無線で通信することも可能である。
【０１２２】
（Ｂ２−１−２．記憶部２６）
上記実施形態の順番ＤＢ５２は、複数車種のＥＣＵ６２の書換優先順番Ｏｐを一緒に記憶した（図２）。しかしながら、例えば、特定の変更対象動作Ｏｔａｒについて優先順番Ｏｐを特定する観点からすれば、これに限らない。例えば、順番ＤＢ５２は、単一車種のＥＣＵ６２の優先順番Ｏｐのみを記憶することも可能である。或いは、順番ＤＢ５２は、変更対象動作Ｏｔａｒ毎に優先順番Ｏｐを記憶してもよい。
【０１２３】
上記実施形態では、各ＤＢ５０、５２、５４、５６及びリスト５８を書換装置１２に設けた（図１）。しかしながら、例えば、書換装置１２が外部サーバとの通信機能を有する場合、ＤＢ５０、５２、５４、５６及びリスト５８のうちの１つ又は複数を前記外部サーバに設け、書換装置１２は、外部サーバから必要なデータを取得してもよい。
【０１２４】
（Ｂ２−２．車両１４）
上記実施形態では、車両１４がガソリン車であることを想定していたが、これに限らない。車両１４は、例えば、電動車両（ハイブリッド車、燃料電池車等を含む。）であってもよい。
【０１２５】
［Ｂ３．プログラム書換え］
（Ｂ３−１．全般）
上記実施形態では、プログラム名とバージョン情報Ｉｖｅｒとを一体化したプログラムＩＤの形で処理を行った。例えば、プログラムＩＤ履歴ＤＢ５０、組合せＤＢ５４等では、プログラムＩＤとしてデータを管理した（図２）。しかしながら、プログラム名とバージョン情報Ｉｖｅｒとを用いる観点からすれば、プログラム名とバージョン情報Ｉｖｅｒとを別々に管理することも可能である。
【０１２６】
上記実施形態では、ＥＣＵ  ＩＤとプログラムＩＤとを分けて設定した（図２）。しかしながら、例えば、各ＥＣＵ６２で用いられるプログラムＰが１種類のみである場合、ＥＣＵ  ＩＤとプログラムＩＤとを統合して用いることも可能である。
【０１２７】
（Ｂ３−２．対象ＥＣＵ組合せ選択処理（図３のＳ４、図４））
上記実施形態において、書換装置１２は、プログラムＩＤ履歴ＤＢ５０を用いて最新プログラムＩＤを特定した（図４のＳ２８）。しかしながら、例えば、候補ＥＣＵ６２ｃａｎにおける現在プログラムＩＤが最新バージョンであるか否かを確認する観点からすれば、これに限らない。
【０１２８】
例えば、書換装置１２は、組合せＤＢ５４に記憶されている候補プログラムＩＤを最新プログラムＩＤとして扱うことも可能である。この場合、同じプログラム名であるにもかかわらず、変更対象動作Ｏｔａｒ毎に最新バージョン情報Ｉｖｅｒが相違する可能性がある。この場合、書換装置１２は、特定の変更対象動作Ｏｔａｒ（第１変更対象動作）に関してプログラム書換えを行う場合、他の変更対象動作Ｏｔａｒ（第２変更対象動作）に関する候補プログラムＩＤと比較してもよい。そして、第２変更対象動作に関する候補プログラムＩＤの方が、第１変更対象動作に関する候補プログラムＩＤよりも新しいバージョンである場合、第２変更対象動作に関する候補プログラムＩＤを用いることができる。
【０１２９】
上記実施形態では、書換候補ＥＣＵ組合せ選択処理（図４）において、現在バージョン情報Ｉｖｅｒが最新バージョン情報Ｉｖｅｒと一致する書換候補ＥＣＵ６２ｃａｎの情報についてもリスト５８に登録した（図４のＳ３０）。そして、プログラム連続書換処理（図５）において、対象プログラムＩＤ（現在プログラムＩＤ）が最新プログラムＩＤと一致する場合（Ｓ４７：ＹＥＳ）、プログラム書換えを行わないこととした。
【０１３０】
しかしながら、例えば、現在バージョン情報Ｉｖｅｒが最新バージョン情報Ｉｖｅｒと一致しない書換候補ＥＣＵ６２ｃａｎに対してプログラム書換えを行う観点からすれば、これに限らない。例えば、図４のステップＳ３０においてリスト５８に登録する候補ＥＣＵ  ＩＤ（及び候補プログラムＩＤ）は、現在バージョン情報Ｉｖｅｒが最新バージョン情報Ｉｖｅｒと一致しない書換候補ＥＣＵ６２ｃａｎのみに限定してもよい。これにより、図５のステップＳ４７の処理を省略することが可能となる。なお、図４のステップＳ３０（図３のＳ４の一部）において組合せ番号Ｎｓｅｔを合わせてリスト５８に登録しておけば、その後の図３のステップＳ５では、登録した組合せ番号Ｎｓｅｔを用いて選択可能な組合せを判定することが可能となる。
【０１３１】
上記実施形態では、通信故障がないことを、ゲートウェイＥＣＵ６２ａとその他のＥＣＵ６２（ＥＣＵ６２ｂ〜６２ｊ）とに分けて判定した（図４のＳ２３、Ｓ２５）。しかしながら、例えば、ネットワーク６０全体又は対象ＥＣＵ６２ｔａｒにおける通信故障を判定する観点からすれば、これに限らない。例えば、図４のステップＳ２３、Ｓ２５を統合することも可能である。その際、通信故障がないことの確認を、全ＥＣＵ６２ａ〜６２ｊではなく、対象ＥＣＵ６２ｔａｒとゲートウェイＥＣＵ６２ａの組合せのみ又は対象ＥＣＵ６２ｔａｒのみに限ることも可能である。
【０１３２】
また、例えば、プログラム書換えを要する変更対象動作Ｏｔａｒを特定する観点からすれば、通信故障がないことの確認（図４のＳ２２〜Ｓ２５）を省略することも可能である。
【０１３３】
上記実施形態では、プログラム書換えを要する変更対象動作Ｏｔａｒを、プログラムＩＤの対比に基づいて特定した（図４のＳ２７〜Ｓ３０）。しかしながら、例えば、プログラム書換えを要する変更対象動作Ｏｔａｒを特定する観点からすれば、これに限らない。例えば、プログラム書換えを要する変更対象動作ＯｔａｒをＥＣＵ  ＩＤの対比に基づいて特定してもよい。車両１４毎にプログラム書換えの履歴を管理しており、プログラム書換えを要する変更対象動作Ｏｔａｒが予め特定可能な場合、書換装置１２自身で変更対象動作Ｏｔａｒを選択することも可能である。
【０１３４】
（Ｂ３−３．プログラム連続書換処理（図３のＳ８、図５のＳ４８））
上記実施形態では、ネットワーク通信停止要求信号Ｓｓｔｐを定期的に送信した。しかしながら、例えば、各ＥＣＵ６２を所望の状態に維持させる観点からすれば、送信する信号は、これに限らない。例えば、書換装置１２は、各ＥＣＵ６２に対して定期的に現状の状態（ＤＴＣの保存を禁止した状態と、各ＥＣＵ６２間相互通信の停止状態）の維持を要求する信号を送信することも可能である。
【０１３５】
（Ｂ３−４．書換完了確認処理（図３のＳ９、図７））
上記実施形態では、各対象ＥＣＵ６２ｔａｒを再起動させるため、書換装置１２のユーザによるＩＧＳＷ８０のオフ操作及び再オン操作を求めた（図７のＳ５１、Ｓ５４）。しかしながら、例えば、各対象ＥＣＵ６２ｔａｒを再起動させる観点からすれば、これに限らない。例えば、書換装置１２から各対象ＥＣＵ６２ｔａｒに対して再起動信号を出力することも可能である。
【０１３６】
上記実施形態では、プログラム書換え後の各対象ＥＣＵ６２ｔａｒの電源オフの確認（図７のＳ５２）を、対象ＥＣＵ６２ｔａｒ１つ１つについて順番に行った（図９）。しかしながら、例えば、変更対象動作Ｏｔａｒ毎にプログラム書換えを行う観点からすれば、これに限らない。例えば、書換装置１２は、複数の対象ＥＣＵ６２ｔａｒの電源オフの確認を同時に行うことも可能である。
【０１３７】
（Ｂ３−５．その他）
上記実施形態では、変更対象動作Ｏｔａｒの選択を書換装置１２のユーザが行った（図３のＳ６、Ｓ７）。換言すると、変更対象動作Ｏｔａｒを選択する変更対象動作選択部は、ユーザの操作を入力する操作入力部２２であった。しかしながら、例えば、変更対象動作Ｏｔａｒを選択する観点からすれば、これに限らない。例えば、書換装置１２自身で変更対象動作Ｏｔａｒを選択することも可能である。
【符号の説明】
【０１３８】
１２…プログラム書換装置              １４…車両
２０…信号入出力部（ネットワーク接続部）
２２…操作入力部（変更対象動作選択部）
２４…演算部（書換制御部）            ２６…記憶部
５２…順番ＤＢ                        ５４…組合せＤＢ
５６…プログラムＤＢ（書換プログラムデータベース）
６０…ネットワーク                    ６２…ＥＣＵ
６２ａ…ゲートウェイＥＣＵ            ６２ｃａｎ…書換候補ＥＣＵ
６２ｔａｒ…対象ＥＣＵ                Ｏｐ…優先順番
Ｏｔａｒ…変更対象動作                Ｐ…プログラム
Ｐｉ…搭載プログラム                  Ｐｒ…書換プログラム
【図１】
2016188022.tif 000003
【図２】
2016188022.tif 000004
【図３】
2016188022.tif 000005
【図４】
2016188022.tif 000006
【図５】
2016188022.tif 000007
【図６】
2016188022.tif 000008
【図７】
2016188022.tif 000009
【図８】
2016188022.tif 000010
【図９】
2016188022.tif 000011