王 其,蒋 平,李 严,卢晓东,顾培培
(1. 南京信息工程大学 江苏省网络监控中心,南京 210044;2. 南京信息工程大学 计算机与软件学院,南京 210044)
捷联惯性导航系统的三轴陀螺仪和加速度计直接垂直安装在运载体上,陀螺仪和加速度计分别提供运载体角运动信息和线运动信息,是一种高精度的实时定位系统,在实际应用中具有高自主性、体积小、重量轻、成本低、高可靠性和输出信息量全等优点,这些性能的实现越来越多地要求集中在硬件上,即如何选择和构建惯性导航系统硬件系统,使得系统在运行中实现高精度、稳定性和实时性。硬件系统的物理实现需满足结构紧凑、体积小、重量轻、功耗小、成本低、精度高和运算速度快等特点。基于PC104的嵌入式并行船舶组合导航系统是惯性组合导航系统,其优良的性能特点适应了导航系统的发展趋势[1]。
为了满足船舶小型化嵌入式运行环境、精度高、实时性好、运算速度快等要求,在综合研究各种硬件结构的并行处理系统的基础上,采用PC104为主控机的嵌入式并行共享存储型结构。该方案软硬件设计通用性强且外围电路少。
导航系统硬件设计结构见图1。采用PC104作为控制中心,TMS320C6713DSP数据处理单元实现了系统的并行处理功能,主要用于捷联算法以及信号处理;通过双口RAM实现PC104与DSP之间的数据交换,使得系统运行效率大大提高。
图1 系统硬件设计结构
嵌入式并行处理系统中,作为系统控制核心的嵌入式计算机采用PC104CPU模块CoreModule-800E,该嵌入式系统模块与传统计算机软件兼容性较好,可以完成DSP的启动、运行及DSP的通信任务;双口RAM采用CY7C028,它是64K*16的低功耗CMOS型静态双口RAM,最大访问时间为12ns,可以承担PC104主机与DSP之间的数据交换的基本任务;DSP芯片采用TMS320C6713,完成复杂的捷联姿态解算和信息融合算法,是32位高速浮点型DSP,时钟频率为300MHz。采用标准IDE接口大容量硬盘作为存储单元;高性能的CPLD器件XC9572编程产生控制逻辑信号,具有+5V单电源在线编程和擦除,可编程次数超过1万次,时钟速度达到125MHz[2,3]。
惯性测量单元由3个光纤陀螺仪和3个挠性石英加速度计组成,用于提供载体的角速率和加速度信息。采用串口直接接收光纤陀螺仪和GPS模块输出的数字信号。石英加速度计输出为模拟信号,必须进行放大预处理、滤波平滑后再由模数转换器转换为数字信号。设计小型嵌入式导航计算机模拟信号采集的原理结构见图2。综合模数转换器的分辨率和转换速度两个性能指标,导航系统数据采集采用三通道并行数字读出方案,即三通道并行读取三轴加速度输出信息,减少了通道之间的相互干扰,同时可以满足不同精度、不同读出速度的要求。该方案首先用运算放大器对经过精密电阻采样的加速度计信号进行放大,然后由ADC进行信号的模数转换,再由采用FPGA作为PC104处理器与模数转换器ADS1210之间的接口,将3个模数转换器并行转换的结果同时读入处理器。
石英挠性加速度计输出是电流信号,精密电阻采样可以将加速度计输出的电流信号转换为电压信号。采样电阻会对信号产生衰减作用并引入噪声,应根据系统分辨的信号精密选择采样电阻。抗混叠滤波是要去除测量信号中的干扰信号、系统内部和外部的干扰信号。当被测信号很微弱时,就有可能被干扰噪声所淹没,导致很大的数据采集误差,由RC滤波器完成滤波功能[4]。放大器采用精密仪表放大器INA118,具有高精度、低功耗、高共模抑制比和宽工作频带等优点,适合对各种小信号进行放大[5]。ADS1210是一种高精度、宽动态范围,采用单一+5V电源供电,具有24位精度的新型AD转换器件,采用串行数据传送方式,转换速度可由指令设定。模数转换器ADS1210内部的可编程增益放大器也可通过指令设定,对不同幅度的输入信号实现不同倍数的放大, ADS1210通过对命令寄存器TMR(Turbo Mode Rate)参数设定不同的值并改变采样频率,采样频率的变化将对结果产生直接的影响[5]。
图2 加速度计数据采集电路
系统采用双口RAM来实现PC104主机与TMS320C6713DSP之间共享同一段内存地址,从而实现高速数据交换。
双口RAM是系统的共享存储器,也是高速数据交换通道,双口RAM承担了PC104与6713DSP之间的数据交换任务,系统的硬件平台采用的双口RAM是CY7C028 64K*16的CMOS双端口静态RAM。双口RAM内部存储单元可同时异步访问,但两侧不能同时访问同一地址单元,这就是双口RAM芯片结构上存储数据共享的特点。
双口RAM CY7C028的数据总线、地址总线、控制总线均具有完全独立的两套,由XC9572 CPLD来管理其控制权,使CY7C028的数据总线、地址总线和控制总线在DSP和PC104主机之间切换,从而完成数据在PC104主机和6713DSP之间的高速交换,CPLD逻辑译码电路(见图3)。
CY7C028的右端口输出使能引脚与DSP的RD引脚相连,当DSP从双口RAM中读取数据,就发送高电平脉冲信号到RD端引脚,选中双口RAM并设置为允许输出状态,此时TMS320C6713DSP就可以从双口RAMCY7C028内存单元读取数据。由XC9572CPLD经过硬件程序译码产生右端片选信号,DSP选中右端口的地址总线、数据总线和控制总线,进行相关读写操作。DSP的写引脚利用低电平信号驱动CY7C028双口RAM写芯片引脚为低,配合CPLD地址译码完成DSP往双口RAM中写数据。
CY7C028左侧端口双口RAM的芯片输出使能引脚由PC104主机的SMEMR读数据引脚驱动,一旦PC104对CY7C028双口RAM有读数据请求,CY7C028的左端口就被设置为输出状态,随时准备外部数据总线读取内部数据。片选信号由XC9572CPLD译码产生,PC104通过将写引脚设置为低电平来驱动CY7C028双口RAM左端口写控制引脚低电平信号,从而完成CY7C028双口RAM芯片内存地址的写操作[6]。
图3 CPLD逻辑译码电路
针对船舶导航系统的小型化、嵌入式并行处理的特点,设计系统程序流程见图4。系统程序流程图包括导航系统自检模块、导航初始数据装订模块、导航初始对准模块、捷联解算模块和GPS信息融合模块[7,8]。
导航系统上电运行后,导航计算机和各传感器自检并输出相应的信息,如果自检正常,接受发送的初始经、纬度信息、速度信息以及姿态信息并进行验证,确认信息正确后进行初始对准、导航解算和信息融合滤波。最后将采集得到的原始数据和导航计算机运算得到的信息传送给控制计算机,以供后期数据分析使用[9]。
图4 导航软件流程
在实验室环境下测试导航计算机的性能。陀螺仪和加速度计的零位漂移分别为0.1°/h和0.001m/s2。惯性测量单元在GPS信号辅助下组合导航系统静态实验,此时在导航计算机中存储有捷联算法和相应的信息融合算法,惯性测量单元安装在三轴转台上,采用速度+位置匹配的组合导航方式,由于GPS校正作用,系统位置误差呈现收敛,误差始终保持在1.5m范围内,具有较高的定位精度。克服了惯性测量单元误差呈发散缺点。
基于PC104的嵌入式并行导航计算机,采用嵌入式并行多处理器结构,脱离了传统的计算机平台,设计了高精度数据采集电路,双口RAM并行数据传送模式和CPLD接口电路设计,实验室三轴转台实验证明所设计的系统能够满足高精度、小体积、实时性、低功耗等要求,为实现船舶导航计算机小型化具有实际意义。
[1] 王 其,徐晓苏. 基于浮点DSP+ARM的光纤捷联/GPS组合导航计算机的设计[J]. 船舶工程,2007, 29 (5): 34-37.
[2] 梁海波,司文杰,刘志华,等. 基于SOPC的MEMS组合导航仪的设计与实现[J]. 航天控制,2014, 32 (2): 3-8.
[3] 闫 捷,徐晓苏,张 涛,等. 舰载小型化SINS/GNSS紧组合导航系统设计[J]. 中国惯性技术学报,2013, 21 (6): 775-780.
[4] 李锦明,李娜娜,马游春. 基于高精度 A/D的石英挠性加速度计数据采集的设计[J]. 仪表技术与传感器,2012, 51(2):775-780.
[5] 张 霆. 基于PC/104总线的多DSP并行处理系统及其应用[D]. 南京:东南大学,2006.
[6] 龚 辉. 基于高性能DSP的捷联信息处理硬件平台设计与实现[D]. 哈尔滨:哈尔滨工程大学,2007.
[7] Lubin Chang, Baiqing Hu, An Li, et al. Strapdown inertial navigation system alignment based on marginalized unscented Kalman fiter [J]. IET Science, Measurement and Technology, 2013, 7 (2): 128-138.
[8] Mahdi Jafari, Tooraj Abbasian Najafabadi, Behzad Moshiri, et al. PEM stochastic modeling for MEMS inertial sensors in converntional and redundant IMUs [J]. IEEE Sensors Journal, 2014,14 (6): 2019-2027.
[9] Michaein, Matej Hoffmann. Dead reckoning in a dynamic quadruped robot based on multimodal proprioceptive sensory information [J]. IEEE Transactions on Robotics, 2013, 29 (2): 563-572.