<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 光電顯示 > 設計應用 > 基于DSP的實(shí)時(shí)紅外熱成像系統的數據交換及實(shí)時(shí)顯示

基于DSP的實(shí)時(shí)紅外熱成像系統的數據交換及實(shí)時(shí)顯示

作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:在以PC機和DSP數字信號處理板構成的實(shí)時(shí)紅外熱成像系統原理的基礎上,闡述了主機通過(guò)PCI口與DSP實(shí)現數據交換及在Windows下實(shí)現實(shí)時(shí)圖像顯示的技術(shù)。由于通過(guò)PCI口數據交換速度快,在數據顯示時(shí)采用直接寫(xiě)屏和翻頁(yè)技術(shù),系統可達到理想圖像實(shí)時(shí)顯示效果。

本文引用地址:http://dyxdggzs.com/article/225740.htm

關(guān)鍵詞:紅外圖像 實(shí)時(shí)性 DSP

隨著(zhù)科學(xué)技術(shù)的高速發(fā)展,紅外熱像儀在軍事、科研、工農業(yè)生產(chǎn)、醫療衛生等領(lǐng)域的應用越來(lái)越廣泛。由于紅外焦平面固有的非均勻性,在紅外圖像處理過(guò)程中,必須對每幀中的每個(gè)像元進(jìn)行非均性校正處理,才能到較好的效果。因此紅外圖像實(shí)時(shí)處理的數據量很大,如256×256的一個(gè)紅外焦平面面陣,像元數為64K,如果每個(gè)像元用12bit表示,每秒顯示24幀圖像,則每秒傳輸的數據量高達2.25Mbyte;如果要進(jìn)行校正運算,計算量更大。目前國內的紅外熱成像系統大多采用計算機進(jìn)行數據采集,用軟件實(shí)現非均勻性校正。由于軟件處理速度慢,很難實(shí)現實(shí)時(shí)成像,只能對單幀圖像進(jìn)行處理。

本文介紹采用PC機和基本DSP的數字信號處理板(數字板)構成的主從式成像系統。由于非均勻性校正的典型算法是乘累加,在一般計算機上處理速度比較慢。DSP具有高速數據處理能力,采用DSP進(jìn)行圖像處理的運算,通過(guò)計算機進(jìn)行系統的控制和數據的顯示,正好發(fā)揮軟硬件的特長(cháng),從而提高了系統的運算速度。

1 系統組成及基本原理

一個(gè)完整的紅外成像系統不但要具備圖像信號的采集功能,還要能對圖像進(jìn)行實(shí)時(shí)顯示,且要完成圖像信號的分析及處理算法(如非均勻性校正等)。通常這些算法的運算量大,再加上要滿(mǎn)足實(shí)時(shí)顯示的要求,因此采用高速DSP芯片作為數據核心處理單元。另外,要求系統滿(mǎn)足通用性的同時(shí),針對不同的應用和不斷出現的新處理方法,還要求系統例于功能的改進(jìn)和擴展。為此,我們以PC機為主機,以TI公司的DSP(TMS320C6201)為輔助機作為數字信號處理板的核心[1~2],設計出紅外圖像處理系統。圖1是基于DSP的實(shí)時(shí)紅外熱成像系統的原理圖。

1.1 TMS320C6201的優(yōu)點(diǎn)[3]

TMS320C6201是TMS320C6x系列中的高速定點(diǎn)數字處理芯片,是TI公司二十世紀90年代后期的最新一代DSP產(chǎn)品。每秒最大處理能力為1600MIPS,具有特殊的VelociTI結構獨特的指令集,從而保證了它強大的運算能力、高度的并行性和良好的靈活性。同時(shí)其外圍設備包括DMA控制器、主機接口(HPI)、中斷選擇器,能夠很方便快速地與外圍設備進(jìn)行數據交換。

1.2 系統組成原理

系統由模擬信號板、數字信號處理板,PC機三部分構成。模擬信號用于進(jìn)行信號提取,包括IRFPA、驅動(dòng)信號源、前置放大器。IRFPA由信號驅動(dòng)源驅動(dòng),根據外部紅外光線(xiàn)的感應強度,輸出窗形波的模擬信號,經(jīng)前置放大器放大后與數字信號處理板相連。

數字信號算是板由數據采集和數據處理兩部分組成。數據采集部分以一片FPGA構成控制器,用于控制整個(gè)處理板的時(shí)間同步和選擇存儲器及圖像預處理等。數據處理部分包括一片DSP,一片雙口RAM和兩片RAM(SRAM和SBSRAM,分別用于靜態(tài)數據和動(dòng)態(tài)數據的存儲)。在圖像采集中,模擬信號進(jìn)入A/D轉換器之后,由FPGA提供采樣控制,并將轉換后的數字信號存入雙口RAM,它為DSP提供數據。校正的參數放在主程序中,用以對圖像進(jìn)行校正,同時(shí)主程序還要進(jìn)行其它運算,以便生成DSP處理后的圖像。DRAM和SBSRAM為DSP在進(jìn)行數據處理過(guò)程中提供存儲空間。經(jīng)過(guò)處理之后的數據可通過(guò)PCI接口與主機交換數據。

數字板通過(guò)PCI卡與計算機相連,由于PCI總線(xiàn)具有高速數據交換的優(yōu)點(diǎn)(120Mbyte/S),足以滿(mǎn)足數據實(shí)時(shí)處理的要求。數據通過(guò)DSP的HPI口,經(jīng)由PCI口與PC機相連。PC機讀取數字板上任意存儲器上的數據,再由計算機實(shí)現實(shí)時(shí)顯示。DSP的運行程序由PC機通過(guò)PCI口加載到DSP上運行。

2 數據的交換及Windows下數據實(shí)時(shí)顯示

在主從式結構系統中,主機與從機的數據交換及數據的顯示是十分關(guān)鍵的環(huán)節,下面將重點(diǎn)講述其實(shí)現方法。本系統的Windows程序是在C++ Builder下開(kāi)發(fā)的。

2.1 數據的交換

2.1.1 實(shí)時(shí)性

根據人眼的視覺(jué)特點(diǎn),數字圖像成像系統每秒鐘至少要讀取和處理合成24幀圖像(假設對于256×256×8bit=64KByte),則進(jìn)行實(shí)時(shí)數據處理時(shí)要求每秒處理數據:256×256×8bit×24幀=1.5Mbyte,并將它顯示出來(lái),圖像才不失連續性。這樣就要求相鄰兩幀連續采術(shù)的圖像數據的讀取及合成時(shí)間間隔不能過(guò)大,因此必須滿(mǎn)足“數據讀取時(shí)間≤幀時(shí)隔”。主機通過(guò)PCI口對DSP芯片進(jìn)行訪(fǎng)問(wèn),采用PCI總線(xiàn)可以保證高速的數據交換。為了實(shí)現顯示實(shí)時(shí)性,則要求數據讀取的間隔越小越好。

2.1.2 PCI卡的驅動(dòng)問(wèn)題

在Windows開(kāi)發(fā)環(huán)境下,C++ Builder不能直接訪(fǎng)問(wèn)PCI設備,需借助其它軟件實(shí)現。KRFTech公司主推產(chǎn)品WinDriver是進(jìn)行PCI接口程序開(kāi)發(fā)的首選驅動(dòng)程序開(kāi)發(fā)工具。用戶(hù)要訪(fǎng)問(wèn)PCI口上的數字信號處理卡,一般來(lái)說(shuō)有兩種途徑[4]:一是直接訪(fǎng)問(wèn),即用C++ Builder直接訪(fǎng)問(wèn)PCI設備的接口函數(這種方法需要相關(guān)軟件支持);二是間接訪(fǎng)問(wèn),即用C++ Builder調用其它語(yǔ)言(如匯編或C/C++等)編寫(xiě)的底層驅動(dòng)模塊(一般封裝成動(dòng)態(tài)鏈接庫DLL形式)實(shí)現。本系統采用調用動(dòng)態(tài)鏈接庫的方法。

2.1.3 從DSP讀取數據的過(guò)程

本系統對于PCI卡的底層驅動(dòng)程序封裝成動(dòng)態(tài)鏈接庫(evm6X.dll),其頭文件為evm6xdll.h,以便其它函數十分方便地調用。在調用動(dòng)態(tài)鏈接庫(DLL)時(shí),首先要聲明DLL,然后就可以像調用C++函數一樣使用動(dòng)態(tài)鏈接庫中的函數了。C++ Builder允許調用其它語(yǔ)言編寫(xiě)的動(dòng)態(tài)鏈接庫,而用戶(hù)一般不知道其它函數是用何種語(yǔ)言編程,因此應該注意函數標識符和參數傳遞,以便解決調用的約定問(wèn)題。

用C++ Builder編寫(xiě)的CP機讀取數字板數據的模塊化程序如下:

#inchude evm6xdll.h

HANDLE hBd=NULL; //板子句柄

Short iBd=0; //板號

BOOL bExcl=1; //獨占打開(kāi)=TRUE

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

short iMp; //Map選擇器=MAP0 //DSP啟動(dòng)方式

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); /打開(kāi)板卡

evm6x_reset_board(hBd); //對目標進(jìn)行reset

evm6x_set_board_config(hBd,clkMode,ednMode,0xff); //對目標板進(jìn)行初始化配置

mode=iMp ? HPI_BOOT : HPI_BOOT_MAP0; //設置啟動(dòng)方式

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

hHpi=evm6x_hpi_open(hBd); //建立從主機到hpi的連接

if(!evm6x_hpi_read(hHpi,ulDW,ulLength,ulDataAddr)) //從DSP讀取數據

{ShowMessage(內存讀時(shí)發(fā)生錯誤!);} //系統復位操作

evm6x_hpi_close(hHpi);

evm6x_unreset_dsp(hBd);

evm6x_close(hBd);

}

由于PCI口數據交換快速度(可高達120Mbyte/s),且能方便地讀取數字板上內存的數據實(shí)現數據交換,因此,通過(guò)PCI口實(shí)現PC機與數字板數據的交換便于實(shí)時(shí)系統的實(shí)現。

2.2 數據的實(shí)時(shí)顯示

通過(guò)PCI口讀取的數據為每幀中單個(gè)像元的亮度值,因而要在Windows下實(shí)現實(shí)時(shí)顯示,不但要解決顏色配置問(wèn)題,而且要求圖像實(shí)時(shí)顯示速度快,因此本系統在Windows下采用寫(xiě)屏技術(shù)實(shí)現圖像的顯示。

2.2.1 顏色控制

由于紅外圖像傳感器只能反映外界溫度的高低,因而在處理過(guò)程中,對焦平面的每個(gè)像元采用8bit(256灰度)來(lái)表示。而Windows下顏色表的顏色采用的是R、G、B即紅、綠、藍三基色,每種顏色都是從0到255。由這三種基色可構成屏幕上的各種顏色(即24位真彩色)。如果將每個(gè)像元的RGB值均設為所取得的像元亮度值,則得到的顏色為只有亮暗的灰度圖像(256級灰度);如果按照其256級灰度來(lái)進(jìn)行偽彩色處理,則得到加偽彩色的圖像。為了使偽彩色處理,則得到加偽彩色的圖像。為了使偽彩色圖像的顯示得到增強,可以只用256顏色表中的部分顏色來(lái)表示。通過(guò)選擇差異較大的顏色來(lái)表示熱圖像中幀測目標的溫度范圍,即可得到增強圖像顯示效果的目的。

2.2.2 實(shí)時(shí)顯示的實(shí)現

將數字板上所讀取的幀結束點(diǎn)標志(FLAG)用于實(shí)現幀同步控制,以保證每幀圖像的刷新以及圖像中間隔時(shí)間的延時(shí)。由于在Window下不能像DOS那樣直接訪(fǎng)問(wèn)視頻存儲器,因而系統采用DirectDraw技術(shù)[5],并利用Win32下提供的DirectDraw API函數來(lái)實(shí)現。Win32中的DirectDraw提供了對屏幕以及屏幕分辨率的控制而不需要操作SVGA芯片,可以實(shí)現極快的圖像顯示速度、線(xiàn)性?xún)却婧头?yè)。DirectDraw還可對屏幕的分辨率及色彩模式進(jìn)行配置。通過(guò)設備屏幕的主表面(前臺Buffer)和附屬表面(后臺Buffer),開(kāi)啟兩幀圖像的視頻存儲空間。這樣的直接訪(fǎng)問(wèn)視頻存儲器,將圖形數據極快地合成圖像代碼,提高顯示速度。同時(shí),在圖像寫(xiě)顯示時(shí),首先將圖像寫(xiě)到后臺,待幀標記來(lái)時(shí),再將圖像傳到前臺(翻頁(yè)技術(shù))。這種翻頁(yè)技術(shù)的使用,可以從視覺(jué)上形成整幀像顯示的切換,而非單點(diǎn)的切換,從而達到平滑的實(shí)時(shí)圖像顯示的視覺(jué)效果,而時(shí)還可以延緩讀數的時(shí)間,實(shí)現實(shí)時(shí)處理。圖2是圖像實(shí)時(shí)顯示處理流程圖。

3 實(shí)驗結果

圖3是系統通過(guò)PCI口實(shí)現讀數和實(shí)時(shí)顯示而獲得的128×128面陣256級灰度的圖像。實(shí)驗表示,該系統可以獲得理想的平滑圖像實(shí)時(shí)顯示結果,且圖像清晰,結果較為理想。

理論分析與實(shí)驗研究表明,本文介紹的基于DSP的紅外熱成像系統,由于采用PC機的PCI口實(shí)現數據交換,具有高速的數據交換能力;通過(guò)對數據進(jìn)行實(shí)時(shí)顯示處理,能實(shí)現圖像的灰度和偽彩色處理;采用 Windows下的DirectDraw技術(shù),可直接訪(fǎng)問(wèn)視頻存儲器,實(shí)現圖像數據的直接寫(xiě)屏和圖像的翻面技術(shù);用幀結束點(diǎn)作為幀同步信號,可實(shí)現紅外圖像平滑的實(shí)時(shí)顯示,達到理想的圖像顯示視覺(jué)效果。

紅外熱像儀相關(guān)文章:紅外熱像儀原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>