XBee PRO S3B也称为XBee-900HP无线模块,它是一款工作在频段900~928MHz之间,基于FHSS跳频技术的远距离无线数传电台核心模块。常用型号如下:

 类别    型号
 开发套件 XKB9-DMT-UHP
XBee-PRO 900HP (S3B) DigiMesh模块,200Kbps,软天线 XBP9B-DMWT-002
XBee-PRO 900HP (S3B) DigiMesh模块,200Kbps, RPSMA天线接口 XBP9B-DMST-002
XBee-PRO 900HP (S3B) P2MP模块,10Kbps,U.FL天线接口 XBP9B-DPUT-001

更多型号请访问官网:http://www.digi.com/products/xbee-rf-solutions/modules/xbee-pro-900hp#partnumbers

Digi XBee PRO 900HP模块的发射功率最高可达250mW,因国内存在较多的基站背景噪声干扰,对于传输距离要求更远的场景,建议选择功率更高的XBee PRO SX无线模块。
900HP模块的官方产品支持页:http://www.digi.com/support/productdetail?pid=5576

Digi 900HP模块可以支持三种不同协议的固件,比较常用的是XBP9B-DM和XBP9B-DP这两个固件。接下来用XCTU工具分别做这两个固件在不同模式下的组网通信测试。请首先下载最新版的XCTU工具并安装,首次打开时,请保持网络连接畅通,XCTU软件会自动下载更新固件库。

900HP Digimesh组网通信测试

XBP9B-DM的尾缀是DM,顾名思义这是Digimesh协议的模块。Digimesh既可以实现星状网络,也可以实现网状网络,也就是自组网。使用Digi的开发套件,将两个900HP的Digimesh模块插到底板上用USB线缆连接到电脑。打开XCTU,用左上角有搜索按钮来搜索接到电脑的XBee模块,并添加到左侧列表,如下图所示:

添加好模块后,默认XCTU是工作在模块的配置模式下,点击左侧列表上的模块,会读取该模块的配置并在右侧显示出来,您可以在这个界面下更改模块的参数。对于手中有样品的客户,最好是先恢复一下出厂的默认参数,以免因为参数不正确影响结果。点击“Default”按钮加载默认参数,然后点击“Write”写入新参数。

XBee PRO 900HP透传模式通信

要让几个模块组成一个网络,首先要保证网络ID和HP是一样的,另外CM覆盖相同的频点。一般地,只要你是同一型号的模块,采用默认值就行了,只需把网络ID改成你定义的独一无二的网络号。模块会采用64位地址通信,其中SH,SL是模块自身的MAC地址,而DH,DL是透传模式下的目标地址。默认地DH=0,DL=FFFF时是广播地址,因此采用默认参数,网内的模块已经可以互相通信,只不过这是一种广播方式的通信,效率和可靠性相对较低,我们一般需要改成定向单播通信。

我们先来试一下默认的广播通信,在XCTU中,可以点击右上方的终端按钮,把XCTU当成一个串口调试助手来使用。分别点击选中两个模块,并打开串口,用“分离视图”按钮让两个终端显示在桌面的不同区域,在ASCII显示区任意输入字符,可以在另一个终端上看到收到的字符。如下图所示:

接下来我们用定向单播的方法来测一下透传模式,先把分离视图合并,然后切换到配置模式下,在两个模块的DH,DL中分别填入对方的SH,SL,写入模块后,再回到串口终端界面测试结果。可以发现两个模块此时也仍能互通,但此时是向指定地址发送数据而非采用广播模式。

我们也可以在串口终端用AT命令的方式改写参数,在串口终端处输入三个“+”,会弹出一个OK,这时模块已经从工作模式切换到命令模式下,我们可以直接发打AT命令,比如有个NI参数是可以用来给模块命名的,默认是没有赋值的,在弹出OK后,输入ATNINODE1回车来给他赋值NODE1名称。下图是操作结果,分别是设置NI为NODE1,再读一下NI,把结果用WR命令写入flash,用CN命令直接退出命令模式。

注意,如果你不用ATCN来退出命令模式,默认约6秒无操作时,模块也会自动退出命令模式而回到透传的工作模式。如果不用默认值,相关的时间和进入命令模式的特殊字符等都可以在AT指令里自定义。

因为透传模式需要用特殊定义的符号和时延组合来进入命令模式,以修改目标地址等,如果在一个网内,需要对不同的模块进行通信,这样的方式显然效率低下,这时我们可以用API模式来进行通信。API模式是一种用命令帧同模块进行交互的通信方式,它不但可以用来随时和任意模快通信,也可以用来设置远程AT命令,收取反馈包等。下面我们演示一下一个透传的模块和一个API模式的模块的相互通信过程,以加深对API模式的理解。

XBee PRO 900HP API模式通信

API模式通信* API模式具有以下优点,随时与任意模块进行定向通信,随时发送AT指令而不需要进行模式切换,可以识别数据来源,发送结果可以通过反馈包判断,可以远程向其它模块发送AT命令等。可以说,API模式除了可以做透传模式的所有事情外,还有其它更多功能。在一个网络中,你可以全部用API模式,也可以是中心点用API模式而其它节点用透传模式。要开启API模式,只需把AP参数设置为1或2即可。

在配置模式中,将AP设置为1并写入,切换到终端模式下,可以看到原来的终端窗口被命令帧窗口取代了。点击“+”号按钮,用向导添加一个API帧,比如我们要添加向另一个模块发送数据的帧,在帧向导中的Frame Name给这个帧取名为“frame_0_send1234”,然后点击用帧生成工具来生成帧,在接下来的页面中,选择Frame Type为0x10发送请求帧,在64位目标地址中输入另一模块的mac地址,在RF data中输入“1234”,该工具会自动生成以7E开头的完整的发送命令帧。点击“OK”,并把生成结果用“Add Frame”按钮添加到发送列表中。选中该帧,然后点击“Send Selected Frame”发出该帧,就可以在另一个模块的终端窗口中收到1234字符。 同样地,你可以在透传模式的终端窗口中输入任意字符,在API模式的模块中会以0x90接收帧的方式显示收到的数据。选中每个帧,在“Frame details”中会显示详细的帧字段含义。如下图所示: 

其它

Digimesh可以实现自组网,也就是只要网络内各点分布合理,任意的点都可以给别的点当路由。但是如果最近的两个点也很远,边上有基站干扰的情况下,为了实现更远的传输距离,还可以用XBP9B-DP固件,这个固件默认没有自组网功能,但因为RF的速率是10K,所以两点间距离更远,但相应的带宽也低些,比较适合多个远距离模块向中心点间的星状网络数据传输。

无人机和一些密集高速通信的考量 许多无人机或是工业通信往往是要用点对多点模式,而不是digimesh。这时为了提高带宽很实时性,可以做如下设置: TO=40 代表点对多点模式 
CE=2 节点不做路由,减少CPU和带宽浪费 
NH=1 由上,由于不做路由,我们把网络跳点设置为1,一些固件内部像timeout的算法会用到这个参数,减小这个以增大带宽。

XBee PRO 900HP远距离无线模块的更多相关文章

  1. 地磁应用中的低功耗无线数传模块xbee PRO S2C

    地球上每一个地理坐标点,在一段时间内磁场强度是恒定的,当车辆这种铁磁物质经过这个点时,对这个点的磁场强度产生一个连续的扰动,通过磁传感器采样数据与初始采样数据(该点的地球磁场值)进行对比,其差值为车辆 ...

  2. 《例说XBee无线模块开发》

    <例说XBee无线模块开发> 基本信息 原书名:The Hands-on XBee Lab Manual:Experiments that Teach you XBee Wireless ...

  3. [Arduino] 基于Xbee Pro和网络技术的智能公交系统设计

    转自:http://www.21ic.com/app/rf/201112/99474.htm 引言 公共交通具有个体交通无法比拟的强大优势,优先发展城市公共交通系统是解决大.中城市交通问题的最佳途径. ...

  4. LoRa无线传输技术与LoRaWAN无线模块的区别

    有不少人分不清LoRaWAN无线模块与LoRa网关无线传输技术到底有什么区别,他们在物联网领域的应用到底是什么样的. LoRaWAN指的是MAC层的组网协议,而LoRa是一个物理层的协议.虽然现有的L ...

  5. 51单片机对无线模块nRF24L01简单的控制收发程序

    它的一些物理特性如工作频段.供电电压.数据传输速率就不详细介绍了,直接上代码. 1.首先是发送端: // Define SPI pins #include <reg51.h> #defin ...

  6. nRF2401A/nRF24L01/nRF24L01+无线模块最常见问题汇集(转)

    俗话说:每个人一生下来什么都会的,都是通过自己努力和探索出来的,NRF系列芯片,刚开始都好奇心加兴趣才来捣鼓它的,刚开始做硬件和软件,没有收发数据弄得整个人头都快炸开了,所以在此和大家分享一下前辈的经 ...

  7. CC1101 433无线模块,STM8串口透传

    CC1101 433无线模块,STM8串口透传   原理图:http://download.csdn.net/detail/cp1300/7496509 下面是STM8程序 CC1101.C /*** ...

  8. STM32F103芯片SPI控制NRF24L012.4G无线模块交互通信实验

    1.NRF24L01模块的资料百度搜索一下就有很多.这里我就不做介绍本文主要侧重于应用层面实验介绍与分享. 2.先看下原理图. 根据原理图:写出NRF24L01  C语言驱动文件如下: #includ ...

  9. 一次小模块的使用过程-LC12S无线模块介绍

    前言: 最近帮人做了个小设备,使用了无线模块.触摸芯片,主要功能就是把触摸按键的信号无线传到控制继电器输出,MCU是STM8系列的芯片,其中使用过程中调试无线模块LC21S觉得挺好用的,就写了这篇文章 ...

随机推荐

  1. xcode9.4 报错 error:The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

    原因 http | https 协议  不能正常使用 找到的解决方案 但是在字段名上有了变化,不过复制进去 还是会自动选择对应的 解决办法 1. 在Info.plist中添加 App Transpor ...

  2. 自学web前端能不能找到一份前端的工作吗

    关于自学web前端能不能通过社招找到一份互联网公司web前端开发的工作,有无数的人问出这样的问题,答案没有标准的,只能从概率去考虑.有的人可以,有的人不可以,有的人自学就业的概率就是高,有的概率就是低 ...

  3. Fiddler手机抓包设置

    前提条件:1).电脑需要安装Fiddler2).测试手机需要支持Wifi3).测试手机与电脑需要同一网络4).所测APP需支持代理 三.设置Fiddler 1.(1)电脑端打开安装好的的fiddler ...

  4. 跳板机 jumpserver

    http://docs.jumpserver.org/zh/docs/introduce.html 启动脚本 #!/bin/bash set -e export LANG=zh_CN.UTF- # 项 ...

  5. NamedParameterJdbcTemplate

    NamedParameterJdbcTemplate 在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参 ...

  6. 寻找遗失的tags

    现象:查询数据库,存在tags:{} 的字段,但是api查询时,不存在tags字段 日志定位Sample的init方法中对resource_metadata的扁平处理: 3.对应方法分析 在ceilo ...

  7. Java框架spring 学习笔记(三):Bean 的生命周期

    当一个 bean 被实例化时,它可能需要执行一些初始化使它转换成可用状态.当bean不再需要,并且从容器中移除时,需要做一些清除工作.为了定义安装和拆卸一个 bean,我们只要声明init-metho ...

  8. Sprite(雪碧图)的应用

    雪碧图是根据CSS sprite音译过来的,是将很多很多的小图标放在一张图片上. 使用雪碧图的目的:有时为了美观,我们会使用一张图片来代替一些小图标,但是一个网页可能有很多的小图标,浏览器在显示页面的 ...

  9. DDB---查询与优化

    摘要:分布式数据库(Distributed DB)是数据库中非常重要的一个部分,随着要处理的数据越来越多,分布式逐渐成为了一种策略.主要有:分布式操作系统,分布式程序设计语言,分布式文件系统,分布式数 ...

  10. oracle 按表数据新增一行

    在功能实现时,能尽量用一个sql语句直接实现业务逻辑的话,就不要去写C#代码,便于维护. 以下sql的逻辑是:给明细表新增一条数据,前提是传入的债券代码存在与债券表,否则不新增.此sql返回受影响行数 ...