Silicon LabsのMCU PG23を使ってセキュアな低電力エッジIoTデバイスを設計する方法
DigiKeyの北米担当編集者の提供
2022-10-19
照明スイッチ、メータリーダー、スマートロックから、ソーラーインバータやセキュリティパネルに至るまで、さまざまな民生用および産業用のエッジIoT(モノのインターネット)アプリケーションの設計者は、特に電池駆動の設計において、高性能と低電力の間で適切なバランスを取りながら、実装のセキュリティも保証する必要があります。このような設計の基礎となるのがマイクロコントローラ(MCU)である場合が多いため、設計者はどのマイクロコントローラを使用するのかを慎重に検討する必要があります。
検討すべきポイントは、セキュリティの強固なサポートに加えて、プロセッサコアの性能、効率、ペリフェラルと I/O のサポート、フォームファクタ全体、エコシステムのサポートなどです。MCUは性能と電力の点で設計要件を満たしているかもしれませんが、セキュア設計の実装に必要な習熟時間により、遅延が発生したり、セキュリティが十分に実装されなかったりする可能性があります。
そこで、本稿では、エッジIoTデバイスのセキュリティ上の検討ポイントについて簡単に説明します。次いで、Silicon LabsのMCU EFM32PG23を紹介し、低電力に重点を置いたセキュアなエッジIoT設計への適用方法を示します。
IoTデバイスのセキュリティ問題
インターネット接続されたデバイスに対する遠隔からの攻撃が増え続けています。組み込み開発者は、IoTエッジデバイスには「金銭的価値のあるもの」が含まれていないので、セキュリティは必要ないと考えたくなるかもしれません。ところが実情は、ほとんどすべてのデバイスに、ハッカーにとって金銭的価値のある、センサデータ、顧客データ、デバイスに搭載されているファームウェア自体、デバイスがバックドアとして提供する、接続されているネットワークへのアクセスなどが含まれています。セキュリティは、すべてのIoTエッジデバイスに最初から設計しておかなければならない重要な機能です。設計サイクルの最後にシステムに追加すべきではありません。最初から設計しておかないと、攻撃に対して非常に脆弱なデバイスになってしまうからです。
すべてのIoTエッジデバイスには、デバイスの識別、デバイスの構成、ソフトウェア/ファームウェアの更新など、検討すべきいくつかのセキュリティ領域がいくつかあります。図1は、一般的な懸念事項のリストと、これらの懸念事項に対応するデバイスのセキュリティ要件を示したものです。各セキュリティ要件の右隣には、その要件を満たし、かつ攻撃者を阻止するためによく使用される関連テクノロジーが記載されています。
|
図1:エッジIoTアプリケーションの設計者が検討すべきセキュリティ上の懸念事項、要件、および関連テクノロジーは多数あります。(画像提供:Silicon Labs)
IoTエッジアプリケーションを開発する多くの組み込みチームが抱えている大きな問題は、社内にセキュリティの専門家がいないことです。このため、社内でセキュリティを学習して実装しようとベストを尽くすか、外部サービス供給元を利用するかのどちらかになってしまうのです。いずれにせよ、膨大な時間またはコストがかかる可能性があります。
ところが、これらとは別の、MCUの選択という方法もあるのです。MCUは、セキュリティを考慮して設計され、手元のアプリケーション向けに必要な構成の調整がわずかで済む、すぐに使えるセキュリティソリューションだからです。
Silicon Labs PG23シリーズ MCUデバイスの概要
Silicon LabsのマイクロコントローラEFM32PG23シリーズは、2つの理由から、IoTエッジデバイスアプリケーションにとって興味深い選択肢です。一つ目の理由は、PG23 MCUが、Silicon Labs独自のIoTセキュリティソリューションSecure Vaultを実行できるということです。Secure Vaultは、IoTデバイスをセキュリティ保護し、かつ将来の使用にも堪えられるようにするプラットフォームであり、最近、IoTセキュリティソリューションとして初めてPSA Certified Level(認定レベル)3のステータスを獲得しました。Secure VaultがPG23 MCUに提供する機能としては、Secure Device Identity(セキュアなデバイスID)、Secure Key Management and Storage(キーの安全な管理および保管)、Advanced Tamper Detection(高度な改ざん検出)などがあります。
Secure Vaultは、物理的複製防止機能(Physical Unclonable Function:PUF)によって生成される一意のデジタル指紋を利用します。PUFは、システムの電源が切れると物理的に消えてしまうAESの対称キーを作成するのに使用することができます。AESの対称キーは、チップを外した状態では存在しなくなるため、デバイスから取り外すことはできません。PUFは、多くのIoTエッジアプリケーションが直面しているキー管理の課題に対する効果的なソリューションです。実際、PUFは、アプリケーションをサポートするために必要な数のキーをサポートするように拡張することができます。さらに、Secure Vaultは改ざん検出システムを搭載しているので、改ざんを防ぐことができます。また、改ざんが発生してもデバイスを一度シャットダウンすれば、キーが復元されなくなります。キーセキュリティ機能をまとめると、以下のようになります。
- セキュリティ証明書
- キーの安全な管理
- キーの安全なストレージ
- 改ざん防止
PG23 MCUがIoTエッジアプリケーションに適しているもう一つの理由は、低電力アプリケーション向けに設計されていることです。PG23のアクティブ消費電流は、21μA/MHz(マイクロアンペア/メガヘルツ)です。この消費電流は、EM2モードで16キロバイト(Kバイト)のRAMをアクティブにした場合では1.03μA、EM4モードでリアルタイムクロック(RTC)を有効にした場合では0.7μAとなります。この消費電流の低さは、開発者が、電源に接続されているデバイスや電池駆動のデバイスを高いエネルギー効率を持つように設計しようとする際に役立ちます。
本稿で検討するPG23の最後の機能は、MCUの機能です。PG23は、最大80MHzで動作するArm®Cortex®-M33プロセッサを搭載しています。このプロセッサは、1.71V~3.8Vの電圧範囲の単一電源で動作させることができます。センサアプリケーションに取り組む開発者のために、低エネルギーセンサインターフェース(LESENSE)が用意されています。このMCUは、5×5mm(ミリメートル)の40ピンQFNパッケージと6×6mmの48ピンQFNパッケージで提供されます。PG23のブロック図を図2に示します。また、MCUには、EM0(実行モード)、EM1(スリープ)、EM2(ディープスリープ)、EM3(ストップ)、EM4(シャットオフ)という5つの電源状態があります。
図2:MCU PG23には、豊富なペリフェラル、メモリ、省エネモードなどが備わっています。(画像提供:Silicon Labs)
開発ボードPG23-PK2504Aの操作概要
PG23シリーズの使い始めとしては、開発ボードPG23-PK2504Aを使用するのが一番です。このボードにはEFM32PG23B310F512プロセッサと、その助けとなる512Kバイトの専用フラッシュと64KバイトのRAMが搭載されています。開発ボードには、広範なセンサ、インターフェース、4×10セグメントLCDが搭載されています(図3)。
図3:開発ボードPG23-2504Aには、MCU EFM32PG23のほか、4×10セグメントLCD、温度 & 湿度センサ、基準電源、拡張インターフェースが搭載されています。(画像提供:Silicon Labs)
このボードを手に入れた開発者は、[Getting Started]タブからSimplicity Studioをダウンロードしてインストールすることができます。Simplicity Studioは、EFM32マイクロコントローラの評価、構成、開発に必要なすべてのものを提供する出発点です。このソフトウェアには入門資料、ドキュメント、互換ツール、リソースがバンドルされています。
開発者がSimplicity Studioを開き、開発ボードに接続すると、ソフトウェアがボードを識別し、サンプルプロジェクト、ドキュメント、およびデモに関する推奨事項を表示します(図4)。そこで、開発者は自分にとって最適な道を選んで、PG23の試用を開始することができるのです。
図4:Silicon LabsのSimplicity Studioはボードを検出し、サンプルプロジェクト、ドキュメント、クイックスタートなどに関するカスタマイズされた推奨事項を表示します。(画像提供:Silicon Labs)
PG23-PK2504A開発ボードで特筆すべき機能の1つは、開発ボードへの電源供給方法を決定するスイッチです。AEMとBATの2つのオプションがあります(図5)。AEMモードでは、LDO電源とPG23と直列に電流センス抵抗器が接続されます。このモードの利点は、開発者がプロセッサの消費電流を測定して電力の最適化を支援できることです。アプリケーションの最適化が完了したら、BATモードに切り替えて、コイン電池で開発ボードを稼働することができます。
図5:PG23-PK2504Aは、AEMモードでは、USB-Cから電源を得ることができるとともに内蔵のプロセッサの電流を測定することもできます。また、内蔵プロセッサに電力を供給する別の方法としては、CR2032コイン電池を使用する方法もあります。(画像提供:Silicon Labs)
IoTアプリケーションでエネルギー使用量を最小限に抑えるためのヒントとコツ
電池駆動かどうかにかかわらず、あらゆるIoTエッジ設計において、エネルギー消費を最小限に抑えることは重要です。エネルギー使用量の設計の最適化は、開発者が注意深く行わないと時間がかかるものです。以下は、IoTアプリケーションを低電力向けに迅速に最適化するために、開発者が留意すべきいくつかの「ヒントとコツ」です。
- イベント駆動型ソフトウェアアーキテクチャを採用する。システムがイベントを処理していないときは、システムを低電力状態にします。
- 数回の充電/放電サイクルにおけるシステムの電池消費量をプロファイリングする。消費電流と動作電圧を記録し、経時的にプロットします。
- クロック、ペリフェラル、CPUを自動的にディスエーブルにするため、低電力モードを活用する。
- シンプルなアプリケーションでは、Arm Cortex-Mの「sleep on exit」機能を使用して、システムを起動する際の割り込みオーバーヘッドを最小にすることを検討する。
- RTOSを使用する場合は、その「ティックレス」モードを活用し、RTOSが不用意にシステムを起動するのを防ぐ。
- 反復して最適化を行う場合は、行ったすべての変更によるエネルギー節約量を追跡する。ある時点で、最適化に費やした時間に対して省エネルギー効果が低い「屈曲点」が見つかります。そのような屈曲点が見つかったら、最適化作業を終えても良いタイミングです。次のステージに進みましょう。
以上の「ヒントとコツ」に従うことで、次の安全で低電力のIoT設計を行う際に、かなりの時間と労力を節約することができます。
まとめ
IoTエッジアプリケーション向けに、セキュアで低電力のMCUのニーズが高まっています。エッジベース設計のニーズを満たすために設計者が検討すべきポイントとしては、セキュリティに対する強固なサポートとともに、プロセッサコアの性能、効率、ペリフェラルやI/Oのサポート、フォームファクタ全体、エコシステムのサポートなどが挙げられます。
ご説明してきたように、Silicon LabsのMCU EFM32PG23は、低電力設計とデバイスのセキュリティに関連するいくつかの問題を開発者が解決するのに役立ちます。また、関連する開発ボードには設計に必要なツールがすべて揃っています。いくつかの重要な「ヒントとコツ」に従うことで、低電力設計を迅速に実現することができます。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。