劉政 袁國良 王麗芳 上海海事大學(xué)信息工程學(xué)院,上海 200135
基于Cortex-M 0的室內(nèi)溫控系統(tǒng)的設(shè)計
劉政 袁國良 王麗芳 上海海事大學(xué)信息工程學(xué)院,上海 200135
本文介紹一種典型的基于ARM Cortex-M0芯片室內(nèi)溫控系統(tǒng)的設(shè)計方案,分析了數(shù)字PID溫度控制調(diào)節(jié)方式的原理與機(jī)制,給出了Cortex-M0通過溫度傳感器(DS18B20)和PID 調(diào)節(jié)方法控制室內(nèi)冷暖設(shè)備以提供適溫的軟件設(shè)計方案。
Cortex-M0 ;LPC1111;DS18B20;PID 控制
溫度是我們生活,工作,以及工業(yè)等其他各個領(lǐng)域中主要的環(huán)境參數(shù)之一,尤其是人體需要的適溫。過冷、過熱都會影響我們正常的生活和工作,由此控溫系統(tǒng)顯得異常重要。隨著信息技術(shù)和微電子技術(shù)的迅速發(fā)展,嵌入式技術(shù)得到越來越廣泛的應(yīng)用,特別是A R M技術(shù)的迅猛發(fā)展,無論是在低功耗、低成本,高性能還是在穩(wěn)定性、高速率等方面都表現(xiàn)得相當(dāng)出色,A R M芯片Cortex-M 0在單片機(jī)微控制低端領(lǐng)域的表現(xiàn)更是突出。
本文設(shè)計了一種基于Cortex-M 0單片機(jī)的溫度感知控制系統(tǒng),能通過DS18B 20溫度傳感器感知環(huán)境溫度,并根據(jù)設(shè)定溫度和環(huán)境溫度的差值得出調(diào)節(jié)量,然后通過這個調(diào)節(jié)量控制Cortex-M 0的執(zhí)行與操作,實(shí)現(xiàn)調(diào)節(jié)環(huán)境溫度保持適溫的目的,控制算法基于數(shù)字PID算法。
ARM Cortex-M 01處理器是現(xiàn)有的最小、能耗最低和能效最高的 ARM 處理器。該處理器硅面積極小、能耗極低并且所需的代碼量極少,而且是一款32位的R I S C處理器,16位的T h u m b指令集,代碼密度高。高度優(yōu)化的功耗與面積使其更適于低成本,低功耗的場合,中斷現(xiàn)場的自動保護(hù)使得它在進(jìn)入與退出中斷時的軟件開銷降到最低同時具有確定的指令執(zhí)行時間能保證每條指令執(zhí)行的時間總是相同的,從而能達(dá)到一種實(shí)時控制。作為A R M公司的最低端產(chǎn)品,同樣擁有高性價比,穩(wěn)定可靠的特性,由此選用此款芯片并應(yīng)用A R M公司的M D K集成開發(fā)工具,可提高開發(fā)效率,縮短開發(fā)周期。
本溫度控制系統(tǒng)是以LPC1111(Cortex-M 0)為控制核心。整個系統(tǒng)的硬件部分包括溫度感知模塊,MCU,I/O設(shè)備,人機(jī)交互接口,控制調(diào)節(jié)系統(tǒng)等。整個溫度控制系統(tǒng)框圖如圖1所示。
溫度感知(溫度數(shù)據(jù)采集)部分采用了DS18B20溫度傳感器,DS18B 20是Dallas 公司生產(chǎn)的一款數(shù)字溫度傳感器,超小體積,超低硬件開銷,抗干擾能力強(qiáng),精度高,附加功能強(qiáng)。DS18B20的溫度檢測與數(shù)字?jǐn)?shù)據(jù)輸出集成于一個芯片上,單總線數(shù)據(jù)通信,二進(jìn)制輸出,分辨率最高可達(dá)12位,檢測溫度范圍為-55~+125℃,具有限溫報警功能。
為實(shí)現(xiàn)對室內(nèi)溫度的冷暖調(diào)節(jié),以快速高效地達(dá)到適溫,本系統(tǒng)使用Cortex-M 0作控制核心,充分利用其特性,把溫度感知模塊采集的溫度數(shù)據(jù)和通過按鍵設(shè)定的溫度進(jìn)行實(shí)時的比較,將超出允許的差值保存并將之傳送到I/O執(zhí)行設(shè)備中,運(yùn)用PID算法準(zhǔn)確地控制I/O冷暖設(shè)備來進(jìn)行適溫的調(diào)節(jié)。具體的硬件部分包括溫度采集(18B 20),微控制器LPC 1111,交互接口(按鍵與LCD),I/O執(zhí)行設(shè)備。其硬件框圖如圖2所示。
DS18B20通過一根I/O總線來傳送采集的溫度數(shù)據(jù)和接收控制命令,段式LCD實(shí)時顯示采集溫度,調(diào)節(jié)按鍵按下時,LCD顯示設(shè)定溫度并把值傳送到控制器LPC 1111中存儲,以便和采集的溫度進(jìn)行比較,運(yùn)用PID算法計算出的超出允許的差值就可以控制I/O設(shè)備,使其降低或提高冷暖設(shè)備的運(yùn)行功率,平衡差值,使采集溫度和設(shè)定溫度相接近(即允許的范圍內(nèi)),這里我們利用了空氣流動原理,將溫度傳感器和冷暖設(shè)備按室內(nèi)最遠(yuǎn)距離放置,充分起到了平衡調(diào)節(jié)的作用,即是通過這個系統(tǒng)讓室溫自動地達(dá)到需要的溫度(適溫)。
軟件部分采用程序模塊化設(shè)計,便于各個功能的調(diào)試和實(shí)現(xiàn)。系統(tǒng)軟件程序主要由主程序、溫度數(shù)據(jù)采集與顯示、PID運(yùn)算控制與驅(qū)動執(zhí)行等3個模塊組成。
主程序模塊采用循環(huán)查詢直至斷電退出,以達(dá)到溫控系統(tǒng)冷暖自動控制的目的。主程序流程如圖3所示。
溫度數(shù)據(jù)采集模塊采用G P I O端口模擬DS18B 20的單總線來實(shí)現(xiàn)溫度數(shù)據(jù)的實(shí)時采集直至斷電退出,通過對I/O的讀寫來控制DS18B 20的初始化和各種時序操作。DS18B 20控制子程序按照DS18B 20的單總線通信協(xié)議編制,包括初始化,讀、寫等控制子程序,分別按照相應(yīng)的規(guī)則說明進(jìn)行編程實(shí)現(xiàn)。DS18B 20溫度采集子程序流程如圖4所示。
溫度數(shù)據(jù)顯示模塊利用I 2C總線將段式LCD與LPC 1111連接實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸,通過操作I 2C總線來設(shè)置LCD控制寄存器的各種參數(shù)并讀取用戶設(shè)定的值和實(shí)時采集的溫度值,然后送到Cortex-M 0中作運(yùn)算控制處理。其中斷方式設(shè)定溫度和實(shí)時顯示采集溫度的子程序流程如圖5所示。
PID基本算法: 控制器Cortex-M 0的輸出與設(shè)定值和采集值的誤差成正比,與誤差的積分成正比,與誤差的微分成正比,為三個分量的和,比例調(diào)節(jié)器(P)能夠反應(yīng)很快,但不能完全消除靜差,控制不精確。積分調(diào)節(jié)器(I),積分器的輸出值大小取決于對誤差的累積結(jié)果,在誤差不變的情況下,積分器還在輸出直到誤差為零,因此積分調(diào)節(jié)器相當(dāng)于能自動調(diào)節(jié)控制常量,消除靜差,使系統(tǒng)趨于穩(wěn)定。積分器雖然能消除靜差,但使系統(tǒng)響應(yīng)速度變慢。微分調(diào)節(jié)器(D)通過檢測信號的變化率來預(yù)報誤差,并對誤差的變化作出響應(yīng), 微分調(diào)節(jié)器的加入將有助于減小超調(diào),克服振蕩,使系統(tǒng)趨于穩(wěn)定,同時加快了系統(tǒng)的穩(wěn)定速度,縮短調(diào)整時間。因此組成比例、積分、微分(PID)調(diào)節(jié)器,可有效改善自動控制系統(tǒng)的動態(tài)性能,其控制規(guī)律的數(shù)學(xué)表達(dá)式為:
式中:TD為微分時間;e為采集值與設(shè)定值之間的差值;T I為積分時間;KP為運(yùn)算控制的比例系數(shù)。
由于控制器中處理的都是數(shù)字量,通過數(shù)字化處理和數(shù)值變換(以一系列的采樣時刻點(diǎn)k T代替連續(xù)時刻t,以矩形法數(shù)值積分近似代替積分,以一階向后差分近似代替微分)即
顯然在離散化過程中,要保證有足夠的精度,采樣周期必須足夠短,為了書寫方便,將e(k T)簡化為e(k),省去T,則式(2)代入式(1)可得離散PID表達(dá)式:
式中:k-采樣序號,k=1,2,…;
u(k)-第k次采樣時刻的控制器輸出值;
e(k)-第k次采樣時刻的輸入偏差值;
e(k-1)-第k-1次采樣時刻的輸入偏差值;
kI-積分系數(shù);kd-微分系數(shù);
PID控制系統(tǒng)如圖6所示
通過湊試法將PID的比例系數(shù),積分系數(shù),微分系數(shù)等參數(shù)調(diào)整到合適的值。實(shí)際的算法實(shí)現(xiàn)中,PID控制系統(tǒng)的程序流程如圖7所示。
圖7
本文設(shè)計了一種基于Cortex-M 0的單片機(jī)溫控系統(tǒng),以自整定PID參數(shù),閉環(huán)式PID控制算法為基礎(chǔ),并從應(yīng)用角度出發(fā),給出了室內(nèi)溫控系統(tǒng)冷熱調(diào)節(jié)的硬,軟件設(shè)計。利用了DS18B 20“單總線”數(shù)字化溫度傳感器,實(shí)時采集室內(nèi)溫度,通過Cortex-M 0控制器調(diào)節(jié)室內(nèi)冷暖設(shè)備功率大小使采集溫度和設(shè)定溫度相接近,運(yùn)行誤差為1℃,達(dá)到了控制室內(nèi)適溫的目的。實(shí)驗(yàn)證明,該系統(tǒng)操作方便,運(yùn)行良好,功能穩(wěn)定,可靠。
[1]http://www.arm.com/products/processors/cortex-m/cortex-m0.php
[2]何梅,陳海波.基于DS18B 20的溫控系統(tǒng)冷熱調(diào)節(jié)設(shè)計.電子設(shè)計工程.V o l.18(4) 2010.4
[3]魏英智,紅偉,張琳,徐寶玉,李海燕.數(shù)字P ID控制算法在溫控系統(tǒng)中的應(yīng)用.現(xiàn)代電子技術(shù).N o.17,2010.4
[4]高立兵,康雁林.基于A V R單片機(jī)的P ID溫控系統(tǒng)設(shè)計.工業(yè)控制計算機(jī).V o l.23(4),2010.1
[5]呂長明.稻殼焙燒爐模糊P ID溫控系統(tǒng)方案的研究.大連交通大學(xué).2008.6
Design of indoor temperature control system based on Cortex-M0
Liu Zheng Yuan Guoliang Wang Lifang information Engineering College, Shanghai Maritime University ,Shanghai 200135,China
This paper describes a design of indoor temperaturecontrol system based on a typical chip ARMCortex-M0, analysis the mechanism and principlesfor regulating the the digital PID temperaturecontrol and gives the software design that Cortex-M0 controls indoor heating and cooling equipment toprovide proper temperature with the temperaturesensors(DS18B20) and PID regulator methods
Cortex-M0 ;LPC1111;DS18B20;PID control
10.3969/j.issn.1001-8972.2011.08.100
劉政 男 漢族 1986.2.17 河南省信陽市息縣 現(xiàn)就讀于上海海事大學(xué)信息工程學(xué)院。