您好!
我必须接收64字节以上的数据、因此在帧仍在接收时必须读取 RxFio。 当 GDO 信号被触发时、开始读数被触发、然后我每毫秒通过读取 RXBYTE 寄存器进行轮询、看看是否还有数据剩余。 从第一个接收到的数据中、我得到了帧长度、因此可以将第一个字节作为长度字节、将接下来的 x 个字节作为数据。 在大多数工作正常但自下而上的情况下、我会"不同步"。 我接收到的第一个字节似乎不是长度字节、因此我对数据的完整读取会导致数据错误。 我曾经看到我的读取数据被一个字节移位。
由于我使用的射频数据速率大约为32kBit/s、因此在一毫秒内 RxFio 中应该有大约4字节的新数据。 因此、当接收到一个帧时、我应该一直在 RXBYTE 中找到一个大于0的值。 当我读取0时、唯一的情况是当一个完整的帧被接收和读出时。 但是、我还应该检测到一个"帧结束"、因为读取的字节数、最后读取的第一个帧字节、并且没有剩余的内容。
但我也可以看到我读取 RXBYTE 0、但我仍会从前一帧中获得一些字节(未接收到作为第一个帧字节读取的字节数)。
由于整个同步都基于长度字节、因此我会详细询问 CC1101的工作原理。 在射频级别检测到前导码和同步字。 这是现在一个完整的帧出现的触发器。 因此、下一个字节是长度字节、即视为有效载荷的下一个字节的数量。 接收到这些字节数后、执行 CRC 校验、以便芯片确定这是否是正确的帧。 但是、尤其是对于2-FSK 调制、接收器可以检测是否存在1 (频率为 f0+df)、0 (频率为 f0-df)或无任何内容。 µSeconds、当接收器需要一个信号(具有32kBit/Sec)但没有发现任何信号时、会发生什么情况? 它是否会等到收到实位? 但在这种情况下、可能会发生在1毫秒内未接收到新字节的情况。 或者、如果在接收到一半的预期字节时无法再接收任何内容、会发生什么情况? 芯片是否会为 RxFio 设置一些值、当预期数量超过 CRC 校验时、大多数概率将失败? 只有在这种情况下、我才可以使用处理器内部的逻辑、我确实希望使用字节数。 据我所知、没有能够告诉我一帧接收已停止的 GDO 值。
如果"当 RXBYTE 返回0时、收到一个 paket "语句不完全正确、我有问题。
提前感谢您的帮助和提示
Erwin