(57)【要約】【課題】不揮発性メモリの書き換え時間を短縮する技術を提供する。【解決手段】書き換え可能な不揮発性メモリを備える電子制御装置（２０）は、データ取得部（５３）と書込判断部（５４）とを備える。書込判断部は、第１の取得部によって取得される第１の取得データ及び第２の取得部によって取得される第２の取得データのうち一方の取得データを不揮発性メモリに書き込み、且つ、他方の取得データと不揮発性メモリに書き込まれたデータである書込データとを比較することによって、不揮発性メモリに対象データが正常に書き込まれたか否かを判断する。【選択図】図１
2019101456.tif 000002
【特許請求の範囲】
【請求項１】
書き換え可能な不揮発性メモリを備える電子制御装置（２０）であって、
前記不揮発性メモリにおける書き換えの対象となるデータである対象データを送信する書き換え用装置（１０）から前記対象データを取得する、第１の取得部（５１）及び第２の取得部（５２）を有するデータ取得部（５３）であって、前記第１の取得部及び前記第２の取得部は前記対象データの取得を同時に開始するデータ取得部と、
前記対象データであって前記第１の取得部によって取得される第１の取得データ及び前記対象データであって前記第２の取得部によって取得される第２の取得データのうち一方の取得データを前記不揮発性メモリに書き込み、且つ、前記第１の取得データ及び前記第２の取得データのうち他方の取得データと前記不揮発性メモリに書き込まれたデータである書込データとを比較することによって、前記不揮発性メモリに前記対象データが正常に書き込まれたか否かを判断する書込判断部（５４）と、
を備える電子制御装置。
【請求項２】
請求項１に記載の電子制御装置であって、
前記書込判断部は、
前記書込データと前記他方の取得データとが一致しているか否かを判断する検証判断部（Ｓ４５０）と、
前記書込データと前記他方の取得データとが一致していると判断された場合に、前記不揮発性メモリに前記対象データが正常に書き込まれたと判断する検証特定部（Ｓ４６５）と、
を更に備える電子制御装置。
【請求項３】
請求項２に記載の電子制御装置であって、
前記検証判断部は、前記一方の取得データと前記他方の取得データとが一致しているか否かを更に判断し、
前記検証特定部は、前記書込データと前記他方の取得データとが一致していると判断され、且つ、前記一方の取得データと前記他方の取得データとが一致していると判断された場合に、前記不揮発性メモリに前記対象データが正常に書き込まれたと判断する
電子制御装置。
【請求項４】
請求項２又は請求項３に記載の電子制御装置であって、
前記第１の取得部は、前記第２の取得部が前記第２の取得データの取得を完了するよりも早く、前記第１の取得データの取得を完了するように構成されており、
前記書込判断部は、
前記一方の取得データとしての前記第１の取得データを前記不揮発性メモリに書き込む書込実行部（Ｓ４２０）
を更に備え、
前記検証判断部は、前記書込実行部によって書き込まれた前記書込データと、前記他方の取得データとしての前記第２の取得データとが一致しているか否かを判断する
電子制御装置。
【請求項５】
書き換え可能な不揮発性メモリを備える電子制御装置（２０）と、前記不揮発性メモリにおける書き換えの対象となるデータである対象データを送信する書き換え用装置（１０）と、を備える制御システム（１）であって、
前記電子制御装置は、
前記書き換え用装置から前記対象データを取得する第１の取得部（５１）及び前記第１の取得部とは異なる第２の取得部（５２）を有するデータ取得部（５３）であって、前記第１の取得部及び前記第２の取得部は前記対象データの取得を同時に開始するデータ取得部と、
前記対象データであって前記第１の取得部によって取得される第１の取得データ及び前記対象データであって前記第２の取得部によって取得される第２の取得データのうち一方の取得データを前記不揮発性メモリに書き込み、且つ、前記第１の取得データ及び前記第２の取得データのうち他方の取得データと、前記不揮発性メモリに書き込まれたデータである書込データとを比較することによって、前記不揮発性メモリに前記対象データが正常に書き込まれたか否かを判断する書込判断部（５４）と、を備える
制御システム。
【請求項６】
請求項５に記載の制御システムであって、
前記電子制御装置は、前記書き換え用装置から前記対象データを受信する第１の受信部（３１）と、前記書き換え用装置から前記対象データを受信する前記第１の受信部とは異なる第２の受信部（３２）と、を備え、
前記書き換え用装置は、前記第１の受信部及び第２の受信部のそれぞれに前記対象データを同時に送信し、
前記電子制御装置は、
前記第１の取得部が、前記第１の受信部にて受信された前記対象データを前記第１の取得データとして取得し、
前記第２の取得部が、前記第２の受信部にて受信された前記対象データを前記第２の取得データとして取得する
制御システム。
【請求項７】
請求項５に記載の制御システムであって、
前記電子制御装置は、前記書き換え用装置から前記対象データを受信する共通受信部（３４）を備え、
前記共通受信部は、前記第１の取得部及び前記第２の取得部のそれぞれと通信線（１５、１６）によって通信可能に接続されており、前記書き換え用装置から受信した前記対象データを、前記通信線を介して前記第１の受信部及び第２の受信部のそれぞれに同時に送信し、
前記電子制御装置は、
前記第１の取得部が、前記共通受信部にて受信された前記対象データを前記第１の取得データとして取得し、
前記第２の取得部が、前記共通受信部にて受信された前記対象データを前記第２の取得データとして取得する
制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、書き換え可能なメモリ（以下、不揮発性メモリ）を有する電子制御装置において、該不揮発性メモリのデータを書き換える技術に関する。
【背景技術】
【０００２】
特許文献１には、書き換えの対象となるデータであって書き換え用装置から受信した対象データを不揮発性メモリに書き込む、という技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６０９４５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術では、対象データが不揮発性メモリに書き込まれた後に該対象データと同一のデータを再度受信し、再度受信した対象データに基づいて、対象データの書き込みが正常に行われたか否かを検証している。つまり、特許文献１に記載の技術では、対象データを受信した後に検証のために該対象データを再度受信する必要があるので、不揮発性メモリの書き換え時間が長くなる、という問題が生じ得る。
【０００５】
本開示の１つの局面は、不揮発性メモリの書き換え時間を短縮する技術を提供する。
【課題を解決するための手段】
【０００６】
本開示の１つの局面は、書き換え可能な不揮発性メモリを備える電子制御装置（２０）である。電子制御装置は、データ取得部（５３）と、書込判断部（５４）と、を備える。データ取得部は、第１の取得部（５１）及び第１の取得部とは異なる第２の取得部（５２）を有する。第１の取得部及び第２の取得部は、不揮発性メモリにおける書き換えの対象となるデータである対象データを送信する書き換え用装置（１０）から対象データを取得する。第１の取得部（５１）及び第２の取得部（５２）は対象データの取得を同時に開始する。書込判断部は、対象データであって第１の取得部によって取得される第１の取得データ及び対象データであって第２の取得部によって取得される第２の取得データのうち一方の取得データを不揮発性メモリに書き込み、且つ、第１の取得データ及び第２の取得データのうち他方の取得データと、不揮発性メモリに書き込まれたデータである書込データとを比較することによって、不揮発性メモリに対象データが正常に書き込まれたか否かを判断する。
【０００７】
このような構成によれば、書き換え用装置から同時に取得を開始した第１の取得データ及び第２の取得データのうち、一方を用いて書き込みを行い、他方を用いて検証を行うので、特許文献１に記載のように、検証のための対象データを書き込みのための対象データを受信した後に再度受信すること、が不要になる。その結果、不揮発性メモリの書き換え時間を短縮することができる。
【０００８】
本開示のもう１つの局面は、書き換え可能な不揮発性メモリを備える電子制御装置（２０）と、前記不揮発性メモリにおける書き換えの対象となるデータである対象データを送信する書き換え用装置（１０）と、を備える制御システム（１）である。電子制御装置は、データ取得部（５３）と、書込判断部（５４）と、を備える。データ取得部は、不揮発性メモリにおける書き換えの対象となるデータである対象データを送信する書き換え用装置（１０）から対象データを取得する、第１の取得部（５１）及び第１の取得部とは異なる第２の取得部（５２）を有するデータ取得部（５３）であって、第１の取得部及び第２の取得部は対象データの取得を同時に開始する。書込判断部は、対象データであって第１の取得部によって取得される第１の取得データ及び対象データであって第２の取得部によって取得される第２の取得データのうち一方の取得データを不揮発性メモリに書き込み、且つ、第１の取得データ及び第２の取得データのうち他方の取得データと、不揮発性メモリに書き込まれた書込データとを比較することによって、不揮発性メモリに対象データが正常に書き込まれたか否かを判断する。
【０００９】
ここで「同時」とは、厳密な意味での同時に限るものではなく、上記と同様の効果を奏するのであれば厳密に同時でなくてもよい。
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態の車両ネットワークシステムの構成を示すブロック図。
【図２】マイコンの構成を示すブロック図。
【図３】書き換えを実行する場合の処理の流れを示す全体シーケンス図。
【図４】書き換え時間の短縮について説明する説明図。
【図５】書き換え装置側処理のフローチャート。
【図６】リプログ処理のフローチャート。
【図７】第１通信処理のフローチャート。
【図８】第２通信処理のフローチャート。
【図９】書込検証処理のフローチャート。
【図１０】ベリファイ処理のフローチャート。
【図１１】Ａｄｄｒ１及びＡｄｄｒ２を説明する説明図。
【図１２】第２実施形態の書き換えを実行する場合の処理の流れを示す全体シーケンス図。
【図１３】ベリファイ処理のフローチャート。
【図１４】Ａｄｄｒ１、Ａｄｄｒ２及びＡｄｄｒ３を説明する説明図。
【図１５】第３実施形態の書き換えを実行する場合の処理の流れを示す全体シーケンス図。
【図１６】変形例１の書き換えを実行する場合の処理の流れを示す全体シーケンス図。
【図１７】変形例１の書き換えを実行する場合の処理の流れを示す全体シーケンス図。
【図１８】他の実施形態（４ａ）の車両ネットワークシステムの構成を示すブロック図。
【図１９】他の実施形態（４ｂ）の車両ネットワークシステムの構成を示すブロック図。
【図２０】他の実施形態（４ｃ）について車両ネットワークシステムの構成の一例を示すブロック図。
【図２１】書き換え装置側処理のフローチャート。
【図２２】他の実施形態（４ｃ）について車両ネットワークシステムの構成の他の例を示すブロック図。
【図２３】書き換え装置側処理のフローチャート。
【図２４】他の実施形態（４ｄ）について車両ネットワークシステムの構成の他の例を示すブロック図。
【図２５】書き換え装置側処理のフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本開示の実施形態を説明する。
［１．第１実施形態］
［１−１．構成］
図１に示す車両ネットワークシステム（以下、車両ネットワーク）１は、例えば乗用車等といった車両に搭載されるシステムである。車両ネットワーク１は、電子制御装置（以下、ＥＣＵ）２０を備える。車両ネットワーク１は、例えば、車両のユーザによってディーラに車両が持ち込まれた際や、工場において車両が出荷される際等に、ＥＣＵ２０に記憶されているプログラム（以下、制御プログラム）を、書き換え装置１０から送信される新しい制御プログラムに書き換えるためのシステムである。車両ネットワーク１は、書き換え装置１０を備えていてもよい。
【００１２】
書き換え装置１０、及びＥＣＵ２０は、通信線１１及び通信線１２で接続されており、ＣＡＮによる通信を行う。本実施形態では、通信線１１及び通信線１２における通信速度は、等しく設定されている。
【００１３】
但し、これに限定されるものではなく、書き換え装置１０及びＥＣＵ２０は、通信線１１及び通信線１２で接続され、ＣＡＮ−ＦＤやＬＩＮ、ＦｌｅｘＲａｙ、Ｅｔｈｅｒｎｅｔ等による通信方式に従って通信を行うように構成され得る。ＣＡＮ、ＦｌｅｘＲａｙ、Ｅｔｈｅｒｎｅｔは、登録商標である。また、通信線１１及び通信線１２における通信速度は、異なるように設定され得る。
【００１４】
なお、図１では省略しているが、車両には多くの制御対象が搭載されており、車両ネットワーク１は、各制御対象を制御する複数のＥＣＵを備え得る。ＥＣＵ２０は、このような複数のＥＣＵのうちの１つである。書き換え装置１０、及びＥＣＵ２０は、車両ネットーク１を構成する構成装置、すなわち車両ネットワーク１のノードである。
【００１５】
書き換え装置１０は、ＥＣＵ２０を作動させるためのプログラムである制御プログラムを書き換える装置である。制御プログラムは、後述するようにＥＣＵ２０におけるＲＯＭ５６に記憶されている。
【００１６】
以下でいう対象データとは、ＥＣＵ２０に記憶されている制御プログラムを表すデータであって、書き換えの対象となるデータを表す。書き換え装置１０は、対象データをＥＣＵ２０へ送信する。
【００１７】
本実施形態では、書き換え装置１０は、書き換えの対象となる制御プログラムを複数に分割したデータそれぞれを上記対象データとして、ＥＣＵ２０へ順に送信する。具体的には、制御プログラムはＮ個に分割される。Ｎは制御プログラムを所定の大きさのデータに分割する際の数（以下、分割数）であり、自然数である。以下では、対象データそれぞれを、第ｉ対象データとも表す。ｉは１からＮまでの自然数である。
【００１８】
書き換え装置１０は、１つの対象データを送信した後に、該対象データのＲＯＭ５６への書込が正常に完了したことを表す通知（以下、書込正常通知）及び該対象データについての検証が正常に完了したことを表す通知（検証正常通知）をＥＣＵ２０から受信すると、次の対象データをＥＣＵ２０へ送信する。
【００１９】
なお、書き換え装置１０は、通信線１１及び通信線１２に、同時に、対象データを送信するように構成されている。以下でいう「同時」とは、厳密な意味での同時に限るものではなく、目的とする効果を奏するのであれば厳密に同時でなくてもよい。
【００２０】
ＥＣＵ２０は、エンジンやブレーキなどの車両に搭載された制御対象の制御を行う機能を有する電子制御装置である。ＥＣＵ２０は、図１及び図２に示すように、ＣＰＵ５５、ＲＯＭ５６、ＲＡＭ５７を備えたマイクロコンピュータ（以下、マイコン）４０と、トランシーバ部３０と、を備える。ＥＣＵ２０の各種機能は、ＣＰＵ５５がＲＯＭ５６に格納された制御プログラムを実行することにより実現される。また、この制御プログラムの実行により、制御プログラムに対応する方法が実行される。ＥＣＵ２０は、１つのマイコン４０を備えていてもよいし、複数のマイコン４０を備えていてもよい。
【００２１】
ＥＣＵ２０の各種機能を実現する手法はソフトウェアに限るものではなく、その一部又は全部の要素について、一つあるいは複数のハードウェアを用いて実現してもよい。例えば、上記機能がハードウェアである電子回路によって実現される場合、その電子回路は多数の論理回路を含むデジタル回路、又はアナログ回路、あるいはこれらの組合せによって実現してもよい。
【００２２】
トランシーバ部３０は、書き換え装置１０との間で、通信線１１及び通信線１２を介して、データの送受信を行う。本実施形態では、トランシーバ部３０は、第１トランシーバ３１と第２トランシーバ３２とを備える。第１トランシーバ３１と第２トランシーバ３２とは、同様に構成されている。第１トランシーバ３１は、書き換え装置１０との間で、通信線１１を介してデータの送受信を行い、第２トランシーバ３２は、書き換え装置１０との間で、通信線１１とは異なる通信線１２を介してデータの送受信を行う。
【００２３】
ＣＰＵ５５は、演算装置であり、ＲＡＭ５７は、ＣＰＵ５５の演算結果等を一時記憶するための揮発性メモリであり得る。ＲＡＭ５７は、図２に示すように、書き換え装置１０から通信線１１を介して送信されるデータであって第１トランシーバ３１によって受信されたデータが記憶される受信バッファ（以下、書込用バッファ）６１と、書き換え装置１０から通信線１２を介して送信されるデータであって第２トランシーバ３２によって受信されたデータが記憶される受信バッファ（以下、検証用バッファ）６２と、を備える。ＲＯＭ５６は、書き換え可能な記憶領域を有する不揮発性メモリである。ＲＯＭ５６には、上述の制御プログラムが記憶されている。
【００２４】
マイコン４０は、各種機能を実現する構成として、データ通信部５３と、書込判断部５４とを備える。データ通信部５３は、第１通信部５１及び第２通信部５２を備える。
第１通信部５１は第１トランシーバ３１を介して、書き換え装置１０から通信線１１に送信された対象データを取得する。また、第２通信部５２は第２トランシーバ３２を介して、書き換え装置１０から通信線１２に送信された対象データを取得する。上述のように、書き換え装置１０は通信線１１及び通信線１２に同時に対象データを送信開始するように構成されているので、第１通信部５１及び第２通信部５２は、書き換え装置１０からの対象データの取得を略同時に開始する。
【００２５】
第１通信部５１は後述する第１通信処理を実行することにより、書き換え装置１０から通信線１１を介して対象データを取得する。以下でいう第１の取得データとは、書き換え装置１０から通信線１１及び通信線１２に同時に送信が開始された対象データのうち、第１通信部５１によって取得される対象データを表す。第２通信部５２は、後述する第２通信処理を実行することにより、書き換え装置１０から通信線１２を介して対象データを取得する。以下でいう第２の取得データとは、書き換え装置１０から通信線１１及び通信線１２に同時に送信が開始された対象データのうち、第２通信部５２によって取得される対象データを表す。
【００２６】
書込判断部５４は、後述する書込検証処理を実行することにより、第１の取得データ及び第２の取得データのうちの一方の取得データをＲＯＭ５６に書き込む。以下でいう書込データとは、ＲＯＭ５６に書き込まれたデータを表す。また、書込判断部５４は、後述する書込検証処理を実行することにより、第１の取得データ及び第２の取得データのうちの他方の取得データと、書込データとを比較することによって、ＲＯＭ５６に対象データが正常に書き込まれたか否かを判断する。つまり、以下でいう検証とは、書き換え装置１０から受信した対象データと書込データとが一致しているか否かを確認すること、を表す。
【００２７】
［１−２．処理］
［１−２−１．全体のシーケンス図］
次に、車両ネットワーク１において、ＥＣＵ２０の制御プログラムの書き換えを実行する場合の処理の流れを、図３の全体シーケンス図を用いて説明する。書き換え装置１０、ＥＣＵ２０といった各装置における詳細な処理については、後述する。
【００２８】
図３では、上記分割数Ｎを２として、書き換えの対象となる制御プログラムを２個に分割し、ＥＣＵ２０へ順に送信する例を説明する。分割したデータのそれぞれは、上述のように、第１番目の対象データが第１対象データであり、第２番目の対象データが第２対象データである。なお、分割数Ｎは、２に限定されるものではなく、任意の自然数に設定され得る。
【００２９】
はじめに、Ａ１では、書き換え装置１０が、第１対象データを、通信線１１及び通信線１２に同時に送信する。同時に送信するとは、送信の開始が同時であることを表す。
次に、Ａ２では、第１通信部５１が第１対象データを受信する。第１通信部５１は、受信した第１対象データを書込用バッファ６１に記憶する。
【００３０】
続いて、Ａ３では、第２通信部５２が、第１通信部５１と略同時に、第１対象データを受信する。第２通信部５２は、受信した第１対象データを検証用バッファ６２に記憶する。
次に、Ａ４では、第１通信部５１が、書込判断部５４に、書込要求及び検証要求を出力する。書込要求は、第１通信部５１及び第２通信部５２の少なくとも一方から出力される要求であって、書込判断部５４に対象データをＲＯＭ５６に書き込ませる要求、を表す。検証要求は、第１通信部５１及び第２通信部５２の少なくとも一方から出力される要求であって、書込判断部５４に対象データがＲＯＭ５６に正常に書き込まれたか否かを検証させる要求、を表す。
【００３１】
本実施形態では、後述するように、第１通信部５１は、第１通信処理を実行することによって、第１通信部５１にて対象データが受信される毎に、書込要求及び検証要求を出力する。
【００３２】
続いて、Ａ５では、書込判断部５４が書込を行う。具体的には、書込判断部５４は、第１通信部５１からの書込要求に従って、書込用バッファ６１に記憶された第１対象データをＲＯＭ５６に書き込む。
【００３３】
次に、Ａ６では、書込判断部５４が検証を行う。具体的には、書込判断部５４は、第１通信部５１からの検証要求に従って、ＲＯＭ５６に書き込まれた第１対象データすなわち書込データと、検証用バッファ６２に記憶された第１対象データとが一致しているか否かを確認する。
【００３４】
続いて、Ａ７では、書込判断部５４が、第１対象データについての書込正常通知と検証正常通知とを、第１通信部５１を介して、書き換え装置１０へ出力する。なお、ここでいう書込正常通知とは、第１対象データがＲＯＭ５６に正常に書き込まれたことを表す通知である。また、ここでいう検証正常通知とは、書込データと、検証用バッファ６２に記憶された第１対象データとが一致していることを表す通知である。
【００３５】
続いて、Ａ８では、書き換え装置１０が、第２対象データを、通信線１１及び通信線１２に同時に送信する。
次に、Ａ９〜Ａ１４では、上記Ａ２〜Ａ７と同様に、第１通信部５１及び第２通信部５２によって第２対象データが受信される。また、書込判断部５４によって、第２対象データのＲＯＭ５６への書込、及び第２対象データの検証が実行される。そして、書込判断部５４から書き換え装置１０に、第１通信部５１を介して、第２対象データについての書込正常通知及び検証正常通知が出力される。
【００３６】
このようにして、本実施形態では、図４に示すように、書き換え装置１０から同時に取得を開始した対象データである第１の取得データ及び第２の取得データのうち、一方を用いて書き込みが行われ、他方を用いて検証が行われる。具体的には、第１の取得データを用いて書込が行われ、第２の取得データを用いて検証が行われる。つまり、図４の比較例に示すように、書込のために対象データを受信した後に、検証のために対象データを再度受信すること、が不要になる。つまり、本実施形態では、ＲＯＭ５６における制御プログラムの書き換え時間が短縮される。
【００３７】
［１−２−２．各装置が実行する処理］
次に、書き換え装置１０及びＥＣＵ２０がそれぞれ実行する処理について説明する。
（１）書き換え装置が実行する処理
書き換え装置１０がＥＣＵ２０に記憶された制御プログラムを書き換える際に実行する処理である書き換え装置側処理について、図５に示すフローチャートを用いて説明する。以下でいうリプログとは、リプログラムの略であり、ＥＣＵの制御プログラムの書き換えを表す。
【００３８】
書き換え装置１０は、はじめに、Ｓ５では、全ての通信線へ、具体的には通信線１１及び通信線１２へ、書き換えの対象となるＥＣＵであるＥＣＵ２０以外の他のＥＣＵ（以下、対象外ＥＣＵ）による制御通信を停止させる要求を送信する。また、書き換え装置１０は、該対象外ＥＣＵについての故障診断を停止させる要求を送信する。ＥＣＵ２０の制御プログラムの書き換え中に、通信線１１及び通信線１２に接続されている対象外ＥＣＵによって異常が検出されることを抑制し、且つ、対象外ＥＣＵによってＥＣＵ２０と書き換え装置１０との通信が妨げられないようにするためである。なお、本ステップは、車両ネットワーク１が１つのＥＣＵ２０のみを備える場合、省略されてもよい。
【００３９】
書き換え装置１０は、次に、Ｓ１０では、通信線１１を介して、書き換えの対象となるＥＣＵ２０へ、制御プログラムの書き換え要求（以下、リプログ要求）を送信する。
書き換え装置１０は、続くＳ１５では、カウンタｉを、１に設定することにより、初期化する。
【００４０】
書き換え装置１０は、次にＳ２０では、第ｉ番目の対象データ（以下、第ｉ対象データ）を、第１送信バッファに格納する。第１送信バッファは、書き換え装置１０が備える図示しないＲＡＭに設けられた記憶領域であり、通信線１１へ送信するデータを格納するための記憶領域である。
【００４１】
書き換え装置１０は、続くＳ２５では、第ｉ対象データを、第２送信バッファに格納する。第２送信バッファは、書き換え装置１０が備える図示しないＲＡＭに設けられた記憶領域であり、通信線１２へ送信するデータを格納するための記憶領域である。
【００４２】
書き換え装置１０は、次にＳ３０では、通信線１１に、第１送信バッファに格納されたデータ、つまり第ｉ対象データを送信する。
書き換え装置１０は、続いてＳ３５では、Ｓ３０の実行と略同時に、通信線１２に、第２送信バッファに格納されたデータ、つまり第ｉ対象データを送信する。
【００４３】
書き換え装置１０は、次にＳ４０では、通信線１１及び通信線１２それぞれにおいて、第ｉ対象データの送信が完了したか否かを判断する。ここで、書き換え装置１０は、第ｉ対象データの送信が完了した場合は、処理をＳ５０へ移行させる。一方、書き換え装置１０は、第ｉ対象データの送信が完了していない場合は、処理をＳ４５に移行させる。
【００４４】
書き換え装置１０は、Ｓ４５では、所定時間が経過したか否かを判断し、所定時間が経過していない場合は、処理をＳ４０に移行させる。書き換え装置１０は、所定時間が経過しても第ｉ対象データの送信が完了しない場合は、通信異常と判断し、処理をＳ６５へ移行させる。
【００４５】
書き換え装置１０は、Ｓ５０では、制御プログラムの書き換え対象であるＥＣＵ２０から、第ｉ対象データについての書込の結果及び検証の結果を受信したか否かを判断する。具体的には、書き換え装置１０は、第ｉ対象データについて、書込正常通知及び書込異常通知のいずれかと、検証正常通知及び検証異常通知のいずれかとを受信した場合に、第ｉ対象データについての書込の結果及び検証の結果を受信したと判断する。
【００４６】
ここで、書き換え装置１０は、第ｉ対象データについての書込の結果及び検証の結果を受信していない場合は、処理をＳ５５へ移行させ、該通知を受信するまで所定時間待機する。但し、書き換え装置１０は、所定時間が経過しても第ｉ対象データについての書込の結果及び検証の結果が受信されない場合は、通信異常と判断し、処理をＳ６５へ移行させる。
【００４７】
書き換え装置１０は、Ｓ６０では、第ｉ対象データについての書込正常通知及び検証正常通知を受信した場合は、処理をＳ７０へ移行させる。書き換え装置１０は、第ｉ対象データについての書込の検証結果が書込正常通知及び検証正常通知でない場合に、処理をＳ６５へ移行させる。
【００４８】
Ｓ６５では、書き換え装置１０は、書き換え装置１０のユーザに書込失敗を表す通知（以下、失敗通知）を送信し、書き換え装置側処理を終了する。ここでいう書き換え装置１０のユーザとは、ディーラや工場における、書き換え装置１０のユーザを表す。
【００４９】
書き換え装置１０は、Ｓ７０では、書き換え対象である制御プログラムを表す全ての対象データのうちＥＣＵ２０へ未送信の対象データが残っているか否かを判断する。ここで、書き換え装置１０は、未送信の対象データが残っている場合は、処理をＳ７５へ移行させ、カウンタｉを１増加させて処理をＳ２０へ移行させ、次の対象データ、つまりｉ＋１番目の対象データの送信を開始する。一方、書き換え装置１０は、全ての対象データの送信を完了した場合には、処理をＳ８０へ移行させる。
【００５０】
書き換え装置１０は、Ｓ８０では、書き換え装置１０のユーザに、書き換え対象であるプログラムを表す全ての対象データの書き込みが完了したことを表す通知（以下、完了通知）を送信し、書き換え装置側処理を終了する。
【００５１】
（２）ＥＣＵが実行する処理
プログラム書き換えの対象であるＥＣＵ２０が該ＥＣＵ２０に記憶された制御プログラムを書き換える際に実行する処理であるリプログ処理について、図６に示すフローチャートを用いて説明する。リプログ処理は、予め定められ周期で繰り返し実行される。
【００５２】
ＥＣＵ２０は、Ｓ１１０では、第１通信処理を実行する。第１通信処理は、ＥＣＵ２０における第１通信部５１が実行する。
ＥＣＵ２０は、次にＳ１２０では、第２通信処理を実行する。第２通信処理は、ＥＣＵ２０における第２通信部５２が実行する。
【００５３】
ＥＣＵ２０は、続いてＳ１３０では、書込検証処理を実行する。書込検証処理は、ＥＣＵ２０における書込判断部５４が実行する。
そして、ＥＣＵ２０は、リプログ処理を終了する。
【００５４】
（２−１）第１通信処理
続いて、ＥＣＵ２０が、上記リプログ処理におけるＳ１１０で実行する第１通信処理を図７のフローチャートを用いて説明する。
【００５５】
ＥＣＵ２０は、Ｓ２１０では、書き換え装置１０から対象データの受信があるか否かを判断する。ＥＣＵ２０は、受信がある場合に処理をＳ２２０へ移行させ、受信が無い場合に処理をＳ２５０へ移行させる。
【００５６】
ＥＣＵ２０は、Ｓ２２０では、書き換え装置１０から受信した対象データをＲＡＭ５７における書込用バッファ６１に格納する。
ＥＣＵ２０は、Ｓ２３０では、対象データの受信が完了したか否かを判断する。ＥＣＵ２０は、対象データの受信が完了している場合は処理をＳ２４０へ移行させ、対象データの受信が完了していない場合は処理をＳ２５０へ移行させる。
【００５７】
ＥＣＵ２０は、Ｓ２４０では、書込判断部５４に書込要求及び検証要求を出力する。具体的には、ＥＣＵ２０は、書込要求の要求状態を表すフラグ（以下、書込要求フラグ）をセットする。そして、ＥＣＵ２０は、第１通信処理を終了する。
【００５８】
なお、ＥＣＵ２０は、第１通信処理とは別の処理によって、第１通信部５１にて書き換え装置１０から対象データの受信が開始されてからの経過時間を計測している。経過時間は、対象データの受信が完了する毎に０に初期化される。
【００５９】
ここで、書き換え装置１０は、Ｓ２５０では、上述の経過時間が所定時間以上経過している場合に、通信異常が発生していると判断し、処理をＳ２６０へ移行させる。一方、書き換え装置１０は、経過時間が所定時間未満であり、対象データの受信が完了していない場合には、第１通信処理を終了する。つまり、ＥＣＵ２０は、対象データの受信が完了していない場合には、経過時間が所定時間以上となるまで待機した後に、処理をＳ２６０へ移行させる。
【００６０】
ＥＣＵ２０は、Ｓ２６０では、書き換え装置１０へ、後述する書込異常通知、及び検証異常通知を出力する。ＥＣＵ２０は、以上で第１通信処理を終了する。
（２−２）第２通信処理
続いて、ＥＣＵ２０が、上記リプログ処理におけるＳ１２０で実行する第２通信処理を図８のフローチャートを用いて説明する。
【００６１】
ＥＣＵ２０は、Ｓ３１０では、書き換え装置１０から対象データの受信があるか否かを判断する。ＥＣＵ２０は、受信がある場合に処理をＳ３２０へ移行させ、受信が無い場合に処理をＳ３５０へ移行させる。
【００６２】
ＥＣＵ２０は、Ｓ３２０では、書き換え装置１０から受信した対象データをＲＡＭ５７における検証用バッファ６２に格納する。
ＥＣＵ２０は、対象データの受信が完了したか否かを判断する。ＥＣＵ２０は、対象データの受信が完了している場合は処理をＳ３４０へ移行させ、対象データの受信が完了していない場合は処理をＳ３５０へ移行させる。
【００６３】
ＥＣＵ２０は、Ｓ３４０では、書込判断部５４に検証要求を出力する。具体的には、ＥＣＵ２０は、検証要求の要求状態を表すフラグ（以下、検証要求フラグ）をセットする。そして、ＥＣＵ２０は第２通信処理を終了する。
【００６４】
なお、ＥＣＵ２０は、第２通信処理とは別の処理によって、第２通信部５２にて書き換え装置１０から対象データが初めて受信されてからの経過時間を計測している。経過時間は、対象データの受信が完了する毎に０に初期化される。
【００６５】
ここで、書き換え装置１０は、Ｓ３５０では、上述の経過時間が所定時間以上経過している場合に、通信異常が発生していると判断し、処理をＳ３６０へ移行させる。一方、書き換え装置１０は、経過時間が所定時間未満であり、対象データの受信が完了していない場合には、第２通信処理を終了する。つまり、ＥＣＵ２０は、対象データの受信が完了していない場合には、経過時間が所定時間以上となるまで待機した後に、処理をＳ３６０へ移行させる。
【００６６】
ＥＣＵ２０は、Ｓ３６０では、書き換え装置１０へ、書込異常通知、及び検証異常通知を出力する。ＥＣＵ２０は、以上で第２通信処理を終了する。
（２−３）書込検証処理
続いて、ＥＣＵ２０が、上記リプログ処理におけるＳ１３０で実行する書込検証処理を図９のフローチャートを用いて説明する。
【００６７】
ＥＣＵ２０は、Ｓ４１０では、第１通信部５１及び第２通信部５２のうち少なくとも一方から書込要求が出力されているか否かを判断する。具体的には、書込要求フラグがセットされている場合に書込要求が出力されていると判断する。ＥＣＵ２０は、書込要求が出力されている場合は処理をＳ４１５へ移行させ、書込要求が出力されていない場合は書込検証処理を終了する。
【００６８】
ＥＣＵ２０は、Ｓ４１５では、対象データのＲＯＭ５６への書き込みが実施済みであるか否かを判断する。ここでいう書き込みが実施済みとは、書き込みが開始済みであることを表す。また、ここでいう対象データとは、第ｉ対象データであって、第１通信処理によって受信されて書込用バッファ６１に格納されている対象データである。ＥＣＵ２０は、書き込みが実施済みである場合には処理をＳ４２５へ移行させ、書き込みが実施済みで無い場合には処理をＳ４２０へ移行させる。
【００６９】
ＥＣＵ２０は、Ｓ４２０では、書込用バッファ６１に格納されている対象データをＲＯＭ５６における所定の領域に書き込む。
次に、ＥＣＵ２０は、Ｓ４２５では、書込用バッファ６１に格納されている対象データのＲＯＭ５６への書き込みが完了したか否か、を判断する。ＥＣＵ２０は、ＲＯＭ５６への書き込みが完了したと判断した場合に処理をＳ４３０へ移行させる。また、ＥＣＵ２０は、ＲＯＭ５６への書き込みが完了していないと判断した場合は、すなわち書込中である場合は、書込検証処理を終了する。
【００７０】
続いて、ＥＣＵ２０は、Ｓ４３０では、ＲＯＭ５６への書き込みが成功したか否かを判断する。ＥＣＵ２０は、ＲＯＭ５６への書き込みが成功したと判断された場合に処理をＳ４４５へ移行させ、ＲＯＭ５６への書き込みが失敗したと判断された場合に処理をＳ４３５へ移行させる。
【００７１】
ＥＣＵ２０は、Ｓ４３５では、書き換え装置１０に、書込異常通知、検証異常通知を送信する。書込異常通知は、対象データのＲＯＭ５６への書き込みが正常に実行されなかったことを表す通知である。検証異常通知は、書き込みの検証が正常に実行されなかったこと、又は検証の結果が異常であったこと、を表す通知である。
【００７２】
ＥＣＵ２０は、Ｓ４４０では、書込要求フラグ、及び検証要求フラグをリセットする。そして、ＥＣＵ２０は、書込検証処理を終了する。
ＥＣＵ２０は、Ｓ４４５では、第１通信部５１及び第２通信部５２のうち少なくとも一方から検証要求が出力されているか否かを判断する。具体的には、検証要求フラグがセットされている場合に、検証要求が出力されていると判断する。ＥＣＵ２０は、検証要求が出力されている場合は処理をＳ４５０へ移行させ、検証要求が出力されていない場合は書込検証処理を終了する。
【００７３】
ＥＣＵ２０は、Ｓ４５０では、ベリファイ処理を実行する。ベリファイ処理は、検証を行うための処理である。ここでは、ベリファイ処理では、書き換え装置１０から受信した対象データと書込データとが一致しているときに、「一致」が処理結果として出力される。一方、ベリファイ処理では、書き換え装置１０から受信した対象データと書込データとが一致していないときに、「不一致」が処理結果として出力される。
【００７４】
ＥＣＵ２０は、続くＳ４５５では、ベリファイ処理による処理結果が「一致」であるか否かを判断する。ＥＣＵ２０は、ベリファイ処理による処理結果が「一致」である場合に処理をＳ４６５へ移行させ、「不一致」である場合に処理をＳ４６０へ移行させる。
【００７５】
ＥＣＵ２０は、Ｓ４６０では、書き換え装置１０に、書込異常通知及び検証異常通知を出力し、処理をＳ４７０へ移行させる。
ＥＣＵ２０は、Ｓ４６５では、書き換え装置１０に、書込正常通知及び検証正常通知を出力し、処理をＳ４７０へ移行させる。
【００７６】
ＥＣＵ２０は、Ｓ４７０では、書込要求フラグ及び検証要求フラグをリセットする。以上で、ＥＣＵ２０は、書込検証処理を終了する。
続いて、ＥＣＵ２０が、書込検証処理のＳ４５０で実行するベリファイ処理について、図１０のフローチャート、及び図１１を用いて説明する。
【００７７】
ＥＣＵ２０は、Ｓ５００では、図１１に示すように、検証の対象となる書込データについてのＲＯＭ５６における先頭アドレスを、第１の先頭アドレス（以下、Ａｄｄｒ１）の初期値として設定する。
【００７８】
次に、ＥＣＵ２０は、Ｓ５１０では、図１１に示すように、検証の対象となる書込データのサイズを、チェックサイズ（以下、ＣＳ）として設定する。ＣＳは、CheckSizeの略である。
【００７９】
続いて、ＥＣＵ２０は、Ｓ５２０では、図１１に示すように、検証用バッファ６２に格納された対象データであって検証を実施するためのデータについての検証用バッファ６２における先頭アドレスを、第２の先頭アドレス（以下、Ａｄｄｒ２）の初期値として設定する。
【００８０】
次に、ＥＣＵ２０は、Ｓ５３０では、処理結果を「一致」に初期設定する。
続いて、ＥＣＵ２０は、Ｓ５４０では、Ａｄｄｒ１から４バイトのデータと、Ａｄｄｒ２から４バイトのデータとが、一致するか否かを判断する。ＥＣＵ２０は、これらのデータが一致する場合に処理をＳ５６０へ移行させ、これらのデータが一致しない場合に処理をＳ５５０へ移行させる。
【００８１】
ＥＣＵ２０は、Ｓ５５０では、処理結果を「不一致」に設定し、ベリファイ処理を終了する。
ＥＣＵ２０は、Ｓ５６０では、ＣＳから４バイト減算した値を新たなＣＳとして設定する。
【００８２】
次に、ＥＣＵ２０は、Ｓ５７０では、ＣＳが０であるか否かを判断する。ＥＣＵ２０は、ＣＳが０である場合は、ベリファイ処理を終了し、ＣＳが０でない場合は処理をＳ５８０へ移行させる。
【００８３】
ＥＣＵ２０は、Ｓ５８０では、Ａｄｄｒ１に４バイト加算した値を新たなＡｄｄｒ１として設定し、Ａｄｄｒ２に４バイト加算した値を新たなＡｄｄｒ２として設定する。そして、ＥＣＵ２０は、処理をＳ５４０へ移行させ、ＣＳが０になるまで、Ｓ５４０以降の処理を繰り返し実行する。
【００８４】
［１−３．効果］
以上詳述した第１実施形態によれば、以下の効果を奏する。
（１ａ）ＥＣＵ２０は、不揮発性メモリとしてのＲＯＭ５６を備える。ＥＣＵ２０は、データ通信部５３と、書込判断部５４とを備える。データ通信部５３は、第１通信部５１と、第２通信部５２と有する。第１通信部５１と第２通信部５２とは、書き換え装置１０から対象データを取得する。対象データは、書き換え装置１０から送信されるデータであって、ＲＯＭ５６における書き換えの対象となるデータである。第１通信部５１及び第２通信部５２は、対象データの取得を同時に開始するように構成されている。
【００８５】
書込判断部５４は、第１の取得データ及び第２の取得データのうち、一方の取得データを不揮発性メモリに書き込む。且つ、書込判断部５４は、第１の取得データ及び第２の取得データのうち他方の取得データと書込データとを比較することによって、不揮発性メモリに対象データが正常に書き込まれたか否かを判断する。
【００８６】
その結果、ＥＣＵ２０にて同時に取得された第１の取得データ及び第２の取得データのうち、第１の取得データを用いて書き込みが行われ、第２の取得データを用いて検証が行われるので、書き込みのために対象データを受信した後に検証のために対象データを再度受信すること、が不要になる。つまり、不揮発性メモリの書き換え時間を短縮することができる。
【００８７】
また、その結果、仮に、書込用バッファ６１に対象データが格納されてから該対象データがＲＯＭ５６に書き込まれるまでの間にＲＡＭ５７における書込用バッファ６１でデータ化けが生じて該対象データに異常が生じたとしても、別のバッファである検証用バッファ６２に格納された対象データを検証に用いるので、異常を検出することができる。
【００８８】
（１ｂ）書込判断部５４は、Ｓ４５０では、書込データと第１の取得データ及び第２の取得データのうち他方の取得データとが一致しているか否かを判断する。また、書込判断部５４は、Ｓ４６５では、書込データと他方の取得データとが一致していると判断された場合に、不揮発性メモリに対象データが正常に書き込まれたと判断する。その結果、第１の取得データに基づく書込データと、第２の取得データに基づく対象データとの一致、を確認することができる。
【００８９】
（１ｃ）車両ネットワーク１は、書き換え装置１０と、ＥＣＵ２０と、を備える。ＥＣＵ２０は、書き換え可能な不揮発性メモリであるＲＯＭ５６を備える。書き換え装置１０は、対象データをＥＣＵ２０へ送信する。ＥＣＵ２０は、（１ａ）と同様に構成される。その結果、車両ネットワーク１において、不揮発性メモリの書き換え時間を短縮することができる。
【００９０】
（１ｄ）車両ネットワークにおいて、ＥＣＵ２０は、第１トランシーバ３１と、第２トランシーバ３２とを備える。第１トランシーバ３１は、書き換え装置１０から対象データを受信する。第２トランシーバ３２は、書き換え装置１０から対象データを受信する、第１トランシーバ３１とは異なる構成である。書き換え装置１０は、第１トランシーバ３１及び第２トランシーバ３２のそれぞれに対象データを同時に送信する。
【００９１】
ＥＣＵ２０は、第１通信部５１が、第１トランシーバ３１にて受信された対象データを第１の取得データとして取得する。また、第２通信部５２が、第２トランシーバ３２にて受信された対象データを第２の取得データとして取得する。
【００９２】
その結果、車両ネットワーク１において、ＥＣＵ２０では、第１通信部５１及び第２通信部５２といった２つの構成において、対象データを同時に受信することが可能となる。
［２．第２実施形態］
［２−１．第１実施形態との相違点］
第２実施形態は、基本的な構成は第１実施形態と同様であるため、相違点について以下に説明する。なお、第１実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【００９３】
前述した第１実施形態では、ＥＣＵ２０は、検証を行う際、書込データと、第１の取得データとの一致を確認していた。これに対し、第２実施形態では、ＥＣＵ２０は、検証を行う際、書込データと第１の取得データとの一致を確認し、且つ、第１の取得データと第２の取得データとの一致を確認する点で、第１実施形態と相違する。
【００９４】
［２−２．処理］
［２−２−１．全体のシーケンス図］
次に、車両ネットワーク１において、ＥＣＵ２０のＲＯＭ５６に記憶されたプログラムの書き換えを実行する場合の処理の流れを、図１２の全体シーケンス図を用いて説明する。
【００９５】
Ａ１−Ａ５では、図３と同様の処理が実行される。
Ａ６では、ＥＣＵ２０は、検証を実行する。ここで、ＥＣＵ２０は、まずＡ６ａでは、書込用バッファ６１に記憶されている第１対象データと、書込データとの一致を確認する。ＥＣＵ２０は、Ａ６ｂでは更に、書込用バッファ６１に記憶されている第１対象データと、検証用バッファ６２に記憶されている第１対象データとの一致を確認する。そして、Ａ７では、ＥＣＵ２０は、Ａ６ａ及びＡ６ｂの両方において一致が確認された場合に、書込正常通知及び検証正常通知を、第１通信部５１を介して書き換え装置１０へ送信する。
【００９６】
図１２におけるＡ８−Ａ１４においては、第１対象データを第２対象データに代えて、上述と同様の処理が実行される。つまり、Ａ１３では、ＥＣＵ２０は、検証を実行する。ここで、ＥＣＵ２０は、まずＡ１３ａでは、書込用バッファ６１に記憶されている第２対象データと、書込データとの一致を確認する。ＥＣＵ２０は、Ａ１３ｂでは更に、書込用バッファ６１に記憶されている第２対象データと、検証用バッファ６２に記憶されている第２対象データと、の一致を確認する。そして、ＥＣＵ２０は、Ａ１３ａ及びＡ１３ｂの両方において一致が確認された場合に、書込正常通知及び検証正常通知を、第１通信部５１を介して書き換え装置１０へ送信する。
【００９７】
［２−２−２．各装置が実行する処理］
次に、本実施形態のＥＣＵ２０が、図１０に示す第１実施形態のベリファイ処理に代えて実行するベリファイ処理について、図１３のフローチャート及び図１４を用いて説明する。なお、図１３におけるＳ５００−Ｓ５２０、Ｓ５３０−Ｓ５４０、Ｓ５５０−Ｓ５７０の処理は、図１０における処理と同様であるため、説明を一部簡略化している。
【００９８】
ＥＣＵ２０は、Ｓ５００−Ｓ５２０では、図１０と同様の処理を実行する。
ＥＣＵ２０は、Ｓ５２５では、図１４に示すように、書込用バッファ６１に格納された対象データであって検証の対象となるデータについての書込用バッファ６１における先頭アドレスを、第３の先頭アドレス（以下、Ａｄｄｒ３）の初期値として設定する。
【００９９】
ＥＣＵ２０は、Ｓ５３０では、図１０と同様の処理を実行する。
ＥＣＵ２０は、Ｓ５４０では、Ａｄｄｒ１から４バイトのデータと、Ａｄｄｒ２から４バイトのデータとが一致する場合に処理をＳ５４５へ移行させ、これらのデータが一致しない場合に処理をＳ５５０へ移行させる。
【０１００】
ＥＣＵ２０は、Ｓ５４５では、Ａｄｄｒ２から４バイトのデータと、Ａｄｄｒ３から４バイトのデータとが、一致するか否かを判断する。ＥＣＵ２０は、これらのデータが一致する場合に処理をＳ５６０へ移行させ、これらのデータが一致しない場合に処理をＳ５５０へ移行させる。
【０１０１】
ＥＣＵ２０は、Ｓ５５０−Ｓ５６０では、図９と同様の処理を実行する。
ＥＣＵ２０は、Ｓ５７０では、ＣＳが０であるか否かを判断する。ＥＣＵ２０は、ＣＳが０である場合は、ベリファイ処理を終了し、ＣＳが０でない場合は処理をＳ５８５へ移行させる。
【０１０２】
ＥＣＵ２０は、Ｓ５８５では、図９に示すＳ５８０と同様に、Ａｄｄｒ１及びＡｄｄｒ２を新たに設定する。また、ＥＣＵ２０は、Ａｄｄｒ３に４バイト加算した値を新たなＡｄｄｒ３として設定する。そして、ＥＣＵ２０は、処理をＳ５４０へ移行させ、ＣＳが０になるまで、Ｓ５４０以降の処理を繰り返し実行する。
【０１０３】
［２−３．効果］
以上詳述した本実施形態によれば、前述した第１実施形態の効果（１ａ）が得られるとともに、さらに、以下の効果を得ることができる。
【０１０４】
（２ａ）ＥＣＵ２０では、書込判断部５４は、第１の取得データ及び第２の取得データのうち一方の取得データを不揮発性メモリに書き込む。書込判断部５４は更に、Ｓ４５０では、一方の取得データと第１の取得データ及び第２の取得データのうち他方の取得データとが一致しているか否かを判断する。書込判断部５４は、Ｓ４６５では、書込データと上記他方の取得データとが一致していると判断され、且つ、上記一方の取得データと上記他方の取得データとが一致していると判断された場合に、不揮発性メモリに対象データが正常に書き込まれたと判断する。
【０１０５】
その結果、第１の取得データと第２の取得データとが一致しているか否かを更に検証するので、検証結果の信頼性を向上させることができる。
［３．第３実施形態］
［３−１．第１実施形態との相違点］
前述した第１実施形態では、書き換え装置１０、及びＥＣＵ２０は、通信線１１及び通信線１２で接続されており、通信線１１及び通信線１２のいずれにおいても、ＣＡＮによって同じ通信速度で通信を行うように構成されていた。これに対し、第３実施形態では、通信線１１及び通信線１２における通信速度は異なるように設定されている点で、第１実施形態と相違する。
【０１０６】
［３−２．処理］
図１５では、通信線１１及び通信線１２の通信速度がそれぞれ異なる場合の、車両ネットワーク１における全体の処理の流れを示している。具体的には、図１５は、例えば、通信線１１におけるＣＡＮによる通信速度が１Ｍｂｐｓであり、通信線１２におけるＣＡＮによる通信速度が５００Ｋｂｐｓである、といったように、通信線１１の方が通信線１２よりも通信速度が速い例を示している。
【０１０７】
上述のように、車両ネットワーク１での処理の流れにおいては、Ａ５の書込処理後にＡ６の検証処理を実施する、という順番となる。そこで、ＥＣＵ２０は、通信線１１の方が通信線１２よりも通信速度が速い場合は、図１５に示すように、通信速度が速い通信線１１を経由して第１トランシーバ３１及び第１通信部５１を介して取得される第１の取得データを、書込用バッファ６１に書き込む。上記実施形態と同様に、第１の取得データがＲＯＭ５６に書き込まれる。
【０１０８】
また、ＥＣＵ２０は、通信速度が遅い通信線１２を経由して第２トランシーバ３２及び第２通信部５２を介して取得される第２の取得データを、検証用バッファ６２に書き込むように構成される。上記実施形態と同様に、第２の取得データが検証用に用いられる。
【０１０９】
具体的には、ＥＣＵ２０は、Ｓ４２０では、第１の取得データをＲＯＭ５６に書き込むように構成され、Ｓ４５５では、書込データと、第２の取得データとを比較することによって、書込データと他方の取得データとが一致しているか否かを判断するように構成される。つまり、ＥＣＵ２０は、第１の取得データ及び第２の取得データのうち、通信速度が速い方の取得データを書込用に用いて、通信速度が遅い方の取得データを検証用に用いるように構成される。
【０１１０】
Ａ２では、第１通信部５１は、第１の取得データの取得を、Ａ３に示す第２通信部５２による第２の取得データの取得よりも、早く完了する。なお、ここでいう第１の取得データの取得とは、第１の取得データの書込用バッファ６１への書き込みを表し、第２の取得データの取得とは、第２の取得データの検証用バッファ６２への書き込みを表す。
【０１１１】
Ａ４では、第１通信部５１は、第１の取得データの取得を完了した後に、書込判断部５４に書込要求を出力する。
Ａ５では、書込判断部５４は、第２の取得データの取得が完了する迄待つこと無く、先に取得が完了する第１の取得データを用いて、ＲＯＭ５６への書込処理を開始する。
【０１１２】
第２通信部５２は、第２の取得データの取得を、書込判断部５４によるＲＯＭ５６への書込処理が開始された以降も継続する。
Ａ６では、第２通信部５２は、第２通信部５２による第２の取得データの取得が完了した後に、書込判断部５４に検証要求を出力する。そして、書込判断部５４は、ＲＯＭ５６への書込処理が完了している場合に、検証処理を実行する。
【０１１３】
［３−３．効果］
以上詳述した第３実施形態によれば、前述した第１実施形態の効果（１ａ）を奏し、さらに、以下の効果を奏する。
【０１１４】
（３ａ）ＥＣＵ２０は、書込判断部５４では、第１通信部５１は、第２通信部５２が第２の取得データの取得を完了するよりも早く、第１の取得データの取得を完了するように構成されている。本実施形態では、ＥＣＵ２０は、Ｓ４２０では、上述の一方の取得データとしての第１の取得データをＲＯＭ５６に書き込むように構成される。また、ＥＣＵ２０は、Ｓ４５５では、書込データと、他方の取得データとしての第２の取得データとが一致しているか否かを判断する。
【０１１５】
つまり、書込判断部５４は、書き換え装置１０から第１通信部５１へ対象データが送信されるときの通信速度と書き換え装置１０から第２通信部５２へ対象データが送信されるときの通信速度とが異なるような場合には、第１通信部５１及び第２通信部５２のうち早く対象データが取得される方によって受信された対象データをＲＯＭ５６へ書き込む。このため、書込判断部５４は、ＲＯＭ５６への書き込みが行われている間に、並行して、第２の取得データの取得を継続することが可能となる。
【０１１６】
その結果、第１通信部５１及び第２通信部５２のうち遅く対象データが取得される方によって受信された対象データをＲＯＭ５６へ書き込む場合よりも、ＲＯＭ５６の書き換え時間を短縮することができる。
【０１１７】
［３−４．変形例］
（変形例１）車両ネットワーク１は、通信線１２における通信速度が通信線１１における通信速度よりも速いように構成されてもよい。例えば、通信線１１におけるＣＡＮによる通信速度が５００Ｋｂｐｓであり、通信線１２におけるＣＡＮによる通信速度が１Ｍｂｐｓである、といった具合である。
【０１１８】
ＥＣＵ２０は、通信線１２の方が通信線１１よりも通信速度が速い場合は、図１６に示すように、通信速度が速い通信線１２を経由して第２トランシーバ３２及び第２通信部５２を介して取得される第２の取得データを、書込用バッファ６１に書き込むように構成されてもよい。また、ＥＣＵ２０は、通信速度が遅い通信線１１を経由して第１トランシーバ３１及び第１通信部５１を介して取得される第１の取得データを、検証用バッファ６２に書き込むように構成されてもよい。
【０１１９】
つまり図１６において、Ａ３では、第２通信部５２は、第２の取得データの取得を、Ａ２に示す第１通信部５１による第１の取得データの取得よりも、早く完了する。なお、ここでいう第１の取得データの取得とは、第１の取得データの検証用バッファ６２への書き込みを表し、第２の取得データの取得とは、第２の取得データの書込用バッファ６１への書き込みを表す。
【０１２０】
Ａ４では、第２通信部５２は、第２の取得データの取得を完了した後に、書込判断部５４に書込要求を出力するように構成されてもよい。
Ａ５では、書込判断部５４は、第１の取得データの取得が完了する迄待つこと無く、先に取得が完了する第２の取得データを用いて、ＲＯＭ５６への書込処理を開始してもよい。
【０１２１】
第１通信部５１は、第１の取得データの取得を、書込判断部５４によるＲＯＭ５６への書込処理が開始された以降も継続するように構成されてもよい。
Ａ６では、第１通信部５１は、第１通信部５１による第１の取得データの取得が完了した後に、書込判断部５４に検証要求を出力するように構成されてもよい。そして、書込判断部５４は、ＲＯＭ５６への書込処理が完了している場合に、検証処理を実行するように構成されてもよい。その結果、上記第３実施形態と同様の効果を得ることができる。
【０１２２】
（変形例２）車両ネットワーク１は、通信線１１及び通信線１２における通信方式が異なるように構成されてもよい。例えば、通信線１１における通信方式がＣＡＮであり、通信線１２における通信方式がＬＩＮである、といった具合である。ここでは、ＬＩＮの通信速度は、ＣＡＮの通信速度よりも十分に遅いものとする。この場合のシーケンス図を図１７に示す。
【０１２３】
書込判断部５４は、第１通信部５１がＣＡＮで、第２通信部５２がＬＩＮで通信を行う場合等のように、第１通信部５１へ対象データが送信されるときの通信速度と第２通信部５２へ対象データが送信されるときの通信速度とが大きく異なるような場合には、Ａ２において第１通信部５１にて第１の取得データが取得された後、Ａ５ｃにて所定の待機時間が経過するまで待機した後に、Ａ６にて第２の取得データを用いて検証を行うように構成されてもよい。
【０１２４】
待機時間は、第１通信部５１にて第１の取得データが取得されてから第２通信部５２にて第２の取得データが取得される迄の時間以上に設定され得る。その結果、第１の取得データが取得されるために要する時間と、第２の取得データが取得されるために要する時間とが大きく異なる場合であっても、第２の取得部にて第２の取得データの取得が完了した後に該第２の取得データを用いて検証を行うことができる。
【０１２５】
［４．他の実施形態］
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【０１２６】
（４ａ）上記実施形態では、車両ネットワーク１は、書き換え装置１０が通信線１１及び通信線１２といった２つの通信線に接続され、ＥＣＵ２０が、通信線１１に接続される第１トランシーバ３１及び通信線１２に接続される第２トランシーバ３２といった２つのトランシーバを備える構成であったが、これに限定されるものではない。
【０１２７】
例えば、図１８に示すように、車両ネットワークは、書き換え装置１０が通信線１１及び通信線１２といった２つの通信線に接続され、ＥＣＵ２０が１つの共通トランシーバ３３を備えるように構成されてもよい。共通トランシーバ３３は、通信線１１及び通信線１２に接続され、書き換え装置１０から通信線１１を介して受信した対象データを出力し、書き換え装置１０から通信線１２を介して受信した対象データを出力するように構成されている。第１通信部５１は、共通トランシーバ３３を介して通信線１１を経由して書き換え装置１０からの対象データを取得するように構成されてもよい。また、第２通信部５２は、共通トランシーバ３３を介して通信線１２を経由して書き換え装置１０からの対象データを取得するように構成されてもよい。
【０１２８】
（４ｂ）上記実施形態では、 車両ネットワーク１は、書き換え装置１０が、通信線１１及び通信線１２といった、２つの通信線に接続されていたが、これに限定されるものではない。例えば、図１９に示すように、車両ネットワーク２は、書き換え装置１０が１つの通信線１１に接続される構成であってもよい。通信線１１は、書き換え対象であるＥＣＵ２０に接続されている。ＥＣＵ２０は、書き換え装置１０から対象データを受信する共通受信部としての共通トランシーバ３４を備えていてもよい。
【０１２９】
共通トランシーバ３４は、第１通信部５１及び第２通信部５２のそれぞれと通信線１５及び通信線１６によって通信可能に接続されている。共通トランシーバ３４は、書き換え装置１０から受信した対象データを、同時に、通信線１５を介して第１通信部５１に送信するとともに、通信線１６を介して第２通信部５２に送信するように構成されている。ＥＣＵ２０では、第１通信部５１が、共通トランシーバ３４にて受信された対象データを第１の取得データとして取得し、第２通信部５２が、共通トランシーバ３４にて受信された対象データを第２の取得データとして取得する。
【０１３０】
このように、車両ネットワーク２は、書き換え装置１０と接続される１つの通信線１１を備え、ＥＣＵ２０は、ＥＣＵ２０内部において共通トランシーバ３４から分岐する通信線１５、１６を用いて対象データを第１通信部５１及び第２通信部５２それぞれに送信する。その結果、車両ネットワーク２において、書き換え装置１０と接続する通信線の数を１つに減らすことができる。
【０１３１】
（４ｃ）車両ネットワークにおいて、書き換え装置１０は、１つの通信線１１に接続され、ゲートウェイＥＣＵ（以下、Ｇ／Ｗ−ＥＣＵ）を介して、ＥＣＵ２０と接続されるように構成されてもよい。Ｇ／Ｗ−ＥＣＵは、書き換え装置１０とＥＣＵ２０とが通信線によって直接接続されないように、書き換え装置１０とＥＣＵ２０との間に介在するＥＣＵである。
【０１３２】
例えば、図２０に示すように、書き換え装置１０は、１つの通信線１１にのみ接続されていてもよい。通信線１１は、Ｇ／Ｗ−ＥＣＵ９０及び書き換えの対象となるＥＣＵ２０を接続していてもよい。Ｇ／Ｗ−ＥＣＵ９０は、通信線１１及び通信線１２に、通信可能に接続されてもよい。ＥＣＵ２０は、通信線１１及び通信線１２に接続されていてもよい。
【０１３３】
これにより、仮に書き換え装置１０が１つの通信線１１に対してのみ対象データを送信可能に構成されている場合であっても、Ｇ／Ｗ−ＥＣＵ９０を用いることにより、通信線１１及び通信線１２の両方に対して同様の対象データを送信することが可能となる。なお、ＥＣＵ２０内部のトランシーバの構成は、上述のいずれかの構成であり得る。
【０１３４】
なお、この場合に書き換え装置１０が実行する書き換え装置側処理を図２１に示す。本実施形態における書き換え装置側処理は、図５に示す処理においてＳ５がＳ６に置換され、Ｓ２５及びＳ３５が削除されている点が異なる。すなわち、Ｓ６では、書き換え装置１０は、通信線１１にのみ、制御通信停止及び故障診断停止要求を送信する。なお、書き換え装置１０は、Ｓ１０では、通信線１１にのみ、ＥＣＵ２０のリプログ要求を送信する。また、書き換え装置１０は、Ｓ２０−Ｓ３０では、通信線１１にのみ対象データを送信する。
【０１３５】
また例えば、図２２に示すように、書き換え装置１０は、１つの通信線１３に接続されていてもよい。通信線１３は、書き換え装置１０とＧ／Ｗ−ＥＣＵ９０とを接続しており、書き換え装置１０と書き換え対象となるＥＣＵ２０とを接続していなくてもよい。Ｇ／Ｗ−ＥＣＵ９０は、通信線１３、通信線１１及び通信線１２に、通信可能に接続されてもよい。ＥＣＵ２０は、通信線１１及び通信線１２に接続されていてもよい。書き換え装置１０は、通信線１３に対してのみ対象データを送信し、Ｇ／Ｗ−ＥＣＵ９０が書き換え装置１０から通信線１３を経由して受信した対象データを通信線１１及び通信線１２に送信するように構成されてもよい。
【０１３６】
これにより、図２０における構成と同様の効果を得ることができる。なお、ＥＣＵ２０内部のトランシーバの構成は、上述のいずれかの構成であり得る。
なお、この場合に書き換え装置１０が実行する書き換え装置側処理を図２３に示す。本実施形態における書き換え装置側処理は、図５に示す処理においてＳ５がＳ７に置換され、Ｓ２５及びＳ３５が削除されている点が異なる。また、Ｓ５０がＳ５２に置換される点が異なる。
【０１３７】
すなわち、Ｓ７では、書き換え装置１０は、通信線１３にのみ、制御通信停止及び故障診断停止要求を送信する。なお、書き換え装置１０は、Ｓ１０では、通信線１３にのみ、ＥＣＵ２０のリプログ要求を送信する。また、書き換え装置１０は、Ｓ２０−Ｓ３０では、通信線１３にのみ対象データを送信する。Ｓ５２では、書き換え装置１０は、Ｇ／Ｗ−ＥＣＵ９０から、ＥＣＵ２０の書込結果及び検証結果を受信したか否かを判断する。
【０１３８】
（４ｄ）上記実施形態では、車両ネットワークは、例えば、車両のユーザによってディーラに車両が持ち込まれた際や、工場において車両が出荷される際等に、ＥＣＵ２０に記憶されている制御プログラムを、書き換え装置１０から送信される新しい制御プログラムに書き換えるためのシステムであり、書き換え装置１０は、ＥＣＵ２０又はＧ／Ｗ−ＥＣＵ９０と有線接続されていた。ただし、これに限定されるものではない。
【０１３９】
車両ネットワークは、例えば、車両のユーザの自宅等といった任意の場所において、ＥＣＵ２０に記憶されている制御プログラムを書き換え装置１０から送信される新しい制御プログラムに書き換えるように構成されてもよい。ここで、書き換え装置１０は、ＥＣＵ２０又はＧ／Ｗ−ＥＣＵ９０と無線接続されるように構成されてもよい。
【０１４０】
例えば、図２４に示すように、書き換え装置１０、Ｇ／Ｗ−ＥＣＵ９０は、それぞれ図示しない無線通信装置を備え、ＯＴＡによる通信を行うように構成されていてもよい。ＯＴＡとは、Over The Airの略である。書き換え装置１０は、例えば、ディーラに設置されていてもよい。これにより、車両のユーザが、ディーラに車両を持ち込むことなく、ＲＯＭ５６に記憶されている制御プログラムをアップデートすることができる。書き換え装置１０は、ＲＯＭ５６に記憶されているプログラムのアップデートが必要になったときに、Ｇ／Ｗ−ＥＣＵ９０へ新しいプログラムを送信するように構成されてもよい。
【０１４１】
なお、この場合に書き換え装置１０が実行する書き換え装置側処理を図２５に示す。本実施形態における書き換え装置側処理は、図５に示す処理においてＳ５がＳ８に置換され、Ｓ１０、Ｓ２５及びＳ３５が削除されている点が異なる。また、Ｓ２０がＳ２２に、Ｓ３０がＳ３２に、Ｓ５０がＳ５４に、それぞれ置換される点が異なる。
【０１４２】
すなわち、Ｓ８では、書き換え装置１０は、通信線１３にのみ、制御通信停止及び故障診断停止要求を送信する。なお、書き換え装置１０は、Ｓ１０では、通信線１３にのみ、ＥＣＵ２０のリプログ要求を送信する。また、書き換え装置１０は、Ｓ２２、Ｓ３２では、無線通信によりＧ／Ｗ−ＥＣＵ９０へ対象データを送信する。Ｓ５４では、書き換え装置１０は、Ｇ／Ｗ−ＥＣＵ９０から、無線通信で、ＥＣＵ２０の書込結果及び検証結果を受信したか否かを判断する。
【０１４３】
（４ｅ）上述のように、車両ネットワーク１、２は、書き換え装置１０による制御プログラムの書き換えを、有線通信及び無線通信により実行するように構成され得る。ＥＣＵ２０は、第１通信部５１における第１通信処理、及び第２通信部５２における第２通信処理において、対象データの受信未完了が所定時間経過すると、書き換え装置１０へ書込異常通知及び検証異常通知を送信するように構成されていた。ここで、ＥＣＵ２０は、上述の所定時間が、書き換え装置１０から有線通信により対象データを受信する場合と、書き換え装置１０から無線通信により対象データを受信する場合とで、異なるように、構成されてもよい。
【０１４４】
（４ｆ）上記実施形態では、車両ネットワーク１において、書き換え装置１０から新しいプログラムが送信され、ＥＣＵ２０がプログラムを書き換える例を説明したが、これに限定されるものではない。書き換え装置１０は、プログラムに限定されることなく、ＥＣＵ２０に記憶されている、各種データについて、書き換えのための新しいデータを送信するように構成され得る。また、ＥＣＵ２０は、プログラムに限定されることなく、ＥＣＵ２０に記憶されている、各種データを書き換えるように構成され得る。
【０１４５】
（４ｇ）書き換え装置１０は、ＥＣＵ２０から制御対象に関するデータを受信して、車両の診断を行うとともに、診断結果に応じて、ＥＣＵ２０に記憶されているプログラムを書き換えるように構成され得る。
【０１４６】
（４ｈ）上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【０１４７】
（４ｉ）上述した書き換え装置１０、ＥＣＵ２０、車両ネットワーク１、２の他、当該書き換え装置１０を機能させるためのプログラム、当該ＥＣＵ２０を機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、書込検証方法など、種々の形態で本開示を実現することもできる。
【０１４８】
なお、上記実施形態において、車両ネットワーク１、２が制御システムに相当し、書き換え装置１０が書き換え用装置に相当し、ＥＣＵ２０が電子制御装置に相当する。データ通信部５３がデータ取得部に相当し、第１通信部５１が第１の取得部に相当し、第２通信部５２が第２の取得部に相当する。第１トランシーバ３１が第１の受信部に相当し、第２トランシーバ３２が第２の受信部に相当し、共通トランシーバ３４が共通受信部に相当する。Ｓ４２０が書込実行部としての処理に相当し、Ｓ４５０が検証判断部としての処理に相当し、Ｓ４６５が検証特定部としての処理に相当する。
【符号の説明】
【０１４９】
１  車両ネットワーク、１０  書き換え装置、２０  ＥＣＵ、３０  トランシーバ部、５１  第１通信部、５２  第２通信部、５３  データ通信部、５４  書込判断部。
【図１】
2019101456.tif 000003
【図２】
2019101456.tif 000004
【図３】
2019101456.tif 000005
【図４】
2019101456.tif 000006
【図５】
2019101456.tif 000007
【図６】
2019101456.tif 000008
【図７】
2019101456.tif 000009
【図８】
2019101456.tif 000010
【図９】
2019101456.tif 000011
【図１０】
2019101456.tif 000012
【図１１】
2019101456.tif 000013
【図１２】
2019101456.tif 000014
【図１３】
2019101456.tif 000015
【図１４】
2019101456.tif 000016
【図１５】
2019101456.tif 000017
【図１６】
2019101456.tif 000018
【図１７】
2019101456.tif 000019
【図１８】
2019101456.tif 000020
【図１９】
2019101456.tif 000021
【図２０】
2019101456.tif 000022
【図２１】
2019101456.tif 000023
【図２２】
2019101456.tif 000024
【図２３】
2019101456.tif 000025
【図２４】
2019101456.tif 000026
【図２５】
2019101456.tif 000027