簡體   English   中英

如何使用XBee快速向其他XBee廣播信息?

[英]How to quickly broadcast information with a XBee to other XBee?

我正在使用幾個XBee Zigbee和一些Arduino模塊(或微控制器,Arduino不是強制性的)。 我在X /透明模式下配置了我的XBees。

我需要廣播信息:當觸摸一個模塊時,每個其他模塊必須同時立即做出反應。

不幸的是,如果我在單播模式下獲得良好的速度效果,則廣播模式中存在大量延遲。 這是已知和記錄的內容,請參閱XBee ZigBee尋址

沒有數據丟失,但它們有時會被XBee緩沖幾秒鍾,然后再次發送或傳送到我的Arduino。

它似乎不是配置問題,它是廣播協議的工作方式。 關於如何加快這個過程的任何想法?

我唯一的一個就是使用API​​模式,讓每個Arduino保留一份XBee地址列表,並將單播信息列入這些地址列表......但我失去了廣播方法的舒適度,我不能輕松添加新模塊而不更新每個Arduino。

使用XBee ZB模塊的廣播尋址傳輸數據通常會比向每個要通話的節點傳輸單個單播提供更多,更少的性能。 這是因為XBee ZB模塊上的廣播與XBee 802.15.4模塊的工作方式完全不同。

當您使用XBee 802.15.4模塊發送廣播時,單個802.15.4幀將傳輸到網絡,所有可以聽到傳輸的節點都會將其拾取並從其串行UART發送信息。 802.15.4網絡是一個簡單的星型網絡,並且網絡上的任何節點都不會執行廣播的隱式重復。 使用XBee ZB,這是不同的。 XBee ZB模塊在網狀拓撲中起作用,並且需要將信息重復到超出原始傳輸范圍的其他節點。

當您使用XBee ZB模塊發送廣播時,接收廣播的每個節點將重新廣播3次,導致在節點之間傳輸大量數據。 另外,在任何給定時間,網絡上只能存在一定數量的“直播”廣播。 當XBee實際上拒絕傳輸請求時,這通常會使人們認為網絡正在丟棄其數據。

除非您不經常發送數據 - 可能每分鍾播放一次或更慢 - 通常最好遵循以下過程:

  1. 通過啟用AR功能,通過執行網絡發現或收集路由記錄數據包構建所有節點的列表
  2. 向您要傳輸的每個節點發送單播

如果您要向大型ZB網絡上的節點發送信息(即大於30個音符),您可能需要閱讀本文: 大型網絡和源路由

我不認為你可以更多地優化它,除非只有一些模塊需要接收消息。 在這種情況下,您可以使用多播可能僅適用於Xbee 2)而不是廣播,當網絡變得足夠大時(大於16個節點,即基本網絡),這會對網絡的整體速度帶來一些非常小的改進。路由表)。

您是否嘗試過單播,多播和廣播之間的比較? 可能是制作十幾個單播平均更快或至少更可靠,特別是如果您的特定網絡中有許多跳(例如:具有8跳的12節點網絡)。

使用單播,您可以獲得確認或確認,以便了解操作的總體時間和成功,以及是否需要重試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM