nRF24L01を搭載した一台の受信機で、複数台のnRF24L01からの信号を受信処理する実験。

【無線通信エラー】

今回のシステムはまだ時々、通信エラーが発生するという問題を抱えている。わかっている状況は以下のとおり。根本的な理由・原因はまだ解析できていない。

通信エラーの有無は、送信機側がパケットを送る際に使う関数(radio.write( &txd8, sizeof(PAYLOAD_8))からの戻り値がfalseかどうかで判断している。かつ、リトライしてOKな場合には、結果として「通信エラー無し」と判断している。 前述したリトライの手法を実行しても尚、送信に失敗した場合を通信エラーとしてカウントして、LCDに表示することにより、エラー頻度を確認した。

  • 送信側の3台と受信側の1台を同じPCのUSBポートに接続して、前述の温度&パルス情報を10秒毎にそれぞれの装置がランダムにデータを送信する環境では、ほぼ100%の確立で通信は成功するのだが、受信側の一台を別のPCに繋いだ状態だと、通信エラーが発生する。頻度に一貫性は見られず、良い時には1時間以上エラー無い場合もあるが、悪い場合だと数分に一回発生する場合がある。端末間の距離はすべて1メートル以内。
  • 上述のエラーが発生している状態においては、送信機を一台に減らしても通信エラーが皆無になるわけではない。(頻度は減る傾向が見られるが)
  • 外乱ノイズの大きい環境(他の装置からのノイズや他のRF信号、電源ノイズ等と思われるが・・・)だと、一対一のペアでの通信でもエラーが発生する場合がある。端末間の距離が近くてもエラーはなくならない。

    根本的な原因を少し推察してみると、

    1. 距離が近くてもエラーが発生する場合があるから、信号強度の問題では無い。
    2. 一対一のペアでも、まれにエラーが発生する場合があるから、複数送信機が存在することによる衝突が原因では無い。(複数送信機の場合に、エラーが増える傾向は間違いない)
    3. RFのチャンネルをいくつか変えてみた(CH10,CH50, CH100)が、傾向に大きな差は無いことから、周波数選択に原因があるわけでは無い。(ただし、全チャンネルを確かめた訳ではないし、スペアナ等を使ってRF周波数での混信の有り無しを確認したわけでは無いので断言は出来ない)
  • シェアする

    • このエントリーをはてなブックマークに追加

    フォローする