XBee与 RBee ZigBee透明传输模块互传测试
本次测试的目标是为了初步探索ZigBee透明传输模块的传输速率峰值范围,同时也要检查不同公司模块之间的兼容性。测试的目标是 由美国Digi提供的XBee S2 和RF-Star的RBee 3339A 模块。
表一 测试用到的物品清单
编号 |
名称 |
型号 |
数量 |
1 |
RBee模块 |
STR-RBee-3339A -C STR-RBee-3339A -R |
1 1 |
2 |
XBee模块 |
XBee -S2 2.4GHz (Router AT Firmware) |
1 |
3 |
评估底板 |
STR-RBee-EVBS |
3 |
4 |
B口USB线 |
- |
2 |
5 |
5V电源 |
DC +5V |
1 |
表二 模块的MAC地址
编号 |
地址 |
ZigBee类型 |
制造商 |
代号 |
1 |
00 12 4B 00 03 A2 67 20 |
C |
RF-Star |
Z1 |
2 |
00 12 4B 00 03 A2 66 9E |
R |
RF-Star |
Z2 |
3 |
00 13 A2 00 40 AE 1A A3 |
R |
Digi |
Z3 |
测试前的准备工作
测试通过一台PC接两个ZigBee透明传输模块来进行,影响通信速率的两个因素,一个是串口,另一个是空中传输速率。ZigBee模块的空中传输速率统一为250kbps,不能改变。由于ZigBee透传模块的串口速率远小于RF传输速率,因此选用模块支持的最高速率,115200bps。
同时也注意到模块同时支持透明(AT)和API传输模式,两种模式下在空中的数据数率是没有分别的,但两者在串口的有效速率方面却不相同,由于透明传输没有侦的封装,串口的操作更加简单高速,而API模式下所有的数据侦都需要包含数据之外的其他内容才能通信,本次测试仅测试两个点之间的通信速率,因此选用透明传输模式。(说明,在真实的应用中API也许会也更高效)。
此外ZigBee的通信有单播方式和广播方式两种。广播数据会在全网进行一轮转发,所有的Router和Coord都要对接收到数据包转发一次,它适用于一点发送到全部的通信,它会占用较大的网络带宽。单播数据是在确定的两点之间进行(路由)通信,通信可靠,占用网络带宽小,适用于点对点的传输。还有一点是ZigBee支持路由,本次测试我们把节点放置在同一桌面,彼此都在通信半径之内,由于ZigBee的自动路由是选择较优路径,因此Z2 Z3之间的通信是直接的,不需要经过其他节点路由,这样也可以让通信速率更高。
所以最终选定串口波特率115200bps, 透明传输(AT)模式来进行测试。单播通信方式。由于ZigBee模块的特性,数据包长度定为84字节可能会有助于提高传输速率。
确定测试意图之后,是设备模块的串口及通信方式,XBee和RBee的设置方法完全一样,都是写BD,DH,DL等参数,同时使用WR来保存,使用AC来让新的设置生效。
测试的各个节点设置如下。
表三 模块的参数值
|
Z1 |
Z2 |
Z3 |
DH |
- |
00 13 A2 00 |
00 12 4B 00 |
DL |
- |
40 AE 1A A3 |
03 A2 66 9E |
SC |
1FFE |
1FFE |
1FFE |
BD |
- |
7 |
7 |
模块配置
模块的配置方法是一样的,这里以Z3的配置为例进行说明。配置可以使用普通串口助手工具来进行,这里使用RBee AT Panel 软件来进行测试,它支持快速进行AT指令,支持3个AT指令输入框,直接输入指令字即可。比如读NJ,只需要在框中输入NJ,然后点击最下方对应框编号的按钮就会把读指令发送出去,如果想写NJ的值为30,则在指令框中填写NJ 30,有无空格均可。执行指令的前提是进入AT模式,在透明传输模式下,点右下方的”AT Mode”,待模块返回“OK”后即进入AT模式,此后连续键入新的设置指令即可以设置,超过一定时间没有发送指令,模块会自动退出AT模式。
Z3的配置过程如下:
1.在AT Panel的指令框中输入DH 00 12 4B 00, DL 03 A2 66 9E , BD 7
2.点”AT Mode”进入AT模式
3.依次点“1”,“2”,“3”按钮设置DH,DL,BD
4.指令框3中输入“WR”, 点“3”按钮
5.指令框3中输入“AC”, 点“3”按钮
6.关闭串口,选择115200重新连接
7.稍等片刻后重新进入AT模式,返回“OK”表示设置成功
8.指令框3中输入“CN”, 点“3”按钮,退出AT模式
9.设置完成。
按些方法配置其他节点并确认配置有效。
测试
将Z1接5V电源上电组网,之后将Z2,Z3接到电脑上的USB上。关闭之间的设置工具,打开大傻串口工具,波特率选115200.
电脑上COM3对应Z3,COM4对应Z2,测试Z3发Z2收时,在COM3发送区1填充84个字母或者数字,去除“16进制”选项前的勾。自动发送的时间填为27.
计算波特率的公式是 1000/Period * 84 * 8
按图上的设置Dbuad =1000/27 * 84 * 8 = 24888 (bps)
填入同的发送周期就可以调整串口发送数据的频率,进行控制数据波特率。本次测试的结果如下:
XBee(Z3)->RBee(Z2) | ||||||||
纪录号 |
串口波特率 bps |
测试包数 |
发送字节数 |
发送间隔 ms |
包长 |
数据速率 bps |
接收字节数 |
掉包率 |
1 |
115200 |
4700 |
397800 |
27 |
84 |
24800 |
394800 |
0 |
2 |
115200 |
4682 |
393288 |
20 |
84 |
33600 |
393372 |
0 |
3 |
115200 |
4620 |
388080 |
15 |
84 |
44800 |
388080 |
0 |
4 |
115200 |
4740 |
398160 |
10 |
84 |
67200 |
226354 |
43.15% |
5 |
115200 |
4936 |
414624 |
13 |
84 |
51600 |
238186 |
42.55% |
6 |
115200 |
7869 |
660996 |
14 |
84 |
48000 |
661080 |
0 |
RBee(Z2)->XBee(Z3) | ||||||||
7 |
115200 |
2500 |
210000 |
29 |
84 |
23100 |
210000 |
0 |
8 |
115200 |
2202 |
558162 |
28 |
84 |
24000 |
558096 |
0.01% |
9 |
115200 |
4717 |
396288 |
27 |
84 |
24800 |
210152 |
46.97% |
从第6次和第8次的结果来看,目前XBee向RBee发送数据瞬间最大可靠速率为48000bps,而RBee向XBee发送的数据速率是24000bps。
再把测试的模块全家福晒一晒。
最后提醒大家,本次测试数据真实可靠,但未作长时间的稳定性测试。希望用ZigBee透明传输模块作大量数据传输一直是不太可取的,建议应用中的平均速率小于10kbps为宜。
emot 2014.117
文章评论(0条评论)
登录后参与讨论