王 樂,董 哲,張 磊
(合肥工業大學 儀器科學與光電工程學院,安徽 合肥 230009)
在冶金、航空航天、材料等生產、制造過程中,溫度是一個很重要的參數,影響產品的質量、生產的效率[1-5]。傳統的溫度測量方法[6]有熱電阻、熱電偶等,熱電偶、熱電阻是接觸式測溫,只能測量接觸位置的溫度,并且接觸式測量中,被測溫度場會受到測試儀的測頭影響,且難以測量運動中的物體。吳加倫等人[7]研究的新型十字測溫傳感器可以有效測量爐頂溫度,但是熱電偶壽命短、難以更換。劉小群等[8]基于單片機,研究了多路熱電偶測溫,當測溫路數較多時,使用單片機時實時性較差。目前常采用的紅外熱成像技術中的紅外單點測溫儀可以非接觸測量[9],只能測量單點溫度,且在一些高溫的工業現場,人無法持設備現場測量,局限性較大。
基于面陣CCD傳感器的圖像測溫方法近些年來得到重視[10]。該方法可得到整個溫度場的溫度信息,靈敏度高、響應快、抗干擾強。白海城等人[11]基于DSP開發了一種面陣CCD高溫計,可對連鑄坯表面溫度場進行在線測量。CCD相機和采集處理系統則是整個設計的關鍵部分,設計出高分辨率、高幀率、高靈敏度、高信噪比的相機和高速采集、處理系統,對于發揮整個測溫系統的性能至關重要。
筆者結合FPGA的優勢,研究CCD測溫系統,進行基于FPGA和CCD測溫系統的硬件設計。
普朗克黑體輻射定律給出了黑體的光譜輻射力與波長和溫度的關系。目前,在高溫測量應用中,溫度大多低于3 000 ℃,筆者主要討論8 00 ℃~1 200 ℃的場合,在這個范圍內,普朗克公式可以近似為維恩公式,即在波長一定時,光譜輻射力是溫度的函數,因此,只要測得目標的光譜輻射力,就可得到目標的溫度。
筆者據此建立了單光譜CCD測溫系統,其結構簡圖如圖1所示。

圖1 CCD測溫系統結構簡圖
圖1中,被測目標向外輻射能量,以CCD作為探測器捕獲輻射能,在CCD鏡頭前加一片近紅外窄帶濾光片,其中心波長等效為有效波長;依據維恩位移定律和所測溫度范圍,選取780 nm,帶寬10 nm。
在系統的曝光時間、增益等其他參數確定,且空氣、水霧等帶來的影響得到補償后[12],可以得到CCD測得的灰度值與光譜輻射力的函數關系;通過黑體爐標定后,將映射值存儲到處理電路中,由CCD測得的灰度值經由處理電路,就可以得到目標的溫度值。
CCD測溫系統硬件結構如圖2所示。

圖2 CCD測溫系統硬件結構系統
經黑體爐標定后,可獲得被測目標溫度場信息,抗干擾能力強、傳輸距離遠、實時性好,可應用在800 ℃~1 200 ℃的高溫場合。
圖2中,系統主要由CCD模塊、驅動模塊、數據采集處理模塊和傳輸模塊4部分組成。
(1)CCD模塊使用索尼的ICX424AL傳感器,鏡頭前安裝有近紅外窄帶濾光片;
(2)驅動模塊使用AD9923A芯片,由FPGA通過SPI總線配置寄存器,輸出CCD所需要的水平、垂直、門限和其他驅動信號,CCD在電源和驅動信號的作用下將采集到的圖像信號發送至AD9923A,經過CDS、VGA和ADC變換后,將12 bit的灰度值發送至FPGA處理;
(3)數據采集處理模塊中,FPGA使用Intel的颶風系列;
(4)傳輸模塊使用千兆以太網,使用RTL8211EG物理層芯片,由FPGA控制通過UDP協議發送。以太網在滿足傳輸速率的前提下,抗干擾能力較強,可以進行遠距離傳輸。
FPGA結構框圖如圖3所示。

圖3 FPGA結構框圖
圖3中,FPGA為程序頂層模塊,內部由鎖相環模塊、驅動配置模塊、數據緩存模塊、數據處理模塊和數據發送模塊組成;根據模塊功能,可劃分為系統配置、采集與緩存和轉換與發送3部分。
系統所需要的時鐘均由FPGA內部鎖相環(PLL)產生,包括CCD需要的24.54 MHz、驅動配置模塊需要的4 MHz、緩存需要的100 MHz和以太網需要的125 MHz。這些時鐘由一個50 MHz時鐘源驅動,兩個鎖相環進行分頻倍頻得到,有相位相關性;同時,經過時鐘樹分配到各個寄存器,路徑延時得到有效控制,保證系統的穩定性。系統上電后,鎖相環正常工作產生時鐘,驅動配置模塊通過SPI總線給外部AD9923A配置寄存器。
系統給出同步觸發命令,開始采集,CCD輸出圖像模擬信號,經模數轉換后數字信號和時鐘被發送至FPGA。圖像采集模塊根據CCD時序,將有效信號保留下來,產生有效信號標志位;為了保證后面處理和發送速度,緩存使用100 MHz,而圖像時鐘為24.54 MHz;為了保證數據不丟失,設置一個12位寬,512深度的FIFO進行緩存。當FIFO滿128個字的SDRAM突發長度時,SDRAM讀取FIFO內的數據緩存到SDRAM芯片;SDRAM使用乒乓緩存技術,設置兩片存儲區bank0與bank1,當bank0一幀圖像存儲完,乒乓緩存控制模塊控制轉換存儲區bank1進行存儲,同時存儲區bank0允許讀取。
測溫裝置標定之前,FPGA只把圖像數據經過以太網發送至上位機,經過黑體爐標定與修正后即可得到溫度與灰度的對應關系。為了增加系統速度,筆者在FPGA中采用查表的方式得到溫度。ADC為12 bit分辨率,測溫范圍在800 ℃~1 200 ℃,溫差為400 ℃,系統設置了12 bit位寬、深度為4 096的存儲單元存放溫度數據;其中,高9位表示整數位,滿足400 ℃溫差范圍,低3位表示小數位,分辨率可以達到0.125 ℃。
數據轉換時,12 bit圖像數據經過溫度存儲單元后得到12 bit溫度數據,因需要2個時鐘的時延,因此,設置兩級寄存器延遲以保證數據同步。以太網端口是8 bit位寬,經過以太網控制模塊發送的數據也是要轉換為8 bit,通過一個異步FIFO實現,FIFO的輸入、輸出端口位寬不同,Intel的FIFO核只支持32 bit轉8 bit,通過增加8 bit零來解決,后續上位機再進行剔除。
實驗中,使用黑體爐來標定高溫計參數,標定后得到圖像灰度與溫度的映射關系,將映射值制作成表,下載到FPGA中。筆者在上位機上通過Quartus軟件的Signal tap工具,對實驗過程中FPGA內部信號設置中間探針,對中間信號進行觀察分析。
采集與緩存結果如圖4所示。

圖4 采集與緩存結果a-行時序; b-圖像數據 ;c-有效標志 ;d-fifo數據量;e-寫請求; f-寫回復; g-有效數據
圖4中,a為行時序,b為灰度值,前659個數據為有效數據。采集模塊獲取有效數據,產生有效標志c,采集模塊將有效數據發送至寫緩存模塊,有效標志作為FIFO的寫使能,為高時將數據寫入FIFO中,d為FIFO數據量,從位置1開始。當FIFO數據量大于SDRAM突發長256時,發送寫請求e給SDRAM,寫請求在位置2有效,SDRAM收到后給出寫回復f作為FIFO讀使能,在位置3有效,從FIFO中讀取256個數據到SDRAM緩存,直到一幀完成,g為寫入到SDRAM中的數據。圖4中,a為緩存時鐘,b為從外部SDRAM中讀取到的12 bit灰度數據,經過2個時鐘得到溫度數據d,灰度值經過2個時鐘延遲與溫度數據組合成e,增加8 bit無效值得到f;數據使能c經過同步后,得到FIFO寫請求信號g,將32 bit數據存入到FIFO中;k為FIFO中數據量,經2個時鐘輸出。當k小于突發長度256時,SDRAM取出256個數據處理并存入FIFO中;h為125 MHz的讀時鐘,i為讀請求信號,j為讀出的8 bit數據。
可以看出:當讀請求有效時,FIFO由低到高以此輸出8 bit數據,完成32 bit轉8 bit發送的要求。
數據處理結果如圖5所示。
數據時延如表1所示。

表1 數據時延
為了保證數據不丟失,筆者采用乒乓緩存,一幀緩存完才開始發送,緩存延時為一幀圖像的時間,約14 ms。處理模塊2個時鐘在100 MHz緩存時鐘下可以忽略不計。
以太網發送時鐘為125 MHz,使用UDP協議以1 472字節包長發送數據,延遲只有約0.012 ms。因此,總的時延約為14 ms,可以達到較高的性能。

圖5 數據處理結果a-緩存時鐘; b-圖像數據;c-數據使能 ;d-溫度數據; e-溫度與灰度; f-fifo輸入;g-寫請求延時; h-讀時鐘 ;i-讀請求 ;j-fifo輸出; k-fifo數據量
筆者根據單光譜輻射測溫理論,研究了基于FPGA和CCD測溫系統的硬件設計,以FPGA為核心,采用黑體爐標定完直接查表的方法快速處理、傳輸溫度數據;通過實驗采樣FPGA內部信號,對采集和緩存的灰度信息以及轉換得到的溫度信息進行分析,結果證明,系統處理傳輸速度可以達到CCD最高幀率;同時,計算了數據在FPGA內部的時鐘延遲僅為14 ms,滿足實時性的要求。
該測溫系統僅使用了一個AD9923A為CCD提供驅動,使用一個FPGA完成系統控制、數據處理傳輸等任務,集成度高、可靠性強,在復雜的溫度測量現場有較高的實用性價值。圖像灰度與溫度數據實時通過以太網發送至上位機,為上位機以高分辨率、高幀率穩定反饋溫度信息提供了前提。