phyヘッダーを含むLoraWanの最大パケットサイズはいくつですか


7

開発目的の一時的なゲートウェイとして使用するために、Arduinoを介してLoRaからUSBへのパススルーを作成しました。ソフトウェアがUSB上でデータを読み取って送信するのにかかる時間を判断するために、PHYヘッダーを含むLoRaパケットの大きさを知る必要があります。

つまり、私のアーキテクチャは次のようになります。

LoraWanのアーキテクチャ

そのため、PC /ラップトップは、LoRaパケットがUSB経由で無数のバイト数を受信しないようにするために、どれくらいの大きさかを「知る」必要があります。


1
余談:デフォルトでLMICのみ51または52バイトのペイロードをサポートし、参照github.com/matthijskooijman/arduino-lmic/issues/100とオランダのKPNのようないくつかのプロバイダは、唯一とにかく51のバイトを可能に:zakelijkforum.kpnを.com / lora-forum-16 /…ある意味で、それは問題ありません。ノードがSF12をサポートする必要がある場合、ノードはより良い条件でさらに送信するべきではありません。
アルジャン

回答:


7

PHYヘッダーを含むLoRaパケットの大きさ

私はあなたがMACヘッダーを意味すると思いますか?一部のLoRaチップがLoRa無線信号を復調すると、LoRa PHYペイロードが提供されます。LoRaWANアップリンクの場合、このようなPHYペイロードはMACヘッダー、MACペイロード、MICを保持します。

1.0.xの場合、経験則では、LoRaWANパケットはアプリケーションのペイロードより少なくとも13バイト大きいと思われます。

私は通常、オプションのないパケットで少なくとも13 [MHDR(1)+ DevAddr(4)+ FCtrl(1)+ FCnt(2)+ Fport(1)+ MIC(4)]と思います

最大アプリケーションペイロードは、選択したデータレートによって異なります。ノードが最悪の条件で動作できる必要がある場合、ノードが約51バイトを超えて送信してはならない最悪のデータレートSF12を想定する必要があります。(最良の状態では、SF7の場合、222バイトになる可能性があります。)これらすべては、地域にも依存すると思います。(そして、LoRaWANノードがLoRaではなくFSKを使用する場合、状況は改善される可能性があります。)

したがって、ユースケースでは、USBを介した最大長に依存しないようにします。代わりに:

  • Base64を使用して、バイナリLoRaWANパケットをプレーンテキストに簡単に変換できます。その後、USB経由、このようなテキストを送信し、改行やでそれを終了することができNULL -character USBメッセージが完了したときに、あなたの受信機を知ることができるように。Base64文字セットにないセパレーターを選択すると、そのテキスト行で追加のメタデータを送信することもできます。

  • たとえば、ゲートウェイとサーバー間のSemtech UDPプロトコルはJSONテキストメッセージを使用するため、追加のメタデータを渡すこともできます。JSONテキストでは、バイナリLoRaWANパケットもBase64を使用してエンコードされます。JSONテキストが改行を含むように整形されている場合でも、そのようなテキストメッセージをNULL文字で終了することができ、レシーバーが混乱することはありません。


LoRaWAN仕様によると、V1.0.X Fportフィールドはオプションであるため、最小長は実際には12バイトです
RoKK

True、@ RoKK、アプリケーションペイロードがない場合。ただし、アプリケーションペイロードがある場合はFPortが必須であるため、アプリケーションペイロードには常に少なくとも13バイトが追加されます。(そしておそらくFOptsのいくつかのMACコマンドも。余談ですが、13バイトはOTAA結合にも適用されません。)
Arjan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.