新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種低功耗的無線瓦斯傳感器節(jié)點設(shè)計

一種低功耗的無線瓦斯傳感器節(jié)點設(shè)計

作者: 時間:2013-10-29 來源:網(wǎng)絡(luò) 收藏

俄羅斯OPTOSENSE公司生產(chǎn)的紅外吸收式甲烷氣體傳感器采用非色散紅外技術(shù)(NDIR)原理進(jìn)行設(shè)計,其光源采用非傳統(tǒng)的節(jié)能LED光源。該光源系統(tǒng)采用了先進(jìn)的算法產(chǎn)生優(yōu)化的輻射光譜,光線通過布滿甲烷的光學(xué)系統(tǒng)后到達(dá)含有硒化鉛和硒化鎘的光敏二極管上,從而對甲烷濃度進(jìn)行監(jiān)測。傳感器內(nèi)置溫度傳感器,并且內(nèi)部集成信號處理和溫度補償系統(tǒng),自行輸出數(shù)字信號。數(shù)字信號可以有效地避免外部環(huán)境對其輸出信號的影響。傳感器輸出的數(shù)字信號遵循UART格式。
本文所選用的無線收發(fā)芯片是CC2430,電源采用電池組供電。隨著電池能量的消耗,電池組輸出的電壓變化較大,很容易超出傳感元件所要求的工作電壓范圍,因此需要選擇合適的穩(wěn)壓器件,給傳感器元件和無線收發(fā)電路提供穩(wěn)定的工作電壓。主要考慮如下:
①節(jié)點擬采用3~4節(jié)5號電池供電,即對于穩(wěn)壓器件來說,其輸入電壓范圍為4.5~6 V;
傳感器工作電壓范圍為3~4.5 V,而CC2430無線收發(fā)芯片的工作電壓范嗣為2~3.6 V,這里將兩者電壓統(tǒng)一選擇為3.3 V,這就要求穩(wěn)壓器輸出電壓為3.3 V;
③無線收發(fā)模塊最大工作電流為27mA,傳感器平均工作電流為1 mA,所以要求所選擇的穩(wěn)壓器件能提供不低于28 mA的輸出電流;
④所選擇的穩(wěn)壓器件靜態(tài)時的工作電流一定要盡可能小,以便節(jié)省能量。
考慮到同時滿足以上4點要求,本文選擇了深圳明和科技公司生產(chǎn)的低壓差線性穩(wěn)壓器MH5333。
它的輸入電壓最高可達(dá)10V,輸出電壓為3.3V;最大輸出電流達(dá)500mA,靜態(tài)電流為1μA??梢奙H5333穩(wěn)壓器件能較好地滿足上述要求。
由3~4節(jié)5號電池串聯(lián)作為穩(wěn)壓器MH5333的輸入,其輸出(3.3 V)為無線收發(fā)電路和傳感器元件提供電源。無線收發(fā)電路與傳感器元件之間通過串口進(jìn)行數(shù)據(jù)傳輸。CC2430的引腳P0.0和P0.1分別連接了一個LED燈,方便后面調(diào)試程序及觀察程序的執(zhí)行情況。為了降低能耗,這里采用CC2430的一個引腳控制MIPEX傳感器的電源。MIPEX傳感器對其電源的要求是電源電壓在3~4.5 V范圍內(nèi),輸出功率在0.02~0.25 W。CC2430的P1.0和P1.1兩個引腳可以提供20 mA的驅(qū)動電流,可見CC2430的P1.0和P1.1兩個引腳的輸出功率能夠滿足這一要求。這里選
擇CC2430的P1.0引腳控制MIPEX傳感器的電源。甲烷傳感器MIPEX的TXD和RXD引腳分別連接CC2430的P0.2和P0.3引腳,即連接到CC2430的異步串行接口0的RXD和TXD端。

2 節(jié)點軟件設(shè)計
紅外甲烷氣體傳感器MIPEX輸出的數(shù)字信號遵循UART格式,要求波特率為9 600,8個數(shù)據(jù)位,1個停止位,無奇偶校驗位。MIPEX傳感器的控制指令遵循ASCII碼,并且每一個控制命令末尾都要以回車結(jié)尾。每個MIPEX傳感器都有自己的地址,其范圍為00~FF。出廠時默認(rèn)地址為00,用戶可以自己改寫。由于每個無線瓦斯傳感器節(jié)點只帶有一個MIPEX傳感器,不需要修改其地址。
MIPEX傳感器的數(shù)據(jù)查詢命令為DATA。當(dāng)CC2430需要查詢MIPEX傳感器中的濃度信息時,首先要向MIPEX傳感器發(fā)送一組命令:44 41 54 41 0D。其中前4個字節(jié)分別是“D A T A”所對應(yīng)的ASCII碼值,最后的“0D”為回車符的ASCII碼。MIPEX傳感器接收到查詢命令后,其返回值為Concl。該返回值是以一個5位的ASCII碼來表示濃度信息的,結(jié)尾仍然是一個回車符(0Dh)。例如,甲烷氣體濃度為1.86%,傳感器的返回值為00186。48 48 49 56 54分別為0 0 1 8 6的ASCII碼,如下所示。

b.JPG


傳感器上電后,需要60 s的熱身時間。在這期間,傳感器輸出的不是濃度信息,一般為FFFF。60 s過后,傳感器才輸出正確的測量值。因此在設(shè)計讀寫傳感器的程序時,等傳感器上電1 min后,再向其發(fā)送數(shù)據(jù)查詢及讀取命令,否則讀取的數(shù)據(jù)沒有意義。
無線收發(fā)芯片CC2430有4種工作模式:PM0、PM1、PM2和PM3。其中PM3模式最省電,但只能被外部中斷喚醒;PM2模式比較省功耗而且可以被定時喚醒。這里的低功耗設(shè)置是讓CC2430工作于PM2模式。的低功耗實現(xiàn)分為兩個部分:一個是沒有任務(wù)需要執(zhí)行時,自動進(jìn)入低功耗模式;另一個是CC2430周期性采集瓦斯?jié)舛刃畔r的低功耗設(shè)計。在進(jìn)行任務(wù)輪詢時,如果沒有需要執(zhí)行的任務(wù),其會自動進(jìn)入低功耗模式。具體實現(xiàn)是在協(xié)議棧主循環(huán)程序osal_start_system中調(diào)用osal_pwrmgr_powerconserve()低功耗函數(shù)。該函數(shù)把獲取OS層timer下一次到時的時間作為參數(shù),調(diào)用hal_sleep()進(jìn)入PM2睡眠模式。如果當(dāng)前沒有任務(wù),那么將進(jìn)入PM3。在后續(xù)程序中,每次都設(shè)置一個傳感器讀取事件,即如果自動進(jìn)入睡眠模式,則一定是進(jìn)入PM2模式。睡眠前設(shè)置Timer2(睡眠定時器),醒來的時間剛好等于下次任務(wù)到來的時間,當(dāng)完成任務(wù)后再次進(jìn)入睡眠。
根據(jù)傳感器的操作要求,設(shè)置無線瓦斯傳感器按照以下的流程進(jìn)行工作。節(jié)點處于工作/休眠交替狀態(tài),一個工作周期約為10 min。在前8分30秒中CC2430的P1.0引腳輸出低電平,控制MIPEX傳感器不工作。緊接著,CC2430進(jìn)入低功耗運行模式。8分30秒過后,CC2430被喚醒,P1.0引腳輸出高電平,即給MIPEX傳感器供電。此時CC2430進(jìn)入PM1低功耗模式。由于MIPEX傳感器的熱身時間為1min,這里設(shè)置70s后,CC2430被喚醒,開始讀取MIPEX中的瓦斯?jié)舛刃畔?,然后將其無線發(fā)送出去。待發(fā)送完畢后,設(shè)置下一次瓦斯?jié)舛茸x取事件,周期為20 s,這20 s內(nèi),CC2430自動進(jìn)入低功耗模式。20 s之后,觸發(fā)該事件,并送給應(yīng)用層處理,開始了上述循環(huán)過程。程序設(shè)計的具體流程如圖1所示。

c.JPG


無線瓦斯傳感器節(jié)點的工作流程主要是在zb_HandieOsalEvent(events)編程實現(xiàn)的,具體程序為:
e.jpg



評論


技術(shù)專區(qū)

關(guān)閉