(57)【要約】【課題】電源電圧に応じて出力が変化する外付け回路を利用することなく、マイクロコンピュータの演算処理にて乱数を生成することのできる乱数発生装置を提供する。【解決手段】バッテリパックを充電する充電器のマイコンには、メイン発振回路とサブ発振回路が備えられる。サブ発振回路は、メイン発振回路に比べ温度依存性が高く、タイマにて時間を計時するのに利用される。マイコンは、温度依存性の低いメイン発振回路からのクロックで動作し、バッテリパック認証のために乱数を生成する。乱数生成時、マイコンは、タイマによるサブクロックのカウントを開始し(S110)、その後、タイマのカウント値が所定値に達し、タイマ割込があるまでの時間を、変数ｉをカウントすることで計測する(S120，S130)。タイマスタート後タイマ割込が発生する迄の時間は、サブ発振回路の温度により変化するため、メインクロックを用いて計測することで、乱数を生成できる。【選択図】図２
2013149079.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコンピュータと、
所定の温度特性を有し、前記マイクロコンピュータの動作の基準となるクロックを発生する第１発振回路と、
前記第１発振回路とは異なる温度特性を有し、前記マイクロコンピュータからの指令に従い動作する電子回路と、
を備え、前記マイクロコンピュータは、前記第１発振回路からのクロックに基づき、前記電子回路の動作時間を計測し、該計測結果に基づき乱数を発生することを特徴とする乱数発生装置。
【請求項２】
前記電子回路は、前記第１発振回路よりも温度依存性の高い第２発振回路で構成され、
前記マイクロコンピュータは、前記第２発振回路の発振回数を、前記第１発振回路からのクロックに基づき計測することで、前記乱数を生成することを特徴とする請求項１に記載の乱数発生装置。
【請求項３】
前記電子回路は、抵抗とコンデンサとを直列に接続してなる充放電回路で構成され、
前記マイクロコンピュータは、前記充放電回路において前記コンデンサの両端電圧が０Ｖから規定電圧に達するまでの時間を、前記第１発振回路からのクロックに基づき計測することで、前記乱数を生成することを特徴とする請求項１に記載の乱数発生装置。
【請求項４】
請求項１〜請求項３の何れか１項に記載の乱数発生装置は、電動工具、電動作業機、電動工具又は電動作業機に装着して使用されるバッテリ、及び、該バッテリを充電するための充電器、の少なくとも一つに実装されることを特徴とする乱数発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータの動作によって乱数を発生する乱数発生装置に関する。
【背景技術】
【０００２】
バッテリから電源供給を受けて動作する電動機器（電動工具、電動作業機等）や、バッテリへの充電を行う充電器では、正規のバッテリではない不正なバッテリが装着されると、機器が故障したりバッテリが異常発熱したりすることがある。
【０００３】
そこで、この種の機器では、バッテリが装着された際、乱数を用いて、装着されたバッテリが適正品であるか否かを判定（認証）することが知られている（例えば、特許文献１参照）。
【０００４】
そして、この特許文献１では、乱数として、Ａ／Ｄ変換器で得られるＡ／Ｄ変換値のノイズビット（下位ビット）を用いることが提案されている。
また、乱数を発生する乱数発生回路として、不安定な電源電圧を受けて動作する電圧制御発振器からの発振出力を所定期間カウントし、そのカウント値を乱数として出力するよう構成されたものも知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第７９４１８６５号明細書
【特許文献２】特許第３４９２４９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記従来の乱数発生は、Ａ／Ｄ変換器や電圧制御発振器にて電源電圧の変動によって生じる特性変化を利用するものであるため、安定化電源から安定した電源供給を受けて動作するマイクロコンピュータ単体では、乱数を発生するのが難しいという問題があった。
【０００７】
また、マイクロコンピュータに対しＡ／Ｄ変換器や電圧制御発振器を外付けし、その電源をマイクロコンピュータとは異なる不安定なものにすれば、マイクロコンピュータの演算処理にて乱数を発生させることはできる。
【０００８】
しかし、このようにすると、乱数発生装置としての構成が複雑になり、コストアップを招くという問題がある。
本発明は、こうした問題に鑑みなされたものであり、電源電圧の変動によって出力が変化する外付け回路を利用することなく、マイクロコンピュータの演算処理にて乱数を生成することのできる乱数発生装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的を達成するためになされた請求項１に記載の乱数発生装置は、マイクロコンピュータと、マイクロコンピュータの動作の基準となるクロックを発生する第１発振回路と、第１発振回路とは異なる温度特性を有する電子回路とで構成される。
【００１０】
そして、マイクロコンピュータが、第１発振回路からのクロックに基づき、電子回路の動作時間を計測することで、乱数を発生する。
つまり、本発明の乱数発生装置は、上述した従来装置のように、電源電圧の変動を利用して乱数を発生するのでは無く、動作クロック発生用の第１発振回路とマイクロコンピュータからの指令に従い動作する電子回路との温度特性の違いを利用し、乱数を発生する。
【００１１】
従って、本発明によれば、マイクロコンピュータの内蔵回路若しくは周辺回路を利用し、マイクロコンピュータの演算処理にて乱数を生成することができ、従来のように電源電圧の変動によって出力が変化する外付け回路を利用する必要がない。
【００１２】
よって、本発明によれば、乱数発生装置を簡単且つ低コストで実現できる。
ここで、本発明の乱数発生装置は、請求項２に記載のように、電子回路を、第１発振回路よりも温度依存性の高い第２発振回路で構成し、マイクロコンピュータが、第２発振回路の発振回数を第１発振回路からのクロックに基づき計測することで、乱数を生成するようにしてもよい。
【００１３】
つまり、マイクロコンピュータにおいては、動作の基準となるクロックを発生するメイン発振回路とは別に、スリープモード等でウェイクアップタイミングを検出するためのサブクロックを発生するサブ発振回路が設けられることがある。
【００１４】
そして、サブ発振回路は、メイン発振回路に比べて精度が要求されず、通常、メイン発振回路よりも温度依存性が高いものが使用される。
そこで、請求項２に記載の乱数発生装置では、マイクロコンピュータにこうしたサブ発振回路が設けられている場合に、サブ発振回路を第２発振回路として利用することで、乱数を生成するようにするのである。
【００１５】
この結果、請求項２に記載の乱数発生装置によれば、サブ発振回路を備えたマイクロコンピュータにおいて、乱数発生用の外付け回路を設けることなく、乱数を生成することができるようになり、乱数発生装置を低コストで実現できる。
【００１６】
一方、電子回路は、請求項３に記載のように、抵抗とコンデンサとを直列に接続してなる充放電回路にて構成してもよい。
この場合、マイクロコンピュータは、充放電回路のコンデンサの両端電圧が０Ｖから規定電圧に達するまでの時間を、第１発振回路からのクロックに基づき計測することで、乱数を生成するようにすればよい。
【００１７】
そして、このようにすれば、マイクロコンピュータに充放電回路を設ける必要があるが、充放電回路は抵抗とコンデンサとで実現できるため、従来のように、Ａ／Ｄ変換器や電圧制御発振器を外付けする場合に比べて、乱数発生装置を低コストで実現できる。
【００１８】
また、マイクロコンピュータにプルアップ抵抗が接続された出力ポートがある場合、その出力ポートにコンデンサを接続するだけで、充放電回路を構成できるため、充放電回路を利用する乱数発生装置を、より簡単に構成できる。
【００１９】
また、本発明（請求項１〜請求項３）の乱数発生装置は、請求項４に記載のように、電動工具、電動作業機、電動工具又は電動作業機に装着して使用されるバッテリ、及び、該バッテリを充電するための充電器、の少なくとも一つに実装するとよい。
【００２０】
そして、このようにすれば、電動工具、電動作業機、若しくは充電器において、バッテリが正規のものであるか否かを判定（認証）するのに用いられる乱数を、これらの機器若しくはバッテリ自身に内蔵されたマイクロコンピュータにより生成することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態のバッテリパック及び充電器の概略構成を表すブロック図である。
【図２】第１実施形態のマイクロコンピュータにて実行される乱数生成処理を表すフローチャートである。
【図３】乱数生成時のタイマの動作を表すタイムチャートである。
【図４】第１実施形態の乱数生成処理の変形例を表すフローチャートである。
【図５】第２実施形態のマイクロコンピュータのポート及びポートへの接続回路を表す説明図である。
【図６】第２実施形態のマイクロコンピュータにて実行される乱数生成処理を表すフローチャートである。
【図７】乱数生成時のマイクロコンピュータのポートの電圧変化を表すタイムチャートである。
【図８】マイクロコンピュータのメイン発振回路、サブ発振回路、及び、ポートに接続された充放電回路の温度特性の違いを説明する説明図である。
【図９】第２実施形態の乱数生成処理の変形例を表すフローチャートである。
【発明を実施するための形態】
【００２２】
以下に本発明の実施形態を図面と共に説明する。
［第１実施形態］
本実施形態の乱数発生装置は、バッテリパック１０が装着されたとき、バッテリパック１０が正規のものか否かを判定（認証）し、正規のものであると判断したとき、バッテリパック１０に対する充電を開始する、充電器３０の一機能として実現される。
【００２３】
図１に示すように、バッテリパック１０は、多数のバッテリセルを直列に接続してなるバッテリ２０と、このバッテリ２０の正極側及び負極側を、電源供給の対象となる電動工具や電動作業機、若しくは、充電器３０に接続するための電源端子１２、１４を備える。
【００２４】
また、バッテリパック１０には、バッテリ２０の電圧を検出する電圧検出部２６、バッテリ２０から給電対象機器（電動工具や電動作業機）への放電電流及び充電器３０からバッテリ２０への充電電流を検出する電流検出部２４が設けられている。
【００２５】
そして、これら各部２６、２４からの検出信号は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を中心に構成されたマイクロコンピュータ２８に入力される。以下、マイクロコンピュータを、単にマイコンと記載する。
【００２６】
マイコン２８は、上記各部２６、２４からの検出信号に基づきバッテリ２０の状態や充放電電流を監視し、その監視結果を給電対象機器或いは充電器３０に通知することで、バッテリ２０の充放電を適正に実施させるためのものである。
【００２７】
このため、バッテリパック１０には、マイコン２８を、給電対象機器或いは充電器３０側の制御回路であるマイコンに接続するための接続端子１６も設けられている。
また、この接続端子１６には、データ入出力端子１７、定電圧端子３８、グランド端子３７が備えられている。
【００２８】
ここで、データ入出力端子１７は、マイコン２８が給電対象機器或いは充電器３０側のマイコンとの間でデータを送受信するための端子である。
また、定電圧端子１８は、マイコン２８に設けられた定電圧電源回路（図示せず）にて生成された電源電圧（定電圧）を給電対象機器側のマイコンに供給したり、充電器３０側のマイコン５０から供給される電源電圧（定電圧）をマイコン２８に入力したりするための端子である。
【００２９】
また、グランド端子１９は、マイコン２８と給電対象機器或いは充電器３０側のマイコンとのグランド電位を一致させるための端子であり、バッテリ２０の負極側に接続される１４に接続されている。
【００３０】
なお、バッテリパック１０において、バッテリ２０の正極側から電源端子１２に至る電流経路には、過電流により溶断するヒューズ２２が設けられている。
一方、充電器３０は、バッテリパック１０が装着された際に、バッテリパック１０の電源端子１２、１４及び接続端子１６にそれぞれ接続するための電源端子３２、３４及び接続端子３６が設けられている。
【００３１】
そして、電源端子３２、３４には、外部電源（図示せず）から電源供給を受けてバッテリパック１０内のバッテリ２０を充電する充電回路４０が接続され、接続端子３６には、充電回路４０を制御するマイコン５０が接続されている。
【００３２】
マイコン５０は、接続端子３６内のデータ入出力端子３７及びバッテリパック１０側のデータ入出力端子１７を介して、バッテリパック１０側のマイコン２８からバッテリ電圧や充電電流を取得し、充電回路４０を制御する。
【００３３】
また、マイコン５０は、充電回路４０内に設けられた定電圧電源回路（図示せず）から電源電圧（定電圧）を受けて動作する。そして、マイコン５０は、その電源電圧（定電圧）を、接続端子３６内の定電圧端子３８及びバッテリパック１０側の定電圧端子１８を介して、バッテリパック１０側のマイコン２８に供給する。
【００３４】
また、マイコン５０のグランド電位は、接続端子３６内のグランド端子３９及びバッテリパック１０側のグランド端子１９を介して、バッテリパック１０側のマイコン２８のグランド電位と同電位にされる。なお、グランド端子１９は、負極側の電源端子３４にも接続されている。
【００３５】
充電器３０のマイコン５０には、マイコン５０の動作の基準となるメインクロックを発生するメイン発振回路５２に加えて、メインクロックよりも低周波数のサブクロックを発生するサブ発振回路５４や、このサブ発振回路５４からの出力クロックをカウントすることで時間を計時するタイマ５６が内蔵されている。
【００３６】
メイン発振回路５２は、温度変化の影響を受けることなく常時安定してメインクロックを発生できるように、発振源としてセラミック発振子を備え、発振周波数は、例えば、数ＭＨｚに設定されている。
【００３７】
サブ発振回路５４は、例えば、マイコン５０がスリープモードにあるとき、定期的にウェイクアップするのに必要な時間をタイマ５６に計時させるのに使用されるものであり、メイン発振回路５２に比べて、発振周波数の精度は要求されない。
【００３８】
このため、サブ発振回路５４には、メイン発振回路５２に比べて温度依存性が高く、温度変化によって発振周波数は変動し易いものの、より低コストで実現し得るＣＲ発振回路等が利用され、しかも、その発振周波数は、例えば、数十ｋＨｚに設定されている。
【００３９】
なお、バッテリパック１０側のマイコン２８にも、これらの発振回路やタイマが内蔵されるが、本発明に関わる主要部ではないので、説明は省略する。
次に、充電器３０側のマイコン５０は、乱数に所定の暗号化データを付加した認証用データをバッテリパック１０側のマイコン２８に送信し、その後、マイコン２８から認証用データを元に生成された回答データを取得し、その回答データに基づき、バッテリパック１０の認証を行う。
【００４０】
そして、充電器３０のマイコン５０は、こうした認証処理に必要な乱数を、サブ発振回路５４及びタイマ５６を用いて生成する。
以下、充電器のマイコン５０にて乱数を生成するために実行される乱数生成処理を、図２に示すフローチャートに沿って説明する。
【００４１】
なお、乱数を用いたバッテリパック１０の認証処理については、例えば、特開２０１１−１３５７４０号公報等に詳しく説明されており、本発明の主要部でもないので、ここでは説明を省略する。
【００４２】
図２に示すように、マイコン５０（詳しくはＣＰＵ）にて乱数生成処理が開始されると、まずＳ１１０（Ｓはステップを表す）にて、変数ｉに初期値「０」を設定し、タイマ５６による計時を開始（タイマスタート）する。
【００４３】
なお、タイマ５６は、図３に示すように、計時開始（タイマスタート）後、サブクロックのカウント値が所定値（図では最大値）に達すると、マイコン５０に対し割込信号を発生するものとする。
【００４４】
次に、続くＳ１２０では、変数ｉをインクリメント（＋１）した後、Ｓ１３０に移行し、タイマ５６からの割込があったか否かを判断する。
そして、タイマ５６からの割込がなければ、再度Ｓ１２０に移行することで、変数ｉをインクリメントし、タイマ５６からの割込があれば、Ｓ１４０に移行し、変数ｉの値を乱数として設定した後、当該乱数生成処理を終了する。
【００４５】
つまり、本実施形態の乱数生成処理では、Ｓ１２０の処理は、Ｓ１１０にてタイマ５６による計時を開始（タイマスタート）させた後、タイマ５６によるカウント値が所定値に達して、タイマ割込が発生する迄の間、変数ｉを繰り返しインクリメントすることになる。
【００４６】
そして、マイコン５０は、メイン発振回路５２からのメインクロックにて動作することから、Ｓ１２０にて繰り返しインクリメントされる変数ｉの値は、タイマスタート後、タイマ割込が発生するまでの間に発生したメインクロックの数に対応する。
【００４７】
従って、本実施形態では、タイマスタート後、タイマ割込が発生するまでの時間を、メインクロックを用いて計測していることになる。
そして、その計測結果である変数ｉの値は、サブ発振回路５４からのサブクロックの発生周期（発振周波数）によって変化し、その発生周期（発振周波数）は、サブ発振回路５４の温度特性（温度依存性：大）により、周囲温度に応じて大きく変化する。
【００４８】
このため、上記のように生成される乱数は、乱数生成時の周囲温度によって大きく変化し、バッテリパック認証用の乱数として使用することができる。
このように、本実施形態では、充電器３０に設けられたマイコン５０内のメイン発振回路５２とサブ発振回路５４の温度特性の違いを利用し、サブ発振回路５４から出力されるサブクロックの数が所定値に達するまでの時間を、メインクロックを利用して計測することで、乱数を生成する。
【００４９】
このため、本実施形態によれば、従来のように、電源電圧の変動によって出力が変化するＡ／Ｄ変換器や電圧制御発振器をマイコン５０に外付けすることなく、マイコン５０に内蔵された既存の回路を利用して、乱数を生成できることになる。従って、本実施形態によれば、乱数発生装置としての機能を、マイコン５０の乱数生成処理にて、極めた簡単にしかも低コストに実現することができる。
（変形例）
ところで、本実施形態では、タイマ５６によるサブクロックのカウント値が所定値に達するまでの時間を、メインクロックで動作するマイコン５０側で計測することにより、乱数を生成するものとして説明した。
【００５０】
これに対し、乱数生成処理を、図４に示すように変更し、まず、マイコン５０が、タイマ５６に対しサブクロックのカウントを開始させ（Ｓ２１０）、その後、メインクロックをカウントすることで、そのカウント値で決まる一定時間を計測し（Ｓ２２０）、一定時間の計測が終了すると、タイマ５６によるカウント値を乱数として設定する（Ｓ２３０）、ようにしてもよい。
【００５１】
つまり、このようにしても、マイコン５０内のメイン発振回路５２とサブ発振回路５４の温度特性の違いを利用し、乱数を生成することができる。
なお、本実施形態において、充電器３０のマイコン５０は、本発明のマイクロコンピュータに相当し、メイン発振回路５２は、本発明の第１発振回路に相当し、サブ発振回路５４は、本発明の電子回路（詳しくは請求項２に記載の第２発振回路）に相当する。
［第２実施形態］
次に、本発明の第２実施形態について説明する。
【００５２】
本実施形態の乱数発生装置は、第１実施形態と同様、バッテリパック１０への充電を行う充電器３０の一機能として実現されるものである。
そして、第１実施形態と異なる点は、マイコン５０に内蔵されたメイン発振回路とサブ発振回路の温度特性の違いを利用するのではなく、図５に示すように、マイコン５０のポートＰ１に接続される抵抗Ｒ１とコンデンサＣ１とからなる充放電回路６０を利用する点である。
【００５３】
つまり、充放電回路６０は、抵抗Ｒ１とコンデンサＣ１との直列回路からなり、抵抗Ｒ１の一端がマイコン５０の電源ラインに接続され、コンデンサＣ１がマイコンのグランドに接地され、抵抗Ｒ１とコンデンサＣ１との接続点が、マイコン５０のポートＰ１に接続されている。
【００５４】
このように構成された充放電回路６０は、マイコン５０側でポートＰ１をＬｏｗレベル（グランド電位）にすれば、コンデンサＣ１に蓄積された電荷が放電され、ポートＰ１をオープン（ハイインピーダンス：Ｈｉｚ）にすれば、抵抗Ｒ１を介してコンデンサＣ１が充電される。
【００５５】
そして、抵抗Ｒ１の抵抗値及びコンデンサＣ１の容量は、温度によって変化することから、コンデンサＣ１の充電時の時定数も、温度によって変化する。
そこで、本実施形態では、この時定数の変化によって生じるコンデンサＣ１充電時のポートＰ１の電圧の立上がり特性を、マイコン５０が計測することで、乱数を生成するようにされている。
【００５６】
以下、このようにマイコン５０が乱数を生成する手順を、図６に示すフローチャートに沿って説明する。
図６に示すように、マイコン５０（詳しくはＣＰＵ）にて乱数生成処理が開始されると、まずＳ３１０にて、変数ｉに初期値「０」を設定し、ポートＰ１をＬｏｗレベルからハイインピーダンスＨｉｚに切り換えることで、コンデンサＣ１への充電を開始させる。
【００５７】
次に、続くＳ３２０では、変数ｉをインクリメント（＋１）した後、Ｓ３３０に移行し、ポートＰ１の電圧が所定の閾値電圧ＨＩ以上になった否かを判定し、ポート電圧が閾値電圧ＨＩ以上になっていなければ、再度Ｓ１２０に移行し、変数ｉをインクリメントする。
【００５８】
一方、Ｓ３３０にて、ポートＰ１の電圧が閾値電圧ＨＩ以上になったと判断すると、Ｓ１４０に移行し、変数ｉの値を乱数として設定した後、当該乱数生成処理を終了する。
つまり、図７に示すように、Ｓ３１０にて、ポートＰ１をＬｏｗレベルからハイインピーダンスＨｉｚに切り換えると、コンデンサＣ１への充電が開始され（時点ｔ１）、ポートＰ１の電圧が上昇する。
【００５９】
そして、ポートＰ１の電圧が閾値電圧ＨＩに達するまでの時間は、充放電回路６０の時定数（換言すれば充放電回路６０の温度）によって変化する。
そこで、本実施形態では、ポートＰ１の電圧（換言すればコンデンサＣ１の両端電圧）が０Ｖから閾値電圧ＨＩに達するまでの時間を、メインクロックを用いて変数ｉとして計測し、その値を乱数とするのである。
【００６０】
従って、本実施形態によれば、マイコン５０のポートＰ１に、コンデンサＣ１と抵抗Ｒ１とからなる充放電回路６０を接続する必要があるが、従来のように、マイコン５０にＡ／Ｄ変換器や電圧制御発振器を外付けする必要がないので、極めた簡単な回路構成にて乱数を生成できることになる。
【００６１】
なお、本実施形態では、マイコン５０のポートＰ１に接続された充放電回路６０を用いて乱数を生成するものとして説明したが、図５に示すように、マイコン５０内でプルアップ抵抗Ｒ２を介して電源ラインに接続されたポートＰ２が存在する場合には、このポートＰ２に、一端がグランドに接地されたコンデンサＣ２を設けることで、乱数を生成するようにしてもよい。
【００６２】
つまり、マイコン５０内でプルアップ抵抗Ｒ２が接続されたポートＰ２は、トランジスタＱ２を介して、ＬｏｗレベルからハイインピーダンスＨｉｚに切り換えることができる。
【００６３】
従って、この場合、ポートＰ２にコンデンサＣ２を接続すれば、コンデンサＣ２とプルアップ抵抗Ｒ２とを充放電回路として利用し、ポートＰ１に充放電回路６０を接続した場合と同様の手順で、乱数を生成することができる。
（変形例）
ところで、サブ発振回路５４から出力されるサブクロックの周期は、メイン発振回路５２から出力されるメインクロックの周期に比べ、温度依存性が高く、図８に示すように、温度変化に対する変化割合が大きくなる。
【００６４】
これに対し、コンデンサＣ１と抵抗Ｒ１（又はコンデンサＣ２とプルアップ抵抗Ｒ２）にて構成される充放電回路のコンデンサ充電時の時定数は、抵抗Ｒ１（又はプルアップ抵抗Ｒ２）の温度特性によって、温度変化に対するサブクロックの周期の変化割合に比べて、より大きい変化割合で変化する。
【００６５】
従って、上記のように、ポートＰ１（又はポートＰ２）の電圧が、０Ｖから閾値電圧ＨＩに達するまでのコンデンサＣ１（又はコンデンサＣ２）の充電時間を計測して、乱数を生成する際には、サブ発振回路５４とタイマ５６を利用するようにしてもよい。
【００６６】
つまり、図９に示すように、乱数生成処理においては、まず、Ｓ４１０にて、タイマ５６に対しサブクロックのカウントを開始させると共に、ポートＰ１（又はポートＰ２）をＬｏｗレベルからハイインピーダンスＨｉｚに切り換えることで、コンデンサＣ１（又はコンデンサＣ２）への充電を開始させる。
【００６７】
また、続くＳ４２０では、ポートＰ１（又はポートＰ２）の電圧が所定の閾値電圧ＨＩ以上になった否かを判断することにより、ポート電圧が閾値電圧ＨＩ以上になるのを待ち、ポート電圧が閾値電圧ＨＩ以上になると、Ｓ４３０にて、タイマ５６からカウント値を読み込み、その値を乱数として設定する。
【００６８】
乱数生成処理をこのように実行するようにしても、充放電回路を利用して乱数を生成することができる。
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内にて、種々の態様をとることができる。
【００６９】
例えば、上記実施形態では、バッテリパック１０が装着される充電器３０に、本発明の乱数発生装置としての機能を組み込んだ場合について説明したが、本発明の乱数発生装置は、マイコンを備えた装置であれば、上記実施形態と同様に適用することができ、例えば、バッテリパック１０のマイコン２８に組み込むこともできるし、このバッテリパック１０から電源供給を受ける電動工具や電動作業機に設けられたマイコンの一機能として実現することもできる。
【００７０】
また、第２実施形態では、コンデンサＣ１（又はＣ２）への充電時間を計測することにより乱数を生成するものとして説明した。これに対し、例えば、コンデンサＣ１（又はＣ２）を所定電圧若しくは満充電状態になるまで一旦充電し、その後、コンデンサ電圧が閾値電圧以下になるまでの放電時間を計測することにより、乱数を生成するようにしてもよい。そして、このようにしても、第２実施形態と同様の効果を得ることができる。
【符号の説明】
【００７１】
１０…バッテリパック、１２，１４…電源端子、１６…接続端子、１７…データ入出力端子、１８…定電圧端子、１９…グランド端子、２０…バッテリ、２２…ヒューズ、２４…電流検出部、２６…電圧検出部、２８…マイコン、３０…充電器、３２，３４…電源端子、３６…接続端子、３７…グランド端子、３８…定電圧端子、４０…充電回路、５０…マイコン、５２…メイン発振回路、５４…サブ発振回路、５６…タイマ、６０…充放電回路、Ｃ１，Ｃ２…コンデンサ、Ｒ１…抵抗、Ｒ２…プルアップ抵抗、Ｐ１，Ｐ２…ポート、Ｑ２…トランジスタ。
【図１】
2013149079.tif 000003
【図２】
2013149079.tif 000004
【図３】
2013149079.tif 000005
【図４】
2013149079.tif 000006
【図５】
2013149079.tif 000007
【図６】
2013149079.tif 000008
【図７】
2013149079.tif 000009
【図８】
2013149079.tif 000010
【図９】
2013149079.tif 000011