一种音视频监视系统的设计和实现

2012-08-14 16:23:57 来源:21IC电子网 点击:1128

摘要:  音视频监控是安全防范系统的重要组成部分,它是一种防范能力较强的综合系统。音视频监控以其直观、准确、及时和信息内容丰富而广泛应用于许多场合。近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,音视频监控技术也有了长足的发展。在音视频技术不断的发展情况下,音视频监控目前可分为两大类数字音视频监控系统和网络监控( 嵌入式音视频监控系统 )。

关键字:  音视频监控,  安全防范系统,  音视频采集器件

音视频监控安全防范系统的重要组成部分,它是一种防范能力较强的综合系统。音视频监控以其直观、准确、及时和信息内容丰富而广泛应用于许多场合。近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,音视频监控技术也有了长足的发展。在音视频技术不断的发展情况下,音视频监控目前可分为两大类:数字音视频监控系统和网络监控( 嵌入式音视频监控系统 )。

针对应用选择适合的器件

多数音视频采集器件都支持单信道,以Y/Cr/Cb数据格式生成源同步数字信号。DSP虽然有能力采集数字音视频信号,也能够执行数字信号处理任务,但通常却仅支持少数几条信道。本设计选择了FPGA,事实证明这对于多信道输入任务和信号处理任务都是良好的替代方案。

图1所示为典型的安全视频监视系统,其中有一个3G/SD/HD/SDI视频接口。在此设计中,摄像头将3G-SDI格式的信息传送到电路板,后者继而收集数据,并且以145.5MHz的最高时钟频率将其转换成10位(Y/Cr/Cb格式)的源同步视频数据(10/20位的接口)。电路板以 96kHz的最高时钟频率处理源同步音频数据。

这里,存储器的容量是512Mb,宽度是32位,所以FPGA必须支持高达2Gb的扩展能力。

对于这个设计来说,FPGA必须支持多达十条数字音视频源同步输入信道(20位源同步Y/Cr/Cb数据格式),并且必须可按照SD/HD数据格式配置。其他要求还包括音视频信号处理和可选压缩算法、带有高级DMA引擎的中央处理单元和一个用来连接VGA显示器或标准型电视机的音视频输出端口等。

要满足这些技术条件,在实现设计时必须考虑几个因素。其中的主要因素是时钟要求分析、初始布局规划、核生成和IP集成、时序约束定义以及布局布线后的时序分析和时序校正。但首先要决定FPGA的选择。

FPGA的选择

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

我们根据几个因素进行选择。器件需要满足预计的I/O要求,并且必须具有相应数量的逻辑单元、适宜的Block RAM尺寸以及一定数量的时钟缓冲器和时钟管理器件,如锁相环(PLL)、数字时钟管理(DcM)模块和乘累加模块。基于这些需求,我们选择了 Virtex-5 XCVSX95T-FF1136.

时钟要求分析

选择FPGA之后,我们开始设计过程,即分析时钟控制要求,然后将信号映射到I/O组或I/O引脚。

对于时钟要求分析,重要的是考虑以下几个因素:FPGA是否具有足够的时钟功能I/O线和全局时钟I/O线?是否有足够的PLL、DCM和全局时钟缓冲器?全局时钟I/O缓冲器是否支持所要求的最高频率?

本设计的时钟控制要求包括:一个以150MHz-200MHz频率运行的全局系统时钟,具有若干PLL供所有内部逻辑用来进行处理;一个以 250MHz频率运行的全局时钟,具有PLL/DCM的PCI Express链接;一个以250MHz频率运行的全局时钟缓冲器(带有PLL和DCM)用于以太网MAC;以及一个200MHz的时钟(由 PLL/DCM生成),用于I/O模块中的逐位去歪斜等。

我们总共需要4~6个全局时钟缓冲器和16个局部时钟缓冲器。FPGA XCVSX95T-FF1136提供每组20个全局时钟输入引脚和4个时钟功能I/O.也可将I/O组的时钟功能引脚直接连接到区域缓冲器或I/O缓冲器,并且将其用于特定区域或相邻区域。另外,各GTP/MGT还有一个参考时钟输入引脚。

初始布局规划

Virtex-5 FPGA共有18个I/O组,可以将各种输入/输出对映射到这些I/O组。有几个I/O组支持20对输入/输出或10个全局时钟。其他I/O组则大多支持 40对输入/输出,每对输入/输出上有4个输入时钟功能引脚和8个输出时钟功能引脚。

同时,上下两牛个FPGA包括三个时钟控制模块(CMT),即一个PLL和两个DCM.对于需要上下两半个器件中的PLL的所有全局时钟信号,我们必须确保予以妥善映射,以使设计具有从全局时钟输入缓冲器到PLL的直接连接。然后我们使用剩下的14个I/O组,这些组支持40条I/O线,是单端/差分模式。每个组由4个单端时钟功能引脚和8个差分时钟功能引脚组成。接下来可以将时钟功能引脚映射或连接到区域时钟缓冲器或I/O时钟缓冲器。

一般情况下,可以使用这些时钟功能引脚和区域缓冲器来映射源同步时钟输入。区域缓冲器具有较低歪斜度,可以访问三个区域(一个区域缓冲器所在的区域,以及其上和其下各一个区域)。但对于源同步数据的组选择,我们倾向于只使用一个I/O组。如果需要其他IIO,则最好将I/O组用于已事先映射到相邻组的数据信号。

设计的初始布局规划按照几个步骤进行。首先将系统时钟放在上半部,然后将自动采集(可选)时钟放在下半部。我们锁定了每半部分的CMT,以满足 I/O组的3/4要求。这样映射能确保每半部分都留有两个PLL/DCM(CMT)可用于PCI Express和千兆位以太网的MAC(SGMII)功能。

再把同步数据映射到含有区域时钟的组,所以把10个音视频信道输入映射到剩下的I/O组。每条视频信道由20条数据线、3个控制信号和3个视频时钟输入组成。同时,每条音频信道由4个数据信号、3个控制信号和1个音频时钟信号组成。这样就满足了32个信号至少使用两个时钟功能引脚的要求。

对于本设计,10个音视频信道使用10个I/O组。我们将视频时钟和音频时钟映射到了时钟功能引脚,以确保有效使用区域时钟缓冲器和I/O时钟缓冲器。根据PCB的要求,我们为音视频信道选择了第5、 6、 13、 17、 18、 19、 20、 22和25组。

对于DDR存储器,设计支持1条32位的数据总线、14条地址线和若干条控制线。我们需要85~90个信号来映射DDR存储器接口。根据PCB的布局,我们使用了I/O组11、23和15来映射DDR的全部I/0信号。由于DDR存储器按照系统时钟工作,所以我们选择将DDR生成的读数据DQS信号映射到具有时钟功能的I/O线。

核生成与IP集成

Virtex-5支持可以用CORE Generator工具生成的时钟控制模块的各种配置。其中包括若干滤波器时钟抖动PLL、一个具有滤波器时钟抖动功能的PLL-DCM对、一个具有输出双倍数据速率(ODDR)的PLL-DCM对或DCM、一个标准型相移时钟DCM和若干动态时钟切换PLL.

要生成PLL,首先需要了解输入是单端的还是差分的。然后,必须确定时钟抖动是否适宜,以及是否使用了全局缓冲器来缓冲所有输出。

为了使用ODDR触发器在源同步输出中驱动时钟,我们实现了一个DCM,用于驱动ODDR触发器来实现随路时钟控制。此DCM与我们用来进行内部时钟控制的DCM并行运行。

在生成PCIExpress核时,我们必须确保参考时钟具有与PC主板上的PCIExpress插槽输出相同的性能(即100MHz)。另外,我们还需要确定该核需要多少基址寄存器(BAR),以及BAR是存储器映射还是I/O映射。我们为地址解码使用了BAR监视器,这可以帮助生成BAR命中点。

在设计PCIExpress与系统局部总线之间的桥接器时,我们使用了BAR来访问存储器映射或I/O映射的寄存器或BlockRAM,确保该核及总线能正确访问所有寄存器或BlockRAM.

如果上述任何点未命中,则主机PC在尝试传递和执行读事务时就不会得到任何响应。主机PC会进入未知的状态,或者产生无法恢复的错误。

IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为"网协",也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP协议就可以与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为5类。另外,IP还有进入防护,知识产权,指针寄存器等含义。

对于IP集成,必须为各FPGA分别使用一个时钟复位模块。异步复位必须与每个时钟都同步,无论是全局时钟还是区域时钟。就内部而言,复位信号是相对于特定的时钟而异步有效置位和同步无效置位,而其输出则施加到各时钟所属的特定模块。需要确保已经将所有全局输入时钟连接到用CoreGen生成的 PLL/DCM核。

将区域时钟连接到BUFR/BUFIO.另外,为了避免布局布线工具使用不必要的布线资源,只能仅生成必要的复位信号。需要确保将PLL/DCM的锁存条件传送给外部引脚或配置寄存器。示例中,我们仅将200MHz系统时钟的PLL锁存器连接到了I/O引脚。

因为我们是在用高速源同步输入和输出进行设计,所以Virtex-5的逐位去歪斜功能帮助我们在输入和输出级满足建立和保持要求,逐位去歪斜功能内置于所有I/O模块(10DELAY基元)。对于源同步输入,源同步时钟使用BUFIO或BUFR, 因此会引入附加延迟。为了补偿此延迟,我们通过一个IODELAY实例来驱动数据和时钟输入,该实例是按照具有已知延迟计数的输入延迟模式配置的。我们通过修改延迟计数值来帮助满足输入级的时序要求。

输出级的情况与此相似。因为同步时钟信号是随数据传送,我们需要确保数据和时钟信号的传送方式能满足FPGA或ASIC在另一端的建立和保持要求。对于时钟和数据输出,我们都使用了按照具有已知延迟计数值的输出延迟模式配置的IODELAY实例。

时序考虑事项和约束定义

生成并实现IP之后,下一步是执行时序。我们对所有输入时钟的周期、抖动和输入偏移延迟进行了约束,并且设置了相对于源时钟的所有输出延迟和输入对输出的延迟。然后在用户约束文件(UCF)中建立了时序和布局约束。

我们将所有输入时钟约束为特定频率,并且用以下UCF代码定义了抖动输入:

NET"i_clk_200_s"TNM_NET="IN_200_CLKGRP";TIMESPEC"IN_200_CLKGRP"=PERIOD5nsHIGH50%INPUT_JITTER0.1ns

对于源同步数据,在SDR的情况下,我们可以将输入时钟设置为0度相移或180度相移,而在DDR的情况下可以将其设置为90度相移。图2所示为时钟在90度相移时的源同步DDR数据输入时序。

图2所示为时钟在90度相移时的源同步DDR数据输入时序

对于PCIExpress核和千兆位以太网MAC核上的时序约束,我们按照CORE Generator示例中的定义对Block RAM和PLL/DCM使用了所有时序和布局约束。

因为许多Virtex-5设计都使用多个异步时钟,所以我们必须在设计中定义伪通路,以使这些时钟不受影响。

布局布线后的时序分析和时序校正

对设计进行布局布线后,我们运行了静态时序分析(STA)和时序仿真,以了解是否存在其他时序错误。对于STA,我们确保时序报告涵盖了有约束和无约束的全部通路。通过使用STA报告,我们可以鉴定输入/输出时序和内部系统时序。

事实证明,基于Virtex-5的FPGA非常适合我们的视频监视系统的要求。区域时钟缓冲器和I/O时钟缓冲器使我们能够支持多信道源同步音视频输入。而且,该器件的PCI Express和千兆位以太网MAc硬宏为我们提供了进行远程监视所需的全球连接能力。在未来的设计工作中,我们将可依靠前期规划来确保有效使用特定FPGA的可用资源,设计出具有附加价值的产品。

本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
Big-Bit 商务网

请使用微信扫码登陆

x
凌鸥学园天地 广告