摘要: 介绍了一种以DSP为核心的数字式电视跟踪系统, 主要研究了利用FPGA控制、处理数字视频信号的方法,实现了实时的视频叠加。详细讨论了FPGA的控制逻辑及其相关部分结构。采用FPGA实现视频显示信息的叠加,可有效减轻DSP的速度压力,提高系统性能。 关键词: FPGA 电视跟踪 DSP
1 引言
电视跟踪系统是一种利用视场信号实现目标跟踪的火控装备,它通过控制台引导(也可由雷达引导),利用摄像机获得目标空域的视频信号,分离目标和背景之后,对目标进行实时的捕获和检测,最终计算出目标相对于光轴的俯仰和方位误差,送给控制台。控制台根据这些数据控制伺服平台的两自由度转动,实现对目标的自动跟踪。
电视跟踪系统具有分辨率高、图像可见、抗干扰性能好、成本低等优点,在军事上一直受到重视,特别是在防空火控系统中获得了广泛应用,并且逐步向数字化方向发展。然而,由于数字图像处理一般算法复杂,数据量巨大,这样,核心处理器的运算速度成为数字电视跟踪系统的瓶颈问题。目前解决办法是努力提高核心处理芯片的运算能力(或采用多处理器模式),或寻找高效的跟踪算法,通过软件的优化来提高系统速度。
现场可编程逻辑门阵列FPGA是ASIC的一个重要分支,1985年由美国Xilinx 公司推出,随着工艺水平的提高迅速普及发展。FPGA能够减少电路体积,简化设计过程,缩短产品开发周期,也有助于提高系统的稳定性,已成为数字电路设计的一个重要方向。
近年来,FPGA在核心芯片的控制下,适用范围越来越广,能够实现较为复杂的算法和逻辑控制,对核心处理芯片起到重要的辅助作用,且避免了多处理器模式带来的高成本问题。本文结合某种基于DSP的小型电视跟踪系统的开发过程,实现了一种利用FPGA协同DSP完成视频采集、处理及控制的方法。
2 系统组成及原理
如图1,系统核心处理芯片采用TMS320DM642 DSP,这是一款针对视频/图像处理的定点DSP,其显著特征是高度集成了视频输入输出端口,支持所有主要的视频标准。通信控制模块包括两路标准RS232串口,一路连接系统控制面板,读取面板开关状态,控制面板指示灯;另一路连接火控计算机,接受火控计算机输出的火控系统参量信号,DSP将其以字符形式叠加到原视频信号上,送监视器供操作手观察、操瞄。

本电视跟踪系统在硬件上分6个功能模块:图像采集模块、目标跟踪和识别模块、通信控制模块、伺服控制模块、字符和信息叠加模块和电源模块,软件从功能上分为图像采集模块、图像处理模块、识别跟踪模块、显示控制模块以及主控模块。DM642内部高度集成了视频采集单元和显示单元,利用两个视频端口分别连接视频解码芯片和视频编码芯片(Philp公司的SAA7115和SAA7105H),直接搭建成视频采集、显示通道,对于编/解码芯片的编程通过I2C总线进行设定,支持主流编解码芯片,有效地简化了外围电路,需要说明的有:
1)DM642的视频端口0(Video Port0)及其对应的控制信号经过信号保持及收发转换电路,连接解码芯片SAA7115对应引脚。本系统适用于所有主要的标准合成视频,通过I2C总线控制其内部寄存器进行功能选择,具体操作函数见文献[2],本系统输入采用彩色PAL制式,编码格式采用通用的YUV422编码,数据位为8位。
2)DM642的视频端口2(Video Port2)被用作视频显示,这个编码器可以进行RGB、HD、NTSC、PAL编码,通过编程也可对S端子及VGA视频编码。其编程也通过I2C总线进行,本系统输出为灰度PAL视频。
3)DM642视频端口2可以直接连接编码芯片,但本系统编码显示电路通过一片FPGA连接DSP与编码器(Philps公司的SAA7105),一方面,由于本系统电路中不可避免的存在大量控制信号,需要进行较多的逻辑变化,为了简化电路,充分利用FPGA空间,本系统利用FPGA完成这些逻辑处理,避免了额外的逻辑控制电路。
另一方面对待显的视频信号叠加火控计算机送来的显示信息,具体包括目标高度量、距离量和速度量、跟踪波门、跟踪状态以及视场中心十字线,这些信息的叠加要求透明显示,能够实时刷新。
在以往模拟电视跟踪系统中,视频信号与字符信号的叠加都是依赖于模拟的硬件电路,对于数字式电视跟踪系统,出于对处理速度和电路设计的考虑,本功能由FPGA芯片完成,选用的FPGA型号为Xilinx XC2300E,属于XC2000系列,等效门数为6912,封装形式为PQFP208。本系统将其置于DSP的输出视频端口与7105之间,完成上述的视频叠加任务。
如图2,按照系统各个功能模块划分,本系统中FPGA的具体功能有:

1)通过EMIF(扩展存储器接口)控制8个系统指示灯;
2)通过EMIF控制8个通用输入/输出位(general-purpose input/output,GPIO);
3)产生EMIF缓存的控制信号(DIR 和OEz);
4)为PLL1708(提供串行控制接口;
5)为FLASH存储空间提供3个控制位,;
6)实现对串口UART和视频解码器中断的逻辑控制,并产生其送给DM642的边缘触发信号;
7)当DM642视频端口送出的视频数据为8位时,将视频数据直接送往7105编码器;
8)当DM642视频端口送出的视频数据位16位时,由于16位数据在时钟上升沿输出给FPGA,FPGA将其转换为双时钟模式,即前8位在上升沿输出,低8位在下降沿输出;
9)为DM642输出的视频数据提供一个颜色查询表color look-up table (CLUT),这里CLUT作为一块RAM区,写入使能信号由地址编码器控制。内部依次存储的数据包括Y,Cb,Cr,利用这三者的数据组合来显示128种颜色,需要特别说明的是,每个颜色单元分配了24bit,其中0-7bit为Y数据,8-15bit是Cb,16-23bit是Cr数据,这样安排是为了方便颜色表的写入和读取。通过查询颜色代码,可将取得的颜色值赋给待叠加信息,实现其颜色的可控性。
3 内部设计原理

本系统视频叠加FPGA的示意结构如图3,FPGA连接着DM642的视频输出端口和视频编码芯片,控制信号、视频信号和待叠加的显示信息都来自与DM642相关端口,OSD FPGA内部设有一个256字节、32bits的数据FIFO,用来存储显示信息。FIFO存储区允许写操作,数据写入的方式采用DMA,其格式采用32-bit输入,FPGA从FIFO中取得数据后与视频数据在MUX模块进行叠加,产生新的视频数据流输出。
OSD转换模块从OSD FIFO中读取数据,将其转换为8-bit数据。其中第一位用于指定当前视频需要叠加的数据,剩余为作为叠加数值传递给显示颜色表(CLUT),取得的颜色值作为待叠加信息的显示颜色。
OSD混合模块是本FPGA的核心部分,它接收逻辑控制单元的控制,判断是否需要叠加FIFO 送来的显示信息,若否,则说明无叠加信息,只输出原有视频数据。若是,OSD转换模块数据首位被激活,CLUT数据与视频数据混合叠加后输出。由于DM642送出的视频数据采用BT.656模式,且为16bit宽度,所以这里设计了一个DDR模块,其功能是在时钟的上升沿输出灰度数据,下降沿输出输出色度数据。
DMA控制器负责监视数据状态,一旦某区域产生的时间数量少于寄存器指出的值并且FIFO有空闲容量,则产生一个DMA事件。OSD逻辑控制单元用来产生控制OSD的各种事件,包括OSD读写模块、DMA事件发生器模块和OSD MUX模块,使能OSD 数据显示缓存的读写。
对于本系统中的FPGA,由于TI公司提供了相应的C算法库和基本配置文件,所以,在本系统视频叠加模块的实现是基于其基本配置修改的,详细方法参考文献[2]。
由于FPGA是现场编程器件,掉电后其配置丢失,所以每次启动时需要从Flash中自动加载配置数据。TI公司提供了一个标准的“boot.asm”汇编源文件,烧写程序时把它定位与flash的前1K字节中,紧跟其后的是一个装载表,它上面记录这各个程序/数据段的首地址和长度。实际工作程序在装载表之后。这样DSP复位后自0地址开始执行,上述标准“boot.asm”程序被执行。而它的功能就是按照装载表拷贝实际工作程序到相应的SDRAM空间,这个过程即为“装载”。本系统的编程环境是CCS2.0软件,其包含了自启动程序的编写及对板上Flash的烧写功能,结合相应型号的仿真器,对于编译好的out文件,经过调整后可方便的写入Flash存储器,实现程序自启动。
4 结论
目前,本电视跟踪系统已经调试通过,工作稳定可靠,实验说明这种利用FPGA实现视频叠加等辅助功能的方法能够满足要求,具体表现为:
1) 系统性能得到大大提高。FPGA专门负责采集控制部分的实现,并且在FPGA与DSP之间采用DMA方式传输待叠加的显示信息,通过中断的方法触发传送事件, 因而能大大减轻DSP的处理负荷, 有效的提高了系统处理的速度。
2) 系统的适应性与灵活性强。由于采用FPGA 可编程逻辑器件作为系统显示控制单元,对于不同的视频图像信号,只要在FPGA 内对逻辑关系进行适当的改动,便可灵活实现不同要求的信号叠加。同时,也可根据系统的需要实时的调整叠加信息的位置大小等属性, 以适合不同场合的需要。
3) 设计结构简单, 调试方便。FPGA 的外围硬件电路相对简单,设计工艺成熟,因而在硬件设计中,可以有效减小硬件设计的复杂程度。且FPGA的时序逻辑调试可在软件上仿真实现,因而简化了大量硬件调试过程,缩短了系统开发周期。
本系统目前仍存在的问题是系统处理速度仍嫌不足,特别是视频处理算法逐渐复杂,对DSP的处理能力要求不断提高,为了不出现丢帧现象,下一步仍需要研究缓解DSP压力的有效办法。
参考文献:
[1] TMS320C6000 Technical Brief [ Z]. TI company , 1999.
[2] TMS320DM642 EVM OSD FPGA User’s Guide [Z]. TI company,2003
[3] 陈健等.DSP算法、应用与设计[ M ]. 北京: 机械工业出版社,2003.
[4] Xilinx Programmable Logic Data Book [ Z]. 2000.
[5] 杨朋林.FPGA控制实现图像系统视频图像采集[D].计算机测量与控制.2003
|