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