【導讀】隨著(zhù)帶寬需求的日益增加,車(chē)內已經(jīng)引入了多種新的網(wǎng)絡(luò )標準和拓撲架構。這導致多種技術(shù)和標準用于ECU之間的通信,包括CAN、CAN-FD、FlexRay、LIN、以及MOST,甚至還包括USB和LVDS等其他技術(shù)和標準。

作者:Marvell公司汽車(chē)應用和架構部高級總監Christopher Mash
留意一下當今的任何一臺汽車(chē)的內部,您會(huì )看到越來(lái)越多的網(wǎng)絡(luò )設備。當然,在車(chē)內使用網(wǎng)絡(luò )功能的許多關(guān)鍵應用并不那么容易被看到,但這并不會(huì )降低它們的重要性。在過(guò)去十年中,網(wǎng)絡(luò )協(xié)議的應用大大增加,部分原因在于電子控制單元(ECU)的數量也在增長(cháng),這些ECU負責處理許多特定的功能,例如自適應巡航控制、防抱死制動(dòng)系統和中控鎖功能等等。
隨著(zhù)帶寬需求的日益增加,車(chē)內已經(jīng)引入了多種新的網(wǎng)絡(luò )標準和拓撲架構。這導致多種技術(shù)和標準用于ECU之間的通信,包括CAN、CAN-FD、FlexRay、LIN、以及MOST,甚至還包括USB和LVDS等其他技術(shù)和標準。傳感器數據共享能夠根據不同的總線(xiàn)聯(lián)網(wǎng)方法以特定的方式實(shí)現,例如CAN和LIN等是用共享總線(xiàn)的方式來(lái)傳輸,不存在任何設備級別的數據交換(或轉發(fā))。在過(guò)去的五年中,受高級駕駛輔助系統(ADAS)驅動(dòng),汽車(chē)內部更復雜的功能已經(jīng)在要求更高級別的連接性。數據傳輸的吞吐量顯著(zhù)提高,同時(shí)還要求更低的網(wǎng)絡(luò )延遲,這促使人們考慮應采用哪種網(wǎng)絡(luò )技術(shù)。這種趨勢與車(chē)載信息娛樂(lè )系統的增長(cháng)、Wi-Fi網(wǎng)絡(luò )功能的提升以及對車(chē)物通信(V2X)系統未來(lái)易用性的支持非常一致。以太網(wǎng)已經(jīng)成為新型汽車(chē)事實(shí)上的車(chē)聯(lián)網(wǎng)協(xié)議標準,這也許并不奇怪。傳統網(wǎng)絡(luò )協(xié)議仍然還會(huì )繼續使用一段時(shí)間,因此在以太網(wǎng)生態(tài)系統中增加對這些傳統網(wǎng)絡(luò )協(xié)議的支持非常重要。IEEE 1722已經(jīng)定義了一種將傳統通信(如CAN和LIN)封裝在以太網(wǎng)數據包中的方法,目的是使以太網(wǎng)成為首要的汽車(chē)聯(lián)網(wǎng)技術(shù)。憑借在汽車(chē)之外領(lǐng)域的長(cháng)久驗證,以太網(wǎng)擁有令人印象深刻的能力,將幫助簡(jiǎn)化汽車(chē)網(wǎng)絡(luò )的復雜性。
線(xiàn)束是汽車(chē)內成本最高和重量最重的五大元件之一,所以使用單一經(jīng)過(guò)驗證的網(wǎng)絡(luò )將有助于降低成本和重量。100Mbps和1Gbps汽車(chē)以太網(wǎng)標準都已經(jīng)要求采用一對非屏蔽銅纜來(lái)實(shí)現傳輸。
汽車(chē)中互聯(lián)網(wǎng)連接的增加也帶來(lái)了潛在的網(wǎng)絡(luò )攻擊面和入侵點(diǎn),因而對于安全性的關(guān)注更加重要,但這也為通過(guò)分析數據流讓以太網(wǎng)交換機提供更多網(wǎng)絡(luò )功能提供了可能。對于嵌入式開(kāi)發(fā)人員來(lái)說(shuō),憑借有限的計算資源,在不引入任何延遲的情況下,對所有傳入數據進(jìn)行實(shí)時(shí)線(xiàn)速分析極具挑戰。為了實(shí)現必要的保護或其它功能需要使用一組預先確定的規則來(lái)檢測數據包,這可以根據指定的數據值或條件來(lái)具體執行,例如新的音頻/視頻應用以及對時(shí)間關(guān)鍵或敏感的網(wǎng)絡(luò )需求場(chǎng)景。
在傳統的以太網(wǎng)交換機中,有關(guān)數據包應轉發(fā)到哪個(gè)端口的決定取決于OSI網(wǎng)絡(luò )模型的第2層(L2),參見(jiàn)圖1。

圖1:OSI模型和數據包轉發(fā)。
在圖1中,如果傳入幀的源地址(SA)以前沒(méi)有記錄,則將其與幀的傳入端口號一起添加到地址數據庫中。如果目標地址(DA)已經(jīng)存在于網(wǎng)橋的查找表中,則數據包會(huì )相應地轉發(fā),否則幀將被泛洪處理。多年來(lái),管理L2所用協(xié)議的IEEE標準(如802.1 MAC橋、VLAN和基于端口的網(wǎng)絡(luò )訪(fǎng)問(wèn)控制標準)都集中在以太網(wǎng)幀的前16個(gè)字節。這些標準也在不斷發(fā)展,最近增加的包括以太網(wǎng)音視頻橋接技術(shù)(AVB)和時(shí)間敏感網(wǎng)絡(luò )標準(如802.1AS)。特別是,在汽車(chē)環(huán)境中對確定性網(wǎng)絡(luò )的需求正變得越來(lái)越急迫,以確保網(wǎng)絡(luò )中及時(shí)和可靠的數據傳輸。將所有ECU鎖定在單個(gè)主時(shí)鐘源并保持AV內容質(zhì)量只是其中兩個(gè)例子,更多增強的功能還在引入以便于檢查OSI 3層信息,例如IPv4 / IPv6數據包優(yōu)先級和IPv4 / IPv6偵聽(tīng)。
雖然上述技術(shù)已經(jīng)基本上足夠用于汽車(chē)以太網(wǎng)應用,但卻需要更高的靈活性并以實(shí)時(shí)“線(xiàn)速”方式檢測數據包,以便實(shí)現高級數據包分類(lèi)、調試/診斷和安全功能。然而,是否實(shí)現深度包檢測(DPI)需要權衡汽車(chē)應用的有限空間和敏感預算。過(guò)去不可能實(shí)現這種線(xiàn)速數據包分類(lèi),主要是由于需要使用大量計算密集型設備,而這些則需要占用更多電路板空間并增加物料清單(BoM)。然而,Marvell業(yè)界領(lǐng)先的安全千兆以太網(wǎng)交換機能夠以緊湊裝置的形式,采用源自于企業(yè)網(wǎng)的DPI引擎即可提供這種功能。
DPI引擎使用了一種名為三態(tài)內容尋址存儲器(TCAM)的技術(shù)。 TCAM接收數據包數據并使其內容與預定義的過(guò)濾器進(jìn)行比較以找到匹配的事件,基于匹配或不匹配的結果,DPI引擎可以確定后續的處理。這種方法提供了三種用于匹配二進(jìn)制數據的可能性(因此稱(chēng)為三態(tài)), 每個(gè)數據位可以被設置為0,1或“X”不關(guān)心。 “不關(guān)心”規則對設置掩碼非常有用,可以輕松檢查多個(gè)數據段。 通過(guò)在橋接流水線(xiàn)內放入大量的平行陣列,TCAM支持在多個(gè)端口上同時(shí)對數據線(xiàn)速的分類(lèi)和修改。根據具體的配置,TCAM的處理能夠延伸到數據包報頭甚至有效載荷區域內的一些字節 。 DPI可以執行下述操作,例如更改數據包的目標端口,丟棄幀,將幀鏡像到另一個(gè)端口,更改幀或隊列優(yōu)先級等。
我們來(lái)看看DPI在汽車(chē)中的三個(gè)應用案例。第一個(gè)用于調試/診斷。以太網(wǎng)車(chē)載診斷(OBD)接口被設計為速度為100Mbps的100BASE-TX端口,雖然這似乎適用于大多數應用,但實(shí)際情況卻是,被完全使用的交換機中的爭用率會(huì )產(chǎn)生超過(guò)100Mbps的速率傳輸數據,因此無(wú)法在不影響實(shí)際數據流性能的情況下鏡像交換機中的所有幀。這導致數據包丟失,因而不是所有的包都能夠鏡像。另一種方法是使用DPI來(lái)識別和分類(lèi)僅感興趣的幀,請參見(jiàn)圖2。在此示例中,精確時(shí)間協(xié)議(PTP)幀的出現了問(wèn)題,可以將DPI規則設置為將所有端口上的PTP消息鏡像到OBD端口,例如可以通過(guò)配置EtherType(0x88F7)或MSG ID來(lái)達到目的。即使交換機工作在最大負載下,所有PTP相關(guān)的幀都會(huì )被鏡像到OBD端口。

圖2:使用TCAM進(jìn)行調試/診斷應用。
DPI的另一個(gè)應用是安全性。 識別合法的以太網(wǎng)數據包可能會(huì )耗費掉位于數據路徑中CPU的大量計算資源。這意味著(zhù)為了實(shí)現實(shí)時(shí)、低延遲的分類(lèi),對處理能力的要求將超出大多數汽車(chē)環(huán)境所能夠提供的空間、BOM和處理能力。 但是,TCAM提供了一種方法來(lái)檢查每個(gè)進(jìn)入以太網(wǎng)交換機數據包的網(wǎng)絡(luò )格式是否正確。

圖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)。
本例僅使用來(lái)自數據包的L2信息,然而,TCAM通過(guò)適當的配置,也可以把L3,L4或更高層面的信息來(lái)作為T(mén)CAM匹配的一部分。
TCAM提供了唯一一種經(jīng)濟有效、低延遲和占用少量資源的方法來(lái)檢查每個(gè)進(jìn)入交換機數據包的,未通過(guò)上述檢查的數據包可以被丟棄或被其它方式處理 。
在最后一個(gè)應用案例中,DPI用于執行以太網(wǎng)數據包封包的路由決策。如前所述,此舉是為了將許多不同的傳統汽車(chē)網(wǎng)絡(luò )協(xié)議(如LIN和CAN)整合到以太網(wǎng),而長(cháng)期目標則是降低汽車(chē)網(wǎng)絡(luò )的復雜度和成本。雖然有網(wǎng)關(guān)來(lái)實(shí)現這類(lèi)的封包,但是一旦它們完成封包,就必須做出轉發(fā)決定。而使用DPI則提供了一種根據封包內的數據來(lái)做轉發(fā)決策的方法。數據封包的格式已經(jīng)根據IEEE1722-2016進(jìn)行了定義,因此TCAM可用于對數據封包(例如CAN)進(jìn)行分類(lèi),并使用CAN_BUS_ID和CAN_IDENTIFIER來(lái)相應地創(chuàng )建路由操作。
在汽車(chē)網(wǎng)絡(luò )環(huán)境中使用基于TCAM的DPI技術(shù)能夠開(kāi)啟許多先前不具備商業(yè)可行性的新應用、標準和功能。隨著(zhù)聯(lián)網(wǎng)汽車(chē)成為現實(shí),如何在安全方面融入更多功能,同時(shí)又要降低網(wǎng)絡(luò )環(huán)境的復雜度,制造商們在這些領(lǐng)域正面臨著(zhù)巨大挑戰。DPI為實(shí)現這兩個(gè)目標提供了可能。
推薦閱讀:
解析多路選擇器的工作原理及電路實(shí)現