摘要:采用TI公司的TMS320DM642型数字媒体数字信号处理器(DSP)设计多路音/视频采集处理系统,实现实时处理4路模拟视频和音频输入、1路模拟/数字视频和l路模拟音频信号输出的功能,该系统可适应PAL/NTSC标准复合视频CVBS或分量视频Y/C格式的模拟信号和标准麦克风或立体声音频模拟输入,具有PAL/NTSC标准S端子或数字RCB模拟/数字信号输出和标准立体声音频模拟输出。并给出软/硬件设计原理和电路。
关键词:TMS320DM642;图像采集处理;PAL/NTSC制式;数字信号处理器
l 引言
当前,在数字图像处理中,由于数据量大、算法难度高,因此实时性成为技术难点之一。如果采用专用电路实现,虽然实时性得到保证,但系统的灵活度大大降低。因此,寻求一种高速通用数字信号处理系统成为当务之急。
II公司推出的TMS320DM642(以下简称DM642)型数字信号处理器可实时处理4路模拟视频和音频输入、l路模拟/数字视频和1路模拟音频信号输出,适应PAL/NTSC标准复合视频CVBS或分量视频Y/C格式的模拟信号输入,可适应PAL/NTSC标准S端子或数字RGB模拟/数字信号输出,可适应标准麦克风或立体声音频模拟输入及标准立体声音频模拟输出,具有对多路采集数据进行实时处理和分析的功能,可实现数据和图像叠加显示。
2 DM642简介
DM642型数字信号处理器可采用500 MHz或600 MHz的工作频率,每秒最多可完成4.8 G次操作,具备在线编程功能,带有的丰富外围接口可以与多种存储器相连,可以直接与网络连接,是高速图像处理的优选器件。
DM642的CPU采用第二代VelociTI.2内核结构,含有双数据通路、8个运算单元,每周期可执行8条32-bit指令,支持4个16-bit和8个8-bit连乘加MAC指令,有64个寄存器,取数/存数的数据通道为64-bit。
DM642采用带2级存储器的完全存储器分层体系结构,2级存储器中的Cache控制器可以自动完成分层存储器体系结构的管理和调度,外部存储器访问和片上外设的访问通过EDMA完成。
DM642有3个视频输入输出口和多路音频信号的输入输出串口。外部存储器接口EMIF提供了64-bit宽度的外总线数据接口,支持与各种器件的无胶合接口。DM642还具有主机并行接口、外围设备互联口、多通道缓存串口和通用I/O端口。
3 系统功能与硬件电路设计
3.1 系统总体结构
系统总体结构如图1所示,图像采集和预处理单元主要完成图像信号的输入,具有多路信号复用功能,对输入的模拟视频信号进行数字化及格式的转变。FPGA控制系统的逻辑和图像数据的流向,并且可对DM642输出的图像数据进行加工,进而输出到图像编码单元。图像处理单元采用DM642进行高速数据处理和分析。图像编码单元对图像数据进行编码,形成标准的模拟视频信号,可以直接输出到显示设备上。
对于4路视频和4路音频信号,CPU在1个时刻只能处理1路数据,DM642片外位于EMIF的CEO地址空间扩展了2个4 Mx32 bit的SDRAM,可分别存放图像采集数据和图像处理数据,以提高数据采集和存储速度。
3.2 视频口接口设计
DM642有3个视频口,每个都可以配置为上下2个通道,但2个通道必须同时为视频输入口或输出口。结合实际应用,DM642带了4路模拟视频输入(cif格式,分辨率为352×288)和1路模拟视频输出。
VPO A通道配置为8-bit BT.656视频输入或输出口,接第一通道视频输入或视频输出。VPl A通道配置为8-bit BT.656视频输入口,接第二通道视频输入。VP2 A和B通道配置为2个8-bit BT.656视频输入口,接第三和第四通道视频输入。VP0和VPI的B通道配置为MCASP,接4个音频Codec。
TVP5150型视频编码器支持PAL/NTSC、CVBS或Y/C模拟视频输入,8-bit BT.656数字视频数据流输出。SAA7105型视频解码器支持8-bit BT.656数字视频数据流输入,PAL/NTSC CVBS或Y/C模拟视频输出。通过DM642的I2C总线对视频编/解码器的内部寄存器进行编程,实现不同的输入输出。DM642和TVP5150的对应引脚功能见表1。
视频编解码器的参数通过I2C总线配置,由于TVP5150的I2C从地址只有2种选择,因此需要用CBT3257型2选l转换开关来切换。
作为视频输入口时,视频数据的行/场同步又包含BT.656数字视频数据流中的EAV和SAV时基信号控制,视频口只需视频采样时钟和采样使能信号(控制采样起始),TVP5150用系统时钟SCLK提供采样时钟,用可编程引脚GPCL提供采样使能。作为视频输出口时,视频口要为SAA7105提供时钟和行/场同步信号。
在视频输出电路中,J1、J2、J3可配置成RGB输出信号,J2、J3可连接S端子,J1、J2、J3、J4、J5可直接输出到电脑的显示器上。具体接口电路如图2和图3所示。DM642与SAA7105的对应引脚功能见表2所列。
3.3 多通道音频串口的接口设计
笔者采用了4路模拟音频输入和1路模拟音频输出,采用TLV320AIC23B型音频编/解码器,它支持麦克风/立体声模拟输入/输出和数字音频数据流输出/输入。
PLLl708型可编程视频/音频同步数字锁相环给McASP和TLV320AIC23B提供时钟信号,SCK02端口接McASP的AHCLKX,SCK03端口接TLV320AIC23B的主时钟MCLK。PLLl708的时钟输入为27 MHz。DM642与TLV320AIC23B的对应引脚功能见表3。
AIC23B数据口配置为从,McASP的8个收/发引脚配置为4收/4发,分别接4个编解码器的Dout/Din。McASP的接收帧同步配置为输出,同时给4个编解码器的LRCout。McASP的发送帧同步配置为输出,同时给4个编解码器的LRCin。McASP的发送位时钟ACLKX配置为输出(由AHCLKX分频),同时给4个编解码器的BCLK。AIC23B的控制口配置为I2C,由CBT3257型2选1开关来切换。具体电路如图4所示。
另外,给DM642供电时应注意CPU的上电次序:CHU内核应先于I/O上电,后于I/O掉电,CPU内核与I/0应尽可能同时供电,二者的时差不能太大(<1 s),否则会影响器件的寿命或损坏器件。用可编程时钟电路可很好地解决整个电路的时钟问题。
4 系统软件设计
系统软件包括系统初始化设置、图像处理算法和屏幕叠加程序,具体软件流程如图5所示。
4.1 系统初始化设置程序
对整个硬件系统进行初始化,其中包括DM642的上电初始化、DM642的寄存器和系统配置引脚的设置、利用I2C总线对TVP5150和SAA7105进行寄存器设置。
DM642的引导模式为从EMIFA引导,把引脚AEA[22:21]设置为ll,其他配置引脚的初始化设置为默认值。外围配置寄存器(PERCFG)用于对控制视频口、多通道缓冲串口、多通道音频串口进行配置,初始化为0x0000 0079h。设备状态寄存器(DEVS-TAT)用于控制电路各个外围设备的状态:EMAC、HPI、PCI、CPU时钟频率选择模式、电路引导模式、EMIFA输入时钟的选择,初始化为0x0000 005Ch。
4.2 图像处理程序
对采集的图像数据进行处理和分析,对视频流进行格式转换,可以是复合视频或分量视频,也可以压缩存储以便于此后的浏览。
4.3 屏幕叠加程序
把FPGA内部FIFO中的数据和视频口输出的数据混和完成屏幕显示的功能。屏幕叠加有几种方式,背景为透明的、半透明的、不透明的,叠加的位置也可任意设置,只需修改叠加图像的起始点坐标,把相应的图像信息加到对应的视频图像队列中。
4.4 视/音频信号采集存储与图像数据读取程序
对于4路视频信号和4路音频信号,CPU在1个时刻只能处理1路数据,因此在DM642片外扩展了2个4Mx32bit的SDRAM,在系统工作的任一时刻,一个用于图像的采集,采集部分向该存储区写图像数据,另一个用于外部对图像数据的读取,DSP可以读取该存储区中的图像数据。双SDRAM结构的重要特点是DSP对存储区的数据操作是来回切换的。当A/D转换数据写满SDRAM-l时,FPGA会向DSP发出中断信号,此时,在DSP读取SDRAM-l中数据的同时,A/D转换数据写入SDRAM-2,当SDRAM-2中的数据写满时,FPGA向DSP发出中断信号,此时DSP读取SDRAM-2中的数据,同时,A/D转换数据写入SDRAM-l,如此交替,实现数据的写入与读取同时进行。由于DSP读取SDRAM中数据的速度远远大于A/D转换写入数据的速度,因而允许采集与外部访问同时进行,采用2个存储区操作的乒乓式切换满足数据实时交换的要求。
由于DSP对存储区的数据操作是来回切换的,因此需要采用中断来实现取数。具体实现是在DSP内部设置中断,这里选用INT6作为中断触发引脚。当外部中断信号到来时,则相应中断服务程序执行中断响应。
5 结束语
本系统能够同时处理4路CIF格式的数字视频,并且可以动态切换,总采样速率可达100帧/秒,每路速率为25帧/秒,可以完全保证图像实时采集。
对图像的叠加有多种方法,叠加的位置也可通过修改叠加图像的起始点坐标来进行任意设置。DM642还具有网络接口,可以对输出的视频信号进行压缩并由网络实时传输。
基于DM642的图像采集处理系统能广泛应用于机顶盒、IP可视电话、网络视频会议等领域。