(57)【要約】【課題】複数の制御装置それぞれへ制御プログラムを書き込む際の作業効率を向上させること。【解決手段】外部ツール３００から取得された制御プログラムは、ゲートウェイ２０のＲＡＭ２４に蓄積された後、各ＥＣＵ１０の第２ＲＯＭ１３へ書き込まれる。そのため、プログラムデータがゲートウェイ２０のＲＡＭ２４に蓄積された後であれば、外部ツール３００との接続状態を維持しなくても、ＥＣＵ１０それぞれに制御プログラムを書き込むことができる。このように、外部ツール３００との接続状態を維持しなければならない待機時間を短くすることができるため、本プログラム書込システム１が実装された車両の製造工程において、複数のＥＣＵ１０それぞれに対して連続的に制御プログラムの書き込みを行う場合には、外部ツール３００を各ＥＣＵ１０それぞれに接続しておく時間が短くなり、総合的な作業効率が向上する。【選択図】図１
2005078324.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御装置により動作が制御される制御対象に備えられ、前記複数の制御装置それぞれに対し、該制御装置の内蔵メモリへ制御プログラムの書き込みを行うプログラム書込装置であって、
当該プログラム書込装置の外部から、前記複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の前記制御プログラムを示すプログラムデータを取得する取得手段と、
該取得手段により取得されたプログラムデータを蓄積する第１蓄積手段と、
該第１蓄積手段により蓄積されたプログラムデータに基づき、該プログラムデータで示される制御プログラムそれぞれを、該制御プログラムを書き込むべき前記制御装置の内蔵メモリへ書き込む第１書込手段と、を備えている
ことを特徴とするプログラム書込装置。
【請求項２】
前記取得手段が前記プログラムデータを取得する際の通信速度は、該取得手段により取得され前記第１蓄積手段により蓄積されたプログラムデータで示される制御プログラムが前記内蔵メモリまで伝送する際の通信速度以上の通信速度となるように構成されている
ことを特徴とする請求項１に記載のプログラム書込装置。
【請求項３】
前記取得手段は、当該プログラム書込装置外部から無線通信によって前記プログラムデータを取得可能に構成されている
ことを特徴とする請求項１または請求項２に記載のプログラム書込装置。
【請求項４】
前記取得手段により取得され前記第１蓄積手段により蓄積されるプログラムデータは、所定の圧縮形式でデータ量が圧縮された圧縮プログラムデータであって、
前記第１蓄積手段により蓄積された圧縮プログラムデータを解凍する解凍手段を備え、
前記第１書込手段は、前記解凍手段により解凍されたプログラムデータで示される制御プログラムそれぞれを前記制御装置の内蔵メモリへ書き込む
ことを特徴とする請求項１から３のいずれかに記載のプログラム書込装置。
【請求項５】
前記圧縮プログラムデータは、前記複数の制御プログラムそれぞれに対応するデータ領域がｎ個の分割領域（第１から第ｎ分割領域）に分割され、かつ、該分割領域それぞれが圧縮されたデータであって、
前記解凍手段は、前記蓄積手段により蓄積された圧縮プログラムデータを、前記複数の制御プログラムに対応する前記第ｉ分割領域（１≦ｉ≦ｎ）それぞれについて前記制御プログラムの一部として順次解凍して、
前記書込手段は、前記解凍手段により解凍された制御プログラムの一部それぞれを前記制御装置の内蔵メモリそれぞれに書き込むように構成され、
前記解凍手段による解凍、および、前記書込手段による書き込みを前記第１分割領域から第ｎ分割領域に対して繰り返し行うことによって、ｎ個の分割領域からなる前記制御プログラムを前記制御装置それぞれの内蔵メモリへ書き込むように構成されている
ことを特徴とする請求項４に記載のプログラム書込装置。
【請求項６】
前記制御対象には、前記プログラムデータを記録可能な外部記録装置が備えられており、
前記取得手段は、前記制御対象に備えられた外部記録装置から読み出すことによりプログラムデータを取得する
ことを特徴とする請求項１から５のいずれかに記載のプログラム書込装置。
【請求項７】
前記取得手段による前記プログラムデータの取得が終了した旨を報知する取得報知手段を備えている
ことを特徴とする請求項１から６のいずれかに記載のプログラム書込装置。
【請求項８】
複数の制御装置により動作が制御される制御対象に備えられ、前記複数の制御装置それぞれに対し、該制御装置の内蔵メモリへ制御プログラムの書き込みを行うプログラム書込装置であって、
あらかじめ前記複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の前記制御プログラムを示すプログラムデータを蓄積している第２蓄積手段と、
外部からの指令を受けて、前記第２蓄積手段により蓄積されているプログラムデータに基づき、該プログラムデータで示される制御プログラムそれぞれを、該制御プログラムを書き込むべき前記制御装置の内蔵メモリへ書き込む第２書込手段と、を備えている
ことを特徴とするプログラム書込装置。
【請求項９】
前記書込手段による内蔵メモリへの制御プログラムの書き込みが終了した際に、該書き込まれた制御プログラムおよび前記蓄積手段により蓄積されたプログラムデータで示される制御プログラムに基づいて前記書込手段による書き込みが正常に行われたか否かを判定する書込判定手段を備えており、
前記書込手段は、前記書込判定手段により書き込みが正常に行われていないと判定された内蔵メモリに対して、再度、制御プログラムの書き込みを行う
ことを特徴とする請求項１から８のいずれかに記載のプログラム書込装置。
【請求項１０】
前記書込判定手段は、前記蓄積手段により蓄積された前記プログラムデータで示される制御プログラムから所定のアルゴリズムに従って求められる値と、前記書込手段により前記内蔵メモリに書き込まれた制御プログラムから所定のアルゴリズムに従って求められる値と、が一致する場合に、書き込みが正常に行われたと判定する
ことを特徴とする請求項９に記載のプログラム書込装置。
【請求項１１】
前記書込手段により書き込まれた前記制御プログラムの中に、前記書込手段による正規の書き込み以外の要因で不正に書き換えられた制御プログラムが存在するか否かを、前記蓄積手段により蓄積された前記プログラムデータで示される制御プログラム、および、前記書込手段により前記内蔵メモリに書き込まれた制御プログラムに基づいて判定する不正判定手段と、
該不正判定手段により不正に書き換えられている前記制御プログラムが存在すると判定された際に、前記制御装置による前記制御対象の動作を規制する動作規制手段と、を備えている
ことを特徴とする請求項１から１０のいずれかに記載のプログラム書込装置。
【請求項１２】
前記書込手段により書き込まれた前記制御プログラムの中に、前記書込手段による正規の書き込み以外の要因で不正に書き換えられた制御プログラムが存在するか否かを、前記蓄積手段により蓄積された前記プログラムデータで示される制御プログラム、および、前記書込手段により前記内蔵メモリに書き込まれた制御プログラムに基づいて判定する不正判定手段と、
該不正判定手段により不正に書き換えられている前記制御プログラムが存在すると判定された際に、該不正に書き換えられている前記制御プログラムが存在する旨を報知する不正報知手段と、を備えている
ことを特徴とする請求項１から１０のいずれかに記載のプログラム書込装置。
【請求項１３】
前記不正判定手段は、前記蓄積手段により蓄積された前記プログラムデータで示される制御プログラムから所定のアルゴリズムに従って算出される値と、前記書込手段により前記内蔵メモリに書き込まれた制御プログラムから所定のアルゴリズムに従って算出される値と、が一致しない場合に、不正に書き換えられた制御プログラムが存在すると判定する
ことを特徴とする請求項１１または請求項１２に記載のプログラム書込装置。
【請求項１４】
前記複数の制御装置のうちいずれかの制御装置と一体に構成されている
ことを特徴とする請求項１から１３のいずれかに記載のプログラム書込装置。
【請求項１５】
前記複数の制御装置全ての内蔵メモリへの前記書込手段による前記制御プログラムの書き込みが終了した際に、該制御プログラムの書き込みが終了した旨を報知する書込報知手段を備えている
ことを特徴とする請求項１から１４のいずれかに記載のプログラム書込装置。
【請求項１６】
請求項１から１５のいずれかに記載のプログラム書込装置および複数の制御装置からなる
ことを特徴とするプログラム書込システム。
【請求項１７】
複数の前記プログラム書込装置を備え、
前記複数の制御装置それぞれは、前記複数のプログラム書込装置のうちいずれかが内蔵メモリへの前記制御プログラムの書き込みを行う前記プログラム書込装置として設定されており、
前記複数のプログラム書込装置によって、前記複数の制御装置それぞれの内蔵メモリへの前記制御プログラムの書き込みを分担して並列的に行うように構成されている
ことを特徴とする請求項１６に記載のプログラム書込システム。
【請求項１８】
複数の前記プログラム書込装置（第１から第ｎのプログラム書込装置）を備え、
前記複数の制御装置それぞれは、第ｉ（１≦ｉ≦ｎ）のプログラム書込装置が内蔵メモリへ前記制御プログラムの第ｉ分割領域に相当するデータの書き込みを行うプログラム書込装置として設定されており、
前記複数のプログラム書込装置によって、前記複数の制御装置それぞれの内蔵メモリへの前記制御プログラムの書き込みを分担して並列的に行うように構成されている
ことを特徴とする請求項１６に記載のプログラム書込システム。
【請求項１９】
請求項１から１５のいずれかに記載のプログラムデータを送信可能に構成された
ことを特徴とする送信装置。
【請求項２０】
少なくとも請求項１から１５に記載のプログラム書込装置の一部としてコンピュータシステムを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、それぞれが内蔵メモリに記録された制御プログラムに従って制御対象の動作を制御する複数の制御装置に対して、内蔵メモリへの制御プログラムの書き込みを行うプログラム書込装置に関する。
【背景技術】
【０００２】
従来から、内蔵メモリに記録された制御プログラムに従って制御対象の動作を制御する制御装置においては、制御装置自身とデータ通信可能に接続された外部装置によって内蔵メモリへの制御プログラムの書き込みを行うことが一般的である。なお、ここでいう「外部装置」とは、あらかじめ制御装置の内蔵メモリへ書き込むべき制御プログラムを記録しており、制御装置に接続された状態で制御装置の内蔵メモリに制御プログラムを書き込むための処理を行う装置である。
【０００３】
この種の制御装置の具体的な例としては、例えば、制御プログラムの書き込みに関する処理（書換処理）を実行するための実行プログラム（書換制御プログラム）を外部装置から入力し、この実行プログラムを制御プログラム用のメモリ領域とは異なる（書き換え対象でない）メモリ領域に格納して実行しながら、この実行プログラムに記述（配置）されている変更命令で示される通信速度により外部装置から制御プログラム（データ）を受信する、といった構成の制御装置（電子装置）が提案されている（特許文献１参照）。
【０００４】
この制御装置は、それぞれ異なる制御対象の動作を制御する複数の制御装置からなる制御システムの一部として利用することも考えられ、この制御システムにおいて、制御プログラムは、外部装置によって各制御装置の内蔵メモリへ順番に書き込まれる。
【特許文献１】特開平１０−１１１８６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上述の制御システムにおいては、外部装置が各制御装置それぞれと一対一で順番にデータ通信を行うため、全ての制御装置それぞれの内蔵メモリへの制御プログラムの書き込みが完了するまで外部装置と制御システムとの接続状態を維持しておかなければならない。
【０００６】
このとき、外部装置は、特定の制御装置に対する制御プログラムの書き込みが終了してから別の制御装置に対して制御プログラムの書き込みに関する処理を開始する。そのため、制御装置に入力された制御プログラムが実際に内蔵メモリへ書き込まれるまでに待機時間（書き込みに要する時間）が発生し、接続状態を維持しなければならない時間が無用に長くなってしまうという問題があった。
【０００７】
そのため、上述の制御システムが実装された特定装置（例えば、車両など）の製造工程において、複数の特定装置それぞれに対して連続的に制御プログラムの書き込みを行う場合には、外部装置を各特定装置の制御装置それぞれに接続しておく時間が長くなるため、作業効率が悪く、特定装置の製造に要する時間および製造コストを増加させてしまう。
【０００８】
本発明は、上記課題を解決するためになされたものであり、その目的は、複数の制御装置それぞれの内蔵メモリへ制御プログラムを書き込む際の作業効率を向上させるための技術を提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するため請求項１に記載のプログラム書込装置は、複数の制御装置により動作が制御される制御対象に備えられ、前記複数の制御装置それぞれに対し、該制御装置の内蔵メモリへ制御プログラムの書き込みを行う装置であって、取得手段，第１蓄積手段および第１書込手段を備えている。
【００１０】
これらのうち、取得手段は、プログラム書込装置本体の外部から、複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の制御プログラムを示すプログラムデータを取得する。また、第１蓄積手段は、取得手段により取得されたプログラムデータを蓄積する。そして、第１書込手段は、第１蓄積手段により蓄積されたプログラムデータに基づき、このプログラムデータで示される制御プログラムそれぞれを、制御プログラムを書き込むべき制御装置の内蔵メモリへ書き込む。
【００１１】
このように構成されたプログラム書込装置によれば、取得手段によりプログラムデータとして取得された制御プログラムは、第１蓄積手段に蓄積された後、第１書込手段により各制御装置の内蔵メモリへ書き込まれる。そのため、プログラムデータを供給するための装置（外部装置）を制御対象（または、プログラム書込装置）とデータ通信可能に接続し、この外部装置によりプログラム書込装置へプログラムデータを供給する構成においては、プログラムデータが第１蓄積手段に蓄積された後であれば、外部装置との接続状態を維持しておかなくても、制御装置それぞれの内蔵メモリに制御プログラムを書き込むことができる。
【００１２】
このように、外部装置との接続状態を維持しなければならない無用な時間を短くできるため、制御装置それぞれの内蔵メモリに制御プログラムを書き込む際の作業効率が向上する。
【００１３】
特に、本プログラム書込装置が実装された制御対象（例えば、車両など）の製造工程において、複数の制御装置それぞれに対して連続的に制御プログラムの書込を行う場合には、外部装置を各制御対象それぞれに接続する時間を短くできるため、総合的な作業効率が向上し、制御対象の製造に要する時間および製造コストを抑えることができる。
【００１４】
なお、上述の取得手段は、プログラム書込装置本体の外部からプログラムデータを取得する手段であるが、ここで取得されるプログラムデータは、第１蓄積手段に一旦蓄積されることから、第１蓄積手段から各制御装置の内蔵メモリまで至る経路とは無関係にデータ通信を行うことができる。そのため、請求項２に記載のように、取得手段がプログラムデータを取得する際の通信速度は、この取得手段により取得され第１蓄積手段により蓄積されたプログラムデータで示される制御プログラムが内蔵メモリまで伝送する際の通信速度以上の通信速度となるように構成するとよい。
【００１５】
このように構成すれば、取得手段がプログラムデータを取得するまでに要する時間をより短縮できる。
また、この取得手段は、外部装置を制御対象（または、プログラム書込装置）にケーブルを介して接続し、有線通信によりプログラムデータを取得するように構成してもよいが、請求項３に記載のように、プログラム書込装置の外部から無線通信によってプログラムデータを取得可能に構成してもよい。
【００１６】
このように構成すれば、外部装置を制御対象へ物理的に接続する必要が無くなるため、各制御装置の内蔵メモリへ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部装置を制御対象に接続する、および、外部装置から取り外すのに要する時間を削減することができる。
【００１７】
また、プログラム書込装置の外部から取得手段により取得されるプログラムデータが、所定の圧縮形式によりデータ量を圧縮した圧縮プログラムデータである場合には、請求項４に記載のように、第１蓄積手段により蓄積された圧縮プログラムデータを解凍する解凍手段を備え、第１書込手段が、解凍手段により解凍されたプログラムデータで示される制御プログラムそれぞれを制御装置の内蔵メモリへ書き込む、ように構成するとよい。
【００１８】
このように構成すれば、取得手段により取得されるプログラムデータのデータ量を圧縮しない場合よりも少なくすることができるため、取得手段がプログラムデータを取得するのに要する時間、つまり、外部装置を各制御対象それぞれに接続しておく時間をより短くできる。
【００１９】
また、圧縮プログラムデータが、複数の制御プログラムそれぞれに対応するデータ領域がｎ個の分割領域（第１から第ｎ分割領域）に分割され、かつ、これら分割領域それぞれが圧縮されたデータである場合には、請求項５に記載のように、解凍手段が、蓄積手段により蓄積された圧縮プログラムデータを、複数の制御プログラムに対応する第ｉ分割領域（１≦ｉ≦ｎ）それぞれについて制御プログラムの一部として順次解凍して、第１書込手段が、解凍手段により解凍された制御プログラムの一部それぞれを制御装置の内蔵メモリそれぞれに書き込むように構成し、解凍手段による解凍および第１書込手段による書き込みを第１分割領域から第ｎ分割領域に対して繰り返し行うことによって、ｎ個の分割領域からなる制御プログラムが制御装置それぞれの内蔵メモリへ書き込まれる、ようにするとよい。
【００２０】
このように構成すれば、制御プログラムは第１から第ｎ分割領域の順番で各制御装置の内蔵メモリそれぞれへ書き込まれていくため、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを同時期に終了させることができる。
【００２１】
ところで、上述した取得手段は、プログラム書込装置の外部からプログラムデータを取得できればよいため、上述した外部装置だけでなく、制御対象に備えられている別の装置から取得するような構成を考えることもできる。
【００２２】
例えば、制御対象にプログラムデータを記録可能な外部記録装置が備えられている場合であれば、取得手段は、請求項６に記載のように、この制御対象に備えられた外部記録装置から読み出すことによりプログラムデータを取得する、といった構成が考えられる。
【００２３】
このように構成されたプログラム書込装置によれば、プログラムデータを供給するための装置（外部装置）を接続および取り外す必要が無くなるため、各制御対象の内蔵メモリへ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部装置を制御対象に接続するのに要する時間を削減することができる。
【００２４】
なお、この構成における外部記録装置とは、例えば、制御対象が車両である場合において、ナビゲーションシステムに搭載されたハードディスクや着脱可能なメディア（ＣＤ−Ｒ，メモリカードなど）、カーオーディオに搭載された着脱可能なメディアなどのことである。特に、外部記録装置として制御対象に着脱可能なメディアを用いる場合には、制御対象の製造工程において、各制御装置の内蔵メモリへの制御プログラムの書き込みを、上述したメディアを制御対象に取り付けておいて各制御装置の内蔵メモリへの制御プログラムの書き込みが終了した時点でメディアを取り外す、といった容易な手順で行うことができる。
【００２５】
また、請求項７に記載のプログラム書込装置は、取得手段によるプログラムデータの取得が終了した旨を報知する取得報知手段を備えている。
このように構成されたプログラム書込装置によれば、取得報知手段によって、外部からのプログラムデータの取得が終了したことを報知することができる。
【００２６】
ここで、プログラムデータを供給するための装置（外部装置）を制御対象（または、プログラム書込装置）とデータ通信可能に接続し、この外部装置によりプログラム書込装置へプログラムデータを供給する構成であれば、取得報知手段は、外部装置との接続状態を維持してもよくなったタイミングを報知していることになる。
【００２７】
よって、利用者は、取得報知手段による報知で外部装置との接続状態を維持しておかなくてもよくなったことを確認でき、このことを確認したうえで外部装置を取り外せば、外部装置との接続状態を最短時間ですませることができる。
【００２８】
また、上記課題を解決するため請求項８に記載のプログラム書込装置は、複数の制御装置により動作が制御される制御対象に備えられ、複数の制御装置それぞれに対し、これら制御装置の内蔵メモリへ制御プログラムの書き込みを行うプログラム書込装置であって、第２蓄積手段および第２書込手段を備えている。
【００２９】
これらのうち、第２蓄積手段は、あらかじめ複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の制御プログラムを示すプログラムデータを蓄積している。そして、第２書込手段は、外部からの指令を受けて、第２蓄積手段により蓄積されているプログラムデータに基づき、このプログラムデータで示される制御プログラムそれぞれを、これら制御プログラムを書き込むべき制御装置の内蔵メモリへ書き込む。
【００３０】
このように構成されたプログラム書込装置によれば、あらかじめ第２蓄積手段に蓄積されているプログラムデータで示される制御プログラムが、第２書込手段によって各制御装置の内蔵メモリへ書き込まれる。
【００３１】
このように、第２蓄積手段には、複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の制御プログラムを示すプログラムデータが蓄積されているため、プログラムデータを供給するための装置（外部装置）を接続および取り外す必要が無く、各制御対象の内蔵メモリへ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部装置を制御対象に接続するのに要する時間を削減することができる。
【００３２】
これにより、本プログラム書込装置が実装された制御対象（例えば、車両など）の製造工程において、複数の制御装置それぞれに対して連続的に制御プログラムの書込を行う場合、第２書込手段への書込指令を行うことができればよく、外部装置を各制御対象それぞれに接続しておく必要がないため、作業効率が向上し、制御対象の製造に要する時間および製造コストを抑えることができる。
【００３３】
なお、この構成において、第２書込手段に制御プログラムの書込を行わせるための「指令」とは、例えば、プログラム書込装置が起動されたことを「指令」としてもよいし、外部からの指令信号を「指令」としてもよいし、プログラム書込装置に操作部が備えられていれば、この操作部により特定の操作が行われたことを「指令」としてもよい。
【００３４】
また、請求項９に記載のプログラム書込装置は、書込手段（第１，第２書込手段）による内蔵メモリへの制御プログラムの書き込みが終了した際に、この書き込まれた制御プログラムおよび蓄積手段により蓄積されたプログラムデータで示される制御プログラムに基づいて、書込手段による書込が正常に行われたか否かを判定する書込判定手段を備え、書込手段が、書込判定手段により書き込みが正常に行われていないと判定された内蔵メモリに対して、再度、制御プログラムの書き込みを行う。
【００３５】
このように構成されたプログラム書込装置によれば、正常に書き込まれていない内蔵メモリに対し、再度、制御プログラムを書き込むことができる。そのため、制御プログラムが正常に書き込まれていない状態で制御装置が誤作動してしまうといったことを防止できる。
【００３６】
なお、この構成における書込判定手段は、書込手段による書込が正常に行われたか否かを、書込手段により書き込まれた制御プログラムおよび蓄積手段により蓄積されたプログラムデータで示される制御プログラムに基づいて判定する手段であって、例えば、蓄積手段により蓄積されたプログラムデータで示される制御プログラムと、この制御プログラムが書込手段により書き込まれた内蔵メモリに書き込まれている制御プログラムと、が一致する場合に、書き込みが正常に行われたと判定する、ように構成すればよい。
【００３７】
また、請求項１０に記載のような構成としてもよい。請求項１０に記載のプログラム書込装置における書込判定手段は、蓄積手段により蓄積されたプログラムデータで示される制御プログラムから所定のアルゴリズムに従って求められる値と、書込手段により内蔵メモリに書き込まれた制御プログラムから所定のアルゴリズムに従って求められる値と、が一致する場合に、書き込みが正常に行われたと判定する。
【００３８】
このように構成すれば、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、書き込みが正常に行われたかどうかを判定することができる。
【００３９】
また、請求項１１に記載のプログラム書込装置は、書込手段（第１，第２書込手段）により書き込まれた制御プログラムの中に、書込手段による正規の書き込み以外の要因で不正に書き換えられた制御プログラムが存在するか否かを、蓄積手段（第１，第２蓄積手段）により蓄積されたプログラムデータで示される制御プログラム、および、書込手段により内蔵メモリに書き込まれた制御プログラムに基づいて判定する不正判定手段と、この不正判定手段により不正に書き換えられている制御プログラムが存在すると判定された際に、制御装置による制御対象の動作を規制する動作規制手段と、を備えている。
【００４０】
このように構成されたプログラム書込装置によれば、制御装置の内蔵メモリに書き込まれている制御プログラムが不正に書き換えられた場合であっても、動作規制手段によって制御装置による制御対象の動作を規制することができるため、不正に書き換えられた制御プログラムによって、制御対象が異常な動作をしてしまうことを防止できる。
【００４１】
なお、この構成における動作規制手段は、制御装置による制御対象の動作を規制する手段であって、このとき規制する動作としては特に限定されないが、例えば、制御装置の一部または全部の動作が行えなくなるようにすればよい。
【００４２】
また、請求項１２に記載のプログラム書込装置は、書込手段（第１，第２書込手段）により書き込まれた制御プログラムの中に、書込手段による正規の書き込み以外の要因で不正に書き換えられた制御プログラムが存在するか否かを、蓄積手段（第１，第２蓄積手段）により蓄積されたプログラムデータで示される制御プログラム、および、書込手段により内蔵メモリに書き込まれた制御プログラムに基づいて判定する不正判定手段と、この不正判定手段により不正に書き換えられている制御プログラムが存在すると判定された際に、不正に書き換えられている制御プログラムが存在する旨を報知する不正報知手段と、を備えている。
【００４３】
このように構成されたプログラム書込装置によれば、利用者は、不正報知手段による報知によって、不正に書き換えられた制御プログラムが存在する旨を確認することができるため、その旨を確認した後で、制御装置または制御対象を停止させたり、不正に書き換えられた制御プログラムを正規の制御プログラムに書き直す、といった対策を取ることができる。これによって、不正に書き換えられた制御プログラムにより制御対象が異常な動作をし続けてしまうことを防止できる。
【００４４】
なお、上述した不正判定手段は、不正に書き換えられた制御プログラムが存在するかどうかを判定する手段であって、一定期間毎または所定のタイミングで、例えば、蓄積手段により蓄積されたプログラムデータで示される制御プログラムと、この制御プログラムが書込手段により書き込まれた内蔵メモリに書き込まれている制御プログラムと、が一致する場合に、不正に書き換えられていると判定する、ように構成すればよい。
【００４５】
または、請求項１３に記載のように構成してもよい。請求項１３に記載されたプログラム書込装置は、蓄積手段（第１，第２蓄積手段）により蓄積されたプログラムデータで示される制御プログラムから所定のアルゴリズムに従って算出される値と、書込手段（第１，第２書込手段）により内蔵メモリに書き込まれた制御プログラムから所定のアルゴリズムに従って算出される値と、が一致しない場合に、不正に書き換えられた制御プログラムが存在すると判定する。
【００４６】
このように構成すれば、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、不正に書き換えられた制御プログラムが存在するか否かを判定することができる。
【００４７】
また、請求項１４に記載のプログラム書込装置は、複数の制御装置のうちいずれかの制御装置と一体に構成されている。
このように構成すれば、複数の制御装置のうちいずれかがプログラム書込装置として機能するため、制御装置を備える制御対象全体としての構成を単純化することができる。
【００４８】
また、請求項１５に記載のプログラム書込装置は、複数の制御装置全ての内蔵メモリへの書込手段（第１，第２書込手段）による制御プログラムの書き込みが終了した際に、これら制御プログラムの書き込みが終了した旨を報知する書込報知手段と、を備えている。
【００４９】
このように構成されたプログラム書込装置によれば、利用者は、書込報知手段による報知で書込手段による制御プログラムの書き込みが全て終了したことを確認することができる。
【００５０】
なお、上述した取得報知手段，不正報知手段および書込報知手段により報知を行うための構成としては、例えば、報知すべき旨のメッセージを含む文字や画像を表示装置により表示させたり印刷装置により印刷させることによって報知を行うように構成すればよい。また、報知すべき旨のメッセージをスピーカで音声として出力することによって報知を行うように構成してもよい。
【００５１】
また、請求項１６に記載のプログラム書込システムは、請求項１から１５のいずれかに記載のプログラム書込装置および複数の制御装置を備えている。
このように構成されたプログラム書込システムによれば、請求項１から１５のいずれかに記載のプログラム書込装置と同様の作用・効果を得ることができる。
【００５２】
また、請求項１７に記載のプログラム書込システムは、複数のプログラム書込装置を備えている。そして、複数の制御装置それぞれは、複数のプログラム書込装置のうちいずれかが内蔵メモリへの制御プログラムの書き込みを行うプログラム書込装置として設定されており、複数のプログラム書込装置によって、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを分担して並列的に行うように構成されている。
【００５３】
このように構成されたプログラム書込システムによれば、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを並列して行うことにより、全ての制御装置の内蔵メモリに対する制御プログラムの書き込みに要する時間を短くすることができる。
【００５４】
また、請求項１８に記載のプログラム書込システムは、複数のプログラム書込装置（第１から第ｎのプログラム書込装置）を備えている。そして、複数の制御装置それぞれは、第ｉ（１≦ｉ≦ｎ）のプログラム書込装置が内蔵メモリへ制御プログラムの第ｉ分割領域に相当するデータの書き込みを行うプログラム書込装置として設定されており、複数のプログラム書込装置によって、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを分担して並列的に行うように構成されている。
【００５５】
このように構成されたプログラム書込システムによれば、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを並列して行うことにより、複数の制御装置の内蔵メモリそれぞれに対する制御プログラムの書き込みに要する時間を均等にすることができる。
【００５６】
また、請求項１９に記載の送信装置は、請求項１から１５のいずれかに記載のプログラムデータを送信可能に構成されている。
このように構成された送信装置によれば、請求項６および請求項６を引用する請求項以外の請求項に記載されたプログラム書込装置へプログラムデータを送信する外部装置として機能することができる。
【００５７】
また、請求項２０に記載のプログラムは、少なくとも請求項１から１５に記載のプログラム書込装置の一部としてコンピュータシステムを機能させるためのプログラムである。
このように構成されたプログラムにより制御されるコンピュータシステムは、請求項１から１５のいずれかに記載のプログラム書込装置の一部を構成することができる。
【００５８】
なお、上述したプログラムは、それぞれコンピュータシステムによる処理に適した命令の順番付けられた列からなるものであって、請求項１から１５のいずれかに記載のプログラム書込装置の備える全ての手段としての機能をコンピュータシステムに実行させるためのプログラムである。このプログラムは、例えば、ＦＤ、ＣＤ−ＲＯＭ、メモリーカードなどの記録媒体、インターネットなどの通信回線網を介して、プログラム書込装置自身、コンピュータシステム、または、これらを利用する利用者に提供されるものである。また、このプログラムを実行するコンピュータシステムとしては、例えば、プログラム書込装置に内蔵されたコンピュータシステム、プログラム書込装置に無線または有線の通信路を介してデータ通信可能に接続されたコンピュータシステムなどを利用することができる。
【発明を実施するための最良の形態】
【００５９】
本発明を車両の動作を制御するプログラム書込システムに適用した例を説明する。
［第１実施形態］
プログラム書込システム１は、複数の制御対象１２０それぞれの動作を制御することにより車両全体の動作を制御するシステムであって、それぞれがセンサ１１０による検出信号に基づいて制御対象１２０の動作を制御する複数（１からａ）のＥＣＵ１０、プログラム書込システム１外部からのデータの入力を管理するゲートウェイ２０、各種情報を表示する第１，第２表示部３０，４０、電源供給部２１０によるスタータ２２０への電源供給を制御する供給規制部５０などが車内ＬＡＮ回線６０を介して接続されてなるものである。
【００６０】
ＥＣＵ１０は、ＥＣＵ１０全体の動作を制御するＣＰＵ１１、ＣＰＵ１１による処理手順などを記録している第１ＲＯＭ１２、制御対象１２０の動作を制御するための制御プログラムを記録・書換可能な第２ＲＯＭ１３、ＣＰＵ１１による処理結果などを記録するＲＡＭ１４、センサ１１０による検出信号を検出する検出部１５、制御対象１２０を駆動する駆動部１６、ＥＣＵ１０を車内ＬＡＮ回線６０とデータ通信可能に接続する通信部１７などがバス１８を介して接続されたものである。
【００６１】
ゲートウェイ２０は、ゲートウェイ２０全体の動作を制御するＣＰＵ２１、ＣＰＵ２１による処理手順などを記録している第１ＲＯＭ２２、後述するプログラム書込処理（図２）において生成される書込テーブルを記録・書換可能な第２ＲＯＭ２３、ＣＰＵ１１による処理結果などを記録するＲＡＭ２４、ゲートウェイ２０を車内ＬＡＮ回線６０とデータ通信可能に接続する通信部２７、プログラム書込システム１外部からデータを入出力するための通信部２Ａなどがバス２８を介して接続されたものである。この通信部２Ａは、プログラム書込システム１外部からデータを入出力するための外部コネクタ７０に接続されている。また、この通信部２Ａが外部コネクタ７０との間でデータを入出力する際には、通信部２７と車内ＬＡＮ回線６０との間でデータを入出力するよりも高速な通信速度となるように構成されている。
【００６２】
第１表示部３０は、外部コネクタ７０付近に配設されており、後述するプログラム書込処理（図２）において点灯する複数の表示ランプで構成されている。
第２表示部４０は、車両の室内に配設されており、後述する動作抑制処理（図３）においてメッセージを表示する表示用のパネルである。
【００６３】
供給規制部５０は、電源供給部２１０とスタータ２２０との間に介在する回路であり、初期状態においては、電源供給部２１０から供給された電源をそのままスタータ２２０に供給する一方、後述する動作抑制処理（図３）においてゲートウェイ２０から規制指令データを受信した際には、電源供給部２１０からスタータ２２０への電源供給を規制し（本実施形態においては、電源供給部２１０とスタータ２２０とをつなぐ電源の供給経路を開放する）、これにより、スタータ２２０が作動しなくする。なお、このスタータ２２０は、運転者の操作を受けて複数の制御対象１２０のうちの一つであるエンジンを作動させる周知のものであって、電源供給部２１０から供給される電源により動作するものである。
【００６４】
このように構成されたプログラム書込システム１は、各ＥＣＵ１０の備える第２ＲＯＭ１３それぞれに制御プログラムが書き込まれた状態で、この制御プログラムに従って各ＥＣＵ１０が制御対象１２０の動作を制御することによって、車両全体の動作を制御する。この制御プログラムは、プログラム書込システム１外部から提供されるものであって、本実施形態においては周知のコンピュータシステムである外部ツール３００から接続ケーブル３１０を介して供給される。
【００６５】
この外部ツール３００は、内蔵するメモリに、プログラム書込システム１を構成する各ＥＣＵ１０の第２ＲＯＭ１３それぞれに書き込むべき複数（１からａ）の制御プログラムと、これら制御プログラムを書き込むべきＥＣＵ１０とを特定可能なプログラムデータを記録している。そして、図示されない操作部により特定の操作が行われた際に、このプログラムデータを外部（接続ケーブル３１０側）へ向けて送信するように構成されている。なお、このプログラムデータは、所定の圧縮形式でデータ量が圧縮された状態で記録されたものである。
○ゲートウェイ２０によるプログラム書込処理
以下に、ゲートウェイ２０の備えるＣＰＵ２１により実行されるプログラム書込処理の処理手順を図２に基づいて説明する。このプログラム書込処理は、プログラム書込システム１が起動している状態（例えば、図示されないイグニッションスイッチがオンになっている状態など）の時、外部コネクタ７０を介してプログラム書込システム１外部、つまり、接続ケーブル３１０を介して接続された外部ツール３００からプログラムデータを受信した際に開始される。
【００６６】
まず、外部から受信したプログラムデータをＲＡＭ２４に記録させる（ｓ１１０）。
このｓ１１０の処理によるプログラムデータの記録が終了するまで待機した後、記録が終了した旨を報知する（ｓ１２０）。この処理では、第１表示部３０を構成する複数の表示ランプのうち、ＲＡＭ２４へのプログラムデータの記録が完了した旨を報知するための表示ランプを点灯させることにより報知を行う。なお、このｓ１２０の処理が行われた時点では、外部ツール３００側からプログラム書込システム１へのプログラムデータの転送が終了しているため、外部ツール３００をプログラム書込システム１から取り外すことができる状態になっていることを報知していることになる。
【００６７】
次に、変数Ｎを初期化する（ｓ１３０）。この処理では、変数Ｎに「１」をセット（１→Ｎ）する。なお、以降に記載の「ｎ」は、変数Ｎにセットされた値を示すものとする。
次に、ｓ１１０の処理でＲＡＭ２４に記録されたプログラムデータを解凍（または、伸張，展開）し、この解凍したプログラムデータを複数の制御プログラムそれぞれを示す複数（１からａ）のプログラムデータに分割する（ｓ１４０）。
【００６８】
次に、ｓ１４０の処理で分割された複数のプログラムデータのうち、プログラムデータで示される「制御プログラムを書き込むべきＥＣＵ１０」が第ｎ番目のＥＣＵ１０となっているプログラムデータを、第ｎ番目のＥＣＵ１０へ書き込む（ｓ１５０）。このプログラムデータを受信したＥＣＵ１０側からは、プログラムデータで示される制御プログラムの第２ＲＯＭ１３への書き込みが行われた後、この書き込みが終了した旨を通知するための書込通知データが送信されてくる。なお、ＥＣＵ１０側において、第２ＲＯＭ１３に他の制御プログラムが書き込まれている場合には、この制御プログラムに上書き（オーバーライト）される。
【００６９】
次に、ｓ１５０の処理で送信したプログラムデータで示される制御プログラムが、第ｎ番目のＥＣＵ１０側において書き込み終わるまで待機する（ｓ１６０：ＮＯ）。この処理では、第ｎ番目のＥＣＵ１０側から上述の終了通知データを受信したことを、第ｎ番目のＥＣＵ１０側において制御プログラムが書き込み終わったと判定する。
【００７０】
このｓ１６０の処理で、第ｎ番目のＥＣＵ１０側において制御プログラムが書き込み終わったら（ｓ１６０：ＹＥＳ）、この書き込まれた制御プログラムが正常に書き込まれているかどうかをチェック（ベリファイチェック）する（ｓ１７０）。この処理では、まず、制御プログラムの書込状態を問い合わせるための状態問合データを第ｎ番目のＥＣＵ１０へ送信する。この書込問合データを受信したＥＣＵ１０側からは、第２ＲＯＭ１３に書き込まれた制御プログラムを示すデータに基づき所定のアルゴリズム（例えば、チェックサム，ＣＲＣ（Cyclic Redundancy Checking）など）に従って算出した値を示すデータが状態通知データとして送信されてくる。続いて、ＥＣＵ１０から状態通知データを受信するまで待機し、状態通知データを受信したら、ｓ１５０の処理で送信された分割プログラムデータのうちの制御プログラムを示すデータ領域に基づいて算出される値と、状態通知データで示される値とを比較する。そして、この両方の値が一致する場合のみ、制御プログラムが正常に書き込まれていると判定する。
【００７１】
このｓ１７０の処理で、制御プログラムが正常に書き込まれていないと判定された場合（ｓ１７０：ＮＯ）、ｓ１５０の処理へ戻る。
一方、ｓ１７０の処理で制御プログラムプログラムが正常に書き込まれていると判定された場合（ｓ１７０：ＹＥＳ）、第ｎ番目のＥＣＵ１０において第２ＲＯＭ１３への制御プログラムの書き込みが終了した旨を報知する（ｓ１８０）。この処理では、第１表示部３０を構成する複数の表示ランプのうち、第ｎ番目のＥＣＵ１０における制御プログラムの書き込みが終了した旨を報知するための表示ランプを点灯させることにより報知を行う。
【００７２】
次に、変数Ｎに「１」を加算（ｎ＋１→Ｎ）する（ｓ１９０）。
次に、変数Ｎの値ｎおよびＥＣＵ１０の数ａを比較することによって、全てのＥＣＵ１０に対する制御プログラムの書き込みが終了したかどうかをチェックする（ｓ２００）。この処理では、変数Ｎの値ｎがＥＣＵ１０の数ａより大きい（ａ＜ｎ）場合に、全てのＥＣＵ１０に対する制御プログラムの書き込みが終了したと判定する。
【００７３】
このｓ２００の処理で全てのＥＣＵ１０に対する制御プログラムの書き込みが終了していなければ（ｓ２００：ＮＯ）、ｓ１５０の処理へ戻る。
こうして、ｓ１５０からｓ２００の処理を全てのＥＣＵ１０に対して順番に行った後、ｓ２００の処理で、全てのＥＣＵ１０に対する制御プログラムの書き込みが終了したら（ｓ２００：ＹＥＳ）、各ＥＣＵ１０，および，ＥＣＵ１０それぞれの第２ＲＯＭ１３に書き込まれた制御プログラムの対応関係を登録した書込テーブルを生成する（ｓ２１０）。この処理では、ｓ１４０の処理で生成された各分割プログラムデータに基づき、ＥＣＵ１０と、このＥＣＵ１０の第２ＲＯＭ１３に書き込まれた制御プログラムとの対応関係を特定し、それぞれ対応するＥＣＵ１０と制御プログラムとが対応づけられた状態で登録されたデータテーブルである書込テーブルを第２ＲＯＭ２３に生成する。
【００７４】
次に、ｓ１１０の処理で記録されたプログラムデータ、および、ｓ１４０の処理で生成（分割）されたプログラムデータを、ＲＡＭ２４から削除する（ｓ２２０）。
そして、全てのＥＣＵ１０における制御プログラムの書き込みが終了した旨を報知する（ｓ２３０）。この処理では、第１表示部３０を構成する複数の表示ランプのうち、全てのＥＣＵ１０における制御プログラムの書き込みが終了した旨を報知するための表示ランプを一定期間（本実施形態においては、１０秒間）点滅させることにより報知を行う。なお、この表示ランプを一定期間点滅させた後は、ｓ１２０，ｓ１８０の処理で点灯させた表示ランプについても消灯させる。
○ゲートウェイ２０による動作抑制処理
以下に、ゲートウェイ２０の備えるＣＰＵ２１により実行される動作抑制処理の処理手順を図３に基づいて説明する。この動作抑制処理は、プログラム書込システム１が起動された際に開始される。
【００７５】
まず、変数Ｍを初期化する（ｓ３１０）。この処理では、変数Ｍに「１」をセット（１→Ｍ）する。なお、以降に記載の「ｍ」は、変数Ｍにセットされた値を示すものとする。
次に、第ｍ番目のＥＣＵ１０における第２ＲＯＭ１３に制御プログラムが正常に書き込まれているかどうかをチェックする（ｓ３２０）。この処理では、まず、図２におけるｓ１７０の処理と同様に、状態問合データを第ｍ番目のＥＣＵ１０へ送信する。この書込問合データを受信したＥＣＵ１０側からは、第２ＲＯＭ１３に制御プログラムが書き込まれていれば、第２ＲＯＭ１３に書き込まれた制御プログラムを示すデータに基づき所定のアルゴリズムに従って算出した値を示すデータが状態通知データとして送信されてくる。続いて、ＥＣＵ１０からデータを受信するまで待機し、受信したデータが状態通知データである場合には、第２ＲＯＭ２３に記録された書込テーブルに記録されている制御プログラムのうちの第ｍ番目のＥＣＵ１０に対応する制御プログラムを示すデータに基づいて算出される値と、状態通知データで示される値とを比較する。そして、この両方の値が一致する場合のみ制御プログラムが正常に書き込まれていると判定する。
【００７６】
このｓ３２０の処理で、制御プログラムが正常に書き込まれていない場合（ｓ３２０：ＮＯ）、車両の動作を規制する（ｓ３３０）。この処理では、電源供給部２１０からスタータ２２０への電源供給の規制を指令するための規制指令データを供給規制部５０へ送信する。この規制指令データを受信した供給規制部５０は、電源供給部２１０とスタータ２２０とをつなぐ電源の供給経路を開放することによって、スタータ２２０を作動させないようにし、これにより、複数の制御対象１２０のうちの一つであるエンジンが作動しないようにする。
【００７７】
そして、ＥＣＵ１０の第２ＲＯＭ１３に書き込まれている制御プログラムが正常ではない旨を報知した後（ｓ３４０）、本動作抑制処理を終了する。このｓ３４０の処理では、制御プログラムが正常ではない旨のメッセージを第２表示部４０に表示させることにより報知を行う。
【００７８】
また、上述のｓ３２０の処理で、制御プログラムが正常に書き込まれている場合（ｓ３２０：ＹＥＳ）、変数Ｍに「１」を加算（ｍ＋１→Ｍ）する（ｓ３５０）。
次に、変数Ｍの値ｍおよびＥＣＵ１０の数ａを比較することによって、全てのＥＣＵ１０の制御プログラムが正常に書き込まれていることを確認したかどうかをチェックする（ｓ３６０）。この処理では、変数Ｍの値ｍがＥＣＵ１０の数ａより大きい（ａ＜ｍ）場合に、全てのＥＣＵ１０の制御プログラムが正常に書き込まれていることを確認したと判定する。
【００７９】
このｓ３６０の処理で、全てのＥＣＵ１０の制御プログラムが正常に書き込まれていることを確認していなければ（ｓ３６０：ＮＯ）、ｓ３２０の処理へ戻る。
こうして、ｓ３２０からｓ３６０の処理を全てのＥＣＵ１０に対して順番に行った後、ｓ３６０の処理で全てのＥＣＵ１０への制御プログラムが正常に書き込まれていることを確認したら（ｓ３６０：ＹＥＳ）、本動作抑制処理を終了する。
【００８０】
このように、全てのＥＣＵ１０の制御プログラムが正常に書き込まれていることが確認できた場合には、供給規制部５０に規制指令データが送信されることがなく、電源供給部２１０とスタータ２２０とをつなぐ電源の供給経路が開放されないため、スタータ２２０によりエンジンを正常に作動させることができる。
【００８１】
［第１実施形態の効果］
このように構成されたプログラム書込システム１によれば、外部ツール３００からプログラムデータとして取得された制御プログラムは、ゲートウェイ２０のＲＡＭ２４に蓄積（記録）された後、このゲートウェイ２０のＣＰＵ２１によって各ＥＣＵ１０の第２ＲＯＭ１３へ書き込まれる。そのため、プログラムデータを供給するための外部ツール３００をプログラム書込システム１と接続ケーブル３１０を介して接続し、この外部ツール３００によりプログラムデータの供給を受ける本実施形態においては、プログラムデータがゲートウェイ２０のＲＡＭ２４に蓄積された後であれば、外部ツール３００との接続状態を維持しておかなくても、ＥＣＵ１０それぞれの第２ＲＯＭ１３に制御プログラムを書き込むことができる。
【００８２】
これにより、外部ツール３００との接続状態を維持しなければならない待機時間を短くすることができるため、ＥＣＵ１０それぞれの第２ＲＯＭ１３に制御プログラムを書き込む際の作業効率が向上する。
【００８３】
特に、本プログラム書込システム１が実装された車両の製造工程において、複数のＥＣＵ１０それぞれに対して連続的に制御プログラムの書き込みを行う場合には、外部ツール３００を各ＥＣＵ１０それぞれに接続しておく時間が短くなるため、総合的な作業効率が向上し、車両の製造に要する時間および製造コストを抑えることができる。
【００８４】
また、この通信部２Ａが外部コネクタ７０との間で高速にデータを入出力する際、平行して通信部２７と車内ＬＡＮ回線６０との間でデータを入出力することができる。
また、外部ツール３００から取得されるプログラムデータは、データ量が圧縮されており、ｓ１４０の処理において解凍されてからＣＰＵ１０へ書き込まれる。このように、プログラムデータは、外部ツール３００から受信される際、データ量が圧縮されており、プログラムデータのデータ量を圧縮しない場合よりもデータ量を少なくすることができるため、外部ツール３００を車両に接続しておく時間をより短くできる。
【００８５】
また、図２におけるｓ１２０の処理では、第１表示部３０を構成する表示ランプの点灯によって、ＲＡＭ２４へのプログラムデータの記録が完了した旨を報知することができる。これによって、利用者は、外部ツール３００との接続状態を維持してもよくなったことを確認でき、このことを確認したうえで外部ツール３００をプログラム書込システム１から取り外せば、外部ツール３００との接続状態を最短時間で済ませることができる。
【００８６】
また、図２におけるｓ１７０の処理で、制御プログラムが正常に書き込まれなかったと判定されたＥＣＵ１０に対しては、再度、制御プログラムの書き込みが行われる。そのため、制御プログラムが正常に書き込まれていない状態でＥＣＵ１０が作動してしまうといったことを防止できる。
【００８７】
また、図２におけるｓ１７０の処理では、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、書き込みが正常に行われたかどうかを判定することができる。
【００８８】
また、図３におけるｓ３２０の処理で、制御プログラムが正常に書き込まれていないと判定された場合、ｓ３３０の処理により車両の動作が規制される。そのため、ＥＣＵ１０の第２ＲＯＭ１３に書き込まれている制御プログラムが不正に書き換えられた場合であっても、車両の動作を規制することができるため、不正に書き換えられた制御プログラムによって、車両が異常な動作をしてしまうことを防止できる。
【００８９】
また、図３におけるｓ３２０の処理で、制御プログラムが正常に書き込まれていないと判定された場合、その旨がｓ３４０の処理により報知される。そのため、利用者は、ｓ３４０の処理による報知によって、不正に書き換えられた制御プログラムが存在する旨を確認することができるため、その旨を確認した後で、ＥＣＵ１０または車両の動作を停止させたり、不正に書き換えられた制御プログラムを正規の制御プログラムに書き直す、といった対策を迅速に取ることができる。
【００９０】
また、図３におけるｓ３２０の処理では、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、不正に書き換えられた制御プログラムが存在するか否かを判定することができる。
【００９１】
また、図２におけるｓ２３０の処理で、複数のＥＣＵ１０全ての第２ＲＯＭ１３への制御プログラムの書き込みが終了したことを報知することができる。そのため、利用者は、ｓ２３０の処理による報知で各ＥＣＵ１０への制御プログラムの書き込みが全て終了したことを確認することができる。
【００９２】
［第２実施形態］
プログラム書込システム２は、図４に示すように、第１実施形態におけるプログラム書込システム１にもう一つのゲートウェイ２０が設けられ、それぞれの通信部２Ａが外部コネクタ７０に接続されたものであって、各ゲートウェイ２０による処理内容が一部第１実施形態と異なるだけであるため、その相違点についてのみ詳述する。なお、各ゲートウェイ２０は、便宜上、第１実施形態においても設けられているものを第１ゲートウェイ２０ａ、第２実施形態においてのみに設けられているものを第２ゲートウェイ２０ｂとする。
【００９３】
このように構成されたプログラム書込システム２は、外部コネクタ７０を介してゲートウェイ２０ａ，２０ｂそれぞれがプログラムデータを受信し、これらゲートウェイ２０ａ，２０ｂが、複数のＥＣＵ１０の備える第２ＲＯＭ１３への制御プログラムの書き込みを分担して行う。具体的には、第１番目から第ｉ−１番目（１＜ｉ＜ａ）までのＥＣＵ１０への書き込みを第１ゲートウェイ２０ａが行い、第ｉ番目から第ａ番目までのＥＣＵ１０への書き込みを第２ゲートウェイ２０ｂが行う。
【００９４】
まず、第１ゲートウェイ２０ａにより実行される処理のうち、プログラム書込処理は、第１実施形態におけるプログラム書込処理（図２）と同様の処理であって、ｓ２００の処理において、変数Ｎの値ｎがＥＣＵ１０の数ａから「ｉ−１」を減算した値より大きい（ａ−（ｉ−１）＜ｎ）場合に、全てのＥＣＵ１０に対する制御プログラムの書き込みが終了したと判定するように構成されたものである。こうして、第１ゲートウェイ２０ａは、第１番目から第ｉ−１番目までのＥＣＵ１０への書き込みを行う。
【００９５】
また、第１ゲートウェイ２０ａにより実行される処理のうち、動作抑制処理は、第１実施形態における動作抑制処理（図３）と同様の処理であって、ｓ３６０の処理において、変数Ｍの値ｍがＥＣＵ１０の数ａから「ｉ−１」を減算した値より大きい（ａ−（ｉ−１）＜ｍ）場合に、全てのＥＣＵ１０に対する制御プログラムの書き込みが終了したと判定するように構成されたものである。こうして、第１ゲートウェイ２０ａは、第１番目から第ｉ−１番目までの全ＥＣＵ１０に対して、制御プログラムが正常に書き込まれているかどうかをチェックする。
【００９６】
一方、第２ゲートウェイ２０ｂにより実行される処理のうち、プログラム書込処理は、第１実施形態におけるプログラム書込処理（図２）と同様の処理であって、ｓ１３０の処理において、変数Ｎに「ｉ」をセット（ｉ→Ｎ）するように構成されたものである。こうして、第２ゲートウェイ」２０ｂは、第ｉ番目から第ａ番目までのＥＣＵ１０への書き込みを行う。
【００９７】
また、第２ゲートウェイ２０ｂにより実行される処理のうち、動作抑制処理は、第１実施形態における動作抑制処理（図３）と同様の処理であって、ｓ３１０の処理において、変数Ｍに「ｉ」をセット（ｉ→Ｍ）するように構成されたものである。こうして、第２ゲートウェイ２０ｂは、第ｉ番目から第ａ番目までの全ＥＣＵ１０に対して、制御プログラムが正常に書き込まれているかどうかをチェックする。
【００９８】
なお、各ＥＣＵ１０に対して書き込まれた各分割領域は、ＥＣＵ１０側において制御プログラムとなるように結合される。
［第２実施形態の効果］
このように構成されたプログラム書込システム２は、第１実施形態のプログラム書込システム１と同様の構成から得られる効果の他に、以下に示すような効果を得ることができる。
【００９９】
このプログラム書込システム２によれば、それぞれ制御プログラムを書き込む対象となるＥＣＵ１０の異なる複数のゲートウェイ２０（のＣＰＵ２１）によって、複数のＥＣＵ１０それぞれの第２ＲＯＭ１３への制御プログラムの書き込みが並列して行われる。そのため、第１実施形態の構成と比べて、全てのＥＣＵ１０に対する制御プログラムの書き込みに要する時間を短くすることができる。
【０１００】
［第３実施形態］
プログラム書込システム３は、第２実施形態におけるプログラム書込システム２と同様の構成であって、各ゲートウェイ２０による処理内容が一部第１実施形態と異なるだけであるため、その相違点についてのみ詳述する。
【０１０１】
このように構成されたプログラム書込システム３は、外部コネクタ７０を介してゲートウェイ２０ａ，２０ｂそれぞれがプログラムデータを受信し、これらゲートウェイ２０ａ，２０ｂが、複数のＥＣＵ１０の備える第２ＲＯＭ１３への制御プログラムの書き込みを分担して行う。
【０１０２】
具体的には、プログラムデータにおける各制御プログラムに相当するデータ領域を２つに分割した分割領域のうち、一方の分割領域（第１分割領域）の各ＥＣＵ１０への書き込みを第１ゲートウェイ２０ａが行い、他方の分割領域（第２分割領域）の各ＥＣＵ１０への書き込みを第２ゲートウェイ２０ｂが行う。なお、本実施形態において、上述の「第１分割領域」は、制御プログラムのプログラム本体部分を示すものであり、「第２分割領域」は、プログラム本体部分において利用されるパラメータ部分を示すものである。
【０１０３】
まず、第１ゲートウェイ２０ａにより実行される処理のうち、プログラム書込処理は、第１実施形態におけるプログラム書込処理（図２）と同様の処理であって、ｓ１５０の処理において、ｓ１４０の処理で分割された複数のプログラムデータのうち、プログラムデータで示される「制御プログラムを書き込むべきＥＣＵ１０」が第ｎ番目のＥＣＵ１０となっているプログラムデータから第１分割領域を分割し、この第１分割領域を、第ｎ番目のＥＣＵ１０へ送信するように構成されたものである。このプログラムデータを受信したＥＣＵ１０側からは、プログラムデータで示される制御プログラムの第２ＲＯＭ１３への書き込みが行われた後、書込通知データが送信されてくる。なお、ＥＣＵ１０側において、第２ＲＯＭ１３に他の制御プログラムにおける第１分割領域が書き込まれている場合には、この第１分割領域に上書きされる。以降の処理によって、第１ゲートウェイ２０ａは、各ＥＣＵ１０それぞれの第２ＲＯＭ１３への制御プログラムにおける第１分割領域の書き込みを行う。
【０１０４】
一方、第２ゲートウェイ２０ｂにより実行される処理のうち、プログラム書込処理は、第１実施形態におけるプログラム書込処理（図２）と同様の処理であって、ｓ１５０の処理において、ｓ１４０の処理で分割された複数のプログラムデータのうち、プログラムデータで示される「制御プログラムを書き込むべきＥＣＵ１０」が第ｎ番目のＥＣＵ１０となっているプログラムデータから第２分割領域を分割し、この第２分割領域を、第ｎ番目のＥＣＵ１０へ送信するように構成されたものである。このプログラムデータを受信したＥＣＵ１０側からは、プログラムデータで示される制御プログラムの第２ＲＯＭ１３への書き込みが行われた後、書込通知データが送信されてくる。なお、ＥＣＵ１０側において、第２ＲＯＭ１３に他の制御プログラムにおける第２分割領域が書き込まれている場合には、この第１分割領域に上書きされる。以降の処理によって、第２ゲートウェイ２０ｂは、各ＥＣＵ１０それぞれの第２ＲＯＭ１３への制御プログラムにおける第２分割領域の書き込みを行う。
【０１０５】
こうして、各ＥＣＵ１０に対して書き込まれた各分割領域は、ＥＣＵ１０側で制御プログラムとなるように結合される。
［第３実施形態の効果］
このように構成されたプログラム書込システム３は、第１実施形態のプログラム書込システム１と同様の構成から得られる効果の他に、以下に示すような効果を得ることができる。
【０１０６】
このプログラム書込システム３によれば、それぞれ制御プログラムを書き込むべきデータ領域の異なる複数のゲートウェイ２０（のＣＰＵ２１）によって、複数のＥＣＵ１０それぞれの第２ＲＯＭ１３への制御プログラムの書き込みが同時進行される。これにより、複数のＥＣＵ１０に対する制御プログラムの書き込みに要する時間を均等にすることができる。
【０１０７】
［第４実施形態］
プログラム書込システム４は、図５に示すように、第１実施形態におけるプログラム書込システム１のゲートウェイ２０が設けられておらず、複数のＥＣＵ１０のうち特定のＥＣＵ１０（本実施形態においては、第１のＥＣＵ１０）内の通信部１Ａが外部コネクタ７０に接続されており、第１実施形態におけるゲートウェイ２０として機能するように構成されたものである。
○ＥＣＵ１０によるプログラム書込処理
以下に、第１のＥＣＵ１０の備えるＣＰＵ１１により実行されるプログラム書込処理の処理手順を説明する。このプログラム書込処理は、第１実施形態におけるプログラム書込処理（図２）と同様の処理であって、一部処理内容が異なっているだけであるため、この相違点についてのみ詳述する。なお、このプログラム書込処理において、第１実施形態におけるプログラム書込処理と同様のステップ番号が付加されている処理については、同様の処理が行われるものとする。
【０１０８】
まず、外部から受信したプログラムデータをＲＡＭ１４に記録させる（ｓ１１０）。
このｓ１１０の処理によるプログラムデータの記録が終了するまで待機した後、記録が終了した旨を報知する（ｓ１２０）。
【０１０９】
次に、変数Ｎを初期化する（ｓ１３０）。
次に、ｓ１１０の処理でＲＡＭ１７に記録されたプログラムデータを解凍し、この解凍したプログラムデータを複数の制御プログラムそれぞれを示すプログラムデータに分割する（ｓ１４０）。
【０１１０】
次に、ｓ１４０の処理で分割された複数（１からａ）のプログラムデータのうち、プログラムデータで示される「制御プログラムを書き込むべきＥＣＵ１０（の第２ＲＯＭ１３）」が第ｎ番目のＥＣＵ１０となっているプログラムデータを、第ｎ番目のＥＣＵ１０へ送信する（ｓ１５０）。この処理において、プログラムデータで示されるＥＣＵ１０が、ＥＣＵ１０自身（第１番目のＥＣＵ１０）である場合には、自身の備える第２ＲＯＭ１３への制御プログラムの書き込みを開始する。
【０１１１】
次に、ｓ１５０の処理で送信したプログラムデータで示される制御プログラムが、第ｎ番目のＥＣＵ１０側において書き込み終わるまで待機する（ｓ１６０：ＮＯ）。なお、ｓ１５０の処理において、ＥＣＵ１０自身の第２ＲＯＭ１３への制御プログラムの書き込みを開始した場合、この書き込みが終了した際に、第ｎ番目のＥＣＵ１０側において制御プログラムが書き込み終わったと判定する。
【０１１２】
このｓ１６０の処理で、第ｎ番目のＥＣＵ１０側において制御プログラムが書き込み終わったら（ｓ１６０：ＹＥＳ）、この書き込まれた制御プログラムが正常に書き込まれているかどうかをチェック（ベリファイチェック）する（ｓ１７０）。この処理において、ｓ１５０の処理でＥＣＵ１０自身に制御プログラムの書き込みを行った場合には、ｓ１４０の処理で分割されたプログラムデータ，および，ｓ１５０の処理で記録されたプログラムデータのうちの制御プログラムを示すデータ領域に基づいて算出される値それぞれが一致する場合のみ、制御プログラムが正常に書き込まれていると判定する。
【０１１３】
このｓ１７０の処理で、制御プログラムが正常に書き込まれていないと判定された場合（ｓ１７０：ＮＯ）、ｓ１５０の処理へ戻る。
この後、ｓ１７０の処理で制御プログラムプログラムが正常に書き込まれていると判定された以降の処理は、第１実施形態と同様である。なお、ｓ２２０の処理では第１のＥＣＵ１０自身のＲＡＭ１４にｓ１５０の処理で記録されたデータを削除する。
○ＥＣＵ１０による動作抑制処理
以下に、第１のＥＣＵ１０の備えるＣＰＵ１１により実行されるプ動作抑制処理の処理手順を説明する。この動作抑制処理は、第１実施形態においてゲートウェイ２０が実行する処理と同様の処理であって、ｓ３２０の処理において第ｍ番目のＥＣＵ１０がＥＣＵ１０自身（第１番目のＥＣＵ１０）である場合に、以下に示す処理を行うように構成されたものである。
【０１１４】
ｓ３２０の処理において、第ｍ番目のＥＣＵ１０がＥＣＵ１０自身（第１番目のＥＣＵ１０）である場合には、第２ＲＯＭ１３に制御プログラムが書き込まれていれば、第２ＲＯＭ１３に書き込まれた制御プログラムを示すデータに基づき所定のアルゴリズムに従って算出した値と、第２ＲＯＭ２３に記録されている書込テーブルに記録されている制御プログラムのうちの第ｍ番目のＥＣＵ１０に対応する制御プログラムを示すデータに基づいて算出される値とを比較する。そして、この両方の値が一致する場合のみ制御プログラムが正常に書き込まれていると判定する。
【０１１５】
［第４実施形態の効果］
このように構成されたプログラム書込システム４は、第１実施形態のプログラム書込システム１と同様の構成から得られる効果の他に、以下に示すような効果を得ることができる。
【０１１６】
このプログラム書込システム４によれば、複数のＥＣＵ１０のうちいずれかがゲートウェイ２０として機能するため、ゲートウェイ２０として機能する専用の装置構成が不要となり、プログラム書込システム４全体としての構成を単純化することができる。
【０１１７】
［第５実施形態］
プログラム書込システム５は、第１実施形態におけるプログラム書込システム１と同様の構成であり、一部処理内容が異なるだけであるため、この相違点についてのみ詳述する。
【０１１８】
この構成におけるゲートウェイ２０は、図６に示すように、後述のプログラム書込処理を開始させるための操作部２９を備えており、圧縮されたプログラムデータがあらかじめ第２ＲＯＭ２３に記録されている。
○ゲートウェイ２０によるプログラム書込処理
以下に、ゲートウェイ２０の備えるＣＰＵ２１により実行されるプログラム書込処理の処理手順を図２に基づいて説明する。このプログラム書込処理は、第１実施形態におけるプログラム書込処理（図２）と同様の処理であって、操作部２９によりプログラム書込処理を開始させるための操作が行われた際にｓ１３０の処理から開始され、ｓ１４０の処理において以下に示すような処理が行われるように構成されたものであり、この相違点についてのみ詳述する。
【０１１９】
ｓ１４０の処理では、第２ＲＯＭ２３に記録されているプログラムデータを解凍（または、伸張，展開）し、この解凍したプログラムデータを複数の制御プログラムそれぞれを示す複数（１からａ）のプログラムデータに分割する。この処理において、プログラムデータは、ＲＡＭ２４に展開（記録）される。
【０１２０】
［第５実施形態の効果］
このように構成されたプログラム書込システム５は、第１実施形態のプログラム書込システム１と同様の構成から得られる効果の他に、以下に示すような効果を得ることができる。
【０１２１】
このプログラム書込システム５によれば、図２におけるｓ１５０以降の処理において、あらかじめゲートウェイ２０の第２ＲＯＭ２３に蓄積（記録）されているプログラムデータで示される制御プログラムが各ＥＣＵ１０の第２ＲＯＭ１３へ順次書き込まれる。このように、ゲートウェイ２０の第２ＲＯＭ２３には、複数のＥＣＵ１０それぞれへ書き込むべき複数の制御プログラムを示すプログラムデータがあらかじめ蓄積されているため、プログラムデータを供給するための外部ツール３００を接続および取り外す必要が無く、各ＥＣＵ１０へ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部ツール３００をプログラム書込システム５に接続するのに要する時間を削減することができる。
【０１２２】
これにより、プログラム書込システム５が実装された車両の製造工程において、複数のＥＣＵ１０それぞれに対して連続的に制御プログラムの書込を行う場合、外部ツール３００を各車両のプログラム書込システム５それぞれに接続しておく必要がなく、操作部２９によりプログラム書込処理を開始するための操作を行うことができればよいため、作業効率が向上し、車両の製造に要する時間および製造コストを抑えることができる。
【０１２３】
［変形例］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な実施形態に限定されず、このほかにも様々な形態で実施することができる。
【０１２４】
例えば、上記実施形態においては、本発明のプログラム書込装置を車両の動作を制御するＥＣＵ１０へのプログラムの書き込みを行う構成に適用したものを例示した。しかし、本発明のプログラム書込装置は、制御プログラムの書き込みを行う用途であれば、他の構成に適用することもできる。
【０１２５】
また、上記実施形態においては、各フローチャートで示される処理が、ゲートウェイ２０のＣＰＵ２１からなるコンピュータシステムにより実行されるように構成されたものを例示した。しかし、これらの処理の一部または全部が、ゲートウェイ２０に有線・無線の信号伝送路で接続された別のコンピュータシステムにより実行されるように構成してもよい。
【０１２６】
また、上記実施形態においては、接続ケーブル３１０にて接続された外部ツール３００からプログラムデータを取得するように構成されたものを例示した。しかし、外部ツール３００が無線によりデータ通信するためのインタフェースを備えている場合には、図７に示すプログラム書込システム６のように、外部コネクタ７０の替わりに無線によるデータ通信を行うためのインタフェース８０を設け、無線通信によりプログラムデータを取得するように構成してもよい。
【０１２７】
このように構成すれば、外部ツール３００をプログラム書込システム６へ物理的に接続する必要が無くなるため、各制御装置の第２ＲＯＭ１３へ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部ツール３００をプログラム書込システムに接続する、および、取り外すのに要する時間を削減することができる。
【０１２８】
また、上記実施形態においては、プログラム書込システムに接続された外部ツール３００からプログラムデータを取得するように構成されたものを例示した。しかし、プログラムデータの取得元は、外部ツール３００以外の装置であってもよく、例えば、プログラム書込システムに車内ＬＡＮ回線６０を介して、プログラムデータを記録可能な外部記録装置が備えられている場合であれば、この外部記録装置からプログラムデータを取得するように構成することができる。ここでいう、外部記録装置とは、例えば、図８に示すプログラム書込システム７において、車内ＬＡＮ回線６０に接続されたナビゲーションシステム４００搭載のハードディスク４１０や着脱可能なメディア（ＣＤ−Ｒ，メモリカードなど）４２０、カーオーディオ５００に着脱可能なメディア５１０などのことである。
【０１２９】
このように構成すれば、プログラムデータを供給するための外部ツール３００を接続および取り外す必要が無くなるため、各ＥＣＵ１０の第２ＲＯＭ１３へ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部ツール３００をプログラム書込システム７に接続するのに要する時間を削減することができる。
【０１３０】
特に、ナビゲーションシステム４００やカーオーディオ５００から着脱可能なメディアをプログラムデータの供給元として用いる場合には、車両の製造工程において、各ＥＣＵ１０の第２ＲＯＭ１３への制御プログラムの書き込みを、上述したメディアをナビゲーションシステム４００やカーオーディオ５００に取り付けておき各ＥＣＵ１０の第２ＲＯＭ１３への制御プログラムの書き込みが終了した時点でメディアを取り外す、といった容易な手順で行うことができる。
【０１３１】
また、上記実施形態においては、図２におけるｓ１７０の処理で、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、書き込みが正常に行われたかどうかを判定するように構成されたものを例示した。同様に、図３におけるｓ３２０の処理で、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、制御プログラムが正常に書き込まれているかどうかを判定するように構成されたものを例示した。しかし、例えば、ＥＣＵ１０が状態通知データとして送信するデータが制御プログラムデータそのものとなるようにしておき、状態通知データで示される制御プログラムと、ゲートウェイ２０自身が記録しているプログラムデータで示される制御プログラムとが一致するか否かにより判定を行うように構成してもよい。
【０１３２】
また、上記実施形態においては、図３におけるｓ３３０の処理で、スタータ２２０を作動させないようにするように構成されたものを例示した。しかし、このｓ３３０の処理では、一部または全てのＥＣＵ１０に対して制御対象１２０の動作を規制（例えば、停止）させるための指令信号を送信し、車両としての動作そのものを規制するように構成してもよい。
【０１３３】
また、上記実施形態においては、図２におけるｓ１２０，ｓ２３０の処理、図３におけるｓ３４０の処理で、表示部３０，４０により報知すべき内容を表示することにより報知を行うように構成されたものを例示した。しかし、これらの処理における報知は、所定のメッセージをスピーカから音声として出力することによって行うように構成してもよい。
【０１３４】
上記実施形態においては、図２におけるｓ１４０の処理で、プログラムデータを解凍して複数のプログラムデータに分割した後、以降の処理で各ＥＣＵ１０それぞれへの書き込みを行うように構成されたものを例示した。しかし、外部ツール３００から取得されるプログラムデータが、各制御プログラムに相当するデータ領域毎に圧縮された複数のプログラムデータ（第１から第ｎプログラムデータ）の集合である場合には、ｓ１４０の処理でＥＣＵ１０の第２ＲＯＭ１３に書き込むべきプログラムデータのみを解凍するようにし、ｓ２００の処理で「ＮＯ」のときｓ１４０の処理へ戻るように構成してもよい。
【０１３５】
また、上述した第４実施形態においては、複数のＥＣＵ１０のうち特定のＥＣＵ１０のみが、ゲートウェイ２０として機能するように構成されたものを例示した。しかし、複数のＥＣＵ１０がゲートウェイ２０として機能するように構成し、それぞれが分担して各ＥＣＵ１０への制御プログラムの書込を行うように構成してもよい。
【０１３６】
また、上述した第４実施形態においては、外部ツール３００から入力されるプログラムデータが第１のＥＣＵ１０にのみ記録されるように構成されたものを例示した。しかし、外部コネクタ７０を第１のＥＣＵ１０以外の１以上のＥＣＵ１０にも接続しておき、外部ツール３００が第１のＥＣＵ１０にプログラムデータを供給する際、このプログラムデータの供給と共に、第１のＥＣＵ１０を除く１以上のＥＣＵ１０に対する制御プログラムの書き込み行うように構成してもよい。この構成においては、第１のＥＣＵ１０が、外部ツール３００に制御プログラムの書き込みが行われているＥＣＵ１０以外のＥＣＵ１０に対してのみ、制御プログラムの書き込みを行うようにすればよいため、全てのＥＣＵ１０に対して制御プログラムを書き込むのに要する時間を短縮することができる。
【０１３７】
また、上記第５実施形態においては、図２のプログラム書込処理が操作部２９によりプログラム書込処理を開始するための操作が行われたときに開始されるように構成されたものを例示した。しかし、このプログラム書込処理は、プログラム書込システム５が起動する毎に実行されるように構成してもよい。
【０１３８】
また、上記第５実施形態においては、プログラム書込システム５が実装される車両の種類に応じた複数のプログラムデータを第２ＲＯＭ２３に記録しておくと共に、操作部２９により行われる「プログラム書込処理を開始させるための操作」として本プログラム書込システム１が実装された車両の種類に応じた操作を設定しておき、これら操作に応じたプログラムデータに基づくプログラム書込処理が行われるように構成してもよい。
【０１３９】
［本発明との対応関係］
以上説明した実施形態において、外部ツール３００は本発明における送信装置であり、ゲートウェイ２０は本発明におけるプログラム書込装置である。
【０１４０】
このゲートウェイ２０の第２ＲＯＭ１３は本発明における内蔵メモリであり、通信部２Ａおよび外部コネクタ７０（またはインタフェース８０）は本発明における取得手段であり、ＲＡＭ２４は本発明における第１，第２蓄積手段である。
【０１４１】
また、図２におけるｓ１２０の処理は本発明における取得報知手段であり、ｓ１４０の処理は本発明における解凍手段であり、ｓ１５０の処理は本発明における第１，第２書込手段であり、ｓ１７０の処理は本発明における書込判定手段であり、ｓ２３０の処理は本発明における書込報知手段である。
【０１４２】
また、図３におけるｓ３２０の処理は本発明における不正判定手段であり、ｓ３３０の処理は本発明における動作規制手段であり、ｓ３４０の処理は本発明における不正報知手段である。
【図面の簡単な説明】
【０１４３】
【図１】第１，第５実施形態におけるプログラム書込システムの構成を示すブロック図
【図２】プログラム書込処理の処理手順を示すフローチャート
【図３】動作抑制処理の処理手順を示すフローチャート
【図４】第２，第３実施形態におけるプログラム書込システムの構成を示すブロック図
【図５】第４実施形態におけるプログラム書込システムの構成を示すブロック図
【図６】第５実施形態におけるプログラム書込システムの構成を示すブロック図
【図７】別の実施形態におけるプログラム書込システムの構成を示すブロック図
【図８】別の実施形態におけるプログラム書込システムの構成を示すブロック図
【符号の説明】
【０１４４】
１…プログラム書込システム、２…プログラム書込システム、３…プログラム書込システム、４…プログラム書込システム、５…プログラム書込システム、６…プログラム書込システム、７…プログラム書込システム、１０…ＥＣＵ、１１…ＣＰＵ、１２…第１ＲＯＭ、１３…第２ＲＯＭ、１４…ＲＡＭ、１５…検出部、１６…駆動部、１７…通信部、１８…バス、１Ａ…通信部、２０…ゲートウェイ、２１…ＣＰＵ、２２…第１ＲＯＭ、２３…第２ＲＯＭ、２４…ＲＡＭ、２７…通信部、２８…バス、２９…操作部、２Ａ…通信部、３０…第１表示部、４０…第２表示部、５０…供給規制部、６０…車内ＬＡＮ回線、７０…外部コネクタ、８０…インタフェース。
【図１】
2005078324.tif 000003
【図２】
2005078324.tif 000004
【図３】
2005078324.tif 000005
【図４】
2005078324.tif 000006
【図５】
2005078324.tif 000007
【図６】
2005078324.tif 000008
【図７】
2005078324.tif 000009
【図８】
2005078324.tif 000010