微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP的智能视频监控终端设计与优化研究

基于DSP的智能视频监控终端设计与优化研究

时间:09-28 来源:21ic 点击:

脚直接输出,将模拟视频信号解码为标准的YUV格式的数字视频信号[4]。在CPLD的控制下,将其存入FIFO帧存储器中,通过DSP的DMA通道存入SDRAM,以便DSP进行图像处理。

3.3 逻辑控制

本系统在实时图像采集与检测工作中,有大量逻辑转换和读写等逻辑时序运算的问题,如FIFO的HF信号作为启动DMA中断的标志信号,由SAA7111的CREE、HS、VS译码产生控制输入数据缓冲FIFO器件的写时序,以及由DSP的Cex信号译码产生的控制输入数据缓冲FIFO器件的读时序等。为解决以上逻辑转换和时序产生的问题,系统设计采用可编程逻辑控制器件CPLD,选用EPM7128SQC100。该器件不仅满足了相应的逻辑时序设计的要求,而且还提供控制信号,通过编程实现系统各模块所需要的选通、缓冲、读/写使能、数据总线和地址总线的切换等。

3.4 DSP外围电路设计与视频检测

为了实现视频检测,采用TI公司的DSP芯片TMS320C6202[5],其内部有8个并行处理单元,两个16bit乘法器和6个算术逻辑单元,32bit外部存储器接口(EMIF:ExternalMemoryInterface),支持与异步外设、异步/同步FIFO、PCI桥以及外部主控处理器等的接口。此外,还有16bit的主机接口HPI、两个多通道缓冲串口McBSP(多通道缓冲串口),它不仅可完成标准串口的全双工串行通信,还支持多种通信协议下的直接接口。DSP不仅完成视频实时检测,还通过12C总线对SAA7111内部的32个寄存器操作,完成初始化参数设置。

为了DSP程序快速、可靠运行,采用FLASH和高速SDRAM方式。其中,FLASH选用AMD公司生产的8MB的AM29LV800B,用于存储程序和初始化数据,通过DSP的EMIF导入C6202进行图像处理操作。SDRAM选用8MB的HY57V651620B,用于实时图像数据的缓存。C6000系列的数字信号处理器的EMIF提供了对SDRAM的直接支持,接口十分方便。系统加电运行时,DSP自动将程序和初始化数据从FLASH装入到高速SDRAM,装入完毕,程序在高速SDRAM中全速运行。

考虑到图像数据采集与DSP处理时的速度匹配问题,系统在图像采集模块和DSP模块间采用了数据缓冲FIFO器件,经图像采集模块产生的数字图像数据首先缓冲至FIFO中,然后利用FIFO的HF等信号作为启动DSP中DMA中断的标志信号,在此基础上,利用FIFO的HF启动DSP的DMA通道将图像数据传送至DSP扩展的SDRAM中,从而有效地减少了由图像数据输入引发的DSP中断的次数,提高了DSP中断的效率。

由于图像采集模块的SAA7111提供给DSP的数据是TTL电平,其逻辑高电平为5V,而DSP的I/O的逻辑高电平是3.3V,因此在SAA7111输出的图像数据和DSP的I/O之间还需增加LVTH162245电平转换器件,以满足数据电平转换的需要。

本设计中采集的是灰度图像,为了实现入侵扫描功能,要求能够存储两场图像。考虑到检测实时性要求,采用基于帧间差分的变化检测。检测运动目标时,考虑到对目标大小的选择性以及为了克服光照变化引起的虚警报,在帧间差分基础上,引入图像块概念,将图像分成M个n×n的子块,判断每一子块图像是否发生变化,统计发生变化的子块数目,判断式[6]为:

敏感项,α为抑制系数,N为检测区域内的像素数目。采用这种块比较法,阈值取值范围大大减小,易于确定,而且对运动目标的大小也有一定的选择性。在检测每一子块图像是否发生变化时,引入光照敏感项,避免了因光照变化引起的虚警。这种方法对光线变化有一定的自适应性,扩展了系统的动态适用范围。

3.5 网络接口电路设计

S3C4510B集成了以太网的MAC接口控制器,因此对外界的网络接口只需要添加物理层芯片和RJ-45接口。这一部分电路在S3C4510B应用手册上有详细的电路设计参考。本系统选用的物理层芯片是LXT970A(10/100MB),本监控终端通过RJ-45接口可以方便地接入以太网。

4 软件设计

本终端选用uClinux嵌入式操作系统,uClinux可移植性很强,支持多任务,具有完备的TCP/IP协议栈,同时对其他许多网络协议都提供支持,这对于开发网络方面的应用程序比较方便。本终端软件部分的设计主要包括uClinux操作系统的平台移植以及uClinux下各硬件设备的驱动程序和应用程序的开发。

本终端软件包括视频采集、视频检测、主控程序和网络传输等应用程序,为了保证系统硬件的正常工作,其中还包括硬件初始化程序、以及为各种设备编写的底层驱动程序。驱动程序中需要完成的任务包括:对设备以及对应资源初始化和释放;读取应用程序传送给设备文件的数据并回送应用程序请求的数据等。编写的底层驱动程序包括:C6202,S3C4510B内部串口、网络接口芯片LXT97

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top