APP下载

基于多核架构的遥测图像压缩存储系统的实现*

2020-11-10杨耀森冯小琴

火力与指挥控制 2020年9期
关键词:记录器遥测架构

杨耀森,李 博*,孟 浩,冯小琴

(1.中北大学仪器科学与动态测试教育部重点实验室,太原 030051;2.北方自动控制技术研究所,太原 030006)

0 引言

飞行试验是航空产品开发过程中的一个重要步骤,随着计算机技术的飞速发展,飞行试验中的测试设备和测验参数越来越多。美国的飞行试验技术和设备在全球处于领先地位,规模最大,在航空航天局空军部均设有飞行试验研究基地。美国空军试飞中心近年投入使用的飞行试验测试系统共有18 套机载系统和5 套地面系统,具有高速处理数据的能力;还配有综合飞行数据处理系统(IFDAPS),拥有超高清图像的实时处理分析能力,支持洲际飞行作业[1]。

我国也早在20 世纪50 年代就开始建设飞机飞行试验研究中心,并具有一定水平和规模。嫦娥一号卫星的记录器的数据存储容量高达48 Gbits,还具有数据动态分区存储、图像数据压缩及存储区自检等功能;中北大学在遥测记录器和测试装置的研究上处于国内较为领先的地位,采取高性能FPGA 架构,实现模数一体的线性存储技术;北京航天斯达技术设备公司研制的数据采集记录器各通道相互独立,不会因为某一通道的故障影响其他通道,体积小,可靠性高[2]。

但是,随着图像信息量的急剧上升以及外围器件的增多,使用FPGA 实现复杂的图像算法以及精准的设备控制能力显然不太可能,而老式NAND 的512 B 小页、2 kB 大页也限制了容量的提升,严重影响了飞行器的采集时间。所以本文将基于多核架构VPM6467 平台设计,在重点突破H.264 裸机难关的同时,优化硬件接口,匹配8 k 页容量,更新存储管理模式,旨在设计出一种大容量、高速率的遥测记录器,赋予飞行器超远距离采集能力。

1 系统架构问题

多核架构领域的发展主要以SOC(System on Chip,片上系统)为主,其中ARM 提供控制处理能力,DSP 提供计算能力,FPGA 提供并行处理能力[3],因此,遥测记录器要适应多样化的采集条件,向多核架构转变实属必要。多核架构的开发模式多以linux 为主,其开发工作主要集中在平台移植,然而实际遥测环境中存在冲击、震动等恶劣因素,故而选用最合适也最为安全的裸机开发方法,但是裸机开发模式下实现H.264 图像压缩算法又将带来新的难题[4],如图1 所示,故本文的重点工作就是解决这些难题并对平台进行优化。

图1 待解决问题

2 解决方案

2.1 接口问题与解决

多核SOC 最难避免也是最直接的一个问题就是接口问题,包括DSP 与ARM 的通信问题、FPGA与DSP 的接口选择问题等等,前者的最佳解决方案是利用达芬奇架构,采用融合DSP 与ARM 核的DSP 芯片来实现。后者经过多年的发展,解决方案根据不同的情形有多种的选择,如图2 所示。

图2 DSP-FPGA 接口

由于本系统需要FPGA 实时传递解析后的图像数据,数据量较大,所以接口选择EMIF(External Memory Interface),并采用异步传输模式。FPGA 端编写一个双口RAM 作为DSP 的外部SRAM,流程如图3 所示。

图3 接口操作流程

2.2 存储问题与解决

本记录器设计阶段有3 种存储参考:一为插拔式SD 卡存储,二为eMMC 存储阵列,三为NAND FLASH 集成芯片[5],如图4 所示。考虑到实际作业环境,震动冲击等因素不允许SD 卡这种不固定结构,而eMMC 体积较大,高容量的芯片成本又太高,所以本文最终采用型号为MT29F128G 的工业级NAND FLASH,而这种大容量芯片带来的难题就是需要设计专用的存储管理方法。

图4 存储选型

在传统的坏块管理方案中,块属性信息仅在每块的空余区和存储控制CPU 的缓存中记录,当NAND FLASH 达到最大使用寿命而出现坏块时,继续对坏块操作无法保证数据的准确性与安全性。CPU 缓冲中数据掉电丢失,再次上电还需扫描空余区重建块属性信息。因此,用空余区标记的方式对使用坏块进行标记可能出现标记失败,无法正确识别坏块。所以本文采用一种应用于星载存储器的独立存储坏块信息的方式[6],在NAND 中构建一块坏块信息管理专属区,主要解决信息存储失败或故障掉电引起的坏块信息更新不完全问题。

图5 NAND 管理流程图

2.3 软件设计与实现

遥测采集作业中,除了对硬件系统要求必须达到工业级别外,对软件的设计也有一定的限制:遥测记录器无法与地面基站实时通信,采集过程中不允许发生类似windows 系统的未响应错误,所以软件编程必须严谨有效,采用循环加中断的裸机开发。而相对地面上传则没有太多要求,可以搭建linux 系统来进行传输,因为其不仅能提供完善的网络层传输协议,而且附带的测试工具以及调试模式都会加快系统的开发周期[7]。

图6 软件分区图

裸机模式下的H264 编码存储是本系统的关键工作,本文软件编写在windows 系统下的CCS3.3 中完成,通过XDS560PLUS 仿真器实时调试,编程端分为C6400PLUS_0 子端编程和ARM926_0 子端编程[8]。ARM 与DSP 共享4G 内存空间(有部分内存属于各自独有),双核通信通过达芬奇特有的中断结构进行:首先把数据放在两方能够访问的内存上,然后给对方一个中断,对方在中断中接收传递过来的数据,传递过程等待用函数wait_XXX_sync()实现。

本文重点实现H264 算法裸机编程,所以对ARM 启动流程不作详细解释,其启动流程需要注意的有:1)上电启动模式不能选择NAND FLASH,因为要存储机载采集数据,所以本文选择NOR FLASH这种读取数据快的XIP 存储芯片[9]。2)启动分为两个阶段:第1 阶段用汇编编写,完成简单的系统初始化并引导第2 阶段启动;第2 阶段用C 语言编写,入口函数为C_int0(),初始化后进入main 函数,因此,需要根据具体内存空间构造映射表。3)ARM核启动后,DSP 核处于睡眠状态,需要设置PSC 启动,DSP 启动后开始进行main 中大循环。

H264 裸机编码需要在DSP 启动后先进行必要的初始化[10]:EnableEmifAcaching()使能EMIFA 接口;InitDavinciCache()初始化达芬奇架构数据通道;Setup up RMAN()建立通用资源管理器;edma_request()建立DMA 通道。在初始化完毕之后通知ARM 端,当ARM 处理好一帧数据,通过Codec Engine 将待编码帧的图像参数传入,ARM 进入等待状态,DSP 端开始编码,编码框架移植X264 开源库,如图7 所示。

图7 X264 编码框架

3 硬件实现及接口测试

对多核架构产生的问题提出有效的解决方案,并搭建硬件框图如图8 所示。电路供电分为机上供电与地面供电,有效的隔离可以避免电源问题的干扰,本系统采用继电器隔断;接口模块负责LVTTL的电平转换,保证数据的准确性;FPGA 负责帧数据的接收,进行压缩前文件的预处理;VSC8641 是一款自适应PHY 网卡芯片,MAC 层集成在DSP 内部,本系统基于千兆传输模式,需要手动调节计算机端为千兆状态。

图8 硬件框图

对DSP 的EMIFA 接口使用EDMA 方式传输数据:DSP 写,即FPGA 读,在FPGA 中检测AWE 下降沿且CE 为低时,读数据总线即可;DSP 读,即FPGA写,在FPGA 中当AOE 和CE 均为低时,写数据总线即可。用示波器通道1 选CS3,通道2 为输出使能信号,得出图9 测试图,由图可知一个周期为57.6 ns。

由图9 可知,传输8 kB 的数据耗时235 us,速率为8 Kbytes/235 us=34 Mb/s,实验成功。

图9 DSP-FPGA 传输波形

图10 传输8 kB 数据

4 平台传输测试

对系统进行对比实验测试:旧式记录器实验数据由飞行试验中心提供,采集时间为135 min,图像数据量为4 063.3 MB,传输到上位机耗时8 min。如图11 所示。

图11 上位机传输

对本系统进行采集测试,采集数据传输至上位机,配置对比见表1,对比数据见表2。

5 结论

本文设计了一种可以实时压缩PCM 图像数据的遥测记录器,先从该系统架构带来的问题入手,接着从软件编写以及硬件结构介绍了设计过程,并提出一种裸机与系统共存的高效操作方式,最后进行了接口与系统的整体测试,数据表明:该系统属于高速数据传输系统,DSP 与FPGA 的接口传输速度高达34 Mb/s,已经超越当前千兆网的实际传输速率;采用H264 压缩图像高效可行,压缩比高达88倍,即在因存储空间限制的1 d 飞行试验现在可以延长到3 个月。

表1 新旧记录器配置对比表

表2 遥测记录器对比数据表

猜你喜欢

记录器遥测架构
“田间微课堂”创建农机培训全新架构
高层次综合技术在遥测地面站数据处理中的应用
功能架构在电子电气架构开发中的应用和实践
多任务遥测数据实时处理系统
一种用于引导的遥测定位信息外推算法*
基于MicroBlaze的测控终端数据处理模块的设计与实现
构建富有活力和效率的社会治理架构
企业内部控制信息化系统架构及实现策略
航空百科(45)