一种获取传感器高精度时间同步数据的方法及装置与流程

文档序号:15844808发布日期:2018-11-07 08:52阅读:469来源:国知局
一种获取传感器高精度时间同步数据的方法及装置与流程

本发明涉及一种获取高精度时间同步传感器数据的方法,以及采用该方法获取高精度时间同步传感器数据的装置。



背景技术:

在高精度地图生产时需融合各种传感器的数据,大部分传感器输出的数据是实时数据,如果仅记录原始数据则会丢失时间相关性,因此这些数据需通过高精度同步的时间进行关联。

一般的数据采集都是把传感器数据直接传输到数据存储模块,由于数据存储模块一般运行在基于linux的分时操作系统,采用操作系统的时间会使时间误差高于10毫秒,因此需要先让传感器输出的数据流转到一个高精度时间同步的装置,该装置为流转的数据打上高精度时间戳,再输出到数据存储单元。

为了能对数据进行高精度时间同步,一般采用基于fpga的模块。但fpga的成本较高,不利于产品的推广使用。本发明通过一个成本非常低廉的arm内核的stm32单片机实现高精度时间同步,可以让实时采集数据的时间精度由几十毫秒误差提高到1毫秒,在满足高精度时间同步的基础上大幅降低成本,实现规模应用,具有非常重大的商业价值。



技术实现要素:

本发明主要解决传感器数据时间同步采用fpga成本过高,而一般的方法时间同步误差过大不能满足实际应用的问题,本发明公布了一种低成本高精度的传感器数据时间同步方法,包括如下步骤:

步骤1,初始化处理器;

步骤2、设置本地定时器,每1ms产生计时中断;

步骤3、检测外部输入每秒计时信号,与本地定时器计时模块比较,更新

本地时间;

步骤4、获取传感器数据,加上更新后的本地时间戳;

步骤5、存储带时间戳的传感器数据,重复步骤3-5。

更进一步的,检测到外部输入秒计时信号时,与本地定时器计时模块比较,时间相差小于300ms以内,更新本地时间为整秒加1。

基于以上方法,本发明公布了一种低成本获取高精度的传感器数据时间同步装置,包括数据获取模块,本地计时模块,定时更新模块,添加时间戳模块,数据存储模块;

所述数据获取模块用于读取传感器数据;

所述本地计时模块由定时器产生1ms定时中断计时;

所述定时更新模块用于接收外部秒同步信号并与本地计时模块比较判断更新本地时间;

所述添加时间戳模块用于添加更新后的本地时间戳到数据获取模块获取的传感器数据;

所述数据存储模块用于存储添加时间戳后的数据。

优选的,所述数据获取模块与外部传感器通过uart或者i2c连接,所述数据存储模块与外部存储器通过uart或者i2c连接,所述定时更新模块通过gpio和uart与外部rtk装置连接,其中uart用于获取gga数据,gpio用于获取pps信号。

更进一步的,所述获取传感器高精度时间同步数据的装置在基于arm内核的stm32单片机上实现。

更进一步的,所述rtk装置为novatel617d,所述传感器包括惯性导航传感器,更具体的是指包含mpu9250模块的惯性导航传感器。

附图说明

图1是一种获取传感器高精度时间同步数据的方法流程图。

图2是一种获取传感器高精度时间同步数据的装置原理框图。

具体实施方式

实施例

为使本发明的技术方案更加清楚,下面将结合附图对本发明的技术方案作进一步详细描述。

为了低成本的获取高精度时间同步传感器数据,本实施例采用一个基于arm内核的stm32单片机实现传感器数据1ms精度的时间同步。

首先单片机开机初始化,设置stm32的定时器中断,每1ms产生一次计时中断,用于本地计时模块的计时。

单片机通过uart读取rtk装置输出的nmea格式数据及通过gpio获取pps信号指示实现时间同步。rtk装置使用novatel617d。

nmea格式的定位数据,通常会包含具有时间戳的gga数据,而gga的数据通常如下一组数据样式:

“$gpgga,123519,2307.00,n,11320.00,e,1,08,0.9,545.4,m,46.9,m,,*47”逗号分隔符第二个数字即为utc时间戳,定时更新模块提取此时间用于更新本地计时模块的实时时间,同时rtk装置会输出的一个pps信号,该信号是一个电平信号,传输到定时更新模块所需的时间非常短。因为pps信号是整秒输出,因此定时更新模块在收到pps信号后,判断本地当前实时时间与取得gga时间戳的时间不超过300ms,则使用整秒加1后的gga时间更新本地时间。

本实施例推荐的定时更新模块与rtk装置通过uart连接,连接管脚如下:

stm32模块gpioa_2与rtk装置的串口的rx接口连接;

stm32模块gpioa_3与rtk装置的串口的tx接口连接;

stm32模块gpioa_15连接rtk装置的串口的pps信号接口;

stm32模块与rtk装置共地连接;

数据获取模块通过uart或者i2c读取传感器数据,传感器包括惯导,例如mpu9250模块,通过iic与本装置连接,或者封装了mpu9250模块的器件,通过串口与本装置连接。

本实施例推荐的数据获取模块与传感器通过uart连接,连接管脚如下:

stm32模块gpiob_10与传感器的串口的rx接口连接;

stm32模块gpiob_11与传感器的串口的tx接口连接;

stm32模块与传感器共地连接;

添加时间戳模块把数据获取模块获取的传感器数据添加当前本地高精度时间戳,之后数据存储模块将添加了时间戳的传感器数据输出到数据存储单元。之后应用单元在获取存储单元的传感器数据的时,就可以提取时间戳,获知数据采集的精确时间,保留时间高度关联的一组传感器数据。

本实施例推荐的数据存储模块与存储单元通过uart连接,连接管脚如下:

stm32模块gpioa_9与存储单元的串口的rx接口连接;

stm32模块gpioa_10与存储单元的串口的tx接口连接;

stm32模块与存储单元共地连接。

以上方案不仅能够提供获取高精度时间同步的传感器数据,而且满足低成本要求,具有显著的经济效益。

当然上述实施例只为说明本发明技术构思及特点,其目的在于让本领域的普通技术人员能够了解本发明技术方案并据此实施,并不能以此限制本发明的保护范围。尤其运用单片机本地中断划分细小时间片,再用外部精确时间对本地计时校准的构思可以有多种不同的实现方式,任何基于以上构思修改或者延伸的技术方案都应当视为本方案的保护范围。在不脱离本发明原理的前提下,还可以做出若干改进和优化,这些改进和优化也应视为本发明的保护范围。



技术特征:

技术总结
本发明涉及一种获取传感器高精度时间同步数据的方法和装置,包括数据获取模块,数据存储模块,本地计时模块,定时更新模块,添加时间戳模块;所述数据获取模块用于读取传感器数据;所述本地计时模块由定时器产生1ms定时中断计时;所述定时更新模块用于接收外部秒同步信号并与本地计时模块比较判断更新本地时间;所述添加时间戳模块用于添加更新后的本地时间戳到数据获取模块获取的传感器数据;所述数据存储模块用于存储添加时间戳后的数据。该方法和装置时间精度高,物料成本低,实现简单,应用广泛,可用于规模生产,具有显著的经济效益。

技术研发人员:关瑞成;闫文豪
受保护的技术使用者:广东星舆科技有限公司
技术研发日:2018.06.29
技术公布日:2018.11.06
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1