SI4463小结
今天push project的过程中遇到了丢包现象,带有回复信标的包丢失导致主机堵塞(没来得及写Timeout),分析了下原因,记录下来明天解决。文章权当抛砖引玉,若有不对请指出。叨扰。
由于SI4463是无线模块(废话),所以必然会有使用无线网络的通病——协议问题。SI4463由于物理特性,使用完整带多跳的协议必然会导致效率的降低,并且本次项目的要求仅仅是点对点,所以选择(……自己写的)精简的无线协议为不二之选。
(通过SI446X_READ_PACKET()得到的数据第一个统一为0XFF,所以可以用这个来作为简单的判别是否收到,而真正有意义的数据从第二个开始。但奇怪的是我使用店家的透明串口就没有0xff输出,虽然我猜测可能模块内部自行处理掉了0xff但实际的代码并没有,时间仓促有空继续研究。———>错误,收到FF是因为一个小错误,数据第一位就是发送的第一位)
另外模块即使进入RX状态也不一定能够捕捉到发过来的无线信息,在状态快速切换的情况下,能否接收到信息只是个概率问题。如每0.5s切换一次状态,则有0.5s时间内接收不到信息。所以使用包的编号(或者控制帧)来确定是否握手这个并不太现实,倒是每次通信都进行握手是很可

本文作者分享了在使用SI4463无线模块时遇到的丢包问题及其分析,探讨了无线协议的选择和优化。通过调整传输速度、利用FIFO缓存以及采用握手协议等方式提高通信可靠性。同时,提到了模块对干扰和电源稳定性敏感,计划进一步研究RSSI功能以实现自动跳频。
最低0.47元/天 解锁文章
7755





