(57)【要約】【課題】安全性を確保した状態でソフトウェア更新を行う。【解決手段】電池管理部２１は、各電池ユニット（ＢＵ［１］、ＢＵ［２］）と通信を行って電池状態データを受信する共に、電池状態データに基づく信号（例えば、充放電の許可又は禁止に関する信号）を、充放電制御を成す電力変換制御部１１に送信する通信部（６１、６２）を有する。電池ユニットにおいてソフトウェア更新が必要な場合、１台ずつ該更新が成されるようにする。電池管理部２１は、電力変換制御部１１から送られてきた更新用信号（４１１、４２１、４３１）を電池ユニットＢＵ［１］に転送することで電池ユニットＢＵ［１］にソフトウェア更新を行わせることができ、その更新の実行期間（４５０）中において、電池ユニットＢＵ［２］のソフトウェア更新を要求する信号（４６１）が電力変換制御部１１から送られてきたとき、その要求を拒否する。【選択図】図１０
2013207902.tif 000002
【特許請求の範囲】
【請求項１】
二次電池を各々に備えた複数の電池ユニット並びに電力変換回路を用いて各電池ユニットの二次電池の充電及び放電を制御する電力変換制御部の夫々と通信を行い、各電池ユニットから前記二次電池の状態データを受信するとともに前記電力変換制御部に対して前記状態データに応じた信号を送信する通信部と、
各電池ユニットの動作内容を定めるソフトウェアの更新用信号を前記通信部から各電池ユニットに送信させることで各電池ユニットにおいて前記ソフトウェアを更新させる制御部と、を備え、
前記制御部は、前記複数の電池ユニットにて前記ソフトウェアを更新させる際、前記ソフトウェアの更新タイミングを前記複数の電池ユニット間で互いに異ならせる
ことを特徴とする電池制御装置。
【請求項２】
前記複数の電池ユニットは、互いに異なる第１及び第２電池ユニットを含み、
前記通信部は、前記更新用信号を前記電力変換制御部から受信した際、前記制御部の制御の下、受信した更新用信号を前記第１電池ユニットに送信することで、前記第１電池ユニットにおける前記ソフトウェアの更新を実現させ、
前記第１電池ユニットにおける前記ソフトウェアの更新中において、前記第２電池ユニットのソフトウェアの更新を要求する、前記電力変換制御部からの信号が前記通信部にて受信されたとき、前記制御部は、その要求を拒否する、或いは、その要求に応じた処理の実行を前記第１電池ユニットの前記ソフトウェアの更新が完了するまで保留する
ことを特徴とする請求項１に記載の電池制御装置。
【請求項３】
前記複数の電池ユニットの内の何れかである対象ユニットにおいて前記ソフトウェアの更新が行われているとき、前記通信部は、前記複数の電池ユニットの内の前記対象ユニット以外の電池ユニットである非対象ユニットと通信を行って、前記非対象ユニットから前記状態データを受信する
ことを特徴とする請求項１又は請求項２に記載の電池制御装置。
【請求項４】
前記対象ユニットにおいて前記ソフトウェアの更新が行われているとき、前記制御部は、前記非対象ユニットの状態データに基づき、前記二次電池の充電の許可又は禁止に関する信号及び前記二次電池の放電の許可又は禁止に関する信号の内の少なくとも一方を、前記通信部から前記電力変換制御部への送信信号に含める
ことを特徴とする請求項３に記載の電池制御装置。
【請求項５】
前記電力変換回路と各電池ユニットとの間に配置されたブレーカ部を更に備え、
前記対象ユニットにおいて前記ソフトウェアの更新が行われているとき、前記制御部は、前記非対象ユニットの状態データに基づき前記ブレーカ部をオンからオフに切り替える又はオンに維持する
ことを特徴とする請求項３又は請求項４に記載の電池制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電池制御装置に関する。
【背景技術】
【０００２】
図１４（ａ）に示す如く、電力の出力を行う電力ブロック９０１と、電力の入力を受ける電力ブロック９０２との間に、電力変換回路及び電力変換制御部を含むパワーコントローラ９０３を介在させたシステム９００（太陽電池システム等）が実用化されている。この種のシステム９００に蓄電機能を追加するべく、二次電池から成る電池ユニットをパワーコントローラ９０３に接続することが考えられる。この際、大きな蓄電能力を得るべく、図１４（ｂ）に示すように、複数の電池ユニット９０４をパワーコントローラ９０３に接続する形態も存在する。電池ユニット内部にて電池状態（電池の電流値、残容量、温度等）を測定及び演算し、その結果を外部機器に送信する技術も提案されている。尚、上位システム制御部が組電池を管理する部位と通信を行いつつ充放電制御を行う技術も提案されている（下記特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２０５８２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図１４（ｂ）のような構成では、各電池ユニット９０４の安全性を確保すべく、電池状態取得用の通信を介し、システム９００が各電池ユニット９０４の電池状態を監視しておくことが重要である。一方、電池ユニット９０４に通信機能や演算処理機能を持たせ、それらの機能がソフトウェアにて実現されるように電池ユニット９０４を形成した場合、電池ユニット９０４をシステム９００に組み込んだ後に該ソフトウェアの更新が必要になってくることもある。ソフトウェアの更新中にはソフトウェアの機能（電池状態データの生成及び送信機能等）による動作が停止するため、システム９００による電池状態監視が中断されて、一時的とはいえ、安全性に不安が生じうる。
【０００５】
そこで本発明は、安全性を確保した上でのソフトウェア更新が可能な電池制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る電池制御装置は、二次電池を各々に備えた複数の電池ユニット並びに電力変換回路を用いて各電池ユニットの二次電池の充電及び放電を制御する電力変換制御部の夫々と通信を行い、各電池ユニットから前記二次電池の状態データを受信するとともに前記電力変換制御部に対して前記状態データに応じた信号を送信する通信部と、各電池ユニットの動作内容を定めるソフトウェアの更新用信号を前記通信部から各電池ユニットに送信させることで各電池ユニットにおいて前記ソフトウェアを更新させる制御部と、を備え、前記制御部は、前記複数の電池ユニットにて前記ソフトウェアを更新させる際、前記ソフトウェアの更新タイミングを前記複数の電池ユニット間で互いに異ならせることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、安全性を確保した上でのソフトウェア更新が可能な電池制御装置を提供することが可能である。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る電力システムの概略全体構成図である
【図２】１つの電池ユニットの内部構成図である。
【図３】電池状態データの構造を示す図である。
【図４】本発明の実施形態に係る複数の電池ユニットの接続方法例を示す図である。
【図５】本発明の実施形態に係る電池管理部及びブレーカ部の内部構成例を示す図である。
【図６】電池管理部を用いた通信の手順例を示す図である。
【図７】電池管理部から電力変換制御部への応答信号の内容を説明するための図である。
【図８】主制御部及びユニット制御部の夫々においてソフトウェアが保持されている様子を示す図である。
【図９】ソフトウェアの更新時における信号のやり取りを説明するための図である。
【図１０】ソフトウェアの更新時における信号のやり取りを説明するための図である。
【図１１】主制御部及びユニット制御部のプログラムメモリに格納されたデータ及びプログラムを示す図である。
【図１２】主制御部又はユニット制御部におけるプログラムの実行手順を表すフローチャートである。
【図１３】メインプログラムの更新に関わる信号の流れを示す図である。
【図１４】電力変換を行う従来システムの概略ブロック図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態の例を、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。尚、本明細書では、記述の簡略化上、情報、信号、物理量、状態量又は部材等を参照する記号又は符号を記すことによって該記号又は符号に対応する情報、信号、物理量、状態量又は部材等の名称を省略又は略記することがある。
【００１０】
図１は、本発明の実施形態に係る電力システム１の概略全体構成図である。電力システム１は、電力変換制御部１１、電力変換回路１２、電池管理部２１及びブレーカ部２２と、１以上の電池ユニットＢＵから成る電池ブロックＢＢを備え、電力を出力する又は電力の入力を受ける１以上の電力ブロックを更に備えうる。図１の例では、電力変換回路１２に、電力の出力を行う電力ブロックＰＢ１と電力の入力を受ける電力ブロックＰＢ２が接続されているが、電力変換回路１２に接続される電力ブロックの個数は１以上であれば幾つでも良く、１つの電力ブロックは電力変換回路１２との間で双方向の電力の入出力を行うようにしても良い。図２は、１つの電池ユニットＢＵの内部構成図である。各電池ユニットＢＵには、二次電池から成る電池モジュール３１が設けられている。本実施形態において、放電及び充電とは、特に記述なき限り電池モジュール３１の放電及び充電（より詳細には、電池モジュール３１内の各二次電池の放電及び充電）を意味する。従って例えば、電池ユニットＢＵの放電及び充電とは電池モジュール３１の放電及び充電を意味する。
【００１１】
電力変換回路１２は、電界効果トランジスタ（Field-Effect Transistor）又は絶縁ゲートバイポーラトランジスタ（Insulated Gate Bipolar Transistor）等から成る複数のスイッチング素子を備え、電力変換制御部１１による制御の下で電力変換処理を実行する。電力変換処理には、充電処理及び放電処理が含まれる。
【００１２】
充電処理において、電力変換回路１２は、電力ブロックＰＢ１の出力電力を所望の直流電力に変換し、得られた直流電力をブレーカ部２２を介して各電池ユニットＢＵに供給する。電力ブロックＰＢ１は、交流電力又は直流電力の出力を行う電力源であり、例えば、商用交流電源、太陽電池ユニットを含む。各電池ユニットＢＵにおいて、電力ブロックＰＢ１の出力電力に基づく直流電力を受けたとき、各電池ユニットＢＵの充電が成される。
【００１３】
放電処理において、電力変換回路１２は、各電池ユニットＢＵの放電電力をブレーカ部２２を介して受け、受けた放電電力を所望の直流電力又は交流電力に変換して電力ブロックＰＢ２に出力する。電力ブロックＰＢ２は、例えば、電力の消費を行う負荷であり、電力変換回路１２からの出力電力にて駆動する。尚、電力変換回路１２は、電池ユニットＢＵを介さずに、電力ブロックＰＢ１の出力電力を電力ブロックＰＢ２に出力することも可能である（この際、所定の電力変換が行われうる）。
【００１４】
電力変換制御部１１は、電力変換処理の制御を含む、電力変換回路１２の動作制御を行う。電力変換制御部１１は、電池ユニットＢＵの充電及び放電を制御する充放電制御部を含んでいると言える。
【００１５】
電池管理部２１は、通信線ＣＬBを介して各電池ユニットＢＵと通信を行うと共に通信線ＣＬSを介して電力変換制御部１１と通信を行う。電池管理部２１は、各電池ユニットＢＵから、各電池ユニットＢＵ内の電池モジュール３１の状態を表す電池状態データ（図２参照）を受信し、受信した各電池状態データを電力変換制御部１１用のデータフォーマットに変換して電力変換制御部１１に送信することができる（電池状態データの詳細については後述）。
【００１６】
ブレーカ部２２は、各電池ユニットＢＵの電池モジュール３１と電力変換回路１２との間に直列に介在するブレーカ（電流ブレーカ）であり、オン又はオフの状態をとる。ブレーカ部２２がオンのとき、各電池モジュール３１が電力変換回路１２に接続され、電力変換回路１２を介した各電池モジュール３１の充電及び放電が可能となる。ブレーカ部２２がオフのとき、各電池モジュール３１と電力変換回路１２との間の電路が遮断され、電力変換回路１２を介した各電池モジュール３１の充電及び放電が不能となる。尚、ブレーカの代わりに、セルフコントロールプロテクター（ＳＣＰ）や機械式リレーなどの外部からの信号により上記電路を遮断可能な部品にて、ブレーカ部２２を形成しても良い。各電池モジュール３１及び電力変換回路１２間の電路は、各電池モジュール３１及びブレーカ部２２間の電路である電力線ＰＬBと、電力変換回路１２及びブレーカ部２２間の電路である電力線ＰＬSから成る。ブレーカ部２２は原則としてオンとされており、本実施形態において、特に記述なき限り、ブレーカ部２２はオンに維持されているものとする。
【００１７】
図２を参照して、１つの電池ユニットＢＵの構成を説明する。電池ユニットＢＵは、符号３１〜３６によって参照される各部位を備える。電池モジュール３１は、１以上の二次電池から成る。電池モジュール３１を形成する二次電池は、任意の種類の二次電池であり、例えば、リチウムイオン電池、ニッケル水素電池である。電池モジュール３１を形成する二次電池の個数は１でも良いが、本実施形態では、電池モジュール３１が直列接続された複数の二次電池から成るものとする。但し、電池モジュール３１に含まれる二次電池の一部又は全部は、並列接続された複数の二次電池であっても良い。電池モジュール３１において、直列接続された複数の二次電池の内、最も高電位側に位置する二次電池の正極と最も低電位側に位置する二次電池の負極は、電池ユニットＢＵにおける１対の電力入出力端子ＰOUTに接続され、１対の電力入出力端子ＰOUTを介して電池モジュール３１の充電及び放電が成される。
【００１８】
電池モジュール３１と１対の電力入出力端子ＰOUTとの間には、電池モジュール３１に流れる電流の値（以下、電池電流値という）を測定する電流センサ３３と、セルフコントロールプロテクター等のヒューズ３６と、が直列に介在している。電圧センサ３４は、電池モジュール３１の電圧の値（以下、電池電圧値という）を測定する。電池電圧値は、電池モジュール３１の端子電圧値、即ち、電池モジュール３１における最も高電位側に位置する二次電池の正極と最も低電位側に位置する二次電池の負極との間の電位差である。但し、電池モジュール３１の各二次電池の正極及び負極間の電位差（即ち電池モジュール３１内のセルごとの電圧値）も測定されて電池状態データに含められても良い。温度センサ３５は、電池モジュール３１の温度（以下、電池温度という）を測定する。電池温度は、例えば、電池モジュール３１内の複数の二次電池を包むパックの表面温度、又は、電池モジュール３１内の特定部位における温度である。
【００１９】
センサ３３、３４及び３５によって測定された電池電流値、電池電圧値及び電池温度はユニット制御部３２に送られる。ユニット制御部３２は、測定された電池電流値、電池電圧値及び電池温度に基づく電池状態データ（電池状態情報）を生成し、電池状態データを電池管理部２１に送信する。電池ユニットＢＵごとに電池状態データが生成されて電池管理部２１に送信される。
【００２０】
図３は、１つの電池ユニットＢＵから送信される電池状態データの構造を示す図である。図３の電池状態データは、電池モジュール３１の状態データ（電池モジュール３１の状態を表すデータ）の例であり、電池電流値、電池電圧値及び電池温度を表す情報を含むと共に、電池電流値及び電池電圧値から導出可能な電池モジュール３１の残容量又はＳＯＣ（state of charge）を表す残容量データ、及び、複数のフラグから成る電池状態フラグ群を含む。図３に示す如く、電池状態フラグ群に、電池モジュール３１の充電を禁止すべきか否かを示す充電禁止フラグ、電池モジュール３１の放電を禁止すべきか否かを示す放電禁止フラグ、電池モジュール３１が過充電の状態にあるか否かを示す過充電フラグ、電池モジュール３１が過放電の状態にあるか否かを示す過放電フラグ、電池モジュール３１が過電流の状態にあるか否かを示す過電流フラグ、電池温度が充電に適さない温度であるか否かを示す充電不適温度フラグ、電池温度が放電に適さない温度であるか否かを示す放電不適温度フラグ、センサ３３、３４及び３５の何れかが異常であるか否かを示すセンサエラーフラグ、及び、通信異常の発生有無を示す信号エラーフラグを含めることができる。電池状態フラグ群を形成する各フラグは１又は０のデジタル値（論理値）をとる。
【００２１】
電池状態フラグ群内の各フラグの初期値は０である。電池状態フラグ群内のフラグに１又は０の値を設定する処理を、説明の便宜上、フラグ設定処理と呼ぶ。各電池ユニットＢＵにおいて、ユニット制御部３２は、センサ３３、３４及び３５からの電池電流値、電池電圧値及び電池温度に基づき、電池状態フラグ群における各フラグに対しフラグ設定処理を行うことができる。但し、電池状態フラグ群内の各フラグに対するフラグ設定処理を電池管理部２１が行うようにしても良い。この場合、電池管理部２１は、或る電池ユニットＢＵからの電池状態データ内の電池電流値、電池電圧値及び電池温度に基づき、当該電池ユニットＢＵについての電池状態フラグ群内の各フラグに対して、フラグ設定処理を行うことができる。
【００２２】
電池ブロックＢＢが複数の電池ユニットＢＵから成る場合、電力線ＰＬBを介した、複数の電池ユニットＢＵの接続方法は任意である。但し、以下では、図４に示す如く、電池ブロックＢＢにｎ個の電池ユニットＢＵ（以下、電池ユニットＢＵ［１］〜ＢＵ［ｎ］ということもある）が設けられていると共に、ｎ個の電池ユニットＢＵが電力線ＰＬBを介して互いに並列接続され、結果、ｎ個の電池モジュール３１の並列接続回路がブレーカ部２２を介して電力変換回路１２に接続されていることを想定する。ｎは２以上の整数である。尚、図４ではセンサ３３等の図示を省略している。図４に示す如く、電力線ＰＬBは、各電池ユニットＢＵの正側の電力入出力端子ＰOUTが共通結線される電力線ＰＬB（＋）と、各電池ユニットＢＵの負側の電力入出力端子ＰOUTが共通結線される電力線ＰＬB（−）から成る。尚、電力線ＰＬBを介したｎ個の電池ユニットＢＵの接続方法はこれに限定されず、複数の電池モジュール３１の直列接続回路が電池ブロックＢＢに含まれうる。
【００２３】
電池管理部２１は通信線ＣＬBを介して各ユニット制御部３２に接続される。この際、図４に示す如く、電池ユニットＢＵ［１］〜ＢＵ［ｎ］における計ｎ個のユニット制御部３２を、デイジーチェーン方式などで互いに接続した上で電池管理部２１に接続することが好ましい。このような接続構成を採用することで、電池ブロックＢＢを構成する複数の電池ユニットＢＵの電池状態を１組の電池状態群として扱うことができるので、より精密な制御が可能になる。但し、複数のユニット制御部３２を１つにまとめるように電池ブロックＢＢを形成してもよい。この場合、複数の電池ユニットＢＵを用いた場合でも、電池管理部２１の通信対象は１つになるので制御が簡素化されるという利点がある。
【００２４】
図５に、電池管理部２１及びブレーカ部２２の内部構成例を示す。ブレーカ部２２は、符号５１〜５８によって参照される各部位を備える。電池管理部２１は、符号６０〜６８によって参照される各部位を備える。
【００２５】
電力線ＰＬSは、高電位側の電力線ＰＬS（＋）及び低電位側の電力線ＰＬS（−）から成る。電力線ＰＬB（＋）、ＰＬB（−）、ＰＬS（＋）、ＰＬS（−）は、夫々、ブレーカ端子５３、５４、５５、５６に接続される。ブレーカ端子５３及び５５間にブレーカスイッチ５１が直列に介在し、ブレーカ端子５４及び５６間にブレーカスイッチ５２が直列に介在する。ブレーカ部２２のオンとは、ブレーカスイッチ５１及び５２がオンとなって電力線ＰＬB及びＰＬSが接続される状態を指し、ブレーカ部２２のオフとは、ブレーカスイッチ５１及び５２がオフとなって電力線ＰＬB及びＰＬSが非接続となる状態を指す。主制御部６０は、所定の条件下において、図示されないブレーカトリップ回路を利用して後述の電圧Ｖ［１２］をコイル５７に印加することにより、ブレーカスイッチ５１及び５２をオフにすることができる。また、各電池ユニットＢＵのユニット制御部３２は、異常（過充電等）の発生時において異常の程度が大きいとき、ＳＴＯＰ信号を出力することができ、ＳＴＯＰ信号の出力時にもブレーカ部２２はオフとされる。ブレーカスイッチ５１及び５２のオン／オフに連動して状態が切り替わる三端子スイッチ５８の状態を見ることで、主制御部６０は、ブレーカ部２２のオン／オフ状態を認識可能である。尚、図５に示す如く、ブレーカスイッチ５２を介さずにブレーカ端子５４及び５６を直接接続しておくことが好ましく、従って、スイッチ５２をブレーカ部２２から割愛可能である。
【００２６】
電力線ＰＬSは、ブレーカ端子５５及び５６並びに電界効果トランジスタ等から成るスイッチ６６を介して、コンバータ６３に接続される。スイッチ６６のオン／オフ状態は主制御部６０によって制御される。スイッチ６６がオンのとき、コンバータ６３に端子５５及び５６間の電圧が入力電圧ＶINとして印加されるが、スイッチ６６がオフのとき、コンバータ６３に端子５５及び５６間の電圧が供給されない（即ち、ＶIN＝０となる）。ブレーカ部２２及びスイッチ６６が共にオンのとき、コンバータ６３は、入力電圧ＶINを所定の電圧値（例えば直流の１２ボルト）を有する電圧Ｖ［１２］に変換して出力する。通信用電源回路６４は、電圧Ｖ［１２］を通信用電源電圧に変換して出力する。通信部６１及び６２は通信用電源電圧を駆動電圧として用いて駆動する。図５の例では、通信用電源電圧は、所定の第１電圧値（例えば直流の３．３ボルト）を有する電源電圧Ｖ［３．３］と所定の第２電圧値（例えば直流の５ボルト）を有する電源電圧Ｖ［５］とから成る。レギュレータ６５は、スイッチ６６を介することなく電力線ＰＬS（即ちブレーカ端子５５及び５６）に直接接続され、ブレーカ端子５５及び５６間の電圧から所望の電圧値（例えば直流の５Ｖ）を有する電圧ＶMAINを生成する。
【００２７】
主制御部６０は、ＣＰＵ（Central Processing Unit）等から成り、電圧ＶMAINを駆動電圧として用いて駆動する。主制御部６０は、通信部６１及び６２における通信の動作制御を行う他、電池管理部２１内の動作を統括的に制御する。通信部６１は、通信線ＣＬBを介して自身に接続された各電池ユニットＢＵ（即ち、各ユニット制御部３２）と通信を行い、通信部６２は、通信線ＣＬSを介して自身に接続された電力変換制御部１１と通信を行う。各電池ユニットＢＵから主制御部６０に対し各電池ユニットＢＵに固有のＩＤ番号が通知されており、通信部６１は、ＩＤ番号を利用して所望の電池ユニットＢＵと通信を行うことができる。また、電池管理部２１から各電池ユニットＢＵに対し、各ユニット制御部３２の駆動電圧の元となる電圧として、コンバータ６３の出力電圧Ｖ［１２］が供給される。
【００２８】
温度センサ６７は、電池管理部２１における所定位置の温度（例えば、主制御部６０が実装された基板の温度又は電池管理部２１の筐体の表面温度）を測定し、測定温度を主制御部６０に伝達する。不揮発性メモリ６８は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等から成る。
【００２９】
［通信について］
通信部６１による通信（即ち電池管理部２１及び電池ユニットＢＵ間の通信）及び通信部６２による通信（即ち電池管理部２１及び電力変換制御部１１間の通信）は、互いに独立した全二重通信であっても良いが、本実施形態において、それらは互いに独立した半二重通信であるとする。主制御部６０の制御の下、通信部６１による半二重通信と通信部６２による半二重通信が独立して実行される。周知の如く、２つのブロック間で半二重通信を行う場合、夫々のブロックで送信及び受信を同時に行うことができず、一方のブロックが信号を送信している際には、他方のブロックは必ず信号の受信側となる。通信部６１及び６２による半二重通信を、例えばＲＳ−４８５の通信規格に準拠させることができる。通信部６１及び６２による半二重通信ではマスタ・スレーブ方式が採用される。具体的には、通信部６１による通信では、電池管理部２１（即ち通信部６１）がマスタに設定される一方で電池ユニットＢＵ（即ちユニット制御部３２）がスレーブに設定され、且つ、通信部６２による通信では、電力変換制御部１１がマスタに設定される一方で電池管理部２１（即ち通信部６２）がスレーブに設定される。
【００３０】
図６を参照して、通信部６１及び６２を用いた通信の手順例を説明する。図６において、上から下へ向かう方向は時間の進行方向に対応する。図６を用いた通信手順の説明では、説明の具体化のため、電池ユニットＢＵの個数が２であることを主として想定するが、勿論、その個数は２以外でも良い。また、電池ユニットＢＵ［ｉ］に割り当てられたＩＤ番号は“ｉ”であるとする（ｉは整数）。
【００３１】
通信部６１は、複数の電池ユニットＢＵに対しデータ要求コマンドを含むコマンドを順次送信すると共に、複数の電池ユニットＢＵからコマンドに対する応答信号を順次受信する基本通信処理を実行する。基本通信処理は、電池状態データ取得用の通信処理として機能し、図６に示す如く、コマンド３１１の送信、応答信号３１２の受信、コマンド３１３の送信、及び、応答信号３１４の受信を含む。
【００３２】
より具体的には、基本通信処理では、まず、通信部６１から“１”のＩＤ番号を付加したコマンド３１１を通信線ＣＬBに送出する。電池ユニットＢＵ［１］〜ＢＵ［ｎ］の内、“１”のＩＤ番号に対応する電池ユニットＢＵ［１］のみがコマンド３１１に応答し、電池ユニットＢＵ［１］のユニット制御部３２は、電池ユニットＢＵ［１］における最新の電池状態データを含む応答信号３１２を返信する。通信部６１は、応答信号３１２の受信後、“２”のＩＤ番号を付加したコマンド３１３を通信線ＣＬBに送出する。電池ユニットＢＵ［１］〜ＢＵ［ｎ］の内、“２”のＩＤ番号に対応する電池ユニットＢＵ［２］のみがコマンド３１３に応答し、電池ユニットＢＵ［２］のユニット制御部３２は、電池ユニットＢＵ［２］における最新の電池状態データを含む応答信号３１４を返信する。ｎ＝２の場合、通信部６１は応答信号３１４を受信することで１回分の基本通信処理を終える。但し、他にも電池ユニットＢＵが存在する場合には、他の電池ユニットＢＵについての同様の通信処理も基本通信処理に含められる。
【００３３】
通信部６１は、基本通信処理を所定の間隔ＩＮＴB（例えば１秒〜数秒間隔）にて周期的に繰り返し実行する。主制御部６０は、通信部６１にて受信された電池状態データを、電池管理部２１（例えば主制御部６０）内に設けられたＤＲＡＭ（Dynamic Random Access Memory）等から成るバッファメモリ７０に保存する。この際、各電池ユニットＢＵについての最新の電池状態データのみがバッファメモリ７０に保持されるように、受信のたびに、バッファメモリ７０に保存される電池状態データを更新しても良い。
【００３４】
通信部６２は、通信部６１の通信とは独立して、電力変換制御部１１から、データ要求コマンドを含むコマンド３２１を受信する。コマンド３２１の受信に応答し、通信部６２は、加工電池状態データを含む応答信号３２２を電力変換制御部１１に送信する。加工電池状態データ（応答信号３２２の内容）は、バッファメモリ７０に保存されている最新の電池状態データに基づき、主制御部６０によって生成される。加工電池状態データは、ｎ個の電池ユニットＢＵについての最新の電池状態データに所定のデータフォーマット変換を成して得たデータであるが、ｎ個の電池ユニットＢＵについての最新の電池状態データそのものであっても良い。通信異常等が発生していなければ、コマンド３２１は、所定の間隔ＩＮＴS（例えば１秒〜数秒間隔）にて周期的に電力変換制御部１１から送信されて通信部６２にて受信され、結果、同間隔ＩＮＴSにて周期的に応答信号３２２が通信部６２から電力変換制御部１１へ送信される。尚、間隔ＩＮＴBと間隔ＩＮＴBは一致していても良いし、一致していなくても良い。
【００３５】
［異常監視と保護動作について］
主制御部６０は、電力システム１に異常が発生していないか否か監視する。主制御部６０にて発生有無が監視される異常には、過充電による異常、過放電による異常、過電流による異常、温度異常、センサ異常及び通信異常が含まれ、それらは全て、電池ユニットＢＵ又は電池管理部２１における異常に属すると捉えて良い。
【００３６】
過充電による異常とは、例えば、何れかの電池ユニットＢＵの電池電圧値が所定時間以上に亘って所定の基準電圧値ＶTHUを超えている状態を指す。過放電による異常とは、何れかの電池ユニットＢＵの電池電圧値が所定時間以上に亘って所定の基準電圧値ＶTHLを下回っている状態を指す（ＶTHU＞ＶTHL）。過電流による異常とは、例えば、何れかの電池ユニットＢＵの電池電流値が所定時間以上に亘って所定の基準電流値ＩTHUを超えている状態を指す。温度異常とは、例えば、何れかの電池ユニットＢＵの電池温度又は温度センサ６７による測定温度が所定時間以上に亘って所定の温度範囲から逸脱している状態を指す。
【００３７】
センサ異常には、何れかの電池ユニットＢＵにおけるセンサ３３、３４及び３５の異常が含まれ、温度センサ６７の異常も含まれうる。例えば、センサ３３、３４又は３５にて測定された電池電流値、電池電圧値又は電池温度が所定の電流範囲、電圧範囲又は温度範囲を逸脱する状態は、センサ３３、３４又は３５の異常に属する。また例えば、温度センサ６７の測定温度が所定の温度範囲を逸脱する状態は、温度センサ６７の異常に属する。
【００３８】
通信異常には、電池管理部２１（即ち通信部６１）及び電池ユニットＢＵ間の通信異常である第１通信異常と、電力変換制御部１１及び電池管理部２１（即ち通信部６２）間の通信異常である第２通信異常と、が含まれる。第１通信異常は、例えば、通信部６１からのコマンド（例えば３１１又は３１３）に対する電池ユニットＢＵからの応答信号（例えば３１２又は３１４）が通信部６１にて受信されない状態を含む。第２通信異常は、例えば、電力変換制御部１１から定期的に送信される予定のコマンド３２１が所定時間以上継続して通信部６２にて受信されない状態を含む。
【００３９】
主制御部６０は、各電池ユニットＢＵから受信した電池状態データ、温度センサ６７の測定温度並びに通信部６１及び６２の通信状態に基づき、応答信号３２２の中で、電池モジュール３１の充電又は放電に関する要求又は通知を電力変換制御部１１に成すことができる。特徴的な動作として例えば、主制御部６０は、各電池ユニットＢＵから受信した電池状態データ及び温度センサ６７の測定温度に基づき、過充電による異常、過放電による異常、過電流による異常、温度異常及びセンサ異常の発生有無を判定すると共に、通信部６１及び６２による信号の受信状態から第１又は第２通信異常の発生有無を判定し、それらの判定結果を反映した充電許可／禁止信号３４１及び放電許可／禁止信号３４２を生成して該信号３４１及び３４２を応答信号３２２に含めることができる（図７参照）。但し、応答信号３２２に、信号３４１及び３４２の何れか一方のみが含まれていても良い。また、各電池ユニットＢＵについての最新の電池状態データを表す電池状態データ信号３４３を、更に応答信号３２２に含めておくことができる（図７参照）。
【００４０】
信号３４１及び３４２の夫々は、０又は１のデジタル値（論理値）をとるフラグである。０の値を持つ信号３４１は、電池モジュール３１の充電を許可する充電許可信号として機能し、１の値を持つ信号３４１は、電池モジュール３１の充電の禁止の必要性を示す充電禁止信号として機能する。０の値を持つ信号３４２は、電池モジュール３１の放電を許可する放電許可信号として機能し、１の値を持つ信号３４２は、電池モジュール３１の放電の禁止の必要性を示す放電禁止信号として機能する。例えば、１の値を持つ充電禁止フラグ（図３参照）が充電を禁止すべきことを表すとき、主制御部６０は、ｎ個の電池ユニットＢＵについてのｎ個の充電禁止フラグの論理和を信号３４１の値に設定することができ、１の値を持つ放電禁止フラグ（図３参照）が放電を禁止すべきことを表すとき、主制御部６０は、ｎ個の電池ユニットＢＵについてのｎ個の放電禁止フラグの論理和を信号３４２の値に設定することができる。
【００４１】
電池ユニットＢＵに過充電、過放電、過電流又は温度異常が発生している場合、電池ユニットＢＵの保護の観点から充電処理及び／又は放電処理が停止されるべきである。また、センサ異常又は通信異常の発生時には、保護の対象である電池ユニットＢＵの状態が正確にわからない等の不具合があるため、充電処理及び／又は放電処理を継続実行することは安全上好ましくない。従って、異常の発生時、主制御部６０は、発生している異常の種類に応じて信号３４１及び３４２のどちらか又は双方に１を代入し、これによって、充電又は放電の禁止を電力変換制御部１１に求める。電力変換制御部１１は、受信した応答信号３２２の中に充電禁止信号（即ち１の値を持つ信号３４１）が含まれているとき、直ちに充電処理が停止されるように電力変換回路１２を制御し、受信した応答信号３２２の中に放電禁止信号（即ち１の値を持つ信号３４２）が含まれているとき、直ちに放電処理が停止されるように電力変換回路１２を制御する。
【００４２】
電池管理部２１による充電禁止信号又は放電禁止信号の生成及び送信は、電池ユニットＢＵに対する第１保護動作に相当するといえる。充電処理が成されている状態において充電禁止信号を送信した際、又は、放電処理が成されている状態において放電禁止信号を送信した際、電池電流値は速やかにゼロ（又は実質的ゼロを含む）になるはずであるが、電力変換回路１２に故障があったり電力変換制御部１１が正しく動作していない場合、それはゼロにならない。
【００４３】
これを考慮し、電池管理部２１は、充電禁止信号又は放電禁止信号の送信後、追加保護処理とも言うべき第２保護動作を実行する。第２保護動作について説明する。第２保護動作において、主制御部６０は、対象電流値ＩTGを監視し、通信部６２による充電禁止信号又は放電禁止信号の送信タイミングから所定時間ＴＨTIMEが経過しても対象電流値ＩTGの大きさが正の所定値ＩTH以下にならないとき、ブレーカ部２２をオンからオフに切り替えることできる。上記送信タイミングから所定時間ＴＨTIMEの経過後、対象電流値ＩTGが所定値ＩTH以下になっているときには、主制御部６０はブレーカ部２２をオンのまま維持することができる。充電禁止信号が通信部６２から送信されるケースにおいて、対象電流値ＩTGは、何れかの電池ユニットＢＵについての充電における電池電流値であり、電池ユニットＢＵ［１］〜ＢＵ［ｎ］にて測定された充電における電池電流値の合計値、平均値又は最大値であっても良い。放電禁止信号が通信部６２から送信されるケースにおいて、対象電流値ＩTGは、何れかの電池ユニットＢＵについての放電における電池電流値であり、電池ユニットＢＵ［１］〜ＢＵ［ｎ］にて測定された放電における電池電流値の合計値、平均値又は最大値であっても良い。
【００４４】
尚、コマンド３２１の中に、間欠動作を行うべきことを指示する信号が含まれている場合、主制御部６０は、その信号に従って間欠動作を行うことができる。間欠動作において、主制御部６０は、通常はオンに維持されているスイッチ６６を間欠的にオフとする。これにより、通信が間欠的に停止されるが、その分、通信に関わる電力消費を抑制することができる。また、主制御部６０は、第２保護動作などによってブレーカ部２２をオンからオフに切り替える際、その切り替え直前に、各電池ユニットＢＵから受信した最新の電池状態データを不揮発性メモリ６８に保存しておくと良い。この保存データを利用することで、ブレーカ部２２をオフに至らしめた原因の追究がしやすくなり、復旧作業が容易になる。尚、保存処理の実行によってブレーカオフまでのタイムラグが発生することを確実に回避すべく、警報が発生したタイミングで最新の電池状態データを不揮発性メモリ６８に保存しておくようにしても良い。警報とは、ブレーカ部２２を直ちにオフにする必要のある、程度の大きな異常の通知（例えば、各ユニット制御部３２から電池管理部２１へのＳＴＯＰ信号の出力）を指す。
【００４５】
上述の説明から理解されるように、電池ユニットＢＵは、充放電制御機能を持たず、主として電力変換制御部１１及び電力変換回路１２に充放電制御を任せている。電力変換制御部１１及び電力変換回路１２は、パワーコントローラとも呼ばれる機器に搭載されるものであっても良く、当該パワーコントローラと電力ブロックＰＢ１の例である太陽電池ユニットとによって太陽電池システムが形成されていても良い（この場合、電力ブロックＰＢ２は例えば負荷又は電力系統である）。この種の太陽電池システムに電池ユニットを追加することで蓄電機能付き太陽電池システムを形成するといった利用形態が考えられ、このような利用形態では、別個用意された既存の太陽電池システムに対して新たに電池ユニットＢＵを追加接続するという形態が実用例の１つとなる。蓄電機能付き太陽電池システムを考えた場合、システム全体にとっては、充放電制御、太陽電池ユニットに対する発電制御及び逆潮流制御などを含む電力変換制御が重要であるが、これとは別に電池ユニットＢＵの保護も重要である。特に例えば、既存の太陽電池システムに電池ユニットＢＵを接続する形態を考えた場合、既存の太陽電池システム側に電池ユニットＢＵの保護を任せるだけでは、保護の安定性に不安が残る。これを考慮し、本実施形態では、電力変換制御部１１及び電力変換回路１２と電池ユニットＢＵとの仲介役として電池管理部２１を設け、電池管理部２１が主体となって、通信を利用した保護機能（第１及び第２保護動作）を実現する。
【００４６】
［ソフトウェアの更新］
ところで、図８（ａ）に示す如く、電池管理部２１（特に主制御部６０）の動作内容を定めるソフトウェアＳＦＴAが、主制御部６０内のフラッシュメモリ等から成るプログラムメモリＰＭAに格納されており、主制御部６０は、自身に設けられた演算処理装置（ＣＰＵ等）上でソフトウェアＳＦＴAを実行することで、主制御部６０が成すべき、上述してきた動作及び制御を実現する。同様に、図８（ｂ）に示す如く、各電池ユニットＢＵにおいて、電池ユニットＢＵ（特にユニット制御部３２）の動作内容を定めるソフトウェアＳＦＴBが、ユニット制御部３２内のフラッシュメモリ等から成るプログラムメモリＰＭBに格納されており、ユニット制御部３２は、自身に設けられた演算処理装置（ＣＰＵ等）上でソフトウェアＳＦＴBを実行することで、ユニット制御部３２が成すべき、上述してきた動作及び制御（電池状態データの生成動作、及び、電池状態データを含んだ信号を通信部６１に送信する動作を含む）を実現する。
【００４７】
電力変換制御部１１は、ソフトウェアＳＦＴAを更新するための信号である更新用信号ＡUPDATEを通信部６２に送信することができる。更新用信号ＡUPDATEは、ソフトウェアＳＦＴAの更新を要求する信号及び更新後のソフトウェアＳＦＴAのコードを含む。更新用信号ＡUPDATEが通信部６２にて受信されると、主制御部６０は、更新用信号ＡUPDATEの内容に従い、所定のブートローダプログラムを用いて、ソフトウェアＳＦＴAを更新することができる。同様に、電力変換制御部１１は、ソフトウェアＳＦＴBを更新するための信号である更新用信号ＢUPDATEを通信部６２に送信することができる。更新用信号ＢUPDATEの内、電池ユニットＢＵ［ｉ］に対する更新用信号を記号ＢUPDATE［ｉ］にて表す。更新用信号ＢUPDATE［ｉ］は、電池ユニットＢＵ［ｉ］のソフトウェアＳＦＴBの更新を要求する信号及び更新後のソフトウェアＳＦＴBのコードを含む。更新用信号ＢUPDATE［ｉ］が通信部６２にて受信されると、主制御部６０は、通信部６１を用い、電池ユニットＢＵ［ｉ］に対して更新用信号ＢUPDATE［ｉ］を送信する。電池ユニットＢＵ［ｉ］のユニット制御部３２は、更新用信号ＢUPDATE［ｉ］を受信すると、更新用信号ＢUPDATE［ｉ］の内容に従い、所定のブートローダプログラムを用いて、自身のソフトウェアＳＦＴBを更新することができる。このように、主制御部６０は、通信部６２にて受信された更新用信号ＢUPDATE［ｉ］が電池ユニットＢＵ［ｉ］に送信されるように通信部６１を制御し、これによって、電池ユニットＢＵ［ｉ］におけるソフトウェアＳＦＴBの更新を実現する。
【００４８】
電池ユニットＢＵ［ｉ］のソフトウェアＳＦＴBの更新処理（ソフトウェアＳＦＴBを更新するための処理）の実行期間中には、電池ユニットＢＵ［ｉ］における電池状態データの生成及び電池ユニットＢＵ［ｉ］から通信部６１への電池状態データの送信（換言すれば、電池ユニットＢＵ［ｉ］からの電池状態データの通信部６１による受信）が停止し、電池ユニットＢＵ［ｉ］の電池状態データに応じた保護機能が無効になる。従って例えば、仮に、電池ユニットＢＵ［１］〜ＢＵ［ｎ］の全てにおいて同時期にソフトウェアＳＦＴBの更新処理が行われたならば、その更新処理の実行期間中、全電池ユニットＢＵの状態監視が停止されるため、安全上、好ましくない。安全確保のため、更新処理の実行期間中には電力変換回路１２側の電路遮断によって充放電を完全に停止させてしまうという方策も考えられるが、その方策では、更新中に蓄電機能を利用できなくなるというデメリットがある。また、上述の第２保護動作の必要性からも理解されるように、電力変換回路１２側での充放電停止が正常に働かなかった場合などに備えて、電池管理部２１による電池状態データの監視は部分的にも継続実行された方が好ましい。
【００４９】
これらを考慮し、主制御部６０は、複数の電池ユニットＢＵにおいてソフトウェアＳＦＴBの更新を成す必要があるとき、ソフトウェアＳＦＴBの更新タイミングを複数の電池ユニットＢＵ間で互いに相違させる。これにより、ソフトウェアＳＦＴBの更新が成されている最中においても、電池管理部２１による電池状態データの監視を部分的に継続実行することできるため、高い安全性を提供することができる。
【００５０】
具体的には例えば、主制御部６０は、ソフトウェアＳＦＴBの更新処理の実行を１台の電池ユニットＢＵごとに許可すると良い。つまり例えば、電池管理部２１において以下のような通信及び制御を成せばよい。通信部６２にて電力変換制御部１１からの更新用信号ＢUPDATE［ｉ］を受信した際、通信部６１は、主制御部６０の制御の下、更新用信号ＢUPDATE［ｉ］を電池ユニットＢＵ［ｉ］に対して送信する。これにより、電池ユニットＢＵ［ｉ］におけるソフトウェアＳＦＴBの更新が実現される。電池ユニットＢＵ［ｉ］におけるソフトウェアＳＦＴBの更新中（即ち、ソフトウェアＳＦＴBの更新処理の実行期間中）において、電池ユニットＢＵ［ｊ］のソフトウェアＳＦＴBの更新を要求する信号を含む更新用信号ＢUPDATE［ｊ］が電力変換制御部１１から通信部６２に送信されて同更新用信号ＢUPDATE［ｊ］が通信部６２にて受信された際、主制御部６０は、その要求を拒否する、或いは、その要求に応じた処理の実行（即ち、電池ユニットＢＵ［ｊ］のソフトウェアＳＦＴBを更新するための処理の実行）を電池ユニットＢＵ［ｉ］のソフトウェアＳＦＴBの更新が完了するまで保留する。ここで、ｉ及びｊは、ｎ以下の互いに異なる整数であるとする。
【００５１】
図９を参照し、ソフトウェアＳＦＴBを更新する際の、より具体的な通信手順例を説明する。図９及び後述の図１０において、上から下へ向かう方向は時間の進行方向に対応する。尚、上述したように、電池ユニットＢＵ［ｉ］に割り当てられたＩＤ番号は“ｉ”であるとする。以下、記述の簡略化上、ソフトウェアＳＦＴBの更新処理を単に更新処理とも言う。更新用信号ＢUPDATE［１］は、図９に示す更新スタート信号４１１、更新ミドル信号４２１及び更新エンド信号４３１から成ると考えることができる。
【００５２】
電池ユニットＢＵ［１］のソフトウェアＳＦＴBの更新を望む場合、何れの電池ユニットＢＵにおいても更新処理が実行されていない状態を起点として、電力変換制御部１１は、まず、電池ユニットＢＵ［１］のソフトウェアＳＦＴBの更新開始を要求する更新スタート信号４１１を送信する。通信部６２にて同信号４１１が受信されると、同信号４１１は“１”のＩＤ番号が付加された状態で通信部６１から通信線ＣＬBに送出される。電池ユニットＢＵ［１］〜ＢＵ［ｎ］の内、“１”のＩＤ番号に対応する電池ユニットＢＵ［１］のユニット制御部３２のみが同信号４１１に応答し、自身が有するブートローダプログラムを起動させる。電池ユニットＢＵ［１］において、ブートローダプログラムの動作中、ユニット制御部３２は後述の信号４２１、４３１及び４４１のみに応答する。一方、ブートローダプログラムが起動していない他の電池ユニットＢＵのユニット制御部３２は、後述の信号４２１、４３１及び４４１に応答することはない。
【００５３】
ブートローダプログラムの起動後、電力変換制御部１１は、更新後のソフトウェアＳＦＴBのコードを含んだ更新用ミドル信号４２１を送信する。通信部６２にて同信号４２１が受信されると、同信号４２１は通信部６１から通信線ＣＬBに送出される。電池ユニットＢＵ［１］〜ＢＵ［ｎ］の内、電池ユニットＢＵ［１］のユニット制御部３２のみが同信号４２１に応答し、同信号４２１に含まれるコードをプログラムメモリＰＭBの所定アドレスに書き込むことでソフトウェアＳＦＴBを更新してゆく。電池ユニットＢＵ［１］のユニット制御部３２は、その書き込みの正常／不良を通知する応答信号４２２を通信部６１に送信し、同応答信号４２２は通信部６２を介して電力変換制御部１１に送られる。
【００５４】
更新用ミドル信号４２１及び応答信号４２２の送受信は必要に応じて複数回繰り返される。最後の更新用ミドル信号４２１は更新用エンド信号４３１として機能する。電力変換制御部１１は、更新用エンド信号４３１に対する、電池ユニットＢＵ［１］のユニット制御部３２からの応答信号４３２を受信し、更新に必要なコードの書き込みが完了したことを認知すると、電池ユニットＢＵ［１］に対するリセット信号４４１を送信する。通信部６２にて同信号４４１が受信されると、同信号４４１は通信部６１から通信線ＣＬBに送出される。電池ユニットＢＵ［１］〜ＢＵ［ｎ］の内、電池ユニットＢＵ［１］のユニット制御部３２のみが同信号４４１に応答して、更新後のソフトウェアＳＦＴBを起動させる。尚、更新用エンド信号４３１は、ソフトウェアＳＦＴBのコードを含まない信号であっても良い。
【００５５】
電池管理部２１を中心にして考えた場合、電池管理部２１は、図１０に示す如く、更新用スタート信号４１１を通信部６２にて受信してから或いは同信号４１１を通信部６１より送信してから、リセット信号４４１を通信部６２にて受信するまで或いは同信号４４１を通信部６１より送信するまでの期間を、電池ユニットＢＵ［１］のソフトウェアＳＦＴBの更新処理の実行期間４５０と捉えることができる。そして、その実行期間４５０中において、電池ユニットＢＵ［２］のソフトウェアＳＦＴBの更新開始を要求する更新スタート信号４６１が電力変換制御部１１から送信されて、同信号４６１が通信部６２にて受信された場合、主制御部６０は、その要求を拒否し、更新スタート信号４６１を通信部６１から電池ユニットＢＵ［２］に送信することなく、要求拒否を通知する要求拒否信号４６２を通信部６２から電力変換制御部１１に送信させる。或いは、上記の如く要求への応答を保留しても良い。即ち、実行期間４５０中において上記信号４６１が通信部６２にて受信された場合、主制御部６０は、実行期間４５０が満了して電池ユニットＢＵ［１］のソフトウェアＳＦＴBの更新が完了するまで、通信部６１による電池ユニットＢＵ［２］への信号４６１の送信を保留してもよい。この場合、電池ユニットＢＵ［１］のソフトウェアＳＦＴBの更新の完了後、主制御部６０は、通信部６１から電池ユニットＢＵ［２］へ信号４６１を送信させる。その後の処理は、電池ユニットＢＵ［１］について上述したものと同様である。更新スタート信号４６１が、電池ユニットＢＵ［３］〜ＢＵ［ｎ］の何れかについての更新スタート信号である場合も同様である。
【００５６】
また、実行期間４５０中においても、主制御部６０の制御の下、通信部６１は、電池状態データを取得するための上述の基本通信処理を継続的に実行する。但し、ソフトウェアＳＦＴBの更新対象は、基本通信処理の対象から除外される。即ち、図９及び図１０に示す如く、電池ユニットＢＵ［１］が更新対象である場合、実行期間４５０中においても、通信部６１及び電池ユニットＢＵ［２］間における、上述したコマンド３１３及び応答信号３１４の送受信が成される（図６も参照）。
【００５７】
ｎ≧３である場合も同様であり、ソフトウェアＳＦＴBの更新対象としての電池ユニットＢＵ（以下、対象ユニットとも呼ぶ）が電池ユニットＢＵ［１］以外である場合も同様である。即ち、電池ユニットＢＵ［１］〜ＢＵ［ｎ］の内の何れかである対象ユニットに対し、通信部６１から更新用信号ＢUPDATEを送信することで対象ユニットにおいてソフトウェアＳＦＴBの更新が行われているとき（即ち対象ユニットが電池ユニットＢＵ［１］ならば実行期間４５０中において）、通信部６１は、（ｎ−１）個の非対象ユニットと通信を行って各非対象ユニットから電池状態データを受信する。非対象ユニットは、電池ユニットＢＵ［１］〜ＢＵ［ｎ］の内の、対象ユニット以外の電池ユニットＢＵを指す。これにより、対象ユニットのソフトウェアの更新中においても、電池管理部２１による電池状態データの監視が部分的に継続実行され、高い安全性を提供することができる。
【００５８】
安全性の実効を図るために、電池ユニットＢＵ［１］においてソフトウェアＳＦＴBの更新が行われているとき（即ち実行期間４５０中において）、主制御部６０は、電池ユニットＢＵ［２］〜ＢＵ［ｎ］の電池状態データに基づき、信号３４１及び３４２（図７参照）の生成及び送信による第１保護動作並びにブレーカ部２２のオン／オフ制御による第２保護動作を成すと良い。
【００５９】
図１０には示していないが、実行期間４５０中において、電力変換制御部１１からのコマンド３２１（図６参照）が通信部６２にて受信された場合、ソフトウェアＳＦＴBの更新処理とは独立し、主制御部６０は、応答信号３２２’を生成して同信号３２２’を通信部６２から電力変換制御部１１に送信することができる。応答信号３２２’は、上述の応答信号３２２（図６及び図７）と同様の信号であり、従って、図７の信号３４１〜３４３を含む。但し、実行期間４５０中に電池ユニットＢＵ［１］から電池状態データを取得することはできないため、実行期間４５０中における電池ユニットＢＵ［１］の電池モジュール３１の状態は、応答信号３２２’及び信号３４１〜３４３に反映されない。その点を除き、応答信号３２２’及び応答信号３２２’に含められる信号３４１〜３４３を、上述の応答信号３２２及び信号３４１〜３４３と同じものにすることができる。つまり、実行期間４５０中において、主制御部６０は、電池ユニットＢＵ［２］〜ＢＵ［ｎ］の電池状態データに応じた信号３４１〜３４３（図７参照）を応答信号３２２’に含めて通信部６２から電力変換制御部１１に送信させることができる。これにより、非対象ユニットの電池状態データに基づく第１保護動作が実現される。例えば、実行期間４５０中において、主制御部６０は、電池ユニットＢＵ［２］〜ＢＵ［ｎ］の電池状態データに基づき、電池ユニットＢＵ［２］〜ＢＵ［ｎ］の何れかにおいて何らかの異常（過充電による異常、過放電による異常、過電流による異常、温度異常又はセンサ異常）が発生していると判断される場合には、発生している異常の種類に応じて信号３４１及び３４２のどちらか又は双方に１を代入し、これによって、充電又は放電の禁止を電力変換制御部１１に求めることができる。尚、信号３４１及び３４２の内、一方のみが応答信号３２２’に含まれても良い。
【００６０】
第１保護動作によって充電禁止信号（即ち１の値を持つ信号３４１）又は放電禁止信号（即ち１の値を持つ信号３４２）が通信部６２から送信された場合、実行期間４５０中においても、主制御部６０は第２保護動作を成すことができる。但し、実行期間４５０中に電池ユニットＢＵ［１］から電池状態データを取得することはできないため、実行期間４５０中の第２保護動作にて参照される電池電流値に電池ユニットＢＵ［１］の電池電流値は含まれない。即ち、実行期間４５０中の第２保護動作を考える場合、上述の対象電流値ＩTGの説明文において、電池ユニットＢＵ［１］〜ＢＵ［ｎ］を電池ユニットＢＵ［２］〜ＢＵ［ｎ］に読み替えれば良い。実行期間４５０中において、主制御部６０は、非対象ユニットの電池電流値に基づく対象電流値ＩTGを監視し、通信部６２による充電禁止信号又は放電禁止信号の送信タイミングから所定時間ＴＨTIMEが経過しても対象電流値ＩTGの大きさが正の所定値ＩTH以下にならないとき、ブレーカ部２２をオンからオフに切り替えることができ、上記送信タイミングから所定時間ＴＨTIMEの経過後、対象電流値ＩTGが所定値ＩTH以下になっているときには、ブレーカ部２２をオンのまま維持することができる。
【００６１】
＜＜実施例＞＞
ソフトウェアの更新に関する実施例を説明する。図１１に、プログラムメモリＰＭA又はＰＭBに格納されたデータ及びプログラムを示す。プログラムメモリＰＭA及びＰＭBの夫々には、完了フラグ、パスワード、ＣＲＣコード、メインプログラム、スタートプログラム及びブートローダプログラムが格納されている。プログラムメモリＰＭA及びＰＭBのメインプログラムが、夫々、上述のソフトウェアＳＦＴA及びＳＦＴBに相当する。完了フラグは、０又は１の値をとるフラグであり、その初期値は０である。
【００６２】
図１２のフローチャートは、主制御部６０又はユニット制御部３２におけるプログラムの実行手順を表す。尚、本実施例で述べるソフトウェアの更新方法は、ソフトウェアＳＦＴA及びＳＦＴB間で同じであるため、以下では、代表して、ソフトウェアＳＦＴBの更新方法を説明する。ソフトウェアＳＦＴAの更新方法について考える場合、以下の説明文におけるユニット制御部３２、ソフトウェアＳＦＴB、メモリＰＭB及び更新用信号ＢUPDATEを、夫々、主制御部６０及びソフトウェアＳＦＴA、メモリＰＭA及び更新用信号ＡUPDATEに読み替えればよい。
【００６３】
ユニット制御部３２に電源が投入されると、ユニット制御部３２においてスタートプログラムが起動し（ステップＳ５１）、スタートプログラムはメモリＰＭB内の完了フラグの値をチェックする（ステップＳ５２）。ユニット制御部３２は、完了フラグの値がゼロならメモリＰＭB内のメインプログラムを起動させる一方（ステップＳ５３）、完了フラグの値が１ならメモリＰＭB内のブートローダプログラムを起動させる（ステップＳ５５）。メインプログラムが起動した場合、ソフトウェアの更新処理以外の、上述の各動作（基本通信処理並びに第１及び第２保護動作を含む）が実行される。但し、メインプログラムの起動後、メインプログラムの中で、ユニット制御部３２に対して更新要求があるか否か（図９の更新スタート信号４１１が供給されているか否か）がチェックされ（ステップＳ５４）、更新要求があった場合、後述のパスワード照合処理を経てから、ユニット制御部３２は、メインプログラムの実行を停止して、代わりにブートローダプログラムを起動させる（ステップＳ５５）。
【００６４】
ブートローダプログラムでは、メインプログラムの更新を行う（ステップＳ５６）。この更新の開始時において、ブートローダプログラムはメモリＰＭB内の完了フラグに“１”を設定する。ブートローダプログラムの中で、メインプログラムを更新するためのコードが全てメモリＰＭBに書き込まれた後、後述のＣＲＣ照合処理が行われる（ステップＳ５７）。ＣＲＣ照合処理の結果が良好（ＯＫ）であると、メインプログラムの更新は正常完了し、ブートローダプログラムは完了フラグに“０”を設定した上でユニット制御部３２の動作をリセットする（ステップＳ５８）。これにより、ユニット制御部３２が再起動し、更新後のメインプログラムが起動する（ステップＳ５１〜Ｓ５３）。
【００６５】
図１２のフローチャートから理解されるように、メインプログラムの更新が正常完了していない限り（即ち、完了フラグが０にならない限り）、ユニット制御部３２ではブートローダプログラムが起動する。更新が正常完了するためには、パスワード照合処理及びＣＲＣ照合処理によるチェックを正常通過する必要がある。
【００６６】
今、図１３に示す第１ソフトウェア供給体５０１と第２ソフトウェア供給体５０２を想定する。供給体５０１は、例えば、電池管理部２１及び電池ユニットＢＵの設計又は供給会社である、或いは、その会社におけるサーバ機器である。供給体５０２は、例えば、電力変換制御部１１及び電力変換回路１２の設計又は供給会社である、或いは、電力変換制御部１１である。メモリＰＭB内のパスワードの初期値及びメモリＰＭB内のパスワードの現在値を供給体５０１は認識している。メモリＰＭB内のメインプログラムに更新が必要な場合、供給体５０１は、有線又は無線通信によって或いは記録媒体を介して、図１３に示す如く、供給体５０２に対し、メインプログラム５２１、更新前パスワード５２２、ＣＲＣコード５２３及び更新後パスワード５２４を提供する。供給体５０２が、電力変換制御部１１及び電力変換回路１２の設計又は供給会社である場合、供給体５０２を経て、電力変換制御部１１に、メインプログラム５２１、更新前パスワード５２２、ＣＲＣコード５２３及び更新後パスワード５２４が供給される。電力変換制御部１１は、メインプログラム５２１、更新前パスワード５２２、ＣＲＣコード５２３及び更新後パスワード５２４を含む更新用信号ＢUPDATEを通信線ＣＬSに送出することで、それらをユニット制御部３２に提供する。尚、供給体５０２が更新後パスワード５２４を容易に判別できないような形で、パスワード５２４が供給体５０２に提供されることが望ましい。
【００６７】
更新前パスワード５２２の値は、供給体５０１が認知している、メモリＰＭB内のパスワードの現在値と同じである。メインプログラムは、パスワード照合処理において、更新前パスワード５２２がメモリＰＭB内のパスワードの現在値と一致しているか否かを確認し、それらの一致が認められた場合にのみブートローダプログラムを起動し、メインプログラムの更新を開始する。メインプログラムの更新は、メモリＰＭB内に保持されるメインプログラムを、メインプログラム５２１に置き換えることに相当する。また、ユニット制御部３２は、メインプログラムの更新の際、ＣＲＣコード５２３をメモリＰＭB内に保存しておく。
【００６８】
ＣＲＣコード５２３は、メモリＰＭB内に保持されているブートローダプログラムのコードとメインプログラム５２１のコードを入力値とする所定関数の出力値であり、その関数は、巡回冗長検査（cyclic redundancy check）と呼ばれるものであっても良い。ブートローダプログラムは、ＣＲＣ照合処理において、ブートローダプログラムのコードと更新後のメインプログラムのコードとを入力値とする上記所定関数の出力値を求めて、該出力値がＣＲＣコード５２３と一致しているか否かを確認し、それらの一致が認められた場合にのみメインプログラムの更新が正常完了したと判断する（ステップＳ５８）。供給体５０１はブートローダプログラムのコードを認識しているためＣＲＣコード５２３を正確に知っているが、供給体５０２はブートローダプログラムのコードを知らない。故に、仮に供給体５０２がメインプログラム５２１を不正に書き換えた場合（或いはユニット制御部３２に送られたメインプログラム５２１にノイズ等に起因する誤りが混入した場合）、メインプログラムの更新は正常に完了しない。上述したように、メインプログラムの更新が正常完了しない限りユニット制御部３２ではブートローダプログラムが起動するため、プログラムの改変等に対する安全性が高まる。
【００６９】
また、メインプログラムの更新が正常完了すると、更新後パスワード５２４が新たなパスワードとしてメモリＰＭB内に保存される。更新後パスワード５２４は、更新後のメインプログラムであるメインプログラム５２１に対応するパスワードであり、次回、メインプログラムを更新するためには、ユニット制御部３２にパスワード５２４を提供する必要がある。
【００７０】
尚、メインプログラムの更新中においてブレーカ部２２がオフされて該更新が中断されたとき、メモリＰＭB内のメインプログラムは不全となるが、ユニット制御部３２が起動しなくなるという心配はない。ブレーカ部２２がオンに戻されてユニット制御部３２に電源が再投入されたとき、図１２の手順に従ってブートローダプログラムが起動するため、再度、ユニット制御部３２に更新用信号ＢUPDATEを供給しなおすことで更新をやり直すことができる。
【００７１】
＜＜変形等＞＞
本発明の実施形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。以上の実施形態は、あくまでも、本発明の実施形態の例であって、本発明ないし各構成要件の用語の意義は、以上の実施形態に記載されたものに制限されるものではない。上述の説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。上述の実施形態に適用可能な注釈事項として、以下に、注釈１〜注釈４を記す。各注釈に記載した内容は、矛盾なき限り、任意に組み合わせることが可能である。
【００７２】
［注釈１］
本実施形態に係る電力システム１（図１参照）の構成要素の全部又は一部を、様々な他のシステム、機器などに搭載することができ、例えば、電池モジュール３１の放電電力を用いて駆動する移動体（電動車両、船、航空機、エレベータ、歩行ロボット等）又は電子機器（パーソナルコンピュータ、携帯端末等）に搭載しても良いし、家屋や工場の電力システムに組み込んでも良い。
【００７３】
［注釈２］
上述の実施形態では（図１参照）、電力ブロックＰＢ１が電力の出力を行う電力ブロックであって且つ電力ブロックＰＢ２が電力の入力を受ける電力ブロックであることを想定したが、電力ブロックＰＢ１及びＰＢ２の夫々は電力の入力及び出力が可能な電力ブロックであっても良い。この場合、電力変換回路１２は双方向の電力変換が可能な回路であると良い。即ち、電力変換回路１２は、電力ブロックＰＢ１の出力電力を電力ブロックＰＢ２又は電池ブロックへの入力電力に変換する機能、電力ブロックＰＢ２の出力電力を電力ブロックＰＢ１又は電池ブロックへの入力電力に変換する機能、及び、電池ブロックの出力電力を電力ブロックＰＢ１又はＰＢ２への入力電力に変換する機能を有していても良い。
【００７４】
［注釈３］
電池管理部２１とブレーカ部２２を含む装置を、電池制御装置と呼ぶこともできる。電池管理部２１、ブレーカ部２２及び電池ブロックＢＢを含むシステムを、電池システムと呼ぶこともできる。通信部６１及び６２は、電力変換制御部１１及び電池ユニットＢＵの夫々と通信を行う１つの通信部を形成していると考えても良い。
【００７５】
［注釈４］
本発明は、ブレーカ部２２及び電池ブロックＢＢが複数設けられるような電力システムに対しても適用可能である。この際、１つの電力変換回路１２に対して複数のブレーカ部２２及び複数の電池ブロックＢＢを設けるようにしても良い。ブレーカ部２２及び電池ブロックＢＢが複数設けられた電力システムにおいて、１つのブレーカ部２２及び１つの電池ブロックＢＢの組ごとに電池管理部２１を設けるようにしても良いし、複数のブレーカ部２２及び複数の電池ブロックＢＢに対して１つの電池管理部２１を設けるようにしても良い。
【符号の説明】
【００７６】
１  電力システム
１１  電力変換制御部
１２  電力変換回路
２１  電池管理部
２２  ブレーカ部
３１  電池モジュール
６０  主制御部
６１、６２  通信部
ＢＵ  電池ユニット
ＰＢ１、ＰＢ２  電力ブロック
【図１】
2013207902.tif 000003
【図２】
2013207902.tif 000004
【図３】
2013207902.tif 000005
【図４】
2013207902.tif 000006
【図５】
2013207902.tif 000007
【図６】
2013207902.tif 000008
【図７】
2013207902.tif 000009
【図８】
2013207902.tif 000010
【図９】
2013207902.tif 000011
【図１０】
2013207902.tif 000012
【図１１】
2013207902.tif 000013
【図１２】
2013207902.tif 000014
【図１３】
2013207902.tif 000015
【図１４】
2013207902.tif 000016