クラスAの基本

LoRaWANの通信プロトコルについて調べると、方式は非常に簡単であることがわかるが、どれも説明不十分で詳細を理解できないことが多い。

LoRaWANの基本的な通信は、クラスAとして定義されたプロトコルを使用する。クラスAでは、かならずエンドデバイスからデータを送信し、その後データを受信する単純なプロトコルとなっている。その説明では、下のような図をよく見かける。
この図の説明がどれもよろしくない。

image.png

※LoRaWAN仕様書1.0.2から引用

錯覚1

先ほどの図を見ると、送信後にRX1とRX2が2回送られてくるのではないかと錯覚する。
これが紛らわしい。RX1とRX2は、受信中を示しているのではなく、受信を待機している期間を示している。この、RX1とRX2を受信スロットと呼ぶ。そして、ゲートウェイは、RX1とRX2のいずれか片方の時間帯に下りデータを送信する。

RX1で受信した場合、RX2は受信しない
image.png

RX1で受信しなかった場合、RX2で受信する
image.png

受信スロット 説明 受信周波数
RX1 最初の受信待機の期間。送信完了後1秒後(RECEIVE_DELAY1)に開き、受信ウィンドウ時間後に閉じる。 デフォルトでは直前の上りデータの周波数と同じである必要がある。ただし、ネットワーク側からの指示(MACコマンド)により、受信周波数を変更することが可能。
RX2 2番目の受信待機の期間。送信完了後2秒後(RECEIVE_DELAY2)に開き、受信ウィンドウ時間後に閉じる。 AS923のデフォルトでは923.2MHzが使用される。ただし、ネットワーク側からの指示(MACコマンド)により、受信周波数を変更することが可能。

錯覚2

さらに、錯覚するのは、下りデータの受信時間だ。
最初の図を見ると、RECEIVE_DELAY1とRECEIVE_DELAY2の期間の1秒しか受信できないのではないかと錯覚する。つまり、1秒に収まるデータ量しか受信できないのではないかと勘違いする。
image.png
ところが、LoRaWANの規格では、最大送信時間は3秒なので、1秒を超えたデータ量を受信することができる。
つまり、RX1の期間に受信を開始した場合、受信が終わるまで最大3秒間は受信を続けることができる。その場合は、RECIVE_DELAY2の時間を過ぎてしまうので、エンドデバイスはRX2スロットは無視して、RX1の受診を継続することになる。

RX1で長い下りデータを受信
image.png

RX2で長い下りデータを受信
image.png

まとめ

・クラスAは、LoRaWANの基本クラスで、エンドデバイスから送信しないと、受信できない。
・RX1、RX2は受信スロットと呼び、エンドデバイスが受信待機する期間を表す。
・エンドデバイスは、RX1スロットで必ず受信を待機し、データを正常に受信した場合は、RX2スロットを開かない。
・RX1スロットでデータが来なかった場合、または他人宛てのデータを受診した場合は、RX2スロットを開く。
・受信できるデータの最大時間は3秒。
・RX1、RX2ともに受信スロットの周波数はMACコマンドでネットワーク側から変更可能。

また、ゲートウェイがRX1スロットで送信するのか、RX2スロットで送信するのかは、LoRaWANネットワーク側で制御する。例えば、RX1スロットで使用する周波数が混雑している場合は、RX2スロットを使うなどの制御が考えられる。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.