特許第6022965号(P6022965)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社マキタの特許一覧

<>
  • 特許6022965-電動工具用装置 図000002
  • 特許6022965-電動工具用装置 図000003
  • 特許6022965-電動工具用装置 図000004
  • 特許6022965-電動工具用装置 図000005
  • 特許6022965-電動工具用装置 図000006
  • 特許6022965-電動工具用装置 図000007
  • 特許6022965-電動工具用装置 図000008
  • 特許6022965-電動工具用装置 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6022965
(24)【登録日】2016年10月14日
(45)【発行日】2016年11月9日
(54)【発明の名称】電動工具用装置
(51)【国際特許分類】
   B25F 5/00 20060101AFI20161027BHJP
【FI】
   B25F5/00 C
   B25F5/00 A
【請求項の数】6
【全頁数】17
(21)【出願番号】特願2013-27886(P2013-27886)
(22)【出願日】2013年2月15日
(65)【公開番号】特開2014-155979(P2014-155979A)
(43)【公開日】2014年8月28日
【審査請求日】2015年8月25日
(73)【特許権者】
【識別番号】000137292
【氏名又は名称】株式会社マキタ
(74)【代理人】
【識別番号】110000578
【氏名又は名称】名古屋国際特許業務法人
(72)【発明者】
【氏名】草川 卓也
【審査官】 須中 栄治
(56)【参考文献】
【文献】 特表2007−520180(JP,A)
【文献】 特開昭60−164852(JP,A)
【文献】 特開2008−047025(JP,A)
【文献】 特開平11−250675(JP,A)
【文献】 特開2008−312442(JP,A)
【文献】 特開平04−095141(JP,A)
【文献】 特開平04−033117(JP,A)
【文献】 特表2006−506263(JP,A)
【文献】 特開2004−029992(JP,A)
【文献】 特開2006−146808(JP,A)
【文献】 特開2000−132428(JP,A)
【文献】 実開平07−025433(JP,U)
【文献】 特開2012−078967(JP,A)
【文献】 米国特許第05048017(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25F1/00−5/02
B25B21/00−21/02
G06F11/07
G06F11/28−11/34
G06F11/36
H01M10/42−10/48
H02J7/00−7/12
H02J7/34−7/36
(57)【特許請求の範囲】
【請求項1】
マイクロコントローラからなり、電動工具用バッテリの充電若しくは放電を制御する制御回路と、
時間を計時し、計時時間が第1時間に達すると前記制御回路をリセットする第1のウォッチドッグタイマと、
時間を計時し、計時時間が第2時間に達すると前記制御回路をリセットする第2のウォッチドッグタイマと、
を備え、
前記制御回路は、
所定のプログラムを実行することにより、前記第1のウォッチドッグタイマ及び前記第2のウォッチドッグタイマの計時時間を前記第1時間及び前記第2時間よりも短い時間間隔でクリアし、
しかも、実行中のプログラムの内容に応じて、前記第2のウォッチドッグタイマの動作を停止させることなく、前記第1のウォッチドッグタイマの動作を一時的に停止させて前記第1時間を設定変更するよう構成され、
前記第2のウォッチドッグタイマは、前記第1のウォッチドッグタイマを動作させるクロックよりも周波数の低いクロックにて動作することを特徴とする電動工具用装置。
【請求項2】
前記第2のウォッチドッグタイマは、前記制御回路の内部クロックにて動作することを特徴とする請求項1に記載の電動工具用装置。
【請求項3】
前記第1のウォッチドッグタイマ及び前記第2のウォッチドッグタイマは、それぞれ、前記制御回路の内部クロックにて動作することを特徴とする請求項1又は請求項2に記載の電動工具用装置。
【請求項4】
前記制御回路は、不揮発性メモリへの書き込みまたは消去を行うときに前記第1時間が長くなるよう、前記第1時間を設定変更することを特徴とする請求項1〜請求項3の何れか1項に記載の電動工具用装置。
【請求項5】
前記制御回路は、前記不揮発性メモリの消去回数に応じて、不揮発性メモリへの書き込みまたは消去を行うときの前記第1時間を設定することを特徴とする請求項4に記載の電動工具用装置。
【請求項6】
前記第2のウォッチドッグタイマが計時する第2時間は、前記第1のウォッチドッグタイマが計時する第1時間よりも長い時間に設定されることを特徴とする請求項1〜請求項5の何れか1項に記載の電動工具用装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電動工具用バッテリの充電若しくは放電を制御する制御回路を備えた電動工具用装置に関する。
【背景技術】
【0002】
電動工具には、動力源であるモータを駆動制御するため、マイクロコントローラ(所謂MCU)からなる制御回路が設けられている。そして、この種の制御回路には、制御回路自体の暴走によりモータを正常に駆動制御できなくなるのを防止するため、通常、ウォッチドッグタイマが設けられている(例えば、特許文献1参照)。
【0003】
ウォッチドッグタイマは、所定のクロックをカウントすることで時間を計時し、その計時時間が所定時間に達すると、制御回路をリセットするよう構成されている。そして、制御回路は、プログラムの実行中、ウォッチドッグタイマが制御回路をリセットする計時時間よりも短い時間間隔で、ウォッチドッグタイマをクリアする。
【0004】
従って、制御回路が正常動作しているときには、ウォッチドッグタイマが周期的にクリアされて、制御回路がウォッチドッグタイマによりリセットされることはない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平5−300795号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、電動工具において、制御回路は、電動工具の状態(詳しくは、モータ、バッテリの状態、使用者による操作状態等)を監視し、その監視結果に応じてモータを駆動制御し、必要に応じてモータの制御状態や電動工具の監視状態をメモリに格納する。
【0007】
従って、制御回路がウォッチドッグタイマをクリアする時間間隔は、制御回路が実行中の処理内容によって変動する。
このため、従来、ウォッチドッグタイマによる計時時間(換言すればカウント値)には、制御回路がウォッチドッグタイマをクリアすることのできる最大処理時間に基づき、その最大処理時間よりも長い時間が設定される。
【0008】
しかし、ウォッチドッグタイマの計時時間を、このように設定すると、モータ駆動時に制御回路が暴走した際、制御回路がリセットされるまでの時間が長くなりすぎ、モータの駆動を速やかに停止させることができない、という問題が生じる。
【0009】
また、こうした問題は、電動工具用のバッテリパックに設けられた充・放電制御用の制御回路(MCU)や、電動工具用バッテリの充電器に設けられた充電制御用の制御回路(MCU)においても、同様に発生する。
【0010】
本発明は、こうした問題に鑑みなされたものであり、電動工具、バッテリパック、充電器等の電動工具用装置に設けられる制御回路において、制御回路に設けられたウォッチドッグタイマによる計時時間を制御回路の処理内容に応じて設定できるようにすることを目的とする。
【課題を解決するための手段】
【0011】
かかる目的を達成するためになされた本発明の電動工具用装置には、2つのウォッチドッグタイマ(第1、第2のウォッチドッグタイマ)が備えられている。そして、制御回路(つまり、MCU)は、所定のプログラムを実行することにより、第1、第2のウォッチドッグタイマを、各ウォッチドッグタイマに設定された第1、第2時間よりも短い時間間隔でクリアする。
【0012】
従って、本発明の電動工具用装置によれば、制御回路が暴走して第1、第2のウォッチドッグタイマをクリアできなくなったときに、第1、第2のウォッチドッグタイマの少なくとも一方が制御回路をリセットさせて、電動工具用バッテリの充電若しくは放電を停止させる。
【0013】
また、制御回路は、実行中のプログラムの内容に応じて、第2のウォッチドッグタイマの動作を停止させることなく、第1のウォッチドッグタイマの動作を一時的に停止させて、第1のウォッチドッグタイマが計時する第1時間を設定変更する。
【0014】
従って、本発明の電動工具用装置によれば、例えば、制御回路がメモリへのデータの書き込みを行うときと、データの書き込みを行わないときとで、第1のウォッチドッグタイマが制御回路をリセットするまでの計時時間を変更させることができるようになる。
【0015】
よって、本発明によれば、例えば、電動工具において、バッテリからモータへの放電時(つまりモータ駆動時)に制御回路が暴走した際に、制御回路が第1のウォッチドッグタイマによってリセットされるまでの時間を、従来装置に比べて短くすることができる。
【0016】
また、本発明の電動工具用装置によれば、制御回路が、暴走等によって、第1のウォッチドッグタイマの計時時間(第1時間)の書き換えに失敗したとしても、第2のウォッチドッグタイマは計時動作を継続する。
【0017】
このため、本発明によれば、制御回路が暴走し、第1のウォッチドッグタイマが正常動作しなくなったとしても、制御回路を、第2のウォッチドッグタイマによりリセットさせて、電動工具におけるモータの駆動、或いは、バッテリパック若しくは充電器におけるバッテリへの充・放電、を停止させることができる。
【0018】
ここで、第2のウォッチドッグタイマは、第1のウォッチドッグタイマが正常動作しなくなった場合に、制御回路の暴走を停止させるのに利用されることから、第1のウォッチドッグタイマに比べ、高い信頼性が要求される。
【0019】
従って、2つのウォッチドッグタイマのうち、少なくとも、第2のウォッチドッグタイマは、制御回路の内部クロックにて動作するよう構成することが望ましい。
【0020】
つまり、第2のウォッチドッグタイマを制御回路の内部クロックで動作させるようにすれば、第2のウォッチドッグタイマを外部のクロック発生源に接続する必要がないため、その接続部分で故障が発生するのを防止し、第2のウォッチドッグタイマの信頼性を向上することができる。
【0021】
また、2つのウォッチドッグタイマを制御回路の内部クロックにて動作させる場合には、第2のウォッチドッグタイマは、第1のウォッチドッグタイマを動作させる第1内部クロックよりも周波数の低い第2内部クロックにて動作させるとよい。
【0022】
つまり、ウォッチドッグタイマは、クロックをカウントすることで時間を計時するものであるため、カウントするクロックの周波数が低い程、安定動作をする。このため、制御回路の内部クロックが2種類存在するような場合には、周波数の低い方の内部クロックにて第2のウォッチドッグタイマを動作させることで、第2のウォッチドッグタイマの信頼性を高めることができる。
【0023】
また、制御回路において、不揮発性メモリへの書き込みまたは消去を行うときには、処理時間が長くなることから、制御回路は、不揮発性メモリへの書き込みまたは消去を行うときの第1時間が、不揮発性メモリへの書き込み及び消去を行わないときの第1時間よりも長くなるように、第1時間を設定変更するよう構成するとよい。
【0024】
そして、このようにすれば、制御回路が不揮発性メモリへの書き込みまたは消去を行わないときに第1のウォッチドッグタイマが計時する第1時間を短くして、このとき制御回路が暴走時間した際に、制御回路を速やかにリセットさせることができるようになる。
【0025】
なお、不揮発性メモリは、一般的に、消去を繰り返すと、書き込み・消去に要する時間が長くなる傾向がある。
このため、制御回路が、不揮発性メモリへの書き込みまたは消去を行うときに、第1のウォッチドッグタイマの第1時間を変更する際には、その第1時間を、不揮発性メモリの消去回数に応じて設定するように構成するとよい。
【0026】
また、本発明の電動工具用装置において、第2のウォッチドッグタイマが計時する第2時間は、第1のウォッチドッグタイマが計時する第1時間よりも長い時間に設定しておくことが望ましい。
【0027】
つまり、このようにすれば、第2のウォッチドッグタイマが計時する第2時間を、例えば、従来装置と同様に、制御回路における最大処理時間以上に設定しておくことで、第1のウォッチドッグタイマが正常動作しなくなったとしても、制御回路を確実にリセットさせることができるようになる。
【図面の簡単な説明】
【0028】
図1】実施形態の電動工具及びバッテリパックの回路構成を表すブロック図である。
図2】実施形態の充電器の回路構成を表すブロック図である。
図3】電動工具の制御回路にて実行される制御処理を表すフローチャートである。
図4】バッテリパックの制御回路にて実行される制御処理を表すフローチャートである。
図5】充電器の制御回路にて実行される制御処理を表すフローチャートである。
図6図3図5の制御処理にて実行されるメモリ操作準備処理を表すフローチャートである。
図7図3図5の制御処理にて実行されるWDT時間変更処理を表すフローチャートである。
図8】WDT時間変更処理の変形例を表すフローチャートである。
【発明を実施するための形態】
【0029】
以下に本発明の実施形態を図面と共に説明する。
図1に示すように、本実施形態の電動工具10は、バッテリパック40を着脱自在に装着可能に構成されており、バッテリパック40から電源供給を受けて動作する。
【0030】
電動工具10には、バッテリパック40に接続するための端子として、バッテリ端子12、グランド端子14、及び、通信端子16が備えられており、動力源として、直流モータからなる駆動モータ(以下、単にモータという)20が備えられている。
【0031】
電動工具10にバッテリパック40が装着された際、バッテリ端子12は、バッテリパック40のバッテリ端子42を介してバッテリ50の正極側に接続され、グランド端子14は、バッテリパック40のグランド端子44を介してバッテリ50の負極側に接続される。
【0032】
また、電動工具10内では、バッテリ端子12は、使用者により操作されるトリガスイッチ24を介してモータ20の一端に接続されており、グランド端子14は、駆動回路22を介して、モータ20の他端に接続されている。なお、モータ20には、モータ20のオフ時に誘発する逆方向の電力を回生するためのダイオード(所謂フライホイールダイオード)26が並列接続されている。
【0033】
電動工具10には、トリガスイッチ24がオン状態であるときに、上記各端子12、14を介してバッテリパック40から電源供給を受け、内部回路駆動用の電源電圧(直流定電圧)を生成するレギュレータ28と、レギュレータ28から電源供給を受けてモータ20を駆動制御する制御回路30と、が備えられている。
【0034】
制御回路30は、CPUを中心に構成されたマイクロコントローラ(MCU)にて構成されており、レギュレータ28から電源供給を受けて動作する外部の発振子29からのクロック信号、及び、制御回路30内に設けられた発振子34からのクロック信号により動作する。
【0035】
また、制御回路30には、モータ20を駆動制御するための制御プログラムや制御データが予め格納されたROM36、各種データを一時的に記憶するためのRAM38、及び、所定の制御データを保存するための不揮発性メモリ39が設けられている。
【0036】
また、制御回路30には、CPUの暴走を監視するための2つのウォッチドッグタイマ(以下、WDTと記載する)31、32が設けられている。このうち、WDT31は、外部の発振子29からのクロック信号をカウントすることにより時間を計時し、WDT32は、制御回路30内の発振子34からのクロック信号をカウントすることにより時間を計時する。
【0037】
制御回路30は、バッテリパック40との間で、通信端子16を介して通信を行うことで、バッテリパック40からバッテリ50の温度、バッテリ電圧、バッテリ電流等の状態を取り込み、この状態に基づきモータ20を駆動制御する。
【0038】
次に、バッテリパック40は、上述したバッテリ端子42、グランド端子44に加えて、電動工具10の通信端子16に接続される通信端子46が備えられている。
また、バッテリパック40は、図2に示す充電器70に装着することで、バッテリ端子42及びグランド端子44を介して、充電器70側のバッテリ端子72及びグランド端子74に接続されて、充電器70からバッテリ50を充電できるようにされている。
【0039】
また、バッテリパック40には、充電器70に装着した際、充電器70の電源端子77及び通信端子78に接続される電源端子47及び通信端子48も備えられている。
バッテリパック40は、電動工具用のバッテリ50と、バッテリ50への充放電を制御するための制御回路基板52とを、合成樹脂製の容器内に収納したものである。
【0040】
制御回路基板52には、上記各端子42〜48が接続されると共に、バッテリ50の両端、及び、バッテリ50を構成する複数のバッテリセル同士の接続部が接続されている。
また、制御回路基板52には、レギュレータ53、発振子54、温度測定回路55、電圧測定回路56、電流測定回路57、充電器検出回路59、及び、制御回路60が実装されている。
【0041】
レギュレータ53は、バッテリ50から電源供給を受けて、制御回路60を始めとする上記各部を駆動するための電源電圧(直流定電圧)を生成するものであり、発振子54は、制御回路60を動作させるためのクロック信号を生成するものである。
【0042】
また、温度測定回路55は、バッテリ50の温度を検出するものであり、電圧測定回路56は、バッテリ50の両端電圧(バッテリ電圧)及びバッテリセルの両端電圧(セル電圧)を検出するものである。
【0043】
また、電流測定回路57は、バッテリ50への充電電流及びバッテリ50からの放電電流を検出するものであり、充電器検出回路59は、充電器70の電源端子77に接続される電源端子47の電圧に基づき、バッテリパック40が充電器70に装着されたことを検出するものである。
【0044】
次に、制御回路60は、CPUを中心に構成されたマイクロコントローラ(MCU)にて構成されており、通信端子46を介して電動工具10からモータ20の駆動開始が通知されると、上記各測定回路55、56、57を介してバッテリ50の状態を監視し、異常時に電動工具10にその旨を通知することで、モータ20の駆動を停止させる。
【0045】
また、制御回路60は、充電器検出回路59からの検出信号に基づき、バッテリパック40が充電器70に装着されたことを検知し、充電器70に装着されているときには、温度測定回路55を介してバッテリ温度を検出し、その検出結果を充電器70に送信する。
【0046】
そして、この制御回路60にも、電動工具10の制御回路30と同様、2つのWDT61、62、発振子64、ROM66、RAM68、及び、不揮発性メモリ69が備えられている。
【0047】
なお、2つのWDT61、62のうち、一方のWDT61は、外部の発振子54からのクロック信号をカウントすることにより時間を計時し、他方のWDT62は、制御回路30内の発振子64からのクロック信号をカウントすることにより時間を計時する。
【0048】
次に、充電器70には、図2に示すように、バッテリパック40が装着された際に、バッテリパック40のバッテリ端子42、グランド端子44、電源端子47及び通信端子48にそれぞれ接続されるバッテリ端子72、グランド端子74、電源端子77及び通信端子78が備えられている。
【0049】
また、充電器70には、電源プラグ81を介して商用電源から入力される交流電圧を整流・平滑する整流平滑回路82と、整流平滑回路82からの出力によりバッテリ50への充電電圧及び内部回路駆動用の電源電圧(直流定電圧)Vccをそれぞれ生成するメインコンバータ83及びサブコンバータ86とが備えられている。
【0050】
そして、サブコンバータ86にて生成された電源電圧Vccは、充電器70の制御回路90を始めとする充電器70の内部回路に供給されるだけでなく、電源端子77を介してバッテリパック40にも出力される。
【0051】
また、メインコンバータ83の出力は、バッテリ端子72に接続されており、その接続経路(換言すればバッテリ50への正極側の充電経路)には、充電電圧を測定するための電圧測定回路87、及び、過電圧保護回路85が設けられている。
【0052】
なお、過電圧保護回路85は、充電電圧が過大になったときに、メインコンバータ83内のスイッチング素子をPWM制御するPWM制御IC84に停止指令を出力することで、バッテリ50への充電を停止させるためのものである。
【0053】
また、グランド端子74からメインコンバータ83及びサブコンバータ86に至る負極側の充電経路には、電流測定回路88が設けられている。そして、この電流測定回路88及び電圧測定回路87による測定結果は、制御回路90に入力される。なお、充電器70には、制御回路90に対し、外部からクロック信号を供給する発振子89も設けられている。
【0054】
次に、制御回路90は、通信端子78を介して、バッテリパック40からバッテリ50の状態(バッテリ温度等)を取り込み、その取り込んだバッテリ温度、及び、電流測定回路88、電圧測定回路87により測定された充電電流及び充電電圧に基づき、PWM制御IC84によるメインコンバータ83の制御パラメータ(駆動デューティ等)を設定する。
【0055】
そして、この制御回路90にも、電動工具10の制御回路30、バッテリパック40の制御回路60と同様、2つのWDT91、92、発振子94、ROM96、RAM98、及び、不揮発性メモリ99が備えられている。
【0056】
また、2つのWDT91、92のうち、一方のWDT91は、外部の発振子89からのクロック信号をカウントすることにより時間を計時し、他方のWDT92は、制御回路90内の発振子94からのクロック信号をカウントすることにより時間を計時する。
【0057】
上記のように構成された電動工具10、バッテリパック40及び充電器70において、制御回路30、60及び90は、メインルーチンとして、それぞれ、モータ20の駆動制御、バッテリ50の充放電制御(詳しくはバッテリ充・放電時の状態監視)、及び、バッテリ50の充電制御を実行する。
【0058】
そして、各制御回路30、60、90において、メインルーチン実行時には、メインルーチンによる一連の処理を実行する度に、2つのWDT31及び32、61及び62、91及び92、をそれぞれクリアする。
【0059】
なお、以下の説明では、各制御回路30、60、90において、外部のクロック信号により動作するWDT31、61、91を総称してWDT(1)と呼び、内部のクロック信号により動作するWDT32、62、92をWDT(2)と呼ぶこととする。
【0060】
また、各制御回路30、60、90は、制御処理実行中に、不揮発性メモリ39、69、99へのデータの書き込み若しくは消去を行うときと、不揮発性メモリ39、69、99へのデータの書き込み若しくは消去を行わないときとで、WDT(1)、WDT(2)による計時時間を設定変更する。
【0061】
すなわち、図3に示すように、電動工具10の制御回路30においては、レギュレータ28から電源が投入されて、制御処理を開始すると、S100(Sはステップを表す)にて、WDT(1)及びWDT(2)(ここではWDT31、32)に対し、初期設定を行う。具体的には、各WDT31、32の時間を設定し、タイマをスタートする。
【0062】
次に、S110では、WDT(1)、WDT(2)をクリアする。
そして、続くS120では、トリガスイッチ24からのスイッチ信号を確認し、続くS130にて、トリガの引いた状態を表すAD変換値を取り込む。
【0063】
次に、S140では、不揮発性メモリ39へのデータの書き込み若しくは消去が必要であるか否かを判断して、必要である場合にそのための準備を行うメモリ操作準備処理を実行する。
【0064】
そして、続くS150では、S140でのメモリ操作準備処理に対応して、WDT(1)、WDT(2)の計時時間を設定するWDT時間変更処理を実行する。
また、続くS160では、S120及びS130にて確認したスイッチ信号及びAD変換値に基づき、モータ20を駆動制御するモータ制御処理を実行し、続くS170にて、S140のメモリ操作準備処理にて設定されたメモリ操作(不揮発性メモリ39へのデータの書き込み若しくは消去)を実行し、再度S110に移行する。
【0065】
次に、図4に示すように、バッテリパック40の制御回路60においては、レギュレータ53から電源が投入されて、制御処理を開始すると、S200にて、WDT(1)及びWDT(2)(ここではWDT61、62)に対し、初期設定を行う。具体的には、各WDT61、62の時間を設定し、タイマをスタートする。
【0066】
次に、S210では、WDT(1)、WDT(2)をクリアする。
そして、続くS220では、電動工具10の制御回路30、若しくは、充電器検出回路59から信号が入力されているか否かを判断することにより、バッテリパック40が電動工具10及び充電器70の何れかに装着されているか否かを確認する。
【0067】
次に、S230では、S220にて確認された外部接続状態に応じて、バッテリ50からモータ20への放電、若しくは、充電器70からバッテリ50への充電、に必要な所定の充放電制御を行い、S240に移行する。
【0068】
なお、S230において、バッテリパック40が電動工具10及び充電器70の何れにも接続されていないときには、充放電制御は実施せず、そのままS240に移行する。
次に、S240では、図3のS140と同様、不揮発性メモリ69へのデータの書き込み若しくは消去が必要か否かを判断して、必要である場合にそのための準備を行うメモリ操作準備処理を実行する。
【0069】
そして、続くS250では、図3のS150と同様、S240でのメモリ操作準備処理に対応して、WDT(1)、WDT(2)の計時時間を設定するWDT時間変更処理を実行する。
【0070】
また、続くS260では、図3のS170と同様、S240のメモリ操作準備処理にて設定されたメモリ操作(不揮発性メモリ69へのデータの書き込み若しくは消去)を実行し、再度S210に移行する。
【0071】
また、図5に示すように、充電器70の制御回路90においては、サブコンバータ86から電源が投入されて、制御処理を開始すると、S300にて、WDT(1)及びWDT(2)(ここではWDT91、92)に対し、初期設定を行う。具体的には、各WDT91、92の時間を設定し、タイマをスタートする。
【0072】
次に、S310では、WDT(1)、WDT(2)をクリアする。
そして、続くS320では、バッテリパック40の制御回路60から信号が入力されているか否かを判断することにより、バッテリパック40が充電器70に装着されているか否かを確認し、続くS330にて、バッテリ50への充電制御を実行した後、S340に移行する。
【0073】
なお、この充電制御は、S320にてバッテリパック40が装着されていると判断されているときに実行され、バッテリパック40が装着されていない場合には、そのままS340に移行する。
【0074】
次に、S340では、図3のS140、図4のS240と同様、RAM98の不揮発性メモリ99へのデータの書き込み若しくは消去が必要か否かを判断して、必要である場合にそのための準備を行うメモリ操作準備処理を実行する。
【0075】
そして、続くS350では、図3のS150、図4のS250と同様、S340でのメモリ操作準備処理に対応して、WDT(1)、WDT(2)の計時時間を設定するWDT時間変更処理を実行する。
【0076】
また、続くS360では、図3のS170、図4のS260と同様、S340のメモリ操作準備処理にて設定されたメモリ操作(不揮発性メモリ99へのデータの書き込み若しくは消去)を実行し、再度S310に移行する。
【0077】
次に、図3図5に示す各制御処理において、S140、S240及びS340にて実行されるメモリ操作準備処理、及び、S150、S250及びS350にて実行されるWDT時間変更処理は、それぞれ、図6、及び、図7に示す手順で実行される。
【0078】
図6に示すように、メモリ操作準備処理では、S410にて、不揮発性メモリ39、69、99に書き込む内容(情報)があるか否かを判断し、不揮発性メモリ39、69、99に書き込む内容があれば、S420に移行して、不揮発性メモリ39、69、99に対する書込要求が既にセットされているか否かを判断する。
【0079】
そして、S420にて、不揮発性メモリ39、69、99への書込要求がセットされていないと判断されると、S430に移行して、不揮発性メモリ39、69、99へ書き込むデータ(書込データ)を用意し、S440にて、不揮発性メモリ39、69、99への書込要求をセットした後、S450に移行する。
【0080】
また、S410にて、不揮発性メモリ39、69、99に書き込む内容はないと判断された場合、若しくは、S420にて、書込要求は既にセットされていると判断された場合には、そのままS450に移行する。
【0081】
S450では、不揮発性メモリ39、69、99に書き込まれたデータを消去する必要があるか否かを判断し、データを消去する必要がなければ、当該メモリ操作準備処理を終了する。
【0082】
一方、S450にて、不揮発性メモリ39、69、99に書き込まれたデータを消去する必要があると判断された場合、S460にて、不揮発性メモリ39、69、99の消去要求が既にセットされているか否かを判断し、消去要求がセットされていなければ、当該メモリ操作準備処理を終了する。
【0083】
また、S460にて、不揮発性メモリ39、69、99の消去要求はセットされていないと判断されると、S470に移行して、不揮発性メモリ39、69、99の消去回数をカウントする消去回数カウンタをインクリメントすることで、メモリ消去回数をカウント(記憶)する。
【0084】
そして、続くS480では、不揮発性メモリ39、69、99の消去要求をセットし、当該メモリ操作準備処理を終了する。
なお、図3図5に示す各制御処理において、S170、S260若しくはS360にて実行されるメモリ操作実行処理では、不揮発性メモリ39、69、99への書込要求がセットされていれば、上記S430にて用意された書込みデータを、不揮発性メモリ39、69、99に書き込み、書込要求をクリアする。
【0085】
また、不揮発性メモリ39、69、99の消去要求がセットされていれば、不揮発性メモリ39、69、99に書き込まれているデータを消去し、消去要求をクリアする。
次に、図7に示すように、WDT時間変更処理では、まずS510にて、上記S470にてカウントアップされる不揮発性メモリ39、69、99の消去回数を読み込み、その消去回数に応じて、WDT(1)、WDT(2)による計時時間を補正するための補正時間を設定する。
【0086】
なお、この補正時間は、不揮発性メモリ39、69、99の消去回数が増加するにつれて不揮発性メモリ39、69、99へのデータの書き込み、若しくは、データの消去に要する時間が長くなるため、データの書込時若しくは消去時にWDT(1)、WDT(2)に計時させる時間を補正するための時間である。
【0087】
具体的には、S510では、不揮発性メモリ39、69、99へのデータ書込時にWDT(1)、WDT(2)に計時させる基準時間X、Yを補正するための補正時間ΔX、ΔYと、不揮発性メモリ39、69、99のデータ消去時にWDT(1)、WDT(2)に計時させる基準時間A、Bを補正するための補正時間ΔA、ΔBとを、それぞれ、消去回数が多いほど長くなるよう、演算、若しくは、予め設定されたテーブルを用いて設定する。
【0088】
そして、不揮発性メモリ39、69、99の最小消去時間及び最大消去時間、最小書込時間及び最大書込時間は、不揮発性メモリ39、69、99のカタログ等から知ることができるので、データ消去時の補正時間ΔA、ΔB、データ書込時の補正時間ΔX、ΔYは、例えば、これらの時間の基づき、下記のように設定することができる。
【0089】
ΔA={消去回数×(最大消去時間−最小消去時間)/1000}×K
ΔB={消去回数×(最大消去時間−最小消去時間)/1000}×J
ΔX={消去回数×(最大書込時間−最小書込時間)/1000}×K
ΔY={消去回数×(最大書込時間−最小書込時間)/1000}×J
但し、K、Jは、1より大きい係数であり、KはJよりも大きい値に設定する。これは、不揮発性メモリ39、69、99の消去回数に応じて、WDT(2)の計時時間の補正時間を、WDT(1)の計時時間の補正時間よりも長くすることで、後述の処理で、WDT(1)の計時時間が、WDT(2)の計時時間よりもより短くなるように設定するためである。
【0090】
次に、S520では、不揮発性メモリ39、69、99に対するデータの消去要求がセットされているか否かを判断し、消去要求がセットされていれば、S620に移行し、消去要求がセットされていなければ、S530に移行する。
【0091】
S530では、不揮発性メモリ39、69、99に対するデータの書込要求がセットされているか否かを判断し、書込要求がセットされていれば、S580に移行し、書込要求がセットされていなければ、S540に移行する。
【0092】
そして、S540では、現在、通常WDT設定フラグがセットされているか否かを判断し、通常WDT設定フラグがセットされていなければ、S550に移行し、通常WDT設定フラグがセットされていれば、WDT時間変更処理を終了する。
【0093】
次に、S550では、WDT(1)の計時動作を一旦停止させて、WDT(1)に通常時の計時時間αを設定し、その後、WDT(1)を起動させる、といった手順で、WDT(1)に通常時の計時時間を更新する。
【0094】
また、続くS560では、WDT(2)の計時動作を一旦停止させて、WDT(2)に通常時の計時時間βを設定し、その後、WDT(2)を起動させる、といった手順で、WDT(2)に計時時間を更新する。
【0095】
そして、続くS570では、通常WDT設定フラグをセットすると共に、消去WDT設定フラグ、及び、書込WDT設定フラグをクリアし、WDT時間変更処理を終了する。
なお、計時時間α、βは、不揮発性メモリ39、69、99へのデータの書き込み及びデータの消去をしないときのメインルーチンの最短処理時間に基づき、例えば、最短処理時間に所定の係数を乗じることで予め設定されている。
【0096】
また、計時時間α、βは、WDT(1)の計時時間αがWDT(2)の計時時間βよりも短くなるよう設定されている。
次に、S580では、現在、書込WDT設定フラグがセットされているか否かを判断し、書込WDT設定フラグがセットされていなければ、S590に移行し、書込WDT設定フラグがセットされていれば、WDT時間変更処理を終了する。
【0097】
S590では、WDT(1)の計時動作を一旦停止させて、WDT(1)に、不揮発性メモリ39、69、99へのデータ書込時の計時時間「X+ΔX」を設定し、その後、WDT(1)を起動させる、といった手順で、WDT(1)の計時時間を更新する。
【0098】
また、続くS600では、WDT(2)の計時動作を一旦停止させて、WDT(2)に、不揮発性メモリ39、69、99へのデータ書込時の計時時間「Y+ΔY」を設定し、その後、WDT(2)を起動させる、といった手順で、WDT(2)の計時時間を設定する。
【0099】
そして、続くS610では、通常WDT設定フラグ、及び、消去WDT設定フラグをクリアすると共に、書込WDT設定フラグをセットし、WDT時間変更処理を終了する。
なお、S590、S600において、不揮発性メモリ39、69、99へのデータ書込時の計時時間を設定する際に基準となる基準時間X、Yは、通常時の計時時間α、βに、上述した最小書込時間に基づき設定した時間を加えることにより設定されている。
【0100】
また、このように最小書込時間に加える時間には、例えば、最小書込時間に上述した係数K、Jを乗じた時間を用いることで、WDT(1)に対する時間よりも、WDT(2)に対する時間の方が長くなるように設定されている。
【0101】
そして、データ書込時のWDT(1)、WDT(2)の計時時間は、基準時間X、Yに、S510にて設定された補正時間ΔX、ΔYを加えることにより設定される。
次に、S620では、現在、消去WDT設定フラグがセットされているか否かを判断し、消去WDT設定フラグがセットされていなければ、S630に移行し、消去WDT設定フラグがセットされていれば、WDT時間変更処理を終了する。
【0102】
S630では、WDT(1)の計時動作を一旦停止させて、WDT(1)に、不揮発性メモリ39、69、99からのデータ消去時の計時時間「A+ΔA」を設定し、その後、WDT(1)を起動させる、といった手順で、WDT(1)の計時時間を更新する。
【0103】
また、続くS640では、WDT(2)の計時動作を一旦停止させて、WDT(2)に、不揮発性メモリ39、69、99からのデータ消去時の計時時間「B+ΔB」を設定し、その後、WDT(2)を起動させる、といった手順で、WDT(2)の計時時間を設定する。
【0104】
そして、続くS650では、通常WDT設定フラグ、及び、書込WDT設定フラグをクリアすると共に、消去WDT設定フラグをセットし、WDT時間変更処理を終了する。
なお、S630、S640において、不揮発性メモリ39、69、99からのデータ消去時の計時時間を設定する際に基準となる基準時間A、Bは、通常時の計時時間α、βに、上述した最小消去時間に基づき設定した時間を加えることにより設定されている。
【0105】
また、このように最小書込時間に加える時間には、例えば、最小消去時間に上述した係数K、Jを乗じた時間を用いることで、WDT(1)に対する時間よりも、WDT(2)に対する時間の方が長くなるように設定されている。
【0106】
そして、データ書込時のWDT(1)、WDT(2)の計時時間は、基準時間X、Yに、S510にて設定された補正時間ΔX、ΔYを加えることにより設定される。
以上説明したように、本実施形態の電動工具用装置、つまり、電動工具10、バッテリパック40、及び、充電器70には、モータ20の駆動制御、バッテリ50への充放電制御、若しくは、バッテリ50への充電制御を行う制御回路30、60、90として、2つのWDT(1)、WDT(2)を備えたマイクロコントローラ(MCU)を備える。
【0107】
そして、各制御回路30、60、90は、図7に示したWDT時間変更処理を実行することにより、不揮発性メモリ39、69、99へのデータの書き込み若しくはデータの消去を行わない通常時には、不揮発性メモリ39、69、99へのデータの書き込み若しくはデータの消去を行うときよりも、計時時間が短くなるように、WDT(1)、WDT(2)の計時時間を設定する。
【0108】
また、WDT(1)及びWDT(2)の計時時間については、WDT(1)による計時時間の方が、WDT(2)による計時時間よりも短くなるように、設定される。
従って、本実施形態の電動工具用装置によれば、制御回路30、60、90が暴走した際に、2つのWDT(1)、WDT(2)により、制御回路30、60、90をリセットさせて、制御回路30、60、90の動作を停止させることができる。
【0109】
また、制御回路30、60、90は、WDT(1)及びWDT(2)のうち、一方のWDTの計時時間を設定変更する際には、他方のWDTの動作を停止させない。
このため、WDT(1)又はWDT(2)の計時時間の更新時に、制御回路30、60、90の暴走等によって、計時時間の書き換えに失敗して、WDT(1)又はWDT(2)が正常動作しなくなったとしても、もう一方のWDT(2)又はWDT(1)にて、制御回路30、60、90をリセットすることができる。
【0110】
また、本実施形態では、第1のウォッチドッグタイマであるWDT(1)の計時時間よりも、第2のウォッチドッグタイマであるWDT(2)の計時時間の方が長い時間に設定されることから、制御回路30、60、90の暴走時に最初にリセットするのは、WDT(1)となる。
【0111】
このためWDT(2)は、WDT(1)のバックアップ用として機能し、WDT(1)よりも信頼性が要求される。これに対し、本実施形態では、WDT(2)を制御回路60内の発振子64からのクロック信号をカウントすることで、時間を計時するように構成していることから、外部の発振子54からのクロック信号をカウントするようにした場合に比べて、WDT(2)の信頼性を高めることができる。
【0112】
つまり、WDT(2)をこのように構成すれば、WDT(2)を外部の発振子54からのクロック信号入力ラインに接続する必要がないため、その接続部分で故障が発生するのを防止し、WDT(2)の信頼性を向上することができる。
【0113】
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内にて、種々の態様をとることができる。
例えば、上記実施形態では、WDT時間変更処理において、WDT(1)の計時時間に加えて、WDT(2)の計時時間についても、制御回路が実行する処理内容に応じて設定変更するものとして説明した。
【0114】
これに対し、WDT(2)の計時時間については、メインルーチン1周期の最大時間に基づき一定の固定時間を設定しておき、WDT時間変更処理においては、図8に示すように、WDT(1)の計時時間だけを、設定変更するようにしてもよい。
【0115】
なお、この場合、WDT(1)の計時時間については、WDT(2)の計時時間(固定時間)よりも短い時間となるように設定する。
また、この場合、WDT(2)については、メインルーチンの処理において、周期的にクリアするだけでなく、WDT(1)の計時時間を設定変更したときにも、クリアするようにしてもよい。
【0116】
また、2つのWDT(1)、WDT(2)については、制御回路内の発振子64にて生成されたクロック信号をカウントするように構成してもよい。
そして、この場合、制御回路内に、周波数の異なるクロック信号を生成する発振子、若しくは、クロック制御回路が設けられている場合、信頼性の要求されるWDT(2)については、周波数の低いクロック信号をカウントするように構成するとよい。
【0117】
なお、これは、ウォッチドッグタイマは、カウントするクロックの周波数が低い程、安定動作をするためである。
また、上記実施形態では、2つのWDT(1)、WDT(2)は、制御回路を構成するMCUに内蔵されるものとして説明したが、制御回路(MCU)とは別体で構成されていてもよく、或いは、一方が制御回路(MCU)に内蔵され、他方が制御回路(MCU)と別体で構成されていてもよい。
【0118】
また、図7若しくは図8に示すWDT時間変更処理において設定変更するWDT(1)、WDT(2)の計時時間については、計算により求めるようにしても良く、予め計時時間算出用のテーブルを作成しておき、そのテーブルを参照して設定するようにしてもよい。
【符号の説明】
【0119】
10…電動工具、20…モータ、22…駆動回路、24…トリガスイッチ、28,53…レギュレータ、29,54,89…発振子、30,60,90…制御回路(MCU)、31,61,91…WDT(1)、32,62,92…WDT(2)、34,64,94…発振子、36,66,96…ROM、38,68,98…RAM、39,69,99…不揮発性メモリ、40…バッテリパック、50…バッテリ、52…制御回路基板、55…温度測定回路、56,87…電圧測定回路、57,88…電流測定回路、59…充電器検出回路、70…充電器、81…電源プラグ、82…整流平滑回路、83…メインコンバータ、84…PWM制御IC、85…過電圧保護回路、86…サブコンバータ。
図1
図2
図3
図4
図5
図6
図7
図8