(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、前記判定処理の結果が否定的である前記制御プログラムについて、前記更新用プログラムを前記メモリに保持して、前記更新用プログラムの更新順を前記設定された更新順より遅い更新順に設定しなおす、請求項1に記載の制御装置。
前記制御部は、前記更新所要時間が前記所定の閾値よりも長い場合に前記判定処理の結果を否定的とするか短い場合に前記判定処理の結果を否定的とするかが変更可能である、請求項1〜請求項3のいずれか一項に記載の制御装置。
【発明を実施するための形態】
【0011】
<本開示が解決しようとする課題>
車両には多数のECUが搭載されているため、更新対象となる制御プログラムが複数ある場合がある。複数の制御プログラムは、たとえば車両に通知された順に更新されることになる。このとき、上記の特許文献1〜3の技術を用いると、設定された更新順の早い制御プログラムについて適切なタイミングが判定され、当該タイミングに更新される。以降の制御プログラムについても、順に、適切なタイミングが判定され、当該タイミングに更新される。このため、先の制御プログラムの更新が遅延すると、続く制御プログラムの更新も遅延し、全制御プログラムの更新の完了が遅延する。つまり、設定された更新順を変更することなく、該更新順に従ってそれぞれ適切なタイミングで更新される。
【0012】
たとえば、更新する制御プログラムが、制御対象とする機能が複数の機器が複雑に連動して実現される機能であるECUの制御プログラムであるとする。このようなECUは、たとえば、制御対象が制御系システムであるECUなどが該当する。当該制御プログラムの更新の際には、いったん、車両全体のシステムの電源を止めたり、他の機器の使用を中断したりする必要がある。
【0013】
一方、更新する制御プログラムが、制御対象とする機能が単独の機器によって実現される機能であるECUの制御プログラムであるとする。このようなECUは、たとえば、制御対象がナビゲーション装置や表示ディスプレイ等のアプリケーションであるECUなどが該当する。当該制御プログラムの更新の際には当該機器の使用を一時的に中断する必要があるものの、他の装置の使用を中断したり車両全体のシステムの電源を止めたりする必要はない。
【0014】
更新対象とする制御プログラムが前者の制御プログラムである場合、特許文献1〜3に開示された技術では、複数の機器、または車両全体のシステムの使用状況に基づいて更新のタイミングが決定される。そのため、更新のタイミングが遅延する場合がある。これに対して、後者の制御プログラムである場合、該当するECUの制御対象とする機能を実現する単独の機器の使用状況に基づいて更新のタイミングが決定されるため、更新のタイミングが遅延する可能性が前者の制御プログラムよりも低い。
【0015】
しかしながら、更新対象とする制御プログラムが複数あり、前者の制御プログラムが後者の制御プログラムより先に更新される場合、前者の制御プログラムの更新を遅延されることによって後に続く後者の制御プログラムの更新も遅延してしまう。つまり、設定された更新順を変更することなく当該更新順に従って制御プログラムの更新が行われると、複数の制御プログラム全体の更新が遅延してしまうことがある。また、更新用プログラムがECUまたは中継経路上の機器に保存された状態のままであり、メモリリソースに余裕がない場合、中継機能等の機能に影響を及ぼすことがある。
【0016】
本開示のある局面における目的は、複数の制御プログラムの更新を行う際に、それぞれ適切なタイミングに制御プログラムを更新することができる制御装置、プログラム更新方法、およびコンピュータプログラムを提供することである。
【0017】
<本開示の効果>
この開示によると、複数の制御プログラムの更新を行う際に、それぞれ適切なタイミングに制御プログラムを更新することができる。
【0018】
[実施の形態の説明]
本実施の形態には、少なくとも以下のものが含まれる。
すなわち、本実施の形態に含まれる制御装置は車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置であって、制御プログラムの更新用プログラムを格納するためのメモリと、メモリに格納されている複数の更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部と、を備え、制御部は、複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて複数の制御プログラムの更新を更新順に行うか否かを判定する判定処理を実行する。
制御部において、複数の制御プログラムの更新を当該複数の制御プログラムに対して設定された更新順に行うか否かを判定する判定処理が実行されることによって、判定結果によって、該複数の制御プログラムの更新を変更することができる。
【0019】
一例として、制御部は、判定処理の結果が否定的である制御プログラムについて、更新用プログラムをメモリに保持して、更新用プログラムの更新順を設定された更新順より遅い更新順に設定しなおす。
これにより、更新所要時間と所定の閾値との比較結果が予め設定された比較結果である制御プログラムは、更新順を設定された更新順より遅くなり、他の制御プログラムの更新よりも後回しにされる。これにより、複数の制御プログラムの更新を効率的に行うことができる。
【0020】
また一例として、制御部は、判定処理の結果が否定的である制御プログラムについて、更新用プログラムをメモリから削除する。
これにより、判定処理の結果が否定的、つまり、更新順に更新を行うと判定されなかった制御プログラムの更新用プログラムについてはメモリから削除される。このため、当該更新が実行されるまで更新用プログラムがメモリに維持されることがない。つまり、更新順に更新を行わない制御プログラムの更新用プログラムによってメモリが圧迫されることを回避することができる。
【0021】
好ましくは、制御部は、更新所要時間が所定の閾値よりも長い場合に判定処理の結果を否定的とする。
これにより、複数の制御プログラムに対して設定されている更新順に関わらず、更新所要時間が閾値以内である制御プログラムの更新が優先され、更新所要時間が閾値よりも長い制御プログラムの更新が後回しにされる。そのため、短期間で多くの制御プログラムの更新を完了させることができる。
【0022】
好ましくは、制御部は、更新所要時間が所定の閾値よりも長く、かつ、ユーザ認証に成功した場合に判定処理の結果を否定的とする。
これにより、たとえば車両の所有者など、許可されたユーザが制御プログラムの更新を管理することができる。
【0023】
好ましくは、制御部は、更新所要時間が所定の閾値よりも短い場合に判定処理の結果を否定的とする。
これにより、複数の制御プログラムに対して設定されている更新順に関わらず、更新所要時間が閾値より長い制御プログラムの更新が優先され、更新所要時間が閾値よりも短い制御プログラムの更新が後回しにされる。そのため、長期間かけて制御プログラムの更新が可能な場合に、更新所要時間の長い制御プログラムの更新を優先させることができる。
【0024】
好ましくは、制御部は、更新所要時間が所定の閾値よりも短く、かつ、ユーザ認証に成功した場合に判定処理の結果を否定的とする。
これにより、たとえば車両の所有者など、許可されたユーザが制御プログラムの更新を管理することができる。
【0025】
好ましくは、制御部は、更新所要時間が所定の閾値よりも長い場合に判定処理の結果を否定的とするか短い場合に判定処理の結果を否定的とするかが変更可能である。
これにより、複数の制御プログラムに対して設定された更新順を、個別の事情に応じて柔軟に変更することができる。
【0026】
好ましくは、所定の閾値が変更可能である。
これにより、複数の制御プログラムに対して設定された更新順を、個別の事情に応じて柔軟に変更することができる。
【0027】
本実施の形態に含まれるプログラム更新方法は車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新方法であって、制御プログラムの更新用プログラムをメモリに格納するステップと、メモリに格納されている複数の更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新するステップと、を備え、制御プログラムを更新するステップは、複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて複数の制御プログラムの更新を更新順に行うか否かを判定するステップを含む。
制御プログラムを更新するステップが、複数の制御プログラムの更新を当該複数の制御プログラムに対して設定された更新順に行うか否かを判定するステップを含むことによって、判定結果によっては、該複数の制御プログラムの更新が、設定された更新順に行われない場合がある。これにより、たとえば、更新順が遅くに設定されている制御プログラムであっても、当制御プログラムの更新所要時間が更新の可能な期間に適した制御プログラムの更新を、設定された更新順の早い制御プログラムよりも優先して行うことができる。すなわち、複数の制御プログラムに対して設定された更新順を柔軟に変更することができる。これにより、複数の制御プログラムの更新を効率的に行うことができる。
【0028】
本実施の形態に含まれるコンピュータプログラムは車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置としてコンピュータを機能させるためのコンピュータプログラムであって、コンピュータは、制御プログラムの更新用プログラムを格納するためのメモリを有し、コンピュータを、メモリに格納されている複数の更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部として機能させ、制御部は、複数の制御プログラムの更新所要時間と所定の閾値との比較に基づいて複数の制御プログラムの更新を更新順に行うか否かを判定する判定処理を実行する。
制御部において、複数の制御プログラムの更新を当該複数の制御プログラムに対して設定された更新順に行うか否かを判定する判定処理が実行されることによって、判定結果によっては、該複数の制御プログラムの更新が、設定された更新順に行われない場合がある。これにより、たとえば、更新順が遅くに設定されている制御プログラムであっても、当制御プログラムの更新所要時間が更新の可能な期間に適した制御プログラムの更新を、設定された更新順の早い制御プログラムよりも優先して行うことができる。すなわち、複数の制御プログラムに対して設定された更新順を柔軟に変更することができる。これにより、複数の制御プログラムの更新を効率的に行うことができる。
【0029】
[実施の形態の詳細]
以下に、図面を参照しつつ、好ましい実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらの説明は繰り返さない。
【0030】
<第1の実施の形態>
〔システムの全体構成〕
図1は、第1の実施形態にかかるプログラム更新システムの全体構成図である。
図1に示すように、本実施形態のプログラム更新システムは、広域通信網2を介して通信可能な車両1、管理サーバ3、及びDL(ダウンロード)サーバ4を含む。
管理サーバ3及びDLサーバ4は、例えば、車両1のカーメーカーにより運営されており、予め会員登録されたユーザが所有する多数の車両1と通信可能である。
【0031】
図1に示すように、各車両1は、車内通信システム10を備える。車内通信システム10は、無線通信機19にゲートウェイ20を介して接続された第1ネットワークを含む。車内通信システム10には、さらに、ゲートウェイ20を介さずに無線通信機19に直接接続された第2ネットワークが含まれてもよい。
【0032】
第1ネットワークは、ゲートウェイ20に接続された車内通信線13A,13B,13Cと、車内通信線13Aに接続されたマネージャ装置14と、マネージャ装置14に接続された車内通信線15と、車内通信線15または車内通信線13B,13Cに接続された複数の車載制御装置(以下、「ECU」という。)16と、を備える。
【0033】
車内通信線13A,13B,13Cはバス型の通信ネットワークよりなる。当該ネットワークは、例えば、CAN(Controller Area Network)などの比較的低速な通信を行う通信ネットワークである。
車内通信線15は、ECU16相互間の通信が可能であり、マネージャ装置14を終端ノード(親機)とするマスター/スレーブ型の通信ネットワーク(例えば、LIN(Local Interconnect Network))よりなる。
【0034】
第2ネットワークは、無線通信機19に車内通信線13Dを介して直接接続された1以上のECU16を含む。
【0035】
車内通信線13Dは、CANFD(CAN with Flexible Data Rate)、Ethernet(登録商標)、又はMOST(Media Oriented Systems Transport:MOSTは登録商標)などの通信規格を採用する、高速通信を行うネットワークである。
【0036】
以下において、車内通信線の共通符号を「13」とし、車内通信線の個別符号を「13A,13B,13C,13D」とする。
【0037】
マネージャ装置14はECUよりなり、一例として、車両1の車体機器を制御対象とするボディ系ECUよりなる。車内通信システム10には、他のマネージャ装置として、車両1の駆動機器を制御対象とするパワー系ECUよりなるマネージャ装置や、車両1の走行機器を制御対象とするシャーシ系ECUよりなるマネージャ装置が含まれていてもよい。なお、制御分野は、上記の3種類に限らず4種類以上であってもよい。また、制御分野は、車両メーカーの設計思想に応じて様々であり、上記の制御分野の分担に限定されるものではない。
【0038】
車内通信線13Aはボディ系バスであり、車内通信線13Bはパワー系バスであり、車内通信線13Cはシャーシ系バスである。各バスには、当該制御分野に対応する種別のECU16が接続される。
【0039】
具体的には、ボディ系ECUであるマネージャ装置14に接続されるECU16には、例えば、室内照明を制御するECU、ヘッドライトを制御するECU、及びワイパーを制御するECUなどが含まれる。
車内通信線13Bに接続されるECU16には、例えば、エンジンを制御するECU、及び電源系統を制御(リレーのオンオフ制御など)するECUなどが含まれる。
車内通信線13Cに接続されるECU16には、例えば、ABS(Antilock Brake System)制御のためのECU、及び通常のブレーキ制御のためのECUなどが含まれる。
【0040】
なお、第2ネットワークに属するECU16は、単独で無線通信機19を介してDLサーバ4と通信を行って制御プログラムの更新できるECUである。第2ネットワークに属するECU16は、たとえば、マルチメディア系ECUである。具体的には、ナビゲーション装置を制御するECU、ディスプレイを制御するECUなどである。
【0041】
車内通信システム10は、更に、無線通信機19とゲートウェイ20とを備える。
無線通信機19は、携帯電話網などの広域通信網2に通信可能に接続され、所定規格の通信線を介してゲートウェイ20に接続されている。また、無線通信機19には、車内通信線13Dを介して直接、1つ以上のECU16が接続されていてもよい。
車両1に搭載される無線通信機19としては、ユーザが所有する携帯電話機、スマートフォン、タブレット型端末、ノートPC(Personal Computer)等の装置が考えられる。
【0042】
ゲートウェイ20は、管理サーバ3及びDLサーバ4などの車外装置から無線通信機19が受信した情報を、マネージャ装置14及びECU16に中継する。また、無線通信機19が受信した情報は、ゲートウェイ20を介さずに直接、車内通信線13Dを経てECU16に中継されてもよい。
ゲートウェイ20は、マネージャ装置14及びECU16から受信した情報を、無線通信機19に中継する。無線通信機19は、中継された情報を管理サーバ3などの車外装置に無線送信する。
【0043】
図1の例では、ゲートウェイ20が無線通信機19を介して車外装置と通信を行う場合が例示されているが、ゲートウェイ20が無線通信の機能を有する場合には、ゲートウェイ20自身が管理サーバ3などの車外装置と無線通信を行う構成としてもよい。
図1のプログラム更新システムにおいて、管理サーバ3及びDLサーバ4を1つのサーバ装置で構成してもよい。
【0044】
〔無線通信機の内部構成〕
図2は、無線通信機19及びゲートウェイ20の内部構成を示すブロック図である。
図2に示すように、無線通信機19は、制御部91、記憶部92、第1通信部93、及び第2通信部94などを備える。
【0045】
無線通信機19の制御部91は、CPU(Central Processing Unit)及びRAM(Random Access Memory)を含む。制御部91のCPUは、記憶部92に記憶された1又は複数のプログラムを制御部91のRAMに読み出して実行することにより、制御プログラムの更新を制御するリプロ制御部95として機能する。
制御部91のCPUは、例えば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。
【0046】
制御部91のCPUは、1又は複数の大規模集積回路(LSI)を含む。複数のLSIを含むCPUでは、複数のLSIが協働して当該CPUの機能を実現する。
制御部91のRAMは、SRAM(Static RAM)又はDRAM(Dynamic RAM)などのメモリ素子で構成され、制御部91のCPUが実行するプログラム及び実行に必要なデータが一時的に記憶される。
【0047】
制御部91のCPUが実行するコンピュータプログラムは、CD−ROMやDVD−ROMなどの記録媒体に記録した状態で譲渡することもできるし、サーバコンピュータなどのコンピュータ装置からのダウンロードによって譲渡することもできる。
この点は、ゲートウェイ20の制御部21、マネージャ装置14の制御部31(
図3参照)のCPUが実行するコンピュータプログラム、及び、ECU16の制御部41(
図3参照)のCPUが実行するコンピュータプログラムについても同様である。
【0048】
記憶部92は、フラッシュメモリ若しくはEEPROM(Electrically Erasable Programmable Read Only Memory)などの不揮発性のメモリ素子よりなる。記憶部92は、制御部91のCPUが実行するプログラム及び実行に必要なデータなどを記憶する記憶領域を有する。記憶部92は、DLサーバ4から受信したマネージャ装置14やECU16の更新プログラムなども記憶する。
【0049】
第1通信部93は、アンテナからの無線信号の送受信を実行する通信回路を含む無線通信機よりなる。第1通信部93は、携帯電話網等の広域通信網2に接続されることにより車外装置との通信が可能である。
第1通信部93は、図示しない基地局により形成される広域通信網2を介して、制御部91から与えられた情報を管理サーバ3等の車外装置に送信するとともに、車外装置から受信した情報を制御部91に与える。
【0050】
第2通信部94は、CANなどの所定の通信規格に則ってゲートウェイ20と通信する通信装置よりなる。第2通信部94は、制御部91のCPUから与えられた情報をゲートウェイ20宛てに送信し、ゲートウェイ20からの情報を制御部91のCPUに与える。
【0051】
なお、無線通信機19は、車両1内の中継装置として機能する有線通信を行う通信機であってもよい。この場合、通信機は、USB(Universal Serial Bus)又はRS232C等の規格に応じた通信ケーブルが接続されるコネクタを有し、通信ケーブルを介して接続された別の通信装置と有線通信を行う。
別の通信装置と管理サーバ3等の車外装置とが広域通信網2を通じた無線通信が可能である場合には、車外装置→別の通信装置→通信部→ゲートウェイ20の通信経路により、車外装置とゲートウェイ20が通信可能になる。
【0052】
〔ゲートウェイの内部構成〕
図2に示すように、ゲートウェイ20は、制御部21、記憶部22、第1通信部24、第2通信部23、第3通信部26、及び第4通信部27などを備える。
【0053】
ゲートウェイ20の制御部21は、CPU及びRAMを含む。制御部21のCPUは、記憶部22に記憶された1又は複数のプログラムを制御部21のRAMに読み出して実行することにより、ゲートウェイ20を各種情報の中継装置として機能させる。また、制御部21のCPUは、記憶部22に記憶された1又は複数のプログラムを制御部21のRAMに読み出して実行することにより、制御プログラムの更新を制御するリプロ制御部25として機能する。
制御部21のCPUは、例えば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。
【0054】
制御部21のCPUは、1又は複数の大規模集積回路(LSI)を含む。複数のLSIを含むCPUでは、複数のLSIが協働して当該CPUの機能を実現する。
制御部21のRAMは、SRAM又はDRAMなどのメモリ素子で構成され、制御部21のCPUが実行するプログラム及び実行に必要なデータが一時的に記憶される。
【0055】
記憶部22は、フラッシュメモリ若しくはEEPROMなどの不揮発性のメモリ素子よりなる。記憶部22は、制御部21のCPUが実行するプログラム及び実行に必要なデータなどを記憶する記憶領域を有する。記憶部22は、DLサーバ4から受信したマネージャ装置14やECU16の更新プログラムなども記憶する。
【0056】
第1通信部24には、無線通信機19が接続されている。第1通信部24は、CANなどの所定の通信規格に則って、無線通信機19と通信する通信装置よりなる。
第1通信部24は、無線通信機19から与えられた情報を制御部21のCPUに与える。また、第1通信部24は、制御部21のCPUから与えられた情報を無線通信機19に与える。
【0057】
第2通信部23、第3通信部26及び第4通信部27には、それぞれ、車内通信線13A,13B,13Cが接続されている。第2通信部23、第3通信部26及び第4通信部27は、CANなどの所定の通信規格に則って、マネージャ装置14またはECU16と通信する通信装置よりなる。
第2通信部23、第3通信部26及び第4通信部27は、制御部21のCPUから与えられた情報を所定のマネージャ装置14又はECU16宛てに送信し、マネージャ装置14又はECU16が送信元の情報を制御部21のCPUに与える。
【0058】
〔マネージャ装置の内部構成〕
図3は、マネージャ装置14及びECU16の内部構成を示すブロック図である。
図3に示すように、マネージャ装置14は、制御部31、記憶部32、第1通信部33、及び第2通信部34などを備える。
【0059】
マネージャ装置14の制御部31は、CPU及びRAMを含む。制御部31のCPUは、記憶部32に記憶された1又は複数のプログラムを制御部31のRAMに読み出して実行することにより、マネージャ装置14を、自装置に接続されたECU16を統括制御する親局として機能させる。
制御部31のCPUは、例えば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。
【0060】
制御部31のCPUは、1又は複数の大規模集積回路(LSI)を含む。複数のLSIを含むCPUでは、複数のLSIが協働して当該CPUの機能を実現する。
制御部31のRAMは、SRAM又はDRAMなどのメモリ素子で構成され、制御部31のCPUが実行するプログラム及び実行に必要なデータが一時的に記憶される。
【0061】
記憶部32は、フラッシュメモリ若しくはEEPROMなどの不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置により構成されている。
記憶部32が記憶する情報には、例えば、自装置が担当する車両1の制御対象(ECU16など)を制御するための情報処理を、制御部31のCPUに実行させるためのコンピュータプログラム(以下、「制御プログラム」という。)が含まれる。
【0062】
第1通信部33には車内通信線13Aが接続されている。第1通信部33は、CANなどの所定の通信規格に則ってゲートウェイ20と通信する通信装置よりなる。
第1通信部33は、制御部31のCPUから与えられた情報をゲートウェイ20宛てに送信し、ゲートウェイ20が送信元の情報を制御部31のCPUに与える。
【0063】
第2通信部34には車内通信線15が接続されている。第2通信部34は、LINなどの所定の通信規格に則って、車内通信線15に接続されたECU16と通信する通信装置よりなる。
第2通信部34は、制御部31のCPUから与えられた情報を所定のECU16宛てに送信し、ECU16が送信元の情報を制御部31のCPUに与える。
【0064】
制御部31のCPUには、当該CPUによる制御モードを、「通常モード」又は「リプログラミングモード」(以下、「リプロモード」ともいう。)のいずれかに切り替える起動部35が含まれる。
マネージャ装置14の通常モードとは、マネージャ装置14が本来的な制御を実行する制御モード、すなわち、マネージャ装置14が親局としてECU16を統括制御する制御モードのことである。
【0065】
リプログラミングモードとは、自装置の制御プログラムを更新する制御モードである。すなわち、リプログラミングモードは、制御部31のCPUが、記憶部32のROM領域に対して、制御プログラムの消去や書き換えを行う制御モードのことである。
制御部31のCPUは、この制御モードのときにのみ、記憶部32のROM領域に格納された制御プログラムを新バージョンに更新することが可能となる。
【0066】
リプロモードにおいて制御部31のCPUが新バージョンの制御プログラムを記憶部32に書き込むと、起動部35は、マネージャ装置14をいったん再起動させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
起動部35は、上記のベリファイ処理の完了後に、制御部31のCPUを更新後の制御プログラムによって動作させる。
【0067】
〔ECUの内部構成〕
図3に示すように、ECU16は、制御部41、記憶部42、及び通信部43などを備える。
【0068】
ECU16の制御部41は、CPU及びRAMを含む。制御部41のCPUは、記憶部42に記憶された1又は複数のプログラムを制御部41のRAMに読み出して実行することにより、ECU16を、自装置が担当する対象機器の動作を制御する車載制御装置として機能させる。
制御部41のCPUは、例えば時分割で複数のプログラムを切り替えて実行することにより、複数のプログラムを並列的に実行可能である。
【0069】
制御部41のCPUは、1又は複数の大規模集積回路(LSI)を含む。複数のLSIを含むCPUでは、複数のLSIが協働して当該CPUの機能を実現する。
制御部41のRAMは、SRAM又はDRAMなどのメモリ素子で構成され、制御部41のCPUが実行するプログラム及び実行に必要なデータが一時的に記憶される。
【0070】
記憶部42は、フラッシュメモリ若しくはEEPROMなどの不揮発性のメモリ素子、或いは、ハードディスクなどの磁気記憶装置により構成されている。
記憶部42が記憶する情報には、例えば、自装置が担当する車内の制御対象(ECU16の場合は、室内照明、ヘッドライト、及びワイパーなどの対象機器)を制御するための情報処理を、制御部41のCPUに実行させるための制御プログラムが含まれる。
【0071】
通信部43には、下位側の車内通信線15が接続されている。通信部43は、LINなどの所定の通信規格に則って、他のECU16や自装置の親局であるマネージャ装置14と通信する通信装置よりなる。
通信部43は、制御部41のCPUから与えられた情報を他のECU16又はマネージャ装置14宛てに送信し、他のECU16又はマネージャ装置14が送信元の情報を制御部41のCPUに与える。
【0072】
制御部41のCPUには、当該CPUによる制御モードを、「通常モード」又は「リプログラミングモード」のいずれかに切り替える起動部44が含まれる。
ECU16の通常モードとは、ECU16が本来的な制御を実行する制御モード、すなわち、自装置が担当する車内の制御対象を制御する制御モードのことである。
【0073】
リプログラミングモードとは、自装置の制御プログラムを更新する制御モードである。すなわち、リプログラミングモードは、制御部41のCPUが、記憶部42のROM領域に対して、制御プログラムの消去や書き換えを行う制御モードのことである。
制御部41のCPUは、この制御モードのときにのみ、記憶部42のROM領域に格納された制御プログラムを新バージョンに更新することが可能となる。
【0074】
リプロモードにおいて制御部41のCPUが新バージョンの制御プログラムを記憶部42に書き込むと、起動部44は、ECU16をいったん再起動させ、新バージョンの制御プログラムが書き込まれた記憶領域についてベリファイ処理を実行する。
起動部44は、上記のベリファイ処理の完了後に、制御部41のCPUを更新後の制御プログラムによって動作させる。
【0075】
〔プログラム更新時における車内通信のシーケンス〕
図4は、第1の実施の形態にかかるプログラム更新システムでの、車内通信システム10における通信手順の一例を示すシーケンス図である。第1の実施の形態では、マネージャ装置14を含むECU16が制御プログラムを更新する場合について説明する。
図4において、「子局ECU」は、マネージャ装置14に車内通信線13Aによって接続されたECU16、またはゲートウェイ20に車内通信線13B,13Cによって接続されたECU16である。「Δ」は、マネージャ装置14を含むECU16の制御プログラムの更新プログラム(差分プログラム)を示す。
【0076】
制御プログラムの更新プログラムは、新バーションのプログラムそのものであってもよいが、本実施形態では、旧バーションからの差分プログラムである場合を想定する。
この場合、マネージャ装置14を含むECU16の制御部41は、旧バージョンと新バージョンとのファイルの差分情報を含むΔが同じ記憶領域にあれば、旧バージョンにΔを適応することで、新バージョンに更新することができる。
【0077】
図4を参照して、はじめに、管理サーバ3は、広域通信網2を介してDLサーバ4から配信された更新プログラムΔがあるか否か、つまり、更新対象となる更新プログラムΔがあるか否かを確認する(ステップS0)。この確認は、無線通信機19において行われてもよい。そして、更新対象となる更新プログラムΔが存在する場合に、以降のシーケンスが開始される。更新対象となる更新プログラムΔが存在しない場合には
図4のシーケンスは開始されない。
【0078】
更新対象となる更新プログラムΔが存在する場合、管理サーバ3は、更新プログラムΔをゲートウェイ20に転送する(ステップS1)。管理サーバ3による更新プログラムΔの転送は、ゲートウェイ20からのダウンロードの開始要求に応じて行われてもよい。ゲートウェイ20は、ダウンロードした更新プログラムΔの製造元が正しいことや改ざんされていないことなどをチェックした上で該更新プログラムΔを記憶部22に格納する(ステップS2A)。
【0079】
ゲートウェイ20は、更新プログラムΔのダウンロードの後の予め規定されたタイミングで、それぞれの更新プログラムΔに対して設定された更新順に従って制御プログラムを更新する。このとき、記憶部22に複数の更新プログラムΔが格納されている場合に、ゲートウェイ20は、これら複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新するか否かを判定し、その判定結果が否定的である場合には更新順を設定しなおす処理を実行する(ステップS3A)。そして、ゲートウェイ20は、設定された更新順または設定しなおされた更新順に従って更新プログラムΔを転送し、更新を要求する(ステップS4A−1,S4A−2)。
【0080】
ゲートウェイ20から更新が要求されたマネージャ装置14、またはゲートウェイ20からマネージャ装置14を介して更新が要求されたECU16は、更新プログラムΔを展開して旧バーションに適用し、制御プログラムを新バーションに書き換える(ステップS5,6)。
【0081】
制御プログラムの更新が完了すると、マネージャ装置14は更新の完了をゲートウェイ20に通知する(ステップS7−1)。また、ECU16は、マネージャ装置14を介してゲートウェイ20に更新の完了を通知する(ステップS7−2)。ゲートウェイ20は、無線通信機19を介して管理サーバ3に、更新の完了を通知する(ステップS7−3,7−4)。これにより、管理サーバ3は、当該車両1での更新の完了を確認することができ、以降、当該制御プログラムの更新プログラムΔをDLサーバ4から配信されないようにする。また、当該制御プログラムの更新の完了が通知されない場合、管理サーバ3は、再度、当該制御プログラムの新プログラムΔをDLサーバ4に配信させる。また、当該通知を受けたゲートウェイ20は、メモリをクリアする(ステップS8A)。
【0082】
図4のシーケンスにおいてゲートウェイ20は、複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新し、または、当該更新順に従って複数の制御プログラムを更新するか否かを判定する判定処理を実行し、当該判定結果に従って設定しなおされた更新順に従って制御プログラムを更新するように制御している。従って、第1の実施の形態では、ゲートウェイ20が車載制御装置の更新プログラムの更新を制御する制御装置に該当する。
【0083】
〔順位決定処理の詳細〕
マネージャ装置14での制御プログラムの更新では、リプロモードに移行してから、記憶部32のROM領域に対して制御プログラムの書き換えのための準備処理、書き換え処理、及び当該マネージャ装置14の再起動が行われる。マネージャ装置14の再起動の際には、当該マネージャ装置14に接続されているECU16に対するマネージャ装置14の制御が停止し、これらECU16も、マネージャ装置14の再起動に伴って被制御状態に復帰する。また、第1ネットワークに属するマネージャ装置14およびECU16は互いに通信可能であり、複雑に連動している。そのため、上記の再起動は、車内通信システム10全体の再起動となる場合もある。
【0084】
また、マネージャ装置14に接続されたECU16での制御プログラムの更新、またはゲートウェイ20に車内通信線13B,13Cを介して接続されたECU16での制御プログラムの更新でも、リプロモードに移行してから、記憶部42のROM領域に対して制御プログラムの書き換えのための準備処理、書き換え処理、及び当該ECU16の再起動が行われる。ECU16の再起動の際には、当該ECU16と同じマネージャ装置14に接続されている他のECU16や、同じ制御分野に属する他のECU16など、当該ECU16と連携して動作する他のECU16の動作も停止し、これらECU16も、当該ECU16の再起動に伴って通常の動作状態に復帰する。また、第1ネットワークに属するECU16での制御プログラムの更新の場合でも、上記の再起動は、車内通信システム10全体の再起動となる場合もある。
【0085】
従って、第1ネットワークにおける制御プログラムの更新では、書き換えのための準備処理のための時間、書き換え処理のための時間、及び当該装置の再起動が完了し連携するECU16の動作状態が通常の動作状態に復帰するまでの時間、の合計時間、車内通信システム10が通常の動作を行うことができない。この合計時間を、以降の説明ではリプロ(更新)所要時間Trとも称する。リプロ所要時間Trは、リプロモードに切り替わってから次に通常モードに復帰するまでの時間、言い換えると、制御プログラムの更新が開始してから、更新後の制御プログラムで制御可能な状態に復帰するまでの時間を指す。つまり、第1の実施の形態では、リプロ所要時間Trは、制御プログラムの更新の対象とするECU16の機能のみが使用できない時間に加えて、当該ECUの制御対象の機器以外の機器に影響を及ぼす時間、と言える。
【0086】
リプロ所要時間Trは、制御プログラムの更新に必要なメモリ容量や、再起動する機器の数などに応じて、制御プログラムごとに異なる。たとえば、制御プログラムを更新したECU16のみ再起動させる場合には、車内通信システム10全体を再起動させる場合よりも再起動が完了するまでの時間が短く、リプロ所要時間Trも短くなる。また、対象のECU16の制御部41のCPUの処理能力が高いほどリプロ所要時間Trは短くなる。
【0087】
記憶部22に複数の更新プログラムΔが格納されている場合に、リプロ所要時間Trが長い更新プログラムΔの更新が先に実行されると、続く更新プログラムΔの更新の開始が遅くなる。そのため、所定時間内に更新が完了する制御プログラムの数を重視する場合、つまり、短期間でより多くの制御プログラムの更新を完了させたい場合には、リプロ所要時間Trが長い更新プログラムΔの更新を先に行わない方がよい。
【0088】
そこで、第1の実施の形態において制御装置として機能するゲートウェイ20は、記憶部22に格納された複数の更新プログラムΔそれぞれのリプロ所要時間Trに基づいて、当該複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新するか否かを判定する。そして、判定結果が否定的である場合に、当該複数の更新プログラムΔに設定された更新順を設定しなおす。
【0089】
図5は、
図4のステップS3Aでの順位決定処理の具体的な内容の一例を表したフローチャートである。
図5のフローチャートで表された処理は、ゲートウェイ20の制御部21のCPUが記憶部22に記憶された1つまたは複数のプログラムをRAM上に読み出して実行することによってリプロ制御部25として機能し、当該リプロ制御部25により実現される。
【0090】
図5を参照して、制御部21のCPUは、記憶部22に格納された更新プログラムΔを、予め規定された条件に従ってソートする(ステップS101)。予め規定された条件は、たとえば、DLサーバ4からダウンロードされた順、DLサーバ4から指定された順、更新プログラムΔのサイズ順、などを含む。
【0091】
次に、CPUは、記憶部22に格納された更新プログラムΔごとに、当該更新プログラムΔの更新によるリプロ所要時間Trを特定する(ステップS103)。リプロ所要時間Trは、DLサーバ4から提供されるものであってもよい。また、DLサーバ4から提供される更新プログラムΔのサイズなどの更新プログラムΔに関する情報を用いてCPUが算出してもよい。
【0092】
CPUは、更新順が最も早い(順位が最上位である)更新プログラムΔから順に、設定された更新順に制御プログラムを更新するか否かを判定する(ステップS105〜S113)。詳しくは、最上位の更新プログラムΔについて、当該更新プログラムΔのリプロ所要時間Trと、予め記憶している規定時間Thとを比較する(ステップS105)。規定時間Thは、たとえば、数10秒〜数分程度の時間である。
【0093】
最上位の更新プログラムΔのリプロ所要時間Trが規定時間Thよりも長い場合であって(ステップS105でYES)、かつ、当該更新プログラムΔよりも設定された更新順の遅い他の更新プログラムΔが記憶部22に格納されている場合(ステップS106でYES)、CPUは、当該制御プログラムを設定された更新順では更新しないと判定する。CPUは、この否定的な判定結果に至った場合、当該更新プログラムΔの更新順を設定されている最も早い順(最上位の順位)とは異なる更新順に設定しなおす(ステップS111)。具体的には、当該更新プログラムΔの更新順を更新順の遅い他の更新プログラムΔよりも遅く設定しなおす。ここでは、一例として、当該更新プログラムΔの更新順を最も遅い順(最下位の順位)と設定しなおすものとする。他の例として、次に早い順(第2位の順位)の更新プログラムΔと順位を入れ替えて、当該更新プログラムΔの更新順を次に早い順(第2位の順位)と設定しなおしてもよい。
【0094】
リプロ所要時間Trが規定時間Th以内である場合には、CPUは、当該更新プログラムΔを用いた制御プログラムを設定された更新順に従って更新すると判定する(ステップS113)。CPUは、この肯定的な判定結果に至った場合、
図4のステップS4A−1以降のシーケンスを実行する。これにより、当該制御プログラムの更新が実行される。
【0095】
上記判定において否定的な判定結果に至った場合、好ましくは、CPUは、記憶部22に格納された当該更新プログラムΔを削除する(ステップS109)。このようにすることで、更新対象の装置において制御プログラムの更新が行われないときには、記憶部22に不要な更新プログラムΔが格納されず、メモリの圧迫が回避される。
【0096】
なお、リプロ所要時間Trが規定時間Thよりも長い場合、CPUは、さらに、ユーザ認証を行ってユーザ(ドライバー)が許可されたユーザであり、かつ、当該ユーザから当該更新プログラムΔの更新を更新順に従わずに後回しにして行う旨の指示を受けた場合に(ステップS107でYES)、当該更新プログラムΔの更新順を設定されている最も早い順(最上位の順位)とは異なる更新順に設定しなおしてもよい(ステップS111)。これにより、たとえば車両1の所有者など、許可されたユーザが制御プログラムの更新を管理することができる。
【0097】
更新の順が最も早い更新プログラムΔについての上記判定が終了すると、CPUは、記憶部22に、当該更新プログラムΔよりも設定された更新順の遅い他の更新プログラムΔが格納されているか否かを確認する。そして、当該他の更新プログラムΔがある場合(ステップS115でYES)、ステップS105からの処理を繰り返して、記憶部22に格納されたすべての更新プログラムΔについて判定する(ステップS115でNO)。
【0098】
〔第1の実施の形態の効果〕
第1の実施の形態にかかるプログラム更新システムによれば、記憶部22に複数の更新プログラムΔが格納されており、リプロ所要時間Trが規定時間Thよりも長い更新プログラムΔが含まれる場合には、これら複数の更新プログラムΔに設定された更新順に従って制御プログラムの更新を行わないと判定し、更新順を設定しなおす。具体的には、リプロ所要時間Trが規定時間Thよりも長い更新プログラムΔについて、制御プログラムの更新順を他の制御プログラムの更新よりも後回しになるように更新順を設定しなおす。
【0099】
更新が後回しにされた更新プログラムΔは記憶部22から削除される。制御プログラムが更新されなかった場合、管理サーバ3に更新の完了が通知されない。そのため、当該更新プログラムΔが、再度、DLサーバ4からダウンロードされる。従って、当該制御プログラムの更新は、次回のDLサーバ4からの更新プログラムΔのダウンロード以降に後回しにされる。
【0100】
これにより、リプロ所要時間Trが規定時間Th以内の更新プログラムΔの方が制御プログラムの更新が優先される。そのため、短期間で多くの制御プログラムの更新を完了させることができる。つまり、更新が可能な期間に応じて更新の順を柔軟に変更することができ、効率的に制御プログラムの更新を行うことができる。
【0101】
<第2の実施の形態>
なお、上の例では、リプロ所要時間Trが規定時間Thよりも長い場合に更新が後回しになるように更新順が設定しなおされるとしているが、リプロ所要時間Trが規定時間Thよりも短い場合に更新が後回しになるように更新順が設定しなおされてもよい。たとえば、更新可能な時間が長時間である場合には、リプロ所要時間Trが長いものから順に更新を行うようにしてもよい。
【0102】
さらに、制御プログラムの更新を行うとする条件を、プロ所要時間Trが規定時間Thよりも短い場合とするか長い場合とするか、変更可能であってもよい。変更は、特定ユーザのみ可能としてもよい。
さらに、規定時間Thも、変更可能であってもよい。変更は、特定ユーザのみ可能としてもよい。
【0103】
リプロ所要時間Trが規定時間Th以上の制御プログラムの更新が優先されることで、長期間かけて制御プログラムの更新が可能な場合に、先にリプロ所要時間Trの長い更新を完了してしまうことができる。つまり、複数の制御プログラムに対して予め設定されている更新順を更新が可能な期間に応じて柔軟に変更することができ、効率的に制御プログラムの更新を行うことができる。
【0104】
<第3の実施の形態>
無線通信機19に車内通信線13Dを介して直接接続された、第2ネットワークに属するECU16は、マルチメディア系ECUなどの、単独で無線通信機19を介してDLサーバ4と通信を行って制御プログラムの更新できるECUである。そのため、当該ECU16の制御プログラムの更新では、ECU16がリプロモードに移行してから、記憶部42のROM領域に対して制御プログラムの書き換え処理、及び当該ECU16の制御する機器にインストールされたアプリケーションの再起動が行われる。
【0105】
従って、第2ネットワークにおける制御プログラムの更新では、書き換え処理のための時間、及びアプリケーションの再起動が完了するまでの時間、の合計時間、該当する機器におけるアプリケーションが使用できない状態となる。つまり、第2ネットワークにおける制御プログラムの更新では、リプロ所要時間Trが、書き換え処理のための時間、及びアプリケーションの再起動が完了するまでの時間、の合計時間となる。すなわち、第3の実施の形態では、リプロ所要時間Trは、制御プログラムの更新の対象とするECU16の機能のみが使用できない時間と言える。
【0106】
図6は、第3の実施の形態にかかるプログラム更新システムでの、車内通信システム10における通信手段の一例を示すシーケンス図である。第3の実施の形態では、通信機19に車内通信線13Dを介して直接接続された、第2ネットワークに属するECU16の制御プログラムを更新する場合について説明する。
【0107】
図6を参照して、この場合、無線通信機19は、DLサーバ4からダウンロードした更新プログラムΔを、安全性をチェックした上で記憶部92に格納する(ステップS2B)。無線通信機19は、更新プログラムΔのダウンロードの後の予め規定されたタイミングで、それぞれの更新プログラムΔに対して設定された更新順に従って制御プログラムを更新する。このとき、記憶部92に複数の更新プログラムΔが格納されている場合に、無線通信機19は、これら複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新するか否かを判定し、その判定結果が否定的である場合には更新順を設定しなおす処理を実行する(ステップS3B)。そして、無線通信機19は、設定された更新順または設定しなおされた更新順に従って更新プログラムΔを対象のECU16に転送し、更新を要求する(ステップS4B)。無線通信機19から更新が要求されたECU16は、更新プログラムΔを展開して旧バーションに適用し、制御プログラムを新バーションに書き換える(ステップS5)。
【0108】
制御プログラムの更新が完了すると、ECU16は、ゲートウェイ20に更新の完了を通知する(ステップS7−5)。ゲートウェイ20は、無線通信機19を介して管理サーバ3に、更新の完了を通知する(ステップS7−6)。これにより、管理サーバ3は、当該車両1での更新の完了を確認することができ、以降、当該制御プログラムの更新プログラムΔをDLサーバ4から配信されないようにする。また、当該制御プログラムの更新の完了が通知されない場合、管理サーバ3は、再度、当該制御プログラムの新プログラムΔをDLサーバ4に配信させる。また、当該通知を受けた無線通信機19は、メモリをクリアする(ステップS8B)。
【0109】
図6のシーケンスにおいて無線通信機19は、複数の更新プログラムΔに設定された更新順に従って制御プログラムを更新し、または、当該更新順に従って複数の制御プログラムを更新するか否かを判定する判定処理を実行し、当該判定結果に従って設定しなおされた更新順に従って制御プログラムを更新するように制御している。従って、第3の実施の形態では、無線通信機19が車載制御装置の更新プログラムの更新を制御する制御装置に該当する。
【0110】
第3の実施の形態にかかるプログラム更新システムにおいては、制御装置として機能する無線通信機19がステップS3Bにおいて順位決定処理を実行する。ステップS3Bの順位決定処理は、
図5のフローチャートで表わされた処理と同じである。つまり、第3の実施の形態にかかるプログラム更新システムにおいては、無線通信機19の制御部91のCPUが記憶部92に記憶された1つまたは複数のプログラムをRAM上に読み出して実行することによってリプロ制御部95として機能し、当該リプロ制御部95により
図5の順位決定処理が実現される。
【0111】
〔第3の実施の形態の効果〕
第3の実施の形態にかかるプログラム更新システムにおいても、リプロ所要時間Trが規定時間Thよりも長い更新プログラムΔについては更新の順が後回しになる。つまり、リプロ所要時間Trが規定時間Th以内の更新プログラムΔの更新が優先される。そのため、短期間で多くの更新プログラムΔの更新を完了させることができる。
【0112】
<第4の実施の形態>
なお、第2ネットワークに属するECU16はマルチメディア系ECUなどであり、制御プログラムの更新は当該マルチメディア装置を制御するためのアプリケーションの更新などである。そのため、通信機器と当ECUとの間は高速通信が確立しており、通信速度差を吸収するためのメモリを通信機器が確保しないことがある。また、更新プログラムΔのサイズはマルチメディア系ECUのメモリの容量が大きく設定されているため、記憶部92に格納されても大きく影響しない場合がある。そこで、リプロ所要時間Trが規定時間Thよりも長く制御プログラムの更新が後回しにされた場合、当該更新プログラムΔは記憶部92から削除されずに保持されたままで、更新順が設定しなおされてもよい。
【0113】
図7は、
図6のステップS3Bでの順位決定処理の具体的な内容の一例を表したフローチャートである。
図7のフローチャートで表された処理は、無線通信機19の制御部91のCPUが記憶部92に記憶された1つまたは複数のプログラムをRAM上に読み出して実行することによってリプロ制御部95として機能し、当該リプロ制御部95により実現される。
図7において、
図5のフローチャートと同じステップ番号が付加された処理は同じ処理である。従って、ここでは、
図5のフローチャートと同じ処理については説明を繰り返さない。
【0114】
図7を参照して、制御部91のCPUは、リプロ所要時間Trと規定時間Thとの比較結果に従って、当該制御プログラムの更新を設定された更新順では行わないと判定した場合(ステップS105でYES)、当該更新プログラムΔの更新順を設定されている更新順よりも遅くなるように設定しなおす(ステップS201)。たとえば、当該更新プログラムΔの更新順を最も遅い順と設定しなおす。
【0115】
第4の実施の形態にかかるプログラム更新システムにおいては、リプロ所要時間Trと規定時間Thとの比較結果に従って更新の順が後回しにされた更新プログラムΔが当該ECU16の記憶部92に保持されている。そのため、DLサーバ4からの次回のダウンロードを待たずに、可能なタイミングで記憶部92に格納されている更新プログラムΔを用いて制御プログラムの更新を行うことができる。
【0116】
<第5の実施の形態>
DLサーバ4から無線通信機19にダウンロードされる複数の更新プログラムΔには、第1ネットワークに属する装置(マネージャ装置14またはECU16)の更新プログラムΔと第2ネットワークに属する装置(ECU16)の更新プログラムΔとが混在している場合もある。この場合、無線通信機19の制御部91のCPUは、いったん、すべての更新プログラムΔを記憶部92に格納し、それら複数の更新プログラムΔに対して順位決定処理を行ってもよい。つまり、
図4では、第1ネットワークに属する装置の更新プログラムΔについてはゲートウェイ20が制御装置として機能して順位決定処理(ステップS3A)を行うものとしているが、すべての更新プログラムΔについて無線通信機19が制御装置として機能して順位決定処理(ステップS3B)を行うようにしてもよい。
【0117】
このようにすることで、第1ネットワークに属する装置(マネージャ装置14またはECU16)の更新プログラムΔと第2ネットワークに属する装置(ECU16)の更新プログラムΔとが混在してDLサーバ4から無線通信機19にダウンロードされた場合であっても、リプロ所要時間Trが規定時間Thよりも長い更新プログラムΔについては更新の順が後回しにされる。つまり、リプロ所要時間Trが規定時間Th以内の更新プログラムΔの更新が優先される。そのため、短期間で多くの更新プログラムΔの更新を完了させることができる。
【0118】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
車両に搭載された対象機器を制御する車載制御装置の制御プログラムの更新を制御する制御装置であって、制御プログラムの更新用プログラムを格納するためのメモリと、前記メモリに格納されている複数の前記更新用プログラムに対して設定された更新順に従って複数の制御プログラムを更新する制御部と、を備え、前記制御部は、前記複数の制御プログラムの更新所要時間と所定の閾値とを比較し、その比較結果に基づいて前記複数の制御プログラムの更新を前記更新順に行うか否かを判定する判定処理を実行する、制御装置。