一种基于FPGA双核的组合导航系统及其构建方法与流程

文档序号:11152323阅读:1216来源:国知局
一种基于FPGA双核的组合导航系统及其构建方法与制造工艺

本发明属于导航技术领域,涉及组合导航系统在FPGA上的搭建及其应用,具体涉及一种基于FPGA双核的组合导航系统及其构建方法。



背景技术:

现代导航己进入以组合导航系统为核心的信息中心时代。组合导航系统是20世纪70年代在航海、航空与航天等领域随着现代控制理论和计算机技术的发展而发展起来的导航技术,是指把两种或两种以上不同的导航设备以适当的方式组合在一起,利用其性能上的互补特性,以获得比单独使用任一系统时更高的导航性能。早期的导航系统设计大多是采用模拟电路构成的专用计算机,其缺点是体积大,功耗大,成本高。自上世纪八十年代以来,由于捷联惯导系统不断成熟,致使“数学平台”的应用前景超越了框架式的物理平台,所有的信号处理也都可以在导航计算机内实现,导航系统的体积、功耗、成本大大降低,而由此对进行导航信息处理的计算机的处理能力提出了较高的要求。

目前导航计算机系统大部分采用DSP技术,比较典型的方式是利用微控制器(MCU)作为主机完成数据采集与控制功能,采用DSP芯片完成信息处理功能的合理分配方式。随着FPGA/CPLD领域的快速发展,一种FPGA/CPLD+DSP模式被开发出来,其最大的特点是能够缩短产品开发的周期,其可编程配置特性可以将导航计算机系统开发的风险降到最低,同时最大化的满足多种不同惯性传感器的器件的扩展。从而解决了MCU+DSP模式下电路设计不易扩展的问题,提高了导航系统设计的灵活性,拓展了应用空间。以上两种模式在某些环境下可实现高速采集、快速处理并满足实时性要求。

随着FPGA(现场可编程门阵列)在数据处理方面的发展,采用FPGA来实现硬件设计,可以使导航系统向微小型化、高性能化和低成本化方向发展。且FPGA的开发者可以使用Altera Nios II处理器和SOPC Builder工具能够很快的设计和建立起共享资源的多处理器系统。随FPGA的快速发展,工程师们不再局限于单核导航系统的研发,而把目光投向了基于FPGA的多核导航计算机系统的研制。

目前,多核导航系统的研究具有代表性的是哈尔滨工程大学专业硕士王波在硕士论文“基于FPGA的双核导航计算机系统设计”(2012.3.1,专业硕士学位论文,哈尔滨工程大学)中提出了一种基于FPGA双核导航系统设计。其组合导航系统主要是利用SOPC Builder来构建双核系统的外围设备、处理器及存储器,采用Nios II软核来进行多核处理,使用RAM存储芯片进行双CPU之间的通信。但是,在面对多传感器时,这种双核组合导航系统设计仍存在数据传输效率低下,系统运行不稳定,导航解算速率慢,导航精度低等问题。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供了一种基于FPGA双核的组合导航系统及其构建方法,解决了现有技术中面对多导航设备下数据处理速度慢、数据融合效率低下的问题。

为解决上述现有技术的问题,本发明采用以下技术方案。

本发明的一种基于FPGA双核的组合导航系统,其特征在于,所述系统可应用于GNSS和IN导航卫星系统,所述的组合导航系统包括:

FPGA核心模块,用于控制导航系统,含有:CPU1和CPU2双核处理单元;

数据传输模块,用于导航系统中的数据传输,包括:RS232、RS485、RS422、蓝牙、USB数据传输接口;

数据存储模块,用于存储导航卫星系统的时间信息,包括:SRAM、RAM、EPROM存储单元,三者之间相互连通,可进行数据交流;

数据融合模块,包括:时间同步IP核、Kalman滤波器IP核和计时器,所述的时间同步IP核由GNSS提供的秒脉冲触发;所述的Kalman滤波器IP核,用于过滤秒脉冲的杂波,计时器用来于真实时间计时;

数据解算模块,用于数据的解算解码、进制转换以及IP核驱动,包括多个开源式结构的功能性程序:IMU数据解算、解码程序;GPS数据解算、解码程序;进制转换程序;IP软核驱动程序;数据融合、解算程序;各模块协同转换程序;

所述的CPU1用于控制数据传输模块和数据存储模块;所述的CPU2用于控制数据融合模块、数据解算模块和数据存储模块;所述的CPU1和CPU2通过所述的数据存储模块进行通讯和联动。

所述的数据解算模块的多个开源式结构的功能性程序,用户可通过数据传输模块的检测端口进行添加和更改。

所述的数据存储模块的SRAM负责所述的CPU1和CPU2之间数据的交汇;RAM负责固定存储空间,用于存储正、逆向导航的时间窗数据、滤波器参数数据,属于导航系统的临时记忆;EPROM用于存储一些特殊导航数据,属于导航系统永久的存储数据;所述的特殊导航数据包括错误数据,该错误数据用于排查故障和分析,用户可自行设定。

本发明的一种基于FPGA双核的组合导航系统的构建方法,其特征在于:所述组合导航系统面向GNSS和INS导航设备来设计,其控制核心以FPGA来构造CPU1和CPU2的双核处理单元;将所述系统内部划分为数据传输模块,数据存储模块,数据解算模块和数据融合模块;

所述的CPU1控制数据传输模块,CPU控制数据解算模块和数据融合模块,而数据存储模块将由CPU1和CPU2共同控制;

所述的数据传输模块设计有RS232,RS485、RS422、蓝牙、USB接口;数据存储模块将主要由SDRM、RAM、EPROM等模块构成;数据融合模块以时间同步IP核和、Kalman滤波器IP核为主,且时间同步模块由GNSS提供的秒脉冲触发;数据解算模块包括多个功能性程序构成且设计为开源,可根据用户需求通过目标系统或数据传输模块中的系统检测端口来更改或添加。

所述的数据传输模块的RS232,RS485、RS422、蓝牙、USB数据接口,按以下方式进行设计:在接收或发送和目标对象之间构建数据缓存区间,系统数据在接收和发往目标对象时,将先首先存入数据区间;只有数据缓存中的数据达到用户的要求字节量或数据缓存区溢出时,数据才会发往先进先出队列或被接收。

所述的时间同步IP核设计为:

当GNSS持续地向时间同步模块发送秒脉冲以触发时间同步模块运行时,GNSS数据首先通过数据解算模块提取出时间信息,再将时间信息预先存入时间同步模块当中的时间缓存区间内;与此同时时间同步模块内的计时器模块进行持续运作,计时器由FPGA内部晶振分频而运作,可精确到毫秒;当下一次秒脉冲来临时,再将时间存储器当中的时间取出加1s赋予计时器,且时间存储器当中用新的GNSS时间信息替代上一次的GNSS时间;当检测到IMU数据时,只要将此时计时器当中的时间打到IMU数据上,即可完成IMU数据与GNSS数据时间信息的同步。

所述的数据融合模块中的Kalman滤波器IP核通过以下设计,使其完成正向滤波、逆向滤波和正逆向组合滤波过程;

在数据存储模块中设置一个SRAM专用于Kalman滤波器IP核参数的存储空间,Kalman的参数会在一次又一次的迭代中完成更新,直到输出结果;Kalman滤波器的初始参数,可由数据存储模块直接提供;Kalman滤波器设置有逆向滤波功能和正逆向模式选择模块,并可在两种模式之间自由切换。

在所述的Kalman滤波器IP核的设计中,采用包括以下步骤的分窗、重复导航滤波解算算法:

(1)导航过程分窗:假设在某次导航过程中,导航的起点是K=1,终点为K=N;则从起点开始,对整个导航过程进行分段,即K=1,2,3,3…..N;将从K=1到K=N的整个导航滤波过程,分为K=1到K=2;K=2到K=3;K=3到K=4………K=N-1到K=N多个导航短过程;

(2)重复导航滤波解算算法:对每段分窗的导航过程都进行重复导航滤波解算;所述的重复导航滤波解算是指:一个从终点回到起点过程为逆向导航滤波解算,而从起点再次来到终点过程为正向导航解算,两者构成一次重复导航解算;而对每段分窗的导航过程都进行重复导航解算,即为重复分窗导航解算算法。

进一步的,在所述的导航过程分窗中,每段分窗的时间间隔T为10s。

与现有技术相比,本发明具有以下优点和有益效果:

1.本发明利用FPGA的可编程特性划分为CPU1和CPU2双核控制单元,这种“多处理器系统”架构在组合导航系统中,使得本发明组合导航系统在应对多导航设备时,可极大地提高数据的传输和运算速率,并改进了数据融合精度和效率。

2.本发明利用静态随机存取存储器SRAM、随机存取存储器RAM和可擦写可编程只读存储器EPROM)三种存储芯片的存储特性来设计组合导航系统中的数据存储模块,可使组合导航系统的存储部分具有临时存储和永久存储的功能,且加快了数据存储时的响应速率。保证了组合导航系统应用的灵活性。

3.本发明将利用数据融合模块中搭载的时间同步IP核和Kalman滤波器IP核设计新的时间同步过程和导航滤波算法。其中,本发明的时间同步过程主要利用GNSS的秒脉冲信号来触发和矫正;导航滤波解算过程主要利用组合导航系统中数据存储模块的记忆功能来进行重复更新,从而实现了正向滤波和逆向滤波的有机结合。

附图说明

图1是本发明的一个实施例的组合导航系统结构框图。

图2是本发明的一个实施例的数据传输模块的数据接收IP核设计流程图。

图3是本发明的一个实施例的数据传输模块的数据发送IP核设计流程图。

图4是本发明的一个实施例的具有记忆功能的数据存储模块结构图层。

图5是本发明的一个实施例的时间同步IP核构建示意图。

图6是本发明的一个实施例的时间同步过程图。

图7是本发明的一个实施例的Kalman滤波器流程图。

图8是本发明的一个实施例的基于分段加窗的正/逆向滤波过程示意图。

具体实施方式

本发明组合导航系统主要由导航设备控制系统组成。本发明可应对多导航设备,如:INS(Inertial Navigation System,惯性导航系统)和GNSS(Global Navigation Satellite System,全球导航卫星系统);控制系统的硬件主体导航计算机,本发明采用FPGA为核心,利用FPGA的可编程的特性对系统中的数据传输、存储、融合、解算模块的IP核进行独立的编写,从而提高整个组合导航系统的运算效率和利用率。其中包括RS232/RS485/RS422/USB/蓝牙等数据传输接口IP核的设计;时间同步IP核的设计;Kalman滤波器IP核的设计。

下面结合附图对本发明做进一步详细说明。

图1是本发明基于FPGA双核的组合导航系统的一个实施例的系统结构框图。本实施例可应用于GNSS和IN导航卫星系统,如图1所示,所述的组合导航系统包括:

FPGA核心模块,用于控制导航系统,含有:CPU1和CPU2双核处理单元;

数据传输模块,用于导航系统中的数据传输,包括:RS232、RS485、RS422、蓝牙、USB数据传输接口;

图4是本发明的一个实施例的具有记忆功能的数据存储模块结构图层。如图4所示,该数据存储模块,可用于存储导航卫星系统的时间信息,包括:SRAM(Static Random Access Memory,静态随机存取存储器)、RAM(random access memory,随机存取存储器)、EPROM(Erasable Programmable Read Only Memory,可擦写可编程只读存储器)存储单元,三者之间相互连通,可进行数据交流。其中,SRAM主要负责CPU1和CPU2之间数据的交汇,以保证CPU1和CPU2之间的联动;RAM主要负责分段固定存储空间,分别用于存储正、逆向导航的时间窗数据、滤波器参数等关键性数据,已达到导航系统的临时记忆功能;EPROM则存储一些特别的导航数据,如:错误数据,用于排查故障和分析,可自行设定,以帮助导航系统永久地存储数据。这样的存储模块的设计将具有临时记忆和永久记忆的功能,而且存储数据皆可通过数据传输模块检测端口读出或备份,且加快了数据存储时的响应速率。保证了组合导航系统应用的灵活性。

数据融合模块,包括:时间同步IP核、Kalman滤波器IP核和计时器,所述的时间同步IP核由GNSS提供的秒脉冲触发;以便提高时间同步的精度;所述的Kalman滤波器IP核,用于过滤秒脉冲的杂波,计时器用来于真实时间计时;提高运算效率。

数据解算模块,用于数据的解算解码、进制转换以及IP核驱动,包括多个开源式结构的功能性程序;如:IMU数据解算、解码程序;GPS数据解算、解码程序;进制转换程序;IP软核驱动程序;数据融合、解算程序;各模块协同转换程序。

所述的CPU1用于控制数据传输模块和数据存储模块;所述的CPU2用于控制数据融合模块、数据解算模块和数据存储模块;所述的CPU1和CPU2通过所述的数据存储模块进行通讯和联动。以达到双核系统提高运算效率的目的。

本实施例所述的数据解算模块的多个开源式结构的功能性程序,如:IMU数据解算、解码程序;GPS数据解算、解码程序;进制转换程序;IP软核驱动程序;数据融合、解算程序;各模块协同转换程序等。用户可通过数据传输模块的检测端口进行添加和更改。从而使得导航系统具有极高的灵活性和适应性,也使得运算效率显著提高。

本实施例所述的数据存储模块的SRAM负责所述的CPU1和CPU2之间数据的交汇;RAM负责固定存储空间,用于存储正、逆向导航的时间窗数据、滤波器参数数据,属于导航系统的临时记忆;EPROM用于存储一些特殊导航数据,属于导航系统永久的存储数据;所述的特殊导航数据包括错误数据,该错误数据用于排查故障和分析,用户可自行设定。

本发明一种基于FPGA双核的组合导航系统的构建方法,其所述组合导航系统面向GNSS和INS导航设备来设计,其控制核心以FPGA来构造CPU1和CPU2的双核处理单元;将所述系统内部划分为数据传输模块,数据存储模块,数据解算模块和数据融合模块;

所述的CPU1控制数据传输模块,CPU控制数据解算模块和数据融合模块,而数据存储模块将由CPU1和CPU2共同控制;以方便CPU1和CPU2之间进行联动,以达到双核系统提高运算效率的目的。

所述的数据传输模块设计有RS232,RS485、RS422、蓝牙、USB接口;数据存储模块将主要由SDRM、RAM、EPROM等模块构成;数据融合模块以时间同步IP核、Kalman滤波器IP核为主,且时间同步模块由GNSS提供的秒脉冲触发;数据解算模块包括多个功能性程序构成且设计为开源,可根据用户需求通过目标系统或数据传输模块中的系统检测端口来更改或添加。这种设计使得导航系统的稳定性,灵活性和运算效率显著提高。

图2和图3分别是本发明的一个实施例的数据传输模块的数据接收IP核设计流程图和数据传输模块的数据发送IP核设计流程图。如图2和图3所示,在数据传输模块设计中,本发明为了提高RS232/RS485/RS422/USB/蓝牙等接口的传输效率,将RS232/RS485/RS422/USB/蓝牙等接口的发送功能和接收收功能将分开进行设计编写和使用。这样,RS232/RS485/RS422/USB/蓝牙等接口的接收和发送功能的利用将更加高效和灵活。传统的数据传输接口的传输模式为一字节一字节的接受或一字节一字节的发送。本发明在编写接收和发送IP时将搭建数据传输缓冲区间,数据接收和发往目标对象时,将数据首先存入数据区间。在接收或发送和目标对象之间构建数据缓存区间,系统数据在接收和发往目标对象时,将首先存入数据区间;只有数据缓存中的数据达到用户的要求字节量或数据缓存区溢出时,数据才会发往先进先出(FIFO)队列或被接收。另外,数据接收和发送的IP核将分离开来。R232接口在发送和接受数据过程中将不再拘泥于按字节传输的方式。而在现有技术中,R232RS232/RS485/RS422/USB/蓝牙等接口IP核为按字节发送数据。在此,设置τ变量为阀值。变量τ可根据目标传输帧的字节来设置。当数据量大于或等于阀值τ或者数据缓存区间溢出时,数据才会被接受或发往目标对象。这样,数据传输接口每次接受或发送的数据量为τ;当τ为每帧数据的字节数时,数据传输接口将按帧来接受或发送数据。这种设计方式,可大大提高RS232/RS485/RS422/USB/蓝牙接口发送和接受数据的效率。

图5是本发明的一个实施例的时间同步IP核构建示意图。如图5中时间同步IP核设计结构主要分为三部分,秒脉冲滤波模块,同步计时模块和时间存储模块。其中,时间存储模块独立于数据存储模块,其存储数据所占用的资源来自于CPU2本身的内存,这种设计可提高时间同步的效率。图6是本发明的一个实施例的时间同步过程图。本实施例所述的时间同步IP核设计原理为:当GNSS持续地向时间同步模块发送秒脉冲以触发时间同步模块运行时,GNSS数据首先通过数据解算模块提取出时间信息,再将时间信息预先存入时间同步模块当中的时间缓存区间内;与此同时时间同步模块内的计时器模块进行持续运作,计时器由FPGA内部晶振分频而运作,可精确到毫秒;当下一次秒脉冲来临时,再将时间存储器当中的时间取出加1s赋予计时器,且时间存储器当中用新的GNSS时间信息替代上一次的GNSS时间。当检测到IMU数据时,只要将此时计时器当中的时间打到IMU数据上,即可完成IMU数据与GNSS数据时间信息的同步。由此,可有效地避免GNSS数据接收的延时误差而带来的时间误差。

所述的数据融合模块中的Kalman滤波器IP核通过以下设计,使其完成正向滤波、逆向滤波和正逆向组合滤波过程,并实现软件硬件化,提高运算效率:

为了保证Kalman滤波器IP核运行的稳定性,其所运用的高阶运算规则将由加减乘除基本运算法则来实现。由于,Kalman滤波过程其实是一个迭代过程,这种运用将不会对其运算结果产生影响。为了实现Kalman滤波器参数迭代过程,在数据存储模块中设置一个SRAM专用于Kalman滤波器IP核参数的存储空间,Kalman的参数会在一次又一次的迭代中完成更新,直到输出结果;Kalman滤波器的初始参数,可由数据存储模块直接提供;并且,利用数据存储模块的记忆功能,因此Kalman滤波器设置有逆向滤波功能和正逆向模式选择模块,并可在两种模式之间自由切换。由此,本发明的导航系统即可完成实时同步处理也可进行事后数据分析。

图7是本发明的一个实施例的Kalman滤波器流程图。如图7所示,Kalman滤波器的IP核主要由基本运算模块、模式选择模块、Kalman参数更新模块和调用部分数据存储模块构成的。其中,基本运算模块主要由加法IP核、乘法IP核、除法IP核、减法IP核组成。由加、减、乘、除基本运算规则而组成高阶的运算规则;模式选择模块主要决定是正向滤波法则还是逆向滤波法则;Kalman滤波参数的更新区间主要由一片单独的SRAM组成;调用部分的数据存储模块主要是用来实现逆向滤波的功能。本发明滤波器搭载有逆向滤波的功能,这样导航系统将不仅拥有实时处理功能也将拥有后处理技术。且正逆向滤波技术可有机地结合,以提高导航精度。逆向滤波需要存储正向导航滤波和逆向导航滤波过程中的基本导航信息及卡尔曼滤波过程中滤波矩阵P的协方差信息。这就需要借助本发明中记忆性数据存储模块用以辅助Kalman滤波IP核。本发明的滤波器IP核搭载有模式切换的IP核,以方便用户在正逆向滤波之间切换。

图8是本发明的一个实施例的基于分段加窗的正/逆向滤波过程示意图。在所述的Kalman滤波器IP核的设计中,采用包括以下步骤的分窗、重复导航滤波解算算法:

(1)导航过程分窗:假设在某次导航过程中,导航的起点是K=1,终点为K=N;则从起点开始,对整个导航过程进行分段,即K=1,2,3,3…..N;将从K=1到K=N的整个导航滤波过程,分为K=1到K=2;K=2到K=3;K=3到K=4………K=N-1到K=N多个导航短过程;

(2)重复导航滤波解算算法:对每段分窗的导航过程都进行重复导航滤波解算;所述的重复导航滤波解算是指:一个从终点回到起点过程为逆向导航滤波解算,而从起点再次来到终点过程为正向导航解算,两者构成一次重复导航解算;而对每段分窗的导航过程都进行重复导航解算,即为重复分窗导航解算算法。

在所述的导航过程分窗中,为了保证重复解算过程的进度,将每段分窗的时间间隔T设为10s。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1