📡

Wi-SUN FAN規格の他モジュールを繋いでみる

2024/05/05に公開

背景

Wi-SUN FANの同じ規格ならモジュールが違っても設定次第で繋がるんじゃないか?と考えた

組み合わせ表

以下の組み合わせで通信可能状態になるまでの時間を測定する

番号 border Router
1 BP35C5 D19-0023 ルータノード
2 D19-0023 ボーダーノード D19-0023 ルータノード
3 D19-0023 ボーダーノード BP35C5
4 BP35C5 BP35C5

機器の設定

項目 BP35C5 コマンド D19 コマンド
情報の初期化 clear RSTR 00
設定情報の保存 save -
再起動 reset RSTR 00 を使う
通信速度(150kbps) chrate 150 SETR 00 19 02 02 35
通信速度(50kbps) chrate 50 SETR 00 19 00 02 35
ネットワーク名 netname ABEKOBO SETR 00 04 4142454B4F424F
ノードタイプ設定 atstart 1 (ボーダー起動) なし
ネットワーク参加 自動 JOINR 00 ※ルータノードのみ
ネットワーク開始 自動 STARTR 00 ※ボーダーノードのみ
BP35C5
>clear ←既存の設定をクリア
clear parameter is cleared
>reset ←再起動
reset delay 0sec
inf 01,01,0,0       {    WSN: system booted.                      }
auto start 2 (ROUTER)...
init 2(ROUTER) ※デフォルトでRouter
inf 2b,62,0,1       {   FMng: changed fan join state (0 -> 1)     }
>atstart 1 ←ボーダーで起動するように指定
atstart 1(BORDER)
>netname ABEKOBO ←ネットワーク名を指定
netname "Wi-SUN-FAN" (prm):"ABEKOBO"
>chrate 150 ←デフォルトで150kbpsだけど指定
chrate 150Kbps (prm):150Kbps
>save ←変更した内容を保存
save parameter is saved
>reset ←再起動
reset delay 0sec
auto start 1 (BORDER)... ボーダーで起動した
init 1(BORDER)
inf 2b,62,0,5       {   FMng: changed fan join state (0 -> 5)     } ※ボーダーはJoinStatusは起動時から5
>inf 40,2b,bb00,47ad {   NBRS: added new neighbor <00c14ffffe008461>} ※近くのD19を見つけた
inf 40,2d,cf7,bb00  {   NBRS: added address <2001:db8::fd> to <00c14ffffe008461>}
※IPv6を割り当て
inf 4c,39,9d48,9d1c {    RPL: added node <2001:db8::fd> => <2001:db8::1>}
※ネットワークに参加したD19側もステータスが5になる
err 4b,b9,193,1     {   FWRD: unknown port number (port=403 lct=1)}
BP35C5側で403が開いていないためエラー
D19 Routerコマンドのコマンド
RSTR 00 リセット要求コマンド ハンドル=00(ここは応答コマンドのハンドルと一致するので任意)
RSTC 00 00 リセット要求の応答 コマンド ハンドル=要求の00 実行結果=00以外はエラー
SETR 00 04 4142454B4F424F ネットワーク名設定(04) ABEKOBOをASCIIに変換した文字列
SETC 00 00 04 ネットワーク名設定の応答 00なので成功
SETR 00 19 02 02 35 phyOperatingMode要求(19) 02=150kbps 02=周波数ホッピング 35はチャンネル指定
SETC 00 00 19 phyOperatingModeの応答は成功
JOINR 00 ネットワーク参加要求
JOINC 00 00 00C14FFFFE008461 4142454B4F424F ネットワーク参加時に自分のMACアドレスとネットワーク名が表示 
JOINI 00 00 01 ←SelectPAN
JOINI 01 00 02 ←Authenticate
JOINI 02 00 03 ←AcquirePANConfig
JOINI 03 00 04 ←ConfigRouting
JOINI 04 00 05 20010DB8000000000000000000000001 ←Operational 他ノードと通信可能
D19 Borderコマンドのコマンド
RSTR 00
RSTC 00 00
SETR 00 05 CAFE
SETC 00 00 05
SETR 01 04 4142454B4F424F
SETC 01 00 04
SETR 02 19 00 02 35
SETC 02 00 19
STARTR 00
STARTC 00 00 CAFE 00C14FFFFE008454 4142454B4F424F
RJOIN 00 00 201700000000000002C14FFFFE008461 ← ネットワークに参加したRouterNodeを通知

BP35C5

  • baudrateが115200
  • 今回はborder(親機)
  • atstartの設定でborder、Router、Leafに切り替え可能

D19-0023

ルータノードとボーダーノードの2種類が販売されているので用途に合わせて購入する

  • 送信時に末尾は\n (LF)とする必要があるので設定した画像を添付する
  • baudrateが500000
  • 組み合わせ1のときはルータノード、組み合わせ2のときはボーダーノードを使う
Teratermの設定

端末の設定
通信速度の設定

接続結果

BP35C5 とD19-003 Routerを繋いでみた

送受信確認

組み合わせ1

BP35C5→D19 RouterにUDPメッセージ

D19 Router→BP35C5にUDPメッセージ

組み合わせ2

D19 Router→D19 Border

D19 Border→D19 Router

組み合わせ3 通信速度を50kbpsに変更

150kbpsだと他ノード通信状態まで到達しなかった為、50kbpsに変更
RJIONが出てこないがBP35C5にはIPが割り当てられている


D19 Border→BP35C5にUDPメッセージ

BP35C5→D19 BorderにUDPメッセージ

組み合わせ4

BP35C5 Border→BP35C5 RouterにUDPメッセージ

BP35C5 Router→BP35C5 BorderにUDPメッセージ

組み合わせ結果

teratermログのタイムスタンプからステータス1から5までの時間を記述

番号 border Router 通信開始時間
1 BP35C5 D19-0023 ルータノード 00:04:56.9
2 D19-0023 ボーダーノード D19-0023 ルータノード 00:04:12.9
3 D19-0023 ボーダーノード BP35C5 00:01:35.7
4 BP35C5 BP35C5 00:00:33.1
5 BP35C5 BP35C5 00:01:20.2
6 BP35C5 D19-0023 ルータノード 00:11:18.1
7 D19-0023 ボーダーノード D19-0023 ルータノード 00:06:06.8

まとめ

  1. BP35C5とD19を使って送受信を行った結果、他モジュール間でもUDP通信はできた。
  2. 組み合わせによっては通信開始までに時間がかかる
    • D19のファームウェアを更新すると改善されるのか
    • 平均値ではないため、1と2の時間が長くみえる
  3. D19をボーダーにした場合、ルーティングする前にステータスが0に戻ってしまうため、
    組み合わせ3は50kbpsにすることで通信可能になった
    • 組み合わせ5で50kbpsの場合の時間を測定した結果、約2.4倍延びた
    • 組み合わせ6は約2.3倍延びた
    • 組み合わせ7は約1.5倍延びたため、上記の結果も含むと
      ボーダとルータノード間の検出タイミングが影響していると考えた
    • 2の組み合わせを再度数回測定し平均値をとろうと考えています

参考

BP35C5
BP35C5アプリケーションマニュアル
D19 コマンドリファレンス

Discussion