目次

920MHz帯マルチホップ無線 SmartHop を使用する

MA-E360/NLには、沖電気工業株式会社の 920MHz帯無線通信モジュール MH920 (透過モデル/コーディネータ)が内蔵されています。

このモジュールは、Linuxからはttyデバイス(/dev/ttyS0)として認識されます。 このデバイスに特定のデータフォーマットでデータを書き込むと、モジュールを制御したり、モジュールを通して無線の向こう側のデバイス(例: Modbus機器)とデータをやりとりすることができます。

このモジュールに対して、以下の操作を行えるソフトウエアを用意しました。


ブリッジソフトウェアの設定

ブリッジソフトウェアは、upstartで起動の有無を設定し、独自の設定ファイルで詳細な設定を行います。

upstartの設定ファイルは、 /etc/default/mh920_bridge にあります。
ブリッジソフトウェアを起動させるには、ENABLE=1とします。

mh920_bridge
ENABLE=0
CONFIG=/opt/mh920/bridge/mh920_bridge.ini
 
# --- Example ---
# ENABLE=1|0
# CONFIG=(Full path to configuration file)


独自の設定ファイルは、デフォルトのものが /opt/mh920/bridge/mh920_bridge.ini にあります。

mh920_bridge.ini
[General]
nwkey=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
pan_id=0
nw_id=MH920
channel=1
device=/dev/ttyMH920
virtdev=/dev/virtMH920
debug=yes
 
[ShortAddress]
2=2
3=3
 
[PFilter]
pfilter=1
timeout=10
 
[PingMode]
enable=no
mac_1=00 25 36 00 00 00 00 01
interval=20


セクション 項目 内容 Notes
[General] 動作全般の設定
nwkey ネットワーク暗号鍵 2桁の16進数を16個。未指定の場合暗号化しない
pan\_id IEEE802.15.4g PAN ID 0001~FFFE
nw\_id ネットワーク名 16文字以内
channel IEEE802.15.4g チャネル 1〜27, 奇数のみ
device MH920デバイス名 /dev/ttyMH920固定
virtdev 仮想デバイス名 他のソフトウエアがこのデバイス(tty)に書き込むと、MH920に送信される
debug デバッグ出力 yesにすると/var/log/upstart/mh920\_bridge.logにデバッグメッセージが出力される
[ShortAddress] 局番→ショートアドレスの対応
(数字) ショートアドレス 項目名の数字の局番をもつ機器に対応する子機のショートアドレスを指定する。
例: Modbusの局番5の機器がショートアドレス7の子機に接続されている場合は“5=7”と指定する
[PFilter] パケットフィルタ
pfilter パケットフィルタの種類 0: なし
1: あり(ポーリング)
2: あり(通知型)
timeout ポーリング時通信タイムアウト時間 1~60(秒) 0.1秒単位で指定可能
[PingMode] ノード生存確認要求 子機に対してノード生存確認要求を送信し続ける専用モード
enable 有効化 yesにするとブリッジとしては動作しなくなる
mac_(数字) 要求送信先MACアドレス 2桁の16進数を8個
項目名の数字を変えて複数指定可能
interval 要求送信間隔


ブリッジソフトウェアの使用

設定ファイルを編集したら、upstartを使って起動します。

root@plum:~# initctl reload-configuration
root@plum:~# initctl start mh920_bridge
mh920_bridge start/running, process 2515

最後の行の出力が「start/running」となったら起動しています。


ブリッジソフトウェアの使用(pingモード)

[PingMode]セクションで「enable=yes」とした場合、pingモードで起動します。
動作ログは /var/log/upstart/mh920_bridge.log で確認できます。
子機の電源を途中からOnしたりOffした場合の動作ログを示します。


# API_reset:
# API_set_basic_setting:
# API_set_protocol_setting:
# API_set_nwkey_setting:
# API_set_addrlist_setting:
# API_set_packet_filtering:
# API_start_operation:
wait for joinning network.
confirmed joinning network.
Getting route info.     ←(1)
No route info.          ←(2)
Getting route info.
No route info.
Getting route info.     ←(3)
Sending ping.           ←(4)
ping response recieved. ←(5)
Getting route info.
Sending ping.
ping response recieved.
Getting route info.     ←(6)
Sending ping.           ←(7)
No response.            ←(8)

(1)の時点では、対象の子機への経路情報が取得出来ないので、(2)のように出力されます。
(3)の時点で、子機の電源がOnされたので、子機への経路情報が取得されます。その結果、(4)で生存確認要求が送信され、(5)で返答がありました。
(6)の時点で、子機の電源がOffされたので、子機への経路情報はモジュールに残っていて取得出来ますが、生存要求への返答要求はなくなりました(8)。


デモソフトウェアの設定

(準備中)