XBEE3 API模式通信

API模式,是指外部MCU通过向XBee模块的UART发送指定格式的命令帧,来实现发送数据或执行AT命令等功能。API模式下,XBee模块能够实现比透传模式更多的功能,包括:

  • 无需配置DHDL,直接向网络内任意模块进行通信

DH,DL是透传模式下才会用到的参数,在API模式下,命令帧中带有目标地址字段和数据字段

  • 随时进行发送本地和远程AT命令,而无需切换模式

API模式下,通过命令帧的识别码来区别是数据发送请求,还是本地AT命令或远程AT命令,无需进行模式切换。

  • 发送状态可通过反馈包判断,接收到的数据可识别来源

可以通过开启反馈包,判断每个数据包发送成功与否,接收到的数据可以通过数据帧中的源地址判断是从哪个模块发过来的。

  • 可以进行ZDO和ZigBee协议的通信

API模式下的明确寻址数据发送命令帧中,可以使用ZigBee协议的Profile,Cluster,Endpoint字段来实现ZigBee协议的通信。 并且固件中自带有ZDO协议栈处理ZCL请求和响应。

  • 更多功能,请阅读产品手

XBee模块可以通过ATAP命令来设置模块的工作模式,AP=0时是透传模式,AP=1是API模式。 在XCTU上方的工具菜单或工具按钮中,可以找到API组帧和解析工具。在API模式的模块终端窗口中,也会有发送帧的生成向导和接收帧的解析窗口。 下面是用API帧生成工具生成的一个发送数据帧例子:

ZigBee网络内的无线模块,可以全部配置成透传模式或API模式,也可以部分配置成API模式,它们之前可以相互通信,下面将演练一下API模式的模块A和透传模式的模块B进行相互通信实验。

A模块:在配置窗口中,直接设置CE=1, AP=1,并按一下配置窗口上方“Read”按钮刷新一下模块信息,我们会发现API模式下左侧列表协调器图标会多出一个红色”C”字。切换到终端模式,我们会发现API的终端模式和透传模式不太一样,它是以API帧为主的信息框和工具框,如下图所示:

这里,我们利用新增命令帧向导添加一个准备用来发送“test”字符的命令帧,注意目标地址字段要用B模块的Mac地址,如下图所示:

根据向导提示,按“OK”和“Add Frame”按钮,把生成的帧添加到发送列表当中。

B模块:保持透传模式不变,确保DH和DL为默认值0,并且是加入A模块的网络。

同样地,将B模块的终端视图分离出主窗口,以便观察它们的相互通信。 当在A模块中选中刚才生成的发送“test”字符的命令帧,按下发送按钮时,B模块的窗口中就收到了“test”字符。如下图所示:

我们还可以看到,默认地,API带有反馈包,在发送端可以看到发送成功与否的结果。

我们在B模块的终端打一个字符“a”,同样地,A模块就收到带有这个字符的API接收帧,我们可以通过A模块的帧信息详情的下拉滑块查看帧的详细说明。

更多的API命令帧说明,请参考产品手册或Digi XBee API进阶应用指南