ローパワーアプリケーションの消費電力最適化
総消費電力を最小限に抑えるには、マイコンを最も消費電力の低いモードに設定するだけでは不十分です。外部温度センサのサンプリングなど、マイコンが処理すべき各タスクを完了するのにどれだけの仕事量が必要かも見極める必要があります。各タスクに必要な性能要件が確定したら、各タスクに対する最適なエネルギー利用方法も決定する必要があります。前述の通り、「エネルギー=時間×電圧×電流」の関係が成り立ちます。通常、電圧レベルは全体的なシステムニーズと実際の電源によって決まるため、この値を変える事はできません。つまり、調整できるのは時間と電流という2つの属性のみです。時間を取るかマイコンの消費電流を取るかのトレードオフを分析する必要があります。ここで、この分析を行う際に注意が必要となる、マイコン固有のいくつかのパラメータについて説明します。
プロセッサの復帰
省電力モードにあるプロセッサは、各種外部要因によって復帰させる事ができます。この復帰イベントは、USBイベント、リアルタイムクロックイベントの他、I/Oピンに対する外部からのトリガによっても発生させられます。マイコンが省電力の「スリープ」モードから復帰してコード実行を開始するまでの時間は、非常に重要です。通常はこの時間をできるだけ短くするよう試みます。また、ここでは「スリープ」と「ディープスリープ」のどちらの動作モードを選択するかも重要です。「スリープ」モードではRAMは保持されるため、復帰時に再初期化の必要がなく、マイコンが10μs以内にコード実行を開始できるため、マイコンを1秒ごとに復帰させたい場合はスリープモードが適しています。一方、マイコンを長時間(数分~数時間)省電力モードにしておきたい場合は「ディープスリープ」モードが適しています。重要なのは、マイコンの総消費電流を最小限に抑える事です。長時間にわたってパワーダウンモードを使う場合、復帰時間が300μsかかったとしても、ディープスリープ状態の数分または数時間と比較すればごくわずかです。
次に、シリアルインタフェースを介してプロセッサに接続された外部RFチップを使用する、システムレベルの復帰イベントの例を示します。プロセッサを使用しない時は、いずれかの省電力状態に移行して、RFチップのみを動作させる事ができます。この時、次世代RFチップのロジックはデータパケットの受信を監視するだけのため、消費する電流はごくわずかです。このRFチップが自アドレス宛ての有効なデータパケットを受信すると、そのデータを処理するためにマイコンを復帰させます。この種のパワーモード方式は、ZigBee無線プロトコル等を使用した無線ネットワークソリューションで一般的に使われます。
クロック周波数
マイコンのシステムクロック周波数は外部または内部クロック源から生成します。マイコンは、このクロック源の周波数を分周してアプリケーションで必要な動作クロック周波数を得ます。一般的に、周波数が低いほど消費電力も低減します。また、位相ロックループ(PLL)を使ってマイコンで外部クロック周波数を逓倍する事もあります。通常、外部クロック信号は水晶振動子、あるいは水晶発振器をクロック源として使用します。
マイコンが省電力モードに移行する際に入力の水晶振動子増幅回路を無効にして、消費電流を数mA低減する事もできます。ただし、そのトレードオフとして、動作再開時のオシレータ・ターンオン時間が長くなります(外部水晶振動子の起動遅延のため)。しかし、一部のマイコンは、内部オシレータを使ってただちに実行を開始し、より高精度の外部クロック源が安定するのに十分な時間が経過した後自動的にそちらに切り換える、2段階起動モードの機能を備えています。
マイコンが自身のクロック周波数を制御する機能を使う事で、個別のタスクに適切なクロック速度を選択し、総消費電流を最小限に抑える事ができます。このために、エンジニアはエネルギの関係式の「時間×電流」を考慮し、フルスピードで短時間動作させるのか、より低速でより長時間動作させるのか、またはその中間かを決める必要があります。
リアルタイムクロック
ここに挙げたリモート無線センサアプリケーションの例では、システムは正確な時間を維持する必要があります。これは、システムクロックに加えてRTCC(Real-Time Clock and Calendar)モジュールを使う事で容易に達成できます。RTCCの主な機能は、日付と時刻を追跡する事にあります。しかしこの例では、パワーモードの制御にRTCCが非常に有用です。RTCCを使う事により、マイコンで正確な復帰イベントのスケジュール、サンプル計測のトリガ、中央制御コンソールとのRF同期の開始等も行えます。
RTCCをシステムに実装する方法は数多くあります。1つ目は、専用のRTCCチップをマイコンに接続する方法です。2つ目は、内蔵の32kHz水晶振動子と簡単なタイムキーピングソフトウェアを使う方法です。3つ目は、マイコン内蔵のRTCCモジュールを使う方法です。システムコストの制約が大きい場合、まず1つ目の選択肢が除外されます。2つ目と3つ目の選択肢のどちらを採用するかは、一般にマイコンに対するアプリケーションのその他のニーズに加えて、ある程度コストも考慮する事で決まります。本稿では、2つ目の選択肢、すなわち32kHzの水晶振動子と簡単なソフトウェアを使った実装方法について説明します。
外部32kHz水晶振動子駆動回路と16ビットタイマを組み合わせて、プロセッサを1秒ごとに復帰させます。プロセッサは1秒に1回復帰してRTCCタイマを更新し、必要なら現在の温度も計測します。その後、再び低消費電力モードの状態に戻ります。この方法では、「ON」時間のデューティサイクルをきわめて少なくし、デバイス動作のほとんどで電流を600nAしか消費しません。
RF無線センサノードの構築
このような無線センサアプリケーションは、1チップで高度に集積化されたユニバーサルISMバンドFSKトランシーバソリューションと低消費電力のマイコンを組み合わせる事で容易に実装できます。マイコンは、シリアル通信ポート(この場合はSPIインタフェース)を介して無線デバイスに接続します。マイコンは、トランシーバデバイスの無線構成設定の初期化にも使用します。設定後は、データ送信とRFデータ受信はマイコンから非常に簡単なシリアルコマンドを送る事で、ほとんどトランシーバデバイスで処理できます。これら2つの技術を組み合わせるだけで、リモート温度センサの例のような各種の無線センサノード(アナログとデジタル)を遠隔地から監視する簡単なネットワークを構築できます。
無線システムの全体的なパワーバジェットを考えた場合、特に重要なデータシートのパラメータは、トランスミッタ/レシーバの消費電力、待機時消費電力、無線の起動時間です。これがわかれば、無線RFチャンネルを通じてデータを送受信する際のユニットの消費電流を求める事ができます。RFソリューションを開発する際にこれ以外に考慮すべき問題は、送信データの長さとセキュリティの2つです。次のセクションでは、これら2つの問題について簡単に説明します。
RF送信時間
通常見落としがちですが重要なパラメータに、送信するRFデータパケットサイズがあります。実際に、RF送信時間は無線ソリューションの性能、品質、消費電力に大きな影響を及ぼします。パケットサイズを小さくすると、消費エネルギーを低減でき、バッテリのサイズも抑える事ができます。ローパワーRFプロトコルを定義する際は、この点に留意する必要があります。
この無線温度センサ設計のために、現在利用可能な各種RF通信プロトコル、ZigBee、ZigBee Pro、Microchip TechnologyのMiWi、MiWi P2Pといったプロトコルをすべて評価しました。このアプリケーションで要求される低消費電力を実現するため、非常に簡単なTDMA(Time Divisional Multi Access)のタイムスライスプロトコル方式を選択しました。
RFデータフレーム内にあらかじめ定義されたタイムスロットを割り当て、最初のタイムスロットを中央のマイコンから送信されたSOF(start-of-frame)マーカとして使うと、センサ監視システム全体で正確なタイミングを維持しながら消費電力も抑える事ができます。この方式を使うと、マイコンとRFトランシーバのいずれも稼働時間のほとんどを低消費電力のスタンバイモードにする事ができます。
セキュリティ
無線ネットワークに関してはセキュリティ問題が認識されているため、ほとんどのRFシステムが強力なアルゴリズムを採用してデータを保護しています。キー長128ビットのAES(Advanced Encryption Standard)を採用してデータの保全性とハッキングに対する耐性を高めます。いずれも商用アプリケーションでは特に重要です。AESセキュリティはソフトウェアで実装できます。無線センサノードが動作している時間を最小限にする必要があるため、AESの計算を高速に実行する事が重要です。これは、無線センサノードがほとんどの電力を消費するのは動作時であるためです。マイコンは、必要に応じて処理性能を動的に変化させる事ができるため、この目標の達成に役立ちます。これは、バッテリ駆動デバイスはもちろん、有線システムにも当てはまります。有線か無線かにかかわらず、どのようなシステムでも消費電力は発熱、サイズ、コストに影響を与えます。
システムコスト
言うまでもなく、このような無線温度センサなど、何らかのシステムを設計する際に、総システムコストは常に非常に重要な役割を果たします。無線マイコンのコストを決定する主な要因の1つに、必要なプログラムメモリとデータメモリの量があります。センサネットワークと関連製品を開発する際は、アプリケーション ニーズに応じて、最適なメモリ容量を持つマイコンを多くの選択肢から選ぶ事ができます。ZigBeeのようなネットワークプロトコル層に基づく大規模なアプリケーション開発では、より大きなメモリ容量が必要です。場合によっては250KBを超える事もあります。よりシンプルな転送プロトコルを実装できる場合、特にコストの制約が非常に厳しい設計では、マイコンの多くの省電力機能を活用してコストと消費電力を最小限に抑える事ができます。
ハードウェア/ソフトウェア
本稿の設計サンプルでは、高度に集積化されたユニバーサルISMバンドFSKトランシーバ チップと、超低消費電力のマイコンを組み合わせて使っています。センサユニットでは超低消費電力のマイコン「PIC16LF1827」を使っており、毎秒1回アナログ温度センサを計測して結果をデータバッファに格納し、複雑なノイズフィルタ処理アルゴリズムを実行してその結果をRFトランシーバで送信するという処理を実行しています。セキュリティ上の理由により、この情報はAESアルゴリズムで暗号化しており、あらかじめ定義されたタイムスロットで送信しています。さらに、マイコンは電源投入後にRFトランシーバの無線構成設定を初期化し、必要に応じて無線のパワーモードを制御します。
まとめ
本稿では、非常に簡単な低消費電力の無線センサネットワークが容易に実装できる事を示しました。超低消費電力マイコンが備える各種の電源管理機能への理解を深める事によって、「グリーン」な無線ソリューションを開発する事ができます。超低消費電力のマイコンとRF無線製品を正しく選択し、システムレベルのすべてのタスク要件を適切に評価し、さらにマイコンの電源管理設定を活用する事によって、システムを低消費電力の「スリープ」状態に保ち、その結果低コスト、超低消費電力で目的の機能を達成するソリューションが実現します。
著者:Vivien Delport
Applications Engineering Manager
Security, Microcontroller & Technology Development Division
Microchip Technology