任勇峰,王 敏,李 勛
(中北大學 電子測試技術國家重點實驗室 儀器科學與動態(tài)測試教育部重點實驗室,太原 030051)
溫度是反映物體冷熱狀態(tài)的物理參數,在某些特殊的場合對溫度的檢測速度有很高的要求,例如:航天飛機的主發(fā)動機的溫度測量要求0.4 s內完成。溫度的快速測量顯得尤為重要。
本文設計了一種利用AT89C52單片機控制溫度轉換、溫度顯示、測溫量程調節(jié)、超量程報警的數字式快速測溫系統(tǒng),并結合快速測溫算法編寫了核心的溫度采集程序,利用Proteus對其進行調試和仿真試驗,實現了高精度測溫、快速測溫的功能。
本文硬件設計電路主要由熱電偶溫度采集電路、MAX6675溫度轉換電路、AT89C52單片機控制電路、超量程報警電路、LCD液晶顯示電路和按鍵控制電路組成,硬件結構如圖1所示。分度號為K型的熱電偶采集外部溫度,并通過能夠減少外界信號干擾的雙絞線傳輸給帶有冷端補償的溫度轉換芯片MAX6675,實現溫度轉換;AT89C52單片機作為核心控制器,通過SPI串行總線實現對MAX6675溫度轉換電路的控制;并且通過控制LCD1062液晶屏實時顯示測量的溫度,測溫量程通過控制獨立式鍵盤實現靈活調動;同時實時監(jiān)測所測溫度,通過控制蜂鳴器報警顯示超量程溫度。
圖1 硬件結構圖Fig.1 Structure diagram of hard
由于K型(鎳鉻-鎳硅)熱電偶溫度測量響應速度快、輸出熱電勢值較大[1],本文采用K型(鎳鉻-鎳硅)熱電偶作為溫度傳感器。
MAX6675是基于SPI總線的專用芯片,不僅能通過內部冷端補償二極管對K型熱電偶進行冷端補償,還能對熱電勢信號作數字處理,具有很高的可靠性[2]。當熱電偶的冷端與芯片溫度相等時,MAX6675可獲得最佳的測量精度。其內部結構框圖如圖2所示。
圖2 MAX6675內部結構原理圖Fig.2 MAX6675 internal structure schematic
MAX6675采用標準的SPI串行外設總線與MCU相接,SCK提供時鐘信號,CS控制采集動作,SO輸出16位的數據,其中D14~D3為12位溫度數據。由于MAX6675[3]內部經過了激光修正,因此,其轉換結果與對應溫度值具有較好的線性關系,其測溫精度為1023.75℃/212=0.25℃。
MCU是整個系統(tǒng)的控制核心,綜合考慮整個系統(tǒng)穩(wěn)定性與成本,本設計選用集成多功能8位CPU和閃速存儲器的高效微控制器AT89C52型單片機,如圖3所示為單片機與外圍電路接口圖。
圖3 單片機外圍電路接口原理圖Fig.3 External circuit schematic of single chip microcomputer
由于AT89C52不具備SPI總線接口,設計中采用模擬SPI總線的方法實現與MAX6675的相接。其中P1.0模擬SPI的數據輸入端與SO相連,P1.1模擬SPI的串行時鐘信號與SCK相連,P1.2模擬SPI的從機選擇端與CS相連,電路中主機為AT89C52,從機為MAX6675。單片機的P1.7用來控制系統(tǒng)的超量程報警。單片機的P2.1、P2.2和D0~D7口分別通過相應的電路控制LCD液晶顯示模塊,P3.0、P3.1、P3.2分別與按鍵電路的3個按鍵接口相連。單片機通過相關的控制程序實現溫度數據的讀取、顯示和超量程報警。
按鍵控制電路如圖4(a)所示,采用獨立式鍵盤設計。其中,S2為功能鍵,用于開啟測溫模式;S3為按鍵增鍵,用于控制測溫上限值的增大;S4為按鍵減鍵,用于控制測溫上限值的減小。液晶顯示電路如圖4(b)所示,采用LCD1062作為液晶顯示模塊,采用+5 V電源供電,使用時進行初始化設置,液晶1、2端為電源,15、16為背光電源,液晶3端通過一個10 kΩ電位器接地來調節(jié)對比度;液晶5端為讀/寫選擇端,因為測溫系統(tǒng)只需向其寫入指令或顯示數據,因此此端始終選擇為寫狀態(tài),即為低電平接地;液晶4、6、7~14端與單片機相連,控制數據顯示。報警電路如圖4(c)所示,當所測量的溫度高于設置的上限溫度時,報警電路將單片機引腳輸出的電流信號放大,通過蜂鳴器的電磁線圈,使電磁線圈產生磁場來驅動振動膜發(fā)聲從而進行報警。同時紅色發(fā)光二極管閃爍報警。報警電路的功能是可以對指定范圍內的溫度變化情況進行監(jiān)測。如果溫度變化超出設定范圍,雖然溫度數據會正常顯示,但是會馬上提示報警。
圖4 按鍵控制與顯示報警電路Fig.4 Button control and display alarm circuit
本設計程序主要包含主程序、溫度采集轉換子程序、超量程報警子程序、顯示子程序、按鍵控制子程序等功能模塊。主程序主要完成子程序的調用,并對溫度數據進行快速的算法處理;溫度采集轉換子程序負責將MAX6675轉換來的溫度數字量讀入單片機,并完成對溫度值的處理,最后得到12位數字溫度值;超量程報警子程序主要判斷溫度值是否超出測量范圍;顯示子程序主要將計算后的溫度值進行顯示;按鍵控制子程序主要用來設置上限溫度值,調節(jié)超量程報警的范圍。下面主要對快速測溫算法原理、主程序設計和按鍵控制信號消抖設計做重點介紹。
熱電偶測溫系統(tǒng)測溫時,溫度是一個緩慢上升的過程,且溫度隨時間的變化并不是一個線性的過程,因此要實現快速測溫就要考慮熱電偶的熱惰性時間常數問題[4],采用合理的程序算法。下面就從基本算法著手,其原理是在等間隔的時間點t1、t2、t3連續(xù)采集3個溫度值,然后根據采集溫度值跟熱時間常數、初始溫度T0、穩(wěn)定后的溫度Tθ之間的關系,最后得出Tθ的數學計算公式,從而得到所測量溫度值。測溫時,溫度隨著時間變化曲線如圖5所示。
溫度與時間及時間常數關系式:
當 t分別為 t1、t2、t3時:
圖5 溫度隨時間變化曲線Fig.5 Temperature change curve over time
由式(1)得:
當 t分別為 t1、t2、t3時,則有:
由式(6)除以式(7)、式(7)除以式(8)得:
因為 t1、t2、t3時間間隔相等,則 t3-t2=t2-t1,可得:
由式(12)可知穩(wěn)定后的溫度只跟采集的3個溫度值相關,此算法與時間常數等未知量都不相關。所以通過此算法只要在等間隔的時間內快速采集3個溫度值,通過程序算法計算就可實現溫度的快速測量。
主程序主要完成子程序的調用,并對溫度數據進行快速的算法處理。主程序首先對系統(tǒng)進行初始化處理,然后每隔0.1 s調用1次溫度采集轉換程序,調用3次之后,根據算法原理得到測量溫度值,最后對溫度值進行量程判斷、數據顯示處理[5]。本設計的時間間隔是0.1 s,控制程序可以根據實際溫度響應時間靈活設置時間間隔。主程序流程圖如圖6所示。
整理式(11)得:
圖6 主程序流程圖Fig.6 Flow chart of main program
由于鍵盤是由3個獨立的鍵組成,鍵的按下與釋放是通過機械觸點的閉合與斷開來實現的,由于機械彈性作用的影響,通常伴隨有一定時間的觸點機械抖動,然后其觸點才穩(wěn)定下來,抖動時間的長短與開關的機械特性有關,機械觸點的彈性作用抖動時間一般為5~10 ms。為了克服按鍵觸點機械抖動所致的檢測誤判,必須采取去抖動措施??蓮挠布?、程序2方面予以考慮。在硬件上可采用在鍵盤輸出端加R-S觸發(fā)器(雙穩(wěn)態(tài)觸發(fā)器)或單穩(wěn)態(tài)觸發(fā)器構成去抖動電路。在程序上采取的措施是在檢測到有按鍵按下時,執(zhí)行一個10 ms左右(具體時間應視所使用的按鍵進行調整)的延時程序后,再確認該按鍵電平是否仍保持閉合狀態(tài)電平,若仍保持閉合狀態(tài)電平,則確認該按鍵處于閉合狀態(tài)。同理,在檢測到該按鍵釋放后,也應采用相同的步驟進行確認,從而可消除抖動的影響。綜合考慮,本次設計采取程序消抖的方法。
根據硬件電路和程序的設計,本文利用Proteus ISIS電路分析與實物仿真程序對系統(tǒng)做了一系列的仿真測試,仿真結果達到預期設計要求。最后,應用實物測試火焰溫度為198.7℃,與標準溫度傳感器測量結果一致,測溫響應時間為0.39 s。
本文采用了K型熱電偶作為溫度傳感器,并結合溫度轉換芯片 MAX6675、AT89C52單片機、LCD液晶顯示器等元器件設計了相應快速測溫計的硬件電路;綜合考慮到熱電偶的熱惰性時間常數問題,采用快速算法設計控制程序,實現了溫度快速測量的功能?;贏T89C52單片機的數字式快速測溫系統(tǒng)溫度測量響應快、精度高、成本較低,具有很高的實用性,已成功應用于某航天溫度測試系統(tǒng)。
[1] 河道清.傳感器與傳感器技術[M].北京:科學出版社,2004:188-201.
[2] 丁來玲,王磊.動態(tài)溫度測量加速方法研究[J].測控技術,1998,17(6):42-44.
[3] 韓玉杰,蔣云飛,張瑜.基于MAX6675的烘爐溫度追蹤儀的研究及設計[J].自動化儀表,2006,27(5):59-61.
[4] 黃亮,郝曉劍,周漢昌.熱電偶時間常數測量研究[J].傳感器世界,2006(9):20-23.
[5] 賀信,謝栓勤.便攜式熱棒溫度采集儀的設計與實現[J].計算機測量與控制,2007,15(9):157-159. ■