设置XBee(串行)网络

时间:2012-05-26 02:34:15

标签: xbee

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

有关如何使用API​​模式的更多信息,请参阅Digi XBee 802.15.4 product support page,并在Internet上搜索许多精彩的XBee库,这些库允许您轻松地在API模式下使用Digi XBee模块。