專利名稱:實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及信息技術(shù)領(lǐng)域,尤其涉及一種實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的
方法。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)的應(yīng)用越來越廣泛,針對無線傳感器網(wǎng)絡(luò)時間同步所面臨的挑 戰(zhàn)-傳輸延遲的不確定性、低功耗、低成本、可擴展性等特點,在無線傳感器網(wǎng)絡(luò)領(lǐng)域出 現(xiàn)了一些典型的時間同步協(xié)議。典型的無線傳感器網(wǎng)絡(luò)事件同步協(xié)議可分為發(fā)送者-接 收者同步和接收者-接收者同步兩類。TPSN(Time Protocol for Sensor Networks)協(xié)議是 典型的發(fā)送者-接收者同步協(xié)議,它通過MAC層時間戳技術(shù)及雙向報文交換方法來抑 制和減小傳輸延遲及延遲不確定的影響。RBS(Reference Broadcast Synchronization)協(xié) 議是典型的接收者-接收者同步協(xié)議,除了直接對接收者間的時間偏移進行估算外,它 通過對接收者時鐘漂移(clock skew)進行動態(tài)估計來進一步降低同步誤差。在多跳網(wǎng)絡(luò) 的時間同步協(xié)議中,除RBS協(xié)議中提出的"時間路由"方法外,具有代表性的工作還 有LTS(Lightweight Tree-based Synchronization)協(xié)議、HRTS(Hierarchy Referencing Time Synchronization)協(xié)議、FTSP(Flooding Time Synchronization Protocol)協(xié)議和GCS(Global Clock Synchronization)協(xié)議。這些典型的時間同步算法側(cè)重同步精度和同步能耗的需求。
所述無線傳感器網(wǎng)絡(luò)是由傳感器節(jié)點組成的分布式系統(tǒng)。節(jié)點之間相互獨立并 以無線方式通信,每個節(jié)點維護一個本地時鐘。本地時鐘的計時信號一般由晶體振蕩器 (簡稱晶振)提供。 在實施本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)由于晶振制造工藝的限制,晶振在運行過 程中易受外界因素影響,進而導(dǎo)致網(wǎng)絡(luò)中節(jié)點的計時速率的偏差,造成了網(wǎng)絡(luò)節(jié)點時間 的失步。因此,時間同步問題是無線傳感器網(wǎng)絡(luò)要解決的一個重要問題。
目前,在定位、測距、數(shù)據(jù)融合、MAC層協(xié)議、睡眠調(diào)度、路由協(xié)議、協(xié)作 傳輸、數(shù)據(jù)庫同步等幾乎所有的場合都對時間同步有明確的要求。與傳統(tǒng)的分布式系統(tǒng) 的時間同步不同,無線傳感器網(wǎng)絡(luò)的時間同步不僅有著高精度的要求,而且還面臨著能 耗、可擴展性、無線傳輸不可靠性等新的挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法,現(xiàn)有技術(shù)由 于晶振的影響導(dǎo)致網(wǎng)絡(luò)節(jié)點時間失步的問題。 本發(fā)明所述的一種實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法,包括以下步驟初始 化計數(shù)器;啟動計數(shù)器,打開中斷,啟動消息隊列;根據(jù)收到的數(shù)據(jù)包修改線性振蕩器 的計數(shù)值。 本發(fā)明所述的實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法通過修改線性振蕩器的計數(shù) 值達(dá)到無線傳感器網(wǎng)絡(luò)時間同步的目的,解決了現(xiàn)有技術(shù)中,由于晶振在運行過程中易受外界因素影響,進而導(dǎo)致網(wǎng)絡(luò)中節(jié)點的計時速率的偏差,造成了網(wǎng)絡(luò)節(jié)點時間的失步 的問題。
圖1為本發(fā)明具體實施例所述的實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法的流程 圖; 圖2為本發(fā)明具體實施例所述的實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法中收到數(shù) 據(jù)包的處理流程圖; 圖3為本發(fā)明具體實施例所述的實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法中計數(shù)器 溢出的處理流程圖; 圖4為本發(fā)明具體實施例所述的實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法中所述T。 取2T、 4T、 8T、 16T時同步結(jié)果的標(biāo)準(zhǔn)差隨d的變化情況; 圖5-7為本發(fā)明具體實施例所述的實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法中所述e 分別取1/8、 1/4、 1/2時,同步結(jié)果的標(biāo)準(zhǔn)差隨d的變化情況。
具體實施例方式
為使本發(fā)明更加清楚明白,以下結(jié)合本發(fā)明在無線傳感器網(wǎng)絡(luò)中的具體實施過 程和結(jié)果,并參照附圖,對本發(fā)明進一步詳細(xì)說明。 下述實施過程是在基于GAINS-3節(jié)點的無線傳感器網(wǎng)絡(luò)測試床上實現(xiàn)的。所述 GAINS-3節(jié)點主要由一個ATMegal28單片機和一個CC1000無線收發(fā)器組成,同時還有 一個串口,負(fù)責(zé)編程和數(shù)據(jù)的可靠收發(fā)。所有節(jié)點的串口均通過串口到以太網(wǎng)的轉(zhuǎn)換模 塊連接到一個以太網(wǎng)中,該以太網(wǎng)中的一個Web服務(wù)器負(fù)責(zé)對節(jié)點的編程,向節(jié)點發(fā)送 命令以及接收節(jié)點返回的數(shù)據(jù)。另外,為了同時對所有的節(jié)點的時鐘(計數(shù)器)進行采 樣,所有節(jié)點上ATMegal28的INT4引腳被連接到一起,該引腳上的下降沿會觸發(fā)所有的 節(jié)點向Web服務(wù)器發(fā)送采樣結(jié)果。 在實施時,將振蕩器相位小從[O, l]區(qū)間放大到[O, T],即將振蕩器的相位使 用32位的計數(shù)器來表示,該計數(shù)器單調(diào)的增加到T(即周期),然后發(fā)出一個數(shù)據(jù)包,所 述數(shù)據(jù)包包括流水號、節(jié)點號和周期T,接收到該數(shù)據(jù)包的節(jié)點根據(jù)數(shù)據(jù)包中的T,使用 公式錯誤!未找到引用源。計算出耦合增量,然后將該增量加到自己的相位上去。以下 結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細(xì)說明。 如錯誤!未找到引用源。所示,本發(fā)明所述的實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的 方法包含以下步驟 步驟IOI,初始化計數(shù)器,包括 設(shè)置計數(shù)器的工作模式、最大計數(shù)值(即T); 設(shè)置節(jié)點號和周期T以及耦合強度。
在實施過程中將節(jié)點i的周期1設(shè)為 1 = T。+(i-l)*d 其中,T。為周期的基數(shù);d描述相鄰編號節(jié)點的周期差異。 步驟1Q2,啟動計數(shù)器開始計數(shù),打開中斷,允許計數(shù)器溢出,以及數(shù)據(jù)包的接收等中斷,最后啟動消息隊列。 節(jié)點在收到數(shù)據(jù)包之后,根據(jù)數(shù)據(jù)包中所包含的激發(fā)節(jié)點的數(shù)據(jù)計算相位增 量,然后將該增量加到自己的相位上去。接下來判斷自己是否激發(fā),并執(zhí)行相應(yīng)的處理 過程。如圖2所示,具體步驟如下 步驟201:從接收到的數(shù)據(jù)包中獲得激發(fā)節(jié)點的節(jié)點號,和激發(fā)節(jié)點的周期T。
步驟202:判斷相位是否大于某一閾值L,如果大于該閾值才計算相位增量。設(shè) 置閾值L的原因是,當(dāng)某節(jié)點A發(fā)出數(shù)據(jù)包并使節(jié)點B激發(fā),節(jié)點A會收到B發(fā)出的激 發(fā)數(shù)據(jù)包,如果不設(shè)置這一閾值會導(dǎo)致A的相位因為B的激發(fā)而增加。因此,設(shè)置閾值 可以防止這種情況的發(fā)生。 步驟203:由步驟201所獲得的激發(fā)節(jié)點的周期,根據(jù)公式錯誤!未找到引用 源。計算出相位增量。然后停止計數(shù)器,將相位增量增加到計數(shù)器上去,最后再次啟動 計數(shù)器。 步驟204 :判斷經(jīng)過步驟203增加之后的計數(shù)器是否已經(jīng)溢出,如果溢出則說明 該節(jié)點激發(fā),調(diào)用步驟3進行相關(guān)的溢出處理。否則,處理過程結(jié)束。
當(dāng)計數(shù)器溢出時,需要重置計數(shù)器,組織包含流水號、節(jié)點號和周期T的數(shù)據(jù) 包,然后將該數(shù)據(jù)包發(fā)送出去。如圖3所示具體步驟如下 步驟301:停止計數(shù)器,將計數(shù)器的計數(shù)值設(shè)為O,然后重新啟動計數(shù)器。
步驟302 :將流水號自加1,然后將其和節(jié)點號、周期T以及保存到數(shù)據(jù)包相應(yīng) 的數(shù)據(jù)結(jié)構(gòu)中,然后將此數(shù)據(jù)包廣播出去。 由于無線傳感器采用低成本低功耗的處理器,因此無法進行復(fù)雜的函數(shù)計算。 在本發(fā)明中使用的線性振蕩器,在保證精度的同時,避免了大量的非線性計算,節(jié)省了 同步能耗。 同時,該方法避免了對振蕩器晶振頻率相同這一假設(shè),特別是對于大規(guī)模的無 線傳感器網(wǎng)絡(luò),這點顯得尤為重要。 另外,該方法在同步的過程中只需要一個計數(shù)器,不需要保存其它狀態(tài)信息, 也不需要基于任何的拓?fù)湫畔ⅲ虼送?jīng)典的同步方法相比節(jié)省了計算時間和存儲空 間,同時還具有較好的擴展性。 為了說明該方法的有效性,并且進一步討論在實際應(yīng)用中如何選取各項參數(shù), 我們在由15個節(jié)點組成的無線傳感器網(wǎng)絡(luò)測試床上對該方法進行了實際的測試。節(jié)點振 蕩器的頻率(T。。u^)是115200Hz。 O號節(jié)點在周期執(zhí)行到大致一半的時候會發(fā)出一個中斷 信號使所有的節(jié)點同時向Web服務(wù)器發(fā)送自己的計數(shù)器數(shù)值。計算除了 0號節(jié)點外的所 有節(jié)點的計數(shù)器的標(biāo)準(zhǔn)差來衡量這一組數(shù)據(jù)的精度,在收集完所有數(shù)據(jù)之后,再計算所 有標(biāo)準(zhǔn)差的算數(shù)平均值作為最終的結(jié)果。另外,在計算最后的算術(shù)平均值時,若干組最 大最小值被從結(jié)果中取出,以避免隨機因素的影響。 首先,討論實驗周期如何影響同步的精度。將e固定為1/4,對于每一組T。,令 d以步長500遍歷區(qū)間[500, 40000],在計算最終結(jié)果時,舍去最大和最小的5組數(shù)據(jù)。 圖4為T。分別取T。。u自的2、 4、 8、 16倍,同步結(jié)果的標(biāo)準(zhǔn)差隨d的變化情況。從圖中 可以看出,對于T。的每個取值,變化過程分為三個階段。當(dāng)d很小時,標(biāo)準(zhǔn)差跟T。和 d的相關(guān)性很小,隨著d的增加同步標(biāo)準(zhǔn)差首先穩(wěn)定在某一固定值,然后隨著d的增加而增加。這是由于,當(dāng)d很小時,各節(jié)點的周期非常接近,由于閾值L的作用,會使計數(shù) 器進入一種鎖步(phase-locked)的狀態(tài);隨著d的增加,節(jié)點間進入正常的同步階段;而 當(dāng)d過大,而使同步保持條件錯誤!未找到引用源。無法被滿足的時候,同步標(biāo)準(zhǔn)差則 會明顯的增加。在本實驗中,有
T腿=Tq, T腿=T。+14d and e = 1/4 代入錯誤!未找到引用源。中,可得 K 1
r0+i 4
解得
56 當(dāng)T。分別等于^e。她r,4Te。unter,8Te。unter和16Te。unter時,由上式計算出來的d分
別為4114, 8228, 16457和32914。
這些結(jié)果與圖4吻合的非常好。
為了進一步研究T。的4種取值在上述同步穩(wěn)定階段的同步精度。我們進行了進 一步的實驗。實驗的相關(guān)的參數(shù)與上一個實驗相同,只是d以步長10遍歷區(qū)間[3000, 3500],為了使結(jié)果更加穩(wěn)定,我們除去了最大和最小的15個結(jié)果。實驗結(jié)果如圖5所 示,從圖中可以看出較小的T。可以獲得更高的精度,這是因為周期越短,節(jié)點調(diào)整自己 的相位越頻繁,因此會越快的達(dá)到同步。 接下來,討論耦合強度e對同步精度的影響。在此實驗中,將T。固定在 2Tc。untCT,對于不同的e,令d以步長100遍歷區(qū)間[100, 10000],在計算最終結(jié)果時,舍 去最大和最小的15組數(shù)據(jù)。圖6為e分別取1/16、 1/8、 1/4、 1/2時,同步結(jié)果的標(biāo)準(zhǔn) 差隨d的變化情況。同第一個實驗類似,標(biāo)準(zhǔn)差的變化過程分為三個階段。但是在二、 三階段的交點的計算略有差別,對于上述實驗條件有
T腿=2T咖咖=230400, T腿=T。+14d = 230400+14d
代入錯誤!未找到引用源。中,可得 230400
230400+ 14d
解得
h115200 當(dāng)e分別為1/16、 1/8、 1/4、 1/2時,由上式計算出來的d分別為1028, 2057, 4114, 8228。 這與實驗結(jié)果也是吻合的。 如圖7所示,為同樣實驗條件下,以步長10遍歷[1000, 2000]的實驗結(jié)果。為 了使結(jié)果的展示更加清楚,e =1/2, e =1/4和e = 1/8分別分別畫在a), b)和c)這 三個子圖中。在比較這三幅圖的時候,可以發(fā)現(xiàn)當(dāng)e = 1/4時結(jié)果更加穩(wěn)定。原因可 能是,當(dāng)e很小時,兩個節(jié)點之間的耦合太弱,因此會輕易的被破壞;而當(dāng)e太大的時 候,節(jié)點更加容易與其它節(jié)點同步,因此兩個節(jié)點之間的耦合又會輕易的被其它節(jié)點影 響。因此,要獲得一個穩(wěn)定的同步結(jié)果,必須選擇一個合適的e值。
上述的實驗討論了T。, e和d如果影響同步結(jié)果的精度。通過對實驗的分析, 可以得出如下結(jié)論
6
在d不太小,而且同步保持條件也能夠被滿足的情況下,通過可以很好的同
步,最好的精度在ioo微妙左右。 T。決定同步的周期,較小的T??梢垣@得較高的同步精度。必須仔細(xì)的選擇e 的大小,較小和較大的e都會降低同步精度。綜上所述,通過實驗驗證了該方法能夠?qū)?無線傳感器網(wǎng)絡(luò)節(jié)點進行同步,獲得較好的同步結(jié)果。
權(quán)利要求
一種實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法,其特征在于,包括以下步驟初始化計數(shù)器;啟動計數(shù)器,打開中斷,啟動消息隊列;根據(jù)收到的數(shù)據(jù)包修改線性振蕩器的計數(shù)值。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述初始化計數(shù)器,包括 設(shè)置計數(shù)器的工作模式、最大計數(shù)值;設(shè)置節(jié)點號和周期T以及耦合強度。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,設(shè)置節(jié)點i的周期1為Tt = T0+(i-l)*d其中,T。為周期的基數(shù);d描述相鄰編號節(jié)點的周期差異。
4. 根據(jù)權(quán)利要求1中所述的方法,其特征在于,還包括節(jié)點上的計數(shù)器線性計數(shù),計數(shù)值到達(dá)T時發(fā)出一個包含了改節(jié)點周期的數(shù)據(jù)包,然后將計數(shù)器置0,重復(fù)這一過程;接收節(jié)點收到所述包含周期的數(shù)據(jù)包之后,使用如下公式得到自己的新的計數(shù)值其中小'j為新的計數(shù)值;氣為接收節(jié)點計數(shù)器在收到數(shù)據(jù)包之前的計數(shù)值;Tt 為發(fā)送節(jié)點的周期;Tj為接收節(jié)點的周期;e為耦合強度。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于如果所述小'j的計算結(jié)果超出所述 接收節(jié)點的周期值,所述接收節(jié)點回到初始值并發(fā)出一個包含所述接收節(jié)點周期的數(shù)據(jù) 包。
6. 根據(jù)權(quán)利1中所述的方法,其特征在于所述線性振蕩器的周期的概率密度函數(shù) 有界。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于所述線性振蕩器的周期滿足其中T皿為所述線性振蕩器周期的最小值;T皿為所述線性振蕩器周期的最大值; e為耦合強度。
全文摘要
本發(fā)明公開了本發(fā)明所述的一種實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法,包括以下步驟初始化計數(shù)器;啟動計數(shù)器,打開中斷,啟動消息隊列;根據(jù)收到的數(shù)據(jù)包計算出計數(shù)器增量并據(jù)此修改計數(shù)器值。本發(fā)明所述的實現(xiàn)無線傳感器網(wǎng)絡(luò)時間同步的方法通過周期性修改線性振蕩器的計數(shù)值達(dá)到無線傳感器網(wǎng)絡(luò)時間同步的目的,解決了現(xiàn)有技術(shù)中,由于晶振在運行過程中易受外界因素影響,進而導(dǎo)致網(wǎng)絡(luò)中節(jié)點的計時速率的偏差,造成了網(wǎng)絡(luò)節(jié)點時間的失步的問題。
文檔編號H04W84/18GK101692743SQ20091017691
公開日2010年4月7日 申請日期2009年9月24日 優(yōu)先權(quán)日2009年9月24日
發(fā)明者姜鵬, 安竹林, 徐勇軍, 李曉維, 鄭哲 申請人:寧波高新區(qū)深聯(lián)科技有限公司