■電子パーツ通販でXBeeを扱うところが増えてきて、入手しやすくなったのはいいのだけど、XBeeにはSeriese 1とSeriese 2の2系統があって互換性がないことには無頓着なようで、新しい店で追加購入するのは慎重にならざるをえない。同じ店で全部揃える分には問題ないけれど、値段につられて新しい店で購入すると違うシリーズだったり。うちは最初に購入したのがSeriese2なのでSeriese2でないと使えない。
ただ、Seriese2でもファームウェアにまた系統があって、互いに通信できなかったりする。DigiインターナショナルのHPだと製品には互換性があって相互通信は容易だとあるのだけど、あんまりそんな感じじゃない。
ファームウェアの互換性はXBeeに書き込まれたプロファイルの種類でソフト的に判定される。最近はZigBeeの通信規格を拡張する形で作られた家電コントロール用のRF4CEも登場(2009.03)していて、互いに混信しないようにレイヤーを分けていかなければならなくなっているようだ。もともとZigBeeにはPANのIDで棲み分けできるようになっていたけど、これからは異なる機能を持つノードが入ってくるからPANだけでは混信を防げないということなのだろう。不用意な混信を排除できればトラフィックのS/Nは高く保てるし、セキュリティ的な意味もあるだろう。
それはそれとして、先日マルツパーツでXBeeProを買った。Serieseがどちらなのか不明で不安だったのだけど、届いてみればS2(Seriese2)だった。ただ、既存のネットワークに参加できない。ファームウェアのプロフィールはXB24-ZB。既存のネットワークに使ってきたXBee側はXB24-B。
最初、ファームウェアのファンクションセットを切り替えれば接続できるのかとあれこれ変更してみたけれど無駄。ファームの書き換えで何度かハングアップしてしまったりして大変だった。
ただ、解ってみれば簡単なことで、既存のXBee側のファームウェアをXB24-BからXB24-ZBに交換したら参加できるようになった。ただ、今までのXB24-BではROUTER/ENDDEVICEというファンクションセットが使えていたのが、XB24-ZBではROUTER/ENDDEVICEがなくなり、ROUTERとENDDEVICEに分かれた。ROUTERはパケットの転送機能があり、USARTでMCUとの通信もできる。違いはENDDEVICEはより低消費電力ということと、サイクリックスリープの動作が基本になるということか。まだきちんと調べていないので理解していない。とりあえずROUTERのファンクションセットであれば、今までと使い勝手は同じなのでそちらを使うことにした。
ファンクションセットの中を眺めた限りではXB24-BはXB24-ZBのサブセット的な感じ。XB24-ZBにはZigBeeアライアンス側のプロファイルなどを意識したパラメータもあるようなので、XBee以外のZigBee機器との相互接続を意識したファンクションセットということなのだと思う。XB24-Bの方が古いのかな。ただ、XB24-Bとの互換性はハードウェアのみで、ソフト的に相互接続できるわけじゃない。ゲートウェイ的なものを作ればもちろん接続できるわけだけど。
今は手持ちのS2は全部XB24-ZBにファームウェアを書き換えて、全部メッシュネットワークに参加できるようになっている。気がつけばモジュールが結構な数になっていて、使い切らないともったいなさすぎる。幸いなことに、作っておきたいデバイスはまだある。