(第1の実施の形態)
以下、本発明に係るリプログシステム(プログラム書換システム)の第1の実施の形態について説明する。
図面に示されるように、また、以下で詳述するように、本実施の形態のリプログシステムも、既述した従来技術と同様に、複数の電子制御装置(以下、ECUとも記載)が接続され、予め定められた通信スケジュールに従ってこれら接続された複数のECUが一定時間毎に順次データを送信するタイムスロット方式の車載ネットワークと、車載ネットワークに接続された複数のECUのうちリプログ対象ECUのプログラムを車載ネットワークを介して書き換えるリプログ装置とを備える。ただし、本実施の形態では、既述した従来技術とは異なり、リプログ装置は、プログラム書換開始の指示を受けた場合、リプログ対象ECUとの間でのみ車載ネットワークを介した通信を確立し、プログラムを書き換える。これにより、リプログ対象ECUのプログラムを車載ネットワークを介して書き換えるに当たり、通信効率の向上を図ろうとしている。
図1(a)は、リプログ装置が通信線に接続されていない状態における全体構成を示すブロック図であり、図1(b)は、リプログ装置が通信線に接続されている状態における全体構成を示すブロック図である。これら図1(a)及び(b)に示されるように、リプログシステム1は、複数のECU10、リプログ装置11、並びに、これらECU10及びリプログ装置11が接続される通信線(車載ネットワーク)12を備えており、図示しない車両に搭載される。
これら複数のECU10には、例えば内蔵フラッシュメモリ等にプログラムを記憶保持してそのプログラムを書換可能なECUであってプログラム書換対象とするECUであるリプログ対象ECU(プログラム書換対象制御装置)、及び、例えば内蔵フラッシュメモリ等にプログラムを記憶保持してそのプログラムを書換可能なECUであるもののプログラム書換対象としないECUであるリプログ対象外ECU(プログラム書換対象外制御装置)、並びに、例えばマスクROM等の不揮発性メモリにプログラムを記憶保持してそのプログラムを書き換えることのできないECUであるリプログ不可ECU(プログラム書換不可制御装置)が含まれている。なお、リプログ対象ECU及びリプログ対象外ECUはリプログ機能を有しているため、以下では、これらECUを総称してリプログ可能ECUと記載することもある。また、リプログ不可ECUはリプログ機能を有していない。
また、これら複数のECU10及びリプログ装置11間における通信では、その通信プロトコルとして、例えばFlexRay等、予め定められた通信スケジュールに従って一定時間毎に順次データを送信する、いわゆるタイムスロット方式が採用されている。
図2(a)に、リプログ装置未接続時の通信スケジュール、すなわち、通常時の通信スケジュールの一例を示し、図2(b)に、リプログ装置接続時の通信スケジュール、すなわち、リプログ時の通信スケジュールの一例を示す。
このうち、図2(a)に示されるように、通常時の通信スケジュールには、複数個(例えば「6個」)の固定幅のフレームF11から構成され、車両機能制御に必要なデータの送信に利用されるスタティックセグメントSS1と、複数個(例えば「2個」)の可変幅のフレームF12から構成され、車両機能制御に直接関係のないデータの送信に利用されるダイナミックセグメントDS1とが交互に繰り返されている。
同様に、図2(b)に示されるように、リプログ時の通信スケジュールには、複数個(例えば「2個」)の固定幅のフレームF21から構成されて車両機能制御に必要なデータの送信に利用されるスタティックセグメントSS2と、複数個(例えば「8個」)の可変幅のフレームF22から構成されて車両機能制御に直接関係のないデータの送信に利用されるダイナミックセグメントDS2とが交互に繰り返されている。
なお、上記リプログ時の通信スケジュールにおいては、スタティックセグメントSS2は例えば「2個」のフレームF21から構成されている。本実施の形態では、通信プロトコルとしてFlexRayを採用しているため、その制約から、スタティックセグメントSS2を構成するフレーム数は最低数である「2個」となっている。なお、タイムスロット方式の通信プロトコルでは、一般に、同時に通信を確立しているノードの数が最小限必要なスタティックセグメントの数として要求される。
また、図示の便宜上、図2(a)には、1つのスタティックセグメントSS1とこれに続く1つのダイナミックセグメントDS1とによって構成される通信サイクルC1を1つのみ示しており、図2(b)には、1つのスタティックセグメントSS2とこれに続く1つのダイナミックセグメントDS2とによって構成される通信サイクルC2を1つのみ示しているが、実際には、こうした通信サイクルC1及びC2は繰り返される。
ここで、リプログシステム1を構成するリプログ装置11の内部構成を図3(a)に示す。この図3(a)に示すように、リプログ装置11は、リプログ開始指示部110、通信制御部(通信コントローラ)111及び記憶保持部112を有する。
このうち、リプログ開始指示部110は、例えば当該リプログシステムのユーザによって後述の所定操作がなされるか否かを逐次判断し、その所定操作がなされたと判断すると、記憶保持部112にその旨を記憶保持するとともに、通信線12に接続されている複数のECU10に対し通信制御部111を介してリプログ準備要求を送信する。また、リプログ開始指示部110は、複数のECU10のいずれがリプログ対象ECUであるかについての情報も取得し、記憶保持部112にその情報を記憶保持するとともに、通信線12に接続されている複数のECU10に対し通信制御部111を介してその情報を送信する。さらに、リプログ開始指示部110は、リプログ開始操作がなされるか否かを逐次判断し、リプログ開始操作がなされたと判断するとき、通信線12に接続されている複数のECU10に対し通信制御部111を介してプログラム書換開始を指示する。
通信制御部111は、リプログ準備要求及びリプログ対象ECUに関する情報(リプログ対象ECU情報)を通信線12を介してECU10に実際に送信する通信中処理を実行する。また、通信制御部111は、通常時の通信スケジュール(図2(a)参照)にて通信の確立準備を開始するか、あるいは、リプログ時の通信スケジュール(図2(b)参照)にて通信の確立準備を開始するかを当該装置11の起動時に決定する起動時処理を実行する。さらに、通信制御部111は、リプログ対象ECUへ送信するデータそのものであって記憶保持部112に記憶保持されている制御プログラムデータ(マスタデータ)を、リプログ対象ECUに通信線12を介して送信するリプログ処理を実行する。
記憶保持部112は、上記リプログ準備要求、上記リプログ対象ECU情報、通常時の通信スケジュールの情報、リプログ時の通信スケジュールの情報、リプログ対象ECUへ送信するデータそのものである制御プログラムデータ(マスタデータ)を記憶保持する。
また、リプログ可能ECU(すなわち、リプログ対象ECU10a及びリプログ対象外ECU10b)の内部構成を図3(b)に示す。この図3(b)に示すように、リプログ対象ECU10a及びリプログ対象外ECU10bは、通信制御部(通信コントローラ)101a及び記憶保持部102をそれぞれ有する。
このうち、通信制御部101aは、上記通信制御部111によって通信線12を介して送信される上記リプログ準備要求及び上記リプログ対象ECU情報を受信するとともに、これら受信したリプログ準備要求及びリプログ対象ECU情報を記憶保持部102に記憶保持する通信中処理を実行する。また、通信制御部101aは、通常時の通信スケジュールにて通信の確立準備を開始するか、リプログ時の通信スケジュールにて通信の確立準備を開始するか、あるいは、通信の確立準備を停止するかについて、当該ECU10a及び10bの起動時に決定する起動時処理を実行する。さらに、通信制御部101aは、リプログ装置11から通信線12を介して送信されるマスタデータを受信し、記憶保持部102に記憶保持しているプログラムをマスタデータによって書き換えるリプログ処理を実行する。
記憶保持部102は、上記リプログ準備要求、上記リプログ対象ECU情報、通常時の通信スケジュールの情報、リプログ時の通信スケジュールの情報、及び、制御プログラムを記憶保持する。
このように、リプログ可能ECUは、「通常時の通信スケジュール情報」、「リプログ時の通信スケジュール情報」、「通信起動処理切替機能(通常時の通信スケジュール、リプログ時の通信スケジュール及び通信開始の停止を切替)」及び「リプログ機能」を有する。
さらに、リプログ不可ECU10cの内部構成を図3(c)に示す。この図3(c)に示すように、リプログ不可ECU10cは、通信制御部(通信コントローラ)101c及び記憶保持部102をそれぞれ有する。このうち、通信制御部101cは、上記通信制御部111によって通信線12を介して送信されるリプログ準備要求を受信するとともに、この受信したリプログ準備要求を記憶保持部102に記憶保持する通信中処理を実行する。また、通信制御部101cは、通常時の通信スケジュールにて通信の確立準備を開始するか、通信の確立準備を停止するかについて、当該ECU10cの起動時に決定する起動時処理を実行する。また、記憶保持部102は、上記リプログ準備要求、通常時の通信スケジュールの情報及び制御プログラムを記憶保持する。
このように、リプログ不可ECUは、「通常の通信スケジュール情報」及び「通信起動処理切替機能(通常時の通信スケジュール及び通信開始の停止を切替)」を有する。
以上のように構成されたリプログシステム1を用いるリプログの実行手順を図4に一覧にて示す。この図4に示すように、リプログ装置11の未接続時において(図1(a)参照)、リプログシステム1のユーザは、まず、手順1として、イグニッションスイッチをオン操作する。このとき、車載ネットワーク(通信線12)に接続された複数のECU10は、通常時の通信スケジュールにて通信の確立準備を開始し、やがて通信が確立する。
通常時の通信スケジュールにて通信が確立すると、次に、リプログシステム1のユーザは、手順2として、リプログ装置11を接続して、リプログ準備要求を送信するとともに、リプログ対象ECU情報も送信する。このとき、車載ネットワーク(通信線12)に接続された全てのECU10は、リプログ準備要求を受信し、記憶保持部に各々記憶保持する。なお、複数のECU10のうちリプログ可能ECUは、リプログ対象ECU情報も取得し、記憶保持部に各々記憶保持する。
リプログ準備要求及びリプログ対象ECU情報が送信されると、次に、リプログシステム1のユーザは、手順3として、イグニッションスイッチをオフ操作し、再度オン操作する(所定操作)。このとき、リプログ装置11及びリプログ対象制御装置10aは、事前に受信した情報に基づいて、リプログ時の通信スケジュールにて通信の確立準備を開始する。一方、リプログ対象外ECU10b及びリプログ不可ECU10cは、事前に受信した情報に基づいて、通信の確立準備を停止する。これにより、リプログ装置11及びリプログ対象ECU10a間でのみ、リプログ時の通信スケジュールにて通信が確立することとなる。
次に、リプログシステム1のユーザは、手順4として、リプログ装置11に対しリプログ開始操作を行う。すると、リプログ装置11は、リプログ対象ECU10aへ制御プログラムデータを送信開始し、リプログ対象ECU10aのプログラムデータが書き換えられる(リプログが実行される)ことになる。
こうしてリプログが実行されると、リプログシステム1のユーザは、手順5として、イグニッションスイッチをオフ操作し、再度オン操作する。このとき、車載ネットワーク(通信線12)に接続された複数のECU10は、通常時の通信スケジュールにて通信の確立準備を開始する。やがて、車載ネットワークを介した通信が確立することになる。
図5(a)は、リプログ装置11によって実行される通信中処理の処理手順を示すフローチャートであり、図5(b)は、リプログ装置11によって実行される起動時処理の処理手順を示すフローチャートである。
例えばリプログ装置11が通信線12に接続されて通信が確立された後(イグニッションスイッチはオンとされている)等、リプログ装置11は、図5(a)に示す通信中処理を実行する。詳しくは、図5(a)に示されるように、通信中処理を開始すると、リプログ装置11は、まず、ステップS111の判断処理として、リプログ準備操作(図4の手順2参照)が行われるまで待機する。
ここで、リプログ準備操作が行われたと判断するとき(ステップS111の判断処理において「Yes」)、リプログ装置11は、続くステップS112の処理として、車載ネットワーク(通信線12)に接続されたECU10に対しリプログ準備要求を送信する。リプログ準備要求を送信すると、リプログ装置11は、続くステップS113の処理として、車載ネットワーク(通信線12)に接続されたECU10に対しリプログ対象ECU情報を送信する。このとき、リプログ可能ECUのみがリプログ対象ECU情報を各記憶保持部に記憶保持する。リプログ装置11は、続くステップS114の処理として、リプログ準備要求フラグを記憶保持部112にセットし、通信中処理を一旦終了する。
このようにして、リプログ装置11は、イグニッションスイッチがオンとされている間に、当該リプログ装置11に対しユーザがリプログ準備操作をする場合、リプログ準備要求及びリプログ対象ECU情報を送信する(S111→S112→S113→S114)。
また、リプログ装置11は、例えばイグニッションスイッチがオン操作されると、図5(b)に示す起動時処理を実行する。詳しくは、図5(b)に示されるように、起動時処理を開始すると、リプログ装置11は、まず、ステップS121の判断処理として、記憶保持部112に記憶保持したリプログ準備要求フラグがセットされているか否かを判断する。ここで、リプログ準備要求フラグがセットされていると判断するとき(ステップS121の判断処理において「Yes」)、リプログ装置11は、続くステップS122の処理として、リプログ準備要求フラグをリセットするとともに、続くステップS123の処理として、リプログ時の通信スケジュールにて通信の確立準備を開始する。一方、リプログ準備要求フラグがセットされていないと判断するとき(ステップS121の判断処理において「No」)、リプログ装置11は、続くステップS124の処理として、通常時の通信スケジュールにて通信の確立準備を開始する。そして、リプログ装置11は、それぞれの通信スケジュールにて通信を確立する。
このようにして、リプログ装置11は、イグニッションスイッチがオン操作されるとき、前回イグニッションスイッチがオン中にリプログ準備要求を送信していた場合には、リプログ時の通信スケジュールにて通信の確立準備を開始するとともに、リプログ準備要求の送信の記憶を削除する(S121→S122→S123)。また、リプログ装置11は、イグニッションスイッチがオン操作されるとき、前回イグニッションスイッチがオン中にリプログ準備要求を送信したことが記憶保持されて無い場合には、通常時の通信スケジュールにて通信の確立準備を開始する(S121→S124)。
図6(a)は、リプログ可能ECUによって実行される通信中処理の処理手順を示すフローチャートであり、図6(b)は、リプログ可能ECUによって実行される起動時処理の処理手順を示すフローチャートである。
例えばリプログ可能ECUが通信線12に接続されて通信が確立された後等、リプログ可能ECUは、図6(a)に示す通信中処理を実行する。詳しくは、図6(a)に示されるように、通信中処理を開始すると、リプログ可能ECUは、まず、ステップS131の判断処理として、リプログ準備要求(図4の手順2参照)を受信するまで待機する。
ここで、リプログ準備要求を受信したと判断するとき(ステップS131の判断処理において「Yes」)、リプログ可能ECUは、続くステップS132の処理として、リプログ準備要求フラグを記憶保持部102にセットする。また、リプログ可能ECUは、リプログ対象ECU情報を記憶保持部102に記憶保持する。そして、通信中処理を一旦終了する。
このようにして、リプログ可能ECUは、イグニッションスイッチがオンとされている間に、リプログ装置11からリプログ準備要求を受信する場合、その旨を記憶保持するとともに、リプログ対象が自ノードであるかあるいは他ノードであるかについても記憶保持する(ステップS131→S132→S133)。
また、リプログ可能ECUは、例えばイグニッションスイッチがオン操作されると、図6(b)に示す起動時処理を実行する。詳しくは、図6(b)に示されるように、起動時処理を開始すると、リプログ可能ECUは、まず、ステップS141の判断処理として、記憶保持部102に記憶保持したリプログ準備要求フラグがセットされているか否かを判断する。ここで、リプログ準備要求フラグがセットされていると判断するとき(ステップS141の判断処理において「Yes」)、リプログ可能ECUは、続くステップS142の処理として、当該リプログ可能ECUがリプログ対象とされているか否かを判断する。
当該リプログ可能ECUがリプログ対象ECU10aであると判断するとき(ステップS142の判断処理において「Yes」)、リプログ対象ECU10aは、続くステップS143の処理として、リプログ準備要求フラグをリセットするとともに、続くステップS144の処理として、リプログ時の通信スケジュールにて通信の確立準備を開始する。このようにして、イグニッションスイッチがオン操作されたときに、前回のイグニッションスイッチがオンとされている間にリプログ準備要求を受信するとともに当該リプログ可能ECUがリプログ対象ECUであると判断した場合には、リプログ時の通信スケジュールにて通信の確立準備を開始する(ステップS141→S142→S143→S144)。
一方、当該リプログ可能ECUがリプログ対象外ECU10bであると判断するとき(ステップS142の判断処理において「No」)、リプログ対象外ECU10bは、続くステップS145の処理として、リプログ準備要求フラグをリセットするとともに、続くステップS146の処理として、通信の確立準備を停止する。このようにして、イグニッションスイッチがオン操作されたときに、前回のイグニッションスイッチがオンとされている間にリプログ準備要求を受信するとともに当該リプログ可能ECUがリプログ対象外ECUであると判断した場合には、通信の確立準備を停止する(ステップS141→S142→S145→S146)。
他方、リプログ準備要求フラグがセットされていないと判断するとき(ステップS141の判断処理において「No」)、リプログ可能ECUは、続くステップS147の処理として、通常時の通信スケジュールにて通信の確立準備を開始する。このようにして、イグニッションスイッチがオン操作されたときに、前回のイグニッションスイッチがオンとされている間にリプログ準備要求を受信していないと判断した場合には、通常時の通信スケジュールにて通信の確立準備を開始する(ステップS141→S147)。
図7(a)は、リプログ不可ECU10cによって実行される通信中処理の処理手順を示すフローチャートであり、図7(b)は、リプログ不可ECU10cによって実行される起動時処理の処理手順を示すフローチャートである。
例えばリプログ不可ECU10cが通信線12に接続されて通信が確立された後等、リプログ不可ECU10cは、図7(a)に示す通信中処理を実行する。詳しくは、図7(a)に示されるように、通信中処理を開始すると、リプログ不可ECUは、まず、ステップS151の判断処理として、リプログ準備要求(図4の手順2参照)を受信するまで待機する。ここで、リプログ準備要求を受信したと判断するとき(ステップS151の判断処理において「Yes」)、リプログ不可ECU10cは、続くステップS152の処理として、リプログ準備要求フラグを記憶保持部102にセットして、通信中処理を一旦終了する。なお、リプログ不可ECU10cは、リプログ機能を有していないため、リプログ対象ECU情報を記憶保持する必要はない。このようにして、イグニッションスイッチがオンとされている間に、リプログ装置11からリプログ準備要求を受信すると、受信したことを記憶保持する(ステップS151→S152)。
また、例えばイグニッションスイッチがオン操作されると、リプログ不可ECU10cは、図7(b)に示す起動時処理を実行する。詳しくは、図7(b)に示されるように、起動時処理を開始すると、リプログ不可ECU10cは、まず、ステップS161の判断処理として、記憶保持部102に記憶保持したリプログ準備要求フラグがセットされているか否かを判断する。ここで、リプログ準備要求フラグがセットされていると判断するとき(ステップS161の判断処理において「Yes」)、リプログ不可ECU10cは、続くステップS162の処理として、リプログ準備要求フラグをリセットするとともに、続くステップS163の処理として、通信の確立準備を停止する。このようにして、イグニッションスイッチがオン操作されたときに、前回のイグニッションスイッチがオンとされている間にリプログ準備要求を受信していた場合には、リプログ時の通信スケジュールにて通信の確立準備を開始するとともに、リプログ準備要求の受信の記憶を削除する(ステップS161→S162→S163)。
一方、リプログ準備要求フラグがセットされていないと判断するとき(ステップS161の判断処理において「No」)、リプログ不可ECU10cは、続くステップS164の処理として、通常時の通信スケジュールにて通信の確立準備を開始する。このようにして、イグニッションスイッチがオン操作されたときに、前回のイグニッションスイッチがオンとされている間にリプログ準備要求を受信していなかった場合には、通常時の通信スケジュールにて通信の確立準備を開始する(ステップS161→S164)。
以上説明したように、上記第1の実施の形態では、リプログ装置11は、プログラム書換開始の指示を受けた場合、リプログ対象ECU10aとの間でのみ通信線12を介した通信を確立することで、プログラムを書き換えることとした。これにより、リプログ対象ECU10a以外のECU(リプログ対象外ECU10bやリプログ不可ECU10c)も通信に参加する場合と比較して、通信スケジュールに割り当てられるECUの数が減少するため、リプログ装置11がリプログ対象ECU10aへプログラムを送信することのできる時間が長くなる。したがって、通信効率の向上を図ることができるようになる。
上記第1の実施の形態では、リプログ不可ECU10cは、プログラム書換開始指示を受けた場合、通信の確立準備を停止することとした。これにより、リプログ装置11とリプログ対象ECU10aとの間でのみ通信を確立することが確実にできるようになる。
上記第1の実施の形態では、リプログ可能ECUは、プログラム書換開始の指示を受けたがリプログ対象ではないと判断した場合、すなわち、リプログ対象外ECU10bであると判断した場合、通信の確立準備を停止することとした。これによっても、リプログ装置11とリプログ対象ECU10aとの間でのみ通信を確立することが確実にできるようになる。
上記第1の実施の形態では、リプログ時の通信スケジュールにおける通信サイクルC2を構成するスタティックセグメントSS2は最少数に設定されていることとした。これにより、ダイナミックセグメントDS2の数を増加することができるようになるため、リプログに係る通信効率の向上をさらに図ることができるようになる。
なお、本発明に係るリプログシステム及びリプログ装置は、上記実施の形態にて例示した構成に限定されるものではなく、本発明の趣旨を逸脱しない範囲において、種々に変形して実施することが可能である。すなわち、上記実施の形態を適宜変更した例えば次の形態として実施することもできる。
上記第1の実施の形態では、リプログ対象ECU10aのリプログ終了後、先の図4に手順5として示すように、リプログシステム1のユーザがイグニッションスイッチをオフ操作し再度オン操作していた。これにより、リプログ対象外ECU10b及びリプログ不可ECU10cは、通常時の通信スケジュールにて通信の確立準備を再開していた。しかしながら、これに限らない。他に例えば、フェイルセーフを考慮して、リプログ対象外ECU10b及びリプログ不可ECU10cは、通信の確立準備が停止されてから所定時間経過後に、通信の確立準備を再開することとしてもよい。これにより、プログラム書換指示を受けたと誤認識したことに起因して、通信から離脱してしまっても、所定期間経過後には、リプログ対象外ECU10b及びリプログ不可ECU10cは、通信の確立準備を開始することができ、やがて通信に参加することができるようになる。
ちなみに、リプログ対象ECU10aのリプログが所定期間内に終了せず、リプログ対象外ECU10b及びリプログ不可ECU10cが通信の確立準備を開始してしまったとしても次の理由により問題ない。すなわち、リプログが所定期間内に終了しなかったとき、リプログ装置11及びリプログ対象ECU10a間では、リプログ時の通信スケジュールにて通信がまだ確立している。この状態において、リプログ対象外ECU10bやリプログ不可ECU10cが通常時の通信スケジュールにて通信の確立準備を開始しても、既に確立されているリプログ時の通信スケジュールと異なる通信スケジュールであるため、通信を確立することはできない。したがって、リプログ装置11及びリプログ対象ECU10a間で、リプログ時の通信スケジュールにて通信は維持される。そして、リプログ対象外ECU10b及びリプログ不可ECU10cは、通常時の通信スケジュールにて通信が確立できないとき、所定期間経過後に、通常時の通信スケジュールにて通信の確立準備を再度開始する。これにより、やがてはリプログが終了し、リプログ対象外ECU10b及びリプログ不可ECU10cは、通信に参加することができるようになる。
(第2の実施の形態)
以下、本発明に係るリプログシステム及びリプログ装置の第2の実施の形態について説明する。
図面に示されるように、また、以下で詳述するように、本実施の形態のリプログ装置も、先の第1の実施の形態に準じた構成を有する。ただし、本実施の形態では、リプログ対象外ECU及びリプログ不可ECUが通常の通信スケジュール(第1通信スケジュール)にて通信の確立準備を開始するとともにリプログ対象ECUがリプログ時の通信スケジュール(第2通信スケジュール)にて通信の確立準備を開始する時期である第1開始時期、並びに、リプログ装置がリプログ時の通信スケジュール(第2通信スケジュール)にて通信の確立準備を開始する時期である第2開始時期をそれぞれ制御する開始時期制御部をさらに備えており、この開始時期制御部は、プログラム書換開始指示を受けた場合、第1開始時期を第2開始時期よりも遅らせることで、リプログ対象ECUとの間でのみ通信を確立するようにしている。
図8(a)は、リプログ装置11aの内部構成を示す模式図である。この図8(a)に示すように、リプログ装置11aは、リプログ開始指示部110、通信制御部(通信コントローラ)111、記憶保持部112、開始時期制御部113、バスドライバBD1、バスドライバBD2及びアナログスイッチ114等々を有する。このうち、リプログ開始指示部110、通信制御部111及び記憶保持部112については、第1の実施の形態と同様であるため、ここでの重複する説明を割愛する。
開始時期制御部(開始時期制御手段)113は、例えばマイコンによって構成されており、リプログ対象外ECU10b及びリプログ不可ECU10cが通常時の通信スケジュール(第1通信スケジュール)による通信の確立準備を開始するとともにリプログ対象ECU10aがリプログ時の通信スケジュール(第2通信スケジュール)による通信の確立準備を開始する第1開始時期、並びに、リプログ装置11aがリプログ時の通信スケジュール(第2通信スケジュール)による通信の確立準備を開始する第2開始時期をそれぞれ制御する。
詳しくは、図8(a)に示すように、開始時期制御部113は、バスドライバBD2を介して通信線12に接続されており、バスドライバBD2のTxDラインを用いることで、通信線12の状態をデータ授受が行われている状態と同一のアクティブ状態にしたり、あるいは、通信線12の状態をデータ授受が行われていない状態と同一のアイドル状態にしたりする。
また、図8(a)に示すように、開始時期制御部113は、通信制御部111及びバスドライバBD1間のRxDラインに介在するアナログスイッチ114に接続されている。開始時期制御部113は、アナログスイッチ114をオフとしてRxDラインをオープンとすることで、通信制御部111(当該リプログ装置11a)に通信線12の状態がアイドル状態のままであると誤認識させることが可能となる。一方、開始時期制御部113は、アナログスイッチ114をオンとしてRxDラインをショートすることで、通信制御部111(当該リプログ装置11a)に通信線12の状態がアクティブ状態であるか、あるいは、アイドル状態であるかについて検出させることが可能となる。
そして、開始時期制御部113は、通信線12をアクティブ状態とすることで全てのECU10に通信の確立準備を待機させる一方、通信線12が実際にはアクティブ状態とされているにもかかわらずアイドル状態であると誤認識させて当該リプログ装置11aに通信の確立準備を開始させる。これにより、第1開始時期を第2開始時期よりも遅らせている。
図8(b)は、リプログ可能ECU(リプログ対象ECU10a及びリプログ対象外ECU10b)の内部構成を示す模式図である。図8(b)に示すように、リプログ対象ECU10a及びリプログ対象外ECU10bは、通信制御部(通信コントローラ)101a及び記憶保持部102aをそれぞれ有する。
このうち、通信制御部101bは、先の通信制御部101aに準じた構成を有しており、通信中処理(図6(a))を実行する。ただし、通信制御部101bは、先の通信制御部101aとは異なり、通常時の通信スケジュールにて通信の確立準備を開始するか、あるいは、リプログ時の通信スケジュールにて通信の確立準備を開始するかについて、リプログ対象ECU10a及びリプログ対象外ECU10bの起動時に決定する起動時処理(図11(a)にて後述)を実行する。
このように、リプログ可能ECUは、「通常時の通信スケジュール情報」、「リプログ時の通信スケジュール情報」、「通信起動処理切替機能(通常時の通信スケジュール、リプログ時の通信スケジュールを切替)」及び「リプログ機能」を有する。
図8(c)は、リプログ不可ECU10cの内部構成を示すブロック図である。図8(c)に示すように、リプログ不可ECU10cは、通信制御部(通信コントローラ)101c及び記憶保持部102をそれぞれ有する。このうち、通信制御部101dは、通常時の通信スケジュールにて通信の確立準備を当該ECU10cの起動時に開始する起動時処理を実行する。記憶保持部102dは、通常時の通信スケジュールの情報及び制御プログラムを記憶保持する。このように、リプログ不可ECUは、「通常時の通信スケジュール情報」を有する。
なお、本実施の形態では、通常時の通信スケジュールとして図13(a)に示す通信スケジュールを採用しているとともに、リプログ時の通信スケジュールとして図13(b)に示す通信スケジュールを採用している。
このうち、図13(a)に示されるように、通常時の通信スケジュールには、複数個(例えば「6個」)の固定幅のフレームF11から構成され、車両機能制御に必要なデータの送信に利用されるスタティックセグメントSS1と、複数個(例えば「2個」)の可変幅のフレームF12から構成され、車両機能制御に直接関係のないデータの送信に利用されるダイナミックセグメントDS1とが交互に繰り返されている。
同様に、図13(b)に示されるように、リプログ時の通信スケジュールには、複数個(例えば「2個」)の固定幅のフレームF21から構成されて車両機能制御に必要なデータの送信に利用されるスタティックセグメントSS2と、複数個(例えば「7個」)の可変幅のフレームF22から構成されて車両機能制御に直接関係のないデータの送信に利用されるダイナミックセグメントDS2とが交互に繰り返されている。
これら図13(a)及び(b)の対比から分かるように、フレームXの大きさとフレームYの大きさが異なるものの、通信サイクルC1と通信サイクルC2の大きさは同一である。したがって、リプログ対象外ECU10bは、フレームXを受信することができるものの、そのフレームXの受信間隔が通信サイクルC2とは異なるため、通信の確立に失敗することとなる。
これら図13(a)及び(b)の対比から分かるように、通信サイクルC1と通信サイクルC2の大きさが同一であるものの、フレームXの大きさとフレームYの大きさが異なる。したがって、リプログ対象外ECU10bは、後述するように、リプログ時の通信スケジュールのフレームYを受信することができないため、通信の確立に失敗する(通信に参加できない)ことになる。
リプログ装置11aについてさらに説明する。なお、リプログ装置11aは、後述の通信開始信号を送信する前にRxD端子にて通信線12がアクティブ状態であることを検出すると、通信開始信号を送信することはできない。しかし、リプログ装置11aは、RxDラインの状態がオープンであれば、通信線12の実際の状態にかかわらず、通信線12はアイドル状態であると認識するため、この通信開始信号を送信可能である。
リプログ装置11aは、リプログ開始操作がなされると、リプログ対象ECU10aとの間でのみ車載ネットワーク(通信線12)を介した通信を確立することで、プログラムの書換を行う。詳しくは、リプログ装置11aは、リプログ開始操作がなされてから例えば通信サイクルC2の2倍の期間が経過した後、通信開始信号を通信線12に送信するとともに、この通信開始信号を送信した通信サイクルの次の通信サイクル以降、スタートアップフレームを周期的に送信する。他のノード(リプログ対象ECU10a及びリプログ対象外ECU10b並びにリプログ不可ECU10c)は、こうしたスタートアップフレームを受信して、その周期的なタイミングに同期することで通信が確立されることになる。なお、リプログ装置11aによって送信される通信開始信号とスタートアップフレームとの送信間隔は、通信サイクルC2の1サイクル時間未満であり、スタートアップフレームの周期的な送信とは、通信サイクルC2の1サイクル時間による周期的な送信である。
ここで例えば、上記スタートアップフレームがリプログ装置11aのアクティブ出力によって破壊されると、他のノードは同期することができず、通信を確立することができなくなってしまう。そのため、通信開始信号の送信後、最初のスタートアップフレームを送信する前に、通信線12はアイドル状態に戻される必要がある。このタイミングが、アイドル状態に戻す必須のタイミングである。
ちなみに、通信開始信号とリプログ装置11aのアクティブ出力が重なっても通信確立に影響を及ぼさない。通信開始信号は、実態は、アクティブ出力と同じ意味であり、他のノードはアクティブ状態が継続していると認識するに過ぎない。他のノードは、通信開始信号によるアクティブ状態であるか、リプログ装置11aによるアクティブ状態であるかによらず、そのアクティブ状態が解除、すなわちアイドル状態になってから各々の通信サイクルの2倍の期間が経過した後、そのノードが通信開始信号を送信することができるようになる。したがって、リプログ装置11aによるアクティブ状態が継続するほど、他のノードの通信開始信号の送信は遅延されることになる。
以上のように構成されたリプログ装置11aを用いるリプログの実行手順を図9に一覧にて示す。図9に示すように、リプログ装置11aの未接続時において(図1(a)参照)、リプログ装置11aのユーザは、まず、手順1として、イグニッションスイッチをオン操作する。このとき、車載ネットワーク(通信線12)に接続された全てのECU10は、通常時の通信スケジュール(図2(a)参照)にて通信の確立準備を開始し、やがて通信が確立される。
通常時の通信スケジュールにて通信が確立されると、次に、リプログ装置11aのユーザは、手順2として、当該リプログ装置11aを接続して、リプログ準備要求を送信するとともに、リプログ対象ECUの情報(リプログ対象ECU情報)も送信する。このとき、車載ネットワーク(通信線12)に接続されたECU10のうち、リプログ可能ECUは、リプログ準備要求を受信し記憶保持部に各々記憶保持する。さらに、リプログ可能ECUは、リプログ対象ECU情報も取得し記憶保持部に各々記憶保持する。
リプログ準備要求及びリプログ対象ECU情報が送信されると、次に、リプログ装置11aのユーザは、手順3として、イグニッションスイッチをオフ操作し、再度オン操作する(所定操作)。このイグニッションスイッチのオン操作時に、リプログ装置11aは、バスドライバBD2を通じて通信線12をアクティブ状態とするとともに、アナログスイッチ114をオフとしてバスドライバBD1のRxDラインをオープンとする。そして、再度のイグニッションスイッチのオン操作時に、リプログ対象ECU10aは、事前に受信した情報に基づいて、リプログ時の通信スケジュール(図2(b)参照)にて通信の確立準備を開始しようとする。しなしながら、通信線12がアクティブ状態であるため、リプログ対象ECU10aは待ち状態となる(通信制御部の特性)。また、リプログ対象外ECU10b及びリプログ不可ECU10cは、事前に受信した情報に基づいて、通常時の通信スケジュール(図2(a)参照)にて通信の確立準備を開始しようとする。しかしながら、通信線12がアクティブ状態であるため、リプログ対象外ECU10b及びリプログ不可ECU10cは待ち状態となる(通信制御部の特性)。
次に、リプログ装置11aのユーザは、手順4として、当該リプログ装置11aに対しリプログ開始操作をする。リプログ装置11aは、バスドライバBD2の通信線12をアイドル状態とするとともに、アナログスイッチ114をオンとしてバスドライバBD1のRxDラインをショートする。その後、リプログ装置11aは、通信開始の信号を通信線12に出力する。
このとき、リプログ装置11aは、リプログ時の通信スケジュールにて最初に通信を確立し、同一の通信スケジュールを持つリプログ対象ECU10aのみが通信を確立(通信に参加)できる。一方、リプログ対象外ECU10b及びリプログ不可ECU10cは、通常時の通信スケジュールにて通信を確立(通信に参加)しようとするが、通信スケジュールが異なるため、通信を確立(通信に参加)することはできない。こうして、リプログ装置11aとリプログ対象ECU10aとの間でのみ通信が確立され、リプログ装置11aは、リプログ対象ECU10aへ制御プログラムデータを送信開始し、リプログ対象ECU10aのプログラムデータが書き換えられる(リプログが実行される)ことになる。
リプログが実行されると、リプログ装置11aのユーザは、手順5として、イグニッションスイッチをオフ操作し、再度オン操作する。このとき、車載ネットワーク(通信線12)に接続された全てのECU10は、通常時の通信スケジュールにて通信の確立準備を開始する。やがて、車載ネットワークを介した通信が確立することになる。
図10は、リプログ装置11aによって実行される起動時処理の処理手順を示すフローチャートである。
リプログ装置11aは、例えばイグニッションスイッチがオン操作されると、図10に示す起動時処理を実行する。詳しくは、図10に示されるように、起動時処理を開始すると、リプログ装置11aは、まず、ステップS211の判断処理として、記憶保持部112に記憶保持したリプログ準備要求フラグがセットされているか否かを判断する。ここで、リプログ準備要求フラグがセットされていると判断するとき(ステップS211の判断処理において「Yes」)、リプログ装置11aは、続くステップS212の処理として、リプログ準備要求フラグをリセットするとともに、続くステップS213の処理として、バスドライバBD2を通じて通信線12をアクティブ状態にするとともに、アナログスイッチ114をオンとしてバスドライバBD1のRxDラインをオープンとする。
このようにして、リプログ装置11aは、イグニッションスイッチがオン操作されるとき、前回イグニッションスイッチのオン中にリプログ準備要求を送信していた場合には、リプログ準備要求の送信の記憶を削除するとともに、バスドライバBD2を通じて通信線12をアクティブ状態とし、バスドライバBD1のRxDラインをオープンとする(S211→S212→S213)。
これにより、リプログ対象ECU10aは、リプログ時の通信スケジュールにて通信の確立準備を開始しようとする。しかしながら、通信線12がアクティブ状態であるため、リプログ対象ECU10aは待ち状態となる(通信制御部の特性)。また、リプログ対象外ECU10b及びリプログ不可ECU10cは、通常時の通信スケジュールにて通信の確立準備を開始しようとする。しかしながら、通信線12がアクティブ状態であるため、リプログ対象外ECU10b及びリプログ不可ECU10cは待ち状態となる(通信制御部の特性)。
そしてリプログ装置11aは、続くステップS214の判断処理を通じて、リプログ開始操作がなされるまで待機する。リプログ開始操作がなされると(ステップS214の判断処理において「Yes」)、リプログ装置11aは、続くステップS215の処理として、リプログ時の通信スケジュールにて通信の確立準備を開始する。
ところで、通信の確立準備が開始されても即座に通信が確立されるわけではなく、例えば通信サイクルC2の2倍の期間が経過した後、リプログ装置11aが通信開始信号を通信線12に送信することで通信が確立される。なお、通信を確立するには、通信開始信号の送信後、次の最初のスタートアップフレームを送信する前に通信線12がアイドル状態に戻されていればよいことは既述の通りである。しかしながら、本実施の形態では、リプログ装置11aから通信開始信号が送信される前に通信線12をアイドル状態としている。また、リプログ装置11aが間違ってアクティブ状態を認識しないようにするべく、通信線12をアイドル状態に戻すタイミングを、RxDラインをショート状態に戻すタイミングよりも前としている。ちなみに、通信線12をアクティブ状態からアイドル状態に戻すタイミングは、スタートアップフレームが送信されるタイミングよりも前であっても、あるいは、通信開始信号が送信されるタイミングよりも前であってもよい。
リプログ装置11aは、続くステップS216の処理として、適宜の計時手段(図示略)にて計時を開始し、続くステップS217の判断処理を通じて、リプログ開始操作がなされた時点を基準として期間Taが経過するまで待機する。ここで、期間Taが経過したと判断するとき(ステップS217の判断処理において「Yes」)、リプログ装置11aは、続くステップS218の処理として、バスドライバBD2を通じて通信線12をアイドル状態とする。これにより、リプログ装置11aが通信開始信号を送信する前に通信線12をアイドル状態とすることができるようになる。
さらに、リプログ装置11aは、続くステップS219の判断処理として、リプログ開始操作がなされた時点を基準として期間Tbが経過するまで待機する。ここで、期間Tbが経過したと判断するとき(ステップS219の判断処理において「Yes」)、リプログ装置11aは、続くステップS220の処理として、アナログスイッチ114をバスドライバBD1のRxDラインをショートにする。これにより、リプログ装置11aは通信線12の状態を検出することができるようになる。
なお、本実施の形態では、上記期間Taとして、通信サイクルC2の2倍の期間から所定期間αだけ短縮した期間を設定しており、上記期間Tbとして、通信サイクルC1の2倍の期間から所定期間βだけ短縮した期間に設定している(ここで、所定期間α>所定期間β)。期間Ta及びTbをこのように設定することで、通信線12をアクティブ状態とする期間を明確にすることができるようになる。
一方、先のステップS211の判断処理において、リプログ準備要求フラグがセットされていないと判断するとき(ステップS211の判断処理において「No」)、リプログ装置11aは、続くステップS221の処理として、通常の通信スケジュールにて通信の確立準備を開始する。このようにして、リプログ装置11aは、イグニッションスイッチがオン操作されるとき、前回イグニッションスイッチがオン中にリプログ準備要求を送信していなかった場合には、通常時の通信スケジュールにて通信の確立準備を開始する(S211→S221)。
リプログ可能ECUは、例えばイグニッションスイッチがオン操作されると、図11(a)に示す起動時処理を実行する。詳しくは、図11(a)に示されるように、リプログ可能ECUは、起動時処理を開始すると、まず、ステップS231の判断処理として、記憶保持部102aに記憶保持したリプログ準備要求フラグがセットされているか否かを判断する。ここで、リプログ準備要求フラグがセットされていると判断するとき(ステップS231の判断処理において「Yes」)、リプログ可能ECUは、続くステップS232の処理として、当該リプログ可能ECUがリプログ対象とされているか否かを判断する。
当該リプログ可能ECUがリプログ対象ECU10aであると判断するとき(ステップS232の判断処理において「Yes」)、リプログ対象ECU10aは、続くステップS233の処理として、リプログ準備要求フラグをリセットするとともに、続くステップS234の処理として、リプログ時の通信スケジュールにて通信の確立準備を開始する。このようにして、イグニッションスイッチがオン操作されたときに、前回のイグニッションスイッチがオンとされている間にリプログ準備要求を受信するとともに当該リプログ可能ECUがリプログ対象ECUであると判断した場合には、リプログ時の通信スケジュールにて通信の確立準備を開始する(ステップS231→S232→S233→S234)。
一方、当該リプログ可能ECUがリプログ対象外ECU10bであると判断するとき(ステップS232の判断処理において「No」)、リプログ対象外ECU10bは、続くステップS235の処理として、リプログ準備要求フラグをリセットするとともに、続くステップS236の処理として、通常時の通信スケジュールにて通信の確立準備を開始する。このようにして、イグニッションスイッチがオン操作されたときに、前回のイグニッションスイッチがオンとされている間にリプログ準備要求を受信するとともに当該リプログ可能ECUがリプログ対象外ECUであると判断した場合には、通常時の通信スケジュールにて通信の確立準備を開始する(ステップS231→S232→S235→S236)。
他方、リプログ準備要求フラグがセットされていないと判断するとき(ステップS231の判断処理において「No」)、リプログ可能ECUは、続くステップS236の処理として、通常時の通信スケジュールにて通信の確立準備を開始する。このようにして、イグニッションスイッチがオン操作されたときに、前回のイグニッションスイッチがオンとされている間にリプログ準備要求を受信していないと判断した場合には、通常時の通信スケジュールにて通信の確立準備を開始する(ステップS231→S236)。
また、例えばイグニッションスイッチがオン操作されると、リプログ不可ECU10cは、図11(b)に示す起動時処理を実行する。詳しくは、図11(b)に示されるように、リプログ不可ECU10cは、続くステップS241の処理として、通常時の通信スケジュールにて通信の確立準備を開始する。このように、イグニッションスイッチがオン操作されたときに、通常時の通信スケジュールにて通信の確立準備を開始する(ステップS241)。
図12(a)は、リプログ装置11aの動作例を示すタイミングチャートである。また、図12(b)は、通信線12の状態例を示すタイミングチャートであり、図12(c)は、RxDラインの状態例を示すタイミングチャートである。さらに、図12(d)は、リプログ対象外ECU10bの動作例を示すタイミングチャートである。これら図12(a)〜(d)を参照しつつ、本実施の形態の動作について総括する。なお、リプログ装置11aは、前回イグニッションスイッチのオン中にリプログ準備要求を送信していたものとする。
図12(b)及び(c)にそれぞれ示されるように、例えば時刻t1において、イグニッションスイッチがオン操作されると、リプログ装置11aは、バスドライバBD2を通じて通信線12をアクティブ状態とするとともに、バスドライバBD1のRxDラインをオープンとする。これにより、図12(b)に示されるように通信線12がアクティブ状態であるため、リプログ対象ECU10aは、リプログ時の通信スケジュールにて通信の確立準備を開始しようとするものの待ち状態となる。同様に、リプログ対象外ECU10b及びリプログ不可ECU10cも、通常時の通信スケジュールにて通信の確立準備を開始しようとするものの待ち状態となる。
図12(a)に示されるように、例えば時刻t2において、リプログ装置11aに対しリプログ開始操作が行われると、リプログ装置11aは通信線12がアイドル状態のままであると誤認識しているため、リプログ時の通信スケジュールにて通信の確立準備を開始可能である。そして、リプログ装置11aは、時刻t2を基準として通信サイクルC2の2倍の期間が経過した例えば時刻t4(第2開始時期)に通信開始信号を通信線12に送信することで、リプログ時の通信スケジュールにて通信の確立準備を開始し、その後、スタートアップフレーム(図示略)を送信することで、リプログ時の通信スケジュールにて通信を確立する。
図12(b)に示すように、リプログ装置11aは、リプログ開始操作が行われた時刻t2を基準として期間Taが経過した例えば時刻t3に、バスドライバBD2を通じて通信線12をアイドル状態とする。なお、期間Taは、通信サイクルC2の2倍よりも短い時間に設定されている。そのため、リプログ装置11aは、プログラム書換開始指示を受けた時刻2以降、通信の確立準備を開始する時刻t4(第2開始時期)よりも前に、通信線12をアクティブ状態からアイドル状態へ切り換えることになる。
また、図12(c)に示すように、リプログ装置11aは、リプログ開始操作が行われた時刻t2を基準として期間Tbが経過した時刻に、バスドライバBD1のRxDラインをショートとする。なお、この期間Tbは、上記期間Taよりも長く、通信サイクルC2の2倍よりも短い時間に設定されている。これにより、リプログ装置11aは、通信線12の状態を誤認識させられることがなくなり、通信線12の状態を検出することができるようになる。すなわち、リプログ装置11aは、通信線12をアクティブ状態から実際にアイドル状態とした時刻t3以降時刻t4(第2開始時期)までに、通信線12がアイドル状態であるとの誤認識を終了させることになる。
また、リプログ対象外ECU10bは次のように動作する。すなわち、リプログ装置11aが送信した通信開始信号の送信完了後に通信線12はアイドル状態になるので、アイドル状態になった時刻から起算した通信サイクルC1の2倍の期間経過後に通信開始信号を送信しようとする。しかし、実際には、その手前でリプログ装置11aが送信するスタートアップフレームを受信する。リプログ装置11aから周期的に送信されるスタートアップフレームをリプログ対象外ECU10bが受信して、リプログ装置11aに同期して通信開始することを試みるが、通信スケジュールが異なるため通信を開始することができない。また、通信線12のアイドル状態が通信サイクルC1の2倍の期間発生することはないため、もはや自ら通信開始信号を送信することはない。
また、リプログ対象ECU10aは次のように動作する。すなわち、リプログ装置11aが送信した通信開始信号の送信完了後に通信線12がアイドル状態になるので、アイドル状態になった時刻から起算した通信サイクルC2の2倍の期間経過後に通信開始信号を送信しようとする。しかし、実際には、その手前でリプログ装置11aが送信するスタートアップフレームを受信する。リプログ装置11aから周期的に送信されるスタートアップフレームをリプログ対象ECU10aが受信して、リプログ装置11aに同期して通信開始することを試み、通信スケジュールが同じであるため通信を開始することができる。なお、この場合、リプログ対象ECU10aは通信開始信号を送信する必要はもはやなく、スタートアップフレームを受信することによって通信開始することができる。
なお、図12(b)においては図示を割愛しており、図12(d)においては割愛した図に基づきリプログ対象外ECU10bのタイミングチャートを図示しているが、通信線12は、実際には、時刻t3に一旦アイドル状態になった後、リプログ装置11aから通信開始信号が送信開始される時刻t4から送信完了する時刻まで、通信開始信号が送信されることに起因して再びアクティブ状態となる。そのため、この間、リプログ対象外ECU10b及びリプログ対象ECU10aは、実際には、再び通信開始待ち状態となっている。したがって、実際には、リプログ対象外ECU10bが通信開始信号を送信しようとする時刻t5は図示されたタイミングよりもより遅延することとなる。ちなみに、リプログ対象外ECU10bは通信開始信号を送信しないため、図12(d)において破線にて示している。
このようにして、リプログ対象外ECU10b及びリプログ不可ECU10cが通常の通信スケジュールにて通信の確立準備を開始しようとする時期である第1開始時期t5は、リプログ装置11aがリプログ時の通信スケジュールにて通信の確立準備を開始する時期である第2開始時期t4より遅れることになり、ひいては、リプログ装置11aの通信開始信号が必ず最初に通信線12に送信させることになる。
そして、リプログ装置11aによって、リプログ時の通信スケジュールにて最初に通信が確立されることになるため、この確立された通信に参加することができるのは、同一の通信スケジュールを有するリプログ対象ECU10aのみであり、異なる通信スケジュールを有するリプログ対象外ECU10bやリプログ不可ECU10cは、通信に参加することはできない。したがって、リプログ装置11aは、リプログ対象ECU10aとの間でのみ通信を確立することができるようになる。
以上説明したように、上記第2の実施の形態では、リプログ対象外ECU10b及びリプログ不可ECU10cが通常の通信スケジュールにて通信の確立準備を開始しようとする時刻t5を、リプログ装置11aがリプログ時の通信スケジュールにて通信の確立準備を開始する時刻t4よりも遅らせることとした。これにより、リプログ装置11a及びリプログ対象ECU10aとの間でのみ通信が確立するようになる。
上記第2の実施の形態では、開始時期制御部113は、リプログ開始操作がされた(プログラム書換開始指示を受けた)時刻t2以降、通信開始信号が送信される時刻t4よりも前の、例えば時刻t3に、アクティブ状態からアイドル状態へ通信線12を切り換えることとした。これにより、通信線12をアクティブ状態とする期間を明確にすることができるようになる。
上記第2の実施の形態では、開始時期制御部113は、通信線12をアクティブ状態から実際にアイドル状態とした時刻t3以降、通信線12がアイドル状態であるとの誤認を終了させることとした。これにより、リプログ装置11aは、通信線12が現実にアイドル状態となったときに、その状態を正しく検出することができるようになる。換言すれば、通信線12が現実にはアクティブ状態であることをリプログ装置11aが検出してしまうことを確実に防止することができるようになる。
なお、本発明に係るリプログシステム及びリプログ装置は、上記実施の形態にて例示した構成に限定されるものではなく、本発明の趣旨を逸脱しない範囲において、種々に変形して実施することが可能である。すなわち、上記実施の形態を適宜変更した例えば次の形態として実施することもできる。
上記第2の実施の形態では、先の図13(a)及び(b)に示されるように、フレームXの大きさとフレームYの大きさは異なるものの、通信サイクルC1と通信サイクルC2の大きさは同一としていたがこれに限らない。他に例えば、図13(a)及び(b)に対応する図として図14(a)及び(b)に示すように、通信サイクルC1と通信サイクルC2の大きさは異なるものの、フレームXの大きさとフレームYの大きさは同一としてもよい。これにより、リプログ対象外ECU10b及びリプログ不可ECU10cは、フレームYを受信することができるものの、そのフレームYの受信間隔が通信サイクルC2と異なるため、通信の確立に失敗する(通信に参加することはできない)。さらに、これらを併用することとしてもよい。図示を割愛するが、フレームXの大きさとフレームYの大きさが異なり、且つ、通信サイクルC1と通信サイクルC2の大きさも異なることとしてもよい。これによっても、上記第2の実施の形態と同一の効果及び変形例と同一の効果を得ることができるようになる。
上記第2の実施の形態では、バスドライバBD1及びBD2並びにアナログスイッチ114をそれぞれ別のデバイスで実現していたが、これに限らない。これらバスドライバBD1及びBD2並びにアナログスイッチ14を1つのデバイスで実現してもよい。これにより、コストの低減を図ることができるようになる。
リプログ対象ECU10aにリプログ装置11a自体を内蔵してもよい。リプログ装置内蔵ECUの制御プログラムをクローンECUに書き込むにあたり、これら内蔵ECU及びクローンECU間で、通常時とは異なる通信スケジュールにて通信を確立することができるようになる。
1…リプログシステム(プログラム書換システム)、10…電子制御装置、10a…リプログ対象ECU(プログラム書換対象制御装置)、10b…リプログ対象外ECU(プログラム書換対象外制御装置)、10c…リプログ不可ECU(プログラム書換不可制御装置)、11、11a…リプログ装置(プログラム書換装置)、12…通信線(車載ネットワーク)、110…リプログ開始指示部(プログラム書換開始指示手段)、101a、101c、111、111a…通信制御部(通信コントローラ)、102、102a、112…記憶保持部、113…開始時期制御部、114…アナログスイッチ。