API 1 和 API 2 XBee 模式的区别

Difference between API 1 and API 2 mode of XBee

我在查找 XBee 的 API 1 和 API 2 模式之间的区别时遇到了问题。我已经完成了编程工作,并且在周三进行了硕士论文答辩。我知道如何使用 XBee,但我的射频基础知识很薄弱。请用我在论文答辩中会说的几个基本词来解释这种差异。

一切都在这里解释。祝你论文顺利 https://www.digi.com/resources/documentation/Digidocs/90001456-13/tasks/t_configure_operating_mode.htm?TocPath=XBee%20API%20mode%7COperating%20mode%20configuration%7C_____0

我个人不喜欢 API 模式 2,因为它增加了发送和接收数据的复杂性,除非您在串行驱动程序的低级别处理它。

API 模式 2 的好处是您可以观看字节流并知道您看到的任何 0x7E 字节绝对是“帧开始”。使用 API 模式 1,可以在帧的内容中看到该字节。

如果您在中间选择一条溪流,则需要做额外的工作来验证您是否找到了起点。这不是很难做到,特别是如果您在 0x7E 帧开始之后包含对 16 位帧长度的健全性检查。在大多数情况下,您将解码完整的帧,而不需要寻找下一帧的开始。

由于转义还包括 XON 和 XOFF 字符,我想如果串行流中有其他设备(连接在 XBee 和主机 sending/receiving 帧之间,则可能需要 API 模式 2 ) 无法处理这些字符。

编辑以包含有关 API 模式 2 的详细信息:

在任一 API 模式下,字节 0x7E 表示帧的开始。

在模式 2 中,如果以下字节出现在帧内,它们将替换为转义的双字节序列 0x7D,后跟原始字节与 0x20 异或:

byte in frame escaped sequence
0x7E (start of frame) 0x7D 0x5E
0x7D (start of escape sequence) 0x7D 0x5D
0x13 (XOFF) 0x7D 0x33
0x11 (XON) 0x7D 0x31

请注意,帧长度和校验和基于原始的、未转义的字节序列。如果您正在编写代码来处理转义出站帧和未转义入站帧,您希望它发生在串行驱动程序的相当低的级别。