论文部分内容阅读
摘 要:本系统设计采用基于DSP和FPGA的双缓冲"乒乓操作"技术,实现了大容量数据的传输。利用EDMA控制器高效地实现存储空间的数据搬移,而DSP的中央处理器则专注于对视频数据信号进行实时处理。经测试本系统完全满足视频信号处理系统的高速实时性要求。
关键字:TMS320VC6713;ACEX1E30;异步FIFO;乒乓操作
中图分类号:TP274.2文献标识码:A
Design of A Video Signal Acquisition System Based on DSP and FPGA
WEI Xiao-bo
(Information Engineering Department, LiuZhou Vocational and Technical College,Guangxi Liuzhou 545006)
Key words: TMS320VC6713;ACEX1E30;Asynchronous FIFO;Double buffer ping-pong mode
随着图像处理技术的发展,实时视频采集系统在目标识别、辅助导航、自动驾驶、网络视频会议,职能交通监测等方面得到广泛的应用。在视频信号的采集过程中,由于视频处理数据量大,相关性强,因此实时视频采集系统需要有强大的运算能力和数据快速传输的能力。为此,采用TI公司的TMS320C6713芯片作为视频处理器。同时,利用其强大的EDMA功能和FPGA(Field Programmable Gate Array,现场可编程门阵列)中的FIFO,使用“乒乓缓存技术”实现对视频数据的快速连续的采集和处理。
1 系统结构方案
视频信号采集系统的功能是对模拟视频信号进行数字化处理,将视频信号转化为符合ITUR601标准的数字信号;通过FIFO缓存将解码后的数字视频信号传输到DSP中进行数据处理运算。视频信号采集系统主要包括视频解码电路、FPGA逻辑电路、DSP电路等,其系统结构框图如图1所示。

图1 系统结构框图
该系统选用TI公司的C6713B作为中央处理芯片,具有超长指令字结构,每个周期可以执行多达8条32位指令;主频最高可达300Mhz,处理能力2400MIPS。数据缓存FIFO由FPGA芯片ACEX1E30灵活构造。ACEX 系列的FPGA由逻辑阵列块(Logic array block,LAB)、嵌入式阵列块(Embedded array block,EAB )、快速互联以及IO单元构成,每个逻辑阵列块包含8个逻辑单元(Logic element,LE)和一个局部互联。每个逻辑单元则由一个4输入查找表、一个可编程触发器、快速进位链、级连链组成。多个LAB和多个EAB 则可通过快速通道互相连接。EAB 是ACEX系列器件在结构设计上的一个重要部件,是输入端口和输出端口都带有触发器的一种灵活的RAM 块,其主要功能是实现FIFO、ROM、RAM和双端口RAM等。
当可见光CCD或红外CCD输出模拟视频信号时,有DSP初始化程序通过FPGA逻辑电路对视频解码芯片SAA7111A进行初始化后,SAA7111A从模拟视频信号中提取同步控制信号并对其进行AD采样,将RGB565格式的数字视频信号以及行、场同步信号输入FPGA的FIFO中进行缓存。当FIFO半满或全满时,给DSP发送中断。DSP芯片相应中断信号,启动读取FIFO数据的EDMA数据通道,完成视频数据的传输与处理。
2 异步FIFO
FIFO是一种先进先出的数据存储器,它与普通存储器的区别是没有外部读写地址线,其数据地址由内部读写指针自动加一完成。异步FIFO是在输入与输出时钟频率不同时,在存储器内实现先进先出功能。异步FIFO对于实现同步系统内不同时钟域之间的数据匹配非常有用。
基于ALTERA公司生产的现场可编程逻辑器件ACEX1K30的异步FIFO,核心机制采用双缓冲"乒乓操作",即有两个缓冲器,在某一缓冲器进行写操作时屏蔽读操作,也就是读使能缓冲器0,写使能缓冲器1,反之亦然。这样可使读写操作时序信号彻底分离,从根本上消除由异步时钟带来的亚稳态。两个缓冲器分别用一个双口RAM 实现,缓冲器0和缓冲器1交替操作,即第一次读空缓冲器0和缓冲器1,然后启动写缓冲器0,当缓冲器0被写满后,立即转到缓冲器1进行写操作,并向DSP发出缓冲器0的数据满中断,DSP就启动另一次读缓冲器0操作,如此乒乓操作并可实现对采集数据的连续操作。其实现框图如图2所示。

图2 异步FIFO框图
3 基于DSP芯片EDMA方式的数据传输
TMS320C6713芯片的EDMA控制器具有与C620x或C54X系列不同的DMA控制器结构,C6713的EMDA控制器具有几个增强特性,首先提供了16个独立的数据通道,这些通道的优先级可编程设置;利用EDMA可以实现片内存储器(L2 缓存)、片内外设以及外部SDRAM存储空间之间的数据移动。为了满足高速视频数据传输和处理的需要,避免数据在DSP内外存储空间之间转移而产生的读写延时,该系统使用DSP片内存(下转第22页)(上接第20页)储器作为高速缓存存储器。由于TMS320C6713具有两级高速缓存结构,可以利用EDMA将FIFO中的数据搬移到L2缓存区中暂存,CPU从L2缓存区中读取数据并做处理;经过处理后的视频数据暂存回L2缓存区中,当数据处理完毕后,启动另一个EMDA通道将处理后的视频数据存储在外部SDRM空间。这就避免了在数据的采集和处理的过程中EMIF的时序切换,大大提高系统的数据传输和处理效率。
在系统的工作过程中,视频解码芯片SAA7111A的输出时钟频率是13Mhz,对于标准的PAL制式视频信号,其有效数据流量为165000Mbits/s。在视频数据的传输和处理过程中,CPU的数据处理必须与EMDA数据传输保持同步,即保证在CPU访问之前EDMA把数据传送到缓冲区中,而在EDMA输出数据之前CPU必须完成缓冲区中的数据处理。CPU数据处理与EDMA数据传输的同步可以采用Ping_Pong双缓冲技术来实现。实现方法如下:在片内存储器L2中开辟两个大小相同的缓冲区Ping_buffer和Pong_buffer,两个缓冲区轮流交替工作。当EDMA传输数据到Ping_buffer时,CPU处理Pong_buffer中的数据;当CPU和EDMA操作完毕,Ping_buffer和Pong_buffer缓冲区互换,EDMA继续传输数据覆盖Pong_buffer中的数据,CPU处理Ping_buffer中的数据。
在具体的软件编程工作中,TI公司提供的编译环境CCS2.0既支持使用汇编进行寄存器操作来控制系统工作,也支持通过TI提供的库函数和头文件实现。使用库函数可以增加程序的可读性、可移植性,降低编程难度,从而提高编程速度,减少目标代码。为了方便用户使用C语言开发,TI提供CSL(Chip Support Library),CSL是DSP/BIOS图形化的配置工具的一部分,它提供了配置和控制系统互连设备的C语言接口,给利用C语言访问C6x系列DSP的寄存器和互连设备带来了方便,减少了编程量,提高了程序的可读性。这些库主要包括内部互连设备、中断函数和CPU的工作模式。EDMA是C6x系列DSP的内部互连设备,所以可以利用CSL,在几乎不用编程的情况下,很方便地完成EDMA的各个参数和属性的配置。
4 结束语
本系统设计采用了FPGA来构造FIFO,可根据不同的应用场合对FPGA编程,以满足设计要求,因此灵活性较大。在基于TI公司C6000系列的TMS320C6713芯片的视频信号处理系统中,采用EDMA方式实现了视频数据信号的高效传输。DSP的处理单元能够专注于信号处理算法与系统功能的控制,使得该视频信号处理系统满足高速实时性要求。
参考文献:
[1]陈振华,邓少芝等.EDMA数据传输方式在基于DSP的视频信号处理系统中的应用[J].液晶与显示,2007,22(6):P719-721.
[2]王月琴,张笑微等.TMS320C6713DSP在音乐喷泉控制系统中的应用[J].微计算机信息,2006,11z期:P165-1267.
[3]俞鸿波,陈怀新等.基于FPGA的视频传输流发送系统设计[J].微计算机信息,2008,24(14):P197-198.
[4]Altera. Single-& Dual-Clock FIF0 Megefunction User Guide.2005.
[5]Texas Instrumenls Incorporaled.SN74V3690 Datasheet.2003.
关键字:TMS320VC6713;ACEX1E30;异步FIFO;乒乓操作
中图分类号:TP274.2文献标识码:A
Design of A Video Signal Acquisition System Based on DSP and FPGA
WEI Xiao-bo
(Information Engineering Department, LiuZhou Vocational and Technical College,Guangxi Liuzhou 545006)
Key words: TMS320VC6713;ACEX1E30;Asynchronous FIFO;Double buffer ping-pong mode
随着图像处理技术的发展,实时视频采集系统在目标识别、辅助导航、自动驾驶、网络视频会议,职能交通监测等方面得到广泛的应用。在视频信号的采集过程中,由于视频处理数据量大,相关性强,因此实时视频采集系统需要有强大的运算能力和数据快速传输的能力。为此,采用TI公司的TMS320C6713芯片作为视频处理器。同时,利用其强大的EDMA功能和FPGA(Field Programmable Gate Array,现场可编程门阵列)中的FIFO,使用“乒乓缓存技术”实现对视频数据的快速连续的采集和处理。
1 系统结构方案
视频信号采集系统的功能是对模拟视频信号进行数字化处理,将视频信号转化为符合ITUR601标准的数字信号;通过FIFO缓存将解码后的数字视频信号传输到DSP中进行数据处理运算。视频信号采集系统主要包括视频解码电路、FPGA逻辑电路、DSP电路等,其系统结构框图如图1所示。

图1 系统结构框图
该系统选用TI公司的C6713B作为中央处理芯片,具有超长指令字结构,每个周期可以执行多达8条32位指令;主频最高可达300Mhz,处理能力2400MIPS。数据缓存FIFO由FPGA芯片ACEX1E30灵活构造。ACEX 系列的FPGA由逻辑阵列块(Logic array block,LAB)、嵌入式阵列块(Embedded array block,EAB )、快速互联以及IO单元构成,每个逻辑阵列块包含8个逻辑单元(Logic element,LE)和一个局部互联。每个逻辑单元则由一个4输入查找表、一个可编程触发器、快速进位链、级连链组成。多个LAB和多个EAB 则可通过快速通道互相连接。EAB 是ACEX系列器件在结构设计上的一个重要部件,是输入端口和输出端口都带有触发器的一种灵活的RAM 块,其主要功能是实现FIFO、ROM、RAM和双端口RAM等。
当可见光CCD或红外CCD输出模拟视频信号时,有DSP初始化程序通过FPGA逻辑电路对视频解码芯片SAA7111A进行初始化后,SAA7111A从模拟视频信号中提取同步控制信号并对其进行AD采样,将RGB565格式的数字视频信号以及行、场同步信号输入FPGA的FIFO中进行缓存。当FIFO半满或全满时,给DSP发送中断。DSP芯片相应中断信号,启动读取FIFO数据的EDMA数据通道,完成视频数据的传输与处理。
2 异步FIFO
FIFO是一种先进先出的数据存储器,它与普通存储器的区别是没有外部读写地址线,其数据地址由内部读写指针自动加一完成。异步FIFO是在输入与输出时钟频率不同时,在存储器内实现先进先出功能。异步FIFO对于实现同步系统内不同时钟域之间的数据匹配非常有用。
基于ALTERA公司生产的现场可编程逻辑器件ACEX1K30的异步FIFO,核心机制采用双缓冲"乒乓操作",即有两个缓冲器,在某一缓冲器进行写操作时屏蔽读操作,也就是读使能缓冲器0,写使能缓冲器1,反之亦然。这样可使读写操作时序信号彻底分离,从根本上消除由异步时钟带来的亚稳态。两个缓冲器分别用一个双口RAM 实现,缓冲器0和缓冲器1交替操作,即第一次读空缓冲器0和缓冲器1,然后启动写缓冲器0,当缓冲器0被写满后,立即转到缓冲器1进行写操作,并向DSP发出缓冲器0的数据满中断,DSP就启动另一次读缓冲器0操作,如此乒乓操作并可实现对采集数据的连续操作。其实现框图如图2所示。

图2 异步FIFO框图
3 基于DSP芯片EDMA方式的数据传输
TMS320C6713芯片的EDMA控制器具有与C620x或C54X系列不同的DMA控制器结构,C6713的EMDA控制器具有几个增强特性,首先提供了16个独立的数据通道,这些通道的优先级可编程设置;利用EDMA可以实现片内存储器(L2 缓存)、片内外设以及外部SDRAM存储空间之间的数据移动。为了满足高速视频数据传输和处理的需要,避免数据在DSP内外存储空间之间转移而产生的读写延时,该系统使用DSP片内存(下转第22页)(上接第20页)储器作为高速缓存存储器。由于TMS320C6713具有两级高速缓存结构,可以利用EDMA将FIFO中的数据搬移到L2缓存区中暂存,CPU从L2缓存区中读取数据并做处理;经过处理后的视频数据暂存回L2缓存区中,当数据处理完毕后,启动另一个EMDA通道将处理后的视频数据存储在外部SDRM空间。这就避免了在数据的采集和处理的过程中EMIF的时序切换,大大提高系统的数据传输和处理效率。
在系统的工作过程中,视频解码芯片SAA7111A的输出时钟频率是13Mhz,对于标准的PAL制式视频信号,其有效数据流量为165000Mbits/s。在视频数据的传输和处理过程中,CPU的数据处理必须与EMDA数据传输保持同步,即保证在CPU访问之前EDMA把数据传送到缓冲区中,而在EDMA输出数据之前CPU必须完成缓冲区中的数据处理。CPU数据处理与EDMA数据传输的同步可以采用Ping_Pong双缓冲技术来实现。实现方法如下:在片内存储器L2中开辟两个大小相同的缓冲区Ping_buffer和Pong_buffer,两个缓冲区轮流交替工作。当EDMA传输数据到Ping_buffer时,CPU处理Pong_buffer中的数据;当CPU和EDMA操作完毕,Ping_buffer和Pong_buffer缓冲区互换,EDMA继续传输数据覆盖Pong_buffer中的数据,CPU处理Ping_buffer中的数据。
在具体的软件编程工作中,TI公司提供的编译环境CCS2.0既支持使用汇编进行寄存器操作来控制系统工作,也支持通过TI提供的库函数和头文件实现。使用库函数可以增加程序的可读性、可移植性,降低编程难度,从而提高编程速度,减少目标代码。为了方便用户使用C语言开发,TI提供CSL(Chip Support Library),CSL是DSP/BIOS图形化的配置工具的一部分,它提供了配置和控制系统互连设备的C语言接口,给利用C语言访问C6x系列DSP的寄存器和互连设备带来了方便,减少了编程量,提高了程序的可读性。这些库主要包括内部互连设备、中断函数和CPU的工作模式。EDMA是C6x系列DSP的内部互连设备,所以可以利用CSL,在几乎不用编程的情况下,很方便地完成EDMA的各个参数和属性的配置。
4 结束语
本系统设计采用了FPGA来构造FIFO,可根据不同的应用场合对FPGA编程,以满足设计要求,因此灵活性较大。在基于TI公司C6000系列的TMS320C6713芯片的视频信号处理系统中,采用EDMA方式实现了视频数据信号的高效传输。DSP的处理单元能够专注于信号处理算法与系统功能的控制,使得该视频信号处理系统满足高速实时性要求。
参考文献:
[1]陈振华,邓少芝等.EDMA数据传输方式在基于DSP的视频信号处理系统中的应用[J].液晶与显示,2007,22(6):P719-721.
[2]王月琴,张笑微等.TMS320C6713DSP在音乐喷泉控制系统中的应用[J].微计算机信息,2006,11z期:P165-1267.
[3]俞鸿波,陈怀新等.基于FPGA的视频传输流发送系统设计[J].微计算机信息,2008,24(14):P197-198.
[4]Altera. Single-& Dual-Clock FIF0 Megefunction User Guide.2005.
[5]Texas Instrumenls Incorporaled.SN74V3690 Datasheet.2003.