"エンジンの始動条件が成立したか否かを判定する始動条件判定部と、前記エンジンの始動条件が成立したと判定したときに、バッテリーから電力供給を受けて前記エンジンを始動させるエンジン始動部と、前記エンジンの状態が完爆状態になったか否かを判定するエンジン状態判定部と、前記エンジンを始動させてから、前記エンジンの状態が前記完爆状態になるまでの、前記バッテリーの電圧を計測するバッテリー電圧計測部と、前記エンジンを始動させてから、前記エンジンの状態が前記完爆状態になるまでの時間である始動時間を計測する時間計測部と、前記バッテリー電圧と前記始動時間とに基づいて、前記バッテリーの充電状態を推定するバッテリー充電状態推定部と、推定した前記バッテリーの充電状態が、前記エンジンの始動が困難な状態であるエンジン始動困難状態であるか否かを判定するバッテリー充電状態判定部と、前記バッテリーの充電状態が前記エンジン始動困難状態であると判定したときに、前記エンジン始動困難状態である旨を含むバッテリー警告情報を出力するバッテリー警告情報出力部と、を備えることを特徴とするバッテリー上がり防止装置。前記エンジンの回転数を含むエンジン回転数情報を取得するエンジン回転数情報取得部を備え、前記エンジン状態判定部は、前記エンジンの回転数が予め定められた完爆判定値を上回ったとき、前記エンジンの状態が完爆状態になったと判定する請求項1に記載のバッテリー上がり防止装置。前記バッテリー充電状態推定部は、前記バッテリー電圧計測部が計測した、エンジンを始動させてから、エンジンの状態が完爆状態になるまでの、バッテリー電圧の最低値に基づいて、前記バッテリーの充電状態を推定する請求項1または請求項2に記載のバッテリー上がり防止装置。特許文献1のように、従来の技術では、駐車中エンジン停止時にバッテリー電圧値をモニタし、時間経過による放電特性等を計算することでバッテリー状態を検出していた。しかし、バッテリー電圧は、接続される負荷の状態や、ECUの電流消費量により変動するため、駐車中のバッテリー電圧だけでは正確な状態把握が難しく、駐車中のバッテリー電圧にほとんど変動がなくても、バッテリー充電量不足によりエンジンを始動できないケースが見られる。また、ECUが通常の動作モードと通常の動作モードよりも消費電力の少ない省電力モードとを切り替えながら動作する間欠動作では、動作モードによってECUの消費電力が異なり、車両に搭載された全てのECUについて、動作モードに基づいてバッテリー充電量を正確に把握することは困難である。上記問題点を背景として、本発明の課題は、バッテリーの状態をより正確に把握するとともに、バッテリー上がりの発生を確実に防止することが可能なバッテリー上がり防止装置を提供することにある。以下、本発明のバッテリー上がり防止装置について、図面を用いて説明する。まず、図1に、バッテリー上がり防止装置1の構成をブロック図として示す。バッテリー上がり防止装置1は、車両各部への電源供給、あるいはスタータリレー31への出力を制御する電源制御ECU以下、ECUと略称する10と、このECU10に接続されたスイッチ,センサ,アクチュエータ後述を含んで構成される。ECU10は、周知のCPU11、ROMあるいはフラッシュメモリ等の不揮発性記憶媒体で構成されたメモリ12、上述のスイッチ,センサとの間で信号の入出力を行うための入出力回路13、車内LAN30を介して周知のメータ装置や表示器等の他の車両用装置33とのデータ通信を行うためのインターフェース回路であるLANI/F14を含むコンピュータハードウェアとして構成され、CPU11がメモリ12に記憶された電源制御プログラムを実行することで、本装置の各種機能を実現する。なお、CPU11が本発明の始動条件判定部,エンジン状態判定部,時間計測部,バッテリー充電状態推定部,バッテリー充電状態判定部に相当する。また、LANI/F14が本発明のバッテリー警告情報出力部に相当する。また、ECU10は、CPU11からの制御指令に基づいて、エンジン始動用のスタータモータ32への電力の供給/遮断を行うスタータリレー31の駆動制御を行うドライバIC15を備えている。ドライバIC15は、バッテリー21の電圧をモニタする、例えばオペアンプを用いたピークホールド回路により構成された電圧モニタ151、スタータリレー31のオン/オフ制御を行う、例えばFETにより構成されたスイッチ回路152を含んでいる。なお、電圧モニタ151が本発明のバッテリー電圧計測部に相当する。また、スイッチ回路152が本発明のエンジン始動部に相当する。また、ドライバIC15は、CPU11からの制御指令に基づいて、ACCアクセサリー装置あるいはIGエンジン点火回路への電力の供給/遮断を行うACCリレー,IGリレーいずれも図示せずのオン/オフ制御も行うスイッチ回路構成は上述のスイッチ回路152と同様を含んでいる。また、ECU10は、CPU11,ドライバIC15を始めとするECU10の各部にバッテリー21からの電力を供給する電源回路16、バッテリー21の電圧がCPU11,ドライバIC15等を動作させるための最低電圧を下回ったときに、該最低電圧を上回る電圧に昇圧する、例えば周知のDC-DCコンバータを含む昇圧回路17を備えている。ECU10のバッテリー電圧入力端子Bと、ドライバIC15,電源回路16,昇圧回路17との間、および昇圧回路17と電源回路16との間には、それぞれ、逆流防止用のダイオードD1~D4が介挿されている。エンジン回転センサ22は、車両のエンジンの回転状態に応じた信号を出力する。ECU10は、この信号に基づいて、車両のエンジン回転数を算出する。車両のエンジンの回転制御を行うエンジンECU図示せずから、車内LAN30を介してエンジン回転数情報を取得する構成としてもよい。なお、エンジン回転センサ22が本発明のエンジン回転数情報取得部に相当する。スタートスイッチ23は、以下のうちの少なくとも一つを用いて構成される。プッシュスタートスイッチ:スタートスイッチが、プッシュ式のスイッチで構成されており、例えば、オフ→ACCオン→IGオン→エンジン始動のように、スイッチを押すごとに状態が変化するもの。イグニッションスイッチ:キーシリンダを有し、キーシリンダにキーを挿入してキーの位置を所望の位置オフ,ACCオン,IGオン,エンジン始動に変えるもの。ブレーキスイッチ24は、車両のフットブレーキが操作されたか否かを検出するもので、例えば、フットブレーキが操作されたときにオン信号を出力する。図2を用いて、ECU10におけるバッテリー上がり防止処理について説明する。なお、本処理は、ECU10のメモリ12に記憶された電源制御プログラムに含まれ、該電源制御プログラムに含まれる他の処理とともに、CPU11により繰り返し実行される。まず、エンジン始動条件が成立したか否かを判定するS11。エンジン始動条件は以下のうちの少なくとも一つを用いる。スタートスイッチ23の状態あるいは位置がエンジン始動に相当しているとき、エンジン始動条件が成立したと判定する。ブレーキスイッチ24がオン状態すなわちブレーキペダルが踏まれている状態で、スタートスイッチ23が操作されたとき、本来のスタートスイッチ23の状態に関係なくエンジン始動条件が成立したと判定する。エンジン始動条件が成立しないと判定したときS12:No、ステップS11に戻り、再度エンジン始動条件が成立したか否かを判定する。あるいは、本処理を終了する。一方、エンジン始動条件が成立したと判定したときS12:Yes、CPU11からドライバIC15に制御指令を送り、スタータリレー31をオン状態とし、スタータモータ32を駆動してエンジンを始動するS13。次に、タイマを起動させ、エンジン完爆時間すなわち、始動時間の計測を開始するS14。続いて、以下のうちの少なくとも一方を用いて、バッテリー21の電圧バッテリー電圧のモニタを開始するS15。モニタ回路151がバッテリー電圧の最低値を検出可能なピークホールド回路を含むとき、ドライバIC15が出力する電圧モニタ結果すなわち、最低値を取得する。エンジンが完爆するまで、CPU11でドライバIC15が出力する電圧モニタ結果を所定の周期でサンプリングする。次に、エンジン回転センサ22からエンジン回転数情報を取得するS16。そして、エンジン回転数に基づいて、エンジンが完爆したか否かを判定する。例えば、エンジン回転数が予め定められた回転数閾値例えば、エンジンのアイドリング回転数、あるいはスタータモータの回転数を上回ったときに、エンジンが完爆したと判定する。エンジンが完爆しないと判定したときS17:No、ステップS16へ戻り、エンジンが完爆するまで待つ。エンジンが完爆したと判定したときS17:Yes、タイマを停止させ、エンジン完爆時間の計測を終了するS18。このとき、CPU11からドライバIC15に制御指令を送り、スタータリレー31をオン状態とし、スタータモータ32の駆動を停止してもよい。続いて、バッテリー電圧の最低値を取得するS19。モニタ回路151が上述のピークホールド回路を含むときは、ドライバIC15が出力している電圧モニタ結果がバッテリー電圧の最低値となる。また、CPU11でバッテリー電圧をサンプリングしていたときには、サンプリング値の最低値がバッテリー電圧の最低値となる。次に、エンジン始動時からエンジンが完爆したと判定したときまでの時間であるエンジン完爆時間を算出するS20。すなわち、上述で計測したタイマの値がエンジン完爆時間に相当する。タイマとして周知のフリーランカウンタを用いたときには、計測終了時のカウンタ値と計測開始時のカウンタ値との差がエンジン完爆時間に相当する。次に、バッテリー電圧の最小値とエンジン完爆時間とに基づいて、バッテリー21の充電状態を推定するS21。図3に、バッテリー電圧の最低値とエンジン完爆時間、およびバッテリー21の状態との関係を示す。バッテリー電圧の最低値が予め定められた電圧閾値V0よりも低いときは、エンジン完爆時間に関係なく、バッテリーの充電量が低下している状態すなわち、バッテリー上がりあるいはそれに近い状態,エンジン始動困難状態と推定する図3の領域Aに相当。バッテリー電圧の最低値が電圧閾値V0よりも高くても、エンジン完爆時間が長いときは、バッテリーの充電量が低下していると推定する図3の領域Bおよび領域Cに相当。また、エンジン完爆時間が予め定められた時間閾値T0よりも長いときには、バッテリー電圧の最低値に関係なく、バッテリーの充電量が低下していると推定する。バッテリー電圧の最低値が電圧閾値V0よりも高く、かつエンジン完爆時間が短い上述の時間閾値T0より短いときは、バッテリーの充電量が十分にあるすなわち、エンジン始動可能状態と推定する図3の領域Dに相当。なお、領域Bのうち、エンジン完爆時間が時間閾値T0より短くバッテリー電圧の最低値が電圧閾値V0よりも高い領域を、エンジン始動可能状態にあると推定してもよい。また、領域Cを、エンジン始動可能状態にあると推定してもよい。なお、バッテリー電圧の最低値とエンジン完爆時間、およびバッテリー21の状態との関係、すなわち、電圧閾値V0,時間閾値T0,および領域B,領域C,領域Dとの境界は、バッテリー21、スタータモータ32の特性により定められる。図2に戻り、推定したバッテリー21の状態が、充電量が低下している状態、すなわち、エンジン始動困難状態に相当しないときS22:No、本処理を終了する。一方、推定したバッテリー21の状態が、充電量が低下している状態、すなわち、エンジン始動困難状態つまり、バッテリー上がりあるいはそれに近い状態に相当するときS22:Yes、例えば車内LAN30を介して、メータ装置あるいは表示器33に、バッテリー警告情報を出力するS23。図4,図5に、バッテリー電圧とエンジン完爆時間との観測波形を示す。図4はバッテリー充電量正常時エンジン始動可能状態の観測波形で、図5はバッテリー充電量低下時エンジン始動困難状態あるいはそれに近い状態の観測波形である。スタータモータ32は、一般的に始動開始直後に最大電力を消費するので、このときの電圧低下が最大となるすなわち、バッテリー電圧が最低値をとる。図4では、エンジン始動時のバッテリー電圧の最低値が5Vで、エンジン完爆時間が約1秒1000msである。一方、図5では、エンジン始動時のバッテリー電圧の最低値が4.2Vで、エンジン完爆時間が約1800msで、図4に比べて長くなっている。さらに、バッテリー電圧が最低値から通常値までに戻るまでの電圧の上昇率も、図4に比べて小さい。また、バッテリー電圧が4.2Vになると、CPU11等の電源電圧が5Vで動作する回路は、動作を停止してしまう。このため、バッテリー電圧が低下してもCPU11等が正常動作するよう、昇圧回路17を設けている。このように、バッテリー電圧の最低値とエンジン完爆時間とに基づいて、バッテリーの充電状態を推定することができる。図6を用いて、図2のステップS23に相当する、バッテリー状態警告処理の別例を説明する。本処理では、バッテリー上がり防止装置1は、表示器33あるいはスピーカ等の報知部を備えた構成となっている。また、本処理の構成は、バッテリー警告情報は、警告レベルの異なる複数の情報からなり、バッテリー警告情報出力部は、バッテリー充電状態判定部がエンジン始動困難状態と判定した間隔あるいは頻度に基づいて、警告レベルを変更して出力するものとなっている。まず、図2のステップS22で、推定したバッテリー21の状態が、バッテリー上がりあるいはそれに近い状態すなわち、エンジン始動困難状態に相当するときS22:Yes、メモリ12に記憶されているバッテリー警告カウンタを更新インクリメントするS31。次に、警告カウンタの値が予め定められた閾値を上回るか否かを判定する。警告カウンタの値が閾値を下回るときS32:No、例えば、バッテリー充電量が低下しています。充電運転を行って下さい。のような、エンジンをかけて十分充電することをユーザに促す旨を含む、勧告に相当する警告レベル1のバッテリー警告情報を出力するS36。充電運転は、2~3分程度エンジンを駆動させるのではなく、30分程度の連続走行を行うものである。一方、警告カウンタの値が閾値を上回るときS32:Yes、以下のうちの少なくとも1つを用いて、警告レベルを変更するか否かを判定するS33。警告カウンタの値が閾値を上回るとき、警告レベルを変更する。CPU11内のタイマにより、前回警告カウンタを更新したときからの期間を算出し、その時間が予め定められた値を下回るときすなわち、エンジン始動困難状態になる間隔が短いとき、警告レベルを変更する。警告カウンタの値が閾値を上回る状態が予め定められた期間内に所定回数発生したときすなわち、エンジン始動困難状態になる頻度が大きいとき、警告レベルを変更する。警告レベルを変更しないと判定したときS34:No、上述した警告レベル1のバッテリー警告情報を出力するS36。一方、警告レベルを変更すると判定したときS34:Yes、何回か充電運転を行ってもバッテリーの充電状態が回復しないと判断し、警告レベル1よりも緊急性の高い、警告レベル2のバッテリー警告情報を出力するS35。このとき、例えば、バッテリーの寿命が近づいていると予測されます。直ちにバッテリーを交換して下さい。のようなメッセージを出力する。上述の、警告レベル1および警告レベル2のバッテリー警告情報を、車内LAN30を介して、他の車両用装置33に出力してもよい。他の車両用装置は、これらバッテリー警告情報を受信したときには、例えば、エンジン停止中には無論、エンジンが回転中のときを含めてもよい、装置内での消費電力を低減する動作モードに遷移する。例えば、ユーザが携帯キーのボタン操作を行わなくても、携帯キーを所持しているだけで、携帯キーと車載装置との間で無線通信による認証を行い、認証が成立すれば車両の操作ロック、アンロック等ができるシステム、あるいは、ユーザによる携帯キーの操作に基づいてドアのロック/アンロック等を行うシステムであるキーレスエントリーシステムでは、車載装置からの電波の送信頻度を下げる、あるいは電波の送信を停止する。以上、本発明の実施の形態を説明したが、これらはあくまで例示にすぎず、本発明はこれらに限定されるものではなく、特許請求の範囲の趣旨を逸脱しない限りにおいて、当業者の知識に基づく種々の変更が可能である。"