以下に、本発明の好適な実施形態を図面に基づいて説明する。
[第1実施形態]
(1)電動工具用充電システムの全体構成
図1は、本発明が適用された実施形態の電動工具用充電システム30を構成する電動工具用バッテリパック(以下単に「バッテリパック」という)10及び電動工具用充電器(以下単に「充電器」という)20の外観を示す斜視図である。
バッテリパック10は、例えば充電式インパクトドライバや充電式ドライバドリル、充電式インパクトレンチなど(これらはあくまでも一例)の各種電動工具に対して着脱自在に装着されて、これら電動工具にその駆動用の電源を供給するためのものであり、内部にその電源としてのバッテリ31(図2参照)が備えられている。
また、バッテリパック10は、その一側面に、充電器20の充電側装着部27或いは電動工具の工具本体に装着されるバッテリ側装着部17が形成されている。そして、このバッテリ側装着部17における所定の位置に、充電器20の充電側ターミナル26或いは工具本体の工具側ターミナル(図示略)と電気的に接続されるバッテリ側ターミナル16が設けられている。
このバッテリ側ターミナル16は、充放電電流が通電されるバッテリ側正極端子11及びバッテリ側負極端子12や、バッテリ側信号端子群13を備えた構成となっている。バッテリ側信号端子群13は、少なくとも充電器接続信号入力端子53、充電許可・停止信号出力端子54、データ入出力端子55、及びクロック入力端子56(いずれも図2参照)を含む複数の端子からなるものである。
充電器20は、図示しない外部入力電源(本実施形態ではAC100V電源)から、バッテリパック10内のバッテリ31を充電するための所定電圧の充電用直流電源(充電電力)を生成するものである。この充電器20は、上面の一端側にバッテリパック10が装着される充電側装着部27が形成されており、この充電側装着部27における所定の位置(充電側装着部27の内部)に充電側ターミナル26が設けられている。
この充電側ターミナル26は、バッテリパック10へ充電用直流電源を供給するための充電側正極端子21と充電側負極端子22や、充電側信号端子群23を備えた構成となっている。充電側信号端子群23は、少なくとも充電器接続信号出力端子83、充電許可・停止信号入力端子84、データ入出力端子85、及びクロック出力端子86(いずれも図2参照)を含む複数の端子からなるものである。
また、充電器20には、当該充電器20の動作状態やバッテリパック10の充電状態等を外部へ表示するための、3つのLEDを備えた表示部28が設けられている。
このように構成された電動工具用充電システム30において、バッテリパック10のバッテリ側装着部17を充電器20の充電側装着部27に装着すると、双方のターミナル16,26が電気的に接続される。
より詳しくは、バッテリパック10のバッテリ側正極端子11が充電器20の充電側正極端子21と接続され、バッテリパック10のバッテリ側負極端子12が充電器20の充電側負極端子22と接続される。また、バッテリパック10のバッテリ側信号端子群13を構成する充電器接続信号入力端子53、充電許可・停止信号出力端子54、データ入出力端子55、及びクロック入力端子56が、それぞれ、充電器20の充電側信号端子群23を構成する充電器接続信号出力端子83、充電許可・停止信号入力端子84、データ入出力端子85、及びクロック出力端子86と接続される(図2参照)。これにより、充電器20による、バッテリパック10内のバッテリ31の充電が可能な状態となる。
(2)電動工具用充電システムの電気的構成
次に、本実施形態の電動工具用充電システム30の電気的構成について、図2を用いて説明する。図2は、電動工具用充電システム30の電気的構成を簡略的に示す電気回路図である。図2は、充電器20にバッテリパック10が装着されて両者が電気的に接続されている状態を示している。
まず、バッテリパック10の電気的構成について説明する。バッテリパック10は、図2に示す通り、バッテリ31と、このバッテリ31の充放電制御や状態監視など、当該バッテリパック10における各種制御機能を統括的に担うマイコン32と、バッテリ31の電力を入力としてバッテリパック10内の各種回路を動作させるためのバッテリ側制御電源Vcc(電圧Vccの直流電源)を生成するバッテリ側レギュレータ33とを備えている。なお、バッテリ側正極端子11はバッテリ31の正極側に接続され、バッテリ側負極端子12はバッテリ31の負極側に接続されている。
バッテリ31は、複数の電池セルB1,B2,・・・,Bnが直列接続されてなるものである。本実施形態では、各電池セルB1,B2,・・・,Bnはいずれも定格電圧3.6Vのリチウムイオン二次電池であり、これが4個直列接続されている。そのため、バッテリ31全体の電圧(以下「バッテリ電圧」という)Vbatは正常時では14.4V近傍である。
バッテリパック10が電動工具本体に装着されて使用される際は、このバッテリ31の電力が、バッテリ側正極端子11及びバッテリ側負極端子12を介して電動工具本体へ供給される。また、充電器20によってバッテリ31が充電される際は、後述するようにバッテリ側正極端子11及びバッテリ側負極端子12を介して充電器20からの充電用直流電源がバッテリ31へ供給される。
バッテリ側制御電源Vccを生成するバッテリ側レギュレータ33には、バッテリ電圧Vbatが、シャットダウンスイッチ40及びダイオードD1を介して入力される。シャットダウンスイッチ40は、マイコン32からのシャットダウン信号SDに従ってオン・オフするものであり、そのオン・オフ制御の詳細については後述するが、バッテリ31が正常である限り、通常はオンされている。そのため、通常はバッテリ電圧Vbatがこのシャットダウンスイッチ40及びダイオードD1を介してバッテリ側レギュレータ33に入力される。バッテリ側レギュレータ33は、この入力されたバッテリ電圧Vbatを元に、バッテリ側制御電源Vccを生成する。
なお、バッテリパック10内の各回路は、図2に示すように、バッテリ側制御電源Vccによって動作する回路と、バッテリ電圧Vbatにより動作する回路とが混在している。そのため、シャットダウンスイッチ40を介して入力されるバッテリ電圧Vbatは、ダイオードD1のアノードへ入力されると共に、バッテリパック10内におけるこのバッテリ電圧Vbatにより動作する各回路へも入力される。
バッテリパック10は、更に、バッテリ31における各電池セルB1,B2,・・・,Bnの電圧(以下「セル電圧」という)のうちいずれか1つを選択的に出力するセル選択スイッチ38と、このセル選択スイッチ38により選択されたいずれか1つの電池セルのセル電圧を増幅してセル電圧信号CeVとして出力する差動増幅回路35と、バッテリ31の近傍に設けられ、電池セルの温度(以下「セル温度」という)を検出してセル温度信号CeTとして出力する温度検出回路39と、バッテリ電圧Vbatを分圧抵抗Rx,Ryで分圧したバッテリ電圧分圧値Vzと所定の第1基準電圧Vr1とを比較してその比較結果を電圧低下検出信号LVとして出力する電圧低下検出用コンパレータ34と、バッテリ31から電動工具本体への放電時における放電電流を検出するための電流検出抵抗R1と、この電流検出抵抗R1により検出された電流(即ち、電流値に対応した電圧信号)を所定のゲインで増幅して放電電流信号を生成するための、オペアンプ37及び各抵抗R2,R3,R4からなる非反転増幅回路と、この非反転増幅回路による増幅後の放電電流信号と所定の第2基準電圧Vr2とを比較してその比較結果を放電検出信号CuDとして出力する放電検出用コンパレータ36と、充電器20が接続されたことを検出するための充電器検出用トランジスタTr1と、を備えている。
なお、充電器検出用トランジスタTr1として、本実施形態ではNPN型バイポーラトランジスタが用いられているが、これはあくまでも一例である。
セル選択スイッチ38は、バッテリ電圧Vbatにより動作し、マイコン32からのセル選択信号SELに従って、このセル選択信号SELにより指示されたいずれか1つの電池セルの電圧が出力されて差動増幅回路35へ入力されるよう構成されており、図示の如く複数のスイッチSW1a,SW2a、SW1b,SW2b,SW3a,・・・,SWnaを備えている。
このような構成により、セル選択信号SELによって例えば最も電位の低い電池セルB1が選択された場合は、セル選択スイッチ38において、その電池セルB1の負極と差動増幅回路35の非反転入力端子の間に接続されたスイッチSW1a、及び電池セルB1の正極と差動増幅回路35の反転入力端子の間に接続されたスイッチSW1bをそれぞれオンし、他のスイッチは全てオフする。これにより、セル選択スイッチ38からは、その選択された電池セルB1の電圧が差動増幅回路35へ入力される。
差動増幅回路35は、バッテリ側制御電源Vccにより動作し、セル選択スイッチ38から入力された電圧(即ち選択された何れか一つの電池セルの電位差)が増幅され、セル電圧信号CeVとしてマイコン32へ入力される。
温度検出回路39は、例えばサーミスタなどの感温素子を備えた周知の温度センサとして構成されたものである。感温素子は、バッテリ31における各電池セルの近傍に設けられている。感温素子をどこに設けるか、或いはいくつ設けるかについては種々考えられ、例えば1つの感温素子を設けてこの感温素子に基づく検出結果を各電池セルのセル温度とみなすようにしてもよいし、各電池セルの各々に対して個別に感温素子を設け、電池セル毎に個々にセル温度を検出するようにしてもよい。本実施形態では、説明の簡略化のため、前者(感温素子が1つの場合)を前提として説明することとする。
電圧低下検出用コンパレータ34は、バッテリ電圧Vbat(又はバッテリ側制御電源Vcc)を電源として動作し、バッテリ電圧分圧値Vzが第1基準電圧Vr1以上の正常状態であればハイ(H)レベルの電圧低下検出信号をマイコン32へ出力する。一方、バッテリ電圧Vbatが低下してバッテリ電圧分圧値Vzが第1基準電圧Vr1より低くなると、ロー(L)レベルの電圧低下検出信号をマイコン32へ出力する。この電圧低下検出用コンパレータ34は、バッテリ31が過放電状態となるのを防ぐべく、過放電状態に近くなった場合にこれを検出するものである。そのため、第1基準電圧Vr1としては、過放電状態に近いことが検出できるような値が適宜設定される。
電流検出抵抗R1は、バッテリ側負極端子12からバッテリ31の負極(最も電位の低い電池セルBnの負極)に至る通電経路に設けられており、この電流検出抵抗R1において放電電流により生じる電圧降下(電圧信号)が、非反転増幅回路を構成するオペアンプ37へ入力される。
この非反転増幅回路は、基本的には、バッテリ側制御電源Vccにより動作するオペアンプ37を備えると共に、その非反転入力端子に電流検出抵抗R1により検出された電圧信号が入力され、反転入力端子は抵抗R2を介してグランド(接地電位)に接続されると共に抵抗R3を介して出力端子に接続された、周知の構成となっている。そして、本実施形態では、このような構成を基本としつつ、更に、反転入力端子とマイコン32との間に抵抗R4を接続しており、これにより、非判定増幅回路のゲインを二種類に切り換えることが可能となっている。
抵抗R4は、その一端がオペアンプ37の反転入力端子に接続され、他端がマイコン32のゲイン切替信号出力ポート47に接続されている。マイコン32は、ゲイン切替信号出力ポート47をハイインピーダンス又はLレベル出力のいずれかに切り替えることにより、非反転増幅回路のゲイン切り替えを実現する。
例えば、電動工具の使用時など、放電電流が大きいときは、ゲイン切替信号GCとしてハイインピーダンスの信号を出力することにより、その大きな放電電流(例えば数十Aの大電流)を適切に検出できるように設定される。逆に、放電電流が小さい(例えば0A近傍)になったときは、ゲイン切替信号GCとしてLレベルの信号を出力することにより、非反転増幅回路のゲインを大きくする。これにより、微小な電流でも確実に検出できるようになる。このように、マイコン32は、放電電流の値に応じて非反転増幅回路のゲインを切り替えることで、放電電流の大きさにかかわらずこれを適切に検出できるようにするのである。
放電検出用コンパレータ36は、バッテリ側制御電源Vccにより動作し、オペアンプ37から出力される放電電流信号が第2基準電圧Vr2以上のときはHレベルの放電検出信号CuDをマイコン32へ出力する。一方、オペアンプ37からの放電電流信号が第2基準電圧Vr2より低くなると、Lレベルの放電検出信号CuDをマイコン32へ出力する。この放電検出用コンパレータ36は、電動工具本体への電力供給が開始されたときにこれを検出するためのものである。
充電器検出用トランジスタTr1は、ベースが抵抗R6を介して充電器接続信号入力端子53に接続され、エミッタが接地電位に接続され、コレクタが抵抗R5を介してバッテリ側制御電源Vccに接続されると共にマイコン32の充電器接続検出信号入力ポート49に接続されている。
バッテリパック10が充電器20に装着されると、充電器20内で生成される充電器側制御電源Vdd(詳細は後述)が、充電器接続信号として、充電器接続信号入力端子53及び抵抗R6を介して充電器検出用トランジスタTr1のベースに入力される。これによりこの充電器検出用トランジスタTr1はオンし、そのコレクタの電位、即ちマイコン32へ入力される充電器接続検出信号CHDはLレベルとなる。
つまり、バッテリパック10に充電器20が接続されていないときは、充電器検出用トランジスタTr1はオフされ、マイコン32に入力される充電器接続検出信号CHDは、抵抗R5を介して入力されるバッテリ側制御電源VccによってHレベルとなる。一方、充電器20が接続されると、上記のように充電器20からの充電器接続信号によって充電器検出用トランジスタTr1がオンして、マイコン32への充電器接続検出信号CHDがLレベルとなる。そのため、マイコン32は、充電器接続検出信号CHDのレベルに基づいて、充電器20が接続されているか否かを判断することができる。
更に、充電器20からバッテリパック10に入力された充電器接続信号(充電器側制御電源Vdd)は、ダイオードD2を介してバッテリ側レギュレータ33にも入力される。バッテリ側レギュレータ33は、ダイオードD1を介して入力されるバッテリ電圧Vbat、又はダイオードD2を介して入力される充電器側制御電源Vddのうち、電圧値の大きい方を元にしてバッテリ側制御電源Vccを生成できるよう構成されている。
即ち、バッテリ側レギュレータ33は、基本的にはシャットダウンスイッチ40及びダイオードD1を介して入力されるバッテリ電圧Vbatを元にバッテリ側制御電源Vccを生成する。
一方、電圧低下検出用コンパレータ34からの電圧低下検出信号LVによってバッテリ31の過放電が検出されると、マイコン32は、シャットダウン信号出力端子からシャットダウン信号を出力して、シャットダウンスイッチ40をオフする。これにより、バッテリ側レギュレータ33へのバッテリ電圧Vbatの入力が遮断されてバッテリ側制御電源Vccの生成が停止され、マイコン32の動作自体も停止される、シャットダウンモードに移行する。
マイコン32がシャットダウンモードから通常の動作状態(通常動作モード)に復帰するためには、バッテリパック10を充電器20に装着して充電を行う必要がある。バッテリパック10を充電器20に装着すると、充電器側制御電源Vddが充電器接続信号入力端子53及びダイオードD2を介してバッテリ側レギュレータ33に入力される。これにより、バッテリ側制御電源Vccの生成が開始され、マイコン32が起動して、通常動作モードに復帰するのである。通常動作モードに復帰すると、マイコン32はシャットダウンスイッチ40を再びオンさせる。そのため、シャットダウンスイッチ40のオン後は、バッテリ側レギュレータ33は、再びバッテリ電圧Vbatを元にバッテリ側制御電源Vccの生成を行う。
マイコン32は、ハードウェアとしては、その内部にCPU61、ROM62、RAM63、NVRAM(不揮発性メモリ)64、タイマ65などを備えた周知の構成となっており、バッテリ側レギュレータ33により生成されたバッテリ側制御電源Vccを電源として動作し、ROM62に記憶された各種プログラムに従って各種制御を実行する。
また、マイコン32は、信号が入出力されるポートとして、電圧低下検出用コンパレータ34からの電圧低下検出信号LVが入力される電圧低下検出信号入力ポート41、セル選択スイッチ38へのセル選択信号SELが出力されるセル選択信号出力ポート42、差動増幅回路35からのセル電圧信号CeVが入力されるセル電圧信号入力ポート43、温度検出回路39からのセル温度信号CeTが入力されるセル温度信号入力ポート44、放電検出用コンパレータ36からの放電検出信号CuDが入力される放電検出信号入力ポート45、オペアンプ37からの放電電流信号が入力される放電電流信号入力ポート46、ゲイン切替信号GCが出力されるゲイン切替信号出力ポート47、シャットダウンスイッチ40を制御するシャットダウン信号SDが出力されるシャットダウン信号出力ポート48、充電器検出用トランジスタTr1から充電器接続検出信号CHDが入力される充電器接続検出信号入力ポート49、充電器20への充電許可・停止信号(充電許可信号CP、充電停止信号CS)が出力される充電許可・停止信号出力ポート50、充電器20内のマイコン76との間で行われるデータ通信時に各種データDATAが入出力されるデータ通信ポート51、充電器20内のマイコン76からのクロック信号CKが入力されるクロック信号入力ポート52、などを備えている。
マイコン32は、入力される上記各信号に基づいてバッテリ31の状態を監視する監視機能を有すると共に、本実施形態では、充電器20のマイコン76との間で相互にデータ通信を行い、そのデータ通信の結果に基づいて充電器20のマイコン76の動作状態を確認する相互動作確認機能を有する。
即ち、本実施形態の電動工具用充電システム30では、バッテリパック10のマイコン32と充電器20のマイコン76が、相互にデータ通信を行うと共にそのデータ通信の結果に基づいて各々通信相手側のマイコンの動作状態を確認する、相互動作確認を実行するよう構成されている。
バッテリパック10のマイコン32は、充電器20のマイコン76との間でIIC(Inter-IC)バスによるデータ通信(IIC通信)を行うよう構成されているため、そのデータ通信のためにデータ通信ポート51及びクロック信号入力ポート52の2つのポートを備えている。そして、データ通信ポート51から出力されたデータは、バッテリパック10のデータ入出力端子55及び充電器20のデータ入出力端子85を経て充電器20内のマイコン76(データ通信ポート79)に入力される。また、クロック信号入力ポート52には、充電器20内のマイコン76のクロック信号出力ポート80から出力されたクロック信号CKが、充電器20のクロック出力端子86及びバッテリパック10のクロック入力端子56を経て入力される。
なお、各マイコン32,76の相互間のデータ通信がIIC通信であることはあくまでも一例であり、どのような通信方式(通信プロトコル)にてデータ通信を行うかについては適宜決めることができる。
また、バッテリパック10のマイコン32は、後述するバッテリ側充電制御処理において、適宜、充電許可信号(Hレベル信号)CP又は充電停止信号(Lレベル信号)CSを出力することにより、充電器20内の通電スイッチ74をオン・オフさせる。具体的には、充電を許可する際に充電許可信号CPを出力すると、その充電許可信号CPがバッテリパック10の充電許可・停止信号出力端子54から充電器20の充電許可・停止信号入力端子84を経て充電器20内のリレー駆動回路75に入力され、これによりリレー駆動回路75が動作して通電スイッチ74がオンされる。一方、充電を停止させる際に充電停止信号CSを出力すると、その充電停止信号CSに従い、充電器20内のリレー駆動回路75が通電スイッチ74をオフする。
バッテリパック10のマイコン32は、上述したデータ通信に基づく相互動作確認によって通信相手側の充電器20のマイコン76が異常であることを検出した場合は、バッテリ31の充電を停止させるためのエラー処理(充電停止処理)を実行する。具体的には、充電器20へ充電停止信号CSを出力することにより、リレー駆動回路75を動作させて通電スイッチ74をオフさせる。
次に、充電器20の電気的構成について説明する。充電器20は、外部電源(本例ではAC100V電源)を直流に整流するための入力整流回路71と、この入力整流回路71による整流後の直流電源からバッテリ31充電用の充電電力を生成する充電用スイッチング電源回路72と、入力整流回路71による整流後の直流電源から充電器20内の各種回路を動作させるための充電器側制御電源Vdd(電圧Vddの直流電源)を生成する制御用スイッチング電源回路73と、充電用スイッチング電源回路72による充電電力の生成を制御(延いてはバッテリ31の充電を制御)するマイコン76と、バッテリパック10からの充電許可・停止信号に基づいて通電スイッチ74をオン・オフさせるリレー駆動回路75と、を備えている。
本実施形態の充電器20は、バッテリ31の充電を、定電流制御又は定電圧制御により行うよう構成されている。両者の切り換えは、マイコン76からの充電制御指令に応じて行われる。そのため、定電流制御による充電が行われる際は、充電用スイッチング電源回路72にて充電電力として一定電流値の充電電流が生成され、バッテリパック10に供給される。一方、定電圧制御による充電が行われる際は、充電用スイッチング電源回路72にて充電電力として一定電圧の充電電圧が生成され、バッテリパック10に供給される。
充電用スイッチング電源回路72により生成された充電電力は、充電器20の充電側正極端子21及び充電側負極端子22を介してバッテリパック10へ供給される。また、充電器20において、充電用スイッチング電源回路72から充電側正極端子21に至る充電電力の供給経路上には、上述した通電スイッチ74が設けられている。そのため、この通電スイッチ74がオンされているときはバッテリパック10への充電電力の供給が可能な状態となり、逆にこの通電スイッチ74がオフされているときは充電電力の供給ができない状態となる。
リレー駆動回路75は、バッテリパック10から充電許可信号CS(Hレベル信号)が出力されているときに通電スイッチ74をオンさせ、バッテリパック10から充電停止信号CS(Lレベル信号)が出力されているときは通電スイッチ74をオフさせるよう構成されている。
充電器20の充電許可・停止信号入力端子84は、リレー駆動回路75のプルアップ抵抗(図示略)を介して充電器側制御電源Vddにプルアップされている。そのため、充電器20にバッテリパック10が装着されていないときは、充電許可・停止信号入力端子84の電位はHレベル(Vdd近傍)となり、これにより通電スイッチ74はオンされる。
一方、バッテリパック10が装着されると、充電器20の充電許可・停止信号入力端子84はバッテリパック10のマイコン32の充電許可・停止信号出力ポート50に接続されることになる。このとき、充電開始前はこの充電許可・停止信号出力ポート50からはまだ充電許可信号CP(Hレベル信号)が出力されておらず、また、充電許可・停止信号出力ポート50はマイコン32内においてプルダウン抵抗を介して接地電位にプルダウンされている。そのため、充電器20における充電許可・停止信号入力端子84の電位は、バッテリパック10の装着前後で変動(低下)し、これにより通電スイッチ74はオフされることとなる。その後、充電の準備が整って充電を開始する際には、バッテリパック10のマイコン32が充電許可信号CPを出力することで、充電器20の充電許可・停止信号入力端子84の電位をHレベル(Vdd近傍)に引き上げ、これにより通電スイッチ74がオンされることとなる。
充電器20のマイコン76は、ハードウェアとしては、その内部にCPU91、ROM92、RAM93、NVRAM(不揮発性メモリ)94、タイマ95などを備えた周知の構成となっており、制御用スイッチング電源回路73により生成された充電器側制御電源Vddを電源として動作し、ROM62に記憶された各種プログラムに従って各種制御を実行する。
また、マイコン76は、信号・データが入出力されるポートとして、充電用スイッチング電源回路72へ充電制御用の充電制御指令が出力される充電制御指令出力ポート77、バッテリ接続検出ポート78、バッテリパック10のマイコン32との間で行われるデータ通信時に各種データDATAが入出力されるデータ通信ポート79、IIC通信で用いられるクロック信号CKが出力されるクロック信号出力ポート80、などを備えている。
マイコン76は、バッテリパック10のマイコン32との間で相互にデータ通信を行うことにより充電制御のために必要な情報を適宜取得すると共に、そのデータ通信の結果に基づいて充電器20のマイコン76の動作状態を確認する相互動作確認機能をも有する。マイコン76は、この相互動作確認によって通信相手側のバッテリパック10のマイコン32が異常であることを検出した場合は、バッテリ31の充電を停止させるためのエラー処理(充電停止処理)を実行する。具体的には、充電用スイッチング電源回路72の動作を停止させることにより、バッテリパック10への充電電力の供給を停止させる。
また、マイコン76は、バッテリ接続検出ポート78の電位変動(=充電許可・停止信号入力端子84の電位変動)に基づいて、バッテリパック10の接続(装着)の有無を検出する。即ち、上述したように、バッテリパック10が充電器20に装着されると、充電器20の充電許可・停止信号入力端子の電位(=バッテリ接続検出ポート78の電位)が変動する。マイコン76は、この電位変動に基づいて、充電器20にバッテリパック10が装着されたか否かを検出する。
(3)各マイコンによる充電制御処理
次に、バッテリパック10が充電器20に装着されたときに双方のマイコン32,76において実施される充電制御処理(相互間のデータ通信及びそれに基づく相互動作確認を含む)について、図3〜図10を用いて説明する。
(3−1)充電制御処理の概要
ここで、各マイコン32,76にて実施される充電制御処理の詳細を説明するのに先立ち、まず、その概要について、図3,図4を用いて説明する。図3及び図4は、バッテリパック10のマイコン32及び充電器20における主要動作を互いに関連付けて示したシーケンス図である。なお、以下の説明では、バッテリパック10のマイコン32を単に「バッテリ側マイコン32」とも称し、充電器20のマイコン76を単に「充電器側マイコン76」とも称することとする。
図3に示すように、本実施形態の電動工具用充電システム30では、各マイコン32,76は、それぞれバッテリパック10,充電器20の接続を認識すると、まず1秒間待機する。そして、バッテリ側マイコン32の方からデータ通信を開始する。即ち、まずバッテリ側マイコン32から通信要求コードを出力(送信)し、これに対して充電器側マイコン76が充電制御用データの要求(要求命令の送信)を行う。これに対し、バッテリ側マイコン32は、その要求されたデータを出力して、その出力に対して充電器側マイコン76から充電準備コードが出力されると、8秒タイマをクリアしてスタートさせ、更に充電許可信号CPを出力して充電器20内の通電スイッチ74をオンさせて、スタンバイ完了コードを出力する。なお、8秒タイマは、バッテリ側マイコン32内のタイマ65にて実現されるものである。
充電器側マイコン76は、バッテリ側マイコン32からのスタンバイ完了コードを受信すると、16秒タイマをクリアしてスタートさせ、バッテリ31の充電(即ち充電用スイッチング電源回路72による充電電力の供給)を開始させる。そして、充電開始後(正確には16秒タイマのスタート後)、バッテリ側マイコン32からの通信要求コードの送信を待つ。なお、16秒タイマは、充電器側マイコン76内のタイマ95にて実現されるものである。
一方、バッテリ側マイコン32は、スタンバイ完了コードの出力後(正確には8秒タイマのスタート後)、8秒間待機して、その間、二次電池への充電を行わせる。そして、8秒経過すると、8秒タイマを再びクリアして再スタートさせ、充電器側マイコン76へ通信要求コードを出力する。
充電器側マイコン76は、16秒タイマのスタートから16秒以内に通信要求コードを受信すると、充電用スイッチング電源回路72の動作を停止させて充電を一時停止させ、バッテリ側マイコン32へ充電制御用データ(現在のバッテリ電圧Vbatやバッテリ温度等)を要求する。なお、16秒以内に通信要求コードを受信できなかった場合はエラー処理を行って充電を停止させる。
バッテリ側マイコン32は、8秒タイマの再スタートから1秒以内に充電器側マイコン76からの充電制御用データの要求を受けると、その要求されたデータを送信する。
これに対して充電器側マイコン76は、16秒タイマのスタートから16秒以内にその要求したデータを受信すると、その受信したデータに基づき、充電を継続してもよい状態であるか否かの充電継続確認を行う。
そして、充電を継続する必要がある場合は、充電継続コード及び充電ステータスを送信し、その後、16秒タイマのスタートから16秒以内にバッテリ側マイコン32からタイマスタート命令が受信されると、再び16秒タイマをクリア・スタートさせて充電を開始(再開)する。なお、充電ステータスは、本発明の充電制御情報に相当するものであり、充電器側マイコン76が充電用スイッチング電源回路72を制御して充電電力の供給(延いてはバッテリ31の充電)を制御している際の、その制御状態に関する各種情報である。
一方、充電を継続すべきでない場合は、充電停止コードを出力する。そして、バッテリ31が満充電状態であることを確認した上で、バッテリ側マイコン32へ満充電コードを出力し、充電完了処理を行う。
バッテリ側マイコン32は、充電器20からの充電制御用データの要求に対してその要求されたデータを送信した後、8秒タイマのスタートから1秒以内に充電器側マイコン76から充電停止コード、又は、充電継続コード及び充電ステータスを受信すると、その受信内容に基づいて、充電を継続させてもよい状態であるか否かの充電継続確認を行う。
そして、充電停止コードを受信したことにより継続不可(充電を停止させるべき)と判断した場合は、充電器側マイコン76からの満充電コードを待って、充電完了処理を行う。一方、充電継続コードの受信により継続必要(充電を継続させるべき)と判断した場合は、充電継続コードと共に受信した充電ステータスをNVRAM64(本発明の記憶手段に相当)に記憶させる。そして、8秒タイマのスタートから1秒待機して、充電器側マイコン76へタイマスタート命令を出力すると共に、8秒タイマを再びクリアして再スタートさせ、上述した「8秒間待機」以下の処理に戻る。
なお、NVRAM64に記憶される充電ステータスは、充電器側マイコン76から充電ステータスが送信されてくる度に更新され、常に最新の充電ステータスが記憶された状態となっている。
ところで、充電中に何らかの要因で充電器側マイコン76がリセットしてしまうことがあるが、充電中に充電器側マイコン76がリセットすると、バッテリ側マイコン32においては、8秒タイマの再スタート後の通信要求コード出力や要求データ(充電制御用データ)の出力に対し、その8秒タイマ再スタートから1秒以内には充電器側マイコン76から応答が返ってこないことになる。その場合、バッテリ側マイコン32は、図4に示すデータ通信等を行うことで、充電器側マイコン76に対し、リセット直前の状態からの充電制御を再開させる。
即ち、バッテリ側マイコン32は、8秒タイマ再スタートから1秒以内に充電器側マイコン76から所望のデータを受信しなかった場合は、図4に示すように、充電停止信号CSを出力して通電スイッチ74をオフさせた上で、8秒タイマを再びクリア、再スタートさせて、充電器リセット確認コードを出力する。
これに対し、リセットして再起動した充電器側マイコン76は、再び、バッテリパック10の接続を認識した上で1秒間待機する。この間、バッテリ側マイコン32からは上述した充電器リセット確認コードが出力されている。そのため、充電器側マイコン76は、その1秒待機後にバッテリ側マイコン32からの充電器リセット確認コードを受信すると、それに対して応答コマンドを出力する。
バッテリ側マイコン32は、充電器側マイコン76からの応答コマンドを受信すると、NVRAM64に記憶されている最新の充電ステータス(リセット直前に充電器側マイコン76から送信されてきた充電ステータス)を、充電器側マイコン76へ出力する。これにより、充電器側マイコン76は、リセット前に自身が行っていた充電制御の状態を知ることができ、リセット前の充電状態を再現させてその状態から充電制御を再開させることができるようになる。
充電器側マイコン76は、バッテリ側マイコン32から充電ステータスを受信すると、スタンバイ完了コードを出力した上で、再び充電制御を再開(16秒タイマのクリア・ススタート以下の処理を再開)する。
バッテリ側マイコン32は、充電器側マイコン76からのスタンバイ完了コードを受信すると、充電許可信号CPを出力して通電スイッチ74を再びオンさせた上で、再び8秒タイマをクリア、スタートさせ、充電中におけるデータ通信(通信要求コードの出力に始まる相互データ通信)を再開する。
このように、本実施形態では、充電開始前、充電中、及び充電器20のリセット時において、各マイコン32,76が相互に上述したデータ通信を行う。そして、各マイコン32,76は、自身が送信したデータに対して通信相手側のマイコンから本来送信されてくるべきデータが送信されてこなかった場合は、エラー処理を行って二次電池の充電を停止させる。
(3−2)充電制御処理の詳細
ここまで、バッテリ側マイコン32と充電器側マイコン76が実行する各種処理についてその概要を説明したが、各マイコン32,76が実行する充電制御処理のより具体的な内容を、図5〜図10を用いて説明する。図5〜図10は、いずれも、バッテリ側マイコン32により実行されるバッテリ側充電制御処理、及び充電器側マイコン76により実行される充電器側充電制御処理を示すフローチャートである。
充電器側マイコン76では、CPU91がROM92から充電器側充電制御処理プログラムを読み出し、このプログラムに従って処理が実行される。そのため、充電器側マイコン76において充電器側制御処理を実行する主体は実際にはCPU91であるが、ここではそのCPU91等からなる充電器側マイコン76が実行するものとして説明する。また、バッテリ側マイコン32においても、CPU61がROM62からバッテリ側充電制御処理プログラムを読み出してこのプログラムに従って処理が実行される。そのため、バッテリ側マイコン32においてバッテリ側充電制御処理を実行する主体は実際にはCPU61であるが、ここではそのCPU61等からなるバッテリ側マイコン32が実行するものとして説明する。
バッテリ側マイコン32は、起動後、バッテリパック10が充電器20に装着されたかどうかを監視しており、装着されたことを認識すると(S505)、S510から始まるバッテリ側充電制御処理を開始する。なお、S505における充電器20の認識は、充電器接続検出信号入力ポート49に入力される充電器接続検出信号CHDに基づいて行われる。
充電器側マイコン76も、起動後、充電器20にバッテリパック10が装着されたかどうかを監視しており、装着されたことを認識すると(S105)、S110から始まる充電器側充電制御処理を開始する。
バッテリ側マイコン32は、バッテリ側充電制御処理の開始後、まず充電前処理(充電を開始する前に行うべき各種処理)を実行する。即ち、S510にて1秒間待機した後、S515にてバッテリ31の充電が可能な状態か否かを判断する。S515における充電が可能な状態か否かの判断は、例えば、NVRAM64に記憶されている過去の異常履歴に基づいて行われる。
即ち、バッテリ側マイコン32は、バッテリ31の状態を監視する監視機能においてバッテリ31の異常を検出すると、当該バッテリ31が充電禁止バッテリである旨の異常履歴をNVRAM64に記憶する。そのため、S515の判断処理において、NVRAM64に異常履歴が記憶されていた場合は、バッテリ31への充電は不可能と判断する(S515:NO)。そして、S520にて充電器側マイコン76へ充電不可命令を出力(送信)し、S805以下のエラー処理へ進む。
バッテリ側マイコン32は、エラー処理に進むと、まずS805にて、充電停止信号CSを出力して、充電器20の通電スイッチ74をオフさせ、充電電力がバッテリパック10に供給されないようにする。そして、S810にてタイマ65(8秒タイマ等を構成するもの)をクリアさせて停止させた後、S815にて、例えばバッテリ31の異常により充電できなかった旨の異常履歴をNVRAM64に記憶するといったエラー処理を実行する。
S515の判断処理においてバッテリ31への充電が可能と判断された場合は(S515:YES)、S525にて、充電器側マイコン76へ通信要求コードを出力する。この通信要求コードの具体例としては、例えば予め決められた符号からなるデータ等が考えられる。
そして、バッテリ側マイコン32は、S525での通信要求コードの出力後、S530にて、その通信要求コードに対して充電器側マイコン76から出力(送信)されてくるはずのデータ(ここでは充電制御用データを要求する旨のデータ)の入力(受信)を待つ。
一方、充電器側マイコン76も、充電器側充電制御処理の開始後、まず充電前処理(充電を開始する前に行うべき各種処理)を実行する。即ち、S110にて1秒間待機した後、S115にて、バッテリ側マイコン32からのデータの入力(受信)を待つ。このとき、バッテリ側マイコン32から送信されてくるデータとしては、充電不可命令(S520)、通信要求コード(S525)、又は後述する充電器リセット確認コード(図10のS725)が想定される。
充電器側マイコン76は、バッテリ側マイコン32からデータを受信すると(S115:YES)、まずS120にて、その受信したデータが充電器リセット確認コードであるか否かを判断する。この充電器リセット確認コードは、バッテリ側マイコン32において、充電開始後のS615(図7)、S650(図8)、及びS685(図9)の判断処理で肯定判定されたとき、即ち8秒タイマのスタート時(図7のS605)から1秒以内に充電器側マイコン76から所望のデータが受信されなかったときに、バッテリ側マイコン32から出力されるものである。
充電器側マイコン76は、ノイズ或いは充電器側制御電源Vddの瞬間的な低下等といった種々の要因で、充電中にリセットしてしまう可能性がある。そして、充電中にリセットして再起動すると、S110の1秒待機の処理によって、再起動後少なくとも1秒間は、データの送受信等を行うことができない。言い換えれば、バッテリ側マイコン32は、充電器側マイコン76がリセットすると、少なくとも1秒間は充電器側マイコン76から所望のデータが受信されなくなる。
そのため、バッテリ側マイコン32は、1秒以内に充電器側マイコン76から所望のデータが受信されなかったとき、すぐに充電器側マイコン76が異常であると判断するのではなく、何らかの要因で充電器側マイコン76がリセットしてしまった可能性があることから、まずは充電器リセット確認コードを出力することによって、充電器側マイコン76がリセットしたのかどうかを確認するのである。
充電器側マイコン76は、S120の判断処理において、受信したデータが充電器リセット確認コードであった場合は(S120:YES)、図10のS285に進んで応答コマンドを出力する(詳細は後述)。一方、S120の判断処理において、受信したデータが充電器リセット確認コードではないと判断した場合は(S120:NO)、S125にて、受信したデータが充電不可命令であるか否かを判断する。
このとき、充電不可命令が受信された場合は(S125:YES)、S305以下のエラー処理へ進む。充電器側マイコン76は、エラー処理に進むと、まずS305にて、充電用スイッチング電源回路72による充電電力の生成、供給を停止させることによってバッテリ31の充電を停止させる。そして、S310にてタイマ95(16秒タイマ等を構成するもの)をクリアさせて停止させた後、S315にて、例えばバッテリ31の異常により充電できなかった旨の異常履歴をNVRAM94に記憶するといったエラー処理を実行する。
S125の判断処理において、受信したデータが充電不可命令ではないと判断した場合は(S125:NO)、更に、S130にて、受信したデータが通信要求コードであるか否かを判断する。ここで、通信要求データでもないと判断した場合は(S130:NO)、バッテリ側マイコン32に何らかの異常が生じた可能性があるため、S305以下のエラー処理に進むが、通信要求データであると判断した場合は(S130:YES)、S135にて、バッテリ側マイコン32へ充電制御用データの要求を行う。そして、S140(図6)にて、この要求に対してバッテリ側マイコン32から送信されてくるはずのデータの入力を待つ。
S135において要求する充電制御用データは、充電器側マイコン76が充電制御を開始するために必要なものであり、一例として、バッテリ31自体の情報(何Vバッテリであるか、等)、バッテリの充電容量、充電時に流せる最大充電電流、これまでの充電履歴(回数等)、などが挙げられる。
つまり、本実施形態の充電器20は、バッテリパック10のみに対応した専用の充電器ではなく、電圧や充電容量等の異なる複数種類のバッテリパックを充電可能に構成されている。充電器側マイコン76は、S135での要求に対してバッテリパック側から送信されてくる充電制御用データに基づいて、自身に装着されているバッテリパックの種類を判断し、そのバッテリパックに応じた適切な充電制御を実行するのである。
一方、バッテリ側マイコン32は、S525での通信要求コードの出力後、何らかのデータの入力があった場合は(S530:YES)、それが充電器側マイコン76からのデータ要求命令(即ち充電制御用データの要求を示すもの)であるか否かを判断する(S535)。そして、充電制御用データの要求でなければ(S535:NO)、充電器側マイコン76に何らかの異常が生じた可能性があるため、S805以下のエラー処理に進み、充電制御用データの要求であれば(S535:YES)、S540にて、バッテリ31のステータス(状態)をチェックする。
このバッテリ31のステータスチェックは、一例として、電圧低下検出信号LVに基づく、バッテリ31の過放電状態のチェック、セル電圧信号CeVに基づく、各電池セルB1,B2,・・・,Bnの電圧(セル電圧)及びバッテリ電圧Vbatのチェック、セル温度信号CeTに基づくバッテリ31の温度のチェック、などが挙げられる。
そして、バッテリ側マイコン32は、S540にて行ったステータスチェックの結果に基づき、S545(図6)にて、バッテリ31が異常ではないか否かを判断する。ここで、例えばバッテリ31が過放電状態になっているなど、バッテリ31が充電を行うべきではない異常な状態であると判断した場合は(S545:YES)、S550にて充電不可命令を出力し、S805以下のエラー処理(図5)に進む。
S545の判断処理にて、バッテリ31に異常はないと判断した場合は(S545:NO)、S555にて、バッテリ31が満充電状態であるか否か、即ち、バッテリ電圧Vbatが予め設定された満充電電圧であるか否かを判断する。ここで、既に満充電状態であれば(S555:YES)、充電する必要性はないことから、図9の充電完了処理におけるS700以下の処理に進む。
即ち、バッテリ側マイコン32は、S700において、充電停止信号CSを出力することにより、充電器20の通電スイッチ74をオフさせる。そして、S705にてタイマ65をクリアさせて停止させた後、S710にて、例えばバッテリパック10が充電器20から取り外されるのを監視するといった、各種の充電完了処理を実行し、充電器20からバッテリパック10が取り外されたことを検出すると、このバッテリ側充電制御処理を終了する。
そして、以後、バッテリパック10が再び充電器20に装着されてその装着がバッテリ側マイコン32により検出されれば(図5のS505)、再びこのバッテリ側充電制御処理が実行されることとなる。
バッテリ側マイコン32は、S555の判断処理にて、バッテリ電圧Vbatが満充電電圧に満たずにまだ満充電状態ではないと判断した場合は(S555:NO)、S560にて、バッテリ31の温度が充電可能な温度範囲内にあるか否かを判断する。そして、充電可能な温度範囲内にないと判断した場合は(S560:NO)、充電可能な温度範囲内まで温度が低下するのを待って充電を行うべく、S565にて充電待機コードを出力して、再びS530(図5)に戻り、あらためて充電器側マイコン76から充電制御用データの要求(図5のS135)が来るのを待つ。
バッテリ31の温度が充電可能な温度範囲内にある場合は(S560:YES)、S570にて、充電器側マイコン76によりS135(図5)で要求された充電制御用データを出力する。そして、その出力後、S575にて、充電器側マイコン76から充電準備コード(S160)を受信するのを待つ。
一方、充電器側マイコン76は、S135(図5)による充電制御用データの要求後、バッテリ側マイコン32からのデータ入力を待ち、何らかのデータが入力されたときは(S140:YES)、S145にて、その入力データが充電不可命令(S550)であるか否かを判断する。このとき、充電不可命令であれば(S145:YES)、S305(図5)以下のエラー処理に進むが、充電不可命令ではない場合は(S145:NO)、続くS150にて、充電待機コード(S565)でるか否かを判断する。このとき、充電待機コードであれば(S150:YES)、再びS135(図5)に戻り、充電制御用データの要求を行う。そして、充電待機コードでない場合は(S150:NO)、続くS155にて、入力されたデータが正常であるか否か、即ち、S135で行った充電制御用データの要求に対してその要求したデータが正常に入力されたか否かを判断する。
このとき、要求した充電制御用データが正常に入力されていない場合は(S155:NO)、バッテリ側マイコン32に何らかの異常が生じた可能性があるため、S305(図5)以下のエラー処理に進むが、正常に入力されている場合は(S155:YES)、S160にて、充電準備コードを出力する。この充電準備コードは、充電器側マイコン76において充電を実行する準備が整ったことを示すものである。
そして、充電器側マイコン76は、充電準備コードの出力後、S165にて、この充電準備コードに対してバッテリ側マイコン32から送信されてくるはずのデータであるスタンバイ完了コード(S595)の入力を待つ。そして、何らかのデータを受信した場合(S165:YES)、S170にてそれがスタンバイ完了コードであるか否かを判断し、スタンバイ完了コードではない場合は(S170:NO)、バッテリ側マイコン32に何らかの異常が生じた可能性があるため、S305(図5)以下のエラー処理に進み、スタンバイ完了コードであった場合は(S170:YES)、充電前処理を終えて、図7の充電中処理(S175以下の処理)に進む。
一方、バッテリ側マイコン32は、S570による要求データ(充電制御用データ)の出力後、充電器側マイコン76からのデータ入力を待ち、何らかのデータが入力されたときは(S575:YES)、S580にて、その入力データが充電準備コード(S160)であるか否かを判断する。このとき、充電準備コードではない場合は(S580:NO)、充電器側マイコン76に何らかの異常が生じた可能性があるため、S805(図5)以下のエラー処理に進むが、充電準備コードであった場合は(S580:YES)、続くS585にて、8秒タイマを一旦クリアさせてスタートさせる。つまり、タイマ65を用いて8秒の経過を待つ。
そして、S590にて充電許可信号CPを出力することにより充電器20の通電スイッチ74をオンさせ、更にS595にて、充電器側マイコン76へスタンバイ完了コードを出力して、充電前処理を終え、図7の充電中処理(S600以下の処理)に進む。
充電器側マイコン76は、まずS175にて、16秒タイマ(タイマ95)を一旦クリアさせてスタートさせる。そして、S180にて、充電を開始する。つまり、充電用スイッチング電源回路72を制御して、バッテリパック10への充電電力の供給、延いてはバッテリ31の充電を開始する。
そして、充電器側マイコン76は、S180の充電開始後、S185にて16秒タイマのスタート(S175)から16秒が経過したと判断されるまでの間、S190にて、バッテリ側マイコン32からの通信要求コード(S610)の入力を待つ。
バッテリ側マイコン32は、S600にて、S585(図6)の8秒タイマスタートから8秒経過するのを待つ。この8秒は、本発明の規定時間に相当するものであり、この間、充電器20によるバッテリ31の充電が行われる。そして、8秒経過すると(S600:YES)、S605にて、8秒タイマを再びクリアさせて再スタートさせる。そして、S610にて、充電器側マイコン76へ通信要求コードを出力する。
充電器側マイコン76は、S180の充電開始後、16秒タイマのスタートから16秒が経過するまでの間に何らかのデータの入力があった場合は(S185:NO、S190:YES)、S195にて、そのデータがバッテリ側マイコン32からの通信要求コード(S610)であるか否かを判断する。そして、通信要求コードでない場合は(S195:NO)、バッテリ側マイコン32に何らかの異常が生じた可能性があるため、S305(図5)以下のエラー処理に進むが、通信要求コードであった場合は(S195:YES)、S200にて充電を一時停止させた上で、S205にて、バッテリ側マイコン32に対し、充電制御用データを要求する。ここで要求する充電制御用データは、充電開始前にS135(図5)で要求した充電制御用データとは若干異なり、例えば現在のバッテリ電圧Vbatやバッテリ温度など、主として、現在のバッテリ31の状態を示すデータである。
そして、充電器側マイコン76は、S205による充電制御用データの要求後、S210にて16秒タイマのスタート(S175)から16秒が経過したと判断されるまでの間、S215にて、バッテリ側マイコン32からの要求データ(S645)の入力を待つ。
一方、バッテリ側マイコン32は、S610の通信要求コードの出力後、8秒タイマの再スタート(S605)からの経過時間が1秒未満であることを限度として(S615)、S620にて、充電器側マイコン76からの充電制御用データの要求(S205)を待つ。そして、データ入力がないまま8秒タイマの再スタートから1秒が経過した場合は(S615)、図10の再充電許可処理(S715以下の処理)に進む。一方、8秒タイマの再スタートから1秒が経過するまでの間に何らかのデータの入力があった場合は(S615:NO、S620:YES)、にて、そのデータが充電器側マイコン76からの充電制御用データの要求命令(S205)であるか否かを判断する。そして、充電制御用データの要求命令でない場合は(S625:NO)、充電器側マイコン76に何らかの異常が生じた可能性があるため、S805(図5)以下のエラー処理に進むが、充電制御用データの要求命令であった場合は(S625:YES)、S630にて、バッテリ31のステータス(状態)をチェックする。これは、図5のS540におけるバッテリステータスチェックと同じである。
そして、バッテリ側マイコン32は、S630のバッテリステータスチェックの結果に基づき、S635にて、バッテリ31が正常か否かを判断する。ここで、例えばバッテリ31が過放電状態になっているなど、バッテリ31が充電を行うべきではない異常な状態であると判断した場合は(S635:NO)、S640にて充電不可命令を出力し、S805以下のエラー処理(図5)に進む。
S635の判断処理にて、バッテリ31が正常であると判断した場合は(S635:YES)、S645にて、充電器側マイコン76から要求された充電制御用データ(S205)を出力する。そしてその出力後、8秒タイマの再スタート(S605)からの経過時間が1秒以内であることを限度として(図8のS650)、S655にて、充電器側マイコン76からのコード入力を待つ。
一方、充電器側マイコン76は、S210にて16秒が経過したと判断されるまでにバッテリ側マイコン32から何らかのデータが入力された場合は(S215:YES)、S220(図8)にて、その入力されたデータが充電不可命令(図7のS640)であるか否かを判断する。なお、S210にて16秒経過したことが判断された場合は、バッテリ側マイコン32に何らかの異常が生じた可能性があるため、S305(図5)以下のエラー処理に進む。
そして、充電不可命令であれば(S220:YES)、バッテリ側マイコン32に何らかの異常が生じた可能性があるため、S305(図5)以下のエラー処理に進むが、充電不可命令ではなかった場合は(S220:NO)、続くS225にて、入力されたデータが正常であるか否か、即ち、S205で行った充電制御用データの要求に対してその要求したデータが正常に入力されたか否かを判断する。
このとき、要求した充電制御用データが正常に入力されていない場合は(S225:NO)、S305(図5)以下のエラー処理に進むが、正常に入力されている場合は(S225:YES)、S230にて、入力された充電制御用データに基づき、充電を継続してもよい状態であるか否かの判断(充電継続確認)を行う。
そして、充電を継続してもよい状態にあると判断した場合は(S230:YES)、S240にて、充電継続コード及び充電ステータスを送信し、その後、S245にて16秒タイマのスタート(S175)から16秒が経過したと判断されるまでの間、S250にて、バッテリ側マイコン32からのタイマスタート命令(S675)の入力を待つ。なお、S245にて16秒経過したと判断された場合は、バッテリ側マイコン32に何らかの異常が生じた可能性があるため、S305(図5)以下のエラー処理に進む。
S230にて、充電を継続すべきではないと判断した場合は、S235にて充電停止コードを出力し、図9の充電完了処理(S260以下の処理)に進む。
一方、バッテリ側マイコン32は、S645(図7)の要求データの出力後、8秒タイマの再スタート(S605)から1秒以内に充電器側マイコン76から何らかのデータが入力されたときは(S655:YES)、S660にて、その入力されたデータが充電継続コードであるか否かを判断する。そして、充電継続コードでなかった場合は(S660:NO)、図9の充電完了処理(S685以下の処理)に進むが、充電継続コードであった場合は(S660:YES)、S665にて、その充電継続コードと共に充電器側マイコン76から送信されてきた充電ステータスをNVRAM64に記憶する。そして、8秒タイマの再スタート(S605)から1秒経過した後(S670:YES)、S675にてタイマスタート命令を出力する。
これに対し、充電器側マイコン76は、S240における充電継続コード及び充電ステータスの出力後、16秒以内にバッテリ側マイコン32から何らかのデータが入力されると(S250:YES)、S255にて、その入力されたデータがタイマスタート命令であるか否かを判断する。そして、タイマスタート命令でない場合は(S255:NO)、バッテリ側マイコン32に何らかの異常が生じた可能性があるため、S305(図5)以下のエラー処理に進むが、タイマスタート命令であった場合は(S255:YES)、S175(図7)に戻り、S175以下の処理を実行する。つまり、16秒タイマを再びクリアして再スタートさせ(S175)、充電を開始(再開)する(S180)。
一方、バッテリ側マイコン32も、S675にてタイマスタート命令を出力した後、S680にて、8秒タイマを再びクリアして再スタートさせ、その後、再びS600(図7)に戻ってS600以下の処理を実行する。
つまり、バッテリ側マイコン32がS675にて出力するタイマスタート命令は、バッテリ側マイコン32内のタイマ(8秒タイマ)65と充電器側マイコン76内のタイマ(16秒タイマ)95との同期をとるためになされるものである。バッテリ側マイコン32がタイマスタート命令を出力することで、バッテリ側マイコン32における8秒タイマの再スタート(図8のS680)と、充電器側マイコン76における16秒タイマの再スタート(図7のS175)とがほぼ同時になされ、これにより、充電器側マイコン76によるS180の充電開始と、バッテリ側マイコン32によるS600の8秒待機がほぼ同時に再開される。
次に、図9に示した一連の充電完了処理について説明する。充電器側マイコン76は、S235(図8)にて充電停止コードを出力した後は、図9の充電完了処理に移り、まず260にて、バッテリ31が満充電状態であるか否かを判断する。そして、まだ満充電状態ではない場合は(S260:NO)、S305(図5)以下のエラー処理に進む。つまり、S230(図8)で充電を継続すべきではないと判断されたにも関わらず、バッテリ31はまだ満充電状態ではないということは、バッテリ31が、充電を継続すべきではない何らかの異常状態になっていることが予想される。そのため、S260で満充電状態ではないと判断した場合はエラー処理を実行するのである。
S260においてバッテリ31が満充電状態である場合は(S260:YES)、S265にて、バッテリ側マイコン32へ満充電コードを出力する。その後、S270にて、充電用スイッチング電源回路72による充電電力の生成、供給を停止させることによってバッテリ31の充電を停止させる。そして、続くS275にてタイマ95(16秒タイマ)をクリアさせて停止させた後、S280にて、例えばバッテリパック10が充電器20から取り外されるのを監視するといった、各種の充電完了処理を実行し、充電器20からバッテリパック10が取り外されたことを検出すると、この充電器側充電制御処理を終了する。
一方、バッテリ側マイコン32は、S605(図7)による8秒タイマの再スタートから1秒以内に充電器側マイコン76から何らかのデータ入力があった場合は(S690:YES)、S695にてその入力されたデータが満充電コード(S265)であるか否かを判断する。そして、満充電コードではなかった場合は(S695:NO)、充電器側マイコン76に何らかの異常が生じた可能性があるため、S805(図5)以下のエラー処理に進むが、満充電コードであった場合は(S695:YES)、既述のS700以下の処理を行い、バッテリ側充電制御処理を終了する。
次に、図10に示した一連の再充電許可処理について説明する。バッテリ側マイコン32は、充電開始後のS615(図7)、S650(図8)、及びS685(図9)の判断処理において、8秒タイマのスタート時(図7のS605)から1秒以内に充電器側マイコン76から所望のデータが受信されなかった場合、充電器側マイコン76が何らかの要因でリセットされた可能性があるとして、図10の再充電許可処理に移る。即ち、まずS715にて充電停止信号CSを出力して充電器20の通電スイッチ74をオフさせた後、S720にて、8秒タイマを再びクリアして再スタートさせる。そして、続くS725にて、充電器側マイコン76へ充電器リセット確認コードを出力する。
これに対し、充電器側マイコン76は、仮に充電中にリセットしてしまった場合は、リセット後の充電器側充電制御処理の実行後、S120(図5)にて、バッテリ側マイコン32からの充電器リセット確認コードを受信するはずである。充電器側マイコン76は、この充電器リセット確認コードを受信すると(S120:YES)、図10の再充電許可処理に移り、まずS285にて、充電器リセット確認コードに対する応答コマンドを出力する。
バッテリ側マイコン32は、S725における充電器リセット確認コードの出力後、充電器側マイコン76から何らかのデータが入力されるのを1秒間待ち、1秒以内に何も入力されなければ(S730:YES)、S305(図5)以下のエラー処理に進む。一方、1秒以内に何らかのデータが入力された場合は(S735:YES)、S740にてそれが応答コマンド(S285)であるか否かを判断し、応答コマンドであれば(S740:YES)、S745にて、NVRAM65に記憶されている充電ステータスを送信する。そして、この充電ステータスに対して充電器側マイコン76から出力されるはずのスタンバイ完了コードの入力を待つ。
一方の充電器側マイコン76では、S285における応答コマンドの出力後、バッテリ側マイコン32から充電ステータスが入力されると(S290:YES)、S295にてその入力された充電ステータスをNVRAM95に記憶する。これにより、充電器側マイコン76は、リセット直前における自身の制御状態を知ることができ、リセット直前の制御状態から充電制御を再開することが可能となる。そして、続くS300にて、バッテリ側マイコン32へスタンバイ完了コードを出力して、図7の充電中処理(S175以下の処理)に移る。
バッテリ側マイコン32は、S745における充電ステータスの送信後、充電器側マイコン76から何らかのデータが入力された場合に(S750:YES)、それがスタンバイ完了コードであったならば(S755:YES)、充電許可信号CPを出力して充電器20の通電スイッチ74を再びオンさせ、図7の充電中処理(この場合はS605以下の処理)に移る。
なお、充電器側マイコン76は、図7の充電中処理において、バッテリ側マイコン32から通信要求コード(S610)を受信したことによりバッテリ側マイコン32とのデータ通信を開始する際、まずS200にて充電を一時停止させるようにしているが、これは次の理由による。
即ち、本実施形態の充電器20は、充電電力を生成する充電用スイッチング電源回路72が、文字通りスイッチング電源回路にて構成されている。周知の通り、スイッチング電源回路は、半導体スイッチング素子のオン・オフを繰り返すことによって、生成される電流・電圧を制御するものであるため、その動作中、スイッチングノイズが発生する。そのため、充電中に充電器側マイコン76とバッテリ側マイコン32の相互間でデータ通信が行われる際、スイッチングノイズがそのデータ通信に悪影響を及ぼすおそれがある。そのため、本実施形態では、充電中にデータ通信を行う際は、充電器側マイコン76は、充電を一時停止させることで、スイッチングノイズに起因する懸念を排除し、データ通信の品質を確保するようにしている。
そのため、仮に、充電器20がスイッチング電源回路以外のよりノイズ発生の少ない回路にて充電電力を生成するよう構成されているならば、必ずしも充電を一時停止させる必要はない。また、本実施形態においても、必ず充電を一時停止させる必要があるわけではなく、ノイズレベルが低かったり、或いは、ノイズの影響を低減するための何らかの対策(例えばシールド等)が施されていること等によって、データ通信への影響が特に問題とならないレベルであれば、充電を継続したままデータ通信を行うようにしてもよい。
(4)第1実施形態の効果
以上説明したように、本実施形態の電動工具用充電システム30では、充電器20にバッテリパック10が装着されると(詳しくは、充電器側マイコン76及びバッテリ側マイコン32がそれぞれその装着を認識すると)、充電器側マイコン76及びバッテリ側マイコン32は、充電開始前に相互にデータ通信を行い、そのデータ通信結果に基づいて、通信相手側のマイコンの動作状態を確認する相互動作確認を行う。そして、その相互動作確認によって双方のマイコン32,76が正常であることが確認された上で、充電器側マイコン76がバッテリパック10の充電を開始させる。
充電中も、予め決められた規定時間毎(本実施形態では8秒毎)に、各マイコン32,76の相互間でデータ通信及びそれに基づく相互動作確認を行い、いずれか一方のマイコンの異常が検出された場合は、他方のマイコンが充電を停止させるための所定の充電停止処理(エラー処理)を実行する。
従って、本実施形態の電動工具用充電システム30によれば、相互動作確認によっていずれか一方のマイコンが他方のマイコンの異常を検出した場合にはその検出した側のマイコンがエラー処理(図5参照)を実行してバッテリ31の充電を停止させるため、マイコンの異常によってバッテリパック10内のバッテリ31に悪影響が及ぶのを未然に防止することができる。
なお、マイコンの動作を監視する方法としては、一般的には、ウォッチドッグタイマを用いた監視方法が周知である。これに対し、本実施形態の電動工具用充電システム30における相互動作確認は、ウォッチドッグタイマを用いた監視方法のような単純なものではなく、各マイコン32,76が互いにデータ通信を行い、受信したデータの内容(コード等)に基づいて通信相手側のマイコンが正常であるか否かを判断している。また、所定時間内に所望のデータを受信できたか否かによっても、通信相手側のマイコンが正常であるか否かを判断している。しかも、マイコンの異常が検出された場合、周知のウォッチドッグタイマを用いた監視方法ではマイコンにリセットをかけるのが一般的であるのに対し、本実施形態では、一方のマイコンが通信相手側の他方のマイコンの異常を検出した場合は、その一方のマイコンが充電を停止させるための充電停止処理を実行する。
そのため、本実施形態の電動工具用充電システム30によれば、ウォッチドッグタイマを用いた監視方法に代表される従来の監視方法に比べて、マイコンが異常か否かをより高精度に判断することができ、また、異常が検出された場合にはより適切な対応をとることができる。
また、充電中の相互動作確認は、規定時間毎(本実施形態ではS600において規定されている8秒毎)に繰り返し行われるため、充電中にいずれかのマイコンに異常が生じた場合にその異常を迅速に検出して充電を停止させることができる。
これに加え、本実施形態では、充電開始前においても相互動作確認が行われ、その相互動作確認によって双方のマイコン共に異常が検出されなかった場合に、充電器側マイコン76がバッテリ31の充電制御(充電用スイッチング電源回路72の制御)を行うようにしている。これにより、充電開始前の相互動作確認によっていずれかのマイコンの異常が検出された場合はバッテリ31への充電が開始されないため、マイコンの異常によるバッテリ31への悪影響をより確実且つ十分に防止することができる。
また、各マイコン32,76による相互動作確認は、主として、まずバッテリ側マイコン32から通信要求コードを送信することにより始まり、これに対して充電器側マイコン76が応答(充電制御用データの要求)を行い、これに対してバッテリ側マイコン32がその要求された充電制御用データを出力する、といった流れで行われる。また、上記以外にも、適宜、双方のマイコンがそれぞれ通信相手側のマイコンから受信したデータの内容に基づいて、或いは一定時間以内に受信できたかどうかに基づいて、相互動作確認を行う。
そのため、各マイコンは、通信相手側のマイコンに異常が生じた場合により確実、効率的、且つ迅速にその異常を検出することができる。
しかも、まずバッテリ側マイコン32からの通信要求コードの送信を起点としていることから、仮に充電器側マイコン76に異常が生じてもこれをバッテリ側マイコン32が確実に検出して充電を停止させることができる。
更に、相互動作確認のためのデータ通信は、単に、通信相手側のマイコンの動作状態を確認するためだけに行われるのではなく、充電に必要な情報の送受信も行われる。つまり、充電に必要な情報をデータ通信にて相互に送受信させつつ、そのデータ通信結果に基づいて相互動作確認も併せて行うようにしているのである。そのため、双方のマイコンが互いに通信相手側のマイコンを監視しつつ、充電器側マイコン76よるバッテリ31の充電制御が適切に行われる。
また、充電中に充電器側マイコン76がリセットした場合、充電器側マイコン76は、バッテリ側マイコン32からリセット直前の充電ステータスを取得して、その充電ステータスに基づいてリセット直前の状態から充電制御を再開することができる。
また、充電器側マイコン76は、充電中に各マイコン間で相互動作確認が行われる際は充電を一時停止させるようにしている。そのため、相互動作確認の実行中は少なくとも充電用スイッチング電源回路72の動作に起因するノイズ(スイッチングノイズ等)の影響を排除することができ、相互動作確認を高精度に行うことができる。
[第2実施形態]
次に、第2実施形態の電動工具用充電システムについて、図11に基づいて説明する。図11は、本実施形態の電動工具用充電システムの電気的構成を示す電気回路図である。
本実施形態の電動工具用充電システムは、図1及び図2に示した第1実施形態の電動工具用充電システム30に対し、各マイコン相互間でデータ通信を行うためのハードウェアが一部異なるものである。それ以外の、各マイコン32,76の相互間で行われるデータ通信及び相互動作確認、その他各マイコン32,76それぞれが有する機能全般は、第1実施形態と同じである。
即ち、図11と図2を比較して明らかなように、本実施形態の電動工具用充電システムでは、バッテリパック10が、データ通信のためのデータ入出力端子55、及びクロック入力端子56を備えていない。本実施形態では、バッテリ側マイコン32は、充電器側マイコン76とのデータ通信を、第1実施形態のように専用の端子(データ入出力端子55及びクロック入力端子56)を用いず、充電電力の入力用の端子であるバッテリ側正極端子11(本発明の受電用端子に相当)を用いて行う。そのため、バッテリパック10は、そのバッテリ側正極端子11を介してデータ通信を行うためのデータ送受信回路101を備えており、バッテリ側マイコン32は、このデータ送受信回路101及びバッテリ側正極端子11を介してデータ通信を行う。
充電器20についても同様であり、充電器側マイコン76は、バッテリ側マイコン32とのデータ通信を、第1実施形態のように専用の端子(データ入出力端子85及びクロック入力端子86)を用いず、充電電力の供給用の端子である充電側正極端子21(本発明の供給用端子に相当)を用いて行う。そのため、充電器20は、その充電側正極端子21を介してデータ通信を行うためのデータ送受信回路111を備えており、充電器側マイコン76は、このデータ送受信回路111及び充電側正極端子21を介してデータ通信を行う。
バッテリパック10のデータ送受信回路101及び充電器20のデータ送受信回路111の構成及び動作について、図示は省略するものの、その概要を以下に説明する。
バッテリパック10内のバッテリ31には、その内部にインダクタンス成分(寄生インダクタンス)が含まれている。この内部インダクタンス成分は、大小の差はあるものの、リチウムイオン電池に限らず、各種の電池が有するものである。本実施形態では、このバッテリ31の内部インダクタンス成分に起因するバッテリ電圧Vbatの変化を利用したデータ通信が行われる。
即ち、バッテリパック10のデータ送受信回路101は、その内部に、バッテリ31の正極と負極の間(バッテリ側正極端子11とバッテリ側負極端子12の間)を導通・遮断するためのスイッチ(例えばバイポーラトランジスタ等の半導体スイッチング素子)を備えており、バッテリ側マイコン32から出力されたデータに応じてこのスイッチをオン・オフする。
データ送受信回路101内においてこのスイッチがオンすると、バッテリ31の正極と負極の間が導通してバッテリ31から電流が流れはじめる。このとき、バッテリ31の内部インダクタンス成分に起因してバッテリ電圧Vbatが瞬間的に低下する。データ送受信回路101は、バッテリ側マイコン32からのデータを、そのデータに応じたスイッチのオン・オフによってバッテリ電圧Vbatを変化させることにより(換言すれば、バッテリ電圧Vbatをデータで変調して)、充電器20側へのデータ送信を行うのである。
一方、充電器20のデータ送受信回路111は、バッテリパック10側から送信されてくるデータの受信を、次のように行う。即ち、充電側正極端子21の電圧(より詳しくは充電側正極端子21と充電側負極端子22の間の電圧)を取り込み、フィルタや波形整形回路等の各種回路を用いて、その電圧に含まれているデータ成分を抽出する。そして、その抽出したデータを充電器側マイコン77へ出力する。
ここまで、バッテリパック10側から充電器20側へデータ送信する場合の各データ送受信回路101,111の動作について説明したが、充電器20側からバッテリパック10側へデータ送信する場合についても同様に行われる。即ち、充電器20のデータ送受信回路111は、充電側正極端子21と充電側負極端子22の間を導通・遮断するためのスイッチを備えており、充電器側マイコン77から出力されたデータに応じてスイッチをオン・オフさせる。これにより、充電側正極端子21の電圧(ひいてはバッテリ電圧Vbat)がそのデータに応じて変化するため、その電圧変化によってデータ送信が実現される。
一方、バッテリパック10のデータ送受信回路101は、充電器20のデータ送受信回路111と同様、バッテリ側正極端子11の電圧を取り込み、その電圧に含まれているデータ成分をフィルタや波形整形回路等の各種回路を用いて抽出できるよう構成されており、その抽出されたデータはバッテリ側マイコン32へ出力される。
つまり、各データ送受信回路101,111はいずれも、データ送信の際には、データに応じてバッテリ電圧Vbatを変化させ、データ受信の際には、そのバッテリ電圧Vbatの変化に基づいてデータを抽出(復調)するよう構成されている。
このように構成された本実施形態の電動工具用充電システムによれば、バッテリパック10及び充電器20はいずれも、各マイコン32,76相互間のデータ通信のために専用の端子を持たず、充電電力供給用・入力用の端子を用いてデータ通信を行うことができるよう構成されている。そのため、これら充電電力供給用・入力用の端子とは別にデータ通信用の端子を別途設ける必要がなく、バッテリパック及び充電器の構成の簡素化、コストダウンが可能となる。
[変形例]
以上、本発明の実施の形態について説明したが、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
例えば、上記実施形態では、各マイコン32,76が備えている各タイマ65,95の使用形態として、充電器側マイコン76においては、16秒タイマを設定し、この16秒タイマを基準として適宜処理を実行したが、タイマ95を16秒タイマとして使用するのはあくまでも一例である。バッテリ側マイコン32においても同様であり、タイマ65を8秒タイマとして使用するのはあくまでも一例である。
また、充電器20へのバッテリパック10の装着後(認識後)に各マイコン32,76が待機する時間(本例では1秒)についても、あくまでも一例であり、この待機時間も適宜決めることができる。
また、バッテリ31の構成は、上記実施形態では4個の電池セルが直列に接続された構成であったが、これはあくまでも一例であり、バッテリ31を構成する電池セルの数は特に限定されず、1つの電池セルを備えたバッテリであってもよいし、電池セルが直並列に接続されたものであってもよい。また、1つの電池セルの電圧やバッテリ電圧についても、上記実施形態で例示した値に限定されるものでないことはいうまでもない。
また、上記実施形態では、充電開始前の相互通信を、バッテリパック10から充電器20へ通信要求コードを出力することにより開始するようにしたが、これとは逆に、充電器20側からバッテリパック10側へデータを出力することにより相互通信を開始するようにしてもよい。
また、相互通信の際に送受信されるデータの具体的内容についても、上記実施形態で示した各種データはあくまでも一例であり、具体的なデータの内容は適宜決めることができる。
また、上記実施形態では、バッテリ31を構成する各電池セルがリチウムイオン電池である場合を例に挙げて説明したが、これもあくまでも一例であり、電池セルがリチウムイオン電池以外の他の二次電池であっても、同様に本発明を適用することができる。
10…バッテリパック、11…バッテリ側正極端子、12…バッテリ側負極端子、13…バッテリ側信号端子群、16…バッテリ側ターミナル、17…バッテリ側装着部、20…充電器、21…充電側正極端子、22…充電側負極端子、23…充電側信号端子群、26…充電側ターミナル、27…充電側装着部、28…表示部、30…電動工具用充電システム、31…バッテリ、32…バッテリ側マイコン、33…バッテリ側レギュレータ、34…電圧低下検出用コンパレータ、35…差動増幅回路、36…放電検出用コンパレータ、37…オペアンプ、38…セル選択スイッチ、39…温度検出回路、40…シャットダウンスイッチ、41…電圧低下検出信号入力ポート、42…セル選択信号出力ポート、43…セル電圧信号入力ポート、44…セル温度信号入力ポート、45…放電検出信号入力ポート、46…放電電流信号入力ポート、47…ゲイン切替信号出力ポート、48…シャットダウン信号出力ポート、49…充電器接続検出信号入力ポート、50…充電許可・停止信号出力ポート、51,79…データ通信ポート、52…クロック信号入力ポート、53…充電器接続信号入力端子、54…充電許可・停止信号出力端子、55,85…データ入出力端子、56…クロック入力端子、61,91…CPU、62,92…ROM、63,93…RAM、64,94…NVRAM、65,95…タイマ、71…入力整流回路、72…充電用スイッチング電源回路、73…制御用スイッチング電源回路、74…通電スイッチ、75…リレー駆動回路、76…充電器側マイコン、77…充電制御指令出力ポート、78…バッテリ接続検出ポート、80…クロック信号出力ポート、83…充電器接続信号出力端子、84…充電許可・停止信号入力端子、86…クロック出力端子、101,111…データ送受信回路、B1,B2,…,Bn…電池セル、D1,D2…ダイオード、R1…電流検出抵抗、R2,R3,R4,R5,R6,R7…抵抗、Rx,Ry…分圧抵抗、Tr1…充電器検出用トランジスタ