基于MLX90615和STM32的多點紅外溫度測量系統(tǒng)設(shè)計
摘要:提供了一種基于數(shù)字式紅外傳感器MLX90615的多點紅外測溫方法。STM32微處理器通過SMBus總線協(xié)議與MLX90615進(jìn)行通信,首先分別對每個MLX90615地址進(jìn)行修改,確保其地址編號在總線上的唯一性,然后根據(jù)不同地址編號獲取不同點上MLX90615所測溫度值,結(jié)果送至上位機溫度監(jiān)測軟件顯示。實驗結(jié)果表明,該方法測溫精度高,響應(yīng)速度快,且非接觸式測量有效降低了危險系數(shù),為多點測溫提供了一種新途徑。
關(guān)鍵詞:數(shù)字式紅外傳感器;MLX90615;SMBus;多點測溫
目前在多點溫度測量系統(tǒng)中應(yīng)用較為廣泛的是DALLAS公司的數(shù)字溫度傳感器DS18B20,其優(yōu)點是只需一根總線,就能完成系統(tǒng)中數(shù)據(jù)的交換與控制。但DS18B20響應(yīng)速度慢,精度低,且在實際應(yīng)用中當(dāng)總線掛接的DS18B20的數(shù)目超過8個時,就必須為每個DS18B20提供獨立電源供電,導(dǎo)致系統(tǒng)維護(hù)變得十分困難。紅外測溫技術(shù)作為一種便捷、準(zhǔn)確的非接觸式測溫技術(shù)而得到快速發(fā)展。紅外測溫可實現(xiàn)在其視場范圍內(nèi)對難以接觸區(qū)域或危險區(qū)域進(jìn)行連續(xù)、實時的溫度監(jiān)測,有效降低了測溫作業(yè)的危險系數(shù);且具有體積小、精度高、可組網(wǎng)及實時性能好等優(yōu)點。本文采用數(shù)字式紅外溫度傳感器MLX90615作為溫度檢測器件,以STM32微處理器為核心,設(shè)計實現(xiàn)多點紅外溫度測量系統(tǒng)。
該系統(tǒng)具有優(yōu)點為:測溫精度高;測量不影響溫度場的分布;非接觸式溫度測量,降低危險系數(shù);響應(yīng)時間短,易于實現(xiàn)動態(tài)測量。
1 紅外輻射測溫基本原理
紅外輻射是一種人眼不可見的光線,俗稱紅外線,它是介于可見光中紅色光和微波之間的光線。由于帶電粒子的運動,一切溫度高于絕對零度的物體都在不停地向周圍空間發(fā)出紅外輻射能量,能量波長主要集中在0.6~15μm波段。其輻射能量密度與溫度的關(guān)系符合斯蒂芬-波爾茲曼輻射定律:
E=εσT4 (1)
由式(1)可知,只要已知物體的溫度及其輻射率,即可計算出它所發(fā)射的輻射功率。反之,如果測量出物體的輻射功率,即可確定物體的溫度。紅外傳感器的輸出信號是被測目標(biāo)溫度To與傳感器自身溫度Ta共同作用的結(jié)果:
式中:溫度單位均為Kelvin;A為儀器常數(shù),與傳感器的設(shè)計結(jié)構(gòu)有關(guān)。
2 硬件設(shè)計
非接觸式多點紅外測溫系統(tǒng)硬件部分主要由紅外傳感器組、微處理器、其他外圍電路及PC組成。紅外傳感器將其視場范圍內(nèi)的紅外輻射轉(zhuǎn)化成數(shù)字信號,通過SMBus總線將數(shù)據(jù)傳至STM32微處理器,微處理器與上位機進(jìn)行串口通信,將溫度數(shù)據(jù)顯示在上位機。
2.1 紅外傳感器部分
傳感器部分采用數(shù)字式紅外傳感器MLX90615ESG-DAA,該芯片是由Melexis公司生產(chǎn)的高精度數(shù)字式測溫芯片,具有PWM和SMBus兩種輸出方式,正常工作的環(huán)境溫度范圍是-40~85℃,被測對象溫度范圍是-40~115℃,若需更小的測溫范圍,可通過SMBus總線修改E2PROM中相應(yīng)控制字來改變這個范圍,從而提高精度。發(fā)射率可設(shè)置0~1.0之間的任意值,可根據(jù)公式:發(fā)射率=dec2hex[round(16 384×ε)],將0~1.0之間的任意浮點數(shù)ε轉(zhuǎn)換為16進(jìn)制數(shù),然后寫入相應(yīng)控制字。
MLX90615主要由紅外熱電堆傳感器、低噪聲放大器、16位模/數(shù)轉(zhuǎn)換器和DSP單元等組成,其結(jié)構(gòu)框圖如圖1所示。紅外熱電堆傳感器將采集到的紅外輻射轉(zhuǎn)化為電信號,并經(jīng)過低噪聲放大器放大后送給模/數(shù)轉(zhuǎn)換器。模數(shù)轉(zhuǎn)換器輸出的數(shù)字信號經(jīng)FIR/IIR低通濾波器調(diào)理后送入數(shù)字信號處理器,數(shù)字信號處理器對數(shù)字信號運算處理后輸出測量結(jié)果并保存在MLX90615內(nèi)部RAM中,可以通過SMBus或PWM方式供主控CPU單元讀取。
若干個紅外傳感器作為從器件,通過SMBus總線連接到微處理器,典型的SMBus配置如圖2所示,SDA及SCL引腳皆需300 kΩ弱上拉。注意,MLX90615紅外傳感器支持7位地址,因此同一總線上的傳感器數(shù)量最多為127個。
2.2 微處理器
微處理器采用基于ARM Conex-M3的32位微控制器STM32F103C8T6。該微處理器具有高速可靠、溫度范圍寬、資源豐富、功耗低等優(yōu)點,廣泛應(yīng)用于醫(yī)療保健、手持設(shè)備、電機控制等場合。STM32F103C8T6具有64 KB的片內(nèi)FLASH存儲器、32個通用I/O引腳、2個10路12位A/D轉(zhuǎn)換器、3個通用定時器等外設(shè)資源和USART,I2C,SPI,CAN等通信接口,能夠滿足多點紅外測溫系統(tǒng)的設(shè)計要求。
3 軟件設(shè)計
3.1 MLX90615的傳輸協(xié)議
SMBus數(shù)據(jù)傳輸協(xié)議為主設(shè)備與從設(shè)備之間的數(shù)據(jù)通訊提供了可能,該協(xié)議規(guī)定,在某一時刻總線上只能有一個主設(shè)備有效。主設(shè)備可通過“讀數(shù)據(jù)”和“寫數(shù)據(jù)”與從設(shè)備進(jìn)行“交流”,其數(shù)據(jù)傳輸格式如圖3、圖4所示。其中,S為起始位,Slave Address為從器件地址,Wr為寫標(biāo)志,Command為命令字節(jié),Rd為讀標(biāo)志,PEC為出錯數(shù)據(jù)包,P為停止位。
SDA上的數(shù)據(jù)在SCL變?yōu)榈碗娖?00 ns后即可改變,數(shù)據(jù)在SCL的上升沿被捕獲。16位數(shù)據(jù)分2次傳輸,每次傳一個字節(jié)。每個字節(jié)都是按照高位(MSB)在前,低位(LSB)在后的格式傳輸,兩個字節(jié)中間的第9個時鐘是應(yīng)答時鐘。數(shù)據(jù)傳輸時序如圖5所示。
3.2 溫度采集模塊
MLX90615紅外溫度傳感器的出廠默認(rèn)地址為0x5b,因此應(yīng)首先通過軟件對紅外傳感器的地址進(jìn)行修改,避免總線上出現(xiàn)“一呼百應(yīng)”的情況。MLX90615支持7位地址,可使用地址值為1~127,所有傳感器都會響應(yīng)0x00地址,應(yīng)避免使用。更改地址時應(yīng)保證只有一只傳感器掛接在總線上,且必須先對傳感器地址控制字清空,即先寫入“0x00”電址,再寫入指定地址值,其流程如圖6所示。
初始化主要完成通用IO、串口、中斷及SMBus總線的設(shè)置。
為每個MLX90615紅外傳感器設(shè)置其惟一地址后,將其通過SDA及SCL兩線掛接到SMBus總線,與微處理器進(jìn)行通信。
微處理器作為總線上的主器件向總線上的第一個ML=X90615發(fā)送命令并等待應(yīng)答,待收到應(yīng)答后,讀取該點溫度值并通過串口傳至上位機進(jìn)行顯示,之后向第二個MLx90615發(fā)送命令并等待應(yīng)答,得到應(yīng)答后讀取該點溫度并傳至上位機顯示,以此類推,對總線上的所有MLX90615進(jìn)行溫度數(shù)據(jù)采集。MLX90615中讀出的溫度值轉(zhuǎn)換為攝氏溫度的公式為:
To=RAM(07h)0.02-273.15 (3)
數(shù)據(jù)讀取流程圖如圖7所示。
3.3 上位機界面
上位機溫度監(jiān)測界面采用C++下的MFC類庫編寫,實現(xiàn)上位機通過串口與微處理器連接,接收由微處理器發(fā)送的溫度數(shù)據(jù)并顯示??赏ㄟ^單擊界面上的按鈕來控制、選擇監(jiān)測點,如圖8所示。
4 實驗結(jié)果
實驗采用3只MLX90615傳感器分別監(jiān)測熱水、冰及室內(nèi)溫度,開始監(jiān)測1 min后得到其方差、平均值及參考溫度如表1所示。
結(jié)果表明,MLX90615測溫精度更高,且測量結(jié)果穩(wěn)定,響應(yīng)速度可達(dá)7~9 ms。缺點是測溫時與被測對象距離需保持在2 cm以內(nèi),距離超過70 cm時所測溫度為環(huán)境溫度。
5 結(jié)語
本文設(shè)計實現(xiàn)了基于MLX90615紅外傳感器的非接觸式多點溫度測量系統(tǒng),該系統(tǒng)測量精度可達(dá)0.02 ℃,且響應(yīng)速度快,抗干擾能力強。傳感器與微處理器的接口簡單,簡化了硬件設(shè)計工作,為多點溫度測量提供一種新方法。