【導讀】隨著帶寬需求的日益增加,車內已經引入了多種新的網絡標準和拓撲架構。這導致多種技術和標準用于ECU之間的通信,包括CAN、CAN-FD、FlexRay、LIN、以及MOST,甚至還包括USB和LVDS等其他技術和標準。
作者:Marvell公司汽車應用和架構部高級總監Christopher Mash
留意一下當今的任何一臺汽車的內部,您會看到越來越多的網絡設備。當然,在車內使用網絡功能的許多關鍵應用并不那么容易被看到,但這并不會降低它們的重要性。在過去十年中,網絡協議的應用大大增加,部分原因在于電子控制單元(ECU)的數量也在增長,這些ECU負責處理許多特定的功能,例如自適應巡航控制、防抱死制動系統和中控鎖功能等等。
隨著帶寬需求的日益增加,車內已經引入了多種新的網絡標準和拓撲架構。這導致多種技術和標準用于ECU之間的通信,包括CAN、CAN-FD、FlexRay、LIN、以及MOST,甚至還包括USB和LVDS等其他技術和標準。傳感器數據共享能夠根據不同的總線聯網方法以特定的方式實現,例如CAN和LIN等是用共享總線的方式來傳輸,不存在任何設備級別的數據交換(或轉發)。在過去的五年中,受高級駕駛輔助系統(ADAS)驅動,汽車內部更復雜的功能已經在要求更高級別的連接性。數據傳輸的吞吐量顯著提高,同時還要求更低的網絡延遲,這促使人們考慮應采用哪種網絡技術。這種趨勢與車載信息娛樂系統的增長、Wi-Fi網絡功能的提升以及對車物通信(V2X)系統未來易用性的支持非常一致。以太網已經成為新型汽車事實上的車聯網協議標準,這也許并不奇怪。傳統網絡協議仍然還會繼續使用一段時間,因此在以太網生態系統中增加對這些傳統網絡協議的支持非常重要。IEEE 1722已經定義了一種將傳統通信(如CAN和LIN)封裝在以太網數據包中的方法,目的是使以太網成為首要的汽車聯網技術。憑借在汽車之外領域的長久驗證,以太網擁有令人印象深刻的能力,將幫助簡化汽車網絡的復雜性。
線束是汽車內成本最高和重量最重的五大元件之一,所以使用單一經過驗證的網絡將有助于降低成本和重量。100Mbps和1Gbps汽車以太網標準都已經要求采用一對非屏蔽銅纜來實現傳輸。
汽車中互聯網連接的增加也帶來了潛在的網絡攻擊面和入侵點,因而對于安全性的關注更加重要,但這也為通過分析數據流讓以太網交換機提供更多網絡功能提供了可能。對于嵌入式開發人員來說,憑借有限的計算資源,在不引入任何延遲的情況下,對所有傳入數據進行實時線速分析極具挑戰。為了實現必要的保護或其它功能需要使用一組預先確定的規則來檢測數據包,這可以根據指定的數據值或條件來具體執行,例如新的音頻/視頻應用以及對時間關鍵或敏感的網絡需求場景。
在傳統的以太網交換機中,有關數據包應轉發到哪個端口的決定取決于OSI網絡模型的第2層(L2),參見圖1。
圖1:OSI模型和數據包轉發。
在圖1中,如果傳入幀的源地址(SA)以前沒有記錄,則將其與幀的傳入端口號一起添加到地址數據庫中。如果目標地址(DA)已經存在于網橋的查找表中,則數據包會相應地轉發,否則幀將被泛洪處理。多年來,管理L2所用協議的IEEE標準(如802.1 MAC橋、VLAN和基于端口的網絡訪問控制標準)都集中在以太網幀的前16個字節。這些標準也在不斷發展,最近增加的包括以太網音視頻橋接技術(AVB)和時間敏感網絡標準(如802.1AS)。特別是,在汽車環境中對確定性網絡的需求正變得越來越急迫,以確保網絡中及時和可靠的數據傳輸。將所有ECU鎖定在單個主時鐘源并保持AV內容質量只是其中兩個例子,更多增強的功能還在引入以便于檢查OSI 3層信息,例如IPv4 / IPv6數據包優先級和IPv4 / IPv6偵聽。
雖然上述技術已經基本上足夠用于汽車以太網應用,但卻需要更高的靈活性并以實時“線速”方式檢測數據包,以便實現高級數據包分類、調試/診斷和安全功能。然而,是否實現深度包檢測(DPI)需要權衡汽車應用的有限空間和敏感預算。過去不可能實現這種線速數據包分類,主要是由于需要使用大量計算密集型設備,而這些則需要占用更多電路板空間并增加物料清單(BoM)。然而,Marvell業界領先的安全千兆以太網交換機能夠以緊湊裝置的形式,采用源自于企業網的DPI引擎即可提供這種功能。
DPI引擎使用了一種名為三態內容尋址存儲器(TCAM)的技術。 TCAM接收數據包數據并使其內容與預定義的過濾器進行比較以找到匹配的事件,基于匹配或不匹配的結果,DPI引擎可以確定后續的處理。這種方法提供了三種用于匹配二進制數據的可能性(因此稱為三態), 每個數據位可以被設置為0,1或“X”不關心。 “不關心”規則對設置掩碼非常有用,可以輕松檢查多個數據段。 通過在橋接流水線內放入大量的平行陣列,TCAM支持在多個端口上同時對數據線速的分類和修改。根據具體的配置,TCAM的處理能夠延伸到數據包報頭甚至有效載荷區域內的一些字節 。 DPI可以執行下述操作,例如更改數據包的目標端口,丟棄幀,將幀鏡像到另一個端口,更改幀或隊列優先級等。
我們來看看DPI在汽車中的三個應用案例。第一個用于調試/診斷。以太網車載診斷(OBD)接口被設計為速度為100Mbps的100BASE-TX端口,雖然這似乎適用于大多數應用,但實際情況卻是,被完全使用的交換機中的爭用率會產生超過100Mbps的速率傳輸數據,因此無法在不影響實際數據流性能的情況下鏡像交換機中的所有幀。這導致數據包丟失,因而不是所有的包都能夠鏡像。另一種方法是使用DPI來識別和分類僅感興趣的幀,請參見圖2。在此示例中,精確時間協議(PTP)幀的出現了問題,可以將DPI規則設置為將所有端口上的PTP消息鏡像到OBD端口,例如可以通過配置EtherType(0x88F7)或MSG ID來達到目的。即使交換機工作在最大負載下,所有PTP相關的幀都會被鏡像到OBD端口。
圖2:使用TCAM進行調試/診斷應用。
DPI的另一個應用是安全性。 識別合法的以太網數據包可能會耗費掉位于數據路徑中CPU的大量計算資源。這意味著為了實現實時、低延遲的分類,對處理能力的要求將超出大多數汽車環境所能夠提供的空間、BOM和處理能力。 但是,TCAM提供了一種方法來檢查每個進入以太網交換機數據包的網絡格式是否正確。
圖3: TCAM丟包超出可接受范圍的Wireshark截圖。
在圖3所示的例子中,TCAM掩碼被設置為僅允許在一系列MAC DA,SA和VLAN ID內的輸入數據包,這些是目標地址為00:01:02:XX:XX:XX(匹配所有MAC DA地址范圍為00:01:02:00:00:00至00:01:02:FF:FF:FF),源地址為00:11:22:XX:XX:XX(匹配所有MAC SA地址范圍為00:11:22:00:00:00至00:11:22:FF:FF:FF)和VLAN ID:0x0XX(匹配從0x000至0x0FF的所有VLAN ID)。
本例僅使用來自數據包的L2信息,然而,TCAM通過適當的配置,也可以把L3,L4或更高層面的信息來作為TCAM匹配的一部分。
TCAM提供了唯一一種經濟有效、低延遲和占用少量資源的方法來檢查每個進入交換機數據包的,未通過上述檢查的數據包可以被丟棄或被其它方式處理 。
在最后一個應用案例中,DPI用于執行以太網數據包封包的路由決策。如前所述,此舉是為了將許多不同的傳統汽車網絡協議(如LIN和CAN)整合到以太網,而長期目標則是降低汽車網絡的復雜度和成本。雖然有網關來實現這類的封包,但是一旦它們完成封包,就必須做出轉發決定。而使用DPI則提供了一種根據封包內的數據來做轉發決策的方法。數據封包的格式已經根據IEEE1722-2016進行了定義,因此TCAM可用于對數據封包(例如CAN)進行分類,并使用CAN_BUS_ID和CAN_IDENTIFIER來相應地創建路由操作。
在汽車網絡環境中使用基于TCAM的DPI技術能夠開啟許多先前不具備商業可行性的新應用、標準和功能。隨著聯網汽車成為現實,如何在安全方面融入更多功能,同時又要降低網絡環境的復雜度,制造商們在這些領域正面臨著巨大挑戰。DPI為實現這兩個目標提供了可能。
推薦閱讀:
解析多路選擇器的工作原理及電路實現