新闻中心

EEPW首页 > 光电显示 > 设计应用 > 基于DSP的实时红外热成像系统的数据交换及实时显示

基于DSP的实时红外热成像系统的数据交换及实时显示

作者:时间:2006-05-07来源:网络收藏

摘要:在以PC机和DSP数字信号处理板构成的实时红外热成像系统原理的基础上,阐述了主机通过PCI口与DSP实现数据交换及在Windows下实现实时图像显示的技术。由于通过PCI口数据交换速度快,在数据显示时采用直接写屏和翻页技术,系统可达到理想图像实时显示效果。

本文引用地址:http://www.eepw.com.cn/article/225740.htm

关键词:红外图像 实时性 DSP

随着科学技术的高速发展,红外热像仪在军事、科研、工农业生产、医疗卫生等领域的应用越来越广泛。由于红外焦平面固有的非均匀性,在红外图像处理过程中,必须对每帧中的每个像元进行非均性校正处理,才能到较好的效果。因此红外图像实时处理的数据量很大,如256×256的一个红外焦平面面阵,像元数为64K,如果每个像元用12bit表示,每秒显示24帧图像,则每秒传输的数据量高达2.25Mbyte;如果要进行校正运算,计算量更大。目前国内的红外热成像系统大多采用计算机进行数据采集,用软件实现非均匀性校正。由于软件处理速度慢,很难实现实时成像,只能对单帧图像进行处理。

本文介绍采用PC机和基本DSP的数字信号处理板(数字板)构成的主从式成像系统。由于非均匀性校正的典型算法是乘累加,在一般计算机上处理速度比较慢。DSP具有高速数据处理能力,采用DSP进行图像处理的运算,通过计算机进行系统的控制和数据的显示,正好发挥软硬件的特长,从而提高了系统的运算速度。

1 系统组成及基本原理

一个完整的红外成像系统不但要具备图像信号的采集功能,还要能对图像进行实时显示,且要完成图像信号的分析及处理算法(如非均匀性校正等)。通常这些算法的运算量大,再加上要满足实时显示的要求,因此采用高速DSP芯片作为数据核心处理单元。另外,要求系统满足通用性的同时,针对不同的应用和不断出现的新处理方法,还要求系统例于功能的改进和扩展。为此,我们以PC机为主机,以TI公司的DSP(TMS320C6201)为辅助机作为数字信号处理板的核心[1~2],设计出红外图像处理系统。图1是基于DSP的实时红外热成像系统的原理图。

1.1 TMS320C6201的优点[3]

TMS320C6201是TMS320C6x系列中的高速定点数字处理芯片,是TI公司二十世纪90年代后期的最新一代DSP产品。每秒最大处理能力为1600MIPS,具有特殊的VelociTI结构独特的指令集,从而保证了它强大的运算能力、高度的并行性和良好的灵活性。同时其外围设备包括DMA控制器、主机接口(HPI)、中断选择器,能够很方便快速地与外围设备进行数据交换。

1.2 系统组成原理

系统由模拟信号板、数字信号处理板,PC机三部分构成。模拟信号用于进行信号提取,包括IRFPA、驱动信号源、前置放大器。IRFPA由信号驱动源驱动,根据外部红外光线的感应强度,输出窗形波的模拟信号,经前置放大器放大后与数字信号处理板相连。

数字信号算是板由数据采集和数据处理两部分组成。数据采集部分以一片FPGA构成控制器,用于控制整个处理板的时间同步和选择存储器及图像预处理等。数据处理部分包括一片DSP,一片双口RAM和两片RAM(SRAM和SBSRAM,分别用于静态数据和动态数据的存储)。在图像采集中,模拟信号进入A/D转换器之后,由FPGA提供采样控制,并将转换后的数字信号存入双口RAM,它为DSP提供数据。校正的参数放在主程序中,用以对图像进行校正,同时主程序还要进行其它运算,以便生成DSP处理后的图像。DRAM和SBSRAM为DSP在进行数据处理过程中提供存储空间。经过处理之后的数据可通过PCI接口与主机交换数据。

数字板通过PCI卡与计算机相连,由于PCI总线具有高速数据交换的优点(120Mbyte/S),足以满足数据实时处理的要求。数据通过DSP的HPI口,经由PCI口与PC机相连。PC机读取数字板上任意存储器上的数据,再由计算机实现实时显示。DSP的运行程序由PC机通过PCI口加载到DSP上运行。

2 数据的交换及Windows下数据实时显示

在主从式结构系统中,主机与从机的数据交换及数据的显示是十分关键的环节,下面将重点讲述其实现方法。本系统的Windows程序是在C++ Builder下开发的。

2.1 数据的交换

2.1.1 实时性

根据人眼的视觉特点,数字图像成像系统每秒钟至少要读取和处理合成24帧图像(假设对于256×256×8bit=64KByte),则进行实时数据处理时要求每秒处理数据:256×256×8bit×24帧=1.5Mbyte,并将它显示出来,图像才不失连续性。这样就要求相邻两帧连续采术的图像数据的读取及合成时间间隔不能过大,因此必须满足“数据读取时间≤帧时隔”。主机通过PCI口对DSP芯片进行访问,采用PCI总线可以保证高速的数据交换。为了实现显示实时性,则要求数据读取的间隔越小越好。

2.1.2 PCI卡的驱动问题

在Windows开发环境下,C++ Builder不能直接访问PCI设备,需借助其它软件实现。KRFTech公司主推产品WinDriver是进行PCI接口程序开发的首选驱动程序开发工具。用户要访问PCI口上的数字信号处理卡,一般来说有两种途径[4]:一是直接访问,即用C++ Builder直接访问PCI设备的接口函数(这种方法需要相关软件支持);二是间接访问,即用C++ Builder调用其它语言(如汇编或C/C++等)编写的底层驱动模块(一般封装成动态链接库DLL形式)实现。本系统采用调用动态链接库的方法。

2.1.3 从DSP读取数据的过程

本系统对于PCI卡的底层驱动程序封装成动态链接库(evm6X.dll),其头文件为evm6xdll.h,以便其它函数十分方便地调用。在调用动态链接库(DLL)时,首先要声明DLL,然后就可以像调用C++函数一样使用动态链接库中的函数了。C++ Builder允许调用其它语言编写的动态链接库,而用户一般不知道其它函数是用何种语言编程,因此应该注意函数标识符和参数传递,以便解决调用的约定问题。

用C++ Builder编写的CP机读取数字板数据的模块化程序如下:

#inchude evm6xdll.h

HANDLE hBd=NULL; //板子句柄

Short iBd=0; //板号

BOOL bExcl=1; //独占打开=TRUE

LPVOID hHpi=NULL; //HPI接口句柄

short iMp; //Map选择器=MAP0 //DSP启动方式

EVM6XDLL_CLOCK_MODE clkMode;

EVM6XDLL_ENDIAN_MODE ednMode;

ULONG ulDW[1024*16]; //定义数据缓存

Void ReadWordFromMem (LPVOID hHpi,ULONG ulDataAddr, ULONG ulDataWord,ULONG Ilength, ULONG *ulDW)

{

hBd=evm6x_open(iBd,bExcl); /打开板卡

evm6x_reset_board(hBd); //对目标进行reset

evm6x_set_board_config(hBd,clkMode,ednMode,0xff); //对目标板进行初始化配置

mode=iMp ? HPI_BOOT : HPI_BOOT_MAP0; //设置启动方式

evm6x_reset_dsp(hBd,mode); //复位DSP

hHpi=evm6x_hpi_open(hBd); //建立从主机到hpi的连接

if(!evm6x_hpi_read(hHpi,ulDW,ulLength,ulDataAddr)) //从DSP读取数据

{ShowMessage(内存读时发生错误!);} //系统复位操作

evm6x_hpi_close(hHpi);

evm6x_unreset_dsp(hBd);

evm6x_close(hBd);

}

由于PCI口数据交换快速度(可高达120Mbyte/s),且能方便地读取数字板上内存的数据实现数据交换,因此,通过PCI口实现PC机与数字板数据的交换便于实时系统的实现。

2.2 数据的实时显示

通过PCI口读取的数据为每帧中单个像元的亮度值,因而要在Windows下实现实时显示,不但要解决颜色配置问题,而且要求图像实时显示速度快,因此本系统在Windows下采用写屏技术实现图像的显示。

2.2.1 颜色控制

由于红外图像传感器只能反映外界温度的高低,因而在处理过程中,对焦平面的每个像元采用8bit(256灰度)来表示。而Windows下颜色表的颜色采用的是R、G、B即红、绿、蓝三基色,每种颜色都是从0到255。由这三种基色可构成屏幕上的各种颜色(即24位真彩色)。如果将每个像元的RGB值均设为所取得的像元亮度值,则得到的颜色为只有亮暗的灰度图像(256级灰度);如果按照其256级灰度来进行伪彩色处理,则得到加伪彩色的图像。为了使伪彩色处理,则得到加伪彩色的图像。为了使伪彩色图像的显示得到增强,可以只用256颜色表中的部分颜色来表示。通过选择差异较大的颜色来表示热图像中帧测目标的温度范围,即可得到增强图像显示效果的目的。

2.2.2 实时显示的实现

将数字板上所读取的帧结束点标志(FLAG)用于实现帧同步控制,以保证每帧图像的刷新以及图像中间隔时间的延时。由于在Window下不能像DOS那样直接访问视频存储器,因而系统采用DirectDraw技术[5],并利用Win32下提供的DirectDraw API函数来实现。Win32中的DirectDraw提供了对屏幕以及屏幕分辨率的控制而不需要操作SVGA芯片,可以实现极快的图像显示速度、线性内存和翻页。DirectDraw还可对屏幕的分辨率及色彩模式进行配置。通过设备屏幕的主表面(前台Buffer)和附属表面(后台Buffer),开启两帧图像的视频存储空间。这样的直接访问视频存储器,将图形数据极快地合成图像代码,提高显示速度。同时,在图像写显示时,首先将图像写到后台,待帧标记来时,再将图像传到前台(翻页技术)。这种翻页技术的使用,可以从视觉上形成整帧像显示的切换,而非单点的切换,从而达到平滑的实时图像显示的视觉效果,而时还可以延缓读数的时间,实现实时处理。图2是图像实时显示处理流程图。

3 实验结果

图3是系统通过PCI口实现读数和实时显示而获得的128×128面阵256级灰度的图像。实验表示,该系统可以获得理想的平滑图像实时显示结果,且图像清晰,结果较为理想。

理论分析与实验研究表明,本文介绍的基于DSP的红外热成像系统,由于采用PC机的PCI口实现数据交换,具有高速的数据交换能力;通过对数据进行实时显示处理,能实现图像的灰度和伪彩色处理;采用 Windows下的DirectDraw技术,可直接访问视频存储器,实现图像数据的直接写屏和图像的翻面技术;用帧结束点作为帧同步信号,可实现红外图像平滑的实时显示,达到理想的图像显示视觉效果。

红外热像仪相关文章:红外热像仪原理


评论


相关推荐

技术专区

关闭