433 MHz RFノイズの問題

これはちょっとした疑問の種です。 433 MHzのRFモジュールを使用して、2つの8051マイクロコントローラ間でワイヤレス通信を確立しようとしています。しかし、433 MHzは非常にノイズの多い周波数なので、受信機はすぐにゴミの収集を始めます。この場合、ソフトウェアフィルタを実装することでゴミデータを排除することができますか、それとも私のデータは完全に邪魔されますか前もって感謝します。

1
あなたは関係するノイズ源を特徴付けることができますか?
追加された 著者 ThreePhaseEel,
それは実際に私が1つのマイクロコントローラから他のマイクロコントローラにASCII文字を送信していて、それを液晶ディスプレイに表示しているということです。しかし、液晶ディスプレイに表示される文字は予想通りではありません。これがデータを破壊するノイズが原因であるかどうか、またはそれが私が使用しているハードウェアの単なる伝送問題であるのかどうかはわかりません。ノイズの発生源に関しては、私のモジュールを支配している環境での通信に433 MHzを使用している特定の発生源を指摘することはできません。
追加された 著者 user161494,

4 答え

あなたはそのようなタイプのモジュールを使っていますか?

enter image description here

そうであれば、それからそれらが適切なソフトウェアノイズフィルタリングアルゴリズムなしで動作することを期待しないでください。このモジュールは、433MHzで動作するトランスミッタが他にない場合でも、Rx出力にデータを出力します。これは、このデバイスがOOK(On-Off Keying)およびAGC(自動ゲイン制御)に対応しているためです。したがって、Rxがしばらくの間信号を検出しない場合、自動的にしきい値を下げ、しきい値がノイズレベルに近づくと、ノイズは\ $ 1 \ $と\ $ 0のビットストリームとして解釈されます$

パケットを正しく識別するために、送信する各フレームに3〜4の識別バイトを追加してください。識別バイト数を追加すると、ノイズがパケットとして解釈される可能性が低くなります。 通常、3〜4バイトで十分です。

また、送信信号レベルでしきい値を調整するにはある程度の時間(数ビットの時間)がかかるため、連続して送信しない場合は、フレームを送信する前に1または2のジャンクバイトを送信することをお勧めします。不適切な初期しきい値レベルが原因で破損する可能性があります。

Hardware solution: A common chipset used in such receiver module is PT4317. If you check the datasheet then you can see that the data slicer inputs are available off-chip. Thus the slicing threshold can be manually adjusted by properly assigning threshold voltage to DSN pin. But this will compromise the sensitivity of the receiver and thus the longest range it can operate with. You will have to experiment with different values of this pin's voltage and the range it produces.

3
追加された
はい、これはまさにその通りです。例えば、私が6バイトのデータを送るとき、最後のバイトは常に無事に到着して液晶ディスプレイに現れますが、最初の2バイトは非常に矛盾しています。アドバイスありがとうございます。
追加された 著者 user161494,

433MHz帯については、それを特にうるさくするものは何もありませんが、その帯の他のユーザーからの時折の干渉があるかもしれませんが、おそらくそれはあなたが見ているものではありません。

単純な受信機では、信号が存在しない場合でも、それ自体の内部ノイズがスプリアス信号としてデコードされるまでゲインを上げることができます。おそらくこれは、ソフトウェアフィルタリングでは解決できないでしょう。

受信機のデータシートをチェックしてください:RSSI出力 - (Received Signal Strength Indicator) - 通常はアナログ電圧であり、入ってくる信号の強度を表しています(正確ではありません)。

1つの方法は、これをアナログ(ADC)チャネルで読み取り、RSSIが特定のレベルを下回っている場合はレシーバ出力を無視することです。最大範囲を試していないのであれば、このレベルをかなり高く設定して、わずかなエラーで強い信号のみをデコードすることができます。

Otherwise you may need to combine with some other error mitigation scheme - re-transmitting faulty messages or error correcting codes for example - details are far too wide for a simple Q&A but how to meet a specific service goal might be a better question.

1
追加された
安い433MHzの受信機は通常再生的な設計で、本質的には常に「何かを 受信する」ことができます。これは漠然とより良い受信機の多動AGCに似ていますが、少し異なっていて、はるかに原始的です。
追加された 著者 Andrew Walker,
@ChrisStrattonそうです(私はあなたが超再生を意味すると思うが)。そしてすべてがRSSIを持っているわけではありません。
追加された 著者 jumojer,

それは騒々しい環境である必要はありません、それはまたノイズを生成する受信機自体です。 433 MHzのほとんどの端末でこれがどのように解決されるかは、データのコーディングを使用することによって決まります。そのため、データパケットはデータ自体と追加のコードで構成されているため、マイクロプロセッサはデータパケットを認識してノイズと区別できます。

Arduinoには433(または315)MHzを超えるデータ転送用のライブラリがあります。その一例が Virtualwire ライブラリです。それがどのように行われているかを見るためにあなたがそれらを調べることをお勧めします。

データを送信していないときには、「明確な」チャネルを期待しないでください。 433 MHz通信はそのようには機能しません。 OOK変調を使用した非常にシンプルな(そして安価な)受信機と送信機で設計されていますそれが低いデータレートのためであるので、これは簡単なマイクロコントローラでさえも行うことができる。

1
追加された

思考実験:受信機のアンテナを取り外し、PCBのアンテナ接続からPCBのグランドへの短絡と交換してください。レシーバを完全なファラデーケージに配置し、絶対ゼロに大幅に近づけるように冷却した場合にのみ、レシーバの自動利得制御はノイズを拾って増幅するのに十分なほど敏感ではありません。

0
追加された
これらは通常再生的な受信機です、それでそれは単なるノイズではありません、しかし信号がないときの受信機自体の実際の振る舞い。
追加された 著者 Andrew Walker,