2017-06-06 51 views
0

也许对SO来说一般,在需要时可随意移动到任何其他SO克隆。计算2个Android手机之间的BLE消息的飞行时间

我想计算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. 设备的过程的消息
  11. 设备A引发“消息中接收”事件(AT1)
  12. 设备A存储当前纳秒(T1)

总行程时间=距离覆盖= T1 - T0 - (BT1 - BT0) - (AT1 - AT0)

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

谢谢

回答

0

不可以。时钟不准确度允许高达50 ppm。此外,允许在4微秒的窗口内发送数据包。这些理由足以说明您的提案无效。

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

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