一种多路图像实时采集存储系统设计与实现

时间:2022-10-14 10:12:14

一种多路图像实时采集存储系统设计与实现

摘要:对当前一些大型测量设备要求多传感器集成在一起,为兼顾设备存储能力的实时性及可靠性,本文设计了一种多路图像实时采集存储系统,给出了系统组成、功能指标、系统软硬件设计,详细介绍了该系统采用的关键技术及功能优势,采用FPGA编写接口时序和网口及串口控制方式等技术,减少了系统设计的复杂度,保证了系统的可行性和可靠性。

关键词:图像采集;存储;FPGA

中图分类号:TN911 文献标识码:A 文章编号:1007-9416(2017)01-0155-03

1 概述

在一些大型测量设备中,多传感器集成在一起,对设备实时存储能力提出了新要求,既要保证实时性又要保证可靠性和图像质量,本文设计了一种多路实时存储系统,该存储系统由四套图像实时采集存储系统组成,系统采用嵌入式存储构架,利用嵌入式实时操作系统作为软件平台,磁盘为存储介质,完成视频图像的存储过程。系统工作过程中,系统接收到主控计算机控制命令后开始图像存储记录,通过串口控制模块实时接收时间、编码器等信息,并将时间、编码器信息与当前帧的图像一同记录到存储硬盘中。

2 系统组成及功能

2.1 总体组成

存储系统组成如图1.1所示,系统主要由四个独立的实时图像存储系统组成(其中包括1个SDI输入图像存储系统,3个CameraLink输入图像存储系统)、一个数据交换机、一套上位机软件组成,四根串口线以及5根千兆网线组成。上位机软件具有控制、实时显示、回放,以及导出存储视频文件的功能;数据交换机与千兆网线配合使用将上位机与四套实时图像存储系统进行集群式连接;存储系统用于保存视频文件;串口线可用于存储系统实时接收叠加信息进行存储操作。图像数据在采集系统的控制下完成图像数据采集,同时存储控制器接收综合控制器发来的数据信息,将该信息按每帧与图像对应帧组成图像与数据的整合帧,并将整合后的数据在存储系统的控制下写入SSD固态硬盘中,完成逐帧的数据记录。

2.2 系统功能

(1)实时无损大容量存储数字图像;

(2)接收主控计算机系统的控制命令,回送存储状态信息;

(3)记录数字图像及相关信息,在存储图像中叠加与图像对应时刻的时间码、编码器等信息;

(4)能通过计算机控制存储系统开始记录、停止和下载视频图像数据;

(5)下载的图像可复原回放,显示时叠加与图像对应的时间码、方位角、高低角信息,可连续回放、单帧回放;

(6)图像格式转换,把图像数据及文件数据转换成含有时间信息、方位角及高低角信息的标准BMP图像;

(7)具有自检功能和故障诊断能力,故障诊断到线路板。

3 系统设计

3.1 设备硬件设计

图像高速存储系统以Xilinx公司最新的K7系列FPGA作为系统的核心处理器,实现数据的采集和解码,并在FPGA中实现完整的SATA3协议,通过SATA3协议,将数据以RAID0或RAID1的形式存储于后端所连接的SATA3固态硬盘中,该架构的存储速率可以完全满足Camlink Full工作模式,或HD-SDI工作模式。如果需要,可以进行更多块SSD的堆叠,在提高容量的同时,线性提高读写带宽。

系统组成框图如图2.1所示。

3.2 软件设计

系统采用FPGA编程的方式进行控制,FPGA软件主要负责系统的相机解码、串口收发、图像存储、图像实时显示和事后回显导出等。软件流程如图2.2所示。

4 关键技术

4.1 支持多路同时采集、存储

该存储系统是一套图像实时采集存储系统,支持四路相机同时采集数据,并对采集数据进行回放、导出、删除等操作;支持通过千兆网实时显示图像、导出采集数据;支持串口通信方式、千兆网通信方式;支持串口、千兆网口控制存储设备;支持系统自检及误码计算功能。系统采用嵌入式存储构架,利用嵌入式实时操作系统作为软件平台,磁盘为存储介质,完成视频图像的存储过程。

4.2 灵活的网口及串口控制方式

系统工作过程中,系统接收到主控计算机控制命令后开始图像存储记录,通过串口控制模块实时接收时间、编码器等信息,并将时间、编码器信息与当前帧的图像一同记录到存储硬盘中。记录完成后,利用主控计算机通过网络连接可以将存储系统的图像进行下载、图像回放。下载图像数据经格式转换后生成规定格式图像用于判读。同时存储系统设计成具有上电复位自检功能,一方面检查系统工作是否正常,另一方面检查信道是否正常。一旦检测到系统工作状态不正常时,输出故障标志,故障诊断到线路板级。

4.3 图像与当帧时间码及相关信息的严格对齐

图像与当帧时刻的时间严格对齐、对程序的时序和中断处理等提出了较高的要求。图像数据是在FPGA控制下进行采集,FPGA实时检测图像数据的帧同步信息,而系统通过异步串口传来的通讯数据也连接到FPGA上,FPGA负责解析异步通讯数据的起始时间位置,并记录其检测的图像数据帧同步的特征时刻。通过软件分析,如果串口通讯数据落在两帧场同步之间,则认为此时接收到的当帧信息与当帧图像为同帧画幅,并将数据与信息一同送入SDRAM的指定区域中,在接收到嵌入式处理器写入命令时将该同帧画幅送到SSD硬盘的DMA中。如果两者时间超过规定域值,可以追溯问题产生的原因。

4.4 同帧画幅的自恢复

在系统正常工作时,如果存在干扰(如场同步干扰、同步信息干扰),而系统仅完成图像与信息的排序一一对应,会造成信息与图像的错误,而且无法恢复,系统中采用多个自由计数器完成图像同步与信息的起始时间的准确记录。系统中设置了场同步时刻计数器、嵌入式处理器相应时刻计数器、同步信息起始位时刻等,每个计数器均为32位,计数器分辨率为1 s,可以保证一次记录时间不会溢出。

在入图像数据的同时,将对应该帧的每个计数器的值一同追加到信息中,当下载的数据或图像存在问题时,可以通过这些计数器恢复同帧画幅,也可以判定图像受到干扰还是通讯受到干扰。

4.5 抗干扰与容错设计

待存储的数据可以看成是有一定物理顺序的数据流,由于数据传输过程中可能出现干扰等因素的影响而使得某帧图像数据量改变,从而会导致后续的数据流物理顺序的改变,会给图像恢复造成很大影响。为了避免这种情况的发生,针对待采集的图像帧格式,使得采集到的每一帧图像都有固定的行列数,而不受干扰的影响。具体实现的方法是通过状态机在横纵两个方向上对二维图像进行严格的采集控制。

4.6 断电保护

为防止图像存储过程中意外断电导致已存储任务丢失,每次存储启动后,系统预先为存储任务分配安全区域(大小可预先设定),并记录该区域起始结束扇区等参数。当存储进行过程中意外断电后,重新上电系统可通过已记录的安全存储区域参数保证已存储数据不丢失。

5 可行性分析

在硬件设计方面,核心技术采用FPGA编写SSD接口时序,直接读写SSD,效率、可靠性都要比操作系统对SSD操作要高得多。而且相机采集的接口时序和串口等通讯功能,都由FPGA直接完成减少了系统的复杂度,降低了过多使用芯片带来的不可靠性。

软件方面,本存储系统上位机软件采用MFC、OpenCV实现, MFC是一个微软公司提供的类库,以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效――由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。

6 结语

本存储系统采用嵌入式存储构架,利用FPGA做为核心处理器,磁盘为存储介质,完成视频图像的采集、存储过程。系统工作过程中,系统可接收到主控计算机控制命令后开始图像存储记录,通过串口控制模块实时接收时间、编码器等信息,并将时间、编码器信息与当前帧的图像一同记录到存储硬盘中。系统支持多路相机同时采集数据,并对采集数据进行回放、导出、删除等操作;支持通过千兆网实时显示图像、导出采集数据;支持串口通信方式、千兆网通信方式;支持串口、千兆网口控制存储设备;支持系统自检及误码计算功能。设备的软硬件设计合理,所需的关键技术均已突破并应用到系统中。通过论证本系统的设计开发方案无论是在理论上还是在实现上都是可行的。经过验证,项目在可靠性、维修性、保障性、测试性、安全性以及环境适应性方面均满足要求。

参考文献

[1]马利刚,马铁华.基于 FPGA 的实时图像采集系统设计[J].计量与测试技术,2009,36(4):51-56.

[2]韩茜,罗丰,吴顺君.高速大容量固态存储系统的设计[J].雷达科学与技术,2005,3(2):37-39.

[3]李晓娟,刘学斌,胡炳,等.基于FPGA的CCD相机高速数据记录系统[J].科学技术与工程,2007,(19):65-68.

[4]吴继华,王诚. Altera FPGA/CPLD 设计(基础篇)[M].北京:人民邮电出版社,2005.

上一篇:一种雷达探测精度分析软件的设计 下一篇:对高中VB程序设计中FOR循环个别问题的解析