基于EPM7128S84-15控制器CPLD器件实现图像采集与控制系统的设计

基于EPM7128S84-15控制器CPLD器件实现图像采集与控制系统的设计,第1张

前言

在数字录像、数字监控等领域内,人们通常只对场景内存在的物体运动感兴趣。在这种情况下,需要对输入的视频信号进行预处理,识别场景中是否存在物体运动,也就是进行运动检测,然后再决定是否做进一步的处理,例如录像、报警等。对于录像系统,通过运动检测,能够避免不必要的数字录像,有效地减少系统所需存储空间;同时可以加快检索速度,提高资料有效性。对于监控系统,运动检测是一种监视场景信息的有效手段。

1 控制器原理图

控制器CPLD的设计及实现是运动检测的核心部分,它需要对外围的器件进行集中控制和处理。本文选用了Altera公司的CPLD EPM7128S84-15,采用VHDL作为硬件描述语言,但是所编写的VHDL源程序既然适用于CPLD器件,又适用于FPGA器件。CPLD控制器设计框图如图1.1所示,控制器的整体结构大体上可分为图像采集控制模块、SRAM读/写控制、控制比较模块等三个部分。

基于EPM7128S84-15控制器CPLD器件实现图像采集与控制系统的设计,基于EPM7128S84-15控制器CPLD器件实现图像采集与控制系统的设计,第2张

Fig1.1 System diagram

图1.1 系统原理框图

2 图像采集与控制硬件部分

图像采集部分选用了Philips公司的视频A/D转换芯片SAA7111A,SAA7111A是Philips公司推出的一款功能强大的视频信号预处理芯片,最基本的功能是模/数转换,输出的是长宽比为4:3和16:9数字视频信号,符合ITU601标准。在我国,通常采用的都是4:2:2采样格式、PAL制式、长宽比为4:3的数字电视信号。

文中用到的CPLD是Altera公司的EPM7128SLC84-15,它具有128个宏单元、7.5ns的延时。SRAM芯片是ISSI公司的IS61C1024L-12,其容量为128K×8bit,具有10ns的延时。CPLD检测到运动后,通过中断,要求IME6400对信号做进一步处理。其系统结构图如图1.1所示。

SAA7111A输出的是长宽比为4:3和16:9的数字视频信号,输出信号包括消隐期在内,每帧数据扫描625行,每行抽样864个象素,因此总的分辨率是864×625。一帧数据分作奇偶两场,从上一帧的624行到本帧的310行是奇场,其中上帧624行到本帧22行是奇场消隐期,从23行到310行是奇场有效行;从本帧311行到623行是偶场,其中311到335行是偶场消隐期,336到623行为偶场有效行。

在一帧图像数据的采集过程中,最重要的就是对一帧图像数据开始和结束时刻的判断。在研究了SAA7111A所提供的同步信号(奇偶场标识信号)RTS0、场同步参考信号(VREF)、行同步参考信号(HREF)的时序关系的基础上,用状态机实现了对采集过程起止点的精确控制。RTS0信号的上升沿标识一帧新图像的起点,VREF信号为高电平对应场图像正程扫描时的有效像素行期间,在有效像素行期间,HREF信号为高电平对应像素有效采样时间。只对一帧抽样数据进行缓存,在对第二帧数据进行抽样时读取第一帧中与此刻抽样的数据相对应的缓存数据,并将两者进行比较,用一个计数器记录比较结果,如果差值超过阈值,计数器加一,否则不加。当这个计数值超过某一个规定数值的时候,就认为输入视频数据中存在着物体运动。这样做的好处是需要的缓存区较小,而且CPLD可以单独对数据进行处理,提高运动检测模块的独立性,运动检测模块可以单独调试。

3 图像采集控制软件部分

系统中PAL制式下SAA7111A输出的参考信号时序如图1.2所示。其中LLC是像素时钟信号,时钟频率为27MHZ,高电平表示输出一像素点;HS为行同步信号,其上升沿表示行消隐期开始,下跳沿标志着新的一行采样数据即将开始;VS为场同步信号,其上升沿表示场消隐期开始,下跳沿标志着新的一场采样数据即将开始;RTS0为奇偶场标志信号,RTS0为高电平时,输出奇数场采样数据,RTS0为低电平时,输出偶数场采样数据。

基于EPM7128S84-15控制器CPLD器件实现图像采集与控制系统的设计,第3张

Fig1.2 SAA7111A TIming diagram

图1.2 SAA7111A输出的参考信号时序图

系统中SAA7111A的初始设定为:一路模拟视频信号输入、自动增益控制、625行50Hz PAL制式、YUV4:2:2 (16bit)数字视频信号输出、设置默认的图像对比度、亮度及饱和度。

读/写控制模块的主要功能就是完成控制SRAM的读写。下面给出实现以上过程的一部分VHDL程序。

Sram_write_control process store_field valid spclk2 line_counter

begin

wriTIng《=valid and spclk2 and spclk and store_field and line_counter0

end process

Sram_read_control process compare_field valid spclk2 line_counter

begin

reading《=valid and compare_field and spclk2 and line_counter0

end process

这两个进程用于控制SRAM的读写信号,reading和wriTIng正好和SRAM的读写信号反相。Valid变量指示当前输入的行是否为需要采样的有效行,spclk是象素数据同步脉冲,spclk2是它的二分频,用于指示当前输入数据是否为亮度分量Y。line_counter0=1表示奇数行。Store_field和compare_field分别指示本场数据是否需要保存或者需要比较。

update_data_bus process store_field valid ccd_data

begin

if store_field=’1’and valid=’1’then

data_sram《=ccd_data

else

data_sram《=”ZZZZZZZZ”

end if

end process

compare_data进程在抽样的间隔(输入为色度分量Cr或者Cb时)对前后两次抽样的数据进行比较,如果比较结果超过允许值,计数器pixels加1,否则不加。

moTIon_detect process pixels

begin

if pixels》max_pixels then

int0《=’1’

else

int0《=’0’

end if

end process

max_pixels是一个阈值,表示一帧数据中允许出现的不相等抽样数据的最大数目,当计数器pixels超过max_pixels时,就认为检测到了物体运动,CPLD将int0输出管脚置高,向处理器请求中断。这里max_pixels取600,它可以根据需要设置适当的值。

当然这种检测方法本身也有不足之处,最主要的一点是实际检测到的只是摄像头前光线亮度的变化,不能智能地判断引起这种变化的原因,也不能判别运动物体的形状。另一方面,从实验结果来看,有时候会出现误判;当运动物体离摄像头比较远时,检测的灵敏度也会降低,出现漏判。误判和漏判是一对矛盾,在实际应用中需要根据实际情况反复调试,选出最佳的阈值,减少这两种情况的发生。

4 结论

本文作者创新点是结合在系统可编程技术,采用CPLD/FPGA芯片EPM7128S84-15设计图像采集与处理控制器。该设计目前正在我院安全防范监控系统中试用,效果良好。

责任编辑:gt

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2477681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存