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. 限时订单实现方案(DelayQueue、ActiveMq)

    原文链接:http://www.studyshare.cn/blog-front/blog/details/1132 一.在各种电商网站下订单后会保留一个时间段,时间段内未支付则自动将订单状态设置为已 ...

  2. Linux 下安装 apache

    1.检查是否已经安装过 apache (linux 中 apache 的名字是 httpd) rpm -qa  httpd 2.如果没有安装过,运行如下命令 yum install httpd -y ...

  3. GIS 案例教程-蜂窝多边形制作模型

    GIS 案例教程-蜂窝多边形制作模型 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 优点: 拖放式,非编程,复制即用,不用配置. 效率高,非迭代,可以处理大数据. ...

  4. 基于WebGL架构的3D可视化平台—实现小车行走路线演示

    小车行走路线演示New VS Old 刚接触ThingJS的时候,写的一个小车开进小区的演示,今天又看了教程中有movePath这个方法就重新写了一遍,其中也遇到了一些问题,尤其突出的问题就是小车过弯 ...

  5. 项目(一)ftp搭建

    FTP服务 FTP两种模式: 主动模式服务器向客户端敲门,然后客户端开门 被动模式客户端向服务器敲门,然后服务器开门 传输模式:可以是文本模式,也可以是二进制模式,二进制模式更适合传输图片等非文本字符 ...

  6. oralce的function处理考勤时间节点以及计算工作时间

    例如: 上班时间为 8:30 到17:30,加班则到21:00:午休时间为1小时,(12:00-13:00): 晚间休息时间为半小时 (17:30-18:00),计算一批考勤数据的上班时间. 思路: ...

  7. 微信小程序生成携带参数的小程序码

    https://blog.csdn.net/qq_28988969/article/details/77969365

  8. python 决策树

    RID age income student credit_rating Class:buys_computer 1 youth high no fair no 2 youth high no exc ...

  9. java将一个List赋值给另一个List

    声明和实例化: 声明:ArrayList a, 仅仅只是声明了一个list变量,其未来作用相当于C++中的引用变量,亦或者相当于一个对象块的索引,但并未为其分配具体的完整的对象所需要的内存空间,其所分 ...

  10. python标准库之operator(运算符模块)

    operator模块提供了一系列与Python自带操作一样有效的函数.例如:operator.add(x, y)和表达式x+y是等效的.那些特殊类的方法都有自己的函数名:为了方便起见,一些函数名是没有 ...