(多图) 基于DSP+FPGA多视频通道的切换控制
过PPI口送给DSP中进行算法处理。最后由DSP发送视频通道切换命令完成不同通道之间的切换,并且将最后处理结果送给报警和状态指示装置,实现监控告警功能。软件控制流程如图3所示。
图3 软件控制流程
2.1 FPGA模块功舵买现
FPGA控制部分用于对视频信号进行预处理并且等待DSP发送切换命令。其基本思路为:当某一路视频信号经过AD9203之后,输出的视频量化信号被送进FPGA做预处理,然后被送入DSP进行算法处理,同时FPGA等待DSP根据场信号发送的视频通道切换命令。
在实验过程中发现,DSP对图像的搜索是以行信号的上升沿(或者下降沿)为触发的,因此需要行信号有一个稳定的上升沿(或者下降沿)。由于信号在分离传输的过程中可能会产生抖动,导致信号的上升沿(或者下降沿)不稳定,从而影响DSP对视频信号的判断。若仍然以这个不稳定的行信号(VIDEO_Hs)作为DSP搜索图像的标志,则其接收的图像将会在相邻两行出现错位的现象,用肉眼看到的图像漂移现象。图4中(a)图像是以VIDEO_Hs信号为标志接收的图像。这就需要FPGA对行(VIDEO_Hs)信号做去抖动处理,但是FPGA接收到的信号只有EL4583分离出来的行信号,无法分辨信号上升沿(或者下降沿)的具体位置。因此FPGA根据需要产生1个行标志信号(H_flag),来取代不稳定的行信号(VIDEO_Hs),然后将行标志信号(H_flag)和场信号(VIDEO_Vs)送给DSP,以便对视频信号做出准确判断。图4中(b)图像是以H_flag信号为标志接收的图像。
图4 以不同标志接收图像的比较
2.2 PPI口的设置
FPGA和DSP之间的数据通信是通过PPI口实现的。PPI(并行外部接口)是半双工形式,具有双向端口,最大可进行16位数据的输入输出。 PPI有5个存储器来控制其操作。其中PPI控制寄存器(PPI_CONTROL)设置了PPI口的操作模式、控制信号极性以及端口的带宽。在本设计中,设置PPI_CONTROL为0x00EC,将PPI的工作模式设置为ITU_656模式,端口的宽度设置为8位,并且仅仅为接收数据的模式。由于每个在DMA总线上的PPI_CLK_initiated事件(即输入或输出操作)都处理16为实体,也就是说如果传输的数据不是16位,则把数据的高位补0凑成16为数据。这种情况下,更有效的办法是把数据打包,即把2个FPGA传输的8位数据合成1个16位的数据,再进行传输,这样有效地利用了资源,提高了传输效率。
2.3 DSP控制功能实现
DSP控制功能的实现过程,首先设置DSP的PF此脚,以便判断PF引脚上的中断信号。定义FPGA与DSP的中断信号的通信是通过PF6和PF7传送的,然后对DMA(直接存储器访问)进行设置,在对视频信号进行处理时,分别处理奇偶场信号,也就是在某一时刻只处理信号的奇数场或者偶数场,以便提高信号的处理速度。这就需要把视频信号的奇偶场分别存储,在设置DMA时,将奇偶场信号数据存储在不同的地址下面。
当DSP通过PF引脚接收到FPGA发送的信号时开始实现其控制功能,具体控制切换的过程为:DSP在接收到PPI口传输的第一个VIDEO_Vs信号时,通过场计数器(VsCount)开始对视频信号进行计数,然后读取VsCount的数值,当VsCount的计数达到切换要求时,DSP将发送一个切换命令给FPGA,即在某一地址下面写一个数值,让FPGA通过DSP_A和DSP_D读取命令完成视频通道的切换。由于在视频通道切换的前后,两个通道的场信号可能会出现不同步的现象,所以在通道切换后的第2场开始搜索图像,图5分别是DSP从第1场和第2场开始接收图像的结果。
图5从不同场开始接收图像的比较
3 系统测试结果
实验对24路视频信号进行切换,并且设定每一路视频信号的切换时间为6场,也就是每经过6场信号的时间就对视频通道进行一次切换。不同视频通道之间切换时的稳定时间也不会超过一场,也就是说,两通道之间在切换之后在一场之内就可以稳定。实验结果表明,该系统能够稳定、可靠地实现多视频通道之间的切换,可以在一套监控设备上添加多个摄像头对不同的场景进行实时监控,这样不仅有效解决了传统监控系统监视目标单一的缺点,而且提高了监控效率,降低了监控成本。
4 结束语
首先简单介绍了整个系统硬件架构和芯片的性能,描述了整个系统的工作流程,然后着重阐述了DSP和FPGA对多视频通道的控制与选通。FPGA整个设计程序是在QuartusⅡ平台上用Verilog硬件描述语言编写,DSP程序在VisualDSP++编译成功,二者都经过多次调试验证。该系统设计已成功应用于多场景监控告警系统中,准确、可靠地切换不同视频通道。
多视频通道切换控 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)