基于C8051F的恒溫箱控溫系統(tǒng)
引 言
恒溫箱根據(jù)控制溫度可分為低溫(室溫以下)恒溫箱和高溫(室溫以上)恒溫箱[1],加熱控制恒溫箱是高溫恒溫箱的一種,在工業(yè)、醫(yī)療以及科研實驗中有廣泛的應(yīng)用。在一些特殊的恒溫箱控制系統(tǒng)中,對溫度測量、控制的精度要求非常高,本測控系統(tǒng)測溫范圍在18℃到60℃之間,測溫精度要求優(yōu)于±0.05℃。采用DSP、ARM等32位CPU可實現(xiàn)實時處理等較高的要求,但普通的控制系統(tǒng)中DSP、ARM的很多資源不能利用,造成資源的浪費、“大才小用”。隨著微電子技術(shù)的快速發(fā)展,單片機的數(shù)據(jù)處理能力和功能得到了極大地提高,因此設(shè)計一個由高速單片機控制的高精度、結(jié)構(gòu)簡單并且成本低的溫度控制系統(tǒng)有著重要的實際意義和應(yīng)用價值。
1 恒溫箱控溫原理
本系統(tǒng)以鉑電阻作為溫度傳感器,通過基于恒流源的橋式測溫電路實現(xiàn)對恒溫箱內(nèi)的溫度測量,系統(tǒng)將實際溫度值與通過觸摸屏設(shè)定的溫度給定值比較,采用增量式PID算法進行調(diào)節(jié),使控制量以16位PWM波的形式輸出。通過濾波將PWM信號轉(zhuǎn)換為電壓信號,控制晶閘管的導(dǎo)通角,從而控制加熱管加熱。系統(tǒng)的控制原理如圖1所示。
考慮到系統(tǒng)對測量精度以及穩(wěn)定性的要求,本系統(tǒng)的設(shè)計特色包括:
1)控制器采用功能強大的高速SOC單片機C8051F021。
2)為提高A/D轉(zhuǎn)換精度,采用CS5532對此模擬電壓進行轉(zhuǎn)換,輸出具有24位分辨率。
3)充分利用單片機的片上資源,以16位PWM形式輸出控制信號,提高控制精度。
2 硬件設(shè)計
該溫度控制系統(tǒng)包括C8051F021單片機、溫度采集電路、A/D轉(zhuǎn)換電路、彩色液晶觸摸屏控制電路、晶閘管驅(qū)動電路等。
另外,本系統(tǒng)具有了良好的人機對話功能,通過5.6英寸的彩色液晶顯示器與觸摸屏對系統(tǒng)進行實時監(jiān)視和控制。該溫度控制系統(tǒng)結(jié)構(gòu)如圖2所示。
2.1 溫度采集與A/D轉(zhuǎn)換
在熱電阻溫度傳感器中,鉑電阻具有精度高、性能穩(wěn)定、耐腐蝕及使用方便等優(yōu)點,是工業(yè)測控系統(tǒng)廣泛使用的一種理想的測溫元件[2]。在本系統(tǒng)中測溫范圍在18℃~60℃之間,選用溫度傳感器Pt1000,其阻值隨著溫度的改變按一定規(guī)律變化,精度、穩(wěn)定性均較優(yōu)。
在以鉑電阻作為溫度傳感器的檢測電路,典型的測量方式是采用不平衡電橋測量[3]。但是,鉑電阻阻值與溫度之間的非線性以及不平衡電橋的非線性導(dǎo)致測量存在一定的誤差,為此,在本系統(tǒng)中對橋式測溫電路進行了改進。電橋采用恒流源供電,兩橋臂通過低噪聲、低溫度漂移的精密運算放大器連接,使流過鉑電阻的電流恒定且等于恒流源的電流,采用4DH2構(gòu)成恒流源電路,設(shè)計輸出0.5mA的恒電流。
A/D轉(zhuǎn)換電路采用2路模擬量輸入,串行數(shù)據(jù)輸出的24位A/D轉(zhuǎn)換器CS5532與單片機接口,CS5532由多路開關(guān)、可編程增益放大器、程控多階數(shù)字濾波器以及串口、時鐘發(fā)生器、校準(zhǔn)控制系統(tǒng)和輸出鎖存器等組成。
2.2 C8051F片上資源
C8051Fxxx系列單片機是完全集成的混合信號系統(tǒng)級芯片(SOC),具有與8051指令集完全兼容的CIP-51內(nèi)核。它在一個芯片內(nèi)集成了(包括A/D轉(zhuǎn)換器、UART、定時器等)構(gòu)成一個單片機數(shù)據(jù)采集和控制系統(tǒng)所需要的幾乎所有模擬和數(shù)字外設(shè)及其他功能部件[4]。
本系統(tǒng)采用C8051F021作為MCU,進行通訊、數(shù)據(jù)處理以及控制輸出。下面對本系統(tǒng)中用到的功能部件及應(yīng)用進行簡單介紹。
C8051F021MCU中有一個片內(nèi)可編程計數(shù)器/定時器陣列(PCA)。PCA包括一個專用的16位計數(shù)器/定時器時間基準(zhǔn)和5個可編程的捕捉/比較模塊。時間基準(zhǔn)的時鐘可以是系統(tǒng)時鐘/12、系統(tǒng)時鐘/4、定時器0溢出等六個時鐘源之一。每個捕捉/比較模塊有六種工作方式,本系統(tǒng)采用16位脈沖寬度調(diào)制器方式,即系統(tǒng)可以通過PCA產(chǎn)生16位PWM直接輸出至MCU的端口I/O引腳。
串行外設(shè)接口(SPI0)提供訪問一個4線、全雙工串行總線的能力。SPI0支持在同一總線上將多個從器件連接到一個主器件。當(dāng)SPI被配置成主器件時,最大數(shù)據(jù)傳輸率(位/秒)是系統(tǒng)時鐘頻率的二分之一。本系統(tǒng)中C8051F021為主器件,CS5532和觸摸屏控制芯片ADS7843為從器件,通過串行外設(shè)接口分時與MCU通訊。
2.3 濾波、變換電路
為了實現(xiàn)PWM信號到模擬量輸出的轉(zhuǎn)換,在本系統(tǒng)中采用二階低通濾波器濾掉高頻成分,保留直流分量,通過改變PWM信號的占空比即可得到不同電壓的輸出。如圖3所示,設(shè)計巴特沃斯濾波器,使PWM信號經(jīng)過濾波后產(chǎn)生0~2.5V的電壓[5],控制晶閘管的導(dǎo)通角,從而實現(xiàn)對加熱溫度的高精度控制。
3 軟件設(shè)計
3.1 PID控制
在本溫度控制中采用了PID控制算法[7],即比例、積分、微分控制,是工業(yè)過程控制中應(yīng)用廣泛的一種基本控制方法。增量式PID控制算法為:
但是若直接采用此算法時,在系統(tǒng)啟動、停止或大幅調(diào)節(jié)時,容易產(chǎn)生很大的超調(diào)量,引起積分飽和,因此我們對PID算法進行了改進,采用積分分離法,可有效抑制這一現(xiàn)象的出現(xiàn)。
積分分離法在開始時(即實際溫度與設(shè)定溫度值es偏差較大時)不積分;當(dāng)控制的實際溫度接近設(shè)定值時,投入積分算法以消除靜差,提高控制精度[8]。積分分離式PID算法框圖如圖4所示。
3.2 觸摸屏軟件設(shè)計
將觸摸屏引入本系統(tǒng)中可以直接在顯示屏上輸入控制信息,使系統(tǒng)的人機界面更加友好,操作快捷、方便。本系統(tǒng)選用AMT9532四線電阻式觸摸屏,通過專用控制芯片ADS7843與單片機接口,對觸摸信號進行分析、處理。觸摸屏的軟件設(shè)計流程如圖5所示。
4 實驗結(jié)果
為測試實驗結(jié)果,使用精度為0.001℃的標(biāo)準(zhǔn)溫度計作為標(biāo)準(zhǔn)來標(biāo)定,測試結(jié)果如表1所示。
5 結(jié) 論
通過C8051F021片內(nèi)的16位PWM輸出,再加上簡單的濾波、轉(zhuǎn)換電路及相應(yīng)的軟件設(shè)計以及浮點數(shù)運算,可以實現(xiàn)16位的D/A轉(zhuǎn)換,這是普通單片機控制電路很難實現(xiàn)的高精度控制。
本系統(tǒng)的溫度控制范圍為18℃~60℃,16位的控制信號分辨率可達千分之一攝氏度,從實際實驗結(jié)果可以看出本系統(tǒng)完全可以實現(xiàn)測溫精度優(yōu)于±0.05℃的控制要求。實際應(yīng)用表明,此溫度控制系統(tǒng)具有控制精度高、功能強、簡單靈活、節(jié)約成本、性能穩(wěn)定等優(yōu)點,滿足于工業(yè)場合較高的精度要求。