Android 台设备上的低功耗蓝牙 RSSI 会定期更改

Bluetooth-Low-Energy RSSI changes periodically on Android devices

我注意到在 Androids 上接收到的低功耗蓝牙信号强度是周期性变化的。 下图表示一个 BLE 信标在两分钟内的 RSSI 值。接收Android和信标都是静止的,距离为1米。我确保干扰尽可能少。 Android 是 Nexus 5,但我在其他 Android 设备上也有同样的现象,所有 运行 在 API 21 上。我无法在 [=26= 上测试它] 还.

RSSI Graph

您可以看到 RSSI 有 3 个主要级别每 15 秒重复一次,如低 -> 中 -> 高 -> 低 -> 中 -> 高等。

我的猜测是android方面的原因,不知道是硬件原因还是软件原因。

为什么 RSSI 随时间循环?有人可以解释一下吗?

现在阅读了很多关于这个主题的内容,我可能已经找到答案了。

Bluetooth Low Energy 信标使用三个不同的信道进行广告,这是它们采用跳频以避免干扰其他 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 秒。开始扫描时,设备似乎总是在同一频道上开始扫描,并且在切换到不同频道之前重新开始扫描。随着重新启动,模式不再被检测到 - 缺点是频道是 "fixed" 并且可能会受到该频率的干扰。 感谢 Airsource Ltd 让我回到这个问题。

根据任何扫描模式下的扫描间隔为5000ms。

我假设您的图表是通过使用连续扫描的应用程序生成的 - 即扫描 window 5000 毫秒,这基本上是连续的。

扫描仪将在每个扫描间隔后在通道 37、38、39 之间轮换,这说明了您观察到的差异。通道 37、38、39 在 BLE 频谱中不连续 - 37 在 2402Mz,而 39 在 2480Mz。波长的差异意味着每个通道的多路径(反射干扰)衰落都会不同 http://www.cl.cam.ac.uk/~rmf25/papers/BLE.pdf - 你说设备是静态的,所以只要没有其他东西在移动,干扰也将是静态的.

在 iOS 上,扫描间隔(前景)is reportedly 40 毫秒,这意味着您不应体验到这种精确效果。