JP4593095B2 - プログラム書込装置,プログラム書込システム,送信装置およびプログラム - Google Patents

プログラム書込装置,プログラム書込システム,送信装置およびプログラム Download PDF

Info

Publication number
JP4593095B2
JP4593095B2 JP2003307327A JP2003307327A JP4593095B2 JP 4593095 B2 JP4593095 B2 JP 4593095B2 JP 2003307327 A JP2003307327 A JP 2003307327A JP 2003307327 A JP2003307327 A JP 2003307327A JP 4593095 B2 JP4593095 B2 JP 4593095B2
Authority
JP
Japan
Prior art keywords
program
writing
control
written
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003307327A
Other languages
English (en)
Other versions
JP2005078324A (ja
Inventor
豪男 沢岡
聡 榊原
健一 牧
洋一 西依
敏夫 辻
英男 南
充 渡辺
浩 酒井
佳大 野田
政之 森
幸代 福井
智加 川口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2003307327A priority Critical patent/JP4593095B2/ja
Publication of JP2005078324A publication Critical patent/JP2005078324A/ja
Application granted granted Critical
Publication of JP4593095B2 publication Critical patent/JP4593095B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、それぞれが内蔵メモリに記録された制御プログラムに従って制御対象の動作を制御する複数の制御装置に対して、内蔵メモリへの制御プログラムの書き込みを行うプログラム書込装置に関する。
従来から、内蔵メモリに記録された制御プログラムに従って制御対象の動作を制御する制御装置においては、制御装置自身とデータ通信可能に接続された外部装置によって内蔵メモリへの制御プログラムの書き込みを行うことが一般的である。なお、ここでいう「外部装置」とは、あらかじめ制御装置の内蔵メモリへ書き込むべき制御プログラムを記録しており、制御装置に接続された状態で制御装置の内蔵メモリに制御プログラムを書き込むための処理を行う装置である。
この種の制御装置の具体的な例としては、例えば、制御プログラムの書き込みに関する処理(書換処理)を実行するための実行プログラム(書換制御プログラム)を外部装置から入力し、この実行プログラムを制御プログラム用のメモリ領域とは異なる(書き換え対象でない)メモリ領域に格納して実行しながら、この実行プログラムに記述(配置)されている変更命令で示される通信速度により外部装置から制御プログラム(データ)を受信する、といった構成の制御装置(電子装置)が提案されている(特許文献1参照)。
この制御装置は、それぞれ異なる制御対象の動作を制御する複数の制御装置からなる制御システムの一部として利用することも考えられ、この制御システムにおいて、制御プログラムは、外部装置によって各制御装置の内蔵メモリへ順番に書き込まれる。
特開平10−111863号公報
しかし、上述の制御システムにおいては、外部装置が各制御装置それぞれと一対一で順番にデータ通信を行うため、全ての制御装置それぞれの内蔵メモリへの制御プログラムの書き込みが完了するまで外部装置と制御システムとの接続状態を維持しておかなければならない。
このとき、外部装置は、特定の制御装置に対する制御プログラムの書き込みが終了してから別の制御装置に対して制御プログラムの書き込みに関する処理を開始する。そのため、制御装置に入力された制御プログラムが実際に内蔵メモリへ書き込まれるまでに待機時間(書き込みに要する時間)が発生し、接続状態を維持しなければならない時間が無用に長くなってしまうという問題があった。
そのため、上述の制御システムが実装された特定装置(例えば、車両など)の製造工程において、複数の特定装置それぞれに対して連続的に制御プログラムの書き込みを行う場合には、外部装置を各特定装置の制御装置それぞれに接続しておく時間が長くなるため、作業効率が悪く、特定装置の製造に要する時間および製造コストを増加させてしまう。
本発明は、上記課題を解決するためになされたものであり、その目的は、複数の制御装置それぞれの内蔵メモリへ制御プログラムを書き込む際の作業効率を向上させるための技術を提供することである。
上記課題を解決するため請求項1に記載のプログラム書込装置は、車両に搭載され、制御対象の動作を制御する複数の制御装置それぞれに接続され、該制御装置それぞれに対し、該制御装置の内蔵メモリへ制御プログラムの書き込みを行うプログラム書込装置であって、取得手段,第1蓄積手段,プログラム分割手段,第1書込手段および書込指令手段を備えている。
これらのうち、取得手段は、プログラム書込装置本体の外部から、複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の制御プログラムからなるプログラムデータを取得する。また、第1蓄積手段は、取得手段により取得されたプログラムデータを蓄積する。また、プログラム分割手段は、第1蓄積手段により蓄積されたプログラムデータに基づき、該プログラムデータを複数の前記制御プログラムに分割する。また、第1書込手段は、プログラム分割手段により分割された制御プログラムを、制御プログラムを書き込むべき制御装置の内蔵メモリへ書き込む。そして、書込指令手段は、第1書込手段による制御プログラムの書き込みを、前記プログラム分割手段により分割された全ての制御プログラムそれぞれについて繰り返し実施させる。
このように構成されたプログラム書込装置によれば、取得手段によりプログラムデータとして取得された制御プログラムは、第1蓄積手段に蓄積された後、第1書込手段により各制御装置の内蔵メモリへ書き込まれる。そのため、プログラムデータを供給するための装置(外部装置)をプログラム書込装置とデータ通信可能に接続し、この外部装置によりプログラム書込装置へプログラムデータを供給する構成においては、プログラムデータが第1蓄積手段に蓄積された後であれば、外部装置との接続状態を維持しておかなくても、制御装置それぞれの内蔵メモリに制御プログラムを書き込むことができる。
このように、外部装置との接続状態を維持しなければならない無用な時間を短くできるため、制御装置それぞれの内蔵メモリに制御プログラムを書き込む際の作業効率が向上する。
特に、本プログラム書込装置が実装された車両の製造工程において、複数の制御装置それぞれに対して連続的に制御プログラムの書込を行う場合には、外部装置を各車両それぞれに接続する時間を短くできるため、総合的な作業効率が向上し、車両の製造に要する時間および製造コストを抑えることができる。
なお、上述の取得手段は、プログラム書込装置本体の外部からプログラムデータを取得する手段であるが、ここで取得されるプログラムデータは、第1蓄積手段に一旦蓄積されることから、第1蓄積手段から各制御装置の内蔵メモリまで至る経路とは無関係にデータ通信を行うことができる。そのため、請求項2に記載のように、取得手段は、前記プログラム分割手段により分割された制御プログラムを前記制御装置の内蔵メモリまで伝送する際の伝送経路とは別の伝送経路から、前記プログラムデータを取得するとよい。この場合、取得手段がプログラムデータを取得する際の通信速度は、この取得手段により取得され第1蓄積手段により蓄積されたプログラムデータで示される制御プログラムが内蔵メモリまで伝送する際の通信速度以上の通信速度となるように構成するとよい。
このように構成すれば、取得手段がプログラムデータを取得するまでに要する時間をより短縮できる。
また、この取得手段は、外部装置を車両(または、プログラム書込装置)にケーブルを介して接続し、有線通信によりプログラムデータを取得するように構成してもよいが、請求項3に記載のように、プログラム書込装置の外部から無線通信によってプログラムデータを取得可能に構成してもよい。
このように構成すれば、外部装置を車両へ物理的に接続する必要が無くなるため、各制御装置の内蔵メモリへ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部装置を車両に接続する、および、外部装置から取り外すのに要する時間を削減することができる。
また、プログラム書込装置の外部から取得手段により取得されるプログラムデータが、所定の圧縮形式で圧縮した圧縮プログラムデータである場合には、請求項4に記載のように、第1蓄積手段により蓄積された圧縮プログラムデータを解凍する解凍手段を備え、プログラム分割手段が、解凍手段により解凍されたプログラムデータを複数の制御プログラムに分割する、ように構成するとよい。
このように構成すれば、取得手段により取得されるプログラムデータのデータ量を圧縮しない場合よりも少なくすることができるため、取得手段がプログラムデータを取得するのに要する時間、つまり、外部装置を各車両それぞれに接続しておく時間をより短くできる。
また、圧縮プログラムデータが、複数の制御プログラムそれぞれに対応するデータ領域がn個の分割領域(第1から第n分割領域)からなり、かつ、これら分割領域それぞれが圧縮されたデータである場合には、プログラム分割手段が、蓄積手段により蓄積された圧縮プログラムデータを、n個の分割領域に分割すると共に、さらに、プログラム分割手段により分割された第i分割領域(1≦i≦n)それぞれについて前記制御プログラムの一部として順次解凍する解凍手段を備えて、第1書込手段が、解凍手段により解凍された制御プログラムの一部それぞれを制御装置の内蔵メモリそれぞれに書き込むように構成し、プログラム分割手段による分割、解凍手段による解凍および第1書込手段による書き込みを第1分割領域から第n分割領域に対して繰り返し行うことによって、n個の分割領域からなる制御プログラムが制御装置それぞれの内蔵メモリへ書き込まれる、ようにするとよい。
このように構成すれば、制御プログラムは第1から第n分割領域の順番で各制御装置の内蔵メモリそれぞれへ書き込まれていくため、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを同時期に終了させることができる。
ところで、上述した取得手段は、プログラム書込装置の外部からプログラムデータを取得できればよいため、上述した外部装置だけでなく、車両に備えられている別の装置から取得するような構成を考えることもできる。
例えば、請求項に記載のように、当該プログラム書込装置に接続された外部記憶装置から読み出すことによりプログラムデータを取得する読出取得手段,を備え、第1蓄積手段が、読出取得手段により取得されたプログラムデータを蓄積する、といった構成が考えられる。
このように構成されたプログラム書込装置によれば、プログラムデータを供給するための装置(外部装置)を接続および取り外す必要が無くなるため、各制御装置の内蔵メモリへ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部装置を車両に接続するのに要する時間を削減することができる。
なお、この構成における外部記録装置とは、例えば、ナビゲーションシステムに搭載されたハードディスクや着脱可能なメディア(CD−R,メモリカードなど)、カーオーディオに搭載された着脱可能なメディアなどのことである。特に、外部記録装置として車両に着脱可能なメディアを用いる場合には、制御対象の製造工程において、各制御装置の内蔵メモリへの制御プログラムの書き込みを、上述したメディアを車両に取り付けておいて各制御装置の内蔵メモリへの制御プログラムの書き込みが終了した時点でメディアを取り外す、といった容易な手順で行うことができる。
また、請求項に記載のプログラム書込装置は、取得手段によるプログラムデータの取得が終了した旨を報知する取得報知手段を備えている。
このように構成されたプログラム書込装置によれば、取得報知手段によって、外部からのプログラムデータの取得が終了したことを報知することができる。
ここで、プログラムデータを供給するための装置(外部装置)を車両(または、プログラム書込装置)とデータ通信可能に接続し、この外部装置によりプログラム書込装置へプログラムデータを供給する構成であれば、取得報知手段は、外部装置との接続状態を維持してもよくなったタイミングを報知していることになる。
よって、利用者は、取得報知手段による報知で外部装置との接続状態を維持しておかなくてもよくなったことを確認でき、このことを確認したうえで外部装置を取り外せば、外部装置との接続状態を最短時間ですませることができる。
また、上記課題を解決するため上記とは異なる第1のプログラム書込装置は、複数の制御装置により動作が制御される制御対象に備えられ、複数の制御装置それぞれに対し、これら制御装置の内蔵メモリへ制御プログラムの書き込みを行うプログラム書込装置であって、第2蓄積手段および第2書込手段を備えている。
これらのうち、第2蓄積手段は、あらかじめ複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の制御プログラムを示すプログラムデータを蓄積している。そして、第2書込手段は、外部からの指令を受けて、第2蓄積手段により蓄積されているプログラムデータに基づき、このプログラムデータで示される制御プログラムそれぞれを、これら制御プログラムを書き込むべき制御装置の内蔵メモリへ書き込む。
このように構成されたプログラム書込装置によれば、あらかじめ第2蓄積手段に蓄積されているプログラムデータで示される制御プログラムが、第2書込手段によって各制御装置の内蔵メモリへ書き込まれる。
このように、第2蓄積手段には、複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の制御プログラムを示すプログラムデータが蓄積されているため、プログラムデータを供給するための装置(外部装置)を接続および取り外す必要が無く、各制御対象の内蔵メモリへ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部装置を車両に接続するのに要する時間を削減することができる。
これにより、車両の製造工程において、複数の制御装置それぞれに対して連続的に制御プログラムの書込を行う場合、第2書込手段への書込指令を行うことができればよく、外部装置を各車両それぞれに接続しておく必要がないため、作業効率が向上し、車両の製造に要する時間および製造コストを抑えることができる。
なお、この構成において、第2書込手段に制御プログラムの書込を行わせるための「指令」とは、例えば、プログラム書込装置が起動されたことを「指令」としてもよいし、外部からの指令信号を「指令」としてもよいし、プログラム書込装置に操作部が備えられていれば、この操作部により特定の操作が行われたことを「指令」としてもよい。
また、上記第1のプログラム書込装置は、下記第2のプログラム書込装置のように、書込手段(第1,第2書込手段)による内蔵メモリへの制御プログラムの書き込みが終了した際に、この書き込まれた制御プログラムおよび蓄積手段により蓄積されたプログラムデータで示される制御プログラムに基づいて、書込手段による書込が正常に行われたか否かを判定する書込判定手段を備え、書込手段が、書込判定手段により書き込みが正常に行われていないと判定された内蔵メモリに対して、再度、制御プログラムの書き込みを行う、ように構成するとよい
このように構成されたプログラム書込装置によれば、正常に書き込まれていない内蔵メモリに対し、再度、制御プログラムを書き込むことができる。そのため、制御プログラムが正常に書き込まれていない状態で制御装置が誤作動してしまうといったことを防止できる。
なお、この構成における書込判定手段は、書込手段による書込が正常に行われたか否かを、書込手段により書き込まれた制御プログラムおよび蓄積手段により蓄積されたプログラムデータで示される制御プログラムに基づいて判定する手段であって、例えば、蓄積手段により蓄積されたプログラムデータで示される制御プログラムと、この制御プログラムが書込手段により書き込まれた内蔵メモリに書き込まれている制御プログラムと、が一致する場合に、書き込みが正常に行われたと判定する、ように構成すればよい。
また、第2のプログラム書込装置は、下記第3のプログラム書込装置のような構成としてもよい。のプログラム書込装置における書込判定手段は、蓄積手段により蓄積されたプログラムデータで示される制御プログラムから所定のアルゴリズムに従って求められる値と、書込手段により内蔵メモリに書き込まれた制御プログラムから所定のアルゴリズムに従って求められる値と、が一致する場合に、書き込みが正常に行われたと判定する。
このように構成すれば、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、書き込みが正常に行われたかどうかを判定することができる。
また、上記各プログラム書込装置は、下記第4のプログラム書込装置のように、書込手段(第1,第2書込手段)により書き込まれた制御プログラムの中に、書込手段による正規の書き込み以外の要因で不正に書き換えられた制御プログラムが存在するか否かを、蓄積手段(第1,第2蓄積手段)により蓄積されたプログラムデータで示される制御プログラム、および、書込手段により内蔵メモリに書き込まれた制御プログラムに基づいて判定する不正判定手段と、この不正判定手段により不正に書き換えられている制御プログラムが存在すると判定された際に、制御装置による制御対象の動作を規制する動作規制手段と、を備えている、といった構成とするとよい
このように構成されたプログラム書込装置によれば、制御装置の内蔵メモリに書き込まれている制御プログラムが不正に書き換えられた場合であっても、動作規制手段によって制御装置による制御対象の動作を規制することができるため、不正に書き換えられた制御プログラムによって、制御対象が異常な動作をしてしまうことを防止できる。
なお、この構成における動作規制手段は、制御装置による制御対象の動作を規制する手段であって、このとき規制する動作としては特に限定されないが、例えば、制御装置の一部または全部の動作が行えなくなるようにすればよい。
また、上記各プログラム書込装置は、下記第5のプログラム書込装置のように、書込手段(第1,第2書込手段)により書き込まれた制御プログラムの中に、書込手段による正規の書き込み以外の要因で不正に書き換えられた制御プログラムが存在するか否かを、蓄積手段(第1,第2蓄積手段)により蓄積されたプログラムデータで示される制御プログラム、および、書込手段により内蔵メモリに書き込まれた制御プログラムに基づいて判定する不正判定手段と、この不正判定手段により不正に書き換えられている制御プログラムが存在すると判定された際に、不正に書き換えられている制御プログラムが存在する旨を報知する不正報知手段と、を備えている、といった構成とするとよい
このように構成されたプログラム書込装置によれば、利用者は、不正報知手段による報知によって、不正に書き換えられた制御プログラムが存在する旨を確認することができるため、その旨を確認した後で、制御装置または制御対象を停止させたり、不正に書き換えられた制御プログラムを正規の制御プログラムに書き直す、といった対策を取ることができる。これによって、不正に書き換えられた制御プログラムにより制御対象が異常な動作をし続けてしまうことを防止できる。
なお、上述した不正判定手段は、不正に書き換えられた制御プログラムが存在するかどうかを判定する手段であって、一定期間毎または所定のタイミングで、例えば、蓄積手段により蓄積されたプログラムデータで示される制御プログラムと、この制御プログラムが書込手段により書き込まれた内蔵メモリに書き込まれている制御プログラムと、が一致する場合に、不正に書き換えられていると判定する、ように構成すればよい。
または、下記第6のプログラム書込装置のように構成してもよい。このプログラム書込装置は、蓄積手段(第1,第2蓄積手段)により蓄積されたプログラムデータで示される制御プログラムから所定のアルゴリズムに従って算出される値と、書込手段(第1,第2書込手段)により内蔵メモリに書き込まれた制御プログラムから所定のアルゴリズムに従って算出される値と、が一致しない場合に、不正に書き換えられた制御プログラムが存在すると判定する。
このように構成すれば、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、不正に書き換えられた制御プログラムが存在するか否かを判定することができる。
また、上記各プログラム書込装置は、下記第7のプログラム書込装置のように、複数の制御装置のうちいずれかの制御装置と一体に構成してもよい。
このように構成すれば、複数の制御装置のうちいずれかがプログラム書込装置として機能するため、制御装置を備える車両全体としての構成を単純化することができる。
また、上記各プログラム書込装置は、下記第8のプログラム書込装置のように、複数の制御装置全ての内蔵メモリへの書込手段(第1,第2書込手段)による制御プログラムの書き込みが終了した際に、これら制御プログラムの書き込みが終了した旨を報知する書込報知手段と、を備えている。
このように構成されたプログラム書込装置によれば、利用者は、書込報知手段による報知で書込手段による制御プログラムの書き込みが全て終了したことを確認することができる。
なお、上述した取得報知手段,不正報知手段および書込報知手段により報知を行うための構成としては、例えば、報知すべき旨のメッセージを含む文字や画像を表示装置により表示させたり印刷装置により印刷させることによって報知を行うように構成すればよい。また、報知すべき旨のメッセージをスピーカで音声として出力することによって報知を行うように構成してもよい。
また、請求項に記載のプログラム書込システムは、車両に搭載され、制御対象の動作を制御する複数の制御装置と、該複数の制御装置それぞれに接続され、該制御装置それぞれに対し、該制御装置の内蔵メモリへ制御プログラムの書き込みを行うプログラム書込装置と、からなるプログラム書込システムである。このうち、前記プログラム書込装置は、当該プログラム書込装置の外部から、前記複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の前記制御プログラムからなるプログラムデータを取得する取得手段と、該取得手段により取得されたプログラムデータを蓄積する第1蓄積手段と、該第1蓄積手段により蓄積されたプログラムデータに基づき、該プログラムデータを複数の前記制御プログラムに分割するプログラム分割手段と、該プログラム分割手段により分割された制御プログラムを、該制御プログラムを書き込むべき前記制御装置の内蔵メモリへ書き込む第1書込手段と、該第1書込手段による制御プログラムの書き込みを、前記プログラム分割手段により分割された全ての制御プログラムそれぞれについて繰り返し実施させる書込指令手段と、を備えている。
また、上記課題を解決するためのプログラム書込システムとしては、上記いずれかに記載のプログラム書込装置および複数の制御装置を備えているものが考えられる。
このように構成されたプログラム書込システムによれば、上記いずれかに記載のプログラム書込装置と同様の作用・効果を得ることができる。

また、このプログラム書込システムは、次のように、複数のプログラム書込装置を備え複数の制御装置それぞれ、複数のプログラム書込装置のうちいずれかが内蔵メモリへの制御プログラムの書き込みを行うプログラム書込装置として設定されており、複数のプログラム書込装置によって、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを分担して並列的に行うように構成されている、とよい
このように構成されたプログラム書込システムによれば、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを並列して行うことにより、全ての制御装置の内蔵メモリに対する制御プログラムの書き込みに要する時間を短くすることができる。
また、上記プログラム書込システムは、次のように、複数のプログラム書込装置(第1から第nのプログラム書込装置)を備え、複数の制御装置それぞれ、第i(1≦i≦n)のプログラム書込装置が内蔵メモリへ制御プログラムの第i分割領域に相当するデータの書き込みを行うプログラム書込装置として設定されており、複数のプログラム書込装置によって、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを分担して並列的に行うように構成されている、とよい
このように構成されたプログラム書込システムによれば、複数の制御装置それぞれの内蔵メモリへの制御プログラムの書き込みを並列して行うことにより、複数の制御装置の内蔵メモリそれぞれに対する制御プログラムの書き込みに要する時間を均等にすることができる。
また、上記課題を解決するための送信装置としては、上記いずれかに記載のプログラムデータを送信可能に構成されている。
このように構成された送信装置によれば、請求項および請求項を引用する記載に係るプログラム書込装置へプログラムデータを送信する外部装置として機能することができる。
また、請求項に記載のプログラムは、車両に搭載され、制御対象の動作を制御する複数の制御装置それぞれに接続されたプログラム書込装置を、該プログラム書込装置の外部から、前記複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の前記制御プログラムからなるプログラムデータを取得する取得手段、該取得手段により取得されたプログラムデータを蓄積する第1蓄積手段、該第1蓄積手段により蓄積されたプログラムデータに基づき、該プログラムデータを複数の前記制御プログラムに分割するプログラム分割手段、該プログラム分割手段により分割された制御プログラムを、該制御プログラムを書き込むべき前記制御装置の内蔵メモリへ書き込む第1書込手段、および、該第1書込手段による制御プログラムの書き込みを、前記プログラム分割手段により分割された全ての制御プログラムそれぞれについて繰り返し実施させる書込指令手段として機能させるためのプログラムである。
このように構成されたプログラムにより制御されるコンピュータシステムは、請求項1からのいずれかに記載のプログラム書込装置の一部を構成することができる。
なお、上述したプログラムは、それぞれコンピュータシステムによる処理に適した命令の順番付けられた列からなるものであって、請求項1からのいずれかに記載のプログラム書込装置の備える全ての手段としての機能をコンピュータシステムに実行させるためのプログラムである。このプログラムは、例えば、FD、CD−ROM、メモリーカードなどの記録媒体、インターネットなどの通信回線網を介して、プログラム書込装置自身、コンピュータシステム、または、これらを利用する利用者に提供されるものである。また、このプログラムを実行するコンピュータシステムとしては、例えば、プログラム書込装置に内蔵されたコンピュータシステム、プログラム書込装置に無線または有線の通信路を介してデータ通信可能に接続されたコンピュータシステムなどを利用することができる。
本発明を車両の動作を制御するプログラム書込システムに適用した例を説明する。
[第1実施形態]
プログラム書込システム1は、複数の制御対象120それぞれの動作を制御することにより車両全体の動作を制御するシステムであって、それぞれがセンサ110による検出信号に基づいて制御対象120の動作を制御する複数(1からa)のECU10、プログラム書込システム1外部からのデータの入力を管理するゲートウェイ20、各種情報を表示する第1,第2表示部30,40、電源供給部210によるスタータ220への電源供給を制御する供給規制部50などが車内LAN回線60を介して接続されてなるものである。
ECU10は、ECU10全体の動作を制御するCPU11、CPU11による処理手順などを記録している第1ROM12、制御対象120の動作を制御するための制御プログラムを記録・書換可能な第2ROM13、CPU11による処理結果などを記録するRAM14、センサ110による検出信号を検出する検出部15、制御対象120を駆動する駆動部16、ECU10を車内LAN回線60とデータ通信可能に接続する通信部17などがバス18を介して接続されたものである。
ゲートウェイ20は、ゲートウェイ20全体の動作を制御するCPU21、CPU21による処理手順などを記録している第1ROM22、後述するプログラム書込処理(図2)において生成される書込テーブルを記録・書換可能な第2ROM23、CPU11による処理結果などを記録するRAM24、ゲートウェイ20を車内LAN回線60とデータ通信可能に接続する通信部27、プログラム書込システム1外部からデータを入出力するための通信部2Aなどがバス28を介して接続されたものである。この通信部2Aは、プログラム書込システム1外部からデータを入出力するための外部コネクタ70に接続されている。また、この通信部2Aが外部コネクタ70との間でデータを入出力する際には、通信部27と車内LAN回線60との間でデータを入出力するよりも高速な通信速度となるように構成されている。
第1表示部30は、外部コネクタ70付近に配設されており、後述するプログラム書込処理(図2)において点灯する複数の表示ランプで構成されている。
第2表示部40は、車両の室内に配設されており、後述する動作抑制処理(図3)においてメッセージを表示する表示用のパネルである。
供給規制部50は、電源供給部210とスタータ220との間に介在する回路であり、初期状態においては、電源供給部210から供給された電源をそのままスタータ220に供給する一方、後述する動作抑制処理(図3)においてゲートウェイ20から規制指令データを受信した際には、電源供給部210からスタータ220への電源供給を規制し(本実施形態においては、電源供給部210とスタータ220とをつなぐ電源の供給経路を開放する)、これにより、スタータ220が作動しなくする。なお、このスタータ220は、運転者の操作を受けて複数の制御対象120のうちの一つであるエンジンを作動させる周知のものであって、電源供給部210から供給される電源により動作するものである。
このように構成されたプログラム書込システム1は、各ECU10の備える第2ROM13それぞれに制御プログラムが書き込まれた状態で、この制御プログラムに従って各ECU10が制御対象120の動作を制御することによって、車両全体の動作を制御する。この制御プログラムは、プログラム書込システム1外部から提供されるものであって、本実施形態においては周知のコンピュータシステムである外部ツール300から接続ケーブル310を介して供給される。
この外部ツール300は、内蔵するメモリに、プログラム書込システム1を構成する各ECU10の第2ROM13それぞれに書き込むべき複数(1からa)の制御プログラムと、これら制御プログラムを書き込むべきECU10とを特定可能なプログラムデータを記録している。そして、図示されない操作部により特定の操作が行われた際に、このプログラムデータを外部(接続ケーブル310側)へ向けて送信するように構成されている。なお、このプログラムデータは、所定の圧縮形式でデータ量が圧縮された状態で記録されたものである。
○ゲートウェイ20によるプログラム書込処理
以下に、ゲートウェイ20の備えるCPU21により実行されるプログラム書込処理の処理手順を図2に基づいて説明する。このプログラム書込処理は、プログラム書込システム1が起動している状態(例えば、図示されないイグニッションスイッチがオンになっている状態など)の時、外部コネクタ70を介してプログラム書込システム1外部、つまり、接続ケーブル310を介して接続された外部ツール300からプログラムデータを受信した際に開始される。
まず、外部から受信したプログラムデータをRAM24に記録させる(s110)。
このs110の処理によるプログラムデータの記録が終了するまで待機した後、記録が終了した旨を報知する(s120)。この処理では、第1表示部30を構成する複数の表示ランプのうち、RAM24へのプログラムデータの記録が完了した旨を報知するための表示ランプを点灯させることにより報知を行う。なお、このs120の処理が行われた時点では、外部ツール300側からプログラム書込システム1へのプログラムデータの転送が終了しているため、外部ツール300をプログラム書込システム1から取り外すことができる状態になっていることを報知していることになる。
次に、変数Nを初期化する(s130)。この処理では、変数Nに「1」をセット(1→N)する。なお、以降に記載の「n」は、変数Nにセットされた値を示すものとする。
次に、s110の処理でRAM24に記録されたプログラムデータを解凍(または、伸張,展開)し、この解凍したプログラムデータを複数(1からa)の制御プログラムに分割する(s140)。
次に、s140の処理で分割された複数の制御プログラムのうち、「制御プログラムを書き込むべきECU10」が第n番目のECU10となっている制御プログラムを、第n番目のECU10へ書き込む(s150)。この制御プログラムを受信したECU10側からは、制御プログラムの第2ROM13への書き込みが行われた後、この書き込みが終了した旨を通知するための書込通知データが送信されてくる。なお、ECU10側において、第2ROM13に他の制御プログラムが書き込まれている場合には、この制御プログラムに上書き(オーバーライト)される。
次に、s150の処理で送信した制御プログラムが、第n番目のECU10側において書き込み終わるまで待機する(s160:NO)。この処理では、第n番目のECU10側から上述の終了通知データを受信したことを、第n番目のECU10側において制御プログラムが書き込み終わったと判定する。
このs160の処理で、第n番目のECU10側において制御プログラムが書き込み終わったら(s160:YES)、この書き込まれた制御プログラムが正常に書き込まれているかどうかをチェック(ベリファイチェック)する(s170)。この処理では、まず、制御プログラムの書込状態を問い合わせるための状態問合データを第n番目のECU10へ送信する。この書込問合データを受信したECU10側からは、第2ROM13に書き込まれた制御プログラムを示すデータに基づき所定のアルゴリズム(例えば、チェックサム,CRC(Cyclic Redundancy Checking)など)に従って算出した値を示すデータが状態通知データとして送信されてくる。続いて、ECU10から状態通知データを受信するまで待機し、状態通知データを受信したら、s150の処理で送信された制御プログラムを示すデータ領域に基づいて算出される値と、状態通知データで示される値とを比較する。そして、この両方の値が一致する場合のみ、制御プログラムが正常に書き込まれていると判定する。
このs170の処理で、制御プログラムが正常に書き込まれていないと判定された場合(s170:NO)、s150の処理へ戻る。
一方、s170の処理で制御プログラムが正常に書き込まれていると判定された場合(s170:YES)、第n番目のECU10において第2ROM13への制御プログラムの書き込みが終了した旨を報知する(s180)。この処理では、第1表示部30を構成する複数の表示ランプのうち、第n番目のECU10における制御プログラムの書き込みが終了した旨を報知するための表示ランプを点灯させることにより報知を行う。
次に、変数Nに「1」を加算(n+1→N)する(s190)。
次に、変数Nの値nおよびECU10の数aを比較することによって、全てのECU10に対する制御プログラムの書き込みが終了したかどうかをチェックする(s200)。この処理では、変数Nの値nがECU10の数aより大きい(a<n)場合に、全てのECU10に対する制御プログラムの書き込みが終了したと判定する。
このs200の処理で全てのECU10に対する制御プログラムの書き込みが終了していなければ(s200:NO)、s150の処理へ戻る。
こうして、s150からs200の処理を全てのECU10に対して順番に行った後、s200の処理で、全てのECU10に対する制御プログラムの書き込みが終了したら(s200:YES)、各ECU10,および,ECU10それぞれの第2ROM13に書き込まれた制御プログラムの対応関係を登録した書込テーブルを生成する(s210)。この処理では、s140の処理で生成された各分割プログラムデータに基づき、ECU10と、このECU10の第2ROM13に書き込まれた制御プログラムとの対応関係を特定し、それぞれ対応するECU10と制御プログラムとが対応づけられた状態で登録されたデータテーブルである書込テーブルを第2ROM23に生成する。
次に、s110の処理で記録されたプログラムデータ、および、s140の処理で生成(分割)された制御プログラムを、RAM24から削除する(s220)。
そして、全てのECU10における制御プログラムの書き込みが終了した旨を報知する(s230)。この処理では、第1表示部30を構成する複数の表示ランプのうち、全てのECU10における制御プログラムの書き込みが終了した旨を報知するための表示ランプを一定期間(本実施形態においては、10秒間)点滅させることにより報知を行う。なお、この表示ランプを一定期間点滅させた後は、s120,s180の処理で点灯させた表示ランプについても消灯させる。
○ゲートウェイ20による動作抑制処理
以下に、ゲートウェイ20の備えるCPU21により実行される動作抑制処理の処理手順を図3に基づいて説明する。この動作抑制処理は、プログラム書込システム1が起動された際に開始される。
まず、変数Mを初期化する(s310)。この処理では、変数Mに「1」をセット(1→M)する。なお、以降に記載の「m」は、変数Mにセットされた値を示すものとする。
次に、第m番目のECU10における第2ROM13に制御プログラムが正常に書き込まれているかどうかをチェックする(s320)。この処理では、まず、図2におけるs170の処理と同様に、状態問合データを第m番目のECU10へ送信する。この書込問合データを受信したECU10側からは、第2ROM13に制御プログラムが書き込まれていれば、第2ROM13に書き込まれた制御プログラムを示すデータに基づき所定のアルゴリズムに従って算出した値を示すデータが状態通知データとして送信されてくる。続いて、ECU10からデータを受信するまで待機し、受信したデータが状態通知データである場合には、第2ROM23に記録された書込テーブルに記録されている制御プログラムのうちの第m番目のECU10に対応する制御プログラムを示すデータに基づいて算出される値と、状態通知データで示される値とを比較する。そして、この両方の値が一致する場合のみ制御プログラムが正常に書き込まれていると判定する。
このs320の処理で、制御プログラムが正常に書き込まれていない場合(s320:NO)、車両の動作を規制する(s330)。この処理では、電源供給部210からスタータ220への電源供給の規制を指令するための規制指令データを供給規制部50へ送信する。この規制指令データを受信した供給規制部50は、電源供給部210とスタータ220とをつなぐ電源の供給経路を開放することによって、スタータ220を作動させないようにし、これにより、複数の制御対象120のうちの一つであるエンジンが作動しないようにする。
そして、ECU10の第2ROM13に書き込まれている制御プログラムが正常ではない旨を報知した後(s340)、本動作抑制処理を終了する。このs340の処理では、制御プログラムが正常ではない旨のメッセージを第2表示部40に表示させることにより報知を行う。
また、上述のs320の処理で、制御プログラムが正常に書き込まれている場合(s320:YES)、変数Mに「1」を加算(m+1→M)する(s350)。
次に、変数Mの値mおよびECU10の数aを比較することによって、全てのECU10の制御プログラムが正常に書き込まれていることを確認したかどうかをチェックする(s360)。この処理では、変数Mの値mがECU10の数aより大きい(a<m)場合に、全てのECU10の制御プログラムが正常に書き込まれていることを確認したと判定する。
このs360の処理で、全てのECU10の制御プログラムが正常に書き込まれていることを確認していなければ(s360:NO)、s320の処理へ戻る。
こうして、s320からs360の処理を全てのECU10に対して順番に行った後、s360の処理で全てのECU10への制御プログラムが正常に書き込まれていることを確認したら(s360:YES)、本動作抑制処理を終了する。
このように、全てのECU10の制御プログラムが正常に書き込まれていることが確認できた場合には、供給規制部50に規制指令データが送信されることがなく、電源供給部210とスタータ220とをつなぐ電源の供給経路が開放されないため、スタータ220によりエンジンを正常に作動させることができる。
[第1実施形態の効果]
このように構成されたプログラム書込システム1によれば、外部ツール300からプログラムデータとして取得された制御プログラムは、ゲートウェイ20のRAM24に蓄積(記録)された後、このゲートウェイ20のCPU21によって各ECU10の第2ROM13へ書き込まれる。そのため、プログラムデータを供給するための外部ツール300をプログラム書込システム1と接続ケーブル310を介して接続し、この外部ツール300によりプログラムデータの供給を受ける本実施形態においては、プログラムデータがゲートウェイ20のRAM24に蓄積された後であれば、外部ツール300との接続状態を維持しておかなくても、ECU10それぞれの第2ROM13に制御プログラムを書き込むことができる。
これにより、外部ツール300との接続状態を維持しなければならない待機時間を短くすることができるため、ECU10それぞれの第2ROM13に制御プログラムを書き込む際の作業効率が向上する。
特に、本プログラム書込システム1が実装された車両の製造工程において、複数のECU10それぞれに対して連続的に制御プログラムの書き込みを行う場合には、外部ツール300を各ECU10それぞれに接続しておく時間が短くなるため、総合的な作業効率が向上し、車両の製造に要する時間および製造コストを抑えることができる。
また、この通信部2Aが外部コネクタ70との間で高速にデータを入出力する際、行して通信部27と車内LAN回線60との間でデータを入出力することができる。
また、外部ツール300から取得されるプログラムデータは、圧縮されており、s140の処理において解凍されてからCPU10へ書き込まれる。このように、プログラムデータは、外部ツール300から受信される際、圧縮されており、プログラムデータを圧縮しない場合よりもデータ量を少なくすることができるため、外部ツール300を車両に接続しておく時間をより短くできる。
また、図2におけるs120の処理では、第1表示部30を構成する表示ランプの点灯によって、RAM24へのプログラムデータの記録が完了した旨を報知することができる。これによって、利用者は、外部ツール300との接続状態を維持してもよくなったことを確認でき、このことを確認したうえで外部ツール300をプログラム書込システム1から取り外せば、外部ツール300との接続状態を最短時間で済ませることができる。
また、図2におけるs170の処理で、制御プログラムが正常に書き込まれなかったと判定されたECU10に対しては、再度、制御プログラムの書き込みが行われる。そのため、制御プログラムが正常に書き込まれていない状態でECU10が作動してしまうといったことを防止できる。
また、図2におけるs170の処理では、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、書き込みが正常に行われたかどうかを判定することができる。
また、図3におけるs320の処理で、制御プログラムが正常に書き込まれていないと判定された場合、s330の処理により車両の動作が規制される。そのため、ECU10の第2ROM13に書き込まれている制御プログラムが不正に書き換えられた場合であっても、車両の動作を規制することができるため、不正に書き換えられた制御プログラムによって、車両が異常な動作をしてしまうことを防止できる。
また、図3におけるs320の処理で、制御プログラムが正常に書き込まれていないと判定された場合、その旨がs340の処理により報知される。そのため、利用者は、s340の処理による報知によって、不正に書き換えられた制御プログラムが存在する旨を確認することができるため、その旨を確認した後で、ECU10または車両の動作を停止させたり、不正に書き換えられた制御プログラムを正規の制御プログラムに書き直す、といった対策を迅速に取ることができる。
また、図3におけるs320の処理では、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、不正に書き換えられた制御プログラムが存在するか否かを判定することができる。
また、図2におけるs230の処理で、複数のECU10全ての第2ROM13への制御プログラムの書き込みが終了したことを報知することができる。そのため、利用者は、s230の処理による報知で各ECU10への制御プログラムの書き込みが全て終了したことを確認することができる。
[第2実施形態]
プログラム書込システム2は、図4に示すように、第1実施形態におけるプログラム書込システム1にもう一つのゲートウェイ20が設けられ、それぞれの通信部2Aが外部コネクタ70に接続されたものであって、各ゲートウェイ20による処理内容が一部第1実施形態と異なるだけであるため、その相違点についてのみ詳述する。なお、各ゲートウェイ20は、便宜上、第1実施形態においても設けられているものを第1ゲートウェイ20a、第2実施形態においてのみに設けられているものを第2ゲートウェイ20bとする。
このように構成されたプログラム書込システム2は、外部コネクタ70を介してゲートウェイ20a,20bそれぞれがプログラムデータを受信し、これらゲートウェイ20a,20bが、複数のECU10の備える第2ROM13への制御プログラムの書き込みを分担して行う。具体的には、第1番目から第i−1番目(1<i<a)までのECU10への書き込みを第1ゲートウェイ20aが行い、第i番目から第a番目までのECU10への書き込みを第2ゲートウェイ20bが行う。
まず、第1ゲートウェイ20aにより実行される処理のうち、プログラム書込処理は、第1実施形態におけるプログラム書込処理(図2)と同様の処理であって、s200の処理において、変数Nの値nがECU10の数aから「i−1」を減算した値より大きい(a−(i−1)<n)場合に、全てのECU10に対する制御プログラムの書き込みが終了したと判定するように構成されたものである。こうして、第1ゲートウェイ20aは、第1番目から第i−1番目までのECU10への書き込みを行う。
また、第1ゲートウェイ20aにより実行される処理のうち、動作抑制処理は、第1実施形態における動作抑制処理(図3)と同様の処理であって、s360の処理において、変数Mの値mがECU10の数aから「i−1」を減算した値より大きい(a−(i−1)<m)場合に、全てのECU10に対する制御プログラムの書き込みが終了したと判定するように構成されたものである。こうして、第1ゲートウェイ20aは、第1番目から第i−1番目までの全ECU10に対して、制御プログラムが正常に書き込まれているかどうかをチェックする。
一方、第2ゲートウェイ20bにより実行される処理のうち、プログラム書込処理は、第1実施形態におけるプログラム書込処理(図2)と同様の処理であって、s130の処理において、変数Nに「i」をセット(i→N)するように構成されたものである。こうして、第2ゲートウェイ」20bは、第i番目から第a番目までのECU10への書き込みを行う。
また、第2ゲートウェイ20bにより実行される処理のうち、動作抑制処理は、第1実施形態における動作抑制処理(図3)と同様の処理であって、s310の処理において、変数Mに「i」をセット(i→M)するように構成されたものである。こうして、第2ゲートウェイ20bは、第i番目から第a番目までの全ECU10に対して、制御プログラムが正常に書き込まれているかどうかをチェックする。
なお、各ECU10に対して書き込まれた各分割領域は、ECU10側において制御プログラムとなるように結合される。
[第2実施形態の効果]
このように構成されたプログラム書込システム2は、第1実施形態のプログラム書込システム1と同様の構成から得られる効果の他に、以下に示すような効果を得ることができる。
このプログラム書込システム2によれば、それぞれ制御プログラムを書き込む対象となるECU10の異なる複数のゲートウェイ20(のCPU21)によって、複数のECU10それぞれの第2ROM13への制御プログラムの書き込みが並列して行われる。そのため、第1実施形態の構成と比べて、全てのECU10に対する制御プログラムの書き込みに要する時間を短くすることができる。
[第3実施形態]
プログラム書込システム3は、第2実施形態におけるプログラム書込システム2と同様の構成であって、各ゲートウェイ20による処理内容が一部第1実施形態と異なるだけであるため、その相違点についてのみ詳述する。
このように構成されたプログラム書込システム3は、外部コネクタ70を介してゲートウェイ20a,20bそれぞれがプログラムデータを受信し、これらゲートウェイ20a,20bが、複数のECU10の備える第2ROM13への制御プログラムの書き込みを分担して行う。
具体的には、プログラムデータにおける各制御プログラムに相当するデータ領域を2つに分割した分割領域のうち、一方の分割領域(第1分割領域)の各ECU10への書き込みを第1ゲートウェイ20aが行い、他方の分割領域(第2分割領域)の各ECU10への書き込みを第2ゲートウェイ20bが行う。なお、本実施形態において、上述の「第1分割領域」は、制御プログラムのプログラム本体部分を示すものであり、「第2分割領域」は、プログラム本体部分において利用されるパラメータ部分を示すものである。
まず、第1ゲートウェイ20aにより実行される処理のうち、プログラム書込処理は、第1実施形態におけるプログラム書込処理(図2)と同様の処理であって、s150の処理において、s140の処理で分割された複数の制御プログラムのうち、「制御プログラムを書き込むべきECU10」が第n番目のECU10となっている制御プログラムから第1分割領域を分割し、この第1分割領域を、第n番目のECU10へ送信するように構成されたものである。この制御プログラムを受信したECU10側からは、制御プログラムの第2ROM13への書き込みが行われた後、書込通知データが送信されてくる。なお、ECU10側において、第2ROM13に他の制御プログラムにおける第1分割領域が書き込まれている場合には、この第1分割領域に上書きされる。以降の処理によって、第1ゲートウェイ20aは、各ECU10それぞれの第2ROM13への制御プログラムにおける第1分割領域の書き込みを行う。
一方、第2ゲートウェイ20bにより実行される処理のうち、プログラム書込処理は、第1実施形態におけるプログラム書込処理(図2)と同様の処理であって、s150の処理において、s140の処理で分割された複数のプログラムデータのうち、プログラムデータで示される「制御プログラムを書き込むべきECU10」が第n番目のECU10となっているプログラムデータから第2分割領域を分割し、この第2分割領域を、第n番目のECU10へ送信するように構成されたものである。このプログラムデータを受信したECU10側からは、プログラムデータで示される制御プログラムの第2ROM13への書き込みが行われた後、書込通知データが送信されてくる。なお、ECU10側において、第2ROM13に他の制御プログラムにおける第2分割領域が書き込まれている場合には、この第1分割領域に上書きされる。以降の処理によって、第2ゲートウェイ20bは、各ECU10それぞれの第2ROM13への制御プログラムにおける第2分割領域の書き込みを行う。
こうして、各ECU10に対して書き込まれた各分割領域は、ECU10側で制御プログラムとなるように結合される。
[第3実施形態の効果]
このように構成されたプログラム書込システム3は、第1実施形態のプログラム書込システム1と同様の構成から得られる効果の他に、以下に示すような効果を得ることができる。
このプログラム書込システム3によれば、それぞれ制御プログラムを書き込むべきデータ領域の異なる複数のゲートウェイ20(のCPU21)によって、複数のECU10それぞれの第2ROM13への制御プログラムの書き込みが同時進行される。これにより、複数のECU10に対する制御プログラムの書き込みに要する時間を均等にすることができる。
[第4実施形態]
プログラム書込システム4は、図5に示すように、第1実施形態におけるプログラム書込システム1のゲートウェイ20が設けられておらず、複数のECU10のうち特定のECU10(本実施形態においては、第1のECU10)内の通信部1Aが外部コネクタ70に接続されており、第1実施形態におけるゲートウェイ20として機能するように構成されたものである。
○ECU10によるプログラム書込処理
以下に、第1のECU10の備えるCPU11により実行されるプログラム書込処理の処理手順を説明する。このプログラム書込処理は、第1実施形態におけるプログラム書込処理(図2)と同様の処理であって、一部処理内容が異なっているだけであるため、この相違点についてのみ詳述する。なお、このプログラム書込処理において、第1実施形態におけるプログラム書込処理と同様のステップ番号が付加されている処理については、同様の処理が行われるものとする。
まず、外部から受信したプログラムデータをRAM14に記録させる(s110)。
このs110の処理によるプログラムデータの記録が終了するまで待機した後、記録が終了した旨を報知する(s120)。
次に、変数Nを初期化する(s130)。
次に、s110の処理でRAM17に記録されたプログラムデータを解凍し、この解凍したプログラムデータを複数の制御プログラムそれぞれに分割する(s140)。
次に、s140の処理で分割された複数(1からa)の制御プログラムのうち、「制御プログラムを書き込むべきECU10(の第2ROM13)」が第n番目のECU10となっている制御プログラムを、第n番目のECU10へ送信する(s150)。この処理において、制御プログラムで示されるECU10が、ECU10自身(第1番目のECU10)である場合には、自身の備える第2ROM13への制御プログラムの書き込みを開始する。
次に、s150の処理で送信した制御プログラムが、第n番目のECU10側において書き込み終わるまで待機する(s160:NO)。なお、s150の処理において、ECU10自身の第2ROM13への制御プログラムの書き込みを開始した場合、この書き込みが終了した際に、第n番目のECU10側において制御プログラムが書き込み終わったと判定する。
このs160の処理で、第n番目のECU10側において制御プログラムが書き込み終わったら(s160:YES)、この書き込まれた制御プログラムが正常に書き込まれているかどうかをチェック(ベリファイチェック)する(s170)。この処理において、s150の処理でECU10自身に制御プログラムの書き込みを行った場合には、s140の処理で分割された制御プログラム,および,s150の処理で記録された制御プログラムを示すデータ領域に基づいて算出される値それぞれが一致する場合のみ、制御プログラムが正常に書き込まれていると判定する。
このs170の処理で、制御プログラムが正常に書き込まれていないと判定された場合(s170:NO)、s150の処理へ戻る。
この後、s170の処理で制御プログラムが正常に書き込まれていると判定された以降の処理は、第1実施形態と同様である。なお、s220の処理では第1のECU10自身のRAM14にs150の処理で記録されたデータを削除する。
○ECU10による動作抑制処理
以下に、第1のECU10の備えるCPU11により実行されるプ動作抑制処理の処理手順を説明する。この動作抑制処理は、第1実施形態においてゲートウェイ20が実行する処理と同様の処理であって、s320の処理において第m番目のECU10がECU10自身(第1番目のECU10)である場合に、以下に示す処理を行うように構成されたものである。
s320の処理において、第m番目のECU10がECU10自身(第1番目のECU10)である場合には、第2ROM13に制御プログラムが書き込まれていれば、第2ROM13に書き込まれた制御プログラムを示すデータに基づき所定のアルゴリズムに従って算出した値と、第2ROM23に記録されている書込テーブルに記録されている制御プログラムのうちの第m番目のECU10に対応する制御プログラムを示すデータに基づいて算出される値とを比較する。そして、この両方の値が一致する場合のみ制御プログラムが正常に書き込まれていると判定する。
[第4実施形態の効果]
このように構成されたプログラム書込システム4は、第1実施形態のプログラム書込システム1と同様の構成から得られる効果の他に、以下に示すような効果を得ることができる。
このプログラム書込システム4によれば、複数のECU10のうちいずれかがゲートウェイ20として機能するため、ゲートウェイ20として機能する専用の装置構成が不要となり、プログラム書込システム4全体としての構成を単純化することができる。
[第5実施形態]
プログラム書込システム5は、第1実施形態におけるプログラム書込システム1と同様の構成であり、一部処理内容が異なるだけであるため、この相違点についてのみ詳述する。
この構成におけるゲートウェイ20は、図6に示すように、後述のプログラム書込処理を開始させるための操作部29を備えており、圧縮されたプログラムデータがあらかじめ第2ROM23に記録されている。
○ゲートウェイ20によるプログラム書込処理
以下に、ゲートウェイ20の備えるCPU21により実行されるプログラム書込処理の処理手順を図2に基づいて説明する。このプログラム書込処理は、第1実施形態におけるプログラム書込処理(図2)と同様の処理であって、操作部29によりプログラム書込処理を開始させるための操作が行われた際にs130の処理から開始され、s140の処理において以下に示すような処理が行われるように構成されたものであり、この相違点についてのみ詳述する。
s140の処理では、第2ROM23に記録されているプログラムデータを解凍(または、伸張,展開)し、この解凍したプログラムデータを複数(1からa)の制御プログラムに分割する。この処理において、制御プログラムは、RAM24に展開(記録)される。
[第5実施形態の効果]
このように構成されたプログラム書込システム5は、第1実施形態のプログラム書込システム1と同様の構成から得られる効果の他に、以下に示すような効果を得ることができる。
このプログラム書込システム5によれば、図2におけるs150以降の処理において、あらかじめゲートウェイ20の第2ROM23に蓄積(記録)されているプログラムデータにおける制御プログラムが各ECU10の第2ROM13へ順次書き込まれる。このように、ゲートウェイ20の第2ROM23には、複数のECU10それぞれへ書き込むべき複数の制御プログラムを示すプログラムデータがあらかじめ蓄積されているため、プログラムデータを供給するための外部ツール300を接続および取り外す必要が無く、各ECU10へ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部ツール300をプログラム書込システム5に接続するのに要する時間を削減することができる。
これにより、プログラム書込システム5が実装された車両の製造工程において、複数のECU10それぞれに対して連続的に制御プログラムの書込を行う場合、外部ツール300を各車両のプログラム書込システム5それぞれに接続しておく必要がなく、操作部29によりプログラム書込処理を開始するための操作を行うことができればよいため、作業効率が向上し、車両の製造に要する時間および製造コストを抑えることができる。
[変形例]
以上、本発明の実施形態について説明したが、本発明は上記の具体的な実施形態に限定されず、このほかにも様々な形態で実施することができる。
例えば、上記実施形態においては、本発明のプログラム書込装置を車両の動作を制御するECU10へのプログラムの書き込みを行う構成に適用したものを例示した。しかし、本発明のプログラム書込装置は、制御プログラムの書き込みを行う用途であれば、他の構成に適用することもできる。
また、上記実施形態においては、各フローチャートで示される処理が、ゲートウェイ20のCPU21からなるコンピュータシステムにより実行されるように構成されたものを例示した。しかし、これらの処理の一部または全部が、ゲートウェイ20に有線・無線の信号伝送路で接続された別のコンピュータシステムにより実行されるように構成してもよい。
また、上記実施形態においては、接続ケーブル310にて接続された外部ツール300からプログラムデータを取得するように構成されたものを例示した。しかし、外部ツール300が無線によりデータ通信するためのインタフェースを備えている場合には、図7に示すプログラム書込システム6のように、外部コネクタ70の替わりに無線によるデータ通信を行うためのインタフェース80を設け、無線通信によりプログラムデータを取得するように構成してもよい。
このように構成すれば、外部ツール300をプログラム書込システム6へ物理的に接続する必要が無くなるため、各制御装置の第2ROM13へ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部ツール300をプログラム書込システムに接続する、および、取り外すのに要する時間を削減することができる。
また、上記実施形態においては、プログラム書込システムに接続された外部ツール300からプログラムデータを取得するように構成されたものを例示した。しかし、プログラムデータの取得元は、外部ツール300以外の装置であってもよく、例えば、プログラム書込システムに車内LAN回線60を介して、プログラムデータを記録可能な外部記録装置が備えられている場合であれば、この外部記録装置からプログラムデータを取得するように構成することができる。ここでいう、外部記録装置とは、例えば、図8に示すプログラム書込システム7において、車内LAN回線60に接続されたナビゲーションシステム400搭載のハードディスク410や着脱可能なメディア(CD−R,メモリカードなど)420、カーオーディオ500に着脱可能なメディア510などのことである。
このように構成すれば、プログラムデータを供給するための外部ツール300を接続および取り外す必要が無くなるため、各ECU10の第2ROM13へ制御プログラムを書き込む際の作業負担を軽減することができ、また、外部ツール300をプログラム書込システム7に接続するのに要する時間を削減することができる。
特に、ナビゲーションシステム400やカーオーディオ500から着脱可能なメディアをプログラムデータの供給元として用いる場合には、車両の製造工程において、各ECU10の第2ROM13への制御プログラムの書き込みを、上述したメディアをナビゲーションシステム400やカーオーディオ500に取り付けておき各ECU10の第2ROM13への制御プログラムの書き込みが終了した時点でメディアを取り外す、といった容易な手順で行うことができる。
また、上記実施形態においては、図2におけるs170の処理で、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、書き込みが正常に行われたかどうかを判定するように構成されたものを例示した。同様に、図3におけるs320の処理で、各制御プログラムから所定のアルゴリズムに従って求められる値が一致するか否かによって、制御プログラムが正常に書き込まれているかどうかを判定するように構成されたものを例示した。しかし、例えば、ECU10が状態通知データとして送信するデータが制御プログラムそのものとなるようにしておき、状態通知データで示される制御プログラムと、ゲートウェイ20自身が記録している制御プログラムとが一致するか否かにより判定を行うように構成してもよい。
また、上記実施形態においては、図3におけるs330の処理で、スタータ220を作動させないようにするように構成されたものを例示した。しかし、このs330の処理では、一部または全てのECU10に対して制御対象120の動作を規制(例えば、停止)させるための指令信号を送信し、車両としての動作そのものを規制するように構成してもよい。
また、上記実施形態においては、図2におけるs120,s230の処理、図3におけるs340の処理で、表示部30,40により報知すべき内容を表示することにより報知を行うように構成されたものを例示した。しかし、これらの処理における報知は、所定のメッセージをスピーカから音声として出力することによって行うように構成してもよい。
上記実施形態においては、図2におけるs140の処理で、プログラムデータを解凍して複数の制御プログラムに分割した後、以降の処理で各ECU10それぞれへの書き込みを行うように構成されたものを例示した。しかし、外部ツール300から取得されるプログラムデータが、各制御プログラムに相当するデータ領域毎に圧縮された複数のプログラムデータ(第1から第nプログラムデータ)の集合である場合には、s140の処理でECU10の第2ROM13に書き込むべき制御プログラムのみを解凍するようにし、s200の処理で「NO」のときs140の処理へ戻るように構成してもよい。
また、上述した第4実施形態においては、複数のECU10のうち特定のECU10のみが、ゲートウェイ20として機能するように構成されたものを例示した。しかし、複数のECU10がゲートウェイ20として機能するように構成し、それぞれが分担して各ECU10への制御プログラムの書込を行うように構成してもよい。
また、上述した第4実施形態においては、外部ツール300から入力されるプログラムデータが第1のECU10にのみ記録されるように構成されたものを例示した。しかし、外部コネクタ70を第1のECU10以外の1以上のECU10にも接続しておき、外部ツール300が第1のECU10に制御プログラムを供給する際、この制御プログラムの供給と共に、第1のECU10を除く1以上のECU10に対する制御プログラムの書き込み行うように構成してもよい。この構成においては、第1のECU10が、外部ツール300に制御プログラムの書き込みが行われているECU10以外のECU10に対してのみ、制御プログラムの書き込みを行うようにすればよいため、全てのECU10に対して制御プログラムを書き込むのに要する時間を短縮することができる。
また、上記第5実施形態においては、図2のプログラム書込処理が操作部29によりプログラム書込処理を開始するための操作が行われたときに開始されるように構成されたものを例示した。しかし、このプログラム書込処理は、プログラム書込システム5が起動する毎に実行されるように構成してもよい。
また、上記第5実施形態においては、プログラム書込システム5が実装される車両の種類に応じた複数のプログラムデータを第2ROM23に記録しておくと共に、操作部29により行われる「プログラム書込処理を開始させるための操作」として本プログラム書込システム1が実装された車両の種類に応じた操作を設定しておき、これら操作に応じたプログラムデータに基づくプログラム書込処理が行われるように構成してもよい。
[本発明との対応関係]
以上説明した実施形態において、外部ツール300は本発明における送信装置であり、ゲートウェイ20は本発明におけるプログラム書込装置である。
このゲートウェイ20の第2ROM13は本発明における内蔵メモリであり、通信部2Aは本発明における取得手段であり、RAM24は本発明における第1,第2蓄積手段である。
また、図2におけるs120の処理は本発明における取得報知手段であり、s140の処理は本発明における解凍手段であり、s150の処理は本発明における第1,第2書込手段であり、s170の処理は本発明における書込判定手段であり、s230の処理は本発明における書込報知手段である。
また、図3におけるs320の処理は本発明における不正判定手段であり、s330の処理は本発明における動作規制手段であり、s340の処理は本発明における不正報知手段である。
第1,第5実施形態におけるプログラム書込システムの構成を示すブロック図 プログラム書込処理の処理手順を示すフローチャート 動作抑制処理の処理手順を示すフローチャート 第2,第3実施形態におけるプログラム書込システムの構成を示すブロック図 第4実施形態におけるプログラム書込システムの構成を示すブロック図 第5実施形態におけるプログラム書込システムの構成を示すブロック図 別の実施形態におけるプログラム書込システムの構成を示すブロック図 別の実施形態におけるプログラム書込システムの構成を示すブロック図
符号の説明
1…プログラム書込システム、2…プログラム書込システム、3…プログラム書込システム、4…プログラム書込システム、5…プログラム書込システム、6…プログラム書込システム、7…プログラム書込システム、10…ECU、11…CPU、12…第1ROM、13…第2ROM、14…RAM、15…検出部、16…駆動部、17…通信部、18…バス、1A…通信部、20…ゲートウェイ、21…CPU、22…第1ROM、23…第2ROM、24…RAM、27…通信部、28…バス、29…操作部、2A…通信部、30…第1表示部、40…第2表示部、50…供給規制部、60…車内LAN回線、70…外部コネクタ、80…インタフェース。

Claims (8)

  1. 車両に搭載され、制御対象の動作を制御する複数の制御装置それぞれに接続され、該制御装置それぞれに対し、該制御装置の内蔵メモリへ制御プログラムの書き込みを行うプログラム書込装置であって、
    当該プログラム書込装置の外部から、前記複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の前記制御プログラムからなるプログラムデータを取得する取得手段と、
    該取得手段により取得されたプログラムデータを蓄積する第1蓄積手段と、
    該第1蓄積手段により蓄積されたプログラムデータに基づき、該プログラムデータを複数の前記制御プログラムに分割するプログラム分割手段と、
    該プログラム分割手段により分割された制御プログラムを、該制御プログラムを書き込むべき前記制御装置の内蔵メモリへ書き込む第1書込手段と、
    該第1書込手段による制御プログラムの書き込みを、前記プログラム分割手段により分割された全ての制御プログラムそれぞれについて繰り返し実施させる書込指令手段と、を備え、
    前記第1書込手段による前記分割された制御プログラムの前記制御装置の内蔵メモリへの書き込みを、前記外部との接続状態を維持することなく実行可能にされていることを特徴とするプログラム書込装置。
  2. 前記取得手段は、前記プログラム分割手段により分割された制御プログラムを前記制御装置の内蔵メモリまで伝送する際の伝送経路とは別の伝送経路から、前記プログラムデータを取得するように構成されている
    ことを特徴とする請求項1に記載のプログラム書込装置。
  3. 前記取得手段は、当該プログラム書込装置外部から無線通信によって前記プログラムデータを取得可能に構成されている
    ことを特徴とする請求項1または請求項2に記載のプログラム書込装置。
  4. 前記取得手段により取得され前記第1蓄積手段により蓄積されるプログラムデータは、所定の圧縮形式で圧縮された圧縮プログラムデータであって、
    前記第1蓄積手段により蓄積された圧縮プログラムデータを解凍する解凍手段を備え、
    前記プログラム分割手段は、前記解凍手段により解凍されたプログラムデータを複数の前記制御プログラムに分割する
    ことを特徴とする請求項1から3のいずれかに記載のプログラム書込装置。
  5. 当該プログラム書込装置に接続された外部記憶装置から読み出すことにより前記プログラムデータを取得する読出取得手段,を備えており、
    前記第1蓄積手段は、前記読出取得手段により取得されたプログラムデータを蓄積する
    ことを特徴とする請求項1から4のいずれかに記載のプログラム書込装置。
  6. 前記取得手段による前記プログラムデータの取得が終了した旨を報知する取得報知手段を備えている
    ことを特徴とする請求項1から5のいずれかに記載のプログラム書込装置。
  7. 車両に搭載され、制御対象の動作を制御する複数の制御装置と、
    該複数の制御装置それぞれに接続され、該制御装置それぞれに対し、該制御装置の内蔵メモリへ制御プログラムの書き込みを行うプログラム書込装置と、
    からなるプログラム書込システムであって、
    前記プログラム書込装置は、
    当該プログラム書込装置の外部から、前記複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の前記制御プログラムからなるプログラムデータを取得する取得手段と、
    該取得手段により取得されたプログラムデータを蓄積する第1蓄積手段と、
    該第1蓄積手段により蓄積されたプログラムデータに基づき、該プログラムデータを複数の前記制御プログラムに分割するプログラム分割手段と、
    該プログラム分割手段により分割された制御プログラムを、該制御プログラムを書き込むべき前記制御装置の内蔵メモリへ書き込む第1書込手段と、
    該第1書込手段による制御プログラムの書き込みを、前記プログラム分割手段により分割された全ての制御プログラムそれぞれについて繰り返し実施させる書込指令手段と、を備え、
    前記第1書込手段による前記分割された制御プログラムの前記制御装置の内蔵メモリへの書き込みを、前記外部との接続状態を維持することなく実行可能にされていることを特徴とするプログラム書込システム。
  8. 車両に搭載され、制御対象の動作を制御する複数の制御装置それぞれに接続されたプログラム書込装置を、
    該プログラム書込装置の外部から、前記複数の制御装置それぞれの内蔵メモリへ書き込むべき複数の前記制御プログラムからなるプログラムデータを取得する取得手段、
    該取得手段により取得されたプログラムデータを蓄積する第1蓄積手段、
    該第1蓄積手段により蓄積されたプログラムデータに基づき、該プログラムデータを複数の前記制御プログラムに分割するプログラム分割手段、
    該プログラム分割手段により分割された制御プログラムを、該制御プログラムを書き込むべき前記制御装置の内蔵メモリへ書き込む第1書込手段、
    該第1書込手段による制御プログラムの書き込みを、前記プログラム分割手段により分割された全ての制御プログラムそれぞれについて繰り返し実施させる書込指令手段、
    として機能させるためのプログラム。
JP2003307327A 2003-08-29 2003-08-29 プログラム書込装置,プログラム書込システム,送信装置およびプログラム Expired - Fee Related JP4593095B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003307327A JP4593095B2 (ja) 2003-08-29 2003-08-29 プログラム書込装置,プログラム書込システム,送信装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003307327A JP4593095B2 (ja) 2003-08-29 2003-08-29 プログラム書込装置,プログラム書込システム,送信装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2005078324A JP2005078324A (ja) 2005-03-24
JP4593095B2 true JP4593095B2 (ja) 2010-12-08

Family

ID=34410147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003307327A Expired - Fee Related JP4593095B2 (ja) 2003-08-29 2003-08-29 プログラム書込装置,プログラム書込システム,送信装置およびプログラム

Country Status (1)

Country Link
JP (1) JP4593095B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061576B2 (en) 2014-06-19 2018-08-28 Hitachi Automotive Systems, Ltd. Vehicle-mounted program writing device
US10310838B2 (en) 2014-06-18 2019-06-04 Hitachi Automotive Systems, Ltd. Vehicle-mounted program writing device

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4668656B2 (ja) * 2005-03-24 2011-04-13 日立オートモティブシステムズ株式会社 プログラムの書き換えシステム及びプログラムの書き換え方法
DE112009005344B4 (de) 2009-11-06 2016-04-28 Toyota Jidosha Kabushiki Kaisha Fahrzeug-gateway-system
JP6421635B2 (ja) * 2015-02-16 2018-11-14 株式会社デンソー 電子制御装置およびメモリ書換方法
JP6323480B2 (ja) * 2016-03-02 2018-05-16 住友電気工業株式会社 プログラム更新システム、プログラム更新方法及びコンピュータプログラム
JP6390644B2 (ja) * 2016-03-02 2018-09-19 住友電気工業株式会社 プログラム更新システム、プログラム更新方法及びコンピュータプログラム
JP6361671B2 (ja) * 2016-03-02 2018-07-25 住友電気工業株式会社 プログラム更新システム、プログラム更新方法、中継装置及びコンピュータプログラム
JP6545339B2 (ja) * 2018-09-06 2019-07-17 本田技研工業株式会社 車両検査装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310838B2 (en) 2014-06-18 2019-06-04 Hitachi Automotive Systems, Ltd. Vehicle-mounted program writing device
US10061576B2 (en) 2014-06-19 2018-08-28 Hitachi Automotive Systems, Ltd. Vehicle-mounted program writing device

Also Published As

Publication number Publication date
JP2005078324A (ja) 2005-03-24

Similar Documents

Publication Publication Date Title
JP4722194B2 (ja) 車両のための書き換えシステム
US11354112B2 (en) On-board update device, update process method, and update process program
CN109478155B (zh) 车载更新装置、车载更新系统及通信装置的更新方法
JP6011379B2 (ja) 改竄検知システム、電子制御ユニット
WO2018070156A1 (ja) ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
US11126422B2 (en) Program update system, control system, mobile body, program update method, recording medium
JPWO2013114543A1 (ja) 列車情報管理装置及びその制御ソフトウェアの選択方法
JP4593095B2 (ja) プログラム書込装置,プログラム書込システム,送信装置およびプログラム
JP6702269B2 (ja) 制御装置、制御方法、およびコンピュータプログラム
JP2010167997A (ja) 車両のための書き換えシステム
US20220308857A1 (en) Control device and terminal device
JP6838217B2 (ja) 車両制御装置
US20210173634A1 (en) Vehicle control device and program update system
WO2018189975A1 (ja) 中継装置、転送方法、およびコンピュータプログラム
CN110574015A (zh) 车载中继装置、控制程序及存储器共有方法
WO2018230084A1 (ja) 更新制御装置、制御方法、およびコンピュータプログラム
JP2020119419A (ja) 電子制御装置及びプログラム更新方法
JP6547904B2 (ja) 制御装置、プログラム更新方法、およびコンピュータプログラム
WO2018043107A1 (ja) 車載更新装置及び車載更新システム
JP7184855B2 (ja) ソフトウェア更新装置、ソフトウェア更新方法
WO2005078264A1 (ja) 車両用データのバックアップ方法
US12175817B2 (en) Center device and vehicle information communication system
JP2004302944A (ja) 車両用制御システム
JP2007251722A (ja) 通信装置、車載システム、データ保存方法及びプログラム
JP2006202117A (ja) 処理装置およびそのファームウェアダウンロード方法。

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070907

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071203

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071207

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100723

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100915

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4593095

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees