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