デュアルモードWi-Fi/Bluetooth IoT設計で電池寿命を最大化する方法
DigiKeyの北米担当編集者の提供
2020-09-24
電池駆動のモノのインターネット(IoT)デバイスおよび他のコネクテッド製品の設計者は、連続ワイヤレスコネクティビティと電池寿命の延長という競合する要件を満たすように求められています。すでに制約のある電力制限をさらに引き延ばすという需要が、同じデバイスのBluetooth 5とWi-Fiコネクティビティの両方において高まっています。Wi-FiおよびBluetoothプロトコルは消費電力を低減するのに役立つ標準プロトコルを提供しますが、より直接的なサポートがアーキテクチャの形で提供されます。これは、ネットワーク処理タスクをオフロード可能な無線サブシステムを低電力マイクロコントローラと組み合わせます。
この記事では、デュアルモードWi-Fi/Bluetoothコネクティビティの重要性と、それによりIoT設計がどのように複雑になるかを説明します。次に、連続コネクティビティおよび電池寿命の延長に対応するデュアルモードWi-Fi/Bluetooth IoTデバイスの開発において、Cypress Semiconductorの開発ボードおよび関連ソフトウェアをどのように使用できるかを説明します。
デュアルモードWi-Fi/Bluetooth連続コネクティビティの増大するニーズ
Bluetoothコネクティビティは、Bluetooth対応スマートフォンや他のモバイルデバイスを介してユーザーとやり取りするように設計された多くのIoTデバイスにおいて、標準要件として考えられています。しかし、多くのIoTアプリケーションにおいて、IoTデバイスにはワイヤレスローカルエリアネットワーク(WLAN)にアクセスして直接インターネットに接続したり、同じネットワーク上のピアデバイスやホストシステムとやり取りしたりするためのWi-Fiコネクティビティが必要です。
これらのIoTデバイスがデータや他のメッセージを送信する際にWLANやBluetoothホストに接続する必要があるだけだったら、いろいろな意味で開発者による電池寿命の延長がはるかに簡単だったことでしょう。多くのIoTデバイスのアクティブデューティサイクルは一般的に低いため、これらのデバイスは主に低電力スリープモードで動作して、センサ測定を実行したり、関連処理タスクを完了したり、低電力モードに戻る前に派生データを送信したりするのに十分な時間ウェイクすることにより、電池寿命を延長できたことでしょう。実際には、ほとんどのIoTデバイスがピアデバイス、ホストシステム、およびエンドユーザーからの非同期受信コマンドやデータに迅速に応答する必要があります。
応答性を維持するために、IoTデバイスは連続コネクティビティの外観を提供して、許容可能な期間内で応答できるように受信トラフィックに対してアラートを残す必要があります。開発者がデバイスを繰り返しウェイクして受信トラフィックを受信することによってこの基本的要件を満たそうとすると、デバイスの電池はすぐに劣化してしまいます。実際、電池駆動Wi-Fiデバイスの無線レシーバは一般的に、個別の送信動作に関連した消費電力が大きいかどうかにかかわらず、時間の経過と共に無線トランスミッタよりも多くの電力を消費します。もちろん、デバイスのホストプロセッサにより各受信動作で消費される電力自体も、電力バジェットにかなりの負荷をかけます。幸いなことに、ワイヤレス規格が定義するプロトコルにより、開発者は連続コネクティビティの錯覚を維持しながら電力を低減できます。
ワイヤレスコネクティビティ規格によりデバイスが消費電力を低減する方法
通常の動作において、Wi-Fiの受信ステーション(STA)は、大部分のWi-Fiサブシステムをパワーダウンすることにより電力を節約します。アクセスポイント(AP)はスリープ中のSTAのフレームをバッファするため、メッセージは1つも失われません。通常のネットワーク管理動作の一部として、APはトラフィック通知マップ(TIM)と呼ばれるビットマップを含むビーコンを定期的に送信します。このビットマップは、APに各STAの待機トラフィックがあるかどうかを示します。APは、バッファ付きマルチキャストまたはブロードキャストデータの入手性を示す配信トラフィック通知マップ(DTIM)を含むビーコンも周期的に送信します。STAは、通常のビーコン間隔の倍数であるDTIM周期値内で定期的にウェイクアップすると期待されています。高いDTIM周期値が設定されたIoTネットワークにより、そのネットワークのデバイスは消費電力を低減できます。なぜなら、それらのデバイスは、レシーバをウェイクしてAPがそのためのフレームを保持していることを示すビーコンを受信する前に、より長くスリープできるからです。これは、以下で説明する標準的な802.11パワーセーブポールメカニズムの背後にある基本的なアプローチです。
Bluetooth Low Energy(BLE)は、Bluetoothのアドバタイジング周波数およびペイロードを最適化することにより、デバイスが消費電力を低減できるようにします。アドバタイジング間隔を増やすことにより、IoTデバイスはトランスミッタの動作を遅延させることができます。ペイロードを減らすことにより、IoTデバイスはトランスミッタイベントの期間を短縮できます。もちろん、すべてのアプリケーションが長いアドバタイジング間隔や最小ペイロードに耐えられるわけではありません。たとえば、オーディオまたはリアルタイムセンシングデバイスにおいて、長いアドバタイジング間隔は接続の遅延を意味します。これは、アプリケーション全体の動作に悪影響を及ぼす可能性があります。
ペリフェラルデバイスは、スレーブレイテンシと呼ばれる別のBLE機能を使用できます。これにより、ペリフェラルが接続イベントをスキップできるようになります。Wi-Fi DTIMと同様に、BLEスレーブレイテンシにより、デバイスはより長い期間にわたって低電力モードにとどまることができます。この特別なモードにより、ペリフェラルデバイスは接続間隔をただ増やすのではなく、ホストとの接続イベントをスキップできます。それでも、さらなる遅延を招くことなく、必要に応じてウェイクしてデータを送信します。
デュアルモードコネクティビティと電池寿命の延長に対するサポート
これらの方法はWi-FiおよびBluetoothデバイスの全電力動作の期間と周波数を低減するのに役立ちますが、開発者はCypress SemiconductorのCY8CKIT-062S2-43012 Wi-Fi BTパイオニアキットが実証するハードウェアおよびソフトウェア機能を使用することにより、電池寿命を延長するためにはるかに多くのことができます。CypressキットにはジャンパワイヤやUSBケーブルに加えて、低電力IoT設計を実装するための包括的な開発プラットフォームおよびフル機能ハードウェアシステムを提供するPSoC 62S2 Wi-Fi BTパイオニアボードが含まれます。CypressキットをCypressソフトウェアと一緒に使用することにより、開発者は洗練されたさまざまな電源管理機能を即座に評価し、迅速に展開できるようになります。
このキットのボードには複数のインターフェースコネクタ、ボタン、およびLEDに加えて、Cypress KitProg3オンボードプログラミングおよびデバッギングを提供するCY8C5868LTI-LP038 PSoC 5LPデバイスが内蔵されています。Cypressは付加的なオンボードストレージとして、S25FL512S 512MビットシリアルNORフラッシュメモリデバイスおよびCY15B104 4Mビットシリアル強誘電体ランダムアクセスメモリ(FRAM)を内蔵しています(図1)。
図1:CypressのPSoC 62S2 Wi-Fi BTパイオニアボードは、PSoC 6マイクロコントローラを内蔵するキャリアモジュールおよびWi-Fi/Bluetoothワイヤレスコネクティビティモジュールを中心に構築されたシステム機能の包括的なセットを提供します。(画像提供:Cypress Semiconductor)
キャリアモジュールはボードの中核として、Cypress SemiconductorのPSoC 6マイクロコントローラおよびMurata ElectronicsのType 1LV LBEE59B1LVワイヤレスコネクティビティモジュール(受動部品付き)を内蔵しています。サポートデバイスには、無線周波数(RF)スイッチおよびデュアルバンド2.45GHz/5GHzミニチップアンテナも含まれます。
処理性能と消費電力間の従来のトレードオフを排除するために特別に設計されたPSoC 6は、主要なアプリケーションプロセッサとして動作する150MHzのArm® Cortex®-M4と、低電力動作を処理する100MHzのArm Cortex-M0+を内蔵しています。PSoC6には内蔵フラッシュおよびスタティックRAM(SRAM)に加えて、暗号エンジン、プログラム可能なアナログおよびデジタル周辺機器、CapSenseタッチセンシングサポート、および複数のシステムインターフェースが含まれます(図2)。
図2:CypressのPSoC 62S2 Wi-Fi BTパイオニアボードのキャリアモジュールに内蔵されたPSoC 6マイクロコントローラは、アプリケーション処理と低電力リアルタイム実行の両方の要件を満たすマルチコアアーキテクチャを使用しています。(画像提供:Cypress Semiconductor)
MurataのLBEE59B1LVモジュールは、CypressのCYW43012組み込みデバイス向けワイヤレスインターネットコネクティビティ(WICED)Wi-Fi + Bluetoothデバイス、リファレンスクロック、およびフィルタを搭載する10.0 x 7.2 x 1.4mmのパッケージで、完全な無線サブシステムを提供します(図3)。
図3:MurataのType 1LV LBEE59B1LVワイヤレスコネクティビティモジュールは、CypressのCYW43012 WICEDデバイスを中心に構築された完全な事前認証済みWi-Fi + Bluetooth無線サブシステムを提供します。(画像提供:Murata Electronics)
このモジュールは、Bluetooth 5.0およびWi-Fi 802.11a/b/g/nとの2.4GHzおよび5GHzワイヤレスコネクティビティをサポートします。さらに、このモジュールは、5GHz帯の20MHzチャンネルで802.11acの256直角位相振幅変調(QAM)をサポートする802.11acフレンドリーモードを提供します。これにより、802.11nのみの製品よりも高いスループットを実現し、1ビット当たりのエネルギーを軽減できます。開発を高速化させるために設計されたMurataのLBEE59B1LVモジュールは、複数の地域で事前認証済みであるため、コンプライアンステストや認証に関連した長い遅延を排除できます。
このモジュール内で、CypressのWICEDデバイスはWi-FiおよびBluetoothサブシステムのArm Cortex-M3プロセッサおよびArm Cortex-M4プロセッサをそれぞれ内蔵しています。Arm Cortex-M3プロセッサは顧客コードには使用できませんが、Wi-Fi動作および追加機能(後述のオフロード機能を含む)をサポートするCypressファームウェアを実行します。BluetoothサブシステムのArm Cortex-M4は、Bluetoothコントローラファームウェア、Bluetoothスタック、およびプロファイルを実行します。さらに、このコアはCypressのWICEDソフトウェア開発キット(SDK)を使用して、プログラムされた顧客コードを実行できます。
ワイヤレスIoT設計における省電力方法の使用
消費電力を最小化するために設計されたPSoC 6およびワイヤレスコネクティビティモジュールは、電力モードや電力低減機能の包括的なセットを備えています。Cypressは、電力効率の高いこのハードウェアプラットフォームを多くの補完ソフトウェアで補強しています。それらは、ワイヤレスIoT設計で省電力方法の使用を簡素化するために設計されています。たとえば、開発者は独立した組み込みWi-Fiホストドライバ(WHD)ライブラリを使用して、前述のパワーセーブポール方法を簡単に実装できます。
開発者は、単にWHDアプリケーションプログラミングインターフェース(API)関数whd_wifi_enable_powersave()を呼び出してパワーセーブポールを有効にした後で、whd_wifi_disable_powersave()を呼び出してデバイス内でそれを無効にします。有効にすると、STAはそれがスリープに移行したことをAPに通知します。前述のとおり、APはスリープ中のSTAフレームをバッファし、その周期的なビーコンを構成して、フレームが使用可能であることを示します。STAがウェイクしてビーコンを確認すると、それらのフレームを取得する標準プロセスが開始されます。
パワーセーブポールのメカニズムは低デューティサイクルを備えたSTA向けに意図されていますが、ポールなしのパワーセーブと呼ばれる類似の方法は、高いスループット要件を備えたSTAをサポートしています。ここでSTAは、APからのフレーム転送を開始する零関数データフレームを送信します。
パワーセーブポールおよびポールなしのパワーセーブにより、デバイスはレシーバ動作を低減できますが、オーバヘッドのネットワーク動作に関連した不必要なトランザクションを排除するのには役立ちません。たとえば、IoT WLANを含むネットワークは、外部ネットワーク(特に公衆インターネット)に接続されると、不要なパケットトラフィックを通信します。IoTデバイスのホストプロセッサを関係させることなく、通信サブシステム内でそれらのパケットを除去する機能により、ホストプロセッサは低電力スリープモードにとどまることができます。
不要なパケットに加えて、正規のネットワークトラフィックもホストプロセッサを不必要にウェイクさせる場合があります。たとえば、Wi-Fi標準のアドレス解決プロトコル(ARP)は、ブロードキャストパケットをその機能の一部として使用し、デバイスのメディアアクセス制御(MAC)アドレスにデバイスと関連付けられたIPアドレスをマッピングします。この動作は、通常のWLAN機能に不可欠で、デバイスがネットワーク内の他のデバイスに到達したり、重複したIPアドレスを検出したり、IPアドレスが任意の理由で変更された場合に他のデバイスに通知したりできます。
ARP要求および応答パケットはネットワーク動作にとって非常に基本的なため、ARP要求および応答を処理するだけで、IoTデバイスのホストプロセッサに過度な負担がかかる可能性があります。デバイスのWLANインターフェースがホストとネットワーク間で要求と応答を受け渡すだけで、各ARP要求が不必要にホストをウェイクすることがあります。
対照的に、Murataのワイヤレスコネクティビティモジュールはこの交換に介入し、ARP要求処理をPSoC 6マイクロコントローラからオフロードします。PSoC 6が主要なIoTアプリケーション機能に従事している場合、この機能によりアプリケーション実行のためにプロセッササイクルが維持されます。PSoC 6がスリープモードにある場合、この機能はIoTデバイスの消費電力全体を軽減するのに役立ちます。Murataのモジュールでキャッシュされたエントリにより受信ARP要求が満たされない場合、Murataのモジュールはピア自動応答でARPオフロードを有効にすることにより、PSoC 6のみをウェイクします(図4、左)。
図4:ARPオフロードが有効にされると、ネットワーク(左)またはホストプロセッサ(右)からのARP要求を妨害します。キャッシュが要求を満たす場合は自動的に応答し(上)、キャッシュミスではプロセッサのみをウェイクします(下)。(画像提供:Cypress Semiconductor)
この同じアプローチは、WLANの消費電力を低減するのにも役立ちます。通常の動作において、Murataのモジュールはネットワークトラフィックおよび他のARP応答からのキャッシュIP:MACペアを監視(スヌーピング)できます。ホスト自動応答を使用することで、MurataのモジュールはPSoC 6からのARP要求に応答でき、PSoC 6の要求がARPキャッシュから満たされない場合にのみ、その無線サブシステムを呼び出します(図4、右)。
省電力機能の簡単なメニューベースの実装
パイオニアキットによるARPオフロードの実装は、非常に簡単です。CypressのModusToolBox(MTB)統合開発環境(IDE)に含まれるCypressのDevice Configuratorツールにより、開発者は数回のメニュー選択でこの機能を展開できます。Cypressは事前に構築された構成ファイルを提供して、開発者がARPオフロードを含む異なる構成を迅速に選択できるようにします。
Device Configuratorツールを使用して構成を明示的に定義することは、非常に簡単です。開発者はツールのメニューオプションを使用することで、ホストがピンをウェイクし、そのピンに名前を付け(CYBSP_WIFI_HOST_WAKE)、ピンパラメータを設定できるようにします(図5)。
図5:CypressのDevice Configuratorツールにより、開発者はメニューを使用してパイオニアボードで使用可能な省電力オプションを設定できます。(画像提供:Cypress Semiconductor)
開発者はそのツールのWi-Fiタブで、ホストがウェイクして、割り込みピンを以前入力した名前(CYBSP_WIFI_HOST_WAKE)に設定できるようにします。さらなるメニューエントリにより、ARPオフロードを有効化し、機能をピア自動応答に設定し、ネットワークスヌーピングを有効化し、キャッシュエントリの満了時間を設定できます(図6)。
図6:CypressのDevice Configuratorツールの追加メニュータブを使用することにより、開発者はARPオフロードに加えてピア自動応答など特定の機能を有効にできます。(画像提供:Cypress Semiconductor)
構成の保存後、開発者は単にソースファイルを生成して、変更済みプロジェクトを構築し、パイオニアボードをプログラムします。開発者は同様の方法を使用して、MurataのモジュールがWi-Fiパケットフィルタリングをオフロードし、ネットワーク動作の他の一般的なタイプに対応するように構成できます。この同じアプローチにより、IoTデバイスはIoTホストプロセッサをウェイクせずに、Wi-Fiコネクティビティを維持するのに必要なWi-Fi TCPのキープアライブプロトコルを実行できます。
通常のWLAN動作において、クライアントデバイスとホストサーバは、キープアライブパケットを交換することによりTCP接続を維持します。この交換のどちらか一方が数回の試行後も応答を受信しない場合は、接続を終了します。電力に制約のあるIoTデバイスにおいてさえ、ホストプロセッサはこの交換に参加するためにウェイクアップし続け、さらに多くの電力を使用して継続的に接続を再確立する必要があります。
ARPオフロードと同様に、開発者はDevice Configuratorツールを使用して、TCPのキープアライブオフロードを有効化できます。この機能を有効にすると、MurataのモジュールはPSoC 6をウェイクせずに、キープアライブプロトコルを自動的に実行します(図7)。
図7:TCPのキープアライブオフロードを有効にすると、ワイヤレスコネクティビティモジュール(WLANデバイス)はキープアライブプロトコルを自動的に実行し、ホストプロセッサが低電力スリープモードにとどまることを許可します。(画像提供:Cypress Semiconductor)
CypressはDevice Configuratorツールの使用を実装の最も簡単な方法として推奨していますが、開発者はARPオフロード、パケットフィルタリング、TCPのキープアライブオフロードなどを含むCypressプラットフォームの省電力機能を手動で実装することもできます。
両方のアプローチの基盤となるのが、Wi-Fi、Bluetooth、およびPSoC 6マイクロコントローラ向けにこれらの省電力機能やこの記事で言及していない他の機能をサポートする、Cypressの低消費電力アシスタント(LPA)ミドルウェアです。
開発者がメニューを使用して、または手動で構成コードを追加することにより構成を定義した後、LPAファームウェアはアプリケーションに対して透過的に動作し、低電力ハードウェア機能およびソフトウェア機能の使用を自動的に調整します。
結論
IoTデバイスにおける連続ワイヤレスコネクティビティおよび電池寿命延長のニーズは、競合する要件を開発者に提示します。それらの要件は、Wi-FiとBluetoothの両方をサポートするというニーズによってさらに困難なものとなります。前述のとおり、ネットワーク処理タスクをオフロード可能な無線サブシステムを低電力マイクロコントローラと組み合わせることにより、Cypress SemiconductorのCY8CKIT-062S2-43012 Wi-Fi BTパイオニアキットは、開発者がIoTワイヤレスコネクティビティおよび低電力の要件を満たせるようにします。

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。