CC1110在低功耗無(wú)線傳感器網(wǎng)絡(luò)中的應(yīng)用研究
引言
本文引用地址:http://m.butianyuan.cn/article/201610/307413.htm隨著無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用的日趨廣泛,越來(lái)越多的應(yīng)用領(lǐng)域要求節(jié)點(diǎn)模塊不僅擁有更小的體積,而且能夠持續(xù)工作更長(zhǎng)的時(shí)間,低功耗的設(shè)計(jì)已成為無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用研究的一個(gè)重要方面。
無(wú)線傳感器網(wǎng)絡(luò)低功耗設(shè)計(jì)可從三個(gè)方面進(jìn)行:一是硬件設(shè)計(jì)低功耗,即通過(guò)低功耗芯片選型、低功耗電路設(shè)計(jì)技巧運(yùn)用等多種手段降低系統(tǒng)功耗;二是工作模式低功耗,這是低功耗設(shè)計(jì)中最主要的手段,也是最有效的,它通過(guò)轉(zhuǎn)換節(jié)點(diǎn)模塊“休眠-喚醒”的工作狀態(tài)實(shí)現(xiàn)功耗控制,可以采用節(jié)點(diǎn)時(shí)間同步、主機(jī)模式控制等方法達(dá)到降低功耗的目的;三是軟件設(shè)計(jì)低功耗,即在無(wú)線傳感器網(wǎng)絡(luò)開發(fā)過(guò)程中,從軟件著手,通過(guò)優(yōu)化程序設(shè)計(jì)、切換芯片功耗模式、采用中斷驅(qū)動(dòng)模式等手段降低系統(tǒng)功耗,從原理上講工作模式低功耗設(shè)計(jì)也是軟件設(shè)計(jì)低功耗的一種。
針對(duì)某傳感器網(wǎng)絡(luò)應(yīng)用中,由于小范圍內(nèi)包含大量聚集的傳感器節(jié)點(diǎn),且數(shù)據(jù)采集時(shí)間隨機(jī),傳統(tǒng)Mesh型(網(wǎng)狀)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和基于時(shí)間同步算法的星型傳感器網(wǎng)絡(luò)難以實(shí)現(xiàn),而采用基于星型拓?fù)浣Y(jié)構(gòu)和主機(jī)輪詢的網(wǎng)絡(luò)工作模式,能夠有效滿足系統(tǒng)需求,并可以實(shí)現(xiàn)低功耗的系統(tǒng)設(shè)計(jì)。具體開發(fā)中,采用無(wú)線微控制器CC1110作為主控芯片,綜合硬件設(shè)計(jì)低功耗、工作模式低功耗和軟件設(shè)計(jì)低功耗實(shí)現(xiàn)了系統(tǒng)的低功耗設(shè)計(jì)。
1 系統(tǒng)組成及硬件電路設(shè)計(jì)
圖1為基于CC1110的無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)框圖,以節(jié)點(diǎn)控制器為核心,與無(wú)線節(jié)點(diǎn)模塊組成星型拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)。節(jié)點(diǎn)模塊以CC1110為控制核心,一方面控制傳感器進(jìn)行數(shù)據(jù)采集,另一方面完成與節(jié)點(diǎn)控制器的無(wú)線通信,接受節(jié)點(diǎn)控制器的控制。節(jié)點(diǎn)電源模塊包含充電電路、可充電電池、多級(jí)電源芯片等,是電路低功耗設(shè)計(jì)的硬件基礎(chǔ)。
節(jié)點(diǎn)模塊采用電池獨(dú)立供電模式,可以利用無(wú)線充電或者太陽(yáng)能充電,大大擴(kuò)展了這種傳感器網(wǎng)絡(luò)的應(yīng)用范圍和場(chǎng)合,并且設(shè)計(jì)中采用了緊縮的電路結(jié)構(gòu)設(shè)計(jì)、小容量可充電電池以及微小封裝外圍芯片,所以整個(gè)節(jié)點(diǎn)模塊體積非常小。圖2為CC11l0傳感器節(jié)點(diǎn)模塊的電路原理圖。采用CC1110為控制核心的優(yōu)勢(shì)在于:CC1110是一款低成本SoC,內(nèi)部集成了一個(gè)增強(qiáng)型低功耗8051處理器內(nèi)核和一個(gè)無(wú)線收發(fā)芯片CC1100,無(wú)線通信可工作在315/433/915 MHz的ISM(工業(yè)、科學(xué)和醫(yī)學(xué))和SRD(短距離設(shè)備)頻率波段;芯片配合少量的外圍器件,即可成為一個(gè)無(wú)線傳感器網(wǎng)絡(luò)的通信、控制核心。
圖3為電池供電模塊電路原理圖,采用RICHTECH公司的低壓差穩(wěn)壓芯片RT9161A-42CX,可輸出4.2V電壓和最大500mA電流,在驅(qū)動(dòng)電流為100 mA時(shí),典型壓降為200 mV,能夠提升無(wú)線充電和太陽(yáng)能充電時(shí)的能量利用率。內(nèi)置可充電電池容量為150 mA,能夠滿足系統(tǒng)能量需求,也可以有效減小模塊的體積。
圖4為CC1110電池電壓檢測(cè)電路及供電模塊電路原理圖。電池在滿電狀態(tài)下能夠輸出4.2 V的電壓,這超出了CC1110正常工作時(shí)的最高電壓3.9 V,所以需要在電池輸出端添加一級(jí)的降壓或者穩(wěn)壓的過(guò)程??梢圆捎脙煞N方式:一是利用穩(wěn)壓二極管,這種方式簡(jiǎn)單有效,但是會(huì)造成功率的大量浪費(fèi),特別是穩(wěn)壓二極管前端一般需要一個(gè)限流電阻,在芯片休眠狀態(tài)下,此電阻也會(huì)持續(xù)耗電,直至電池電壓降到穩(wěn)壓二極管的擊穿電壓(比如3.9 V)這樣電池從4.2 V到3.9 V的電量將被浪費(fèi);二是利用集成穩(wěn)壓芯片,應(yīng)當(dāng)選用有較高轉(zhuǎn)化效率和較小自身功耗的芯片,這里選擇RICHTECH公司的RT9013A-30PB,不僅具有極低的噪聲適合RF應(yīng)用,而且靜態(tài)功耗只有25μA,可以大大減小系統(tǒng)的靜態(tài)功耗。CC 1110電池電壓檢測(cè)及供電模塊如圖4所示。圖4中的電阻分壓電路是用來(lái)檢測(cè)電池電量,接入CC1110的P0_7端口,利用內(nèi)部的模數(shù)轉(zhuǎn)換功能實(shí)現(xiàn)電池電量的監(jiān)測(cè),因?yàn)椴捎昧诵酒瑑?nèi)的1.25 V基準(zhǔn)電壓作為參考,所以外部需要準(zhǔn)確分壓來(lái)計(jì)算電池電量,分壓電阻也可以采用非精密電阻,這需要實(shí)際測(cè)量阻值并在電壓計(jì)算中調(diào)整換算系數(shù)。
RT9013A-30PB還具有使能端口,能實(shí)現(xiàn)供電的開關(guān)控制,特別是作為傳感器電源,在傳感器沒(méi)有低功耗模式時(shí),可由控制器直接關(guān)斷,實(shí)現(xiàn)極低的功耗。圖5為RT9013A-30PB應(yīng)用于外部傳感器控制的電路原理圖,需要注意的是,該款芯片最大能提供500 mA的電流。
通過(guò)硬件設(shè)計(jì),包括電池充電電路、CC1110芯片供電電路、電壓檢測(cè)電路、傳感器供電電路等,構(gòu)建了系統(tǒng)低功耗的硬件基礎(chǔ)。但實(shí)際工作時(shí),CC1110在無(wú)線網(wǎng)絡(luò)開啟情況下工作電流一般能達(dá)到16 mA以上,所以進(jìn)一步降低系統(tǒng)的平均功耗需要設(shè)計(jì)系統(tǒng)的低功耗工作模式。
2 基于“喚醒-偵聽(tīng)”的低功耗工作模式
CC1110具有4種低功耗模式,如表1所列。分別為PM0~PM3:在PM0模式下,CPU處于掛起狀態(tài),其他外設(shè)可處于工作狀態(tài);在PM1模式下,高速時(shí)鐘源全部關(guān)閉,CPU和外設(shè)都不工作,數(shù)字寄存器中的內(nèi)容不丟失,可以響應(yīng)外部中斷,系統(tǒng)處在低時(shí)鐘狀態(tài)工作,這時(shí)睡眠定時(shí)器工作,I/O保持配置狀態(tài);PM2模式為次低功耗模式,外部中斷有效,低速振蕩器工作,睡眠定時(shí)器工作,I/O保持配置,RAM中的內(nèi)容和大部分功能寄存器內(nèi)容保持,其他內(nèi)部電路關(guān)閉,這種模式下可用睡眠定時(shí)器喚醒系統(tǒng);PM3模式為系統(tǒng)最低功耗模式,內(nèi)部數(shù)字穩(wěn)壓模塊關(guān)閉,內(nèi)部電路全部斷電,只有復(fù)位、外部中斷有效,I/O保持配置和輸出狀態(tài),這時(shí)只能通過(guò)復(fù)位或者外部中斷喚醒系統(tǒng)。
低功耗的無(wú)線節(jié)點(diǎn)采用的是PM2工作模式,因?yàn)镻M3模式必須通過(guò)外部干預(yù)才能夠喚醒,不符合設(shè)計(jì)要求。PM2模式的低功耗算法采用基于“喚醒-偵聽(tīng)”的工作方式,CC1110開始即進(jìn)入PM2睡眠工作模式,待睡眠定時(shí)器完成計(jì)數(shù)后,喚醒系統(tǒng)進(jìn)入全速工作狀態(tài),開啟無(wú)線接收功能,偵聽(tīng)頻道信息。如果接收到主機(jī)喚醒工作指令,那么恢復(fù)到正常工作狀態(tài),如果在設(shè)定的偵聽(tīng)時(shí)間內(nèi)沒(méi)有接收到主機(jī)指令或者非本機(jī)指令,則重新進(jìn)入睡眠狀態(tài),并設(shè)定睡眠定時(shí)器進(jìn)入下一次的“喚醒-偵聽(tīng)”循環(huán)。圖6為“喚醒-偵聽(tīng)”無(wú)線節(jié)點(diǎn)低功耗的工作流程,其中無(wú)線節(jié)點(diǎn)在完成主機(jī)命令后,可在休眠指令下再次進(jìn)入休眠模式。
針對(duì)上面思路設(shè)計(jì)的無(wú)線節(jié)點(diǎn),在節(jié)點(diǎn)控制器喚醒程序設(shè)計(jì)時(shí)需要注意幾點(diǎn):一是因?yàn)楣?jié)點(diǎn)的自主喚醒時(shí)間是隨機(jī)的,所以節(jié)點(diǎn)控制器要在節(jié)點(diǎn)睡眠和喚醒時(shí)間內(nèi)連續(xù)發(fā)送喚醒命令,這樣如果節(jié)點(diǎn)設(shè)置較長(zhǎng)的睡眠時(shí)間,那么可以有效降低系統(tǒng)的平均功耗,但是會(huì)增加節(jié)點(diǎn)控制器發(fā)送喚醒命令的時(shí)間,所以需要在功耗和性能之間權(quán)衡;二是當(dāng)一個(gè)區(qū)域存在多個(gè)無(wú)線傳感器節(jié)點(diǎn)時(shí),可以設(shè)置多條控制命令,例如單個(gè)節(jié)點(diǎn),或全部節(jié)點(diǎn)喚醒,或者全部節(jié)點(diǎn)睡眠。
3 測(cè)試計(jì)算
圖7為節(jié)點(diǎn)模塊的功耗測(cè)試電路實(shí)物圖,包含了CC1110模塊、無(wú)線充電模塊、充電供電模塊以及兩路傳感器供電模塊。傳感器的供電測(cè)試采用外接負(fù)載電阻的方式模擬。
系統(tǒng)應(yīng)用中,設(shè)置節(jié)點(diǎn)的睡眠時(shí)間為2 s,節(jié)點(diǎn)喚醒時(shí)間為10 ms,節(jié)點(diǎn)活動(dòng)時(shí)的平均電流為20 mA(開啟無(wú)線收發(fā),系統(tǒng)全速工作,不考慮傳感器功耗),睡眠狀態(tài)下測(cè)試節(jié)點(diǎn)的電流為0.2 mA(包含3路RT9013A-30PB以及整個(gè)CC1110模塊)??梢杂?jì)算出系統(tǒng)工作的平均電流為0.3 mA,則電池充滿后,可以在待機(jī)情況下使用500小時(shí)。
結(jié)語(yǔ)
系統(tǒng)綜合硬件電路設(shè)計(jì)和程序流程控制,提出了一種基于CC1110的無(wú)線傳感器網(wǎng)絡(luò)低功耗節(jié)點(diǎn)設(shè)計(jì)方法,可以為一定范圍內(nèi)多無(wú)線傳感器節(jié)點(diǎn)的星狀網(wǎng)絡(luò)模式提供設(shè)計(jì)參考。此外,對(duì)穩(wěn)壓芯片選擇以及功耗計(jì)算進(jìn)行了分析探討。最終設(shè)計(jì)得到的節(jié)點(diǎn)不僅具有較長(zhǎng)的工作時(shí)間,而且體積小、成本低,適合應(yīng)用于多種場(chǎng)合。
評(píng)論