实时视频数据采集的FPGA实现

发布者:跳跃龙珠最新更新时间:2011-03-25 来源: 电子技术应用关键字:实时视频  数据采集 手机看文章 扫描二维码
随时随地手机看文章
    视频监控系统利用现存的企业计算机网络平台,将监控范围内所需的视频、音频等数据以数字形式通过网络进行传输、存储和共享,使安全监控部门及时获得关于监控现场实时、准确、具体、直观的数据,为安全生产提供一种新的技术手段。FPGA以其高性能、高可靠性以及现场修改、现场验证、现场实现的数字系统单片化的应用优势而日益成为视频信号处理领域的热门技术。特别是其高速并行处理能力,使其在处理速度、成本、可靠性、开发周期和扩展能力等方面具有明显的优势。
  本文设计一种用于工矿监控系统的实时视频数据采集系统,系统中由CCD摄像头采集到模拟视频信号,通过视频解码芯片转换为PAL制式的数字视频信号,采用FPGA对其进行格式转换,在现场使用VGA显示器进行视频监视,在按键的控制下可以存储于硬盘等存储介质中或传输至网络中。本设计以高性能的FPGA为核心部件,与视频解码芯片、SRAM等外围器件构成整个视频数据处理系统,集采集、存储、显示功能于一体,其系统总体框图如图1所示。设计中的FPGA器件采用Altera公司的CycloneII系列EP2C8Q208C8N芯片;视频解码芯片选用Philips公司的SAA7113H作为视频数据的模数转换器件;SRAM采用高速、低功耗8 Mbit的IS61LV51216作为图像数据缓存器。

1 实时视频监视系统的结构
  一个完整的成像系统不但要具备图像信号采集功能,对图像进行实时显示[1],而且要完成图像信号的分析、处理(如图像压缩等)以及图像处理结果的反馈等。基于FPGA的实时视频监视系统的结构如图2所示,主要包括IIC配置单元、数据采集及控制单元、VGA接口单元和压缩存储单元等。

2 视频信号采集和显示部分的实现
  SAA7113H输出PAL制式的ITU656标准YUV(4:2:2)格式数据[2],其中Y表示亮度信号,而UV表示色差信号,并且输出像素时钟为27 MHz。信号扫描方式为隔行扫描,帧率为25帧/秒,每帧图像分为奇偶两场,每帧像素为864×625,其中有效数据为720×576。SAA7113H输出的一行视频数据格式如图3所示,每行有1 728 B,其中有效数据1 440 B,对应720个有效像素,可以看成每一个像素由2个连续的字节表示,每个像素有自己的亮度数据Y,每两个相邻像素共用一组色差数据U和V。

  由于系统要求在VGA显示器上采用逐场逐行方式显示RGB格式的数据,并且要求所采集图像的大小为640×480,因此,必须对SAA7113H所采集到的原始数字视频信号进行格式转换和存储方式的处理。
2.1 IIC配置单元
  视频解码芯片SAA7113H接收CCD摄像头输出的模拟视频信号,将其转换成标准的VPO数字信号。SAA7113H上电后,必须由核心控制芯片FPGA通过IIC总线对其内部的寄存器进行初始化设置,然后才能正常工作。IIC配置单元的任务就是按照IIC总线的数据传输规范对SAA7113H内部的寄存器进行初始化设置,其时钟信号由SAA7113H提供的27 MHz的像素时钟经过时钟控制单元分频得到,数据速率在100 kb/s~400 kb/s。
  IIC配置单元的内部结构如图4所示,由IIC控制单元iic_all、配置数据存储器iic_rom和读地址发生器div448构成。IIC控制单元iic_all是核心控制单元,采用状态机设计,在start信号有效后使SCL高电平时拉低SDA数据线,同时控制地址发生器div448产生读地址信号送入配置数据存储器iic_rom; iic_rom采用可设置参数模块LPM_ROM,定制为数据宽度为1的只读ROM,每个存储单元按位预存SAA7113H内部寄存器的控制字;在时钟使能端clken有效时按位串行写入SDA数据线。IIC控制单元在start信号有效后的第8个时钟上升沿获取到SAA7113H的低电平应答信号后继续发送数据给SAA7113H,否则将重新回到起始状态等待。
 SAA7113H完成初始化配置后,输出数字视频信号VPO[7..0]和相应的同步信号:行有效信号RTS0、奇偶场标识信号RTS1等。其中RTS0高电平表示有效数据行,低电平表示消隐行;RTS1为奇偶场标识信号,高电平表示奇场,低电平表示偶场。

2.2 数据采集及控制单元
  数据采集及控制单元主要由3个模块组成:采集模块acquisition、双口RAM器件lpm_ram_dp0和帧存控制模块sto_ctl,其内部电路图如图5所示。此单元的任务就是由采集模块截取SAA7113H输出的一行数据中的640个有效像素(共1 280 B)写入双口RAM器件进行缓存,帧存控制模块将数据从双口RAM中顺序读出后送入外扩SRAM中逐行存储,同时控制2片SRAM交替读写,读出的数据送入VGA接口单元进行VGA格式转换和图像显示。

2.2.1 采集模块acqusition
  采集模块接收SAA7113H的RTS0、像素时钟信号SYS_CLK和视频数据VPO[7..0],输出为一行数据中的有效数据vpo_out[7..0]、有效像素的计数值tempp[10..0]和表示行状态有效的信号line_state。
  若要截取一行数据中的有效数据,首先要捕捉到有效数据的起始时刻。采集模块根据图3中视频数据流的时间参考代码SAV来获取有效数据的起始时刻。在一帧完整的图像数据中,第一场有效数据阶段的SAV为“1000XXXX”,而消隐阶段的时间参考代码中的SAV为“1010XXXX”。通过判断场有效信号rts0为1时,分析数据流中的“80 10 FF 00 00 SAV”定时参考代码,启动计数模为1 440的计数器tempp。计数值为40时置状态信号line_state为1,标志一行有效数据的开始;计数值为1 320时置line_state为0,结束一行有效数据的采集。在这个时间段内就可以截取一行中1 280 B的有效数据,继而送入双口RAM缓存。
2.2.2 双口RAM器件lpm_ram_dp0
  双口RAM 器件利用FPGA内部的参数可设置模块LPM_RAM_DP定制而成,用来缓存一行的有效视频数据,而后存储在SRAM中。由于SAA7113H输出是8位的VPO数据,而片外SRAM具有16根数据线,作为连接于两者之间的数据接口,双口RAM应该有两套独立的数据端口和时钟端口,可以同时进行读写操作。在软件QUARTUSⅡ上定制LPM_RAM_DP的参数为:写数据位宽=8;写地址线宽=11;读数据位宽=16,读地址线宽=10;地址输入由时钟的上升沿锁入。双口RAM的容量为2 KB,写时钟采用系统像素时钟,读时钟采用由帧存控制模块产生的像素时钟的二分频信号rdram_clk。
2.2.3 帧存控制模块sto_ctl
  帧存控制模块是FPGA芯片与片外SRAM的接口,其任务是产生片内双口RAM的读地址和片外SRAM的写地址,将每行视频数据从双口RAM中顺序读出,按照逐行存储的形式写入SRAM中。当一片SRAM写满一帧数据后,逐行送入VGA接口单元,同时切换读写操作,在另一片SRAM里连续写入下一帧视频数据。帧存控制单元的工作主要是对双口RAM的读操作、SRAM的读写操作、SRAM的乒乓控制和帧频的转换。
  双口RAM的读操作由模为640的加法计数器rdram_addd完成。为了保证数据不读空,在双口RAM写使能信号有效后的第8个系统时钟,帧存控制模块向双口RAM发出读允许信号rd_ram,同时计数器工作,按照rdram_clk时钟输出双口RAM的读地址。
  SRAM的读写操作主要是对SRAM访问地址的控制。SRAM芯片IS61LV51216具有19根地址线,取其中10根为行向地址线,则每行存储640个双字节的视频数据;9根为列向地址线,可存储480行的视频数据;剩余的存储空间空闲。视频数据在SRAM中存储的行向地址与双口RAM读地址之间有确定的等同关系,所以行向地址仍然采用计数器rdram_addd的计数值,列向地址由模为480的计数器cnt480产生。为了实现数据的逐行存储,奇场和偶场的行数据必须隔行交错存储,即列向地址是在RTS1=1时(即奇场)从000H按时钟加2递增至1DEH,在RTS1=0时(偶场)从001H按时钟加2递增至1DFH,这样就实现了隔行扫描到逐行存储的结构转换。
  系统中采用了2片SRAM,以乒乓方式工作,一片在写入视频数据的同时,另一片读出数据送入VGA接口单元。当其中一片SRAM写完一帧数据后,帧存控制模块会产生一个转换信号,输出互补的读允许SRAM_RD和写允许信号SRAM_WR,控制2片SRAM切换工作,从而实现视频数据的实时连续处理。
  帧频的转换是通过复制帧实现的。PAL制式的信号每秒25帧,VGA显示器工作场频是每秒60帧,帧频比为5:12。要转换为能够满足每秒60帧要求的视频信号,最简单的办法就是复制帧。在本设计中每5帧做一次频率放大,第一帧、第三帧传输3次,其余各帧传输2次[3]。由于RTS0信号的上升沿表示新帧的起点,所以可以利用RTS0信号触发一个序列发生器,产生对SRAM读操作次数的控制。
2.3 VGA接口单元
  VGA接口单元由2个模块组成:VGA时序驱动模块,用于产生VGA正常工作所需的时序信号,包括60 Hz扫描时钟VGA_CLK、场同步信号VS和行同步信号HS;VGA信号转换模块,用于接收SRAM中的YUV信号并将其转换成RGB信号,并根据VGA的扫描时序将RGB信号通过DAC,最后送入VGA显示器。
2.3.1 VGA时序发生模块VGA_SHIXU
  VGA时序发生器遵循VGA工业标准,即640 Hz×480 Hz×60 Hz模式,行同步HS和场同步VS信号的头脉冲是负脉冲,所要求的频率有:像素输出频率为25.175 MHz,行频为31469 Hz,场频为59.94 Hz。VGA水平时序中,每行包括800像素点,其中640像素点为有效显示区,160像素点为行消隐区。VGA垂直时序中,每场有525行,其中480行为有效显示行,45行为场消隐区。时序发生器接收外部输入50 MHz时钟信号,利用模为800的行点数计数器cnt800完成行扫描时序,模为525的场行数计数器cnt525完成场扫描时序。cnt800对经过PLL分频得到的25 MHz时钟进行像素计数,并在每次计数值清零前生成一个脉冲L_STATUS,cnt525对L_STATUS进行场行数计数。系统复位时,同步信号HS、VS为1,计数器全部清零;帧存控制单元的写VGA信号VGA_WR有效时,将HS、VS拉低电平,cnt800开始计数。程序中对cnt800的计数值进行判断,当为95时(行消隐前肩)将L_STATUS置1,为143时将640 B的RGB信号送入VGA显示器,计满后再次拉低HS信号和L_STATUS。当cnt525的计数值为1时(场消隐前肩)将VS置1,为35时场同步输出,允许输出HS信号。行、场消隐的逻辑与即为复合消隐信号,连同行、场同步信号便产生了VGA接口的时序信号[3]。
2.3.2 VGA信号转换模块VGA_COV
  VGA信号转换模块将输入的PAL制式的YUV(4:2:2)信号转换成RGB信号。首先对数据采集单元截获的YUV(4:2:2)视频数据进行插值,得到YUV(4:4:4)视频数据(如图6所示),将一个像素点的数据YUV(如U0Y0V0)合并为独立并行的24 bit数据,进入色彩转换单元VGA_COV后再经过程序计算来进行色度空间变换,获取并行输出的RGB(8:8:8)值。色彩空间变换公式如下:
  

   计算结果均除以1 024(即右移10位),即可得到RGB的值[4]。对输出的RGB(8:8:8)取高位获得RGB(5:6:5),通过D/A转换器送入VGA显示器。
3 仿真与性能分析
3.1 部分仿真波形
  SRAM写入第一行数据的仿真波形如图7所示。当RTS1=1(奇场)时,在行有效信号有效后,模为1 440的行计数器tempp开始计数;在计数值tempp为40时,应该提取到有效数据流中A8 A9 AA AB AC AD AE……计数值为48时,视频数据开始将双字节的视频数据写入SRAM中,如A8 A9, AA AB, AC AD……。

3.2 系统性能估算
  为了保证系统的实时性,一行有效视频数据的存储必须在下一行数据到来之前完成。本系统中,存储一行有效视频数据以及格式调整等需要占用1 288个系统时钟。SRAM的最高时钟频率可以达到125 MHz,则存储一行视频数据所需的时间T1=1 288/125=10.304 ns。一行视频数据中的消隐期和无效数据占用448字节时间,输出的像素时钟为27 MHz,则消隐期和无效数据所占的时间为T2=448/27=16.592 ns。由于在行消隐期和无效数据所花费的时间T2大于存储一行视频数据所需的时间T1,因此完全可以在行消隐期实现一行视频数据的实时存储,满足实时数据处理的要求。
  本设计在QUARTUSⅡ8.1环境下进行综合验证,其顶层设计采用原理图设计方式,各模块采用VHDL语言设计,共使用了364个LE,程序下载到FPGA芯片进行仿真验证,很好地实现了实时视频监控的功能。在本设计的基础上稍加改动即可实现可变分辨率的视频图像采集与处理系统。

关键字:实时视频  数据采集 引用地址:实时视频数据采集的FPGA实现

上一篇:低功耗通用语音处理平台的设计实现
下一篇:基于FPGA的三线制同步串行通信控制器设计

推荐阅读最新更新时间:2024-05-02 21:18

USB数据采集系统中数据传输的实现
  引言   USB通用串行总线(Universal Serial Bus)是被PC机广泛采用的一种总线,目前已经在计算机主板上大量集成,成为一种标准配置接口。它的即插即用、真正的热插拔、可总线供电、高性能和系统造价低等一系列的优点,使得USB接口得到了广泛的应用。特别是随着USB2.0高速传输协议的出现,其数据传输速度达到了480Mb/s,使得USB接口方式的虚拟仪器系统成为今天低成本虚拟仪器系统的主流。本文设计了基于USB2.0高速传输的数据采集系统,整个数据传输过程完全采用DMA方式,达到了较高的数据传输速度。   1、系统介绍   系统总体结构如图1所示。采用Philips公司的微控制器LPC2888作为系统核
[嵌入式]
基于LABVIEW的多路高速数据采集系统的设计
引言 在日常的测试测量中,经常使用数据采集卡采集数据。但是很多数据采集卡往往通过PCI总线完成数据的传输,它有诸多弊端,例如操作不便,受限于计算机插槽数量和中断资源,现场信号对计算机安全有威胁,计算机内部的强电磁干扰对被测信号也会造成很大的影响,最耗时最复杂的数据分析却由用户通过第三方软件(如VC,VB等) 在PC机上编写上位机软件来完成,因此用户不得不在这方面花费大量精力。这些问题都遏制了基于PCI总线的数据采集系统的进一步开发和应用,因此迫切需要设计一种更为简便通用的高速数据采集通信系统来完成数据采集以及与计算机的数据交互。 近年来通用串行总线(USB)以即插即用等技术优势得到了广泛的应用,INTEL等公司最近公布了USB 3.
[测试测量]
基于LABVIEW的多路高速<font color='red'>数据采集</font>系统的设计
LabVIEW在暖通空调数据采集控制系统的应用
   引言   LabVIEW 大量应用在自动控制领域,对于HVAC系统中采用LabVIEW作为上位端软件还不多见,但随着LabVIEW 7 Express的发布,LabVIEW已经开始逐渐渗透到各个领域。在笔者所在专业HVAC自动控制领域使用LabVIEW后发现,其功能十分强大,节省系统开发时间,非常适合工程开发人员使用。笔者结合近来开发的一套HVAC系统,对LabVIEW在HVAC数据采集控制系统的应用做个介绍。    1 系统总体结构   HVAC中有大量数据需要采集,通过对数据的采集,来对各项系统参数进行调整。本系统主要由水系统、风系统、控制系统组成。   ● 水系统包括:水冷式冷水机组,冷却塔,膨胀水箱,冷冻水泵
[测试测量]
LabVIEW在暖通空调<font color='red'>数据采集</font>控制系统的应用
基于可编程逻辑器件和A/D转换器的高速数据采集卡方案设计
   用于PC的采集系统以前大多有用ISA总线结构,这种结构的最大缺点是传输速率低,无法实现高速数据的实时传输。而PCI总线则以其卓越的性能受到了广泛的应用。32位PCI总线的最大传输数据速率可达132MB/s,64位PCI总线的最大传输速率可达528MB/s。实际上,采用高性能的总线已经成为高速采集技术发展的趋势。   利用FPGA(现场可编程门阵列)来连接高速A/D转换器和PC的PCI接口,可以充分利用可编程器件高速、灵活、易于升级、抗干扰性能的优点,并且可以大大缩短开发时间 。   1 CLC5958型A/D转换器   本数据采集系统中的A/D转换器采用美国国家半导体公司的CLC5958,该电路具有14位分辨率
[单片机]
基于可编程逻辑器件和A/D转换器的高速<font color='red'>数据采集</font>卡方案设计
基于FPGA的LSA系列激光粒度测试仪的数据采集系统设计
引言 随着现代科学技术的日益发展,颗粒尺寸及其分布在诸如石油、冶金、制药、建材等领域占据着越来越重要的地位。激光粒度仪就是用来测量微小颗粒尺寸及其分布的仪器,其基本原理是光的衍射理论。数据采集系统对激光粒度仪的光电探测器上光能信号的采集速度是激光粒度仪的性能指标之一,一般来说采集速度越快测量结果的准确性、重复性和稳定性越好 。随着各种新型光电探测器的不断出现,原有的数据采集系统需要重新设计升级。在新的设计方案中,数据采集系统的模拟通道容量增加到了 112路,并且系统的采集速度也有了大幅度的提高。 FPGA具有硬件资源丰富、设计灵活等特点,适用于数据通讯、数据采集和系统控制中,特别是它的并行结构和算术运算的特点,已越来越受到科技
[测试测量]
基于FPGA的LSA系列激光粒度测试仪的<font color='red'>数据采集</font>系统设计
制作数字示波器
可存储虚拟示波器定位为低档型,即在性能上只需满足大多场合的基本应用,努力实现小型化,价格尽可能低廉,这样在财力有限的小用户(电子爱好者、小型企业)中能够普及,在大用户的使用中发挥便携性强的优势,与高档示波器配合使用,互相取长补短。 ①硬件系统: 硬件系统由计算机硬件系统和外部硬件系统组成。这里主要研究外部硬件系统,其主要目标是实现数据采集、AD转换、数据缓冲及压缩、数据存储、向计算机系统传输。 ②软件系统: 软件系统的主要任务是通过计算机硬件系统读取由外部硬件设备传输来的数据,进行解压、变换、排除干扰信号、将波形显示在显示器上,并进行波形的存储、打印与分析。 在实现以上基本功能的前提下,还可以进行进一步的扩展国,如硬件系统性能
[测试测量]
制作数字示波器
基于Zynq-7000高速数据采集解决方案
—米尔MYD-C7Z010/20-V2开发板 近年来,科技日新月异,随着机器视觉、人工智能的迅速发展,相关行业对数据采集系统的性能要求更加苛刻,要求能够同时采样的通道更多,采样的精度和速度要求更高。在雷达,航天,视频传输,工业控制等领域,采样率、分辨率、传输速率成为评价超高速数据采集系统的最重要技术指标,所以芯片的选择就变得尤为重要,既需要具备高精度、高采样速率等模块,又需要可以嵌入操作便捷、用户体验更友好的操作系统,实现良好的人机交互功能。 Zynq-7000是Xilinx推出的一款全可编程片上系统(All Programmable SoC)。该芯片集成了ARM Cortex A9双核与FPGA,所以ZYNQ是一款
[嵌入式]
基于Zynq-7000高速<font color='red'>数据采集</font>解决方案
基于Lab-PC-1200型数据采集卡实现虚拟相位差计的设计
随着计算机技术、微电子技术和电子测试技术的迅猛发展,一种全新的测试仪器拟仪器(Virtual Instrument,VI) 种新型的、富有生命力的仪器种类。首先提出了虚拟仪器的概念。这一概硬件支撑,充分应用计算机独具的运算、存储、回访、调用、显示以及文件管理等智能式功能,把传统仪器的专业功能软件化,使之与计算机融于一体,这样便构成了一台从外观到功能都能与传统仪器相同,同时又充分享用了计算机智能资源的全新仪器 虚拟仪器的主要功能由数据采集、数据测试和分析、结果输出显示三大部分组成。其中数据分析和结果输出完全可由基于计算机的软件系统来完成,因此只要另外提供一定的数据采集硬件,就可构成由计算机组成的测量仪器。 一、图形化软件开发平台
[测试测量]
基于Lab-PC-1200型<font color='red'>数据采集</font>卡实现虚拟相位差计的设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved