摘 要: 提供了一種基于數字式紅外傳感器MLX90615的多點紅外測溫方法。STM32微處理器通過SMBus總線協議與MLX90615進行通信,首先分別對每個MLX90615地址進行修改,確保其地址編號在總線上的唯一性,然后根據不同地址編號獲取不同點上MLX90615所測溫度值,結果送至上位機溫度監測軟件顯示。實驗結果表明,該方法測溫精度高,響應速度快,且非接觸式測量有效降低了危險系數,為多點測溫提供了一種新途徑。
關鍵詞: 數字式紅外傳感器; MLX90615; SMBus; 多點測溫
中圖分類號: TN919?34; TP399 文獻標識碼: A 文章編號: 1004?373X(2013)14?0146?03
Design of multi?point IR temperature measurement system based on MLX90615
and STM32
WANG Jia
(Inner Mongolia University of Technology, Hohhot 010051, China)
Abstract: A multi?point temperature measurement method based on digital infrared sensor MLX90615 is offered. STM32 microprocessor communicates with MLX90615 by means of SMBus protocol. The microprocessor changes every address of MLX90615 at first to ensure its uniqueness in the bus, and then gets temperature values detected by MLX90615 at different measuring points according to their different address numbers. The measured results are sent to the temperature monitoring software in computer. The experimental results show that the method has high precision and high response speed, and can effectively reduce the danger coefficient due to its non?contact measuring mode. It has provided a new approach for multi?point temperature measurement .
Keywords: digital infrared sensor; MLX90615; SMBus; multi?point temperature measurement
目前在多點溫度測量系統中應用較為廣泛的是DALLAS公司的數字溫度傳感器DS18B20,其優點是只需一根總線,就能完成系統中數據的交換與控制。但DS18B20響應速度慢,精度低,且在實際應用中當總線掛接的DS18B20的數目超過8個時,就必須為每個DS18B20提供獨立電源供電,導致系統維護變得十分困難。紅外測溫技術作為一種便捷、準確的非接觸式測溫技術而得到快速發展。紅外測溫可實現在其視場范圍內對難以接觸區域或危險區域進行連續、實時的溫度監測,有效降低了測溫作業的危險系數;且具有體積小、精度高、可組網及實時性能好等優點。本文采用數字式紅外溫度傳感器MLX90615作為溫度檢測器件,以STM32微處理器為核心,設計實現多點紅外溫度測量系統。
該系統具有優點為:測溫精度高;測量不影響溫度場的分布;非接觸式溫度測量,降低危險系數;響應時間短,易于實現動態測量。
1 紅外輻射測溫基本原理
紅外輻射是一種人眼不可見的光線,俗稱紅外線,它是介于可見光中紅色光和微波之間的光線。由于帶電粒子的運動,一切溫度高于絕對零度的物體都在不停地向周圍空間發出紅外輻射能量,能量波長主要集中在0.6~15 μm波段。其輻射能量密度與溫度的關系符合斯蒂芬?波爾茲曼輻射定律:
(1)
由式(1)可知,只要已知物體的溫度及其輻射率,即可計算出它所發射的輻射功率。反之,如果測量出物體的輻射功率,即可確定物體的溫度。紅外傳感器的輸出信號是被測目標溫度與傳感器自身溫度共同作用的結果:
(2)
式中:溫度單位均為Kelvin;A為儀器常數,與傳感器的設計結構有關。
2 硬件設計
非接觸式多點紅外測溫系統硬件部分主要由紅外傳感器組、微處理器、其他外圍電路及PC組成。紅外傳感器將其視場范圍內的紅外輻射轉化成數字信號,通過SMBus總線將數據傳至STM32微處理器,微處理器與上位機進行串口通信,將溫度數據顯示在上位機。
2.1 紅外傳感器部分
傳感器部分采用數字式紅外傳感器MLX90615ESG?DAA,該芯片是由 Melexis 公司生產的高精度數字式測溫芯片,具有PWM和SMBus兩種輸出方式,正常工作的環境溫度范圍是-40~85 ℃,被測對象溫度范圍是-40~115 ℃,若需更小的測溫范圍,可通過SMBus總線修改E2PROM 中相應控制字來改變這個范圍,從而提高精度。發射率可設置0~1.0之間的任意值,可根據公式:,將0~1.0之間的任意浮點數轉換為16進制數,然后寫入相應控制字[2]。
MLX90615主要由紅外熱電堆傳感器、低噪聲放大器、16位模/數轉換器和DSP單元等組成,其結構框圖如圖1所示。 紅外熱電堆傳感器將采集到的紅外輻射轉化為電信號,并經過低噪聲放大器放大后送給模/數轉換器。模數轉換器輸出的數字信號經FIR/IIR低通濾波器調理后送入數字信號處理器,數字信號處理器對數字信號運算處理后輸出測量結果并保存在MLX90615內部RAM中,可以通過SMBus 或 PWM 方式供主控 CPU 單元讀取。
圖1 MLX90615框圖
若干個紅外傳感器作為從器件,通過SMBus總線連接到微處理器,典型的SMBus配置如圖2所示[3],SDA及SCL引腳皆需300 kΩ弱上拉。注意,MLX90615紅外傳感器支持7位地址,因此同一總線上的傳感器數量最多為127個。
圖2 SMBus配置
2.2 微處理器
微處理器采用基于ARM Cortex?M3的32位微控制器STM32F103C8T6。該微處理器具有高速可靠、溫度范圍寬、資源豐富、功耗低等優點,廣泛應用于醫療保健、手持設備、電機控制等場合。STM32F103C8T6具有64 KB的片內FLASH存儲器、32個通用I/O引腳、2個10路12位A/D轉換器、3個通用定時器等外設資源和USART,I2C,SPI,CAN等通信接口,能夠滿足多點紅外測溫系統的設計要求。
3 軟件設計
3.1 MLX90615的傳輸協議
SMBus數據傳輸協議為主設備與從設備之間的數據通訊提供了可能,該協議規定,在某一時刻總線上只能有一個主設備有效。主設備可通過“讀數據”和“寫數據”與從設備進行“交流”,其數據傳輸格式如圖3、圖4所示。其中,S為起始位,Slave Address 為從器件地址,Wr為寫標志,Command 為命令字節,Rd為讀標志,PEC為出錯數據包,P為停止位[2]。
圖3 讀數據格式
圖4 寫數據格式
SDA上的數據在SCL變為低電平300 ns后即可改變 ,數據在SCL的上升沿被捕獲。 16位數據分2次傳輸,每次傳一個字節。每個字節都是按照高位(MSB)在前,低位(LSB)在后的格式傳輸,兩個字節中間的第9個時鐘是應答時鐘。數據傳輸時序如圖5所示。
圖5 數據傳輸時序
3.2 溫度采集模塊
MLX90615紅外溫度傳感器的出廠默認地址為0x5b,因此應首先通過軟件對紅外傳感器的地址進行修改,避免總線上出現“一呼百應”的情況。MLX90615支持7位地址,可使用地址值為1~127,所有傳感器都會響應0x00地址,應避免使用。更改地址時應保證只有一只傳感器掛接在總線上,且必須先對傳感器地址控制字清空,即先寫入“0x00”地址,再寫入指定地址值,其流程如圖6所示。
初始化主要完成通用IO、串口、中斷及SMBus總線的設置。
圖6 更改MLX90615地址流程圖
為每個MLX90615紅外傳感器設置其惟一地址后,將其通過SDA及SCL兩線掛接到SMBus總線,與微處理器進行通信。
微處理器作為總線上的主器件向總線上的第一個MLX90615發送命令并等待應答,待收到應答后,讀取該點溫度值并通過串口傳至上位機進行顯示,之后向第二個MLX90615發送命令并等待應答,得到應答后讀取該點溫度并傳至上位機顯示,以此類推,對總線上的所有MLX90615進行溫度數據采集。MLX90615中讀出的溫度值轉換為攝氏溫度的公式為:
(3)
數據讀取流程圖如圖7所示。
圖7 溫度數據讀取流程圖
3.3 上位機界面
上位機溫度監測界面采用C++下的MFC類庫編寫,實現上位機通過串口與微處理器連接,接收由微處理器發送的溫度數據并顯示??赏ㄟ^單擊界面上的按鈕來控制、選擇監測點,如圖8所示。
圖8 上位機顯示界面
4 實驗結果
實驗采用3只MLX90615傳感器分別監測熱水、冰及室內溫度,開始監測1 min后得到其方差、平均值及參考溫度如表1所示。
表1 測溫數據
結果表明,MLX90615測溫精度更高,且測量結果穩定,響應速度可達7~9 ms。缺點是測溫時與被測對象距離需保持在2 cm以內,距離超過70 cm時所測溫度為環境溫度。
5 結 語
本文設計實現了基于MLX90615紅外傳感器的非接觸式多點溫度測量系統,該系統測量精度可達0.02 ℃,且響應速度快,抗干擾能力強。傳感器與微處理器的接口簡單,簡化了硬件設計工作,為多點溫度測量提供一種新方法。
參考文獻
[1] 何勇,王生澤.光電傳感器及其應用[M].北京:化學工業出版社,2004.
[2] Anon. MLX90615 datasheet [EB/OL]. 2008?04?25 [2011?03?01].http://www.melexis.com/prodmain.aspx.
[3] 崔健,魯志平.SMBus協議分析及其在雙MCU通訊中的應用[J].微計算機信息,2004,20(6):99?100.
[4] 王力,王開和,盧學軍,等.基于C8051F的SMBus實現多點測溫系統[J].天津科技大學學報,2004(9):39?45.
[5] 張開拓,毛景魁,李寧.基于DS18B20的多點測溫擴展模塊[J].河南機電高等??茖W校學報,2010(11):12?13.
[6] 冀勇鋼,楊赫天.基于單總線溫度傳感器的多點測溫系統設計[J].現代電子技術,2010,33(12):23?25.
[7] 蘭建軍,陳立國,王建國.DS18S20在單總線多點測溫系統中的應用技巧[J].儀表技術,2003(2):48?52.
[8] 潘笑,徐辛酉.基于單總線數字溫度傳感器的多點測溫技術[J].中國儀器儀表,2006(2):37?39.
[9] 高魁明,謝植.紅外理論與技術[M].沈陽:東北工學院出版社,1989.
[10] 王煜東.傳感器及應用[M].北京:機械工業出版社,2003.
[11] 李寧.基于 MDK 的 STM32 處理器開發應用[M].北京:北京航空航天大學出版社,2008.
[12] 田偉平,田躍,李杰.一種新型紅外測溫傳感器的原理與應用[J].傳感器世界,2007(12):44?46.