XBee PRO 900HP远距离无线模块
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远距离无线模块的更多相关文章
- 地磁应用中的低功耗无线数传模块xbee PRO S2C
地球上每一个地理坐标点,在一段时间内磁场强度是恒定的,当车辆这种铁磁物质经过这个点时,对这个点的磁场强度产生一个连续的扰动,通过磁传感器采样数据与初始采样数据(该点的地球磁场值)进行对比,其差值为车辆 ...
- 《例说XBee无线模块开发》
<例说XBee无线模块开发> 基本信息 原书名:The Hands-on XBee Lab Manual:Experiments that Teach you XBee Wireless ...
- [Arduino] 基于Xbee Pro和网络技术的智能公交系统设计
转自:http://www.21ic.com/app/rf/201112/99474.htm 引言 公共交通具有个体交通无法比拟的强大优势,优先发展城市公共交通系统是解决大.中城市交通问题的最佳途径. ...
- LoRa无线传输技术与LoRaWAN无线模块的区别
有不少人分不清LoRaWAN无线模块与LoRa网关无线传输技术到底有什么区别,他们在物联网领域的应用到底是什么样的. LoRaWAN指的是MAC层的组网协议,而LoRa是一个物理层的协议.虽然现有的L ...
- 51单片机对无线模块nRF24L01简单的控制收发程序
它的一些物理特性如工作频段.供电电压.数据传输速率就不详细介绍了,直接上代码. 1.首先是发送端: // Define SPI pins #include <reg51.h> #defin ...
- nRF2401A/nRF24L01/nRF24L01+无线模块最常见问题汇集(转)
俗话说:每个人一生下来什么都会的,都是通过自己努力和探索出来的,NRF系列芯片,刚开始都好奇心加兴趣才来捣鼓它的,刚开始做硬件和软件,没有收发数据弄得整个人头都快炸开了,所以在此和大家分享一下前辈的经 ...
- CC1101 433无线模块,STM8串口透传
CC1101 433无线模块,STM8串口透传 原理图:http://download.csdn.net/detail/cp1300/7496509 下面是STM8程序 CC1101.C /*** ...
- STM32F103芯片SPI控制NRF24L012.4G无线模块交互通信实验
1.NRF24L01模块的资料百度搜索一下就有很多.这里我就不做介绍本文主要侧重于应用层面实验介绍与分享. 2.先看下原理图. 根据原理图:写出NRF24L01 C语言驱动文件如下: #includ ...
- 一次小模块的使用过程-LC12S无线模块介绍
前言: 最近帮人做了个小设备,使用了无线模块.触摸芯片,主要功能就是把触摸按键的信号无线传到控制继电器输出,MCU是STM8系列的芯片,其中使用过程中调试无线模块LC21S觉得挺好用的,就写了这篇文章 ...
随机推荐
- React props
class WebSite extends React.Component { constructor() { super(); this.state = { name: "菜鸟教程&quo ...
- 如何高效的学习Java开发
IT 行业的变化快是众人皆知的,需要持续去学习新的知识内容.但是,往往我们工作之后,经常发现学习的东西很少了,学习效率非常低,感觉自己到了一个瓶颈期,久而久之,就演变成『一年工作经验,重复去用十年』的 ...
- Python module ---- os
os 模块Python标准库中的一个用于访问操作系统功能的模块,使用OS模块中提供的接口,可以实现跨平台访问.提供了一个统一的操作系统接口函数, 这些接口函数通常是平台指定的,os 模块能在不同操作系 ...
- ----Androd 系统开机显示白条提示 “there is internal problem with your device, Contact your manufacture ... ”
ref: https://www.theandroidsoul.com/how-to-fix-theres-an-internal-problem-with-your-device-error-on- ...
- 发现一个好工具RenderDoc
逛VULKAN官网时,工具中提到RenderDoc这个东西,百度了下,是专为图形程序员用的,可以集成到VS,或U3D中,收藏先. 参考链接
- Linux系统下常用命令
yum [options] [command] [package ...] options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装 ...
- Eclipse使用Maven创建Web时错误:Could not resolve archetype
请检查maven的setting 是否有问题.window->Perfenence->maven->User Settings里 看 Gloal Setting和User Setti ...
- 【博客开篇】服务器配置:Windows2008R2+PHP5.6+SQLServer2008(X64)
现下流行LAMP,如果选择Windows服务器,那么一般都会选择IIS+Asp.Net+SQL Server(可以简称为WINS),这些配置起来,都是非常方便的. 但也有一些特殊的服务器配置,例如:W ...
- django 设置session过期时间
session的超时时间设置settings中SESSION_COOKIE_AGE=60*30 30分钟.SESSION_EXPIRE_AT_BROWSER_CLOSE False:会话cookie可 ...
- 走进MyBatis的世界
1.MyBatis可框架及ORM 1.Mybatis框架简介 MyBatis是一个开源的数据持久层框架.它内部封装了通过了JDBC访问数据库的操作,支持普通的SQL查询,存储过程和高级映射,几乎消除了 ...