我注意到Androids上收到的蓝牙低能量信号强度在周期内是不同的。 下图表示两分钟内一个BLE信标的RSSI值。接收Android和信标都是静态的,距离为1米。我确保尽可能降低干扰。 Android是Nexus 5,但我和其他Android设备有同样的现象,都在API 21上运行。我还没能在iOS上测试它。
你可以看到RSSI每15秒重复有3个主要等级,比如低 - >中 - >高 - >低 - >中 - >高等。
我的猜测是,原因在于android方面,不确定是否是出于硬件或软件原因。
为什么RSSI会随着时间的推移而循环?有人可以解释一下吗?
答案 0 :(得分:3)
现在阅读了很多主题后,我可能会回答。
蓝牙低功耗信标使用三种不同的信道进行广告宣传,这是他们调整跳频以避免干扰其他2.4GHz信号。这种情况比普通蓝牙(1600 / s)慢得多 - 根据我每5秒测量一次。
更多信息: http://www.argenox.com/bluetooth-low-energy-ble-v4-0-development/library/a-ble-advertising-primer/
接收信号强度显然取决于频率,因此如果频率变为另一个信道,则RSSI不同。如何解决这个问题现在是一个不同的问题。
<强>更新强> 在跟进此问题后,我必须更新我的评论:
每个5s左右的三个级别很可能不是由于信标慢跳频而直接导致,而是Android设备单独扫描信道并在这样的时间间隔后切换到下一个。
克服此行为的一种方法是在循环中启动和停止扫描过程,以便扫描持续时间少于5秒。开始扫描时,设备似乎始终在同一通道上开始扫描,并且重新开始扫描,然后才能切换到其他通道。通过重新启动,模式不再可检测 - 缺点是通道已经固定&#34;并且可能会受到此频率的干扰。 感谢Airsource有限公司让我回到这个问题。
答案 1 :(得分:3)
根据Android AOSP - Definition of scan interval and scan window in android source code,任何扫描模式下的扫描间隔均为5000毫秒。
我认为您的图表是通过使用连续扫描的应用程序生成的 - 即5000ms的扫描窗口,基本上是连续的。
扫描仪将在每个扫描间隔后在通道37,38,39之间旋转,这可以解释您观察到的差异。通道37,38,39在BLE光谱中不是连续的--37是2402Mz而39是2480Mz。波长的差异意味着每个通道http://www.cl.cam.ac.uk/~rmf25/papers/BLE.pdf的多路径(来自反射的干扰)衰落将是不同的 - 你说设备是静态的,所以如果没有其他任何东西在移动,干扰也将是静态的
在iOS上,扫描间隔(前景)is reportedly 40ms,这意味着您不应该体验到这种精确效果。