基于RTOS的太陽(yáng)能熱水控制系統設計
引言
本文引用地址:http://dyxdggzs.com/article/150300.htm 隨著(zhù)嵌入式技術(shù)的發(fā)展與壯大,越來(lái)越多的單片機在使用中實(shí)現了RTOS(Real Time multi-tasking Operation System)的嵌入,采用多任務(wù)機制來(lái)提高系統運行的效率和縮短響應所用的時(shí)間。RTOS具有下述優(yōu)點(diǎn)。
?、?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/RTOS">RTOS是一個(gè)可靠性和可信性很高的實(shí)時(shí)內核,將CPU時(shí)間、中斷、I/O、定時(shí)器等資源都包裝起來(lái),留給用戶(hù)一個(gè)標準的API,并根據各個(gè)任務(wù)的優(yōu)先級,合理地在不同任務(wù)之間分配CPU時(shí)間。
?、赗TOS作為軟件開(kāi)發(fā)平臺是十分可取的,基于RTOS上的C語(yǔ)言程序具有極大的可移植性。據專(zhuān)家測算,優(yōu)秀RTOS上跨處理器平臺的程序移植,只需要修改1%~5%的內容。
?、跼TOS的引入,解決了嵌入式軟件開(kāi)發(fā)標準化的難題。隨著(zhù)嵌入式系統中軟件比重不斷上升、應用程序越來(lái)越大,對開(kāi)發(fā)人員、應用程序接口、程序檔案的組織管理將成為一個(gè)大的課題。引入RTOS相當于引入了一種新的管理模式,對于開(kāi)發(fā)單位和開(kāi)發(fā)人員都是一個(gè)提高。
本方案從如何更好解決小區和樓群內居民的生活用熱水問(wèn)題出發(fā),利用綠色環(huán)保的太陽(yáng)能為主要能量來(lái)源,以樓為單位綜合控制,為用戶(hù)提供生活熱水。這不僅方便了生活,摒充了傳統的獨立式熱水器存在的安全隱患,也便于業(yè)主集中管理和規劃。
1 系統工作概況
本太陽(yáng)能熱水控制系統以太陽(yáng)能為能源,加熱位于戶(hù)外屋頂上集熱器中的水。被加熱升溫后的水,通過(guò)循環(huán)閥進(jìn)入大水箱,再經(jīng)由重力到達小水箱,小水箱中設有輔助能源保持水溫的恒定,再通過(guò)升壓裝置將熱水送到各家各戶(hù)。該系統在缺省狀態(tài)下,以自動(dòng)控制模式判斷四個(gè)閥門(mén)(主要控制點(diǎn))的工作狀態(tài),也可根據需要由工作人員進(jìn)行手動(dòng)控制。工作人員通過(guò)主端的操作控制面板完成人與系統的交互。位于面板上的顯示屏會(huì )實(shí)時(shí)顯示系統的工作情況和各項參數數據,供工作人員參考。水箱高度和需要開(kāi)啟加熱閥門(mén)時(shí)的溫度等十二個(gè)系統參數,既可以在控制箱內的操作控制面板上設置和通過(guò)顯示裝置查看,也可以在遠程監控的計算機界面上設置和查看??紤]到在北方地區的推廣,系統還設定了防凍循環(huán)參數以控制啟停防凍循環(huán)。太陽(yáng)能熱水智能控制系統示意圖如圖1所示,其中控制箱即為主控制端(主端),數據采集端(從端)位于大水箱上方。

系統采用華邦公司生產(chǎn)的單片機W77E58作為主端和從端的微處理器,由于它去除了多余的時(shí)鐘和存儲周期,其運算速度比傳統的8051系列要快1.5~3倍。單片機中采用的實(shí)時(shí)多任務(wù)操作系統是RTX51TNY,該操作系統由德國Keil公司開(kāi)發(fā)研制,大小只有800B,但理論上支持多達16個(gè)任務(wù),任務(wù)間的協(xié)調和輪換以信號機制觸發(fā)。RTX51TNY操作系統允許“準并行”的同時(shí)執行幾個(gè)任務(wù),每一個(gè)任務(wù)在預先定義好的時(shí)間片內得以執行。
2 系統結構
太陽(yáng)能熱水控制系統由以下幾個(gè)模塊構成:主控制端處理模塊(即主端)、數據采集端模塊(即從端)、監控計算機及其后臺服務(wù)程序。其中,從端還包括超聲測水位器件模塊,該器件利用超聲聲波接觸到水面后反射的簡(jiǎn)單原理,使用放大器電路實(shí)現,成本大大低于市場(chǎng)上流行的投入式液位計。系統的結構框圖如圖2所示。

2.1 主控制端軟件實(shí)現及任務(wù)分析
系統的軟件主要由三部分構成:主端程序、從端程序和利用超聲技術(shù)測水位的程序。主端程序包含在主端控制模塊當中,它的作用是判斷系統當前工作狀態(tài),通過(guò)對所采集的數據進(jìn)行處理和分析得到該如何繼續控制系統的指令。從端程序負責處理采集的數據,并發(fā)送提交給主處理程序,超聲部分的程序保證超聲模塊測水位的穩定性和精確性。其中,主控制端后臺處理模塊是系統的主要部分,占據了絕大部分的代碼量,控制系統的指令大都由這里給出,下面著(zhù)重介紹這一部分。
主端功能模塊示意圖如圖3所示。

主處理邏輯由7個(gè)任務(wù)構成其主體,一些函數的定義作為其補充。7個(gè)任務(wù)分別為:①初始化任務(wù);②與串口通信任務(wù)(串口1接收從數據采集端發(fā)回的數據);③與串口2通信任務(wù)(串口2負責與監控計算機交換數據);④⑤分別為對不同顯示區域的控制任務(wù);⑥對硬件中斷的處理任務(wù);⑦對傳回數據的處理任務(wù)。
各個(gè)任務(wù)具體實(shí)現的功能如下:
?、俪跏蓟蝿?wù):初始化串行接口,并開(kāi)始其余6個(gè)任務(wù),最后刪除自身。
?、诖?通信任務(wù):主處理邏輯每隔一定的時(shí)間就通過(guò)串口1向數據采集端發(fā)送查詢(xún)幀查詢(xún)數據,發(fā)送一定次數后仍未收到從端數據者,通過(guò)信號機制觸發(fā)顯示任務(wù),顯示與從端通信挫敗的提示信息;若從端返回無(wú)誤數據,則轉入顯示任務(wù)進(jìn)行數據處理后顯示。若經(jīng)由CRC校驗發(fā)現連續若干次從端傳回數據有誤,轉入顯示任務(wù)顯示數據出錯的提示信息。
?、鄞?通信任務(wù):由于監視該系統運行的工作人員需要通過(guò)一些參數的變化來(lái)實(shí)時(shí)了解當前系統工作的情況,這些參數包括各個(gè)閥門(mén)的狀態(tài)、水箱的水位、各個(gè)傳感器當前的溫度等,所以該系統中使用一個(gè)串口來(lái)向監控計算機提交數據。每隔一定時(shí)間監控計算機便發(fā)送查詢(xún)幀,該查詢(xún)幀分兩,一類(lèi)是查詢(xún)閥門(mén)狀態(tài),另一類(lèi)查詢(xún)水位和溫度,主控端按其要求的數據種類(lèi)填充該幀后回送。
?、芸刂骑@示區任務(wù)1:LED顯示屏分為上下兩行,上面一行為區域1,下面一行為區域2。區域1負責顯示當前系統中水箱水位,大小水箱溫度等參數,每屏顯示參數中的一個(gè),停留一段時(shí)間后顯示下一個(gè),如此循環(huán)反復,操作人員可在此查看系統中參數的具體值從而做出控制判斷。
?、菘刂骑@示區任務(wù)2:區域2顯示的是系統運行中,當前各個(gè)閥門(mén)的工作狀態(tài)。系統設置了以手動(dòng)和自動(dòng)兩種方式操縱四個(gè)閥門(mén),用有否提示音來(lái)進(jìn)行區分。這個(gè)區域還負責顯示各種提示信息或者出錯信息,如果溫度傳感器或超聲探頭傳回的數據有誤,都在這里給出報錯字樣,并表明是哪部分出了問(wèn)題,便于工作人員及時(shí)檢修排隊故障。
?、抻布袛嗵幚砣蝿?wù):在控制臺的表面分布著(zhù)14個(gè)按鍵用以操縱和控制系統,每按下一個(gè)鍵,系統該做出何種反應就由此任務(wù)掌管。由16位輸入4位輸出的編碼器得到按鍵編碼,在這里分十四種情況轉入不同的程序段進(jìn)行處理。
?、邔骰財祿奶幚砣蝿?wù):在與串口1的通信任務(wù)中,系統從串口1收到的數據如果是無(wú)誤的,則進(jìn)入此任務(wù)。該任務(wù)對系統中主要存在四種動(dòng)作,即加水、加熱、循環(huán)和回水,分別分為手動(dòng)和自動(dòng)兩種工作狀態(tài),計算系統中實(shí)時(shí)改變的數據該如何影響和決定當前系統的動(dòng)作。
液位計相關(guān)文章:磁翻板液位計原理
評論