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