パスワードを忘れた? アカウント作成
496171 journal

witchの日記: (ROBO) X-17 最近の進捗 (無線モジュールテスト継続中…) 4

日記 by witch

パケットサイズ(1byte,16byte,128byte,可変、から選択)を増やせばデータ落ちが減るかと思って試したけど、マニュアルから使いかたを読み取れない… orz

面倒になったので、ソフトウェアフロー無し、パケットサイズ1byteにして、同じデータを数個繰り返して送ることに。
一つのデータを4回繰り返して送信し、4バイトごとに 0.2秒、16バイトごとに0.5秒のウェイトを入れるようにしたら、それなりにエラーを回避できるみたい。(受信側では同じデータを無視するだけ)

送受信メッセージの形式を1フレームを4バイト、各バイトの上位2ビットをフレーム内オフセットに使えば、受信側でエラーチェックとメッセージ再構成ができるはず。

でも、この通信レート(1メッセージに1.5秒)じゃあちょっと話にならないかな…
週末の練習会にはこれで行くとしても、ロボファイトまでに何か別の方法考えなきゃ。

そういえばバイト落ちはするのにビット反転とかのエラーが起きないのはなんでだろう…
無線部分のプロトコルがどうなってるのか謎。
(チェックエラーのデータを捨ててる?)

--- 2007.04.25 01:12 追記
16バイトごとのウェイトを無くし、4バイトごとに0.1秒のウェイトだけにしてもエラー率はそれほど変わらなそう。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • パケットサイズに設定しただけ送らないとタイムアウトで捨てられちゃうんでは?だから16bytesに設定したら16bytes送れば送れるとか、16bytes送らないとタイムアウトまでトランスミッタがOFFにならないとか。単なる推測ですが。
    • by witch (3127) on 2007年04月25日 10時04分 (#1147874) 日記
      マニュアルにはそう書いてあるんですけどね…
      私のテストプログラムがどっかおかしいのでしょう。
      親コメント
      • by Anonymous Coward
        ぐ~たらぱぱのおかだです。 ご無沙汰してます。 無線機器で悩んでいらっしゃるみたいなので、 私の経験を書いておきます。 ご参考まで。 文脈からしますと、UARTに無線機器を繋げていますよね? PCのUARTはFIFOが付いていますので、PC間でやると比較的エラーがなく出来る場合があります。 これは、無線モジュールとPC間のデータの取りこぼしがないということです。 ゴーレムくんで繋いでいるのは、たしか、L-CARDだったと思いますが、 そのL-CARDのVR41xxのUARTのFIFOは有効になってますか? 意外と、無線の部分のパケット内のエラーではなく、無線モジュールとCPUモジュールの 通信ができていないこともありますので、ご参考まで。 #現象的には、無線モジュール間でのエラー訂正をしている間に、 #CPUモジュールと無線モジュール間で通信がどんどんすすんでしまって、 #データ落ちが生じている、というイメージです。
        • by witch (3127) on 2007年04月27日 1時29分 (#1148968) 日記
          岡田さんコメントありがとうございます。
          パケットモードでのデータの渡し方がまずかったのが原因のようで、パケット内でのデータ落ちは発生しないようになりました。
          次は、L-Card側からのステータス返信と再送制御です。
          (再送しなくてもいいようなデータ形式にしてしまうかも)

          あ、L-CardのFIFOはちゃんと有効になっています。
          親コメント
typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...