基于0MAP的便攜式紅外熱像儀設(shè)計(jì)
紅外熱像儀是利用紅外探測(cè)器、光學(xué)成像物鏡和光機(jī)掃描系統(tǒng)(目前先進(jìn)的焦平面技術(shù)省去了光機(jī)掃描系統(tǒng))接收被測(cè)目標(biāo)的紅外輻射能量分布圖形反映到紅外探測(cè)器的光敏元上,在光學(xué)系統(tǒng)和紅外探測(cè)器之間,有一個(gè)光機(jī)掃描機(jī)構(gòu)(焦平面熱像儀無此機(jī)構(gòu))對(duì)被測(cè)物體的紅外熱像進(jìn)行掃描,并聚焦在單元或分光探測(cè)器上。由探測(cè)器將紅外輻射能轉(zhuǎn)換成電信號(hào),經(jīng)放大處理、轉(zhuǎn)換為標(biāo)準(zhǔn)視頻信號(hào),通過電視屏或監(jiān)視器顯示紅外熱像圖。這種熱像圖與物體表面的熱分布場(chǎng)相對(duì)應(yīng)。除顯示紅外熱輻射圖像,紅外熱像儀還能提供精確的非接觸溫度測(cè)量功能。
從帶有掃描裝置的第一代熱像儀到焦平面陣列式結(jié)構(gòu)的凝成像紅外熱像儀,紅外熱像儀已從笨重、操作復(fù)雜發(fā)展成為輕巧、操作方便簡(jiǎn)潔的便攜式手持設(shè)備。
高性能處理器芯片的不斷發(fā)展,給紅外熱像儀帶來了新的動(dòng)力。利用恰當(dāng)?shù)奶幚砥鳎梢蕴岣邎D像的處理速度,并設(shè)計(jì)出更精巧的產(chǎn)品。本文就此討論基于非制冷焦平面探測(cè)器和高性能雙核處理器OMAPl510的紅外熱像儀的設(shè)計(jì)。
1 硬件體系結(jié)構(gòu)
由于被測(cè)目標(biāo)物體紅外輻射的熱像分布圖信號(hào)非常弱,與可見光圖像相比,缺少層次和立體感。因此,在實(shí)際探測(cè)過程中為更有效地判斷被測(cè)目標(biāo)的紅外熱分布場(chǎng),常采用一些輔助措施增加儀器的實(shí)用功能,如圖像亮度/對(duì)比度的控制、實(shí)標(biāo)校正、偽色彩描繪等高線和直接進(jìn)行數(shù)學(xué)運(yùn)算,打印等。
本便攜式紅外熱像儀主要由具有320×240非制冷焦平面探測(cè)器的紅外攝像頭、預(yù)處理單元、OMAPl510處理器及其外圍器件組成,如圖1所示。
通過紅外攝像頭采集的320×2AO圖像數(shù)據(jù)量較大,自探測(cè)器轉(zhuǎn)換而來的電信號(hào)經(jīng)采樣后,先經(jīng)過預(yù)處理模塊,將數(shù)據(jù)轉(zhuǎn)換成16位數(shù)據(jù)交由OMAPl510處理。0MAPl510則需要對(duì)圖像數(shù)據(jù)進(jìn)行窗位窗寬處理、256色的偽彩轉(zhuǎn)換、亮度對(duì)比度調(diào)節(jié)等,并最終在320×240的液晶屏上顯示。
OMAPl510處理器是TI公司生產(chǎn)的高性能單芯片雙核處理器.它主要由TMS320C55x DSP內(nèi)核、低功耗增強(qiáng)型ARM925T。微處理器、交通控制器(Traffic Controller)、強(qiáng)大的DMA控制器和豐富的外圍設(shè)備等組成。
TI增強(qiáng)型ARM925T核采用ARM RISC體系結(jié)構(gòu),工作主頻為175MHz。它包括存儲(chǔ)器管理單元、16KB的高速指令緩沖存儲(chǔ)器(Cache)、8KB的數(shù)據(jù)高速緩沖存儲(chǔ)器和17個(gè)字的寫緩沖器。片內(nèi)有1.5MB的內(nèi)部SRAM,為液晶顯示等應(yīng)用提供大量的數(shù)據(jù)和代碼存儲(chǔ)空間。它有13個(gè)內(nèi)部中斷和19個(gè)外部中斷,采用兩級(jí)中斷管理。此外,核內(nèi)還有ARM CPl5協(xié)處理器和保護(hù)模塊。
C55x DSP核具有最佳的功耗性能比,工作主頻為200MHz。它增加了三個(gè)硬件加速器:離散余弦變換,反相離散余弦變換加速器、運(yùn)動(dòng)估計(jì)運(yùn)算加速器和半像素插值加速器。C55x DSP核內(nèi)部有32K字的雙存取SRAN,48K字的單存取SRAM和12K字的高速指令緩存。此外,核內(nèi)還包含存儲(chǔ)器管理單元(MMU)、兩級(jí)中斷管理器和直接存儲(chǔ)器訪問(DMA)控制器。
交通控制器是ARM925T處理器與各存儲(chǔ)芯片進(jìn)行數(shù)據(jù)交換的中樞,同時(shí)也控制DSP、DMA控制器及本地總線接口對(duì)各存儲(chǔ)器的訪問。根據(jù)片外存儲(chǔ)器的特性,交通控制器可以靈活配置訪問的字寬、周期及整字訪問的突發(fā)式訪問。
OMAPl510芯片具有豐富的外圍接口,如液晶控制器、存儲(chǔ)器接口、攝像頭接口、藍(lán)牙接口、通用異步收發(fā)器、I2C主機(jī)接口、脈寬音頻發(fā)生器、串行接口、主客戶機(jī)USB口、安全數(shù)字多媒體卡控制器(SD/MMC)接口、鍵盤接口等。
2 軟件構(gòu)架
軟件構(gòu)架如圖2所示。MPU側(cè)加載嵌入式Linux操作系統(tǒng),實(shí)現(xiàn)對(duì)前端圖像數(shù)據(jù)的讀取,對(duì)LCD、觸摸屏、鍵盤、SD卡等設(shè)備的訪問,與DSP的通信,以及Qt應(yīng)用程序的運(yùn)行等。應(yīng)用程序?qū)CD等外圍設(shè)備的訪問都由相應(yīng)的Linux驅(qū)動(dòng)程序?qū)崿F(xiàn)。MPU對(duì)DSP的訪問也是把DSP當(dāng)作設(shè)備,在MPU倒加載所謂的DSP驅(qū)動(dòng)實(shí)現(xiàn)。DSP側(cè)在DSP/BIOS的基礎(chǔ)上構(gòu)造進(jìn)行數(shù)據(jù)處理的任務(wù)(tasks),對(duì)圖像數(shù)據(jù)進(jìn)行運(yùn)算處理,如窗位窗寬調(diào)節(jié)、偽彩查色、亮度和對(duì)比度調(diào)節(jié)等。 MPU與DSP之間的通信有三種實(shí)現(xiàn)方式:mailbox寄存器、MPU接口和共享內(nèi)存。
(1)MPU/DSP mailbox寄存器
MPU與DSP處理器通過mailbox中斷機(jī)制通信。在公共TIPB空間有4個(gè)mailbox寄存器設(shè)備被雙核共享。其中,2個(gè)mailbox寄存器用來讓MPU發(fā)消息并向DSP發(fā)出中斷信號(hào),另外2個(gè)用來讓DSP發(fā)消息并向MPU發(fā)出中斷請(qǐng)求信號(hào)。每個(gè)mailbox寄存器設(shè)備由2個(gè)16位寄存器和l位標(biāo)志寄存器組成。發(fā)出中斷的處理器可以用一個(gè)16位寄存器發(fā)送一個(gè)字節(jié)的數(shù)據(jù)給接收中斷的處理器,而用另一個(gè)16位寄存器發(fā)送一個(gè)字的命令。
當(dāng)一個(gè)處理器向命令寄存器寫入合適的命令字并對(duì)另一個(gè)處理器產(chǎn)生中斷,設(shè)置了合適的標(biāo)志寄存器,通信即實(shí)現(xiàn)。接收中斷方的處理器通過讀取命令字、清除標(biāo)志寄存器確認(rèn)這次中斷。此時(shí)每個(gè)mailbox寄存器中的數(shù)據(jù)寄存器有效,可以傳送2個(gè)字的數(shù)據(jù)。
(2)MPU Interface(MPU)
MPUI允許MPU、系統(tǒng)DMA控制器與DSP及其外圍通信。MPUI允許訪問所有的DSP內(nèi)存空間(16MB)和公有外圍總線。所以,MPU和系統(tǒng)DMA控制器都有訪問完整的DSP I/O空間(128KB)的讀寫權(quán)限,包括DSP公有的外圍控制寄存器。
(3)MPU/DSP共享內(nèi)存
OMAP1510通過交通控制器(Traffic Controller)實(shí)現(xiàn)了一種共享內(nèi)存結(jié)構(gòu)。所以,MPU和DSP都可以訪問相同的共享內(nèi)存SRAM(192KB)及EMIFF、EMIFS內(nèi)存空間。MPU通過DSP的內(nèi)存管理單元。MMU確定DSP的哪塊區(qū)域?yàn)榭梢杂脕碓L問的共享內(nèi)存。通過分配共享內(nèi)存區(qū)域,定義好MPU和DSP之間訪問此共享內(nèi)存的協(xié)議,處理器之間的交流機(jī)制即可實(shí)現(xiàn)。
本系統(tǒng)MPU與DSP的通信是結(jié)合mailbox寄存器和共享內(nèi)存實(shí)現(xiàn)的。由于圖像數(shù)據(jù)較大,而mailbox的寄存器每次通信只能發(fā)送2×16bits的數(shù)據(jù),所以僅用mailbox不能高效地實(shí)現(xiàn)大數(shù)據(jù)量的共享。共享內(nèi)存雖然可以讓MPU與DSP共享一段內(nèi)存。但卻缺少同步機(jī)制。用mailbox registers建立握手信號(hào)(中斷),可以使MPU和DSP同步訪問共享內(nèi)存。當(dāng)MPU將原始數(shù)據(jù)寫入共享內(nèi)存后,通過寫mailbox發(fā)送消息并向DSP發(fā)出中斷信號(hào)來通知DSP處理數(shù)據(jù);而當(dāng)DSP處理數(shù)據(jù)完畢,也通過寫mailbox寄存器發(fā)送消息并向MPU發(fā)出中斷信號(hào),通知MPU數(shù)據(jù)準(zhǔn)備好。
在測(cè)試過程中發(fā)現(xiàn),MPU和DSP在通過mailbox通信時(shí)會(huì)有延時(shí),當(dāng)數(shù)據(jù)量、運(yùn)算量較小時(shí),采用雙核機(jī)制的效率較低;而當(dāng)數(shù)據(jù)量和運(yùn)算量較大時(shí),雙核機(jī)制遠(yuǎn)比僅用MPU時(shí)效率高。MPU與DSP通信之問的延時(shí)對(duì)整個(gè)系統(tǒng)的影響不大。本系統(tǒng)在動(dòng)態(tài)顯示320×240、16位的圖像數(shù)據(jù)時(shí),DSP對(duì)數(shù)據(jù)做窗位窗寬處理、偽彩查表,并將數(shù)據(jù)轉(zhuǎn)換成LCD可接收的5—6—5格式,顯示速率約為18幀/秒。而這些操作都交由MPU處理時(shí),顯示速率只有11.5幀/秒。
3 Qt應(yīng)用程序設(shè)計(jì)
面向嵌入式系統(tǒng)的GUI主要有MiniGUI、OpenGUI、MicomWindows、Ot/Embedded幾種。本系統(tǒng)采用Qt/Embedded。
Qt是挪威Troll Tech開發(fā)的一個(gè)多平臺(tái)的C++圖形用戶界面工具包。它使用C++語(yǔ)言,具有面向?qū)ο缶幊痰奶攸c(diǎn),因而采用Qt編寫的程序易懂且易于維護(hù)。
Qt/Embedded是基于有幀緩沖(frame-buffer)支持的Linux嵌入式平臺(tái)的獨(dú)立的C++圖形用戶界面應(yīng)用程序平臺(tái)的開發(fā)工具。它包含一套完整的GUI類、操作系統(tǒng)封裝、數(shù)據(jù)結(jié)構(gòu)類、效用和綜合類,可直接對(duì)framebuffer寫操作,避免用戶使用復(fù)雜的Xlib/Xserver系統(tǒng)。它對(duì)嵌入式用戶提供全部源碼,并允許修改及進(jìn)一步調(diào)試。在Qt/embedded的移植過程中,當(dāng)所使用的設(shè)備(如觸摸屏、鍵盤)不是Qt所支持的標(biāo)準(zhǔn)控件時(shí),需要修改Qt/embedded源代碼,以實(shí)現(xiàn)Qt程序?qū)υO(shè)備的響應(yīng)。
本系統(tǒng)Qt應(yīng)用程序圖像顯示部分的軟件流程如圖3所示。其用戶界面具有窗口風(fēng)格,從主菜單中選擇不同選項(xiàng),可以彈出相應(yīng)的功能窗口:全屏顯示紅外熱圖;回放保存在存儲(chǔ)卡上的圖像(BMP位圖);刪除存儲(chǔ)卡上的圖像、感興趣點(diǎn)溫度顯示等。點(diǎn)擊窗口上的退出按鈕,可以關(guān)閉相應(yīng)功能窗口。操作過程既可以通過按鍵完成,也可以通過點(diǎn)擊觸摸屏實(shí)現(xiàn)。整個(gè)GUI界面風(fēng)格簡(jiǎn)潔,操作簡(jiǎn)單。
本文通過便攜式紅外熱像儀的開發(fā)設(shè)計(jì)過程,說明了非制冷紅外探測(cè)熱像儀的原理,探討了OMAPl510手持終端的實(shí)現(xiàn)方法。由此設(shè)計(jì)出的紅外熱像儀的各項(xiàng)性能指標(biāo)都達(dá)到了較高水平,如可以實(shí)現(xiàn)紅外熱像的高速動(dòng)態(tài)攝像、圖片存儲(chǔ)到SD卡、圖片回放、USB口圖像傳輸?shù)裙δ?。?shí)踐表明,雙核結(jié)構(gòu)的0MAP系列是一種處理能力強(qiáng)、功耗低、結(jié)構(gòu)緊湊的嵌入式系統(tǒng)芯片。它將在需要較強(qiáng)處理能力的便攜式裝置中表現(xiàn)出優(yōu)良特性。