XBeeの通信速度で(ちょっと)モヤモヤ
前の投稿にコメントをいただいてますが、今回使用したLinkSpriteのシリアルカメラは、ボーレートを変更すると故障する「前科」があったそうです。今回僕が使ったモノはそういう問題は起こりませんでした。バージョンが上がったのかも知れませんが、製品にシリアルナンバーなどが無いので何ともわかりません。詳しくはコメントを見てください。
同じく前の投稿で「XBeeの通信速度は40Kbpsくらい云々…」と言う記述があります。これは僕の書き方が悪くて、「115.2Kbpsにしても38.4Kbpsからちょっと早くなるだけだから40Kくらいの感じ」と言う意味です。実際の通信速度が40Kbpsもあるわけではありません。わかり難いですね。
では、実際のXBee間の通信速度はいかほどかというと、12Kバイトの画像(320X240のJPEG画像はこれくらいの大きさです)の実転送に13秒くらい(起動時間3秒は含まず)かかってますから、12/13で920バイト/秒と言うことになります。1バイトはスタート・ストップビットを入れて10bitなので、通信速度は9200bps、なじみのあるところでは9600bpsくらいということになります。無線LANなどの影響があるのかどうかわかりませんが、こんなものなのかなあ、と言う感じです。でも安定性は及第点で、有効範囲内ならデータ落ち、ビット化けなどは感じられません。
ただ本機の場合は、カメラから読んでXBeeに送るという操作をしていますので「2倍」のデータを転送しているわけですが… カメラから12Kバイトの画像を吸い出す時間は38,4Kbpsで約3秒、115.2Kbpsならわずか1秒ほどですから、全体の転送時間に対して、そのウェイトはそれほどでもないですね。
前回の投稿で、「115.2Kbpsにしたら1〜2秒早くなった」のを確認しましたが、短縮した2秒はどうもカメラからの吸い出し時間のようですね。
(後日追加:下記のバッファサイズは間違いです。訂正はこちら)
それから、同様のカメラをXBeeに直接つないで無線化している方もいらっしゃるようです。フロー制御は? と思いマニュアルをDLしてみたら特にフロー制御なし? データ転送の方式は今回のカメラと似ているようですが… データパケットのデフォルトがわずか64バイト! これなら37バイトしかないXBeeの送信バッファでも、ボーレートの設定いかんでは何とかなるかも知れません。今回のカメラでもチャンク(パケット)サイズは可変出来るので、同様のテクニックが使えるのではないでしょうか。
なーるほど。京極堂に憑き物を落とされた感じです。僕はデータ転送というからには、せめて256バイトくらい送らないと申し訳ない。つまり、効率が悪いと思ってました。たしかに小さなパケットだとヘッダのオーバヘッドが大きくなるので転送時間はずっとかかりますが、今回作ったようなシリアルブリッジが必要なくなりますねえ。勉強になりました。
« XBeeネットカメラを組み立てる | トップページ | LinkSpriteのシリアルカメラ! »
「花岡ちゃんのウィークエンド」カテゴリの記事
- レーザー距離センサVL53L0Xを複数使うには(2022.05.01)
- 【訂正!】PIC24Fでレーザー距離センサVL53L0Xを使う(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(おしまい)(2022.04.14)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その3)(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その2)(2022.04.12)
コメント