感測器網路的時間同步 | Paper Reading第一季第四期
該文為Momenta Paper Reading 第一季第四期回顧,始發於2017年3月17日。
分享視頻回放鏈接:Momenta Paper Reading 第一季PPT及論文等資料請見文末,添加小助手微信獲取
主講人
費曉天
Momenta視覺演算法研究員
引言
這次分享的內容是時間同步(或是說時鐘)的感測器系統的構建。分享幾個時間同步的小知識。希望能夠給大家以後構建無人駕駛的感測器系統時帶來一些啟發。
因為每一個感測器都需要連接自己的處理器(processer: MCU,ECU等),這次討論的內容限定於,討論如何實現這些處理器之間的時鐘(定時器)如何完成同步。
因為討論的是感測器系統,每個感測器和處理器不能獨立的的工作。這些處理器之間都會發生信息的交互,一定會互相通訊。這次討論的同步方法,是在已有的通訊協議基礎上,在設備之間相互通訊「握手的過程」實現時間同步。
以上圖的OSI 模型為例子,MAC層是實現準確「握手」的重要部分。
接下來主要介紹無線感測器網路,如何實現時間同步。因為無線感測器網路結構清晰簡單,能夠相對清晰的介紹清楚。
如果需要開發在基於UDP/IP的感測器系統應用,可以嘗試一下IEEE 1588-2008 協議。這個協議適用於計算機網路,最近推出很多網卡、交換機等設備都支持這個協議。比如NVIDIA 的PX2也搭載了支持該協議的網卡與交換機。
在汽車領域CAN匯流排已經成為的事實標準,最後會簡單探討,在CAN通訊協議的基礎上實現時間同步。
FTSP無線感測器網路的時間同步
什麼是無線感測器網路?如上圖,無線感測器網路一般由數量眾多的無線感測器節點組成,這些節點大多硬體成本低廉且非常適合大量部署。網關設備(又稱為基站節點)是無線感測器網路與互聯網溝通的介面,通過網關設備可以將無線感測器網路收集的數據傳遞到互聯網伺服器中存儲分析。
FTSP:The Flooding Time Synchronization Protocol,是在無線感測器網路中被廣泛使用的時間同步協議,主要解決了3個問題:
1、 兩個設備之間的時間對齊:時間戳同步
2、 兩個設備之間晶體振蕩器的對齊
3、 同步網路中所有的設備
時間戳對齊
論文中,分析是節點從應用層發出指令一個數據包,直到接收方應用層收到數據包,可以能的延時。上圖分析了各部分的傳輸延時。可以看到收發、接入信道可能需要幾百毫秒的時間。
為了在收發數據包過程中,進行準確「握手的目標」。協議設計時收發數據包的雙方都在Preamble結束後,記錄時間戳。考慮無線信號以光速傳播,可以認為兩台設備記錄的是相同的時刻。
在FTSP裡面將這樣的一個數據包稱之為,數據同步數據包。通過發送和接收這樣一個數據包,並分別記錄時間戳。然後將交換各自的時間戳,2台設備之間可以完成一次時間握手。
晶振的校準
一般購買的晶振振蕩器精度是:10~20ppm(ppm: part per million, 表示百萬分比),即使2個設備通過一次通訊完成一次握手,因為晶振的周期偏差,100秒後就會有1~2ms的誤差,而且這個誤差會越來越大。
FTSP的解決方案是周期性的廣播時間同步數據包。在網路中定義了一個root節點,這個節點的時間稱為global時間,其他節點自身時間一個local時間。
每一次非root節點收到時間同步數據包時,記錄這次收到的全局時間G,一個本地時間L, 定義L與G之間的固定偏差為Offset,與頻率偏差k,可以得到下列公式:
因為root節點周期性發送時間同步包,做一個多點的線性回歸就可以算出k與Offset
FTSP論文做了2個實驗,一個實驗發送不同周期性時間同步數據包,觀察同步效果。另一個實驗驗證關閉周期性的時間同步包,2個節點之間時間同步精度是否會下降。
上圖是統計無線感測器節點晶振在30s,300s,為同步周期的情況下,時間同步的誤差情況。可以看到,經過線性回歸的校準,無線感測器的最大誤差不會超過10us。
上圖,描述的是如果在0:35分時停止時間同步數據包的廣播,2個設備的定時器的偏差會持續增加。
全網的所有節點同步
FTSP實現為了實現無線網路中穩定的時間同步,使用廣播方式發送時間同步包。已經同步非root節點,也會定期向外發送時間同步數據包,將網路中同步的節點範圍逐步擴大。網路中還回定義多個備份root節點,當正在工作的root節點失效時,會更新root節點,讓網路平穩過渡。
論文給出了最終測試的效果:
當網路中root節點更換、設備重啟、更新舊設備等事件發生後,整體的時間同步拍那個叫誤差控制在10us內,最大誤差70us以內。對大部分感測器的應用是已經足夠了。
CAN匯流排時間同步
CAN,全稱為「Controller Area Network」,即控制器區域網,是國際上應用最廣泛的現場匯流排之一。
最初,CAN被設計作為汽車環境中的微控制器通訊,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網路。比如:發動機管理、變速箱控制器、儀錶裝備系統中,均嵌入CAN控制裝置。
CAN是一種多主方式的串列通訊匯流排,基本設計規範要求有高的位速率,高抗電磁干擾性,而且能夠檢測出產生的任何錯誤。當信號傳輸距離達到10Km時,CAN 仍可提供高達50Kbit/s的數據傳輸速率。
由於CAN匯流排具有很高的實時性能,因此,CAN已經在汽車工業、航空工業、工業控制、安全防護等領域中得到了廣泛的應用。
我們希望在CAN網路設備之間實現時間同步,根據上述無線感測器網路的經驗,首先尋找CAN協議MAC層尋找,用於對齊時間的可能位置。
從上圖中我們知道找到CAN的4中數據包的幀類型:數據幀、遙控幀、錯誤幀、過載幀。
我們發現,數據幀最適合用於構建時間同步「握手」信息。
而且CAN收發器必須保持同步才能收發數據,所以能夠通訊就表明,匯流排上設備同一時刻收發數據包。所以使用的CAN設備,根據datasheet尋找如何獲取SOF中斷即可。即使硬體沒有SOF位置的中斷,CAN匯流排協議數據包長度是固定長度,也可以使用完成接收數據的中斷。所以可以選擇CAN數據幀,用作時間同步數據包。
找到時間戳握手方式後,利用定期廣播用於時間同步的數據包,進行晶振的校準。最後CAN匯流排是由2根線構成的單一網路,所以網路中只需要一個root設備發送同步數據包,就可以讓整個網路中所有設備同步。
總結
主要討論在已經的通訊方式的基礎上,構建一套時鐘同步的系統(微秒級):在MAC層記錄準確的時間戳,對晶振的誤差進行校正,設計一個讓整個網路所有設備同步的機制。
總的來說,時間同步系統構建的原理不複雜,但是需要從通訊協議的MAC出發,一步一步構建。
------------------------------------------------
知乎機構號:Momenta,打造自動駕駛大腦。
基於深度學習的環境感知、高精度地圖、駕駛決策技術,讓無人駕駛成為可能。
Momenta知乎專欄:Paper Reading,集聚自動駕駛知名大咖的前沿知識分享平台,歡迎申請加入或直接投稿。
Paper Reading推薦閱讀:
※又有公司要幹掉特斯拉?這次是凱迪拉克
※首例!Uber自動駕駛汽車撞死路人,專家:「車與人的共同失敗」
※SF MOTORS,推動智能電動技術新浪潮
※基於行為模仿的自動駕駛
※中國自動駕駛告別光說不練,完整測試政策將出台
TAG:人工智慧 | 深度學習DeepLearning | 自動駕駛 |