惯性/GNSS组合导航系统双口RAM导航计算机设计与实现
2022-05-08黄朝丽
王 晴,黄朝丽
(陕西航天时代导航设备有限公司,宝鸡 721006)
0 引言
近年来,随着计算机系统与卫星通信技术的发展,国内军用、民用两大领域对导航计算机的精确性、实时性、稳定性提出了更高的要求。导航计算机的主要工作包括:1)采集IMU信号,并通过解算得到惯导系统的位置、速度和姿态角信号;2)采集GNSS接收装置的位置和速度信号;3)对惯导系统和GNSS接收装置各自提供的导航信息进行组合导航解算[1],利用两个系统的各自优势,同时完成导航解算及人机接口等多任务工作,以得到更高精度的导航结果。传统的单处理器负担重,数据处理速度慢,难以满足作战系统实时性的要求。在国外,多核技术已成功应用于军用导航计算机;而在国内,多核技术在军用导航计算机上的应用仍存在多核数据通信冲突、实时性难以保证的技术瓶颈。
针对上述问题,本文设计了一种双口RAM[2]的双DSP导航计算机,即由两个DSP对导航计算机的任务进行分工,构成主从式系统各自完成相应功能,并充分利用双口RAM独特的数据共享存储能力,其最大访问时间为20ns,无需插入等待,解决了双处理器之间数据通信的延时问题,高效实现了主从DSP之间的实时通信。
1 惯性导航系统组成
惯性导航系统由MEMS传感器电路(内置1个三轴陀螺仪、1个三轴加速度计、1个三轴磁力计、1个气压计)、导航计算机、二次电源及GNSS接收装置组成,如图1所示。
图1 惯性导航系统组成框图Fig.1 Block diagram of inertial navigation system
2 总体设计
总体设计分为硬件设计和软件设计两大部分。硬件设计[3]包括二次电源设计、MEMS传感器设计、导航计算机设计(数据采集模块、导航解算模块[4]、双口RAM数据共享模块)等;软件设计包括GPS信号接收[5]、MEMS传感器数据采集、导航解算、主从DSP双口RAM通信、数据对外输出等。
导航计算机以双DSP芯片为核心处理器[6],主从控制器均采用TMS320F28335,对导航计算机的任务进行分工。其中,主控制器DSP芯片通过SPI口采集MEMS传感器的3个陀螺仪、3个加速度计、磁力计、气压计信号,同时通过UART通信接口对GNSS接收装置进行配置,接收GPS信号,并通过双口RAM将数据写入共享存储体;从控制器DSP将数据分时读出,进行导航解算及信息融合后,将姿态、位置等导航信息通过双口RAM写入共享存储体;主控制器DSP分时读出姿态、位置等导航信息,并通过RS232串口对外输出;同时,从控制器可将导航信息通过其预留的RS232串口输出。总体设计的原理框图如图2所示。
图2 总体设计原理框图Fig.2 Block diagram of general design principle
3 硬件设计
3.1 二次电源设计
二次电源为惯性导航系统各模块供电,包括:MEMS传感器(3.3V)、 导航计算机(3.3V 和1.9V)、GNSS接收装置及天线(3.3V和5V)。为便于对惯导系统电源进行检测和排故,各供电系统进行了故障隔离点设计。惯导系统供电设计的原理框图如图3所示。
图3 惯性导航系统供电设计原理框图Fig.3 Block diagram of inertial navigation system power supply design principle
3.2 MEMS传感器设计
MEMS传感器要求输出三轴陀螺仪、三轴加速度计、三轴磁力计、气压计、温度数据,传感器及惯性导航系统的具体指标要求如表1所示。
表1 传感器及惯性导航系统指标要求Table 1 Index requirements of sensor and inertial navigation system
对惯性传感器的精度、动态范围、功耗、成本、物理尺寸等诸多因素进行综合考虑,最终选用AD公司的ADIS 16488,其简单的SPI外设接口大大简化了设计的复杂度,可通过SPI接口对传感器内部寄存器进行配置,即可采集传感器数据,并对数据进行FIR滤波处理。
3.3 导航计算机设计
(1)数据采集模块设计
数据采集[7]模块作为主控制器,选用TI公司的TMS320F28335浮点型DSP,该器件具有精度高、成本低、功耗小、性能高、外设集成度高等优点。TMS320F28335具有150MHz的高速处理能力,有32位浮点处理单元,支持8个隐藏的外部中断,串行外围接口丰富,包含3个SCI(UART)模块、1个SPI模块、2个多通道缓冲串行接口(可配置为SPI接口)、其他外部通信接口等。主控制器通过读写片选信号中断信号数据线地址线对双口RAM进行操作,并为从控制器提供系统时钟,与外设接口进行通信。
(2)导航解算模块设计
导航解算模块作为从控制器,选用TI公司的TMS320F28335浮点型DSP。其设计原理与主控制器类似,仅任务分工不同,主要完成导航解算、数据融合,通过读写片选信号中断信号对双口RAM进行操作,将导航解算最终结果通过双口RAM进行数据共享。
3.4 双口RAM数据共享模块设计
双口RAM数据共享模块设计也是至关重要的一部分,双口RAM芯片选用CY7C038[8],主要完成主从控制器之间的快速数据共享通信。
CY7C038是Cypress公司研制的64K×18位低功耗CMOS型静态双端口RAM,最大访问时间为20ns,可提供两套完全独立的数据、地址、读写控制总线,两个处理器可同时对双端口进行操作(读写、数据存取等),具有两套中断逻辑,可用于实现两个处理器之间的 “握手”。同时,CY7C038具备完全独立的忙逻辑,可保护两个处理器对同一地址单元进行正确的读写操作。
为了避免两个DSP对同一地址单元进行访问时由于地址数据争用而造成的数据读写错误,综合考虑忙逻辑(硬件判优)和中断逻辑(中断判优)两种方式[9]:
(1)硬件判优方式
双口RAM具有解决两个处理器同时访问同一地址单元的硬件仲裁逻辑(即BUSY控制)。当两端的DSP不对双口RAM的同一地址单元存取时,BUSYL=H、BUSYR=H,可正常存储;当两端的DSP对双口RAM同一地址单元存取时,哪个端口的请求存取信号出现后,则其对应的BUSY=L,禁止其存取数据;在无法判定两个端口存取请求信号出现的先后顺序时,控制线 BUSYL、BUSYR只有一个为低电平。这样,就能保证对应于BUSY=H的端口能进行正常存取,对应于BUSY=L的端口不能存取,从而避免了两个DSP同时竞争地址资源而引发错误的可能。
(2)中断判优方式
双口RAM具有两套独立的中断逻辑,通过两个INT引脚分别接到两个DSP的中断引脚上,以实现双DSP的 “握手”。在双口RAM的数据传送中,两端的DSP都把双口RAM作为自己存储器的一部分。当两个DSP需要数据传送时,首先将需要传送的数据存放到双口RAM某段约定的地址单元中,然后进行写操作,用以向另一端口发出一个中断,这样另一开端口就进入其相应的中断服务子程序,将约定地址单元的数据读出,然后进行写操作,清除该中断。
综合考虑系统的空间尺寸、复杂程度、成本等,发现硬件判优方式需要单独的可编程逻辑器件来实现,而中断判优方式只需要通过软件编程即可实现,既节约了设计成本,又简化了电路设计。因而,本系统采用中断判优方式实现,其与主控制器及从控制之间的连接方式如图4所示。
图4 双口RAM通信原理框图Fig.4 Block diagram of dual-port RAM communication principle
4 软件设计
根据系统的工作原理,软件设计主要包含两大模块:1)主控制器软件设计;2)从控制器软件设计。
4.1 主控制器软件设计
主控制器DSP软件主要包括:主程序、GPS信号接收、MEMS传感器数据采集和双口RAM数据共享。其中,主程序负责完成系统的初始化,建立整个程序的运行框架等;GPS信号接收主要通过RS232接口完成;MEMS传感器数据采集主要通过SPI接口完成;双口RAM数据共享程序主要是通过两套中断逻辑,使两端的主从控制器DSP都把双口RAM作为自己存储器的一部分。
主控制器采集GPS信号、MEMS传感器数据,通过控制双口RAM的左端口将采集的数据存放到双口RAM某段约定的地址单元中,然后向0×FFFFH(即右端口的邮箱)进行写操作的同时,右端口产生一个中断信号。从控制器DSP响应到中断后,将约定地址单元的数据读出,然后对双口RAM右端口的邮箱进行写操作,用以清除该中断,读取导航数据的操作方式与此相同。主控制器的软件流程如图5所示。
4.2 从控制器软件设计
从控制器DSP主要通过双口RAM读取GPS数据和MEMS传感器数据,进行初始对准[10]、导航解算[11]、数据融合,最终通过控制双口RAM的右端口将导航数据存放到双口RAM某段约定的地址单元中,然后向0×FFFEH(即左端口的邮箱)进行写操作的同时,左端口产生一个中断信号。主控制器DSP响应到中断后,将约定地址单元的数据读出,然后对双口RAM左端口的邮箱进行写操作,用以清除该中断,读取传感器数据的操作方式与此相同。从控制器的软件流程如图6所示。
图6 从控制器软件流程Fig.6 Flowchart of slave controller software
5 试验验证及结果
对该惯导系统进行联调测试,主控制器DSP实时采集MEMS传感器信号,并进行滤波处理,接收GPS信号,通过双口RAM将采集的原始数据进行实时共享,从控制器DSP读取原始数据,对GPS信号进行解码,最终通过两种方法验证系统的可行性及实时性,惯导系统实物图如图7所示。
图7 惯导系统实物图Fig.7 Physical drawing of inertial navigation system
(1)试验一:静态传感器数据采集
将惯导系统放置在平板上,通过测试电缆分别与直流稳压电源及测试计算机串口连接,惯导系统实际坐标系为右前上。
试验方法一:惯导系统连接正常后,主控制器DSP采集MEMS传感器数据及GNSS数据,通过双口RAM将数据实时共享给从控制器DSP,从控制器DSP进行数据解码及处理后,通过从控制器DSP外挂的RS232通信接口与上位机通信,上位机实时显示传感器数据及导航结果。
试验方法二:产品连接正常后,从控制器DSP通过双口RAM读取主控制器DSP共享的MEMS传感器数据,对数据进行解码及处理,将处理后的传感器数据及导航结果通过双口RAM进行实时共享,主控制器DSP实时读取数据,通过主控制器DSP外挂的RS232通信接口(最终通信接口)与上位机通信,上位机实时显示传感器数据及导航结果。
通过示波器监测两种方法的数据输出端口,进行多次测试,数据输出延时均小于15ns。通过上位机显示传感器数据,取惯导系统1min稳定输出后的数据,如表2所示。其中,试验方法一的数据为表2的序号1~5,试验方法二的数据为表2的序号6~10。
表2 传感器数据Table 2 Data of sensor
根据上述输出数据绘制输出曲线图,如图8所示。采用极值法进行分析,由表 2、图8(a)~图8(c)可知,前5组数据最大值与后5组数据最小值的极差值分别为 0.005548(°)/s、 0.008798(°)/s、0.007282 (°)/s, 分 别 对 应 19.9728 (°)/h、31.6728(°)/h、26.2151(°)/h, 满足传感器单独验收测试 40(°)/h、 56(°)/h、 50(°)/h 的指标; 由表 2、图8(d)~图8(f)可知,前5组数据最大值与后5组数据最小值的极差值分别为0.09154mg、0.344684mg、1.078552mg,远小于传感器单独验收测试16mg的指标。由于本阶段产品暂未使用磁力计数据和气压计数据,故不进行磁力计和气压计数据分析。
图8 传感器数据曲线图Fig.8 Curves of sensor data
(2)试验二:动态导航验证
将惯导系统与高精度惯导同时安装在试验车底板的工装上,惯导系统的GNSS天线放置在车顶,确保无遮挡物,准备时间结束后开始跑车,用测试机同时记录两个系统的导航输出,跑车结束后对比两个系统的航向角、俯仰角和滚动角,惯导系统1h的试验结果如表3所示。
表3 组合导航结果Table 3 Results of integrated navigation
静态试验的两种方法和动态试验均表明了系统设计的可靠性、稳定性,系统实时性高,可行性也得到充分验证,为后续的导航解算、数据共享和通信提供了良好的基础。
6 结论
本文介绍了双口RAM在导航计算机中的设计与实现,充分利用了双口RAM数据通信最大访问时间20ns、无需插入等待、采用中断判优方式可避免双DSP对同一地址单元争用而引起的冲突等优点,实现了导航计算机主从控制器之间实时、高效的数据通信,解决了传统方法数据采集所带来的时间滞后问题(一般在毫秒(ms)量级),满足了系统的实时性要求。经过多次试验验证,系统具有运行稳定可靠、调试方便、较高的通信速度等优点。另外,本文方法简化了硬件及软件设计,可移植性高,具有较高的工程应用价值。