【Zeekr_Tech】TSN 介紹
前言
TSN 是時間敏感網路( Time-Sensitive Network )的英文縮寫,是 IEEE 802.1 TSN 工作組開發的一系列資料鏈路層協議規範的統稱,用於指導和開發低延遲、低抖動,並具有傳輸時間確定性的乙太網區域網,是傳統乙太網在汽車等特定應用環境下的增強功能實現。
TSN 的發展史
早期的乙太網採用的交換機主要使用半雙工模式,傳輸頻寬為100M,傳輸延時為 5ms,單根線路的最大長度為 100m。緊接著,在千兆乙太網和全雙工傳輸技術的快速發展中,區域網中基本普及了千兆交換機,預設情況下所有埠處於一個廣播域,所有資料包的交換透過硬體的MAC 地址表進行查詢轉發。
隨著乙太網交換技術的成熟並先都會網路等更大範圍的應用擴充,1980 年 2 月,IEEE 802 委員會成立,任務是制定區域網和都會網路的通訊標準,IEEE 802.1 工作組則主要制定基於乙太網的協議標準。
1991,針對大量交換機的部署產生了冗餘鏈路等的一系列問題,IEEE 802.1 工作組釋出了 802.1D STP 生成樹協議,並於 1998 年釋出了第二 部 RSTP 快速生成樹協議,基本解決了各廠商裝置在組網時容易產生環路等問題。 隨著 802.1D 的制定,大規模使用者組網條件已經成熟,1999 年,IEEE 802.1 釋出 802.1Q VLAN 協議作為 802.1D 的後續補充,能夠將大規模的使用者小區和城市區域使用虛擬網路標識的進行區分,解決了電信使用者組網和都會網路接入的 IP 限制問題。
進入 21 世紀以後,隨著乙太網的普及,基於乙太網的多媒體應用需 求與日俱增,於是 2006 年 IEEE 成立了 AVB 工作組,制定了一系列新的802.1 技術標準,對現有乙太網進行功能擴充,包括頻寬保持、限制延時和精確時鐘同步,提供了高質量、低延時、時間同步的音影片區域網解決方案。
隨著工業 4.0 概念的提出和車聯網時代的到來,工業和汽車對實時乙太網技術的需求迅速增長,在 2012 年, AVB 工作組更名為 TSN 工作組,在繼承AVB 已有的技術基礎上,進一步針對實時通訊的應用場景, 制定並提出了更多可行的技術標準,籍此在未來的工業和汽車等領域繼續引領乙太網技術的發展。
TSN 系列規範
TSN 系列規範包含了非常多的技術標準,一部分來源於以往音影片、通訊等領域的應用,一部分來源於晶片等技術廠商在技術實現上的探索。
圖 1 TSN 協議系列規範
當前已經發布的 TSN 系列規範大致分為四個部分:時間同步、排程延時、可靠性、資源管理。
時間同步
時間同步的協議規範主要是 802.1AS/802.1AS-Rev,基於資料鏈路層進行以交換機為關鍵節點的時鐘同步機制的實現,主要來自於IEEE1588 時間同步協議的簡化版本,更適用於車載網路中實時性精度要求較高的通訊傳輸場景。
目前主流的應用為 2011 版本,主要是基於單域或多域的時鐘同步機制的實現,初步滿足了基於乙太網作為骨幹網的電子電器架構的設計需求。
圖 2 802.1AS 多域分佈
最新發布的為 2020 版本,增加了時鐘冗餘和時鐘傳輸路徑冗餘的實現,對滿足車輛功能安全的需求提供了統一的解決方案。
排程延時
圖 3 802.1AS 時鐘實時冗餘
802.1Qbv 是在交換機多個輸出佇列的嚴格優先順序(報文中的優先順序 通常來自於 VLAN 或者 IP) 模式下,利用門迴圈列表 GCL(Gate Control List) 來控制每個佇列的開關時間視窗,來實現時間感知整形器TAS(Time-aware Shaper) 的功能;GCL 通常有 8~16 組,可透過靈活配置來實現不同延時需求的排程規則集合,進而對應不同優先順序幀的最大傳輸延時保證來實現傳輸延時確定性和頻寬的穩定性。
圖 4 802.1Qbv GCL 排程
同時, 802.1Qbv 為了確保每個時間片的報文都能傳輸完成,預留了一 個Gur ad Ban d ,長度最大可配置為一個標準乙太網幀的 MTU 大小約1 500 位元組,會增加約 12.5us 的延時損耗。為了不浪費這個頻寬的等待時間,於是設計並引入了 802.1Qbu 規範。
802.1Qbu 將資料幀分為可被搶佔幀(Preemptable Frame)和快速幀(E xp r e ss Fr a m e ) ,通常在每個交換機埠以優先順序來對幀進行以上分類,即高優先順序的幀可以對低優先順序未傳輸完成的幀進行搶佔傳送,以減少傳輸延遲。搶佔的規則一般透過設定最小可被搶佔幀長度,例如若設定 為 128 位元組,則必須等待可被搶佔幀傳輸完 128 位元組才能對快速幀進行搶佔傳送,等快速幀傳送完成後,再對被搶佔幀未傳送完成的部分進行傳送。
802.1Qbu 和 802.1Qbv 的同時使用,可以在保證鏈路延時和頻寬相對確定的情況下,對高實時報文進一步降低傳輸延時。
可靠性
802.1CB 主要是透過交換機硬體的報文複製功能實現傳送端資料幀的 在交換機指定轉發埠處的複製,並透過不同的交換機傳輸路徑傳送至最終目的節點所在的交換機連線埠,然後在該交換機埠利用交換機硬體的對特定協議複製幀的重複消除,進而利用網路拓撲中的冗餘路徑實現在傳輸鏈路中實時的可靠性資料備份,並且不增加軟體收發資料產生的額外負載;相比傳統的通訊錯誤恢復機制,能夠在正常通訊鏈路發生錯誤時, 利用在冗餘路徑中的實時資料保證通訊不間斷,且延時僅是冗餘路徑中多餘交換機節點的轉發延時,一般在 10us 左右,可以非常好的滿足高實時高可靠性的應用場景。
資源管理
圖 5 802.1CB 冗餘策略
資源管理的系列規範類似於網路管理之類的協議和配置格式的一些規定,適合於靈活組網、易於維護的一些應用環境,並不適用於汽車上穩定性要求高、固定資源分配的策略,所以這裡就暫不詳細介紹了。
TSN 在汽車上的應用
TSN 在汽車上的應用主要使用了基於 802.1AS-Rev 的時鐘同步協議,以及隨後推出的 802.1Qbv、802.1CB、802.1Qbu 等一系列滿足車載網路流量排程需求的協議規範。
車載網路
未來的車載網路將以中央計算大腦為車輛中心,以區控制器為區域性中心,基於乙太網作為骨幹網的環狀拓撲進行部署,為全車的智慧化提供超大的頻寬和連通性。
圖 6 ZEEKR EE 3.0 架構
隨著網路拓撲的巨大變更,未來的車型將能夠把整車線束總長度從3.5km 以上降低至 1.5km 左右,減重100~200kg,實現電動汽車 10% 以上的續航提升,在降低硬體損耗的同時,帶來非常可觀的綜合經濟效益,對實現碳中和的國家戰略提供強有力的支撐。
時鐘同步
在極氪具有輔助駕駛和自動駕駛的功能的車型中,時鐘同步精度是各個感測器實現高精度響應和定位外部環境的基礎,包括 1~9 個鐳射雷達,1~6 個毫米波雷達,12 個超聲波雷達,4~8 個環視攝像頭 (魚眼和側視 ) ,1 個前視高畫質識別攝像頭,1 個前視 DVR 攝像頭,1 個後視倒車攝像頭,1 個DMS 攝像頭,透過車內網路節點具備的硬體支援的802.1AS gPTP 時鐘同步功能,可以將各個感測器的時鐘同步誤差壓縮到100ns~1us 以內,基本上滿足了車輛在高速和低速執行中各個場景的駕駛控制需求。
延時確定
圖 7 車輛自動駕駛感測器分佈
對於新一代車型的車輛控制,透過區控制器的交換機功能進行大量實時性週期資料傳輸,依賴最佳化驗證後的 Qbv 和Qbu 配置,10ms、 20ms、50ms、100ms 等傳統車輛執行中的 CAN 控制資料,均可以按照抖動性要求的誤差等級,實現分批分時的確定頻寬和確定延時的資料傳 輸,基本能夠滿足 100us~1ms 的延時區間,實現與傳統 CAN 網路資料轉發效能要求的完全相容。
同時,透過區控制器進行毫米波雷達的資料傳輸能夠保留足夠的實時頻寬,車聯網的地圖等應用也能夠保證及時響應,線上音影片應用也能夠流暢播放,進而實現了多域融合在乙太網作為骨幹網的網路環境下的良好示範效應。
實時冗餘
功能安全在應用汽車乙太網作為骨幹網的拓撲中主要關注的是通訊安全。傳統的CAN 網路通訊具有天然的組播通訊方式,某一個節點的故障不會中斷其他節點間的通訊。
汽車乙太網使用以交換機為中心轉發節點的網路拓撲,使用的是集中式的點對點通訊,需要使用佇列來快取報文和控制通訊策略;如果傳輸路徑中的轉發節點出現故障,則可能會立刻中斷整車各個區控制器之間的大量通訊,會造成車輛控制中不可預知的風險。
802.1CB 針對汽車乙太網的先天性缺陷給出了一個利用硬體冗餘通道來保持實時資料備份的方式,可以將需要備份的資料實時保留在通訊線路中,提供硬體線路和軟體流量的雙重備份,能夠有效的提升通訊的功能安全等級。
圖 8 802.1CB 幀複製傳輸
總結
汽車功能的智慧化、網聯化、多媒體化催生了新時代車載電子電氣架構的升級和變革,湧現出了大量具有創造力的技術理念和個性化的應用場景,已經遠遠超出了物聯網、車聯網等新時代概念的範疇。
為了迎接這些挑戰,極氪軟體及電子中心將大膽探索,基於 TSN 的 電子電氣架構進行下一代智慧車型的研發,並打造搭載ZEEKR OS 的中央 計算超級算力平臺,在新的市場需求下不斷突破創新,為汽車產業的技術創新奉獻自己的青春和激情。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015448/viewspace-2896997/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Zeekr_Tech】ROS/ROS 2介紹ROS
- 【Zeekr_Tech】汽車軟體RTOS-之AUTOSAR OS多核控制簡介
- TSN時間敏感網路技術入門級解決方案TSN BasicSolution
- 介紹
- PostSync介紹
- FontFamily介紹
- Dubbo介紹
- Yocto 介紹
- 自我介紹
- git介紹Git
- Ninja介紹
- Duktape 介紹
- 公文介紹
- jsoncpp 介紹JSON
- Ceph介紹
- MySql介紹MySql
- GraphRAG介紹
- ServletContext介紹ServletContext
- RPC介紹RPC
- JCache 介紹
- StarRocks 介紹
- maven介紹Maven
- zigbee 介紹
- Appimage介紹APP
- github介紹Github
- GO 介紹Go
- Docker介紹Docker
- Operator介紹
- shell介紹
- RabbitMQ 介紹MQ
- gRPC介紹RPC
- springcloud介紹SpringGCCloud
- CSRedisCore 介紹Redis
- AJAX 介紹
- php介紹PHP
- Pyzmq介紹MQ
- Java介紹Java
- linq介紹