关于基于DM368的嵌入式数据记录仪的设计与实现

描述

0 引言

弹载数据记录仪的主要作用是对导弹飞行中的各种数据信息进行采集与记录,通过对数据记录仪的信息进行回读和分析,可以评估导弹在飞行过程中的性能,从而对其功能进行修改和完善。随着信息技术的发展,弹载数据记录仪在导弹的研制过程中有着越来越重要的作用,对其要求也越来越高,低功耗、大容量、小体积、高速度是当前弹载数据记录仪的发展趋势[1]。

基于以上原因和实际指标要求,本文设计了一种基于片上系统(System on Chip,SoC)芯片的数据记录仪,采用高速大容量的Micro SD卡为存储介质,使用德州仪器生产的TMS320DM368处理器作为主控芯片,在片上运行嵌入式Linux操作系统,进行相关的裁剪和移植,最终实现了1路PAL模拟视频数据的采集及H.264格式压缩存储,1路CAN总线和RS422总线与弹载计算机通信和数据交互,并通过USB接口进行数据在上位机的回读分析,以此评估飞行器的性能参数。本系统具有功耗低、成本低、数据存储量大、工作温度范围大、可扩展性强等特点。

1 系统组成部分

弹载数据记录仪主要实现在导弹飞行过程中对环境信息的视频信息和飞行姿态参数信息的记录存储,在导弹落地后,通过配套的地面数据读取设备和地面计算机配合读出记录仪中的试验数据,最后由上位机软件对数据进行分析处理。地面读取装置与地面计算机之间通过USB接口或者百兆网络接口通信,将数据拷贝到本地存储介质。数据记录仪与地面读取装置的组成框图如图1所示。

嵌入式

本数据记录仪实现了对多路信号的采集和记录,存储容量可以根据实际需求通过更换不同容量的SD卡来实现,且飞行试验结束后数据回读的实现方式快捷有效。记录仪的主要技术指标如下:

(1)导弹电源系统为数据记录仪提供+12 V的工作电压,记录仪的功耗低于6 W;

(2)采集1路PAL制式视频数据,帧频不低于25帧/s,可硬件实时压缩存储;

(3)包含1路CAN总线和1路RS422总线,实现飞行过程中数据实时接收;

(4)系统启动时间小于10 s,且具有掉电保护功能;

(5)系统可正常工作的温度范围为-40 ℃~85 ℃。

数据记录仪的功能框图如图2所示。

嵌入式

2 系统硬件平台设计

受导弹舱体内空间的限制,同时考虑到导弹飞行过程中振动幅度大,本系统由3块体积较小的板卡组成,分别为主控板、接口板和电源板,板卡之间由专用的接口连接,可方便固定在载体内部,并进行灌封保护。其中主控板负责接收视频、RS422总线和CAN总线上的数据,并进行采集和存储控制,此模块是数据记录仪的数据存储模块,会在舱体内进行灌封防护处理以保护数据安全;接口板负责RS422总线、CAN总线以及USB接口通信的实现;电源板负责电压的转换,给主控板和接口板提供所需的工作电压。

2.1 主控制器和存储模块设计

本系统主控板上使用TI公司的DM368处理器作为主控芯片,该芯片采用ARM+硬件编解码器的硬件架构,具有尺寸小、功耗低、编解码速度快等优点[2]。其内部包含的ARM926EJ-S处理器工作频率可达432 MHz,同时具有MJCP和HDVICP两个协处理器,可实现MPEG、H.264等格式的压缩处理,此外内部还集成视频处理子系统及各种其他丰富的外部存储或通信总线控制器。相比于传统的基于DSP、FPGA的弹载平台数据记录仪,该平台很大程度上减小了系统的复杂度,并且硬件实现视频数据的编解码,提高了压缩比,减小了开发的难度。

由于板卡尺寸的限制以及考虑到NAND Flash存储容量较小,系统没有采用Flash芯片分组级联的存储方案,改用Micro SD卡作为压缩视频以及导弹飞行信息数据的存储介质,将SD卡放置在主控板上。由于弹体在发射和落地时存在较高的过载和冲击,为保护记录仪数据的安全,需要对主控板进行整体灌封技术处理[3]。此外,主控板上模拟视频采集模块由TVP5150AM1芯片实现,这是一款超低功耗,能够支持NTSC、PAL、SECMA等格式的高性能视频解码器,正常工作时的功耗低于120 mW,并且封装体积较小,完全满足本数据记录仪的应用需求。使用时通过I2C总线配置其内部寄存器,将采集到的CVBS信号转换为8 bit BT.656格式数据输出到DM368的视频前端(VPFE)图像采集端口,进行一些预处理后,视频数据经过缓存模块,实现编码输出或者压缩存储至SD卡,模拟视频从采集到H.264压缩存储的数据处理流程如图3所示。

嵌入式

2.2 通信模块的设计

在数据记录仪的接口板实现了1路RS422串行数据总线接口,用于与弹载计算机实现指令的传送,RS422接口使用MAX3490芯片实现差分方式进行数据的传输,有效克服了通信过程中干扰、噪声、传输效率低等缺点;1路CAN总线接收弹载计算机发送的飞行过程中的数据信息,接口板上使用带SPI接口的独立CAN控制器的MCP2515芯片实现,该器件主要由3部分组成:CAN通信协议模块、CAN通信控制逻辑模块、SPI接口协议模块[4]。DM368主控芯片通过SPI接口,使用标准的SPI读写指令实现对MCP2515的初始化,以及数据发送和数据接收的功能操作。CAN总线的实现原理示意图如图4所示。此外接口板上有1路USB2.0接口,用于弹体落地后地面计算机从数据记录仪上读回记录数据。

嵌入式

3 系统软件的设计

本数据记录仪所使用的SoC芯片DM368内部集成的ARM926核主频高达432 MHz,可以运行嵌入式Linux操作系统,有效实现对各种外设的控制和应用程序的执行。此外,片内的协处理器HDVICP对视频数据进行H.264格式的压缩编码,大大减小了数据量,方便了传输和存储,并且提高了图像质量[5]。

嵌入式软件平台的设计主要包括对应外设的驱动程序的开发、所需功能的应用程序的实现以及系统运行参数的设置。本系统CAN总线模块MCP2515的驱动是基于Socket CAN的网络设备驱动,用于设备的初始化配置以及为应用程序提供接口。

在实际的飞行试验中导弹发射后接收到相关指令后开始采集视频数据,并记录存储一些飞行姿态参数,在系统断电之前停止程序的运行,释放占用的系统资源,确保数据正确地写入存储介质,断电时数据不会丢失。根据以上数据记录仪的任务需求,设计实现了基于Linux的多任务多进程的应用程序,系统初始化后,同时启动视频处理、RS422总线指令接收、CAN总线数据接收3个进程,由收到的相应指令执行对应的操作,提高了软件执行效率,并且确保了功能稳定性。飞行状态软件实现流程图如图5所示。

嵌入式

3.1 视频信号处理多线程实现

飞行中的场景信息由摄像头采集到主控板上,在DM368处理器内进行H.264格式编码压缩,然后以文件的形式写入到SD卡。对数据记录仪的视频处理的任务采用多线程技术,程序的实现分为4个交互运行线程:控制线程、采集线程、编码线程和存储线程。线程之间通过管道共享缓冲区,设置互斥锁实现线程间的调度,提高了程序的执行效率。视频处理多线程流程图如图6所示。

嵌入式

3.2 SD卡存储掉电保护

为确保SD卡存储介质中的数据可靠安全地记录下来,除了进行物理上的灌封保护措施,在软件方面也进行了特殊处理。为了防止系统正常关闭前突然掉电可能导致数据丢失的情况发生,在对SD卡存储操作的软件实现上,使用fflush、fsync函数实现数据从缓冲区到磁盘的写入,保证文件内容的更新速度。

4 系统功能测试

为对该系统的性能进行测试和评估,在实验室搭建了模拟环境,主要针对系统技术指标进行了测试。使用PC向数据记录仪发送控制指令,通过上位机调试软件接收数据记录仪反馈的信息,此外通过USB接口对SD卡存储的数据进行回读分析,视频数据在SD卡内保存为后缀为h264的文件,CAN接收的数据保存为文本格式。

首先在数据记录仪程序内记录300 s内所处理的视频帧数,通过串口将信息发送给上位机进行分析。实验数据如表1所示。

嵌入式

由实验结果可以计算出数据记录仪平均每秒可以处理的视频图像为25.06帧,满足设计指标的压缩要求。

5 结论

本文中所设计的弹载数据记录仪实现了多路数据的采集和存储,具有体积小、功耗低、成本低的优点,采用低功耗的SoC作为主控器、高速大容量的SD卡作为存储介质,很大程度上提高了数据记录仪的性能。实际应用表明,该记录仪满足抗高过载、高冲击、宽温度范围的工程需求,具有较高的可靠性和适用性。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分