無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項目09 CC2530的睡眠定時器_第1頁
無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項目09 CC2530的睡眠定時器_第2頁
無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項目09 CC2530的睡眠定時器_第3頁
無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項目09 CC2530的睡眠定時器_第4頁
無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項目09 CC2530的睡眠定時器_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

項目九CC2530的睡眠定時器目錄項目導(dǎo)入項目目標(biāo)項目分析知識儲備01030204項目實施拓展訓(xùn)練0506項目導(dǎo)入01項目導(dǎo)入項目導(dǎo)入在現(xiàn)代化物聯(lián)網(wǎng)智慧農(nóng)業(yè)生產(chǎn)中,數(shù)據(jù)采集變得越來越關(guān)鍵。由于CC2530優(yōu)良的低功耗特性,因而常被用于數(shù)據(jù)采集系統(tǒng)。例如將CC2530搭配傳感器并使用電池供電,將傳感器數(shù)據(jù)傳輸?shù)皆贫诉M(jìn)行分析和決策制定,便構(gòu)成了一個物聯(lián)網(wǎng)智慧農(nóng)業(yè)系統(tǒng)。該系統(tǒng)上傳的各種數(shù)據(jù)可以用于記錄氣候變化、土壤含水量、植株發(fā)育等信息,以協(xié)助管理農(nóng)業(yè)生產(chǎn)。由于使用電池供電,節(jié)能成了系統(tǒng)設(shè)計的重點環(huán)節(jié)。CC2530芯片內(nèi)置的睡眠定時器,可實現(xiàn)多種節(jié)能方案。睡眠定時器的作用是讓芯片在運行一段時間后進(jìn)入睡眠狀態(tài),以節(jié)省功耗。項目導(dǎo)入本項目是對CC2530的睡眠定時器的一種應(yīng)用案例。項目導(dǎo)入項目分析02睡眠定時器用于設(shè)置系統(tǒng)進(jìn)入和退出低功耗睡眠模式之間的周期睡眠定時器的主要功能包括:運行在32kHz時鐘頻率的24位定時器計數(shù)器;具有中斷和DMA觸發(fā)器功能的24位比較器;24位的捕獲功能。本項目利用睡眠定時器的定時計數(shù)功能,設(shè)計一個睡眠喚醒實驗,并且重復(fù)“睡眠--喚醒--睡眠”這一過程。項目要求通電后LED指示燈提示CC2530單片機(jī)即將進(jìn)入睡眠,隨后單片機(jī)立即睡眠,睡眠5秒后單片機(jī)喚醒,并重復(fù)以上過程。

了解CC2530單片機(jī)的睡眠定時器

編程實現(xiàn)睡眠定時器的定時喚醒功能項目目標(biāo)03

掌握CC2530的睡眠定時寄存器的配置

學(xué)會使用CC2530睡眠模式的節(jié)能方法知識儲備04CC2530有5種電源模式:主動模式、空閑模式、PM1模式、PM2模式和PM3模式。主動模式為完全功能模式。此模式下,穩(wěn)壓器的數(shù)字內(nèi)核開啟,16MHzRC振蕩器和32MHz晶體振蕩器至少一個運行。32kHzRC振蕩器和16MHzRC振蕩器也有一個正在運行??臻e模式下,除了CPU內(nèi)核停止運行,其他和主動模式一樣。PM1模型下,穩(wěn)壓器的數(shù)字部分開啟,32MHz晶體振蕩器和16MHzRC振蕩器都不運行。32kHzRC振蕩器或32kHz晶體振蕩器運行。復(fù)位,外部中斷或睡眠定時器過期時系統(tǒng)將轉(zhuǎn)到主動模式。PM2模式下,穩(wěn)壓器的數(shù)字內(nèi)核關(guān)閉,32MHz晶體振蕩器和16MHzRC振蕩器都不運行。32kHzRC振蕩器或32kHz晶體振蕩器運行。復(fù)位、外部中斷或睡眠定時器到期時系統(tǒng)將轉(zhuǎn)到主動模式。PM3模式下,穩(wěn)壓器的數(shù)字內(nèi)核關(guān)閉,所有的振蕩器都不運行。復(fù)位或外部中斷時系統(tǒng)將轉(zhuǎn)到主動模式。一、睡眠定時器

CC2530模塊一般用電池供電,節(jié)能是其一個非常重要的功能。睡眠定時器用來設(shè)置系統(tǒng)進(jìn)入和退出低功耗睡眠模式之間的周期。睡眠定時器還用于當(dāng)進(jìn)入低功耗睡眠模式時,保持定時器2的定時。睡眠定時器的主要特征如下:

24位定時器正計數(shù)器,運行于32kHz時鐘

24位具有中斷和DMA觸發(fā)的比較

24位捕獲

睡眠定時器是一個運行于32kHz時鐘(RC或晶體振蕩器)的24位定時器。定時器在復(fù)位后立即啟動并連續(xù)運行不間斷。定時器的當(dāng)前值可以從SFR寄存器ST2:ST1:ST0讀取,如表9-1~9-3所示。位名稱復(fù)位R/W描述7:0ST2[7:0]0x00R/W休眠定時器計數(shù)/比較值。當(dāng)讀取時,該寄存器返回休眠定時器的高位[23:16]。在讀寫寄存器ST0的時候該值是鎖定的。表9-2ST1(0x96)–休眠定時器1位名稱復(fù)位R/W描述7:0ST1[7:0]0x00R/W休眠定時器計數(shù)/比較值。當(dāng)讀取的時候,該寄存器返回休眠定時計數(shù)的中間位[15:8]。在讀寫寄存器ST0的時候該值是鎖定的。表9-3ST0(0x95)–休眠定時器0位名稱復(fù)位R/W描述7:0ST0[7:0]0x00R/W休眠定時器計數(shù)/比較值。當(dāng)讀取的時候,該寄存器返回休眠定時計數(shù)的低位[7:0]。表9-1ST2(0x97)–休眠定時器2二、睡眠定時比較值的設(shè)置

當(dāng)定時器值等于24位比較值時發(fā)生一次定時器比較。通過寫寄存器ST2:ST1:ST0來設(shè)置比較值。當(dāng)發(fā)生一次定時器比較時,中斷標(biāo)志STIF起作用。當(dāng)STLOAD.LDRDY為1時寫ST0會啟動裝載新的比較值,即將最新的比較值寫入ST2、ST1和ST0寄存器。裝載新的比較值的過程中,STLOAD.LDRDY為0,在STLOAD.LDRDY返回1之前通過軟件不能啟動新的加載。讀ST0就是捕獲24位計數(shù)器的當(dāng)前值。因此,在讀取ST1和ST2之前必須先讀取ST0寄存器,以捕獲正確的睡眠定時器計數(shù)值。當(dāng)發(fā)生定時器比較時,中斷標(biāo)志STIF被置位。每次系統(tǒng)時鐘檢測到32kHz的一個上升沿時,就對當(dāng)前定時器值進(jìn)行更新,如表9-4所示。位名稱復(fù)位R/W描述7:1-0000000R0保留0LDRDY1R加載準(zhǔn)備好。當(dāng)睡眠定時器正在加載24位比較值,該位是0,此時不能啟動新的加載。當(dāng)睡眠定時器可以加載一個新的比較值,該位為1。表9-4STLOAD(0xAD)–睡眠定時器加載狀態(tài)三、睡眠定時器中斷設(shè)置與中斷標(biāo)志睡眠定時器中斷的中斷使能位是IEN0.STIE,中斷標(biāo)志是IRCON.STIF,如表9-5~9-6所示。位名稱復(fù)位R/W描述7EA0R/W禁用所有中斷。0:無中斷被確認(rèn)1:通過設(shè)置對應(yīng)的使能位將每個中斷源分別使能和禁止6-0R0不使用,讀出來是05STIE0R/W睡眠定時器中斷使能0:中斷禁止4ENCIE0R/WAES加密/解密中斷使能0:中斷禁止3URX1IE0R/WUSART1RX中斷使能0:中斷禁止2URX0IE0R/WUSART0RX中斷使能0:中斷禁止1ADCIE0R/WADC中斷使能0:中斷禁止0RFERRIE0R/WRFTX/RXFIFO中斷使能0:中斷禁止表9-5IEN0(0xA8)–中斷使能0表9-6IRCON(0xC0)–中斷標(biāo)志4位名稱復(fù)位R/W描述7STIF0R/W睡眠定時器中斷標(biāo)志0:無中斷未處理6-0R/W必須寫為0。寫入1總是使能中斷源。5P0IF0R/W端口0中斷標(biāo)志0:無中斷未處理4T4IF0R/WH0定時器4中斷標(biāo)志。當(dāng)定時器4中斷發(fā)生時設(shè)為1并且當(dāng)CPU指向中斷向量服務(wù)例程時清除。3T3IF0R/WH0定時器3中斷標(biāo)志。當(dāng)定時器3中斷發(fā)生時設(shè)為1并且當(dāng)CPU指向中斷向量服務(wù)例程時清除。2T2IF0R/WH0定時器2中斷標(biāo)志。當(dāng)定時器2中斷發(fā)生時設(shè)為1并且當(dāng)CPU向量指向中斷服務(wù)例程時清除。1T1IF0R/WH0定時器1中斷標(biāo)志。當(dāng)定時器1中斷發(fā)生時設(shè)為1并且當(dāng)CPU向量指向中斷服務(wù)例程時清除。0DMAIF0R/WDMA完成中斷標(biāo)志0:無中斷未處理四、供電模式控制系統(tǒng)供電主要有4種模式:主動/空閑模式、PM1、PM2、PM3。4種狀態(tài)下啟用的設(shè)備各有不同,如表9-7所示??梢酝ㄟ^設(shè)置PCON和SLEEPCMD設(shè)置系統(tǒng)的供電方式以達(dá)到節(jié)能的目的,如表9-8~9-9所示。供電模式高頻振蕩器低頻振蕩器穩(wěn)壓器(數(shù)字)配置A32MHzXOSCB16MHzRCOSCC32kHzXOSCD32kHzRCOSC

主動/空閑模式A或BC或DONPM1無C或DONPM2無C或DOFFPM3無無OFF表9-7系統(tǒng)供電的四種模式表9-8PCON(0x87)–供電模式控制位名稱復(fù)位R/W描述7:1-0000000R/W未使用。總是寫作0000000。0IDLE0R0/WH0供電模式控制。寫1到該位強(qiáng)制設(shè)備進(jìn)入睡眠模式。所有的中斷發(fā)生將清除這個位,設(shè)備將重新進(jìn)入主動模式。表9-9SLEEPCMD(0xBE)–睡眠模式控制位名稱復(fù)位R/W描述7OSC32K_CALDIS0R/W禁用32kHzRC振蕩器校準(zhǔn)0:使能32kHzRC振蕩器校準(zhǔn)1:禁用32kHzRC振蕩器校準(zhǔn)6:3-0000R0保留2-1R/W保留??偸菍懽?1:0MODE[1:0]00R/W供電模式設(shè)置00:主動/空閑模式01:供電模式110:供電模式211:供電模式31.主動和空閑模式

主動模式是完全功能的運行模式,

CPU、外設(shè)和RF收發(fā)器都是活動的。數(shù)字穩(wěn)壓器是

開啟的。主動模式用于一般操作。在主動模式下(SLEEPCMD.MODE=0x00)通過使能PCON.IDLE位,CPU內(nèi)核就停止運行,進(jìn)入空閑模式。所有其他外設(shè)將正常工作,且CPU內(nèi)核將被任何使能的中斷喚醒(從空閑模式轉(zhuǎn)換到主動模式)。2.PM1模式

PM1模式下,高頻振蕩器(32MHzXOSC和16MHzRCOSC)是掉電的。穩(wěn)壓器和使能的32kHz振蕩器是開啟的。當(dāng)進(jìn)入PM1模式,就運行一個掉電序列。由于PM1使用的上電/掉電序列較快,等待喚醒事件的預(yù)期時間相對較短(小于3ms),就使用PM1。3.PM2模式

PM2具有較低的功耗。在PM2下的上電復(fù)位時刻,外部中斷、所選的32kHz振蕩器和睡眠定時器外設(shè)是活動的。I/O引腳保留在進(jìn)入PM2之前設(shè)置的I/O模式和輸出值。所有其它內(nèi)部電路是掉電的。穩(wěn)壓器也是關(guān)閉的。當(dāng)進(jìn)入PM2模式,就運行一個掉電序列。

當(dāng)使用睡眠定時器作為喚醒事件,并結(jié)合外部中斷時,一般就會進(jìn)入

PM2模式。相比較PM1,當(dāng)睡眠時間超過3ms時,一般選擇PM2。比起使用PM1,使用較少的睡眠時間不會降低系統(tǒng)功耗。四種供電模式4.PM3模式PM3用于獲得最低功耗的運行模式。在PM3模式下,穩(wěn)壓器供電的所有內(nèi)部電路都關(guān)閉(基本上是所有的數(shù)字模塊,除了中斷探測和POR電平傳感)。內(nèi)部穩(wěn)壓器和所有振蕩器也都關(guān)閉。

復(fù)位和外部

I/O端口中斷是該模式下僅有的運行的功能。I/O引腳保留進(jìn)入PM3之前設(shè)置的I/O模式和輸出值。復(fù)位條件或使能的外部IO中斷事件將喚醒設(shè)備,使它進(jìn)入主動模式(外部中斷從它進(jìn)入PM3的地方開始,而復(fù)位返回到程序執(zhí)行的開始)。RAM和寄存器的內(nèi)容在這個模式下可以部分保留。PM3使用和PM2相同的上電/掉電序列。當(dāng)?shù)却獠渴录r,使用PM3獲得超低功耗。當(dāng)睡眠時間超過3ms時應(yīng)該使用該模式。當(dāng)系統(tǒng)運行在除了PM3之外的所有功耗模式下,睡眠定時器都將運行。因此,在PM3模式下,睡眠定時器的值不保存。在PM1和PM2模式下,睡眠定時器比較事件用于喚醒設(shè)備并返回到主動運行模式的主動運行。復(fù)位之后比較值的默認(rèn)值為0xFFFFFF。注意,如果在進(jìn)入PM2時,電源電壓下降到低于2V,睡眠定時器間隔可能會受到影響。項目實施05一、準(zhǔn)備設(shè)備和資源

序號設(shè)備/資源名稱數(shù)量單位是否準(zhǔn)備到位(√)1CC2530模塊1個

2CCDebugger仿真器(帶下載線)1個

3MiniUSB供電線或5號電池1根/個表9-10設(shè)備和資源清單

項目實施前必須先準(zhǔn)備好相應(yīng)的設(shè)備和資源,見表9-10。二、查閱實驗?zāi)K原理圖

睡眠定時器是CC2530單片機(jī)的內(nèi)置模塊,任意選擇帶CC2530單片機(jī)的開發(fā)板模塊均可完成睡眠定時器實驗。由于實驗過程需要使用LED燈將單片機(jī)睡眠和喚醒時的狀態(tài)區(qū)分出來,因此選擇帶LED電路的實驗?zāi)K。LED電路如圖9-2所示。圖9-2LED電路圖三、實施過程1.連接設(shè)備將CCDebugger仿真器的接口與CC2530實驗?zāi)K(實驗?zāi)K使用“求助按鈕V1.0”)相連,仿真器另一端用USB數(shù)據(jù)線連接到PC上,如圖9-3所示。圖9-3實驗接線圖2.程序設(shè)計1)創(chuàng)建工程。打開IAR新建一個CProject工程(具體步驟請參照項目二)2)實驗流程圖。如圖9-4所示。

圖9-4程序流程圖3)編寫代碼

完整的程序源代碼,見課程資源。

主要功能代碼如下:(1)引用相應(yīng)頭文件#include<ioCC2530.h>(2)對IO口進(jìn)行初始化:/*****************************************************函數(shù)名稱:IO_Init功能:完成IO口初始化voidIO_Init(void){P1DIR|=0x01;//P1_0定義為輸出,對應(yīng)LED1P1DIR|=0x04;//P1_2端口定義為輸出,對應(yīng)蜂鳴器LED1=1;//初始狀態(tài),熄滅LED燈Beeper=0;//關(guān)閉蜂鳴器}(3)設(shè)置系統(tǒng)工作模式:/*****************************************************函數(shù)名稱:SysPowerMode功能:根據(jù)傳遞的mode值,設(shè)置系統(tǒng)進(jìn)入正常工作模式或睡眠模式voidSysPowerMode(ucharmode){if(mode<4){

SLEEPCMD|=mode;//設(shè)置系統(tǒng)睡眠模式

PCON=0x01;//進(jìn)入睡眠模式,通過中斷喚醒}else

PCON=0x00;//通過中斷喚醒系統(tǒng)}(4)中斷處理函數(shù):/*****************************************************函數(shù)名稱:voidST_ISR功能:中斷后回到正常模式#pragmavector=ST_VECTOR__interruptvoidST_ISR(void){

STIF=0;//清標(biāo)志位

SysPowerMode(4);//進(jìn)入正常工作模式}(5)初始化休眠定時器:/*****************************************************函數(shù)名稱:InitSleepTimer功能:初始化休眠定時器,設(shè)定后經(jīng)過指定時間自行喚醒voidInitSleepTimer(void){ST2=0x00;ST1=0x00;ST0=0x00;

EA=1;//開中斷

STIE=1;//睡眠定時器中斷使能0:中斷禁止1:中斷使能

STIF=0;//睡眠定時器中斷標(biāo)志0:無中斷未決1:中斷未決}(6)設(shè)置睡眠時間:/*****************************************************函數(shù)名稱:Set_ST_Period功能:利用睡眠定時器設(shè)置睡眠時間voidSet_ST_Period(uintsec){ulongsleepTimer=0;

sleepTimer|=ST0;//讀取睡眠定時器當(dāng)前值sleepTimer|=(ulong)ST1<<8;sleepTimer|=(ulong)ST2<<16;

//睡眠定時器當(dāng)前值+設(shè)定的睡眠時間

sleepTimer+=((ulong)sec*(ulong)32768);//睡眠定時器運行在32kHz時鐘頻率ST2=(uchar)(sleepTimer>>16);ST1=(uchar)(sleepTimer>>8);ST0=(uchar)sleepTimer;}(7)主函數(shù)通過睡眠定時器讓程序進(jìn)入睡眠模式和恢復(fù)到正常模式:/*****************************************************函數(shù)名稱:main功能:正常模式工作3秒后進(jìn)入睡眠模式,睡眠5秒后回到正常模式,循環(huán)往復(fù)void

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論