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