專利名稱:一種用于低功耗無線抄表系統(tǒng)的同步方法
技術(shù)領(lǐng)域:
本發(fā)明屬于無線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種用于低功耗無線抄表系統(tǒng)的同步方法。
背景技術(shù):
目前已經(jīng)出現(xiàn)的自動(dòng)抄表裝置大多是半自動(dòng)的,在某個(gè)小區(qū)或某片區(qū)域內(nèi),每個(gè)住戶的電表或水表、氣表、熱表都被改造成可以輸出脈沖的方式,以電表為例,每個(gè)電表上標(biāo)有一個(gè)脈沖常數(shù),脈沖常數(shù)代表表盤轉(zhuǎn)多少圈為一度電。假設(shè)720是脈沖常數(shù),就表電表在表盤轉(zhuǎn)了 720圈之后,電度數(shù)將會增加一度電。光電探頭的作用就是把表盤的機(jī)械轉(zhuǎn)數(shù)轉(zhuǎn)換為電脈沖數(shù),也就是電表表盤每轉(zhuǎn)一圈就會使光電探頭產(chǎn)生一個(gè)電脈沖,此脈沖就會由傳輸線傳送給采集終端。每個(gè)電表或者水表、氣表、熱表上連接一個(gè)采集終端,即采集器,它們都具有無線發(fā)送和接收的能力。采集器帶有CPU和存儲器。儀表度數(shù)即存儲在存·儲器中,它的數(shù)字和儀表上的數(shù)字是一致的。此數(shù)據(jù)在采集器掉電后可以長期保存十年以上。采集器采集到的儀表度數(shù)并不會在采集器上進(jìn)行處理,它必須傳輸匯總到中心計(jì)算機(jī)上進(jìn)行存儲和處理。目前數(shù)據(jù)從采集器到中心計(jì)算機(jī)的傳輸存在兩種方案,一種是人工方法,另一種是無線通信方法。人工方法是由人工手持?jǐn)?shù)據(jù)采集器,到每一個(gè)采集器終端所在地一一讀取數(shù)據(jù),然后手工將數(shù)據(jù)輸入計(jì)算機(jī)。無線通信方法是在中心計(jì)算機(jī)和所有終端之間建立一個(gè)無線通信系統(tǒng),通過無線方式實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)傳輸。圖I顯示了蘇州博聯(lián)科技公司自主開發(fā)的無線抄表系統(tǒng)的基本方案,系統(tǒng)協(xié)調(diào)器和采集器均采用了 MSP430系列MCU和CC1100E射頻芯片,此處不再對協(xié)調(diào)器和采集器做詳細(xì)介紹。由于受無線電管理委員會規(guī)定的限制,采集終端的無線模塊功率較小,距離相隔太遠(yuǎn),數(shù)據(jù)通信就不能正常進(jìn)行,所以必須通過在其間加入新的采集器終端,通過無線傳感網(wǎng)絡(luò)技術(shù),使得這些終端節(jié)點(diǎn)形成自組織的多跳網(wǎng)絡(luò),以互為中繼、存儲轉(zhuǎn)發(fā)的方式,將數(shù)據(jù)通過多次轉(zhuǎn)發(fā)最終上報(bào)到協(xié)調(diào)器。上述無線抄表系統(tǒng)中,從中心終端計(jì)算機(jī)到協(xié)調(diào)器的通信使用有線方式;每個(gè)協(xié)調(diào)器到其下屬各個(gè)采集器終端之間的通信采用無線方式。在一個(gè)小區(qū)中,儀表類型大致分為四類電表、水表、氣表和熱表。而對于低功耗表,它最大的瓶頸在于能耗,由于米用電池供電,能耗過大將使得節(jié)點(diǎn)壽命縮短,使得實(shí)用性降低。所以為了減少低功耗表的能耗,這里采用同步的方式,使節(jié)點(diǎn)在有數(shù)據(jù)需要傳輸?shù)臅r(shí)候喚醒,在空閑時(shí)進(jìn)入休眠。
發(fā)明內(nèi)容
技術(shù)問題本發(fā)明針對低功耗無線抄表系統(tǒng)對能耗有較高要求,需要一個(gè)節(jié)點(diǎn)連續(xù)工作七年以上的情況,提出了一種減少節(jié)點(diǎn)能耗的同步方法。技術(shù)方案本發(fā)明通過一種用于低功耗無線抄表系統(tǒng)的同步方法,使得以末端電表節(jié)點(diǎn)為根節(jié)點(diǎn)的低功耗子網(wǎng)絡(luò)里的所有低功耗節(jié)點(diǎn)與電表節(jié)點(diǎn)保持同步,能夠在同一時(shí)刻醒來進(jìn)行數(shù)據(jù)發(fā)送和接收。該方法通過入網(wǎng)同步、定期同步維護(hù)和定期同步檢查三個(gè)過程來實(shí)現(xiàn)了低功耗節(jié)點(diǎn)和電表節(jié)點(diǎn)的時(shí)間同步,并且定期的糾正同步誤差以減少失同步節(jié)點(diǎn)出現(xiàn)的概率,除此之外,還包含了重新讓失同步節(jié)點(diǎn)進(jìn)行同步的措施;該方法主要應(yīng)用于由一個(gè)中心站、隸屬于中心站的多個(gè)協(xié)調(diào)器、隸屬于各個(gè)集中器的大量終端、與各個(gè)終端通過有線方式連接的若干用戶表組成的無線自動(dòng)抄表系統(tǒng)。該系統(tǒng)中的每個(gè)集中器和終端都具有發(fā)射/接收無線信號的能力,它們自組織形成網(wǎng)絡(luò),通過多跳的方式,將信息采集指令和采集到的信息先匯聚到協(xié)調(diào)器,然后最終傳送到中心站的終端電腦進(jìn)行分析和處理。整個(gè)同步過程包含以下幾個(gè)步驟
I)入網(wǎng)同步過程,在節(jié)點(diǎn)請求加入網(wǎng)絡(luò)的過程中增加同步幀的發(fā)送,以便該請求入網(wǎng)節(jié)點(diǎn)能調(diào)整自身時(shí)間,保持與其父節(jié)點(diǎn)的同步,該同步巾貞的發(fā)送是在節(jié)點(diǎn)入網(wǎng)數(shù)據(jù)巾貞發(fā)送完成并且已經(jīng)在協(xié)調(diào)器注冊之后才發(fā)送的,收到該同步幀之后,節(jié)點(diǎn)將進(jìn)入步驟2);另外,如果向該節(jié)點(diǎn)發(fā)送入網(wǎng)同步巾貞joinSync的節(jié)點(diǎn)是電表節(jié)點(diǎn),那么該電表節(jié)點(diǎn)將會進(jìn)入步驟7);
2)節(jié)點(diǎn)時(shí)間調(diào)整過程,在節(jié)點(diǎn)收到同步幀信息之后,將會開啟自身時(shí)間調(diào)整的過程,在該過程中,主要完成的工作是與上一跳節(jié)點(diǎn)進(jìn)行時(shí)間校準(zhǔn)和計(jì)算下一次同步時(shí)間;對于入網(wǎng)同步巾貞joinSync,將進(jìn)入步驟6),對于定期同步巾貞Sync,節(jié)點(diǎn)將進(jìn)入步驟5);
3)時(shí)間校準(zhǔn),接收到同步巾貞之后,將會獲取當(dāng)前節(jié)點(diǎn)的時(shí)間currentTime,該時(shí)間與同步幀傳輸延時(shí)之和與同步幀中包含的父節(jié)點(diǎn)時(shí)間進(jìn)行比較,求出誤差值extTick,再通過把當(dāng)前節(jié)點(diǎn)時(shí)鐘加上誤差值的方式,獲取到當(dāng)前節(jié)點(diǎn)與其父節(jié)點(diǎn)同步之后的時(shí)間timeGet,通 過上述過程,就完成了時(shí)間校準(zhǔn),進(jìn)入步驟4);
4)下一次同步時(shí)間計(jì)算,當(dāng)前節(jié)點(diǎn)進(jìn)行完時(shí)間校準(zhǔn)后,還要重新計(jì)算下一次節(jié)點(diǎn)醒來的時(shí)間,即下一次同步時(shí)間,該節(jié)點(diǎn)將在這個(gè)時(shí)間點(diǎn)醒來以接收數(shù)據(jù)包和發(fā)送數(shù)據(jù),該過程結(jié)束后將進(jìn)入步驟8);
5)同步信息轉(zhuǎn)發(fā)過程,同步信息包含的內(nèi)容有節(jié)點(diǎn)當(dāng)前時(shí)間和下一次同步時(shí)間;對于低功耗節(jié)點(diǎn)的定期同步,不僅要進(jìn)行自身時(shí)間的校準(zhǔn),還要轉(zhuǎn)發(fā)同步信息給它的子節(jié)點(diǎn),以保證整個(gè)子網(wǎng)絡(luò)的所有低功耗點(diǎn)都能時(shí)間同步,該過程所完成的工作就是重新獲取當(dāng)前時(shí)間currentTime和下一次同步時(shí)間nextSyncTime,并重新組成一個(gè)同步包,發(fā)送給其子節(jié)點(diǎn);
6)休眠過程,
61)關(guān)閉射頻,以減少能耗,該過程中節(jié)點(diǎn)將進(jìn)入休眠,沒有數(shù)據(jù)的發(fā)送和接收,所以關(guān)閉射頻;
62)微控制器進(jìn)入低功耗模式,該過程是通過重復(fù)定時(shí)中斷來實(shí)現(xiàn)的,定時(shí)中斷的時(shí)間長度是可配置的,通過不停的進(jìn)入該中斷,使得節(jié)點(diǎn)能夠?qū)崟r(shí)的判斷自身剩余休眠時(shí)間的大小,以便在休眠時(shí)間將要過去之前的一個(gè)時(shí)間點(diǎn)完成射頻從關(guān)閉狀態(tài)轉(zhuǎn)換為接收狀態(tài),并且使微控制器跳出重復(fù)定時(shí)中斷,進(jìn)入非低功耗模式;
63)在上面兩個(gè)過程完成之后,節(jié)點(diǎn)將會被喚醒并轉(zhuǎn)換為接收模式,此時(shí)將會接收到同步幀,此時(shí)將再次進(jìn)入步驟3),在新的一輪時(shí)間校準(zhǔn)之后,將判斷是否有數(shù)據(jù)幀和查表指令需要發(fā)送或者轉(zhuǎn)發(fā),如果有,將對應(yīng)發(fā)送該幀,之后將再次進(jìn)入步驟6);
7)定期同步維護(hù)開啟過程,當(dāng)判斷本節(jié)點(diǎn)為電表節(jié)點(diǎn)并且其下一跳子節(jié)點(diǎn)為低功耗節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)將開啟定期同步過程,即每過一段時(shí)間發(fā)送一次同步幀Sync,該同步幀的作用是及時(shí)糾正同步誤差,減少失同步節(jié)點(diǎn)出現(xiàn)的概率。同步幀的發(fā)送是在每次的同步喚醒時(shí)間進(jìn)行的,同步幀發(fā)出之后,其它低功耗節(jié)點(diǎn)將會接收到該同步幀,進(jìn)而對自身時(shí)間進(jìn)行校準(zhǔn),并且重新計(jì)算出新的下一次同步時(shí)間nextSyncTime,組成一個(gè)新的同步巾貞,轉(zhuǎn)發(fā)給其它低功耗節(jié)點(diǎn),這個(gè)過程一直持續(xù)下去,直到低功耗網(wǎng)絡(luò)末端節(jié)點(diǎn)為止,
8)同步檢查開啟過程,當(dāng)本節(jié)點(diǎn)為低功耗節(jié)點(diǎn)時(shí),將開啟同步檢查過程,該過程主要的作用是發(fā)現(xiàn)失去同步的節(jié)點(diǎn),并使其重新同步;同步檢查就是檢查每個(gè)節(jié)點(diǎn)的同步狀態(tài)標(biāo)志位,如果節(jié)點(diǎn)在同步周期內(nèi)收到同步幀,并且進(jìn)行過時(shí)間校準(zhǔn)的話,它的同步狀態(tài)標(biāo)志位將會是IN-SYNCHRONOUS狀態(tài),反之如果在3個(gè)同步周期之內(nèi)都沒有收到同步幀,那么同步標(biāo)志位將變?yōu)镮N-ASYNCHRONOUS狀態(tài);如果檢查到標(biāo)志位是IN-SYNCHRONOUS狀態(tài),那么將執(zhí)行步驟6),如果檢查到已經(jīng)處于IN-ASYNCHRONOUS狀態(tài),那么將進(jìn)入步驟9),
9)失同步節(jié)點(diǎn)重新同步過程,對于失去同步的節(jié)點(diǎn),將會重新發(fā)送同步請求信息,以請求其父節(jié)點(diǎn)發(fā)送同步巾貞以使其同步,父節(jié)點(diǎn)收到同步請求之后將會發(fā)送同步巾貞給該節(jié)點(diǎn),該節(jié)點(diǎn)進(jìn)入步驟3),進(jìn)行重新同步。
有益效果本發(fā)明由于采取以上技術(shù)方案,具有以下優(yōu)點(diǎn)
I.入網(wǎng)時(shí)同步,在低功耗節(jié)點(diǎn)申請入網(wǎng)并且注冊成功之后,發(fā)送入網(wǎng)同步幀,這樣做使得節(jié)點(diǎn)一入網(wǎng)就是與其父節(jié)點(diǎn)同步的,為后期的定期同步奠定了基礎(chǔ)。并且這個(gè)入網(wǎng)同步幀的發(fā)送并不復(fù)雜。2.定期同步維護(hù),在低功耗節(jié)點(diǎn)入網(wǎng)同步完成之后,末端電表節(jié)點(diǎn)便開啟定期同步的過程,這個(gè)過程使得子網(wǎng)中的所有子節(jié)點(diǎn)能夠每過特定時(shí)間就進(jìn)行一次誤差糾正,從而盡可能的保持誤差在允許范圍之內(nèi),使得在增加誤差容量的喚醒時(shí)間內(nèi)能夠收到同步幀和數(shù)據(jù)幀。3.低功耗節(jié)點(diǎn)的同步檢查可以定期的檢查是否有節(jié)點(diǎn)失去同步了,可以盡快的恢復(fù)網(wǎng)絡(luò)的流暢,避免出現(xiàn)長期抄不到表的節(jié)點(diǎn)。4.本發(fā)明適用于整片小區(qū)大范圍電水氣熱表的抄表工作,支持儀表節(jié)點(diǎn)數(shù)量達(dá)到5000-10000 個(gè)。
圖I是本發(fā)明的應(yīng)用場景框架圖,
圖2是下一次同步時(shí)間計(jì)算方法示意圖,
圖3是本發(fā)明整體流程圖,
圖4是同步過程中數(shù)據(jù)流程圖,
圖5是失同步節(jié)點(diǎn)重新同步流程圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對本發(fā)明進(jìn)行詳細(xì)點(diǎn)描述。本發(fā)明通過一種用于低功耗無線抄表系統(tǒng)的同步方法,使得以末端電表節(jié)點(diǎn)為根節(jié)點(diǎn)的低功耗子網(wǎng)絡(luò)里的所有低功耗節(jié)點(diǎn)與電表節(jié)點(diǎn)保持同步,能夠在同一時(shí)刻醒來進(jìn)行數(shù)據(jù)發(fā)送和接收。每個(gè)所述的數(shù)據(jù)包的發(fā)送流程包括以下步驟1)入網(wǎng)同步過程,在節(jié)點(diǎn)請求加入網(wǎng)絡(luò)的過程中增加同步幀的發(fā)送,以便該請求入網(wǎng)節(jié)點(diǎn)能調(diào)整自身時(shí)間,保持與其父節(jié)點(diǎn)的同步,該同步巾貞的發(fā)送是在節(jié)點(diǎn)入網(wǎng)數(shù)據(jù)巾貞發(fā)送完成并且已經(jīng)在協(xié)調(diào)器注冊之后才發(fā)送的,收到該同步幀之后,節(jié)點(diǎn)將進(jìn)入步驟2);另外,如果向該節(jié)點(diǎn)發(fā)送入網(wǎng)同步巾貞joinSync的節(jié)點(diǎn)是電表節(jié)點(diǎn),那么該電表節(jié)點(diǎn)將會進(jìn)入步驟7);
2)節(jié)點(diǎn)時(shí)間調(diào)整過程,在節(jié)點(diǎn)收到同步幀信息之后,將會開啟自身時(shí)間調(diào)整的過程,在該過程中,主要完成的工作是與上一跳節(jié)點(diǎn)進(jìn)行時(shí)間校準(zhǔn)和計(jì)算下一次同步時(shí)間;對于入網(wǎng)同步巾貞joinSync,將進(jìn)入步驟6),對于定期同步巾貞Sync,節(jié)點(diǎn)將進(jìn)入步驟5);
3)時(shí)間校準(zhǔn),接收到同步巾貞之后,將會獲取當(dāng)前節(jié)點(diǎn)的時(shí)間currentTime,該時(shí)間與同步幀傳輸延時(shí)之和與同步幀中包含的父節(jié)點(diǎn)時(shí)間進(jìn)行比較,求出誤差值extTick,再通過把當(dāng)前節(jié)點(diǎn)時(shí)鐘加上誤差值的方式,獲取到當(dāng)前節(jié)點(diǎn)與其父節(jié)點(diǎn)同步之后的時(shí)間timeGet,通過上述過程,就完成了時(shí)間校準(zhǔn),進(jìn)入步驟4); 4)下一次同步時(shí)間計(jì)算,當(dāng)前節(jié)點(diǎn)進(jìn)行完時(shí)間校準(zhǔn)后,還要重新計(jì)算下一次節(jié)點(diǎn)醒來的時(shí)間,即下一次同步時(shí)間,該節(jié)點(diǎn)將在這個(gè)時(shí)間點(diǎn)醒來以接收數(shù)據(jù)包和發(fā)送數(shù)據(jù),該過程結(jié)束后將進(jìn)入步驟8);
5)同步信息轉(zhuǎn)發(fā)過程,同步信息包含的內(nèi)容有節(jié)點(diǎn)當(dāng)前時(shí)間和下一次同步時(shí)間;對于低功耗節(jié)點(diǎn)的定期同步,不僅要進(jìn)行自身時(shí)間的校準(zhǔn),還要轉(zhuǎn)發(fā)同步信息給它的子節(jié)點(diǎn),以保證整個(gè)子網(wǎng)絡(luò)的所有低功耗點(diǎn)都能時(shí)間同步,該過程所完成的工作就是重新獲取當(dāng)前時(shí)間currentTime和下一次同步時(shí)間nextSyncTime,并重新組成一個(gè)同步包,發(fā)送給其子節(jié)點(diǎn);
6)休眠過程,
61)關(guān)閉射頻,以減少能耗,該過程中節(jié)點(diǎn)將進(jìn)入休眠,沒有數(shù)據(jù)的發(fā)送和接收,所以關(guān)閉射頻;
62)微控制器進(jìn)入低功耗模式,該過程是通過重復(fù)定時(shí)中斷來實(shí)現(xiàn)的,定時(shí)中斷的時(shí)間長度是可配置的,通過不停的進(jìn)入該中斷,使得節(jié)點(diǎn)能夠?qū)崟r(shí)的判斷自身剩余休眠時(shí)間的大小,以便在休眠時(shí)間將要過去之前的一個(gè)時(shí)間點(diǎn)完成射頻從關(guān)閉狀態(tài)轉(zhuǎn)換為接收狀態(tài),并且使微控制器跳出重復(fù)定時(shí)中斷,進(jìn)入非低功耗模式;
63)在上面兩個(gè)過程完成之后,節(jié)點(diǎn)將會被喚醒并轉(zhuǎn)換為接收模式,此時(shí)將會接收到同步幀,此時(shí)將再次進(jìn)入步驟3),在新的一輪時(shí)間校準(zhǔn)之后,將判斷是否有數(shù)據(jù)幀和查表指令需要發(fā)送或者轉(zhuǎn)發(fā),如果有,將對應(yīng)發(fā)送該幀,之后將再次進(jìn)入步驟6);
7)定期同步維護(hù)開啟過程,當(dāng)判斷本節(jié)點(diǎn)為電表節(jié)點(diǎn)并且其下一跳子節(jié)點(diǎn)為低功耗節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)將開啟定期同步過程,即每過一段時(shí)間發(fā)送一次同步幀Sync,該同步幀的作用是及時(shí)糾正同步誤差,減少失同步節(jié)點(diǎn)出現(xiàn)的概率。同步幀的發(fā)送是在每次的同步喚醒時(shí)間進(jìn)行的,同步幀發(fā)出之后,其它低功耗節(jié)點(diǎn)將會接收到該同步幀,進(jìn)而對自身時(shí)間進(jìn)行校準(zhǔn),并且重新計(jì)算出新的下一次同步時(shí)間nextSyncTime,組成一個(gè)新的同步巾貞,轉(zhuǎn)發(fā)給其它低功耗節(jié)點(diǎn),這個(gè)過程一直持續(xù)下去,直到低功耗網(wǎng)絡(luò)末端節(jié)點(diǎn)為止,
8)同步檢查開啟過程,當(dāng)本節(jié)點(diǎn)為低功耗節(jié)點(diǎn)時(shí),將開啟同步檢查過程,該過程主要的作用是發(fā)現(xiàn)失去同步的節(jié)點(diǎn),并使其重新同步。同步檢查就是檢查每個(gè)節(jié)點(diǎn)的同步狀態(tài)標(biāo)志位,如果節(jié)點(diǎn)在同步周期內(nèi)收到同步幀,并且進(jìn)行過時(shí)間校準(zhǔn)的話,它的同步狀態(tài)標(biāo)志位將會是IN-SYNCHRONOUS狀態(tài),反之如果在3個(gè)同步周期之內(nèi)都沒有收到同步幀,那么同步標(biāo)志位將變?yōu)镮N-ASYNCHRONOUS狀態(tài)。如果檢查到標(biāo)志位是IN-SYNCHRONOUS狀態(tài),那么將執(zhí)行步驟6),如果檢查到已經(jīng)處于IN-ASYNCHRONOUS狀態(tài),那么將進(jìn)入步驟9),
9)失同步節(jié)點(diǎn)重新同步過程,對于失去同步的節(jié)點(diǎn),將會重新發(fā)送同步請求信息,以請求其父節(jié)點(diǎn)發(fā)送同步巾貞以使其同步,父節(jié)點(diǎn)收到同步請求之后將會發(fā)送同步巾貞給該節(jié)點(diǎn),該節(jié)點(diǎn)進(jìn)入步驟3),進(jìn)行重新同步。本發(fā)明所述的低功耗節(jié)點(diǎn)的時(shí)間校準(zhǔn)和下一次同步時(shí)間的計(jì)算分別采用下面的方法實(shí)現(xiàn)
I)時(shí)間校準(zhǔn)設(shè)節(jié)點(diǎn)間數(shù)據(jù)傳輸延時(shí)為timeLast,當(dāng)前時(shí)間為currentTime,對應(yīng)的時(shí)間獲取函數(shù)為extTickGetO,校正后時(shí)間為timeGet,對應(yīng)的時(shí)間獲取函數(shù)為timeGet O,時(shí)間誤差為tickAdjust。 在節(jié)點(diǎn)收到同步巾貞時(shí),將通過extTickGet O函數(shù)獲取一次當(dāng)前時(shí)間currentTime,這個(gè)時(shí)間加上傳輸延時(shí)在理論上將與父節(jié)點(diǎn)發(fā)送的同步巾貞中的當(dāng)前時(shí)間相等,如果不相等即存在誤差。通過比較二者求出誤差值tickAdjust,在timeGet O中,使得通過extTickGet函數(shù)獲取的時(shí)間與這個(gè)誤差值相加,最終得到一個(gè)經(jīng)過校準(zhǔn)的時(shí)間timeGet。這個(gè)時(shí)間將被作為低功耗節(jié)點(diǎn)經(jīng)過校準(zhǔn)之后的時(shí)間。2)下一次同步時(shí)間計(jì)算在實(shí)現(xiàn)同步時(shí),為了方便和精確,選用了在整點(diǎn)進(jìn)行同步的方式。所謂整點(diǎn)就是在用十六進(jìn)制表示的時(shí)間上,并且對于小端模式的微控制器,高8位保留,低8位清零。設(shè)同步周期為0x0100,第一次同步時(shí)間為0x0000,那么接下來的同步時(shí)間依次為0x0100, 0x0200, 0x0300, 0x0400, 0x0500 ......,如圖 2 所示。如果在某一時(shí)刻取得了一個(gè)當(dāng)前時(shí)間為0x0124,那么將通過上面的方法,將其高8位保留,低8位清零,這樣得到了一個(gè)時(shí)間0x0100,然后該時(shí)間加上一個(gè)同步周期0x0100,就得到了下一次同步時(shí)間0x0200,依次類推。圖I是本發(fā)明所適用的應(yīng)用場景框架圖,大體介紹了實(shí)際應(yīng)用中所包含的各個(gè)組成部分,包括中心終端計(jì)算機(jī),協(xié)調(diào)器節(jié)點(diǎn)和采集器節(jié)點(diǎn)(包括電表節(jié)點(diǎn)和低功耗表節(jié)點(diǎn))。除了中心計(jì)算機(jī)之外,其它所有節(jié)點(diǎn)均具有發(fā)射和接收功能,均采用MSP430系列MCU和CC1100E芯片。采集器是依附在儀表上的,每塊儀表配有一塊采集器。當(dāng)有抄表需求時(shí),通過中心計(jì)算機(jī)發(fā)送抄表指令,經(jīng)過多跳自組織的網(wǎng)絡(luò)依次下傳直至被查詢的儀表。當(dāng)有數(shù)據(jù)上傳時(shí),也是通過多跳網(wǎng)絡(luò)依次上傳直至協(xié)調(diào)器,然后協(xié)調(diào)器和中心終端計(jì)算機(jī)之間采用有線連接。圖2是下一次同步時(shí)間計(jì)算方法示意圖。該圖描述了上面介紹的下一次同步時(shí)間的計(jì)算方法,即當(dāng)取得一個(gè)非整點(diǎn)值時(shí),通過高8位保留,低8位清零的方式回歸到上一整點(diǎn),然后再加上一個(gè)同步周期計(jì)算得下一次同步時(shí)間。這樣做可以保證同步的精度,并且使得同步過程比較簡單方便。圖3是本發(fā)明的整體流程圖,介紹了本發(fā)明中同步所經(jīng)歷的三個(gè)過程,分別是入網(wǎng)同步過程、定期同步過程和同步檢查過程。在圖中可以看出整個(gè)同步過程每一階段所進(jìn)行的操作。首先,節(jié)點(diǎn)上電,此時(shí)低功耗節(jié)點(diǎn)開始請求入網(wǎng),在入網(wǎng)注冊成功的情況下,開始由末端電表節(jié)點(diǎn)發(fā)送入網(wǎng)同步幀,當(dāng)?shù)凸墓?jié)點(diǎn)收到入網(wǎng)同步幀后,就開始進(jìn)行時(shí)間校準(zhǔn)和休眠控制。同時(shí)對于下一跳節(jié)點(diǎn)為低功耗節(jié)點(diǎn)的電表節(jié)點(diǎn)來說,此時(shí)開啟定期同步過程。在定期同步過程中,如果收到了同步幀,那么節(jié)點(diǎn)除了進(jìn)行時(shí)間校準(zhǔn)和休眠之外,還要開啟同步檢查過程,該過程是為了及時(shí)查找出失同步節(jié)點(diǎn)并再次讓其同步以恢復(fù)網(wǎng)絡(luò)流暢的。如果三個(gè)同步周期內(nèi)都沒有收到同步幀,那么節(jié)點(diǎn)被判定為失同步,失去同步的節(jié)點(diǎn)開始進(jìn)行重新同步,重新同步的過程涉及到了 CC1100E的無線喚醒功能。圖4是同步過程中數(shù)據(jù)流程圖,包含了從請求入網(wǎng)到入網(wǎng)同步直到最后節(jié)點(diǎn)進(jìn)入休眠的重要過程。圖5是失同步節(jié)點(diǎn)重新同步流程圖,描述了失同步節(jié)點(diǎn)重新同步的過程。·
權(quán)利要求
1.一種用于低功耗無線抄表系統(tǒng)的同步方法,其特征在于,該方法通過入網(wǎng)同步、定期同步維護(hù)和定期同步檢查三個(gè)過程來實(shí)現(xiàn)了低功耗節(jié)點(diǎn)和電表節(jié)點(diǎn)的時(shí)間同步,并且定期的糾正同步誤差以減少失同步節(jié)點(diǎn)出現(xiàn)的概率, 整個(gè)同步過程包含如下步驟 1)入網(wǎng)同步過程,在節(jié)點(diǎn)請求加入網(wǎng)絡(luò)的過程中增加同步幀的發(fā)送,以便該請求入網(wǎng)節(jié)點(diǎn)能調(diào)整自身時(shí)間,保持與其父節(jié)點(diǎn)的同步,該同步巾貞的發(fā)送是在節(jié)點(diǎn)入網(wǎng)數(shù)據(jù)巾貞發(fā)送完成并且已經(jīng)在協(xié)調(diào)器注冊之后才發(fā)送的,收到該同步幀之后,節(jié)點(diǎn)將進(jìn)入步驟2);另外,如果向該節(jié)點(diǎn)發(fā)送入網(wǎng)同步巾貞joinSync的節(jié)點(diǎn)是電表節(jié)點(diǎn),那么該電表節(jié)點(diǎn)將會進(jìn)入步驟7); 2)節(jié)點(diǎn)時(shí)間調(diào)整過程,在節(jié)點(diǎn)收到同步幀信息之后,將會開啟自身時(shí)間調(diào)整的過程,在該過程中,主要完成的工作是與上一跳節(jié)點(diǎn)進(jìn)行時(shí)間校準(zhǔn)和計(jì)算下一次同步時(shí)間;對于入網(wǎng)同步巾貞joinSync,將進(jìn)入步驟6),對于定期同步巾貞Sync,節(jié)點(diǎn)將進(jìn)入步驟5); 3)時(shí)間校準(zhǔn),接收到同步巾貞之后,將會獲取當(dāng)前節(jié)點(diǎn)的時(shí)間currentTime,該時(shí)間與同步幀傳輸延時(shí)之和與同步幀中包含的父節(jié)點(diǎn)時(shí)間進(jìn)行比較,求出誤差值extTick,再通過把當(dāng)前節(jié)點(diǎn)時(shí)鐘加上誤差值的方式,獲取到當(dāng)前節(jié)點(diǎn)與其父節(jié)點(diǎn)同步之后的時(shí)間timeGet,通過上述過程,就完成了時(shí)間校準(zhǔn),進(jìn)入步驟4); 4)下一次同步時(shí)間計(jì)算,當(dāng)前節(jié)點(diǎn)進(jìn)行完時(shí)間校準(zhǔn)后,還要重新計(jì)算下一次節(jié)點(diǎn)醒來的時(shí)間,即下一次同步時(shí)間,該節(jié)點(diǎn)將在這個(gè)時(shí)間點(diǎn)醒來以接收數(shù)據(jù)包和發(fā)送數(shù)據(jù),該過程結(jié)束后將進(jìn)入步驟8); 5)同步信息轉(zhuǎn)發(fā)過程,同步信息包含的內(nèi)容有節(jié)點(diǎn)當(dāng)前時(shí)間和下一次同步時(shí)間;對于低功耗節(jié)點(diǎn)的定期同步,不僅要進(jìn)行自身時(shí)間的校準(zhǔn),還要轉(zhuǎn)發(fā)同步信息給它的子節(jié)點(diǎn),以保證整個(gè)子網(wǎng)絡(luò)的所有低功耗點(diǎn)都能時(shí)間同步,該過程所完成的工作就是重新獲取當(dāng)前時(shí)間currentTime和下一次同步時(shí)間nextSyncTime,并重新組成一個(gè)同步包,發(fā)送給其子節(jié)點(diǎn); 6)休眠過程, 61)關(guān)閉射頻,以減少能耗,該過程中節(jié)點(diǎn)將進(jìn)入休眠,沒有數(shù)據(jù)的發(fā)送和接收,所以關(guān)閉射頻; 62)微控制器進(jìn)入低功耗模式,該過程是通過重復(fù)定時(shí)中斷來實(shí)現(xiàn)的,定時(shí)中斷的時(shí)間長度是可配置的,通過不停的進(jìn)入該中斷,使得節(jié)點(diǎn)能夠?qū)崟r(shí)的判斷自身剩余休眠時(shí)間的大小,以便在休眠時(shí)間將要過去之前的一個(gè)時(shí)間點(diǎn)完成射頻從關(guān)閉狀態(tài)轉(zhuǎn)換為接收狀態(tài),并且使微控制器跳出重復(fù)定時(shí)中斷,進(jìn)入非低功耗模式; 63)在上面兩個(gè)過程完成之后,節(jié)點(diǎn)將會被喚醒并轉(zhuǎn)換為接收模式,此時(shí)將會接收到同步幀,此時(shí)將再次進(jìn)入步驟3),在新的一輪時(shí)間校準(zhǔn)之后,將判斷是否有數(shù)據(jù)幀和查表指令需要發(fā)送或者轉(zhuǎn)發(fā),如果有,將對應(yīng)發(fā)送該幀,之后將再次進(jìn)入步驟6); 7)定期同步維護(hù)開啟過程,當(dāng)判斷本節(jié)點(diǎn)為電表節(jié)點(diǎn)并且其下一跳子節(jié)點(diǎn)為低功耗節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)將開啟定期同步過程,即每過一段時(shí)間發(fā)送一次同步幀Sync,該同步幀的作用是及時(shí)糾正同步誤差,減少失同步節(jié)點(diǎn)出現(xiàn)的概率。同步幀的發(fā)送是在每次的同步喚醒時(shí)間進(jìn)行的,同步幀發(fā)出之后,其它低功耗節(jié)點(diǎn)將會接收到該同步幀,進(jìn)而對自身時(shí)間進(jìn)行校準(zhǔn),并且重新計(jì)算出新的下一次同步時(shí)間nextSyncTime,組成一個(gè)新的同步巾貞,轉(zhuǎn)發(fā)給其它低功耗節(jié)點(diǎn),這個(gè)過程一直持續(xù)下去,直到低功耗網(wǎng)絡(luò)末端節(jié)點(diǎn)為止, 8)定期同步檢查開啟過程,當(dāng)本節(jié)點(diǎn)為低功耗節(jié)點(diǎn)時(shí),將開啟同步檢查過程,該過程主要的作用是發(fā)現(xiàn)失去同步的節(jié)點(diǎn),并使其重新同步;同步檢查就是檢查每個(gè)節(jié)點(diǎn)的同步狀態(tài)標(biāo)志位,如果節(jié)點(diǎn)在同步周期內(nèi)收到同步幀,并且進(jìn)行過時(shí)間校準(zhǔn)的話,它的同步狀態(tài)標(biāo)志位將會是IN-SYNCHRONOUS狀態(tài),反之如果在3個(gè)同步周期之內(nèi)都沒有收到同步幀,那么同步標(biāo)志位將變?yōu)镮N-ASYNCHRONOUS狀態(tài);如果檢查到標(biāo)志位是IN-SYNCHRONOUS狀態(tài),那么將執(zhí)行 步驟6),如果檢查到已經(jīng)處于IN-ASYNCHRONOUS狀態(tài),那么將進(jìn)入步驟9), 9)失同步節(jié)點(diǎn)重新同步過程,對于失去同步的節(jié)點(diǎn),將會重新發(fā)送同步請求信息,以請求其父節(jié)點(diǎn)發(fā)送同步巾貞以使其同步,父節(jié)點(diǎn)收到同步請求之后將會發(fā)送同步巾貞給該節(jié)點(diǎn),該節(jié)點(diǎn)進(jìn)入步驟3),進(jìn)行重新同步。
全文摘要
本發(fā)明公開了一種適用于低功耗無線抄表系統(tǒng)的節(jié)點(diǎn)同步方法,選取電表主干網(wǎng)的末端電表節(jié)點(diǎn)的時(shí)鐘作為同步時(shí)間源,通過低功耗節(jié)點(diǎn)和電表節(jié)點(diǎn)之間的三重有效的數(shù)據(jù)交互過程和節(jié)點(diǎn)自身對于時(shí)間的調(diào)整來實(shí)現(xiàn)各個(gè)低功耗節(jié)點(diǎn)與電表節(jié)點(diǎn)的時(shí)間同步。三重有效的數(shù)據(jù)交互過程為節(jié)點(diǎn)入網(wǎng)同步,定期同步維護(hù),定期同步檢查。本發(fā)明所實(shí)現(xiàn)的同步是子網(wǎng)內(nèi)同步,即每個(gè)以電表網(wǎng)絡(luò)末端電表節(jié)點(diǎn)為根節(jié)點(diǎn)的低功耗子網(wǎng)保持時(shí)間同步。本同步方案建立在低功耗硬件平臺MSP430+CC1100E上,通過幾種包含時(shí)間信息的數(shù)據(jù)幀的交互和涉及到低功耗機(jī)制的硬件底層驅(qū)動(dòng)共同來完成從軟件協(xié)議棧到硬件的低功耗控制。
文檔編號H04W56/00GK102905354SQ201210327178
公開日2013年1月30日 申請日期2012年9月6日 優(yōu)先權(quán)日2012年9月6日
發(fā)明者劉昊, 康長宇, 蔣富龍, 吳建輝 申請人:東南大學(xué)