根据对此问题的回答:What are The Unit of measurement并进行推断,似乎从imu数据源(imu9)读取时间戳时,时间戳可能不是来自基本系统,而是来自某些系统。其他来源。是这样吗
顺便说一句,是否有人能将设备上的时间同步到ios或android设备等外部设备?我知道时间可以设定,但是好像总是要休息一会儿。这可能是发送多少个ble数据包以实际发送时间值,然后对其进行处理并返回响应的函数吗?如果是这样,是否有办法量化时差是多少?
答案 0 :(得分:1)
Movesense传感器具有一个时钟源(32kHz 20ppm晶体稳定的低频滴答计数器),其运行速度为1024滴答/秒。从那里开始计算“ RelativeTime” [ms](自复位以来的ms)。 RelativeTime作为许多传感器测量的时间戳返回,并且基于xtal稳定时钟,因此它是稳定的。由于特别是IMU单元(Acc / Gyro / Magn)采样是由LSM6DSL的内部RC振荡器定时的,因此时间戳的差异可能会有所不同,实际采样率是订阅参数中给出的标称值的+ -10%。由于该芯片使用来自稳定振荡器的时钟信号,因此ECG采样是准确的。
UTC时钟的计算是相对于RelativeTime的偏移量。因此,内部UTC时钟以毫秒为单位计算,而API则以微秒为单位,以防将来的硬件具有更好的功能。
执行PUT / Time时,传感器使用给定的UTC时间来计算UTC时钟和RelativeTime之间的新偏移量并将其使用。 BLE上的PUT请求需要花费一些时间,可以通过PUT-GET往返估算。如果需要更精确的设置,则可以使用CustomGATTService模块(/ Comm / Ble / GattSvc)来实现更简单的时间设置服务,从而避免了所有MDS / Whiteboard协议开销。通常,BLE连接间隔似乎在45ms-60ms左右,因此无论如何都会有很大的延迟。
当前发布的Movesense设备库没有提供简便的方法来找出传感器上UTC时间与RelativeTime之间的关系。但是,即将发布的1.7版本(将在数周内到期)将具有此功能,并简化了多传感器同步。
全面披露:我为Movesense团队工作