王 樂,董 哲,張 磊
(合肥工業(yè)大學(xué) 儀器科學(xué)與光電工程學(xué)院,安徽 合肥 230009)
在冶金、航空航天、材料等生產(chǎn)、制造過程中,溫度是一個很重要的參數(shù),影響產(chǎn)品的質(zhì)量、生產(chǎn)的效率[1-5]。傳統(tǒng)的溫度測量方法[6]有熱電阻、熱電偶等,熱電偶、熱電阻是接觸式測溫,只能測量接觸位置的溫度,并且接觸式測量中,被測溫度場會受到測試儀的測頭影響,且難以測量運(yùn)動中的物體。吳加倫等人[7]研究的新型十字測溫傳感器可以有效測量爐頂溫度,但是熱電偶壽命短、難以更換。劉小群等[8]基于單片機(jī),研究了多路熱電偶測溫,當(dāng)測溫路數(shù)較多時,使用單片機(jī)時實(shí)時性較差。目前常采用的紅外熱成像技術(shù)中的紅外單點(diǎn)測溫儀可以非接觸測量[9],只能測量單點(diǎn)溫度,且在一些高溫的工業(yè)現(xiàn)場,人無法持設(shè)備現(xiàn)場測量,局限性較大。
基于面陣CCD傳感器的圖像測溫方法近些年來得到重視[10]。該方法可得到整個溫度場的溫度信息,靈敏度高、響應(yīng)快、抗干擾強(qiáng)。白海城等人[11]基于DSP開發(fā)了一種面陣CCD高溫計(jì),可對連鑄坯表面溫度場進(jìn)行在線測量。CCD相機(jī)和采集處理系統(tǒng)則是整個設(shè)計(jì)的關(guān)鍵部分,設(shè)計(jì)出高分辨率、高幀率、高靈敏度、高信噪比的相機(jī)和高速采集、處理系統(tǒng),對于發(fā)揮整個測溫系統(tǒng)的性能至關(guān)重要。
筆者結(jié)合FPGA的優(yōu)勢,研究CCD測溫系統(tǒng),進(jìn)行基于FPGA和CCD測溫系統(tǒng)的硬件設(shè)計(jì)。
普朗克黑體輻射定律給出了黑體的光譜輻射力與波長和溫度的關(guān)系。目前,在高溫測量應(yīng)用中,溫度大多低于3 000 ℃,筆者主要討論8 00 ℃~1 200 ℃的場合,在這個范圍內(nèi),普朗克公式可以近似為維恩公式,即在波長一定時,光譜輻射力是溫度的函數(shù),因此,只要測得目標(biāo)的光譜輻射力,就可得到目標(biāo)的溫度。
筆者據(jù)此建立了單光譜CCD測溫系統(tǒng),其結(jié)構(gòu)簡圖如圖1所示。
圖1 CCD測溫系統(tǒng)結(jié)構(gòu)簡圖
圖1中,被測目標(biāo)向外輻射能量,以CCD作為探測器捕獲輻射能,在CCD鏡頭前加一片近紅外窄帶濾光片,其中心波長等效為有效波長;依據(jù)維恩位移定律和所測溫度范圍,選取780 nm,帶寬10 nm。
在系統(tǒng)的曝光時間、增益等其他參數(shù)確定,且空氣、水霧等帶來的影響得到補(bǔ)償后[12],可以得到CCD測得的灰度值與光譜輻射力的函數(shù)關(guān)系;通過黑體爐標(biāo)定后,將映射值存儲到處理電路中,由CCD測得的灰度值經(jīng)由處理電路,就可以得到目標(biāo)的溫度值。
CCD測溫系統(tǒng)硬件結(jié)構(gòu)如圖2所示。
圖2 CCD測溫系統(tǒng)硬件結(jié)構(gòu)系統(tǒng)
經(jīng)黑體爐標(biāo)定后,可獲得被測目標(biāo)溫度場信息,抗干擾能力強(qiáng)、傳輸距離遠(yuǎn)、實(shí)時性好,可應(yīng)用在800 ℃~1 200 ℃的高溫場合。
圖2中,系統(tǒng)主要由CCD模塊、驅(qū)動模塊、數(shù)據(jù)采集處理模塊和傳輸模塊4部分組成。
(1)CCD模塊使用索尼的ICX424AL傳感器,鏡頭前安裝有近紅外窄帶濾光片;
(2)驅(qū)動模塊使用AD9923A芯片,由FPGA通過SPI總線配置寄存器,輸出CCD所需要的水平、垂直、門限和其他驅(qū)動信號,CCD在電源和驅(qū)動信號的作用下將采集到的圖像信號發(fā)送至AD9923A,經(jīng)過CDS、VGA和ADC變換后,將12 bit的灰度值發(fā)送至FPGA處理;
(3)數(shù)據(jù)采集處理模塊中,F(xiàn)PGA使用Intel的颶風(fēng)系列;
(4)傳輸模塊使用千兆以太網(wǎng),使用RTL8211EG物理層芯片,由FPGA控制通過UDP協(xié)議發(fā)送。以太網(wǎng)在滿足傳輸速率的前提下,抗干擾能力較強(qiáng),可以進(jìn)行遠(yuǎn)距離傳輸。
FPGA結(jié)構(gòu)框圖如圖3所示。
圖3 FPGA結(jié)構(gòu)框圖
圖3中,F(xiàn)PGA為程序頂層模塊,內(nèi)部由鎖相環(huán)模塊、驅(qū)動配置模塊、數(shù)據(jù)緩存模塊、數(shù)據(jù)處理模塊和數(shù)據(jù)發(fā)送模塊組成;根據(jù)模塊功能,可劃分為系統(tǒng)配置、采集與緩存和轉(zhuǎn)換與發(fā)送3部分。
系統(tǒng)所需要的時鐘均由FPGA內(nèi)部鎖相環(huán)(PLL)產(chǎn)生,包括CCD需要的24.54 MHz、驅(qū)動配置模塊需要的4 MHz、緩存需要的100 MHz和以太網(wǎng)需要的125 MHz。這些時鐘由一個50 MHz時鐘源驅(qū)動,兩個鎖相環(huán)進(jìn)行分頻倍頻得到,有相位相關(guān)性;同時,經(jīng)過時鐘樹分配到各個寄存器,路徑延時得到有效控制,保證系統(tǒng)的穩(wěn)定性。系統(tǒng)上電后,鎖相環(huán)正常工作產(chǎn)生時鐘,驅(qū)動配置模塊通過SPI總線給外部AD9923A配置寄存器。
系統(tǒng)給出同步觸發(fā)命令,開始采集,CCD輸出圖像模擬信號,經(jīng)模數(shù)轉(zhuǎn)換后數(shù)字信號和時鐘被發(fā)送至FPGA。圖像采集模塊根據(jù)CCD時序,將有效信號保留下來,產(chǎn)生有效信號標(biāo)志位;為了保證后面處理和發(fā)送速度,緩存使用100 MHz,而圖像時鐘為24.54 MHz;為了保證數(shù)據(jù)不丟失,設(shè)置一個12位寬,512深度的FIFO進(jìn)行緩存。當(dāng)FIFO滿128個字的SDRAM突發(fā)長度時,SDRAM讀取FIFO內(nèi)的數(shù)據(jù)緩存到SDRAM芯片;SDRAM使用乒乓緩存技術(shù),設(shè)置兩片存儲區(qū)bank0與bank1,當(dāng)bank0一幀圖像存儲完,乒乓緩存控制模塊控制轉(zhuǎn)換存儲區(qū)bank1進(jìn)行存儲,同時存儲區(qū)bank0允許讀取。
測溫裝置標(biāo)定之前,F(xiàn)PGA只把圖像數(shù)據(jù)經(jīng)過以太網(wǎng)發(fā)送至上位機(jī),經(jīng)過黑體爐標(biāo)定與修正后即可得到溫度與灰度的對應(yīng)關(guān)系。為了增加系統(tǒng)速度,筆者在FPGA中采用查表的方式得到溫度。ADC為12 bit分辨率,測溫范圍在800 ℃~1 200 ℃,溫差為400 ℃,系統(tǒng)設(shè)置了12 bit位寬、深度為4 096的存儲單元存放溫度數(shù)據(jù);其中,高9位表示整數(shù)位,滿足400 ℃溫差范圍,低3位表示小數(shù)位,分辨率可以達(dá)到0.125 ℃。
數(shù)據(jù)轉(zhuǎn)換時,12 bit圖像數(shù)據(jù)經(jīng)過溫度存儲單元后得到12 bit溫度數(shù)據(jù),因需要2個時鐘的時延,因此,設(shè)置兩級寄存器延遲以保證數(shù)據(jù)同步。以太網(wǎng)端口是8 bit位寬,經(jīng)過以太網(wǎng)控制模塊發(fā)送的數(shù)據(jù)也是要轉(zhuǎn)換為8 bit,通過一個異步FIFO實(shí)現(xiàn),F(xiàn)IFO的輸入、輸出端口位寬不同,Intel的FIFO核只支持32 bit轉(zhuǎn)8 bit,通過增加8 bit零來解決,后續(xù)上位機(jī)再進(jìn)行剔除。
實(shí)驗(yàn)中,使用黑體爐來標(biāo)定高溫計(jì)參數(shù),標(biāo)定后得到圖像灰度與溫度的映射關(guān)系,將映射值制作成表,下載到FPGA中。筆者在上位機(jī)上通過Quartus軟件的Signal tap工具,對實(shí)驗(yàn)過程中FPGA內(nèi)部信號設(shè)置中間探針,對中間信號進(jìn)行觀察分析。
采集與緩存結(jié)果如圖4所示。
圖4 采集與緩存結(jié)果a-行時序; b-圖像數(shù)據(jù) ;c-有效標(biāo)志 ;d-fifo數(shù)據(jù)量;e-寫請求; f-寫回復(fù); g-有效數(shù)據(jù)
圖4中,a為行時序,b為灰度值,前659個數(shù)據(jù)為有效數(shù)據(jù)。采集模塊獲取有效數(shù)據(jù),產(chǎn)生有效標(biāo)志c,采集模塊將有效數(shù)據(jù)發(fā)送至寫緩存模塊,有效標(biāo)志作為FIFO的寫使能,為高時將數(shù)據(jù)寫入FIFO中,d為FIFO數(shù)據(jù)量,從位置1開始。當(dāng)FIFO數(shù)據(jù)量大于SDRAM突發(fā)長256時,發(fā)送寫請求e給SDRAM,寫請求在位置2有效,SDRAM收到后給出寫回復(fù)f作為FIFO讀使能,在位置3有效,從FIFO中讀取256個數(shù)據(jù)到SDRAM緩存,直到一幀完成,g為寫入到SDRAM中的數(shù)據(jù)。圖4中,a為緩存時鐘,b為從外部SDRAM中讀取到的12 bit灰度數(shù)據(jù),經(jīng)過2個時鐘得到溫度數(shù)據(jù)d,灰度值經(jīng)過2個時鐘延遲與溫度數(shù)據(jù)組合成e,增加8 bit無效值得到f;數(shù)據(jù)使能c經(jīng)過同步后,得到FIFO寫請求信號g,將32 bit數(shù)據(jù)存入到FIFO中;k為FIFO中數(shù)據(jù)量,經(jīng)2個時鐘輸出。當(dāng)k小于突發(fā)長度256時,SDRAM取出256個數(shù)據(jù)處理并存入FIFO中;h為125 MHz的讀時鐘,i為讀請求信號,j為讀出的8 bit數(shù)據(jù)。
可以看出:當(dāng)讀請求有效時,F(xiàn)IFO由低到高以此輸出8 bit數(shù)據(jù),完成32 bit轉(zhuǎn)8 bit發(fā)送的要求。
數(shù)據(jù)處理結(jié)果如圖5所示。
數(shù)據(jù)時延如表1所示。
表1 數(shù)據(jù)時延
為了保證數(shù)據(jù)不丟失,筆者采用乒乓緩存,一幀緩存完才開始發(fā)送,緩存延時為一幀圖像的時間,約14 ms。處理模塊2個時鐘在100 MHz緩存時鐘下可以忽略不計(jì)。
以太網(wǎng)發(fā)送時鐘為125 MHz,使用UDP協(xié)議以1 472字節(jié)包長發(fā)送數(shù)據(jù),延遲只有約0.012 ms。因此,總的時延約為14 ms,可以達(dá)到較高的性能。
圖5 數(shù)據(jù)處理結(jié)果a-緩存時鐘; b-圖像數(shù)據(jù);c-數(shù)據(jù)使能 ;d-溫度數(shù)據(jù); e-溫度與灰度; f-fifo輸入;g-寫請求延時; h-讀時鐘 ;i-讀請求 ;j-fifo輸出; k-fifo數(shù)據(jù)量
筆者根據(jù)單光譜輻射測溫理論,研究了基于FPGA和CCD測溫系統(tǒng)的硬件設(shè)計(jì),以FPGA為核心,采用黑體爐標(biāo)定完直接查表的方法快速處理、傳輸溫度數(shù)據(jù);通過實(shí)驗(yàn)采樣FPGA內(nèi)部信號,對采集和緩存的灰度信息以及轉(zhuǎn)換得到的溫度信息進(jìn)行分析,結(jié)果證明,系統(tǒng)處理傳輸速度可以達(dá)到CCD最高幀率;同時,計(jì)算了數(shù)據(jù)在FPGA內(nèi)部的時鐘延遲僅為14 ms,滿足實(shí)時性的要求。
該測溫系統(tǒng)僅使用了一個AD9923A為CCD提供驅(qū)動,使用一個FPGA完成系統(tǒng)控制、數(shù)據(jù)處理傳輸?shù)热蝿?wù),集成度高、可靠性強(qiáng),在復(fù)雜的溫度測量現(xiàn)場有較高的實(shí)用性價(jià)值。圖像灰度與溫度數(shù)據(jù)實(shí)時通過以太網(wǎng)發(fā)送至上位機(jī),為上位機(jī)以高分辨率、高幀率穩(wěn)定反饋溫度信息提供了前提。