当前位置:首页 > 模拟 > 模拟
[导读]构建了一个基于FPGA的图像存储与回放系统,该系统能够记录红外热像仪输出的数字视频信号,回放时以原格式输出,同时还输出标准PAL格式的电视信号。介绍系统硬件设计及FPGA内部各模块的逻辑功能,并论述设计中的几个关键点。

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显示。
2.3 ADV7175与FPGA的接口设计

    CCIR一601标准规定,在数字编码时,不使用A/D转换的整个动态范围,只给亮度信号分配220个量化级,黑电平对应于量化级16,白电平对应于量化级235,为每个色差信号分配224个量化级,色差信号的零电平对应于量化级128,如图5所示。即每个样本点亮度信号占220级,色度信号占225级。

    由于红外热像仪提供的数据是16位灰度值而无色度值,所以应将ADV7175A的低8位(P7~P0)输入0x80,具体电路连接如图6所示,高8位输入亮度信号,播放时需将16位的亮度信号转换为8位再送入ADV7l75A。


3 FPGA逻辑设计
    图7为FPGA内部各逻辑功能模块框图。各模块主要功能如下:RECV模块根据红外热像仪提供的特定时序接收数据并编帧;Flash控制器控制16片Flash,用于扫描无效块和记录段,计算Flash已用空间和剩余空间及对Flash的擦除和读写操作;信息记录表负责记录Flash控制器传送的无效块号及已记录的段总数和各段的起始地址与结束地址;灰度调节模块将16位的灰度图像数据转化为8位,因为ADV7175A最多可输入8位灰度信息;PALl模块控制ADV7175A;PAL2模块生成原格式的行场时序,主要的控制信号是行同步信号(Hsync)和场同步信号(Vsync);FIF01和FIF02作为数据缓冲模块;TO一68013模块可在系统与计算机通信时互换TO一68013A的数据;还可向68013A发送一些需要显示的实时信息;键盘的扫描及按键的去抖则由键值处理模块完成.最后由CPU模块协调各子模块工作。


4 结语
   
该系统采用FPGA作为主控制器,对于不同分辨率的红外图像数据,只需修改FPGA中的RECV模块和PAL模块程序即可,因此,该系统设计具有一定的灵活性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

大家好,我是鲏。认识我的朋友都知道,我是一个实践派,相比研究枯燥的理论知识,我更喜欢做自己想做的项目,用技术来实现自己的想法的感觉真的很棒。所以从大学期间一直到现在,除了工作中的项目外,我依然保持着自己做项目的习惯,有坚...

关键字: 系统设计 技术选型 需求分析

本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的...

关键字: FPGA DS18B20温度传感器

这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。

关键字: FPGA OLED屏幕

第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。

关键字: FPGA DS18B20传感器

这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计...

关键字: FPGA OLED屏幕

模拟

31144 篇文章

关注

发布文章

编辑精选

技术子站

关闭