我注意到 Android 上接收到的低功耗蓝牙信号强度随周期变化。
下图表示一个 BLE 信标在两分钟内的 RSSI 值。接收机器人和信标均处于静止状态,距离均为 1 米。我确保干扰尽可能低。 Android 是 Nexus 5,但我在其他 Android 设备上也遇到了同样的现象,所有设备都运行在 API 21 上。我还无法在 iOS 上测试它。
RSSI图
您可以看到 RSSI 每 15 秒重复一次,有 3 个主要级别,如低 -> 中 -> 高 -> 低 -> 中 -> 高等。
我猜测是android方面的原因,不知道是硬件还是软件的原因。
为什么 RSSI 会随时间循环?有人可以解释一下吗?
在阅读了这个主题的很多内容之后,我可能已经找到了答案。
蓝牙低功耗信标使用三个不同的频道进行广告,这是它们对跳频的适应,以避免与其他 2.4GHz 信号的干扰。根据我的测量,这种情况比普通蓝牙 (1600/s) 慢得多,大约每 5 秒发生一次。
更多这里:http://www.argenox.com/bluetooth-low-energy-ble-v4-0-development/library/a-ble-advertising-primer/
接收信号强度显然取决于频率,因此如果频率改变到另一个频道,则RSSI是不同的。如何处理这个问题现在是一个不同的问题。
UPDATE:跟进这个问题后,我必须更新一下我的言论:
每个大约 5 秒的三个级别很可能不是直接由于信标缓慢跳频造成的,而是由于 Android 设备在信道上单独扫描并在这样的时间间隔后切换到下一个。
克服这种行为的一种方法是循环启动和停止扫描过程,以便扫描持续时间明显少于 5 秒。开始扫描时,设备似乎总是在同一频道上开始扫描,并且在切换到不同频道之前重新启动扫描。重新启动后,该模式将不再可检测到 - 缺点是信道是“固定的”并且可能在此频率上遭受干扰。
感谢 Airsource Ltd 让我回到这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)