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