基于USB总线和LabWindows/CVI平台的电视跟踪性能测试仪
2008-07-18
作者:刘 杰1, 牛燕雄1,2,
摘 要: 设计了基于FPGA和USB接口技术的新型电视跟踪性能测试仪。在介绍硬件设计方案的基础上,描述了生成模拟目标和判断跟踪状态的FPGA内部软件结构。选择LabWindows/CVI" title="LabWindows/CVI">LabWindows/CVI语言搭建测试仪的软件平台,并采用调用动态链接库" title="动态链接库">动态链接库的方法,完成了上位机" title="上位机">上位机和测试仪的USB通信软件设计。
关键词: 跟踪性能测试 USB FPGA 模拟目标 LabWindows/CVI
电视跟踪系统" title="电视跟踪系统">电视跟踪系统作为一种被动式目标探测跟踪系统,具有分辨率高、图像可见、抗干扰性能好、成本低等优点,已成为现代武器系统中不可缺少的目标捕获跟踪装置。
电视跟踪性能的优劣直接影响或决定着电视跟踪系统的跟踪效果和跟踪能力。为了正确评估和判定电视跟踪系统的跟踪性能,目前主要是对电视跟踪系统的最小跟踪目标、最小跟踪对比度、目标捕获时间、目标捕获概率、跟踪速度和跟踪误差等跟踪性能指标进行测试。以往的电视跟踪性能测试装置具有电路设计复杂、系统体积较大、扩展性差等缺点。本文将现场可编程门阵列(FPGA)和USB接口技术应用到电视跟踪性能测试仪的硬件设计中,并且利用LabWindows/CVI语言搭建系统的软件平台,使该测试仪与以前的测试装置相比,具有集成度高、即插即用、扩展性好以及操作界面友好的优点[1-2]。
1 系统硬件组成及工作原理
1.1 系统硬件组成
系统主要由USB接口电路、模拟目标生成电路和方位、俯仰误差电压采集电路组成,硬件组成如图1所示。
1.2 工作原理
测试者通过上位机的主界面程序选择测试项目,然后上位机通过USB总线将模拟目标的基本信息(大小、速度等)传送给模拟目标生成电路,由它来产生模拟目标的视频信号。被测电视跟踪系统接收到目标视频信号后,输出目标的方位和俯仰误差电压。测试仪的误差电压采集电路采集这两路电压,并送入模拟目标生成电路中,由该电路中的FPGA 来计算当前目标在视场中的位置,并与输出目标的位置相比较,从而确定当前电视跟踪系统搜索或跟踪的工作状态。根据工作状态的变化确定被测指标,FPGA通过USB总线将测试结果传送给上位机,最后完成整个测试。
2 核心电路的设计
2.1模拟目标生成电路设计
该部分电路输出的是模拟目标视频信号,而且是CCIR制式的标准视频信号。在以前的测试装置中,模拟目标电路是由许多模拟分立元件设计而成,对于视频信号这样时序要求严格的模拟信号来说,设计过程复杂,硬件体积较大。FPGA具有高集成度、时序功能强以及设计周期短等特点,因此将FPGA引入到该硬件部分的设计中。模拟目标生成电路主要由FPGA及其外围电路和视频D/A电路两部分组成,原理图如图2所示。
FPGA选用Xilinx公司的Spartan Ⅲ系列FPGA器件xc3s400,它有40万门和8 064个逻辑单元[3]。
D/A芯片选择AD公司的ADV7123芯片,该芯片在像素时钟(CLK)、消隐信号(CBLK)和同步信号(CSYN)的共同作用下,将10位图像灰度信号转换成标准的模拟视频信号。
配置电路包括两部分,一是JTAG下载电路,二是使用PROM的FPGA配置电路。前者是为了便于调试,可以使用下载线将上位机中的*.BIT文件下载到FPGA中运行调试;后者是在系统设计完成后,将上位机的*.MCS文件下载到PROM中,系统每次加电时,PROM会自动将程序配置到FPGA中。
本系统主要输出标准CCIR视频信号,它的行有效像素是768,行有效时间52μs,所以在晶振电路中采用了14.75MHz的有源晶振。
此外,模拟目标生成电路还与上位机通过USB总线进行数据传输,并接收误差采集电路发送来的方位和俯仰误差电压值。
2.2 误差电压采集电路设计
误差电压采集电路原理图如图3所示。
本系统对A/D转换芯片的分辨率要求十分严格。如果分辨率选择不当,当模拟目标移动较小的像素数时,A/D转换后的方位和俯仰误差电压值不能分辨出该目标位置的变化,这将对测试结果产生影响。所以选择12位的A/D转换器AD574,根据计算电压分辨率的公式:
因此在10V的电压范围内,芯片的电压分辨率达到2.44mV,能够满足系统的指标要求。
FPGA的I/O引脚输出高低电平控制AD574工作,包括转换位数选择、芯片允许线、读结果/启动转换线等。同时, FPGA控制多通道信号选择芯片分时将方位和俯仰误差电压信号接入AD574进行转换,并且读取转换后的数字结果。
2.3 USB接口电路设计
USB芯片选用的是Cypress公司的EZ-USB FX2芯片CY7C68013A,该芯片支持USB2.0,又向下兼容USB1.1,既负责USB事务处理也兼具微处理器的控制功能。CY7C68013A的CPU采用增强8051,提高了运算速度,增强了功能,同时该芯片采用内部RAM用于程序和数据的存取。将该芯片置于Slave FIFO模式下,由FPGA控制USB接口芯片中FIFO的读和写,最后完成PC机与FPGA数据传输的工作[4]。
为了引导加载正确的驱动程序,还设计了EEPROM加载电路,当该部分电路加电时,CY7C68013A会自动复制存储在EEPROM中的制造商ID(VID)、产品ID(PID)和设备ID(DID)。
3 系统软件设计
3.1 FPGA内部的软件设计
FPGA内部软件设计主要包括三部分:
(1)模拟目标生成的程序设计" title="程序设计">程序设计;
(2)判断跟踪状态的程序设计;
(3)与上位机进行通信的程序设计。
设计过程中采用了自底向上的设计方法。在FPGA设计软件ISE的开发环境下,首先利用Verilog语言设计这三个程序子模块,然后将这些模块在原理图设计环境中进行顶层的连接。软件结构框图如图4所示。
3.2 基于LabWindows/CVI的主机应用程序设计
LabWindows/CVI将源码编程、32位ANSI C编译、连接、调试及标准ANSI C库等集成在一个交互式开发平台中,采用简单直观的图形用户界面设计,利用函数面板输入函数的参数,采用事件驱动方式和回调函数方式的编程技术,有效提高了工程设计的效率和可靠性[5]。
本系统的测试主程序是在LabWindows/CVI环境下设计的,部分测试界面如图5所示。
主机程序需要和下位机进行USB通信,所以编制了一套USB通信的动态链接库供主程序调用。该动态链接库是在VC环境下编译的,它封装了几个常用的USB功能函数(读函数、写函数、手动下载固件函数和读取描述符函数等)。在LabWindows/CVI语言中,调用了该动态链接库之后,只需要写出功能函数名及其参数,就可以实现USB通信,十分有利于测试者对软件进行升级和二次开发。
3.3 USB固件设计以及驱动程序的开发
USB固件程序是在Keil C环境下设计的。Cypress公司提供的软件开发包中已经提供了固件框架,只需要开发者对其中的部分程序段进行修改就可以使用。
为了便于用户操作,将固件程序和自动下载驱动程序进行绑定。首先将固件的十六进制文件转换为C文件,然后用其中的数组替换ezloader模板中firm.c文件的数组,最后在DDK开发环境中编译出自动下载驱动程序tvfirmloader.sys,并在DriverWorks环境下设计了结合本系统硬件的驱动程序tvtest.sys。为使驱动程序正常工作,还为它编写了安装信息文件tvtest.inf[6]。
4 实验结果
对某型电视跟踪系统的电视跟踪性能指标进行了测试。在测试过程中,分出一路视频信号进入图像采集卡采集模拟目标图像,另一路进入示波器观察视频信号的波形。图6是模拟目标的单帧图像;图7是在示波器中显示的模拟目标视频信号波形。
图6中显示的是12×12像素静止黑色目标,主操作界面设置的对比度是55%。从图7的波形中可以观察到信号周期为64μs,像素有效时间为52μs,完全符合CCIR标准视频信号的制式要求。从图7中还可以观察到每场有6行出现黑目标的电平值,每帧出现了12行这样的电平值,从而验证了目标垂直大小为12像素的正确性。
使用该检测仪对多种电视跟踪系统进行了测试,在使用过程中发现该仪器具有通用性好、扩展性强、可靠性高以及携带方便等特点。因此,该测试仪在电视跟踪系统测试中将会有很好的应用前景。
参考文献
[1] GJB 1830-93,电视跟踪器通用规范[S].
[2] 胡文刚,汪岳峰,牛燕雄,等.电视跟踪箱跟踪性能检测仪设计[J].光电子技术与信息,2005,18(1):61-64.
[3] Spartan 3 FPGA Family Complete Data Sheet.2005.
[4] 钱峰.EZ-USB FX2单片机原理、编程及应用[M].北京:北京航空航天大学出版社,2006:22-23.
[5] 孙晓云,郭立炜,孙会琴.基于LabWindows/CVI的虚拟仪器设计与应用[M].北京:电子工业出版社,2005:5.
[6] 宋杰,何友,唐小明.基于USB2.0的雷达视频信号高速采集和实时采集系统[J]. 电子技术应用,2006,32(10):12-14.