摘 "要: 根據(jù)當(dāng)前化工、醫(yī)療、航空、航天等高科技領(lǐng)域?qū)囟日{(diào)節(jié)和控制的要求,設(shè)計(jì)了一套分布式溫度控制和采集系統(tǒng),給出了具體的硬件電路設(shè)計(jì)和系統(tǒng)軟件實(shí)現(xiàn),使用一線制數(shù)字溫度傳感器采集溫度。與傳統(tǒng)測溫裝置相比,具有結(jié)構(gòu)簡單,測溫精度高、應(yīng)用面廣等特點(diǎn)。結(jié)合AT89S51單片機(jī)與PC機(jī)的通信機(jī)理,采用基于多線程的串行通信技術(shù),擴(kuò)展了和上位機(jī)的串行通信,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,實(shí)現(xiàn)了對目標(biāo)區(qū)域溫度的自動(dòng)實(shí)時(shí)監(jiān)控、自動(dòng)調(diào)節(jié)及智能報(bào)警功能。試驗(yàn)結(jié)果表明,整個(gè)系統(tǒng)不但成本低廉、而且使用和擴(kuò)展方便,可廣泛應(yīng)用于人們?nèi)粘I?、工農(nóng)業(yè)生產(chǎn)和科學(xué)研究領(lǐng)域,為廣泛深入應(yīng)用提供了借鑒。
關(guān)鍵詞: AT89S51; 串口通信; 分布式溫度控制; 電路設(shè)計(jì)
中圖分類號: TN919?34; V211.74 " " " " " " " 文獻(xiàn)標(biāo)識碼: 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í)際測量和控制中,如何保證快速實(shí)時(shí)地對溫度進(jìn)行采樣,確保數(shù)據(jù)的正確傳輸,并能對所測溫度場依據(jù)實(shí)際需要進(jìn)行較精確的控制,是當(dāng)前溫控系統(tǒng)需要迫切關(guān)注并給予解決的重要問題之一。本文研究的傳感器結(jié)合單片機(jī)嵌入式控制、采集一體化技術(shù),具有能耗低、便攜、高精度的特點(diǎn),克服了傳統(tǒng)溫度檢測系統(tǒng)的校準(zhǔn)復(fù)雜、精度低等缺點(diǎn),能夠?qū)崿F(xiàn)多通道、高精度以及大容量的要求。
1 "系統(tǒng)工作原理及架構(gòu)
溫度控制與采集系統(tǒng)主要是針對制定區(qū)域或空間進(jìn)行溫度實(shí)時(shí)的監(jiān)測,實(shí)時(shí)地采集記錄溫度信息,并實(shí)現(xiàn)對溫度的自動(dòng)化智能控制、調(diào)節(jié),以確保溫度一直保持在預(yù)計(jì)的范圍內(nèi)。系統(tǒng)設(shè)計(jì)模塊包括溫控范圍的設(shè)定模塊、溫度檢測模塊、加溫控制模塊、溫度信息采集模塊、記錄模塊、溫度信息顯示模塊及超溫報(bào)警模塊。系統(tǒng)設(shè)計(jì)架構(gòu)圖見圖1所示。
由圖1可知,被控對象區(qū)域的溫度可通過一線制數(shù)字溫度傳感器感應(yīng)獲得,再由AT89S51單片機(jī)將數(shù)字溫度傳感器輸出的電壓信號通過串口傳送至便攜式計(jì)算機(jī),便攜式計(jì)算機(jī)上位機(jī)軟件將電壓信號轉(zhuǎn)換為溫度信號,打上時(shí)間標(biāo)記,實(shí)時(shí)顯示并存儲。同時(shí),上位機(jī)軟件依據(jù)設(shè)定的溫度范圍及控制算法,自動(dòng)判斷當(dāng)前被控對象區(qū)域溫度是否在預(yù)計(jì)的溫控范圍內(nèi),通過串口向AT89S51單片機(jī)發(fā)送控制指令,單片機(jī)依據(jù)控制指令自動(dòng)調(diào)節(jié)繼電器控制指令,以決定是否通過加熱爐對被控對象區(qū)域加溫,最終實(shí)現(xiàn)對被控對象區(qū)域溫度的全自動(dòng)閉環(huán)控制。若被控對象區(qū)域溫度在規(guī)定的時(shí)間段內(nèi)沒有達(dá)到預(yù)計(jì)溫度,則上位機(jī)軟件會(huì)自動(dòng)向AT89S51單片機(jī)發(fā)送告警指令,由單片機(jī)控制蜂鳴器實(shí)現(xiàn)報(bào)警功能[1]。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t1.tifgt;
圖1 系統(tǒng)設(shè)計(jì)架構(gòu)圖
2 "硬件電路設(shè)計(jì)
2.1 "串口通信電路設(shè)計(jì)
AT89S51單片機(jī)具有串口RXD和TXD,而PC機(jī)上也具有RXD和TXD兩個(gè)端口。通過串口通信可實(shí)現(xiàn)單片機(jī)與PC機(jī)之間的控制和采集功能。由于單片機(jī)的TTL邏輯中的2~5 V和0~0.8 V與PC機(jī)的RS 232標(biāo)準(zhǔn)定義的高低電平-3~-25 V和3~25 V不匹配,需通過MAX232接口芯片實(shí)現(xiàn)二者之間的通信鏈路連接[2]。單片機(jī)與PC機(jī)串口通信電路設(shè)計(jì)原理圖見圖2所示。AT89S51單片機(jī)的TXD與
MAX232的第2組電平轉(zhuǎn)換器的輸入端T2IN(10管腳)相連,
經(jīng)過MAX232轉(zhuǎn)換后,輸出端T2OUT(7管腳)輸出的信號進(jìn)入計(jì)算機(jī)串口的RXD。同樣地,計(jì)算機(jī)串口的TXD與MAX232的R2IN(8管腳)相連,經(jīng)過電平轉(zhuǎn)換后,由R2OUT(9管腳)輸出到單片機(jī)的RXD上。
2.2 "溫度信號調(diào)理電路設(shè)計(jì)
溫度信號調(diào)理電路主要是根據(jù)K型熱電偶的特點(diǎn)進(jìn)行設(shè)計(jì)的。由于K型熱電偶使用溫度范圍為使用溫度范圍為-200~1 200 ℃,其輸出電壓信號為mV級,因此,信號調(diào)理電路包括信號放大電路、濾波電路以及冷端補(bǔ)償電路。針對熱電偶測試的冷端補(bǔ)償,本文采用軟件補(bǔ)償?shù)姆绞健?/p>
溫度信號調(diào)理電路原理圖如圖3所示。
3 "系統(tǒng)軟件設(shè)計(jì)
3.1 "單片機(jī)軟件設(shè)計(jì)
單片機(jī)的主要功能(數(shù)據(jù)采集、通信、控制)分別在不同的程序模塊中實(shí)現(xiàn),依據(jù)實(shí)現(xiàn)功能,單片機(jī)的軟件設(shè)計(jì)可分為采集控制模塊和串口通信模塊。
根據(jù)測控系統(tǒng)的特點(diǎn),針對進(jìn)行調(diào)理、A/D轉(zhuǎn)換后送來的溫度信號,在單片機(jī)主程序中采取查詢法進(jìn)行循環(huán)采集。在程序編寫過程中,針對溫度信號,結(jié)合K型熱電偶的溫度范圍,采用上、下限判斷的方法進(jìn)行二次軟件濾波,消除干擾,確保數(shù)據(jù)采集的可靠性及真實(shí)性。同時(shí),判斷串口通信模塊送來的加溫控制信號,實(shí)時(shí)通過繼電器控制加熱爐工作,以確保被控區(qū)域溫度在規(guī)定的范圍內(nèi)。
圖2 串口通信電路設(shè)計(jì)原理圖
串口通信模塊主要是與上位機(jī)進(jìn)行數(shù)據(jù)及控制命令的通信傳輸。上位機(jī)每隔50 ms發(fā)一個(gè)命令字,要求單片機(jī)上傳數(shù)據(jù)。當(dāng)要修改溫度控制范圍等參數(shù)時(shí),上位機(jī)先發(fā)一個(gè)命令字,再發(fā)數(shù)據(jù),串口通信模塊根據(jù)命令字和數(shù)據(jù)首先判斷修改的溫度范圍數(shù)據(jù)是否合理,如果數(shù)據(jù)錯(cuò)誤,則向上位機(jī)反饋錯(cuò)誤信息,如果合理,則完成相應(yīng)的控制采集操作。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t3.tifgt;
圖3 溫度信號調(diào)理電路設(shè)計(jì)原理圖
單片機(jī)軟件設(shè)計(jì)流程圖見圖4所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t4.tifgt;
圖4 單片機(jī)軟件設(shè)計(jì)流程圖
3.2 "上位機(jī)軟件設(shè)計(jì)
根據(jù)系統(tǒng)設(shè)計(jì)的功能,上位機(jī)軟件主要包括串口通信模塊、數(shù)據(jù)存儲模塊、實(shí)時(shí)數(shù)據(jù)顯示模塊及信號控制模塊。系統(tǒng)采用VC++ 6.0平臺編寫,采用了多線程技術(shù),在軟件界面運(yùn)行的同時(shí)開啟串口通信、數(shù)據(jù)存儲工作線程,代碼如下:
void Start()
{
CWinThread* pThread;
//開啟串口通信、數(shù)據(jù)存儲線程
pThread = AfxBeginThread(Thread, this);
}
//串口通信、數(shù)據(jù)存儲線程
UINT Thread()
{
//采用分時(shí)工作方式
ThreadFun1(); " " " " " " " " " " " " " " " " " " //串口通信函數(shù)
ThreadFun2(); " " " " " " " " " " " " " " " " "http://數(shù)據(jù)存儲函數(shù)
return 0;
}
3.2.1 "串口通信模塊設(shè)計(jì)
數(shù)據(jù)通信程序使用PC機(jī)Com1口與單片機(jī)通信,在Visual C++6.0中利用Windows API接口函數(shù)編程實(shí)現(xiàn)[3]。根據(jù)通信協(xié)議,上位機(jī)軟件使用WriteFile()函數(shù)將控制命令傳送給單片機(jī),單片機(jī)在后續(xù)進(jìn)行循環(huán)采集、發(fā)送,將數(shù)據(jù)送至PC機(jī)串口緩沖區(qū),上位機(jī)軟件以緩沖區(qū)中有數(shù)據(jù)到來為判斷條件,采用中斷方式,使用ReadFile()函數(shù),實(shí)時(shí)將緩沖區(qū)中的數(shù)據(jù)取出,進(jìn)而進(jìn)行實(shí)時(shí)保存及顯示。同時(shí),串口通信模塊循環(huán)監(jiān)測信號控制模塊送來的控制命令,以確保實(shí)時(shí)將控制命令傳送至單片機(jī)。
3.2.2 "數(shù)據(jù)存儲模塊設(shè)計(jì)
數(shù)據(jù)存儲模塊主要是使用SQL數(shù)據(jù)庫數(shù)據(jù)庫實(shí)現(xiàn),將從串口緩沖區(qū)中獲取的數(shù)據(jù)實(shí)時(shí)保存至數(shù)據(jù)庫中。主要使用VC++中的ADO Data控件和DataGrid控件實(shí)現(xiàn)與數(shù)據(jù)庫的連接及數(shù)據(jù)的調(diào)閱顯示,同時(shí)需要配置ODBC數(shù)據(jù)源,以確保數(shù)據(jù)庫連接成功[4]。ADO Data控件主要用來連接和配置數(shù)據(jù)源,DataGrid控件用于調(diào)閱、查看數(shù)據(jù)庫中的數(shù)據(jù)信息。
3.2.3 "實(shí)時(shí)數(shù)據(jù)顯示模塊設(shè)計(jì)
實(shí)時(shí)數(shù)據(jù)顯示模塊主要是用于實(shí)時(shí)監(jiān)測溫度信息,以便工程人員實(shí)時(shí)掌握被控區(qū)域的溫度變化趨勢,根據(jù)實(shí)際情況需要實(shí)時(shí)進(jìn)行溫度調(diào)整或分析。實(shí)時(shí)數(shù)據(jù)顯示程序設(shè)計(jì)界面見圖5所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t5.tifgt;
圖5 實(shí)時(shí)數(shù)據(jù)顯示程序界面
3.2.4 "信號控制模塊設(shè)計(jì)
信號控制模塊設(shè)計(jì)主要是在顯示界面上設(shè)置溫度控制的上、下限和極限報(bào)警時(shí)間。當(dāng)被控區(qū)域的溫度超出下限時(shí),由信號控制模塊自動(dòng)通過串口通信模塊向單片機(jī)發(fā)送加溫控制信號,以控制加溫爐向被控區(qū)域加溫,同時(shí)實(shí)時(shí)監(jiān)測由串口通信模塊接收到的溫度信息,當(dāng)溫度達(dá)到預(yù)定值時(shí),再次通過串口通信模塊向單片機(jī)發(fā)送控制信號,停止向被控區(qū)域加溫。當(dāng)被控區(qū)域的溫度長時(shí)間超出預(yù)定的溫度上、下限時(shí),信號控制模塊向單片機(jī)發(fā)送報(bào)警控制信號,以供工程技術(shù)人員進(jìn)行現(xiàn)場檢查和確認(rèn)。信號控制模塊的設(shè)計(jì)流程圖見圖6所示。
lt;E:\王芳\現(xiàn)代電子技術(shù)201502\Image\29t6.tifgt;
圖6 信號控制模塊設(shè)計(jì)流程圖
4 結(jié) "語
本文設(shè)計(jì)的溫度控制與采集系統(tǒng)可實(shí)現(xiàn)對被控區(qū)域溫度的有效實(shí)時(shí)監(jiān)測,能夠根據(jù)預(yù)定的溫度上、下限范圍實(shí)現(xiàn)溫度的自動(dòng)化調(diào)節(jié)、控制,并能夠?qū)囟刃畔⑦M(jìn)行存儲和二次處理分析。該系統(tǒng)具有研制成本低、精度高、可靠性強(qiáng)、操作靈活、可擴(kuò)展性強(qiáng)的特點(diǎn),可以廣泛應(yīng)用于工業(yè)控制領(lǐng)域。
參考文獻(xiàn)
[1] 胡乾斌,李光斌,李玲,等.單片微型計(jì)算機(jī)原理與應(yīng)用[M].
2版.武漢:華中科技大學(xué)出版社,2006.
[2] 蔣輝平,周國雄.單片機(jī)原理與應(yīng)用設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007.
[3] 李景峰,潘恒.Visual C++串口通信技術(shù)詳解[M].2版.北京:機(jī)械工業(yè)出版社,2013.
[4] 明日科技. SQL Server從入門到精通[M].北京:清華大學(xué)出版社,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.