JP2017076255A - プログラム書き換えシステム及びプログラム書き換え方法 - Google Patents

プログラム書き換えシステム及びプログラム書き換え方法 Download PDF

Info

Publication number
JP2017076255A
JP2017076255A JP2015203460A JP2015203460A JP2017076255A JP 2017076255 A JP2017076255 A JP 2017076255A JP 2015203460 A JP2015203460 A JP 2015203460A JP 2015203460 A JP2015203460 A JP 2015203460A JP 2017076255 A JP2017076255 A JP 2017076255A
Authority
JP
Japan
Prior art keywords
program
divided
rewriting
type node
type
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.)
Granted
Application number
JP2015203460A
Other languages
English (en)
Other versions
JP5996074B1 (ja
Inventor
松井 俊憲
Toshinori Matsui
俊憲 松井
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2015203460A priority Critical patent/JP5996074B1/ja
Priority to US15/218,475 priority patent/US10359753B2/en
Application granted granted Critical
Publication of JP5996074B1 publication Critical patent/JP5996074B1/ja
Priority to DE102016218222.6A priority patent/DE102016218222A1/de
Publication of JP2017076255A publication Critical patent/JP2017076255A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B11/00Automatic controllers
    • G05B11/01Automatic controllers electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23229Execute first current program, then select new program

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ネットワークに接続された制御装置のプログラムの書き換えを効率良く実施することができ、さらに書き換えるプログラムが正しいかを検証可能としたプログラム書き換えシステム及びプログラム書き換え方法を提供する。
【解決手段】複数の第2種ノードの各々は、第1種ノードの動作を決定するプログラムの書き換え用プログラムの一部分である分割プログラムを、他の第2種ノードに保存される分割プログラムと部分的に重複した内容を含む形で保存する。第2種ノードの各々は、第1種ノードへの分割プログラムの送信が可能な場合に、自ノードが保存している分割プログラムを第1のネットワークを介して第1種ノードに送信する。第1種ノードは、受信した分割プログラムに該当する部分を書き換えるとともに、その書き換えた分割プログラム同士を前記の重複した内容を用いて同一であるか否かを検証する。
【選択図】図17

Description

本発明は、プログラム書き換えシステム及びプログラム書き換え方法に関し、特にネットワークに接続された複数の制御装置であるノードにおけるプログラムの書き換えシステム及び書き換え方法に関する。
従来、ネットワークに接続された制御装置のプログラム書き換えシステム及び方法(以下、システムとして総称することがある。)として、例えば特許文献1に提示されたものが知られている。
この特許文献1におけるプログラム書き換えシステムについて図16を用いて説明する。図16(a)に示すように、車両のネットワーク8には、外部とのインターフェイス機能を有する書き換えを実施する第1の制御装置16と、統括制御装置17と、プログラムのデータを書き換える対象である第2の制御装置18と、複数ある第3の制御装置19が接続されている。
統括制御装置17は、外部とのインターフェイス機能を有する第1の制御装置16と、所定の機能を有するゲートウェイ17aを介して接続されている。統括制御装置17は、さらに、所定のデータを記憶し得る記憶媒体17bと、全体を制御するCPU17cとを有している。また、プログラムデータの書き換え対象である第2の制御装置18は、所定のデータを記憶する記憶媒体18aと、所定の入力信号により最適な制御を行うことができるCPU18b及びメモリ18cを有している。
また、図16(b)に示すように、第1の制御装置16は、データ入力部16aと、データ入力部16aからのデータを一時的に記憶する記憶装置16eと、第1の制御装置16全体を制御するCPU16dと、ゲートウェイ17aとの間の入出力インターフェイスを構成する第1のインターフェイス部16cと、表示部などの出力部に出力する第2のインターフェイス部16bを有している。
この特許文献1では、第2の制御装置18のプログラムデータの書き換えを実施する際に、プログラム書き換え用のデータが、第1の制御装置16にデータ入力部16aから入力される。このデータは、CPU16dの制御に基づいてデータ出力部16cを介してゲートウェイ17aに出力される。その後、このデータは、ゲートウェイ17aを経由して、統括制御装置17の記録媒体17bに一時蓄積される。さらに、そのプログラム書き換え用のデータは、電圧や温度範囲等の書き換え実施条件が満たされた時には、第2の制御装置18の記録媒体18aへ車両のネットワーク8を介して送信される。
この特許文献1に提示されたプログラムの書き換えシステムでは、1つの通信ノードである統括制御装置17内に、プログラム書き換え用のデータ全てを記録する容量を持つ記録媒体17bが必要であり、そのためにコストが上昇するという課題があった。
このような課題を解消するため、本出願人は、特許文献2に示すように、複数のモータ制御装置等の第2種ノードに書き換え用プログラムの一部分である分割プログラムを保存させるようにし、各第2種ノードは、自身が保存する分割プログラムをそれぞれバッテリ制御装置等の第1種ノードに送信し、第1種ノードは、各第2種ノードから分割プログラムを受信する度に、第1種ノードの動作を決定するプログラム中の該分割プログラムに該当する部分を書き換えるように構成したプログラム書き換えシステム及びプログラム書き換え方法を提案した。
特許第4668656号公報 特許第5323151号公報
しかしながら、上記の特許文献2の場合には、第2種ノードに書き換え用データを記録した後にプログラムが外乱等により破損した場合については、プログラム書き換え用のデータを検証することができないという課題がある。
本発明は、上記のような課題を解決するためになされたものであり、ネットワークに接続された制御装置のプログラムの書き換えを効率良く実施することができ、且つ1つのノードがコスト高とならないようにし、さらに書き換えるプログラムが正しいかを検証可能としたプログラム書き換えシステム及びプログラム書き換え方法を提供することを目的とする。
上記の目的を達成するため、本発明によるプログラム書き換えシステムは、第1のネットワークを介して互いに通信可能に接続された第1種ノードと複数の第2種ノードとを含み、前記第1種ノードの動作を決定するプログラムを書き換えるプログラム書き換えシステムであって、前記第1種ノードは、前記プログラムを保存する第1の記録領域と、前記第1の記録領域に保存された前記プログラムを部分的に書き換えるプログラム書き換え部と、前記書き換えたプログラムが同一であるか否かを検証するプログラム検証部とを有し、前記第2種ノードの各々は、前記プログラムの書き換え用プログラムの一部分である分割プログラムを、他の第2種ノードに保存される分割プログラムと部分的に重複した内容を含む形で保存する第2の記録領域と、前記第1種ノードへの前記分割プログラムの送信可否を判断する送信可否判断部を有し、前記第2種ノードの各々は、前記送信可否判断部が前記第1種ノードへの前記分割プログラムの送信が可能であると判断した場合に、自ノードが保存している前記分割プログラムを前記第1のネットワークを介して前記第1種ノードに送信し、前記第1種ノードのプログラム書き換え部は、前記第2種ノードの各々から前記分割プログラムを受信する度に、前記第1の記録領域に保存された前記プログラムの前記分割プログラムに該当する部分を書き換え、前記第1種ノードのプログラム検証部は、前記書き換えた分割プログラム同士が同一であるか否かを前記重複した内容を用いて検証するものである。
また、上記の目的を達成するため、本発明によるプログラム書き換え方法は、第1のネットワークを介して互いに通信可能に接続された第1種ノードと複数の第2種ノードとを含み、前記第1種ノードの動作を決定するプログラムを書き換えるプログラム書き換え方法であって、前記第2種ノードの各々は、前記プログラムの書き換え用プログラムの一部分である分割プログラムを、他の第2種ノードに保存される分割プログラムと部分的に重複した内容を含む形で保存し、前記第2種ノードの各々は、前記第1種ノードへの前記分割プログラムの送信が可能であると判断した場合に、自ノードが保存している前記分割プログラムを前記第1のネットワークを介して前記第1種ノードに送信し、前記第1種ノードは、前記第2種ノードの各々から前記分割プログラムを受信する度に、前記プログラムの前記分割プログラムに該当する部分を書き換えるとともに、前記書き換えた分割プログラム同士が同一であるか否かを前記重複した内容を用いて検証するものである。
本発明に係るプログラム書き換えシステム及び方法によれば、第2種ノードは、第1種ノードの動作を決定するプログラムの書き換え用プログラムの一部分である分割プログラムを、他の第2種ノードに保存される分割プログラムと部分的に重複した内容を含む形で保存し、第2種ノードの各々は、第1種ノードへの分割プログラムの送信が可能であると判断した場合に、自ノードが保存している分割プログラムを第1のネットワークを介して第1種ノードに送信し、第1種ノードは、受信した分割プログラムに該当する部分を書き換えるとともに、その書き換えた分割プログラム同士を前記の重複した内容を用いて同一であるか否かを検証するように構成したので、効率の良いプログラムの書き換えと書き換え後の検証を実施することができるとともに、第2種ノードに全ての書き換え用プログラムを保存できるほどの大きな記録容量を設ける必要がなく、一つのノードがコスト高になることを防ぐことができ、全体としてのコストが抑えられる。
本発明の実施の形態1によるプログラム書き換えシステムが適用される車両制御システムの構成を示すブロック図である。 本発明の実施の形態1によるプログラム書き換えシステムにおける第1〜第3種ノードの記録装置の領域構成を、それぞれ、図2(a)〜(c)に示すメモリマップ図である。 本発明の実施の形態1によるプログラム書き換えシステムの第1種ノードにおける処理の流れを示す図である。 本発明の実施の形態1によるプログラム書き換えシステムの第2種ノード及び第3種ノードにおける処理の流れを、それぞれ、図4(a)及び(b)に示す図である。 本発明の実施の形態1によるプログラム書き換えシステムにおける各ノードの処理の流れを時間軸に沿って示す図である。 本発明の実施の形態2によるプログラム書き換えシステムが適用される車両制御システムの構成を示すブロック図である。 本発明の実施の形態2によるプログラム書き換えシステムにおける第4及び第5種ノードの記録装置の領域構成を、それぞれ、図7(a)及び(b)に示すメモリマップ図である。 本発明の実施の形態2によるプログラム書き換えシステムの第5種ノードにおける処理の流れを示す図である。 本発明の実施の形態2によるプログラム書き換えシステムの第4種ノードにおける処理の流れを示す図であり、図9(a)に処理の流れ全体を示し、その中の送受信処理のサブルーチンを図9(b)に示す図である。 本発明の実施の形態2によるプログラム書き換えシステムの第1種ノードにおける処理の流れを示す図である。 本発明の実施の形態2によるプログラム書き換えシステムにおける各ノードの処理の流れを時間軸に沿って示す図である。 本発明の実施の形態3によるプログラム書き換えシステムが適用される車両制御システムの構成を示すブロック図である。 本発明の実施の形態3によるプログラム書き換えシステムの第2種ノードにおける処理の流れを示す図である。 本発明の実施の形態3によるプログラム書き換えシステムの第4種ノードにおける処理の流れを示す図である。 本発明の実施の形態3によるプログラム書き換えシステムにおける各ノードの処理の流れを時間軸に沿って示す図である。 従来のプログラム書き換えシステムを示すブロック図であり、図16(a)にシステム全体を示し、その中の第1の制御装置を図16(b)に示すブロック図である。 本発明の各実施の形態によるプログラム書き換えシステムで使用される分割プログラムの構成を示す図である。
以下に、本発明の実施の形態1〜3によるプログラム書き換えシステム及び方法について、図面に基づいて説明する。なお、全ての図において、図中、同一又は相当部分には、同一符号を付している。
実施の形態1.
図1は、本実施の形態1によるプログラム書き換えシステム及び方法が適用される車両制御システムの構成を示している。なお、図1において、各制御装置及びテスタは、図1に示す以外の構成物も備えているが、本実施の形態1に直接関係しないものについては図示を省略している。
また、図2は、図1に示す車両制御システムにおける第1〜第3種ノードにそれぞれ備えられた記録装置13、23a、23b、及び33の領域構成を示している。
本実施の形態1によるプログラム書き換えシステムは、第1種ノードであるバッテリ制御装置1と、第2種ノードであるEPS(Electric Power Steering=電動パワーステアリング)制御装置2a及びモータ制御装置2bと、第3種ノードであるテスタ3とを含んでいる。
これらのノードは第1のネットワークである車両のCAN(Controller Area Network)ネットワーク6を介して互いに通信可能に接続されている。第2種ノードとしては、上記のEPS制御装置2aとモータ制御装置2bとが示されているが、これに限らずに、さらに別のノードを含み得ることは言うまでもない。
第1種ノードとしてのバッテリ制御装置1はバッテリ10を制御し、同様にEPS制御装置2aはEPS20aを、モータ制御装置2bは駆動用モータ20bを、それぞれ制御するように接続されている。なお、図1に示すテスタ3以外の制御装置は、常時、CANネットワーク6に接続されているが、テスタ3は、CANネットワーク6に常時接続されているのではなく、プログラムの書き換えや各ノードの故障診断時等、必要に応じて随時接続される。
バッテリ制御装置1の構成と機能について簡単に説明する。マイコン11は、バッテリ10の制御に関わる制御量や各種処理値を演算する。CANネットワーク用データ送受信部であるデータ送受信部12は、CANネットワーク6を介して、接続された他の制御装置(EPS制御装置2a、モータ制御装置2b、テスタ3を含む)とデータを送受信する。
また、記録装置13は、書き換え対象であるバッテリ制御プログラムを保存する第1の記録領域を有している。このバッテリ制御プログラムは、バッテリ制御装置1の動作(制御内容)を決定し、演算を行うものである。
記録装置13の領域構成について、図2(a)を用いて説明する。記録装置13は、バッテリ制御プログラムを部分的に書き換えるためのプログラム書き換えプログラムを保存するプログラム書き換えプログラム記録領域131と、バッテリ制御プログラムを保存する第1の記録領域であるバッテリ制御プログラム記録領域132と、バッテリ10の制御に関わるデータ等を保存するバッテリ制御プログラム用記録領域(データ用)133と、バッテリ制御プログラムを部分的に検証するためのプログラム検証プログラムを保存するプログラム検証プログラム記録領域134とを備えている。
さらに、バッテリ制御装置1のプログラム書き換え部14は、記録装置13のバッテリ制御プログラム記録領域132に保存されたバッテリ制御プログラムを部分的に書き換える。その際には、記録装置13のプログラム書き換えプログラム記録領域131に記録されたプログラム書き換えプログラムを用いる。
また、第1の状態検出部である状態検出部15は、(第1種ノード)自身がバッテリ制御プログラムを書き換え可能な状態であるか否か、あるいはバッテリ制御プログラムが全て書き換えられているか否か等の状態を検出する。状態検出部15により書き換え可能であることが検出された場合は、CANネットワーク6を介してEPS制御装置2a及びモータ制御装置2bに通知し、通知を受けたEPS制御装置2a及びモータ制御装置2bは、自身が保存する分割プログラムを、CANネットワーク6を介してバッテリ制御装置1に送信する。
さらに、バッテリ制御装置1のプログラム検証部9は、記録装置13のバッテリ制御プログラム記録領域132に保存されたバッテリ制御プログラムを検証する。その際には、記録装置13のプログラム検証プログラム記録領域134に記録されたプログラム検証プログラムを用いてCANネットワーク6上や他のノードでの保存中に分割プログラムが壊れていないか(例えば、ノイズによるビット反転)等を確認する。
バッテリ制御装置1は、EPS制御装置2a又はモータ制御装置2bから分割プログラムを受信する度に、バッテリ制御プログラム記録領域132に保存されたバッテリ制御プログラムの該分割プログラムに該当する部分の中で未だ書き換えられていない部分には、プログラム書き換え部14により書き換えを実施し、既に書き換えられている部分には、プログラム検証部9により書き換えられた内容を検証する。
次に、第2種ノードとしてのEPS制御装置2aの構成と機能について簡単に説明する。マイコン21aは、EPS20aの制御量や各種処理値を演算する。データ送受信部22aは、CANネットワーク6を介して、接続された他の制御装置(バッテリ制御装置1、モータ制御装置2b、テスタ3を含む)とデータの送受信を行う。また、記録装置23aは、バッテリ制御プログラムの書き換えプログラムの一部分である分割バッテリ制御プログラム(以下、分割プログラムと略す。)を保存する第2の記録領域を有している。
記録装置23aの領域構成について、図2(b)を用いて説明する。記録装置23aは、EPS20aの制御内容を決定するEPS制御プログラムを保存するEPS制御プログラム記録領域231aと、EPS20aの制御に関わるデータ等を保存するEPS制御プログラム用記録領域(データ用)232aと、分割プログラムを一時的に保存する第2の記録領域である分割バッテリ制御プログラム記録領域233aとを備えている。なお、分割バッテリ制御プログラム記録領域233aには、記録装置23aの空き領域等を割り当てることができる。
また、送信可否判断部24aは、バッテリ制御装置1への分割プログラムの送信可否を判断する。送信可否判断部24aによりバッテリ制御装置1への分割プログラムの送信が可能であると判断された場合には、自身が保存する分割プログラムを、CANネットワーク6を介してバッテリ制御装置1に送信する。
次に、やはり第2種ノードとしてのモータ制御装置2bの構成と機能について簡単に説明する。マイコン21bは、駆動用モータ20bの制御量や各種処理値を演算する。データ送受信部22bは、CANネットワーク6を介して、接続された他の制御装置(バッテリ制御装置1、EPS制御装置2a、テスタ3を含む)とデータを送受信する。また、記録装置23bは、バッテリ制御プログラムの書き換え用プログラムを分割した一部分である分割プログラムを保存する第2の記録領域を有している。
記録装置23bの領域構成について、図2(c)を用いて説明する。記録装置23bは、駆動用モータ20bの制御内容を決定するモータ制御プログラムを保存するモータ制御プログラム記録領域231bと、駆動用モータ20bの制御に関わるデータ等が記録されるモータ制御プログラム用記録領域(データ用)232bと、分割プログラムを一時的に保存する第2の記録領域である分割バッテリ制御プログラム記録領域233bを備えている。なお、分割バッテリ制御プログラム記録領域233bには、記録装置23bの空き領域等を割り当てることができる。
また、送信可否判断部24bは、バッテリ制御装置1への分割プログラムの送信可否を判断する。送信可否判断部24bによりバッテリ制御装置1への分割プログラムの送信が可能であると判断された場合には、自ノードが保存する分割プログラムを、CANネットワーク6を介してバッテリ制御装置1に送信する。
次に、第3種ノードとしてのテスタ3の構成と機能について簡単に説明する。マイコン31は、テスタ3の動作に関わる各種処理を実施する。データ送受信部32は、CANネットワーク6を介して、接続された他の制御装置(バッテリ制御装置1、EPS制御装置2a、モータ制御装置2bを含む)とデータを送受信する。また、記録装置33は、図2(d)に示すように、バッテリ制御プログラムの書き換え用プログラムを保存する第3の記録領域であるバッテリ制御プログラム記録領域331を備えている。
さらに、第1のプログラム分割部であるプログラム分割部34は、記録装置33のバッテリ制御プログラム記録領域331に保存された書き換え用プログラムを部分的に同じ内容が重複するように分割し、分割プログラムを作成する。
ここで書き換え用プログラムと分割プログラムの構成を図17により説明する。図17において書き換え用プログラムは0番地からc番地までのコードで構成されている。この時、0番地からb番地までを分割プログラムAとし、a番地からc番地までを分割プログラムBとして書き換え用プログラムを分割する(ただし、c>b>a>0)。こうすることで、a番地からb番地分は分割プログラムA、分割プログラムBともに同じデータ内容が含まれることとなる。本分割は一例であり、重要な部分を重複させるなどして、部分的に同じ内容が重複する分割プログラムを作成すればよい。この分割プログラム部分を、図示の通り、分割プログラムCとする。
プログラム分割部34により作成された分割プログラムは、それぞれCANネットワーク6を介してEPS制御装置2a及びモータ制御装置2bに送信される。
次に、本実施の形態1によるプログラム書き換えシステムの各ノードにおける処理の流れについて、図3及び図4のフローチャートを用いて説明する。
図3は、第1種ノードであるバッテリ制御装置1におけるプログラム書き換えに関する処理の流れを示している。なお、バッテリ制御装置1では、バッテリ10の制御に関わる通常の処理と、バッテリ制御プログラムの書き換えに関する処理が実施される。プログラム書き換えに関する処理は、テスタ3から書き換え実施の通知(書き換え指示)があった場合に実施される。図3は、特に、テスタ3からの書き換え実施の通知を受信した後の処理フローを示している。
まず、ステップ301(S301)において、状態検出部15は、バッテリ制御装置1がバッテリ10の制御に関わる通常の処理を実施しているか否かを判断する。通常の処理が実施されている場合(YES)は、ステップ302(S302)へ進み、実施されていない場合(NO)は、ステップ312(S312)へ進み、通常の書き換え処理を実施する。なお、S312の通常の書き換え処理とは、テスタ3から、バッテリ制御装置1のバッテリ制御プログラムを書き換える従来の書き換え方法によるものであり、本発明の特徴である書き換え用プログラムを分割して行うものではないため、説明を省略する。
バッテリ制御装置1がバッテリ10の制御に関わる通常の処理を実施している場合は、その間、バッテリ制御プログラムの書き換え不可状態であるため、S302において、関連ノードへ分割書き換えを実施することを通知し、ステップ303(S303)へ進む。S303において、状態検出部15は再度、通常の処理が実施されているかどうかを判断し、通常の処理が実施されていなければ、書き換え可能(YES)であるためステップ304(S304)へ進み、通常の処理が実施されている場合には、終了まで待機する。
続いて、S304において、状態検出部15は、検証時に問題が発生しているか否か、記録装置13のバッテリ制御プログラム記録領域132に保存されたバッテリ制御プログラムの全ての領域(部分)が書き換えられているか否かを判断する。検証時に問題が発生した場合、若しくは検証時に問題が発生せずに全て書き換えられている場合は(YES)、本処理を終了し、書き換えられていなければ(NO)、ステップ305(S305)へ進む。
S305において、状態検出部15は、バッテリ制御プログラム記録領域132に保存されたバッテリ制御プログラムが書き換え中であるか否かを判断する。いずれの部分も書き換え中でなければ(NO)、ステップ306(S306)へ進み、書き換え中であれば(YES)、書き換えが終了するまで待機する。
S306において、状態検出部15は、書き換えが終了していないバッテリ制御プログラムの部分に該当する分割プログラムを保存している第2種ノード2a,2bに対し、データ送受信部12により送信指示をし、ステップ307(S307)へ進む。S307では、データ送受信部12により分割プログラムを受信し、ステップ308(S308)へ進む。
S308では、受信した分割プログラムに該当するバッテリ制御プログラムの一部が既に別の受信した分割プログラムにおいて書き換えられているかどうかを確認する。書き換えられていれば(YES)、ステップ310(S310)へ進み、書き換えられていなければ(NO)、ステップ309(S309)へ進む。S309において、プログラム書き換え部14は、プログラム書き換えプログラムを用い、受信した分割プログラムに該当するバッテリ制御プログラムの部分を書き換え、ステップ311(S311)へ進む。
S310において、プログラム検証部9は、プログラム検証プログラムを用い、受信した分割プログラムに該当するバッテリ制御プログラムの部分を検証し、問題の有無を判断し、S311へ進む。S311において、S307で受信した第2種ノードから全ての分割プログラムを受信したかどうかを判断する。受信してない場合は(NO)、S307へ進み、受信している場合は(YES)、ステップ304へ進む。
次に、第2種ノードであるEPS制御装置2a及びモータ制御装置2bにおけるプログラム書き換えに関する処理の流れについて、図4(a)を用いて説明する。EPS制御装置2a(又はモータ制御装置2b)では、EPS20a(又は駆動用モータ20b)の制御に関わる通常の処理と、バッテリ制御装置1のプログラム書き換えに関する処理が実施される。プログラム書き換えに関する処理は、テスタ3から書き換え実施の通知があった場合に実施されるが、通常の処理が実施されている時には書き換えに関する処理は実施しない。なお、EPS制御装置2aとモータ制御装置2bにおけるプログラム書き換えに関する処理は同じであるので、ここではEPS制御装置2aを例に挙げて説明する。
EPS制御装置2aは、テスタ3から書き換え実施の通知を受信後、ステップ401(S401)において、分割プログラムの受信を待つ。データ送受信部22aにより分割プログラムを受信した場合(YES)は、ステップ402(S402)へ進み、受信した分割プログラムを記録装置23aの分割バッテリ制御プログラム記録領域233aに保存し、ステップ403(S403)へ進む。
S403において、EPS制御装置2aは、バッテリ制御装置1からの分割プログラムの送信指示を待つ。送信指示を受信しない場合(NO)は、受信するまで待機する。送信指示を受信した場合(YES)、ステップ404(S404)へ進み、送信可否判断部24aは、分割プログラムを送信すると判断し、データ送受信部22aにより、分割バッテリ制御プログラム記録領域233aに保存している分割プログラムをバッテリ制御装置1へ送信し、処理を終了する。
次に、第3種ノードであるテスタ3におけるプログラム書き換えに関する処理の流れについて、図4(b)を用いて説明する。テスタ3では、関連ノードへのプログラム書き換え実施の通知と、書き換え用プログラムの送信処理を実施する。なお、図4(b)は、各ノードに対し、バッテリ制御装置1のプログラム書き換え実施を通知した後の処理フローを示している。
まず、ステップ411(S411)において、テスタ3のプログラム分割部34は、記録装置33のバッテリ制御プログラム記録領域331に記録されている書き換え用プログラムを他の分割プログラムと部分的に重複した内容を含めるように分割し、分割プログラムを作成する。続いてステップ412(S412)において、データ送受信部32により、分割プログラムをそれぞれ各第2種ノードへ送信する。本実施の形態1では、第2種ノードを2つ備えているため、書き換え用プログラムを2つに分割し、分割プログラムAと分割プログラムBを作成し、例えば分割プログラムAをEPS制御装置2aに、分割プログラムBをモータ制御装置2bに送信する。
次に、ステップ413(S413)において、全ての分割プログラムが送信されたか否かを判断する。全ての分割プログラムが送信されていない場合(NO)、S412へ進み、全て送信されていた場合には(YES)、処理を終了する。
以上、図3及び図4のフローチャートにより、各ノードのプログラム書き換えに関する処理の流れについて説明したが、次に、これら全てのノードの処理の流れを図5のタイムチャートに沿って説明する。なお、図5において、縦軸は各ノード、横軸は時間を示している。なお、図5では、テスタ3は既にCANネットワーク6に接続されており、各ノード間の通信は、全てCANネットワーク6を介して行われる。また、EPS制御装置2a及びモータ制御装置2bは、それぞれ通常の処理を実施していないものとする。
まず、t10において、バッテリ制御装置1は、バッテリ10の制御に関わる通常の処理を実施している(処理10)。続いて、t11において、テスタ3は、データ送受信部32により、バッテリ制御装置1に対しプログラム書き換えを実施することを通知する(処理40)。
テスタ3から書き換え実施通知を受信したバッテリ制御装置1の状態検出部15は、バッテリ制御プログラムを書き換え可能な状態であるか否かを判断する(処理11)。ここでは、通常の処理を実施しているため、書き換え不可と判断される。続いてt12において、バッテリ制御装置1は、EPS制御装置2a、モータ制御装置2b、及びテスタ3に対し、書き換え実施不可であることを通知する(処理12)。EPS制御装置2a、モータ制御装置2b、及びテスタ3は、それぞれバッテリ制御装置1が書き換え不可であることを受信する(処理20、処理30、処理41)。
次に、t13において、バッテリ制御装置1は、バッテリ10の制御に関わる通常の処理を再開する(処理10)。t14において、テスタ3は、バッテリ制御装置1が書き換え不可である通知を受けたので、自身が保存しているバッテリ制御プログラムの書き換え用プログラムを、プログラム分割部34により分割し、分割プログラムを作成する(処理42)。なお、ここでは、書き換え用プログラムを分割プログラムAと分割プログラムBの2つに分割するものとする。この時、分割プログラムAと分割プログラムBには、図17に示すように、部分的に同じ内容が重複する。上述したように、この重複部分が分割プログラムCである。
続いて、t15において、テスタ3は、分割プログラムAをEPS制御装置2aへ送信する(処理43)。これを受信したEPS制御装置2aは、分割プログラムAを分割バッテリ制御プログラム記録領域233aに保存する(処理21)。次に、t16において、テスタ3は、まず、全ての分割プログラムを送信したか否かを確認する。ここでは、分割プログラムBが未送信のため、処理を継続し、分割プログラムBをモータ制御装置2bへ送信する(処理44)。
分割プログラムBを受信したモータ制御装置2bは、分割プログラムBを分割バッテリ制御プログラム記録領域233bに保存する(処理31)。さらに、テスタ3は、全ての分割プログラムを送信したか否かを確認し、ここでは全ての分割プログラムが送信済みのため、処理を終了する。ここまでの処理が終了すると、テスタ3をCANネットワーク6から取り外すことが可能となる。
その後、t17において、バッテリ制御装置1が通常の処理を終了すると、t18において、バッテリ制御装置1の状態検出部15は、バッテリ制御プログラムの書き換えが可能な状態であるか否かを判断する。ここでは、通常の処理を実施していないため、書き換え可能であると判断される。次に、状態検出部15は、記録装置13のバッテリ制御プログラム記録領域132に保存されているバッテリ制御プログラムの全ての領域(部分)が分割プログラムCの検証によって問題なく書き換えられているか否かを判断する。ここでは、未だ書き換えられていないと判断される。
さらに、状態検出部15は、バッテリ制御プログラム記録領域132に保存されたバッテリ制御プログラムが書き換え中であるか否かを判断する。ここでは、いずれの部分も書き換え中でないため、バッテリ制御装置1は、EPS制御装置2aへ分割プログラムの送信を指示し(処理13)、EPS制御装置2aのデータ送受信部22aは、分割プログラムの送信指示を受信する(処理22)。
続いてt19において、EPS制御装置2aの送信可否判断部24aは、バッテリ制御装置1へ分割プログラムを送信すると判断し、記録装置23aの分割バッテリ制御プログラム記録領域233aに保存している分割プログラムAを、データ送受信部22aにより順次送信する(処理23)。分割プログラムAを全て送信し終わるとEPS制御装置2aは処理を終了する。一方、分割プログラムAを受信したバッテリ制御装置1は、受信した分割プログラムAの該当する書き換え先が既に書き換えられているか否かを判断する。ここでは、未だ書き換えられていないので、プログラム書き換え部14により、バッテリ制御プログラムの分割プログラムAに該当する部分を書き換える。順次受信する分割プログラムにおいて、未だ書き換えられていないので、分割プログラムAに該当する部分を順次書き換えることとなる(処理14)。
次に、t20において、状態検出部15は、バッテリ制御プログラム記録領域132に保存されているバッテリ制御プログラムの全ての領域(部分)が検証において問題なく書き換えられているか否かを判断する。ここでは、未だ書き換えられていないと判断される。さらに、状態検出部15は、バッテリ制御プログラム記録領域132に保存されたバッテリ制御プログラムが書き換え中であるか否かを判断する。ここでは、いずれの部分も書き換え中でないため、バッテリ制御装置1は、モータ制御装置2bへ分割プログラムの送信を指示し(処理15)、モータ制御装置2bのデータ送受信部22bは、分割プログラムの送信指示を受信する(処理32)。
続いてt21において、モータ制御装置2bの送信可否判断部24bは、バッテリ制御装置1へ分割プログラムを送信すると判断し、記録装置23bの分割バッテリ制御プログラム記録領域233bに保存している分割プログラムBを、データ送受信部22bにより順次送信する(処理33)。分割プログラムBを全て送信し終わるとモータ制御装置2bは処理を終了する。一方、分割プログラムBを受信したバッテリ制御装置1は、受信した分割プログラムBの該当する書き換え先が既に書き換えられているか否かを判断する。ここでは、分割プログラムCの部分は既に書き換えられているので、受信した分割プログラムBのうち分割プログラムCを除く部分はプログラム書き換え部14により、バッテリ制御プログラムの該当する部分を書き換える。一方で分割プログラムCに該当する部分については、プログラム検証部9により既に書き換えられている内容と、受信した分割プログラムCの内容が同じであるか検証する(処理16)。ここでは、同じであり、検証において問題がないとする。その後、状態検出部15は、検証において問題が発生することなく全てのバッテリ制御プログラムの書き換えが終了しているか否かを判断する。ここでは、問題が発生することなく全て書き換えられているため、書き換えに関する処理を終了する。
なお、本実施の形態1において、テスタ3に分割プログラムを暗号化する暗号化部を備え、暗号化部により暗号化した分割プログラムをEPS制御装置2aとモータ制御装置2bに送信し、暗号化された分割プログラムをEPS制御装置2aとモータ制御装置2bに保存するようにしても良い。あるいは、EPS制御装置2a及びモータ制御装置2bに暗号化部を備え、テスタ3から受信した分割プログラムを暗号化部により暗号化してから保存するようにしても良い。
また、暗号化部により暗号化された分割プログラムを復号化する復号化部をバッテリ制御装置1に備え、EPS制御装置2a又はモータ制御装置2bから暗号化された分割プログラムを受信した際に、復号化部により分割プログラムを復号化するようにしても良い。あるいは、EPS制御装置2a及びモータ制御装置2bに復号化部を備え、それらに保存された暗号化された分割プログラムを復号化部により復号化した後、バッテリ制御装置1に送信するようにしても良い。すなわち、第2種ノードに暗号化部と復号化部を備えても良い。
上記のような暗号化部と復号化部を備えることにより、CANネットワーク6で第三者に解読される危険性、又はEPS制御装置2a及びモータ制御装置2bに保存時に第三者に解読される危険性を低減することができ、プログラム書き換えを安全に実施することが可能となる。
以上のように、本実施の形態1によるプログラム書き換システムでは、テスタ3からバッテリ制御装置1へプログラム書き換え実施を通知し、バッテリ制御装置1がバッテリ10の制御に関わる通常の処理を実施していた場合に、テスタ3は、バッテリ制御プログラムの書き換え用プログラムを他の分割プログラムと部分的に重複した内容を含む形に分割して分割プログラムを作成し、EPS制御装置2a及びモータ制御装置2bそれぞれに送信する。
その後、バッテリ制御装置1がプログラム書き換え実施可能となった時点で、EPS制御装置2aとモータ制御装置2bは、自身が保存する分割プログラムをそれぞれバッテリ制御装置1に送信し、バッテリ制御装置1は、これらを受信する度に、受信した分割プログラムに該当するバッテリ制御プログラムの部分を既に書き換え済みであれば、受信した内容と書き換えられた内容を比較することで検証し、未だ書き換えられていなければ書き換えるものである。
このようなプログラム書き換えシステム及び方法によれば、バッテリ制御装置1が通常の処理を実施していない所定のタイミングでバッテリ制御プログラムを書き換えることができ、且つ、バッテリ制御装置1が通常の処理を実施中であっても、テスタ3は、書き換え用プログラムを他の分割プログラムと部分的に重複した内容を含めるように分割し、EPS制御装置2aとモータ制御装置2bにそれぞれ分割プログラムを送信し、送信が終了すると所定のタイミングを待つことなくCANネットワーク6から切り離すことが可能となるため、効率の良いプログラムの書き換え及び検証を実施することができる。
さらに、書き換え用プログラムを他の分割プログラムと部分的に重複した内容を含めるように分割して複数の第2種ノード(本実施の形態1ではEPS制御装置2aとモータ制御装置2bの2つ)に保存するため、第2種ノードに全ての書き換え用プログラムを保存できるほどの大きな記録容量を設ける必要がなく、一つのノードがコスト高になることを防ぐことができ、全体としてのコストが抑えられる。
なお、重複させる部分は、プログラムの重要性等を考慮した必要な範囲に限ることで保存する記録容量をできる限り減らすことができる。
実施の形態2.
図6は、本発明の実施の形態2によるプログラム書き換えシステム及び方法が適用される車両制御システムの構成を示している。また、図7は、図6に示す車両制御システムにおける第4及び第5種ノードに備えられた記録装置の領域構成を示している。なお、図6において、各制御装置及び充電ステーションは、図6に示す以外の構成物も備えているが、本実施の形態2に直接関係しないものについては図示を省略し、上記実施の形態1(図1参照。)において説明したものについては説明を省略する。
本実施の形態2による車両制御システムは、上記実施の形態1による車両制御システムのテスタ3(第3種ノード)を含まず、第4種ノードである車載充電器制御装置4と、第5種ノードである充電ステーション5を含む構成を有する。車載充電器制御装置4は、第1のネットワークであるCANネットワーク6と第2のネットワークである電力線ネットワーク7aに接続され、CANネットワーク6を介して第1種ノードであるバッテリ制御装置1、及び第2種ノードであるEPS制御装置2a及びモータ制御装置2bと互いに通信可能である。
また、充電ステーション5は、車載充電器40と常時接続されているわけではなく、バッテリ116の充電時等、必要に応じて随時、車載充電器40に電力線7で接続される。それと同時に充電ステーション5と車載充電器制御装置4が電力線7で接続され、充電ステーション5と車載充電器制御装置4との間に、車載充電器40を介して電力線7を使った電力線ネットワーク7aが確立される。これにより、車載充電器制御装置4と充電ステーション5は、電力線ネットワーク7aを介して互いに通信可能となる。
まず、充電ステーション5の構成と機能について簡単に説明する。マイコン51は、充電ステーション5の動作に関わる各種処理を実施する。電力線ネットワーク用データ送受信部52は、電力線ネットワーク7aを介して、電力線7に接続された車載充電器制御装置4とデータを送受信する。また、記録装置53は、バッテリ制御プログラムの書き換え用プログラムを保存する第5の記録領域を有する。
記録装置53の領域構成について、図7(b)を用いて説明する。記録装置53は、バッテリ制御プログラムの書き換えプログラムを保存する第5の記録領域であるバッテリ制御プログラム記録領域531を備えている。バッテリ制御プログラム記録領域531に保存された書き換え用プログラムは、電力線ネットワーク7aを介して車載充電器制御装置4に送信される。
次に、車載充電器制御装置4の構成と機能について簡単に説明する。マイコン41は、車載充電器40の動作に関わる各種処理を実施する。データ送受信部42は、CANネットワーク6を介して、接続された他の制御装置(バッテリ制御装置1、EPS制御装置2a、及びモータ制御装置2bを含む)とデータを送受信する。また、記録装置43は、第4の記録領域であるバッテリ制御プログラム一時記録領域433を有する。
記録装置43の領域構成について、図7(a)を用いて説明する。記録装置43は、車載充電器40の制御内容を決定する車載充電器制御プログラムを保存する車載充電器制御プログラム記録領域431と、車載充電器40の制御に関わるデータ等を保存する車載充電器制御プログラム用記録領域(データ用)432と、充電ステーション5から受信した書き換え用プログラムを一時的に保存するバッファ領域であるバッテリ制御プログラム一時記録領域433を備えている。なお、バッテリ制御プログラム一時記録領域433は、バッテリ制御プログラム全てを保存する容量を持つ必要はなく、記録装置43の空き領域等を割り当てることが出来る。
また、第2のプログラム分割部であるプログラム分割部44は、バッテリ制御プログラム一時記録領域433に保存された書き換え用プログラムが一定量になる毎に他の分割プログラムと部分的に同じ内容が重複するように該書き換え用プログラムを分割し、分割プログラムを作成する。プログラム分割部44により作成された分割プログラムは、それぞれCANネットワーク6を介してEPS制御装置2a及びモータ制御装置2bに送信される。
また、第3の状態検出部である第1種ノード状態検出部45は、バッテリ制御装置1がプログラムを書き換え可能な状態であるか否か、あるいはプログラムの全ての領域が書き換えられているか否か等の状態を検出する。第1種ノード状態検出部45により書き換え可能であることが検出された場合は、CANネットワーク6を介してEPS制御装置2a及びモータ制御装置2bに通知し、通知を受けたEPS制御装置2a及びモータ制御装置2bは、自身が保存する分割プログラムをバッテリ制御装置1に送信する。電力線ネットワーク用データ送受信部46は、電力線ネットワーク7aを介して、電力線7に接続された充電ステーション5とデータを送受信する。
次に、本実施の形態2によるプログラム書き換えシステムの各ノードにおける処理の流れについて、図8〜図10のフローチャートを用いて説明する。ただし、第2種ノードであるEPS制御装置2a及びモータ制御装置2bの処理の流れは、図4(a)で説明した上記実施の形態1と同じであるため説明を省略する。
図8は、第5種ノードである充電ステーション5におけるプログラム書き換えに関する処理の流れを示している。充電ステーション5では、プログラム書き換え対象であるバッテリ制御装置1への書き換え指示と、書き換え用プログラムの送信処理を実施する。図8は、書き換え指示を送信後の処理フローを示している。
まず、ステップ801(S801)において、電力線ネットワーク用データ送受信部52により、バッテリ制御プログラムの書き換え用プログラムを、電力線ネットワーク7aを介して車載充電器制御装置4へ送信し、ステップ802(S802)に進む。S802では、全ての書き換え用プログラムが送信されたかどうかを判断する。送信されていない場合(NO)はS801へ進み、全て送信している場合(YES)には、処理を終了する。
次に、第4種ノードである車載充電器制御装置4におけるプログラム書き換えに関する処理の流れについて、図9を用いて説明する。車載充電器制御装置4では、車載充電器40の制御に関わる通常の処理と、バッテリ制御装置1のプログラム書き換えに関する処理が実施される。プログラム書き換えに関する処理は、充電ステーション5から書き換え実施の通知があった場合に実施されるが、通常の処理が実施されている時には、書き換えに関する処理は実施しない。図9(a)は、充電ステーション5からの書き換え実施の通知を受信後の処理フローを示している。
まず、ステップ901(S901)において、第1種ノード状態検出部45により、バッテリ制御装置1がバッテリ制御プログラムを書き換えることができる状態か否かを判断する。具体的には、バッテリ制御装置1がバッテリ10の制御に関わる通常の処理を実施しているか否かを判断する。通常の処理が実施されていない場合には、ステップ909(S909)へ進み、通常の書き換え処理を実施する。なお、S909の通常の書き換え処理とは、充電ステーション5から車載充電器制御装置4によるデータ転送を経由して、バッテリ制御装置1のバッテリ制御プログラムを書き換える従来の書き換え方法によるものであり、本発明の特徴である書き換え用プログラムを分割して行うものではないため、説明を省略する。
S901において、バッテリ制御装置1が通常の処理を実施している場合、プログラム書き換え不可であるため(NO)、ステップ902(S902)へ進み、データ送受信部42によりCANネットワーク6を介して関連ノードへ分割書き換えを実施することを連絡する。さらに、ステップ903(S903)において、充電ステーションから書き換え用プログラムを受信し、他の分割プログラムと部分的に重複した内容を含めるように分割して作成した分割プログラムを第2種ノードに送信する送受信処理を実施する。S903の送受信処理については、図9(b)について後述する。
次に、ステップ904(S904)において、第1種ノード状態検出部45は、バッテリ制御装置1が通常の処理をしているか否かにより、プログラムを書き換えることができる状態か再び判断する。書き換え可能な場合(YES)は、ステップ905(S905)へ進み、書き換え不可の場合(NO)は書き換え可能となるまで待機する。
S905では、さらに、第1種ノード状態検出部45により、バッテリ制御装置1のバッテリ制御プログラム記録領域132に保存されたバッテリ制御プログラムの全ての領域(部分)が書き換えられているか否かを判断する。全て書き換えられている場合(YES)は、ステップ908(S908)へ進み、データ送受信部42によりバッテリ制御装置1へ全ての書き換えが終了したことを送信し、処理を終了する。
また、S905において、全て書き換えられていない場合(NO)は、ステップ906(S906)へ進み、第1種ノード状態検出部45は、バッテリ制御装置1がプログラム書き換え中であるか否かを判断する。バッテリ制御プログラム記録領域132のいずれの部分も書き換え中でなければ(NO)、ステップ907(S907)へ進み、書き換え中であれば(YES)、書き換えが終了するまで待機する。
S907において、第1種ノード状態検出部45は、バッテリ制御プログラム記録領域132に保存されているバッテリ制御プログラムの書き換えが終了していない部分を検出し、その部分に該当する分割プログラムを保存している第2種ノードに対し、データ送受信部42により分割プログラムの送信を指示する。
次に、図9(b)を用い、S903の送受信処理の詳細について説明する。ステップ911(S911)において、充電ステーション5から送信されたバッテリ制御プログラムの書き換え用プログラムを、一定量受信しているか否か判断する。書き換え用プログラムは容量が大きいため、全て受信するまでに或る程度の時間を必要とし、受信したプログラムは適時、バッテリ制御プログラム一時記録領域433に保存される。S911において、一定量受信している場合(YES)は、ステップ912(S912)へ進み、一定量受信していない場合(NO)は、一定量受信するまで待機する。
S912において、プログラム分割部44は、バッテリ制御プログラム一時記録領域433に保存されているバッテリ制御プログラムを他の分割プログラムと部分的に重複した内容が含まれるように分割し、分割プログラムを作成する。続いてステップ913(S913)において、データ送受信部42により、分割プログラムを第2種ノード(ここではEPS制御装置2a又はモータ制御装置2b)へ送信する。さらに、ステップ914(S914)では、充電ステーション5から書き換え用プログラムを全て受信したか否かを判断する。受信していない場合(NO)、S911へ進み、受信している場合(YES)は処理を終了する。
次に、第1種ノードであるバッテリ制御装置1におけるプログラム書き換えに関する処理の流れについて、図10を用いて説明する。なお、バッテリ制御装置1では、バッテリ10の制御に関わる通常の処理と、バッテリ制御プログラムの書き換えに関する処理が実施される。プログラム書き換えに関する処理は、充電ステーション5からの書き換え指示があった場合に実施され、図10は、充電ステーション5から書き換え実施の通知を受信後の処理フローを示している。
まず、ステップ101(S101)において、車載充電器制御装置4から分割書き換え指示(図9のS902)があったか否かを判断する。分割書き換え指示があった場合(YES)は、ステップ102(S102)へ進み、指示がなかった場合(NO)は、ステップ108(S108)において通常のプログラム書き換え処理を実施する。なお、S108の通常の書き換え処理とは、充電ステーション5から車載充電器制御装置4でのデータ転送を経由して、バッテリ制御装置1のバッテリ制御プログラムを書き換える従来の書き換え方法によるものであり、本発明の特徴である書き換え用プログラムを分割して行うものではないため、説明を省略する。S102において、データ送受信部12は、分割プログラムの受信を待ち、受信した場合(YES)はステップ103(S103)へ進む。S102において受信しない場合(NO)は、受信するまで待機する。
S103では、受信した分割プログラムに該当するバッテリ制御プログラムの部分が既に別の受信した分割プログラムにおいて書き換えられているかどうかを確認する。書き換えられていれば(YES)、ステップ105(S105)へ進み、書き換えられていなければ(NO)、ステップ104(S104)へ進む。S104において、プログラム書き換え部14は、プログラム書き換えプログラムを用い、受信した分割プログラムに該当するバッテリ制御プログラムの部分を書き換え、ステップ107(S107)へ進む。S105において、プログラム検証部9は、プログラム検証プログラムを用い、受信した分割プログラムに該当するバッテリ制御プログラムの部分を検証し、ステップ106(S106)へ進む。S106では、検証結果に基づき問題発生の有無を判断し、問題が発生していれば(YES)、書き換え処理を終了し、問題が発生していなければ、ステップS107へ進む。さらに、S107において、バッテリ制御プログラムを全ての部分を書き換えたか否かを、車載充電器制御装置4からの通知(図9のS908)により判断する。通知がない場合(NO)は、S102へ進み、他の分割プログラムの受信を待ち、通知があった場合(YES)は処理を終了する。
以上、図8〜図10(及び図4(a))のフローチャートにより、各ノードのプログラム書き換えに関する処理の流れについて説明したが、次に、これら全てのノードの処理の流れを図11のタイムチャートに沿って説明する。図11において、縦軸は各ノード、横軸は時間を示している。なお、図11では、充電ステーション5と車載充電器制御装置4は、既に車載充電器40を介して電力線ネットワーク7aで接続されており、EPS制御装置2a及びモータ制御装置2bは、それぞれ通常の処理を実施していないものとする。
t30において、バッテリ制御装置1は、バッテリ10の制御に関わる通常の処理を実施している(処理10)。t31において、充電ステーション5は、電力線ネットワーク用データ送受信部52により、電力線ネットワーク7aを介して車載充電器制御装置4へバッテリ制御装置1のプログラム書き換えを実施することを通知する(処理60)。
プログラム書き換え実施の通知を受信した車載充電器制御装置4は、第1種ノード状態検出部45により、バッテリ制御装置1がプログラム書き換え可能か否かを判断する(処理50)。ここでは、通常の処理を実施しているため書き換え不可と判断する。
続いて、t32において、車載充電器制御装置4は、バッテリ制御装置1、EPS制御装置2a、及びモータ制御装置2bに対して、書き換え不可であるため分割書き換えを実施することを通知する(処理51)。バッテリ制御装置1、EPS制御装置2a、及びモータ制御装置2bは、分割書き換え実施の通知をそれぞれ受信する(処理17、処理20、処理30)。
t33において、バッテリ制御装置1は、通常の処理を再開する(処理10)。続いてt34において、充電ステーション5は、電力線ネットワーク7aを介して、自身が保存するバッテリ制御プログラムの書き換え用プログラムを車載充電器制御装置4へ送信開始する(処理61)。車載充電器制御装置4は、受信した書き換え用プログラムを適時、バッテリ制御プログラム一時記録領域433に保存する(処理52)。
t35において、車載充電器制御装置4は、受信した書き換え用プログラムが一定量を超えると、プログラム分割部44により、バッテリ制御プログラム一時記録領域433に保存されている書き換え用プログラムから、他の分割プログラム(ここでは分割プログラムB)と部分的に重複した内容(この部分を分割プログラムCとする)を含めるように分割プログラムAを作成する。さらに、作成した分割プログラムAをデータ送受信部42によりEPS制御装置2aへ送信する(処理53)。EPS制御装置2aは、受信した分割プログラムAを分割バッテリ制御プログラム記録領域233aへ保存する(処理21)。
次に、t36において、受信した書き換え用プログラムが再び一定量を超えると、車載充電器制御装置4は、プログラム分割部44により、バッテリ制御プログラム一時記録領域433に記録されている書き換え用バッテリ制御プログラムから、他の分割プログラム(ここでは分割プログラムA)と部分的に重複した内容(この部分を分割プログラムCとする)が重複するように分割プログラムBを作成する。さらに、作成した分割プログラムBをデータ送受信部42によりモータ制御装置2bへ送信する(処理54)。モータ制御装置2bは、受信した分割プログラムBを分割バッテリ制御プログラム記録領域233bへ保存する(処理31)。
車載充電器制御装置4が全ての書き換え用プログラムを受信すると、充電ステーション5は、プログラム書き換えに関する処理を終了する。これ以降は、充電ステーション5は車載充電器40と接続している必要はなく、バッテリ制御装置1がプログラム書き換え中であっても取り外し可能である。
t37において、バッテリ制御装置1が通常の処理を終了すると、t38において、車載充電器制御装置4の第1種ノード状態検出部45は、バッテリ制御装置1がプログラムの書き換えが可能な状態であるか否かを判断する。ここでは、通常の処理を実施していないため、書き換え可能であると判断される。
次に、第1種ノード状態検出部45は、記録装置13のバッテリ制御プログラム記録領域132に保存されているバッテリ制御プログラムの全ての領域(部分)が書き換えられているか否かを判断する。ここでは、書き換えられていないと判断される。
さらに、第1種ノード状態検出部45は、バッテリ制御装置1のバッテリ制御プログラム記録領域132が書き換え中か否かを判断する。ここでは、書き換え中でないため、データ送受信部42により、EPS制御装置2aへ分割プログラムの送信を指示する(処理55)。EPS制御装置2aのデータ送受信部22aは、分割プログラムの送信指示を受信する(処理22)。
続いてt39において、EPS制御装置2aの送信可否判断部24aは、バッテリ制御装置1へ分割プログラムを送信すると判断し、記録装置23aの分割バッテリ制御プログラム記録領域233aに保存している分割プログラムAを、データ送受信部22aにより順次送信する(処理23)。分割プログラムAを全て送信し終わるとEPS制御装置2aは処理を終了する。一方、分割プログラムAを受信したバッテリ制御装置1は、受信した分割プログラムAの該当する書き換え先が既に書き換えられているか否かを判断する。ここでは、未だ書き換えられていないので、プログラム書き換え部14により、バッテリ制御プログラムの分割プログラムAに該当する部分を書き換える。順次受信する分割プログラムにおいて、未だ書き換えられていないので、分割プログラムAに該当する部分を順次書き換えることとなる(処理14)。
さらに、t40において、車載充電器制御装置4の第1種ノード状態検出部45は、バッテリ制御装置1がプログラムの書き換えが可能な状態に在るか否かを判断する。ここでは、通常の処理を実施していないため、書き換え可能であると判断される。次に、第1種ノード状態検出部45は、記録装置13のバッテリ制御プログラム記録領域132に保存されているバッテリ制御プログラムの全ての領域(部分)が書き換えられているか否かを判断する。ここでは、書き換えられていないと判断される。
さらに、第1種ノード状態検出部45は、バッテリ制御装置1のバッテリ制御プログラム記録領域132が書き換え中か否かを判断する。ここでは、書き換え中でないため、データ送受信部42により、モータ制御装置2bへ分割プログラムの送信を指示する(処理56)。モータ制御装置2bのデータ送受信部22bは、分割プログラムの送信指示を受信する(処理32)。
続いてt41において、モータ制御装置2bの送信可否判断部24bは、バッテリ制御装置1へ分割プログラムを送信すると判断し、記録装置23bの分割バッテリ制御プログラム記録領域233bに記録している分割プログラムBを、データ送受信部22bにより順次送信する(処理33)。分割プログラムBを全て送信し終わるとモータ制御装置2bは処理を終了する。
一方、分割プログラムBを受信したバッテリ制御装置1は、受信した分割プログラムBの該当する書き換え先が既に書き換えられているか否かを判断する。ここでは、分割プログラムCの部分は既に書き換えられているので、受信した分割プログラムBのうち分割プログラムCを除く部分はプログラム書き換え部14により、バッテリ制御プログラムの該当する部分を書き換える。一方で分割プログラムCに該当する部分は、プログラム検証部9により既に書き換えられている内容と、受信した分割プログラムCの内容が同一であるか否かを検証する(処理16)。ここでは、検証結果に問題はないとするが、仮に検証の段階で問題(書き換え済みの内容との不一致)が発生した場合には、書き換えの処理を全て終了する。
その後、t42において、車載充電器制御装置4の第1種ノード状態検出部45は、バッテリ制御プログラムの全ての書き換えが終了しているか否かを判断する。ここでは、全て書き換えられているため、データ送受信部42によりバッテリ制御装置1へプログラム書き換えが終了したことを通知し、処理を終了する(処理57)。この通知を受信したバッテリ制御装置1は、プログラム書き換えに関する処理を終了する(処理18)。
以上のように、本実施の形態2によるプログラム書き換えシステムでは、充電ステーション5から車載充電器制御装置4にバッテリ制御装置1のプログラム書き換え実施を通知した際に、バッテリ制御装置1がバッテリ10の制御に関わる通常の処理を実施していた場合には、充電ステーション5は、バッテリ制御プログラムの書き換え用プログラムを車載充電器制御装置4に送信し、これを受信した車載充電器制御装置4は、一定量受信(保存)すると他の分割プログラムと部分的に重複した内容(この部分を分割プログラムCとする)を含めるように分割プログラムAを作成してEPS制御装置2aに送信し、再度一定量保存すると重複した内容(この部分は、図17に示した分割プログラムCである。)を含めた分割プログラムBを作成してモータ制御装置2bに送信する。
その後、バッテリ制御装置1がプログラム書き換え可能となった時点で、EPS制御装置2aは分割プログラムAを、モータ制御装置2bは分割プログラムBを、それぞれバッテリ制御装置1に送信し、バッテリ制御装置1は、これらを受信する度に受信した分割プログラムに該当するバッテリ制御プログラムの部分を既に書き換え済みであれば、検証し、未だ書き換えられていなければ、書き換えるものである。
このようなプログラム書き換えシステムによれば、上記実施の形態1と同様に、バッテリ制御装置1が通常の処理を実施していない所定のタイミングでバッテリ制御プログラムを書き換え及び検証を実行することができる。これとともに、バッテリ制御装置1が通常の処理を実施中であっても、充電ステーション5は、書き換え用プログラムを車載充電器制御装置4に送信し、送信が終了すると所定のタイミングを待つことなく電力線ネットワーク7aから切り離すことが可能となるため、効率の良いプログラムの書き換え及び検証を実施することができる。
さらに、本実施の形態2では、車載充電器制御装置4は、書き換え用プログラムを一定量受信(保存)する毎に他の分割プログラムと部分的に重複した内容を含めるように分割プログラムを作成し、その都度、第2種ノードであるEPS制御装置2aとモータ制御装置2bに送信するため、車載充電器制御装置4に全ての書き換え用プログラムを保存できるほどの大きな記録容量を設ける必要はない。また、上記実施の形態1と同様に、第2種ノードにも大きな記録容量を設ける必要がなく、一つのノードがコスト高になることを防ぐことができ、全体としてのコストが抑えられる。
なお、重複させる部分は、プログラムの重要性等を考慮した必要な範囲に限ることで保存する記録容量をできる限り減らすことができる。
実施の形態3.
図12は、本発明の実施の形態3によるプログラム書き換えシステム及び方法が適用される車両制御システムの構成を示している。なお、図12において、各制御装置及び充電ステーションは、図12に示す以外の構成物も備えているが、本実施の形態3に直接関係しないものについては図示を省略する。
上記実施の形態2では、第4種ノードである車載充電器制御装置4に第1種ノード状態検出部45を備えていたが、本実施の形態3では、第2種ノードであるEPS制御装置2aとモータ制御装置2bに、それぞれ第1種ノード状態検出部25a、25bを備えたものである。なお、それ以外の構成及び機能については上記実施の形態2と同様であるため説明を省略する。
EPS制御装置2aとモータ制御装置2bに備えられた第1種ノード状態検出部25a、25bは、上記実施の形態2において車載充電器制御装置4に備えられた第1種ノード状態検出部45(図6参照)と同様に、バッテリ制御装置1がバッテリ制御プログラムを書き換え可能な状態であるか否か、あるいはバッテリ制御プログラムが全て書き換えられているか否か等の状態を検出するものである。
本実施の形態3によるプログラム書き換えシステムの各ノードにおける処理の流れについて、図13及び図14のフローチャートを用いて説明する。ただし、第1種ノードであるバッテリ制御装置1と第5種ノードである充電ステーション5の処理の流れは、上記実施の形態2と同じであるため説明を省略する(図8、図10参照)。
図13は、第2種ノードであるEPS制御装置2a及びモータ制御装置2bにおけるプログラム書き換えに関する処理の流れを示している。EPS制御装置2a(又はモータ制御装置2b)では、EPS20a(又は駆動用モータ20b)の制御に関わる通常の処理と、バッテリ制御装置1のプログラム書き換えに関する処理が実施される。プログラム書き換えに関する処理は、充電ステーション5から書き換え実施の通知があった場合に実施されるが、通常の処理が実施されている時には書き換えに関する処理は実施しない。なお、EPS制御装置2a及びモータ制御装置2bにおけるプログラム書き換えに関する処理は同じであるので、ここではEPS制御装置2aを例に挙げて説明する。
EPS制御装置2aは、充電ステーション5から車載充電器制御装置4を介して書き換え実施の通知を受信後、ステップ131(S131)において、第1種ノード状態検出部25aにより、バッテリ制御装置1がバッテリ制御プログラムを書き換えることができる状態か否かを判断する。具体的には、バッテリ制御装置1がバッテリ10の制御に関する通常の処理を実施しているか否かを判断する。通常の処理が実施されていない場合には通常のプログラム書き換え処理が可能であるため処理を終了する。
S131において、バッテリ制御装置1が通常の処理を実施している場合、プログラム書き換え不可であるため(NO)、ステップ132(S132)へ進む。S132では、データ送受信部22aにより関連ノードへ分割書き換えを実施することを通知し、ステップ133(S133)へ進む。S133において、車載充電器制御装置4から分割プログラムを受信した場合(YES)、ステップ134(S134)へ進む。S133において、分割プログラムを受信していない場合(NO)、受信するまで待機する。
続いてS134では、データ送受信部22aにより受信した分割プログラムを、記録装置23aの分割バッテリ制御プログラム記録領域233aへ記録し、ステップ135(S135)へ進む。S135において、第1種ノード状態検出部25aにより、バッテリ制御装置1がバッテリ制御プログラムを書き換えることができる状態か否かを、再度判断する。書き換え可能な場合(YES)はステップ136(S136)へ進み、書き換え不可の場合(NO)は、書き換え可能になるまで待機する。
S136では、第1種ノード状態検出部25aにより、バッテリ制御装置1がプログラム書き換え中であるか否かを判断する。バッテリ制御装置1のバッテリ制御プログラム記録領域132のいずれの部分も書き換え中でなければ(NO)、ステップ137(S137)へ進み、書き換え中であれば(YES)、書き換えが終了するまで待機する。
続いてS137において、送信可否判断部24aは、分割プログラムを送信すると判断し、データ送受信部22aにより、記録装置23aの分割バッテリ制御プログラム記録領域233aに記録している分割プログラムをバッテリ制御装置1へ順次送信し、全て送信し終わるとステップ138(S138)へ進む。
S138では、第1種ノード状態検出部25aにより、バッテリ制御装置1のバッテリ制御プログラムが全て書き換えられているか否かを判断する。全て書き換えられている場合(YES)は、ステップ139(S139)へ進み、データ送受信部22aにより、関連ノードへ全ての書き換えが終了したことを連絡し、処理を終了する。全て書き換えられていない場合(NO)も、自身が保存する分割プログラムを送信済みのため、処理を終了する。
次に、第4種ノードである車載充電器制御装置4におけるプログラム書き換えに関する処理の流れについて、図14を用いて説明する。車載充電器制御装置4では、車載充電器40の制御に関わる通常の処理と、バッテリ制御装置1のプログラム書き換えに関する処理が実施される。プログラム書き換えに関する処理は、充電ステーション5から書き換え実施の通知があった場合に実施されるが、通常の処理が実施されている時には、プログラム書き換えに関する処理は実施しない。図14は、充電ステーション5からの書き換え実施の通知を受信後の処理フローを示している。
まず、ステップ141(S141)において、第2種ノードであるEPS制御装置2a又はモータ制御装置2bから、分割書き換え指示があったか否かを判断する。分割書き換え指示があった場合(YES)は、ステップ142(S142)へ進み、指示がなかった場合(NO)はステップ146(S146)に進み、通常の書き換え処理を実施する。なお、S146の通常の書き換え処理とは、充電ステーション5から車載充電器制御装置4でのデータ転送を経由して、バッテリ制御装置1のバッテリ制御プログラムを書き換える従来の書き換え方法によるものであり、本発明の特徴である書き換え用プログラムを分割して行うものではないため、説明を省略する。
S142では、第5種ノードである充電ステーション5から送信される書き換え用バッテリ制御プログラムを、一定量受信しているか否かを判断する。充電ステーション5から送信される書き換え用バッテリ制御プログラムは容量が大きいため、全て受信するまでには或る程度の時間を要する。受信した書き換え用バッテリ制御プログラムは適時、バッテリ制御プログラム一時記録領域433に保存される。S142において、一定量受信している場合(YES)には、ステップ143(S143)へ進み、一定量受信していない場合(NO)は、一定量受信するまで待機する。
続いて、S143において、プログラム分割部44は、バッテリ制御プログラム一時記録領域433に記録されているバッテリ制御プログラムを他の分割プログラムと部分的に重複した内容を含めるように分割し、分割プログラムを作成する。続いてステップ144(S144)において、データ送受信部42により、分割プログラムを、それぞれ第2種ノード(ここではEPS制御装置2a又はモータ制御装置2b)へ送信する。さらに、ステップ145(S145)では、充電ステーション5から書き換え用バッテリ制御プログラムを全て受信したか否かを判断する。受信していない場合(NO)、S142へ進み、受信している場合(YES)には処理を終了する。
以上、図8、図10、図13、及び図14のフローチャートにより、各ノードのプログラム書き換えに関する処理の流れについて説明したが、次に、これら全てのノードの処理の流れを図15のタイムチャートに沿って説明する。図15において、縦軸は各ノード、横軸は時間を示している。
まず、図15では、充電ステーション5と車載充電器制御装置4は、既に車載充電器40を介して電力線ネットワーク7aで接続され、EPS制御装置2a及びモータ制御装置2bは、それぞれ通常動作は実施していないものとする。
その後、t50において、バッテリ制御装置1は、通常処理であるバッテリ10の制御を実施している(処理10)。続いて、t51において、充電ステーション5は、電力線ネットワーク用データ送受信部52により、電力線ネットワーク7aを介して車載充電器制御装置4へバッテリ制御装置1のバッテリ制御プログラムの書き換えを実施することを通知する(処理60)。車載充電器制御装置4は、バッテリ制御プログラムの書き換えを実施することを、電力線ネットワーク7aを介して受信する(処理55)。
続いて、t52において、車載充電器制御装置4は、バッテリ制御装置1、EPS制御装置2a、及びモータ制御装置2bに対して、バッテリ制御プログラムの書き換えを実施することを通知する(処理56)。バッテリ制御装置1、EPS制御装置2a、及びモータ制御装置2bはそれぞれ、書き換えを実施することを受信する(処理80、処理25、処理35)。
次に、t53において、EPS制御装置2aは、第1種ノード状態検出部25aにより、バッテリ制御装置1がプログラムの書き換えが可能な状態に在るか否かを判断する。ここでは、通常の処理(処理60)を実施しているため、書き換え不可であると判断し、バッテリ制御装置1と車載充電器制御装置4に対して、書き換え実施不可であるため分割書き換えを実施することを通知する(処理26)。バッテリ制御装置1と車載充電器制御装置4は、分割書き換え実施の通知をそれぞれ受信する(処理81、処理57)。
続いて、t54において、モータ制御装置2bは、第1種ノード状態検出部25bにより、バッテリ制御装置1がプログラムの書き換えが可能な状態であるかどうかを判断する。ここでは、通常の処理を実施しているため、書き換え不可であると判断し、バッテリ制御装置1と車載充電器制御装置4に対して、書き換え不可であるため分割書き換えを実施することを通知する(処理36)。バッテリ制御装置1と車載充電器制御装置4は、分割書き換え実施の通知をそれぞれ受信する(処理82、処理58)。
t55において、バッテリ制御装置1は通常の処理を再開する(処理10)。続いてt56において、充電ステーション5は、電力線ネットワーク7aを介して、自身が保存している書き換え用プログラムの車載充電器制御装置4への送信を開始する(処理61)。車載充電器制御装置4は、受信した書き換え用プログラムを適時、バッテリ制御プログラム一時記録領域433に保存する(処理52)。
t57において、車載充電器制御装置4は、受信した書き換え用プログラムが一定量を超えると、プログラム分割部44により、バッテリ制御プログラム一時記録領域433に保存されている書き換え用プログラムから、他の分割プログラム(ここでは分割プログラムB)と部分的に重複した内容(この部分を分割プログラムCとする。)を含めるように分割プログラムAを作成する。続いて、作成した分割プログラムAをデータ送受信部42によりEPS制御装置2aへ送信する(処理53)。EPS制御装置2aは、受信した分割プログラムAを分割バッテリ制御プログラム記録領域233aへ保存する(処理21)。
また、t58において、車載充電器制御装置4が受信した書き換え用プログラムが再び一定量を超えると、車載充電器制御装置4は、プログラム分割部44により、バッテリ制御プログラム一時記録領域433に記録されている書き換え用プログラムから、他の分割プログラム(ここでは分割プログラムA)と部分的に重複した内容(この部分を、図17に示すように、分割プログラムCとする)を含めるように分割プログラムBを作成する。続いて、作成した分割プログラムBをデータ送受信部42によりモータ制御装置2bへ送信する(処理54)。モータ制御装置2bは、受信した分割プログラムBを分割バッテリ制御プログラム記録領域233bへ記録する(処理31)。
車載充電器制御装置4が全ての書き換え用プログラムを受信すると、充電ステーション5は、プログラム書き換えに関する処理を終了する。これ以降は、充電ステーション5は車載充電器40と接続していなくても良く、バッテリ制御装置1がプログラム書き換え中であっても取り外し可能である。
t59において、バッテリ制御装置1が通常の処理を終了すると、t60において、EPS制御装置2aの第1種ノード状態検出部25aは、バッテリ制御装置1がプログラムの書き換えが可能な状態であるか否かを判断する。ここでは、通常の処理を実施していないため、書き換え可能であると判断される。次に、第1種ノード状態検出部25aは、バッテリ制御プログラムが書き換え中であるか否かを判断する。ここでは、書き換え中でないと判断される(処理27)。
続いてt61において、EPS制御装置2aの送信可否判断部24aは、バッテリ制御装置1へ分割プログラムを送信すると判断し、記録装置23aの分割バッテリ制御プログラム記録領域233aに保存している分割プログラムAを、データ送受信部22aにより順次送信する(処理23)。一方、分割プログラムAを受信したバッテリ制御装置1は、受信した分割プログラムAの該当する書き換え先が既に書き換えられているか否かを判断する。ここでは、未だ書き換えられていないので、プログラム書き換え部14により、バッテリ制御プログラムの分割プログラムAに該当する部分を書き換える。順次受信する分割プログラムにおいて、未だ書き換えられていないので、分割プログラムAに該当する部分を順次書き換えることとなる(処理14)。
次に、t62において、EPS制御装置2aの第1種ノード状態検出部25aは、バッテリ制御装置1のバッテリ制御プログラムが全て書き換えられているか否かを判断する。ここでは、書き換えられていないため、処理を終了する(処理28)。
t63において、モータ制御装置2bの第1種ノード状態検出部25bは、バッテリ制御装置1がプログラムの書き換えが可能な状態であるか否かを判断する。ここでは、通常の処理を実施していないため、書き換え可能であると判断される。次に、第1種ノード状態検出部25bは、バッテリ制御プログラムが書き換え中であるか否かを判断する。ここでは、書き換え中でないと判断される(処理37)。
続いてt64において、モータ制御装置2bの送信可否判断部24bは、バッテリ制御装置1へ分割プログラムを送信すると判断し、記録装置23bの分割バッテリ制御プログラム記録領域233bに保存している分割プログラムBを、データ送受信部22bにより順次送信する(処理33)。
一方、分割プログラムBを受信したバッテリ制御装置1は、受信した分割プログラムBの該当する書き換え先が既に書き換えられているか否かを判断する。ここでは、分割プログラムCの部分は既に書き換えられているので、受信した分割プログラムBのうち分割プログラムCを除く部分は、プログラム書き換え部14により、バッテリ制御プログラムの該当する部分を書き換える。一方で分割プログラムCに該当する部分は、プログラム検証部9により既に書き換えられている内容と、受信した分割プログラムCの内容が同一であるか否かを検証する(処理16)。ここでは、検証結果に問題は無いとするが、仮に検証の段階で問題(書き換え済みの内容との不一致)が発生した場合には、書き換えの処理を全て終了する。
その後、t65において、モータ制御装置2bの第1種ノード状態検出部25bは、バッテリ制御プログラムが全て書き換えられているか否かを判断する。ここでは、全て書き換えられているため、データ送受信部22bによりバッテリ制御装置1へプログラム書き換えが終了したことを通知し、処理を終了する(処理38)。これを受信したバッテリ制御装置1は、バッテリ制御プログラムの全ての書き換えが終了したと判断し、書き換えに関する処理を終了する(処理83)。
以上のように、本実施の形態3によるプログラム書き換え方法(システム)によれば、上記実施の形態2と同様に、プログラムの書き換え及び検証を効率良く実施することができると共に、一つのノードがコスト高になることを防ぐことができるため、全体としてのコストが抑えられる。
なお、上記実施の形態2及び本実施の形態3において、車載充電器制御装置4に分割プログラムを暗号化する暗号化部を設け、この暗号化部により暗号化した分割プログラムをEPS制御装置2aとモータ制御装置2bに送信し、暗号化された分割プログラムをEPS制御装置2aとモータ制御装置2bに保存するようにしても良い。あるいは、EPS制御装置2a及びモータ制御装置2bに暗号化部を備え、車載充電器制御装置4から受信した分割プログラムを暗号化部により暗号化してから保存するようにしても良い。
また、暗号化部により暗号化された分割プログラムを復号化する復号化部をバッテリ制御装置1に備え、EPS制御装置2a又はモータ制御装置2bから暗号化された分割プログラムを受信した際に、復号化部により分割プログラムを復号化するようにしても良い。あるいは、EPS制御装置2a及びモータ制御装置2bに復号化部を備え、それらに保存された暗号化された分割プログラムを復号化部により復号化した後、バッテリ制御装置1に送信するようにしても良い。すなわち、第2種ノードに暗号化部と復号化部を備えても良い。
上記のような暗号化部と復号化部を備えることにより、CANネットワーク6で第三者に解読される危険性、又はEPS制御装置2a及びモータ制御装置2bに保存時に第三者に解読される危険性を低減することができ、プログラム書き換えを安全に実施することが可能となる。
また、上記実施の形態1〜実施の形態3では、2つの第2種ノードを備えた車両制御システムを例に挙げて説明したが、第2種ノードの数はこれに限定されるものではない。第2種ノードの数を増やすことにより、各分割プログラムの容量を低減することができ、各第2種ノードに必要となる記録容量を抑えることができる。また、第2種ノードを3つ以上にし、部分的に重複した内容の分割プログラムを奇数個作成し、第2種ノードに保存させることで、検証方法として多数決を取ることができる。また、分割プログラムの内容が異なる場合においては、多数となり正しいと看られる分割ブログラム内容に修正することで書き換えの途中で検証による問題検出で終了せずに、書き換えを完遂させることができる。
さらに、第1のネットワークとしてCANネットワーク6を、第2のネットワークとして電力線ネットワーク7を例に挙げて説明したが、ネットワークの種類はこれに限るものではない。
また、上記実施の形態1〜実施の形態3では、第1種ノードのプログラム書き換えが成功することを前提として説明したが、検証結果により問題があり書き換えが失敗した場合や、なんらかの理由で書き換えが失敗した場合に備えて、第1種ノードにタイムアウト時間等を設定しておき、所定時間が経過しても分割プログラムを受信できない場合や書き換えが終了しない場合には、書き換え処理を強制的に終了させるようにしても良い。ただし、書き換え処理を途中で終了させる場合には、別の動作可能な制御プログラムを用意しておく、関連ノードに故障状況を示す一意のコードを記録しておく等の対応策を併せて用意しておく必要がある。
本発明は、ネットワークに接続された複数の制御装置を含むシステム(例えば車両制御システム)におけるプログラムの書き換え方法として利用することができる。
1 バッテリ制御装置(第1種ノード)、2a EPS制御装置(第2種ノード)、2b モータ制御装置(第2種ノード)、3 テスタ(第3種ノード)、4 車載充電器制御装置(第4種ノード)、5 充電ステーション(第5種ノード)、6 CANネットワーク、7 電力線、7a 電力線ネットワーク、8 車両のネットワーク、9 プログラム検証部、10 バッテリ、11、21a、21b、31、41、51 マイコン、12、22a、22b、32、42 CANネットワーク用データ送受信部、13、23a、23b、33、43、53 記録装置、14 プログラム書き換え部、15 状態検出部、16 第1の制御装置、17 統括制御装置、18 第2の制御装置、20a EPS、20b 駆動用モータ、24a、24b 送信可否判断部、25a、25b、45 第1種ノード状態検出部、34、44 プログラム分割部、40 車載充電器、46、52 電力線ネットワーク用データ送受信部。

Claims (21)

  1. 第1のネットワークを介して互いに通信可能に接続された第1種ノードと複数の第2種ノードとを含み、前記第1種ノードの動作を決定するプログラムを書き換えるプログラム書き換えシステムであって、
    前記第1種ノードは、前記プログラムを保存する第1の記録領域と、前記第1の記録領域に保存された前記プログラムを部分的に書き換えるプログラム書き換え部と、前記書き換えたプログラムが同一であるか否かを検証するプログラム検証部とを有し、
    前記第2種ノードの各々は、前記プログラムの書き換え用プログラムの一部分である分割プログラムを、他の第2種ノードに保存される分割プログラムと部分的に重複した内容を含む形で保存する第2の記録領域と、前記第1種ノードへの前記分割プログラムの送信可否を判断する送信可否判断部を有し、
    前記第2種ノードの各々は、前記送信可否判断部が前記第1種ノードへの前記分割プログラムの送信が可能であると判断した場合に、自ノードが保存している前記分割プログラムを前記第1のネットワークを介して前記第1種ノードに送信し、
    前記第1種ノードのプログラム書き換え部は、前記第2種ノードの各々から前記分割プログラムを受信する度に、前記第1の記録領域に保存された前記プログラムの前記分割プログラムに該当する部分を書き換え、前記第1種ノードのプログラム検証部は、前記書き換えた分割プログラム同士が同一であるか否かを前記重複した内容を用いて検証する
    プログラム書き換えシステム。
  2. 前記第1のネットワークに随時接続され、前記第1のネットワークを介して前記第1種ノード及び複数の前記第2種ノードと互いに通信可能な第3種ノードをさらに含み、
    前記第3種ノードは、前記書き換え用プログラムを保存する第3の記録領域と、前記第3の記録領域に保存された前記書き換え用プログラムを他の分割プログラムと部分的に重複した内容を含む形に分割することで前記分割プログラムを作成する第1のプログラム分割部を有し、前記第1のプログラム分割部により作成された前記分割プログラムを、それぞれ前記第1のネットワークを介して前記第2種ノードの各々に送信する
    請求項1記載のプログラム書き換えシステム。
  3. 前記第1のネットワークを介して前記第1種ノード及び複数の前記第2種ノードと互いに通信可能な第4種ノードと、前記第1のネットワークとは別の第2のネットワークに随時接続され、前記第2のネットワークを介して前記第4種ノードと互いに通信可能な第5種ノードとをさらに含み、
    前記第5種ノードは、前記書き換え用プログラムを保存する第5の記録領域を有し、前記第5の記録領域に保存された前記書き換え用プログラムを前記第2のネットワークを介して前記第4種ノードに送信し、
    前記第4種ノードは、前記第5種ノードから受信した前記書き換え用プログラムを保存する第4の記録領域と、前記第4の記録領域に保存された前記書き換え用プログラムが一定量になる毎に該書き換え用プログラムから他の分割プログラムと部分的に重複した内容を含む形に前記分割プログラムを作成する第2のプログラム分割部を有し、前記第2のプログラム分割部により作成された前記分割プログラムを、それぞれ前記第1のネットワークを介して前記第2種ノードの各々に送信する
    請求項1記載のプログラム書き換えシステム。
  4. 前記第1種ノードは、自ノードが前記プログラムを書き換え可能な状態であるか否かを検出する第1の状態検出部を有し、前記第1の状態検出部により書き換え可能であることが検出された場合は、前記第1のネットワークを介して前記第2種ノードに通知し、この通知を受けた前記第2種ノードは、自ノードが保存する前記分割プログラムを前記第1種ノードに送信する
    請求項1又は2記載のプログラム書き換えシステム。
  5. 前記第2種ノードは、前記第1種ノードが前記プログラムを書き換え可能な状態であるか否かを検出する第2の状態検出部を有し、前記第2の状態検出部により書き換え可能であることが検出された場合は、自ノードが保存する前記分割プログラムを前記第1種ノードに送信する
    請求項1記載のプログラム書き換えシステム。
  6. 前記第4種ノードは、前記第1種ノードが前記プログラムを書き換え可能な状態であるか否かを検出する第3の状態検出部を有し、前記第3の状態検出部により書き換え可能であることが検出された場合は、前記第1のネットワークを介して前記第2種ノードの各々に通知し、この通知を受けた前記第2種ノードは、自身が保存する前記分割プログラムを前記第1種ノードに送信する
    請求項3記載のプログラム書き換えシステム。
  7. 前記第2種ノードが3つ以上であり、これら第2種ノード間で前記部分的に重複した内容の分割プログラムが奇数個作成され、前記第1種ノードは、これらの分割プログラムの正常性を多数決により検証する
    請求項1記載のプログラム書き換えシステム。
  8. 前記第1種ノードは、前記奇数個作成された分割プログラムの内容が異なる場合においては、多数の分割ブログラムの内容に少数の分割プログラムを修正する
    請求項7記載のプログラム書き換えシステム。
  9. 前記第2種ノードは、前記分割プログラムを暗号化する暗号化部を有し、前記暗号化部により暗号化した前記分割プログラムを前記第2の記録領域に保存する
    請求項1記載のプログラム書き換えシステム。
  10. 前記第3種ノードは、前記分割プログラムを暗号化する暗号化部を有し、前記暗号化部により暗号化した前記分割プログラムを前記第2種ノードの各々に送信し、前記第2種ノードの各々は、暗号化された前記分割プログラムを前記第2の記録領域に保存する
    請求項2記載のプログラム書き換えシステム。
  11. 前記第4種ノードは、前記分割プログラムを暗号化する暗号化部を有し、前記暗号化部により暗号化した前記分割プログラムを前記第2種ノードの各々に送信し、前記第2種ノードの各々は、暗号化された前記分割プログラムを前記第2の記録領域に保存する
    請求項3記載のプログラム書き換えシステム。
  12. 前記第1種ノードは、暗号化された前記分割プログラムを復号化する復号化部を有し、前記第2種ノードから暗号化された前記分割プログラムを受信した際に、前記復号化部により前記分割プログラムを復号化する
    請求項9から11のいずれか一項に記載のプログラム書き換えシステム。
  13. 前記第2種ノードは、暗号化された前記分割プログラムを復号化する復号化部を有し、前記第2の記録領域に保存された暗号化された前記分割プログラムを前記復号化部により復号化して、前記第1種ノードに送信する
    請求項9から11のいずれか一項に記載のプログラム書き換えシステム。
  14. 第1のネットワークを介して互いに通信可能に接続された第1種ノードと複数の第2種ノードとを含み、前記第1種ノードの動作を決定するプログラムを書き換えるプログラム書き換え方法であって、
    前記第2種ノードの各々は、前記プログラムの書き換え用プログラムの一部分である分割プログラムを、他の第2種ノードに保存される分割プログラムと部分的に重複した内容を含む形で保存し、
    前記第2種ノードの各々は、前記第1種ノードへの前記分割プログラムの送信が可能であると判断した場合に、自ノードが保存している前記分割プログラムを前記第1のネットワークを介して前記第1種ノードに送信し、
    前記第1種ノードは、前記第2種ノードの各々から前記分割プログラムを受信する度に、前記プログラムの前記分割プログラムに該当する部分を書き換えるとともに、前記書き換えた分割プログラム同士が同一であるか否かを前記重複した内容を用いて検証する
    プログラム書き換え方法。
  15. 前記第1のネットワークに随時接続され、前記第1のネットワークを介して前記第1種ノード及び複数の前記第2種ノードと互いに通信可能な第3種ノードをさらに含み、
    前記第3種ノードは、前記書き換え用プログラムを保存しており、前記保存された前記書き換え用プログラムを他の分割プログラムと部分的に重複した内容を含む形に分割し、前記第1のネットワークを介して前記第2種ノードの各々に送信する
    請求項14記載のプログラム書き換え方法。
  16. 前記第1のネットワークを介して前記第1種ノード及び複数の前記第2種ノードと互いに通信可能な第4種ノードと、前記第1のネットワークとは別の第2のネットワークに随時接続され、前記第2のネットワークを介して前記第4種ノードと互いに通信可能な第5種ノードとをさらに含み、
    前記第5種ノードは、前記書き換え用プログラムを保存しており、前記保存された前記書き換え用プログラムを前記第2のネットワークを介して前記第4種ノードに送信し、
    前記第4種ノードは、前記第5種ノードから受信した前記書き換え用プログラムが一定量になる毎に該書き換え用プログラムから前記他の分割プログラムと部分的に重複した内容を含む形に前記分割プログラムを作成し、前記作成した前記分割プログラムを、それぞれ前記第1のネットワークを介して前記第2種ノードの各々に送信する
    請求項14記載のプログラム書き換え方法。
  17. 前記第1種ノードは、自ノードが前記プログラムを書き換え可能な状態であることが検出された場合は、前記第1のネットワークを介して前記第2種ノードに通知し、この通知を受けた前記第2種ノードは、自ノードが保存する前記分割プログラムを前記第1種ノードに送信する
    請求項14記載のプログラム書き換え方法。
  18. 前記第2種ノードは、前記第1種ノードが前記プログラムを書き換え可能な状態であることを検出した場合は、自ノードが保存する前記分割プログラムを前記第1種ノードに送信する
    請求項14記載のプログラム書き換え方法。
  19. 前記第4種ノードは、前記第1種ノードが前記プログラムを書き換え可能な状態であることが検出された場合は、前記第1のネットワークを介して前記第2種ノードに通知し、この通知を受けた前記第2種ノードは、自身が保存する前記分割プログラムを前記第1種ノードに送信する
    請求項16記載のプログラム書き換え方法。
  20. 前記第2種ノードが3つ以上であり、これら第2種ノード間で前記部分的に重複した内容の分割プログラムが奇数個作成され、前記第1種ノードは、これらの分割プログラムの正常性を多数決により検証する
    請求項14記載のプログラム書き換え方法。
  21. 前記第1種ノードは、前記奇数個作成された分割プログラムの内容が異なる場合においては、多数の分割ブログラムの内容に少数の分割プログラムを修正する
    請求項20記載のプログラム書き換え方法。
JP2015203460A 2015-10-15 2015-10-15 プログラム書き換えシステム及びプログラム書き換え方法 Active JP5996074B1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015203460A JP5996074B1 (ja) 2015-10-15 2015-10-15 プログラム書き換えシステム及びプログラム書き換え方法
US15/218,475 US10359753B2 (en) 2015-10-15 2016-07-25 Program rewriting system and program rewriting method
DE102016218222.6A DE102016218222A1 (de) 2015-10-15 2016-09-22 Programmumschreibsystem und Programmumschreibverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015203460A JP5996074B1 (ja) 2015-10-15 2015-10-15 プログラム書き換えシステム及びプログラム書き換え方法

Publications (2)

Publication Number Publication Date
JP5996074B1 JP5996074B1 (ja) 2016-09-21
JP2017076255A true JP2017076255A (ja) 2017-04-20

Family

ID=56960913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015203460A Active JP5996074B1 (ja) 2015-10-15 2015-10-15 プログラム書き換えシステム及びプログラム書き換え方法

Country Status (3)

Country Link
US (1) US10359753B2 (ja)
JP (1) JP5996074B1 (ja)
DE (1) DE102016218222A1 (ja)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5323151A (en) 1976-08-14 1978-03-03 Matsushita Electric Works Ltd Tank for purifying n ight soil
EP1376344A3 (en) * 2002-06-17 2005-08-24 Seiko Epson Corporation Apparatus and method of rewriting firmware
TWI220962B (en) * 2003-01-20 2004-09-11 Mediatek Inc Firmware updating method and related apparatus for checking content of replacing firmware before firmware updating
JP2005167298A (ja) * 2003-11-28 2005-06-23 Toshiba Corp 受信装置
US20060085564A1 (en) * 2004-10-14 2006-04-20 Bomhoff Matthew D Flash mirroring
JP4668656B2 (ja) 2005-03-24 2011-04-13 日立オートモティブシステムズ株式会社 プログラムの書き換えシステム及びプログラムの書き換え方法
US7761735B2 (en) * 2007-04-13 2010-07-20 International Business Machines Corporation Automated firmware restoration to a peer programmable hardware device
US8364973B2 (en) * 2007-12-31 2013-01-29 Intel Corporation Dynamic generation of integrity manifest for run-time verification of software program
JP2009267849A (ja) * 2008-04-25 2009-11-12 Canon Inc 放送システム、その制御方法、送出機、放送受信装置
JP5342302B2 (ja) * 2009-03-30 2013-11-13 株式会社日立ソリューションズ ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
JP5357204B2 (ja) * 2011-04-18 2013-12-04 三菱電機株式会社 制御システム
JP5323151B2 (ja) * 2011-08-31 2013-10-23 三菱電機株式会社 プログラム書き換えシステム及びプログラム書き換え方法
JP2013246718A (ja) * 2012-05-28 2013-12-09 Auto Network Gijutsu Kenkyusho:Kk 制御システム及びプログラム更新方法
US20140075170A1 (en) * 2012-09-12 2014-03-13 International Business Machines Corporation Automated firmware voting to enable multi-enclosure federated systems

Also Published As

Publication number Publication date
JP5996074B1 (ja) 2016-09-21
US20170108842A1 (en) 2017-04-20
DE102016218222A1 (de) 2017-04-20
US10359753B2 (en) 2019-07-23

Similar Documents

Publication Publication Date Title
JP5323151B2 (ja) プログラム書き換えシステム及びプログラム書き換え方法
JP7071574B2 (ja) ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法
JP7139424B2 (ja) 車両搭載機器アップグレード方法および関連機器
CN112055952B (zh) 一种车载设备升级方法及相关设备
CN112543927B (zh) 一种设备升级方法及相关设备
WO2016075865A1 (ja) 更新管理方法、更新管理装置及び制御プログラム
JP6741559B2 (ja) 評価装置、評価システム及び評価方法
WO2018029891A1 (ja) 管理システム、鍵生成装置、車載コンピュータ、管理方法、及びコンピュータプログラム
JP2019036251A (ja) 更新制御装置、ソフトウェア更新システムおよび更新制御方法
US20210111874A1 (en) Key management system, communication device and key sharing method
JP2023090981A (ja) ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法
CN108781164B (zh) 通信网络系统、车辆、计数器值通知节点以及计数器值共享方法
JP2019140577A (ja) 電子制御装置及び通信システム
CN101689101A (zh) 带有具备一个或多个远程启用的模块的ic、soc或sip的设备以及用于销售该设备的方法
JP6103565B1 (ja) プログラム書き換えシステム及びプログラム書き換え方法
JP2018079768A (ja) 更新データ保存システム
US20180212977A1 (en) In-vehicle network system
JP5996074B1 (ja) プログラム書き換えシステム及びプログラム書き換え方法
JP6184575B1 (ja) プログラム書き換え及び検証システム
JP2008009983A (ja) 電子制御装置およびその初期化方法
JP2005149401A (ja) 電子制御装置
CN111814149A (zh) 安全更新运载工具中二进制数据的装置及方法
CN115248696A (zh) Ota主机、方法及非暂时性存储介质
JP2011215771A (ja) 情報処理システム、車両制御用プログラム管理システム、及び情報処理システムのプログラム更新方法
JP6165292B1 (ja) プログラム書き換えシステムおよびプログラム書き換え方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160823

R150 Certificate of patent or registration of utility model

Ref document number: 5996074

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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