JP5357204B2 - 制御システム - Google Patents
制御システム Download PDFInfo
- 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
Links
- 238000012795 verification Methods 0.000 claims abstract description 344
- 230000005540 biological transmission Effects 0.000 claims description 141
- 238000004891 communication Methods 0.000 claims description 33
- 230000001502 supplementing effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 121
- 238000000034 method Methods 0.000 description 120
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 239000013589 supplement Substances 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Description
これら電子装置は、電子装置が保持するプログラムに基づいて動作をしている。
電子装置のプログラムは、電子装置の生産時に書き込まれるだけでなく、車両搭載後にも書き換えることがある。そのため、電子装置を車両から取り外すことなく、プログラムの書き換えを行うことが必要となっている。
そこで、電子装置を車両から取り外すことなく、ネットワークを介して書き換え対象の制御装置のプログラムを書き換えることが一般的に実施されている。
このようなバッテリ制御システムにおいて、第一の制御装置が、複数の第二の制御装置のプログラムを書き換える場合、同一のプログラムで書き換えを行う場合でも、プログラムの書き換えを個別に行わなければならず、プログラム書き換えに要する時間が長くなるという問題があった。
以下、特許文献1で提案されているプログラム書き換え方法について述べる。特許文献1に記載のプログラム書き換え方法では、第一の制御装置である一次制御部と、第二の制御装置である二次制御部がネットワークに接続された環境において、同一のプログラムで書き換える二次制御部をグループ化する。
そして、一次制御部は、まずグループ1へプログラムをデータとして同時に送信し、グループ1の二次制御部は受信したデータを基に、プログラムの書き換えを行う。
次に、グループ2へプログラムをデータとして送信し、グループ2の二次制御部は受信したデータを基に、プログラムの書き換えを行う。
このように、同一プログラムで書き換えを行う二次制御部をグループ化し、グループをまとめてプログラムの書き換えを行うことで、全ての二次制御部のプログラムの書き換えを個別に行う場合に比べ、プログラム書き換えに要する時間を短縮することができる。
例えば、一時制御部がプログラムをデータとして送信したにも係わらず、ノイズの影響で紛失され、グループ1の一つの二次制御部がデータの受信に失敗した場合、一次制御部はグループ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の監視結果を基に、バッテリ残量の計算や、異常監視などを行う。
第一のプログラム送信部503は、書き換え用プログラム保管部504に保管されているプログラムを、一つ以上の書き換え用データに分割して、CAN通信インタフェース部505により送信する。
書き換え用プログラム保管部504は、CMU507、513、514の書き換え用プログラムを保管する。
CAN通信インタフェース部505は、CANネットワーク506を介して、データの送受信を行う。
BMU502は、上述した機能以外にも機能を有するが、ここでは、本実施の形態1の特徴に大きく関連する部分のみ説明し、他の機能については説明を省略する。
CAN通信インタフェース部508は、CANネットワーク506を介して、データの送受信を行う。
データ受信成否判断部509は、CAN通信インタフェース部508を介してCANネットワーク506から書き換え用データを受信できたかどうかの判断を行う。
第二のプログラム送信部510は、BMU502から受信した書き換え用データと同一内容のデータからなる検証用データを、CAN通信インタフェース部508により送信する。
動作プログラム保管部511は、CMU507、513、514の動作を決定するプログラムを保管する。
プログラム書き換え部512は、CANネットワーク506から受信したデータを基に、動作プログラム保管部511のプログラムを書き換える。
また、CMU507、513、514は、上述した機能以外にも機能を有するが、ここでは、本実施の形態1の特徴に大きく関連する部分のみ説明し、他の処理については説明を省略する。
図3は、この発明の実施の形態1における第二の制御装置のプログラム書き換え時の処理を示すフローチャートである。
図4は、この発明の実施の形態1における第二の制御装置のデータ受信時の処理を示すフローチャートである。
図2は、実施の形態1における第一の制御装置であるBMU502の動作を説明するフローチャートであり、この図2を用いてCMU507、513、514のプログラム書き換えにおけるBMU502の動作を説明する。
ステップS601では、BMU502の第一のプログラム送信部503が、書き換え用プログラム保管部504に保管されているプログラムを、一つ以上の書き換え用データに分割して、CAN通信インタフェース部505により、送信する。
なお、CMU507、513、514は同じ動作をするため、ここでは、CMU507を用いて説明する。
ステップS701では、CMU507は、書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、書き換え用データの受信タイムアウトとは、CMU507がBMU502から受信する書き換え用データの最大待ち時間を超えた状態を示す。
ステップS702では、CMU507が、経過時間のカウントにより、書き換え用データの受信タイムアウトであるかどうかを判断する。タイムアウトである場合、ステップS703へ進み、タイムアウトでない場合、ステップS702に留まる。
ステップS704では、CMU507の第二のプログラム送信部510は、検証用データを送信する。
ステップS705では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する。
ステップS751では、CMU507は、受信したデータの種類を判断する。受信したデータの種類が書き換え用データである場合、ステップS752へ進み、検証用データである場合、ステップS755へ進む。
ステップS752では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS753では、CMU507は所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS754へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とはBMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS754では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
CMU507は、受信した検証用データに付与されているシーケンス番号と同じ番号の書き換え用データを受信していない場合、受信に失敗した書き換え用データであると判断し、受信していた場合、受信に失敗した書き換え用データではないと判断する。判断の結果、受信に失敗した書き換え用データである場合、ステップS756へ進み、そうでない場合、処理を終了する。
ステップS756では、CMU507は、受信した検証用データを用いて、受信に失敗した書き換え用データを置き換えることで補完する。
ステップS757では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS759では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
ステップS760では、CMU507の第二のプログラム送信部510は、検証用データを送信する。
上述したCMU507のデータ受信時の処理は、データを受信するたびに実施される。
また、T804に示すTxは、CMU507、513、514における書き換え用データの受信タイムアウトとなる時間である。
ここでは、すべてのCMU507、513、514がBMU502からの書き換え用データの受信に成功した場合とする。
また、本実施の形態1では、BMU502の第一のプログラム送信部503は、書き換え用プログラム保管部504に保管されている書き換え用プログラムを、1つの書き換え用データとして送信する場合を説明する。書き換え用プログラムを2つ以上の書き換え用データに分割して送信しても本発明の効果には影響しない。
さらに、本実施の形態1では、CMU507、513、514は同一のプログラムで書き換える場合を説明する。
T802では、BMU502は書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S601)。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S701)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S702)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T802)では、それぞれタイムアウトではないと判断する。
CMU507、513、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU507、513、514は、書き換え用データを受信したと判断する。
CMU507、513、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S752)。
CMU507、513、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S753)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、513、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S754)。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S703)。ここでは、すべてのCMU507、513、514が受信成功であると判断する。
そして、CMU507、513、514の第二のプログラム送信部510は、それぞれ検証用データの送信を行う(S704)。ここでは、CMU507が検証用データを送信する。
CMU513、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU513、514は、検証用データを受信したと判断する。
CMU513、514は、それぞれ受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S755)。
CMU513、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513、514は、それぞれ受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
T807では、CMU507、514は、CMU513から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、514は、T805のCMU513、514のデータ受信時と同様の処理を行う。
T809では、CMU507、513は、CMU514から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、513は、T805のCMU513、514のデータ受信時と同様の処理を行う。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
ここでは、CMU507、514は、BMU502からの書き換え用データの受信に成功し、CMU513は、ノイズ等の影響により、BMU502からの書き換え用データの受信に失敗した場合とする。
また、T904に示すTxは、CMU507、513、514における書き換え用データの受信タイムアウトとなる時間である。
T902では、BMU502は書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S601)。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S701)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判定する(S702)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T902)では、それぞれタイムアウトではないと判断する。
CMU507、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU507、514は、書き換え用データを受信したと判断する。
CMU507、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S752)。
CMU507、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S753)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S754)。
一方、CMU513のデータ受信成否判断部509の判断結果は、未判断である。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S703)。ここでは、CMU507、514が受信成功であると判断する。CMU513は、データ受信成否判断部509の判断結果が未判断であるため、書き換え用データ受信失敗であると判断する。
そして、CMU507、514の第二のプログラム送信部510は、それぞれ検証用データの送信を行う(S704)。ここでは、CMU507が検証用データを送信する。
CMU513、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU513、514は、検証用データを受信したと判断する。
CMU513、514は、それぞれ受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S755)。
CMU513、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513は、受信した検証用データが、受信に失敗した書き換え用データであると判断する。CMU514は、受信に失敗した書き換え用データではないと判断し、処理を終了する。
CMU513は、所定個数書き換え用データを受信したかどうかを判定する(S758)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU513のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S759)。
図6に示すように、CMU513は、BMU502からの書き換え用データの受信に失敗したが、他のCMU502から受信した検証用データを基に、受信に失敗した書き換え用データを補完することで、受信成功とする。
CMU507、514は、それぞれ受信したデータの種類を判断する(S751)。ここでは、CMU507、514は、検証用データを受信したと判断する。
CMU507、514は、それぞれ受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S755)。
CMU507、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
このようにして、CMU507、513、514は、ノイズの影響により書き換え用データの受信に失敗した状況においても、プログラム書き換え処理を完了することができる。
このような場合でも、第二の制御装置は、他の第二の制御装置から送信される検証用データにより、受信に失敗した書き換え用データを補完することができるため、同様の効果が得られる。
次に、実施の形態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を介して、検証用データの送信を要求する。
データ受信状況通知部1003は、データ受信成否判断部509の判断結果を、BMU502へCAN通信インタフェース部508により、CANネットワーク506を介して通知する。
図9は、この発明の実施の形態2における第一の制御装置のデータ受信時の処理を示すフローチャートである。
図10は、この発明の実施の形態2における第一の制御装置の所定の検証用データ送信処理時の処理を示すフローチャートである。
図11は、この発明の実施の形態2における第二の制御装置のプログラム書き換え時の処理を示すフローチャートである。
図12は、この発明の実施の形態2における第二の制御装置のデータ受信時の処理を示すフローチャートである。
図8〜図10は、実施の形態2における第一の制御装置であるBMU502の動作を説明するフローチャートであり、この図8〜図10を用いて、CMU507、513、514のプログラム書き換えにおけるBMU502の動作を説明する。
ステップS1101では、BMU502の第一のプログラム送信部503が、書き換え用プログラム保管部504に保管されているプログラムを、一つ以上の書き換え用データに分割して、CAN通信インタフェース部505により、送信する。
ステップS1102では、BMU502は、検証用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、検証用データの受信タイムアウトとは、BMU502がCMU507、513、514から受信する検証用データの最大待ち時間を超えた状態を示す。
ステップS1103では、BMU502は、経過時間のカウントにより、検証用データの受信タイムアウトかどうかを判断する。タイムアウトである場合、処理を終了し、タイムアウトでない場合、ステップS1103に留まる。
ステップS1151では、BMU502は、受信したデータの種類を判断する。受信したデータの種類が検証用データの場合、ステップS1152へ進み、データ受信状況通知の場合、ステップS1154へ進む。
ステップS1152では、BMU502のデータ送信成否判断部1001が、BMU502が送信した書き換え用データとCMU507、513、514のいずれかから受信した検証用データの内容が一致しているかどうかの検証処理を行う。
検証処理の結果がOKである場合、処理を終了し、検証の結果がNGである場合、ステップS1159へ進む。
ステップS1160では、BMU502は、CMU507、513、514へ、検証失敗通知を行う。
ステップS1161では、BMU502は、検証処理を実施したCMU以外で、検証用データ送信要求実施対象のCMUが存在するかどうかを判断する。存在する場合、ステップS1163へ進み、存在しない場合、ステップS1162へ進む。
ここで、検証用データ送信要求実施対象のCMUとは、BMU502が検証用データの送信要求を行うCMU507、513、514を示す。具体的には、受信状況通知が受信成功であり、かつ検証処理の結果がOKとなっていない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のデータ受信時の処理は、データを受信するたびに実施される。
ステップS1171では、BMU502は、検証用データ送信要求実施対象のCMUが存在するかどうかを判断する。存在する場合、ステップS1172へ進み、存在しない場合、処理を終了する。
ステップS1172では、BMU502の検証用データ送信要求部1002は、CMU507、513、514へ検証用データの送信要求を行う。
ステップS1173では、BMU502は、検証用データ送信要求を行ったCMU507、513、514を、検証用データ送信要求実施対象CMUから登録を削除する。
上記BMU502の所定の検証用データ送信処理時の処理は、上述したBMU502のデータ受信時の処理以外のタイミングで実施される。
ステップS1201では、CMU507は書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、書き換え用データの受信タイムアウトとは、CMU507がBMU502から受信する書き換え用データの最大待ち時間を超えた状態を示す。
ステップS1202では、CMU507が、経過時間のカウントにより、書き換え用データの受信タイムアウトであるかどうかを判断する。タイムアウトである場合、ステップS1205へ進み、タイムアウトでない場合、ステップS1202に留まる。
ステップS1206では、CMU507のデータ受信状況通知部1003が、データ受信状況(データ受信成功)をBMU502へ通知する。
ステップS1207では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する。
ステップS1208では、CMU507のデータ受信状況通知部1003が、データ受信状況(データ受信失敗)をBMU502へ通知する。
ステップS1251では、CMU507は、受信したデータの種類を判断する。受信したデータの種類が書き換え用データである場合、ステップS1252へ進み、検証用データである場合、ステップS1255へ進み、検証用データ送信要求である場合、ステップS1261へ進み、検証失敗通知である場合、ステップS1262へ進む。
ステップS1252では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS1253では、CMU507は、所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS1254へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とは、BMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS1254では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
ここでは、書き換え用データにシーケンス番号が付与されており、検証データにも書き換え用データと同じ番号が付与されている。
CMU507は、受信した検証用データに付与されているシーケンス番号と同じ番号の書き換え用データを受信していない場合、受信に失敗した書き換え用データであると判断し、受信していた場合、受信に失敗した書き換え用データではないと判断する。
判断の結果、受信に失敗した書き換え用データである場合、ステップS1256へ進み、そうでない場合、処理を終了する。
ステップS1257では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS1258では、CMU507は、所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS1259へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とはBMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS1259では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に成功したと判断する。
ステップS1260では、CMU507のデータ受信状況通知部1003が、データ受信状況(データ受信成功)をBMU502へ通知する。
ステップS1262では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する。
ステップS1263では、CMU507は、どの書き換え用データの受信に失敗したのかを認識する。ここでは、検証失敗通知には、どの書き換え用データの受信に失敗したのかを示すシーケンス番号を含めておく。また、書き換え用データにもシーケンス番号が付与されており、CMU507は、シーケンス番号により、受信に失敗した書き換え用データを認識する。
上述したCMU507のデータ受信時の処理は、データを受信するたびに実施される。
ここでは、すべてのCMU507、513、514がBMU502からの書き換え用データの受信に成功し、また書き換え用データにネットワーク上でノイズ等による誤りが混入していない場合について説明する。
また、本実施の形態2では、BMU502の第一のプログラム送信部503は、書き換え用プログラム保管部504に保管されているプログラムを、1つの書き換え用データとして送信する場合を説明する。書き換え用プログラムを2つ以上の書き換え用データに分割して送信しても本発明の効果には影響しない。
さらに、本実施の形態2では、CMU507、513、514は同一のプログラムで書き換える場合を説明する。
T1302では、BMU502は、書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S1101)。
BMU502は、検証用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1102)。
BMU502は、経過時間のカウントにより、検証用データの受信タイムアウトかどうかを判断する(S1103)。BMU502は、書き換え用データを送信した時点(T1302)では、タイムアウトではないと判断する。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S1202)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T1302)では、それぞれタイムアウトではないと判断する。
CMU507、513、514は、それぞれ受信したデータの種類を判断する(S1251)。ここでは、CMU507、513、514は、書き換え用データを受信したと判断する。
CMU507、513、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1252)。
CMU507、513、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S1253)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、513、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1254)。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S1205)。ここでは、すべてのCMU507、513、514が受信成功であると判断する。
そして、CMU507、513、514のデータ受信状況通知部1003は、データ受信状況をBMU502へ通知する。ここでは、すべてのCMU507、513、514が、データ受信状況(データ受信成功)を通知する。
BMU502は、受信したデータの種類を判定する(S1151)。ここでは、データ受信状況通知を受信したと判断する。
BMU502は、データ受信状況通知の内容を確認する(S1154)。ここでは、すべてのCMU507、513、514から受信したデータ受信状況通知の内容が、受信成功である。
そして、BMU502は、CMU507、513、514を、検証用データ送信要求実施対象CMUとして登録する(S1155)。
BMU502は、検証用データ送信要求実施対象CMUが存在するかどうかを確認する。ここでは、CMU507、513、514の複数のCMUが実施対象として存在するため、複数のCMUの中の一つ(CMU507)へ検証用データの送信要求を行う(S1172)。
そして、CMU507を、検証用データ送信要求実施対象CMUから登録を解除する(S1173)。
CMU507は受信したデータの種類を判断する(S1251)。ここでは、CMU507は、検証用データ送信要求を受信したと判断する。
T1308では、CMU507の第二のプログラム送信部510が、検証用データを送信する(S1260)。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1302で送信した書き換え用データと、CMU507から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、BMU502が送信し、CMU507が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
CMU513、514は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU513、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU513、514はそれぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
また、CMU507、514は、CMU513から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、514はT1309のCMU513、514のデータ受信時と同様の処理を行う。
また、CMU507、513は、CMU514から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、513はT1309のCMU513、514のデータ受信時と同様の処理を行う。そして、すべてのCMU507、513、514の検証の結果がOKとなる。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
ここでは、BMU502が送信し、CMU507、514が受信した書き換え用データには、ネットワーク上で誤りが混入しなかったが、BMU502が送信し、CMU513が受信した書き換え用データには、ネットワーク上でノイズ等により誤りが混入した場合とする。
また、T1404に示すTxは、CMU507、513、514における書き換え用データの受信タイムアウトとなる時間であり、T1426に示すTyは、BMU502における検証用データの受信タイムアウトとなる時間である。
T1402では、BMU502は、書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S1101)。
BMU502は、検証用データの受信タイムアウトであるかどうかを示す経過時間のカウントを開始する(S1102)。
BMU502は、経過時間のカウントにより、検証用データの受信タイムアウトかどうかを判断する(S1103)。BMU502は、書き換え用データを送信した時点(T1402)では、タイムアウトではないと判断する。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S1202)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T1402)では、それぞれタイムアウトではないと判断する。
CMU507、513、514は、それぞれ受信したデータの種類を判断する(S1251)。ここでは、CMU507、513、514は、書き換え用データを受信したと判断する。
CMU507、513、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1252)。
CMU507、513、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S1253)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、513、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1254)。
ここで、CMU513が受信した書き換え用データには、ネットワーク上でノイズ等により誤りが混入しているが、データの受信は行われたため、CMU513は、受信成功であると判断する。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S1205)。ここでは、すべてのCMU507、513、514が受信成功であると判断する。
そして、CMU507、513、514のデータ受信状況通知部1003は、データ受信状況をBMU502へ通知する。ここでは、すべてのCMU507、513、514が、データ受信状況(データ受信成功)を通知する。
BMU502は、受信したデータの種類を判定する(S1151)。ここでは、データ受信状況通知を受信したと判断する。
BMU502は、データ受信状況通知の内容を確認する(S1154)。ここでは、すべてのCMU507、513、514から受信したデータ受信状況通知の内容が、受信成功である。
そして、BMU502は、CMU507、513、514を、検証用データ送信要求実施対象CMUとして登録する(S1155)。
BMU502は、検証用データ送信要求実施対象CMUが存在するかどうかを確認する。ここでは、CMU507、513、514が実施対象として存在するため、CMU507へ検証用データの送信要求を行う(S1172)。
そして、CMU507を、検証用データ送信要求実施対象CMUから登録を解除する(S1173)。
CMU507は受信したデータの種類を判断する(S1251)。ここでは、CMU507は、検証用データ送信要求を受信したと判断する。
T1408では、CMU507の第二のプログラム送信部510が、検証用データを送信する(S1260)。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1402で送信した書き換え用データと、CMU507から受信した検証用データが一致しているかどうかの検証処理を行う。
ここでは、BMU502が送信し、CMU507が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
CMU513、514は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU513、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU513、514はそれぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
CMU513は、受信したデータの種類を判断する(S1251)。ここでは、CMU513は、検証用データ送信要求を受信したと判断する。
T1413では、BMU502はCMU513から検証用データを受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1402で送信した書き換え用データと、CMU513から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、CMU513が受信した書き換え用データには、ネットワーク上でノイズ等により誤りが混入したため、CMU513が送信する検証用データにも同じ誤りが混入している。そのため、書き換え用データと、検証用データが一致せず、BMU502のデータ送信成否判断部1001の検証処理の結果は、NGとなる。
T1415では、CMU513は、BMU502から検証失敗通知を受信したため、データ受信時の処理を開始する。
CMU513は、受信したデータの種類を判断する(S1251)。ここでは、CMU513は、検証失敗通知を受信したと判断する。
そして、CMU513のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する(1262)。そして、CMU513は、受信に失敗した書き換え用データを認識する(S1263)。ここでは、検証失敗通知に含まれているシーケンス番号の書き換え用データの受信に失敗したと判断する。
BMU502は、検証処理を実施したCMU513以外で、検証用データ送信要求実施対象のCMUが存在するかどうかを判断する(S1161)。
T1417では、CMU514がBMU502から検証用データ送信要求を受信したため、データ受信時の処理を開始する。
CMU514は受信したデータの種類を判断する(S1251)。ここでは、CMU514は、検証用データ送信要求を受信したと判断する。
T1419では、BMU502はCMU514から検証用データを受信したため、データ受信時の処理を開始する。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1402で送信した書き換え用データと、CMU514から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、BMU502が送信し、CMU514が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
CMU507、513は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU507、513は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU507、513はそれぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
CMU513は、受信していないため、受信した検証用データは、受信に失敗した書き換え用データであると判断する。
CMU513のプログラム書き換え部512は、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1257)。
CMU513は、所定個数書き換え用データを受信したかどうかを判定する(S1258)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU513のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1259)。
そして、CMU513のデータ受信状況通知部1003は、データ受信状況(データ受信成功)をBMU502へ通知し、処理を終了する。
BMU502は、受信したデータの種類を判定する(S1151)。ここでは、データ受信状況通知を受信したと判断する。
BMU502は、データ受信状況通知の内容を確認する(S1154)。ここでは、CMU513から受信したデータ受信状況通知の内容が、受信成功である。
そして、BMU502は、CMU513を、検証用データ送信要求実施対象CMUとして登録する(S1155)。
BMU502は、検証用データ送信要求実施対象CMUが存在するかどうかを確認する。ここでは、CMU513が実施対象として存在するため、CMU513へ検証用データの送信要求を行う(S1172)。
そして、CMU513を、検証用データ送信要求実施対象CMUから登録を解除する(S1173)。
CMU513は受信したデータの種類を判断する(S1251)。ここでは、CMU513は、検証用データ送信要求を受信したと判断する。
T1424では、CMU513の第二のプログラム送信部510が、検証用データを送信する(S1260)。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1302で送信した書き換え用データと、CMU513から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、CMU514が送信し、かつCMU513が受信し、受信に失敗した書き換え用データとして補完した検証用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
CMU507、514は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU507、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU507、514はそれぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
さらに、第一の制御装置が、書き換え用データの受信に成功した第二の制御装置のうちの特定の第二の制御装置に、検証用データを送信させることで、ネットワーク上での検証用データの衝突による、第二の制御装置の検証用データの再送信を低減することができる。
次に、実施の形態3について説明する。
図15は、この発明の実施の形態3における第一の制御装置のプログラム書き換え時の処理を示すフローチャートである。
図16は、この発明の実施の形態3における第一の制御装置のデータ受信時の処理を示すフローチャートである。
図17は、この発明の実施の形態3における第一の制御装置の所定の検証用データ送信処理時の処理を示すフローチャートである。
実施の形態3として、BMU502が書き換え用データを送信後、検証用データ受信タイムアウト後に、検証の結果がOKとなっていないCMU507、513、514が存在する場合のプログラム書き換え手順に付いて、図7、図11、図12、図15、図18を用いて述べる。
なお、CMU507、513、514の動作は、実施の形態2で説明した、図11、図12の動作と等しいため、その説明を省略する。
なお、図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は、BMU502がCMU507、513、514のプログラムを書き換える際のタイミングチャートであり、図18での受信状況は、CMU507、513、514のデータ受信状況通知部1003の通知結果を示し、検証結果は、BMU502のデータ送信成否判断部1001の検証処理の結果を示す。また、T1604、1622に示すTx1、Tx2はCMU507、513、514における書き換え用データの受信タイムアウトとなる時間であり、T1620、T1628に示すTy1、Ty2は、BMU502における検証用データの受信タイムアウトとなる時間である。
実施の形態2との相違点は、実施の形態2では、CMU513は、CMU514から送信される検証用データを受信し、受信に失敗した書き換え用データを補完することができたが、実施の形態3では、CMU513は、ノイズ等の影響により、CMU513は、CMU514から送信される検証用データの受信に失敗した場合とする。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1602で送信した書き換え用データと、CMU514から受信した検証用データが一致しているかどうかの検証処理を行う。ここでは、BMU502が送信し、CMU514が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
CMU507は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU507は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU507は、受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
BMU502の第一のプログラム送信部503は、CMU513が検証の結果がOKとなっていないため、CMU513を書き換え処理開始時の状態に戻し、再度書き換え用データを送信する(S1505)。
そして、BMU502は、検証用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを再度開始する。
BMU502は、経過時間のカウントにより、検証用データの受信タイムアウトかどうかを判断する(S1503)。BMU502は、書き換え用データを送信した時点(T1620)では、タイムアウトではないと判断する。
CMU513は、経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S1202)。CMU513は、BMU502が書き換え用データを送信した時点(T1620)では、タイムアウトではないと判断する。
CMU513は、受信したデータの種類を判断する(S1251)。ここでは、CMU513は、書き換え用データを受信したと判断する。
CMU513のプログラム書き換え部512は、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1252)。
CMU513は、所定個数書き換え用データを受信したかどうかを判定する(S1253)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU513のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1254)。
CMU513は、データ受信成否判断部509の判断結果を判定する(S1205)。ここでは、受信成功であると判断する。
そして、CMU513のデータ受信状況通知部1003は、データ受信状況(データ受信成功)をBMU502へ通知する。
BMU502は、受信したデータの種類を判定する(S1551)。ここでは、データ受信状況通知を受信したと判断する。
BMU502は、データ受信状況通知の内容を確認する(S1554)。ここでは、CMU513から受信したデータ受信状況通知の内容が、受信成功である。
そして、BMU502は、CMU513を、検証用データ送信要求実施対象CMUとして登録する(S1555)。
BMU502は、検証用データ送信要求実施対象CMUが存在するかどうかを確認する。ここでは、CMU513が実施対象として存在するため、CMU513へ検証用データの送信要求を行う(S1572)。
そして、CMU513を、検証用データ送信要求実施対象CMUから登録を解除する(S1573)。
CMU513は、受信したデータの種類を判断する(S1251)。ここでは、CMU513は、検証用データ送信要求を受信したと判断する。
T1626では、CMU513の第二のプログラム送信部510が、検証用データを送信する(S1260)。
BMU502は、受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
BMU502のデータ送信成否判断部1001は、T1624で送信した書き換え用データと、CMU513から受信した検証用データが一致しているかどうかの検証処理を行う。
ここでは、BMU502が送信し、CMU513が受信した書き換え用データには、誤りが混入していないため、書き換え用データと検証用データが一致し、検証処理の結果はOKとなる。
CMU507、514は、それぞれ受信したデータの種類を判断する。ここでは、検証用データを受信したと判断する。
CMU507、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1255)。
CMU507、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。そして、すべてのCMU507、513、514の検証の結果がOKとなる。
ここでは、検証の結果がOKとなっていないCMU507、513、514が存在しないため、処理を終了する。
次に、実施の形態4について説明する。
図19は、この発明の実施の形態4における第二の制御装置のプログラム書き換え時の処理を示すフローチャートである。
図20は、この発明の実施の形態4における第二の制御装置のデータ受信時の処理を示すフローチャートである。
図1は、本実施の形態4によるバッテリ制御システムの構成を示す図である。図1に示すように、このバッテリ制御システム501は、第一の制御装置であるBMU502と、第二の制御装置であるCMU507、513、514がCANネットワーク506により接続されて構成されている。
BMU502の動作は、実施の形態1で説明した図2の動作と等しいため、その説明を省略する。
なお、CMU507、513、514は、同じ動作をするため、ここではCMU507を用いて説明する。
ステップS1701では、CMU507は書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、書き換え用データの受信タイムアウトとは、CMU507がBMU502から受信する書き換え用データの最大待ち時間を超えた状態を示す。
ステップS1702では、CMU507が、経過時間のカウントにより、書き換え用データの受信タイムアウトであるかどうかを判断する。タイムアウトである場合、ステップS1703へ進み、タイムアウトでない場合、ステップS1702に留まる。
ステップS1704では、CMU507は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、検証用データの送信タイムアウトとは、CMU507が、書き換え用データの受信に成功したと判断してから、検証用データを送信するまでの待ち時間を超えた状態を示す。この待ち時間は、CMU毎に決めておく。
ステップS1706では、CMU507の第二のプログラム送信部510は、検証用データを送信する。
ステップS1707では、CMU507のデータ受信成否判断部509は、書き換え用データの受信に失敗したと判断する。
ステップS1751では、CMU507は、受信したデータの種類を判断する。受信したデータの種類が書き換え用データである場合、ステップS1752へ進み、検証用データである場合、ステップS1755へ進む。
ステップS1752では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS1753では、CMU507は所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS1754へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とはBMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS1755では、CMU507は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する。
ここでは、書き換え用データにシーケンス番号が付与されており、検証用データにも書き換え用データと同じ番号が付与されている。
CMU507は、受信した検証用データに付与されているシーケンス番号と同じ番号の書き換え用データを受信していない場合、受信に失敗した書き換え用データであると判断し、受信していた場合、受信に失敗した書き換え用データではないと判断する。
判断の結果、受信に失敗した書き換え用データである場合、ステップS1756へ進み、そうでない場合、処理を終了する。
ステップS1757では、CMU507のプログラム書き換え部512が、受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える。
ステップS1758では、CMU507は、所定個数書き換え用データを受信したかどうかを判断する。所定個数書き換え用データを受信した場合、ステップS1759へ進み、所定個数受信していない場合、処理を終了する。ここで、所定個数とはBMU502がCMU507へ送信する書き換え用データの個数であり、予め決めておく。
ステップS1760では、CMU507は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する。ここで、検証用データの送信タイムアウトとは、CMU507が、書き換え用データの受信に成功したと判断してから、検証用データを送信するまでの待ち時間を超えた状態を示す。この待ち時間は、CMU毎に決めておく。
ステップS1762では、CMU507の第二のプログラム送信部510は、検証用データを送信する。
上述したCMU507のデータ受信時の処理は、データを受信するたびに実施される。
以下、CMU507、513、514のプログラム書き換えを、本発明により行う場合の処理について、図1、図2、図19〜図21を用いて説明する。
ここでは、すべてのCMU507、513、514がBMU502からの書き換え用データの受信に成功した場合とする。
さらに、本実施の形態4では、CMU507、513、514は、同一のプログラムで書き換える場合を説明する。
さらに、CMU507は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウント開始後、2sec後に検証用データを送信し、CMU513は3sec後、CMU514は4sec後に送信する場合を説明する。
T1802では、BMU502は書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S601)。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1701)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判断する(S1702)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T1802)では、タイムアウトではないと判断する。
CMU507、513、514は、それぞれ受信したデータの種類を判断する(S1751)。ここでは、CMU507、513、514は、書き換え用データを受信したと判断する。
CMU507、513、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1752)。
CMU507、513、514は、それぞれ所定個数書き換え用データを受信したかどうかを判定する(S1753)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、513、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1754)。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S1703)。ここでは、すべてのCMU507、513、514が受信成功であると判断する。
そして、CMU507、513、514は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1704)。
T1805では、CMU507が検証用データ送信待ちタイムアウトであると判断する。
そして、CMU507の第二のプログラム送信部510は、検証用データを送信する(S1706)。
CMU513、514は、受信したデータの種類を判断する(S1751)。ここでは、CMU513、514は、検証用データを受信したと判断する。
CMU513、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1755)。
CMU513、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513、514は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
そして、CMU513の第二のプログラム送信部510は、検証用データを送信する(S1706)。
T1808では、CMU507、514は、それぞれCMU513から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、514は、T1806のCMU513、514のデータ受信時と同様の処理を行う。
そして、CMU514の第二のプログラム送信部510は、検証用データを送信する(S1706)。
T1810では、CMU507、513は、それぞれCMU514から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、513は、T1806のCMU513、514のデータ受信時と同様の処理を行う。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
ここでは、CMU507、514はBMU502からの書き換え用データの受信に成功し、CMU513はノイズ等の影響により、BMU502からの書き換え用データの受信に失敗した場合とする。
T1902では、BMU502は、書き換え用プログラムを、書き換え用データとして、CMU507、513、514へ送信する(S601)。
CMU507、513、514は、それぞれ書き換え用データの受信タイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1701)。
CMU507、513、514は、それぞれ経過時間のカウントにより、書き換え用データの受信タイムアウトかどうかを判定する(S1702)。CMU507、513、514は、BMU502が書き換え用データを送信した時点(T1902)では、タイムアウトではないと判断する。
CMU507、513、514は、書き換え用データを受信したかどうかを判断する(S1703)。
CMU507、514は、それぞれ受信したデータの種類を判断する(S1751)。ここでは、CMU507、514は、書き換え用データを受信したと判断する。
CMU507、514のプログラム書き換え部512は、それぞれ受信した書き換え用データを基に、動作プログラム保管部511のプログラムを書き換える(S1752)。
CMU507、514は、所定個数書き換え用データを受信したかどうかを判定する(S1753)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU507、514のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1754)。
一方、CMU513のデータ受信成否判断部509の判断結果は、未判断である。
CMU507、513、514は、それぞれデータ受信成否判断部509の判断結果を判定する(S1703)。ここでは、CMU507、514が受信成功であると判断する。CMU513は、データ受信成否判断部509の判断結果が未判断であるため、書き換え用データ受信失敗であると判断する。
そして、CMU507、514は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1704)。
そして、CMU507の第二のプログラム送信部510は、検証用データを送信する(S1706)。
CMU513、514は、受信したデータの種類を判断する(S1751)。ここでは、CMU513、514は、検証用データを受信したと判断する。
CMU513、514は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1755)。
CMU513、514は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU513は、受信した検証用データが、受信に失敗した書き換え用データであると判断する。CMU514は、受信に失敗した書き換え用データではないと判断し、処理を終了する。
CMU513は、所定個数書き換え用データを受信したかどうかを判定する(S1758)。ここでは、所定個数は一つであり、書き換え用データを一つ受信したため、CMU513のデータ受信成否判断部509は、所定個数書き換え用データを受信したと判断し、受信成功であると判断する(S1759)。
そして、CMU513は、検証用データ送信待ちタイムアウトであるかどうかを示す、経過時間のカウントを開始する(S1760)。
そして、CMU514の第二のプログラム送信部510は、検証用データを送信する(S1706)。
CMU507、513は、受信したデータの種類を判断する(S1751)。ここでは、CMU507、513は、検証用データを受信したと判断する。
CMU507、513は、受信した検証用データが、受信に失敗した書き換え用データであるかどうかを判断する(S1755)。
CMU507、513は、それぞれ受信した検証用データに付与されているシーケンス番号を確認し、同じ番号の書き換え用データを受信しているかどうかを判断する。ここでは、CMU507、513は、受信した検証用データは、受信に失敗した書き換え用データではないと判断し、処理を終了する。
そして、CMU513の第二のプログラム送信部510は、検証用データを送信する(S1706)。
T1910では、CMU507、514は、それぞれCMU513から検証用データを受信したため、それぞれデータ受信時の処理を開始する。CMU507、514は、T1908のCMU507、513のデータ受信時と同様の処理を行う。
このようにして、CMU507、513、514のプログラム書き換え処理が完了する。
さらに、書き換え用データの受信に成功したと判断した第二の制御装置は、第二の制御装置毎に決めておく所定時間経過後に、検証用データを送信することで、ネットワーク上での検証用データの衝突による、第二の制御装置の検証用データの再送信を低減することができる。
次に、実施の形態5について説明する。
図23は、この発明の実施の形態5におけるバッテリ制御システムを示す構成図である。
図23において、バッテリ制御システム501は、第一の制御装置であるBMU502と、第二の制御装置であるCMU507、513、514がCANネットワーク506により接続されて構成されている。
また、BMU502は、第三の制御装置である書き換えツール2001と、FlexRayネットワーク2005により接続されている。
第三のプログラム送信部2002は、外部機器における書き換え用プログラム保管部2003に保管されているプログラムを、一つ以上の書き換え用データに分割して、FlexRay通信インタフェース部2004により、送信する。
FlexRay通信インタフェース部2004は、FlexRayネットワーク2005を介して、データの送受信を行う。
FlexRay通信インタフェース部2006は、FlexRayネットワーク2005を介して、データの送受信を行う。
第一のプログラム受信部2007は、FlexRayネットワーク2005から受信したデータを基に、書き換え用プログラム保管部504に保管されているプログラムを更新する。
BMU502の動作は、実施の形態1で説明した図2の動作と等しいため、その説明を省略する。
また、CMU507、513、514の動作は、実施の形態1で説明した図3、図4の動作と等しいため、その説明を省略する。
そして、BMU502は、FlexRayネットワーク2005から受信したデータを基に、書き換え用プログラム保管部504のプログラムを更新する。
このように、現行の書き換え用ツールを変更することなく、本発明を適用することが可能である。
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に記載の制御システム。 - 上記第一の制御装置は、上記第一の制御装置が送信した書き換え用データの内容と、上記第二の制御装置から受信した検証用データの内容が一致していた場合、検証の結果がOKと判断し、一致していなかった場合、検証の結果がNGと判断するデータ送信成否判断部を備え、
上記データ送信成否判断部の検証の結果がNGであると判断した場合、検証の結果がNGとなった第二の制御装置へ通知し、他の第二の制御装置から送信される検証用データを受信させることを特徴とする請求項1または請求項2に記載の制御システム。 - 上記第一の制御装置は、上記第二の制御装置へ上記書き換え用データを送信し、所定時間後に検証の結果がOKとなっていない上記第二の制御装置へ、再度、上記書き換え用データを送信することを特徴とする請求項3に記載の制御システム。
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)
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)
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 | パナソニック株式会社 | ファームウェアのアップデート方法、および電力線搬送通信システム |
-
2011
- 2011-04-18 JP JP2011091893A patent/JP5357204B2/ja active Active
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 |