基于DM8168和CPCI接口的音视频处理板卡设计
2018-01-23邵春伟王小龙
邵春伟,王小龙,薛 培
(中国电子科技集团公司第五十八研究所,江苏无锡 214072)
1 引言
随着集成电路技术、电子技术的飞速发展,图像处理、语音处理等技术也日新月异,这些新技术在工业领域中得到了越来越广泛的应用。在一些工业场合,需要对现场环境的视频、音频进行实时的采集、存储,同时又能够进行实时传输,其中,支持单路1080P 30帧视频采集的DM368平台得到了广泛应用。但由于多路音视频信号的数据量非常大,不便于进行采集、存储和传输;经过压缩之后的数据虽然便于存储,但是不便于传输。随着技术的进步,支持多路数据采集的DM8168平台、高压缩比及高质量的音视频数字化压缩算法应运而生,在保证音视频质量的基础上,将数据量巨大的音视频数据进行压缩后,非常便于存储和传输。本文采用DM8168平台,支持两路视频数据采集、H.264[1]编码、存储和传输,并选用CPCI[2]连接器,保证其可靠性及可维护性,满足现代工业需求。
2 系统组成
本文设计的音视频处理板卡以TI公司的达芬奇[3]处理芯片DM8168为系统核心,可同时进行全高清H.264编解码、图像智能识别应用。板卡主要由高清和标清视频采集、音频采集回放、DDR3模块、千兆网络模块、高清和标清视频回放、CPCI接口、系统电源等6个模块组成,总体结构如图1所示。高清和标清视频采集模块负责采集外部的HD-SDI高清视频信号和CVBS视频信号,并转换成BT656/BT1120数字视频信号。DM8168集成了视频编解码功能,可将数字视频信号进行压缩,同时也可将压缩后的视频码流进行解压缩处理。音频采集回放模块负责对音频信号进行采集回放。千兆网口可以用于发送和接收经板卡压缩后的音视频码流。高清和标清视频回放模块负责回放解压后的视频信号。CPCI接口集成了音视频处理板卡上需要使用的信号,并连接到外部接插件上。系统电源为整个板卡供电,保证各模块正常工作。
图1 音视频处理板卡硬件框图
3 音视频处理板卡硬件设计
3.1 视频采集、回放硬件设计
由图2中可以看出,视频采集部分主要由HD-SDI视频解码芯片 GV7601、CVBS解码芯片TVP5150以及DM8168的2个Video Port端口组成。GV7601的作用是将HD-SDI高清信号转换成BT1120数字视频信号,该信号由D0~D15、PCLK共17个信号组成,并且内嵌了数字视频同步信号。TVP5150的作用是将CVBS视频信号转换成BT656数字视频信号,该信号由D0~D7、PCLK共9个信号组成,也内嵌了数字视频同步信号。BT1120和BT656数字视频信号可以被DM8168[4]的Video Port端口识别并采集。
图2 视频采集模块设计
DM8168芯片内部具备CVBS[5]标清输出信号,可以使用该信号作为标清的视频回放输出。由于其不具备HD-SDI视频输出功能,因此使用DM8168芯片的VOUT[0]数字视频输出接口和GV7600配合实现该功能,具体实现如图3所示。
图3 HD-SDI视频回放模块设计
DM8168的VOUT[0]数字视频接口支持最大165 MHz的16/24/32 bit的RGB/YCbCr数字视频输出,可以直接连接到GV7600相应输入接口来实现HD-SDI视频输出。
芯片配置说明:HD-SDI视频输入输出部分使用的GV7601、GV7600一般只需要外部电平配置正确即可正常工作,自动实现高清信号识别。TVP5150正常工作前,需要使用I2C总线对其进行工作模式的初始化。
3.2 音频、网络、DDR3存储器硬件设计
音频采集回放部分使用了一片TI公司的TLV320AIC3106音频专用芯片,该芯片通过I2S接口和DM8168连接,本设计中使用了TLV320AIC3106的音频输入和输出接口各1路。网络接口则使用了2片ET1011C网络芯片,该芯片支持10/100/1000 Mbit的传输速度。板上集成了千兆网络变压器,通过2路千兆网络,支持高带宽数据的网络传输。DM8168具备2组32位的内存控制总线,它可以寻址的总地址为2GB,支持的DDR2/DDR3位宽可以是16位或32位。该板卡上共搭载了4片16位宽的DDR3颗粒,每片颗粒容量达到了256 MB,整个系统内存为1 GB。DDR3的部分电路如图4所示。
图4 DDR3存储器部分电路
3.3 CPCI接口硬件设计
CPCI(Compact PCI)是国际工业计算机制造者联合会提出的一种总线接口标准。在电气特性上,CPCI总线以PCI电气规范为基础,同时在接口等方面做了重大改进。在机械结构上,CPCI总线结构使用了欧卡连接器和标准3U、6U板卡尺寸,由于其良好的抗震性和通风性且支持热插拔,广泛应用于雷达、飞行器等空间探测领域。目前工控设备上所使用的CPCI接口板卡一般有3U和6U两种规格,按插卡方式又可分为前插板和后插板。本文讨论的核心就是3U规格的CPCI接口后插板。
本设计中将板卡所需要和外部设备连接的信号都集中到CPCI接口中,涵盖的信号包括:PCIe信号、HD-SDI视频输入/输出信号、CVBS视频输入/输出信号、音频输入/输出信号、千兆以太网信号、SATA信号、USB信号、电源信号等。CPCI接口使用了2个CPCI插座,将所需要引出的信号合理分布于这2个CPCI插座中。同时为了满足3U规格板卡的要求,PCB尺寸也按照3U的板卡规格来设计。
在PCB布板过程中,对于PCIe信号、SATA信号、千兆以太网、USB信号等高速差分信号均做了差分走线,并做了等长处理和阻抗控制。
3.4 系统电源硬件设计
音视频处理板正常工作时,DM8168以及外围芯片需要 3.3 V、1.0 V、0.9 V、1.8 V、1.5 V 等多种直流电源,然而该板卡的输入电源是12 V直流电源,因此板子上需要设计多路二次电源,需要提供的二次电源及电流要求如表1所示。
本设计中,使用了TI公司的TPS54620RGYR、TPS65001、TPS40041DRBR、CSD86330Q3D 等电源芯片来进行设计。对于DDR3芯片所需要的参考电压,则用专用参考电压芯片LP2996M来设计。
表1 板卡二次电源列表
3.5 PCB布局及设计
板卡PCB布局如图5所示。
图5 板卡PCB布局图
音视频处理板实物图如图6所示。
4 音视频处理板卡软件设计
DM8168作为达芬奇系列芯片,内部具有ARM处理器和DSP处理器,因此其软件设计包括了ARM端的Linux[6]嵌入式操作系统和DSP端的算法程序。这些处理器通过共享内存进行通讯和数据共享。TI公司针对DM8168芯片开发了专用的DVR RDK软件开发包。该板卡的软件设计也是基于DVR RDK软件开发包来进行的。
图6 音视频处理板实物图
4.1 DM8168软件架构
DVR RDK是一个多通道的视频应用软件包,它的应用包括:VPSS M3用来处理视频采集、显示、隔行处理、去隔行等;Video M3用来处理H.264、MPEG4、MJPEG编码/解码工作;DSP用来实现视频分析等私有算法;ARM核运行Linux系统,用于系统调度、外部接口管理。本系统软件设计时,采用MCFW(Multichannel Framework)软件架构来实现多核之间的通信和分工合作。整体软件架构如图7所示。
图7 MCFW软件架构图
4.2 音视频数据软件处理过程
由于音视频数据量大,对数据的存储和实时性传输带来困难,因此需要将音视频数据进行压缩后才能进行存储和传输。
对于视频数据而言,DM8168采用了H.264的视频压缩算法,它在系统结构、运动估计和运动补偿、变换和量化、熵编码等部分都有很大的改进,具有很高的编码压缩率和适应性[8]。本系统中视频数据的H.264编解码是在HDVICP和视频控制器的硬件基础上实现的,在HDVICP上实现了H.264编解码的核心部分。
音频数据的处理则是通过Linux驱动的ALSA音频框架实现的,ALSA包含内核驱动集合、API库和工具,通过内核驱动[8]可以对TLV320AIC3106音频芯片进行支持。音频数据的编解码都采用了G.711压缩/解压缩算法,该算法可减小语音信号的数据量,降低网络占用的带宽。语音采集模块采集到的语音信号为16位的PCM数据,采样率是8 kHz,数据量为128 kbps,采用G.711标准编解码,可以降低50%的数据量。
由于该设计中要求2个音视频处理板卡之间能进行双向音视频通讯,故采用TCP/IP网络通讯协议进行数据通讯。其过程为将一侧的音视频信号用H.264[9]和G.711进行压缩编码后,码流通过网络TCP/IP协议传输到另一侧板卡上进行解压缩并进行回放处理。网络编程使用了TCP/IP套接字编程来实现,具体流程图如图8所示。
图8 TCP客户端/服务器通讯过程
5 结论
本文介绍了基于DM8168处理器和CPCI接口的音视频处理板卡的设计过程,详细介绍了板卡中各个硬件模块、软件架构的设计细节。首先对视频输入输出接口、CPCI接口、DDR3电路、二次电源等硬件部分的设计进行了详细介绍,并给出了部分硬件框图和原理图。另外本文还结合板卡应用场景对软件架构、音视频数据软件处理过程进行了介绍。通过实际使用和验证,该板卡满足整机系统所需要的两路视频数据采集、H.264编码、存储和千兆网TCP/IP网络传输等各项技术指标要求。
[1]秦岭,王煜坚,李东新,等.视频编码标准H.264的主要技术特点及其应用前景[J].微计算机应用,2004,25(4):449-455.
[2]韩朝辉,孟令军,文波.基于CPCI的信号采集板卡设计[J].电子器件,2016,39(4):851-852.
[3]赵勇,袁誉乐,丁锐.DaVinci技术原理与应用指南[M].南京:东南大学出版社,2008.
[4]Texas Instruments Incorporated.DM816X AM389X VPSS video driveruserguide PSP 04.00.00.12[EB/OL].[2013-07-24].http://processors.wiki.ti.com/index.php?oldid=79736.
[5]Texas Instruments Incorporated.TMS320DM816x DaVinci video processors[EB/OL].[2013-07-11].http://www.ti.com/lit/ds/symlink/tms320dm8168.pdf.
[6]龚舟.基于Linux的通用视频音频采集系统的设计与实现[J].电脑知识与技术,2008,3(22):1-6.
[7]赵玉峰.基于嵌入式Linux的实时视频通信的实现[J].电视技术,2012,36(19):189-192.
[8]宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008:276-313,387-418.
[9]余兆明.图像编码标准H.264技术[M].北京:人民邮电出版社,2006.