基于Zstack協(xié)議棧的WSN網(wǎng)絡(luò)時(shí)間同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種時(shí)間同步方法,尤其是一種基于Zstack協(xié)議棧的WSN網(wǎng)絡(luò)時(shí)間同步方法,屬于無(wú)線(xiàn)通信的技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]Zstack協(xié)議棧是一種符合Zigbee通信協(xié)議的協(xié)議棧,在該協(xié)議棧中,無(wú)線(xiàn)網(wǎng)絡(luò)中的設(shè)備分為三種:協(xié)調(diào)器、路由節(jié)點(diǎn)和終端節(jié)點(diǎn),這三種節(jié)點(diǎn)均具備實(shí)時(shí)時(shí)鐘功能。其中,協(xié)調(diào)器和路由節(jié)點(diǎn)屬于非睡眠節(jié)點(diǎn),具備實(shí)時(shí)通信功能,并能在網(wǎng)絡(luò)中作為終端節(jié)點(diǎn)的父節(jié)點(diǎn);而終端節(jié)點(diǎn)屬于睡眠節(jié)點(diǎn),即處于間歇性工作模式,不具備實(shí)時(shí)通信功能。
[0003]由于處于睡眠狀態(tài)下的終端節(jié)點(diǎn)無(wú)法實(shí)時(shí)接收無(wú)線(xiàn)數(shù)據(jù),如無(wú)法實(shí)時(shí)接收來(lái)自協(xié)調(diào)器的網(wǎng)絡(luò)對(duì)時(shí)信令,因此終端節(jié)點(diǎn)與網(wǎng)絡(luò)內(nèi)其它節(jié)點(diǎn)之間的時(shí)間一致性較差。終端節(jié)點(diǎn)在經(jīng)過(guò)一段固定的休眠時(shí)間后會(huì)被自動(dòng)喚醒,并與其所在網(wǎng)絡(luò)中的父節(jié)點(diǎn)進(jìn)行一次數(shù)據(jù)交互,其父節(jié)點(diǎn)會(huì)將該終端節(jié)點(diǎn)在睡眠期間未能接收到的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行緩存,并在此時(shí)轉(zhuǎn)發(fā)給終端節(jié)點(diǎn),如此該數(shù)據(jù)的網(wǎng)絡(luò)實(shí)時(shí)性就較差。
[0004]Zigbee網(wǎng)絡(luò)中,協(xié)調(diào)器向節(jié)點(diǎn)發(fā)送對(duì)時(shí)信令過(guò)程中產(chǎn)生的時(shí)間誤差主要來(lái)自于節(jié)點(diǎn)休眠特性導(dǎo)致的延時(shí)及鏈路傳輸過(guò)程中的延時(shí),即時(shí)間誤差=節(jié)點(diǎn)休眠特性導(dǎo)致的延時(shí)+鏈路傳輸過(guò)程中的延時(shí)。其中,鏈路傳輸過(guò)程中的延時(shí)取決于客觀(guān)的鏈路載體和開(kāi)發(fā)人員的具體實(shí)現(xiàn)方式,目前在任一網(wǎng)絡(luò)對(duì)時(shí)過(guò)程中均存在。
[0005]在Zstack協(xié)議棧中,終端節(jié)點(diǎn)的睡眠時(shí)間默認(rèn)配置為ls,即決定了在該配置下,無(wú)線(xiàn)網(wǎng)絡(luò)中各睡眠節(jié)點(diǎn)之間、睡眠節(jié)點(diǎn)與非睡眠節(jié)點(diǎn)之間的網(wǎng)絡(luò)時(shí)間誤差均在Is左右。
[0006]無(wú)線(xiàn)網(wǎng)絡(luò)的時(shí)間一致性與網(wǎng)絡(luò)性能密切相關(guān),時(shí)間一致性越差則網(wǎng)絡(luò)中各節(jié)點(diǎn)的無(wú)線(xiàn)通信沖突現(xiàn)象會(huì)越多,進(jìn)而造成網(wǎng)絡(luò)堵塞,增大網(wǎng)絡(luò)的額外開(kāi)銷(xiāo),通常為了防止時(shí)間一致性帶來(lái)的網(wǎng)絡(luò)沖突現(xiàn)象,采用增大網(wǎng)絡(luò)中各節(jié)點(diǎn)的通信時(shí)隙方法,如此會(huì)犧牲網(wǎng)絡(luò)時(shí)隙資源,間接限制了網(wǎng)絡(luò)規(guī)模。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種基于Zstack協(xié)議棧的WSN網(wǎng)絡(luò)時(shí)間同步方法,其能降低Zstack協(xié)議棧中睡眠節(jié)點(diǎn)與網(wǎng)絡(luò)的時(shí)間誤差,提高整個(gè)無(wú)線(xiàn)網(wǎng)絡(luò)的時(shí)間一致性,進(jìn)而提高WSN無(wú)線(xiàn)網(wǎng)絡(luò)的整體性能。
[0008]按照本發(fā)明提供的技術(shù)方案,所述基于Zstack協(xié)議棧的WSN網(wǎng)絡(luò)時(shí)間同步方法,通過(guò)協(xié)調(diào)器周期性地廣播一條時(shí)間同步數(shù)據(jù),在Zstack協(xié)議棧中,將廣播時(shí)間同步數(shù)據(jù)的目的地址設(shè)定為非睡眠節(jié)點(diǎn),且在時(shí)間同步數(shù)據(jù)發(fā)送前,設(shè)置WSN網(wǎng)絡(luò)中睡眠節(jié)點(diǎn)的工作狀態(tài),以使得睡眠節(jié)點(diǎn)能實(shí)時(shí)接收廣播的時(shí)間同步數(shù)據(jù);在睡眠節(jié)點(diǎn)接收時(shí)間同步數(shù)據(jù)且根據(jù)時(shí)間同步數(shù)據(jù)對(duì)時(shí)后,恢復(fù)睡眠節(jié)點(diǎn)的狀態(tài)。
[0009]在WSN網(wǎng)絡(luò)中,將睡眠節(jié)點(diǎn)的射頻功能置位實(shí)時(shí)接收,且設(shè)置睡眠節(jié)點(diǎn)的廣播接收濾波,以使得睡眠節(jié)點(diǎn)能實(shí)時(shí)接收廣播的時(shí)間同步數(shù)據(jù)。
[0010]在Zstack協(xié)議棧中,將廣播時(shí)間同步數(shù)據(jù)的目的地址設(shè)定為OxFFFD。
[0011]本發(fā)明的優(yōu)點(diǎn):可使WSN網(wǎng)絡(luò)中的睡眠節(jié)點(diǎn)與非睡眠節(jié)點(diǎn)具有相同的時(shí)間一致性,理論上達(dá)到網(wǎng)絡(luò)時(shí)間同步性能最優(yōu),且時(shí)間誤差與睡眠節(jié)點(diǎn)的睡眠間隔無(wú)關(guān)。即在zigbee網(wǎng)絡(luò)中,協(xié)調(diào)器向節(jié)點(diǎn)發(fā)送對(duì)時(shí)信令過(guò)程中產(chǎn)生的時(shí)間誤差得到優(yōu)化,取消了來(lái)自節(jié)點(diǎn)休眠特性導(dǎo)致的延時(shí),僅取決于鏈路傳輸過(guò)程中產(chǎn)生的延時(shí),即時(shí)間誤差=鏈路傳輸過(guò)程中的延時(shí),提高WSN無(wú)線(xiàn)網(wǎng)絡(luò)的整體性能。
【附圖說(shuō)明】
[0012]圖1為本發(fā)明的流程圖。
【具體實(shí)施方式】
[0013]下面結(jié)合具體附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0014]如圖1所示:為了能降低Zstack協(xié)議棧中睡眠節(jié)點(diǎn)與網(wǎng)絡(luò)的時(shí)間誤差,提高整個(gè)無(wú)線(xiàn)網(wǎng)絡(luò)的時(shí)間一致性,進(jìn)而提高WSN無(wú)線(xiàn)網(wǎng)絡(luò)的整體性能,本發(fā)明的時(shí)間同步方法具體包括:通過(guò)協(xié)調(diào)器周期性地廣播一條時(shí)間同步數(shù)據(jù),在Zstack協(xié)議棧中,將廣播時(shí)間同步數(shù)據(jù)的目的地址設(shè)定為非睡眠節(jié)點(diǎn),且在時(shí)間同步數(shù)據(jù)發(fā)送前,設(shè)置WSN網(wǎng)絡(luò)中睡眠節(jié)點(diǎn)的工作狀態(tài),以使得睡眠節(jié)點(diǎn)能實(shí)時(shí)接收廣播的時(shí)間同步數(shù)據(jù);在睡眠節(jié)點(diǎn)接收時(shí)間同步數(shù)據(jù)且根據(jù)時(shí)間同步數(shù)據(jù)對(duì)時(shí)后,恢復(fù)睡眠節(jié)點(diǎn)的狀態(tài)。
[0015]具體地,為了能使得協(xié)調(diào)器廣播的時(shí)間同步數(shù)據(jù)的目的地址為非睡眠節(jié)點(diǎn),在Zstack協(xié)議棧中,將廣播時(shí)間同步數(shù)據(jù)的目的地址設(shè)定為OxFFFD。在WSN網(wǎng)絡(luò)中,可以根據(jù)具體的應(yīng)用需要事先約定協(xié)調(diào)器周期性廣播時(shí)間同步數(shù)據(jù)的具體時(shí)刻,即協(xié)調(diào)器周期性地廣播時(shí)間同步數(shù)據(jù)的時(shí)刻對(duì)于非睡眠節(jié)點(diǎn)以及睡眠節(jié)點(diǎn)均為已知,協(xié)調(diào)器廣播時(shí)間同步數(shù)據(jù)的周期一般可以通過(guò)WSN網(wǎng)絡(luò)中節(jié)點(diǎn)的本地實(shí)時(shí)時(shí)鐘精度來(lái)確定,通常一個(gè)廣播周期內(nèi)節(jié)點(diǎn)的本地實(shí)時(shí)時(shí)鐘偏差不超過(guò)100ms。
[0016]睡眠節(jié)點(diǎn)在首次上電之后,由于尚未進(jìn)行網(wǎng)絡(luò)對(duì)時(shí),因此可選擇直接進(jìn)入被動(dòng)等待接收廣播的時(shí)間同步數(shù)據(jù)的狀態(tài),或者進(jìn)行一次主動(dòng)要求協(xié)調(diào)器實(shí)時(shí)發(fā)送一次廣播的時(shí)間同步數(shù)據(jù),之后立即進(jìn)入接收廣播的時(shí)間同步數(shù)據(jù)的狀態(tài);睡眠節(jié)點(diǎn)根據(jù)接收的時(shí)間同步數(shù)據(jù)在成功進(jìn)行網(wǎng)絡(luò)對(duì)時(shí)之后,在下一次網(wǎng)絡(luò)對(duì)時(shí)之前,提前至少10ms進(jìn)入準(zhǔn)備接收廣播的時(shí)間同步數(shù)據(jù)的狀態(tài)。
[0017]在具體實(shí)施時(shí),在Zstack協(xié)議棧中,通過(guò)函數(shù)macRxEnable打開(kāi)射頻接收開(kāi)關(guān),同時(shí)在Zstack協(xié)議棧中禁止macRxDisable函數(shù)被調(diào)用,并通過(guò)以下函數(shù)操作關(guān)閉睡眠節(jié)點(diǎn)的輪詢(xún)功能 NLME_SetPolIRate ( O ),NLME_SetQueuedPolIRate ( O ),NLME_SetResponseRate ( O ),通過(guò)上述的設(shè)置,能使得WSN網(wǎng)絡(luò)中睡眠節(jié)點(diǎn)的工作狀態(tài)為實(shí)時(shí)接收狀態(tài)。
[0018]將睡眠節(jié)點(diǎn)的屬性ZD0_Config_Node_Descriptor.CapabilityFlags 臨時(shí)修改為CAPINF0_RCVR_0N_IDLE,并調(diào)用NLME_SetBroadcastFilter函數(shù)重新設(shè)置睡眠節(jié)點(diǎn)的廣播接收濾波設(shè)置,由此可使得睡眠節(jié)點(diǎn)可以接收到廣播的時(shí)間同步數(shù)據(jù),即睡眠節(jié)點(diǎn)可以接收到協(xié)調(diào)器發(fā)送給非睡眠節(jié)點(diǎn)的廣播的實(shí)時(shí)時(shí)間同步數(shù)據(jù)。
[0019]本發(fā)明實(shí)施例中,在睡眠節(jié)點(diǎn)根據(jù)接收的時(shí)間同步數(shù)據(jù)進(jìn)行時(shí)間同步后,恢復(fù)睡眠節(jié)點(diǎn)的狀態(tài)至廣播對(duì)時(shí)之前,即若睡眠節(jié)點(diǎn)在對(duì)時(shí)之前處于休眠狀態(tài),則將對(duì)時(shí)后睡眠節(jié)點(diǎn)的狀態(tài)重新恢復(fù)為睡眠狀態(tài);若睡眠節(jié)點(diǎn)在對(duì)時(shí)之前處于喚醒狀態(tài),則將對(duì)時(shí)后睡眠節(jié)點(diǎn)的狀態(tài)重新恢復(fù)為喚醒狀態(tài)。睡眠節(jié)點(diǎn)在接收到協(xié)調(diào)器廣播的時(shí)間同步數(shù)據(jù)后,具體進(jìn)行時(shí)間同步的過(guò)程與現(xiàn)有技術(shù)中時(shí)間同步的過(guò)程相一致,具體為本技術(shù)領(lǐng)域人員所熟知,此處不再贅述。
[0020]本發(fā)明可使WSN網(wǎng)絡(luò)中的睡眠節(jié)點(diǎn)與非睡眠節(jié)點(diǎn)具有相同的時(shí)間一致性,理論上達(dá)到網(wǎng)絡(luò)時(shí)間同步性能最優(yōu),且時(shí)間誤差與睡眠節(jié)點(diǎn)的睡眠間隔無(wú)關(guān)。即在zigbee網(wǎng)絡(luò)中,協(xié)調(diào)器向節(jié)點(diǎn)發(fā)送對(duì)時(shí)信令過(guò)程中產(chǎn)生的時(shí)間誤差得到優(yōu)化,取消了來(lái)自節(jié)點(diǎn)休眠特性導(dǎo)致的延時(shí),僅取決于鏈路傳輸過(guò)程中產(chǎn)生的延時(shí),即時(shí)間誤差=鏈路傳輸過(guò)程中的延時(shí),提高WSN無(wú)線(xiàn)網(wǎng)絡(luò)的整體性能。
【主權(quán)項(xiàng)】
1.一種基于Zstack協(xié)議棧的WSN網(wǎng)絡(luò)時(shí)間同步方法,其特征是:通過(guò)協(xié)調(diào)器周期性地廣播一條時(shí)間同步數(shù)據(jù),在Zstack協(xié)議棧中,將廣播時(shí)間同步數(shù)據(jù)的目的地址設(shè)定為非睡眠節(jié)點(diǎn),且在時(shí)間同步數(shù)據(jù)發(fā)送前,設(shè)置WSN網(wǎng)絡(luò)中睡眠節(jié)點(diǎn)的工作狀態(tài),以使得睡眠節(jié)點(diǎn)能實(shí)時(shí)接收廣播的時(shí)間同步數(shù)據(jù);在睡眠節(jié)點(diǎn)接收時(shí)間同步數(shù)據(jù)且根據(jù)時(shí)間同步數(shù)據(jù)對(duì)時(shí)后,恢復(fù)睡眠節(jié)點(diǎn)的狀態(tài)。
2.根據(jù)權(quán)利要求1所述的基于Zstack協(xié)議棧的WSN網(wǎng)絡(luò)時(shí)間同步方法,其特征是:在WSN網(wǎng)絡(luò)中,將睡眠節(jié)點(diǎn)的射頻功能置位實(shí)時(shí)接收,且設(shè)置睡眠節(jié)點(diǎn)的廣播接收濾波,以使得睡眠節(jié)點(diǎn)能實(shí)時(shí)接收廣播的時(shí)間同步數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的基于Zstack協(xié)議棧的WSN網(wǎng)絡(luò)時(shí)間同步方法,其特征是:在Zstack協(xié)議棧中,將廣播時(shí)間同步數(shù)據(jù)的目的地址設(shè)定為OxFFFD。
【專(zhuān)利摘要】本發(fā)明涉及一種時(shí)間同步方法,尤其是一種基于Zstack協(xié)議棧的WSN網(wǎng)絡(luò)時(shí)間同步方法,屬于無(wú)線(xiàn)通信的技術(shù)領(lǐng)域。按照本發(fā)明提供的技術(shù)方案,所述基于Zstack協(xié)議棧的WSN網(wǎng)絡(luò)時(shí)間同步方法,通過(guò)協(xié)調(diào)器周期性地廣播一條時(shí)間同步數(shù)據(jù),在Zstack協(xié)議棧中,將廣播時(shí)間同步數(shù)據(jù)的目的地址設(shè)定為非睡眠節(jié)點(diǎn),且在時(shí)間同步數(shù)據(jù)發(fā)送前,設(shè)置WSN網(wǎng)絡(luò)中睡眠節(jié)點(diǎn)的工作狀態(tài),以使得睡眠節(jié)點(diǎn)能實(shí)時(shí)接收廣播的時(shí)間同步數(shù)據(jù);在睡眠節(jié)點(diǎn)接收時(shí)間同步數(shù)據(jù)且根據(jù)時(shí)間同步數(shù)據(jù)對(duì)時(shí)后,恢復(fù)睡眠節(jié)點(diǎn)的狀態(tài)。本發(fā)明能降低Zstack協(xié)議棧中睡眠節(jié)點(diǎn)與網(wǎng)絡(luò)的時(shí)間誤差,提高整個(gè)無(wú)線(xiàn)網(wǎng)絡(luò)的時(shí)間一致性,進(jìn)而提高WSN無(wú)線(xiàn)網(wǎng)絡(luò)的整體性能。
【IPC分類(lèi)】H04W84-18, H04W56-00
【公開(kāi)號(hào)】CN104717739
【申請(qǐng)?zhí)枴緾N201510155948
【發(fā)明人】李寧, 朱平, 鄧天旗, 唐勇
【申請(qǐng)人】江蘇省無(wú)線(xiàn)電科學(xué)研究所有限公司
【公開(kāi)日】2015年6月17日
【申請(qǐng)日】2015年4月2日