• 欢迎访问伊栖物联网社区,聚焦物联网技术和解决方案QQ群:735553309
  • ,从传感器到片上嵌入式系统,无线接入,边缘计算,在这里您可以讨论一切
  • 参加最新的物联网研讨会报名
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏伊栖Eccee

XBee3-带蓝牙的双模多协议无线通信模块

无线 Robin TU 3年前 (2022-06-22) 1251次浏览 0个评论

XBee3是Digi新一代无线模块产品的总称,和之前的XBee有一个重要的区别,就是它是自带低功耗蓝牙BLE支持和MicroPython平台的无线模块产品。我们称它为双模多协议,双模指的是,它同时支持蓝牙和另一种无线协议(zigbee或digimesh等);而多协议指的是这个系列的模块,可以带不同的协议,实现蓝牙ZigBee双模,或蓝牙Digimesh双模,蓝牙LTE双模、蓝牙Lora双模等等。

可以看出,XBee3的蓝牙是标配,而另一种无线协议,取决于硬件版本,同一个2.4G的模块可以刷ZigBee,Digimesh或802.15.4协议,来实现对不同协议的支持。

由于有了蓝牙,这也意味着除了XBee本身的无线协议外,蓝牙将会是一个额外的无线通道。这里的蓝牙不仅仅可以用来配置模块,它本身也可以作为一个数据通道,实现和手机,平板的蓝牙相互交换数据。同样地,手机或平板可以将相关指令通过蓝牙发给XBee模块,通过模块上的MicroPython程序进行处理,或者是模块收到蓝牙传来的命令后,通过串口交由单片机去执行相应的处理等。

XBee3蓝牙的配置

XBee3模块中虽然集成有蓝牙功能,但默认蓝牙并没开启,可以通过AT命令或是XCTU工具软件来打开蓝牙功能。相关AT指令如下:

  • BT蓝牙启用开关

BT=1时启用蓝牙,如果在XCTU上操作,会提示您设置配对密码,出于安全考虑,蓝牙并不明文存储和传递密码,而是采用特定的方式生成随机盐值(Salt),并据此生成对应秘钥(verifier),参考SRP协议中的说明。

  • $S ,$V, $W, $X, $Y 蓝牙密码相关参数

在蓝牙的SRP协议中,它并不直接存储明文密码,而是根据“盐”值生成的秘钥。这里的盐值实际上相当于一个随机数,它对应有唯一的密钥。在XCTU操作开启蓝牙时,可通过Configure按钮来输入明文密码。如果希望在单片机上操作蓝启用蓝牙,就要用到上面这些参数。$S是指Salt,其余四个组成Verifier。在单片机上执行模块蓝牙初始化时,可在开启BT后写入这些参数。

如果您在连有XBee模块开发板的电脑上,在Console窗口中先打开串口,然后执行蓝牙的开启和配置密码的过程,就能找到上面所说的XCTU是如何开启蓝牙和写入密钥的相关AT指令。如果嵌入产品的模块不先配置好密码,也可以参考XCTU上设置密码后的盐值和密钥来通过单片机程序统一设置蓝牙密码,

XBee3蓝牙相关的API帧

和XBee的802.15.4/ZigBee/DigiMesh的无线数据收发帧不同,蓝牙有自己的API帧。在蓝牙协议中,通讯需要在安全的SRP连接中进行,Digi提供XBee BLE API,作为一个GATT服务器可以接受来自客户端(手机,平板等)的连接请求。这些客户端设备需要使用SRP来认证和开启蓝牙安全传输,相关的BLE API帧(0x2C,0xAC)是在蓝牙协议中使用。在手机或平板端,Digi提供了XBee Mobile SDK大大简化通讯过程的开发,请参考本文后面章节。

对于XBee模块本身,数据要从串口出来,相关的API帧只有0x2D和0xAD。这两个帧即用户数据转播的请求帧和接收帧。也就是当要把其它接口的数据转到蓝牙通道时,用0x2D发送请求帧。通过蓝牙收到该用户数据转播帧的一方,则在串口(或其它接口)中输出对应的0xAD接收帧。

请参考官网的详细说明:

0x2D 用户数据转发请求帧
0xAD 用户数据转发接收帧

测试方法和例程

使用XBee Mobile,提取码mwus中的 userdata relay console 待续…

手机或平板APP开发

XBee mobile SDK :

xbee-csharp库
xbee-android库


ECCEE版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:XBee3-带蓝牙的双模多协议无线通信模块
喜欢 (2)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址