首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA在某电视跟踪系统中的应用

FPGA在某电视跟踪系统中的应用

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 个通用输入/输出位( generalpurpose 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 压力的有效办法。
作者:付强,姚智刚,吴博茂
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表