蓬莱 康行(ほうらい やすゆき)
はじめに
最近ワイヤレスセンサーネットワークが注目を集めている。ワイヤレスセンサーネットワークは、種々のセンサーを備えた小型の無線端末により実現され、単にセンサーノードを分散配置させるだけでシステムを構築することが可能で、ネットワークの拡張が有線ネットワークと比べて非常に簡単に行えるという利点がある。
当社では、2年前に、ワイヤレスセンサーネットワーク用の無線通信モジュール開発を始め、昨年からモジュールを含めたシステムの提案活動を開始している。本稿では、開発したワイヤレスセンサーネットワーク用無線モジュール(WSSモジュール)について紹介する。
1 ワイヤレスセンサーシステム(WSS)モジュール
ワイヤレスセンサーシステム(WSS)モジュールは、近距離小容量無線通信規格であるIEEE802.15.4準拠の無線方式を採用している。IEEE802.15.4は、IEEE802(IEEEが定めるLAN/MAN規格全般の総称)の中のW PAN (Wireless Personal Area Network)の1つで、Zig Beeも採用している無線通信規格である。
使用する周波数は、現在日本で使用できるものでは、ISM帯(Industry Science Medical)の2.4GHz帯となる。変調方式は初期の無線LAN(802.11b)と同じDSSS(Direct Sequence Spread Spectrum.直接拡散)方式を採用している。
DSSS方式の特徴として、元信号を変調時に拡散符号を用いて広い帯域に拡散させてデータ送信し、受信時に同じ拡散符号を用いて元のデータを再現するという方式であり、通信データの機密性を確保でき、ノイズに強く、電波が過密状態になっても急激な通信品質の低下が発生しないことがあげられる。
IEEE802.15.4規格の他の特徴としては、転送速度は、250Kbps(bit per second)(理論値)で無線LAN(IEEE802.11b/g/aなど)に比べてデータ転送速度は低速であるが、消費する電力量が非常に少ないことがあげられる。つまり、乾電池などのバッテリーで、長時間稼働することが可能である。
WSSモジュールの外観写真を図1に示す。
モジュール上、手前の茶色の部品が無指向性のアンテナである。基板面を境に半球状の指向性を持っている。中央右手にある大きな部品がモジュール全体の制御を司るマイコンである。マイコンは、消費電力が非常に少ない16ビットのマイコンを採用している。
モジュール中央左手のマイコンに比べて少し小さい部品がIEEE802.15.4準拠の無線通信用半導体である。モジュール手前アンテナの右横にある小さな部品が半導体の温度センサーであり、温度センサーの性能は、最大誤差±0.5℃(測定範囲:0℃~70℃)である。駆動電源は、DC3[V]であり、乾電池やリチウムイオン電池等で駆動することができる。WSSモジュールの消費電流は、無線通信時で24[mA]で、スリープ時は2[µA]である。
WSSモジュールのハードウェア構成図を図2に示す。
WSSモジュールには、半導体温度センサーが搭載されているが、他のセンサーからの測定データを送信する場合を想定し、外部とのインターフェイスを用意している。外部とのインターフェイスとして用意しているのは、アナログ入力8チャンネル(8Chの内、設定により2チャンネルをアナログ出力に変更可能。マルチプレクサ方式:200Ksample/sec)、ディジタル入出力4チャンネル(4bit)、シリアルインターフェイス(Tx、Rxの2線式)1チャンネルとなる。アナログ入力チャンネルは、マイコン内部の12ビットAD変換器を用いてディジタル信号に変換する。
図3にWSSモジュールに搭載されているソフトウェアの構成図を示す。
モジュール上の各デバイス(半導体チップ等)を制御するためのソフトウェア(デバイスドライバという)が基本的なソフトウェアとして存在し、その上位に無線関連のライブラリと無線以外のライブラリが実装されている。弊社では、これらすべてのソフトウェア(ライブラリ)を自社開発した。
まず無線関連のライブラリについて説明する。
WSSモジュールは、IEEE802.15.4準拠の無線通信を採用していることは先に説明した。無線関連のライブラリも大きくIEEE802.15.4規格に則った通信プロトコルを実現しているライブラリと、その上位の経路制御等を実現しているライブラリに分かれる。
IEEE802.15.4規格の通信プロトコルを実現しているのは、図2のPHY層とMAC層の部分であり、規格の内容に従って実装している。次にMAC層の上位層であるネットワーク層のライブラリについて説明する。ネットワーク層では、通信時の経路制御や、通信のためのアドレスの設定に関する処理を実装している。
経路制御とは、通信を行う際にどのような経路を通って目的の場所へ通信を行うのかを決定する機能である。弊社のWSSモジュールでは、(a)スタートポロジー、(b)リニアトポロジー、(c)クラスターツリートポロジーの3つのトポロジーに対応している。これら3つのトポロジーの簡単な構成例を図4から図6に示す。
(a)スタートポロジーは、PANコーディネーターに対して、各センサーノードが中継ノードを経由せずに直接通信する形態である(図4参照)。
(b)リニアトポロジーは、PANコーディネーターと1つの中継ノードが接続し、その中継ノードの下に1つの中継ノードが接続し、最後のセンサーノードまで同様の形態で接続する形態である(図5参照)。
(c)クラスターツリートポロジーは、PANコーディネーターに中継ノードとセンサーノードが各々接続し、中継ノードの配下に、同様に中継ノードやセンサーノードが接続する形態である(図6参照)。
WSSモジュールは、ショートアドレスと呼ばれる2バイトのアドレスを送信元及び送信先のアドレスとして使用している。このショートアドレスは、WSSモジュール固有の識別情報(EUI-64)ではなく、WSSモジュールがIEEE802.15.4のネットワークに参加する際に、自ノードが接続する先のノード(= 親ノード)から割り当てられるものである。
次にネットワーク層の上位に位置する基本アプリケーションについて説明する。基本アプリケーションの中で実現されている機能としては、時刻同期機能と、ネットワーク参加時の親ノードの選択方式、通信タイミングの管理などである。
WSSモジュールは、ネットワーク層に独自のプロトコルを採用しているため、WSSモジュールが参加可能なネットワークは、WSSモジュール独自のネットワークとなる。WSSモジュールの特徴の1つが、基本機能として時刻同期の機能を持っていることである。ネットワークに参加しているセンサーノードは、すべて時刻が同期しており、ほぼ同一の時間軸で動作している。つまり、計測タイミングは、全ノードで同じタイミングで実行することが可能となる。
またWSSモジュールはセンサーでの計測データの送信に無線通信を利用して行うが、全ノードが時刻同期しているので、各ノードは、自分の送信タイミングやデータの中継タイミングを知ることができ、ネットワーク内で無線通信の衝突を避けることが可能となる。またネットワークに参加しているセンサーノードがすべて時刻同期していることから、各ノードを必要な時だけ起動させ、必要の無い時は、スリープ状態にすることが可能となる。
ネットワーク内の末端のノードだけでなく中継ノードも含めた全ノードがその対象となる。無線通信の衝突回避、データ計測、無線通信処理を実行するタイミングをネットワーク内の全ノードが知っており、それに応じてスリープ状態になることが可能なため、ノード当たりで消費する電力量を必要最小限に抑えることが可能である。
WSSモジュールは、シミュレーションの結果であるが、モジュール上の温度センサーを30秒周期で計測し、計測の度にデータ送信する処理で、2,400[mAh]の容量の電池を使用した場合、5~6年間稼働する結果を得ている。尚、使用する電波環境やWSSモジュールと併せて使用するセンサーでの消費電力、データの計測周期およびノードとの通信周期により稼働期間は変化する。
ゲートウェイ装置
WSSモジュールで構成されるネットワークの中でコーディネーターの役割を担うゲートウェイ装置について説明する。
ゲートウェイ装置のブロック構成図を図7に示す。
ゲートウェイ装置は、汎用のCPUボードと上記1で説明したWSSモジュールから構成され、両者は非同期のシリアルインターフェイスで接続される。WSSモジュールの駆動電源(DC3V)は汎用のCPUボードから供給され、CPUボードはAC100[V]の電源で駆動する。ゲートウェイ装置の無線部は、センサーノードや中継ノードと同じハードウェア(WSSモジュール)を使用している。
汎用のCPUボードは、Linux OSを採用している。センサーネットワーク内の各センサーノード(中継ノードも含む)において計測されたセンサー情報は、ゲートウェイ装置に収集される。収集された計測データは、ユーザ側で現在使用されている既存のシステムへゲートウェイ装置から汎用のIPプロトコルを通してデータ送信される。
ユーザ側でセンサーネットワークにて収集した計測データをどのようなアプリケーションに利用したいかに応じて、ゲートウェイ装置上に様々なソフトウェア(通信プロトコルなど)を導入することにより、既存のユーザ側のシステムで計測したデータを活用することが可能となる。
ゲートウェイ装置に標準的に実装されている機能について紹介する。ゲートウェイ装置には、WEBサーバーが稼働しており、ユーザは、ゲートウェイ装置にネットワーク接続した汎用パソコンのブラウザソフトウェアを用いて、ゲートウェイ装置と接続することで、センサーノードから送信された計測データの最新値の閲覧や、動作パラメータの設定(通信周波数の設定、ノードでの計測周期の設定、収集周期(通信周期)の設定、動作モード設定(通常モード、省エネモード)など)、計測データのCSV形式でのファイル出力などの操作が可能である。
図8から図10にゲートウェイ装置の画面例を示す。
図8は、ゲートウェイ装置のメイン画面であり、現在ネットワークに参加しているノードの一覧がリスト形式で表示される。
表示項目は、ノード名称、通信アドレス(ショートアドレス)、ノードの識別情報(EUI-64アドレス)、計測データ(WSSモジュールに搭載されている温度センサーによる測定値)、電波の受信強度、受信電波の品質、測定日時、ノードの種別(ゲートウェイ装置、中継ノード、センサーノードの区別)、WSSモジュールのファームウェアのバージョン情報の全9項目である。
ネットワークにノードが参加する度に、画面に、参加したノードの情報が随時追加されていく。メイン画面から他の画面(図9や図10)へ移動するには、画面左端に表示されているサブメニューをクリックする。
図9は、ゲートウェイ装置配下のセンサーノードの動作パラメータの設定画面である。計測周期や、通信に使用する周波数、通信周期などを設定することが可能である。
図10は、ゲートウェイ装置に保存されているデータをCSV形式で取り出すための画面で、取り出したいファイルを選択し、右クリックでデータの保存を選択すると、ブラウザを起動しているパソコン上にデータをダウンロードすることが可能である。
WSSモジュールによるワイヤレスセンサーネットワークシステム
弊社のWSSモジュールを用いたセンサーネットワークは、ネットワーク内のノード間の通信経路が、ネットワークの構成時に確定する方式を採用している。つまり、動的に通信経路を決定する方式ではなく、静的な通信経路を使用するネットワークである。
しかし、中継を担当するノードが故障などの理由でデータ通信の中継ができない状態になった場合、中継を依頼していたノードには、代替ノードへのデータを送信する機能が用意されている。
WSSモジュールを用いたワイヤレスセンサーネットワークのシステムを構成する方法について説明する。弊社のワイヤレスセンサーネットワークの場合、最初にネットワークの構造を決定する必要がある。
ネットワーク構造は、ゲートウェイ装置を0階層とした階層数、同一階層に存在するノード総数、同一階層のノードの中に存在する中継ノードの総数の3つのパラメータによって決まる。
実際にネットワークを構築していく手順は、まずゲートウェイ装置を設置する。ゲートウェイ装置は、本ネットワークのコーディネーターとなる。ゲートウェイ装置を設置した後に、各ノード(中継ノード及びセンサーノード)をネットワークに参加させていく。ノードがネットワークに参加する場合、周辺のノードに対してビーコン要求の電波を送信し、周辺の接続可能なノード(親ノードの候補)からのビーコン電波の受信強度を比較し、最も強いビーコン電波を送信してくるノードを親ノードとして選択し、接続する処理を実行する。
図11の新規参加ノードCは、自ら発信したビーコン要求に応答を返して来たノードAとノードBからのビーコン電波の電波強度を比較し、電波強度の大きいノードAを親ノードに選択する。このようにして順々にノードをネットワークに参加させていき、構築したネットワークの構成例を図12に示す。
弊社のWSSモジュールを使ったワイヤレスセンサーネットワークシステムの特徴として、
- 中継ノードも計測機能(センシング機能)を備えている
- ネットワーク内の全てのノードが、ゲートウェイ装置と時刻同期している
の2つがあげられる。
1.中継ノードも計測機能を備えているという特徴は、データ通信の中継地点とデータの計測地点を兼ねることを可能にし、ネットワーク内のノードの利用効率を高くできる。2.ネットワーク内の全てのノードが、ゲートウェイ装置と時刻同期しているという特徴から、ネットワーク内の全ノードにおいてデータ計測を同時に実施することが可能となる。
さらに計測データとそのデータを計測した時間情報(タイムスタンプ)をセットにして取り扱っており、何らかの理由でノードからゲートウェイ装置へ、もしくはゲートウェイ装置から上位のユーザのシステムへ計測データの到着が遅延した場合でも、データの計測時間は記録として保存することが可能であり、計測データの受信時刻をデータの計測時刻とするシステムに比べて、データ計測の時刻がより正確である。
リアルタイム性の必要なシステムではデータ到着の遅延そのものが許されないが、データ収集のみを目的とするシステムでは計測データとそのタイムスタンプ情報をセットで取り扱う方式はメリットがある。
4 応用例
上記1で紹介した様にWSSモジュールには、外部とのインターフェイス用にアナログ入力、ディジタル入出力、シリアルインターフェイスを用意している。この外部とのインターフェイスを用いることによって、他のセンサーからのデータを取り込み、無線通信にて送信することが可能である。
ここでは、工業用途で温度計測によく使用される熱電対とWSSモジュールを組み合わせて構成したセンサーノードを応用例として紹介する。
センサーノードの構成図を図13に示す。
熱電対を接続するための端子台を備えたインターフェイス基板を用意し、その基板上で、熱電対からの微小電圧をゲインコントロール及び、AD変換処理を実行し、熱電対の温度データを計測する。WSSモジュールとインターフェイス基板は、図14の様な形態で接続される。熱電対での温度計測に必要な基準温度は、WSSモジュール上の温度センサーにて計測した温度を採用している。熱電対からの微小電圧を温度データに変換する処理は、センサーノード(または中継ノード)上では処理をせずゲートウェイ装置もしくは上位のSCADAソフトウェアにて実行する。
熱電対での温度計測の精度は、基準温度を測定している温度センサーの精度に依存し、0℃~70℃の範囲で±0.5℃の精度となる。
市販のデータロガーと並行計測を実施したところ、市販ロガーでの測定値に対して、最大0.3℃の誤差であった。ここでは、熱電対を利用した温度計測用ノードを応用例として紹介したが、他のセンサーを使用する場合も同様の構成で実現可能である。バッテリー(電池)でセンサーノードを駆動する場合は、センサー自身で消費する電力およびインターフェイス基板で消費する電力などWSSモジュール以外で消費する電力に考慮が必要である。
おわりに
本稿では、弊社にて開発したセンサーネットワーク用の無線モジュール、WSSモジュールについて紹介した。弊社のWSSモジュールの特徴として、
- 低消費電力(ノード単体、システム全体)
- 時刻同期機能
などについて説明した。
今後は、ゲートウェイ装置に、ビル管理システム等で使用されているBACnetプロトコルや、LONWORKSとのインターフェイスの装備など、現在使用されているシステムとの連携機能を充実させ、ユーザが使用し易いセンシングネットワークシステムの提供を予定している。
関連コラム
-
- 第1回 組込みシステムのこれから
- 第2回 IoTの成功はセキュリティ次第
- 第3回 組込みでもGPUやFPGAと早めに親しんでおこう
- 第4回 電子産業の紅白歌合戦、CEATECで垣間見えた未来
- 第5回 小口開発案件の集合市場、IoTの歩き方(上)
- 第6回 小口開発案件の集合市場、IoTの歩き方(下)
- 第7回 徹底予習:AI時代の組込みシステム開発のお仕事
- 第8回 いまどきのセンサー(上):ありのままの状態を知る
- 第9回 いまどきのセンサー(下):データを賢く取捨選択する
- 第10回 組込みブロックチェーンの衝撃(上)
- 第11回 組込みブロックチェーンの衝撃(下)
- 第12回 エネルギーハーベスティングの使い所、使い方
- 第13回 「人を育てる」から「道具を育てる」へ、農業から学ぶAI有効活用法
- 第14回 CPS時代に組込みシステム開発に求められることとは
- 第15回 次世代車のE/Eアーキテクチャに見る組込みの進む道
- 第16回 RISC-Vが拓く専用プロセッサの時代
- 第17回 振動計測の大進化で、熟練エンジニアのスキルを広く身近に
-
- 零の巻:組込みというお仕事
- 壱の巻:2進数と16進数を覚えよう!
- 弐の巻:割り込みとポーリング
- 参の巻:printf()が使えない?
- 四の巻:これにもIntelが入ってるの?
- 五の巻:Endianってなに?
- 六の巻:マルチタスクとは
- 七の巻:スタックってなあに?(1)
- 七の巻:スタックってなあに?(2)
- 八の巻:メモリを壊してみましょう
- 九の巻:コードが消える?~最適化の罠~
- 拾の巻:例外が発生しました
- 拾壱の巻:コードサイズを聞かれたら
- 拾弐の巻:キャッシュは諸刃の剣
- 拾参の巻:デバイスにアクセスするには
- 拾四の巻:セキュリティってなに?(1)
- 拾四の巻:セキュリティってなに?(2)
- 拾四の巻:セキュリティってなに?(3)
- 拾五の巻 :DMA対応と言われたら(1)
- 拾五の巻 :DMA対応と言われたら(2)
- 拾六の巻:ヒープとスタック
- 拾七の巻:フラグメンテーション
- 拾八の巻:CPU起動とブートローダ
- 拾九の巻:kmとKByteの「kとK」
- ビリーへの質問:DMAとキャッシュの関係
- ビリーへの質問:スタックオーバーフローについて
- ビリーへの質問:CPUレジスタについて