API(应用程序编程接口)模式是一种基于帧的方法,用于向无线电的串行UART发送和接收数据。该API是默认透明模式的替代方案。
API允许程序员能够:
- 无需进入命令模式即可更改参数(仅限XBee)
- 逐包查看RSSI和源地址(仅限XBee 802.15.4)
- 接收每个传输包的发送确认
本文将介绍如何将示例数据包转换为用于单播传输的API数据帧。尽管此示例将使用一个小文本消息,但该示例可以扩展为包含最多100字节(XBee Zigbee (ZB)的256字节)长度的XBee数据包,或者在默认配置和启用API的情况下包含最多2048字节的9XTend数据包。
由于9XTend和XBee使用略微不同的寻址选项,因此将为同一文本消息提供两个不同的示例。
本例将把ASCII字符串“Hello”发送到目的地址为5001的电台。两个示例都将使用没有转义字符(ATAP=1)的API模式。无线电中的两个API选项都可以在固件版本1083 (XBee)和2020 (9XTend)上随时向客户提供。对于ZigBee版本的固件,请确认您已经安装了API版本。
XBee - 16位802.15.4单播示例:
使用以下参数配置无线电:
广播电台1 |
电台2 |
Ap = 1 |
Dl = 5000 |
My = 5000 |
My = 5001 |
要组合数据包,请使用X-CTU测试和配置软件的Terminal选项卡中的''''Assemble packet ''''选项。
启动第二个X-CTU屏幕。确认您已经选择了COM端口Radio 2,然后单击Terminal选项卡。
在“''''Assemble Packet''''”窗口中选择“''''十六进制''''”选项,在Radio 1'''' COM端口的X-CTU设置中输入如下十六进制格式的数据:
7e 00 0a 01 01 50 01 00 48 65 6c 6c 6f b8
7 e |
开始分隔符 |
00 0 a |
长度字节 |
01 |
API标识符 |
01 |
API帧ID |
50 01 |
目的地址低 |
00 |
选项字节 |
6c 6c 6f |
数据包 |
B8 |
校验和 |
如果数据包成功,您将在接收模块终端窗口中看到“Hello”。您还将收到一个返回到Radio 1的响应数据包,说明数据包成功。这个成功的响应包看起来像这样:
7e 00 03 89 01 00 75
7 e |
开始分隔符 |
00 03 |
长度字节 |
89 |
API标识符 |
01 |
API帧ID |
00 |
状态字节 |
75 |
校验和 |
如果需要查看TX响应报文,请在“终端”页签中选择“''''Show Hex''''”
xtend单播示例:
对于9XTend,您需要安装的固件版本是2x20或更高版本。如果您没有安装此版本,您可以使用X-CTU测试和配置软件从我们的网站下载。如果您不确定如何更新固件,请按照下面列出的步骤操作http://knowledge.digi.com/articles/Knowledge_Base_Article/How-to-update-firmware-in-modules/?q=How+to+update+firmware+in+modules&l=en_US&fs=Search&pn=1安装正确的版本。
固件安装完成后,将无线电设置为以下参数:
广播电台1 |
电台2 |
拨码开关1,5和6向上 |
拨码开关1,5和6向上 |
Ap = 1 |
Ap = 0* |
Dt = 5001 |
Dt = 5000 |
My = 5000 |
My = 5001 |
其他参数保持不变。源地址和目的地址是任意选择的。
*Radio 2''''s AP选项可以设置为0 (API关闭),1(API不带转义字符)或2(带转义字符)。接收消息仍然是相同的。
无线电已经准备好使用API包发送“Hello”消息。
选择您选择的X-CTU窗口作为Radio 1,然后单击Terminal选项卡。
在“''''Assemble Packet''''”窗口中选择“''''十六进制''''”选项,输入如下十六进制格式的数据。
7e 00 0a 01 01 50 01 00 48 65 6c 6c 6f b8
7 e |
开始分隔符 |
00 0 a |
长度字节 |
01 |
API标识符 |
01 |
API帧ID |
50 01 |
目的地址低 |
00 |
选项字节 |
6c 6c 6f |
数据包 |
B8 |
校验和 |
地址为5001 (radio 2)的9XTend电台将接收到“Hello”数据包,并显示在相应的X-CTU的Terminal选项卡中。Radio 1''''的数据包上的发送响应现在看起来像这样:
7e 00 03 89 01 00 75
7 e |
开始分隔符 |
00 03 |
长度字节 |
89 |
API标识符 |
01 |
API帧ID |
00 |
状态字节 |
75 |
校验和 |
有了这些信息,您就可以很容易地扩展上面提供的示例,包括XBee中的64位寻址功能,或者向范围内的所有无线电设备发送广播地址。
要了解有关任意一个无线电中的API选项的更多信息,请参阅各自的产品手册。产品手册可在网上找到。
Digi-XCTU软件实用程序的“工具”图标下的“帧生成器”和“帧解释器”是处理API帧的方便方法。XCTU可在此下载:
//www.phdurl.com/products/xbee-rf-solutions/xctu-software/xctu#productsupport-utilities