您的位置 首页 硬件

根据FPGA的高速多路视频数据收集体系规划

分析了现有的视频采集方案的研究现状,对如何采用CCD摄像头采集多通道、高分辨率、高质量的图像以及基于FPGA的嵌入式图像采集系统的实现方法做了研究。与传统图像采集系统相比,该系统主要利用四片视频解码芯

工业现场因为环境杂乱,实时性要求高,常常需求对一处或多处重要方位一起进行监控,且可以在需求时切换其间一幅画面全屏显现。这就要求规划一种实时视频监控体系,既可以满意工业现场运用的特别环境,具有体积小、功耗低、可定制的特色,又可以对多点进行一起收集和同屏显现以及对其间的一路进行切换。

国内现有的视频监控计划一般是选用CCD摄像头+视频解码芯片(如SAA7113H/ADV7181B)+FPGA/CPLD+DSP的形式完结,其间视频解码芯片用来对CCD摄像头收集的模拟信号进行AD转化,FPGA/CPLD对数据收集进行操控,DSP终究对数据进行处理。这种办法开发周期长,本钱高,且可更改性差。

本文介绍的体系首要由两片Altera公司的CycloneⅡ系列的EP2C8Q20818和飞利浦公司的视频解码芯片SAA7113H以及外存储器材SRAM等组成。两片FPGA别离完结前端图画的收集和后端数据的处理,视频解码芯片完结模拟信号向数据信号的转化,存储器材在FPGA的操控下起到数据缓存效果。

1 体系描绘

体系首要分为收集模块、解码模块、数据格局转化模块、存储模块、UART模块和LCD/VGA显现模块,如下图1所示。四片视频解码芯片在FPGA1的操控下经过I2C总线完结装备和初始化进程,输出8位与CCIR656兼容的YCrCb 4:2:2格局的视频数据,一起还包括行同步HS、场同步VS和奇偶场RTS0等信号。因为显现终端支撑的是规范的RGB格局的数据,所以要对视频解码芯片输出的YCrCb 4:2:2格局数据进行转化。经转化所得的RGB数据在FPGA2的操控下,合作相应的时序信号,截取要显现的有用的640×480个像素,乒乓存入两个SRAM中,并终究在:LCD /VGA显现模块的操控下将数据显现在屏幕上。UART通讯模块集成在FPGA里,经过PC机的串口发送相应的操控指令,FPGA接纳后切换相应通道的画面。

2 体系软件结构

体系软件首要由收集模块、解码模块、存储模块、显现模块和UART模块组成,软件结构如图2所示。

3 ITU656解码

ITU656解码模块依据ITU656规范将4:2:2的数据流解码成ITU656规范视频流。ITU656并行接口除了传输4:2:2的YCbCr视频流外,还有行、场同步所用的操控信号。PAL制式的图画一帧有625行,每秒扫描25帧;每行数据由1128字节的数据块组成。其间,PAL制式23~311行是偶数场视频数据,312~552行是奇数场视频数据,其他为笔直操控信号。
图3为ITU656每行的数据结构。每行数据包括水平操控信号和YCbCr视频数据信号。视频数据字是以27兆字/秒的速率传送的,其次序是:Cb,Y,Cr,Y,Cb,Y,Cr,…其间,Cb,Y.Cr这3个字指的是同址的亮度和色差信号取样,后边的Y字对应于下一个亮度取样。每行开端的288字节为行操控信号,开端的4字节为EAV信号(有用视频完毕),紧接着280个固定填充数据,终究是4字节的SAV信号(有用视频开端)。

SAV和EAV信号有3字节的前导:FF、FF、00;终究1字节XY表明该行坐落整个数据帧的方位及怎么区别SAV、EAV。在每个时钟的上升沿读取从解码芯片传来的8位数据。当检测到一行数据的开端标志FF0000XY时,检测到SAV信号或EAV信号,提取H、F、V信号。然后宣布开端指令,一起敞开队伍计数器,开端对接下来的图画数据进行解码,依据每个8位数据本身带的信息,判别该数据为Y,Cr仍是Cb,然后得到Y,Cr,Cb各重量的值。解码流程如图4所示。

4 帧存储操控器与LCD/VGA显现操控器的规划

4.1 数据格局的转化

依据前面第2节的介绍,从ITU656解码模块出来的数据为8位4:2:2的YUV空间图画数据,而LCD/VGA显现器只能接纳RGB数据。因为Y-CrCb4:2:2格局不能直接转化为RGB,所以需求先转化为YCrCb4:4:4格局。

咱们知道解码芯片得到的视频数据是次序为Cb,Y,Cr,Y,Cb,Y,Cr,……的序列,存储的时分将一个Y与一个C(Cb或Cr)结合起来组成一个16位的数据。而当数据被读出来时就要将这些视频数据转化为每个像素占24位(Y、Cb、Cr各占8位)的4:4:4的数据流。4:2:2到4:4:4的转化选用最简略的插值算法,在采样的时分,每隔一个像素才采一次色度值(Cb和Cr)。在转化时,直接将前一个有色度信息的像素点的Cr以及Cb的值直接赋给后一个像素的Cr和Cb,这样就能得到4:4:4的像素数据,每个像素占用24位位宽。

4.2 帧存储操控器

作为体系的重要组成部分,帧存储操控器首要用来进行有用数据的缓存。视频数据在FPGA1的操控下乒乓写入两片SRAM。乒乓技能运用的关键在于乒乓切换信号frame的发生,本体系中依据视频解码芯片的奇偶场信号RTS0来发生帧切换frame信号,也便是一个RTS0周期切换一次。一个RTS0周期由一个奇场和一个偶场组成,是一副完好的画面。当frame为1是,FPGA经过计数器的计数截取终究显现所需求的有用的像素点信息依照SRAM的操控时序写入SRAM1,相同当frame为0时,将对应的像素信息写入SRAM2,如图5所示。

体系加电的一起,4片视频解码芯片一起作业,为了确保数据收集的准确性和显现的同步性,体系内生成一个八倍于像素时钟的写时钟信号write_clk,这样,在一个像素时钟周期,写时钟信号现已过了八个周期,而每两个周期别离完结一路图画数据的写进程。
因为SRAM是一维存储空间,一个地址对应一个数据。所以在写入数据时将SRAM的地址空间划分为4段,每一段用来存储一路图画数据。

用程序完结比较简略,设置一个地址寄存器sram_addr_reg,将它赋给SRAM的地址操控信号sram_addr。然后在对每一路图画写入时,将对应的SRAM的开端地址加上一个固定的基数。如:

这样就确保了SRAM中对应地址的数据和屏幕上显现方位的一一对应联系,在读程序中,只需求依照次序读SRAM即可,如图6所示。

4.3 LCD/VGA显现操控器

本模块首要是用FPGA来发生LCD/VGA显现时所需求的时钟信号CLK(像素时钟信号)、VSYNC(帧同步信号)、HSYNC(行同步信号)和使能信号(VDEN),并在相应操控时序的效果下,顺次将显现缓存即SRAM中的数据顺次读出,输出到LCD上的进程。LCD显现所需的首要时序信号的联系如图7所示。

在体系中,LCD屏幕分辨率为640×480,像素时钟CLK为25MHz,因为FPGA的主时钟输入选用了20 MHz的有源时钟,那么就要求运用Cyclone芯片的内部逻辑资源来完结时钟倍频,以发生所需求的CLK(25 MHz)、用Verilog言语编写参数化的时序生成模块,发生HSYNC(32 kHz)及VHY-NC(60 Hz)时钟信号,如图8所示。

VGA显现原理与LCD类似,除了在硬件上正确衔接ADV7125芯片电路外依据需求的分辨率来生成相应时钟信号即可。

5 图画颤动的剖析与处理

在体系完结后软硬件联调时,呈现画面颤动现象,其间以RTSO为基准而发生乒乓切换的那一路图画安稳,其他三路都呈现不同程度的颤动现象。对此咱们做了深化的剖析和试验,剖析整个体系的结构可知,体系在多个时钟操控下一起作业,也便是所说的典型的异步体系。咱们知道,数据在异步体系传输时对时钟要求十分严厉,略微的一点时钟误差都会带来对有用像素截取的误差,终究影响图画的显现质量。

处理的办法有两个,一是参加缓冲机制,运用FIFO对数据存储的特性来完结数据在异步时钟之间的无缝传输;二是同步时钟,运用状态机等办法使得异步体系的时钟可以尽可能同步。选用第二种办法对体系进行改善,首要体系中所有的分频、倍频尽量运用Quartus 6.0自带的PLL发生,而且运用专用时钟引脚进行时钟输出;其次把写时钟write_clk降为54M,也便是每隔一个像素收集一次。终究,四路图画都能安稳显现。

6 完毕语

本文完结了一种结合Altera公司出产的CycloneII系列FPGA与视频解码芯片ADV7181B的嵌入式图画收集体系。体系具有低功耗、低本钱、高牢靠和灵活性好等特色。根据FPGA的多路图画收集体系选用两片FPGA作为主控芯片,完结四路视频画面的一起显现和切换,完结两个FPGA的级联装备,选用Verilog言语编写的操控逻辑处理了画面颤动问题。体系软件集成度高,硬件结构明晰简略,即可满意一般监控场合对多处方位进行实时监控的需求,又能为功用更杂乱的图画处理、紧缩、传输体系供给前端图画数据收集。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/194531.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部