陳 娟
(鄭州西亞斯學(xué)院電子信息工程學(xué)院,河南 鄭州 451150)
隨著嵌入式系統(tǒng)的迅猛發(fā)展, 這種嵌入式應(yīng)用系統(tǒng)正逐步取代傳統(tǒng)的以單片機(jī)為中心的應(yīng)用, 成為未來(lái)智能化儀表中的主力軍。目前,工業(yè)生產(chǎn)控制過(guò)程需要應(yīng)用大量智能控制儀表,尤其是溫度控制。至今,全世界的溫度控制系統(tǒng)大部分都使用傳統(tǒng)的PID 控制調(diào)節(jié)器,這是因?yàn)檎{(diào)節(jié)器具有規(guī)律簡(jiǎn)單、運(yùn)行可靠、易于實(shí)現(xiàn)的特點(diǎn)。然而,溫度是一種常見(jiàn)的過(guò)程變量,溫度控制系統(tǒng)大都含有純滯后環(huán)節(jié), 如果使用傳統(tǒng)調(diào)節(jié)器則容易引起系統(tǒng)超調(diào)和振蕩以及系統(tǒng)參數(shù)的變化,這種隨機(jī)產(chǎn)生的和不可準(zhǔn)確預(yù)計(jì)的變化, 無(wú)疑增加了高精度溫度控制的難度。為了解決傳統(tǒng)控制算法在基于智能儀表的溫度控制效果不佳的狀況, 利用現(xiàn)代電子技術(shù), 通過(guò)對(duì)所需要恒溫裝置進(jìn)行溫度實(shí)時(shí)高精度采集和控制相關(guān)驅(qū)動(dòng)電路來(lái)使裝置處在恒溫狀態(tài)。
恒溫系統(tǒng)的運(yùn)用在工業(yè)領(lǐng)域最為常見(jiàn), 隨著電子技術(shù)的快速發(fā)展, 對(duì)工業(yè)領(lǐng)域的現(xiàn)場(chǎng)溫度測(cè)控也由以前的指針溫度計(jì)、刻度溫度計(jì)向數(shù)字式、觸摸屏顯示的智能溫度儀表發(fā)展, 對(duì)恒溫系統(tǒng)的精度要求也不斷提高。傳統(tǒng)的利用單片機(jī)設(shè)計(jì)的恒溫系統(tǒng)己經(jīng)逐漸不能適應(yīng)日漸復(fù)雜的恒溫系統(tǒng)的需求,高精度數(shù)據(jù)處理、友好的人機(jī)交互界面、遠(yuǎn)距離智能化的監(jiān)控系統(tǒng)將成了現(xiàn)代智能化系統(tǒng)的迫切需求[3]。伴隨著嵌入式系統(tǒng)的迅猛發(fā)展, 以單片機(jī)為中心的傳統(tǒng)應(yīng)用正逐步被嵌入式系統(tǒng)的應(yīng)用所取代[1],成為未來(lái)智能化儀器儀表發(fā)展趨勢(shì)。
恒溫控制系統(tǒng)的主要功能是實(shí)現(xiàn)對(duì)溫度的自動(dòng)控制。溫度傳感器采集水的溫度,經(jīng)過(guò)模數(shù)轉(zhuǎn)換得到相應(yīng)的數(shù)據(jù),利用控制芯片STC89C52 對(duì)數(shù)據(jù)進(jìn)行處理,通過(guò)單片機(jī)處理信號(hào)后將溫度值顯示在LCD1602液晶顯示屏上,并控制相應(yīng)的設(shè)備對(duì)水的溫度實(shí)現(xiàn)自動(dòng)調(diào)節(jié)??傮w設(shè)計(jì)思路見(jiàn)圖1。
圖1 系統(tǒng)的總體設(shè)計(jì)
主控芯片是STC89C52,其為STC 公司的80C52系列的單片機(jī),存儲(chǔ)器大小為8KB,具有性價(jià)比高、功耗低、抗干擾能力強(qiáng)等特點(diǎn)。STC89C52 共計(jì)40 個(gè)外部引腳,其中24 個(gè)I/0 口,即為P0、P1、P2,每個(gè)I/0 口含有8 個(gè)引腳;電源類的引腳兩個(gè)VCC 和GND;晶振引腳XTAL1 和XTAL2;控制類引腳RST/VPP 和ALE/PROG 等。STC89C52 外部引腳圖見(jiàn)圖2。
圖2 STC89C52 外部引腳
溫度傳感器DS18B20 是一款數(shù)字式的溫度傳感器,供電電壓范圍在3 V~5 V 之間,傳感器中采用單總線的接口方式,只需要一個(gè)端口就可以實(shí)現(xiàn)傳感器與控制芯片之間的數(shù)據(jù)傳輸;測(cè)溫范圍為-55 ℃~125℃,以0.5 ℃遞增,實(shí)現(xiàn)不同精度測(cè)量溫度。并且在傳感器內(nèi)部已近將溫度轉(zhuǎn)換為串行數(shù)字信號(hào)[2]。其測(cè)溫電路圖見(jiàn)圖3。
圖3 DS18B20 測(cè)溫電路
顯示部分是用LCD1602 液晶顯示屏,是一種圖形點(diǎn)陣顯示器,其顯示的工作原理為電壓的改變會(huì)引起兩塊平行板之間的液晶材料內(nèi)部分子的填充排列狀況的改變,背光透過(guò)顯示屏的的變化來(lái)來(lái)顯示不同的圖像的變化,而且在兩塊平板間再加上彩色濾光層,就可實(shí)現(xiàn)顯示出彩色圖像。LCD1602 性價(jià)比高,每行字符串16 個(gè)字符,總可以顯示共32 個(gè)字符,操作比較簡(jiǎn)單,使用時(shí)穩(wěn)定可靠,其顯示電路圖,見(jiàn)圖4。
圖4 顯示電路
根據(jù)系統(tǒng)所需要完成的功能和各部分硬件電路所需要的要求,設(shè)計(jì)一套基于控制芯片的控制邏輯或控制算法,并將其裝載到控制芯片之中,實(shí)現(xiàn)對(duì)相應(yīng)硬件設(shè)備的控制,實(shí)現(xiàn)該系統(tǒng)所要設(shè)計(jì)實(shí)現(xiàn)的功能。本設(shè)計(jì)主要完成的功能是實(shí)現(xiàn)對(duì)水溫的檢測(cè)、采集,顯示和恒溫控制,為了實(shí)現(xiàn)系統(tǒng)功能,需要完成系統(tǒng)初始化程序,按鍵掃描程序,溫度測(cè)量程序,顯示程序,數(shù)據(jù)處理程序,設(shè)備控制程序各子程序和主程序的編寫(xiě),主程序流程圖見(jiàn)圖5。
圖5 主程序流程
當(dāng)電源開(kāi)關(guān)按下,主程序開(kāi)始執(zhí)行,系統(tǒng)初始化,然后判斷系統(tǒng)中溫度設(shè)定鍵是否被按下,若按鍵已經(jīng)按下,則運(yùn)行按鍵掃描程序?qū)崿F(xiàn)對(duì)設(shè)定溫度值的調(diào)整,然后開(kāi)始執(zhí)行溫度測(cè)量程序;若按鍵沒(méi)有被按下,則直接運(yùn)行溫度測(cè)量程序。然后運(yùn)行顯示程序?qū)崿F(xiàn)對(duì)設(shè)定值和測(cè)量值的顯示,最后經(jīng)過(guò)單片機(jī)對(duì)數(shù)據(jù)的處理然后控制相應(yīng)的設(shè)備工作完成水溫的恒溫自動(dòng)調(diào)節(jié)。
本次設(shè)計(jì)中采用DS18B20 溫度傳感器來(lái)測(cè)量溫度,要實(shí)現(xiàn)將傳感器所測(cè)量的溫度值讀取到單片機(jī)中,還需要對(duì)傳感器寫(xiě)入相應(yīng)的指令實(shí)現(xiàn)對(duì)傳感器的控制,讀取到相應(yīng)的溫度數(shù)據(jù),從而實(shí)現(xiàn)系統(tǒng)對(duì)水溫的測(cè)量[7]。而指令的寫(xiě)入需要調(diào)用傳感器寫(xiě)數(shù)據(jù)相關(guān)程序,溫度數(shù)據(jù)的讀取需要用到單片機(jī)讀數(shù)據(jù)相關(guān)程序。
設(shè)備通過(guò)上述程序已經(jīng)可以實(shí)現(xiàn)測(cè)量溫度和設(shè)定溫度的獲取和顯示,單片機(jī)需要對(duì)數(shù)據(jù)進(jìn)行處理控制相應(yīng)設(shè)備以實(shí)現(xiàn)水溫的自動(dòng)調(diào)節(jié)[4]。本設(shè)計(jì)采用PID 調(diào)節(jié)的方法,通過(guò)單片機(jī)運(yùn)算得到設(shè)備的開(kāi)啟斷開(kāi)時(shí)間,進(jìn)而控制水溫。
首先設(shè)定PID 算法的參數(shù),然后對(duì)測(cè)量溫度和設(shè)定溫度進(jìn)行比較[8],若測(cè)量溫度大于設(shè)定溫度且相差大于20 ℃,則只打開(kāi)冷水設(shè)備,相差小于20 ℃,則通過(guò)進(jìn)行PID 運(yùn)算得到冷水設(shè)備和熱水設(shè)備的開(kāi)啟時(shí)間。若測(cè)量溫度小于設(shè)定溫度且相差大于20 ℃,則只打開(kāi)熱水設(shè)備,相差小于20 ℃,則通過(guò)進(jìn)行PID 運(yùn)算得到冷水設(shè)備和熱水設(shè)備的開(kāi)啟時(shí)間。
為了保證系統(tǒng)能夠正常運(yùn)行,需要對(duì)系統(tǒng)硬件部分以及軟件部分進(jìn)行調(diào)試。
硬件調(diào)試主要是對(duì)硬件系統(tǒng)和各部分電路進(jìn)行檢查,保證各硬件部分可以接受正確的信號(hào)和電壓。需要測(cè)試未上電狀態(tài)和上電狀態(tài)兩種狀態(tài)[5]。
未上電條件下,檢查各個(gè)部分的線路,各個(gè)元器件的型號(hào)、大小是否和設(shè)計(jì)圖上相符。元件的極性是否接反,各個(gè)元器件的連接是否正確,元件的極性是否接反,各元件之間的連接是否正確,確認(rèn)無(wú)誤后并利用萬(wàn)用表檢查元件之間的線路是否存在虛焊,漏焊等問(wèn)題。
檢查無(wú)誤后,對(duì)系統(tǒng)上電,觀察系統(tǒng)電路板上是否有元件發(fā)熱、燒壞等情況,觀察各元件是否正常工作,然后再使用萬(wàn)用表測(cè)量各元件引腳上的電壓是否符合標(biāo)準(zhǔn)。
軟件調(diào)試一般是指保證硬件一切正常的情況下驗(yàn)證程序執(zhí)行的時(shí)序是否正確,邏輯和結(jié)果是否與設(shè)計(jì)要求相符,能否滿足功能和性能要求等。本設(shè)計(jì)軟件設(shè)計(jì)在Keil uVision4 上編寫(xiě),通過(guò)檢查無(wú)錯(cuò)誤后,編譯并加載到硬件系統(tǒng)上看是否能達(dá)到系統(tǒng)的功能要求,然后再進(jìn)行修改,直到系統(tǒng)可以完成預(yù)定的功能。
經(jīng)過(guò)硬件調(diào)試和軟件調(diào)試沒(méi)有問(wèn)題之后需要將程序?qū)懭胨龅挠布O(shè)備之中,測(cè)試系統(tǒng)是否可以實(shí)現(xiàn)水溫的恒溫控制,觀察系統(tǒng)是否穩(wěn)定,并通過(guò)調(diào)節(jié)相關(guān)硬件和修改軟件使系統(tǒng)功能更加完善。
本研究主要對(duì)基于微處理器的水溫恒溫控制系統(tǒng)的設(shè)計(jì),完成硬件電路及軟件部分的設(shè)計(jì),根據(jù)產(chǎn)業(yè)背景和技術(shù)背景,對(duì)恒溫混水閥控制器系統(tǒng)的進(jìn)行方案分析,提出了一套有效可行的方案,完成了對(duì)整體硬件電路的設(shè)計(jì)和軟件的設(shè)計(jì)[10]。完成控制器的硬件電路設(shè)計(jì),該硬件電路以處理器為核心處理器,外擴(kuò)了實(shí)現(xiàn)控制器功能必要的一些外設(shè)電路,包括液晶屏電路、電機(jī)驅(qū)動(dòng)電路、觸摸屏電路、溫度采集電路等[9]。對(duì)每一個(gè)硬件電路模塊進(jìn)行詳細(xì)的原理分析及電路設(shè)計(jì),同時(shí)對(duì)如何提高控制器在使用上的簡(jiǎn)便穩(wěn)定進(jìn)行設(shè)計(jì)。通過(guò)設(shè)定出水溫度及溫度采集電路所采集到的反饋溫度值來(lái)進(jìn)行對(duì)步進(jìn)電機(jī)控制,實(shí)現(xiàn)熱水器的恒溫出水。在恒溫控制上,該系統(tǒng)在實(shí)時(shí)性與精確上能達(dá)到企業(yè)要求;能快速地得到設(shè)定的溫度值,同時(shí)混水閥出水溫度在℃的波動(dòng)范圍穩(wěn)定出水[6]。針對(duì)目標(biāo)板上的硬件資源完成嵌入式μⅡ的裁剪和配置,完成在上移植μⅡ內(nèi)核,同時(shí)在移植μ 圖形界面系統(tǒng);在μⅡ上進(jìn)行多任務(wù)開(kāi)發(fā),使系統(tǒng)具有較強(qiáng)的實(shí)時(shí)性,同時(shí)提供的接口函數(shù)進(jìn)行人機(jī)界面設(shè)計(jì),給用戶提供安全穩(wěn)定的溫度控制效果,達(dá)到了恒溫精準(zhǔn)、自動(dòng)控制的目的。