お問合せフォーム

OTSLコラムZigBeeと無線LAN

2005,06,25,

はじめに

2.4GHz帯は、ジャンク・バンドと呼ばれているほど様々な無線通信方式で利用されている。このため、通信チャネルの衝突が起きる可能性があることは一種避けられない。例えば、

「ZigBeeネットワークが使われている場所に無線LANを新規に設置したが、気付かずに衝突するチャンネルを使ってしまい、通信速度が極端に下がってしまった。」

といったようなことは常に起きることと考えるべきだ。特に、ZigBeeが想定しているような利用者、例えばZigBeeが使われていることを知らないのが普通だと思われるホームオートメーション・システムのユーザに、無線LANとの衝突を避けるための技術的な解説をしてみてもさほど意味はないだろう。
だとすれば、このようなことが起き易いことを前提に、システムは、どうやって衝突を見付け、いかに簡単に回避するか、そのためにどのような手法を用意するのかが議論されるべきだろう。

このコラムでは、ZigBeeの仕様や振る舞いを念頭に置いて、この問題を検討してみたい。


ZigBeeは起動時にどうふるまっているのか?

例えば、ある部屋で無線LANが頻繁に使われている状態でZigBeeのネットワークを開始するとしよう。そのとき、ZigBeeは次のような振る舞いをしているはずだ。

1. 利用可能な16チャネルの中から指定した複数チャネルの電波強度を測定する。


2. 1の結果として空いていると判断できるチャネルを選んで、ネットワークを開始する(コーディネータの開始)。


3. コーディネータがダイナミックにチャネルを決定した場合、ネットワークに参加を希望するデバイスは、どのチャネルに加盟したいネットワークが存在するかを調べる。


4. 3の結果として、デバイスは目的のチャネル情報を得てそのチャネルを使用する。


このような手順を踏むことで、ZigBeeは、無線LANなどとの衝突を避けた形で起動することを実現している。


チャネルは永遠には空いているわけではない

しかし、ここで問題になるのが、起動時に選んだチャネルが将来にわたって空いたままだという保証がないことだ。これが、先ほどの問題、

「ZigBeeネットワークが使われている場所に無線LANを新規に設置したが、気付かずにうっかり衝突するチャンネルを使ってしまった。」

という事態の原因の一つになっている。
IEEE802.15.4(ZigBeeの物理層)は、途中で(コーディネータが)チャネルを変更し、その子供であるデバイスたちが新しいチャネルに「再構築(Orphanといいます。迷子の呼び出しみたいなもの)」する機能を提供している。ただ、IEEE802.15.4 (MAC層)のレベルでは機能が提供されているだけで管理まではしていない。 ZigBeeのネットワーク層などでこれらの仕組みを使って、うまく逃げられることを示せれば、「この手の問題はZigBeeが解決するので大丈夫!」と言えることになる。しかし、実際には、一旦動き出した後、衝突をどうやって自動的に回避するかはZigBee1.0の仕様には含まれていないため、この処理はアプリケーションが行うことになる。


ところでBluetoothではどう回避しているのか?

実は、Bluetooothでも同じ問題が指摘され、次のような方法で回避されている。
Blueoothは、無線LANやZigBeeと違い周波数を固定せず、常に周波数を変えながら通信している。通常は、全ての帯域をランダム(といってもパターンはある)にチャネルを変えながら通信する(周波数ホッピングと呼ぶ)が、ある帯域でチャネルがビジーであることを検出すると、検出したチャネルを一時的に利用しないことを回りに通知し、周波数ホッピングの対象から該当チャネルをはずすことで衝突を回避している。ちなみに、この機能は Bluetooth v1.2 (2004年策定)として、ようやく入ってきたもので、v1.0 からあったわけではない。


ZigBeeではどう回避できるのか?

現時点で可能な回避策は、アプリケーションからネットワークを再起動したり、アプリケーションからOrphan機能でチャネル変更したりして、その時点で空いているチャネルを選ぶことで衝突を回避することだ。
しかし、チャンネルを変更できても、多くのチャンネル変更に伴う作業をアプリケーションが行わなくてはならない。例えば、メッシュネットワークの末端の一部で通信が出来ないことがネットワークとして認知できたら、その情報をコーディネータに上げ、コーディネータは最良のチャンネル選択できるようにネットワーク全体にチャンネル選択調査のメッセージを送信する必要があるだろう。一言で言ってしまえば、「アプリケーションでがんばってね」、というのが現状ということだ。
但し、ZigBeeは、例えば定期的にチャネルの状態を調べることや、実際の通信品質を監視することで、自動的にチャネルを変えることは仕組みの上で可能になっている。将来的には、ZigBee側で自動的にビジー・チャネルの回避などの機能が提供される可能性があるだろう。


最後に

無線LANとZigBeeが無線上で衝突することは事実として認めるほかはないが、無線LANが使用していない周波数にZigBeeのチャンネルを設定することは可能だということも強調しておきたい。

「電波は限られた資源ですから、上手に使いましょう。」というのがありきたりではあるが、もっともな設計ポリシーなのだ。


より詳しく知りたい人のために:2.4GHz周波数帯域の定義と各方式

一般に2.4GHz帯と呼ばれているものは、2400MHz-2483.5MHzと定義されている。

チャネル構成図


図の上段は、無線LAN(IEEE802.11b)でのチャネル構成を示しており、下段はZigBeeのチャネル構成を示している。
ページトップ