基于ARM+DSP的智能网络视频监控终端设计
SAA7111有很多种功能供用户选择,功能的选定可以通过对寄存器的设置来完成。本系统的研究对象是基于256级的灰度图像,输入信号采用 PAL体制,结合系统处理速度的具体要求,对芯片作如下配置:采用YUV4:2:2的信号格式,只取Y(亮度)信号,分辨率为256×256像素。选用 I2C总线信号对SAA7111工作寄存器初始化,然后SAA7111开始实现反混迭滤波、线性相位锁定、亮色分离、视频A/D变换等功能,同时产生行同步信号HS、场同步信号VS、奇偶场标志信号RTSO、像素时钟信号LLC2、数字视频信号,这些信号从芯片的管脚直接输出,将模拟视频信号解码为标准的 YUV格式的数字视频信号[4]。在CPLD的控制下,将其存入FIFO帧存储器中,通过DSP的DMA通道存入SDRAM,以便DSP进行图像处理。
3.3 逻辑控制
本系统在实时图像采集与检测工作中,有大量逻辑转换和读写等逻辑时序运算的问题,如FIFO的HF信号作为启动DMA中断的标志信号,由 SAA7111的CREE、HS、VS译码产生控制输入数据缓冲FIFO器件的写时序,以及由DSP的Cex信号译码产生的控制输入数据缓冲FIFO器件的读时序等。为解决以上逻辑转换和时序产生的问题,系统设计采用可编程逻辑控制器件CPLD ,选用EPM7128SQC 100。该器件不仅满足了相应的逻辑时序设计的要求,而且还提供控制信号,通过编程实现系统各模块所需要的选通、缓冲、读/写使能、数据总线和地址总线的切换等。
3.4 DSP外围电路设计与视频检测
为了实现视频检测,采用TI公司的DSP芯片TMS320C6202[5],其内部有8个并行处理单元,两个16bit乘法器和6个算术逻辑单元,32bit外部存储器接口(EMIF:External Memory InteRFace),支持与异步外设、异步/同步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协议栈,同时对其他许多网络协议都提供支持,这对于开发网络方面的应用程序比较方便。本终端软件部
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)