So-net無料ブログ作成

FTFデザインチャレンジ参加作品 COIL System 総括編 2. [ColdFire V1]

トポロジ


今回は極めて狭い範囲内の無線通信なので(なら無線要らないじゃん!とかは無しの方向でお願いします。)、トポロジとしてはコーディネーターを中心としたスター型を取っています。
通常、IEEE802.15.4までサポートしているネットワークでは、P2Pまたはこちらの形態を取ります。
※例えばXBeeのシリーズ1製品を使った場合です。

今回使用したのはZigBeeプロトコルスタックを搭載した無線モジュールなので、上記のスター型に加えて、P2P、それに最大の特徴であるメッシュを取る事ができます。
以下に簡単な概念図を示します。
x-ctu_05.png



左がスター型で右がメッシュ型です。最大の違いはネットワークの途中にルーターを配置しているところです。
これはインターネットにおけるルーターと同じ様に、コーディネーター/エンドデバイス間をもっとも最適なルートを経由するように中継するノードです。
更に、ルーター自身もエンドデバイスとして働く事ができます。
この様にメッシュにする事で、ノードの追加や脱落に対して柔軟なネットワークを構築できます。

しかし一つ注意点があります。コーディネーターは当然として、中継を行うルーターも、少なくともなんらかの経路を維持出来ない限りは、停止する事ができません。
よくZigBeeを使うと電池で何年も持つとか言う話を出されますが、それはかなり限定的な使い方をエンドデバイスにのみ行った場合で、ルーターには常時稼動可能な電源を供給する必要があります。

必要以上にZigBeeが低消費電力であると期待する事は止めた方が良いかもしれません。
例えば無印のXBee無線モジュールの消費電流は3.3V時に40mA程度有りますし、Pro版に至っては送信時に295mAも食う事になっています。低消費電力にするには、いかにしてスタンバイの時間を長くするかに掛かってくるでしょう。


チャンネルの設定


いま一つ使い方が判らなかったのがチャンネルです。よく今まで使えたなぁと自分でも関心してしまいます。
今更マニュアルを読んで、ちょっとだけ判ってきました。

まずチャンネルの設定は、コーディネータ側でSC及びSDコマンドにて行う様です。
SCコマンドはスキャンする範囲を設定するコマンドで、SDコマンドはスキャンの完了時間を設定します。

コーディネータ側のSCコマンドのスキャンの方法は、16bitのそれぞれのbitがチャンネル番号に対応しており、つまり全て1を立てた時は11チャンネル~26チャンネルまでの範囲をスキャンして利用可能なチャンネルを検索する様です。
SDコマンドはスキャンに掛ける時間設定です。イマイチこれは判り難い。

ルーターやエンドデバイスの場合は、SCコマンドにて設定されたチャンネルのコーディネータを探すのに使う様です。

つまり、まずコーディネータ側で空きチャンネルを検索して、そのネットワークグループ(PAN IDが同一なグループ)で使用するチャンネルを決定し、ルーター/エンドデバイスでは同一PAN IDのコーディネーターが検出されたチャンネルを、以降利用する事になる様です。
特に人間様が電波状況を調べて利用可能なチャンネルを決定しなくとも、デバイスが勝手にやってくれると言う事でしょう。

そうなると、利用するチャンネルを固定したい場合は、SCコマンドで特定のbitのみ立てれば良い事になります。
以下はコーディネータのbit2(13チャンネル)のみ立てて、コーディネーター、エンドデバイス共にX-CTUで接続してみたところです。
x-ctu_06.png x-ctu_07.png



コーディネーター、エンドデバイス共にD(13)チャンネルで接続されました。

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。