微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于FPGA的红外图像存储与回放系统设计

基于FPGA的红外图像存储与回放系统设计

时间:01-08 来源:21IC 点击:

1 引言

目前,红外热像仪应用广泛,多用于侦查或监控,并且大部分红外热像仪并没有配备大容量存储器,但在一些特殊场合如导弹发射试验中的跟踪导弹的飞行轨迹,需要记录整个过程,以备事后分析。因此,基于系统设计体积和功耗考虑,这里提出一个基于FPGA的视频图像存储与回放系统设计方案。该系统采用16片1 GB NAND Flash,红外热像仪输出的每场320x240个像素点,场频50 Hz,16 bit的不压缩数字视频图像并保持至少30 min。为了扩展数据存储量,该系统还配备USB通信接口,便于将记录数据上传至计算机,或将计算机保存数据下载到该系统播放。

2 系统硬件设计

系统硬件结构框图如图1所示,FPGA将接收的视频数据编帧后送至Flash进行存储,播放时读取数据并按特定时序送至视频D/A转换器,再经D/A转换后送至电视机。USB单片机除与计算机传输数据外,还可通过I2C总线配置视频D/A转换器的寄存器以及显示控制LCD模块。

考虑到该系统FPGA的内部各模块逻辑复杂,尤其是在视频回放时需要多种控制方式,如暂停、快进快退、慢放慢退、逐场播放回放等,实现这些控制需占用较多的逻辑资源,因此,FPGA选用Xilinx公司的Spartan-IIE系列的XC2S-150E-6P0208,该器件内部逻辑高达15万门,具有48 Kbit的Block RAM,可作为FIFO。

视频D/A转换器选用ADV7175A,该器件是一款性能卓越的数字视频编码器。可将符合CCIR601 4:2:2标准的数字视频信号转换为标准的PAL/NTSC制的全电视信号,转换精度为10 bit,采用单一27MHz的时钟源,SNR最高达80 dB,其内部D/A转换器的独立开关可降低系统功耗。

根据该系统数据存储顺序进行操作,其存储器选用K9K8G08IJOM型NAND Flash。该器件的容量为8 Gbit,是由8 192个块组成,每块由64页组成,8位I/O总线作为命令、地址、数据总线分时复用。

USB通信部分选用CY7C68013A。该器件是新一代高速EZ-USB FX2.内部集成了USB 2.0收发器,其SIE(串行接口引擎)可工作在高速(480 Mh/s)传输速率下,具有USB2.0的全带宽;CPU采用增强型805l,具有更快的运行速度;简单易用的可编程逻辑接口(GPIF)为外部的FPGA提供无缝连接四;另外还具有其3.3 V的工作电压和内部集成的I2C总线控制器。

2.1 Flash读写速度的匹配

由于16片Flash并联,存储数据时,FPGA只能对一片Flash操作,又因为Flash的页编程时间过长(最大为700μs),所以存储时应在写完第一片Flash的第一页后接着写第二片Flash,当轮询完其余15片Flash后再回写第一片Flash的第二页,这样可免去页编程等待时间,如图2所示。另外还需考虑:写完15片Flash的page0的最短时间为25 ns(Flash的最小读数周期)×2 048(每页2 K字节)×15(片)=768μs,该时间大于页编程时间700μs,即写完其余15片Flash的page0后,再回写第一片Flash的pagel,而第一片Flash的页编程已结束,这样则不会造成数据丢失。

视频回放时要考虑Flash与ADV7175A之间的读数速度匹配问题。最坏情况下:ADV7175拾取数据时钟是13.5 MHz如图3所示。假设每个时钟周期都是有效数据,Flash的读数时钟周期TR最小值为25 ns,即极限读数速度为:fMAX=1/25 ns=40 MHz>13.5 MHz,满足系统要求。但Flash的页读缓冲时间tMAX=20μs,即每读取2 K字节需等待时间20μs(最大值)。要满足数据的连续性,需在Flash和ADV7175之间建立缓冲模块,则采用l KB的深度足以满足系统要求。

2.2 多段记录和选段播放

为了方便操作和观察,系统具备选段播放功能,即在记录时将不同时间段记录的内容予以分段和标记;而在播放时保证每场图像的各像素点要严格对齐,否则会造成图像错位。若要防止这种情况发生,可在记录时在每场图像数据前加一个字0xAA55作为场标志,由于每场图像的数据量为320x240x2=153 600(字节),在加入场标志后的数据流如图4所示。这样设计的优点在于:

(1)在快进、快退播放时,Flash跳地址后可检测该标志重新调整图像,另外也为数据上传后,上位机软件播放提供方便。

(2)加入场标志可实现多段记录。由于存储时确保每段视频数据的首字节都写入Flash_0的block_x(x表示block地址号)的page0的首地址,如图2中‘·’。在上电后信息扫描时只需扫描Flash_0的各block中page0的前个字节,如果是0xAA和0x55则表明新记录段,如果不是则再读取后2个字节。如果连续4个block中page0的前4个字节都是0xFF,则表明已扫描所有段,此时应将段总数和存储器的已用空间以及系统状态信息等发送至单片机进而送到LCD显示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top