基于ZYNQ的组合导航多源异构数据时间同步方法

文档序号:33623265发布日期:2023-03-25 13:41阅读:136来源:国知局
基于ZYNQ的组合导航多源异构数据时间同步方法
基于zynq的组合导航多源异构数据时间同步方法
技术领域
1.本发明属于导航数据预处理技术领域,特别是一种基于zynq的组合导航多源异构数据时间同步方法。


背景技术:

2.导航技术是无人驾驶安全的基础,是无人驾驶系统的关键组成部分。由于对导航技术的要求不断提高,采用单一传感器数据进行导航定位的方式变得不再可靠,组合导航系统成为更好的选择。组合导航系统本质是对各导航设备测量的导航信息进行综合处理的系统。
3.目前组合导航系统根据不同应用需求,配置不同传感器,具有不同的特定功能,其工作原理大致相同。系统需要对载体安装的gps、imu等传感器原始数据进行采集,数据类型分类,时间同步等预处理后传输至处理中心进行融合处理。导航系统对多源数据进行融合处理时需要知晓数据的类型和含义,并考虑如何使多种传感器向中央处理器提供的导航信息是同一时刻的。
4.由于这些数据来源于不同传感器或不同的系统,各传感器和系统遵循的数据采集与传输的标准也不统一,同时,各传感器执行的任务不同、自身性能优劣有所差异,所处环境也不相同等多方面原因,使得各传感器的量测数据时间上不同步。增加了数据融合的难度,致使导航系统多源异构数据融合效果差。
5.目前,多传感器数据采集时间同步的方法如文献“sins/gps组合导航系统时序同步技术研究”(作者,黄凤钊等,中国惯性技术学报,2001,9)所述,包括sins/gps时序接收机同步启动;sins和gps接收机任务时序保持同步。即通过gps接收机输出的1pps脉冲信号作为ins采样控制电路时序启动的触发脉冲,实现sins和gps接收机同步启动。通过动态调节sins基本时序发生器的分频率值实现sins和gps接收机任务时序保持同步。
6.上述方法针对gps和sins脉冲信号采样频率不同的问题,以gps的脉冲信号作为输出的基准信号对sins的脉冲信号进行校正,实现sins和gps的数据同步。然而,由于各传感器都以gps接收机的1pps脉冲信号为基准对自身时序进行修正,当gps接收机失锁时,其1pps信号精度随着时间推移越来越差,从而使各传感器之间的时间同步精度越来越差。
7.同时,由于各传感器子系统完成测量数据更新后,要通过通信总线传输给数据融合中心,融合中心接收到数据后还需进行如平滑去噪或积分等预处理操作,而数据传输和预处理也需要时间,因此,也存在融合中心对数据进行同步时对应的是数据融合的时刻而非各传感器数据更新的时刻,从而导致时间准确性不够高。


技术实现要素:

8.本发明目的在于提供一种基于zynq的组合导航多源异构数据时间同步方法,同步精度稳定性好、时间准确性高,便于对数据进行后续处理。
9.实现本发明目的的技术解决方案为:
10.一种基于zynq的组合导航多源异构数据时间同步方法,包括以下步骤:
11.(10)传感器数据采集:根据传感器通信总线及传输协议,基于zynq平台,采集传感器发送的原始数据;
12.(20)时钟基准建立:利用全局时钟构建微秒级时钟计数器,获得微秒级时间戳数据,根据数据传输停止时的计数值得到本次采集的数据时间戳;
13.(30)数据类型识别:通过通信总线接口和传输协议标识符,识别接收到的不同传感器数据或相同传感器的不同类型数据,并根据不同类型传感器或相同类型传感器不同的数据类型建立相应的处理线程;
14.(40)相同结构数据帧组建:将各传感器有效数据与采集的数据时间戳结合,构成相同结构的新组建数据帧,并在新组建数据帧中添加数据类型id;
15.(50)数据帧传输:将打好时间戳和数据类型id符的新组建数据帧传输到上位机。
16.本发明与现有技术相比,其显著优点为:
17.1、时间同步精度稳定性好:本发明以pps脉冲为基准建立微秒级时间计数器并对时间计数器进行清零更新,并在各传感器数据更新时刻提取微秒级时间计数器的时间戳数据,在gps失锁、pps脉冲随时间精度降低的情况下,仍能获得各传感器之间数据更新时刻的微秒级精确时间差,保证同步精度不会降低;
18.2、时间准确性高:本发明在各传感器量测数据更新时刻获得时间戳数据,并组合成新的数据帧再传输给数据融合中心,使用各传感器数据更新时刻的时间戳数据进行融合,抵消了数据传输和预处理的产生的时延,确保需要同步的数据对应的时刻是其更新时刻,而不是融合中心进行融合的时刻;
19.3、时间误差小:本发明利用zynq平台指令并行处理的特点,相较于arm的指令顺序执行,可以做到各模块同时工作,减少了指令逐条执行产生的时间误差。
20.下面结合附图和具体实施方式对本发明作进一步详细描述。
附图说明
21.图1为本发明基于zynq的组合导航多源异构数据时间同步方法的主流程图。
22.图2为图1中传感器数据采集步骤的流程图。
23.图3为图1中时钟基准建立步骤的流程图。
24.图4为图1中数据类型识别步骤的流程图。
25.图5为图1中相同结构数据帧组建步骤的流程图。
具体实施方式
26.如图1所示,本发明基于zynq的组合导航多源异构数据时间同步方法,包括以下步骤:
27.(10)传感器数据采集:根据传感器通信总线及传输协议,基于zynq平台,采集传感器发送的原始数据;
28.判定传感器的传输接口及协议,驱动传感器开始发送数据并驱动zynq相应通信总线接口对发送的数据进行接收,串行数据接收后以一字节格式缓存,建立字节计数器计数已接收的字节个数。
29.如图2所示,所述(10)传感器数据采集步骤包括:
30.(11)配置zynq平台外设驱动:根据所使用的传感器对应的通信总线接口,编写zynq平台对应的接口外设驱动,确保zynq平台与各传感器可以进行正常通信。
31.zynq(例如,zynq-7000all programmable soc)是赛灵思公司(xilinx)推出的新一代全可编程片上系统(apsoc),它将处理器的软件可编程性与fpga的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。与传统soc解决方案不同的是,高度灵活的可编程逻辑(fpga)可以实现系统的优化和差异化,允许添加定制外设与加速器,从而适应各种广泛的应用。
32.(12)初始化传感器:将所述接口外设驱动通过zynq平台与各传感器之间的通信总线,写入各传感器内部寄存器。
33.参考传感器数据手册,通过所述步骤(11)配置的zynq平台与各传感器之间的通信总线连接,向传感器内部寄存器写入对应数据,实现对传感器的初始化配置并使能传感器开始工作。
34.(13)开始数据传输:当传感器从通信总线上接收到数据传输起始信号,则拉高相应的传输起始标志位,开始数据传输。
35.根据是否接收到通信总线上的起始信号,判断传感器是否开始传输数据。若接收到起始信号,则认为后续接收到的信号有效,并拉高相应的传输起始标志位。
36.(14)接收异步串行数据:以50mhz全局时钟建立时钟周期计数器,当时钟周期计数器计数到一比特数据在通信总线上保持的系统时钟周期个数n时,累加已接收比特计数器的值并清零时钟周期计数器,重新开始计数;当已接收比特计数器的值计数到8时,将8比特数据以一字节格式缓存,清空已接收比特计数器。
37.当传感器通信总线为异步串行传输时。根据n=fs/f
t
可得传输一个比特的数据所需要的系统时钟周期个数,其中n为一比特数据在通信总线上保持的系统时钟周期个数,fs为系统时钟频率,f
t
为传感器通信波特率。以50mhz全局时钟建立时钟周期计数器,当时钟周期计数器计数到n值时表示完成一比特数据接收,累加已接收比特计数器的值并清零时钟周期计数器重新开始计数。当已接收比特计数器的值计数到8时,表示已接收到8比特数据,将8比特数据以一字节格式缓存,清空已接收比特计数器。
38.(15)更新字节计数器:每缓存一字节数据,将字节计数器的值加1。
39.根据步骤(14)所述已接收比特计数器的值为8时表示已接收到并缓存一字节数据,累加字节计数器的值。
40.(20)时钟基准建立:利用全局时钟构建微秒级时钟计数器,获得微秒级时间戳数据,根据数据传输停止时的计数值得到本次采集的数据时间戳。
41.利用50mhz的全局时钟构建微秒级时钟计数器,以gps提供的pps秒脉冲信号为基准,在pps信号到来时对计数器清零更新,以获得每秒内的微秒级时间戳数据,在接收到传感器数据的同时确定当前的时间戳数值;
42.如图3所示,所述(20)时钟基准建立步骤包括:
43.(21)建立全局时钟:利用zynq平台的晶振外设提供的50mhz信号作为系统工作的全局时钟;
44.(22)提取数据时间戳:
45.根据传输起始标志位被拉高,开始数据传输时的时间计数器的值,计算得到本次采集的数据时间戳,并停止时间计数器的计数;
46.所述本次采集的数据时间戳按下式计算得到:
47.t=n
t
/fs,
48.式中,t为当前时刻的微秒级精确时间值,即数据时间戳,n
t
为时间计数器的值,fs为全局时钟工作频率;
49.当判断所述(13)步骤中的传输起始标志位有效时,表明传感器采集到有效数据,停止时间计数器的计数,并将停止时计数器的计数值作为本次采集的数据时间戳,并缓存到时间戳数据缓存区。
50.(23)更新时间计数器:通过接收pps秒脉冲信号,作为当前整秒的开始;在接收到pps信号时将时间计数器清零,重新开始计数,作为下一秒的时间戳值。
51.(30)数据类型识别:通过通信总线接口和传输协议标识符,识别接收到的不同传感器数据或相同传感器的不同类型数据,并根据不同类型传感器或相同类型传感器不同的数据类型建立相应的处理线程;
52.传感器传输协议包括起始位、数据长度位、数据类型标识位、数据位、停止位等多种类型数据,通过对通信总线接口和传输协议标识符的判别,识别接收到的不同传感器数据或相同传感器的不同类型数据,并根据不同类型传感器或相同类型传感器不同的数据类型建立相应的处理线程;
53.如图4所示,所述(30)数据类型识别步骤包括:
54.(31)通信总线判别:通过轮询的方式判别当前接收数据所属总线,进而确定所述接收数据来自的传感器;
55.不同传感器具有不同通信总线,例如uart、iic等传输总线。通过轮询的方式判断当前哪一总线接收数据,从而判断接收的数据来自于哪一传感器。若此总线下仅挂载唯一传感器,则可确定传感器类型,跳转到步骤(33)。若此总线下挂载多个不同的传感器,则转入步骤(32)。
56.(32)传感器类型判别:对于相同总线下的不同传感器,根据接收到的帧起始符字节,判断该帧起始符来自的传感器,结合不同传感器类型传输协议中定义的特定帧起始符,确定该传感器类型;
57.相同总线下的不同传感器的传输协议帧具有不同的帧起始符,判断所述步骤(22)接收到的字节是否为帧起始符,若为帧起始符则判断是哪一传感器的帧起始符,从而确定传感器类型,转入步骤(33)。
58.(33)数据类型标识符判断:对于同一传感器传输的不同类型数据,根据接收到的数据类型标识符,确定该传感器当前发送的数据类型;
59.同一传感器在传输不同类型的数据时,在传输协议帧中含有对应其传输数据类型的标识符,根据所述步骤(22)中接收到的字节是否为数据类型标识符,若是则判断传感器当前发送的何种类型数据。
60.(34)处理线程建立:根据不同数据类型在协议传输帧中对应的位置及数据长度,结合字节计数器的值,建立相应数据处理线程,提取各传感器有效数据并缓存;
61.传感器传输不同类型数据时其数据在协议传输帧中的位置与数据长度各不相同,
根据不同类型的数据建立对应的处理线程。在对应的线程中,根据所述步骤(15)中字节计数器的值,判断当前接收的字节位于传感器传输协议帧的哪一位置,从而将不同类型的数据在传输协议帧中对应位置提取出相应数据长度的数据并缓存。
62.(40)相同结构数据帧组建:将各传感器有效数据与采集的数据时间戳结合,构成相同结构的新组建数据帧,并在新组建数据帧中添加数据类型id。
63.通过不同的数据处理线程,将传感器数据采集时刻的时间戳数据和采集到的传感器有效数据组成新的相同结构数据帧用于后续传输,并在组合帧中添加自定的数据类型id用于识别采集到数据类型;
64.如图5所示,所述(40)相同结构数据帧组建步骤包括:
65.(41)动态调整提取数据位长度:根据传感器传输协议帧判断接收的有效数据长度,得到字节计数器计数的最大值;当字节计数达到有效数据长度最大值时,将计数器计数清零;
66.确保能够完整接收到传感器传输的有效数据。
67.(42)判断已接收数据位数:读取传输完成标志位状态,当传输完成标志位有效时,累加字节计数器;根据字节计数器的值得到已接收的字节数,将缓存中接收的字节写入新数据帧的对应数据位;
68.(43)添加时间戳:待当前帧有效数据全部写入新组建数据帧后,将与其对应的本次采集的数据时间戳写入所述新组建数据帧的对应比特位;
69.当传感器传输的当前帧有效数据全部写入新组建数据帧后,通过所述(22)中提取出接收到有效数据时缓存的时间戳数据,并写入新组建数据帧的对应比特位。
70.(44)添加数据类型标识:将相应的数据类型id写入新组建数据帧;
71.通过所述(40)中识别数据类型步骤,判断当前接收的传感器数据类型,并将相应的数据类型标识id写入新组建的数据帧。完成带有时间戳和数据类型标识的数据帧的组建。
72.(50)数据帧传输:将打好时间戳和数据类型id符的新组建数据帧传输到上位机。
73.所述(50)数据帧传输步骤中,将已经组建好带有时间戳和数据类型标识的自定数据帧通过串口、网络接口、usb接口等通信方式传输至上位机进行观测及后续处理。
74.本发明方法通过zynq平台对多源异构的数据采集,利用pps秒脉冲建立基准时间计数器实现多传感器时间同步,在进行组合导航数据融合处理之前,加入了将多源异构数据转换成相同结构的协议帧格式,并在转换好的相同结构的协议帧中添加时间戳数据和数据类型标识符的步骤后再传输至上位机进行数据融合处理,数据融合中心仅需按照既定的相同协议帧格式,就可以解析出不同类型传感器数据有效值、数据类型、时间戳等信息,大大缩短了数据融合系统融合处理多源异构数据的处理时间,提高了数据融合效率。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1