STM32WL5 - SubGHz

Sub-GHz 無線コントローラ
レビジョン 1.0

STM32WL5 Sub-GHz 無線コントローラのプレゼンテーションへようこそ。

1

概要• Sub-GHz 無線に統合されている機能：• ISM バンド 150 ~ 960 MHz• 変調方式、ビットレート：• LoRa™、0.013 ~ 17.4 kbps
• （G）FSK、0.6 ~ 300 kbps
• （G）MSK、0.1 ~ 10 kbps
• BPSK、100 ~ 600 bps• 準拠規格• ETSI EN 300 220、EN 300 113、EN 301 166• FCC CFR 47 part 15、24、90、101

アプリケーション側の利点•

複数の Sub-GHz 規格をサポート•

超低消費電力• LoRaWAN™、Sigfox など•

最大 +22 dBm の高出力

• 独自プロトコル•自動較正• ARIB STD-T30、T67、T108

• 標準：

2

Sub-GHz 無線は、ISM の 150 ~ 960 MHz 帯で動作し、LoRa、周波数シフト･キーイング、最小シフト･キーイング、ガウス周波数シフト･キーイング、ガウス最小シフト･キーイング、バイナリ位相シフト･キーイングの各変調方式を提供します。欧州電気通信標準化機構（ETSI）、欧州規格（EN）300 220、300 113、および301 166、連邦通信委員会（FTC）の連邦規則（CFR）47 part 15、24、90、および 101、電波産業会（ARIB）規格 T30、T67、および T108に準拠しています。
LoRaWAN や Sigfox などの規格や独自プロトコルに対応するシステムを構築できます。

2

主な機能
• セキュリティ保護可能なコマンドによる制御• SPI インタフェースを使用• 差動入力による受信入力• 高出力と標準出力のシングルエンド送信出力• CPU から独立した無線動作モード

3

SPI を介した Sub-GHz 無線通信はセキュリティで保護できるので、非セキュアなソースとの相互作用を防止できます。差動受信入力を備え、高出力（最大 +22 dBm）と標準出力（最大 +14dBm）を独立したシングルエンド送信出力で実現します。
Sub-GHz 無線は CPU から独立して動作できます。これは、無線でデータを送受信しながら、CPU システムはいずれかの低消費電力モードで動作できることを意味します。

3

ブロック図VDDPA
VR_PA

RF フロントエンド
PA
レギュレータRFO_HP
RFO_LP

TX

RFI_P
RFI_I

RX

OSC_INOSC_OUTPB0_VDDTCXO

Sub-GHz コントローラ

FSK/MSK
モデム
LoRa
モデム

データ&制御割込み

BUSY
HSE32 制御
hse32

HSE32
TCXO
レギュレータ

SUBGHZSPISUBGHZ

4

Sub-GHz 無線モジュールには、SPI コマンドを使用して SubGHz シリアルペリフェラルインタフェース経由でアクセスします。
このモジュールは、データ処理と制御のロジックを備えたコント
ローラ部、LoRa™ モデムと周波数シフト･キーイング/最小シフト･キーイング･モデム、無線フロントエンドで構成されています。無線フロントエンドは、パワーアンプレギュレータを備えた送信チェイン、受信チェイン、高速外部 32 MHz オシレータ、TCXOレギュレータを備えています。
CPU への専用割込みや Sub-GHz 無線ビジー情報などを提供します。
HSI 32 MHz クロック制御により、HSI 32 MHz オシレータとその動作モードを制御できます。この動作モードとして、TCXOが動作するモードもあります。

4

LoRa™ モデム• フレームの構成• 明示的パケット（ヘッダあり、可変長ペイロード）• 暗黙的パケット（ヘッダなし、固定長ペイロード）
n 個のシンボル

プリアンブル

ヘッダ + CRC
CR 4/8

ペイロード

CRC

CR 設定可能• モデム設定：• 変調帯域幅 = 7.81 ~ 500 kHz• 拡散率 = 32 ~ 4,096 チップ数/シンボル数• 符号化率 = 4/4 ~ 4/8• チャネル動作検出
5

LoRa モデムには、次に示す 2 つのフレーム設定があります。
明示的パケット･モード：オーバーヘッドが増加するので通信時間が長くなります。このパケット･タイプでは、ヘッダフィールドの追加によって可変長ペイロードのパケットを転送できます。
暗黙的パケットモード：オーバーヘッドが最小限なので通信時間は最も短くなります。このパケットタイプでは、事前定義した固定長のペイロードを持つすべてのパケットを転送する必要があります。ヘッダフィールドはありません。
プリアンブル長は設定できます。

プログラム可能な変調帯域幅や拡散率を使用してモデムを設定し、データレートと通信範囲との効果的な組み合わせを実現できます。変調帯域幅と拡散率の一方または両方を小さくすると、通信範囲を拡大できます。また、符号化率によって干渉に対する堅牢性を強化できますが、パケットの通信時間は長くなります。符
号化率が大きいほど、通信の堅牢性が高くなります。
チャネル動作検出を使用して、通信を開始する前に LoRa 信号の有無を検出できます。
5

汎用フレーム構成• フレームの構成• FSK モデムと MSK モデムで使用• NRZ 符号化• プログラム可能なプリアンブル長• 長さをプログラム可能なオプションのアクセス先アドレス• 可変長パケット（ヘッダあり、可変長ペイロード）• 固定長パケット（ヘッダなし、固定長ペイロード）• オプションのホワイトニング（9 ビット LFSR x9 + x5 + x1、プログラム可能な初期値）• ペイロードの CRC（多項式、初期値、反転、長さを、プログラム可能）
n 個のシンボル

m 個のシンボル

プリアンブル

アクセス先アドレス

ヘッダ + RFU

ペイロード

CRC

ホワイトニング
6

汎用フレーム構成は、周波数シフト･キーイング変調と最小シフ
ト･キーイング変調で使用され、Non Return to Zero 符号化を使用します。
• プリアンブル長は設定できます。
• オプションのアクセス先アドレスフィールドを追加でき、その長さは設定可能です。
• 可変長パケット･モードを使用すると、オーバーヘッドの増加によって通信時間が長くなります。このパケットタイプでは、ヘッダフィールドを追加することによって可変長ペイロードのパケットを転送できます。
• 固定長パケット･モードでは、オーバーヘッドが最小限になるので通信時間は最短になります。このパケットタイプでは、事前定義した固定長のペイロードを持つすべてのパケットを転送する必要があります。ヘッダフィールドはありません。
• 必要に応じてホワイトニングをペイロードに追加できます。
• 巡回冗長検査（Cyclic Redundancy Check）の多項式、初期値、CRC 反転、長さはすべてプログラム可能です。

6

FSK モデム• モデム設定：• ビットレート = 600 bps ~ 300 kbps
• ガウシアン･フィルタ（オプション） BT = 0.3 ~ 1.0• 変調帯域幅 = 4.8 ~ 467 kHz• 周波数偏差• 1.2 kbps を超えるデータレートでは、周波数偏差をビットレートの 1/4 に設定することによって MSK 変調に使用可能

7

周波数シフト･キーイング･モデムでは次の値を設定できます。
• ビットレート• ガウシアン･フィルタ• 変調帯域幅• 周波数偏差7

MSK モデム• MSK 変調は送信モードでのみ使用可能• モデム設定：• ビットレート = 100 bps ~ 10 kbps
• ガウシアン･フィルタ（オプション） BT = 0.3 ~ 1.0• 固定変調指数 = 0.58

最小シフト･キーイング･モデムは送信モードでのみ使用でき、ビットレートとガウシアン･フィルタリングを設定できます。

8

BPSK モデム
• BPSK 変調は送信モードでのみ使用可能• フレームの構成• CPU 制御下で優れた柔軟性を持つパケットフォーマット

• モデム設定：• ビットレート = 100 bps および 600 bps• 固定二乗余弦ガウシアン･フィルタ BT = 0.5• データを前処理することで DBPSK 変調を実現可能

9

バイナリ位相シフト･キーイング･モデムは、送信モードでのみ使用できます。
バイナリ位相シフト･キーイングのフレーム構成は柔軟性に優れ、全面的にファームウェアの制御下にあります。
プリアンブル、アクセス先アドレス、ヘッダフィールド、ペイロード、CRC はファームウェアで指定します。
バイナリ位相シフト･キーイング･モデムではビットレートのみを設定できます。データを前処理することによって、差動バイナリ位相シフト･キーイング変調を実現できます。

9

Sub-GHz 無線動作モード
リセット

スタート
アップ

スリープ
ウォーム･スタート

コールド･スタート

較正

スタンバイ

周波数シンセサイザ

FS
送信アクティブTX

受信RX
10スライドに Sub-GHz 無線動作モードを示します。
起動フェーズでは、Sub-GHz 無線の内部電源と内部クロックが起動し、つづいてスリープ状態に移行します。
スリープ状態は最小消費電力モードです。無線は動作していません
が、必要に応じ、Sub-GHz の RTC タイマを動作状態に維持してデューティサイクル動作を実現できます。スリープ状態を終了するには、Sub-GHz シリアルペリフェラルインタフェースの NSS 信号をファームウェアでローに設定する必要があります。
コールド･スタートの場合、内部オシレータ周波数、無線PLL、無線AD コンバータ、イメージ除去など、Sub-GHz 無線のいくつかのブロックがキャリブレーションフェーズで較正されます。
スタンバイ状態に移行した場合にのみ、ファームウェアは、Sub-GHzシリアルペリフェラルインタフェースを通じて Sub-GHz 無線と通信し、アクティブ状態に入る前に設定パラメータをプログラミングできます。
周波数シンセサイザ状態では、無線の PLL は要求された無線周波数にロックされます。つづいて、送信状態と受信状態に移行できます。
送信状態と受信状態では、選択した変調方式によって実際のデータが無線周波数で転送されます。

10

Sub-GHz 無線通信
• Sub-GHz 無線はコマンドベースの SPI インタフェースで制御• コマンド構造：• OP コード（1 バイト）
• パラメータ（コマンドに応じて 0 ~ n 個）

• OP コードは、Read_Buffer、Set_Tx、Set_ModulationParams などのコマンドの指定に使用• パラメータは設定とステータス情報に使用• コマンドを受信できない場合はビジーが返される

11

Sub-GHz 無線通信は、コマンドベースのシリアルペリフェラルインタフェース（SPI）経由で実行されます。このコマンド構造では、コマンドを指定する 1 バイトの OP コードの後にコマンド･パラメータが続きます。パラメータの数はコマンドによって異なります。
Sub-GHz 無線がコマンドを受け取ることができない状態にあると、ビジー情報が返されます。このような状態として、現在要求されているコマンドを処理している状態や、低消費電力モードに移行した状態などがあります。

11

データバッファ• 256 バイト RAM

ファームウェア側• TX データバッファ• TxBaseAddr• TxBufferPointer• PayloadLength

TX データバッファ

Write_Buffer()

RX データバッファ• ハードウェアで書き込み、ファームウェアで読み出す
Read_Buffer()• RxBaseAddr• RxStartBufferPointer

TxBufferPointerTxBaseAddr• RX データバッファ• パラメータ：

Sub-GHz 無線側

TxBaseAddr +PayloadLength• ファームウェアで書き込み、ハードウェアで読み出す• パラメータ：

RAM

受信した
ペイロード

RxStartBufferPointer +RxPayloadLength

RxStartBufferPointer

RxBaseAddr• RxPayloadLength

12

送受信データは、Sub-GHz 無線のデータバッファ RAM（256 バイト）に格納されます。送信データバッファと受信データバッファには、Sub-GHz 無線のシリアルペリフェラルインタフェース･コマンドを使用してアクセスします。この RAM は循環型なので、指定したアドレスが 0xFF を超えるとアドレス 0x00 に戻ります。
送信バッファはファームウェアで書き込み、ハードウェアで読み出します。送信バッファの先頭は送信ベース･アドレスで定義し、バッファ長はペイロード長で定義します。ハードウェアは、送信バッファポインタを使用してデータを読み出します。
受信バッファはハードウェアで書き込み、ファームウェアで読み出します。受信バッファの先頭は受信ベース･アドレスで定義します。
ハードウェアは、受信開始バッファポインタを使用してデータの読出しを開始します。データは、受信ペイロード長で定義したバッファ長まで読み出されます。受信したデータ量が受信バッファ長を超える場合、RAM 上の他のデータが上書きされます。

12

LoRa™、（G）FSK、（G）MSK の基本的な送信動作•

送信データバッファの定義 Set_BufferBaseAddress()•

バッファデータの書込み Write_Buffer()•

パケットタイプの選択 Set_PacketType()•

フレームフォーマットの定義 Set_PacketParams()•

同期ワードの定義 Write_register()•

無線周波数の定義 Set_RfFrequency()•

パワーアンプ設定の定義 Set_PaConfig()•

送信出力の定義 Set_TxParams()•

変調方式の定義 Set_ModulationParams()•

送信割込み終了の設定 Cfg_DioIrq()•

送信開始 Set_Tx()
Sub-GHz 無線でパケット送信•

送信割込み終了の待機およびステータスの読出し Get_IrqStatus()•

割込みのクリア Clr_IrqStatus()
13

このスライドは、基本的な LoRa 送信の実行手順を示しています。

13

LoRa™、（G）FSK の基本的な受信動作•

受信データバッファの定義 Set_BufferBaseAddress()•

パケットタイプの選択 Set_PacketType()•

フレームフォーマットの定義 Set_PacketParams()•

同期ワードの定義 Write_register()•

無線周波数の定義 Set_RfFrequency()•

変調方式の定義 Set_ModulationParams()•

受信割込み終了の設定 Cfg_DioIrq()•

受信開始 Set_Rx()
Sub-GHz 無線で受信•

受信割込み終了の待機および受信パケットステータスのチェック Get_IrqStatus()••

受信バッファ情報の読出し Get_RxBufferStatus()•

受信データの読出し Read_Buffer()

割込みのクリア Clr_IrqStatus()
14

このスライドは、基本的な LoRa 受信の実行手順を示しています。

14

BPSK の基本的な送信動作•

送信データバッファの定義 Set_BufferBaseAddress()•

パケット定義全体のバッファデータの書込み Write_Buffer()•

パケットタイプの選択 Set_PacketType()•

フレームフォーマットの定義 Set_PacketParams()•

無線周波数の定義 Set_RfFrequency()•

パワーアンプ設定の定義 Set_PaConfig()•

送信出力の定義 Set_TxParams()•

変調方式の定義 Set_ModulationParams()•

送信割込み終了の設定 Cfg_DioIrq()•

送信開始 Set_Tx()
Sub-GHz 無線でパケット送信•

送信割込み終了の待機およびステータスの読出し Get_IrqStatus()•

割込みのクリア Clr_IrqStatus()15

このスライドは、バイナリ位相シフト･キーイング（BPSK）変調方式を使用した基本的な送信の実行手順を示しています。

15