TKYTEL COMMENT 36 KusaReMKN 2026-04-02 IP over Private LoRa に関する検討以前 1. はじめに Internet Protocol(IP)による通信を、既存のネットワーク設備に依存 しない形で実現できると、何だか楽しそうであるから、ちょっと検討してみ る。利用にあたって特別の届出を必要としない無線通信技術に、特定小電力 無線局として運用される Private LoRa があるから、これを用いた通信を実 現したい。 今般、これに先立って、IP データグラムを伝送するためのデータリンク として Private LoRa を用いるための予備実験を行ったので、これについて 簡単に報告する。 2. 使用機材 Private LoRa による通信を行うため、秋月電子通商で販売されている E220-900T22S(JP)-EV2(販売コード: 131361; 以下、通信モジュールとす る)及び TX915-JKS-20(販売コード: 117618; 以下、アンテナとする)を 用いる。また、通信モジュールの制御のため、秋月電子通商で販売されてい る Seeeduino XIAO(販売コード: 115178; 以下、MCU とする)を用いる。 3. ステーションの識別 同一のデータリンクにおいて通信相手となるステーションを決定し、識別 するための方法が必要となる。今回用いる通信モジュールは、通信の相手を 限定し、また決定するために、“デバイスアドレス”、“拡散係数”、“帯域 幅”、“周波数チャンネル”、及び “通信暗号キー” において自由度を有す る。 “拡散係数”、“帯域幅”、及び “周波数チャンネル” については、通信路そ れ自体に関する特性が強いから、通信を行うステーション間で予め取り決め た設定値を用いることとする。また、“通信暗号キー” については、通信を 行うにあたってステーション間で同一の値を設定している必要があるから、 予め取り決めた設定値を用いることとする。なお、異なる通信暗号キーを用 いることで、同一の通信路においてネットワークを多重化するために用いる ことができると考えられる。ただし、その場合、多重化されるネットワーク は同一の通信路を用いるため、キャリアセンス時間が長くなり、スループッ トが低下すると考えられる。 残る自由度は “デバイスアドレス” であり、これには 16 bit の値を設定 できる。ただし、値 0xFFFF はブロードキャストまたはモニターのために予 約されているため、設定可能な値は 0x0000 から 0xFFFE までの 65534 通 りである。ステーションの識別のためにこれらの値を用いると、同一ネット ワークには同時に 65534 台のステーションを接続し、それぞれを識別でき る。このことから、“デバイスアドレス” をデータリンク層のアドレスとし て用いることとする。 4. フレームの構造 通信モジュールに設定するパラメータによって、通信モジュールと MTU との間で入出力されるデータの列の形式が変化する。このことから、通信モ ジュールのパラメータを設定するために、フレームの構造について検討する 必要がある。 フレームの構造を検討するにあたって、Ethernet フレームの構造を参考 にする。Ethernet フレームの構造は以下の通りである。 Destination MAC Address . . . . . 6 octets Source MAC Address . . . . . . . 6 octets Ethertype . . . . . . . . . . . . 2 octets Payload . . . . . . . . . . . . . 46–1500 octets Frame Check Sequence . . . . . . 4 octets これを元に、送信用(MTU → 通信モジュール)のフレーム構造を次の通り 提案する。ただし、(*) のマークを付したものは Private LoRa におけるペ イロードである。 Destination Device Address . . . 2 octets Destination Channel . . . . . . . 1 octet Source Device Address (*) . . . . 2 octets Source Channel (*) . . . . . . . 1 octet Protocol Type (*) . . . . . . . . 2 octets Payload (*) . . . . . . . . . . . 0–195 octets Checksum . . . . . . . . . . . . 1 octet 受信用(通信モジュール → MCU)のフレーム構造は、先頭 3 octet のみ が異なり、それは次の通りである。 Packet Size . . . . . . . . . . . 1 octet Destination Device Address . . . 2 octets 5. 通信モジュールのパラメータ 通信のためのパラメータは、通信モジュール内の不揮発性レジスタに記憶 される。上で議論した内容を踏まえ、各種パラメータについて、次のように 設定することを提案する。 通信路に関するパラメータ 拡散係数 . . . . . . . . . . . . . . . 9 帯域幅 . . . . . . . . . . . . . . . . 125 kHz (到達距離が最大となるような設定) 送信出力 . . . . . . . . . . . . . . . 13 dBm (通信モジュールの最大出力) 周波数チャンネル . . . . . . . . . . . 7 ch (スループットの最大化のため、0–14 ch から任意に選択) キャリアセンス最大待機時間 . . . . . . なし (無限に待ち得る) フレームの構造に関するパラメータ デバイスアドレス . . . . . . . . . . . 0x0000–0xFFFE (ネットワークの各ステーションに重複しない値を設定) ペイロード長 . . . . . . . . . . . . . 200 byte RSSI バイトの有効化 . . . . . . . . . . 無効 送信方法 . . . . . . . . . . . . . . . 通常送信モード 通信暗号キー . . . . . . . . . . . . . 0x0510 (ネットワークの全ステーションに同一の値を設定) v2.0 厳格動作 . . . . . . . . . . . . . 有効化 (Private LoRa におけるペイロードを 200 octet とするため) 受信パケットの宛先アドレスの出力 . . . 有効 送信データへの checksum 付与 . . . . . 必要 受信データへの checksum 付与 . . . . . 有効 受信データへのパケットサイズ付与 . . . 有効 これらを踏まえ、レジスタに書き込むべき値を並べると次のようになる。 ただし、上で述べていない項目についてはデフォルト値を設定する。なお、 数列は 16 進数で表示されており、RR は読み込み専用レジスタを示し、XX はステーション毎で異なる値を設定することを示す。 XX XX 70 01 07 43 05 10 RR 7C 00 5. 通信実験 上の通りに設定した通信モジュールを 2 台用意し、通信実験を行った。 デバイスアドレス 0x0200 を与えられた通信モジュールを送信機とし、デバ イスアドレス 0x0100 を与えられた通信モジュールを受信機とする。送信機 は、チャンネル 7 のデバイスアドレス 0x0100 に向けて、Protocol Type 0x0000、ペイロード "hello, world\r\n\0" を送信しつづける。受信機は、 移動しながらデータを受信する。 2026 年 3 月 31 日 23 時ごろ、島根県松江市の住宅街において実験を行 った。実験の結果、見通しのない 1.6 km 程度離れた位置においてデータを 正しく受信できることを確認した。ただし、2.0 km 程度離れた位置におい てはデータを正しく受信できなかった。 通信可能距離について、通信モジュールのデータシートにおいて「周囲に コンクリートなどの構造物が多い市街地などでは、数百メートルから 1 km 程度になる場合もあり」とあることから、これに該当するものと思われる。 現に、送信機のアンテナの前には金属製の手摺りがあり、これによって電波 の減衰が発生したものと考えられる。 6. 費用 本実験に係る費用は下記の通りである。なお、移動のための燃料費は計上 を省略する。 | 品目 | 単価 | 個数 | 小計 | | -------------- | ---- | ---- | ---- | | 通信モジュール | 1980 | 2 | 3960 | | アンテナ | 715 | 2 | 1430 | | MCU | 1080 | 2 | 2160 | | -------------- | ---- | ---- | ---- | | 総計 | | | 7550 | 7. おわりに ちょっとマズいかもしれない。ここから ARP を実装しなきゃいけないん でしょ、マズいかもしれない。 8. 参考 販売コード 131361: 販売コード 117618: 販売コード 115178: 以上