文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)04-0033-04
紅外成像技術(shù)早期在軍事領(lǐng)域有著廣泛的應(yīng)用[1],,隨著非制冷紅外熱成像技術(shù)的生產(chǎn)成本大幅度降低以及紅外成像和測(cè)溫具有非接觸,、無損等特點(diǎn),該產(chǎn)品的應(yīng)用目前已延伸到了電力,、消防,、工業(yè),、醫(yī)療、安防等各個(gè)領(lǐng)域,。
常見的熱像儀都是以FPGA、DSP,、ARM為核心實(shí)現(xiàn),,其中以FPGA為核心的嵌入系統(tǒng)[2]具有并行處理和實(shí)時(shí)性強(qiáng)的優(yōu)點(diǎn),只是FPGA在任務(wù)調(diào)度,、網(wǎng)絡(luò)協(xié)議等功能設(shè)計(jì)上處理起來較為復(fù)雜,。以ARM為核心的嵌入系統(tǒng)[3]能夠輕松實(shí)現(xiàn)多任務(wù)調(diào)度、移植各種復(fù)雜的網(wǎng)絡(luò)協(xié)議及實(shí)現(xiàn)多種IO接口,,但ARM的處理器架構(gòu)在實(shí)時(shí)性和高吞吐量上能力較差,。
為實(shí)現(xiàn)更高性價(jià)比,滿足紅外圖像數(shù)據(jù)處理和傳輸要求,,本文提出以TI公司的DM642處理器為核心設(shè)計(jì)紅外熱像儀,。從硬件上看,該處理器主頻能夠工作在600 MHz以上,,并且片內(nèi)具有多總線,、多處理器單元,具有多種IO總線和多通道EDMA,,加上片內(nèi)自帶的VP口,、EMIF接口和EMAC控制器,能夠無縫連接外部設(shè)備,,如FPGA,、SDRAM、FLASH,、網(wǎng)絡(luò)物理層芯片等,。同時(shí)為了降低設(shè)計(jì)復(fù)雜性和更好地利用處理器硬件資源,TI公司還針對(duì)6000系列的高性能DSP處理器,,提供BIOS操作系統(tǒng),、DDK驅(qū)動(dòng)開發(fā)包、NDK網(wǎng)絡(luò)協(xié)議棧開發(fā)包以及RF5程序框架等,。利用DM642和TI達(dá)芬奇多核系列DSP處理器的軟硬件通用性,,基于DM642設(shè)計(jì)的嵌入系統(tǒng)還可以很方便地移植到性能更強(qiáng)的達(dá)芬奇平臺(tái)。
1 設(shè)計(jì)總體框架
總體設(shè)計(jì)如圖1所示,。首先紅外探測(cè)器把熱輻射轉(zhuǎn)換為電信號(hào)數(shù)據(jù),;其次FPGA接收探測(cè)器串行輸出的數(shù)據(jù)并調(diào)整時(shí)序后加入行同步和場(chǎng)同步信號(hào)形成RAW格式的熱圖數(shù)據(jù),這種RAW格式的數(shù)據(jù)可以直接通過DM642的采集VP口輸入到DSP中,。當(dāng)VP口采集到一幀以后就會(huì)給DM642產(chǎn)生輸入中斷,,此時(shí)DM642就可以對(duì)熱圖數(shù)據(jù)進(jìn)行非均勻性校正[4],、直方圖均衡、溫度計(jì)算,,模擬視頻生成,、數(shù)字視頻網(wǎng)絡(luò)傳輸?shù)忍幚怼S捎谶x用的是處理性能強(qiáng)的DM642,,結(jié)合TI公司的BIOS操作系統(tǒng)及DDK,、NDK、RF5等開發(fā)軟件包,,因此本設(shè)計(jì)可以選用價(jià)格較為低廉的FPGA芯片進(jìn)行數(shù)據(jù)采集的時(shí)序處理,,如EP1C6T144C8,從而把復(fù)雜的數(shù)據(jù)處理和傳輸?shù)裙δ芊诺紻M642芯片中,,提高系統(tǒng)的穩(wěn)定性和靈活性,。
2 硬件設(shè)計(jì)
2.1 紅外探測(cè)器接口電路
紅外探測(cè)器選用FILR公司的Photon 640機(jī)芯,該探測(cè)器實(shí)現(xiàn)熱輻射到電信號(hào)的轉(zhuǎn)換,。機(jī)芯內(nèi)置非制冷氧化釩(VOx)焦平面陣列,,像素分辨率達(dá)到640×480,提供8 bit或14 bit的串行低電壓差分信號(hào)LVDS(Low Voltage Differential Signaling)圖像輸出,,并且可以方便地通過串口進(jìn)行配置,。由圖2所示,機(jī)芯提供8根引腳輸出,,其中數(shù)據(jù)時(shí)鐘PH_DCLK+和PH_DCLK-,、幀同步時(shí)鐘PH_FSYNC+和PH_FSYNC-、數(shù)據(jù)輸出PH_DATA+和PH_DATA-,,均為L(zhǎng)VDS信號(hào)格式,,通過DS90LV032A芯片轉(zhuǎn)換為3 V CMOS信號(hào),轉(zhuǎn)換后的數(shù)據(jù)信號(hào)和時(shí)鐘信號(hào)輸出到FPGA中對(duì)應(yīng)引腳,。TXD_PHOTON和RXD_PHOTON為串口發(fā)送和接收引腳,,通過MAX3232CD芯片轉(zhuǎn)換為TTL信號(hào)后連接到DM642對(duì)應(yīng)的引腳上。
2.2 FPGA的接口設(shè)計(jì)
FPGA采用Altera Cyclone系列的EP1C6T144C8,,包含5 980個(gè)邏輯單元,,價(jià)格低廉、處理性能適中,。主要實(shí)現(xiàn)以下功能接口:(1)紅外探測(cè)器接口,。根據(jù)機(jī)芯輸出的時(shí)鐘信號(hào)和幀同步信號(hào)把熱圖數(shù)據(jù)采集到FPGA,并且為了和DM642的VP采集口的RAW格式數(shù)據(jù)一致,,還需要在采集的熱圖數(shù)據(jù)中添加行同步和幀同步信號(hào),。(2)ADV7179編碼器配置和時(shí)鐘接口。為了降低DM642 I2C控制的復(fù)雜度,對(duì)編碼器的配置和初始化通過FPGA完成,,并且為了顯示PAL格式的紅外模擬視頻,,編碼器還需要一個(gè)27 MHz的時(shí)鐘信號(hào),該信號(hào)也是通過FPGA的PLL模塊產(chǎn)生,。(3)DM642接口,。分別包括:16 bit的數(shù)據(jù)接口,輸入用VP1,,因此需要和VP1的DATA[9:2]以及 DATA[19:12]連接,;采集使能接口 VP1CTL0;采集時(shí)鐘接口VP1CLK0,。具體如圖3所示,H為行同步,,V為幀同步,,F(xiàn)PGA在VP1CTL0為高電平時(shí)輸出一行數(shù)據(jù),數(shù)據(jù)的采集時(shí)鐘為VP1CLK0,。
2.3 DM642的接口設(shè)計(jì)
DM642作為系統(tǒng)設(shè)計(jì)的核心,,其主要接口如圖4所示,主要包括:(1)通過EMIF總線對(duì)SDRAM和FLASH進(jìn)行數(shù)據(jù)讀寫,。FLASH主要保存程序代碼,、與熱像儀相關(guān)的配置和測(cè)溫系數(shù)等數(shù)據(jù);SDRAM是程序運(yùn)行中需要用到的外部存儲(chǔ)器,,由于基于BIOS操作系統(tǒng)的代碼量都較大,,無法把程序和數(shù)據(jù)都加載到DM642的L2緩存中,因此必須合理使用SDRAM,,并且將其配置為L(zhǎng)2的外部CACHE,,通過EDMA通道和L2對(duì)應(yīng)一致。(2)編碼器接口,。ADV7179的時(shí)鐘信號(hào)和初始化由FPGA提供,,但編碼器的輸入數(shù)據(jù)由DM642通過VP0提供,數(shù)據(jù)格式是8位寬的BT.656格式,,內(nèi)嵌同步信號(hào),,因此這里不再需要提供額外的行同步和幀同步信息。(3)FPGA接口,。這部分在介紹FPGA接口設(shè)計(jì)時(shí)已經(jīng)提到,,DM642需要把VP1配置為RAW格式的采集模式,采集寬度為16位,,采集時(shí)鐘和采集使能信號(hào)都由FPGA提供,。(4)EMAC接口。DM642內(nèi)嵌EMAC控制器,,并且在片內(nèi)由EDMA通道及通過專用的EMAC數(shù)據(jù)線和外部物理層芯片LXT971ALC連接,,這種架構(gòu)設(shè)計(jì)正是DM642網(wǎng)絡(luò)通信性能優(yōu)異的保證,,具體的測(cè)試結(jié)果在實(shí)驗(yàn)與總結(jié)部分給出。EMAC控制器還可以通過MDIO接口對(duì)LXT971ALC芯片進(jìn)行配置,,獲取以太網(wǎng)連接狀態(tài)信息等,。(5)I2C接口,該接口主要用來配置探測(cè)器,,使得探測(cè)器工作在合適的模式,,并且獲取相關(guān)的配置信息,如探測(cè)器內(nèi)部溫度,、控制快門校正等,。
3 軟件設(shè)計(jì)
基于DM642的軟件設(shè)計(jì)有兩種主要方式,其中之一是類似單片機(jī)的程序設(shè)計(jì)方法,,主程序是一個(gè)死循環(huán),,通過中斷和定時(shí)器來實(shí)現(xiàn)各個(gè)任務(wù)的控制。這種方式在程序較大,、任務(wù)較多并且任務(wù)間需要同步和通信時(shí)不太適合,,難以發(fā)揮出處理器的性能。因此本文采用TI公司針對(duì)C6000芯片的BIOS操作系統(tǒng)來進(jìn)行軟件設(shè)計(jì),,采用多線程技術(shù),,對(duì)硬件的訪問都通過BIOS架構(gòu)的Mini-Driver方式,這就保證了系統(tǒng)的穩(wěn)定性和可靠性,。
3.1 驅(qū)動(dòng)程序
對(duì)硬件的訪問都封裝成對(duì)應(yīng)的驅(qū)動(dòng)模塊,,并且需要用到TI的DDK和NDK開放包,主要包括:(1)對(duì)VP1和VP0的驅(qū)動(dòng)設(shè)計(jì),,在DDK中TI為了降低設(shè)計(jì)難度,,已經(jīng)針對(duì)VP口提供了常用的編碼器和解碼器的驅(qū)動(dòng)模塊,如TVP5146 和TVP5150等,,因此可以在現(xiàn)有的VPORT.lib庫上進(jìn)行修改,。具體來說就是把頭文件中的VPORTCAP_Params和VPORTDIS_Params結(jié)構(gòu)中位寬定義字段修改為需要的位寬格式,然后把編碼器和解碼器的OPEN,、CLOSE,、CTRL函數(shù)中參數(shù)和實(shí)際用到的編碼器和解碼器對(duì)應(yīng)修改即可。修改完后需要重新編譯VPORT工程,,把編譯得到的VPORT.lib文件保存到新工程目錄下調(diào)用,。(2)TI已經(jīng)在NDK中提供了TCP/IP協(xié)議棧的支持,但NDK要在自己設(shè)計(jì)的板子上運(yùn)行,,還需要在用戶板級(jí)驅(qū)動(dòng)包中添加對(duì)EMAC和MDIO的初始化操作,。這里在BIOS的全局初始化函數(shù)中首先對(duì)物理層芯片進(jìn)行復(fù)位,然后實(shí)現(xiàn)兩個(gè)回調(diào)函數(shù)_getConfig和_linkStatus,分別實(shí)現(xiàn)對(duì)MAC地址配置和以太網(wǎng)鏈路狀態(tài)信息的讀取,。
3.2 主程序設(shè)計(jì)
主程序流程如圖5所示,。首先進(jìn)行硬件初始化,包括CACHE,、VP口,、EMAC、I2C,、EDMA,、中斷等;然后啟動(dòng)網(wǎng)絡(luò)監(jiān)聽任務(wù)和熱圖采集任務(wù),;最后啟動(dòng)數(shù)據(jù)處理任務(wù)和視頻顯示任務(wù),。各個(gè)任務(wù)的功能如下:(1)在熱圖采集任務(wù)中采集到一幀完整的640×480×16 bit的紅外圖像原始數(shù)據(jù)并通過雙緩沖模式通過EDMA把數(shù)據(jù)保存在SDRAM中,然后通過TI提供的RF5框架中的SCOM通信模塊,,把地址指針和同步信號(hào)發(fā)送到數(shù)據(jù)處理任務(wù),。(2)數(shù)據(jù)處理任務(wù)把原始紅外數(shù)據(jù)進(jìn)行非均勻性校正、直方圖均衡,、溫度計(jì)算等處理,并且同時(shí)生成具有字符疊加后的模擬視頻數(shù)據(jù),;然后數(shù)據(jù)處理任務(wù)把模擬視頻數(shù)據(jù)通過SCOM通信模塊發(fā)送到視頻顯示任務(wù),,通過ADV7179得到PAL格式的模擬紅外視頻。如果熱像傳輸任務(wù)已經(jīng)啟動(dòng),,數(shù)據(jù)處理任務(wù)還需要把處理后的熱圖數(shù)據(jù)發(fā)送到熱像傳輸任務(wù),。(3)熱像傳輸任務(wù)和命令收發(fā)任務(wù)都是基于NDK提供的網(wǎng)絡(luò)通信,首先是初始化TCP SOCKET連接并監(jiān)聽,,當(dāng)接收到網(wǎng)絡(luò)來的連接請(qǐng)求并通過鑒權(quán)后,,再啟動(dòng)對(duì)應(yīng)傳輸和命令收發(fā)任務(wù)。其中熱像傳輸任務(wù)的輸入數(shù)據(jù)是來自數(shù)據(jù)處理任務(wù),,然后通過TCP協(xié)議發(fā)送到PC計(jì)算機(jī)進(jìn)行顯示,、存儲(chǔ)和進(jìn)一步處理。命令收發(fā)任務(wù)接收網(wǎng)絡(luò)傳來的命令信息,,包括對(duì)探測(cè)器的配置,、對(duì)熱像儀定標(biāo)數(shù)據(jù)的配置,以及通過該任務(wù)對(duì)FLASH進(jìn)行讀寫,,實(shí)現(xiàn)熱像儀在線軟件更新功能,。
這種基于BIOS操作系統(tǒng)的多線程、多任務(wù)處理方式,,充分利用了DM642的高效和并行處理能力,,能在保證紅外熱像網(wǎng)絡(luò)傳輸不受干擾的情況下,同時(shí)對(duì)機(jī)芯進(jìn)行有效的命令配置。并且在有多個(gè)PC的上位機(jī)程序同時(shí)通過網(wǎng)絡(luò)連接熱像儀時(shí),,只需要額外啟動(dòng)對(duì)應(yīng)的熱像傳輸線程即可,。
4 實(shí)驗(yàn)與總結(jié)
熱像儀網(wǎng)絡(luò)傳輸?shù)乃俣确浅V匾@是由于紅外圖像通常不希望進(jìn)行有損壓縮,,而高分辨率的熱像儀對(duì)網(wǎng)絡(luò)帶寬要求較高,。如FLIR公司的PHOTON640機(jī)芯的熱像數(shù)據(jù)輸出為9幀/s,每幀分辨率為640×480,,每點(diǎn)14 bit,。為了方便處理,在DM642和FPGA的處理中用16 bit存儲(chǔ)每點(diǎn)的數(shù)據(jù),,這樣每秒在網(wǎng)絡(luò)中傳輸?shù)膸捴辽傩枰?2 Mb/s,。
為了測(cè)試DM642的傳輸速度并且和基于ARM9的設(shè)計(jì)方案進(jìn)行比較,在百兆局域網(wǎng)中通過PC和三種設(shè)計(jì)方案的熱像儀原理樣機(jī)直接連接,,并用測(cè)試數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳輸,,其中包括本文的設(shè)計(jì)方案,以及文獻(xiàn)[3]中提出的ARM9+DM9000和ARM9+AX88180,。LXT971ALC是物理層芯片,,這是由于DM642內(nèi)嵌EMAC控制器,實(shí)現(xiàn)網(wǎng)絡(luò)連接外部只需要物理層芯片即可,。而ARM9沒有內(nèi)嵌EMAC控制器,,只能通過外部通用地址和數(shù)據(jù)總線和外部MAC控制器連接,這里分別選用16位寬的百兆DM9000和32位寬的千兆AX88180 MAC控制器,。測(cè)試結(jié)果如表1所示,。可見由于處理器架構(gòu)限制,,ARM9即使搭配32位寬的千兆MAC芯片,,其傳輸速度才33 Mb/s,而DM642卻可以達(dá)到80 Mb/s,,能夠?qū)崿F(xiàn)640×480這樣的高清晰度熱像儀無損網(wǎng)絡(luò)數(shù)據(jù)傳輸,。
基于DM642的嵌入式系統(tǒng)設(shè)計(jì)由于其軟硬件的靈活剪裁,并且能充分利用BIOS的多任務(wù)機(jī)制,,非常適合高性能的嵌入式設(shè)備設(shè)計(jì),。本文設(shè)計(jì)的紅外熱像儀可以作為獨(dú)立的手持設(shè)備,也可以方便地通過網(wǎng)絡(luò)集成到現(xiàn)有系統(tǒng),,因此已經(jīng)作為產(chǎn)品,,批量地生產(chǎn)應(yīng)用在消防、醫(yī)療和邊防監(jiān)控中,,并在甲型H1N1防疫工作中起到了關(guān)鍵作用,。
參考文獻(xiàn)
[1] 彭煥良.紅外焦平面熱成像技術(shù)的發(fā)展[J].激光與紅外,,2006,36(12):776-780.
[2] 劉國賀,,李玉惠,,李勃,等.基于FPGA的數(shù)字圖像水印實(shí)時(shí)嵌入系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2010(3):27-30.
[3] 吳華,,謝禮瑩,徐澤宇.基于ARM9的紅外熱像儀設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,,2010,,36(16):234-236.
[4] 代少升.紅外焦平面陣列非均勻性非線性校正新方法[J].光電工程,2008,,35(4):121-125.