陳益飛
CHEN Yi-fei
(鹽城工學(xué)院,鹽城 224051)
單片微型計(jì)算機(jī)是隨著超大規(guī)模集成電路技術(shù)的發(fā)展而誕生的,由于它具有體積小、功能強(qiáng)、性價(jià)比高等特點(diǎn),所以廣泛應(yīng)用于電子儀表、家用電器、節(jié)能裝置、軍事裝置、機(jī)器人、工業(yè)控制等諸多領(lǐng)域,使產(chǎn)品小型化、智能化,既提高了產(chǎn)品的功能和質(zhì)量,又降低了成本,簡(jiǎn)化了設(shè)計(jì)。本文主要介紹單片機(jī)在溫度控制中的應(yīng)用。
溫度是工業(yè)生產(chǎn)中常見的工藝參數(shù)之一,任何物理變化和化學(xué)反應(yīng)過程都與溫度密切相關(guān),因此溫度控制是生產(chǎn)自動(dòng)化的重要任務(wù)。采用單片機(jī)作為鍋爐水溫閉環(huán)控制系統(tǒng)的控制核心,實(shí)現(xiàn)人工設(shè)定溫度,自動(dòng)控制溫度,顯示水的實(shí)時(shí)溫度等功能。水溫測(cè)試方式采用數(shù)字溫度傳感器感知鍋爐中水的溫度,通過單片機(jī)與數(shù)字溫度傳感器通訊獲得實(shí)時(shí)溫度,并通過程序?qū)崿F(xiàn)閉環(huán)控制。采用鍵盤掃描方式對(duì)目標(biāo)溫度(0℃~80℃或20~60℃范圍內(nèi))進(jìn)行人工設(shè)定,并用顯示器顯示水的實(shí)時(shí)溫度、給定溫度及溫度范圍。同時(shí)系統(tǒng)還通過繼電器電路控制加熱器件的導(dǎo)通與關(guān)閉,達(dá)到保持設(shè)定溫度基本不變的目的,并起到強(qiáng)弱點(diǎn)隔離作用,安全可靠。因此,單片機(jī)對(duì)溫度的控制問題是一個(gè)工業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的問題。
基于AT89S52單片機(jī)的鍋爐溫度控制系統(tǒng)的硬件設(shè)計(jì)和軟件開發(fā)的過程。硬件部分包括溫度傳感器DS18B20、LED數(shù)碼管顯示、報(bào)警電路以及按鍵功能。首先由溫度采集測(cè)控系統(tǒng)采用DS18B20滿足溫度測(cè)量,并將溫度信號(hào)轉(zhuǎn)換成電流,轉(zhuǎn)換為電壓信號(hào),之后該信號(hào)經(jīng)預(yù)處理后,進(jìn)行A/D轉(zhuǎn)換,獲得的有關(guān)被監(jiān)控環(huán)境溫度的數(shù)字量,發(fā)送給單片機(jī)處理。它與其他形式的溫度傳感器相比,不需要進(jìn)行冷端補(bǔ)償,而且它是以高阻抗恒流源形式輸出。傳輸線上的壓降不影響輸出電流值,可以進(jìn)行遠(yuǎn)距離傳輸。單片機(jī)對(duì)經(jīng)A/D轉(zhuǎn)換之后的環(huán)境溫度進(jìn)行接收,對(duì)接收到的環(huán)境溫度信號(hào)進(jìn)行BCD碼轉(zhuǎn)換,發(fā)送給顯示模塊。之后,單片機(jī)將接收到的溫度數(shù)據(jù)與事先設(shè)定的溫度值進(jìn)行對(duì)比,如果當(dāng)前環(huán)境溫度超出了設(shè)定的溫度范圍,則進(jìn)行調(diào)控。同時(shí)還要實(shí)現(xiàn)溫度報(bào)警功能,若超出了監(jiān)控溫度范圍則發(fā)出警告。此外還有復(fù)位電路,晶振電路等。鍋爐溫度測(cè)控系統(tǒng)原理框圖如圖1所示。
圖1 鍋爐溫度測(cè)控系統(tǒng)框圖
1.1 控制器模塊
采用AT89S52作為系統(tǒng)的控制器。單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活,自由度大,可用軟件編程實(shí)現(xiàn)各種算法,并且具有低功耗,高性能,技術(shù)成熟,成本低廉等有點(diǎn),使其在各個(gè)領(lǐng)域應(yīng)用廣泛。
1.2 水溫探測(cè)模塊
水溫探測(cè)模塊用于測(cè)量器皿中水的溫度。系統(tǒng)需要利用測(cè)溫傳感器檢測(cè)出水的實(shí)時(shí)溫度,是控制模塊做出正確的反應(yīng),控制水的溫度。
采用單總線可編程溫度傳感器DS18B20測(cè)溫度。DS18B20是數(shù)字溫度傳感器。它把溫度傳感器、外圍電路、A/D轉(zhuǎn)換器、微控制器和接口電路集成到一個(gè)芯片中構(gòu)成的具有溫度測(cè)量、溫度控制和與微處理器數(shù)據(jù)連接能力的溫度傳感器組件稱為數(shù)字溫度傳感器。通過DS18B20數(shù)字可編程溫度傳感器可測(cè)溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為 0.5℃。可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測(cè)溫。在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。并且其所需輔助電路簡(jiǎn)單,依靠程序直接讀取溫度,總費(fèi)用低。
1.3 顯示模塊
使用液晶顯示屏顯示水溫。液晶顯示屏(LED)具有輕薄短小,低耗電量,無輻射危險(xiǎn),平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢(shì),可視面積大,畫面效果好,分辨率高,抗干擾能力強(qiáng)等特點(diǎn),且顯示更為人性化,電路焊接更為簡(jiǎn)單。
1.4 水溫控制模塊
控制模塊用來控制加熱器件的導(dǎo)通與關(guān)閉,從而達(dá)到控制加熱時(shí)間,控制水溫的目的。采用繼電器驅(qū)動(dòng)電路控制。繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。電磁式繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會(huì)流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜觸點(diǎn)(常開觸點(diǎn))吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會(huì)在彈簧的反作用力返回原來的位置,使動(dòng)觸點(diǎn)與原來的靜觸點(diǎn)(常閉觸點(diǎn))吸合。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。對(duì)于繼電器的“常開、常閉”觸點(diǎn),可以這樣來區(qū)分:繼電器線圈未通電時(shí)處于斷開狀態(tài)的靜觸點(diǎn),稱為“常開觸點(diǎn)”;處于接通狀態(tài)的靜觸點(diǎn)稱為“常閉觸點(diǎn)”。
1.5 超溫報(bào)警電路的設(shè)計(jì)
超溫報(bào)警電路由LED燈與電阻組成。當(dāng)溫度超過設(shè)定的溫度控制范圍時(shí),則燈亮,并且蜂鳴器鳴叫。
通常,鍋爐溫度控制都采用偏差控制法。偏差控制的原理是先求出實(shí)測(cè)爐溫對(duì)所需爐溫的偏差值,然后對(duì)偏差值處理獲得控制信號(hào)去調(diào)節(jié)鍋爐的加熱功率,以實(shí)現(xiàn)對(duì)爐溫的控制。在工業(yè)上,偏差控制又稱PID控制,這是工業(yè)控制過程中應(yīng)用最廣泛的一種控制形式,一般都能收到令人滿意的效果。不同的控制對(duì)象,所采用的算法有所不同。例如對(duì)于熱慣性大、時(shí)間滯后明顯、耦合強(qiáng)、難于建立精確數(shù)學(xué)模型的大型立式淬火爐,可以采用人工智能模糊控制算法,通過對(duì)淬火爐電熱元件通斷比的調(diào)節(jié),實(shí)現(xiàn)對(duì)爐溫的自動(dòng)控制,也可以采用仿人智能控制(SHIC)算法和PID控制算法的聯(lián)合控制方案,實(shí)際應(yīng)用時(shí)應(yīng)靈活運(yùn)用。本系統(tǒng)采用的是Keil Elektronik Gmbh 開發(fā)的KeiluVision2工具軟件來進(jìn)行系統(tǒng)軟件編寫和調(diào)試的。在嵌入式系統(tǒng)中,相對(duì)于匯編語言,C語言作為一種高級(jí)語言主要存在兩個(gè)不足:1)生成的可執(zhí)行代碼冗長(zhǎng),效率不高。對(duì)于這一點(diǎn),隨著處理芯片運(yùn)算速度的提高、集成ROM的擴(kuò)大,特別編譯系統(tǒng)的不斷優(yōu)化,冗長(zhǎng)已經(jīng)不再是問題。這也是C在嵌入式系統(tǒng)中逐漸成為主流編程語言的主要原因之一。2)C生成的可執(zhí)行代碼在時(shí)序上不容易控制,比如本系統(tǒng)中要實(shí)現(xiàn)的時(shí)序控制。主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,從而比較溫度值的大小,去執(zhí)行加熱電路。這個(gè)程序在讀完鍵盤要判斷啟動(dòng)鍵是否啟動(dòng),才能進(jìn)行溫度讀取,最后通過LED顯示出來。
圖2 主程序流程圖
2.1 顯示程序的設(shè)計(jì)
顯示子程序采用動(dòng)態(tài)掃描法實(shí)現(xiàn)四位共陽極數(shù)碼管的數(shù)值顯示,測(cè)量所得的A/D轉(zhuǎn)換數(shù)據(jù)放在22h內(nèi)存單元中,測(cè)量數(shù)據(jù)在顯示時(shí)轉(zhuǎn)換為溫度值十進(jìn)制BCD碼放在23h~25h內(nèi)存單元中。
2.2 DS18B20程序
溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,轉(zhuǎn)換時(shí)間約為750ms。
1)初始化:初始化是DSl8B20的底層基本操作之一。通過單線總線進(jìn)行的所有操作都從一個(gè)初始化序列開始。初始化序列包括一個(gè)由CPU發(fā)出的復(fù)位脈沖及其后由DS18B20發(fā)出的存在脈沖。存在脈沖讓CPU知道DS18B20在總線上且已做好操作準(zhǔn)備。
2)數(shù)據(jù)寫:數(shù)據(jù)寫是DSl8B20的底層基本操作之一,所有的指令、數(shù)據(jù)發(fā)送均由該操作完成。DSl8B20的寫操作都是逐位進(jìn)行的,因此,采用C5l中的位右移操作來實(shí)現(xiàn)。
3)數(shù)據(jù)讀:數(shù)據(jù)讀是DSl8B20的底層基本操作之一,溫度值和其他狀態(tài)信息的傳回均由該操作完成。
2.3 鍵盤程序
通過鍵盤可以人為的控制溫度,使其更為人性化;編程也簡(jiǎn)單明了。確定啟動(dòng)鍵開啟后,通過控制溫度上升鍵和下降鍵人為的去調(diào)節(jié)溫度,再回到讀鍵盤這樣一個(gè)反復(fù)的動(dòng)作。
為了檢驗(yàn)該系統(tǒng)的性能,對(duì)其進(jìn)行仿真實(shí)驗(yàn)。首先通過KEIL C51軟件仿真實(shí)現(xiàn)程序調(diào)試的功能,再通過軟件PROTEUS進(jìn)行軟硬件模擬連調(diào)。設(shè)目標(biāo)溫度范圍為20~60℃,設(shè)定溫度為45℃,相應(yīng)的鍋爐溫度調(diào)節(jié)時(shí)間結(jié)果記錄如表1所示。
表1 鍋爐溫度調(diào)節(jié)時(shí)間結(jié)果記錄
由表1分析可知,溫差相同時(shí),升溫時(shí)間比降溫時(shí)間要快,原因在于升溫采用電阻絲加熱,而降溫采用的是12V普通風(fēng)扇降溫,效率較低。若采用加熱致冷芯片來完成升溫和降溫則溫度穩(wěn)定時(shí)間會(huì)更少。
本次研究借助于經(jīng)典控制理論和現(xiàn)代控制理論的結(jié)合,PID 控制算法是一種易于實(shí)現(xiàn)而且經(jīng)濟(jì)實(shí)用的方法,具有很強(qiáng)的靈活性,但在被控制對(duì)象具有復(fù)雜的非線性時(shí),難以滿足控制要求,而神經(jīng)網(wǎng)絡(luò)PID 控制具有逼近任意非線性函數(shù)的能力,神經(jīng)網(wǎng)絡(luò)PID實(shí)現(xiàn)對(duì)鍋爐溫度的測(cè)量、控制和顯示,提高了鍋爐監(jiān)控系統(tǒng)的效率。基于AT89S52單片機(jī)的溫度測(cè)控系統(tǒng)將LED顯示器件與控制、驅(qū)動(dòng)集成電路裝在一起,形成一個(gè)功能部件,最后通過硬件焊接實(shí)現(xiàn)了鍋爐的溫度控制系統(tǒng)的設(shè)計(jì)。用戶只需用傳統(tǒng)工藝即可將其裝配成一個(gè)整機(jī)系統(tǒng)。這對(duì)于工業(yè)自動(dòng)化大生產(chǎn)具有一定的實(shí)踐使用價(jià)值。
[1]楊恒主.ARM嵌入式系統(tǒng)設(shè)計(jì)及實(shí)踐[M].西安電子科技大學(xué)出版社,2005.
[2]田東風(fēng).WINDOWS CE應(yīng)用程序設(shè)計(jì)[M].機(jī)械工業(yè)出版社,1990.
[3]傅曦.嵌入式系統(tǒng)Windows CE開發(fā)技巧與實(shí)例[M].化學(xué)工業(yè)出版社,2004.
[4]葉宏材.Windows CE.NET嵌入式工業(yè)用控制器及自動(dòng)控制系統(tǒng)設(shè)計(jì)[M].清華大學(xué)出版社,2005.
[5]楊恒主.ARM嵌入式系統(tǒng)設(shè)計(jì)及實(shí)踐[M].西安電子科技大學(xué)出版社,2005.
[6]朱義君.ARM微控制器體系結(jié)構(gòu)與開發(fā)實(shí)例[M].北京航空航天大學(xué)出版社,2005.
[7]金以慧.過程控制 [M].北京:清華大學(xué)出版社,2005:118-123.
[8]俞金壽,蔣慰孫.過程控制工程第3版 [M].北京:電子工業(yè)出版社,2007-07:68-80,240-250.
[9]施金良,賈碧.微機(jī)控制的熱絲法物質(zhì)熔點(diǎn)測(cè)定儀[J].檢測(cè)與儀表,1998,3:36-38.
[10]孫瑩.單片機(jī)在熔點(diǎn)測(cè)試儀中的應(yīng)用 [J].儀器儀表用戶,2002,9(2):28-30.