(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
<本発明の実施形態の概要>
以下、本発明の実施形態の概要を列記して説明する。
(1) 本実施形態のプログラム更新システムは、車両に搭載された複数の制御装置と、複数の前記制御装置と車内通信可能な
中継装置と、を含むプログラム更新システムであって、前記
中継装置は、複数の前記制御装置に対する更新プログラムを車外装置から受信する通信部と、受信した複数の前記更新プログラムを記憶する記憶部と、記憶された複数の前記更新プログラムを対応する前記制御装置にそれぞれ送信する車内通信部と、下記に定義する第1プログラムの前記記憶部への格納を下記に定義する第2プログラムの前記記憶部への格納よりも優先させる処理部と、を備える。
第1プログラム:
更新後の相互間の動作確認が取れている複数の更新プログラム
第2プログラム:
単独での更新が可能である更新プログラム
【0015】
本実施形態のプログラム更新システムによれば、
中継装置の処理部が、第1プログラムの記憶部への格納を第2プログラムの記憶部への格納よりも優先させるので、
更新後の相互間の動作確認が取れている複数の更新プログラム(第1プログラム)をより確実に記憶部に記憶させることができる。
このため、
中継装置のメモリ空き容量が不足しても、
動作確認が取れた複数の制御装置についての
更新を実行することができる。
【0016】
(2) 例えば、本実施形態のプログラム更新システムにおいて、前記記憶部
に、ダウンロード予定の前記第1プログラムが存在せず、前記第2プログラムが存在する場合には、前記処理部は、現状のメモリ空き容量が
前記ダウンロード予定の前記第1プログラムのデータ容量よりも小さい場合に、前記第2プログラムを削除してから、
前記ダウンロード予定の前記第1プログラムの受信を前記通信部に実行させるようにすればよい。
この場合、第2プログラムの削除後に第1プログラムの受信が実行されるので、第1プログラムをより確実に記憶部に記憶させることができる。
【0017】
(3) また、本実施形態のプログラム更新システムにおいて、前記記憶部
に、ダウンロード予定の前記第1及び第2プログラムが存在しない場合には、前記処理部は、現状のメモリ空き領域が
前記ダウンロード予定の前記第1及び第2プログラムの全データ容量よりも小さい場合に、
前記ダウンロード予定の前記第1プログラム
の優先的な受信を前記通信部に実行させるようにすればよい。
この場合、第1プログラム
の優先的な受信が実行されるので、第1プログラムをより確実に記憶部に記憶させることができる。
【0018】
リコールなどにより、高緊急度の更新プログラムがサーバから配信される場合、前記更新プログラムを第1プログラム及び第2プログラムよりも優先してダウンロードすることにしてもよい。
例えば、高緊急度の更新プログラムのファイル容量がメモリ空き領域よりも大きい場合に、優先度の低い第2プログラムを削除する。第2プログラムを削除してもなおメモリ空き容量が足りない場合、第1プログラムを削除することで、高緊急度の更新プログラムを最優先でダウンロードすることができる。
【0019】
(4) 本実施形態のプログラム更新方法は、上述の(1)〜(3)のいずれかに記載のプログラム更新システムに含まれる
中継装置が実行するプログラム更新方法に関する。
従って、本実施形態のプログラム更新方法は、上述の(1)〜(3)のいずれかに記載のプログラム更新システムと同様の作用効果を奏する。
【0020】
(5) 本実施形態のコンピュータプログラムは、上述の(1)〜(3)のいずれかに記載のプログラム更新システムに含まれる
中継装置として、コンピュータを機能させるためのコンピュータプログラムに関する。
従って、本実施形態のコンピュータプログラムは、上述の(1)〜(3)のいずれかに記載のプログラム更新システムと同様の作用効果を奏する。
【0021】
(6) 本実施形態の中継装置は、上述の(1)〜(3)のいずれかに記載のプログラム更新システムに含まれる中継装置に関する。
従って、本実施形態の中継装置は、上述の(1)〜(3)のいずれかに記載のプログラム更新システムと同様の作用効果を奏する。
【0022】
<本発明の実施形態の詳細>
以下、図面を参照して、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0023】
〔システムの全体構成〕
図1は、本発明の実施形態に係るプログラム更新システムの全体構成図である。
図1に示すように、本実施形態のプログラム更新システムは、広域通信網2を介して通信可能な車両1、管理サーバ5及びDL(ダウンロード)サーバ6を含む。
管理サーバ5及びDLサーバ6は、例えば、車両1のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両1と通信可能である。
【0024】
車両1には、ゲートウェイ10及び複数のECU30と、各ECU30によりそれぞれ制御される各種の車載機器(図示せず)が搭載されている。
車両1には、共通の車内通信線にバス接続された複数のECU30による通信グループが存在し、ゲートウェイ10は、通信グループ間の通信を中継している。このため、ゲートウェイ10には、複数の車内通信線が接続されている。
【0025】
ゲートウェイ10は、携帯電話網などの広域通信網2に通信可能に接続されている。ゲートウェイ10は、広域通信網2を通じて管理サーバ5及びDLサーバ6などの車外装置から受信した情報をECU30に送信する。
ゲートウェイ10は、ECU30から取得した情報を、広域通信網2を介して管理サーバ5などの車外装置に送信する。
【0026】
図1では、ゲートウェイ10が車外装置と直接通信を行う場合が例示されている。もっとも、ゲートウェイ10に別の通信装置を接続し、別の通信装置を介して車外装置と通信を行う構成としてもよい。
ゲートウェイ10に接続される別の通信装置としては、例えば、ユーザが所有する携帯電話機、スマートフォン、タブレット型端末、ノートPC(Personal Computer)等の装置が考えられる。
【0027】
図1のプログラム更新システムでは、管理サーバ5とDLサーバ6が別個のサーバで構成されているが、これらのサーバ5,6を1つのサーバ装置で構成してもよい。
【0028】
〔ゲートウェイの内部構成〕
図2はゲートウェイ10の内部構成を示すブロック図である。
図2に示すように、ゲートウェイ10は、CPU(Central Processing Unit)11、RAM(Random Access Memory)12、記憶部13、及び車内通信部14などを備える。ゲートウェイ10は、無線通信部15と車内通信線を介して接続されているが、これらは一つの装置で構成してもよい。
【0029】
CPU11は、記憶部13に記憶された一又は複数のプログラムをRAM12に読み出して実行することにより、ゲートウェイ10を各種情報の中継装置として機能させる。
CPU11は、例えば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。RAM12は、SRAM(Static RAM)又はDRAM(Dynamic RAM)等のメモリ素子で構成され、CPU11が実行するプログラム及び実行に必要なデータ等が一時的に記憶される。
【0030】
記憶部13は、フラッシュメモリ若しくはEEPROM(Electrically Erasable Programmable Read Only Memory)等の不揮発性のメモリ素子などにより構成されている。
記憶部13は、CPU11が実行するプログラム及び実行に必要なデータ等を記憶する記憶領域を有する。記憶部13は、DLサーバ6から受信した各ECU30の更新プログラムなども記憶する。
【0031】
車内通信部14には、車両1に配設された車内通信線を介して複数のECU30が接続されている。車内通信部14は、例えばCAN(Controller Area Network)、CANFD(CAN with Flexible Data Rate)、LIN(Local Interconnect Network)、Ethernet(登録商標)、又はMOST(Media Oriented Systems Transport:MOSTは登録商標)等の規格に応じて、ECU30との通信を行う。
車内通信部14は、CPU11から与えられた情報を対象のECU30へ送信するとともに、ECU30から受信した情報をCPU11に与える。車内通信部14は、上記通信規格だけでなく、車載ネットワークに用いる他の通信規格によって通信してもよい。
【0032】
無線通信部15は、アンテナと、アンテナからの無線信号の送受信を実行する通信回路とを含む無線通信機よりなる。無線通信部15は、携帯電話網等の広域通信網2に接続されることにより車外装置との通信が可能である。
無線通信部15は、図示しない基地局により形成される広域通信網2を介して、CPU11から与えられた情報を管理サーバ5等の車外装置に送信するとともに、車外装置から受信した情報をCPU11に与える。
【0033】
ゲートウェイ10において、無線通信部15に代えて、上述の別の通信装置が接続される有線通信部を採用してもよい。この有線通信部は、USB(Universal Serial Bus)又はRS232C等の規格に応じた通信ケーブルを介して通信装置を接続するコネクタを有し、通信ケーブルを介して接続された別の通信装置と通信を行う。
有線通信部は、CPU11から与えられた情報を別の通信装置により車外装置へ送信するとともに、広域通信網2を通じて車外装置から受信した情報をCPU11に与える。
【0034】
〔ECUの内部構成〕
図3はECU30の内部構成を示すブロック図である。
図3に示すように、ECU30は、CPU31、RAM32、記憶部33、通信部34などを備える。ECU30は、車両1に搭載された複数の車載機器を個別に制御する制御装置である。ECU30の種類には、例えば、エンジン制御ECU、ステアリング制御ECU、及びドアロック制御ECUなどがある。
【0035】
CPU31は、記憶部33に予め記憶された一又は複数のプログラムをRAM32に読み出して実行することにより、自身が担当する車載機器の動作を制御する。
RAM32は、SRAM又はDRAM等のメモリ素子で構成され、CPU31が実行するプログラム及び実行に必要なデータ等が一時的に記憶される。
【0036】
記憶部33は、フラッシュメモリ若しくはEEPROM等の不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置等により構成されている。
記憶部33が記憶する情報には、例えば、制御対象である車載装置を制御するための処理をCPU31に実行させるためのコンピュータプログラム(以下、「制御プログラム」という。)が含まれる。
【0037】
通信部34には、車両1に配設された車内通信線を介してゲートウェイ10が接続されている。通信部34は、例えばCAN、Ethernet、又はMOST等の規格に応じて、ゲートウェイ10との通信を行う。
通信部34は、CPU31から与えられた情報をゲートウェイ10へ送信するとともに、ゲートウェイ10から受信した情報をCPU31に与える。通信部34は、上記通信規格だけなく、車載ネットワークに用いる他の通信規格によって通信してもよい。
【0038】
〔管理サーバの内部構成〕
図4は、管理サーバ5の内部構成を示すブロック図である。
図4に示すように、管理サーバ5は、CPU51、ROM52、RAM53、記憶部54、及び通信部55などを備える。
【0039】
CPU51は、ROM52に予め記憶された一又は複数のプログラムをRAM53に読み出して実行することにより、各ハードウェアの動作を制御し、管理サーバ5をゲートウェイ10と通信可能な車外装置として機能させる。
RAM53は、SRAM又はDRAM等のメモリ素子で構成され、CPU51が実行するプログラム及び実行に必要なデータ等が一時的に記憶される。
【0040】
記憶部54は、フラッシュメモリ若しくはEEPROM等の不揮発性のメモリ素子、又は、ハードディスクなどの磁気記憶装置等により構成されている。
通信部55は、所定の通信規格に則って通信処理を実行する通信装置よりなり、携帯電話網等の広域通信網2に接続されて当該通信処理を実行する。通信部55は、CPU51から与えられた情報を、広域通信網2を介して外部装置に送信するとともに、広域通信網2を介して受信した情報をCPU51に与える。
【0041】
図4に示すように、記憶部54が記憶する情報には、車両1に搭載されたECU30(ここでは、VIN=1の車両1に搭載されたECU30の識別番号を1〜3とする。)の制御プログラムのバーションを記録したリビジョンテーブルRTが含まれる。
リビジョンテーブルRTは、車両1の車両識別番号(VIN)と、車両識別番号ごとのリビジョンアップの履歴を表す識別情報であるリビジョン番号と、各リビジョン番号に対応するECU1〜3のバージョンとを纏めたテーブルよりなる。
【0042】
図4のリビジョンテーブルRTにおいて、同じリビジョン番号に含まれる各ECU1〜3の制御プログラムのバーションは、カーメーカーにおいて動作確認が取れていることを示している。
例えば、現状のリビジョン番号である「R2.0」の場合には、ECU1のバーション1.0の制御プログラム、ECU2のバージョン1.3の制御プログラム、及びECU3のバーション2.0の制御プログラムの
相互間の動作確認が取れている。
【0043】
最新のリビジョン番号である「R2.4」の場合には、ECU1のバーション1.2の制御プログラム、ECU2のバージョン2.0の制御プログラム、及びECU3のバーション2.2の制御プログラムの
相互間の動作確認が取れている。
従って、車両1をR2.0からR2.4にリビジョンアップする場合には、ECU1の1.0から1.2へのバーションアップ、ECU2の1.3から2.0へのバーションアップ、及びECU3の2.0から2.2へのバーションアップを同時に行う必要がある。
【0044】
図4のリビジョンテーブルRTには、一例として車両識別番号VIN=1の場合のバージョン情報のみが例示されている。
もっとも、管理サーバ5が保持するリビジョンテーブルRTには、管理サーバ5の登録会員が所有するすべての車両1の車両識別番号(VIN)ごとに、上記と同様のバーション情報が記録されている。また、DLサーバ6には、すべてのECU30に関する複数の更新プログラムが格納されている。
【0045】
CPU51は、ゲートウェイ10から車両識別番号と各ECU1〜3の現状の制御プログラムのバーションが通知されると、通知されたバーション情報をリビジョンテーブルRTに含まれる当該車両識別番号の最新バーションと照合する。
CPU51は、照合の結果、ゲートウェイ10から通知されたECU1〜3のバーション情報が最新でないと判定した場合には、最新バーションに更新するための更新プログラムの保存先URLとダウンロード要求をゲートウェイ10に送信する。
【0046】
〔ゲートウェイにおける更新プログラムのメモリ領域〕
図5は、ゲートウェイ10の記憶部13に確保された更新プログラムのメモリ領域の説明図である。
図5において、ECU1〜3は、
更新後の制御プログラムの相互間の動作確認が取れているECU30(制御プログラムの同時更新が必要なECU30)を示し、ECU4,5は、当該同時更新が不要なECU30(制御プログラムの更新を単独で実行するECU30)であるとする。また、各ECU1〜5が制御プログラムの更新に用いる更新プログラムを、それぞれ「Δ1」〜「Δ5」とする。
【0047】
DLサーバ6から送信される
ダウンロード予定の更新プログラムΔ1〜Δ5は、一般的には複数存在する。
各ECU1〜5は、ユーザの指定した順序や更新の緊急度などに応じて、順番にリプログラムを実行する場合もあれば、いわゆる同時更新の場合のように、複数のECU1〜3が同時並行によりリプログラムしなければならない場合もある。
【0048】
ここで、複数のECU1〜3について同時更新を行う場合には、各ECU1〜3のための更新プログラムΔ1〜Δ3を一時的にすべてゲートウェイ10の記憶部13の所定のメモリ領域に保存しておく必要がある。
しかし、例えば
図5(a)に示すように、単純に時刻順で更新プログラムΔ1〜Δ5をダウンロードする場合には、非同時更新のECU4,5の更新プログラムΔ4,Δ5が既にメモリ領域に格納されているため、同時更新のECU1〜3の更新プログラムΔ1〜Δ3を格納するにはメモリ空き領域が不足する場合が想定される。
【0049】
この場合、ECU1〜3の更新プログラムΔ1〜Δ3のうちの一部(図例では更新プログラムΔ1)がバッファ漏れとなり、これが原因でECU1〜3についての同時更新のシーケンスを実行できない。
そこで、ゲートウェイ10のCPU11は、同時更新に必要な更新プログラムΔ1〜Δ3のデータ容量(ファイルサイズ)Cmと現状のメモリ空き容量Cpとを比較し、Cp<Cmである場合には同時更新が不要な更新プログラムΔ4,Δ5を削除し、メモリ空き領域を確保してから更新プログラムΔ1〜Δ3のダウンロードを開始する(
図5(b))。
【0050】
これにより、同時更新に用いる更新プログラムΔ1〜Δ3がすべて記憶部13の所定のメモリ領域に保存することができ、ECU1〜3に対する同時更新のシーケンスを実行可能な状態となる。
なお、ゲートウェイ10のCPU11は、容量確保のために削除したECU4,5の更新プログラムΔ4,Δ5を、ECU1〜3の同時更新が終了した後に改めてダウンロードし、記憶部13の所定のメモリ領域に格納する。
【0051】
〔ゲートウェイによる優先ダウンロード処理〕
図6は、ゲートウェイ10のCPU11が実行する優先ダウンロード処理の一例を示すフローチャートである。
図6に示すように、CPU11は、同時更新を実行するか否かを判定しており(ステップST1)、実行する場合には、同時更新に用いる更新プログラムΔ1〜Δ3のデータ容量Cmを算出する(ステップST2)。
【0052】
次に、CPU11は、記憶部13のメモリ領域の現状での空き容量Cpを算出し(ステップST3)、Cp<Cmであるか否かを判定する(ステップST4)。
上記の判定結果が肯定的である場合は、CPU11は、非同時更新の更新プログラムΔ4,Δ5を削除した上で(ステップST5)、同時更新に用いる更新プログラムΔ1〜Δ3をダウンロードし、記憶部13のメモリ領域に格納する(ステップST6)。
【0053】
上記の判定結果が否定的である場合は、CPU11は、非同時更新の更新プログラムΔ4,Δ5の削除(ステップST5)を行わずに、同時更新に用いる更新プログラムΔ1〜Δ3をダウンロードし、記憶部13のメモリ領域に格納する(ステップST6)。
【0054】
〔更新プログラムが記憶されていない場合の優先ダウンロード手順〕
図5及び
図6の例では、記憶部13のメモリ領域に更新プログラムΔ4,Δ5が既存である場合を例示したが、メモリ領域に更新プログラム
Δ4,Δ5が存在しない場合もあり得る。
ここでは、記憶部13のメモリ領域に更新プログラム
Δ1〜Δ5が存在しない状態において、これからダウンロードすべき5つのECU1〜5の更新プログラムΔ1〜
Δ5が存在し、そのうち3つのECU1〜3が、同時更新が必要である場合を想定する。
【0055】
また、同時更新に用いる更新プログラムΔ1〜Δ3のデータ容量をCm、単独更新の更新プログラムΔ4,Δ5のデータ容量をCn、全更新プログラムΔ1〜Δ5のデータ容量をCd(=Cm+Cn)、記憶部13の更新プログラムに関するメモリ容量(=メモリ空き容量)をCpとし、Cp≧Cmであるとする。
【0056】
この場合、Cp<Cd(=Cm+Cn)であるならば、ECU1〜5の更新プログラムΔ1〜Δ5を成り行き(例えば、時刻順など)でダウンロードすると、最終的にメモリ容量不足となり、ECU1〜3の更新プログラムΔ1〜Δ3を同時に記憶することができず、ECU1〜3の同時更新ができない可能性がある。
【0057】
そこで、ゲートウェイ10のCPU11は、Cp<Cdの条件を満たす場合には、同時更新が必要なECU1〜3の更新プログラムΔ1〜Δ3を優先的にダウンロードして記憶部13に記憶させ、記憶したΔ1〜Δ3を各ECU1〜3に送信することにより、ECU1〜3による同時更新を可能とする。
なお、更新プログラムΔ4,Δ5のダウンロードは、ECU1〜3が同時更新を完了してから、更新プログラムΔ1〜3を記憶部13から削除した後に行えばよい。
【0058】
〔優先ダウンロード処理の変形例〕
図7は、ゲートウェイ10のCPU11が実行する優先ダウンロード処理の変形例を示すフローチャートである。
図7の変形例が
図6の例と異なる点は、ステップST11〜ST16の処理が追加されている点にある。
【0059】
図7に示すように、ゲートウェイ10のCPU11は、まず、高緊急度の更新プログラムが無いか否かを判定する(ステップST11)。
上記の判定結果が無しの場合は、CPU11は、ステップST1〜ST6の処理(
図6のフローと同じ)を実行し、上記の判定結果が有りの場合は、CPU11は、ステップST12〜ST16の処理を実行する。
【0060】
ステップST12〜ST16の処理では、CPU11は、高緊急度の更新プログラムのファイル容量Ceとメモリ領域の空き容量Cpをそれぞれ算出し(ステップST12,ST13)、両者を比較する(ステップST14)。
CPU11は、Cp<Ceならば、高緊急度ではない更新プログラム(例えば、優先度の低い非同時更新の更新プログラムΔ4,Δ5:第2プログラム)を削除してから(ステップST15)、高緊急度の更新プログラムをダウンロードする(ステップST16)。
【0061】
この場合、第2プログラムを削除しても、Cp<Ceが成立する場合、CPU11は、優先度の高い同時更新の更新プログラムΔ1〜Δ3(第1プログラム)を削除することにより、高緊急度の更新プログラムを最優先でダウンロードする。
CPU11は、Cp<Ceでないならば、高緊急度ではない更新プログラムの削除(ステップST15)を行わずに、高緊急度の更新プログラムをダウンロードする(ステップST16)。
【0062】
今回開示した実施形態はすべての点で例示であって制限的なものではない。本発明の権利範囲は、上述の実施形態に限定されるものではなく、特許請求の範囲に記載された構成と均等の範囲内でのすべての変更が含まれる。