SSブログ

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

マイコンとXBeeとの接続


Img_0686.jpgまず物理的な話は置いておいてソフトウエア上の話をします。

通信条件は、ターミナルやセンサーノードの場合は38400bpsに、Interface誌付録のNETWORK STICKの場合は57600bpsに設定しています。これは静的な設定としますので、予めX-CTUの”BD”の項目をデフォルトの3から5(6)に変更して書き込みを行えば、次からは端末速度は38400bps(57600bps)となります。

もちろんアプリケーションの実行中にも動的に端末速度の変更をする事が可能です。その場合はATコマンドモードに入ってから”ATBD”で変更を行います。ATコマンドモードが終了するまでは昔の端末速度で動いており、ATコマンドモードが終了後から新しい設定で動きます。この辺りは一度X-CTUのターミナル画面でお試し頂くのが一番だと思います。

前にも書きましたように、センサーノード側の通信相手はコーディネーターに固定しています。”DH”、”DL”の項目を全て0に設定することで、そのネットワークグループのコーディネーターを目指すようになっています。
勿論コーディネーター側は特定のセンサーノードを指定してから通信する必要が有るので、通信を開始する前にATコマンドモードで”DL”の値(必要ならば”DH”も)を変更してからパケットの送信を行っています。

今回は機能の中に盛り込む事ができませんでしたが、簡易タイムサーバーとなっているEthernetブリッジに個々の機器がアクセスすると、時刻情報を返してくれる仕組みも可能です。この場合の接続はP2Pとなります。
ターミナルの方は、まず起動時にEthernetブリッジに接続し、時刻情報をもらう事になっています。
センサーノード側でも現在時刻が判れば、全てのセンサーノードには32MbitのEEPROMを仕込んで有りますので、観測データを、取得した時刻と共に記録する事が可能です。


x-ctu_08.png物理的な接続は、基本的にフロー制御無しでやっていますので、DOUT、DINをそれぞれRXD、TXDに接続する事で完了しますが、多量のデータを送信する時はやはりCTSを監視する事をお勧めします。
※今回はマイコン側の端子が勿体無かったので接続していません。
※XBeeのデフォルトではCTSによるハードウエアフロー制御が有効となっています。

それ以外に、積極的にXBeeを低消費電力モードに入れる為にはDTR/SLEEP_RQを、SLEEP状態からの解除を検出する為にはON/SLEEP端子を利用する事となります。
SLEEP_RQ端子を使用してSLEEP(ハイバネーション)に入れる為には、事前に”SM”コマンドで設定をして置く必要が有ります。

※なお、XBeeのハイバネーションの詳しい使い方は、今度のPaltekのセミナーで聞いて来ようと思っています。


ターミナルとセンサーノード、Ethernetブリッジ間のプロトコルは、もっとも簡単なポーリング方式で行っています。
フレームにはFCSが付加されており、受け取った側でFCSが一致しないパケットは捨てて無応答としています。
ターミナルは500ms置きにデータを請求するパケットを送信していますので、捨てられたパケットは無視をして次のチャンスに掛けると言う訳です。

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

nice! 0

コメント 0

コメントを書く

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

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

トラックバック 0

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