6 LoRaWANデバイスの初期設定と通信手順
本章では、LoRaWANプロトコルにおけるLoRaWANデバイスの核となる通信機能について解説します。ここでは主に、デバイスの動作モードを定義するClass AとClass C、そしてネットワークへの参加プロセスであるJoin機能に焦点を当てます。これらの機能は、デバイスの電力効率、レスポンス時間、セキュリティなど、IoTの重要な側面に直接影響を与えます。
#
6.1 DevEUI(デバイス固有アドレス)の設定LoRaWANにおいては、通信デバイスに固有のIDである、その網内でユニークな、一般的にはグローバルユニークなDevice EUI、または、DevEUI(Device Extended Unique Identifier)を必要とします。LoRaWANプロトコルにおけるDevEUIは、64bitで表現され、通常は、デバイス設計・製造メーカによって、IEEE(Institute of Electrical and Electronics Engineers)から割り当てられたMAブロック(MAC Address Block)から生成された64bitユニーク識別子が割り当てられます。また、この識別子は、個体に固有でありグローバルにユニークです。
本モジュールにおいては、DevEUIの設定方法について以下のいくつかのオプションを提供しています。
- 設計者によってIEEEから取得したMAアドレスから生成し割り当てる
- 当社が本モジュール用に割り当てた配布DevEUIを適用して使用する
- TTN(The Things Network)などのLoRaWANネットワークサービスによって提供されるDevEUIを割り当てて使用する
- 利用者が制限されたプライベート網内に限って、限定された任意のDevEUIを選択して割り当てて使用する
4の方法を除き、いずれもグローバルユニークである必要があります。
本モジュールについては、いずれの方法であっても、AT+CDEVEUIコマンドによって、DevEUIを本モジュールの不揮発メモリに登録して使用することが可能です。
TTNからDevEUIの発行を受けるには、以下を参照してください。
https://www.thethingsindustries.com/docs/devices/adding-devices/
#
6.2 通信手順LoRaWANデバイスがネットワークと通信を開始するためには、まずネットワークに「Join」(参加)する必要があります。この過程は、デバイスの認証と初期化を行い、安全な通信チャネルを確立するためのものです。LoRaWANプロトコルでは、主に2つのJoin方式があります:Over-The-Air Activation (OTAA) とActivation By Personalization (ABP)です。ここでは、より安全で柔軟性の高いOTAA方式を中心に説明します。
1. Join前の準備
Join処理を開始する前に、デバイスには以下の情報が必要です:
- DevEUI:デバイスの一意の識別子
- AppEUI:Joinサーバーの識別子
- AppKey:アプリケーション鍵、デバイスとネットワークサーバ間で共有される暗号鍵
これらの情報はそれぞれAT+CDEVEUI、AT+CAPPEUI、AT+CAPPKEYコマンドにより設定可能です。
2. OTAA Joinの手順
2-a. Join-request の送信:
デバイスは、DevEUI、AppEUIを含むJoin-requestメッセージを生成し、ゲートウェイに送信します。
2-b. Join-accept の受信:
ネットワークサーバがJoin-requestを検証し、デバイスの参加を許可する場合、Join-acceptメッセージをゲートウェイ経由でデバイスに送信します。このメッセージには、デバイスアドレス(DevAddr)、ネットワークID、その他のネットワークパラメータが含まれます。
2-c. セッション鍵の生成:
デバイスはJoin-acceptメッセージを受信すると、AppKeyを使用してセッション鍵(NwkSKey、AppSKey)を生成します。これらの鍵は、以降の通信の暗号化と認証に使用されます。
3. Join処理の開始方法
Join処理を開始するには、通常以下のステップを踏みます:
3-a. LoRaWANプロトコルの初期設定:
LoRaWANプロトコルに必要なパラメータ(地域設定、チャネル情報など)を設定します。
3-b. Join処理の開始:
AT+DJOINコマンドを使用してJoin処理を開始します。
3-c. Join状態の確認:
AT+CSTATUSコマンドを使用して、Joinの成功を確認します。Joinが成功すると、デバイスはネットワークに接続された状態になります。
4. Join後の通信
Join処理が成功すると、デバイスはネットワークと通信を開始できます。通常の通信手順は以下の通りです。
4-a. アップリンク送信:
AT+DTRXコマンドを使用してデータを送信します。
4-b. ダウンリンク受信:
Class Aデバイスの場合、アップリンク送信後の2つの受信ウィンドウでダウンリンクメッセージを受信します。受信したメッセージは、AT+DRX?コマンドで確認できます。
以上の手順に従うことで、LoRaWANデバイスをネットワークに接続し、通信を開始することができます。
#
6.3 LoRaWANクラス(Class AとClass C)本モジュールでは、LoRaWANのプロトコル規定の内、Class AとClass Cに対応しており、AT+CCLASSコマンドによってデバイスのクラスを制御することができます。
LoRaWANプロトコルでは、デバイスの動作特性を定義するために異なるクラス(A、B、C)が規定されており、各クラスの特徴として次の通りです。
- Class A - 最も省電力な動作モード
- Class B - ビーコンを利用した定期的な受信が可能なモード
- Class C - 常時受信が可能なモード
ここではより本モジュールでサポートしているClass AとClass Cについて詳しく説明します。
Class A
Class Aは、LoRaWANデバイスの基本的な動作モードであり、最も電力効率の高いクラスです。このクラスでは、デバイスはアップリンク主導型の通信を行います。具体的には、デバイスがアップリンク送信を行った後、短い時間だけ2つの受信ウィンドウ(RX1とRX2)を開きます。それ以外の時間は、デバイスはスリープ状態を維持します。この動作原理により、Class Aは極めて低い電力消費を実現し、バッテリー駆動デバイスに最適な選択肢となります。ただし、アップリンク送信後のみダウンリンクが可能なため、リアルタイム性は低くなります。すべてのLoRaWANデバイスは、必ずClass Aをサポートする必要があり、本モジュールにおいてもサポートしています。Class C
Class Cは、常時受信可能な状態を維持するモードで、最もレスポンス性の高いクラスです。Class Cデバイスは、アップリンク送信時以外、常に受信ウィンドウを開いた状態を維持します。具体的には、RX2のパラメータ(周波数、データレート)で継続的に受信待機します。この動作により、Class Cは最小のダウンリンク遅延を実現し、ほぼリアルタイムの双方向通信が可能となります。ただし、常時受信状態を維持するため、電力消費が大きくなります。