
LoRaWANゲートウェイを開発するエンジニアの中には、STM32の世界から来た人も多く、EspressifのESPの世界から来た人も多くいます。ホストプロセッサを選ぶ段階になると、議論はほぼ避けられません。STM32H7は480 MHzで動作し、CoreMarkは2,000を超えるため、生の性能では明らかに優位です。ESP32-S3はスペック上は見劣りしますが、近年IoTゲートウェイ設計で人気の選択肢となっています。ManThinkのGD6オープンソースゲートウェイもその一例です。
本記事ではこの問いを分解します。結論を先に言えば: 「どのチップがより強力か」ではなく、「どのチップがゲートウェイのワークロードに適合するか」という問題です。 ゲートウェイという具体的なケースでは、ESP32-S3のアーキテクチャは要件のスイートスポットにぴったり収まります。一方、STM32の演算能力の多くは使われず、STM32に欠けているもの(無線接続)はBOMコストと設計の複雑さで買い戻さなければなりません。
選定の議論の多くは、ゲートウェイホストのタスクプロファイルの誤解から生じます。LoRaWANゲートウェイを開いてみましょう:
LoRa物理層はホストの仕事ではありません。 SF7~SF12信号の復調、8周波数チャネルの監視、16並列復調チャネルの処理は、すべてコンセントレータチップ(SX1301/SX1302)が行います。コンセントレータは復調済みのパケットをSPI経由でホストに渡します。ホストがSPIバスから受け取るのはRFサンプルではなく、構造化されたJSON/バイナリフレームです。
つまりゲートウェイホストの実際の役割は 「ネットワークプロセッサ」 であり、「リアルタイムコントローラ」ではありません:
このワークロードのプロファイル: 接続が多く、バッファを大量に消費し、スループットがバースト的 — ただしハードリアルタイムの期限はありません。 モータ制御もマイクロ秒レベルのPWM精度も不要で、最も「リアルタイム」な要件は「SPIキューをオーバーフローさせないこと」だけです。これを理解すれば、以下のすべての比較が腑に落ちます。
主要な仕様は以下の通りです(出典:Espressif公式データシート):
| 項目 | 仕様 |
|---|---|
| CPU | Xtensa 32ビット LX7デュアルコア、最大240 MHz |
| CoreMark | 1329.92デュアルコア(5.54 CoreMark/MHz) |
| オンチップSRAM | 512 KB(加えて384 KB ROM) |
| 無線 | 2.4 GHz Wi-Fi(802.11 b/g/n)+ Bluetooth 5 LE |
| GPIO | 45個のプログラマブルGPIO |
| 外部メモリ | Quad/Octal SPIフラッシュおよびPSRAM、最大32 MBマッピング可能 |
| 命令拡張 | 128ビットSIMDベクトル命令 + 単精度FPU |
| セキュリティ | RSAセキュアブート、AES-XTSフラッシュ暗号化、HMAC、デジタル署名ペリフェラル |
| インターフェース | 3×UART、2×I2C、2×SPI(加えて2汎用SPI)、USB OTG、TWAI(CAN)、SD/MMC |
| ディープスリープ | 約7 µA(RTCドメイン保持) |
生のCPU演算性能だけを見れば、確かにSTM32H7(Cortex-M7 @480 MHz、CoreMark 2020 @400 MHz)に劣ります。ただしSTM32H7にない3点に注目してください: オンチップWi-Fiベースバンド、高帯域Octal PSRAMインターフェース、そしてその両方を中心に構築された無料のプロトコルスタックエコシステムです。
ManThink(門思科技)は、デバイス接続、ネットワーク、データ活用に向けたIoT製品を提供しています。この記事の技術情報とあわせて、以下の製品情報をご覧ください。
これはゲートウェイのシナリオで最も重視される点です。
STM32にWi-Fiはありません。STM32でWi-Fiバックホールのゲートウェイを構築するには外部Wi-Fiモジュール(通常はATコマンドまたはSPIモジュール)が必要です。つまり、追加のBOMコスト、追加のファームウェア複雑さ(ATコマンドのステートマシンは非常に壊れやすいことで知られています)、モジュールインターフェースに制限されたスループット、そしてTLSをモジュール内で実行する(鍵管理の制御を失う)かメインMCUで実行する(性能コストを再び支払う)かの二者択一を意味します。
ESP32-S3のWi-Fiはオンチップベースバンドであり、以下をサポートします: Station + SoftAP同時モード。GD6ゲートウェイはこの機能を最大限に活用しています:
GD6-<Gateway EUI> ホットスポット(デフォルトパスワード lgw12345678)をブロードキャストします。管理者はこれに接続し、次のURLでWebコンソールにアクセスします: 192.168.4.1この設計の要点: AP管理チャネルはバックホールリンクから独立しています。 イーサネットが切断され、Wi-Fi STAが接続できず、4GのSIMがデータを使い果たしたとしても、管理者は常にホットスポットに参加してローカルでトラブルシューティングできます。これをSTM32で再現するには、AP対応の別個のWi-Fiモジュールが必要となり、コストと複雑さが再び加算されます。
セクション1のワークロードプロファイルを振り返ってください:TLSセッション、デュアルMQTT接続(データ + リモート設定)、同時Webコンソールリクエスト、高チャネル負荷時のLoRaパケットバッファリング — これらはすべて メモリバッファを大量に消費する 負荷です。
ESP32-S3の512 KBのオンチップSRAMではTLS保護されたWebサーバを実行するには不十分ですが、Octal SPI PSRAMインターフェースを備えています。GD6で使用されるESP32-S3-WROOM-1 N8R8モジュールは以下を搭載しています: 8 MBのOctal PSRAM、80 MHzで動作 — 高負荷時や同時Webリクエスト時でもデータバッファリングを維持するのに十分です。さらに8 MB QIOフラッシュ(A/Bデュアルファームウェアパーティション+SPIFFS+Web静的アセットを保持)を加えると、このメモリ構成はゲートウェイのワークロードに余裕をもって適合します。
ではSTM32H7はどうでしょうか?オンチップSRAMの最大値は1 MBで、ESP32-S3の総使用可能メモリより小さくなります。同じ容量を確保するにはFMC経由の外付けSDRAMが必要となり、バス配線、タイミング調整、電源整合性の面で追加のエンジニアリング作業が発生します。「ネットワークプロセッサ」的なワークロードには、その高帯域で決定論的なメモリアーキテクチャは過剰です。
ESP32-S3のデュアルコアLX7の特性は、ゲートウェイに非常にうまく適合します: Wi-Fiプロトコルスタックをコア0に固定し、アプリケーションロジックをコア1で実行できます。 バースト的なネットワークスタック負荷(TLSハンドシェイク、Wi-Fiドライバイベント)が、アプリケーション側のSPI受信ループやWebサービスを中断することはありません。
デュアルコアのSTM32H7製品(H745/H747:M7+M4)でも同様の分割は可能ですが、それは2つの異なるコア、2つのファームウェアイメージ、そしてAMPアーキテクチャの下で自前で構築するコア間通信を意味します。ESP-IDFのSMPスケジューリングは「通常のFreeRTOSコードを書けば、システムがコアを自動的に割り当てる」というもので、開発体験に明確な差があります。
ネットワークに接続されリモート更新可能なデバイスにとって、セキュリティは必須です。ESP32-S3のハードウェアセキュリティユニットは、このシナリオに正確に対応します:
STM32H7にも同等の機能を持つCRYP/HASHペリフェラルがあります。これは引き分けであり、ESP32-S3の優位性ではありません — しかし以下のエコシステム要因と組み合わさると、ESP32-S3のセキュアブート設定コストは低くなります(menuconfigでチェックボックスを設定し鍵を書き込むだけ。STのフローではSFIセキュアファームウェアインストールプロセスが必要です)。
商用製品ではコスト差は量とともに増大します。オープンソースプロジェクトではエコシステムの差がプロジェクトの存続自体を左右します。GD6はその両方を必要とし、ESP32-S3は自然な交点です。
本記事は「STM32が悪い」というものではありません。STM32の代替不可能なシナリオを列挙することで、選定フレームワークが完全になります:
一言で言えば: ゲートウェイは「接続デバイス」であり、「制御デバイス」ではありません。 製品がモータを制御し、精密アナログ信号をサンプリングし、または85°Cを超える環境で動作するなら、STM32が正解です。製品がデータを転送し、TLSを終端し、Webページを配信するなら、使わない機能に金を払うのは無駄です。
GD6(GD61xシリーズ)のオープンソース設計では、この「強みを活かす」考え方を示すいくつかの実践があります:
W5500がEthernetをCPUからオフロードします。 GD6のEthernetはESP32-S3のSPI上でソフトウェアスタックを動かすのではなく、W5500のハードウェアTCP/IPスタックチップを使用しています。Ethernetプロトコル処理はチップ内部で完結し、ホストCPUを消費しません。ホストの演算資源はLoRaデータ処理とWebサービスに残されます。生の演算性能が得意分野ではないと知った上での賢い設計です。
3つのバックホールリンク、それぞれに役割があります。 Ethernet(W5500)> Wi-Fi STA(オンチップ)> 4G(miniPCIe Cat 1モジュール)を自動優先度切り替えで運用し、リンク障害時でもWi-Fi AP経由で管理チャネルに到達可能です。
8 MBフラッシュ、A/Bパーティション構成。 2つの完全なファームウェアイメージ + SPIFFS設定領域 + Web静的アセットを格納し、アップグレード失敗時には自動ロールバックします。遠隔地で無人運用されるゲートウェイには必須要件であり、フラッシュ容量を削れない理由でもあります。
特筆すべきは制御グループです。 ManThinkの商用ゲートウェイ製品ライン(GDI51/GDO51)はLS1012A(Cortex-A53 @800 MHz、組み込みLinuxとThinkLink Edge NS内蔵)を採用しています。ホストが完全なNSとアプリケーションプラットフォームを実行する「ゲートウェイ・アズ・サーバー」アーキテクチャであり、まったく異なるワークロードです。同じ企業内で、軽量オープンソースゲートウェイはESP32-S3を選び、エッジサーバーゲートウェイはCortex-A Linux SoCを選ぶという事実は、まさに本記事のテーマを裏付けています: ホストの選択はワークロードに従うものであり、万能の答えはありません。
すべてを3つの実践的な問いに凝縮します:
問い1:あなたのデバイスは「接続」か「制御」か? プロトコルデータの転送、Web/TLS/MQTTの実行 → 接続型、ESP32-S3との適合度が高い。モーター制御/精密アナログのサンプリング/マイクロ秒のリアルタイム性 → 制御型、STM32を選択。
問い2:無線は必須か、贅沢か? Wi-FiバックホールやWi-Fiプロビジョニングが必要 → ESP32-S3でオンチップ解決。純粋なEthernetのみで無線要件が一切ない → STM32との差は縮まるが、メモリ拡張とエコシステムのコストは残る。
問い3:プロジェクトの寿命はどれくらいで、どの温度で動くか? 10+年の供給保証、-40~105°C → STM32(または単純にCortex-A Linuxソリューション)。通常の商用サイクルと温度 → ESP32-S3で容易に対応可能。ただしPSRAM統合型の65°C制限に注意。
3つの答えがすべて「接続性」を指すなら、ESP32-S3は今日のエコシステムで総コストが最も低い答えの一つです。すべてが「制御」を指すなら、迷わずSTM32に戻ってください。
冒頭の問いに戻ろう。ESP32-S3がIoTゲートウェイでの地位を獲得した理由は何か。それは、ゲートウェイが最も必要とする三つの要素——ワイヤレス接続性、大容量メモリバッファ、成熟したネットワークスタック——を、一桁ドル台のモジュールに最小の統合コストで詰め込んでいる点にある。そして、それが欠いている生の演算能力こそ、まさにゲートウェイが使わない部分なのである。
チップ選定の知恵は、最強のチップを選ぶことではなく、 最も無駄の少ないものを選ぶことです。
データソース:Espressif ESP32-S3公式データシート(v2.0)、ST STM32H7公式製品ページ、ThinkLink MCPドキュメントライブラリ(GD61x仕様およびユーザーガイド)。GD6のホスト選定に関するエンジニアリング分析は公開仕様に基づく推論であり、ManThinkの公式ドキュメントは内部の選定判断を完全には開示していません。