基于Zynq7020 的组合导航处理平台软硬件系统的设计与实现
2020-05-20王世臣张代省范兴民
王世臣,张代省,范兴民
(1.安徽四创电子股份有限公司,合肥 230031;2.北斗卫星导航技术安徽省重点实验室,合肥 230031)
1 组合导航处理平台
惯性导航系统的理论基础是牛顿力学定律—惯性定律,利用惯性敏感元件、基准方向和初值位置确定载体的位置、速度和姿态,为自主式导航系统。但惯导系统会随着时间累积误差,严重时会影响导航精度,需引入外部数据对惯导系统进行定时校正,采用两种或两种以上的导航设备组合,构建组合导航系统,目前主流的组合方式为卫星导航系统(GNSS)和惯性导航系统(INS)相组合[1][2],组合导航系统中的导航处理平台一般采用FPGA+DSP 的架构实现,缺点是体积大、功耗高。随着组合导航系统集成化程度的要求越来越高,我们提出一种基于Zynq 处理器构建组合导航处理平台的方案,充分利用平台优势,有效减小系统体积和功耗。
2 总体设计方案
组合导航系统平台系统架构如图1所示:
图1 组合导航处理平台系统架构图
该处理平台由ZYNQ7020,ADC,DDR3,eMMC,UART,网络及422/485等接口组成。主要完成信号处理(对陀螺信号、加速度计信号、卫导信号等进行处理)、数据采集、导航解算、数据存储、数据传输等功能。
①陀螺仪和加速度计输出为TTL 信号,利用ZYNQ7020的PL 端采集两个TTL 脉冲信号,并进行计数。
②陀螺控制板与ZYNQ7020 PL 端采用UART TTL 通信,用于实现陀螺仪的抖频和稳频控制。
③卫星导航接收机通过RS422差分输入,经电平转换后与PL 端进行通信,用于卫星导航接收机的原始观测量数据和导航信息的采集。
④采用RS422接口输出导航解算结果至外部系统,提升通信可靠性和抗干扰能力。
⑤系统预留网络和RS485等接口,便于系统调试和软件升级。
⑥系统采用大容量的存储(eMMC)和运行内存(DDR3),PL 和PS 端共享内存,用于数据采集和解算处理。
Zynq7020 作为平台核心,是基于Xilinx 所有可编程SOC(APSOC)架构,由PS 和PL 两大部分组成,两者之间通过AXI接口通信,AXI-HP 和AXI-ACP 协议下,PS 仅能读数据,在AXI-GP 模式下,PS 可以读写数据。Zynq7020架构如图2所示:
图2 Zynq7020架构
3 软件设计方案
基于系统稳定性和可扩展性考虑,软件设计采用高内聚低耦合的设计思想。划分为多个模块,各模块间接口统一,易于维护和升级。组合导航处理平台软件设计架构如图3所示。
(1)PL 端软件主要包括温度信号采集,陀螺信号和加速度计信号采集与处理,卫星导航信号的数据采集与存储。
(2)Zynq 处理器的PS 端有两个ARM 处理器,分别完成不同功能。其中,一个ARM 处理器将PL 端采集和处理的信号,进行惯性导航解算,输出姿态和加速度信息。并与卫星导航构建组合导航系统,实现滤波算法,输出高精度位置、姿态和速度信息。同时还完成系统初始对准、杆臂校正及误差估计等功能,为整个系统的核心。
图3 系统软件架构图
①初始对准模块:根据加速度计、激光陀螺完成初始对准并确定姿态矩阵。根据卫星导航模块或用户输入的位置信息确定当地经纬度。
②惯性导航解算:姿态、速度、位置更新模块分别用于计算载体的姿态、速度、位置数据。
③组合导航滤波:根据当前的工作模式,选择使用惯导系统输出的姿态、速度信息,卫星导航设备输出的位置信息,根据不同的变量建立卡尔曼滤波方程,然后进行信息融合处理。
④杆臂校正:完成载体坐标系和导航坐标系间的姿态变换。
⑤误差估计:完成陀螺及加速度计的零偏估计,进一步提升系统的精度。
(3)Zynq 处理器的ARM 端软件,主要完成系统接口控制,协议转换和数据存储等功能,用于完成组合导航系统与外部系统对接。
4 数学模型及仿真
组合导航处理平台的算法实现所采用的数学模型主要包括姿态矩阵、四元数法、比利方程、速度更新、位置更新及卡尔曼滤波等[3][4]。
4.1 导航坐标系(n 系)到载体坐标系(b 系)转换
4.2 四元数法表示姿态
四元数法与姿态矩阵的关系:
4.3 比利方程
4.4 速度更新
速度更新微分方程:Vk+1=f(Vk,fb(tk)),速度增量:
4.5 位置更新
4.6 组合导航滤波算法
采用卡尔曼滤波器组合导航算法,实现误差最有估计,具体实现流程如图4所示。
图4 组合导航滤波算法框图
5 结束语
通过采用Zynq7020处理器平台,构建组合导航系统,可以大大降低系统的设计复杂度,充分利用该平台的多核应用架构,总线内部完成数据交互,缩短了数据缓存延迟。通过算法优化,利用双ARM 处理器协同工作,提升产品性能,提高系统的稳定性和可靠性。