<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種即時(shí)同步與時(shí)鐘自校準結合的全網(wǎng)同步技術(shù)

一種即時(shí)同步與時(shí)鐘自校準結合的全網(wǎng)同步技術(shù)

作者: 時(shí)間:2013-10-09 來(lái)源:網(wǎng)絡(luò ) 收藏
3 時(shí)鐘技術(shù)
3.1 理論分析
理想情況下,標稱(chēng)值相同的晶振應該有相同的振蕩頻率,但是實(shí)際并非如此。晶振在標定頻率之外還有一個(gè)參數,稱(chēng)之為精度,單位是ppm,即每百萬(wàn)次中的誤差次數。一顆標定為32.768 kHz,20 ppm的晶振,意味著(zhù)每振蕩一百萬(wàn)次,會(huì )偏差20次,正負都有可能。在本實(shí)驗系統中,采用的是32.768 kHz,20 ppm的晶振。
如果第N級節點(diǎn)和第N+1級節點(diǎn)所采用的兩顆晶振的偏差方向相反,則10 min后兩級節點(diǎn)的時(shí)鐘偏差至多為2×12=24 ms。
時(shí)鐘偏差臨界點(diǎn)時(shí)刻示意圖如圖4所示。

d.jpg


這里選擇10 min作為本算法的補償周期是由物理層的具體特性決定的。在低功耗模式中,簇頭的偵聽(tīng)窗口為50 ms,被上層節點(diǎn)喚醒的通信波特率是4.8 kbps。經(jīng)過(guò)試驗得出:物理層發(fā)送一個(gè)有效載荷為3個(gè)字節的同步命令幀所需的時(shí)間約為22 ms。
即使10 min后的同步偏差達到24 ms,第N層節點(diǎn)和第N+1層節點(diǎn)仍然有50-24=26 ms的偵測窗口重疊期。如果第N層節點(diǎn)以?xún)蓚€(gè)命令幀的密度向第N+1層節點(diǎn)發(fā)送同步指令,底層節點(diǎn)仍有機會(huì )捕獲到其中一個(gè)命令幀,因為26 ms>22 ms。以上均屬臨界時(shí)間狀態(tài),如果兩級節點(diǎn)的晶振偏差方向相同,則捕獲到上層同步指令的幾率還會(huì )增加。
要想保證兩級節點(diǎn)的可靠同步,必須在10 min內執行一次同步算法,否則低層節點(diǎn)將偏離出高層節點(diǎn)的發(fā)送窗口,即高層發(fā)送的命令,低層節點(diǎn)將不會(huì )收到。
將第N+1層節點(diǎn)的時(shí)鐘同步到第N層節點(diǎn)并實(shí)現自校正的步驟如下:
①由第N層節點(diǎn)發(fā)起同步。首先第N層節點(diǎn)利用即時(shí)同步技術(shù)將低層(N+1)節點(diǎn)的時(shí)鐘同步到同步時(shí)間點(diǎn)t0,同時(shí)第N層節點(diǎn)將t0作為自身時(shí)間的零時(shí)初始時(shí)刻。
②t0+600 s后,第N層節點(diǎn)向第N+1層節點(diǎn)發(fā)送兩個(gè)時(shí)間校驗命令幀,幀格式如下所示。

e.jpg


③第N+1層節點(diǎn)判斷收到的時(shí)間校驗命令幀的序號(第一個(gè)字節)和第N層節點(diǎn)的時(shí)間tN(后兩個(gè)字節)。
④計算出第N+1層節點(diǎn)的本地時(shí)鐘tN+1與tN的差值△t。
⑤將△t作為一個(gè)常數,每隔10 min補償到tN+1中一次。
3.2 軟件流程
兩層節點(diǎn)以第N層和第N+1層節點(diǎn)為例說(shuō)明軟件的流程。第N層節點(diǎn)的流程圖如圖5所示。

f.jpg


由于所有節點(diǎn)在上電后處于低功耗模式,且各層節點(diǎn)不同步,所以需要初始第一次同步動(dòng)作。第N層簇頭連續發(fā)送“本地ID+時(shí)間序列”同步幀,利用即時(shí)同步技術(shù),將兩層節點(diǎn)同步到“零時(shí)”。
Sync是一個(gè)unsigned char型變量,可以追蹤時(shí)間的增長(cháng)。在實(shí)際中,采用芯片內部的RTC進(jìn)行計時(shí),Sync的初始值為0,每發(fā)生一次RTC中斷事件,Sync的值加1。RTC中斷事件每5 s發(fā)生一次,所以當Sync=120時(shí),意味著(zhù)10min的補償時(shí)刻到了。
在發(fā)送本地時(shí)鐘時(shí),為了保證第N+1層節點(diǎn)能可靠地收到時(shí)間校正信號,采用了兩次發(fā)送同樣內容的方法。兩次發(fā)送幀中所帶的時(shí)間信息完全相同,物理層完成兩次發(fā)送的時(shí)間差是22 ms。幀頭0x81和0x82用來(lái)幫助下層節點(diǎn)區分收到的是哪一次發(fā)送的時(shí)間校正信號。
第N+1層節點(diǎn)的軟件流程圖如圖6所示。

g.jpg


當收到父節點(diǎn)ID幀頭時(shí),利用即時(shí)同步機制第一次將本節點(diǎn)和上一層節點(diǎn)初始同步。當收到0x81或者0x82幀頭時(shí),進(jìn)行兩層節點(diǎn)間的時(shí)鐘校對:把本地時(shí)鐘和上一層時(shí)鐘的差值D_value保存,并把收到的上一層參考時(shí)鐘寫(xiě)入本地RTC的CAPTUREn寄存器中。
本層節點(diǎn)每600 s進(jìn)行一次晶振偏移補償:將本地時(shí)鐘減去D_value,然后寫(xiě)入RTC寄存器,完成校對。
由于傳感器節點(diǎn)的偵聽(tīng)窗口為5 ms,若同樣采用精度為20 ppm的晶振,經(jīng)過(guò)計算,需要在第1 min的時(shí)候進(jìn)行時(shí)鐘校驗,否則就會(huì )超出偵聽(tīng)窗口。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>