FEM100
FEM100
扭曲修正
扭曲修正的目的是確保時(shí)鐘在相同的振蕩頻率下工作,即limt→∞α′αi=α。對(duì)扭曲參數(shù)的修正采用指數(shù)逼近的方式,以將所有的時(shí)鐘扭曲趨近于α,每個(gè)節(jié)點(diǎn)執(zhí)行的算法如下:
?、?運(yùn)行同步算法前,節(jié)點(diǎn)設(shè)置扭曲估計(jì)αi為1,同時(shí)準(zhǔn)備搜索鄰居節(jié)點(diǎn)的時(shí)鐘扭曲信息。
② 由于各節(jié)點(diǎn)并不一定知道鄰居節(jié)點(diǎn)的存在,在節(jié)點(diǎn)廣播自己的時(shí)鐘信息時(shí),有可能別的節(jié)點(diǎn)也在廣播時(shí)鐘信息,從而導(dǎo)致廣播失敗,因此在MAC層需要一個(gè)類似CSMA/CD的協(xié)議,以確保各節(jié)點(diǎn)能正確廣播自己的時(shí)鐘信息。
③ 設(shè)共有n個(gè)節(jié)點(diǎn),第i(1≤i≤n)個(gè)節(jié)點(diǎn)存儲(chǔ)并廣播自己的時(shí)間信息(αi,Ti),其中Ti為本節(jié)點(diǎn)當(dāng)前時(shí)間值,由于節(jié)點(diǎn)距離和傳輸速度是已知的,所以接收到廣播的節(jié)點(diǎn)根據(jù)Ti確定接收時(shí)的時(shí)間是可行的。
?、?節(jié)點(diǎn)i收到第j(1≤j≤n)個(gè)節(jié)點(diǎn)的廣播包,包含了節(jié)點(diǎn)j的時(shí)間信息(αi,Tj),如果第j個(gè)節(jié)點(diǎn)是第1次出現(xiàn),則節(jié)點(diǎn)i只存儲(chǔ)節(jié)點(diǎn)j的時(shí)間信息,直到收到節(jié)點(diǎn)j的下一個(gè)時(shí)間信息(αj+1,Tj+1)。
⑤ 此時(shí)比較節(jié)點(diǎn)i和節(jié)點(diǎn)j的扭曲,計(jì)算R1=αi(Tj+1-Tj)和R2=αj(Ti+1-Ti),若R1》R2,則需要對(duì)節(jié)點(diǎn)i的扭曲率進(jìn)行修正,設(shè)兩者的差值為λi=αi-αj,調(diào)整因子為σ=min(αi,αj)max(αi,αj),設(shè)置扭曲率和校正值為λ′i=λi(e-eσ)(e- 1),設(shè)置修正值調(diào)整的閾值RT,當(dāng)節(jié)點(diǎn)i*出現(xiàn)λ′i低于閾值要求時(shí)不作調(diào)整,以避免部分失效節(jié)點(diǎn)重新進(jìn)入網(wǎng)絡(luò)時(shí)對(duì)鄰居節(jié)點(diǎn)造成影響。則節(jié)點(diǎn)i新的扭曲值為
則αi=α,同時(shí)保留的節(jié)點(diǎn)i和節(jié)點(diǎn)j的時(shí)間信息T,即Ti=Ti+1,Tj=Tj+1。
⑥ 節(jié)點(diǎn)重復(fù)步驟②~⑤,直到R1=R2,兩節(jié)點(diǎn)扭曲率*,此時(shí)節(jié)點(diǎn)已經(jīng)更新了自己的時(shí)鐘扭曲率,只需要保持偏移*,即可達(dá)到時(shí)鐘同步。