计算两部Android手机之间的BLE消息的飞行时间

时间:2017-06-06 19:08:02

标签: android bluetooth bluetooth-lowenergy

对于SO来说可能是一般的,在需要时可以随意移动到任何其他的SO克隆。

我想根据通过蓝牙低功耗发送的消息来回传输所需的时间来计算2个Android智能手机之间的距离。

喜欢:

  1. 设备A通过BLE连接到设备B.
  2. 设备A发送消息
  3. 设备A存储当前纳秒(T0)
  4. 设备B在蓝牙无线电(BT0)上接收消息
  5. 设备B处理消息
  6. 设备B提出"收到消息"事件(BT1)
  7. 设备B存储当前纳秒
  8. 设备B将确认消息发送回A,其值为BT1 - BTO
  9. 设备A在蓝牙无线电(AT0)上接收消息
  10. 设备A流程消息
  11. 设备A收到"收到的消息"事件(AT1)
  12. 设备A存储当前纳秒(T1)
  13. 总行程时间=距离= T1 - T0 - (BT1 - BT0) - (AT1 - AT0)

    是否可以在Android上计算(BT1-BT0)和(AT1-AT0)?

    谢谢

1 个答案:

答案 0 :(得分:1)

没有。时钟误差允许高达50 ppm。此外,允许在4微秒窗口内发送数据包。这些原因足以说明您的提案不起作用。

更大的原因是消息必须由非实时操作系统(Android)中的蓝牙堆栈处理,并且还必须通过UART传输到手机中的蓝牙控制器,然后计划在以下位置传输消息:下一个连接事件。

如果您可以为通用微控制器无线电编程固件并以16 MHz时钟的精度为无线电设定时间,那么您可以获得足够好的结果来测量更长的范围。随着在BT5中引入BLE长距离,控制器现在必须在计算接收器窗口时考虑距离(在BT 4中为+ -2微秒)。

相关问题