摘 "要: 根據(jù)當前化工、醫(yī)療、航空、航天等高科技領(lǐng)域?qū)囟日{(diào)節(jié)和控制的要求,設(shè)計了一套分布式溫度控制和采集系統(tǒng),給出了具體的硬件電路設(shè)計和系統(tǒng)軟件實現(xiàn),使用一線制數(shù)字溫度傳感器采集溫度。與傳統(tǒng)測溫裝置相比,具有結(jié)構(gòu)簡單,測溫精度高、應(yīng)用面廣等特點。結(jié)合AT89S51單片機與PC機的通信機理,采用基于多線程的串行通信技術(shù),擴展了和上位機的串行通信,實現(xiàn)遠程監(jiān)控,實現(xiàn)了對目標區(qū)域溫度的自動實時監(jiān)控、自動調(diào)節(jié)及智能報警功能。試驗結(jié)果表明,整個系統(tǒng)不但成本低廉、而且使用和擴展方便,可廣泛應(yīng)用于人們?nèi)粘I?、工農(nóng)業(yè)生產(chǎn)和科學研究領(lǐng)域,為廣泛深入應(yīng)用提供了借鑒。
關(guān)鍵詞: AT89S51; 串口通信; 分布式溫度控制; 電路設(shè)計
中圖分類號: TN919?34; V211.74 " " " " " " " 文獻標識碼: A " " " " " " " " " " "文章編號: 1004?373X(2015)02?0073?04
Design and implementation of temperature control system based on MCU
CHEN Yong?lu , ZHANG Li
(Chinese Fight Test Establishment,Xi’an 710089, China)
Abstract: According to the temperature regulation and control requirements in current chemical, medical, aviation, aerospace and other high?tech fields, a set of distributed temperature control and acquisition system was designed. The specific hardware circuit design and software implementation methods are given. A digital temperature sensor is used to collect temperature. Compared with the traditional temperature measurement device, it has more simple structure, higher temperature measurement precision, wider application rang, etc. In combination with AT89S51 and PC communication mechanism, the serial communication based on multi?thread technology is adopted to extend the functions of serial communication with PC and remote monitoring, and achieve the real?time temperature automatic monitoring, automatic adjustment and intelligent alarm in object region. Experimental results show that the system has the characteristics of low cost, convenient application and extension, which can be widely used in people's daily life, industry, agriculture and scientific research, and can provide a reference for the extensive application.
Key words: AT89S51; series?port communication; distributed temperature control; circuit design
0 "引 "言
在工業(yè)控制過程中,例如航空、航天、石油等領(lǐng)域?qū)囟扔兄^高的要求。在實際測量和控制中,如何保證快速實時地對溫度進行采樣,確保數(shù)據(jù)的正確傳輸,并能對所測溫度場依據(jù)實際需要進行較精確的控制,是當前溫控系統(tǒng)需要迫切關(guān)注并給予解決的重要問題之一。本文研究的傳感器結(jié)合單片機嵌入式控制、采集一體化技術(shù),具有能耗低、便攜、高精度的特點,克服了傳統(tǒng)溫度檢測系統(tǒng)的校準復(fù)雜、精度低等缺點,能夠?qū)崿F(xiàn)多通道、高精度以及大容量的要求。
1 "系統(tǒng)工作原理及架構(gòu)
溫度控制與采集系統(tǒng)主要是針對制定區(qū)域或空間進行溫度實時的監(jiān)測,實時地采集記錄溫度信息,并實現(xiàn)對溫度的自動化智能控制、調(diào)節(jié),以確保溫度一直保持在預(yù)計的范圍內(nèi)。系統(tǒng)設(shè)計模塊包括溫控范圍的設(shè)定模塊、溫度檢測模塊、加溫控制模塊、溫度信息采集模塊、記錄模塊、溫度信息顯示模塊及超溫報警模塊。系統(tǒng)設(shè)計架構(gòu)圖見圖1所示。
由圖1可知,被控對象區(qū)域的溫度可通過一線制數(shù)字溫度傳感器感應(yīng)獲得,再由AT89S51單片機將數(shù)字溫度傳感器輸出的電壓信號通過串口傳送至便攜式計算機,便攜式計算機上位機軟件將電壓信號轉(zhuǎn)換為溫度信號,打上時間標記,實時顯示并存儲。同時,上位機軟件依據(jù)設(shè)定的溫度范圍及控制算法,自動判斷當前被控對象區(qū)域溫度是否在預(yù)計的溫控范圍內(nèi),通過串口向AT89S51單片機發(fā)送控制指令,單片機依據(jù)控制指令自動調(diào)節(jié)繼電器控制指令,以決定是否通過加熱爐對被控對象區(qū)域加溫,最終實現(xiàn)對被控對象區(qū)域溫度的全自動閉環(huán)控制。若被控對象區(qū)域溫度在規(guī)定的時間段內(nèi)沒有達到預(yù)計溫度,則上位機軟件會自動向AT89S51單片機發(fā)送告警指令,由單片機控制蜂鳴器實現(xiàn)報警功能[1]。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t1.tifgt;
圖1 系統(tǒng)設(shè)計架構(gòu)圖
2 "硬件電路設(shè)計
2.1 "串口通信電路設(shè)計
AT89S51單片機具有串口RXD和TXD,而PC機上也具有RXD和TXD兩個端口。通過串口通信可實現(xiàn)單片機與PC機之間的控制和采集功能。由于單片機的TTL邏輯中的2~5 V和0~0.8 V與PC機的RS 232標準定義的高低電平-3~-25 V和3~25 V不匹配,需通過MAX232接口芯片實現(xiàn)二者之間的通信鏈路連接[2]。單片機與PC機串口通信電路設(shè)計原理圖見圖2所示。AT89S51單片機的TXD與
MAX232的第2組電平轉(zhuǎn)換器的輸入端T2IN(10管腳)相連,
經(jīng)過MAX232轉(zhuǎn)換后,輸出端T2OUT(7管腳)輸出的信號進入計算機串口的RXD。同樣地,計算機串口的TXD與MAX232的R2IN(8管腳)相連,經(jīng)過電平轉(zhuǎn)換后,由R2OUT(9管腳)輸出到單片機的RXD上。
2.2 "溫度信號調(diào)理電路設(shè)計
溫度信號調(diào)理電路主要是根據(jù)K型熱電偶的特點進行設(shè)計的。由于K型熱電偶使用溫度范圍為使用溫度范圍為-200~1 200 ℃,其輸出電壓信號為mV級,因此,信號調(diào)理電路包括信號放大電路、濾波電路以及冷端補償電路。針對熱電偶測試的冷端補償,本文采用軟件補償?shù)姆绞健?/p>
溫度信號調(diào)理電路原理圖如圖3所示。
3 "系統(tǒng)軟件設(shè)計
3.1 "單片機軟件設(shè)計
單片機的主要功能(數(shù)據(jù)采集、通信、控制)分別在不同的程序模塊中實現(xiàn),依據(jù)實現(xiàn)功能,單片機的軟件設(shè)計可分為采集控制模塊和串口通信模塊。
根據(jù)測控系統(tǒng)的特點,針對進行調(diào)理、A/D轉(zhuǎn)換后送來的溫度信號,在單片機主程序中采取查詢法進行循環(huán)采集。在程序編寫過程中,針對溫度信號,結(jié)合K型熱電偶的溫度范圍,采用上、下限判斷的方法進行二次軟件濾波,消除干擾,確保數(shù)據(jù)采集的可靠性及真實性。同時,判斷串口通信模塊送來的加溫控制信號,實時通過繼電器控制加熱爐工作,以確保被控區(qū)域溫度在規(guī)定的范圍內(nèi)。
圖2 串口通信電路設(shè)計原理圖
串口通信模塊主要是與上位機進行數(shù)據(jù)及控制命令的通信傳輸。上位機每隔50 ms發(fā)一個命令字,要求單片機上傳數(shù)據(jù)。當要修改溫度控制范圍等參數(shù)時,上位機先發(fā)一個命令字,再發(fā)數(shù)據(jù),串口通信模塊根據(jù)命令字和數(shù)據(jù)首先判斷修改的溫度范圍數(shù)據(jù)是否合理,如果數(shù)據(jù)錯誤,則向上位機反饋錯誤信息,如果合理,則完成相應(yīng)的控制采集操作。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t3.tifgt;
圖3 溫度信號調(diào)理電路設(shè)計原理圖
單片機軟件設(shè)計流程圖見圖4所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t4.tifgt;
圖4 單片機軟件設(shè)計流程圖
3.2 "上位機軟件設(shè)計
根據(jù)系統(tǒng)設(shè)計的功能,上位機軟件主要包括串口通信模塊、數(shù)據(jù)存儲模塊、實時數(shù)據(jù)顯示模塊及信號控制模塊。系統(tǒng)采用VC++ 6.0平臺編寫,采用了多線程技術(shù),在軟件界面運行的同時開啟串口通信、數(shù)據(jù)存儲工作線程,代碼如下:
void Start()
{
CWinThread* pThread;
//開啟串口通信、數(shù)據(jù)存儲線程
pThread = AfxBeginThread(Thread, this);
}
//串口通信、數(shù)據(jù)存儲線程
UINT Thread()
{
//采用分時工作方式
ThreadFun1(); " " " " " " " " " " " " " " " " " " //串口通信函數(shù)
ThreadFun2(); " " " " " " " " " " " " " " " " "http://數(shù)據(jù)存儲函數(shù)
return 0;
}
3.2.1 "串口通信模塊設(shè)計
數(shù)據(jù)通信程序使用PC機Com1口與單片機通信,在Visual C++6.0中利用Windows API接口函數(shù)編程實現(xiàn)[3]。根據(jù)通信協(xié)議,上位機軟件使用WriteFile()函數(shù)將控制命令傳送給單片機,單片機在后續(xù)進行循環(huán)采集、發(fā)送,將數(shù)據(jù)送至PC機串口緩沖區(qū),上位機軟件以緩沖區(qū)中有數(shù)據(jù)到來為判斷條件,采用中斷方式,使用ReadFile()函數(shù),實時將緩沖區(qū)中的數(shù)據(jù)取出,進而進行實時保存及顯示。同時,串口通信模塊循環(huán)監(jiān)測信號控制模塊送來的控制命令,以確保實時將控制命令傳送至單片機。
3.2.2 "數(shù)據(jù)存儲模塊設(shè)計
數(shù)據(jù)存儲模塊主要是使用SQL數(shù)據(jù)庫數(shù)據(jù)庫實現(xiàn),將從串口緩沖區(qū)中獲取的數(shù)據(jù)實時保存至數(shù)據(jù)庫中。主要使用VC++中的ADO Data控件和DataGrid控件實現(xiàn)與數(shù)據(jù)庫的連接及數(shù)據(jù)的調(diào)閱顯示,同時需要配置ODBC數(shù)據(jù)源,以確保數(shù)據(jù)庫連接成功[4]。ADO Data控件主要用來連接和配置數(shù)據(jù)源,DataGrid控件用于調(diào)閱、查看數(shù)據(jù)庫中的數(shù)據(jù)信息。
3.2.3 "實時數(shù)據(jù)顯示模塊設(shè)計
實時數(shù)據(jù)顯示模塊主要是用于實時監(jiān)測溫度信息,以便工程人員實時掌握被控區(qū)域的溫度變化趨勢,根據(jù)實際情況需要實時進行溫度調(diào)整或分析。實時數(shù)據(jù)顯示程序設(shè)計界面見圖5所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t5.tifgt;
圖5 實時數(shù)據(jù)顯示程序界面
3.2.4 "信號控制模塊設(shè)計
信號控制模塊設(shè)計主要是在顯示界面上設(shè)置溫度控制的上、下限和極限報警時間。當被控區(qū)域的溫度超出下限時,由信號控制模塊自動通過串口通信模塊向單片機發(fā)送加溫控制信號,以控制加溫爐向被控區(qū)域加溫,同時實時監(jiān)測由串口通信模塊接收到的溫度信息,當溫度達到預(yù)定值時,再次通過串口通信模塊向單片機發(fā)送控制信號,停止向被控區(qū)域加溫。當被控區(qū)域的溫度長時間超出預(yù)定的溫度上、下限時,信號控制模塊向單片機發(fā)送報警控制信號,以供工程技術(shù)人員進行現(xiàn)場檢查和確認。信號控制模塊的設(shè)計流程圖見圖6所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t6.tifgt;
圖6 信號控制模塊設(shè)計流程圖
4 結(jié) "語
本文設(shè)計的溫度控制與采集系統(tǒng)可實現(xiàn)對被控區(qū)域溫度的有效實時監(jiān)測,能夠根據(jù)預(yù)定的溫度上、下限范圍實現(xiàn)溫度的自動化調(diào)節(jié)、控制,并能夠?qū)囟刃畔⑦M行存儲和二次處理分析。該系統(tǒng)具有研制成本低、精度高、可靠性強、操作靈活、可擴展性強的特點,可以廣泛應(yīng)用于工業(yè)控制領(lǐng)域。
參考文獻
[1] 胡乾斌,李光斌,李玲,等.單片微型計算機原理與應(yīng)用[M].
2版.武漢:華中科技大學出版社,2006.
[2] 蔣輝平,周國雄.單片機原理與應(yīng)用設(shè)計[M].北京:北京航空航天大學出版社,2007.
[3] 李景峰,潘恒.Visual C++串口通信技術(shù)詳解[M].2版.北京:機械工業(yè)出版社,2013.
[4] 明日科技. SQL Server從入門到精通[M].北京:清華大學出版社,2012.
[5] 王軍琴.廣義預(yù)測控制算法在加熱爐溫度控制中的應(yīng)用[J].現(xiàn)代電子技術(shù),2010,33(10):18?20.
[6] 王惠平.基于多線程溫度控制專家系統(tǒng)[J].現(xiàn)代電子技術(shù),2012,35(2):115?117.