一種基于Ad hoc網絡測距的時鐘同步協議
RTD包括下行傳輸時延(從主時鐘節點到從時鐘節點)和上行傳輸時延(從從時鐘節點到主時鐘節點)。首先,從時鐘節點從主時鐘節點讀取時間標記,獲得當地時鐘基準,然后根據MAP找到主時鐘節點分配的初始維護區,發出初始測距請求(RNG-REQ)。由于從時鐘節點與主時鐘節點之間存在距離,該請求將延遲一段時間到達,假設到達時刻為T=440。主時鐘節點計算收到RNG-REQ的實際時刻與初始維護區起始時刻之差,在測距響應(RNG-RSP)中通過“定時調整”字段返回給從時鐘節點。主時鐘節點在發送RNG-RSP前還應該獲得從時鐘節點發送的確切頻率、接收的實際功率等信息。主時鐘節點在這些數據的基礎上計算出校正數據,并在RNG-RSP中發送給從時鐘節點。從時鐘節點收到RNG-RSP后,根據下式計算收到第n個RNG-RSP后得到的定時偏移tn:
圖1中初始維護使得從時鐘節點的定時偏移調整為t1=120。在隨后的站維護過程中,從時鐘節點提前t1發送RNG-REQ,該數據分組在站維護區的起始時刻T=740到達主時鐘節點。主時鐘節點根據接收參數計算需要進行的附加微調,并通過輪詢RNG-RSP返回給從時鐘節點。從時鐘節點根據式(1)繼續調整定時偏移,直到主時鐘節點指示測距過程成功。
2.2 全網絡生成樹的建立
建立全網絡同步是從建立生成樹開始的。首先,從根節點發出一個層發現報文(包含根節點的層變量0)。根節點的所有單跳鄰近節點為其自己分配的層號(1)加上層發現報文中的層變量,并接受根節點作為它們的父節點。然后第1層的節點發出它們自己的層發現報文,依此類推。同一層的每個節點選擇一個隨機延遲來避免過多的報文碰撞。一旦某個節點接收到第一個層發現報文,該報文的發出者就被作為接收方的父節點,而后來的層發現報文則被丟掉。節點找到它的父節點以后,就接收父節點周期性發出的時鐘同步信號SYNC,并校正自己的本地時鐘,同時,節點本身也周期性地發出時鐘同步信號,使它的子節點也保持同步。
由于報文碰撞或者在生成樹建立以后某個節點才加入到網絡中,因此有的節點可能沒有接收到層發現報文。如果某節點i在一定的時間內沒有接收到任何層發現報文,那么它就會向它的單跳鄰近節點發出一個層發現請求報文,詢問關于現在生成樹的情況。之后,節點i會密切監聽網絡,收集在某個時間范圍內的請求應答報文,然后在它的鄰近節點中選擇一個層變量最小的節點作為它的父節點。圖2是節點i加入網絡層次結構的過程示意圖。
2.3 測距時鐘同步方法的設計實現
從時鐘節點的初始測距要經歷廣播初始維護和單播站維護2個階段。初始維護階段調整從時鐘節點的功率電平、上行信道中心頻率和定時偏移等信息。站維護階段對上述參數進行微量調整。初始測距過程可以設計為4個狀態:等待初始維護機會、等待測距響應、等待站維護機會和等待輪詢測距響應。圖3所示為該過程的有限狀態機圖。
從時鐘節點必須補償物理層的傳輸時延,相當于將從時鐘節點放在與主時鐘節點相近的地方。因而系統將初始定時偏移設為內部固定的時延量,包括從MAC層到物理層的延遲等。初始測距期間發送第一個RNG-REQ時,根據初始定時偏移計算提前發送的時間。主時鐘節點收到請求后計算定時偏移等參數的校正值,并通過RNG-RSP返回給從時鐘節點。響應中的“測距狀態”字段指出從時鐘節點下一步的動作(繼續、中斷或測距成功)。站維護階段的測距請求、響應步驟重復多次,直到從時鐘節點得到含有測距成功的通知或主時鐘節點放棄測距響應為止。在系統運行過程中,當來自于從時鐘節點的數據的到達時間與主時鐘節點分配的時間之間的誤差超過一定限度時,主時鐘節點可以向從時鐘節點發送報文,要求進行突發性的測距。從時鐘節點周期性地發送測距請求,一般來說,發送周期間隔會比較長。
評論