tag 标签: zigbee透明传输

相关博文
  • 热度 21
    2014-1-17 18:08
    7819 次阅读|
    0 个评论
    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