- 1 -
中国科技论文在线
GPS/惯性实时组合导航系统的设计与实现
鲁克文*
作者简介:鲁克文(1986-),男,硕士研究生,主要研究方向:嵌入式系统
(北京邮电大学计算机学院,北京 100876)
摘要:提出了一种 GPS/惯性组合导航系统的设计方案。导航板采用 DSP和 FPGA相结合的
硬件结构,选用微惯性导航测量元件 ADIS16405采集所需的导航数据。DSP 主要利用导航
数据进行导航解算,实现不同的导航算法;FPGA在整个系统中其中心控制作用,不仅要采
集 IMU产生的惯导数据和 GPS数据,还要对 IMU和 GPS进行实时的同步,并对所采集到
的数据进行预处理和封包。本文还就 FPGA的软件部分给出了详细的设计方案。经过实践证
明,本方案是可行的,并且在成本、可靠性和效率之间达到了较好的平衡。
关键词: 惯性导航;组合导航;GPS;FPGA
中图分类号:TP399
The Design and Implementation of Real-time GPS/Inertial
Navigation System
Lu Kewen
(School of Computer and Technology, Beijing University of Posts and Telecommunications,
Beijing 100876)
Abstract: A GPS/inertial navigation system design scheme is introduced. Combination of DSP and
FPGA is used on the navigation board, and micro inertial navigation measuring element --ADIS16405
is used to sample required navigation data. DSP mainly implements navigation calculating based on
navigation data, and realizes different navigation algorithms; FPGA in the system plays centeral control
role, and not only samples IMU and GPS data, but also synchronize IMU and GPS in the real time, and
preprocess and packet the navigation data. This paper also introduces the design of the software on
FPGA. Practice proves that the scheme is feasible, and achieves the good balance between the cost,
reliability and efficiency.
Key words: inertial navigation; integrated navigation; GPS; FPGA
0 引言
惯性导航系统(Inertial Navigation System,INS)的理论基础是牛顿力学定律——惯性定
律。它是利用惯性敏感器件、基准方向和初始的位置信息来确定载体的位置、速度和姿态的
自主式导航系统[1]。其中,捷联式惯性导航技术已经普遍应用于各种导航系统中,但由于捷
联式惯性导航存在随时间累积的导航误差,严重影响了导航的精度,所以需要引入外部信息
进行定期的校正。惯性导航系统与全球定位系统(Global Position System, GPS)相结合的
组合导航系统已经成为备受关注的研究热点。捷联惯性导航系统的导航平台需要计算机软件
实现,要求计算机有足够高的速度和精度。目前,主流的解决方案多数采用 DSP和 FPGA
相结合的电路结构。本文提出了一种基于 DSP和 FPGA相结合结构之上的惯性组合导航解
决方案,并详细介绍了 FPGA中的软件实现。
- 2 -
中国科技论文在线
1 惯性导航理论概述
捷联式惯性导航系统
捷联原文为“strap-down”,有“直接固联”的意思。捷联式惯导系统是将惯性导航测量元件
直接安装在载体上,省去了惯性平台的台体,代之以存储在计算机中的“数学平台”。由于省
去了物理平台,所用结构简单、体积小、维护方便。但惯性测量元件直接装在载体上,工作
条件不佳,会降低仪表的精度。由于三个加速度计输出的加速度分量是沿载体坐标系的,需
要经过计算转换成导航坐标系的加速度分量(这种转换起了“数学平台”的作用),所用计算
量非常大[2]。
图 1 是捷联惯性导航系统的基本原理图,主要突出表明了其中数学平台的关系。捷联
惯性导航系统中,陀螺仪和加速度计的组合体通常称为惯性组件(Inertial Measurement Unit,
IMU)。三轴陀螺仪和加速度计的输入轴安装时要保持严格的正交,该组件直接安装在载体
上时也要保持与载体坐标系完全一致。
可以看出,IMU 对捷联惯性导航系统而言是开环式的,仅起到了惯性传感器信号输入
的作用,不需要任何信号再对 IMU 进行反馈控制,所有的信号处理也都在计算机内实现,
因此实现方便。
由图 1,捷联惯性导航系统的核心是用计算机来实现的惯性平台,即所谓的“数学平台”。
数学平台是用捷联陀螺仪测量的载体角速度解算姿态矩阵,从姿态阵的元素中提取载体的姿
态和航向信息;并用姿态阵吧加速度计的输出从载体坐标系变换到导航坐标系,然后进行导
航解算。姿态和航向实时解算是捷联系统关键技术之一。
图 1捷联惯性导航系统原理图
Fig. 1 strap-down inertial navigation system diagram
组合式惯性导航系统
目前纯粹的惯性导航系统已经可以满足中近程导航精度的要求,但是还不能满足远程导
航以及武器投掷、侦察、反潜,特别是变轨控制等更高精度的导航要求。这主要是由于惯性
导航系统存在累积误差,精度随时间而逐渐降低。因此,在长时间导航时需要提供校正用的
导航显示
IMU
加速
度计
陀螺
仪
数学平台
姿态矩阵
姿态矩阵计算
姿态角计算
导航算法 位置
速度
水平姿态和方位
导航计算机
- 3 -
中国科技论文在线
外部信息,这种利用其他导航系统与惯性导航系统组成的整个系统,称为组合式惯性导航系
统。将各种不同的导航系统组合成一个系统的主要目的是为了提高导航的精度和可靠性。当
其他导航系统不工作时,惯性导航系统作为“记忆装置”继续工作。因此组合使用时,既可以
连续工作又可以提高定位的精度,相互取长补短,称为一种较为完善的导航系统。这时外部
信息的取得可以利用天文导航系统、卫星导航系统或无线电导航系统[3]。
目前,组合导航系统的组合方案大体上有两种:一种是利用自动调节原理的环节校正方
法,也称古典法;另一种是利用卡尔曼滤波技术进行状态估计和校正的最优控制法。采用古
典法组合的系统,一般都没有考虑惯性导航器件以及外部导航信息的随即误差,因而在航行
中特别是机动飞行中的导航性能并不理想。而采用卡尔曼滤波技术的组合导航系统,对各种
元件都建立了误差模型,并可以根据新的导航信息把模型调整到接近真实的程度。同时实时
地求得惯性导航系统误差状态的最优估值,用来对惯性系统进行校正,以便导航误差最小。
通常称这种组合导航系统为最优组合导航系统。图 2为系统工作的原理示意图。
图 2 最优组合导航系统原理图
Fig. 2 the optimal integrated navigation system diagram
GPS/惯性组合导航系统
GPS全球定位系统是一种高精度的全球三维实时卫星导航系统,其导航定位的全球性
和高精度,使之成为了一种先进的导航设备。但是 GPS全球定位系统也存在着一些不足之
处,主要是 GPS接收机的工作受载体机动的影响较大,容易受到干扰和人为控制,在遮挡
的情况下不能使用(如室内、水下、地下等)。
GPS/惯性组合克服了各自的缺点,取长补短,是组合后的导航精度高于两个系统单独
工作的精度。其优点表现为对惯性导航系统可以实现惯性仪表的校准、惯性导航系统的空中
对准、惯性导航系统高度通道的稳定等,从而可以有效地提高惯性导航系统的性能。而对
GPS全球定位系统,惯性导航系统的辅助可以提高其跟踪卫星的能力,提高接收机的动态
特性和抗干扰能力。另外,GPS接收机直接嵌入到惯性组合还可以实现 GPS接收机完整性
的检测,从而提高其可靠性。所以,GPS/惯性组合可以构成一种比较理想的导航系统,是
目前惯性组合导航系统的主要形式[4]。
2 GPS/惯性实时组合导航系统的方案设计
系统硬件方案设计
根据系统的需求,我们设计的导航板采用了 FPGA和 DSP 相结合的方式,系统的整体
载体
惯性导航系统
其他导航系统
卡尔曼滤波器
+
-
反馈校正
- 4 -
中国科技论文在线
框图如图 3所示:
图 3 GPS/惯性实时组合导航系统整体框图
Fig. 3 real-time GPS/inertial navigation system diagram
GPS/惯性实时组合导航系统主要包括 3 个部分:IMU,GPS 和导航板。其中导航板采
用 FPGA+DSP的硬件模式,FPGA与 IMU之间通过 SPI总线进行通信,与 GPS 之间通过
RS422接口进行通信,与上位机之间通过 RS232接口进行通信,与显示模块之间通过 RS422
接口进行通信,与 DSP之间通过并行总线的方式通信,即数据线及地址线进行数据交换。
本系统选用了 ADI公司的 ADIS16405作为 IMU。ADIS16405 iSensor®是一款完整的三
轴陀螺仪、磁力计与加速计惯性检测系统。这款传感器结合了 ADI公司的 iMEMS®与混合
信号处理技术,提供校准的数字惯性检测,是高集成度的解决方案。FPGA选用了 Altera公
司的 Cyclone II FPGA系列中的一款芯片:EP2C70F672I8。Cyclone II 器件提供针对低成本
应用的用户定制FPGA特性,其密度分布范围广,含有丰富的存储器和嵌入式乘法器,并提供多
种封装选择。DSP选用了 TI公司的 TMS320C6414EGLZA6E3数字信号处理芯片。这是 TI
公司的一款高性能定点 DSP,每周期可以执行 8条 32位的指令,最高时钟频率达 600MHZ,
指令周期的运行速度以及拥有 4800MIPS的处理能力。
FPGA软件方案设计
根据本系统的需求,FPGA作为硬件系统构建的核心部件,主要完成的功能是整个系统
的逻辑、时序控制和运算以及数据采集、转换和缓存等。图 4是 FPGA内部的进程逻辑流程
图。
导航板
DSP
FPGA
GPS
IMU
RS422
SPI
上位机
显示 RS422
RS232
FLASH
- 5 -
中国科技论文在线
图 4 FPGA内部进程逻辑流程图
Fig. 4 internal process logic flow diagram in FPGA
上电后,DSP 首先对 FPGA 初始化,将存储在 FLASH 中的组合模式和 GPS更新率参
数传递给 FPGA,FPGA将组合模式和 GPS更新率存储,以便于做数据同步,待初始化完成
后 FPGA进入正常工作模式。
FPGA 进入正常工作模式后首先给 IMU 发出复位信号,之后开启状态计时器。在状态
计时器开启后的 2 分钟为数据准备阶段,在数据准备阶段,相当于系统的预热, FPGA 不
做其它的操作,在这 2分钟内,FPGA会通过 RS422总线向外界发全 0,这样,外界会知道
这是数据准备阶段。同时,FPGA尝试使 GPS和 IMU的数据同步。在 FPGA进入正常工作
模式后可以通过上位机对 FPGA发送命令并执行,此时 FPGA将会复位系统,将组合模式、
GPS更新率、IMU误差补偿系数传递给 DSP,同时解码组合模式和 GPS数据更新率,DSP
将这些命令写进 FLASH,做为下次上电的系统默认指令。待这一过程完成后,FPGA 再进
入正常工作模式,重新做复位 IMU,开启状态计数器等操作。
数据准备阶段后的 3 分钟是初始对准阶段,此阶段中,FPGA 将收到的 GPS 数据以及
IMU数据进行打包后送给 DSP进行初始的对准解算,并通过 RS422接口向外界发送全 1的
数据,外界通过这些全 1 的数来判断系统是在初始对准模式。其中,IMU 数据通过 SPI 接
口进行接收;当 IMU 采集到了新的数据后,会向 FPGA 发出一个中断请求信号,FPGA 响
应后,置位 IMU的片选线,从而开始数据传输;接收到的 IMU数据先进行野点剔除,即当
前值和前一个值相比较,如果当前值和前一个值相差某个范围,则认为此当前值是野值,就
把这个野值去掉,用前一个值来代替,然后进行的是平滑滤波,平滑后得数据进行数据封包。
GPS 数据通过 RS422 接口进行接收;RS422 接口会不断地检测数据线上的电平,当检测到
有数据传送并且为 GPS 数据的报头时,会启动 GPS 数据接收进程,同时启动 CRC 检验,
- 6 -
中国科技论文在线
数据接收结束时,如果 CRC 校验通过,则存储 GPS 数据到指定的存储区中。如果当 PPS
秒脉冲信号到来时,IMU数据正在生成,则认为 GPS和 IMU此时是同步的,那么便把此刻
的 IMU数据与 GPS数据打包发送给 DSP进行解算。
初始对准阶段之后的系统运行时间全部为航姿解算阶段,DSP 要在 5ms 内将组合导航
解算结果算完,然后通过并口传送给 FPGA,FPGA 将 DSP 解算后的最终结果经过 RS422
接口向外界发送。RS422的数据发送频率为 200HZ,所以每经过 5ms才会将 DSP解算后的
数据输出。
3 FPGA软件详细设计
FPGA软件顶层设计
FPGA的软件部分采用了自顶向下的设计方式[5],把整个系统分为了各个不同功能模块,
并使用 Verilog HDL语言实现。FPGA软件的顶层结构如图 5所示。
clk
rst_n
rx
dataerror
gpsRdy
gpsDataout[1367..0]
clk
irq
miso
rst_n
imuclk
mosi
rdsig_out
sclk
ss_n
imuDataout[319..0]
clk
crcError
gpsRdy
imuRdy
pps
rst_n
gpsDatain[1367..0]
imuDatain[319..0]
packetRdy
packetData[1735..0]
clk
cs_FPGA
oe
packetRdy
read_oe
rst_n
packetData[1735..0]
BEA[11..0]
irq
BED[15..0]
clk
cs
oe
rst_n
we
BEA[11..0]
BED[15..0]
tx1
tx2
GPS:inst_GPS
clk
rst_n
GPS_rx
pps
cs_FPGA
oe
read_oe
we
IMU_mosi
IMU_sclk
IMU_ss_n
IMU_imclk
irq
tx1
tx2
BEA[11..0]
BED[15..0]
IMU:inst_IMU
DSP_WR:inst_DSP_WR
DSP_RD:inst_DSP_RDPacket_TOP:inst_Packet_TOP
IMU_miso
IMU_irq
图 5 FPGA软件顶层结构图
Fig. 5 top-level structure of FPGA software
如图 5,我们把整个顶层划分为 4 个模块:IMU 数据处理模块、GPS 数据处理模块、
DSP通信模块以及导航数据打包模块。
IMU数据处理模块
IMU数据处理模块主要的工作是通过 SPI总线实时接收 IMU采集到的数据,并经过简
单的数据处理输出。数据处理包括野点剔除和平滑滤波。野点剔除可以去除数据中个别严重
偏离均值的数据。平滑滤波:对数据进行平滑滤波主要是为了消除原始数据中的高频噪声[6]。
根据数据的流向,可以再细分为 3个模块:SPI数据接收模块、野点剔除模块和平滑滤波模
块。IMU数据处理模块的内部结构如图 6所示:
图 6 IMU数据处理模块内部结构
Fig. 6 internal structure of IMU data processing module
- 7 -
中国科技论文在线
GPS数据处理模块
GPS模块负责GPS数据的接收以及数据有效性的校验。FPGA通过RS422接口收取GPS
数据,并同时进行 CRC校验码的生成。根据数据流的方向,又可以把 GPS模块分为 RS232
接口模块、GPS数据接收模块以及 CRC校验模块 3个小模块。
图 7 GP数据处理模块的内部结构
Fig. 6 internal structure of GPS data processing module
如图 7所示,GPS数据通过 RS422的 RX引脚串行输入 RS422接口模块,RS422接口
模块根据通信格式(1 个起始位,8 个数据位,1 个停止位,奇数据校验位)进行数据的串
并转换,每接收到一个有效字节就会传递给 GPS数据接收模块;接着 GPS数据接收模块根
据 GPS接收机接口通讯协议,判断是否为有效的 GPS数据包,如果数据有效,则会进行数
据的缓存,并同时把数据传递给 CRC校验模块,进行 CRC校验值的生成。
DSP通信模块
FPGA 与 DSP 的接口连线如下:12 位地址线(BEA1~BEA12),16 位数据线
(BED0~BED15), FPGACS _ (DSP 对 FPGA 的片选线), BADCRE _/ (读使能),
BWE _ (写使能), BOE _ (输出使能),INT(FPGA中断信号,当 FPGA有数据传输时
有效,DSP开始从 FPGA读取数据)。
本模块的工作过程如下:
数据接收过程:由 FPGA采集数据封包并缓存后,向 DSP发出中断信号(INT),DSP响
应中断,将输出信号 BOE _ 置高,进行数据读取。读取方式:DSP把 FPGA作为外部扩展
存储器,FPGA事先把数据存在规定的地址空间中,DSP通过这些寄存器读入采集的数据。
数据发送过程:当 DSP 内部解算完毕后,向 FPGA 发出写信号 BWE _ ,然后将解算
结果写进固定的寄存器中。
导航数据打包模块
本模块要实现的功能非常简单,即对 IMU数据包和 GPS数据包进行计数,并利用 IMU
数据处理模块和 GPS 数据处理模块传来的相关信息为我们的导航数据包添加合适的报头,
最后通过 DSP通信模块将导航数据包传送到 DSP进行导航解算。导航数据包的格式如图 8
所示。
图 8 导航数据包的数据格式
Fig. 8 data format of navigation packet
4 结论
本文提出了一种 GPS/惯性组合导航系统的设计方案,导航板使用了当下最流行的 DSP
系统状态字段 IMU状态字段 IMU数据 GPS状态字段 GPS数据
- 8 -
中国科技论文在线
和 FPGA相结合的硬件结构,并采用了微惯性导航元件采集所需的导航参数,同时还给出了
FPGA软件部分的详细设计。经过实践证明,本方案不仅设计灵活、性价比高,而且还具有
很高的导航的可靠性和效率。
[参考文献] (References)
[1] 刘国志. 基于 DSP/FPGA的捷联惯性导航系统设计[D]. 大连:大连理工大学,2009.
[2] 刘建业,曾庆化,赵伟. 导航系统理论与应用[M]. 西安:西北工业大学出版社,2010.
[3] 于国强. 现代战争的北斗星——导航与定位[M]. 北京:国防工业出版社,2008.
[4] 刘俊,石云波,李杰. 微惯性技术[M]. 北京:电子工业出版社,2005.
[5] 刘韬,搂兴华. FPGA数字电子系统与开发实例导航[M]. 北京:人民邮电出版社,2005.
[6] Kevin J Walehko, . Mason. Inerial Navigation[C]. Florida Conference on Recent Advances in
Robotics. Florida, 2002:l一 9.