一种MEMS/GNSS组合导航系统实时数据同步方法与流程

文档序号:12662591阅读:582来源:国知局
一种MEMS/GNSS组合导航系统实时数据同步方法与流程
本发明属于组合导航技术领域,尤其适用于以串口方式输出的惯性测量单元组成的MEMS和GNSS组合导航系统的,一种MEMS/GNSS组合导航系统实时数据同步方法。

背景技术:
在MEMS/GNSS组合导航系统的应用中,MEMS/GNSS导航子系统通常都是独立的子系统,没有统一的时间基准,MEMS和GNSS还存在频标漂移、计算或通信等时延,且MEMS的数据更新率往往比GNSS的数据更新率大很多,从而导致两个子系统送往数据融合中心(如卡尔曼滤波器)进行融合处理的数据并不是来自于同一更新时刻。如果对这两路导航数据直接进行滤波处理,将导致组合系统导航精度和目标计算性能严重下降。综上所述,在具体的GNSS/MEMS组合导航系统的应用中,设计和实现GNSS与MEMS导航子系统间的数据同步,具有重要而深远的实际意义。当前的组合导航系统常采用硬件同步方法和软件同步方法。硬件同步方法常采用PPS、(每秒脉冲数,PulsesPerSecond)信号作为同步采样脉冲送入多通道数据采集电路中,1PPS信号同时用于触发由硬件电路生成的A/D采样的时钟,在同步后的采样脉冲下,采样器和A/D转换器工作,从而实现时间同步,这种方案通常需要高性能的硬件支持,且硬件结构复杂,另外这种方案的IMU(惯性测量单元,InertialMeasurementUnit)的输出必须为模拟信号,才能和GNSS时间对齐,如果一个IMU的输出为数字信号,则该方案无法工作,所以该方案无法使用通用型的数字输出的IMU器件,通用性较差,对于现有的完整MEMS子系统则无法使用。软件同步方法常采用1PPS秒脉冲触发CPU中断,利用CPU定时器测量GNSS的1PPS之后的第一个MEMS数据与1PPS的时标差,根据MEMS固有的更新周期与该时标差作差值,从而得到第一次1PPS前最近的那个MEMS数据与1PPS的同步时间差,然后按固有周期直接递推出每个1PPS点的同步时间差,并通过插值或外推拟合得到在1PPS时间点上的MEMS数据,这种方法忽略了MEMS频标漂移的存在而直接根据第一个同步时间差递推出后续每个1PPS点的同步时间差,导致同步精度严重下降,另外CPU定时器一直工作,加重了CPU的负担,另外由于CPU响应外部中断本身具有一定延迟,也使得同步精度下降。通过检索查到专利公开号为101105401A的一种SDINS/GPS组合导航系统时间同步及同步数据处理方法。但是该专利针对是SDINS系统,采用硬件同步方案,无法使用通用型的数字输出的IMU器件。

技术实现要素:
本发明的目的是提供一种具有高精度、实时性的MEMS/GNSS组合导航系统实时数据同步方法。本发明是通过以下技术方案实现的:一种MEMS/GNSS组合导航系统实时数据同步方法,包括以下几个步骤:步骤一:以FPGA系统时钟Fb为基准,启动32位计数器,产生计数单元为256/Fb、占空比为50%的信号Fs;步骤二:以FPGA系统时钟Fb为基准,PPS秒脉冲为触发信号,触发FPGA计数器产生与MEMS同频的时钟信号Fk;步骤三:FPGA接收GNSS数据和MEMS数据,以信号Fs的上升沿为基准,为时钟信号Fk、GNSS数据和MEMS数据打上各自到达FPGA时刻的时间标签后分别存储,当打上时间标签后的时钟信号Fk、GNSS数据和MEMS数据符合各自所设定的触发条件后产生DSP外部中断信号;步骤四:DSP响应来自时钟信号Fk、GNSS数据和MEMS数据产生的外部中断信号,通过外部存储器接口的总线与FPGA通信,分别读取时钟信号Fk、GNSS数据和MEMS数据;步骤五:DSP对接收到的数据进行解析处理,提取时钟信号Fk、GNSS数据和MEMS数据的时间标签,计算MEMS数据与GNSS数据的同步时间差,以时钟信号Fk为基准,通过同步外推算法对MEMS数据进行拟合,使MEMS数据与GNSS数据同步,输出同步后的MEMS数据与GNSS数据;步骤六:判断MEMS/GNSS组合导航系统工作是否完成,如果没有完成,则重复步骤二~步骤五,否则结束工作。一种MEMS/GNSS组合导航系统实时数据同步方法还可以包括:1、FPGA计数器产生与MEMS同频的时钟信号Fk的方法为:利用采样判决法,在FPGA的系统时钟Fb下,连续判别PPS引脚电平,当PPS引脚电平由低电平变为高电平时,触发FPGA计数器,生成并输出与MEMS所需要更新频率的时钟信号,在没有1PPS秒脉冲到来的周期内,FPGA计数器连续输出与MEMS同频的时钟信号,当下一个1PPS秒脉冲的上升沿到来,FPGA计数器重新被触发并重新工作。2、为时钟信号Fk、GNSS数据和MEMS数据打上各自到达FPGA时刻的时间标签的方法为:MEMS/GNSS组合导航系统启动后,FPGA内部32位计数器以256/Fb为计数最小单元单元开始工作,当时钟信号Fk的每个上升沿时刻到来时,计数器的计数值为时钟信号Fk的时间标签,并将其存入PPS寄存器,对于GNSS数据到达FPGA时刻,计数器的计数值为对应的时间标签,将时间标签与对应时刻的数据组合,存储到GNSS数据FIFO中,对于MEMS数据到达FPGA时刻,计数器的计数值为对应的时间标签,将时间标签与对应时刻的数据组合,存储到MEMS数据FIFO中。3、时钟信号Fk、GNSS数据和MEMS数据符合各自所设定的触发条件为:时钟信号Fk的上升沿为DSP中断请求的触发条件;利用前一时刻和后一时刻GNSS数据输出的时隙,通过FPGA系统时钟Fb对GNSS数据FIFO的数据量指示端进行过采样判决,当GNSS数据FIFO的数据量指示值保持一段时间不变,则该更新周期内GNSS数据已经输出完毕,触发DSP中断请求;MEMS数据FIFO的数据量指示值满足阈值,触发DSP中断请求。4、计算MEMS数据与GNSS数据的同步时间差为:将时钟信号Fk的时间标签与其最近的MEMS数据的时间标签作差得到的正值。本发明的有益效果:(1)本发明针对每个1PPS秒脉冲及其等效的秒脉冲,都通过FPGA为PPS、GNSS数据和MEMS数据打上时间标签,所以能实时获取每次的同步时间差,相比于现有的只获取第一次同步时间差,然后采用直接递推得到每次同步时间差的方法,极大克服了MEMS频标漂移问题,使得同步精度大大提高;另外通过该方法还可测量出MEMS频标漂移的大小,通过系数补偿可进一步提高同步精度。(2)GNSS数据和MEMS数据的采集接收均由同一片FPGA完成,且采用FPGA构建高精度时间标签计数器,当数据到达FPGA时立刻被添加各自的时间标签,极大减少了数据传输的各种延迟,并且在FPGA中GNSS和MEMS的同步时间差已经在添加完时间标签后就确定了,所以由于DSP通过外部中断响应读取GNSS和MEMS数据的响应延迟不会再影响到同步时间差,使得系统同步精度进一步提高。(3)本发明充分利用FPGA的并行工作机制,将同步时间差的工作主要放在FPGA的高精度计数器中,避免了现有技术中采用CPU定时器定时来获取GNSS和MEMS的时标差而给导航计算机带来很大的任务和负担,从而减轻了CPU的负担,且实时性好。(4)系统采用1PPS秒脉冲触发FPGA内部定时器,生成与MEMS更新率同频的等效GNSS更新脉冲,当1PPS不可用时,FPGA内部定时器保持工作,不影响GNSS与MEMS的数据同步,而1PPS秒脉冲重新可用后,FPGA内部定时器重新被触发,保持与1PPS秒脉冲同步对齐,适用于动态较高的场合。(5)本发明无需对MEMS内部硬件电路结构进行修改或添加,适合现有多数厂商生产的独立完整的MEMS子系统,解决了多数完整的MEMS子系统无法使用中国专利公开号为101105401A的一种SDINS/GPS组合导航系统时间同步及同步数据处理方法所述的硬件时间同步方案的问题,通用性更强,系统电路结构复杂程度明显下降。附图说明图1是本发明的系统整体结构图;图2是本发明的数据同步方案流程图;图3是本发明的时间标签添加示意图;图4是本发明的等效PPS秒脉冲的设计示意图;图5是本发明的各数据时间标签示意图;图6是本发明的GNSS采集控制结构图;图7是本发明的MEMS采集控制结构图。具体实施方式下面将根据附图对本发明做进一步详细说明。如图1所示,本发明采用FPGA与DSP相结合的软硬件同步方案,利用FPGA实现GNSS数据和MEMES数据的采集接收、时间标签的添加及数据的缓存,由DSP对数据进行解析处理并做同步外推算法拟合,最后实时输出同步后的GNSS数据和MEMS数据。FPGA选用Altera公司的CycloneII系列产品EP2C70F672C6N芯片;DSP选用TI公司的浮点系列产品TMS320C6713B芯片。本发明的系统整体结构如图1所示:实施本发明方法采用的硬件电路由FPGA核心板、DSP核心板和系统时钟组成。以系统时钟为基准,在FPGA中通过32位高精度计数器产生GNSS和MEMS的统一时间基准,通过在FPGA中编写RS232串口协议,接收来自GNSS和MEMS的串口数据,然后由各自采集控制模块打上时间标签并缓存至FIFO中。PPS直接进入FPGA中,由内部定时器启动生产与MEMS同频的等效PPS脉冲输出,并由GNSS采集控制模块进行缓存。当采集控制模块触发DSP外部中断请求,DSP响应中断,通过EMIF总线读取GNSS和MEMS数据,然后进行解析处理,获取同步时间差,并通过数字信号保持器进行同步外推拟合,最后实时输出同步后的GNSS和MEMS数据。本发明的具体实施方式如图2所示:①以FPGA系统时钟Fb为基准,启动32位计数器,产生计数单元为256/Fb、占空比为50%的信号Fs,图3为本发明的时间标签添加示意图,图中32位计数器只有高24位用于计数,所以可以产生计数单元为256/Fb的计数信号Fs。②如图4所示,根据MEMS更新频率的需求,以FPGA系统时钟Fb为基频、1PPS秒脉冲为触发信号,利用采样判决法,在FPGA的系统时钟Fb下,连续判别PPS引脚电平,当PPS引脚电平由低电平变为高电平,则该时刻即为1PPS的上升沿时刻,此时触发FPGA计数器,生成并输出与MEMS所需更新频率的时钟信号Fk;在没有1PPS秒脉冲到来的周期内,FPGA计数器连续输出与MEMS同频的时钟信号,当下一个1PPS秒脉冲的上升沿到来,FPGA计数器重新被触发并重新工作,从而保证了FPGA计数器输出的时钟信号实时与PPS秒脉冲同步,该时钟即为与PPS秒脉冲同步的等效的GNSS更新脉冲。③FPGA通过RS232串口接收GNSS数据和MEMS数据,利用VerilogHDL语言实现;通过10倍过采样频率去判决每个数据位的电平,并做累加比较来决定读取到的位的电平,保证数据读取的可靠性。波特率时钟采用FPGA系统时钟,根据波特率需求分别做各自的分频处理。如图5所示,在FPGA中,所有的GNSS数据、MEMS数据都是以32位宽的双字存储,其中高24位为各自的时间标签,低8位为各自数据的每个字节,而PPS只有低24位是时间标签,高8为恒为0x00;如图3、图6和图7所示,系统启动后,FPGA内部32位计数器以256/Fb为计数最小单元开始工作,以Fs的上升沿为基准,为等效的PPS脉冲Fk的上升沿时刻、GNSS数据到达FPGA时刻和MEMS数据到达FPGA时刻,系统锁存各自的计数值作为时间标签,加上对应时刻的8bit数据,分别存入各自的32bit寄存器,并将数据缓存至FPGA内部各自的FIFO中;GNSS数据和MEMS数据的缓存FIFO的实现途径为:采用IP核设计FIFO,位宽为32bit,深度为1024,带有异步复位端、数据量指示端。当GNSS数据和MEMS数据符合各自所设定的触发条件后产生DSP外部中断,对于GNSS而言,如图6所示,利用GNSS前一时刻和后一时刻数据更新输出的时隙,通过FPGA系统时钟Fb对GNSS的FIFO数据量指示端进行过采样判决,当GNSS的FIFO数据量指示值保持一段时间不变时,则说明该更新周期内GNSS数据已经输出完毕,触发DSP中断请求,并将GNSS动态帧长度存储至帧长度寄存器等待DSP的读取;对于MEMS而言,如图7所示,通过阈值设定法,设置FIFO的MEMS数据缓存阈值,触发DSP中断请求。④DSP响应来自PPS秒脉冲、GNSS和MEMS三路数据产生的外部中断,通过外部存储器接口的总线(EMIF)与FPGA通信,EMIF配置为异步32位读写模式,这正好与FPGA的FIFO输出位宽匹配;然后通过三个不同的外部中断服务程序分别读取PPS秒脉冲计数值、GNSS数据和MEMS数据,其优先级为PPS最高、MEMS其次,GNSS最低。⑤浮点DSP对接收到的数据进行解析处理,在分别解析出等效PPS和MEMS帧头的时间标签后,通过时间标签的计数值查找出在等效PPS更新时刻前最近的MEMS帧头的时间标签,将PPS的时间标签与MEMS帧头的时间标签做差值,即可获得GNSS与MEMS的同步时间差,然后以PPS秒脉冲为基准,通过同步外推算法对MEMS数据进行拟合,同步外推算法采用数字信号保持器,阶数可将根据同步精度和解算速度的综合考虑来选取,通常为二阶或三阶,最后使MEMS同步上GNSS,实时输出同步后的GNSS数据和MEMS数据。⑥判断系统工作是否完成,若未完成,则继续执行步骤②、③、④和⑤,否则结束。综上所述,本发明采用FPGA与DSP相结合的软硬件同步处理方式,适用于多数现有的MEMS独立子系统与GNSS的组合导航系统,成本低、通用性强、稳定性好、同步精度高,提高了组合导航数据融合的精度。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1