基于DSP和FPGA的电视观瞄系统设计
许多光学观瞄系统都增加了电视、红外辅助(周视)观瞄系统,称之为光电观瞄系统。在该系统中,需要用电视或红外成像来精确瞄准目标,但光电系统所在的平台总是处于运动状态,成像器件产生的图像也就随之运动,通过CCD成像器件或红外成像器件得到的图像不能保证观瞄精度。因此,克服平台运动造成的成图像旋转是解决观瞄精度的关键技术之一。目前的常用方法是机械消像旋,很多要求较高的光学系统仍然采用该方案,随DSP及FPGA的广泛应用,电子消像旋也应用到了光学观瞄系统上。
这两种方案各有优缺点:机械消像旋可以保证视场不受影响,观瞄精度由成像器件和光学系统决定,缺点是需要一套精密的机械控制系统,对小型化的光学观瞄系统而言,有时很难满足该机械装置对空间的需求;电子消像旋克服了对精密机械装置的要求,可以把处理模块安装在系统的电子箱中,实时性好,四轴飞行器械延迟,缺点是会损失边缘部分的视场、观瞄精度不仅受光学系统及成像器件的影响,而且与旋转算法、插值算法及插值精度有关。尽管如此,电子消像旋平台为使用图像处理技术和数字信号处理技术提供了充分的条件,随着微电子技术的迅猛发展,设计优秀的光电观瞄系统不仅能够满足系统对精度的要求,还能够利用图像处理技术大大改善观瞄的视觉效果,同时可以完成许多数字信号处理方面的工作,如:目标识别跟踪、远程通信、信息管理等重要的功能。
本文介绍的电子消像旋系统采用Altera公司的StratixII系列FPGA芯片和ADI公司的ADSP2183为核心,可以满足系统对功能、实时性及精度的要求。
系统原理与基本结构
电视观瞄系统组成框图如图1所示。系统由红外热像仪、主图像处理板、DC/DC与差分转换板、总线母板、控制接口板、显示屏等部分组成。
图1 电视观瞄系统组成框图
首先,红外热像仪生成观瞄场景的数字视频图像数据,以LVDS信号传送到系统总线。这里采用LVDS视频信号,主要是考虑本电视观瞄系统要求在非常苛刻的物理环境下工作,而LVDS方式具有良好的抗电磁干扰(EMI)能力,能够很好地保证视频信号在较长距离条件下的传输质量。该消旋处理模块共包含四个功能单元:(1)DC/DC转换、LVDS与LVTTL相互转换单元;(2)系统控制接口单元;(3)图像处理单元;(4)其他单元。功能单元(1)完成系统电源及LVDS数字差分视频到LVTTL数字视频的转换;系统控制单元(2)包含两路串行接口和数据交换邮箱,完成信息交换;功能单元(3)是系统的核心部分,它实现对图像的处理及保证精度的要求;单元(4)主要是系统电磁兼容性方面的设计及数据存储单元。
图像处理模块完成对数字视频信号的流水处理,全部工作流程在DSP的控制下用FPGA器件实现视场中心的校正、旋转、精度的计算、实时图像插值等,最后,经过消像旋处理的数字视频流,再由DC/DC与差分转换模块中的LVDS Driver部分传送给终端显示。其中,红外热像仪控制电路设置两路RS422串行通信口,通过串行口与热像仪和图像处理板交换数据信息。数据交换由热像仪控制电路发起,每100ms通过RS422串行通信口1向热像仪发送一次控制指令,直到收到热像仪的接收响应回码。红外热像仪控制电路板收到热像仪的接收回码后将该回码通过RS422串行通信口2转发给图像处理板。按照这些控制命令的内容,图像处理板便根据这些命令完成字符叠加,供观瞄显示屏上显示。
系统设计
在数字信号处理技术中,DSP+FPGA是目前比较通用的方式。通用DSP对系统进行管理,并协同功能强大的FPGA完成图像算法,实现设计功能要求。
消像旋是一种常用的的数字图像处理技术,传统的消像旋都是在二维平面中进行的,由于旋转后图像像素点坐标不再是整数,故旋转后必须对像素点灰度进行二维插值运算,由于其运算过程复杂,运算量也大,尤其是当对旋转后的图像质量要求较高时,需要采用高阶数的插值运算,如3阶、4阶等,则运算量更大。因此单纯采用软件实现,其运算时间过长,实时性差,无法满足高速图像旋转的要求,更不用说在视频条件下使用。
● 观瞄显示界面设计
观瞄显示界面如图2所示。通过图文混合技术,可以在显示界面上很方便地产生电子分划,形式灵活可变且精度高,可以容易实现不改动光学系统而完成零位校准、对比度亮度调整、动态变形消隐等任务。观瞄区域是一个圆形,圆形以外至屏幕边缘则是固定灰度的背景,用于叠加图文信息。屏幕左上是命令菜单,显示当前执行的命令,右上是控制参数,具体显示控制字符。在屏幕左下,是系统的状态信息,右下则是调试命令,平时不显示,只在系统进入自身调试状态时才显示。
图2 观瞄显示界面
● FPGA设计
系统中,FPGA主要完成对视频图像的旋转算法实现、图文混合、逻辑控制和部分I/O操作等工作。正是基于这样的考虑,选用了Altera公司的StratixII系列中的EP2S30F484I4芯片。StratixII FPGA放弃了传统的查找表(LUT)结构,使用一种创新的自适应逻辑模块(ALM)作为FPGA的基本结构单元。与第一代Stratix相比,StratixII FPGA的逻辑密度是前者的2倍,速度也快了50%。EP2S30F484I4有13552个自适应逻辑模块(ALM),33 880等效逻辑单元(LE),片上RAM为1369728bit,还有12个锁相环(PLL)。
FPGA控制单元是在QuartusII 5.0环境下开发的,消像旋处理是软件设计的关键。数字视频由红外热像仪输出,格式为差分输出。包括如下信号:V_CLK(14.5MHz),V_LE(行有效)、V_FE(场有效)、V_EOF(奇偶场标志)、V_SYN(复合同步)、V_D[7..0](8bit数据)。该数字视频经过消像旋处理后仍按原格式输出。图像分辨率为(768×576)像素/帧。
由于旋转后图像像素点坐标不再是整数,故旋转后必须对像素点灰度进行插值运算。但是如果采用高阶数的插值运算,其运算过程复杂,运算量也大。通过对系统显示要求和方位解算器精度的综合估算,本系统进行了8倍硬件插值,在像素的水平方向进行2倍插值,垂直方向上进行4倍插值。为了保证插值和图像显示的连续,本系统利用8片IS61LV12048(1024K×8bit的高速SRAM)芯片作场存储器(奇场和偶场)来交替地存储经过旋转处理后的数字图像数据。用于奇(偶)场操作的四片SRAM的20位地址线和写(WE)、读(OE)是一样的,只有各自的8位数据线和片选则是独立的。在一行像素全部传送到以后,和上一行像素的插值工作,还有行内插值就实时的完成了。
FPGA的基准时钟为来自DSP输出的32MHz时钟,经过片内数字时钟网络(PLL),可以得到系统所需要的多种时钟。
图文混合主要是控制观瞄系统显示屏的显示内容与相应的位置。利用EP2S30F484的内部RAM配置了许多独立的小RAM块,DSP根据不同的控制命令向这些RAM块写入不同的显示内容。FPGA再根据显示位置的分布,以记数的方式在屏幕上控制显示内容输出,达到图文混合。
由于StratixII FPGA使用SRAM来存储配置数据,而SRAM存储器在掉电后数据会丢失,因此每次StratixII FPAG上电时,必须下载一次配置数据。选择正确、合适的配置方案是利用FPGA进行设计的一个重要环节。Altera公司的FPGA共有多种配置方案,其中FPP、AS、PS、PPA和JTAG 配置方案适用于Stratix II系列FPGA。本设计采用了一种Advanced configuration Combine的配置方案。因为在系统研发阶段,考虑到要频繁地向FPGA写入设计文件,和EP2S30F484直接相连的标准JTAG必不可少,ByteMasterMV下载线一端接PC的并口,另一端与板上引出的JTAG底座连接。存储配置数据并完成自动配置的是EPCS16,它是Altera专为StratixII设计的增强型配置器件。当设计完成后,利用ByteMasterMV下载线直接将QuartusII输出的配置信息直接写入增强型配置器件中,以后在独立工作状态下,系统一上电启动,就开始了AS(FAST)方式的自动配置。
使用JTAG配置电路时,主要用到4个必需的管脚:TDI、TDO、TMS和TCK及一个可选的管脚TRST。在电路板上,要根据JTAG 标准的要求,引出2×5的JTAG底座。要注意的是,TMS和TDI管脚必须接1kΩ的上拉电阻。
QuartusII 5.0中一个非常实用的工具是软逻辑分析仪,它通过标准JTAG的方式就提供给用户可视化的在线分析能力。只要把ByteMasterMV电缆连接在EP2S30F484的JTAG头上,添加逻辑分析文件,在里面定义好要观察的信号,触发信号、方式,时钟,采样深度等参数,编译完成后从JTAG下载到FPGA内部,就可以运行,并实时的获得图形化的分析结果。
● DSP设计
ADSP2183是的高速增强定点16位数字信号处理芯片。作为主控芯片,ADSP2183的接口主要可分为图像串行传输接口、串行通信接口、TL16C552A控制接口、字节存储区间接口、I/O空间接口、重叠数据存储区间接口、EZ-ICE控制接口及其他一些IO接口。对DSP主要就是设计存储器地址空间,ADSP2183有4个独立的存储空间:数据存储器、程序存储器、字节存储器、I/O存储器。它们都有相应的片选,支持外部访问。其中,字节存储器空间达到4MB,支持从廉价的8位存储器引导和实时存取。如图3所示,ADSP2183的所有数据线、地址线、存储器片选、中断控制和部分I/O都连到了EP2S30F484上。DSP可以像访问内部存储器一样,访问在FPGA内部配置出的RAM块,与FPGA高速的传送数据。DSP的三个外部中断源是有优先级安排的。因为如果在一场的20ms时间里面不能协助完成图像旋转所需要的计算,则会发生图像停滞或者跳变,严重影响观瞄效果。所以场中断是外部中断源中优先级最高的,接下来是UART产生的中断,因为它直接影响实时的图文混合与显示结果,最后才是控制台产生的中断,人手操作的时间和人眼感受变化的时间毕竟和以上两种相比有比较大的差异。
图3 系统硬件结构
工作频率是26.32MHz,所以这里接一个16MHz系统时钟,其内部自动输出一个精确的32MHz时钟到CLKOUT,同时给FPGA作为全局时钟使用。ADSP2183使用一个2×7的Emulator接口进行调试和仿真。观瞄系统旋转的精确角度值由系统中的方位解算器产生,以粗通道、精通道各高8位的方式表示,其中解算器是36速比的。FPGA通过组合CS0、CS1、INH这三个片选信号发送给方位解算器,然后一次连续从总线上读回粗通道高、粗通道低、精通道高、精通道低总共四个8位二进制值的角度值,DSP按顺序把四个值组合成一个19位的完整角度值。这样的角度值最高精度达到 0.02个密位(6000个密位表示360°),满足系统设计提出的精度要求。由DSP完成消像旋的协同计算,将计算结果通过DSP的数据总线返回至FPGA。
ADSP2183内部没有非易失性存储器,程序和数据必须依靠外部扩展存储器。在系统加电或复位时,如果ADSP2183的BMODE和MMAP都为低,就会以BDMA(字节DMA)的方式通过DSP的引导加载(Boot loader)机制将程序和数据转移到片上存储器中执行。过程是:ADSP2183从字节存储器空间装载最前的32个程序存储器字,然后开始执行。装载程序就在这32个字中。装载程序连续的从字节口装载,直到整个程序装载完成为止。这里使用的是SST公司的SST29LE010,8位的1Mbit EEPROM作为DSP的字节存储器。它是3.3V单电源,可以分页,每页128字节,最多1024页,支持Page-Write(页写)和JEDEC标准的在线编程,使用起来方便可靠。
红外热像仪及其控制电路以RS422方式发送串行数据,TL16C552A按照通信协议接收到,自动转换成并行数据,ADSP2183直接用程序方式从数据总线上读回。DSP发送给热像仪的串行数据也是经过TL16C552A并串转换,再由RS422驱动的。考虑到ADSP2183和外部的通信任务就是控制命令、工作参数的发送和状态字的返回,数据传输需求较低且数据流零散的特点,这里使用德州仪器公司的TL16C552A双异步通信器就可以胜任了。
另外,系统中还加入了一个串行EEPROM器件,Microchip公司93LC66B Microwire 串行EEPROM。因为电视观瞄系统中需要一些动态的参数,来进行不同的处理以适应特殊的场合需求。比如不同光学机构的零位角度不同、命令的调整、系统运行过程对特定参数或者错误信息的记录,等等。都需要系统每次能够记录这些参数,并且在断电以后存储这些参数。由于参数并不多,所以不需要额外设计复杂的FLASH存储空间。93LC66B的使用十分方便,确定好EEPROM的ORG状态,就只需要把93LC66B的DI、DO、SCK和CS这几根引脚与ADSP2183的Flag引脚正确连接,然后在DSP中对Flag编程,就可以实现对EEPROM的各种操作。
● 电源设计
现在以ASIC、DSP、FPGA等组成的系统中芯片都是低功耗设计,供电部分也变得越来越复杂。不仅对不同电平值的电压精度、输出电流、纹波、冲击等要求十分严格,而且同一个芯片的不同电平的上电时序也有了要求。整个系统的电源设计都采用了美国德州仪器公司的电源器件。
ADSP2183的供电相对比较简单,这里主要讨论FPGA的供电。手册规定,EP2S30F484的电源基本分为这几种:核心供电(Vccint)为1.2V;各个BANK的I/O口供电(Vccio),锁相环数字供电(Vccpll_d)为1.2V,锁相环模拟供电(Vccpll_a)为1.2V。还有Vccpd为3.3V),它是StratixII FPGA新定义的一个供电,其作用是为所有相关的3.3V/2.5V的配置输入缓冲器和JTAG相关引脚提供稳定可靠的供电。它要求从0~3.3V的抬升时间必须小于100ms,否则Stratix II FPAG将不能配置成功。但是如果确实不能保障这样苛刻的要求,就必须人为地把nCONFIG信号强制拉低,直到其他电源达到设计的可靠状态,以确保配置过程的正确完成。
EP2S30F484的(Vccint)是由TP54312提供,1.2V(Vccpll_a/Vccpll_d)是TP73633提供,3.3V(Vccpd)是TP78601提供,整个系统的3.3V供电是TP75533提供。不同电源的供电时序经过设计并实验测量出,是符合设计要求,当然也保证了观瞄系统的正常运行。
在每种电源设计的时候,都加入了二极管反向保护和瞬态电压抑制器进行瞬间过冲保护。同一种电源的模拟和数字部分也用电感隔离开了,相应的模拟地层和数字地层之间也物理分隔开,在合适的位置点用Ferrite Bead(铁氧体磁珠)做了连接,最大程度的减小EMI。主图像处理板是一块10层PCB的设计,电源和地就有4层,所有电源和部分时钟都在内电层或地层划分出来,信号层没有长距离的供电回路和时钟走线。
● VHDL程序设计
系统的软件设计包括对FPGA的VHDL程序编写和对DSP的汇编程序编写两部分。
在FPGA设计中采用VHDL语言设计,不仅大大简化了设计复杂逻辑电路的难度,而且可以充分发挥FPGA内部资源的优势。在Quartus II5.0集成开发环境下,对整个FPGA运算模块采用了自顶向下的设计方式。首先,用Block图的方式按照系统中所用芯片划分,设计了逻辑总体,把所有FPGA的资源合理分配到相应的物理引脚,规划好顶层逻辑。接着,在每个Block下编写VHDL程序,实现具体的控制逻辑。采用模块化、规则化和局部化的技术,既提高了设计效率,又减少设计的复杂性。
对于EP2S30F484,使用一个统一的全局时钟,并采用同步时序的设计方法。FPGA内部的所有模块都使用一个全局时钟,统一复位。在具体功能模块设计的时候,可以调用一些Altera公司的内部核和LPM功能块。这些模块具有结构独立的设计输入、高效的设计映射和工具独立的设计输入,不仅节省大量的FPGA资源,提高了设计效率,而且使系统性能得到提高。
图4 系统软件流程图
● DSP程序设计
ADSP-2183有一套完整的软件与硬件开发系统,包含一个以PC为平台的硬件仿真器ADSP218xEZIC E 和IDE(集成开发环境)VisualDSP++3.5。ADSP218xEZIC E是基于RS232串口的在线仿真器,它一边通过串口和PC的IDE通信,下载程序代码到目标DSP运行,另外一边通过设计在目标板上的Emulator的14个管脚,观察和测试DSP的端口、寄存器以及RAM的工作情况,并返回到PC的IDE界面。
● 系统软件设计
系统软件主要是由主程序和中断服务程序两部分组成,程序设计框图如图4所示。主程序首先设置ADSP-2183 内部寄存器,如中断控制寄存器ICNTL、中断屏蔽寄存器IMASK、系统控制寄存器,以建立ADSP-2183的工作模式。然后运行DSP自检程序。通过后,则要初始化UART芯片(TL16C552)、读取串行EEPROM中预存的参数,然后进入主体循环。DSP的三个外部中断源产生中断:场中断,每20ms产生一次、UART通信中断,红外热像仪及其控制电路产生、控制台中断。主要的消像旋运算、图文混合的任务,方位解算器角度读取和计算都由场中断服务程序完成,而且必须在20ms时间内及时完成。UART中断服务程序由发送和接收任务触发,当有数据被接收到或要发送,中断服务程序首先通过读状态寄存器确定是发送还是接收,然后跳转到相应服务程序中执行。其中TL16C552的初始化程序则主要完成异步串行通信协议的设置。系统界面显示的字符是16x16的矩阵,所以制作了4KB地字库,可以容纳128个中文、数字、字母、特殊符号。
结束语
本设计大大提高了观瞄系统的智能化、自动化水平,更是赋予其全天候作战能力。外场实验充分证明从目标的轮廓边缘来看,进行了8倍插值后,消像旋的效果和预期设计完全符合,锯齿效应控制得非常不错,其他各项指标均达到设计要求。还可以进一步把由ADSP2183完成的工作移植到FPGA内部,让它来完成任务调配、算法实现、控制流程等任务。这样,将进一步加大应用系统的集成度,也使得整个系统的可靠性和实时性将会有一个更好的提高。
|