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

2011-03-25 15:53:18来源: 电子技术应用
    视频监控系统利用现存的企业计算机网络平台,将监控范围内所需的视频、音频等数据以数字形式通过网络进行传输、存储和共享,使安全监控部门及时获得关于监控现场实时、准确、具体、直观的数据,为安全生产提供一种新的技术手段。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垂直时序中,

[1] [2]

关键字:实时视频  数据采集

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2011/0325/article_1919.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
实时视频
数据采集

小广播

独家专题更多

TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved