导航计算机在保证导航运算速度和精度的同时,还要具有丰富的外设接口,方便与外部多传感器进行数据通信。木文所研究的导航计算机采用了单片机和DSP的双CPU方案,可以兼顾系统数据I/O功能和运算功能,实现两者合理的分配,同时保证双CPU间高速的数据通信。
1 系统结构组成
导航系统的传感器包括惯性测量器件lMU(陀螺仪和加速 度计)、磁罗盘、深度计。其中lMU通过三陀螺仪、三加速度计捷联解算后获得位置、速度、姿态共9维信息,通过RS232串口与导航计算机相连控制工程网版权所有,以NEMA0183格式传输信息到导航计算机。 磁罗盘可以获取当前载体三维姿态信息,通过RS232串口与导航计算机相连控制工程网版权所有,以NEMA0183格式传输信息到导航计算机。深度计为液压变送器,通过膜片感应内外侧水压差来确定水深,其输出为4—20mA模拟电流信号,转换为0-5V的电压信号后经过16位ADC转换模块,串行传送到导航计算机。
导航计算机选用了TI公司的浮点DSP TMS320VC33和 Cygnal公司的单片机C8051F120,单片机作为数据采集系统, 负责lMU,磁罗盘,和深度计的数据采集,并且做一些简单的前期处理;DSP作为数据运算系统,是整个组合导航系统算法实现的核心,导航系统总体设计框图如图1所示。
2.1串口电路设计
本系统的IMU和磁罗盘均以RS232串口形式输出数据,单片机带有两路UART,实现异步全双工串口通讯,由于单片机是TTL电平,跟RS-232的电气特性不一致,这就决定传感器和单片机的连接需要电平转换,本设计采用最常用的电平转换 芯片MAX232实现RS232逻辑反电平和TTL电平的转换,电路如图2所示。
2.2信号调理电路
实际项目采用的深度计即液压变送器是机器人自带的,其扩散硅传感器产生的电阻变化已经过内部惠斯登电桥的变送,以及调理电路的补偿。输出的4—20mA的电流信号是补偿了零位温飘、灵敏度温飘和非线性误差后的测量值。目前嵌入式系统普遍采用的AD模块大部分采用的是电压输入,故须将电流信号转换为相应的电压信号。
本文采用OP295放大器组成的电流到电压信号的变换及调理电路。用OP295放大器构成的4—20mA变换为0-5V的原理图如图3所示。其中R1为取样电阻,W1是调零位的电位器,二极管组用于共模调整。该电路组装调试便捷,精度高。
变送器的输出经过调理和放大,得到标准的O一5V电压信号,单片机需要对此模拟信号进行模数转换,然后才能进行数据处理,本文采用BB公司的16位串行A/D转换芯片 ADS8320,低功耗,具有100kHz的采样率,数据转换时间为101-Ls,输出为串行数据接13,可以方便的与单片机C8051F120 SPI接口进行连接,电路如图4所示。变送器的输出信号经过上述电路变换成标准电压信号后CONTROL ENGINEERING China版权所有,接入到ADS8320的+IN端,转换后的信号通过DOUT送到单片机的MISO端口,单片机的晶振频率为24.576MHz,SPI的时钟频率通过设置C8051F120的 SPIOCKR寄存器定为192000Hz。
本系统中使用了单片机和DSP两个处理器,分别进行数据的采集和处理,双CPU之间通过合适的通信方式实现高效的数 据共享和交换是解决整个系统可靠性和实时性的关键。
IDT7130是1KBx8位高速双口静态RAM,具有两套相互独立、完全对称的地址总线、数据总线和控制总线。为防止两边总线同时对同一地址进行访问而导致数据混乱,该芯片内总线仲裁电路提供了BUSY和INT两种冲突解决方法。由于IDT7130芯片将其片内0x3FEH和0x3FFH单元用作通信“邮箱”,通过左、右两端口对上述两单元的写、读操作CONTROL ENGINEERING China版权所有,可使INT标志置1或清0,故本系统利用INT标志进行总线仲裁,同时结合 DSP和单片机的中断机制,使主、从CPU和双口RAM进行通信时不需要插入等待周期,从而实现对双1:3 RAM的全速存取,以达到数据缓冲与高速通信的目的。
本系统中,设置单片机占有左端口,DSP占有右端口。左端 口地址线和数据线连接单片机的地址线和数据线,右端13的地址线和数据线连接DSP的地址线和数据线,将双口RAM定位在PAGEl页的寻址空间400000h一7FFFFFh的400000h一4003FFh,双口RAM的接口电路如图5所示。
软件的设计应该分为单片机数据采集部分和DSP数据运算处理部分。主要包括单片机和DSP的初始化程序;串口数据的接收以及发送程序;A/D转换程序;捷联惯性导航系统姿态、速度以及位置解算程序CONTROL ENGINEERING China版权所有,本文采用地理坐标系为导航系统,用 JMU测量的角速度和导航计算机计算的角速度计算载体的姿态 矩阵,从姿态矩阵的元素中提取载体的姿态和航向信息,并把 lMU加速度计测量的比力信息用变换矩阵变换到导航坐标系下的比力信息,然后就可以在导航坐标系中求解载体的速度和位 置信息;捷联解算之后需将IMU、磁罗盘以及深度计输出的信息 进行数据融合滤波,本文采取的是联邦自适应卡尔曼滤波方法,将惯性导航系统作为主导航系统,将磁罗盘的姿态信息跟惯导 系统的姿态信息差值作为子滤波器1的观测值,将深度计的深度信息跟惯导系统的高度信息差值作为子滤波器2的观测值,子滤波器1和子滤波器2的局部最优估计送到主滤波器进行融合,得到导航系统的全局最优估计。
3.1单片机数据采集软件设计
单片机数据采集主要任务是完成对惯性导航器件,磁罗盘和深度计的输出进行实时的采集。串口采集到的数据存放到双口RAM,接着给DSP中断信号,DSP响应中断读取数据,首先进行磁罗盘辅助的捷联惯导的解算。何时进行一次卡尔曼滤波即组合导航计算比较关键,本文设计为单片机定时器定时100ms,100ms的定时时间到开始启动A/D转换采集深度信息,转换结束通过双口RAM给DSP中断,这个时候OSP响应此中断读取深度信息,进行一次联邦卡尔曼滤波,单片机数据采集程序流程图如图6所示。
DSP在上电之后,首先进行初始化工作,使各寄存器和内 部资源的状态工作在初始状态,一旦检测到双口RAM的中断信 号,首先读取IMU和磁罗盘的数据,进行航向辅助的捷联惯导 的解算,当A/D转换结束,有中断产生时,DSP读取A/D转换 结果,也就是机器人下潜的深度信息,并且将此刻的所有传感器 的数据进行融合,即实现一次联邦卡尔曼滤波,滤波的结果对捷 联惯导的运算做误差校正,得到系统最优的导航信息,最终通过 串13输出到机载上位计算机显示以及对机体做相应的控制, DSP数据运算程序流程图如图7所示。
跑车实验主要是测试在系统动态环境的条件下,能否满足预期设计要求。跑车试验时,将组合导航系统安装在小车上,使系统的轴线基本和小车轴线保持一致。在静基座对准完成并进 入导航状态后,开动小车进行实验。实验中用到的设备包括: lMU、磁罗盘、DGPS(代替深度计)。其中IMU与磁罗盘需要同轴安装。对齐坐标;DGPS天线与载体支架刚性固定。
载体运动路径选择为首先沿直线运动3008,转过900的弯 道后继续宣行,惯性器件IMU持续工作,获取加速度计与陀螺 仪的输出;磁罗盘输出三轴磁场信息,解算后得到载体的航向信息,与捷联惯导系统解算的姿态信息进行卡尔曼滤波;DGPS主 要用于获得捷联解算所需的纬度信息,同时利用其高度信息与捷联惯导系统进行卡尔曼滤波;以上的子滤波器的输出结果被 送到主滤波器,以得到最终的组合导航解算结果。如图8、9所示,为组合导航系统的姿态和位置误差曲线。
5结束语
本文所研究的嵌入式导航计算机以其独特的主从式双 CPU结构,依靠DSP的高速数据运算处理和MCU丰富的接口资源,可以实现复杂的组合导航算法,能够有效实时的采集惯性 导航器件、磁罗盘以及深度计的导航数据,并进行多源信息的融 合和滤波,在导航定位的精度和性能上能够满足项目的要求,整个系统硬件设计简单、成本低、软件设计可靠,对于导航系统在微小型领域的应用具有实际的意义。