RF通信想要一對多發(fā)送需要怎么設(shè)置RF參數(shù)
typedef?struct?tag_rf_config
{
????uint8_t?LLEMode;??????????????????//!<?BIT0???0=basic,?1=auto?def@LLE_MODE_TYPE
??????????????????????????????????????//!<?BIT1???0=whitening?on,?1=whitening?off?def@LLE_WHITENING_TYPE
??????????????????????????????????????//!<?BIT6???0=data?channel(0-39)
??????????????????????????????????????//!<????????1=rf?frequency?(2400000kHz-2483500kHz)
??????????????????????????????????????//!<?BIT7???0=the?first?byte?of?the?receive?buffer?is?rssi
??????????????????????????????????????//!<????????1=the?first?byte?of?the?receive?buffer?is?package?type
????uint8_t?Channel;??????????????????//!<?rf?channel(0-39)
????uint32_t?Frequency;???????????????//!<?rf?frequency?(2400000kHz-2483500kHz)
????uint32_t?accessAddress;???????????//!<?access?address,32bit?PHY?address
????uint32_t?CRCInit;?????????????????//!<?crc?initial?value
????pfnRFStatusCB_t?rfStatusCB;???????//!<?status?call?back
????uint32_t?ChannelMap;??????????????//!<?indicating??Used?and?Unused?data?channels.Every?channel?is?represented?with?a
??????????????????????????????????????//!<?bit?positioned?as?per?the?data?channel?index,The?LSB?represents?data?channel?index?0
????uint8_t?Resv;
????uint8_t?HeartPeriod;??????????????//!<?The?heart?package?interval?shall?be?an?integer?multiple?of?100ms
????uint8_t?HopPeriod;????????????????//!<?hop?period(?T=32n*RTC?clock?),default?is?8
????uint8_t?HopIndex;?????????????????//!<?indicate?the?hopIncrement?used?in?the?data?channel?selection?algorithm,default?is?17
????uint8_t?RxMaxlen;?????????????????//!<?Maximum?data?length?received?in?rf-mode(default?251)
????uint8_t?TxMaxlen;?????????????????//!<?Maximum?data?length?transmit?in?rf-mode(default?251)
}?rfConfig_t;

RF通信想要一對多發(fā)送需要怎么設(shè)置RF參數(shù),區(qū)分不同RF設(shè)備是通過設(shè)置accessAdreess嗎

看到RF設(shè)備間需要切換收發(fā)角色反饋數(shù)據(jù),例程中收發(fā)兩方使用相同的accessAdreess參數(shù),那如果還有另一個accessAdreess的設(shè)備,這個發(fā)送的設(shè)備也需要跟著把accessAdreess也改成要接收的另一個的RF設(shè)備的accessAdreess嗎,只需要重新初始化RF然后RF_Tx來發(fā)送給另一個設(shè)備嗎


是的,只要保證發(fā)送方和接收方的地址等參數(shù)配置保持一致,就能做到同時一對多,在RF_PHY這個例程中可以實現(xiàn)


這么做不行,只有一個顯示到接收了數(shù)據(jù),其他幾個節(jié)點都是顯示hop rx,并且一直在顯示,另一個能接收的一開始也顯示hop rx


只能接收的那一個偶爾會crc error


RF_PHY_HOP例程中無法實現(xiàn)的原因是他們設(shè)置了跳頻的過程,在1對2時,假設(shè)A為發(fā)射端,B和C作為兩個接收端,A,B,C設(shè)備雖然同時上電,但是A一旦與B或者C中的一個設(shè)備建立了通訊,那么這兩個設(shè)備就會開始跳頻(初始化三個設(shè)備都在默認(rèn)0頻道),B或者C中另外一個設(shè)備就被落下了,把它丟在了0頻道,所以有一個設(shè)備會一直沒通訊上,因此跳頻例程暫時只能1對1通訊。

而另外一個不跳頻的例程RF_PHY,則是所有設(shè)備都在一個默認(rèn)頻道通訊,可以實現(xiàn)您的需求。


了解了,那跳頻是指切換發(fā)射頻率嗎?


是的,收發(fā)雙方需要保證發(fā)射頻率和接收頻率一致才能收發(fā)數(shù)據(jù)


如果多個設(shè)備參數(shù)完全一致,是不是沒辦法做角色切換來反饋數(shù)據(jù)接收狀態(tài)了


您好,RF_Init中的參數(shù)是RF底層配置,配置不一致會直接在底層屏蔽掉,不會上報到應(yīng)用層。為了便于管理從設(shè)備的收發(fā)切換,建議不要求改RF底層配置,而用自擬協(xié)議,由中心設(shè)備在應(yīng)用層管理。比如說中心設(shè)備在第一次與從設(shè)備通信時,給每個從設(shè)備分配一個字節(jié)或多個字節(jié)的設(shè)備ID;中心設(shè)備在輪詢管理從設(shè)備時,帶著設(shè)備ID來交互私有協(xié)議,這樣不會搞混其他從設(shè)備的收發(fā)模式。


不改RF底層配置的話就是用完全一致的參數(shù)了嘛,就是說主機的數(shù)據(jù)是所有從機共享的,您說的分配ID和私有協(xié)議大概意思是公共數(shù)據(jù)中區(qū)分是哪一個設(shè)備的數(shù)據(jù),只有這個ID的從機負(fù)責(zé)反饋收到數(shù)據(jù),這樣來避免多從機沖突嘛


是的,走應(yīng)用層去區(qū)分設(shè)備,底層配置用來劃分不同的網(wǎng)絡(luò)比較合適。或者在中心設(shè)備初次連接外圍設(shè)備時,獲取外圍設(shè)備的MAC地址,應(yīng)用層直接指定從機的MAC地址,根據(jù)MAC地址來避免沖突。


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

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