【问题标题】:Setup XBee (serial) network设置 XBee(串行)网络
【发布时间】:2012-05-26 02:34:14
【问题描述】:

我想设置一个带有四个串行 1 模块的 xBee 网络。它们中的任何两个都可以双向通信。传输的数据是字符串而不是单个字节。

我最初的设计是设置一个非信标(带协调器)网络:一个模块被配置为协调器。左边的三个模块被配置为终端设备。协调器从终端设备广播数据。

通信流程是:如果终端设备1想向终端设备2发送数据,它首先向协调器发送数据。然后协调器广播从终端设备1接收到的数据。终端设备2可以接收广播数据。通信流程结束。

我希望收到的字符串是原子的。如果终端设备 1 和终端设备 3 同时发送数据,就会发生冲突。这两个字符串将结合在一起。并且终端设备2无法区分哪个字节来自哪个设备。也就是说,终端设备 1 发出字符串“{AAAA}”(不包括引号)。同时,终端设备3发出字符串“”。终端设备 2 可能会收到像“{A”这样的字符串,这不是我想要的。我预期的字符串是“{AAAA}”或“{AAAA}”。

如何设置网络以满足我的要求?

【问题讨论】:

    标签: xbee


    【解决方案1】:

    有两种方法可以使用 Digi 的 XBee 模块实现原子传输。该方法取决于是否使用 API 模式(AP 参数 > 0)。

    如果未使用 API 模式 (AP = 0),则可以通过将 RO 时间设置为大于您要进行的最长字符串的字符数来鼓励数据的原子性从您的一个节点发送。这将使 XBee 缓冲区在开始无线传输之前等待指定数量的字符时间(以特定波特率发送字符所需的时间)。注意:您必须确保将整个字符串一次全部发送到收音机,以便此方案起作用。

    如果正在使用 API 模式 (AP > 0),那么很容易获得您想要的行为。您只需使用 Tx 请求帧(API 帧类型 0x1)并指定要发送的字符串数据。数据将始终以原子方式发送。

    如果在接收节点(即在这种情况下为协调器)上使用 API 模式,则帧数据也将始终以原子方式到达。

    请参阅Digi XBee 802.15.4 product support page了解更多关于如何使用 API 模式的信息,并在互联网上搜索许多精彩的 XBee 库,让您可以轻松地在 API 模式下使用 Digi XBee 模块。

    【讨论】:

      猜你喜欢
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多