スリープを増やすだけでよい?|省電力・電池寿命・センサの動作設計
電池を長持ちさせるために、機器を長く眠らせればよいのでしょうか。眠っている間の見逃しや、起きてから測定できるまでの時間も考える必要があります。消費電力と、守るべき応答を一緒に設計しましょう。
事例:一秒ごとに計測して送信する
センサ端末は1秒周期で起動し、計測して送信します。動作中40msの電池側電流は10mA、残り960msのスリープ中は10µAです。使用できる電池容量を1000mAhとします。
電圧は一定とし、40msには復帰・センサ安定待ち・計測・送信を含めます。最初の寿命計算では自己放電や温度劣化などを無視します。各電流は同じ電池側の測定値です。
電池容量の見積りには時間平均、電源が耐えられるかには瞬間のピークも必要です。
平均電流は、時間の比率で計算する
10µAは0.01mAです。平均電流は(10×40+0.01×960)/1000=0.4096mAとなります。単純に10と0.01を二で割ると、二つの状態の長さの違いを無視してしまいます。
平均電流 = Σ(各モードの電流 × その時間) ÷ 周期
事例: (10mA×40ms + 0.01mA×960ms) ÷ 1000ms
= 0.4096mA一定電圧Vでの平均電力ならV×平均電流です。電源変換の効率が異なる位置の値を使う場合は、電池側に換算する必要があります。MCUだけの電流と端末全体の電流を混ぜないようにします。
1000mAhで、何時間動く?
同じ電池側の平均電流で割ると、1000÷0.4096=約2441時間、約102日です。容量のmAhを電流mAで割るので、結果の単位は時間になります。
これは指定した条件の理想的な見積りで、実機の寿命保証ではありません。放電条件、温度、自己放電、変換効率、終止電圧などを加味して余裕を持たせ、測定で確かめます。
項目 | 計算・条件 | 値 |
|---|---|---|
平均電流 | 10×0.04+0.01×0.96 | 0.4096mA |
寿命 | 1000mAh÷0.4096mA | 約2441時間 |
日数 | 2441時間÷24 | 約102日 |
動作時間の比率 | 40÷1000 | 4% |
電池の公称容量が同じでも、送信時の大きな電流で電圧が下がり、先に停止する場合があります。ピーク電流と電源回路、実際に使用できる容量も別に確認します。
何を止めて、何を動かしておく?
- スリープ
CPU等を止め、必要な時計や検知回路を残すモードがあります。残る機能は機種と設定で異なります。
- 復帰源
タイマー、外部割込み、通信など、眠っている状態を解除できる要因です。
- 周辺機器
センサや無線が動いたままだと、MCUの電流だけを減らしても端末全体の削減が小さくなります。
深いスリープほど必ずよいわけではありません。保持されるRAM、利用できる時計、復帰時間、外部信号の検知が違うため、必要な機能を残せるモードを選びます。
端末を眠らせる前に送信完了や保存を確認し、復帰後は必要な状態を再設定します。センサの電源を切ると、安定待ちや校正の再実施が必要な場合もあります。
起きた瞬間に、測定を始められる?
事例の40msを、復帰2ms、センサ安定8ms、計測2ms、送信28msに分けます。2msでCPUが復帰しても、センサが安定する前に測ると値が不正確になる場合があります。
周期ごとの開始時刻と、測定してよい時刻を分けて管理します。
周期は、復帰待ち・計測・送信の最大時間を含めても要件を満たす必要があります。送信が延びた場合に次回の計測をどう扱うか、値を保存して後で送るかも決めます。
クロックを下げれば、電池も長持ちする?
周波数を下げると動作中の消費が下がる場合がありますが、計算に時間がかかり、眠れる時間が減る場合もあります。電流だけでなく、一定の仕事を終えるまでの電荷やエネルギーを比較します。
変更後に動作電流6mA・動作時間80ms・残り920msは0.01mAとなる条件を比べると、平均は0.4892mAです。この条件では変更前の0.4096mAより大きくなります。
機器ごとの電圧・周波数・処理時間の関係を使って判断します。無線の送信時間やセンサの安定待ちがCPUの周波数に比例して短くなるとも限りません。仕様値と実測を対応させます。
一秒周期で、100ms以内の検知はできる?
周期的な計測だけでは、計測直後に発生した変化は次の計測まで待ちます。1秒周期で待つ可能性があるなら、常に100ms以内に検知する要件を満たせません。
短いパルスが次の計測までに消えると、発生したこと自体を見逃す可能性があります。常時動く検知回路でイベントを保持する、割込みで起こす、周期を短くする等を比較します。
検知回路にも待機電流や復帰時間があります。計測の省電力と、異常を見逃さない設計を同じ条件で比較します。電池寿命を延ばすことだけを最適化しません。
演習1:単位変換
条件:スリープ中の電流は10µAです。
問い:mAで表してください。
解答例:0.01mAです。
根拠:1mA=1000µAなので、10を1000で割ります。
誤答の理由:10mAと読むと、スリープ電流を1000倍に見積もってしまいます。
演習2:平均電流
条件:10mAで40ms、0.01mAで960msを繰り返します。
問い:平均電流はいくつですか。
解答例:0.4096mAです。
根拠:(10×40+0.01×960)/1000で各モードの時間を重み付けします。
誤答の理由:(10+0.01)/2は二つの時間が同じ場合の平均で、この事例には使えません。
演習3:寿命の単位
条件:使用可能容量1000mAh、平均0.4096mAです。
問い:寿命の見積りと単位を答えてください。
解答例:約2441時間、約102日です。
根拠:1000÷0.4096で時間、さらに24で割って日へ直します。
誤答の理由:2441秒では容量と電流を割った単位を取り違えています。実機の保証値とも区別します。
演習4:低クロックの比較
条件:動作6mAで80ms、スリープ0.01mAで920msへ変えます。
問い:平均電流は減りますか。
解答例:0.4892mAとなり、変更前より増えます。
根拠:6×0.08+0.01×0.92=0.4892で、動作時間の増加も含めて比べます。
誤答の理由:6mAが10mAより小さいことだけで、省電力と判断してはいけません。
演習5:短い異常の検知
条件:1秒ごとの計測だけで、異常信号は100msで消える場合があります。
問い:見逃しを防ぐ設計を一つ挙げてください。
解答例:低消費電力の検知回路でイベントを保持し、復帰時に読み出します。
根拠:計測の間に消えるイベントも発生記録を残せれば把握できます。
誤答の理由:CPUの復帰だけを速めても、そもそも起動要因にならない信号を検知できません。
演習6:平均とピーク
条件:容量による寿命は十分ですが、送信中に電源電圧が下がり停止します。
問い:何を追加で確認しますか。
解答例:送信時のピーク電流、電池や電源回路の供給能力、最低動作電圧を確認します。
根拠:時間平均が小さくても、瞬間の電流を供給できるとは限りません。
誤答の理由:電池容量を平均電流で割り直すだけでは、送信時の電圧低下の原因を調べられません。
出典と仕様を確認する
関連テーマを続けて学ぶ
次におすすめの学習
編集・検証について
編集・検証:IT資格ラボ編集部
IPAが公開する試験要綱・シラバス・過去問題と、各技術の公式資料を優先して内容を確認しています。制度変更や誤りを確認した場合は、記事を見直して更新します。
編集方針・情報源・訂正方針を見る