时间:2024-05-22
张 禹,钱宏文
(中国电子科技集团公司第五十八研究所,江苏 无锡 214072)
为了满足现代战争的需求,车辆在运动中时刻清楚自己所处方位、车辆姿态及行驶速度等信息[1],需要以捷联惯导系统为代表的自主定位定向系统[2]。随着人工智能在军事应用的进一步转移[3],国家对武器装备的安全性和独立设计的要求也越来越高。定位定向系统我国虽已建成北斗,但相比于美国的GPS、英国的FIN500、德国的FNA615等导航系统[4]的应用和普及,还存在不少差距。同时目前捷联惯性导航系统信号处理平台基本都是采用国外基础软硬件,如美国的赛灵思FPGA、Intel处理器、Windows操作系统。在国产化方面国产化FPGA、国产化CPU、中标麒麟操作系统、锐华、睿思等操作系统虽已完成核心知识产权认证,但还未真正实现大范围的推广应用,武器装备国产化的需求越来越紧迫。
基于以上背景和需求,本文设计开发了一种基于国产化CPU+国产化FPGA平台的捷联惯性导航系统信号处理平台,平台采用100%国产化器件设计,同时适配经过实时性改造的RTLinux操作系统。
针对捷联惯性导航系统信号处理平台产品自主可控和安全可靠的性能要求,兼顾导航自主性、可靠性、稳定性和抗干扰性要求[5],开展设计和研制工作,本次设计主要针对国产化元器件和操作系统为核心进行设计。
元器件的选型方面,考虑国内知名厂家和已经经过认证量产的器件优先选用。核心CPU选择龙芯中科的2K1000,该CPU采用了40 nm CMOS工艺,单片内部集成了2个全流水64位双精度GS264 CPU核心与GPU图形核心,主频可达1 GHz,峰值运算速度为8G flops,二级缓存为256 KB,三级缓存为1 MB,功耗为1~5 W,并支持动态降频和降压[6]。同时,该处理器支持64位DDR3控制器,有SATA2.0、USB2.0、PCIE2.0、RGMII、CAN、UART、Local Bus、I2C、SPI等丰富的外设接口,可满足更多的场景和接口需求。
FPGA选择中国电子科技集团公司第58研究所的FPGA“亿芯一号”,“亿芯一号”是基于SRAM配置的高密度可编程逻辑阵列电路,包含了128行×52列共6 656个可编程逻辑块、59 904个逻辑单元、64个XtremeDSP Slice、2 880K的可编程Block RAM以及可编程端口、DCM、PDCM等模块,可完美替换赛灵思XC4VLX60系列。
硬件电路的设计以龙芯处理器为核心,在单板上集成CPU等核心处理单元,通过国产化FPGA扩展丰富的对外接口,可实现RS422通信接口、RS232调试接口、存储接口、CAN接口、以太网接口、磁隔离计数接口、GPIO控制接口等。操作系统选用经实时化改造的RTLinux操作系统,主板采用模块化、整体化的设计,实现处理器和操作系统核心软硬件的国产化。
捷联惯性导航系统信号处理平台由电源模块、信号处理模块、存储单元模块、1553B模块、422通信模块、CAN通信模块、以太网模块、隔离接口模块组成(如图1所示)。系统通过PMON实现硬件的初始化与检测,引导操作系统内核;系统软件以RTLinux操作系统作为基础软件平台,在设备驱动层提供支持;开发环境层集成常用的编译工具及各种支持的环境;基础软件层,为后续的应用部署提供支撑。整个平台能够完成捷联导航解算、流程控制、数据和上位机的交互等功能。
图1 捷联惯性导航系统信号处理平台组成
本次设计采用CPU+FPGA的硬件架构,其中CPU选用龙芯中科的2K1000型处理器,FPGA选择使用中国电子科技集团公司第58研究所的“亿芯一号”。CPU主要实现系统的数据处理和部分外部接口扩展功能,FPGA主要实现CPU的上电时序控制及其他外设接口的扩展和通信功能,系统整体框图如图2所示。
图2 捷联惯性导航系统信号处理平台整体框图
CPU采用外挂SPI NOR Flash来实现BIOS的引导,CPU对外引出CAN接口、RGMII网络接口、SATA存储接口,CPU和FPGA之间通过localbus总线来进行数据交互。
龙芯2K1000处理器内部集成有64位DDR3内存控制器,内存读写规则遵守DDR3 SDRAM行业标准(JESD79-3)。可配置为64/32/16位工作模式,支持命令调度,但不支持ECC。
设计选用4片紫光国芯公司的256×16 Mb DDR3 SDRAM存储器HXI15H4G160AF-13K实现总容量2 GB的内存扩展。该芯片具有16根数据线和15根地址线,选用标准DDR3电源供电和上电时序要求。
龙芯2K1000处理器的内部集成2路10/100/1 000 Mbps自适应以太网多媒体控制器接口(Media Access Controller,MAC),两者在逻辑结构上完全相同。双网卡均兼容IEEE802.3协议,对外部的PHY通过RGMII方式实现,支持半双工和全双工的自适应调整、CRC校验码的自动生成和校验等功能。
网口芯片选用中国电科58研究所的千兆PHY芯片JSPHY1000,电路功能兼容Marvell公司的Gigabit以太网收发器88E1111,它支持RGMII、GMII、SGMII等多种连接模式,能够和龙芯2K1000处理器进行对接,用于数据的传输和系统软件升级,网络变压器使用顺络迅达的LT1303-A通过磁隔离来提高整个系统的可靠性。
龙芯2K1000处理器内部集成了2路的CAN控制器,控制器通过对接CAN收发器可以实现CAN总线协议和CAN数据通信,CAN总线是由发送数据线TX和接收数据线RX构成的串行总线,支持发送和接收数据,CAN总线上的设备支持数据的双向传送,最高传输速率可达1 Mb/s。
本次设计选用中国电子科技集团公司第58研究所的双通道数字隔离器JS002实现双向信号的输入输出,该电路与ADI公司的ADuM1201电路兼容。实现CAN信号的隔离传输,电源设计使用新雷能公司的DC-DC隔离电源LDCR05S05U产生数字隔离器端所需的5 V隔离电源为隔离器和CAN驱动器提供隔离电源。CAN收发器使用中国电子科技集团公司第58研究所的高可靠现场总线收发器JSCAN001,提供协议控制器和物理传输介质之间的物理链路,同时该器件输入兼容3.3 V和5 V电平,通信速率高达1MBuad,且带有高达±6 kV的ESD保护功能。该电路功能与Microchip公司的MCP2551功能兼容。CAN接口的硬件设计框图如图3所示。
图3 隔离CAN硬件设计框图
龙芯2K1000处理器支持LocalIO、SPI、SDIO、NAND四种系统启动方式,本次设计选用SPI启动方式。龙芯2K1000处理器集成的SPI控制器仅可作为主控端,所连接的是从设备。对软件来说,SPI控制器有一段映射到SPI Flash的只读Memory空间,如果将这段Memory空间分配在0x1fc00000,复位后不需要软件干预就可以直接访问,从而支持处理器从SPI Flash启动。
Flash设计选用深圳国微的SM25P64用于PMON系统启动,系统启动硬件设计框图如图4所示。
图4 系统启动硬件设计框图
龙芯2K1000处理器内部包含有SATA控制器,支持SATA的1代1.5 Gb/s和SATA的2代3 Gb/s速率的传输,兼容串行ATA2.6和AHCI1.1规范,SATA盘选用鸿秦科技的HT10MCNNNN-XM来实现1 TB大容量存储的扩展。
FPGA主要包含功能:隔离RS422串口扩展、外部控制信号输入输出、控制CPU的上电顺序、整机5 V输入电源的监测功能、EEPROM的扩展、PROM的扩展等。FPGA和2K1000处理器之间通过Local BUS总线、多个GPIO和UART进行控制和通信。FPGA设计框图如图5所示。
图5 FPGA部分硬件设计框图
FPGA的配置设计选用JTAG和Master Select MAP两种方式。使用Master Select MAP(Parallel) Mode配置方式的优点是能够减少FPGA的启动配置时间,有效地提高系统的启动速度,增加FPGA配置方式的灵活性[7]。PROM型号设计选用中国电子科技集团公司第58研究所的JS32P来存储FPGA的配置信息,该器件容量为128 Mb,使用3.3 V和1.8 V同时供电,最大的工作频率可达33 MHz,该产品和XCF32P功能兼容,但不支持压缩的MCS文件。PROM启动配置硬件设计框图如图6所示。
图6 PROM配置电路设计框图
EEPROM是带电可擦可编程只读存储器,是一种掉电后数据不丢失的存储芯片,因为掉电后不丢失,所以能够有效地存放一些关键的监控信息和系统的温度数据等,EEPROM设计选用中微爱芯电子有限公司的AiP25-C256,其容量为256 Kb,存储器的结构为32 768×8 bit,内部分为512页,每页64 B,采用I2C接口,广泛应用于低功耗、低电压系统。
RS422接口芯片使用中国电子科技集团公司第58研究所的隔离式RS422/485收发器JSUART001,JSUART001将一个3通道的数字隔离器、一个三态差分线路驱动器、一个差分输入的接收器和一个的隔离DC-DC转换器集成于单片封装中,从而实现完全集成的信号与电源隔离RS-485解决方案,可配置为半双工或全双工模式,实现最高16 Mb/s的传输速率,供电3.3 V或5 V可选,同时带±15 kV的ESD保护功能,该芯片可兼容ADI公司的ADuM2682。当使用串口功能时RE和DE可由FPGA控制置高或置低使芯片处于异步半双工状态,当使用数据传输功能时RE和DE可由FPGA控制置高或置低使芯片出去单向或双向数据发送状态。RS422接口的硬件设计框图如图7所示。
图7 RS422电路设计框图
磁隔离IO接口用于FPGA接收陀螺、加速度计及里程计计数脉冲和向外发送控制信号。设计选用中国电子科技集团公司第58研究所的双通道隔离器JS002,以及中国电子科技集团公司第58研究所的四通道隔离器JS004P磁隔离IO接口。该芯片是一种基于电磁隔离的多通道数字隔离器,可实现输入输出之间完全的电气隔离,电路两端分别供电可实现3 V/5 V电平转换,通过精确匹配传输线的特征阻抗[8],能够把输入数据通过高频编码之后接收端实现无失真恢复。该型号电路可与ADI公司的ADuM14xx系列功能兼容。
1553B接口电路用于完成1553B总线通信,设计选用中国电子科技集团公司第58研究所的全功能模块1553B总线控制器,型号为JS1553B-003,JS1553B-003是一款高性能的MIL-STD-1553B总线通信控制器,该模块电路内部由一块协议处理芯片和一块收发器芯片(双路)组成,包含了完整的主处理器与1553B总线的接口,集成了双通道收发器、协议处理器、存储器管理、处理器接口逻辑和内置4 KB的RAM,实现了与1553B终端的全兼容,具有总线控制器(BC)、远程终端(RT)和监视器(MT)三大功能[9]。该芯片与DDC公司的BU-64843GC-140电路功能兼容。
捷联惯性导航系统信号处理平台软件由系统引导软件、操作系统软件和驱动接口软件组成,各软件功能如下。
系统引导软件是捷联惯性导航系统信号处理平台上电后首先加载的一段程序软件,该软件负责对处理器,即龙芯2K1000处理器进行初始化,包括初始化中断、内存、串口、GPIO、以太网以及启动TFTP服务、调试等功能。本项目的系统引导软件选用PMON软件,PMON是一个兼有BIOS和BOOTLOADER部分功能的软件代码,多用于嵌入式系统,其支持EXT2、FAT32、RAM文件系统,支持网络引导(TFTP)、磁盘引导、Flash引导以及内建调试功能,并具有很好的通用性,能够支持MIPS、ARM、PowerPC等平台[10]。系统引导软件主要用于引导以及操作系统软件的升级,与其他软件相互独立和用户层的应用不对接,用户所需的功能均在操作系统软件和驱动接口软件代码中实现。
操作系统软件是捷联惯性导航系统信号处理平台系统运行的基础,该软件提供应用所需的进程管理、内存管理、文件系统、网络通信、安全机制、驱动程序等基础功能,为实现系统控制、数据通信提供可能。
Linux系统由于具有内核源码开发、免费使用、可移植性高、跨平台支持性好、易于裁剪等特点,被广泛应用于嵌入式领域。但是由于Linux系统自身架构的问题,无法满足实时操作系统需求,当前比较流行的实时Linux扩展莫过于RTAI、Xenomai、XtratuM和实时抢占补丁,经过改善单内核方案(Linux+RT抢占式补丁)以及双内核方案(RTLinux)越来越多的实时化方案被设计出来,使Linux具有强大的硬软实时处理能力,比如单内核方案(Linux+RT抢占式补丁)以及双内核方案(RTLinux)。
实时操作系统是指一个能够在事先指定或者确定的时间内完成系统功能和对外部或者内部,同步或者异步事件做出响应的系统[11]。实时性的核心在于确定性而不是单纯的系统响应所读,即在规定的时间内完成规定的事情。
本次软件设计采用RTLinux操作系统软件方案,其总体架构如图8所示,其中SW-platform部分为软件的总体框架,它对上位用户的应用软件提供交互接口API,对下位龙芯的硬件提供外设驱动,其中RS422和脉冲和脉冲计数器在FPGA上实现,龙芯处理器和FPGA之间通过LocalBus总线通信。
图8 捷联惯性导航系统信号处理平台Linux软件整体框图
测试平台为龙芯2K1000+FPGA,RTLinux版本为V3.10。测试原理框图如图9所示。
图9 实时性测试原理框图
中断响应测试RTLinux下的响应时间使用FPGA通过GPIO向龙芯2K1000发中断,设置上升沿触发中断。中断响应时间测试计时如图10所示。
图10 中断响应时间测试计时
测试流程:
(1)龙芯2K1000通过写FPGA约定寄存器后,FPGA返回GPIO_A中断信号;
(2)同时FPGA通过拉高另外一个GPIO_B表示开始计时,以标记示波器采集计时时间开始点;
(3)龙芯2K1000响应中断信号后,触发中断处理函数发信号给应用层进程,应用层通过系统调用,去读取FPGA最终的计时数据结果,同时FPGA通过拉低GPIO_B表示计时停止,以标记示波器采集计时时间结束。
根据上述测试方法测试时,中断时间统计表如表1所示,测试波形如图11、图12所示。RTLinux中断响应时间平均不大于40 μs。VxWorks不大于10 μs。
表1 中断时间统计表
图11 内核层中断响应时间波形图
图12 内核层加80%CPU负载中断响应时间波形图
经测试结果表明系统完全可以达到实时性要求。
针对目前捷联惯性导航系统信号处理平台国产化的迫切需求,本次设计开发使用国产CPU+FPGA架构搭建硬件平台,设计采用100%的国产化元器件实现了捷联惯性导航系统信号处理平台的设计和开发,经过适配软件和系统测试产品性能稳定,经测试结果表明系统完全可以达到实时性要求,具有全天候、自主、隐蔽等优点,短时定位定向精度高[12],拓展了我国国产化综合处理平台的设计思路,具有较高的推广和应用价值。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!