包 超, 郭美凤, 周 斌, 刘 刚
(清华大学 精密仪器系,北京 100084)
在捷联惯导系统一般应用的陀螺器件有光纤陀螺[1]、激光陀螺[2]、MEMS陀螺[3,4]等,近年来,MEMS技术的发展使得捷联惯导系统向着体积更小、质量更轻、成本更低的方向发展。基于MEMS技术的微惯性测量单元(MEMS inertial measurement unit,MIMU)不仅可被用在军用制导炸弹、手持制导武器上,在民用的车载定位导航和小型无人机导航等方面也有着巨大潜力。MIMU/GPS组合导航系统精度和实用性不断加强,国外大学实验室和公司的先进产品质量已在100g以内,系统集成度很高,例如:美国Crossbow公司的MEMS IMU/GPS组合导航系统—Nav440,其质量0.58 kg,功率只有4 W,它的定位精度为3 m,姿态测量精度均方根(root mean square,RMS)为0.4°;德国的iMAR公司的iVRU—CB—M和iVRU—SNC的质量只有550 g,功率只有6 W,的定位精度为5 m,姿态测量精度RMS为0.5°。相比之下,国内组合导航系统有的仍处在分立传感器程度[5~7],大部分体积大、质量重,不适于手持制导或小型无人机导航方面。
MIMU/GPS组合导航系统包括4个部分,其中嵌入式电源模块为MIMU、组合导航计算模块和GPS接收机模块提供电源,MIMU和GPS接收机模块分别通过标准RS—422和RS—232与计算模块进行通信,组合导航计算模块接收到IMU和GPS的测量信息,采用基于卡尔曼滤波的观测控制器方式进行初始对准,之后采用松组合方式进行导航解算,并通过标准RS—422串口和上位机监测软件进行通信。上述4个部分集合成一体,系统框图如图1所示。
图1 嵌入式组合导航系统框图
组合导航系统采用了U-blox公司的LEA_6TGPS接收机,该种接收机尺寸只有17.0 mm×22.4 mm×2.4 mm,相比其他公司的接收机板卡体积缩小50 %。该接收机模块能够提供位置、速度和时间等解算结果,也能提供如伪距、载波相位和多普勒频率等原始数据。它的位置测量精度为2.5 m,速度测量精度为0.1 m/s,可以承受4gn的动态性,且价格便宜。该模块既可按照标准NMEA协议对外输出也可以输出U-blox独有的UBX协议,为其设计的外围天线接口电路与标准RS—232串口电路如图2所示。
图2 GPS接收机模块外围电路
组合导航系统采用清华大学导航中心自主设计的MIMU,它由三轴MEMS加速度计和三轴MEMS陀螺组成,体积小、质量轻,可测量载体的加速度和旋转角速度,它的测量精度直接影响到组合系统初始对准和导航解算精度。
组合导航系统中采用的电源模块具有输入防反接功能,转换效率为70 %,符合GJB 181所规定的B类直流用电设备要求,同时符合GJB 151A所规定的电磁兼容性要求。电源模块采用单+28 V直流电源供电,提供5路输出。
组合导航计算模块采用DSP+FPGA设计方式,此种方法运算能力高、功耗低,且易于做系统集成。其中,DSP选用的是TI公司的TMS320C6713B,该芯片是基于超长指令字结构的高性能32位浮点DSP,工作主频最高可达300 MHz,具有丰富的中断外设资源,能够完成初始对准和组合导航的计算。FPGA芯片选用的是Xilinx公司Spartan 3系列的XC3S400,该芯片是Spartan3系列中门数较低的一种,它功耗较低且价格便宜,虽然逻辑门数较少,但足以完成DSP与其他传感器之间的通信工作。DSP+FPGA组合导航计算模块如图3所示。
图3 DSP+FPGA组合导航计算模块框图
1)频率设置
系统采用20 MHz的外部振荡器为芯片提供时钟,利用C6713内部的PLL(可编程锁相环控制器)进行分频,外部的20 MHz时钟经过15倍频变为300 MHz供DSP芯片工作,然后经过2分频的变为150 MHz供片上外设工作,经过3分频的变为100 MHz连接到FPGA芯片128管脚使其工作。
2)中断系统
C6713的中断向量表为int0~int13,其中,int0中断优先级最高,为系统复位中断,int13中断优先级最低。GPIO管脚设置为输入时可以产生CPU中断或EDMA同步事件,将GPINT[4∶6]产生的GPU中断映射为int4~int6,其中,GPINT4为GPS中断,即当GPS向DSP发送一包正确数据后,FPGA相应管脚会产生低电平触发中断服务子程序进行读取;同理,GPINT5为MIMU中断,即从MIMU接收测量数据;GPINT6为上位机中断,即接收上位机给出的指令。
3)地址分配
EMIF(external memory interface)是DSP片上的外部存储器接口,共有CE0~CE3 4个空间,可以外接各种存储器如SDRAM,SRAM,FLASH,FIFO等,其具有32位数据线支持8,16,32 bit等多种数据宽度。EMIF具有22根地址线,当外部连接32 bit存储器时用到A[21∶2]。4个空间的起始地址分别为:0x8000000,0x9000000,0xA000000,0xB000000,每个空间大小为256 M。
本系统设计中CE1空间外接FLASH,起始地址为:0x9000000,用于存放系统程序,并完成系统上电自举等功能。CE2空间外接FPGA,起始地址为:0xA000000,该空间被分配成6部分,分别用于与GPS,MIMU和上位机的发送接收缓存RAM,CE0和CE3空间暂时保留。
FPGA通信模块设计是为了解决各个传感器与DSP通信速率不同的问题,各传感器对外通信采用标准串口协议均比较慢,而DSP通过EMIF发送接收数据很快,所以,FPGA通信模块起到了编解码和数据缓存的作用。它包括以下功能单元:
1)片选检测单元:检测DSP的TCE2管脚是否出现上升沿,如果出现上升沿则说明DSP要通过FPGA向传感器发送数据。
2)32 bit双口RAM:每个RAM的大小为M,共有6个依次存放上位机、MIMU和GPS的发送和接收数据包。
3)多路通信译码单元:地址线的高9位连入译码实现多路通信的区分,其中,向上位机发送的起始地址为0xA0000000,向IMU发送的起始地址为0xA0000800,向GPS发送的起始地址为0xA0001000,从上位机接收起始地址为0xA0001800,从IMU接收的起始地址为0xA0001800,从GPS接收的起始地址为0xA0002800。
4)串行发送接收单元:将并行的8 bit数据转换成串行数据发送出去,也可接收串行数据合成8 bit数据。
5)接收数据区分单元:将3个通道的接收数据根据选择地址发送到数据总线上。
6)接收控制单元:将从UART接收到的8 bit数据编码成32 bit数据,按顺序存储在双口RAM中,并向DSP发出中断。
7)发送控制单元:将DSP发送的存储在双口RAM中的32 bit数据按顺序解码成8 bit的数据,并以此发送给串行发送接收单元。
各单元均由硬件描述语言(VHDL)编写完成,其中接收控制单元和发送控制单元需要特别设计。
2.2.1 发送控制单元设计
发送控制单元的功能是将DSP发送的存储在双口RAM中的32 bit数据按顺序解码成8 bit的数据,并以此发送给串行发送接收单元。发送控制单元共有3个状态:空闲状态(idle)、读数据状态(read)和发送状态(send),如图4。
空闲状态:此时没有接收到DSP的发送数据信号。
读数据状态:此时从双口RAM中依次读取32 bit数据,读取完成后进入send状态。
发送状态:将读取到的32 bit数据依次拆分成4个8 bit数据经由UART发送出去,当发送数据量未达到要求时回到read状态,当发送数据量达到要求时回到idle状态。
图4 发送控制单元的状态机
2.2.2 接收控制单元设计
接收控制单元的功能是将从UART接收到的8 bit数据编码成32 bit数据,按顺序存储在DualRam中,并向DSP发出中断。接收控制单元共有4个状态分别是:空闲状态(idle)、读数据状态(read),编码状态(pack)和发送状态(send)。
空闲状态:此时未接收到数据。
读数据状态:此时从UART接收8 bit数据,并将其存放在接收数据缓存中,完成后进入编码状态。
编码状态:验证接收到的数据是否满足,同步帧要求,如果不满足,则回到空闲状态;如果满足,则将8 bit数据按小端存储顺序打包成32 bit数据,完成后进入发送状态。
发送状态:将编码好的32 bit数据发送给对应的DualRam,如果一包数据未接收完毕,则回到读数据状态;如果接收完毕,则回到空闲状态并发出中断,如图5。
图5 接收控制单元的状态机
定点位置、速度、姿态航向实验地点为清华大学精仪系系馆实验室,GPS天线放置在系馆楼顶,每组测试时间约为7 min,可反复测量多次,实验结果如图6。
图6 定点水平定位误差
连续静态测试3次,将3次测量结果的位置、速度和姿态的最大值、最小值、平均值和标准差整理到表1中。从下述实验结果可以看出:MIMU/GPS组合导航系统水平定位精度可以达到1 m以内,相比单独GPS接收机模块水平定位2.5 m(CEP)有了一定提高。GPS接收机本身高度通道即有一定的误差,这项误差会被带入组合导航高度解算过程,所以,相比水平定位高度解算结果精度达到2.85 m。系统解算出北向和东向的水平速度均小于1 cm/s,标准差在1 cm/s左右,同样的向速度的平均值和标准差受GPS接收机精度的影响略差,平均值在6 cm/s。系统的俯仰角和横滚角平均值均在0.3°以内,标准差小于0.05°。
表1 静态定点实验结果
表2、表3表明:俯仰角和横滚角的测量误差基本在0.1°以内,航向角输出结果在0.5°左右,这主要因为:1)在GPS接收机天线静止情况下,系统航向角可观测性极差;2)静态条件下测试,系统航向角存在长期漂移,以上2点都会使系统静态航向测量精度产生影响。
表2 定点动姿态误差
本文基于清华大学自主研发的MIMU和U-blox公司的GPS接收机,设计完成了MIMU/GPS组合导航系统。导航解算部分采用DSP+FPGA方式,其中FPGA主要负责DSP和各外部传感器的通信,DSP负责初始对准和导航解算。重点进行了FPGA内部程序VHDL编写,实现从串口接收到的数据和将要通过串口发送出的数据进行编码和解码,解决DSP总线和外部串口速率不一致的问题。将各硬件部分集成在一起,完成的系统高度90 mm,直径80 mm,重量不超过600 g。基于设计完成的MIMU/GPS组合导航系统进行了静态实验,分为定点静姿态实验和定点动姿态实验,实验结果表明:该组合导航系统静态水平定位精度可达到1 m以内,姿态测量精度在0.1°以内,航向测量精度也在0.5°左右。
表3 定点动航向误差
参考文献:
[1]章燕申,伍晓明.光学陀螺系统与关键器件[M].北京:中国宇航出版社,2010.
[2]秦永元.惯性导航[M].北京:科学出版社,2006.
[3]陈志勇.振动轮式微机械陀螺改进设计[D].北京:清华大学,2001.
[4]周 斌.微机械陀螺数字化技术研究[D].北京:清华大学,2003.
[5]秦红磊,张亚珍,丛 丽,等.GPS/MEMS—INS 组合导航系统设计[J].计算机工程与设计,2011,32(11):3890-3893.
[6]曾庆双,蒋 蔚,伊兴国.基于高性能DSP的小型组合导航系统设计与实现[J].哈尔滨商业大学学报:自然科学版,2010,26(4):475-479.
[7]李 昂,王 伟,吴佳楠.低成本IMU/GPS组合导航系统设计[J].测控技术,2012,31(8):12-15.