點擊上方藍字談思實驗室
獲取更多汽車網絡安全資訊

01
多傳感器時間特點

02
統一時鐘源
統一時鐘源為了解決“鐘漂”問題,提供一個所有傳感器都遵循的共同時間基準,我們引入了統一時鐘源的概念,如下圖所示:

統一時鐘源有兩種常見方式:一種是基于 GPS 的 “PPS+NMEA” (秒脈沖+GPRMC),另一種是基于以太網的 PTP(IEEE 1588)、gPTP(IEEE 802.1AS)時鐘同步協議。 自駕領域主流的方案是結合上述兩種方案,以 GNSS 時鐘時間為基準時間,采用 PTP/gPTP 時鐘同步協議統一各 傳感器/域 之間的時鐘源,完成時間基準的統一。
2.1 時鐘源
自動駕駛系統目前絕大多數標配高精度 GNSS 接收機,而 GNSS 中導航衛星內置高精度原子鐘,GNSS接收機通過解算導航衛星信號(大于等于 4 顆衛星的信號),可以獲得接收機系統時間與衛星原子鐘之間鐘差,并通過鐘差來校準自己的系統時間,得到超高精度的時鐘信號,這就是GNSS 的授時功能。
原子鐘是人類目前最精確的時間測量儀器,原子在不同能級之間的移動稱為“躍遷”,且由高能級躍遷到低能級時,會釋放電磁波。而對同一種原子來說,這種頻率是固定的,且不受溫度和壓力影響,只與自身能量有關,物理學上稱之為“共振頻率”。物理學家通過一些物理手段,獲得共振頻率的準確物理值。并以此值作為產生時間信號的基本節拍,即丈量時間的基本單位。據相關報道,北斗三號衛星上的原子鐘300年才會有1s累積誤差。
2.2 PPS+GPRMC
GNSS 接收機獲取時鐘信號后,會輸出兩類同步信號:①同步脈沖信號 PPS。其時間周期為 1s ,脈沖寬度5ms~100ms;②GPRMC 時間同步報文。通過標準串口輸出,符合 GPRMC 格式,用于提供精確的時間同步信息。
GPRMC 是一種包含UTC時間(精確到秒),經緯度定位數據的標準格式報文。其格式如下:
# 示例數據$GPRMC,001155.00,A,2237.496474,N,11356.089515,E,0.0,225.5,230520,2.3,W,A*28# 數據說明field 0:$GPRMC, 格式ID,表示該格式為建議的最低特定GPS / TRANSIT數據(RMC)推薦最低定位信息field 1: UTC時間, 格式hhmmss.ssss,代表時分秒.毫秒field 2: 狀態 A:代表定位成功 V:代表定位失敗field 3: 緯度 ddmm.mmmmmm 度格式(如果前導位數不足,則用0填充)field 4: 緯度 N(北緯) S(南緯)field 5: 經度 dddmm.mmmmmm 度格式(如果前導位數不足,則用0填充)field 6: 經度 E(東經) W(西經)field 7: 速度(也為1.852 km / h)field 8: 方位角,度(二維方向,等效于二維羅盤)field 9: UTC日期 DDMMYY 天月年field 10: 磁偏角(000-180)度,如果前導位數不足,則用0填充)field 11: 磁偏角方向E =東W =西field 12: 模式,A =自動,D =差分,E =估計,AND =無效數據(3.0協議內容)field 13: 校驗和
其中 PPS 前沿時刻與 GPRMC報文 的發送在同一時刻,誤差為 ns 級別,可以忽略。PPS 秒脈沖(通常為1PPS,即1次每秒)為物理電平輸出,接收及處理 PPS 信號的時間在 ns 級別,依舊可以忽略。但 GPRMC數據一般通過波特率 9600 的串口發送,其發送、接收、處理時間 tx 在 ms 級別,是時間同步的關鍵。以下是使用 PPS+GPRMC 進行時間同步的原理。

(1)設備收到 PPS 秒脈沖信號后,將內部以晶振為時鐘源的系統時間里的毫秒及以下時間清零,并由此開始計算毫秒時間。
(2)當收到 GPRMC 數據后,提取報文里的年、月、日、時、分、秒的 UTC 時間。
(3)將收到秒脈沖到解析出 GPRMC 中 UTC 時間所用的時間 tx,與 UTC 整秒時間相加,同步給系統時間,至此已完成一次時間同步。下一秒再進行相同的過程,每秒準確校準一次。
基于單純的 PPS 和 GPRMC 實現整個自動駕駛系統的時間同步的局限:
PPS信號驅動能力不足:PPS 是一種低功率脈沖信號,驅動電流范圍通常為 0.5mA 至 20mA,難以觸發多個傳感器的穩定工作。
PPS 信號抗干擾能力較弱:PPS 信號為無屏蔽的單線脈沖信號,在車輛復雜的電磁環境中容易受到干擾。當多條 PPS 線同時布置在車內時,可能難以區分干擾脈沖和有效同步脈沖,導致信號準確性下降。
GPRMC 報文的傳輸限制:GPRMC 通過 RS232 串口傳輸同步報文,RS232 為 1 對 1 的全雙工通信形式,可通過主從方式實現有限的 1 對 N 數據傳輸。然而,若需支持十幾臺設備的同步傳輸,實際應用中可能面臨困難,需通過實驗驗證可行性。此外,線束的復雜性會對工程設計造成較大挑戰。導遠 INS570D 車載組合導航定位系統的 PPS+GPRMC 信息如下:

若將其接入 Mid-360,則參考:
Mid-360 時間同步說明

時鐘源失效的嚴重后果:當時鐘源丟失時,所有依賴同步的設備將失去統一基準,各設備時鐘將自主運行,失去全局協調。這種情況在對功能安全要求極高的自動駕駛系統中是不可接受的,需要設計冗余機制以確保在主時鐘故障時由備用時鐘迅速接替,維持全系統的正常運行。
2.3 PTP
PTP(Precision Time Protocol,IEEE 1588 V2)是基于以太網的高精度時鐘同步協議,是一種主從式的時間同步系統,能夠實現主節點(Master Node)和從節點(Slave Node)之間的亞微秒級時鐘同步,前提是所有節點之間都通過以太網互聯,交換機支持 PTP 協議,并且每個節點都支持 PTP 協議。
設備中運行 PTP 協議的網絡端口稱為 PTP 端口,PTP主端口用來發布時間,PTP從端口用來接收時間。同時定義了三種時鐘節點,邊界時鐘節點(BC,Boundary Clock)、普通時鐘節點(OC,Ordinary Clock)和透明時鐘節點(TC,Transparent clock)。
(1)邊界時鐘節點擁有多個PTP端口,其中一個用來同步上游設備時間,其余端口用來向下游設備發送時間。當邊界時鐘節點的上游時間同步設備是GNSS接收機時,此時的邊界時鐘節點就是一個主時鐘節點(最優時鐘)
(2)普通時鐘節點只有一個PTP端口,用來同步上游時鐘節點的時間。
(3)透明時鐘節點具有多個PTP端口,收到什么時間,轉發什么時間,不進行協議解析,內部不參與時間同步

PTP通過在主從設備之間交互同步報文,并記錄下報文發送時間,從而計算網絡傳輸延遲和主從設備間時鐘的偏差。PTP定義了四條同步報文:Sync、Follow_Up、Delay_Req、Delay_Resp,精確同步過程如下:

(1)PTP 主端口向從端口發送 Sync 報文,同步記錄下 Sync 發送的時間 t1。從端口收到 Sync 報文后,記錄下收到的時間 t2。
(2)緊接著主端口將 t1 時間放到 Follow_Up 報文發送給從端口,從端口收到此報文后就可以解析出 t1,并由此得到第一個方程式:t1 + T_delay(網絡延時)+ T_offset(時鐘偏差)= t2。
(3)從端口向主端口發送 Delay_Req 報文,同步記錄下 Delay_Req 發送的時間 t3。主端口收到報文后,記錄下收到的時間 t4。
(4)緊接著主端口將 t4 時間放到 Delay_Resp 報文發送給從端口,從端口收到此報文后就可以解析出 t4,并由此得到第二個方程式:t3 + T_delay(網絡延時)- T_offset(時鐘偏差)= t4。
這里假設網絡延遲是對稱的,即上下行的延遲相等。解方程組得:

2.4 全域架構時間同步方案
全域架構下,智駕域控制器因為直接連接GNSS接收機(或內置),而GNSS又是絕佳的時鐘源,因此智駕域控制器自然而然成為主時鐘節點,中央網關域控制器通過車載以太網主干網串聯起其它域控制器,自然而然成為邊界時鐘的最佳選擇,這樣在時鐘源丟失的時候,邊界時鐘節點同步主時鐘節點的系統時間,仍然可以保持整個全域架構內相對時間一致。
其它域內傳感器、執行器的時間同步需求,若沒有,此域控制器設計成普通時鐘節點即可。如有,可以設計成邊界時鐘,以保證無時鐘源時的相對時間統一。
基于以太網設備的時間同步方案已經完善,而對于非車載以太網設備但有非常強烈同步需求的相機,我們還得特殊處理一下。將相機設置為外觸發模式,通過主控給相機外觸發脈沖信號, 即 PPS。相機拍照時,曝光時刻也會產生脈沖信號發送給主控,主控記錄此時系統時間,并將時間戳數據放到相機的圖像數據里。

03
時間戳誤差
完成時鐘源的統一后,每個傳感器數據都有了全局一致的時間參考。但會面臨一個新問題,不同的傳感器采樣頻率不一樣,比如激光雷達(通常為 10Hz)和相機(通常為 30Hz)。導致在特定時間獲取同步數據可能會有延遲,在動態環境中可能造成較大的誤差。
如下圖所示,三個傳感器具有不同的采樣頻率。在 T1 時刻,傳感器2 有一個數據,此時,我們需要對應傳感器1 和 3的數據是多少,就會進行查找。查找的方式就是找對應的傳感器數據和傳感器2時間差最近的數據包。如果查找的數據包時間和 T1 時刻傳感器2 數據包的差距較大,在加上車身和障礙物都在移動,這樣誤差會比較大。為了緩解查找時間戳造成的誤差現象,主要采用的方式有硬件同步和軟件同步。

3.1 硬件同步
硬件同步是一種通過物理信號來確保不同傳感器數據采集時間一致性的方法。一種常見的硬件同步方法是使用 PPS 信號作為觸發器。PPS 信號是一個精確的時鐘信號,可以觸發傳感器在特定的時間點采集數據,以此來改變傳感器的數據采集頻率。GNSS系統除了可以作為統一的時鐘源外,還可以利用其 PPS 脈沖來觸發傳感器在特定的時間點采集數據,當使用 GNSS 的 PPS 脈沖時,傳感器給出的數據包中的時間戳即為對齊到絕對時間的上的全局時間戳(GPS時間戳)而非傳感器時間戳。由于 GNSS 的 PPS 的頻率通常只有 1Hz,所以通常需要一個設備把 PPS 信號轉發為任意頻率(分頻,1Hz -> 10Hz)、但是跟原始 PPS 信號同相位的方波,這樣就可以控制各傳感器的采集頻率了。
例如,激光雷達和相機可以配置為在 PPS 信號的上升沿采集數據,從而確保兩者的數據采集是同步的。具體來說,激光雷達可以利用其相位鎖定功能來實現與 PPS 信號的同步,如下圖所示。通過設置激光雷達的相位鎖定角度與相機視野的中心對齊,可以在激光雷達的激光束旋轉到相機視野中心線時觸發相機,實現兩者的同步采集。
當然,由于激光雷達是連續旋轉采集數據,而相機則是瞬間曝光,因此硬件同步只能近似實現。例如,激光雷達的幀率若是 10Hz,那么一幀點云中最早和最晚采集的點之間的時間差可能達到 100ms。相機由于曝光是瞬時的,其所有像素點的采集時刻是一致的。因此,對于相機視野中心的點云,采集時間與圖像采集時間一致,但對于視野邊緣的點云,存在一定的時間偏差,這個偏差可能在 5ms 到 20ms 之間。

3.2 軟件同步
軟件同步是一種在數據處理階段對傳感器數據進行時間校正的方法。當硬件同步無法實現或不足以滿足系統要求時,軟件同步提供了一種解決方案,利用已知的時間標簽和傳感器的運動信息來推算傳感器數據的準確時間點。
內插外推法是軟件同步中常用的一種算法。通過以下步驟實現同步:
時間差計算:首先,計算兩個傳感器數據幀之間的時間差。例如,如果有一個激光雷達(Lidar)數據幀和一個相機數據幀,它們的時間標簽可能不同,我們需要找出這兩個時間標簽之間的差異。
運動信息獲取:收集傳感器在兩個時間標簽期間的運動信息,這通常包括速度、加速度和旋轉等。
位置推算:利用傳感器的運動信息和時間差,通過物理模型或機器學習模型推算目標在兩個時間點之間的位置變化。
建立新幀:根據推算出的目標位置,創建一個新的數據幀,這個新幀代表了兩個原始數據幀之間的某個時間點的狀態。
3.2.3 其他方式
① ROS 中的 message_filters 包
ROS 提供了message_filters 包來進行時間軟同步,message_filters 類似一個消息緩存,分別訂閱不同傳感器的 Topic,當消息到達消息過濾器時,并不會立即輸出,而是在滿足一定條件下輸出,產生一個同步結果并給到回調函數,在回調函數里處理時間同步后的數據。
message_filters 只是輸出時間軸上相近的不同傳感器的數據,不能做到主動去同步!詳情參考 ROS時間同步----使用message_filters進行時間軟同步。
② 雙端隊列 std::deque
使用雙端隊列 std::deque 存儲不同傳感器的數據,根據不同傳感器數據的時間戳進行判斷,對滿足時間同步要求的數據進行處理。類似 message_filters 包,只是輸出時間軸上相近的不同傳感器的數據。
std::queue buf1;std::queue buf2;std::thread process;//typedef M 傳感器數據類型,比如sensor_msg::PointCloud2、sensor_msg::Image等等void callback1(M& msg){//數據入隊buf1.push(msg);//其他代碼...}void callback2(M& msg){//數據入隊buf2.push(msg);//其他代碼...}void process_comparation(){while(ros::ok()){M data1=buf1.front();M data2=buf2.front();if(data1.header.timestamp.toSec()>data2.header.timestamp.toSec()){buf2.pop();}elsebuf1.pop();//其他操作data1和data2的代碼}}int main(int argc,char** argv){//initialization}
來源:自動駕駛技術網
end

精品活動推薦
AutoSec中國行系列沙龍
專業社群
部分入群專家來自:
新勢力車企:
特斯拉、合眾新能源-哪吒、理想、極氪、小米、賓理汽車、極越、零跑汽車、阿維塔汽車、智己汽車、小鵬、嵐圖汽車、蔚來汽車、吉祥汽車、賽力斯......
外資傳統主流車企代表:
大眾中國、大眾酷翼、奧迪汽車、寶馬、福特、戴姆勒-奔馳、通用、保時捷、沃爾沃、現代汽車、日產汽車、捷豹路虎、斯堪尼亞......
內資傳統主流車企:
吉利汽車、上汽乘用車、長城汽車、上汽大眾、長安汽車、北京汽車、東風汽車、廣汽、比亞迪、一汽集團、一汽解放、東風商用、上汽商用......
全球領先一級供應商:
博世、大陸集團、聯合汽車電子、安波福、采埃孚、科世達、舍弗勒、霍尼韋爾、大疆、日立、哈曼、華為、百度、聯想、聯發科、普瑞均勝、德賽西威、蜂巢轉向、均聯智行、武漢光庭、星紀魅族、中車集團、贏徹科技、濰柴集團、地平線、紫光同芯、字節跳動、......
二級供應商(500+以上):
Upstream、ETAS、Synopsys、NXP、TUV、上海軟件中心、Deloitte、中科數測固源科技、奇安信、為辰信安、云馳未來、信大捷安、信長城、澤鹿安全、紐創信安、復旦微電子、天融信、奇虎360、中汽中心、中國汽研、上海汽檢、軟安科技、浙江大學......
人員占比

公司類型占比

更多文章
關于涉嫌仿冒AutoSec會議品牌的律師聲明
一文帶你了解智能汽車車載網絡通信安全架構
網絡安全:TARA方法、工具與案例
汽車數據安全合規重點分析
淺析汽車芯片信息安全之安全啟動
域集中式架構的汽車車載通信安全方案探究
系統安全架構之車輛網絡安全架構
車聯網中的隱私保護問題
智能網聯汽車網絡安全技術研究
AUTOSAR 信息安全框架和關鍵技術分析
AUTOSAR 信息安全機制有哪些?
信息安全的底層機制
汽車網絡安全
Autosar硬件安全模塊HSM的使用
首發!小米雷軍兩會上就汽車數據安全問題建言:關于構建完善汽車數據安全管理體系的建議