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