JP5357204B2 - 制御システム - Google Patents

制御システム Download PDF

Info

Publication number
JP5357204B2
JP5357204B2 JP2011091893A JP2011091893A JP5357204B2 JP 5357204 B2 JP5357204 B2 JP 5357204B2 JP 2011091893 A JP2011091893 A JP 2011091893A JP 2011091893 A JP2011091893 A JP 2011091893A JP 5357204 B2 JP5357204 B2 JP 5357204B2
Authority
JP
Japan
Prior art keywords
data
received
rewriting
cmu
cmus
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.)
Active
Application number
JP2011091893A
Other languages
English (en)
Other versions
JP2012226466A (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.)
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 JP2011091893A priority Critical patent/JP5357204B2/ja
Publication of JP2012226466A publication Critical patent/JP2012226466A/ja
Application granted granted Critical
Publication of JP5357204B2 publication Critical patent/JP5357204B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Description

この発明は、車両ネットワーク等、複数の制御装置がネットワークに接続された環境において、これら制御装置のプログラム書き換えを行う制御システムに関するものである。
現在車両には、ECU(Electric Control Unit:電子制御装置)が数多く搭載されており、それぞれがネットワークで接続され、データの送受信を行っている。
これら電子装置は、電子装置が保持するプログラムに基づいて動作をしている。
電子装置のプログラムは、電子装置の生産時に書き込まれるだけでなく、車両搭載後にも書き換えることがある。そのため、電子装置を車両から取り外すことなく、プログラムの書き換えを行うことが必要となっている。
そこで、電子装置を車両から取り外すことなく、ネットワークを介して書き換え対象の制御装置のプログラムを書き換えることが一般的に実施されている。
また、バッテリ制御システムのように、ネットワークに接続された第一の制御装置となるBMU(Battery Management Unit)と、複数の第二の制御装置となるCMU(Cell Monitor Unit)という構成をとり、第一の制御装置が複数の第二の制御装置からのデータを基に制御を行うといった車両システムが登場している。
このようなバッテリ制御システムにおいて、第一の制御装置が、複数の第二の制御装置のプログラムを書き換える場合、同一のプログラムで書き換えを行う場合でも、プログラムの書き換えを個別に行わなければならず、プログラム書き換えに要する時間が長くなるという問題があった。
そこで、特許文献1では、複数の第二の制御装置のプログラム書き換えに要する時間を短縮するプログラム書き換え方法が提案されている。
以下、特許文献1で提案されているプログラム書き換え方法について述べる。特許文献1に記載のプログラム書き換え方法では、第一の制御装置である一次制御部と、第二の制御装置である二次制御部がネットワークに接続された環境において、同一のプログラムで書き換える二次制御部をグループ化する。
ここでは、二次制御部が二つのグループ1に、二次制御部が一つのグループ2にグループ化される。
そして、一次制御部は、まずグループ1へプログラムをデータとして同時に送信し、グループ1の二次制御部は受信したデータを基に、プログラムの書き換えを行う。
次に、グループ2へプログラムをデータとして送信し、グループ2の二次制御部は受信したデータを基に、プログラムの書き換えを行う。
このように、同一プログラムで書き換えを行う二次制御部をグループ化し、グループをまとめてプログラムの書き換えを行うことで、全ての二次制御部のプログラムの書き換えを個別に行う場合に比べ、プログラム書き換えに要する時間を短縮することができる。
特開2010−92297号公報(第5〜9頁、図1)
しかしながら、特許文献1に記載のプログラム書き換え方法では、車両システムのように様々なノイズにより、送信したデータが紛失される可能性がある環境の場合、一次制御部のプログラム書き換えに要する処理負荷が増加する。
例えば、一時制御部がプログラムをデータとして送信したにも係わらず、ノイズの影響で紛失され、グループ1の一つの二次制御部がデータの受信に失敗した場合、一次制御部はグループ1の二次制御部へ、再度プログラムのデータ送信を行う必要があり、一次制御部のプログラム書き換えに要する処理負荷が増加する。
この発明は、上述のような課題を解決するためになされたものであり、第一の制御装置がネットワークを介して複数の第二の制御装置のプログラムを書き換える際、ノイズの影響でデータが紛失される場合においても、第一の制御装置のプログラム書き換えに要する処理負荷の増加を防止する制御システムを得ることを目的とする。
この発明に係わる制御システムにおいては、第一の制御装置と複数の第二の制御装置がネットワークを介して接続された制御システムであって、第一の制御装置は、ネットワークを介してデータの送受信を行う第一の通信インタフェース部と、各第二の制御装置の動作を決定するプログラムを書き換えるための書き換え用プログラムを保管する第一のプログラム保管部と、書き換え用プログラムから一つ以上の書き換え用データを形成して、第一の通信インタフェース部により送信する第一のプログラム送信部とを備え、各第二の制御装置は、ネットワークを介してデータの送受信を行う第二の通信インタフェース部と、ネットワークからの書き換え用データを受信できたかどうかを判断するデータ受信成否判断部と、第一の制御装置から受信した書き換え用データと同一内容のデータからなる検証用データを、第二の通信インタフェース部により送信する第二のプログラム送信部と、第二の制御装置の動作を決定するプログラムを保管する第二のプログラム保管部と、ネットワークから受信した書き換え用データを基に、第二のプログラム保管部のプログラムを書き換えるプログラム書き換え部とを備え、第一の制御装置は、複数の第二の制御装置へ書き換え用データを送信し、データ受信成否判断部が書き換え用データの受信に成功したと判断した第二の制御装置のうちの特定の第二の制御装置は、検証用データを送信し、データ受信成否判断部が書き換え用データの受信に失敗したと判断した第二の制御装置は、特定の第二の制御装置から送信される検証用データを受信して受信に失敗した書き換え用データを補完する。そして、第二の制御装置のプログラム書き換え部は受信した書き換え用データを基に、第二のプログラム保管部のプログラムを書き換えるものである。
この発明は、以上説明したように、第一の制御装置と複数の第二の制御装置がネットワークを介して接続された制御システムであって、第一の制御装置は、ネットワークを介してデータの送受信を行う第一の通信インタフェース部と、各第二の制御装置の動作を決定するプログラムを書き換えるための書き換え用プログラムを保管する第一のプログラム保管部と、書き換え用プログラムから一つ以上の書き換え用データを形成して、第一の通信インタフェース部により送信する第一のプログラム送信部とを備え、各第二の制御装置は、ネットワークを介してデータの送受信を行う第二の通信インタフェース部と、ネットワークからの書き換え用データを受信できたかどうかを判断するデータ受信成否判断部と、第一の制御装置から受信した書き換え用データと同一内容のデータからなる検証用データを、第二の通信インタフェース部により送信する第二のプログラム送信部と、第二の制御装置の動作を決定するプログラムを保管する第二のプログラム保管部と、ネットワークから受信した書き換え用データを基に、第二のプログラム保管部のプログラムを書き換えるプログラム書き換え部とを備え、第一の制御装置は、複数の第二の制御装置へ書き換え用データを送信し、データ受信成否判断部が書き換え用データの受信に成功したと判断した第二の制御装置のうちの特定の第二の制御装置は、検証用データを送信し、データ受信成否判断部が書き換え用データの受信に失敗したと判断した第二の制御装置は、特定の第二の制御装置から送信される検証用データを受信して受信に失敗した書き換え用データを補完し、この補完した書き換え用データを基に、第二のプログラム保管部のプログラムを書き換えるので、第一の制御装置が第二の制御装置のプログラムを書き換える際、第一の制御装置が送信した書き換え用データが、ノイズの影響で紛失され、第二の制御装置が書き換え用データの受信に失敗した場合でも、他の第二の制御装置から送信される検証用データを受信してプログラム書き換えを行うことができるため、第一の制御装置は、書き換え用データの再送信を行う必要が無く、書き換えに要する処理負荷の増加を防止することができる。
この発明の実施の形態1、実施の形態4におけるバッテリ制御システムを示す構成図である。 この発明の実施の形態1、実施の形態4、実施の形態5における第一の制御装置の動作を説明するフローチャートである。 この発明の実施の形態1、実施の形態5における第二の制御装置のプログラム書き換え時の処理を示すフローチャートである。 この発明の実施の形態1、実施の形態5における第二の制御装置のデータ受信時の処理を示すフローチャートである。 この発明の実施の形態1において、第二の制御装置が書き換え用データを受信できた場合のタイミングチャートである。 この発明の実施の形態1において、第二の制御装置が書き換え用データの受信に失敗した場合のタイミングチャートである。 この発明の実施の形態2、実施の形態3におけるバッテリ制御システムを示す構成図である。 この発明の実施の形態2における第一の制御装置のプログラム書き換え処理開始時の処理を示すフローチャートである。 この発明の実施の形態2における第一の制御装置のデータ受信時の処理を示すフローチャートである。 この発明の実施の形態2における第一の制御装置の所定の検証用データ送信処理時の処理を示すフローチャートである。
この発明の実施の形態2、実施の形態3における第二の制御装置のプログラム書き換え時の処理を示すフローチャートである。 この発明の実施の形態2、実施の形態3における第二の制御装置のデータ受信時の処理を示すフローチャートである。 この発明の実施の形態2において、第一の制御装置が送信した書き換え用データに、ネットワーク上で誤りが混入しない場合のタイミングチャートである。 この発明の実施の形態2において、第一の制御装置が送信した書き換え用データに、ネットワーク上で誤りが混入した場合のタイミングチャートである。 この発明の実施の形態3における第一の制御装置のプログラム書き換え時の処理を示すフローチャートである。 この発明の実施の形態3における第一の制御装置のデータ受信時の処理を示すフローチャートである。 この発明の実施の形態3における第一の制御装置の所定の検証用データ送信処理時の処理を示すフローチャートである。 この発明の実施の形態3において、第一の制御装置が書き換え用データ送信後、所定時間後も検証の結果がOKとなっていない第二の制御装置が存在する場合のタイミングチャートである。 この発明の実施の形態4における第二の制御装置のプログラム書き換え時の処理を示すフローチャートである。 この発明の実施の形態4における第二の制御装置のデータ受信時の処理を示すフローチャートである。 この発明の実施の形態4において、第二の制御装置が書き換え用データを受信できた場合のタイミングチャートである。 この発明の実施の形態4において、第二の制御装置が書き換え用データの受信に失敗した場合のタイミングチャートである。 この発明の実施の形態5におけるバッテリ制御システムを示す構成図である。
以下、本発明による制御システムを、各実施の形態にしたがって図を用いて説明する。各実施の形態は、本発明による制御システムを、バッテリ制御システムに適用した場合を示す。
実施の形態1.
図1は、この発明の実施の形態1によるバッテリ制御システムを示す構成図である。
図1において、バッテリ制御システム501は、第一の制御装置であるBMU(Battery Management Unit : バッテリ管理ユニット)502と、第二の制御装置であるCMU(Cell Monitor Unit : セル監視ユニット)507、513、514がCANネットワーク506により接続されて構成されている。
CMU507、513、514は、バッテリ515のセル516、517、518毎に搭載され、セルの電圧/電流/温度を監視し、監視結果をCANネットワーク506を介してBMU502へ通達する。
BMU502は、CANネットワーク506から受信したCMU507、513、514の監視結果を基に、バッテリ残量の計算や、異常監視などを行う。
BMU502は、第一のプログラム送信部503、書き換え用プログラム保管部(第一のプログラム保管部)504、CAN通信インタフェース部(第一の通信インタフェース部)505から構成される。
第一のプログラム送信部503は、書き換え用プログラム保管部504に保管されているプログラムを、一つ以上の書き換え用データに分割して、CAN通信インタフェース部505により送信する。
書き換え用プログラム保管部504は、CMU507、513、514の書き換え用プログラムを保管する。
CAN通信インタフェース部505は、CANネットワーク506を介して、データの送受信を行う。
BMU502は、上述した機能以外にも機能を有するが、ここでは、本実施の形態1の特徴に大きく関連する部分のみ説明し、他の機能については説明を省略する。
CMU507、513、514は、同一の構成を取り、それぞれCAN通信インタフェース部(第二の通信インタフェース部)508、データ受信成否判断部509、第二のプログラム送信部510、動作プログラム保管部(第二のプログラム保管部)511、プログラム書き換え部512から構成される。
CAN通信インタフェース部508は、CANネットワーク506を介して、データの送受信を行う。
データ受信成否判断部509は、CAN通信インタフェース部508を介してCANネットワーク506から書き換え用データを受信できたかどうかの判断を行う。
第二のプログラム送信部510は、BMU502から受信した書き換え用データと同一内容のデータからなる検証用データを、CAN通信インタフェース部508により送信する。
動作プログラム保管部511は、CMU507、513、514の動作を決定するプログラムを保管する。
プログラム書き換え部512は、CANネットワーク506から受信したデータを基に、動作プログラム保管部511のプログラムを書き換える。
本実施の形態1では、第二の制御装置として、CMU507、513、514の3つがCANネットワーク506に接続されているが、4つ以上接続されていても本発明の効果には影響しない。
また、CMU507、513、514は、上述した機能以外にも機能を有するが、ここでは、本実施の形態1の特徴に大きく関連する部分のみ説明し、他の処理については説明を省略する。
図2は、この発明の実施の形態1における第一の制御装置の動作を説明するフローチャートである。
図3は、この発明の実施の形態1における第二の制御装置のプログラム書き換え時の処理を示すフローチャートである。
図4は、この発明の実施の形態1における第二の制御装置のデータ受信時の処理を示すフローチャートである。
図5は、この発明の実施の形態1において、第二の制御装置が書き換え用データを受信できた場合のタイミングチャートである。
図6は、この発明の実施の形態1において、第二の制御装置が書き換え用データの受信に失敗した場合のタイミングチャートである。
次に、動作について説明する。
図2は、実施の形態1における第一の制御装置であるBMU502の動作を説明するフローチャートであり、この図2を用いてCMU507、513、514のプログラム書き換えにおけるBMU502の動作を説明する。
ステップS601では、BMU502の第一のプログラム送信部503が、書き換え用プログラム保管部504に保管されているプログラムを、一つ以上の書き換え用データに分割して、CAN通信インタフェース部505により、送信する。
図3、図4は、実施の形態1における第二の制御装置であるCMU507、513、514の動作を説明するフローチャートであり、この図3、図4を用いて、CMU507、513、514の動作を説明する。
なお、CMU507、513、514は同じ動作をするため、ここでは、CMU507を用いて説明する。
まず、図3を用いて、CMU507のプログラム書き換え時の処理について述べる。
ステップS701では、CMU507は、書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、書き換え用データの受信タイムアウトとは、CMU507がBMU502から受信する書き換え用データの最大待ち時間を超えた状態を示す。
ステップS702では、CMU507が、経過時間のカウントにより、書き換え用データの受信タイムアウトであるかどうかを判断する。タイムアウトである場合、ステップS703へ進み、タイムアウトでない場合、ステップS702に留まる。
ステップS703では、CMU507は、データ受信成否判断部509の判断結果を判定する。判定の結果が受信成功である場合、ステップS704へ進み、受信成功でない場合、ステップS705へ進む。
ステップS704では、CMU507の第二のプログラム送信部510は、検証用データを送信する。
ステップS705では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する。
次に、図4を用いて、CMU507のデータ受信時の処理について述べる。
ステップS751では、CMU507は、受信したデータの種類を判断する。受信したデータの種類が書き換え用データである場合、ステップS752へ進み、検証用データである場合、ステップS755へ進む。
ステップS752では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS753では、CMU507は所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS754へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とはBMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS754では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
ステップS755では、CMU507は受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する。ここでは、書き換え用データにシーケンス番号が付与されており、検証用データにも書き換え用データと同じ番号が付与されている。
CMU507は、受信した検証用データに付与されているシーケンス番号と同じ番号の書き換え用データを受信していない場合、受信に失敗した書き換え用データであると判断し、受信していた場合、受信に失敗した書き換え用データではないと判断する。判断の結果、受信に失敗した書き換え用データである場合、ステップS756へ進み、そうでない場合、処理を終了する。
ステップS756では、CMU507は、受信した検証用データを用いて、受信に失敗した書き換え用データを置き換えることで補完する。
ステップS757では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS758では、CMU507は、所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS759へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とはBMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS759では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
ステップS760では、CMU507の第二のプログラム送信部510は、検証用データを送信する。
上述したCMU507のデータ受信時の処理は、データを受信するたびに実施される。
図5は、BMU502がCMU507、513、514のプログラムを書き換える際のタイミングチャートを示す。図5において、受信状況は、CMU507、513、514のデータ受信成否判断部509の判断結果を示す。
また、T804に示すTxは、CMU507、513、514における書き換え用データの受信タイムアウトとなる時間である。
以下、CMU507、513、514のプログラム書き換えを、本発明によるプログラム書き換え方法を用いて行う場合の処理について、図1から図5を用いて説明する。
ここでは、すべてのCMU507、513、514がBMU502からの書き換え用データの受信に成功した場合とする。
また、本実施の形態1では、BMU502の第一のプログラム送信部503は、書き換え用プログラム保管部504に保管されている書き換え用プログラムを、1つの書き換え用データとして送信する場合を説明する。書き換え用プログラムを2つ以上の書き換え用データに分割して送信しても本発明の効果には影響しない。
さらに、本実施の形態1では、CMU507、513、514は同一のプログラムで書き換える場合を説明する。
図5のT801では、CMU507、513、514のデータ受信成否判断部509の判断結果は、初期状態(未判断)である。
T802では、BMU502は書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S601)。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S701)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S702)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T802)では、それぞれタイムアウトではないと判断する。
T803では、CMU507、513、514は、それぞれBMU502から書き換え用データを受信したため、データ受信時の処理を開始する。
CMU507、513、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU507、513、514は、書き換え用データを受信したと判断する。
CMU507、513、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S752)。
CMU507、513、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S753)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、513、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S754)。
T804では、CMU507、513、514は、それぞれ書き換え用データ受信タイムアウトであると判断する。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S703)。ここでは、すべてのCMU507、513、514が受信成功であると判断する。
そして、CMU507、513、514の第二のプログラム送信部510は、それぞれ検証用データの送信を行う(S704)。ここでは、CMU507が検証用データを送信する。
T805では、CMU513、514は、CMU507から検証用データを受信したため、それぞれデータ受信時の処理を開始する。
CMU513、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU513、514は、検証用データを受信したと判断する。
CMU513、514は、それぞれ受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S755)。
CMU513、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513、514は、それぞれ受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
同様に、T806では、CMU513が検証用データを送信する。
T807では、CMU507、514は、CMU513から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、514は、T805のCMU513、514のデータ受信時と同様の処理を行う。
さらに、T808では、CMU514が検証用データを送信する。
T809では、CMU507、513は、CMU514から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、513は、T805のCMU513、514のデータ受信時と同様の処理を行う。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
次に、実施の形態1において本発明の特徴である、書き換え用データの受信に失敗したCMU507、513、514が存在する場合の動作を、図1から図4および図6を用いて詳述する。
ここでは、CMU507、514は、BMU502からの書き換え用データの受信に成功し、CMU513は、ノイズ等の影響により、BMU502からの書き換え用データの受信に失敗した場合とする。
図6は、BMU502がCMU507、513、514のプログラムを書き換える際のタイミングチャートを示す。図6において、受信状況は、CMU507、513、514のデータ受信成否判断部509の判断結果を示す。
また、T904に示すTxは、CMU507、513、514における書き換え用データの受信タイムアウトとなる時間である。
図6のT901では、CMU507、513、514のデータ受信成否判断部509の判断結果は、初期状態(未判断)である。
T902では、BMU502は書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S601)。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S701)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判定する(S702)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T902)では、それぞれタイムアウトではないと判断する。
T903では、CMU507、514は、それぞれBMU502から書き換え用データを受信したため、データ受信時の処理を開始する。CMU513は、書き換え用データを受信していないと判断する。
CMU507、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU507、514は、書き換え用データを受信したと判断する。
CMU507、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S752)。
CMU507、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S753)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S754)。
一方、CMU513のデータ受信成否判断部509の判断結果は、未判断である。
T904では、CMU507、513、514はそれぞれ書き換え用データ受信タイムアウトであると判断する。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S703)。ここでは、CMU507、514が受信成功であると判断する。CMU513は、データ受信成否判断部509の判断結果が未判断であるため、書き換え用データ受信失敗であると判断する。
そして、CMU507、514の第二のプログラム送信部510は、それぞれ検証用データの送信を行う(S704)。ここでは、CMU507が検証用データを送信する。
T905では、CMU513、514は、CMU507から検証用データを受信したため、それぞれデータ受信時の処理を開始する。
CMU513、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU513、514は、検証用データを受信したと判断する。
CMU513、514は、それぞれ受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S755)。
CMU513、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513は、受信した検証用データが、受信に失敗した書き換え用データであると判断する。CMU514は、受信に失敗した書き換え用データではないと判断し、処理を終了する。
CMU513は、受信した検証用データを用いて、受信に失敗した書き換え用データを置き換えることで補完する(S756)。そして、CMU513のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S757)。
CMU513は、所定個数書き換え用データを受信したかどうかを判定する(S758)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU513のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S759)。
T906では、CMU513の第二のプログラム送信部510は、検証用データの送信を行う(S760)。
図6に示すように、CMU513は、BMU502からの書き換え用データの受信に失敗したが、他のCMU502から受信した検証用データを基に、受信に失敗した書き換え用データを補完することで、受信成功とする。
T907では、CMU507、514は、CMU513から検証用データを受信したため、それぞれデータ受信時の処理を開始する。
CMU507、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU507、514は、検証用データを受信したと判断する。
CMU507、514は、それぞれ受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S755)。
CMU507、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
同様に、T908では、CMU514が検証用データを送信する。T909では、CMU507、513は、CMU514から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、513は、T907のCMU507、514のデータ受信時と同様の処理を行う。
このようにして、CMU507、513、514は、ノイズの影響により書き換え用データの受信に失敗した状況においても、プログラム書き換え処理を完了することができる。
上述のように、実施の形態1の制御システムでは、第一の制御装置と複数の第二の制御装置がネットワークを介してデータの送受信を行っている環境において、第一の制御装置は、書き換え用プログラムを書き換え用データとして送信し、書き換え用データの受信に成功した特定の第二の制御装置は、第一の制御装置から受信した書き換え用データと同一内容のデータからなる検証用データを送信し、書き換え用データの受信に失敗した第二の制御装置は、特定の第二の制御装置から送信される検証用データを受信して、受信に失敗した書き換え用データを補完することで、第一の制御装置は書き換え用データの再送信を行う必要が無いため、第一の制御装置のプログラム再送信による、第一の制御装置のプログラム書き換えに要する処理負荷の増加を防止することができる。
なお、本実施の形態1では、第二の制御装置のデータ受信成否判断部は、所定時間以内に第一の制御装置から書き換え用データを受信できない場合、書き換え用データの受信失敗と判断したが、第二の制御装置が受信した書き換え用データを、エラーチェックなどにより破棄した場合でも、書き換え用データの受信失敗と判断することができる。
このような場合でも、第二の制御装置は、他の第二の制御装置から送信される検証用データにより、受信に失敗した書き換え用データを補完することができるため、同様の効果が得られる。
実施の形態2.
次に、実施の形態2について説明する。
図7は、この発明の実施の形態2におけるバッテリ制御システムを示す構成図である。
図7において、バッテリ制御システム501は、第一の制御装置であるBMU502と、第二の制御装置であるCMU507、513、514がCANネットワーク506により接続されて構成されている。
BMU502は、実施の形態1で説明した図1の構成に加え、データ送信成否判断部1001と、検証用データ送信要求部1002を備える。
データ送信成否判断部1001は、BMU502が送信した書き換え用データと、CMU507、513、514から受信した検証用データが一致しているかどうかの検証を行う。一致していた場合、検証の結果をOKとし、一致していない場合NGとする。
検証用データ送信要求部1002は、CMU507、513、514へCAN通信インタフェース部505により、CANネットワーク506を介して、検証用データの送信を要求する。
CMU507、513、514は、実施の形態1で説明した図1の構成に加え、データ受信状況通知部1003を備える。
データ受信状況通知部1003は、データ受信成否判断部509の判断結果を、BMU502へCAN通信インタフェース部508により、CANネットワーク506を介して通知する。
図8は、この発明の実施の形態2における第一の制御装置のプログラム書き換え処理開始時の処理を示すフローチャートである。
図9は、この発明の実施の形態2における第一の制御装置のデータ受信時の処理を示すフローチャートである。
図10は、この発明の実施の形態2における第一の制御装置の所定の検証用データ送信処理時の処理を示すフローチャートである。
図11は、この発明の実施の形態2における第二の制御装置のプログラム書き換え時の処理を示すフローチャートである。
図12は、この発明の実施の形態2における第二の制御装置のデータ受信時の処理を示すフローチャートである。
図13は、この発明の実施の形態2において、第一の制御装置が送信した書き換え用データに、ネットワーク上で誤りが混入しない場合のタイミングチャートである。
図14は、この発明の実施の形態2において、第一の制御装置が送信した書き換え用データに、ネットワーク上で誤りが混入した場合のタイミングチャートである。
次に、動作について説明する。
図8〜図10は、実施の形態2における第一の制御装置であるBMU502の動作を説明するフローチャートであり、この図8〜図10を用いて、CMU507、513、514のプログラム書き換えにおけるBMU502の動作を説明する。
まず、図8を用いて、BMU502のプログラム書き換え時の処理について述べる。
ステップS1101では、BMU502の第一のプログラム送信部503が、書き換え用プログラム保管部504に保管されているプログラムを、一つ以上の書き換え用データに分割して、CAN通信インタフェース部505により、送信する。
ステップS1102では、BMU502は、検証用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、検証用データの受信タイムアウトとは、BMU502がCMU507、513、514から受信する検証用データの最大待ち時間を超えた状態を示す。
ステップS1103では、BMU502は、経過時間のカウントにより、検証用データの受信タイムアウトかどうかを判断する。タイムアウトである場合、処理を終了し、タイムアウトでない場合、ステップS1103に留まる。
次に、図9を用いて、BMU502のデータ受信時の動作について述べる。
ステップS1151では、BMU502は、受信したデータの種類を判断する。受信したデータの種類が検証用データの場合、ステップS1152へ進み、データ受信状況通知の場合、ステップS1154へ進む。
ステップS1152では、BMU502のデータ送信成否判断部1001が、BMU502が送信した書き換え用データとCMU507、513、514のいずれかから受信した検証用データの内容が一致しているかどうかの検証処理を行う。
検証処理の結果がOKである場合、処理を終了し、検証の結果がNGである場合、ステップS1159へ進む。
ステップS1159では、BMU502は、CMU507、513、514の受信状況通知の内容を、受信失敗と判断する。ここで、受信状況通知とは、CMU507、513、514のデータ受信状況通知部1003が、BMU502へ通知したものである。
ステップS1160では、BMU502は、CMU507、513、514へ、検証失敗通知を行う。
ステップS1161では、BMU502は、検証処理を実施したCMU以外で、検証用データ送信要求実施対象のCMUが存在するかどうかを判断する。存在する場合、ステップS1163へ進み、存在しない場合、ステップS1162へ進む。
ここで、検証用データ送信要求実施対象のCMUとは、BMU502が検証用データの送信要求を行うCMU507、513、514を示す。具体的には、受信状況通知が受信成功であり、かつ検証処理の結果がOKとなっていないCMU507、513、514を示す。
ステップS1162では、BMU502は、CMU507、513、514を書き換え処理の開始時の状態に戻し、再度書き換え用データを送信する。
ステップS1163では、BMU502の検証用データ送信要求部1002は、CMU507、513、514へ検証用データの送信要求を行う。
ステップS1164では、BMU502は、検証用データ送信要求を行ったCMU507、513、514を、検証用データ送信要求実施対象CMUから登録を解除する。
ステップS1154では、BMU502は、受信状況通知の内容を判断する。データ受信状況通知の内容が受信成功である場合、ステップS1155へ進み、受信失敗である場合、処理を終了する。
ステップS1155では、BMU502は、受信状況通知を行ったCMU507、513、514を、検証用データ送信要求実施対象CMUとして登録する。
上記BMU502のデータ受信時の処理は、データを受信するたびに実施される。
次に、図10を用いて、BMU502の所定の検証用データ送信処理時の処理を説明する。
ステップS1171では、BMU502は、検証用データ送信要求実施対象のCMUが存在するかどうかを判断する。存在する場合、ステップS1172へ進み、存在しない場合、処理を終了する。
ステップS1172では、BMU502の検証用データ送信要求部1002は、CMU507、513、514へ検証用データの送信要求を行う。
ステップS1173では、BMU502は、検証用データ送信要求を行ったCMU507、513、514を、検証用データ送信要求実施対象CMUから登録を削除する。
上記BMU502の所定の検証用データ送信処理時の処理は、上述したBMU502のデータ受信時の処理以外のタイミングで実施される。
次に、図11、図12を用いて、CMU507、513、514の動作を説明する。CMU507、513、514は、同じ動作をするため、ここでは、CMU507を用いて説明する。
まず、図11を用いて、CMU507のプログラム書き換え時の処理について述べる。
ステップS1201では、CMU507は書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、書き換え用データの受信タイムアウトとは、CMU507がBMU502から受信する書き換え用データの最大待ち時間を超えた状態を示す。
ステップS1202では、CMU507が、経過時間のカウントにより、書き換え用データの受信タイムアウトであるかどうかを判断する。タイムアウトである場合、ステップS1205へ進み、タイムアウトでない場合、ステップS1202に留まる。
ステップS1205では、CMU507は、データ受信成否判断部509の判断結果を判定する。判定の結果が受信成功である場合、ステップS1206へ進み、受信成功でない場合、ステップS1207へ進む。
ステップS1206では、CMU507のデータ受信状況通知部1003が、データ受信状況(データ受信成功)をBMU502へ通知する。
ステップS1207では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する。
ステップS1208では、CMU507のデータ受信状況通知部1003が、データ受信状況(データ受信失敗)をBMU502へ通知する。
次に、図12を用いて、CMU507のデータ受信時の処理について述べる。
ステップS1251では、CMU507は、受信したデータの種類を判断する。受信したデータの種類が書き換え用データである場合、ステップS1252へ進み、検証用データである場合、ステップS1255へ進み、検証用データ送信要求である場合、ステップS1261へ進み、検証失敗通知である場合、ステップS1262へ進む。
ステップS1252では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS1253では、CMU507は、所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS1254へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とは、BMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS1254では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
ステップS1255では、CMU507は受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する。
ここでは、書き換え用データにシーケンス番号が付与されており、検証データにも書き換え用データと同じ番号が付与されている。
CMU507は、受信した検証用データに付与されているシーケンス番号と同じ番号の書き換え用データを受信していない場合、受信に失敗した書き換え用データであると判断し、受信していた場合、受信に失敗した書き換え用データではないと判断する。
判断の結果、受信に失敗した書き換え用データである場合、ステップS1256へ進み、そうでない場合、処理を終了する。
ステップS1256では、CMU507は、受信した検証用データを用いて、受信に失敗した書き換え用データを置き換えることで補完する。
ステップS1257では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS1258では、CMU507は、所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS1259へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とはBMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS1259では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
ステップS1260では、CMU507のデータ受信状況通知部1003が、データ受信状況(データ受信成功)をBMU502へ通知する。
ステップS1261では、CMU507の第二のプログラム送信部510は、検証用データを送信する。
ステップS1262では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する。
ステップS1263では、CMU507は、どの書き換え用データの受信に失敗したのかを認識する。ここでは、検証失敗通知には、どの書き換え用データの受信に失敗したのかを示すシーケンス番号を含めておく。また、書き換え用データにもシーケンス番号が付与されており、CMU507は、シーケンス番号により、受信に失敗した書き換え用データを認識する。
上述したCMU507のデータ受信時の処理は、データを受信するたびに実施される。
図13は、BMU502がCMU507、513、514のプログラムを書き換える際のタイミングチャートを示す。図13において、受信状況は、CMU507、513、514のデータ受信状況通知部1003の通知結果を示し、検証結果は、BMU502のデータ送信成否判断部1001の検証処理の結果を示す。また、T1304に示すTxは、CMU507、513、514における書き換え用データの受信タイムアウトとなる時間であり、T1318に示すTyは、BMU502における検証用データの受信タイムアウトとなる時間である。
以下、CMU507、513、514のプログラム書き換えを、本発明によるプログラム書き換え方法を用いて行う場合の処理について、図7から図13を用いて説明する。
ここでは、すべてのCMU507、513、514がBMU502からの書き換え用データの受信に成功し、また書き換え用データにネットワーク上でノイズ等による誤りが混入していない場合について説明する。
また、本実施の形態2では、BMU502の第一のプログラム送信部503は、書き換え用プログラム保管部504に保管されているプログラムを、1つの書き換え用データとして送信する場合を説明する。書き換え用プログラムを2つ以上の書き換え用データに分割して送信しても本発明の効果には影響しない。
さらに、本実施の形態2では、CMU507、513、514は同一のプログラムで書き換える場合を説明する。
図13のT1301では、BMU502は、CMU507、513、514からデータ受信状況通知を受けていないため、受信状況は未判断である。また、検証用データも受信していないため、検証結果も未判断である。
T1302では、BMU502は、書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S1101)。
BMU502は、検証用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1102)。
BMU502は、経過時間のカウントにより、検証用データの受信タイムアウトかどうかを判断する(S1103)。BMU502は、書き換え用データを送信した時点(T1302)では、タイムアウトではないと判断する。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1201)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S1202)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T1302)では、それぞれタイムアウトではないと判断する。
T1303では、CMU507、513、514は、それぞれBMU502から書き換え用データを受信したため、データ受信時の処理を開始する。
CMU507、513、514は、それぞれ受信したデータの種類を判断する(S1251)。ここでは、CMU507、513、514は、書き換え用データを受信したと判断する。
CMU507、513、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1252)。
CMU507、513、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S1253)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、513、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1254)。
T1304では、CMU507、513、514は、それぞれ書き換え用データ受信タイムアウトであると判断する。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S1205)。ここでは、すべてのCMU507、513、514が受信成功であると判断する。
そして、CMU507、513、514のデータ受信状況通知部1003は、データ受信状況をBMU502へ通知する。ここでは、すべてのCMU507、513、514が、データ受信状況(データ受信成功)を通知する。
T1305では、BMU502は、CMU507、513、514からデータ受信状況通知を受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判定する(S1151)。ここでは、データ受信状況通知を受信したと判断する。
BMU502は、データ受信状況通知の内容を確認する(S1154)。ここでは、すべてのCMU507、513、514から受信したデータ受信状況通知の内容が、受信成功である。
そして、BMU502は、CMU507、513、514を、検証用データ送信要求実施対象CMUとして登録する(S1155)。
T1306では、BMU502は、所定の検証用データ送信処理時の処理を開始する。
BMU502は、検証用データ送信要求実施対象CMUが存在するかどうかを確認する。ここでは、CMU507、513、514の複数のCMUが実施対象として存在するため、複数のCMUの中の一つ(CMU507)へ検証用データの送信要求を行う(S1172)。
そして、CMU507を、検証用データ送信要求実施対象CMUから登録を解除する(S1173)。
T1307では、CMU507がBMU502から検証用データ送信要求を受信したため、データ受信時の処理を開始する。
CMU507は受信したデータの種類を判断する(S1251)。ここでは、CMU507は、検証用データ送信要求を受信したと判断する。
T1308では、CMU507の第二のプログラム送信部510が、検証用データを送信する(S1260)。
T1309では、BMU502はCMU507から検証用データを受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1302で送信した書き換え用データと、CMU507から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、BMU502が送信し、CMU507が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
一方で、CMU513、514は、BMU502と同様に、CMU507からの検証用データをそれぞれ受信したため、データ受信時の処理を開始する。
CMU513、514は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU513、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU513、514はそれぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
同様に、T1310では、BMU502は、所定の検証用データ送信処理時の処理を実施し、CMU513へ検証用データの送信要求を行う。そして、T1311ではCMU513は、BMU502から検証用データ送信要求を受信したため、データ受信時の処理を開始する。CMU513は、T1307のCMU507のデータ受信時と同様の処理を行う。
T1312では、CMU513の第二のプログラム送信部510は、検証用データの送信を行う(S1261)。そして、T1313では、BMU502は、CMU513から検証用データを受信したため、データ受信時の処理を開始する。BMU502は、T1309のデータ受信時と同様の処理を行う。
また、CMU507、514は、CMU513から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、514はT1309のCMU513、514のデータ受信時と同様の処理を行う。
同様に、T1314では、BMU502は、所定の検証用データ送信処理時の処理を実施し、CMU514へ検証用データの送信要求を行う。そして、T1315ではCMU514は、BMU502から検証用データ送信要求を受信したため、データ受信時の処理を開始する。CMU514は、T1307のCMU507のデータ受信時と同様の処理を行う。
T1316では、CMU514の第二のプログラム送信部510は、検証用データの送信を行う(S1261)。そして、T1317では、BMU502は、CMU514から検証用データを受信したため、データ受信時の処理を開始する。BMU502は、T1309のデータ受信時と同様の処理を行う。
また、CMU507、513は、CMU514から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、513はT1309のCMU513、514のデータ受信時と同様の処理を行う。そして、すべてのCMU507、513、514の検証の結果がOKとなる。
T1318では、検証用データ受信タイムアウトであると判断し、BMU502は、処理を終了する。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
次に、実施の形態2において本発明の特徴である、BMU502が送信した書き換え用データに、ネットワーク上でノイズ等により誤りが混入し、誤りが混入した書き換え用データを受信したCMU507、513、514が存在する場合の動作を、図7から図12および図14を用いて詳述する。
ここでは、BMU502が送信し、CMU507、514が受信した書き換え用データには、ネットワーク上で誤りが混入しなかったが、BMU502が送信し、CMU513が受信した書き換え用データには、ネットワーク上でノイズ等により誤りが混入した場合とする。
図14は、BMU502がCMU507、513、514のプログラムを書き換える際のタイミングチャートを示す。図14において、受信状況は、CMU507、513、514のデータ受信状況通知部1003の通知結果を示し、検証結果は、BMU502のデータ送信成否判断部1001の検証処理の結果を示す。
また、T1404に示すTxは、CMU507、513、514における書き換え用データの受信タイムアウトとなる時間であり、T1426に示すTyは、BMU502における検証用データの受信タイムアウトとなる時間である。
図14のT1401では、BMU502は、CMU507、513、514からデータ受信状況通知を受けていないため、受信状況は未判断である。また、検証用データも受信していないため、検証結果も未判断である。
T1402では、BMU502は、書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S1101)。
BMU502は、検証用データの受信タイムアウトであるかどうかを示す経過時間のカウントを開始する(S1102)。
BMU502は、経過時間のカウントにより、検証用データの受信タイムアウトかどうかを判断する(S1103)。BMU502は、書き換え用データを送信した時点(T1402)では、タイムアウトではないと判断する。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1201)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S1202)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T1402)では、それぞれタイムアウトではないと判断する。
T1403では、CMU507、513、514は、BMU502からそれぞれ書き換え用データを受信したため、データ受信時の処理を開始する。
CMU507、513、514は、それぞれ受信したデータの種類を判断する(S1251)。ここでは、CMU507、513、514は、書き換え用データを受信したと判断する。
CMU507、513、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1252)。
CMU507、513、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S1253)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、513、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1254)。
ここで、CMU513が受信した書き換え用データには、ネットワーク上でノイズ等により誤りが混入しているが、データの受信は行われたため、CMU513は、受信成功であると判断する。
T1404では、CMU507、513、514は、それぞれ書き換え用データ受信タイムアウトであると判断する。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S1205)。ここでは、すべてのCMU507、513、514が受信成功であると判断する。
そして、CMU507、513、514のデータ受信状況通知部1003は、データ受信状況をBMU502へ通知する。ここでは、すべてのCMU507、513、514が、データ受信状況(データ受信成功)を通知する。
T1405では、BMU502は、CMU507、513、514からデータ受信状況通知を受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判定する(S1151)。ここでは、データ受信状況通知を受信したと判断する。
BMU502は、データ受信状況通知の内容を確認する(S1154)。ここでは、すべてのCMU507、513、514から受信したデータ受信状況通知の内容が、受信成功である。
そして、BMU502は、CMU507、513、514を、検証用データ送信要求実施対象CMUとして登録する(S1155)。
T1406では、BMU502は、所定の検証用データ送信処理時の処理を開始する。
BMU502は、検証用データ送信要求実施対象CMUが存在するかどうかを確認する。ここでは、CMU507、513、514が実施対象として存在するため、CMU507へ検証用データの送信要求を行う(S1172)。
そして、CMU507を、検証用データ送信要求実施対象CMUから登録を解除する(S1173)。
T1407では、CMU507がBMU502から検証用データ送信要求を受信したため、データ受信時の処理を開始する。
CMU507は受信したデータの種類を判断する(S1251)。ここでは、CMU507は、検証用データ送信要求を受信したと判断する。
T1408では、CMU507の第二のプログラム送信部510が、検証用データを送信する(S1260)。
T1409では、BMU502はCMU507から検証用データを受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1402で送信した書き換え用データと、CMU507から受信した検証用データが一致しているかどうかの検証処理を行う。
ここでは、BMU502が送信し、CMU507が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
一方で、CMU513、514は、BMU502と同様に、CMU507からの検証用データをそれぞれ受信したため、データ受信時の処理を開始する。
CMU513、514は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU513、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU513、514はそれぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
同様に、T1410では、BMU502は、所定の検証用データ送信処理時の処理を実施し、CMU513へ検証用データの送信要求を行う。そして、T1411ではCMU513は、BMU502から検証用データ送信要求を受信したため、データ受信時の処理を開始する。
CMU513は、受信したデータの種類を判断する(S1251)。ここでは、CMU513は、検証用データ送信要求を受信したと判断する。
T1412では、CMU513の第二のプログラム送信部510が、検証用データを送信する(S1260)。
T1413では、BMU502はCMU513から検証用データを受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1402で送信した書き換え用データと、CMU513から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、CMU513が受信した書き換え用データには、ネットワーク上でノイズ等により誤りが混入したため、CMU513が送信する検証用データにも同じ誤りが混入している。そのため、書き換え用データと、検証用データが一致せず、BMU502のデータ送信成否判断部1001の検証処理の結果は、NGとなる。
T1414では、BMU502は、CMU513へ、検証失敗通知を行う(S1160)。
T1415では、CMU513は、BMU502から検証失敗通知を受信したため、データ受信時の処理を開始する。
CMU513は、受信したデータの種類を判断する(S1251)。ここでは、CMU513は、検証失敗通知を受信したと判断する。
そして、CMU513のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する(1262)。そして、CMU513は、受信に失敗した書き換え用データを認識する(S1263)。ここでは、検証失敗通知に含まれているシーケンス番号の書き換え用データの受信に失敗したと判断する。
BMU502は、検証処理を実施したCMU513以外で、検証用データ送信要求実施対象のCMUが存在するかどうかを判断する(S1161)。
T1416では、BMU502は、検証用データ送信要求実施対象のCMUである、CMU514へ検証用データの送信要求を行う(S1163)。そして、CMU514を、検証用データ送信要求実施対象CMUから登録を解除する(S1164)。
T1417では、CMU514がBMU502から検証用データ送信要求を受信したため、データ受信時の処理を開始する。
CMU514は受信したデータの種類を判断する(S1251)。ここでは、CMU514は、検証用データ送信要求を受信したと判断する。
T1418では、CMU514の第二のプログラム送信部510が、検証用データを送信する(S1260)。
T1419では、BMU502はCMU514から検証用データを受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1402で送信した書き換え用データと、CMU514から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、BMU502が送信し、CMU514が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
一方で、CMU507、513は、BMU502と同様に、CMU514からの検証用データをそれぞれ受信したため、データ受信時の処理を開始する。
CMU507、513は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU507、513は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU507、513はそれぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
CMU513は、受信していないため、受信した検証用データは、受信に失敗した書き換え用データであると判断する。
CMU513は、受信した検証用データを用いて、受信に失敗した書き換え用データを置き換えることで補完する(S1256)。
CMU513のプログラム書き換え部512は、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1257)。
CMU513は、所定個数書き換え用データを受信したかどうかを判定する(S1258)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU513のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1259)。
そして、CMU513のデータ受信状況通知部1003は、データ受信状況(データ受信成功)をBMU502へ通知し、処理を終了する。
T1421では、BMU502はCMU513からデータ受信状況通知を受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判定する(S1151)。ここでは、データ受信状況通知を受信したと判断する。
BMU502は、データ受信状況通知の内容を確認する(S1154)。ここでは、CMU513から受信したデータ受信状況通知の内容が、受信成功である。
そして、BMU502は、CMU513を、検証用データ送信要求実施対象CMUとして登録する(S1155)。
T1422では、BMU502は、所定の検証用データ送信処理時の処理を開始する。
BMU502は、検証用データ送信要求実施対象CMUが存在するかどうかを確認する。ここでは、CMU513が実施対象として存在するため、CMU513へ検証用データの送信要求を行う(S1172)。
そして、CMU513を、検証用データ送信要求実施対象CMUから登録を解除する(S1173)。
T1423では、CMU513がBMU502から検証用データ送信要求を受信したため、データ受信時の処理を開始する。
CMU513は受信したデータの種類を判断する(S1251)。ここでは、CMU513は、検証用データ送信要求を受信したと判断する。
T1424では、CMU513の第二のプログラム送信部510が、検証用データを送信する(S1260)。
T1425では、BMU502はCMU513から検証用データを受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1302で送信した書き換え用データと、CMU513から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、CMU514が送信し、かつCMU513が受信し、受信に失敗した書き換え用データとして補完した検証用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
一方で、CMU507、514は、BMU502と同様に、CMU513からの検証用データをそれぞれ受信したため、データ受信時の処理を開始する。
CMU507、514は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU507、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU507、514はそれぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
T1426では、検証用データ受信タイムアウトであると判断し、BMU502は、処理を終了する。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
上述のように、実施の形態2の制御システムでは、第一の制御装置と複数の第二の制御装置がネットワークを介してデータの送受信を行っている環境において、第一の制御装置が、第二の制御装置のプログラム書き換えを行う際、第一の制御装置が送信した書き換え用データにネットワーク上で、ノイズ等により誤りが混入した場合においても、第一の制御装置は、第二の制御装置へ他の第二の制御装置から送信される検証用データの受信を行わせるようにすることで、第一の制御装置は書き換え用データの再送信を行う必要が無いため、第一の制御装置のプログラム再送信による、第一の制御装置のプログラム書き換えに要する処理負荷の増加を防止することができる。
さらに、第一の制御装置が、書き換え用データの受信に成功した第二の制御装置のうちの特定の第二の制御装置に、検証用データを送信させることで、ネットワーク上での検証用データの衝突による、第二の制御装置の検証用データの再送信を低減することができる。
実施の形態3.
次に、実施の形態3について説明する。
図15は、この発明の実施の形態3における第一の制御装置のプログラム書き換え時の処理を示すフローチャートである。
図16は、この発明の実施の形態3における第一の制御装置のデータ受信時の処理を示すフローチャートである。
図17は、この発明の実施の形態3における第一の制御装置の所定の検証用データ送信処理時の処理を示すフローチャートである。
図18は、この発明の実施の形態3において、第一の制御装置が書き換え用データ送信後、所定時間後も検証の結果がOKとなっていない第二の制御装置が存在する場合のタイミングチャートである。
実施の形態3におけるバッテリ制御システムの構成は、実施の形態2と同じである。
実施の形態3として、BMU502が書き換え用データを送信後、検証用データ受信タイムアウト後に、検証の結果がOKとなっていないCMU507、513、514が存在する場合のプログラム書き換え手順に付いて、図7、図11、図12、図15、図18を用いて述べる。
なお、CMU507、513、514の動作は、実施の形態2で説明した、図11、図12の動作と等しいため、その説明を省略する。
以下、図15〜図17にしたがって、実施の形態3における第一の制御装置であるBMU502の動作を説明する。
なお、図15で、S1504、S1505以外の処理は、実施の形態2で説明した図8の対応する処理と等しいため、その説明を省略する。
また、図16、図17の処理は、実施の形態2における図9、図10の対応する処理と同じであり、その説明を省略する。
図15のステップS1504では、BMU502は、検証の結果がOKとなっていないCMU504、513、514が存在するかどうかを判断する。存在すると判断した場合、ステップS1505へ進み、存在していないと判断した場合、処理を終了する。
ステップS1505では、BMU502は、検証の結果がOKとなっていないCMU507、513、514を書き換え処理の開始時の状態に戻し、再度書き換え用データの送信を行う。
そして、BMU502は、検証用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを再度開始する。
次に、図18のタイミングチャートについて説明する。
図18は、BMU502がCMU507、513、514のプログラムを書き換える際のタイミングチャートであり、図18での受信状況は、CMU507、513、514のデータ受信状況通知部1003の通知結果を示し、検証結果は、BMU502のデータ送信成否判断部1001の検証処理の結果を示す。また、T1604、1622に示すTx1、Tx2はCMU507、513、514における書き換え用データの受信タイムアウトとなる時間であり、T1620、T1628に示すTy1、Ty2は、BMU502における検証用データの受信タイムアウトとなる時間である。
実施の形態3において、図18のT1601からT1618までの動作は、実施の形態2で説明した図14のT1401からT1418までの動作と同じであるため、その説明を省略する。
実施の形態2との相違点は、実施の形態2では、CMU513は、CMU514から送信される検証用データを受信し、受信に失敗した書き換え用データを補完することができたが、実施の形態3では、CMU513は、ノイズ等の影響により、CMU513は、CMU514から送信される検証用データの受信に失敗した場合とする。
T1619では、BMU502は、CMU514から検証用データを受信したため、データ受信時の処理を行う。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1602で送信した書き換え用データと、CMU514から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、BMU502が送信し、CMU514が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
一方で、CMU507は、BMU502と同様に、CMU514からの検証用データを受信したため、データ受信時の処理を開始する。ここで、CMU513は、CMU514からの検証用データの受信に失敗している。
CMU507は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU507は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU507は、受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
T1620では、検証用データ受信タイムアウトであると判断し、BMU502は、検証の結果がOKとなっていないCMU507、513、514が存在するかどうかを判断する(S1504)。
BMU502の第一のプログラム送信部503は、CMU513が検証の結果がOKとなっていないため、CMU513を書き換え処理開始時の状態に戻し、再度書き換え用データを送信する(S1505)。
そして、BMU502は、検証用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを再度開始する。
BMU502は、経過時間のカウントにより、検証用データの受信タイムアウトかどうかを判断する(S1503)。BMU502は、書き換え用データを送信した時点(T1620)では、タイムアウトではないと判断する。
CMU513は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1201)。
CMU513は、経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S1202)。CMU513は、BMU502が書き換え用データを送信した時点(T1620)では、タイムアウトではないと判断する。
T1621では、CMU513は、BMU502から書き換え用データを受信したため、データ受信時の処理を開始する。
CMU513は、受信したデータの種類を判断する(S1251)。ここでは、CMU513は、書き換え用データを受信したと判断する。
CMU513のプログラム書き換え部512は、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1252)。
CMU513は、所定個数書き換え用データを受信したかどうかを判定する(S1253)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU513のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1254)。
T1622では、CMU513は書き換え用データ受信タイムアウトであると判断する。
CMU513は、データ受信成否判断部509の判断結果を判定する(S1205)。ここでは、受信成功であると判断する。
そして、CMU513のデータ受信状況通知部1003は、データ受信状況(データ受信成功)をBMU502へ通知する。
T1623では、BMU502は、CMU513からデータ受信状況通知を受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判定する(S1551)。ここでは、データ受信状況通知を受信したと判断する。
BMU502は、データ受信状況通知の内容を確認する(S1554)。ここでは、CMU513から受信したデータ受信状況通知の内容が、受信成功である。
そして、BMU502は、CMU513を、検証用データ送信要求実施対象CMUとして登録する(S1555)。
T1624では、BMU502は、所定の検証用データ送信処理時の処理を開始する。
BMU502は、検証用データ送信要求実施対象CMUが存在するかどうかを確認する。ここでは、CMU513が実施対象として存在するため、CMU513へ検証用データの送信要求を行う(S1572)。
そして、CMU513を、検証用データ送信要求実施対象CMUから登録を解除する(S1573)。
T1625では、CMU513がBMU502から検証用データ送信要求を受信したため、データ受信時の処理を開始する。
CMU513は、受信したデータの種類を判断する(S1251)。ここでは、CMU513は、検証用データ送信要求を受信したと判断する。
T1626では、CMU513の第二のプログラム送信部510が、検証用データを送信する(S1260)。
T1627では、BMU502は、CMU513から検証用データを受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1624で送信した書き換え用データと、CMU513から受信した検証用データが一致しているかどうかの検証処理を行う。
ここでは、BMU502が送信し、CMU513が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
一方で、CMU507、514は、BMU502と同様に、CMU513からの検証用データをそれぞれ受信したため、データ受信時の処理を開始する。
CMU507、514は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU507、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU507、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。そして、すべてのCMU507、513、514の検証の結果がOKとなる。
T1628では、BMU502は、検証用データ受信タイムアウトであると判断し、検証の結果がOKとなっていないCMU507、513、514が存在するかどうかを判断する(S1504)。
ここでは、検証の結果がOKとなっていないCMU507、513、514が存在しないため、処理を終了する。
実施の形態3によれば、上述のように、実施の形態2の効果に加え、第一の制御装置が書き換え用データを送信し、所定時間経過後、検証の結果がOKとなっていない第二の制御装置が存在する場合でも、第一の制御装置は、書き換え用データを再度送信するようにすることで、第二の制御装置のプログラム書き換えを行うことができる。
実施の形態4.
次に、実施の形態4について説明する。
図19は、この発明の実施の形態4における第二の制御装置のプログラム書き換え時の処理を示すフローチャートである。
図20は、この発明の実施の形態4における第二の制御装置のデータ受信時の処理を示すフローチャートである。
図21は、この発明の実施の形態4において、第二の制御装置が書き換え用データを受信できた場合のタイミングチャートである。
図22は、この発明の実施の形態4において、第二の制御装置が書き換え用データの受信に失敗した場合のタイミングチャートである。
本実施の形態4によるバッテリ制御システムの構成は、実施の形態1と同じである。
図1は、本実施の形態4によるバッテリ制御システムの構成を示す図である。図1に示すように、このバッテリ制御システム501は、第一の制御装置であるBMU502と、第二の制御装置であるCMU507、513、514がCANネットワーク506により接続されて構成されている。
BMU502の動作は、実施の形態1で説明した図2の動作と等しいため、その説明を省略する。
図19、図20は、実施の形態4における第二の制御装置であるCMU507、513、514の動作を説明するフローチャートであり、以下に、図19、図20を用いて、CMU507、513、514の動作を説明する。
なお、CMU507、513、514は、同じ動作をするため、ここではCMU507を用いて説明する。
まず、図19を用いて、CMU507のプログラム書き換え処理開始時の動作について述べる。
ステップS1701では、CMU507は書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、書き換え用データの受信タイムアウトとは、CMU507がBMU502から受信する書き換え用データの最大待ち時間を超えた状態を示す。
ステップS1702では、CMU507が、経過時間のカウントにより、書き換え用データの受信タイムアウトであるかどうかを判断する。タイムアウトである場合、ステップS1703へ進み、タイムアウトでない場合、ステップS1702に留まる。
ステップS1703では、CMU507は、データ受信成否判断部509の判断結果を判定する。判定の結果が受信成功である場合、ステップS1704へ進み、受信成功でない場合、ステップS1707へ進む。
ステップS1704では、CMU507は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、検証用データの送信タイムアウトとは、CMU507が、書き換え用データの受信に成功したと判断してから、検証用データを送信するまでの待ち時間を超えた状態を示す。この待ち時間は、CMU毎に決めておく。
ステップS1705では、CMU507が、経過時間のカウントにより、検証用データ送信待ちタイムアウトであるかどうかを判断する。タイムアウトである場合、ステップS1706へ進み、タイムアウトでない場合、ステップS1705に留まる。
ステップS1706では、CMU507の第二のプログラム送信部510は、検証用データを送信する。
ステップS1707では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する。
次に、図20を用いて、CMU507のデータ受信時の処理について述べる。
ステップS1751では、CMU507は、受信したデータの種類を判断する。受信したデータの種類が書き換え用データである場合、ステップS1752へ進み、検証用データである場合、ステップS1755へ進む。
ステップS1752では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS1753では、CMU507は所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS1754へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とはBMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS1754では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
ステップS1755では、CMU507は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する。
ここでは、書き換え用データにシーケンス番号が付与されており、検証用データにも書き換え用データと同じ番号が付与されている。
CMU507は、受信した検証用データに付与されているシーケンス番号と同じ番号の書き換え用データを受信していない場合、受信に失敗した書き換え用データであると判断し、受信していた場合、受信に失敗した書き換え用データではないと判断する。
判断の結果、受信に失敗した書き換え用データである場合、ステップS1756へ進み、そうでない場合、処理を終了する。
ステップS1756では、CMU507は、受信した検証用データを用いて、受信に失敗した書き換え用データを置き換えることで補完する。
ステップS1757では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS1758では、CMU507は、所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS1759へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とはBMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS1759では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
ステップS1760では、CMU507は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、検証用データの送信タイムアウトとは、CMU507が、書き換え用データの受信に成功したと判断してから、検証用データを送信するまでの待ち時間を超えた状態を示す。この待ち時間は、CMU毎に決めておく。
ステップS1761では、CMU507が、経過時間のカウントにより、検証用データ送信待ちタイムアウトであるかどうかを判断する。タイムアウトである場合、ステップS1762へ進み、タイムアウトでない場合、ステップS1761に留まる。
ステップS1762では、CMU507の第二のプログラム送信部510は、検証用データを送信する。
上述したCMU507のデータ受信時の処理は、データを受信するたびに実施される。
図21は、BMU502がCMU507、513、514のプログラムを書き換える際のタイミングチャートであり、図21において、受信状況は、CMU507、513、514のデータ受信成否判断部509の判断結果を示す。また、TxはCMU507、513、514における書き換え用データの受信タイムアウト時間である。
以下、CMU507、513、514のプログラム書き換えを、本発明により行う場合の処理について、図1、図2、図19〜図21を用いて説明する。
ここでは、すべてのCMU507、513、514がBMU502からの書き換え用データの受信に成功した場合とする。
また、本実施の形態4では、BMU502の第一のプログラム送信部503は、書き換え用プログラム保管部504に保管されている書き換え用プログラムを、1つの書き換え用データとして送信する場合を説明する。書き換え用プログラムを2つ以上の書き換え用データに分割して送信しても本発明の効果には影響しない。
さらに、本実施の形態4では、CMU507、513、514は、同一のプログラムで書き換える場合を説明する。
さらに、CMU507は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウント開始後、2sec後に検証用データを送信し、CMU513は3sec後、CMU514は4sec後に送信する場合を説明する。
図21のT1801では、CMU507、513、514のデータ受信成否判断部509の判断結果は、初期状態(未判断)である。
T1802では、BMU502は書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S601)。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1701)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S1702)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T1802)では、タイムアウトではないと判断する。
T1803では、CMU507、513、514は、それぞれBMU502から書き換え用データを受信したため、データ受信時の処理を開始する。
CMU507、513、514は、それぞれ受信したデータの種類を判断する(S1751)。ここでは、CMU507、513、514は、書き換え用データを受信したと判断する。
CMU507、513、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1752)。
CMU507、513、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S1753)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、513、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1754)。
T1804では、CMU507、513、514は、それぞれ書き換え用データ受信タイムアウトであると判断する。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S1703)。ここでは、すべてのCMU507、513、514が受信成功であると判断する。
そして、CMU507、513、514は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1704)。
T1805では、CMU507が検証用データ送信待ちタイムアウトであると判断する。
そして、CMU507の第二のプログラム送信部510は、検証用データを送信する(S1706)。
T1806では、CMU513、514は、それぞれCMU507から検証用データを受信したため、データ受信時の処理を開始する。
CMU513、514は、受信したデータの種類を判断する(S1751)。ここでは、CMU513、514は、検証用データを受信したと判断する。
CMU513、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1755)。
CMU513、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
T1807では、CMU513が検証用データ送信待ちタイムアウトであると判断する。
そして、CMU513の第二のプログラム送信部510は、検証用データを送信する(S1706)。
T1808では、CMU507、514は、それぞれCMU513から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、514は、T1806のCMU513、514のデータ受信時と同様の処理を行う。
T1809では、CMU514が検証用データ送信待ちタイムアウトであると判断する。
そして、CMU514の第二のプログラム送信部510は、検証用データを送信する(S1706)。
T1810では、CMU507、513は、それぞれCMU514から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、513は、T1806のCMU513、514のデータ受信時と同様の処理を行う。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
次に、実施の形態4において本発明の特徴である、書き換え用データの受信に失敗したCMU507、513、514が存在する場合の動作を、図1、図2、図19、図20、図22を用いて詳述する。
ここでは、CMU507、514はBMU502からの書き換え用データの受信に成功し、CMU513はノイズ等の影響により、BMU502からの書き換え用データの受信に失敗した場合とする。
図22は、BMU502がCMU507、513、514のプログラムを書き換える際のタイミングチャートであり、図22において、受信状況は、CMU507、513、514のデータ受信成否判断部509の判断結果を示す。また、T1904に示すTxは、CMU507、513、514における書き換え用データの受信タイムアウトとなる時間である。
T1901では、CMU507、513、514それぞれのデータ受信成否判断部509の判断結果は、初期状態(未判断)である。
T1902では、BMU502は、書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S601)。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1701)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判定する(S1702)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T1902)では、タイムアウトではないと判断する。
CMU507、513、514は、書き換え用データを受信したかどうかを判断する(S1703)。
T1903では、CMU507、514は、それぞれBMU502から書き換え用データを受信したため、データ受信時の処理を開始する。CMU513は、書き換え用データを受信していないと判断する。
CMU507、514は、それぞれ受信したデータの種類を判断する(S1751)。ここでは、CMU507、514は、書き換え用データを受信したと判断する。
CMU507、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1752)。
CMU507、514は、所定個数書き換え用データを受信したかどうかを判定する(S1753)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1754)。
一方、CMU513のデータ受信成否判断部509の判断結果は、未判断である。
T1904では、CMU507、513、514は、それぞれ書き換え用データ受信タイムアウトであると判断する。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S1703)。ここでは、CMU507、514が受信成功であると判断する。CMU513は、データ受信成否判断部509の判断結果が未判断であるため、書き換え用データ受信失敗であると判断する。
そして、CMU507、514は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1704)。
T1905では、CMU507が検証用データ送信待ちタイムアウトであると判断する。
そして、CMU507の第二のプログラム送信部510は、検証用データを送信する(S1706)。
T1906では、CMU513、514は、それぞれCMU507から検証用データを受信したため、データ受信時の処理を開始する。
CMU513、514は、受信したデータの種類を判断する(S1751)。ここでは、CMU513、514は、検証用データを受信したと判断する。
CMU513、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1755)。
CMU513、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513は、受信した検証用データが、受信に失敗した書き換え用データであると判断する。CMU514は、受信に失敗した書き換え用データではないと判断し、処理を終了する。
CMU513は、受信した検証用データを用いて、受信に失敗した書き換え用データを置き換えることで補完する(S1756)。そして、CMU513のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1757)。
CMU513は、所定個数書き換え用データを受信したかどうかを判定する(S1758)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU513のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1759)。
そして、CMU513は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1760)。
T1907では、CMU514が検証用データ送信待ちタイムアウトであると判断する。
そして、CMU514の第二のプログラム送信部510は、検証用データを送信する(S1706)。
T1908では、CMU507、513は、それぞれCMU514から検証用データを受信したため、データ受信時の処理を開始する。
CMU507、513は、受信したデータの種類を判断する(S1751)。ここでは、CMU507、513は、検証用データを受信したと判断する。
CMU507、513は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1755)。
CMU507、513は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507、513は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
T1909では、CMU513が検証用データ送信待ちタイムアウトであると判断する。
そして、CMU513の第二のプログラム送信部510は、検証用データを送信する(S1706)。
T1910では、CMU507、514は、それぞれCMU513から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、514は、T1908のCMU507、513のデータ受信時と同様の処理を行う。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
実施の形態4によれば、上述のように、第一の制御装置と複数の第二の制御装置がネットワークを介してデータの送受信を行っている環境において、第一の制御装置は、書き換え用プログラムを書き換え用データとして送信し、書き換え用データの受信に成功した特定の第二の制御装置は、第一の制御装置から受信した書き換え用データと同一内容のデータからなる検証用データを送信し、書き換え用データの受信に失敗した第二の制御装置は、特定の第二の制御装置から送信される検証用データを受信して、受信に失敗した書き換え用データを補完することで、第一の制御装置は書き換え用データの再送信を行う必要が無いため、第一の制御装置のプログラム再送信による、第一の制御装置のプログラム書き換えに要する処理負荷の増加を防止することができる。
さらに、書き換え用データの受信に成功したと判断した第二の制御装置は、第二の制御装置毎に決めておく所定時間経過後に、検証用データを送信することで、ネットワーク上での検証用データの衝突による、第二の制御装置の検証用データの再送信を低減することができる。
実施の形態5.
次に、実施の形態5について説明する。
図23は、この発明の実施の形態5におけるバッテリ制御システムを示す構成図である。
図23において、バッテリ制御システム501は、第一の制御装置であるBMU502と、第二の制御装置であるCMU507、513、514がCANネットワーク506により接続されて構成されている。
また、BMU502は、第三の制御装置である書き換えツール2001と、FlexRayネットワーク2005により接続されている。
書き換え用ツール2001は、第三のプログラム送信部2002、外部機器における書き換え用プログラム保管部(第三のプログラム保管部)2003、FlexRay通信インタフェース部(第四の通信インタフェース部)2004から構成される。
第三のプログラム送信部2002は、外部機器における書き換え用プログラム保管部2003に保管されているプログラムを、一つ以上の書き換え用データに分割して、FlexRay通信インタフェース部2004により、送信する。
外部機器における書き換え用プログラム保管部2003は、CMU507、513、514の書き換え用プログラムを保管する。
FlexRay通信インタフェース部2004は、FlexRayネットワーク2005を介して、データの送受信を行う。
BMU502は、実施の形態1で説明した図1の構成に加え、FlexRay通信インタフェース部(第三の通信インタフェース部)2006、第一のプログラム受信部2007を備える。
FlexRay通信インタフェース部2006は、FlexRayネットワーク2005を介して、データの送受信を行う。
第一のプログラム受信部2007は、FlexRayネットワーク2005から受信したデータを基に、書き換え用プログラム保管部504に保管されているプログラムを更新する。
CMU507、513、514は、実施の形態1で説明した図1の構成と同じである。
BMU502の動作は、実施の形態1で説明した図2の動作と等しいため、その説明を省略する。
また、CMU507、513、514の動作は、実施の形態1で説明した図3、図4の動作と等しいため、その説明を省略する。
実施の形態5は、図23のような構成とし、BMU502がCMU507、513、514のプログラム書き換えを行う前に、書き換え用ツール2001は、BMU502へFlexRayネットワーク2005を介して、外部機器における書き換え用プログラム保管部2003のプログラムを送信する。
そして、BMU502は、FlexRayネットワーク2005から受信したデータを基に、書き換え用プログラム保管部504のプログラムを更新する。
上述の手順を、第一の制御装置が第二の制御装置のプログラム書き換えを行う前に実施する。このことにより、従来のように書き換え用ツールが制御機器のプログラム書き換えを一つ一つ行うような場合でも、第一の制御装置のプログラム書き換えを行い、第一の制御装置が複数の第二の制御装置のプログラム書き換えを行うことで、本発明の効果を得ることができる。
このように、現行の書き換え用ツールを変更することなく、本発明を適用することが可能である。
なお、上記説明では、本発明による制御システムを、バッテリ制御システムに適用した場合について説明したが、本発明はこれに限定されるものではなく、各種制御システムに適用可能であり、同様な効果を奏する。
また、上記説明では、第一の制御装置と第二の制御装置は、CANネットワークにより接続されるとしたが、これに限定されず、Ethernet(登録商標)など他の通信規格のネットワークでも良い。また、Bluetooth(登録商標)などの無線ネットワークで接続されるとしても良い。
501 バッテリ制御システム
502 BMU
503 第一のプログラム送信部
504 書き換え用プログラム保管部
505、508 CAN通信インタフェース部
506 CANネットワーク
507、513、514 CMU
509 データ受信成否判断部
510 第二のプログラム送信部
511 動作プログラム保管部
512 プログラム書き換え部
515 バッテリ
516、517、518 セル
1001 データ送信成否判断部
1002 検証用データ送信要求部
1003 データ受信状況通知部
2001 書き換え用ツール
2002 第三のプログラム送信部
2003 外部機器における書き換え用プログラム保管部
2004、2006 FlexRay通信インタフェース部
2005 FlexRayネットワーク
2007 第一のプログラム受信部

Claims (4)

  1. 第一の制御装置と複数の第二の制御装置がネットワークを介して接続された制御システムであって、
    上記第一の制御装置は、
    上記ネットワークを介してデータの送受信を行う第一の通信インタフェース部と、
    上記各第二の制御装置の動作を決定するプログラムを書き換えるための書き換え用プログラムを保管する第一のプログラム保管部と、
    上記書き換え用プログラムから一つ以上の書き換え用データを形成して、上記第一の通信インタフェース部により送信する第一のプログラム送信部とを備え、
    上記各第二の制御装置は、
    上記ネットワークを介してデータの送受信を行う第二の通信インタフェース部と、
    上記ネットワークからの書き換え用データを受信できたかどうかを判断するデータ受信成否判断部と、
    上記第一の制御装置から受信した書き換え用データと同一内容のデータからなる検証用データを、上記第二の通信インタフェース部により送信する第二のプログラム送信部と、
    上記第二の制御装置の動作を決定するプログラムを保管する第二のプログラム保管部と、
    上記ネットワークから受信した書き換え用データを基に、上記第二のプログラム保管部のプログラムを書き換えるプログラム書き換え部とを備え、
    上記第一の制御装置は、複数の上記第二の制御装置へ上記書き換え用データを送信し、
    上記データ受信成否判断部が書き換え用データの受信に成功したと判断した第二の制御装置のうちの特定の第二の制御装置は、上記検証用データを送信し、
    上記データ受信成否判断部が書き換え用データの受信に失敗したと判断した第二の制御装置は、上記特定の第二の制御装置から送信される検証用データを受信して上記受信に失敗した書き換え用データを補完し、この補完した書き換え用データを基に、上記第二のプログラム保管部のプログラムを書き換えることを特徴とする制御システム。
  2. 上記第一の制御装置は、上記第二の制御装置に、上記検証用データの送信を要求する検証用データ送信要求部を備え、
    上記第二の制御装置は、上記データ受信成否判断部の判断結果を、上記第一の制御装置に通知するデータ受信状況通知部を備え、
    上記第一の制御装置は、上記第二の制御装置のデータ受信状況通知部から通知された上記データ受信成否判断部の判断結果に基づき、書き換え用データの受信に成功している第二の制御装置に、上記検証用データの送信要求を行い、
    上記第一の制御装置から検証用データの送信要求を受けた上記第二の制御装置は、自身を上記特定の第二の制御装置であると判断することを特徴とする請求項1に記載の制御システム。
  3. 上記第一の制御装置は、上記第一の制御装置が送信した書き換え用データの内容と、上記第二の制御装置から受信した検証用データの内容が一致していた場合、検証の結果がOKと判断し、一致していなかった場合、検証の結果がNGと判断するデータ送信成否判断部を備え、
    上記データ送信成否判断部の検証の結果がNGであると判断した場合、検証の結果がNGとなった第二の制御装置へ通知し、他の第二の制御装置から送信される検証用データを受信させることを特徴とする請求項1または請求項2に記載の制御システム。
  4. 上記第一の制御装置は、上記第二の制御装置へ上記書き換え用データを送信し、所定時間後に検証の結果がOKとなっていない上記第二の制御装置へ、再度、上記書き換え用データを送信することを特徴とする請求項に記載の制御システム。



JP2011091893A 2011-04-18 2011-04-18 制御システム Active JP5357204B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011091893A JP5357204B2 (ja) 2011-04-18 2011-04-18 制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011091893A JP5357204B2 (ja) 2011-04-18 2011-04-18 制御システム

Publications (2)

Publication Number Publication Date
JP2012226466A JP2012226466A (ja) 2012-11-15
JP5357204B2 true JP5357204B2 (ja) 2013-12-04

Family

ID=47276583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011091893A Active JP5357204B2 (ja) 2011-04-18 2011-04-18 制御システム

Country Status (1)

Country Link
JP (1) JP5357204B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014030247A1 (ja) 2012-08-24 2014-02-27 三菱電機株式会社 車載通信システムおよび車載通信方法
DE112013006757B4 (de) * 2013-03-01 2022-03-24 Mitsubishi Electric Corporation Datenverarbeitungsvorrichtung und Kommunikationssystem
JP5996074B1 (ja) * 2015-10-15 2016-09-21 三菱電機株式会社 プログラム書き換えシステム及びプログラム書き換え方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002208912A (ja) * 2001-01-10 2002-07-26 Sanyo Electric Co Ltd データ通信装置およびデータ受信側機器のファームウェア書き換え装置
JP4520671B2 (ja) * 2001-08-07 2010-08-11 ソフトバンクモバイル株式会社 ダウンロードシステム
JP5266146B2 (ja) * 2009-06-10 2013-08-21 パナソニック株式会社 ファームウェアのアップデート方法、および電力線搬送通信システム

Also Published As

Publication number Publication date
JP2012226466A (ja) 2012-11-15

Similar Documents

Publication Publication Date Title
US9569517B1 (en) Fault tolerant distributed key-value storage
CN105988480B (zh) 飞行控制系统命令选择和数据传输
US9690678B2 (en) Fault tolerant systems and method of using the same
JP4695705B2 (ja) クラスタシステムおよびノード切り替え方法
US20220027970A1 (en) Method and apparatus for agreement of block in blockchain network
US10673936B2 (en) Self-organized retail source request routing and distributed load sharing systems and methods
JP5357204B2 (ja) 制御システム
JP6431197B2 (ja) スナップショット処理方法および関係付けられたデバイス
CN106909307B (zh) 一种管理双活存储阵列的方法及装置
KR102577432B1 (ko) 블록체인 네트워크의 블록 합의 방법 및 장치
CN108880868A (zh) Bfd保活报文传输方法、装置、设备及机器可读存储介质
JP2015115727A (ja) プログラマブルロジックデバイス
CN105808345A (zh) 数据处理方法、加速引擎、控制板和系统
US10089195B2 (en) Method for redundant processing of data
JP5613119B2 (ja) マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム
JPWO2007099584A1 (ja) エラー検出装置
US10101987B2 (en) Method and system of processing an image upgrade
JP2011182258A (ja) CAN(ControllerAreaNetwork)システム、通信ユニット、及び通信方法
JP2009026182A (ja) プログラム実行システム及び実行装置
JP6415161B2 (ja) システム管理装置およびシステム
US11456934B2 (en) Method, management node and processing node for continuous availability in cloud environment
US20240311247A1 (en) Electronic control unit and storage medium storing software redundancy establishing program
JP2005346164A (ja) データ処理装置およびデータ転送制御方法
JP6271103B1 (ja) 制御装置及び制御方法
CN104426923A (zh) 数据同步方法及装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130425

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: 20130820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130829

R151 Written notification of patent or utility model registration

Ref document number: 5357204

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250