网络摄像机的解决方案有多种选择,但是市场主流产品一般选择两种方案:(1)采用CPU+ASIC。(2)采用双CPU结构,即一个嵌入式CPU和一个专用信号处理芯片DSP。受专用DSP芯片处理能力的限制,现有的嵌入式网络摄像机中使用的视频处理算法基本是H.263以下的标准。
本文介绍一种基于TMS320DM642 DSP的网络摄像机设计方案。其操作系统、通信协议、网络协议、音视频处理软件均在一颗TMS320DM642上实现,降低了开发的难度。
图1 网络摄像机硬件原理图
图2 视频接口原理图
TMS320DM642芯片简介
TI公司的TMS320DM642 (以下简称DM642)是一款专门面向多媒体应用的专用DSP。该DSP时钟高达600MHz,8个并行运算单元,处理能力达4800MIPS;采用二级缓存结构;具有64位外接存储器接口;兼容IEEE-1149.1(JTAG)边界扫描;为了面向多媒体应用,还集成了3个可配置的视频端口、面向音频应用的McASP(Multi Channel Audio Serial Port)、10/100Mb/s的以太网MAC等外设。鉴于DM642的上述优点,本网络摄像机系统就以DM642为核心,完成音视频信号的实时采集、压缩及传输功能。
硬件设计
系统电路组成如图1所示。从摄像机输入的视频信号和从麦克风输入的音频信号经采集、A/D转换为数字信号后送入DSP。DSP在信源处对音视频信号进行压缩编码和合流,然后通过局域网或因特网将数据传输给视频监控中心。监控中心可同时监视多个现场,接收或发送报警信号,并根据需要通过异步串行总线RS-485实时控制云台,调整摄像头的方向和位置。
视频采集电路
本系统采用的视频解码芯片是Philips 公司的SAA7115。从模拟视频输入口输入的全电视信号在SAA7115内部经过钳位、抗混叠滤波、A/D转换、YUV分离电路之后,在YUV到YCrCb的转换电路中转换成BT.656视频数据流,输入到压缩核心单元DM642中。DM642的3个视频口VP0、VP1、VP2与视频编解码芯片相接。
在本系统中,只有一路视频输入,故VP1、VP2端口未用,VP0通道配置为8位BT.656视频输入口。视频数据的行/场同步信号包含在BT.656数字视频数据流的EAV(end of active video)和SAV(start of active video)时基信号中,视频口只需视频采样时钟和采样使能信号即可。SAA7115内部寄存器参数的配置和状态的读出通过I2C总线进行。视频接口的原理如图2所示。
音频输入/输出电路
本系统采用TI的高性能立体声编解码器TLV320AIC23(以下简称AIC23)实现音频信号的采集和播放。AIC23与DM642 的I/O电压兼容,可以实现与DM642的McASP接口无缝连接。
在本系统中,AIC23工作于主模式,左右声道的采样字宽均为16bit。数据接口为DSP mode模式。通过I2C总线设置内部寄存器的工作参数和反馈状态信息。
因为网络传输的固有特点,音频数据和视频数据从网络摄像机端到达监控中心不可能是均匀的,如果网络摄像机端不做任何纠正处理,则很难保证音视频的同步输出。为了实现音频和视频的采样同步,本文利用锁相环PLL1708,从SAA7115的LLC引脚输出27MHz时钟,经PLL1708产生AIC23的主时钟MCLK。由于音视频采样信号采用同一个时钟源,就不会出现音视频不同步的问题。PLL1708的SCKO3引脚输出默认时钟频率18.433MHz,作为AIC23的输入主时钟MCLK。AIC23内部采用的时钟可通过设置寄存器由主时钟MCLK分频得到。
以太网接口电路
本系统用LXT971作为快速以太网物理层自适应收发器。由于LXT971支持IEEE 802.3标准,提供MII(media independent interface)接口,可以支持MAC,而DM642内部正好集成有以太网媒体存取控制器,所以LXT971可以和DM642实现无缝连接。连接电路如图3所示,其中BH1102为1:1的隔离变压器。从DM642传输过来的数据通过LXT971转换为以太网物理层能接收的数据后,通过RJ-45头传输到因特网。
存储器扩展电路
DM642内部有16KB的一级程序缓存,16KB的一级数据缓存和256KB的程序数据共享二级缓存。但这对于直接处理图像数据是不够的,因此扩展了两片32MB的SDRAM来存放原始图像数据,4 MB的FLASH来存放应用程序。二者都映射到DM642的外部数据空间。
CPLD电路
本系统采用的CPLD是Xilinx公司的XC9572XL。该芯片具有72个宏单元,1600个逻辑门; 5ns pin-to-pin的逻辑延迟; 178MHz的系统频率。CPLD的功能主要是:为FLASH 、UART和CPLD 异步寄存器空间作地址解码;为FLASH产生3bit的页选信号;监控来自UART的电平中断信号,转换为边沿触发中断信号送给DSP。
RS-485接口电路
该接口连接到摄像机的云台,用来控制云台的转动,调整摄像头的方向和位置。RS-485总线抗干扰能力强,能实现多站点远距离通信。本压缩卡拟采用UART芯片SC16C550和MAXIM公司的MAX487E来实现RS-485信号的传输。SC16C550主要功能是把DSP传送过来的并行信号转换为串行信号。SC16C550内部的接收器和发送器各有16B的FIFO,能处理的串行信号的速率高达3Mbps。MAX487E是RS-485总线接口芯片,可以工作在全双工、半双工模式。传输速率可达2.5Mbps。
电源电路
整个压缩卡用一个5V的直流变压器供电。由这个5V的电压器产生1.4V和3.3V电压分别给DSP内核和 I/O端口供电,产生另外一个3.3V给视频编解码及其他芯片供电。注意这两个3.3V电源要分开设计,以免电源噪声相互干扰。
由于DSP需要两种电压,所以要考虑供电系统的配合问题。加电过程中,应当保证内核电源先上电,最晚也应当与I/O电源一起加。关闭电源时,先关闭内核电源,再关闭I/O电源。讲究供电次序的原因在于:如果仅CPU内核获得供电,周边I/O没有供电,对芯片不会产生损害,只是没有输入/输出能力而已。如果反过来,周边I/O得到供电而CPU内核没有加电,那么芯片缓冲/驱动部分的晶体管将在一个未知状态下工作,这是非常危险的。
为了解决这个问题,本文采用了开关电源芯片TPS54310PWP,把1.4V模块的电源输出有效引脚PG(power good)连接到3.3V模块的允许电压输入引脚EN。这样,只有当1.4V电压有效之后,3.3V电压才开始上电,这就保证了DM642的内核电压先于I/O电压上电。
软件设计
在本系统中,图像压缩采用H.264标准。H.264具有很高的编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。音频编解码采用G.729算法。网络传输采用RTP/RTCP协议以及组播方式,这样可以保证传送的质量。在操作系统方面,采用基于DSP/BIOS 的TI 参考架构5(RF5)。基于RF5操作系统的应用程序模块主要包括:音视频采集模块、压缩编码模块、UART控制模块和网络传输模块。
结语
本方案能在一颗DM642芯片上实现网络摄像机的几乎全部功能,能对音视频进行实时的编解码和实时的网络传输。图像质量高、开发难度低、易于升级,是一种比较理想的网络摄像机解决方案,可广泛应用于视频监控系统中。