吳偉,黃俊,曹陽
(重慶郵電大學(xué)信號(hào)與信息處理重慶市重點(diǎn)實(shí)驗(yàn)室,重慶400065)
紅外成像技術(shù)在軍事和民用方面都得到廣泛的應(yīng)用[1]。紅外成像過程可以描述為目標(biāo)和背景的紅外輻射通過大氣傳輸和光學(xué)系統(tǒng)后到達(dá)紅外焦平面陣列(IRFPA-Infrared Focal Plane Array),紅外探測器把IRFPA上接收到的輻射信號(hào)轉(zhuǎn)換為電信號(hào),然后經(jīng)電路輸出和圖像處理系統(tǒng)處理,最后送至顯示終端系統(tǒng)顯示的過程。
紅外監(jiān)控系統(tǒng)應(yīng)用領(lǐng)域非常廣泛,它具有自身反應(yīng)迅速、準(zhǔn)確、便捷、安全等特性,在一些特殊環(huán)境中能發(fā)揮其重要作用。
本文主要介紹一種高速紅外監(jiān)控系統(tǒng)—基于ARM和FPGA的紅外監(jiān)控系統(tǒng)[2]。系統(tǒng)采用ARM和FPGA的組合,F(xiàn)PGA的數(shù)據(jù)處理速度快,對(duì)原始圖像數(shù)據(jù)進(jìn)行算法處理有很大的優(yōu)勢;ARM有很好的控制能力,對(duì)后臺(tái)設(shè)備有良好的操控性。本系統(tǒng)具有設(shè)計(jì)成本低、易于開發(fā)等優(yōu)點(diǎn),是一個(gè)可靠實(shí)用的紅外監(jiān)控系統(tǒng),主要用于變電站設(shè)備實(shí)時(shí)監(jiān)控。
本系統(tǒng)根據(jù)實(shí)際應(yīng)用環(huán)境、圖像采集分析和圖像傳輸控制的需要,采用ARM和FPGA的組合構(gòu)成系統(tǒng)。整個(gè)系統(tǒng)中操作系統(tǒng)、應(yīng)用程序、顯示模塊及外圍電路應(yīng)用了ARM處理器,紅外圖像處理算法由FPGA完成。
首先通過IRFPA將監(jiān)控的變電站設(shè)備光信號(hào)變換為電信號(hào),通過FPGA的A/D模塊將電信號(hào)轉(zhuǎn)換為16位的數(shù)字信號(hào),暫存入雙端SRAM芯片;當(dāng)SRAM內(nèi)采集圖像滿一幀時(shí),F(xiàn)PGA通過中斷方式通知ARM模塊,ARM模塊響應(yīng)中斷后,觸發(fā)內(nèi)部片選信號(hào),數(shù)據(jù)以DMA方式從片選地址移至內(nèi)存地址中;可以將數(shù)據(jù)在終端LCD模塊顯示或者通過網(wǎng)口模塊上傳到PC機(jī),通過PC軟件顯示。系統(tǒng)整體設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)整體設(shè)計(jì)框圖
前端圖像數(shù)據(jù)采集探測器選用由法國ULIS公司生產(chǎn)的384×288像素紅外焦平面探測器UL03191,它由一個(gè)二維微測輻射熱計(jì)陣列(UFPA)和一個(gè)內(nèi)部集成的熱電制冷器(TEC)組成。探測器接口電路模塊主要包括TEC溫控電路、A/D轉(zhuǎn)換電路、電源模塊、外圍電路模塊。探測器接口電路如圖2所示。
圖2 探測器接口電路
TEC溫控電路的功能是保證紅外焦平面能在穩(wěn)定的溫度條件下工作,從而提高整個(gè)熱像儀的精度和性能,本系統(tǒng)溫控電路選用ADI公司的ADN8830控制芯片,此芯片具有高集成度、高輸出效率、高性能的特點(diǎn)。TEC驅(qū)動(dòng)模塊用于設(shè)定和穩(wěn)定IRFPA的溫度,在典型應(yīng)用中,最大溫漂電壓低于250mV,能夠使目標(biāo)溫度誤差低于±0.01℃[3]。
A/D轉(zhuǎn)換電路的功能是對(duì)焦平面輸出的模擬視頻信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換處理。首先,對(duì)UFPA輸出的模擬視頻信號(hào)進(jìn)行A/D轉(zhuǎn)換,再傳送數(shù)字信號(hào)到圖像處理模塊,便于FPGA對(duì)圖像信號(hào)進(jìn)行處理。本設(shè)計(jì)選用亞德諾公司的3通道模擬前端(AFE)芯片AD9826[5],它是一款適合成像應(yīng)用的完整模擬信號(hào)處理芯片。它采用三通道架構(gòu),可對(duì)三線彩色CCD陣列的輸出進(jìn)行采樣和調(diào)理。
FPGA模塊是整個(gè)系統(tǒng)中的核心部件,主要功能是為UFPA和A/D轉(zhuǎn)換芯片提供驅(qū)動(dòng)時(shí)序,對(duì)經(jīng)過模數(shù)轉(zhuǎn)換的紅外圖像數(shù)據(jù)進(jìn)行相應(yīng)的算法處理,實(shí)現(xiàn)與ARM芯片的交互。根據(jù)這些功能要求,本系統(tǒng)設(shè)計(jì)的FPGA模塊的總體結(jié)構(gòu)如圖3所示。
圖3 FPGA內(nèi)部模塊圖
在本電力監(jiān)控系統(tǒng)中,紅外熱成像儀處理的數(shù)據(jù)是二維紅外數(shù)字圖像數(shù)據(jù),數(shù)據(jù)量非常大。因此對(duì)處理器的傳輸、存儲(chǔ)、處理速度等環(huán)節(jié)提出了較高要求。其特點(diǎn)為:參與運(yùn)算的數(shù)據(jù)量大,數(shù)據(jù)需多次重復(fù)使用,算法簡單而且規(guī)則,圖像中所有元素均可施以同樣的操作,存在固有的并行性,通信需要高帶寬數(shù)據(jù)交換。
該環(huán)節(jié)對(duì)整個(gè)系統(tǒng)速度影響較大,但這些運(yùn)算非常適合在FPGA架構(gòu)中用硬件并行算法實(shí)現(xiàn)。根據(jù)以上需求和項(xiàng)目實(shí)際要求,F(xiàn)PGA處理芯片選用Actel公司推出的A3P1000-PQG208芯片,具有可反復(fù)編程修改、處理速度快、并行性等優(yōu)點(diǎn),特別適合于圖像處理。此芯片柵極數(shù)量為1000K,最大工作頻率為350MHz,可編程輸入、輸出端數(shù)量為300個(gè),數(shù)據(jù)RAM大小為147 456位,延遲時(shí)間為11.1ns。
ARM處理器是整個(gè)硬件處理的核心單元,完成對(duì)各個(gè)硬件單元模塊的初始化、控制及管理。根據(jù)上面的要求和項(xiàng)目具體需要,ARM處理器選用Samsung公司推出的16/32位RISC微處理器S3C2440A,它具有32根地址線,支持4GB存儲(chǔ)空間。其中地址空間0~40000000的1G空間被分為8塊128M空間,分別由nGCS0~nGCS7片選組成[4]。S3C2440A為手持設(shè)備和一般類型應(yīng)用提供了低價(jià)格、低功耗、高性能的解決方案,能夠滿足設(shè)計(jì)要求。ARM模塊內(nèi)部結(jié)構(gòu)框圖如圖4所示。
圖4 ARM模塊內(nèi)部結(jié)構(gòu)圖
ARM核心板上包括時(shí)鐘電源模塊、SDRAM模塊、Flash模塊、LCD接口、FPGA通信接口。外部晶振源選擇12MHz,針對(duì)實(shí)時(shí)監(jiān)控系統(tǒng)ARM模塊選擇主頻(FLCK)為400MHz,設(shè)定FLCK、HCLK和PCLK比例為1:4:8;根據(jù)項(xiàng)目實(shí)際處理需求選擇兩片32M的SDRAM芯片,內(nèi)存地址映射到ARM地址空間為0x30000000的BANK6上;NAND FLASH選用256M的K9F2G08U0A來存儲(chǔ)系統(tǒng)代碼、程序代碼和圖像數(shù)據(jù)。
底板上包括電源模塊、網(wǎng)口模塊、串口模塊、SD卡模塊、USB主從口模塊、JTAG模塊、溫濕度傳感器模塊、音頻模塊。電源模塊將外部的5V直流電壓通過芯片AS1117AR-3.3轉(zhuǎn)化為3.3V為整個(gè)系統(tǒng)供電;串口選擇SP3232芯片進(jìn)行電平轉(zhuǎn)換;網(wǎng)口模塊選用16位的以太網(wǎng)控制芯片DM9000,數(shù)據(jù)通過隔離器連接水晶頭(RJ45)。
網(wǎng)口模塊DM9000與S3C2440A通過16條數(shù)據(jù)線(DATA0~DATA15)、1條地址線(ADDR2),中斷(EINT7)進(jìn)行連接[6],16條數(shù)據(jù)線為數(shù)據(jù)和地址復(fù)用,而唯一的一條地址線用于判斷數(shù)據(jù)線傳輸?shù)氖堑刂愤€是數(shù)據(jù)。片選信號(hào)如果使用Bank4,則訪問0x2000 0000~0x27FF FFFF這個(gè)范圍的地址時(shí)會(huì)激活片選使能信號(hào)nGCS4。
FPGA與ARM之間緩存數(shù)據(jù)需要選擇存儲(chǔ)容量大、高性能、低功耗的器件。本系統(tǒng)SRAM數(shù)據(jù)緩存芯片選用ISSI公司的IS61LV51216,其具有高性能CMOS制造工藝,內(nèi)部8M容量,結(jié)構(gòu)為512K×16位字長。存取時(shí)間最低可達(dá)8ns,全靜態(tài)操作不需要時(shí)鐘或刷新,輸入/輸出兼容TTL標(biāo)準(zhǔn),高字節(jié)數(shù)據(jù)和低字節(jié)數(shù)據(jù)可分別控制[7]。ARM與FPGA接口電路如圖5所示。
圖5 ARM與FPGA接口設(shè)計(jì)圖
當(dāng)前端紅外圖像采集模塊將采集的一幀數(shù)據(jù)傳入FPGA后,F(xiàn)PGA模塊對(duì)圖像進(jìn)行濾波、非均勻校正等處理,將處理后的圖像數(shù)據(jù)存入雙端SRAM芯片,當(dāng)存入一幀數(shù)據(jù)后FPGA向ARM模塊發(fā)出中斷信號(hào);ARM模塊獲取中斷后,觸發(fā)片選信號(hào)(nGCS1),將地址映射到中斷的BANK1上,通過16位地址線在0x08000000~0x08010000地址空間內(nèi)將SRAM芯片中一幀圖像數(shù)據(jù)通過16位數(shù)據(jù)線取出,ARM模塊通過軟件觸發(fā)DMA通道3方式,將BANK1地址空間的紅外圖像數(shù)據(jù)拷貝至BANK6內(nèi)存地址中。
ARM模塊選用Linux系統(tǒng),它具有開源、免費(fèi)、安全、穩(wěn)定、高性能等優(yōu)點(diǎn),本系統(tǒng)選用Linux-2.6.30穩(wěn)定版本。
在整個(gè)系統(tǒng)中,驅(qū)動(dòng)程序主要工作為:響應(yīng)中斷信號(hào),軟件觸發(fā)DMA通道3,將Bank1中的數(shù)據(jù)轉(zhuǎn)移到SDRAM(Bank6)地址空間中,獲取紅外圖像信號(hào)。驅(qū)動(dòng)設(shè)計(jì)的主要流程如圖6所示。
圖6 ARM驅(qū)動(dòng)設(shè)計(jì)流程圖
驅(qū)動(dòng)初始化:包括地址映射、中斷設(shè)置、申請(qǐng)DMA通道等。首先總線寬度和等待控制寄存器(BWSCON)對(duì)Bank1進(jìn)行設(shè)置;中斷初始化包括注冊(cè)中斷以及設(shè)置中斷為觸發(fā)方式,初始化等待隊(duì)列;S3C2440A一共具有4個(gè)DMA總通道,采用軟件中斷觸發(fā)DMA通道3方式,初始化設(shè)定源地址為0x08000000,dma_alloc_writecombine()獲取DMA目的地址。對(duì)數(shù)據(jù)進(jìn)行讀取時(shí),數(shù)據(jù)不經(jīng)過CPU在不同地址區(qū)域直接進(jìn)行存取。
數(shù)據(jù)處理流程:當(dāng)FPGA模塊SRAM芯片存滿一幀處理后的圖像數(shù)據(jù)時(shí),對(duì)EINT4產(chǎn)生一個(gè)下降沿,觸發(fā)驅(qū)動(dòng)中的EINT4中斷和DMA中斷。在中斷響應(yīng)子程序中,設(shè)置wait_event_interruptible()中的第二個(gè)參數(shù)滿足響應(yīng)需求,最后將采集的一幀數(shù)據(jù)調(diào)用copy_to_user()函數(shù),將圖像數(shù)據(jù)拷貝至用戶空間。
根據(jù)電力監(jiān)控中的圖像傳輸數(shù)據(jù),應(yīng)用程序總體采用UDP協(xié)議如圖7所示。UDP不要求保持一個(gè)連接,沒有因接收方認(rèn)可收到數(shù)據(jù)包而帶來的開銷,需要的網(wǎng)絡(luò)帶寬比TCP更小。
圖7 網(wǎng)口數(shù)據(jù)傳輸協(xié)議
在PC端應(yīng)用程序中打開IP監(jiān)聽端口,ARM發(fā)送端獲取一幀圖像信號(hào),開始向PC監(jiān)聽端發(fā)送圖像數(shù)據(jù),PC應(yīng)用程序接收到數(shù)據(jù)并進(jìn)行偽色彩處理,最后在兩個(gè)窗口進(jìn)行顯示。
前端紅外圖像采集模塊在整個(gè)項(xiàng)目中起到關(guān)鍵作用。圖像采集時(shí),對(duì)非均勻焦平面陣列圖像采集積分時(shí)間有很強(qiáng)的控制,必須根據(jù)后端實(shí)際圖像的灰度值分布進(jìn)行修訂,才能選擇合適的精度和量程范圍。在FPGA中需要對(duì)原始圖像作相應(yīng)的盲元補(bǔ)償、濾波、非均勻校正處理。每幀圖像分辨率為384×288,每點(diǎn)的圖像數(shù)據(jù)位16位,但顯示時(shí)只取高8位,即取8位進(jìn)行顯示即可滿足使用要求,傳輸速度為4.5FPS,網(wǎng)口模塊需要在系統(tǒng)中達(dá)到3.8 Mbps的帶寬,經(jīng)過測試本系統(tǒng)網(wǎng)口模塊能達(dá)到傳輸要求,PC機(jī)接收灰度數(shù)據(jù)經(jīng)過編碼顯示圖像。系統(tǒng)實(shí)物圖和PC機(jī)接收到烙鐵紅外圖像如圖8所示。測試表明,本文設(shè)計(jì)的各組模塊均能達(dá)到紅外監(jiān)控系統(tǒng)的要求。
圖8 系統(tǒng)實(shí)物圖和PC機(jī)接收到烙鐵紅外圖像
本文設(shè)計(jì)的基于ARM和FPGA的紅外監(jiān)控系統(tǒng),充分利用嵌入式軟硬件可裁剪的靈活性,最大化地利用各個(gè)組件功能。紅外監(jiān)控系統(tǒng)可作為獨(dú)立的手持終端,也可組建為一個(gè)監(jiān)控平臺(tái)。系統(tǒng)具有設(shè)計(jì)成本低、易于開發(fā)等優(yōu)點(diǎn),可應(yīng)用于化工、冶煉、鐵路運(yùn)輸?shù)阮I(lǐng)域,在鋼鐵、玻璃、水泥、塑料的生產(chǎn)過程中能對(duì)設(shè)備溫度等進(jìn)行監(jiān)控,能提前排除安全隱患,防止重大事故發(fā)生。
[1] 李云紅,孫曉剛,廉繼紅.紅外熱像測溫技術(shù)及其應(yīng)用研究[J] .現(xiàn)代電子技術(shù),2009,32(1):112-115.
[2] 張維力.紅外熱像儀在電力工業(yè)中的應(yīng)用[J] .激光與紅外,1996,26(2):105-106.
[3] 鄭興等.基于ADN8830的非制冷紅外焦平面溫度控制電路設(shè)計(jì)[J] .現(xiàn)代電子技術(shù),2009(24):154-156.
[4] 吳華,謝禮瑩,徐澤宇.基于ARM9的紅外熱像儀設(shè)計(jì)與實(shí)現(xiàn)[J] .計(jì)算機(jī)工程,2010,36(16):234-236.
[5] 邱虹云,劉陽,孫利群,等.1400萬像素CMOS傳感器高速讀出及信號(hào)采集的研究[J] .紅外技術(shù),2006,28(6):356-360.
[6] 陳朋,牛軍浩,胡聰.基于S3C2440的LXI總線高速數(shù)據(jù)采集模塊的設(shè)計(jì)[J] .大眾科技,2012,14(150):50-52.
[7] 潘冬寧,劉新寶,靳貝貝.基于DSP的電氣平臺(tái)硬件設(shè)計(jì)[J] .變頻器世界,2009(7):118-119.