摘要:介绍了基于PCI专用芯片S5933和DSP芯片TMS320C32图像处理平台的硬件设计。该平台使用专用视频输入处理芯片SAA7113和CPLD实现了高速连续的视频帧采集,满足了后继图像处理的需要。该平台既可以作为视频图像采集使用,也可以进行视频压缩、匹配等图像处理的算法验证,并具有使用灵活的特点。
关键词:数字信号处理芯片 视频采集 图像处理
随着计算机、多媒体和数据通信技术的高速发展,数字图像技术近年来得到了极大的重视和长足的发展,并在科学研究、工业生产、医疗卫生、教育、娱乐、管理和通信等方面取得了广泛的应用。同时,人们对计算机视频应用的要求也越来越高,从而使得高速、便捷、智能化的高性能数字图像处理设备成为未来视频设备的发展方向,这必然要求产生相适应的新理论、新方法和新算法。为了在利用这些新技术的过程中检验其可行性,研制了基于PCI总线和DSP芯片的图像处理平台,该图像处理平台是利用PHILIPS公司的视频输入处理器SAA7113、TI公司的TMS320C32高速浮点DSP和AMCC公司的S5933PCI总线接口芯片搭建的。利用高速的PCI总线和功能强大的DSP芯片,可以进行视频压缩、图像检测、视觉定位等算法研究。
1 系统功能概述
根据实际应用需要,该系统的主要功能有:
(1)可以在不同输入制式PAL和NTSC之间进行自动切换和处理。
(2)能利用采集到的YUV图像信号数据进行压缩算法的验证,或转换成灰度图像数据、RGB格式图像数据等进行检测、定位等算法的检验。
(3)能将处理后的数据通过PCI接口交给上层系统(PC机)保存或进行进一步验证处理。
(4)系统具有软件修改、升级功能和灵活性,便于算法的改进验证。
系统的设计难点主要是如何实现系统数据的高速传输。图像数据由专用集成视频解码器SAA7113采集,经A/D转换处理后传输到DSP;再经DSP处理后通过PCI接口传输到PC机。如何实现SAA7113与DSP之间和DSP与S5933之间的高效率数据通信是解决这个问题的关键。通过分析研究,在SAA7113与DSP之间采用CPLD控制的两帧轮换方式,实现图像的隔行信号变逐行信号以及采集和处理的同步进行;在DSP与S5933之间采用DMA传输方式,实现数据流在系统中的高速传输,以满足图像处理要求。
2 系统的硬件设计
整个系统由视频解码器、DSP和PCI总线专用芯片组成。系统框图如图1所示。
DSP芯片采用TMS320C32,该芯片是在TMS320C30的基础上简化而来的,含有TMS320C30CPU核心。它增加了一些常用的功能部件,使程序引导功能、串行接口传输和存储器均可支持8、16、32位的数据。它可产生边沿中断和电平中断,可由用户编程设定中断向量表的地址,具有空等待和低功耗两种电源管理方式。它具有两个DMA通道,功能强大的外部存储器接口既可以满足视频解码接口8位数据的要求,也可以实现PCI接口32位数据的的高速数据传输。TMS320C32灵活的程序加载可以实现在系统编程。
PCI总线专用接口芯片采用S5933,它是一种功能强且使用灵活的PCI总线控制器专用芯片,该芯片符合PCI局部总线规范2.1版本,既可作为PCI总线目标设备,实现基本的传送要求;也可作为PCI总线主控设备,访问其它PCI总线设备。S5933的峰值传送速率为132Mbps(32位PCI数据线)。S5933提供了3个物理总线接口:PCI总线接口、外加总线接口(ADD-ONBUS);可选的NV存储器接口。用户可根据需要设计S5933与外加总线接口相连接的逻辑电路和配置空间的初始化,而不必考虑PCI总线规范众多的协议,从而将复杂的PCI总线接口关系转化为简单的8/16/32位外加总线(ADD-ON BUS)接口关系。S5933芯片功能框图如图2所示。
PCI总线与外加总线之间的数据传输可以通过内部先入先出存储器(FIFO)、邮箱寄存器(Mailbox)和数据直传通道(Pass-Thru)三种通道进行。各通道都包括两组寄存器以分别完成PCI总线和ADD-ON总线接口双向数据传输,为使用者提供较为宽松而灵活的设计空间。
可编程视频解码芯片采用SAA7113;该芯片是可编程视频处理芯片,采用CMOS工艺。通过简单的I2C总线可以对其实现编程控制;内部包含两路模拟处理通道,能实现视频源的选择、抗混叠(去假频)滤波、模/数变换、自动嵌位、自动增益控制、时钟产生、多制式(PAL BGHI、PAL M、PAL N、NTSC M和NTSC N)解码及亮度、对比度和饱和度控制。
本系统采用软件模拟I2C总线的控制方式,通过DSP的多功能口实现DSP对SAA7113的初始化等控制;根据SAA7113输出的同步脉冲,通过使用可编程器件CPLD,产生图像帧存储器的地址信号、读写信号以及帧切换等控制信号,实现SAA7113和DSP之间的高速数据通讯。
3 DSP与SAA7113之间的无缝连接
SAA7113输出的是隔行视频信号,一帧图像需要传送两次,分别记为奇场图像和偶场图像;视频处理的对象是逐行排列的图像信号,因此必须等待一帧图像(连续的奇、偶两场信号)采集完后,合成到一个图像帧中才能进行后续处理。利用SAA7113的同步信号,使用可编程逻辑器件CPLD构建控制器,可将图像数据写入帧存储器,解决图像帧合成问题。为了向前端处理器(DSP)提供连续的图像信号,采用两个图像帧存储器A和B交替存储的方式,来暂存采集到的图像数据和需要处理的图像数据,可实现图像的实时连续采集处理。
DSP与SAA7113之间的硬件接口如图3所示,整个接口的控制逻辑,包括两个子模块:帧图像写入控制器和乒乓开关,由一块CPLD来完成。CPLD芯片采用ALTERA公司的EPM9320RC208。两组帧存储器A和B采用CYPRESS公司生产的两块CY7C1049芯片,容量为512K×8bit,存取时间不超过15ns,能满足图像实时采集要求。
SAA7113由数字视频输出口VPO?眼7:0,输出视频数据。系统设置SAA7113的输出数据为标准的ITU 656 4?押2?押2YUV格式,每一个象素的数据由两个连续的字节表示。为了方便地存储处理图像,系统仅取一帧图像中间的512×512个象素作为一帧,即所取图像帧为连续奇偶两场图像的中央512行,且每行取中间的512个象素的图像块。
利用SAA7113的同步信号,帧图像写入控制器模块产生帧存储器的地址信号、写信号以及帧切换信号之一(RDY1)。SAA7113输出的同步信号包括LLC、RTS0、RTS1。LLC是行锁定系统时钟输出,为象素时钟频率的两倍,即27MHz,用来同步数据采集,使得一个LLC周期输出一个字节的图像数据。在图像数据有效时,其上升沿反相后作为帧存储器的WE#信号。RTS0、RTS1的功能是通过编程设置SAA7113功能寄存器确定的。RTS0被设置为水平输出参考信号(行有效信号),RTS0高电平时表示采集一行有效象素,低电平时表示场消隐信号?熏在RTSO上升沿后,帧图像写入控制器控制采集一行中间的512个象素数据,将其余的象素数据丢弃。RTS1被设置为垂直输出参考信号和奇偶场信号,RTS1高电平时表示采集奇场图像所需要的有效数据,在RTS1上升沿时,开始采集奇场图像数据,同时它也被用来作为帧图像开始的信号;RTS1低电平时表示采集偶场中所需要的图像数据,在RTS1下降沿时,开始采集偶场图像数据。在RTS1上升沿时,帧图像写入控制器控制采集256行象素数据作为奇场图像;在RTS1下降沿时,顺次采集下面的256行象素数据作为偶场图像,其余的图像行数据丢弃。使用512K×8bit的静态存储器(SRAM),恰好可以存放一帧512×512×2×8bit的图像。在合成一帧图像时,对应的奇场图像的第n个象素和偶场图像的第n个象素在存储器内位置相差512×2×8bit,帧图像写入控制器通过把RTS1(奇偶场有效)信号作为写入图像数据的帧存储器地址信号中的A1,把场中有效行的计数输出信号作为帧存储器地址信号中的A1[18:12],把行中有效象素的计数输出信号作为帧存储器地址信号中的A1[10:0],从而实现隔行信号变逐行信号存储在一图像帧存储器中。图4为图像采集同步信号时序图。当采集完一帧图像数据时,帧图像写入控制器产生RDY1信号,通知乒乓开关。
在CPLD内部构造一个乒乓开关控制模块,自动完成帧间读写两个通道接口的切换。其中帧图像写入控制器产生的写图像帧的地址信号A1[18:0]、写控制信号WR#和SAA7113的VPO[7:0]组成了图像帧写通道的始端接口;DSP读图像帧的地址线信号A2[18:0]、读控制信号R/W#和数据线的低8位信号DI[7:0]组成了图像帧读通道的终端接口;RDY1、RDY2(FX0) 作为帧切换就绪信号触发通道的切换。开始采集图像数据时,帧切换就绪信号RDY1、RDY2同时为假,图像帧写通道的始端接口信号与图像帧A的接口信号RD、WE#、A[18:0]和D[7:0]连接;SAA7113的当前帧图像数据写入帧存储器A;同时,图像帧读通道的终端接口与图像帧B的接口信号连接,DSP从帧B中取出前一帧图像数据进行处理;当前帧的图像数据采集完时,帧图像写入控制器停止采集数据,置RDY1为真;同理,当DSP在处理完前一帧图像时,设置引脚FXO置RDY2为真。乒乓开关模块在检测到RDY1、RDY2同时为真时,切换通道的接口,此时图像帧写通道的始端接口与图像帧B的接口连接;SAA7113的当前帧图像数据写入帧存储器B;图像帧读通道的终端接口与图像帧存储器A的接口信号连接,DSP从帧存储器A中取出前一帧图像数据进行处理。这样两帧轮换进行,实现了图像的实时连续处理。
在DSP和SAA7113之间所有控制信号的接口逻辑和时序转换都由CPLD来完成,增加了可靠性,简化了PCB的版面,并且可以编程修改,提高了使用的灵活性。
图4 图像数据采集同步信号时序图
4 S5933与DSP之间的接口设计
S5933的三种数据传输方式有不同的特点,应用于不同的场合。
S5933信箱方式不支持猝发(Burst)传输,由8个32位信箱寄存器组成,可从两个方向进行访问。它们平均分为两类,分别用于PCI接口和ADD-ON接口之间的双向信息传输。主机和扩展逻辑都可以通过查询或中断方式获悉任一信箱寄存器的任一字节的空满状态,并通过相应地址访问该字节。S5933的信箱寄存器映射在DSP的I/O空间中,从而可以实现DSP对信箱的直接操作,数据速率较低,故系统中只使用这种方式传输命令和状态信息,例如PC机通知DSP设备关闭;DSP通知上层已经传送完数据(处理完的数据的大小不是固定的)等。
S5933的FIFO方式主要由两个接口共用的两个32×8比特的FIFO、读或写地址寄存器以及读或写计数器组成。两个FIFO分别作为PCI和ADD-ON接口之间的双向缓冲区。S5933提供了快捷方式:一组专门用于FIFO方式传输的控制及状态信号,包括FIFO寄存器的直接读、写以及状态信号等,用以提高数据传输速度,但此信号组只能工作在S5933为主控设备的情况下。S5933作为目标设备时,内部FIFO只是作为一般的寄存器,PCI总线如同访问信箱寄存器那样访问它们,操作比较直观,但不支持猝发传输,极大地限制了传输速度;S5933作为主控设备时,FIFO方式可进行DMA方式的猝发传输,S5933可以通过FIFO接口启动DMA传输周期,传输过程不需要CPU的干预,传输的速率与外部设备的数据传输速率有关,可以得到很高的数据传输速率。S5933的DMA数据传输启动方式有两种:PCI总线接口启动和ADD-ON总线接口启动。启动方式决定于由哪个接口设置读或写地址寄存器以及读或写计数器:PCI总线接口启动方式是由PCI总线主设备(一般是PC机的客户程序)设置DMA相关寄存器发起DMA传输的;ADD-ON总线接口启动方式是由外部逻辑电路(一般是外部插卡上的CPU)设置DMA相关寄存器发起DMA传输的。
S5933的PASS-THRU方式使主机以内存映射方式访问ADD-ON接口的存储空间,只能工作在S5933是目标设备的情况下,且外部接口需要逻辑电路的支持,故不常用。
本系统是图像处理的一个实验平台,既要求数据传输率高,又要求有一定的升级功能和灵活性。因此,系统采用FIFO数据传输方式。当采集的图像数据量大且要求传输速度高时,可以采用FIFO方式中的PCI总线接口启动DMA方式,使用DMA传输;有一些应用场合,要传送的数据个数不明确,例如图像压缩后的数据量是不一定的,可以使用外加总线接口启动DMA的传输方式传送压缩图像,而用信箱方式传送命令和图像状态信息。在这种方式下,S5933的外加总线操作寄存器全部映射在TMS320C32DSP的选通控制信号IOSTRB#控制的空间中,使DSP对PCI接口传输的数据的控制十分简单,就象操作自身的外围接口一样。S5933与DSP之间的硬件接口的具体连接方式如图5所示。
S5933和DSP之间的硬件连接,就是利用DSP的读写信号R/W#、地址选通控制信号IOSTRB#、外部设备就绪信号RDY#和部分地址信号以及S5933的FIFO状态信号WRFULL进行简单的时序和逻辑组合,生成对S5933的外加总线接口的读写控制信号:WR#、RD#、SELECT#、ADR[6:2]、BE[3:0]、WRFIFO#。S5933的数据总线与DSP的数据总线相连接,数据线宽度为32位,以便提供尽可能高的传输速率。
本文采用PCI接口芯片S5933、DSP芯片TMS320C32和视频输入处理芯片SAA7113设计实现的视频图像处理实验平台系统可以实现图像的高速连续采集,进行图像压缩、图像处理等算法的验证,达到了系统设计的目标。本系统具有使用灵活、升级方便等特点。考虑到DSP芯片的内部RAM有限,程序不能完全在片内运行,在进行一些复杂的图像处理运算时,速度会受到限制,故本系统仅适用于静态图像的处理算法研究。