1. 程式人生 > 其它 >RF無線收發模組(Sub-1GHz)- 同頻干擾

RF無線收發模組(Sub-1GHz)- 同頻干擾

最近在搞專案的時候接觸到無線收發模組-華普微的CMT2300A,其中有個功能為主機向多個從機發送指令,然後等待從機響應。多個從機同時傳送響應後,主機會出現接收不到資料或丟包的情況,經過驗證,此時多個從機處於同頻點,同時傳送資料即產生了同頻干擾。

同頻干擾是什麼呢?

有關專家給出了一個明確的定義:凡是無用訊號的載頻與有用訊號的載頻相同,對接收同頻道有用訊號的接收機造成干擾的都統稱為同頻干擾。有人會問造成同頻干擾的原因是什麼?其實,這是無線傳輸的特性,只要我們使用多個無線模組在用一個頻率中通訊都會有這個問題,只是需要我們找對方法去解決。

如何解決同頻干擾的問題?

在網上查詢過對同頻干擾的處理,有以下幾種情況:

1.主機輪詢方式

主機輪詢方式是主機逐個輪詢叫號的方式,原理很簡單,通過點名的方式實現應答。如主機發送給1號從機,由於從機都有地址設別,因此只有從機1能夠響應主機。從機1收到主機的命令後,將資料上傳給主機。主機再以相同點的輪詢方式輪詢其它從機資料。用恰當的比喻來說,就是老師(主機)上課時,點1號學生(從機)來回答問題,這時候只有一號學生才可以回答老師的問題。這就是主機輪詢方式。輪詢方式的優點是裝置之間不容易出現衝突,組網也比較穩定,但是缺點是主機輪詢耗時間長,這種組網方式適合那些對時間要求不高的組網應用。

2.從機定時上傳方式

定時上傳方式原理為,由主機廣播發送資訊給到從機,從機收到主機資訊後,同步時間,然後根據我們設定的時間進行定時上傳,如:主機發送資訊後,從機1上傳時間為1秒,那麼從機2上傳時間為2秒…以此類推,舉個例子:我們軍訓時,教官給我們釋出一個命令,需要我們報數,從左到右,那麼左邊第一個人報數數字為1,第二個人就是為2,以此類推。定時上傳的原理也是如此,設定好從機的上傳時間,避開資料同時上傳,從而達到避免同頻干擾的目的。

3.從機主動上傳方式

從機主動上傳,LoRa模組自己有RSSI功能的組網方式相對是比較可靠的主動上傳方式。這種傳輸方法是通過從機需要進行資料上傳的時候,檢測環境中的RSSI訊號強度,如果當前環境中的RSSI強度較大,就等待RSSI值變小後再進行主動上傳。上傳是否成功,主機會反饋給從機,在決定是否需要重新上傳。但是此方式不適合不帶RSSI功能的LoRa模組,因為從機上傳越頻繁,通訊失敗的概率會越高,也就是我們說的同頻干擾。

個人處理方法:

由於專案對實時性要求高,需要主機即發,從機即收並響應,故選擇了第二種方法:從機定時上傳方式。

但是這又出現了一個問題,就是主機從機是隨機配對的,如何給n個從機設定不同的延時時間?

在主從機配對過程中,每個模組會先手動設定到配對模式,此時模組都處於接收狀態。按鍵短按一下,模組會將自身的延時時間,已配對數量以無線傳送出去,其他模組會接收到這個訊息,所有要配對的模組都會依次短按一下,最後任意一個模組長按,即配對成功。

1.設定標誌位flag,接收到一次其他模組的配對資訊並查詢是否之前已經配對過,否則flag ++,自身短按按鍵後,flag變為常數,此時flag表示此時配對中該模組排列在第幾位;

2.設定配對數量儲存值count,接收到一次其他模組的配對資訊(此處表示為num)時,與count進行對比,如果num>count,這count = num。

3.設定延時時間基準delay(此處根據實際情況設定,此處我設定為2ms),按鍵長按後,延時時間為:(count+flag)*delay, 將配對資訊(其他配對模組ID,配對數量,延時時間)存入flash區域,,配對完成。

配對完成後,在已配對的所有模組中,任何模組都可以為主機或從機,此時每個模組的延時時間都是不相同的,當n個從機需要響應時,就會各自按延時時間進行延時後再發送。

注:以上內容為本人學習方便,引用網上部分內容,若有任何問題請在留言板留言,互相學習,謝謝!

以上部分內容引用於 :https://zhuanlan.zhihu.com/p/379548715

        

菜鳥終究會找到方向,並一直飛下去。