国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

單片機(jī)分時(shí)共享多任務(wù)處理的路燈節(jié)能控制*

2016-06-01 00:46:51
關(guān)鍵詞:節(jié)能控制多任務(wù)微控制器

羅 江

(四川文理學(xué)院 物理與機(jī)電工程學(xué)院,達(dá)州 635000)

?

羅江

(四川文理學(xué)院 物理與機(jī)電工程學(xué)院,達(dá)州 635000)

摘要:以AT89S51單片機(jī)為例,使用分時(shí)共享的方法實(shí)現(xiàn)系統(tǒng)多任務(wù)控制,使用PCF8591實(shí)現(xiàn)A/D和D/A轉(zhuǎn)換,通過(guò)采集的環(huán)境變量與預(yù)存數(shù)據(jù)比較,確定主照明燈的工作狀態(tài),同時(shí)設(shè)計(jì)了副照明燈控制電路輔助系統(tǒng)。此系統(tǒng)應(yīng)用于路燈燈光控制,達(dá)到了智能處理、節(jié)能控制的目的。

關(guān)鍵詞:微控制器;多任務(wù);時(shí)間片;節(jié)能控制

引言

在智能燈光控制系統(tǒng)中,來(lái)自外界聲、光、溫度等多種信息,反映了當(dāng)時(shí)的環(huán)境狀態(tài),系統(tǒng)捕捉到這些數(shù)據(jù)后進(jìn)行分析,根據(jù)預(yù)設(shè)的規(guī)則進(jìn)行實(shí)時(shí)處理,達(dá)到對(duì)燈光節(jié)能控制的目的。環(huán)境信息隨機(jī)性強(qiáng),可能同時(shí)產(chǎn)生,也可能順序產(chǎn)生和變化,這就要求系統(tǒng)能夠及時(shí)處理數(shù)據(jù)并產(chǎn)生準(zhǔn)確判斷,控制燈光的亮滅和明暗,以適應(yīng)環(huán)境要求。

1單片機(jī)多路多任務(wù)控制的原理

單片機(jī)一般都有多個(gè)外部中斷源和并行I/O端口,可以通過(guò)外部中斷(或擴(kuò)充的多級(jí)外部中斷)來(lái)感知外界多路傳感器的信息,經(jīng)CPU處理后,通過(guò)并行I/O口驅(qū)動(dòng)效應(yīng)器,以實(shí)時(shí)感知和處理外部事件,實(shí)現(xiàn)多路控制。若能合理地配合使用定時(shí)器,就可以實(shí)現(xiàn)多路多任務(wù)控制。

2多任務(wù)控制調(diào)度算法設(shè)計(jì)

分時(shí)多任務(wù)控制的關(guān)鍵在于時(shí)間片的選取和調(diào)度算法的設(shè)計(jì)[4-5]。假設(shè)一個(gè)智能控制系統(tǒng),有n路設(shè)備需要實(shí)時(shí)控制,系統(tǒng)輪詢時(shí)間在tmin~tmax之間變化。設(shè)n個(gè)設(shè)備的管理程序?qū)?yīng)優(yōu)先級(jí)分別為P1,P2,…,Pn,則設(shè)計(jì)如下時(shí)間片分配和任務(wù)調(diào)度算法。

2.1平均分配、順序調(diào)度

這種方法計(jì)算時(shí)間片和任務(wù)調(diào)度算法都最簡(jiǎn)單,每個(gè)設(shè)備獲得CPU的機(jī)會(huì)均等,比較適合設(shè)備單一、任務(wù)相近的簡(jiǎn)單控制系統(tǒng)。

2.2平均分配、優(yōu)先調(diào)度

時(shí)間片長(zhǎng)度平均分配,按設(shè)備運(yùn)行時(shí)的優(yōu)先級(jí)來(lái)確定調(diào)度任務(wù)的先后順序,任務(wù)調(diào)度與優(yōu)先級(jí)處理遵照規(guī)則進(jìn)行處理(具體規(guī)則略——編者注)。

該方法比較好地體現(xiàn)設(shè)備運(yùn)行的緊急程度,算法也比較簡(jiǎn)單,但是增加了系統(tǒng)訪問(wèn)設(shè)備的開(kāi)銷(xiāo),降低了系統(tǒng)效率。

2.3變長(zhǎng)分配、優(yōu)先調(diào)度

這種算法設(shè)備在處理緊急情況時(shí)可以充分占有CPU,執(zhí)行效率較高,實(shí)時(shí)性較強(qiáng),但是調(diào)度算法設(shè)計(jì)較為復(fù)雜,還需占用大量空間來(lái)存儲(chǔ)時(shí)間表、臨時(shí)數(shù)據(jù)。

3智能燈光控制系統(tǒng)的硬件設(shè)計(jì)

照明燈光的強(qiáng)弱由環(huán)境決定,外界諸多因素都是控制所需的信息,其中環(huán)境光強(qiáng)弱、聲音(噪聲)大小和溫度等是主要因素[6]。環(huán)境光強(qiáng),則照明燈照度減弱或熄滅;噪聲強(qiáng)而持久說(shuō)明人員較多,則照明燈光照度適當(dāng)增強(qiáng)或照明時(shí)間延長(zhǎng);溫度高,則應(yīng)適當(dāng)降低照度以減少發(fā)熱,保護(hù)燈具。

3.1系統(tǒng)工作流程

來(lái)自外界光(W)、聲(S)、溫度(T)等多種數(shù)據(jù)反映了當(dāng)時(shí)的環(huán)境狀態(tài),系統(tǒng)捕捉到這些數(shù)據(jù)進(jìn)行分析,根據(jù)設(shè)計(jì)的規(guī)則進(jìn)行處理并實(shí)時(shí)控制照明驅(qū)動(dòng)電路,達(dá)到對(duì)燈光節(jié)能控制的目的。控制系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

圖1 智能燈光控制系統(tǒng)結(jié)構(gòu)框圖

其中,傳感器用于感知和采集環(huán)境數(shù)據(jù),它們是多路同時(shí)工作的。

多路A/D轉(zhuǎn)換將傳感器采集到的環(huán)境信號(hào)轉(zhuǎn)換的數(shù)字信號(hào)供單片機(jī)(MCU)處理。

MCU是系統(tǒng)的核心,執(zhí)行分時(shí)復(fù)用的多任務(wù)調(diào)度算法,讀取各路A/D轉(zhuǎn)換器的值并存儲(chǔ),然后與內(nèi)存中預(yù)設(shè)的各參數(shù)的臨界值進(jìn)行比較,決定輸出的控制數(shù)據(jù)。

D/ A轉(zhuǎn)換及控制器將MCU處理結(jié)果轉(zhuǎn)換為輸出電壓的大小,從而控制照明燈的狀態(tài)。

看門(mén)狗復(fù)位電路防止程序運(yùn)行時(shí)可能進(jìn)入混亂或死循環(huán)狀態(tài),在異常情況下,發(fā)出系統(tǒng)復(fù)位信號(hào)并記錄當(dāng)時(shí)的照明燈狀態(tài)數(shù)據(jù),使系統(tǒng)恢復(fù)工作。

時(shí)鐘發(fā)生器用于預(yù)設(shè)控制的時(shí)間,與預(yù)存的季節(jié)和正常天氣下亮暗的時(shí)間數(shù)據(jù)對(duì)比,供MCU參考[7]。為了時(shí)鐘能正常運(yùn)行和校準(zhǔn),需要安裝電池供電和增設(shè)一個(gè)簡(jiǎn)單的鍵盤(pán),以供時(shí)鐘消耗和設(shè)置當(dāng)前時(shí)間。

主照明燈需要一個(gè)調(diào)壓電路,副照明燈使用繼電器控制工作,以便深夜人員稀少、主燈停止工作時(shí)開(kāi)啟。照明燈的亮滅和功率輸出大小,均由MCU控制。

3.2系統(tǒng)硬件選擇

由于路燈照明控制并不需要太高的精度和速度,控制系統(tǒng)應(yīng)小巧、功耗少、成本低、穩(wěn)定性好。因此,可以選用以下2種方案:

① A/D 轉(zhuǎn)換采用帶有高阻抗緩沖輸入的低功耗4路8位串行數(shù)/模轉(zhuǎn)換器TLC5620,實(shí)現(xiàn)4路模擬信號(hào)獨(dú)立采集。D/A轉(zhuǎn)換采用經(jīng)典8位并行的DAC0832芯片,或者精度較高的12位串行數(shù)/模轉(zhuǎn)換芯片AD7543。

② 直接使用單電源、低功耗8位CMOS型A/D、D/A轉(zhuǎn)換芯片PCF8591,其有4路模擬量輸入通道、1路模擬量輸出通道以及1個(gè)I2C總線接口[8]。

環(huán)境因素中光和溫度隨季節(jié)、天氣和時(shí)間變化,聲音在白天(除了陰雨天外)對(duì)系統(tǒng)沒(méi)太大影響,夜晚隨機(jī)產(chǎn)生噪聲可能激發(fā)路燈照明。這些因素若能夠獨(dú)立采集,則可以使用功能特有、參數(shù)不同的傳感器來(lái)探知。但實(shí)際情況是,路燈照明的控制并不需要太精確,各路信號(hào)也不必同時(shí)采集,只要選用工作電壓一致的傳感器,用程序?qū)Σ杉母髀窋?shù)據(jù)進(jìn)行修正處理,再利用中斷即可實(shí)時(shí)采集各路數(shù)據(jù)。因此選用第2種方案,使用芯片少,電路簡(jiǎn)單,功耗和成本較低。

3.3控制系統(tǒng)的硬件設(shè)計(jì)

根據(jù)以上分析,照明燈智能控制系統(tǒng)的硬件原理如圖2所示。

系統(tǒng)初始化后,AT89S51即分時(shí)對(duì)PCF8591的3路輸入AIN0~2采集數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)換成環(huán)境變量W、S、T進(jìn)行存儲(chǔ)。采集一定時(shí)間后,統(tǒng)計(jì)數(shù)據(jù)得到較為準(zhǔn)確的環(huán)境變量值,然后通過(guò)控制算法判斷環(huán)境狀態(tài)和變化趨勢(shì),從而確定對(duì)照明燈的控制。若需開(kāi)啟主照明燈,則啟動(dòng)PCF8591的D/A模式,根據(jù)計(jì)算出的數(shù)據(jù)按8位精度步進(jìn)調(diào)整輸出電壓,再通過(guò)調(diào)壓模塊控制主照明燈開(kāi)關(guān)和亮度增減。如在深夜無(wú)人時(shí)只需開(kāi)啟副照明燈,則將AT89S51的P1.0清0,繼電器吸合,副照明燈工作,此時(shí)系統(tǒng)按一個(gè)較長(zhǎng)周期探測(cè)AIN1端(聲音輸入端),以減少系統(tǒng)開(kāi)銷(xiāo),最大限度降低能耗。

PCF8591作為A/D轉(zhuǎn)換元件,體積小、耗電低,很適合微型化批量生產(chǎn)。傳感器采用常見(jiàn)的光敏電路、熱敏電阻和拾音器,外圍電路簡(jiǎn)單,成本較低。電源由市電直接提供,方便統(tǒng)一控制。

4系統(tǒng)軟件設(shè)計(jì)

圖2 系統(tǒng)原理圖

系統(tǒng)采用模塊化設(shè)計(jì),由主程序和采集模塊、控制模塊、保護(hù)模塊等構(gòu)成。系統(tǒng)初始化后,調(diào)度時(shí)間片分配程序,分別為數(shù)據(jù)采集端和控制端分配時(shí)間片,然后等待響應(yīng)。由于系統(tǒng)所處環(huán)境因素隨機(jī)性較強(qiáng),為簡(jiǎn)化程序,采用“平均分配、順序調(diào)度”的多任務(wù)調(diào)度算法。響應(yīng)后調(diào)用處理模塊進(jìn)行數(shù)據(jù)處理和系統(tǒng)控制。系統(tǒng)可以使用Keil μVision編程,利用Proteus設(shè)計(jì)硬件和仿真。

4.1主程序流程

主程序的流程圖如圖3所示。首先進(jìn)行系統(tǒng)初始化,完成內(nèi)部環(huán)境變量存儲(chǔ)單元清0,定時(shí)器T、PCF8591的初始值設(shè)置等;然后啟動(dòng)定時(shí)器T1定時(shí)(如50 ms),依次采集光、聲、溫度等外界環(huán)境變量,將多次采集數(shù)據(jù)的平均值計(jì)算出來(lái),存儲(chǔ)在對(duì)應(yīng)單元中。一輪時(shí)間調(diào)度完成后,調(diào)用數(shù)據(jù)分析與處理模塊,根據(jù)反饋的數(shù)據(jù)判定系統(tǒng)有沒(méi)有故障,進(jìn)而調(diào)用照明燈控制模塊或進(jìn)行故障處理。

以下是通過(guò)時(shí)間片順序輪換算法實(shí)現(xiàn)多路多任務(wù)控制的部分C源程序:

#include

#define uchar unsigned char

ucharmode=0; //設(shè)備編號(hào),初始值為0,表示從第1號(hào)設(shè)備

//開(kāi)始分配時(shí)間片

uchar s[3];//存儲(chǔ)環(huán)境采集到的光W、聲音S、溫度T數(shù)據(jù)

voidA2D8591 (uchar mode);//采集處理函數(shù)

uchar analysis (uchar s[]);

//數(shù)據(jù)分析函數(shù),返回值是照明燈控制數(shù)據(jù)

void ligcontrol(uchar k);

//照明燈控制函數(shù)(含D/A轉(zhuǎn)換),k為主、副燈控制標(biāo)志

圖3 主程序流程圖

定時(shí)器/中斷服務(wù)函數(shù)略——編者注。

4.2A/D和D/A處理模塊

PCF8591采用典型的I2C總線接口,由內(nèi)部地址選擇字和轉(zhuǎn)換控制字來(lái)設(shè)置,且高4位地址規(guī)定為1001,低3位A2、A1、A0為引腳地址。由于PCF8591同時(shí)承擔(dān)A/D、D/A轉(zhuǎn)換,因此必須對(duì)其工作方式(即讀/寫(xiě)操作)進(jìn)行選擇,將其地址選擇字最低位D0設(shè)置成1或0(即讀與寫(xiě))。在總線操作時(shí),MCU先發(fā)送由器件地址、引腳地址和方向位組成的第1字節(jié),然后發(fā)出第二個(gè)字節(jié)即控制字,其中:D1、D0是A/D通道編號(hào),D2是自動(dòng)增益選擇(設(shè)為1,不自動(dòng)轉(zhuǎn)換通道),D4、D5是模擬量輸入方式(設(shè)為00,4路單端輸入),D6是模擬輸出允許位(A/D和D/A轉(zhuǎn)換時(shí)分別設(shè)置為0和1)。

A/D和D/A處理模塊主要是對(duì)PCF8591進(jìn)行初始化、啟動(dòng)、傳送數(shù)據(jù)等操作。A/D的通道由定時(shí)中斷來(lái)切換,D/A轉(zhuǎn)換在數(shù)據(jù)分析后啟動(dòng)。A/D和D/A轉(zhuǎn)換模塊的程序流程圖分別如圖4和圖5所示。需注意的是,A/D轉(zhuǎn)換結(jié)束后,需要先發(fā)送一個(gè)非應(yīng)答信號(hào)位A后,再發(fā)送結(jié)束信號(hào)位P。A/D轉(zhuǎn)換的輸出是上一次的轉(zhuǎn)換結(jié)果,因此需兩次讀取,第二次讀出的數(shù)據(jù)即為當(dāng)前轉(zhuǎn)換的數(shù)據(jù)[8]。由于本系統(tǒng)僅對(duì)時(shí)間片內(nèi)多次轉(zhuǎn)換的數(shù)據(jù)進(jìn)行平均處理,因此并不需要讀取第二次。

圖4 A/D轉(zhuǎn)換流程圖

圖5 D/A轉(zhuǎn)換流程圖

4.3照明燈控制模塊

系統(tǒng)分為主照明燈與副照明燈兩個(gè)控制子系統(tǒng),程序由3個(gè)主要判斷構(gòu)成:

① 環(huán)境亮度超過(guò)高臨界值wmax時(shí),說(shuō)明環(huán)境光照環(huán)境好,關(guān)閉所有照明燈以節(jié)省電力,小于低臨界值wmin時(shí)啟動(dòng)主照明燈。

② 接著判斷環(huán)境溫度,超過(guò)某個(gè)臨界值tmax時(shí)說(shuō)明溫度過(guò)高,MCU將通過(guò)D/A轉(zhuǎn)換輸出值0,關(guān)閉主照明電路,防止消耗過(guò)大、溫度過(guò)高損壞設(shè)備。

③ 最后判斷環(huán)境亮度w在基一個(gè)區(qū)間內(nèi)時(shí),或者環(huán)境噪聲低于某個(gè)值smin時(shí),則說(shuō)明當(dāng)時(shí)是凌晨(黃昏)光線較好,或者是深夜人車(chē)稀少時(shí),僅需要輔助燈光即可,此時(shí)關(guān)閉主照明燈,啟動(dòng)副照明燈(讓MCU的P1.0清0)。

這里的臨界值需要在實(shí)際環(huán)境下通過(guò)測(cè)試系統(tǒng)測(cè)試,然后寫(xiě)入系統(tǒng)ROM中。

4.4其他程序

看門(mén)狗使用典型的AT89S51片內(nèi)看門(mén)狗程序。數(shù)據(jù)處理程序采集數(shù)據(jù)平均值,算出即時(shí)的環(huán)境變量值,程序比較簡(jiǎn)單。系統(tǒng)預(yù)先設(shè)計(jì)了實(shí)時(shí)時(shí)鐘為系統(tǒng)提供時(shí)間,以便處理季節(jié)變換對(duì)4.3節(jié)提及的各數(shù)據(jù)臨界值的影響。

結(jié)語(yǔ)

本文設(shè)計(jì)了燈光控制系統(tǒng),用單片機(jī)時(shí)間片輪換算法,實(shí)現(xiàn)了多任務(wù)控制,應(yīng)用在燈光控制中達(dá)到智能、節(jié)能控制的目的。如果再設(shè)計(jì)出單片機(jī)與單片機(jī)之間、單片機(jī)與PC之間的通信協(xié)議,即可通過(guò)串口實(shí)現(xiàn)對(duì)單片機(jī)的遠(yuǎn)距離通信與控制,系統(tǒng)在實(shí)際控制應(yīng)用中將具有更高的實(shí)用價(jià)值。

編者注:本文為期刊縮略版,全文見(jiàn)本刊網(wǎng)站www.mesnet.com.cn。

參考文獻(xiàn)

[1] 羅江,戶永清.51單片機(jī)多任務(wù)機(jī)制的實(shí)現(xiàn)策略研究[J].四川文理學(xué)院學(xué)報(bào),2008,18(2):447-448.

[2] 肖建明,張向利.一種改進(jìn)的時(shí)間片輪轉(zhuǎn)調(diào)度算法[J].計(jì)算機(jī)應(yīng)用,2005,25(12):447-448.

[3] 胡賽,趙碧海,熊慧軍.一種公平的動(dòng)態(tài)輪轉(zhuǎn)算法[J].湖南師范大學(xué):自然科學(xué)學(xué)報(bào),2012,35(5):30-36.

[4] 陳宏偉,黃永明,章國(guó)寶.單片機(jī)多任務(wù)的時(shí)間片方式實(shí)現(xiàn)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012,12(8):73-75.

[5] 莫國(guó)民,王艷.分時(shí)操作系統(tǒng)在多單片機(jī)系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2012,32(s1):161-163.

[6] 張運(yùn)詩(shī),仲兆準(zhǔn),鐘勝奎,等.霧化干燥儀溫度檢測(cè)與控制系統(tǒng)[J].儀表技術(shù)與傳感器,2014(9):19-22.

[7] 李雪峰.簡(jiǎn)易環(huán)境測(cè)試儀[J].微型機(jī)與應(yīng)用,2014,33(9):85-88.

[8] 陳柱峰,沈治國(guó).基于PCF8591的I2C總線A/D、D/A轉(zhuǎn)換[J].企業(yè)技術(shù)開(kāi)發(fā),2009,28(5):18-21.

Luo Jiang

(Department of Physics and Engineering,Sichuan University of Arts and Science,Dazhou 635000,China)

Abstract:Taking the AT89S51 as an example,the system realizes multi-task control by using the method of time-sharing.The PCF8591 is used to achieve the A/D and D/A conversion.The working state of the main lighting lamp is determined by comparing the environmental variables with the pre stored data,at the same time,the assistant lighting control system is designed.The system is applied to control the light of street lamp,which can achieve the purpose of intelligent processing and energy-saving control.

Key words:microcontroller;multi-task;time slice;energy-saving control

收稿日期:(責(zé)任編輯:楊迪娜2015-10-03)

中圖分類(lèi)號(hào):TP368.1

文獻(xiàn)標(biāo)識(shí)碼:A

* 基金項(xiàng)目:四川省教育廳自然科學(xué)項(xiàng)目(項(xiàng)目編號(hào):15ZB0315、13ZA0102)階段性成果之一。

猜你喜歡
節(jié)能控制多任務(wù)微控制器
基于中心化自動(dòng)加權(quán)多任務(wù)學(xué)習(xí)的早期輕度認(rèn)知障礙診斷
物聯(lián)網(wǎng)技術(shù)在微控制器實(shí)驗(yàn)教學(xué)中的應(yīng)用
電子制作(2017年14期)2017-12-18 07:07:58
基于變頻調(diào)速的煤礦帶式輸送機(jī)節(jié)能控制方法
淺探城市道路中的智能路燈節(jié)能控制系統(tǒng)
居業(yè)(2016年9期)2016-12-26 18:16:30
基于判別性局部聯(lián)合稀疏模型的多任務(wù)跟蹤
船舶照明節(jié)能控制技術(shù)研究
電測(cè)與儀表(2016年5期)2016-04-22 01:13:46
集群渲染系統(tǒng)構(gòu)建及優(yōu)化
Atmel針對(duì)新一代物聯(lián)網(wǎng)應(yīng)用發(fā)布全新32位微控制器
最新STM32設(shè)計(jì)工具增加對(duì)混合信號(hào)微控制器的支持
黑山县| 庆元县| 都江堰市| 中西区| 南木林县| 长垣县| 平泉县| 郴州市| 五原县| 探索| 庐江县| 万州区| 浪卡子县| 武清区| 玉山县| 浦城县| 治县。| 吴江市| 博兴县| 镇坪县| 巴塘县| 祁连县| 永济市| 花莲市| 巴南区| 七台河市| 哈巴河县| 山阳县| 福清市| 桃园市| 文登市| 乌鲁木齐市| 曲靖市| 大庆市| 中江县| 昌黎县| 图们市| 资中县| 内江市| 北海市| 本溪市|