陳文敏,夏應(yīng)清,郎 磊,王正陽
(華中師范大學(xué)物理科學(xué)與技術(shù)學(xué)院,湖北武漢 430079)
溫度是農(nóng)業(yè)、工業(yè)、科學(xué)研究以及國防建設(shè)等領(lǐng)域廣泛使用的參數(shù)[1]。目前,溫度的測量方法主要包括接觸式測溫和非接觸式測溫。接觸式測溫主要以熱電偶、熱敏電阻等感溫元件作為測溫傳感器,簡單方便,成本較低,但感溫元件的熱慣性會影響測溫的速度、準(zhǔn)確率,不適合一些要求快速、準(zhǔn)確測溫的場合[2]。非接觸式測溫方法主要包括光纖測溫和紅外測溫,光纖溫度傳感器具有測量精度高、抗電磁干擾、耐高電壓等優(yōu)點,但其價格比較高昂,提高了系統(tǒng)的制造成本[3]。與光纖傳感器相比,紅外溫度傳感器價格相對便宜,且測量速度快、測溫范圍寬,得到較為廣泛的應(yīng)用[4]。常見的紅外陣列傳感器,如AMG8833的圖像分辨率為8×8像素、MLX90621的圖像分辨率為16×4像素、MLX90641的圖像分辨率為16×12像素等,普遍存在分辨率不高的問題,成像質(zhì)量較差,應(yīng)用有限[5]。
針對以上問題,本文采用了32×24像素的高分辨率紅外陣列傳感器MLX90640進行溫度監(jiān)測,以STM32F401RCT6作為核心控制器,控制器驅(qū)動并讀取MLX90640的測溫數(shù)據(jù),并通過UART接口實時傳輸給上位機軟件的溫度監(jiān)測系統(tǒng),便于對溫度數(shù)據(jù)進行實時顯示、分析和處理。系統(tǒng)測溫迅速、范圍寬,形成的紅外熱圖像分辨率高、質(zhì)量好。
如圖1所示,系統(tǒng)主要包括溫度數(shù)據(jù)采集硬件部分和溫度數(shù)據(jù)顯示與分析軟件部分,其中,硬件部分以STM32F401RCT6芯片為控制核心、采用MLX90640溫度傳感器進行溫度數(shù)據(jù)采集,軟件部分基于VC++開發(fā)環(huán)境,根據(jù)采集的溫度數(shù)據(jù)繪制紅外熱圖像并進行處理分析。MLX90640紅外溫度傳感器具有768個像元,通過I2C總線與MCU通信,通信速率可達1 Mbit/s,硬件電路通過UART接口與PC機通信,將768個像元的溫度數(shù)據(jù)傳輸給上位機軟件。上位機軟件可顯示768個像素點的實時溫度值,并根據(jù)采集的溫度繪制紅外熱圖像,直觀顯示被測目標(biāo)的紅外輻射溫度場分布,可根據(jù)實際需要設(shè)置需要監(jiān)測的溫度范圍,超出時顯示異常點坐標(biāo)并報警。
圖1 系統(tǒng)設(shè)計框圖
MLX90640是完全校準(zhǔn)的32×24像素高分辨率紅外測溫陣列芯片,正常工作的溫度范圍為-40~300 ℃,測溫范圍為-40~85 ℃,有110°×75°和55°×35° 2種視場(FOV)可供選擇。芯片中使用集成環(huán)境傳感器來測量芯片的環(huán)境溫度,并提供傳感器以測量Vdd。所有傳感器IR、Ta和Vdd的輸出都存儲在內(nèi)部RAM中,可通過I2C訪問。該傳感器與微控制器之間采用I2C通訊。通過讀取相應(yīng)的RAM數(shù)據(jù),并參考存于EEPROM的校準(zhǔn)常數(shù)來計算熱圖像中每個像素點的溫度值,可提供±1 ℃的典型目標(biāo)物體溫度精度,分辨率達到0.1 ℃。芯片中的與絕對溫度成比例(PTAT)的溫度傳感器用于測量環(huán)境溫度。每個紅外像元和PTAT的輸出數(shù)據(jù)都存儲在內(nèi)部RAM中[6]。
MLX90640紅外探測器內(nèi)部硬件電路框圖如圖2所示,其內(nèi)部集成的768個紅外測溫像元,都包含放大器和ADC,還集成有PTAT傳感器,用于測量芯片溫度,每個測溫像元將轉(zhuǎn)換好的數(shù)據(jù)存儲在芯片內(nèi)部的RAM存儲器中,EEPROM中存儲的是探測器出廠時的校準(zhǔn)參數(shù),該參數(shù)用來補償不同探測器之間的差異。內(nèi)部集成高速I2C總線接口,方便與微控制器進行數(shù)據(jù)通信。
圖2 MLX90640內(nèi)部框圖
數(shù)據(jù)傳輸時,通過配置控制寄存器中的控制位,將陣列數(shù)據(jù)分為2個子頁面進行讀取,即有2種像素排列模式:交錯模式和棋盤模式,分別如圖3和圖4所示。默認(rèn)模式為棋盤模式,作為標(biāo)準(zhǔn),MLX90640在棋盤模式下進行校準(zhǔn),傳感器在棋盤模式下具有更好的固定模式噪聲。為獲得最佳效果,Melexis公司建議使用棋盤模式。
圖3 交錯模式
圖4 棋盤模式
MLX90640芯片內(nèi)部帶有1個1 024×16 bit的RAM,地址映射如圖5所示,可通過I2C總線進行數(shù)據(jù)讀寫操作,RAM內(nèi)存儲有768個字(1個字為16 bit)溫度轉(zhuǎn)換數(shù)據(jù),數(shù)據(jù)以二進制補碼格式存儲,1個字用于存儲Vbe的值,1個字用于存儲增益參數(shù),1個字用于存儲PTAT傳感器的溫度測量值,PTAT傳感器存儲的數(shù)據(jù)實質(zhì)上為芯片的封裝溫度,該溫度對探測器測溫準(zhǔn)確性有直接的影響,是計算目標(biāo)物體溫度不可缺少的參數(shù)之一。1個字用于存儲Vdd的值。RAM中還有2個字分別存儲0子幀和1子幀的CP傳感器數(shù)據(jù)[7]。
圖5 RAM地址映射
芯片內(nèi)部的EEPROM具有832×16 bit的存儲容量,其存儲數(shù)據(jù)為芯片出廠時固化在其內(nèi)部的用于計算溫度數(shù)值的校準(zhǔn)參數(shù)以及器件的配置參數(shù),微控制器只需在芯片上電(POR)后讀取一次并存儲在微控制器的RAM中即可,方便用于溫度數(shù)值計算。
芯片根據(jù)設(shè)定的刷新頻率和讀取模式掃描768個紅外傳感器和PTAT傳感器的輸出,并利用存儲在EEPROM中的校準(zhǔn)常數(shù)計算每個像素點的測溫數(shù)值,其工作流程如圖6所示。芯片上電后,需要延時80 ms,然后讀取EEPROM內(nèi)部校準(zhǔn)數(shù)據(jù),并存儲到RAM中。接著,通過I2C總線讀取每個像素元的測量溫度,根據(jù)選擇的讀取模式,輪流讀取0子幀和1子幀的數(shù)據(jù),并清除狀態(tài)寄存器(0x8000)中的第3位,當(dāng)一個完整的新數(shù)據(jù)集(子頁面)可用時,該寄存器置1,表示RAM中可用的新數(shù)據(jù),讀取數(shù)據(jù)后,由用戶重置該位。最后計算每個像素元的實際溫度,并設(shè)置狀態(tài)寄存器的第5位,開始計算。
從IR傳感器中讀取溫度相關(guān)數(shù)據(jù)后,由式(1)計算每個像素點的實際溫度。
圖6 MLX90640測量流程
(1)
式中:(i,j)為像素點坐標(biāo);V(i,j)為單個像素的溫度梯度補償;αc(i,j)為單個像素的歸一化靈敏度系數(shù);Ksx為不同溫度范圍的靈敏度斜率;Ta-r可由環(huán)境溫度Ta(TO39的封裝溫度)和反射系數(shù)ε求得,見式(2)。
(2)
式中:Tr為IR信號反射溫度,近似等于Ta-8;Ta為環(huán)境溫度。
V(i,j)可由式(3)求得:
(3)
式中:pixos(i,j)為IR數(shù)據(jù)補償偏移量,由式(4)求得;G為溫度梯度系數(shù),從EEPROM中讀取;P根據(jù)讀取模式和像素數(shù)量求得;pixp0和pixp1分別為子頁面0和1的像素補償偏移值。
pixos(i,j)=pixgain(i,j)-pixref·[1+KTa(i,j)·(Ta-Ta0)]·
[1+KV(i,j)·(Vdd-V0)]
(4)
式中:pixgain(i,j)為像素增益補償;pixref為像素偏移量;KTa(i,j)為環(huán)境溫度補償系數(shù);KV(i,j)為電壓補償系數(shù);KTa(i,j)和KV(i,j)均取決于陣列中的像素位置,即像素行和列是奇數(shù)還是偶數(shù);Ta0為常數(shù)25;Vdd為電源電壓;V0為常數(shù)3.3。
αc(i,j)可由式(5)求得:
αc(i,j)={α(i,j)-G·[(1-P)·αcp0+P·αcp1]}·
(1+KsTa·(Ta-Ta0))
(5)
式中:α(i,j)為單個像素的靈敏度;參數(shù)αcp0和αcp1分別為子頁面0和1的補償像素靈敏度;KsTa為環(huán)境溫度的靈敏度斜率。
至此,計算溫度所需參數(shù)均已求得,代入式(1)即可求出各個像素點實際溫度值。
本系統(tǒng)使用VC++搭建上位機軟件,主要功能是通過UART接口讀取微控制器傳來的溫度數(shù)據(jù),并實時顯示溫度紅外熱圖像。軟件將采集的溫度數(shù)據(jù)用色階區(qū)分顯示,通過不同顏色梯度表示溫度的高低,溫度越高,顏色越偏向紅色,溫度越低,顏色越偏向藍色,直觀顯示被測目標(biāo)的紅外輻射溫度場分布。軟件采用高斯模糊算法對圖像進行處理,進一步提高圖像分辨率,弱化原始圖中的鋸齒,消除方塊效應(yīng),成像效果有了明顯的提升[8]。
系統(tǒng)測試過程中,在距離紅外傳感器約20 cm的位置對手掌溫度進行采集,圖7中左圖為直接根據(jù)采集的溫度數(shù)據(jù)得到的原始圖,其存在分辨率較低、邊緣模糊等缺點,右圖為進行均值濾波算法后得到的圖像,手掌輪廓明顯,成像質(zhì)量更好,增強了圖像的直觀性。
圖7 軟件操作界面
本溫度監(jiān)控系統(tǒng)將計算得到的溫度數(shù)據(jù)以十進制形式存儲在TXT文件中,方便進一步的查詢和使用。實際應(yīng)用中,用戶可根據(jù)具體需要設(shè)置監(jiān)測的溫度范圍,任一像素點溫度超過警戒值將會報警并顯示異常像素點坐標(biāo)位置。
本溫度監(jiān)控系統(tǒng)使用具有768像元的高分辨率的紅外溫度傳感器MLX90640,通過非接觸方式進行溫度數(shù)據(jù)采集,解決了傳統(tǒng)的紅外傳感器像素分辨率低、監(jiān)測范圍有限的問題,測溫迅速、方便,成像質(zhì)量好。系統(tǒng)硬件體積小,便于攜帶安裝,軟件界面友好、穩(wěn)定性高,如需進行遠距離的溫度動態(tài)監(jiān)測,可將UART有線連接通信方式改為無線通信方式進行數(shù)據(jù)傳輸,使得系統(tǒng)應(yīng)用更加廣泛、靈活[9]。實驗表明該系統(tǒng)測溫準(zhǔn)確率高,形成的紅外熱圖像分辨率高,可滿足目前工程的實際需要,有較強的工程意義和廣闊的應(yīng)用前景。