ch579使用phy開啟rx的時(shí)候,接收多個(gè)設(shè)備的數(shù)據(jù)要怎么做?急!??!

ch579使用phy開啟rx的時(shí)候,接收多個(gè)設(shè)備的數(shù)據(jù)要怎么做?急?。?!

只要接入地址一樣,并且數(shù)據(jù)類型配置相同,RX就可以接受TX的數(shù)據(jù),即使是多個(gè)設(shè)備。
但是因?yàn)橥瑫r(shí)只能收1個(gè),所以TX端要在RX啟動(dòng)的時(shí)候發(fā)送,就可以了。


ble的phy和zigbee的phy,在同一時(shí)刻都只支持接收一個(gè)設(shè)備的無線信號(hào)。

在存在多設(shè)備并發(fā)發(fā)送數(shù)據(jù)時(shí),需要規(guī)定一定的協(xié)議來管理發(fā)送的先后順序。

比如zigbee采用的就是csma/ca的mac層管理協(xié)議。

ble是通過跳頻來避免信號(hào)的碰撞。

推薦使用LWNS協(xié)議棧,協(xié)議棧提供私有組網(wǎng)的協(xié)議。

下載鏈接:https://gitee.com/jiamai01/lwns

在LWNS中,提供了模擬csma/ca的mac層協(xié)議和模擬ble mesh的mac層協(xié)議。

csma/ca mac每次在發(fā)送數(shù)據(jù)前會(huì)隨機(jī)等待,一旦等待期間接收到一個(gè)數(shù)據(jù)包,就放棄本次發(fā)送,等待下次。

ble mesh mac會(huì)在三個(gè)通道內(nèi)不斷切換發(fā)送和接收,來避免碰撞。

如果不使用LWNS,依舊可以參考如上兩個(gè)mac層協(xié)議編寫自己的mac層管理。


那接收了一個(gè)設(shè)備的消息之后,可以做到不在接收這個(gè)設(shè)備的消息嗎?接收完一個(gè)消息之后時(shí)候要重啟開啟一次rx?


不可以,只要一個(gè)節(jié)點(diǎn)發(fā)送,另外一個(gè)節(jié)點(diǎn)處于接收,就必然會(huì)接收到數(shù)據(jù)。只可以在接收數(shù)據(jù)處理中過濾掉該數(shù)據(jù)。


CH57x系列的RF_PHY例程中,接收到一次消息后,就會(huì)關(guān)閉接收,進(jìn)入回調(diào)函數(shù),用戶自己需要在回調(diào)函數(shù)中通過tmos_set_event置位任務(wù),在其他process中打開接收。

發(fā)送數(shù)據(jù)包也會(huì)關(guān)閉接收,也需要重新打開接收。


一對(duì)多的情況下,兩邊都有tx和rx;一個(gè)這一端發(fā)送命令給多個(gè)設(shè)備,多個(gè)設(shè)備接收到了,切換到tx返回?cái)?shù)據(jù),這種情況如何處理會(huì)好些


自己定義多設(shè)備發(fā)送時(shí)的先后順序管理協(xié)議。

參考LWNS模板工程下的lwns_adapter_blemesh_mac.c和lwns_adapter_csma_mac.c。


blemesh發(fā)送方每次發(fā)送數(shù)據(jù)包都會(huì)在三個(gè)通道內(nèi)切換各發(fā)送一次,然后再多次重復(fù)上述流程。

blemesh接收方會(huì)每10ms切換一次接收通道,達(dá)到接收到發(fā)送方的數(shù)據(jù)的目的。


csma發(fā)送方是按照周期檢測(cè)進(jìn)行發(fā)送,比如20ms檢測(cè)一次有沒有要發(fā)的數(shù)據(jù)包,如果有,就開始發(fā)送前等待,

在等待期間,如果接收到了一個(gè)數(shù)據(jù)包,就認(rèn)為本周期內(nèi)信道忙,等到下一個(gè)20ms周期檢測(cè),重新開始發(fā)送流程。



只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频