#クラスAの基本
LoRaWANの通信プロトコルについて調べると、方式は非常に簡単であることがわかるが、どれも説明不十分で詳細を理解できないことが多い。
LoRaWANの基本的な通信は、クラスAとして定義されたプロトコルを使用する。クラスAでは、かならずエンドデバイスからデータを送信し、その後データを受信する単純なプロトコルとなっている。その説明では、下のような図をよく見かける。
この図の説明がどれもよろしくない。
※LoRaWAN仕様書1.0.2から引用
##錯覚1
先ほどの図を見ると、送信後にRX1とRX2が2回送られてくるのではないかと錯覚する。
これが紛らわしい。RX1とRX2は、受信中を示しているのではなく、受信を待機している期間を示している。この、RX1とRX2を受信スロットと呼ぶ。そして、ゲートウェイは、RX1とRX2のいずれか片方の時間帯に下りデータを送信する。
受信スロット | 説明 | 受信周波数 |
---|---|---|
RX1 | 最初の受信待機の期間。送信完了後1秒後(RECEIVE_DELAY1)に開き、受信ウィンドウ時間後に閉じる。 | デフォルトでは直前の上りデータの周波数と同じである必要がある。ただし、ネットワーク側からの指示(MACコマンド)により、受信周波数を変更することが可能。 |
RX2 | 2番目の受信待機の期間。送信完了後2秒後(RECEIVE_DELAY2)に開き、受信ウィンドウ時間後に閉じる。 | AS923のデフォルトでは923.2MHzが使用される。ただし、ネットワーク側からの指示(MACコマンド)により、受信周波数を変更することが可能。 |
##錯覚2
さらに、錯覚するのは、下りデータの受信時間だ。
最初の図を見ると、RECEIVE_DELAY1とRECEIVE_DELAY2の期間の1秒しか受信できないのではないかと錯覚する。つまり、1秒に収まるデータ量しか受信できないのではないかと勘違いする。
ところが、LoRaWANの規格では、最大送信時間は3秒なので、1秒を超えたデータ量を受信することができる。
つまり、RX1の期間に受信を開始した場合、受信が終わるまで最大3秒間は受信を続けることができる。その場合は、RECIVE_DELAY2の時間を過ぎてしまうので、エンドデバイスはRX2スロットは無視して、RX1の受診を継続することになる。
##まとめ
・クラスAは、LoRaWANの基本クラスで、エンドデバイスから送信しないと、受信できない。
・RX1、RX2は受信スロットと呼び、エンドデバイスが受信待機する期間を表す。
・エンドデバイスは、RX1スロットで必ず受信を待機し、データを正常に受信した場合は、RX2スロットを開かない。
・RX1スロットでデータが来なかった場合、または他人宛てのデータを受診した場合は、RX2スロットを開く。
・受信できるデータの最大時間は3秒。
・RX1、RX2ともに受信スロットの周波数はMACコマンドでネットワーク側から変更可能。
また、ゲートウェイがRX1スロットで送信するのか、RX2スロットで送信するのかは、LoRaWANネットワーク側で制御する。例えば、RX1スロットで使用する周波数が混雑している場合は、RX2スロットを使うなどの制御が考えられる。