無線傳感器網(wǎng)絡(luò)時(shí)間同步協(xié)議的實(shí)現(xiàn)
2.2 時(shí)間同步協(xié)議的實(shí)現(xiàn)
在確保了每個(gè)節(jié)點(diǎn)都有了高精度的本地時(shí)間后,就可以進(jìn)行時(shí)間同步協(xié)議的實(shí)現(xiàn),使整個(gè)網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的時(shí)間誤差在一定允許范圍內(nèi),時(shí)間同步協(xié)議的實(shí)現(xiàn)是建立在網(wǎng)絡(luò)正常通信的前提下,具體是在應(yīng)用層完成的,底層為用戶提供的一個(gè)8 bit的接口,可以將要發(fā)送和接收的數(shù)據(jù)通過8 bit的接口來與網(wǎng)絡(luò)層通信。發(fā)送數(shù)據(jù)的長度由安全層是否使用安全認(rèn)證來決定。
時(shí)間同步主要依靠節(jié)點(diǎn)之間的通信,每次校時(shí)都是從節(jié)點(diǎn)發(fā)起的。首先,從節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送同步命令,其次,主節(jié)點(diǎn)將自己收到同步命令的時(shí)間和響應(yīng)從節(jié)點(diǎn)的發(fā)送時(shí)間通過單播方式傳回給從節(jié)點(diǎn),從節(jié)點(diǎn)依靠自身的兩個(gè)本地時(shí)間(發(fā)送同步命令時(shí)間和接收到主節(jié)點(diǎn)響應(yīng)的時(shí)間)以及接收到主節(jié)點(diǎn)的兩個(gè)時(shí)間,可以汁算獲取到通信延遲Delay和主從節(jié)點(diǎn)的偏差Offset,通過這兩個(gè)量從節(jié)點(diǎn)就可以自行調(diào)整自己的時(shí)間,已達(dá)到與主節(jié)點(diǎn)的時(shí)間同步。
主節(jié)點(diǎn)主要是在形成網(wǎng)絡(luò)后,監(jiān)聽信道,等待從節(jié)點(diǎn)的校時(shí)同步命令,再將收到同步命令和發(fā)送響應(yīng)的兩個(gè)時(shí)間發(fā)送個(gè)從節(jié)點(diǎn)。從節(jié)點(diǎn)主要是在加入網(wǎng)絡(luò)成功之后,向其父節(jié)點(diǎn)發(fā)送同步命令(發(fā)送前記錄發(fā)送時(shí)間),監(jiān)聽信道,有數(shù)據(jù)就記錄時(shí)間,在判斷是不是同步命令的響應(yīng)。如果是就通過時(shí)間同步算法進(jìn)行計(jì)算Delay和Offset,在獲取從節(jié)點(diǎn)的當(dāng)前時(shí)間,通過調(diào)整時(shí)間公式進(jìn)行調(diào)整自身時(shí)間。
主從節(jié)點(diǎn)的具體流程如圖6和圖7所示。本文引用地址:http://www.ex-cimer.com/article/159475.htm
將程序下載后,將兩個(gè)節(jié)點(diǎn)的定時(shí)器的比較輸出管腳PA3連接到示波器的CH1、CH2上,就會(huì)獲得未校時(shí)前的情況,兩個(gè)時(shí)鐘沒有重合在一起。等待一會(huì),就回出現(xiàn)校時(shí)后的結(jié)果,兩個(gè)時(shí)鐘重合在一起。具體實(shí)驗(yàn)驗(yàn)證兩個(gè)節(jié)點(diǎn)的時(shí)間同步情況如圖8所示。
3 結(jié)束語
ZigBee具有超強(qiáng)的生命力和優(yōu)勢,應(yīng)用前景好,值得廣大嵌入式應(yīng)用的技術(shù)人員關(guān)注,并加入到它的應(yīng)用行列。時(shí)間同步技術(shù)的研究是ZigBee無線傳感器網(wǎng)絡(luò)在實(shí)際應(yīng)用中最需要關(guān)注的一個(gè)關(guān)鍵技術(shù)。
評論