(57)【特許請求の範囲】
【請求項１】
複数の二次電池セルを含む電池と、
前記二次電池セルの電圧を測定する電圧測定用回路と、
前記電圧測定用回路および上位制御回路と通信を行ない前記電池の充電および放電制御を行なうとともに、自己の動作状態を示す第１ステータス信号を出力する第１プロセッサと、
前記第１ステータス信号を受信し、前記第１ステータス信号に基づいて前記第１プロセッサが正しい動作をしているか否か判断し、前記第１プロセッサが正しい動作をしていないと判断したときに前記第１プロセッサをハードウエアリセットする第１リセット信号を出力可能な第２プロセッサと、を備え、
前記第２プロセッサは、前記第１プロセッサをリセットした回数を記録する第２記録手段を備え、前記第１プロセッサが異常であると判断したときに前記第１プロセッサをリセットした回数が規定値より大きい場合、前記上位制御回路へ前記第１プロセッサが異常であることを通知し、前記第１プロセッサをリセットした回数が規定値以下である場合、前記第１リセット信号を出力する二次電池装置。
【請求項２】
前記第１プロセッサは、命令を保持する命令メモリと、次に実行すべき命令のアドレスを保持するレジスタと、を備え、
前記第１ステータス信号は前記レジスタの値を含む請求項１記載の二次電池装置。
【請求項３】
前記第１ステータス信号は、前記第１プロセッサが実行する処理のそれぞれに付された動作ステータス番号を含む請求項１又は請求項２記載の二次電池装置。
【請求項４】
前記第２プロセッサは前記第１ステータス信号が所定期間内に変化したか否か判断する判断手段を備える請求項１乃至請求項３のいずれか１項記載の二次電池装置。
【請求項５】
前記第２プロセッサは自己の動作状態を示す第２ステータス信号を前記第１プロセッサへ出力し、
前記第１プロセッサは前記第２ステータス信号を受信して前記第２ステータス信号に基づいて前記第２プロセッサが正しい動作をしているか否か判断し、前記第２プロセッサが正しい動作をしていないと判断したときに前記第２プロセッサをハードウエアリセットする第２リセット信号を出力可能である請求項１乃至請求項４のいずれか１項記載の二次電池装置。
【請求項６】
前記第２プロセッサは、命令を保持する命令メモリと、次に実行すべき命令のアドレスを保持するレジスタと、を備え、
前記第２ステータス信号は前記レジスタの値を含む請求項５記載の二次電池装置。
【請求項７】
前記第２ステータス信号は、前記第２プロセッサが実行する処理のそれぞれに付された動作ステータス番号を含む請求項５又は請求項６記載の二次電池装置。
【請求項８】
複数の二次電池セルを含む電池と、
前記二次電池セルの電圧を測定する電圧測定用回路と、
前記電圧測定用回路および上位制御回路と通信を行ない前記電池の充電および放電制御を行なうとともに、自己の動作状態を示す第１ステータス信号を出力する第１プロセッサと、
前記第１ステータス信号を受信し、前記第１ステータス信号に基づいて前記第１プロセッサが正しい動作をしているか否か判断し、前記第１プロセッサが正しい動作をしていないと判断したときに前記第１プロセッサをハードウエアリセットする第１リセット信号を出力可能な第２プロセッサと、を備え、
前記第２プロセッサは自己の動作状態を示す第２ステータス信号を前記第１プロセッサへ出力し、
前記第１プロセッサは前記第２ステータス信号を受信して前記第２ステータス信号に基づいて前記第２プロセッサが正しい動作をしているか否か判断し、前記第２プロセッサが正しい動作をしていないと判断したときに前記第２プロセッサをハードウエアリセットする第２リセット信号を出力可能であり、
前記第１プロセッサは、前記第１プロセッサをリセットした回数を記録する第１記録手段を備え、前記第２プロセッサが異常であると判断したときに前記第２プロセッサをリセットした回数が規定値よりも大きい場合、前記上位制御回路へ前記第２プロセッサが異常であることを通知し、前記第２プロセッサをリセットした回数が規定値以下である場合、前記第２リセット信号を出力する二次電池装置。
【請求項９】
複数の二次電池セルを含む電池と、
前記二次電池セルの電圧を測定する電圧測定用回路と、
前記電圧測定用回路および上位制御回路と通信を行ない前記電池の充電および放電制御を行なうとともに、自己の動作状態を示す第１ステータス信号を出力する第１プロセッサと、
前記第１ステータス信号を受信し、前記第１ステータス信号に基づいて前記第１プロセッサが正しい動作をしているか否か判断し、前記第１プロセッサが正しい動作をしていないと判断したときに前記第１プロセッサをハードウエアリセットする第１リセット信号を出力可能な第２プロセッサと、を備え、
前記電圧測定用回路と前記第１プロセッサとの間の通信に用いられ、前記第２プロセッサにも接続された通信用インタフェースをさらに備え、
前記第２プロセッサは、前記電圧測定用回路と前記第１プロセッサとの間の通信状態を監視し、前記電圧測定用回路と前記第１プロセッサとの間の通信が正しく行われているか否か判断する手段をさらに備える二次電池装置。
【請求項１０】
複数の二次電池セルを含む電池と、
前記二次電池セルの電圧を測定する電圧測定用回路と、
前記電圧測定用回路および上位制御回路と通信を行ない前記電池の充電および放電制御を行なうとともに、自己の動作状態を示す第１ステータス信号を出力する第１プロセッサと、
前記第１ステータス信号を受信し、前記第１ステータス信号に基づいて前記第１プロセッサが正しい動作をしているか否か判断し、前記第１プロセッサが正しい動作をしていないと判断したときに前記第１プロセッサをハードウエアリセットする第１リセット信号を出力可能な第２プロセッサと、を備え、
前記第１プロセッサと前記上位制御回路との間の通信に用いられ、前記第２プロセッサにも接続された第２通信用インタフェースをさらに備え、
前記第２プロセッサは、前記第１プロセッサと前記上位制御回路との間の通信状態を監視し、前記第１プロセッサと前記上位制御回路との間の通信が正しく行われているか否か判断する手段をさらに備える二次電池装置。
【請求項１１】
前記第１プロセッサの状態を保存する第２メモリをさらに具備し、
前記第２プロセッサは、前記第１プロセッサをハードウエアリセットした場合に、ハードウエアリセットしたこと、ハードウエアリセットした要因、ハードウエアリセットした時間を、前記第２メモリに記録する請求項１乃至請求項１０のいずれか１項記載の二次電池装置。
【請求項１２】
前記第２プロセッサの状態を保存する第１メモリをさらに具備し、
前記第１プロセッサは、前記第２プロセッサをハードウエアリセットした場合に、ハードウエアリセットしたこと、ハードウエアリセットした要因、ハードウエアリセットした時間を、前記第１メモリに記録する請求項５乃至請求項１１のいずれか１項記載の二次電池装置。
【請求項１３】
請求項１乃至請求項１２のいずれか１項に記載された二次電池装置と、
前記二次電池装置からの電力により駆動される車軸と、を具備する車両。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、二次電池装置、プロセッサ、監視プログラム、および、車両に関する。
【背景技術】
【０００２】
従来、二次電池装置においては、電池制御に必要な処理(バッテリ保護、Fuel Gauge算出、パック容量算出、内部抵抗算出、上位制御回路通信、電圧測定用回路間通信等）を行うためにプロセッサが搭載されている。このプロセッサが異常になった場合には、上位制御回路が電池についての正しい情報（電圧・温度）を入手できなくなるだけでなく、現在の情報が得られない、または誤った情報を得てしまうことにより、電池が過電圧状態に至り爆発・発火等ユーザに危害が加わる事象に至る可能性がある。
【０００３】
このため、従来の二次電池装置においては、爆発・発火を防ぐために、プロセッサを監視するための回路を付加し、この監視回路でプロセッサが動作しているかどうかを確認し、動作していない場合には上位制御回路に異常通知を行うことを実施している。
【０００４】
具体的には、プロセッサとプロセッサを監視するための回路との間にある通信線に、プロセッサが動作している時には規定の周波数の方形波パルスが出力されているが、動作していない時には規定とは異なる方形波パルス（ハイ（Ｈ）レベルまたはロー（Ｌ）レベルに固定、または周波数やデューティ（Ｄｕｔｙ）比が規定とは異なる波形）が出力される。
【０００５】
プロセッサを監視するための回路がこの信号線を常に監視していて、規定の方形波パルスが出力されなくなった場合には、この監視回路により、即座にプロセッサをハードウエアリセットすると同時に、上位制御回路にプロセッサが動作していないことを通知している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−４６４２６号公報
【特許文献２】特開２００１−６３４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
プロセッサを監視するための回路から異常通知を受けた上位制御回路は、二次電池装置が異常であることから、電池と電池で駆動されているモータ等に接続される主回路とを即座に遮断する。その結果として、ユーザの使用している車両の駆動力が突然無くなることとなり、例えば高速道路を高速で走行している時に後続車に追突されることや、カーブを曲がっている時に車両が回転する等の事故が発生する可能性があった。
【０００８】
また、宇宙線や設計保障範囲外のノイズによるプロセッサの異常状態への遷移は、かならず発生するものであり、これらが要因の場合には、プロセッサをハードウエアリセットすると復帰できるが、従来の二次電池装置では、上記したように、１回でもプロセッサが異常状態に陥り停止した場合に、プロセッサのハードウエアリセットと、上位制御回路への異常通知が行われるために、復帰可能な異常状態においても、上位制御回路に対して異常通知を行ってしまう。このため、異常通知が発生する確率が高くなり、二次電池装置の可用性が低くなっている。結果として、二次電池装置を使用した機器の安全性も低くなる。
【０００９】
また、プロセッサの状態を示すために、方形波パルスを使用する場合、監視回路で方形波パルスが規定以外になったことによりプロセッサの異常を検出することはできるが、いつ異常が発生したか、二次電池装置がどのような処理を行っていた時に異常が発生したかについて知ることはできなかった。
【００１０】
また、プロセッサの異常の状態やプログラムの書き方によっては、規定の方形波パルスは出力しているにも関わらず、内部の処理に異常が生じている場合があった。具体的には、方形波パルスは出力しているが、上位制御回路との通信を行えていない場合、または、上位制御回路との通信は行えているが内容に定義していないデータ内容・アドレス・制御コマンドが含まれている場合が生じる可能性があった。これらの場合には、方形波パルスのみの監視では、プロセッサの異常を検出することができない。
【００１１】
上記のように、従来の二次電池装置は、異常通知が発生する確率が高く(可用性が低い)、異常が発生した要因の解析の難易度が高く(保守性が低い)、異常を見逃す確率が高い(検出性が低い)ものであって、信頼性が低いものであった。
【００１２】
本発明は上記事情を鑑みて成されたものであって、可用性・保守性・検出性が高く、信頼性の高い二次電池装置、プロセッサ、監視プログラム、および、車両を提供することを目的とする。
【課題を解決するための手段】
【００１３】
実施形態に係る二次電池装置は、複数の二次電池セルを含む電池と、前記二次電池セルの電圧を測定する電圧測定用回路と、前記電圧測定用回路および上位制御回路と通信を行ない前記電池の充電および放電制御を行なうとともに、自己の動作状態を示す第１ステータス信号を出力する第１プロセッサと、前記第１ステータス信号を受信し、前記第１ステータス信号に基づいて前記第１プロセッサが正しい動作をしているか否か判断し、前記第１プロセッサが正しい動作をしていないと判断したときに前記第１プロセッサをハードウエアリセットする第１リセット信号を出力可能な第２プロセッサと、を備え、前記第２プロセッサは、前記第１プロセッサをリセットした回数を記録する第２記録手段を備え、前記第１プロセッサが異常であると判断したときに前記第１プロセッサをリセットした回数が規定値より大きい場合、前記上位制御回路へ前記第１プロセッサが異常であることを通知し、前記第１プロセッサをリセットした回数が規定値以下である場合、前記第１リセット信号を出力する。
【図面の簡単な説明】
【００１４】
【図１】実施形態に係る車両の一構成例を説明するための図である。
【図２】第１実施形態の二次電池装置の一構成例を説明するための図である。
【図３】図２に示す二次電池装置のメインプロセッサおよびサブプロセッサの一構成例を説明するための図である。
【図４】図２に示す二次電池装置のプロセッサの動作ステータスの一例を説明するための図である。
【図５】図２に示す二次電池装置のサブプロセッサの動作の一例を説明するためのフローチャートである。
【図６】図２に示す二次電池装置のメインプロセッサの動作の一例を説明するためのフローチャートである。
【図７】第２実施形態の二次電池装置の一構成例を説明するための図である。
【図８】第３実施形態の二次電池装置の一構成例を説明するための図である。
【図９】第４実施形態の二次電池装置の一構成例を説明するための図である。
【発明を実施するための形態】
【００１５】
以下、実施形態について、図面を参照して説明する。  
図１に、本発明の一実施形態に係る車両の一構成例を概略的に示す。本実施形態に係る車両は、例えば電気自動車あるいはハイブリッド自動車であって、二次電池装置が搭載されている。
【００１６】
車両は、電池管理装置３００と、電池モジュール４００と、電池モジュール４００からの電力により駆動される車軸と、運転制御部５００と、電池モジュール４００から電力が供給されるモータ６００と、上位制御回路４０と、シャーシ１０００と、駆動輪ＷＲ、ＷＬと、を備える。
【００１７】
電池モジュール４００は、複数の二次電池セル（図示せず）を含む電池ＢＴ（図２に示す）と、電池ＢＴの温度等を測定する電池電圧測定用回路１０（図２に示す）と、電池管理装置３００に情報を流している通信系とを備える。電池ＢＴの正極端子と負極端子とは、運転制御部５００に接続されている。
【００１８】
電池管理装置３００は、電池モジュール４００から複数の二次電池セルの電圧値、電池ＢＴの電流値、および、電池ＢＴの温度値が供給され、電池ＢＴの電圧値等を監視するとともに充電および放電等を管理する制御回路と、電池モジュール４００および上位制御回路４０と通信を行なう通信系とを備える。
【００１９】
運転制御部５００はインバータ（図示せず）を備え、電池モジュール４００から供給される電圧を変換するとともに、運転指令を受けて出力電流・電圧のレベル制御及び位相制御などを行う。運転制御部５００の出力は、モータ６００に駆動電力として供給される。モータ６００の回転は、例えば差動ギアユニットを介して、車軸（図示せず）および駆動輪ＷＲ、ＷＬに伝達される。
【００２０】
上位制御回路４０は、電池管理装置３００から複数の二次電池セルの電圧等のデータや、電池モジュール４００や電池管理装置３００の異常を通知する信号を受信して、電池管理装置３００の動作を制御する。
【００２１】
図２に、本実施形態に係る二次電池装置の一構成例を概略的に示す。本実施形態に係る二次電池装置は、複数の二次電池セル（図示せず）を含む電池ＢＴと、電池ＢＴの電圧および温度を測定する電池電圧測定用回路１０と、メインプロセッサ（第１プロセッサ）２０と、サブプロセッサ（第２プロセッサ）３０と、第１メモリＭ１と、第２メモリＭ２と、を備えている。本実施形態の二次電池装置が車両に搭載されるときには、電池ＢＴと電池電圧測定用回路１０は電池モジュール４００に搭載され、メインプロセッサ２０、サブプロセッサ３０、第１メモリＭ１、および、第２メモリＭ２は電池管理装置３００に搭載される。
【００２２】
電池電圧測定用回路１０は、電圧測定線により電池ＢＴと接続されている。電池電圧測定用回路１０は、電圧測定線から複数の二次電池セルの正極端子電圧および負極端子電圧を取得して、各二次電池セルの端子間電圧をメインプロセッサ２０へ出力する。また、電池電圧測定用回路１０は、電池ＢＴに設置された温度センサ（図示せず）から電池ＢＴの温度を検出し、図示しない通信系により検出結果をメインプロセッサ２０へ送信する。
【００２３】
電池電圧測定用回路１０は、測定した電圧等の値が異常である場合、および、電池電圧測定用回路１０が異常である場合に、図示しない通信系によりサブプロセッサ３０へ異常を通知する。
【００２４】
メインプロセッサ２０は、電池制御に必要な処理（電池保護、Fuel Gauge算出、電池容量算出、内部抵抗算出、上位制御回路４０との通信、電池電圧測定用回路１０との通信等）と、サブプロセッサ３０の動作状態の監視、異常通知、および、ハードウエアリセットを行う。メインプロセッサ２０は、電池電圧測定用回路１０から電池ＢＴの電圧値および温度値を受信するとともに、電池電圧測定用回路１０へ制御コマンドを送信する。
【００２５】
図３にメインプロセッサ２０の一構成例を示す。メインプロセッサ２０は、命令メモリ２１と、データメモリ２３と、プログラムカウンタ２５と、レジスタ２７と、種々の論理演算を行なう演算器２９と、を備えている。
【００２６】
命令メモリ２１は、二次電池装置を制御するための命令を保持する。  
データメモリ２３は、電池電圧測定用回路１０から受信した電圧値や温度値等のデータを保持する。
【００２７】
プログラムカウンタ２５は、次に実行すべき命令のアドレスを保持するレジスタである。メインプロセッサ２０は、プログラムカウンタ２５が指し示す命令を命令メモリ２１から読み出して実行する。命令を読み出すと次に実行すべき命令を指し示すように更新される。
【００２８】
レジスタ２７は、データを一次記憶する記憶手段である。演算の対象データやメモリアクセスのためのメモリアドレスを格納する汎用レジスタ、プログラム制御に使われるコントロールレジスタ、および、入出力装置（Ｉ／Ｏ）を制御するための周辺機能レジスタ等が用いられる。
【００２９】
メインプロセッサ２０は、サブプロセッサ３０へのステータス通知信号として、例えばプログラムカウンタ２５の値や、メインプロセッサ２０の動作ステータス番号を出力する。
【００３０】
プログラムカウンタ２５の値は、正常にプログラムが実行されると所定のタイミングで値が更新される。したがって、メインプロセッサ２０でプログラムが正常に実行されている場合には、一定期間（例えば1秒）内にプログラムカウンタ２５の値が変化する。もしメインプロセッサ２０でプログラムが正常に実行されていない場合には、一定期間（例えば1秒）内にプログラムカウンタ２５の値は変化しない。
【００３１】
図４にメインプロセッサ２０の処理に対する動作ステータス番号の一例を示す。メインプロセッサ２０が行なう処理のそれぞれには動作ステータス番号が付されている。メインプロセッサ２０は、上位制御回路４０から受信した制御コマンドに従って所定の処理を順次実行する。メインプロセッサ２０は、例えばレジスタ２７、またはデータメモリ２３にに動作ステータス番号を保持し、実行する処理が遷移する毎に動作ステータス番号を更新する。メインプロセッサ２０が処理Ａを実行しているときは動作ステータス番号が１である。メインプロセッサ２０の処理が処理Ａから処理Ｄに遷移したときには、動作ステータス番号が１から４へ更新される。メインプロセッサ２０でプログラムが正常に実行されている場合には、一定期間（例えば1秒）内に動作ステータス番号が変化する。もしメインプロセッサ２０でプログラムが正常に実行されていない場合には、一定期間（例えば1秒）内に動作ステータス番号は変化しない。
【００３２】
メインプロセッサ２０と電池電圧測定用回路１０との間は、測定用回路コマンド・データ通信用インタフェースにより接続されている。メインプロセッサ２０と上位制御回路４０との間は、データ通信用インタフェースおよび制御コマンド線により接続されている。メインプロセッサ２０とサブプロセッサ３０との間には、メインプロセッサステータス通知線と、サブプロセッサステータス通知線と、サブプロセッサリセット信号線と、メインプロセッサリセット信号線とが接続されている。
【００３３】
サブプロセッサ３０は、メインプロセッサ２０と同様の構成であって、命令メモリ３１と、データメモリ３３と、プログラムカウンタ３５と、レジスタ３７と、種々の論理演算を行なう演算器３９と、を備えている。サブプロセッサ３０は、メインプロセッサ２０の動作状態の監視、異常通知、および、ハードウエアリセットを行う。また、サブプロセッサ３０は、上位制御回路４０へメインプロセッサ２０の動作状態を通知することも行う。
【００３４】
サブプロセッサ３０は、メインプロセッサ２０のステータス信号を受信して、このステータス信号を監視することによってメインプロセッサ２０の動作状態を監視している。サブプロセッサ３０は、メインプロセッサ２０が正しく動作していることを検知できている間は、メインプロセッサリセット信号をディセーブルにして、メインプロセッサ２０をハードウエアリセットしない。サブプロセッサ３０は、メインプロセッサ２０が正しく動作していない（異常である）ことを検知した場合には、メインプロセッサリセット信号をイネーブルにして、メインプロセッサ２０をハードウエアリセットする。リセットされたメインプロセッサ２０はリブートし再度プログラムを実行する。このように、サブプロセッサ３０によってメインプロセッサ２０のハードウエアリセットを行う。
【００３５】
さらに、サブプロセッサ３０は、メインプロセッサ２０をハードウエアリセットしたときに、ハードウエアリセットを実施したこと、ハードウエアリセット要因とその値(メインプロセッサ２０のプログラムカウンタ２５の値および動作ステータス番号)、および、ハードウエアリセットした時間を第２メモリＭ２に記録する。
【００３６】
サブプロセッサ３０は、ハードウエアリセットを複数回実施してもメインプロセッサ２０の異常が続く場合に、サブプロセッサ３０と上位制御回路４０との間に接続された異常通知線を用いて、メインプロセッサ２０が異常であることの通知を行う。さらに、サブプロセッサ３０は、メインプロセッサ２０が異常であることを通知したときに、異常を通知した時間を第２メモリＭ２に記録する。
【００３７】
図５に、サブプロセッサ３０がメインプロセッサ２０を監視する動作の一例を説明するフローチャートを示す。サブプロセッサ３０がメインプロセッサ２０の監視を開始すると、メインプロセッサ２０の対象信号であるステータス信号を監視し（ステップＳＴＡ１）、メインプロセッサ２０が正しい動作をしているか否か判断する（ステップＳＴＡ２）。
【００３８】
具体的には、サブプロセッサ３０は、メインプロセッサ２０のステータス信号として受信するプログラムカウンタ２５の値または動作ステータス番号が、一定期間内に変化しているか否か判断する。サブプロセッサ３０は、プログラムカウンタ２５の値または動作ステータス番号が一定期間内に変化している場合にはメインプロセッサ２０が正常に動作していると判断し、プログラムカウンタ２５の値または動作ステータス番号が一定期間内に変化していない場合にはメインプロセッサ２０が異常であると判断する。
【００３９】
サブプロセッサ３０はメインプロセッサ２０が正常に動作していると判断した場合、メインプロセッサ２０からのステータス信号の監視を継続する（ステップＳＴＡ１）。
【００４０】
サブプロセッサ３０はメインプロセッサ２０が異常であると判断した場合、メインプロセッサ２０のリセット（再起動）回数が規定値よりも大きいか否かを判断する（ステップＳＴＡ３）。メインプロセッサ２０のリセット回数は、例えば第２メモリＭ２又はサブプロセッサ３０内のレジスタ３７またはデータメモリ３３に記憶されている。
【００４１】
メインプロセッサ２０のリセット回数が規定値以下である場合には、サブプロセッサ３０はメインプロセッサ２０へリセット信号を出力してメインプロセッサ２０をハードウエアリセットし（ステップＳＴＡ４）、第２メモリＭ２にプログラムカウンタ２５の値、動作ステータス番号、および、現在時刻を記録するとともに、メインプロセッサ２０のリセット回数をインクリメントする（ステップＳＴＡ５）。その後、サブプロセッサ３０は、メインプロセッサ２０からのステータス信号の監視を継続する（ステップＳＴＡ１）。
【００４２】
メインプロセッサ２０のリセット回数が規定値よりも大きい場合には、サブプロセッサ３０は、第２メモリＭ２にプログラムカウンタ２５の値、動作ステータス番号、現在時刻を記録するとともに、上位制御回路４０へメインプロセッサ２０が異常である旨を通知して（ステップＳＴＡ６）、メインプロセッサ２０の監視を終了する。なお、サブプロセッサ３０は、上位制御回路４０へメインプロセッサ２０が異常である旨を通知したとき、メインプロセッサ２０のリセット回数をゼロとする。
【００４３】
サブプロセッサ３０から異常通知を受けた上位制御回路４０は、二次電池装置が異常であることから、電池ＢＴと電池ＢＴで駆動されているモータ等の負荷に接続された主回路とを即座に遮断する。
【００４４】
メインプロセッサ２０は、サブプロセッサ３０からサブプロセッサ３０のステータス信号を受信して、このステータス信号を監視することによってサブプロセッサ３０の動作状態を監視する。
【００４５】
メインプロセッサ２０はサブプロセッサ３０が正常であることを検知できている間は、サブプロセッサリセット信号をディセーブルにして、サブプロセッサ３０をハードウエアリセットしない。メインプロセッサ２０は、サブプロセッサが異常であることを検知した場合には、サブプロセッサリセット信号をイネーブルにして、サブプロセッサ３０をハードウエアリセットする。リセットされたサブプロセッサ３０はリブートし再度プログラムを実行する。
【００４６】
さらに、メインプロセッサ２０は、サブプロセッサ３０をハードウエアリセットしたときに、ハードウエアリセットを実施したこと、ハードウエアリセット要因とその値(サブプロセッサのプログラムカウンタ３５の値および動作ステータス番号)、および、ハードウエアリセットした時間を第１メモリＭ１に記録する。
【００４７】
メインプロセッサ２０は、ハードウエアリセットを複数回実施してもサブプロセッサの異常が続く場合には、メインプロセッサ２０から上位制御回路４０への「データ通信用インタフェース」を用いて、サブプロセッサ３０が異常であることの通知を行う。さらに、メインプロセッサ２０は、サブプロセッサ３０が異常であることを通知したときに、異常を通知した時間を第１メモリＭ１に記録する。
【００４８】
さらに、メインプロセッサ２０はサブプロセッサ３０から受信したステータス信号が動作ステータス番号である場合、そのステータス信号を監視することで、サブプロセッサ３０が正しい動作ステートにあるか否か検知することができる。
【００４９】
メインプロセッサ２０は、上位制御回路４０から受信した制御コマンドから、サブプロセッサ３０が現在どの処理状態にあるべきか演算して、受信した動作ステータス番号に対応する処理と一致するか否かを判断する。
【００５０】
メインプロセッサ２０はサブプロセッサ３０が正常であることを検知できている間は、サブプロセッサリセット信号をディセーブルにして、サブプロセッサ３０をハードウエアリセットしない。メインプロセッサ２０はサブプロセッサ３０が異常であることを検知した場合には、サブプロセッサリセット信号をイネーブルにして、サブプロセッサ３０をハードウエアリセットする。リセットされたサブプロセッサ３０はリブートし再度プログラムを実行する。
【００５１】
さらに、メインプロセッサ２０は、サブプロセッサ３０をハードウエアリセットしたときに、ハードウエアリセットを実施したこと、ハードウエアリセット要因とその値(サブプロセッサの動作ステータス番号)、ハードウエアリセットした時間を第１メモリＭ１に記録する。
【００５２】
ハードウエアリセットを複数回実施してもサブプロセッサの異常が続く場合には、メインプロセッサ２０から上位制御回路４０へのデータ通信用インタフェースを用いて、サブプロセッサ３０が異常であることの通知を行う。さらに、メインプロセッサ２０は、サブプロセッサ３０が異常であることを通知したときに、異常を通知した時間を第１メモリＭ１に記録する。
【００５３】
図６に、メインプロセッサ２０がサブプロセッサ３０を監視する動作の一例を説明するフローチャートを示す。メインプロセッサ２０がサブプロセッサ３０の監視を開始すると、サブプロセッサ３０の対象信号であるステータス信号を監視し（ステップＳＴＢ１）、サブプロセッサ３０が正しい動作をしているか否か判断する（ステップＳＴＢ２）。
【００５４】
具体的には、メインプロセッサ２０は、サブプロセッサ３０のステータス信号として受信するプログラムカウンタ３５の値または動作ステータス番号が、一定期間内に変化しているか否か判断する。メインプロセッサ２０は、プログラムカウンタ３５の値または動作ステータス番号が一定期間内に変化している場合にはサブプロセッサ３０が正常に動作していると判断し、プログラムカウンタ３５の値または動作ステータス番号が一定期間内に変化していない場合にはサブプロセッサ３０が異常であると判断する。
【００５５】
さらに、メインプロセッサ２０は、サブプロセッサ３０のステータス信号として動作ステータス番号を受信した場合には、動作ステータス番号に対応する処理と、制御コマンドから演算されたサブプロセッサ３０の現在あるべき処理状態とが一致するか否か判断することもできる。メインプロセッサ２０は、処理が一致する場合にはサブプロセッサ３０が正常に動作していると判断し、処理が一致しない場合にはサブプロセッサ３０が異常であると判断する。
【００５６】
メインプロセッサ２０はサブプロセッサ３０が正常に動作していると判断した場合、サブプロセッサ３０からのステータス信号の監視を継続する（ステップＳＴＢ１）。
【００５７】
メインプロセッサ２０はサブプロセッサ３０が異常であると判断した場合、サブプロセッサ３０のリセット（再起動）回数が規定値よりも大きいか否かを判断する（ステップＳＴＢ３）。サブプロセッサ３０のリセット回数は、例えば第１メモリＭ１又はメインプロセッサ２０内のレジスタ２７またはデータメモリ２３に記憶されている。
【００５８】
サブプロセッサ３０のリセット回数が規定値以下である場合には、メインプロセッサ２０はサブプロセッサ３０へリセット信号を出力してサブプロセッサ３０をハードウエアリセットし（ステップＳＴＢ４）、第１メモリＭ１にプログラムカウンタ３５の値、動作ステータス番号、および、現在時刻を記録するとともに、サブプロセッサ３０のリセット回数をインクリメントする（ステップＳＴＢ５）。その後、メインプロセッサ２０は、サブプロセッサ３０からのステータス信号の監視を継続する（ステップＳＴＢ１）。
【００５９】
サブプロセッサ３０のリセット回数が規定値よりも大きい場合には、メインプロセッサ２０は、第１メモリＭ１にプログラムカウンタ３５の値、動作ステータス番号、現在時刻を記録するとともに、上位制御回路４０へサブプロセッサ３０が異常である旨を通信用インタフェースにより通知して（ステップＳＴＢ６）、サブプロセッサ３０の監視を終了する。なお、メインプロセッサ２０は、上位制御回路４０へサブプロセッサ３０が異常である旨を通知したとき、サブプロセッサ３０のリセット回数をゼロとする。
【００６０】
上記のようにメインプロセッサ２０およびサブプロセッサ３０の監視を行なうと、宇宙線や設計保障範囲外のノイズが来ることによりメインプロセッサ２０、サブプロセッサ３０のどちらからが異常状態に遷移しても、正常動作している方のプロセッサが異常動作している方のプロセッサをハードウエアリセットし、その間は上位制御回路４０に異常通知が行なわれない。このことにより、上位制御回路４０により電池ＢＴと電池ＢＴで駆動されている負荷（モータ等）に接続される主回路の遮断は行われない。なお、宇宙線や設計保障範囲外のノイズ要因で両方のプロセッサが異常になる確率は非常に小さいことが知られている。
【００６１】
よって、宇宙線や設計保障範囲外のノイズにより車両等の駆動力が突然無くなることは生じず、ユーザが二次電池装置を搭載した車両を運転して高速道路を高速で走行している時に突然駆動力が無くなり後続車に追突されることや、カーブを曲がっている時に突然駆動力が無くなり車両が回転することは生じない。
【００６２】
さらに、メインプロセッサ２０とサブプロセッサ３０とのどちらかに永続的な故障が発生した場合には、故障していないプロセッサで異常を正しく検知して、上位制御回路４０に異常通知を行う。この場合には、上位制御回路４０は電池ＢＴと電池ＢＴで駆動されている負荷（モータ等）に接続される主回路の遮断を行うことができる。プロセッサに永続的な故障が発生した場合には、車両等の駆動力が突然無くなることになるが、一般的にプロセッサに永続的な故障が発生する確率よりも、宇宙線や設計保障範囲外のノイズによる一時的な故障が発生する確率の方が非常に大きいことが知られている。
【００６３】
上記のように、本実施形態に係る二次電池装置、プロセッサ、監視プログラム、および、車両によれば、異常通知が発生する確率を低くすること(可用性を高くすること)、異常が発生した要因の解析の難易度を低くすること(保守性を高くすること)、異常を見逃す確率を低くすること(検出性を高くすること)が可能となり、信頼性の高い二次電池装置、プロセッサ、監視プログラム、および、車両を提供することができる。
【００６４】
さらに、メインプロセッサ２０で、サブプロセッサ３０の動作ステータス番号とメインプロセッサ２０の動作ステートを比較することにより、サブプロセッサ３０が正しい動作ステートにないことをメインプロセッサ２０で検知して、サブプロセッサ３０の異常を検出すると、より保守性が高く検出性の高い二次電池装置、プロセッサ、監視プログラム、および、車両を提供することができる。
【００６５】
次に、第２実施形態に係る二次電池装置、プロセッサ、監視プログラム、および、車両について図面を参照して説明する。なお、以下の説明において、上述の第１実施形態と同様の構成については、同一の符号を付して説明を省略する。
【００６６】
図７に、本実施形態に係る二次電池装置の一構成例を概略的に示す。本実施形態に係る二次電池装置は、上位制御回路４０からメインプロセッサ２０との間に接続された制御コマンド線がサブプロセッサ３０にも接続されている。したがって、上位制御回路４０からメインプロセッサ２０へ送信される制御コマンドがサブプロセッサ３０へも送信される。上記の構成以外は上述の第１実施形態に係る二次電池装置と同様である。
【００６７】
本実施形態では、上位制御回路４０からサブプロセッサ３０へ制御コマンドが送信されていることにより、サブプロセッサ３０は、メインプロセッサ２０が正しい動作ステートにあるか否かをさらに監視することができる。
【００６８】
サブプロセッサ３０は、受信した制御コマンドから、メインプロセッサ２０の行なうべき処理とその処理に必要な時間とを演算し、メインプロセッサ２０の現在あるべき処理状態を演算する。メインプロセッサ２０は制御コマンドを受信すると動作ステートが遷移するが、次ぎの動作ステートへ遷移するタイミングは処理量に対応するものであって設計時点で既知である。そのため、設計段階において、サブプロセッサ３０は予め制御コマンドに対応する動作ステートへの遷移タイミングが演算可能となっている。
【００６９】
サブプロセッサ３０は、図５に示すメインプロセッサ２０の監視動作において、メインプロセッサ２０が正常に動作しているか否かを判断する際に（ステップＳＴＡ２）、メインプロセッサ２０のステータス信号として動作ステータス番号を受信し、動作ステータス番号に対応する処理と、制御コマンドから演算されたメインプロセッサ２０の現在あるべき処理状態とが一致するか否か判断する。
【００７０】
例えば、サブプロセッサ３０は受信した制御コマンドからメインプロセッサ２０の処理状態が、処理Ａから処理Ｂへ１００msec以内に遷移すると演算した場合に、遅くとも１５０msec後に処理Ｂへ遷移していなければメインプロセッサ２０が異常であると判断する。
【００７１】
サブプロセッサ３０は、処理が一致する場合にはメインプロセッサ２０が正常に動作していると判断し、処理が一致しない場合にはメインプロセッサ２０が異常であると判断する。
【００７２】
上記のように、サブプロセッサ３０で、メインプロセッサ２０の動作ステータス番号とメインプロセッサ２０の現在あるべき処理（動作ステート）状態とを比較することにより、メインプロセッサ２０が正しい動作ステートであるか否かサブプロセッサ３０で検知することが可能となる。
【００７３】
このことにより、本実施形態に係る二次電池装置、プロセッサ、監視プログラム、および、車両によれば、上述の第１実施形態と同様の効果を得ることができ、さらに保守性と検出性とを高くすることができる。
【００７４】
次に、第３実施形態に係る二次電池装置、プロセッサ、監視プログラム、および、車両について図面を参照して説明する。
【００７５】
図８に、本実施形態に係る二次電池装置の一構成例を概略的に示す。本実施形態に係る二次電池装置は、メインプロセッサ２０と上位制御回路４０との間に接続されたデータ通信用インタフェースがサブプロセッサ３０へも接続されている。したがって、メインプロセッサ２０と上位制御回路４０との間で通信されるデータが、サブプロセッサ３０へも送信される。上記の構成以外は上述の第１実施形態に係る二次電池装置と同様である。
【００７６】
サブプロセッサ３０は、メインプロセッサ２０からデータ通信用インタフェースへ出力されたデータを受信することにより、メインプロセッサ２０と上位制御回路４０との間で、正しく通信が行なわれているか否かをさらに監視することができる。
【００７７】
サブプロセッサ３０は、図５に示すメインプロセッサ２０の監視動作において、メインプロセッサ２０が正常に動作しているか否かを判断する際に（ステップＳＴＡ２）、メインプロセッサ２０から一定期間（例えば１秒）内に通信があった否かを監視する。サブプロセッサ３０は、メインプロセッサ２０から一定期間内に通信があった場合にはメインプロセッサ２０が正常であると判断し、メインプロセッサ２０から一定期間内に通信が無かった場合にはメインプロセッサ２０が異常であると判断する。
【００７８】
また、サブプロセッサ３０は、メインプロセッサ２０の通信内容が正しいか否か、例えば、定義されていないデータ、アドレス、制御コマンド等が含まれているか否かを監視してもよい。その場合、サブプロセッサ３０は、メインプロセッサ２０の通信内容が定義されないデータ、アドレス、制御コマンド等を含まない場合にはメインプロセッサ２０が正常であると判断し、メインプロセッサ２０の通信内容が定義されないデータ、アドレス、制御コマンド等を含む場合にはメインプロセッサ２０が異常であると判断する。
【００７９】
上記のように、サブプロセッサ３０はメインプロセッサ２０が異常であると判断した場合にメインプロセッサ２０のハードウエアリセットを行うことができる。さらに、サブプロセッサ３０は、メインプロセッサ２０をハードウエアリセットした後、ハードウエアリセットを実施したこと、ハードウエアリセット要因とその値(通信有無または通信内容)、ハードウエアリセットした時間を第２メモリＭ２に記録する。
【００８０】
本実施形態に係る二次電池装置では、上記ハードウエアリセットを複数回実施してもメインプロセッサの異常が続く場合には、サブプロセッサ３０は、異常通知線を用いて上位制御回路４０へメインプロセッサ２０が異常であることの通知を行うことができる。さらに、サブプロセッサ３０は、上位制御回路４０へのデータ通信用インタフェースにも接続しているので、このデータ通信用インタフェースを用いて、メインプロセッサ２０が異常であることの通知を行うこともできる。
【００８１】
上記のように、サブプロセッサ３０で、メインプロセッサ２０と上位制御回路４０との間の通信を監視することにより、メインプロセッサ２０と上位制御回路４０との間で正しい通信が行われているか否かを検知することが可能となる。
【００８２】
このことにより、本実施形態に係る二次電池装置、プロセッサ、監視プログラム、および、車両によれば、上述の第１実施形態と同様の効果を得ることができ、さらに保守性と検出性を高くすることができる。
【００８３】
次に、第４実施形態に係る二次電池装置、プロセッサ、監視プログラム、および、車両について図面を参照して説明する。
【００８４】
図９に、本実施形態に係る二次電池装置の一構成例を概略的に示す。本実施形態に係る二次電池装置は、メインプロセッサ２０と電池電圧測定用回路１０との間に接続された測定用回路制御コマンド・データ通信用インタフェースが、サブプロセッサ３０へも接続され、メインプロセッサ２０と電池電圧測定用回路１０との間の通信信号がサブプロセッサ３０にも入力されている。
【００８５】
サブプロセッサ３０は、メインプロセッサ２０と電池電圧測定用回路１０との間の通信信号を受信することにより、メインプロセッサ２０と電池電圧測定用回路１０との間で正しい通信が行なわれているか否か監視することができる。
【００８６】
サブプロセッサ３０は、図５に示すメインプロセッサ２０の監視動作において、メインプロセッサ２０が正常に動作しているか否かを判断する際に（ステップＳＴＡ２）、一定期間（例えば１秒）内にメインプロセッサ２０と電池電圧測定用回路１０との間で通信が行なわれたか否か監視する。サブプロセッサ３０は、メインプロセッサ２０から一定期間内に通信があった場合にはメインプロセッサ２０が正常であると判断し、メインプロセッサ２０から一定期間内に通信が無かった場合にはメインプロセッサ２０が異常であると判断する。
【００８７】
また、サブプロセッサ３０は、メインプロセッサ２０と電池電圧測定用回路１０との間の通信内容が正しいか否か、例えば、定義されていないデータ、制御コマンド等が含まれているか否かを監視してもよい。その場合、サブプロセッサ３０は、メインプロセッサ２０と電池電圧測定用回路１０との間の通信内容が定義されないデータ、制御コマンド等を含まない場合にはメインプロセッサ２０が正常であると判断し、メインプロセッサ２０の通信内容が定義されないデータ、制御コマンド等を含む場合にはメインプロセッサ２０が異常であると判断する。
【００８８】
上記のように、サブプロセッサ３０はメインプロセッサ２０が異常であると判断した場合にメインプロセッサ２０のハードウエアリセットを行うことができる。さらに、サブプロセッサ３０は、メインプロセッサ２０をハードウエアリセットした後、ハードウエアリセットを実施したこと、ハードウエアリセット要因とその値(通信有無または通信内容)、ハードウエアリセットした時間を第２メモリＭ２に記録する。
【００８９】
上記のように、サブプロセッサ３０で、メインプロセッサ２０と上位制御回路４０との間の通信を監視することにより、メインプロセッサ２０と電池電圧測定用回路１０との間で正しい通信が行われていなことをサブプロセッサ３０で検知することが可能となる。
【００９０】
このことにより、本実施形態に係る二次電池装置、プロセッサ、監視プログラム、および、車両によれば、上述の第１実施形態と同様の効果を得ることができ、さらに保守性と検出性を高くすることができる。
【００９１】
上記第１乃至第４実施形態は組み合わせることができる。例えば、第１実施形態に係る二次電池装置において、サブプロセッサ３０が、制御コマンド線、データ通信用インタフェース、および、制御コマンド・データ通信用インタフェースの少なくとも１つとさらに接続されていても良い。サブプロセッサ３０がメインプロセッサ２０に入力される制御コマンドや、メインプロセッサ２０から出力される制御コマンドや、メインプロセッサ２０から出力されるデータ等を受信することにより、メインプロセッサ２０の異常の検出精度を高くして、より保守性と検出性を高くすることができる。
【００９２】
なお、上記複数の実施形態において、メインプロセッサおよびサブプロセッサの動作はハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよいことは言うまでもない。ソフトウエアにより実現する場合には、上記複数の実施形態に記載した動作を行う手段としてメインプロセッサ、サブプロセッサ、又は、メインプロセッサとサブプロセッサとの両方を機能させるプログラムが搭載さてもよい。
【００９３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に本件出願当初の特許請求の範囲を付記する。
[Ｃ１５]
ステータス信号を受信し、前記ステータス信号が所定期間内に変化しているか否か判断する第１判断手段と、
前記第１判断手段が、前記ステータス信号は所定期間内に変化していないと判断した場合に、リセット信号を出力したリセット回数が規定値よりも大きいか否か判断する第２判断手段と、
前記第２判断手段が前記リセット回数は規定値以下であると判断した場合に、前記リセット信号を出力するリセット手段と、
前記リセット信号を出力した後に前記リセット回数をインクリメントするカウント手段と、を備えるプロセッサ。
[Ｃ１６]
ステータス信号および制御コマンドを受信し、前記制御コマンドに対応する処理と前記ステータス信号に対応する処理とが一致するか否か判断する第１判断手段と、
前記第１判断手段が、前記制御コマンドに対応する処理と前記ステータス信号に対応する処理とが一致しないと判断した場合に、リセット信号を出力したリセット回数が規定値よりも大きいか否か判断する第２判断手段と、
前記第２判断手段が前記リセット回数は規定値以下であると判断した場合に、前記リセット信号を出力するリセット手段と、
前記リセット信号を出力した後に前記リセット回数をインクリメントするカウント手段と、を備えるプロセッサ。
[Ｃ１７]
前記第２判断手段が前記リセット回数は規定値よりも大きいと判断した場合に、異常通知信号を出力する異常通知手段をさらに備える[Ｃ１５]又は[Ｃ１６]記載のプロセッサ。
[Ｃ１８]
ステータス信号を受信し、前記ステータス信号が所定期間内に変化しているか否か判断する第１判断手段と、
前記第１判断手段が、前記ステータス信号は所定期間内に変化していないと判断した場合に、リセット信号を出力したリセット回数が規定値よりも大きいか否か判断する第２判断手段と、
前記第２判断手段が前記リセット回数は規定値以下であると判断した場合に、前記リセット信号を出力するリセット手段と、
前記リセット信号を出力した後に前記リセット回数をインクリメントするカウント手段と、してコンピュータを機能させることを特徴とする監視プログラム。
[Ｃ１９]
ステータス信号および制御コマンドを受信し、前記制御コマンドに対応する処理と前記ステータス信号に対応する処理とが一致するか否か判断する第１判断手段と、
前記第１判断手段が、前記制御コマンドに対応する処理と前記ステータス信号に対応する処理とが一致しないと判断した場合に、リセット信号を出力したリセット回数が規定値よりも大きいか否か判断する第２判断手段と、
前記第２判断手段が前記リセット回数は規定値以下であると判断した場合に、前記リセット信号を出力するリセット手段と、
前記リセット信号を出力した後に前記リセット回数をインクリメントするカウント手段と、してコンピュータを機能させることを特徴とする監視プログラム。
[Ｃ２０]
前記コンピュータを前記第２判断手段が前記リセット回数は規定値よりも大きいと判断した場合に、第１プロセッサの異常を通知する異常通知信号を出力する異常通知手段と、してさらに機能させることを特徴とする[Ｃ１８]又は[Ｃ１９]記載の監視プログラム。
【符号の説明】
【００９４】
ＷＲ、ＷＬ…駆動輪、ＢＴ…電池、Ｍ１…第１メモリ、Ｍ２…第２メモリ、１０…電池電圧測定用回路、２０…メインプロセッサ（第１プロセッサ）、２１、３１…命令メモリ、２３、３３…データメモリ、２５、３５…プログラムカウンタ、２７、３７…レジスタ、２９、３９…演算器、３０…サブプロセッサ（第２プロセッサ）、４０…上位制御回路、３００…電池管理装置、４００…電池モジュール、５００…運転制御部、６００…モータ、１０００…シャーシ。
【図１】
0005537403.tif 000002
【図２】
0005537403.tif 000003
【図３】
0005537403.tif 000004
【図４】
0005537403.tif 000005
【図５】
0005537403.tif 000006
【図６】
0005537403.tif 000007
【図７】
0005537403.tif 000008
【図８】
0005537403.tif 000009
【図９】
0005537403.tif 000010