基于DSP的网络视频监控平台的设计
扫描二维码
随时随地手机看文章
引言
视频监控是物联网安防系统的重要组成部分,目前正朝着智能化、数字化、网络化的方向快速发展,广泛应用于高速公路、住宅小区等多种场合。目前的视频监控系统的实现方案主要有以下三种类型:
第一种方案是ARM+专用视频编解码芯片。该方案系统性能稳定、处理速度较快,很容易实现实时处理,但灵活性不够,不便于升级;
第二种方案是FPGA+IP软核。该方案设计周期短,容易改进升级,但视频处理算法占用资源较大,复杂度、体积和功耗都会增加;
第三种方案是采用面向多媒体处理的专用DSP。该方案运行速度较快,而且可以移植多种图像处理算法,所以能够不断对产品性能进行改进升级。为此,本文给出了一种基于DSP芯片DM642的视频监控系统的实现方法。
1 视频处理系统设计方案
基于DM642的网络视频处理系统结构如图1所示。SDRAM通过EMIF总线进行连接;PCI总线通过PCI接口连接;视频解码设备的数据通路通过DM642的Video接口VP[2:0]连接,控制通路通过I2C总线连接;摄像头釆用CCD器件,模拟视频信号输入采用符合工业标准的BNC接口;时钟电路和电源复位电路通过DM642内部的专用接口进行连接。
2 系统硬件设计
2.1 视频采集模块设计
本设计采用视频解码器TVP5150AM1来完成视频图像的A/D转换以及对水平同步和垂直同步等信号的分离。TVP515OAM1是一款超低功耗视频 解码器,设计时,既可以选用48引脚PBGA封装,也可以选用32引脚TQFP封装,典型模式下的操作功耗只有115mW,在低电压模式下的功耗小于1mW。通过TVP515OAM1可将NTSC/PAL/SECAM视频信号转化为数字分量视频信号。
系统中,TVP515OAM1将PAL或NTSC制式的模拟视频信号转换为8位的ITU-RBT.656格式、4:2:2的视频数据流发送到DM642的VP口。TVP515OAM1的视频输出口D[7:0]和DM642的VP口[9:2]相连,由于采用了ITU-RBT.656格式,图像的行同步和场同步信号均嵌入视频数据流内,因而不需要另外连接同步信号线。TVP515OAM1的连接示意图如图2所示。
2.2 网络传输模块设计
网络传输模块主要负责将视频信号处理模块处理后的数据进行网络传输,传输过程符合TCP/IP协议,本系统釆用Intel公司的IntelLXT971ALC作为快速以太网物理层自适应收发器。因为DM642芯片自带网络控制器EMAC,故在硬件上只需连接一个网络收发芯片IntelLXT971ALC即可,并可大大简化开发过程,也因此而成为高速嵌入式网络连接很好的选择。图3所示是DM642的网络接口电路。
2.3 EMIFA与FLASHROM的接口设计
本模块使用了一片FLASH存储器AM29LV033C,该存储器可以映射到CE1的低地址空间。AM29LVO33C芯片的地址线共有22条,但DM642的地址线只有19条,由于两种芯片之间的地址线数量不匹配,所以DM642不能遍历FLASH芯片的所有地址单元。为了解决这一问题,在DM642电路系统中采用CPLD器件,并把FLASH芯片的地址线引脚A[21:19]与CPLD器件的输入/输出引脚相连接,同时通过A:21:19]把FLASH存储区的64个扇区划分为若干个页,每页包括多个扇区。在CPLD内部扩展有控制A:21:19]引脚信号的寄存器,DM642通过操作寄存器端口可以遍历FLASH芯片的所有地址单元,FLASH存储器芯片与DM642.CPLD器件的连接方式如图4所示。
2.4 EMIFA与SDRAM的接口设计
本系统所选用的SDRAM芯片为海力士(Hy-nix)公司生产的HY57V283220T,该存储器的容量为4MX32位,可映射到EMIFA的CEO空间,用于存储实时视频数据、DSP处理的中间计算结果或作为程序存储器。由于DM642的EMIFA的总线宽度为64位,而所选用的SDRAM的数据总线宽度为32位,所以将两片SDRAM并接到EMIFA数据总线。SDRAM的时钟由DM642的TECLKOUT1引脚提供,在初始化EMIFA模块时,可将输入时钟设置为CPU/6的时钟分频,即100MHz,所以,SDRAM的时钟频率为100MHz。图5所示是DM642的SDRAM存储器扩展示意图。
2.5 电源管理模块
系统中的器件需要几种不同的供电电压,DM642内核电压为1.4V.DM642的外部I/O口为3.3V,外围器件为5V。因此,电源模块釆用了两片电源芯片TPS54310来完成由5V〜3.3V和1.4V的转换。整个系统中用到很多高速器件,需要高精度的供电以保证系统正常工作,因此,本设计采用模块化设计,并将电源部分独立出来。有些部分(如CPLD芯片和视频输入输出)甚至采用单独供电,以保证给系统各部分提供稳定可靠的电源。
3 视频监控系统的软件设计
RF5是TI公司推出的DSP软件开发的起步代码参考框架,它以DSP/BIOS为基础,利用其中的数据处理元素和数据通信元素可方便快捷地完成DSP软件的设计与开发。其显著特点是其动态对象创建和线程(任务)挂起功能,因此适合系统比较复杂的应用场合。
另外,TI公司还开发了一套网络开发程序套件(NDK),该套件可将网络协议封装起来作为API以供用户调用,因而可大大提高网络开发的效率。该API函数遵循国际上通用的socket编程标准,在Windows和Unix、Linux上开发的网络代码,稍加改动就可以应用到DSP中去。
3.1 进程管理
RF5框架的最顶层是线程。线程总是顺序的执行所包含的通道,线程可在一个比较高级的级别上把数据组织在一起,并可以与别的线程,设备驱动以及别的类似结构进行通讯。本文的网络视频传输系统创建了三个线程,分别是tskVideoInput、tskEncode和tskNetwork。每个线程都在不断的等待消息,处理数据,并将结果发送给其他的线程,同时有可能还要发送同步消息给其他线程,以实现线程间的通讯,这里使用的机制是SCOM模块。
3.2 系统初始化
系统在进入任务调度之前,需要进行多个模块的初始化,其中首先是处理器初始化,即初始化DSP/BIOS环境,设置DM642cacheDMA传输模块等;其次是RF5模块初始化,包括建立RF5的通道模块,初始化SCOM;另外还要建立视频输入通道等。
3.3 进程调度
进程调度时,其tskVideoInput首先启动,在从视频采集芯片中取得一帧数据后,向tskEncode发送一条信息,信息中包含视频缓冲区的指针。然后开始无限循环以等待tskEncode的反馈信息,最后将进程切换至tskEncode;其主要源代码如下:
tskEncode一开始做无限循环,当其接收到tskVideoInput的信息后,即从ScomMcssage中得到要编码的原始数据帧,并随之调用编码函数进行编码。编码结束后,先向tskVideoInput发送反馈消息,然后向tskNetwork发送一条消息,消息中包含有编码后数据缓冲区的地址和大小。然后等待tskNetwork的反馈信息,最后再将进程切换至tskNetwork;
tskNetwork收到tskEncode的信息之后,即可得到编码数据缓冲区地址和有效数据长度,再进行网络发送,发送完毕向tskEncode发送反馈信息,然后等待tskEncode的信息,再将进程切换至tskVideo-Input;其主要源代码为:
4 结语
本文研究了基于DM642的网络视频处理系统的实现方法。本系统以运行速度块、集成度高的数字媒体处理器TMS320DM642作为核心。从试验结果来看,本系统运行稳定,网络传输流畅,并可满足实时性要求。