基于FPGA的视频监控.pdf
《基于FPGA的视频监控.pdf》由会员分享,可在线阅读,更多相关《基于FPGA的视频监控.pdf(21页珍藏版)》请在冰豆网上搜索。
基于FPGA的视频监控在工业系统中,很多仪器和设备都需要实时监控其运行状态,由于工业环境很多情况下并不适合人工长期现场值守,因此往往选择使用视频监控设备来将工业环境中的情况实时采集到监控室,由专人统一来监视,保证对工业环境中仪器设备运行情况的实时掌握。
目前,已有视频监控系统采用的方案主要分为4种,分别为采用ARM或X86处理器的方案、DSP数字信号处理器的方案、专用视频监控集成芯片方案和使用FPGA方案。
基于ARM或X86处理器架构的视频监控方案应用相对成熟,开发简单,使用灵活,尤其是使用ARM处理器的方案,系统结构简单,成本低廉。
但是,无论是基于ARM或X86的方案,都存在着性能瓶颈以及可升级性较差的问题。
无法实现高速的或多通道的数据采集和同步显示。
DSP数字信号处理器以其卓越的数据运算性能,在图像数据处理方面有很高的效率和灵活性。
适用于需要对图像数据进行处理变换的应用中,但是,DSP本身数据带宽有限,当需要处理的数据总量达到一定的程度后,DSP由于其串行运算的本质,其性能也会出现瓶颈。
另外,一般DSP芯片的片上外设大多固定,扩展性有限,即可升级性不强,而且,能够实现视频图像采集和处理的DSP芯片,成本都相对较高。
专用视频监控集成芯片专为视频监控应用而开发,在性能和成本上有非常大的优势,适合大规模的应用。
但是,由于是专用集成芯片,其功能单一,性能固定,因此扩展性和升级性较差,该方案主要适用于功能明确且成本敏感的应用。
采用FPGA的方案,拥有很高的数据带宽和扩展性。
另外,由于FPGA拥有强大的并行数据处理能力,在数据采集、处理、存储以及传输上都有非常高的实时性,而且,由于FPGA属于通用可编程逻辑器件,能够在不改变本身芯片硬件结构的情况下大幅度修改设计功能,因此具有非常高的扩展性和可升级特性。
从理论上,只要FPGA资源足够多,单颗FPGA芯片就能实现多通道的视频采集、存储和显示。
只是,相对于采用ARM的方案,FPGA方案成本更高一些。
考虑工业环境的视频监控主要目的是为了实时了解仪器设备的运行状态,对图像数据的处理并无较高要求。
另外作为仪器设备,可能工作在较高的速度,即设备动作较快,因此,要求能够通过摄像头快速采集图像数据,并实时显示。
而且,工业环境中,经常存在多台设备需要同时监控,即需要多通道图像数据同步采集和显示。
综合考虑,确定采用以FPGA作为监控系统处理器的方案。
FPGA历史与发展介绍,以及使用FPGA开发产品的优势,大约200字完整的FPGA开发流程包括方案确立、模块划分、设计输入、设计验证、板级调试等步骤。
其中,设计验证是整个FPGA系统开发中最为重要的一步,只有进行完整设的计验证,才能确保所设计系统的稳定可靠。
因此,本系统,也采用专业的fpga设计验证工具modelsim来进行设计验证。
modelsim历史发展与介绍,大约100到150字。
基于FPGA的视频监控系统方案设计:
一个简单的视频监控系统包括图像数据采集、图像数据存储和图像数据的显示。
而图像数据采集根据所使用传感器的不同,分为使用CCD图像传感器和使用CMOS图像传感器方案。
图像数据存储也根据数据量的大小和数据存储速度的快慢,可使用静态随机读写存储器(SRAM)、动态刷新随机存储器(SDRAM)和双速率动态刷新随机存储器(DDRSDRAM)。
图像数据的显示根据显示设备的不同,分为通用VGA接口显示器和LCD液晶显示器。
接下来,就通过分析对比各部分实现方案的特点,并结合本系统的实际需求,最终确定本视频监控系统的实施方案。
图像图像传感器传感器:
在视频监控系统中,图像传感器选择直接决定了系统的各方面性能。
而图像传感器根据成像器件的不同,主要可分为电荷耦合器件(CCD)和互补金属氧化物半导体(CMOS)两类。
其中,CCD摄像头发展较早,技术较为成熟。
CCD使用一种高感光度的半导体材料制成,能把光线转变成电荷,通过模数转换器芯片转换成数字信号。
CCD由许多感光单位组成,通常以百万像素为单位。
当CCD表面受到光线照射时,每个感光单位会将电荷反映在组件上,所有的感光单位所产生的信号加在一起,就构成了一幅完整的画面。
CMOS和CCD一样,也是一种可记录光线变化的半导体。
CMOS的制造技术和一般计算机芯片没什么差别,主要是利用硅和锗这两种元素所做成的半导体,使其在CMOS上共存着带N(带电)和P(带+电)级的半导体,这两个互补效应所产生的电流即可被处理芯片纪录和解读成影像。
CCD摄像头根据成像方式,又可分为线性CCD和矩阵式CCD,线性CCD用于高分辨率的静态照相机,它每次只拍摄图象的一条线,这与平板扫描仪扫描照片的方法相同。
这种CCD精度高,速度慢,无法用来拍摄移动的物体,也无法使用闪光灯,矩阵式CCD的每一个光敏元件代表图象中的一个像素,当快门打开时,整个图象一次同时曝光。
通常矩阵式CCD用来处理色彩的方法有两种。
一种是将彩色滤镜嵌在CCD矩阵中,相近的像素使用不同颜色的滤镜。
典型的有G-R-G-B和C-Y-G-M两种排列方式。
这两种排列方式成像的原理都是一样的。
在记录照片的过程中,相机内部的微处理器从每个像素获得信号,将相邻的四个点合成为一个像素点。
该方法允许瞬间曝光,微处理器能运算地非常快。
这就是大多数数码相机CCD的成像原理。
因为不是同点合成,其中包含着数学计算,因此这种CCD最大的缺陷是所产生的图象总是无法达到如刀刻般的锐利。
而CMOS摄像头成像速度快,且功耗低。
然而,CMOS的缺点就是太容易出现杂点,这主要是因为早期的设计使CMOS在处理快速变化的影像时,由于电流变化过于频繁而会产生过热的现象。
现在,随着CMOS技术工艺的不断发展,以及相关消噪技术的进步,CMOS摄像头的成像效果已经非常接近CCD摄像头了。
通过以上分析,并结合本系统应用背景,因此选择成像速度快,分辨率高,控制简单的CMOS摄像头作为本系统的图像采集传感器,具体型号为镁光公司的MT9P001型500W像素CMOS图像传感器。
数据数据存储器存储器:
目前,常用的存储器主要分为静态随机读写存储器(SRAM)、动态刷新随机存储器(SDRAM)和双速率动态刷新随机存储器(DDRSDRAM)。
静态随机存储器采用CMOS技术来存储数据,因此存取速度快,数据在不断电的情况下能够长时间自我保持而不出现丢失。
但是,由于采用CMOS技术,每存储一位数据,需要6个晶体管,导致成本很高,且功耗很大。
因此,一般的静态随机读写存储器都具有高成本、低容量的缺点,不适用于图像数据存储这样需要大容量存储器的场合。
动态刷新随机存储器使用电容的充放电来存储数据,一个MN列的存储块,最少只需要2个晶体管和MN个存储电容即可实现,成本很低。
但是由于电容的自放电特性,每个电容存储的数据在经过一段时间的自放电以后,总是趋向于0。
因此,为了保证电容中存储的数据的正确性,必须在电容放电到达一定量之前,对电容进行读取和写回操作,该操作被称为刷新,因为刷新需要占用若干个工作周期,因此,SDRAM的读写效率相对SRAM要低一些。
在SDRAM中,数据在工作时钟的上升沿被锁定,因此,理论上工作时钟频率为Fclk,位宽为N的SDRAM一秒钟最多能够执行NFclk位的数据读写(不考虑读写潜伏期和动态刷新耗费的工作周期)。
再考虑上读写潜伏期和刷新周期,在很多应用中,这样的数据读写速度还是无法满足系统的要求,而双速率动态刷新随机存储器(DDRSDRAM)的出现正式为了解决SDRAM读写效率较低的问题。
所谓双速率动态刷新存储器,是指在DDRSDRAM工作时钟的上升沿和下降沿,都锁定数据。
因此,相对于SDRAM的只在时钟上升沿锁定数据,DDR通过在时钟的上升沿和下降沿均锁定数据,使数据读写速率提高了一倍。
因此,理论上工作时钟频率为Fclk,位宽为N的DDRSDRAM一秒钟最多能够执行2*NFclk位的数据读写(不考虑读写潜伏期和动态刷新耗费的工作周期)。
在本系统中,CMOS摄像头的工作时钟为50M,数据位宽为12bit,写入存储器所需总带宽约为600MB。
同时考虑能够实时显示图像数据,因此在存储器读取端,必须也需要有600MB的带宽,因此要求存储器的有效数据读写带宽至少为1200MB。
对于SDRAM,若工作时钟设定为100M,数据位宽选择32位,在不考虑读写潜伏期和刷新周期的情况下,理论带宽可达3200MB,远远高于CMOS摄像头数据写入带宽和显示器显示读取带宽之和。
考虑到DDRSDRAM的控制器设计较SDRAM的控制器设计要复杂的多,因此,在本设计中选用32位的SDRAM存储器,即可保证数据带宽,又可简化系统设计。
显示显示设备设备:
常用的显示设备包括模拟接口的VGA显示器和RGB数字接口的TFT液晶屏以及LVDS接口的高像素密度液晶屏,RGB数字接口的TFT液晶屏驱动原理与VGA接口的显示器,从FPGA驱动端来说,原理和时序非常相似,不同之处只是在于VGA接口传输的是模拟信号,只需要将RGB数字接口TFT屏的数据端口通过数模转换器(DAC)转换为模拟信号,即可接到VGA显示器上显示图像。
而LVDS接口则主要面向于分辨率大于或等于1024*768的数字接口屏。
在实际使用中,VGA接口通用性好,显示器可以和主机分开,之间通过线缆连接即可,因此这里选择使用VGA显示器来显示图像数据。
在驱动VGA进行图像数据显示的时候,就需要将FPGA端的RGB数字信号进行数模转换。
为了保证图像数据还原的可靠性,这里选择使用一片专用的视频转换DAC芯片ADV7123。
ADV7123是一片10bit三通道同步电流输出型DAC,最高可支持1600*1200100Hz的视频数据转换。
该芯片内部包含多个控制寄存器,通过配置寄存器,可以使其工作在不同的分辨率和帧速下,配置寄存器接口使用和CMOS图像传感器相同的IIC接口。
本系统结构本系统使用FPGA芯片,实现了CMOS摄像头的数据采集和存贮,并将视频数据通过VGA显示器实时显示出来,本系统成本低廉,性能稳定。
系统架构如下所示:
CMOScaptureRAW2RGBIICconfigurationMultportsdramVGAcontrolCMOSSensorVGADACSDRAMSDASCLMCLKPCLLVALFVALDATRGBVGA_HSVGA_VSDATADRVGA_VS其中,CMOSSensor为图像传感器,负责进行图像数据的采集,并将图像数据以Bayer格式输入FPGA中。
CMOScapture为图像数据的接收模块,负责解码图像传感器的数据传输协议并最终获得RAW格式的图像数据。
由于CMOS摄像头输出的数据为RAW格式,而最终VGA显示时的数据格式为RGB格式,因此需要对图像的数据格式进行RAW2RGB的格式转换。
因此,这里使用一个RAW2RGB模块实现两种数据格式间的转换。
multportsdram为多端口随机读取动态刷新存储器(SDRAM)的控制器。
该控制器负责将RAW2RGB模块输出的数据流写入外部大容量存储器SDRAM芯片中,以实现图像数据的存储。
VGAcontrol为VGA显示器控制器,该控制器执行将SDRAM中的数据读取出来并送入VGA输出DAC,以最终将图像数据显示在VGA显示器上。
IICconfiguration模块为基于IIC协议的外设寄存器配置模块,因为CMOSsensor和VGADAC内部都有若干个控制寄存器需要在使用之前