高度に統合されたArm® Cortex® MCUでアプリケーション要件に効果的に対応

著者 Stephen Evanczuk

DigiKeyの北米担当編集者の提供

開発者は、民生用、産業用、スマートシティ、ヘルスケアなどのアプリケーションでスマート製品に求められるさまざまな要件の拡大に対応するために、多くの課題に直面しています。各アプリケーションには、性能、セキュリティ、超低消費電力、長距離ワイヤレスコネクティビティ、コストなどに関する独自の要件があります。大抵の場合、アプリケーションと利用可能なマイクロコントローラユニット(MCU)ソリューションの機能がうまくマッチしないため、開発者はこれらの要件に関して妥協を余儀なくされます。

この記事では、幅広いアプリケーションで設計を成功させるために不可欠な、適切な性能の組み合わせ、バッテリ寿命、セキュリティ、ワイヤレスコネクティビティを実現できるSTMicroelectronicsのプロセッサソリューション一式を紹介します。

厳しいセキュリティ要件への対応

STMicroelectronicsのSTM32H7R/SブートフラッシュMCU(図1)は、産業用、民生用電子機器、スマートシティ、ヘルスケアアプリケーションなど、多くのスマート製品に求められる高性能、グラフィックス、セキュリティ、部品表(BOM)削減を実現します。倍精度浮動小数点ユニット(FPU)を備えた600MHzのArm® Cortex®-M7プロセッサをベースとするこれらのMCUは、統合型グラフィックス、セキュリティサブシステムおよび、ペリフェラルインターフェースとコネクティビティインターフェースの包括的なセットを備えています。

STMicroelectronicsのSTM32H7R/SブートフラッシュMCUの図図1:STM32H7R/SブートフラッシュMCUは、高性能なArm Cortex-M7および、セキュアなスマート製品を提供するために必要なペリフェラル、機能ブロック、特殊機能のフルセットを統合しています。(画像提供:STMicroelectronics)

これらのMCUは32Kバイトの命令キャッシュと32Kバイトのデータキャッシュで構成されるプロセッサのL1キャッシュに加え、620Kバイトのスタティックランダムアクセスメモリ(SRAM)、64Kバイトの組み込みフラッシュ、外部メモリへの高速アクセス用の複数のインターフェースも備えています。SRAM、組み込みフラッシュ、外部メモリアクセスとエグゼキュートインプレース(XiP)機能のこの組み合わせは、高性能でセキュアな組み込みシステムを実装する際に高い柔軟性を提供します。

外部メモリで実行されているアプリケーションのセキュリティを確保するために、STM32H7S MCUは外部不揮発性メモリまたは揮発性メモリ上でオンザフライの暗号化と復号化を実行する3つのメモリ暗号化エンジン(MCE)も統合しており、MCEごとに最大4つの異なる領域へのアクセス制御がプログラムされています。STM32H7S MCUは、差動電力解析やサイドチャンネル攻撃からの保護など、ハードウェアベースの追加セキュリティ機能と組み合わせることで、SESIPおよびPSA認証レベル3の認定を受けています。

割り込みサービスルーチンのようなタイムクリティカルなタスクを確実に実行するために、SRAMの一部はMCUの密結合メモリ(TCM)インターフェースにマッピングされ、重要な命令やデータ用に待ち状態なしのメモリを提供します。また、システム完全性を確保するために、MCUは複数のセキュリティ機能を組み込みフラッシュと組み合わせて、セキュアなブートとアプリケーションの完全性チェックを可能にし、オンチップまたはオフチップメモリで実行されるシステムおよびアプリケーションソフトウェアにルートオブトラスト(RoT)を提供します。適切なハードウェアベースの保護機構と組み合わせる場合、このように信頼されたブートローダを格納するために組み込みフラッシュを使用することで、従来のMCUにおける読み取り専用メモリ(ROM)の使用と比較して、柔軟性において大きな利点をもたらします。

セキュアブートへの複数のパス

システムセキュリティに不可欠なRoTを提供するために、セキュアブートは、システムリセット直後に常に実行される信頼された不変コードに依存します。このコードは、システム起動シーケンスの次の段階で、信頼されたソフトウェアのみが実行されることを検証します。開発者はSTM32H7R/S MCUにより、信頼できるシステムを構築する際に、セキュアブートへの複数のパスを利用できます。あらかじめ組み込まれたRoTファームウェアを使用することも、ブートシーケンスを自分で制御することも可能です(図2)。

STMicroelectronicsのSTM32H7R/S MCUのブートパスの図(クリックして拡大)図2:STM32H7R/S MCUは、開発を簡素化するために設計された複数のブートパスを提供します。(画像提供:STMicroelectronics)

システムリセット後、すべてのSTM32H7R/S MCUは、保護されたシステムフラッシュメモリにある信頼されたルートセキュアサービス(RSS)を実行することで、ブートシーケンスを開始します。ブートシーケンスの後続ステップは、MCUのタイプと開発者が選択するブートパスに依存します。各ブートパスにおいて、STM32H7R/S MCUは各ブートレベルの時間的隔離を確実にするために、非表示保護レベル(HDPL)のメカニズムを使用します。ブートシーケンスがあるブートレベルから次のブートレベルに移るとき、HDPLカウンタはインクリメントし、前のブートレベルに関連するリソースは現在のレベルから隠されます。

ブートシーケンス全体を通してRoTを維持

STM32H7Rベースの生産システムのブートパスでは、RSSはシステムリセット時に直ちに実行されます。RSSは、ユーザーフラッシュメモリにあるOEM(自社ブランド製品製造会社)のimmutable RoT(iRoT)ファームウェアを実行します。HDPLはこの次のレベルでインクリメントされるため、RSSはブートシーケンスの次のステップを処理するOEMiRoTファームウェアから隠されたままとなります。アプリケーションがupdatable RoT(uRoT)ファームウェアをサポートするように設計されている場合、OEMiRoTは外部メモリからOEMuRoTファームウェアを実行します。ブートシーケンスの最終段階では、OEMiRoT(またはオプションのOEMuRoT)ファームウェアがアプリケーションコードを実行します。HDPLは、RSS、OEMiRoT、オプションのOEMuRoTがすべてアプリケーションから確実に隠されるようにします。

STM32H7Sベースの生産システムは、STM32H7Rシステムと同様のブートパスに従うように設定でき、ブートプロセスの完全な制御を開発者に委ねることができます。STM32H7S MCUの場合、開発者は、保護されたシステムフラッシュメモリに配置されたSTMicroelectronicsのiRoT(STiRoT)ファームウェアを呼び出す、安全性の高いパスを選択することもできます。

STiRoT対応ブートパスでは、保護された組み込みフラッシュにあるルーチン(iLoader)が、次のブートレベルのコードを内部SRAMにロードします。次に、STiRoTは、そのコードの完全性と信頼性をチェックしてから実行を許可します。1段階ブートパスの場合、iLoaderはアプリケーションコードをSRAMにロードします。2段階ブートパスの場合、iLoaderはOEMuRoTを外部フラッシュからSRAMにロードします。

内部SRAMに格納されたアプリケーションコード(またはOEMuRoTファームウェア)は、外部メモリに存在するコードの検証中に攻撃を受けるリスクなしに、完全性と信頼性をチェックします。検証後、OEMuRoTは、アプリケーションコードの完全性と信頼性をチェックしてからアプリケーションを実行します。開発者は、アプリケーションコードやOEMuRoTファームウェアの更新を検証するために、この2段階ブートパスを簡単に拡張することができます(図3)。

STMicroelectronicsのSTM32H7S MCUの図(クリックして拡大)図3:STM32H7S MCUは、プロセスの各段階でコードの完全性と信頼性を確保するように設計されたマルチステッププロセスにより、セキュアアップデートとセキュアブートを可能にします。(画像提供:STMicroelectronics)

生産システムでの通常動作中、STM32H7R/S MCUの組み込みフラッシュはクローズ状態にあり、RoTファームウェアがプロビジョニングされ、有効なブートエントリが強制されます。さらに、これらのMCUは、製品ライフサイクル全体をサポートするために設計された合計4つのPRODUCT_STATEを提供します(図4)。

PRODUCT_STATE PRODUCT_STATEの選択 内容
オープン NVSTATE = OPEN この状態はコードのデバッグを提供するため、製品開発が可能になります。ブートピンを使用すれば、ブートローダを起動できます。
プロビジョニング NVSTATE = CLOSE
OEM_PROVD=!0xB4
and/or
DBG_AUTH = Not set (!0xB4, !0x51, !0x8A)
この状態では、製品のプロビジョニング(部分的または全体)が可能になります。これにより、セキュアなファームウェアインストールやブートローダを起動し、製品のプロビジョニングを行うことができます。SRAMからのブートは許可されていません。
クローズ NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0x51 or 0x8A
この状態では、製品構成が確定していると見なされます。これにより、現場での修理のためのデビュー認証のサポートが可能になります(専用のアプリケーションノートをお読みください)。
ロック NVSTATE = CLOSE
OEM_PROVD=0xB4
DBG_AUTH=0xB4
この状態では、製品構成が許可されていないと見なされます。製品は最終的にこの状態になります。

図4:STM32H7R/S MCUは、製品ライフサイクル全体をサポートするために設計された4つのPRODUCT_STATEのいずれかで動作します。(画像提供:STMicroelectronics)

開発者は、次の3つの方法でPRODUCT_STATEを制御できます。

  • 不揮発性状態(NVSTATE):フラッシュメモリをオープンまたはクローズ状態に設定します。
  • OEMプロビジョニング(OEM_PROVD):セキュア非表示保護(HDP)領域の安定性を定義し、この領域で実行されるコードがブート後も隠れたままになることを保証します。
  • デバッグ認証方法(DBG_AUTH):デバイスデバッグを開くために使用する方法を定義します。

STM32H7R/S MCUは上記4つの状態により、製品ライフサイクルの各重要フェーズ(製品開発、製品製造、フィールド展開)におけるセキュリティ要件をサポートします(図5)。

製品開発フローチャートの画像図5:製品が開発・製造からフィールド展開に移行する際、STM32H7R/S MCUは、組み込みフラッシュ内の機密コードとデータを保護しながら、必要に応じて認証されたデバッグアクセスを提供します。(画像提供:STMicroelectronics)

実際には、デバッグ認証により、製品ライフサイクルサポートの実際的な課題に対応するよう設計された強力なセキュリティ機能が提供されます。開発者は、クローズ状態で運用されている生産システムに対し、制約のあるデバッグセッションでRoTを危険にさらすことなく、認証プロトコルを使用してセキュアなデバッガでアクセスを再開することができます。完全なリグレッションデバッグでは、コードとデータのセキュリティは保証されません。

スマート製品におけるユーザーインターフェース強化のニーズへの対応

セキュリティが最重要であることに変わりはありませんが、スマート製品はますます洗練されたグラフィカルユーザーインターフェース(GUI)に依存しています。STM32H7R/S MCUは、統合グラフィックアクセラレータを使用してこの要件に対応しています。これには、STM32H7R3/S3 MCUのChrom-ARTアクセラレータと、STM32H7R7/S7 MCUのNeoChromグラフィック処理ユニット(GPU)が含まれます。2D Chrom-ARTアクセラレータと2.5D NeoChrom GPUは、描画とブリット操作で複数のフォーマットをサポートしており、NeoChrom GPUはテクスチャマッピングに必要な操作をサポートしています(図6)。

グラフィック機能 Chrom-ART NeoChrom GPU
対応フォーマット ARGB8888、ARGB4444、ARGB1555、RGB888、RGB565
A8、A4、L8
AI44、AI88
CLUT(256エントリ)、YUV
RGVA8888、ARGB8888
RGBX8888、XRGB8888
RGB888、RGB565、RGBA55551
A8、A4、A2、A1
圧縮TSc4、TSc6、TSc6A
コマンドリストに基づく 不可
描画 矩形塗り 矩形塗り
ピクセル、線、三角形、四角形描画
8xMSAAアンチエイリアシング
ブリッティング コピー
アルファブレンディング
ピクセルフォーマット変換
コピー
アルファブレンディング、カラーキーイング
ピクセルフォーマット変換
テクスチャマッピング 不可 あらゆる角度の回転
スケーリング
ミラーリング
3次元の視点からの適切な投影
双線形サンプリングとポイントサンプリングによるテクスチャマッピング

図6:STM32H7R3/S3 MCUのChrom-ARTグラフィックアクセラレータとSTM32H7R7/S7 MCUのNeoChrom GPUは、スマート製品のGUIに必要なグラフィックス性能と機能を提供します。(画像提供:STMicroelectronics)

評価および開発用として、STMicroelectronicsはSTM32H7R3向けのSTM32 Nucleo-144開発ボードであるNUCLEO-H7S3L8と、STM32H7S7向けのSTM32H7S78-DKディスカバリキットを提供しています。

迅速なプロトタイピング開発用に設計されたNucleo-144ボードは、ST-LINKデバッガ/プログラマを内蔵し、LED、プッシュボタン、複数のボードコネクタオプションを備えています。STM32H7S78-DKディスカバリキットには、Wi-Fi、複数のLEDとプッシュボタン、オンボードSTLINK-V3ECデバッガ/プログラマおよび、USB Type-C®用2個とEthernet RJ45コネクタ1個を含む複数のボードコネクタが搭載されています。

ソフトウェア開発用として、STMicroelectronicsは自社のSTM32Cubeエコシステムの一部としてSTM32Cube MCUパッケージを提供しています。STM32Cube MCUパッケージは、ハードウェア抽象化レイヤ(HAL)モジュール、ボードサポートパッケージ(BSP)、低レイヤレジスタレベルのアプリケーションプログラミングインターフェース(API)に加え、ミドルウェアコンポーネント、コネクティビティスタック、サンプルコードを提供します。グラフィックス開発用として、同社は以下を含むX-CUBE-TOUCHGFXグラフィカルフレームワークを提供しています。

  • グラフィックスアプリケーション開発とシミュレーションのためのTouchGFX Designerツール
  • TouchGFX Engineハードウェア加速グラフィックスライブラリ
  • STM32CubeMXプラグインであるTouchGFX Generator。開発者は、基礎となるハードウェアとオペレーティングシステムにアクセスするためにTouchGFX Engineが使用するTouchGFX抽象化レイヤを設定および生成できます。

バッテリ寿命の延長を保証

最小限の消費電力と最大限のバッテリ寿命は、多くのアプリケーション分野で依然として重要な設計要因となっています。STMicroelectronicsのSTM32U0シリーズ MCUは、産業用、医療用、スマートメータ、民生用の多くの基本的なアプリケーションで必要とされる省エネルギーとバッテリ寿命の延長を実現するように設計されています。超低電力の56MHz Arm Cortex-M0+プロセッサを中心に構築されたSTM32U0 MCUシリーズは、開発者が設計に必要なSRAM、フラッシュ、ペリフェラルの最適な構成を選択できるように、3種類のファミリで構成されています。

STM32U031ファミリは、12KバイトのSRAM、最大64Kバイトのフラッシュメモリ、複数のタイマ、アナログペリフェラル、コネクティビティオプションを備えた最も小型の構成を提供します(図7)。

STMicroelectronicsのSTM32U0 MCUシリーズの3ファミリの画像図7:STM32U0 MCUシリーズの3つのファミリは、STM32U031 MCUファミリの一連の機能の上に構築されています。(画像提供:STMicroelectronics)

STM32U031ファミリの機能を拡張したSTM32U073ファミリは、統合LCDコントローラ、追加のコネクティビティチャンネル、アナログペリフェラルを追加し、40KバイトのSRAMと最大256Kバイトのフラッシュメモリを提供します。STM32U083ファミリは、AES(Advanced Encryption Standard)ハードウェアアクセラレータを追加することで、これらの機能を強化しています。

STM32U0シリーズのMCUはすべて、高集積化とともに、超低電力性能を実現しています。実行モードでは、内蔵の低ドロップアウト(LDO)レギュレータで動作しながら、52μA/MHzしか消費しません。

開発者は、バッテリ駆動アプリケーションでの消費電力を最小限に抑えるために、3つの停止モードを含む複数の低電力モードから選択できます。たとえば、消費電力が最も低い停止モードで、STM32U031 MCUはリアルタイムクロック(RTC)動作ありでわずか630nA、動作なしで515nAしか消費しません。この同じ停止モードで、STM32U073およびSTM32U083 MCUは、RTCありで825nA、RTCなしで695nAしか必要としません。それでも、24MHzのウェイクアップクロックで動作するSTM32U0シリーズの3つのファミリはすべて、この最低電力動作モードから、フラッシュではわずか12.0μs、SRAMでは7.67μsで実行モードに到達できます。

これらのMCUは超低電力動作にもかかわらず、内蔵の適応型リアルタイム(ART)メモリアクセラレータのおかげで、プロセッサ周波数56MHzでフラッシュからの待ち状態なしの実行と同等の性能を達成しています。

STMicroelectronicsは開発サポートとして、STM32U031ベースの評価ボードであるNUCLEO-U031R8、STM32U083ベースの評価ボードであるNUCLEO-U083RC、STM32U083ベースのディスカバリキットであるSTM32U083C-DKを提供しています。同社のSTM32Cubeエコシステム用のSTM32Cube MCUパッケージは、STM32ファミリの他のデバイスと同様に、HALモジュール、BSP、低レイヤAPI、ミドルウェア、コネクティビティスタック、サンプルコードを提供します。

長距離ワイヤレスコネクティビティを実現

スマートシティ、農業、遠隔測定、リモートセンシング、産業用システム向けのモノのインターネット(IoT)アプリケーションでは、長距離サブギガヘルツ(GHz)ワイヤレスコネクティビティによる効率的な設計が不可欠です。これらのアプリケーションの多くは、電力網や機械などの環境要因からの干渉にもかかわらず、信頼性の高い通信を維持する必要があります。これは、干渉に強い長距離広域ネットワーク(LoRaWAN)コネクティビティの使用を示唆しています。

STMicroelectronicsのSTM32WL5MOCH6TRモジュールは、ヨーロッパ、アジア、南北アメリカで動作可能なLoRaWAN認定ソリューションを提供します。この多地域運用能力は、無線モジュールが868MHzの欧州規格と、さらに高い出力に対応する915MHzの北米規格をサポートしていることによるものです。このモジュールは複数の変調方式や150~960MHzの線形周波数範囲に対応しているため、Sigfox、W-MBUS、miotyなど、標準および専用のさまざまな通信プロトコルで世界的な動作をサポートすることができます。

STM32WL5MOCモジュールは、Arm Cortex-M0+とArm Cortex-M4を組み合わせたデュアルコアアーキテクチャをベースに、柔軟な無線トランシーバ、最大64KバイトのSRAM、最大256Kバイトのフラッシュメモリと、包括的なセキュリティサブシステム、タイマ、アナログペリフェラル、コネクティビティインターフェース、制御機能、組み込みスイッチモード電源(SMPS)用の受動部品を組み合わせています。さらに、STMicroelectronicsのSTSAFE-A100セキュアエレメントがSTM32WL5MOCH6STRのバリアントに搭載されています(図8)。

STMicroelectronicsのSTM32WL5MOCモジュールの図図8:STM32WL5MOCモジュールは、デュアルコアアーキテクチャと柔軟な無線、セキュリティ機能、複数の機能ブロック、受動部品を組み合わせて、サブGHzコネクティビティ用のドロップインソリューションを提供します。(画像提供:STMicroelectronics)

STM32WL5MOCモジュールの広範な統合機能とLoRaWAN認証は、長距離無線アプリケーション向けに最適化されたドロップインハードウェアソリューションを設計者に提供します。STMicroelectronicsは、STM32WL5MOCモジュール、4Mビットフラッシュメモリ、256KビットEEPROM、STMicroelectronicsのマイクロエレクトロメカニカルシステム(MEMS)センサ、複数のボードコネクタ、LED、プッシュボタンを組み合わせたB-WL5M-SUBG1拡張ボードを含む包括的なリソースセットにより、開発をさらに加速させます。ソフトウェア開発用に、STM32CubeWL MCUパッケージは、STM32Cubeエコシステムの一部としてSTM32WLシリーズ ボードをサポートしています。

まとめ

民生用、産業用、ヘルスケア、その他のアプリケーション向けのスマート製品には、セキュリティ、消費電力、コネクティビティ、設計の複雑さなどのレベルがあり、単一のマイクロコントローラの機能と一致することはほとんどありません。STM32シリーズのMCUは、設計者に幅広い処理オプションの選択肢を提供し、多様な設計要件おいて最適なマッチングを実現します。ボードとソフトウェアがプロセッサをサポートし、開発を簡素化します。

DigiKey logo

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

著者について

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk氏は、IoTを含むハードウェア、ソフトウェア、システム、アプリケーションなど幅広いトピックについて、20年以上にわたってエレクトロニクス業界および電子業界に関する記事を書いたり経験を積んできました。彼はニューロンネットワークで神経科学のPh.Dを受け、大規模に分散された安全システムとアルゴリズム加速法に関して航空宇宙産業に従事しました。現在、彼は技術や工学に関する記事を書いていないときに、認知と推薦システムへの深い学びの応用に取り組んでいます。

出版者について

DigiKeyの北米担当編集者