甄海川 牛玉嬌 路哲 李立華
(吉利汽車研究院(寧波)有限公司,寧波315000)
主題詞:以太網(wǎng) Switch VLAN TCP/IP
VLAN Virtual Local Area Network
MAC Media Access Control Address
AVB Audio Video Bridging
TSN Time-Sensitive Networking
HTTP Hyper Text Transfer Protocol
OAM Operations,Administration,Maintenance
RS-FEC Reed-Solomon Forward Error Correction
OSI Open System Interconnect Reference Model
PHY Physical layer
UDP User Datagram Protocol
DA Destination Address
SA Source Address
FCS Frame Check Sequence
VLAN Virtual Local Area Network
DVR Digital Video Recorder
隨著汽車功能的不斷增加,尤其是音視頻流、OTA、大數(shù)據(jù)收集功能,對車載通信技術(shù)的高帶寬和實時性要求越來越高,因而以太網(wǎng)技術(shù)引入汽車領(lǐng)域,對于汽車網(wǎng)聯(lián)化、智能化、電動化和共享化發(fā)展提供堅實的技術(shù)支撐。以太網(wǎng)的高帶寬可以滿足較大數(shù)據(jù)的快速傳輸,而對實時性要求較高的音視頻流傳輸,可以使用AVB/TSN解決。
本文討論車載以太網(wǎng)技術(shù)特點,以太網(wǎng)的分層模型及各層的協(xié)議內(nèi)容,為車載以太網(wǎng)通信技術(shù)的開發(fā)和應(yīng)用提供了參考依據(jù)。
當(dāng)前越來越多車廠開始應(yīng)用車載以太網(wǎng)技術(shù),使用單對非屏蔽雙絞線以太網(wǎng)連接車內(nèi)部分電子控制單元組成局域網(wǎng),以太網(wǎng)技術(shù)提高了數(shù)據(jù)傳輸帶寬,同時滿足了汽車中對高可靠性,低功耗,低成本,低延遲及實時性的要求,主要特點如下:
(1)高帶寬,達(dá)100 Mbit/s、1 Gbit/s;
(2)點對點連接,全雙工通信;
(3)成本相對較低,100 base-T1、1000 base-T1;
(4)軟硬件技術(shù)相對已成熟,協(xié)議開放。
車載以太網(wǎng)協(xié)議參考OSI模型進(jìn)行分層,包括物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層協(xié)議,如圖1所示。
圖1 車載以太協(xié)議架構(gòu)模型
以太網(wǎng)的PHY負(fù)責(zé)電平信號與數(shù)字信號的轉(zhuǎn)換,實際在網(wǎng)線中傳輸?shù)碾娖剿俾剩⊿ymbol rate)與ECU內(nèi)部的以太網(wǎng)數(shù)據(jù)速率(Data rate)是不同的,以100 base-T1為例,依據(jù)IEEE 802.3bw中定義,數(shù)據(jù)速率100 Mbit/s,經(jīng)PHY進(jìn)行4B3B,3B2T的編碼后,傳輸?shù)骄€纜上的電平為-1 V、0 V、1 V,此時的Symbol rate和Data rate分別為66.67 Mbit/s和100 Mbit/s(圖2)。
圖2 100 base-T1以太網(wǎng)信號編碼
當(dāng)以太網(wǎng)激活后,由PHY負(fù)責(zé)建立鏈路連接,當(dāng)前大部分PHY支持UDP網(wǎng)絡(luò)管理,可以通過以太網(wǎng)進(jìn)行喚醒,如果PHY不支持UDP網(wǎng)絡(luò)喚醒,那需要考慮通過ECU的其它連接鏈路,如CAN、FlexRay進(jìn)行喚醒。
對于1000 base-T1,依據(jù)IEEE 802.3bp中定義,其使用的是80B/81B形式,其增加了9 bit的OAM和396 bit的RS-FEC奇偶校驗,然后經(jīng)擾碼,在通過3B/2T形式轉(zhuǎn)換為模擬電平發(fā)出,其在線上傳輸速率為750 Mbit/s,如圖3所示。
圖3 1000 base-T1以太網(wǎng)信號編碼[6]
以太網(wǎng)的MAC幀包含目的MAC地址、源MAC地址、幀類型、數(shù)據(jù)和FCS。而在802.1Q中增加了VLAN的信息引入,在幀類型前加入VLAN的標(biāo)識,帶VLAN的MAC幀格式如圖4。
圖4 帶VLAN的以太網(wǎng)幀格式[7]
虛擬局域網(wǎng)(VLAN)在MAC幀中使用0x8100代表使用VLAN,使用VLAN劃分局域網(wǎng),可以降低帶寬占用率,避免線路擁堵,可以通過IP地址進(jìn)行VLAN的劃分,同一個ECU可以關(guān)聯(lián)在多個VLAN中,此ECU需要對每個VLAN分配一個IP地址。
另外可以根據(jù)功能的重要程度進(jìn)行VLAN優(yōu)先級的定義,保證重要的功能優(yōu)先傳輸。VLAN優(yōu)先級長度3 bit,故有7個等級,優(yōu)先等級從0到7依次升高;
當(dāng)前大部分車載以太網(wǎng)ECU網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用點對點連接,通過Switch進(jìn)行信息交換,Switch會根據(jù)VLAN ID的定義,只把消息轉(zhuǎn)發(fā)到相同VLAN ID的通道,從而避免其它通道出現(xiàn)不相關(guān)報文。同時根據(jù)優(yōu)先級的定義,優(yōu)先轉(zhuǎn)發(fā)優(yōu)先級高的報文。
以E-Call和手機(jī)查看行車記錄儀DVR視頻功能為例,如E-Call需要多媒體及車聯(lián)網(wǎng)模塊支持,可以設(shè)為VLAN1,手機(jī)查看DVR視頻需要DVR和車聯(lián)網(wǎng)模塊支持,可以設(shè)置為VLAN2,E-Call的優(yōu)先級設(shè)置為高于查看視頻。多媒體、DVR和車聯(lián)網(wǎng)三者通過交換機(jī)Switch連接,此時車聯(lián)網(wǎng)模塊需要有2個IP地址分別給VLAN1和VLAN2,Switch根據(jù)VLAN1和VLAN2轉(zhuǎn)發(fā)對應(yīng)的報文,當(dāng)2者同時觸發(fā)時,由于ECall的優(yōu)先級高,Switch會優(yōu)先轉(zhuǎn)發(fā)其報文。
AutoSar模型中已有引入TCP/IP協(xié)議棧,位于Socket之下,數(shù)據(jù)鏈路層之上,為Socket提供網(wǎng)絡(luò)層的IP地址定義,傳輸層的port定義,用于找到對應(yīng)的APP。TCP/IP協(xié)議是由眾多協(xié)議組成的一個協(xié)議族,主要包含IPv4/v6、ARP、ICMP、TCP、UDP和DHCP,如圖5引用AUTOSAR軟件架構(gòu)模型。
圖5 TCP/IP協(xié)議棧架構(gòu)模型[9]
圖5中IPv4和IPv6之間是有一些區(qū)別的,主要點為:
(1)IPv4協(xié)議具有32位(4字節(jié))地址長度;IPv6協(xié)議具有128位(16字節(jié))地址長度。
(2)IPv4協(xié)議的地址可以通過手動或DHCP配置的,而IPv6協(xié)議需要使用Internet控制消息協(xié)議版本6(ICMPv6)或DHCPv6的無狀態(tài)地址自動配置。
(3)IPv4協(xié)議的數(shù)據(jù)包需要576個字節(jié),分片可選。IPv6協(xié)議的數(shù)據(jù)包需要1 280個字節(jié),不會分片。故IPv4協(xié)議的數(shù)據(jù)包分片會由轉(zhuǎn)發(fā)路由器和發(fā)送主機(jī)完成。IPv6協(xié)議的數(shù)據(jù)包分片僅由發(fā)送主機(jī)完成。
(4)地址解析協(xié)議(ARP)可用于將IPv4地址映射到MAC地址。而在IPv6協(xié)議中,地址解析協(xié)議(ARP)被鄰居發(fā)現(xiàn)協(xié)議(NDP)的功能所取代。
對于車載以太網(wǎng)網(wǎng)絡(luò),以太網(wǎng)ECU相對較少,一般IPv4的C類地址(256個主機(jī)數(shù))即夠使用。網(wǎng)絡(luò)拓?fù)涔潭ǎ蕴W(wǎng)節(jié)點的MAC地址和IP地址在研發(fā)設(shè)計階段即可定義好,故動態(tài)ARP及DHCP可以考慮不使用。此外,IP協(xié)議提供不可靠,無連接的數(shù)據(jù)報傳輸服務(wù),可靠性由上層協(xié)議保證,如TCP或者應(yīng)用層協(xié)議。
對于傳輸層的協(xié)議主要有TCP和UDP兩種傳輸協(xié)議,TCP為面向連接的可靠傳輸協(xié)議,通過3次握手建立連接,4次揮手終止連接,可靠性體現(xiàn)為可以對數(shù)據(jù)進(jìn)行接收確認(rèn)、流量控制、丟失重發(fā)、擁塞控制,且其可以傳輸比較大的數(shù)據(jù)流。
然而由于TCP在傳輸數(shù)據(jù)報前需要先建立連接,所以其需要花費更多的時間才能完成數(shù)據(jù)的傳輸,故不適用實時性要求高的數(shù)據(jù)報傳輸,此種情況下UDP更加適用,其無需每次通訊時花費時間建立連接,但UDP協(xié)議對傳輸?shù)臄?shù)據(jù)報不能提供可靠性保證。
根據(jù)TCP和UDP的優(yōu)缺點,在設(shè)計車載以太網(wǎng)網(wǎng)絡(luò)時,可以根據(jù)不同的應(yīng)用場景進(jìn)行使用,比如DoIP,對可靠性要求較高,刷寫時數(shù)據(jù)量較大,且可以接受在以太網(wǎng)激活后先建立連接的方式,使用TCP更有優(yōu)勢。而對于一些車輛控制功能的信息,如遠(yuǎn)程控制、信息顯示等實時性要求較高數(shù)據(jù),使用UDP更能保證實時性,但一般此種數(shù)據(jù)對可靠性也有一定要求,此時就需要讓應(yīng)用層來實現(xiàn)應(yīng)答、超時、重發(fā)等可靠性策略。
為了保證網(wǎng)絡(luò)通信的安全性,需要對網(wǎng)絡(luò)上傳遞的數(shù)據(jù)進(jìn)行加密,可以使用圖4中的傳輸層安全協(xié)議(Transport Layer Security,TLS)模塊,其為安全套接層(Secure Socket Layer,SSL)的升級版,主要實現(xiàn)加密,身份驗證和數(shù)據(jù)完整性。TLS握手過程如下:
(1)TCP連接建立后,客戶端發(fā)送一些協(xié)商信息,如TLS協(xié)議版本,加密壓縮算法,并生成一個隨機(jī)數(shù)(第一個隨機(jī)數(shù))一起傳送給服務(wù)端。
(2)當(dāng)服務(wù)端收到客戶端的請求后,會確定TLS加密的協(xié)議版本及算法,也會生成自己的一個隨機(jī)數(shù)(第二個隨機(jī)數(shù)),連同證書一起發(fā)送給客戶端。
(3)客戶端使用服務(wù)端提供的證書,及前兩個隨機(jī)數(shù)生成新的對稱密鑰,用服務(wù)端的公鑰進(jìn)行加密,并通知服務(wù)端切換到加密通信流程。
(4)服務(wù)端用自己的私鑰解密客戶端發(fā)過來的對稱密鑰,并通過驗證MAC檢查消息的完整性,并返回給客戶端一個加密的“Finished”的消息。
(5)客戶端采用對稱密鑰解密消息,并驗證MAC,如果一切OK,加密通信即建立完成。應(yīng)用數(shù)據(jù)就可以發(fā)送了
車載以太網(wǎng)應(yīng)用層協(xié)議有很多,本文主要以SomeIP(Scalable service-Oriented MiddlewarE over IP基于IP面向服務(wù)的中間件)為例,SomeIP主要用于應(yīng)用數(shù)據(jù)的傳輸,如控制信息、顯示信息及從傳統(tǒng)網(wǎng)絡(luò)(CAN或FlexRay)轉(zhuǎn)化到以太網(wǎng)的信息,將不同的功能數(shù)據(jù)定義成服務(wù),通過請求響應(yīng)、訂閱發(fā)布等形式進(jìn)行服務(wù)的交互,通過服務(wù)發(fā)現(xiàn)來找ECU所需服務(wù)及可提供服務(wù)。SomeIP報頭包含服務(wù)ID,Method ID,長度(指示從請求ID開始之后的數(shù)據(jù)長度,單位字節(jié)),請求ID(包含客戶端ID和會話ID),協(xié)議版本(固定0x01),接口版本(用于檢測服務(wù)的一致性),報文類型及返回碼(表1)。
表1 報文類型(Message Type)定義
假設(shè)有一個大數(shù)據(jù)上傳的服務(wù),其包含2個數(shù)據(jù):data1,data2,data1為UTF8類型的“車載ETH”信號,d
ata2為uint8的溫度信號,溫度值為20℃。
首先定義SomeIP報頭,可以定義為:
Service ID:0x000A;
Method ID:0x8001;
客戶端ID:0x0010;會話ID:0x0001;
協(xié)議版本:固定0x01;
接口版本:定義為0x01;
報文類型:定義為0x02 Notification;
返回碼:0x00。
其十六進(jìn)制報文示例應(yīng)該如下::
對于報頭之后的數(shù)據(jù)部分解析如下:
EFBBBF為Byte Order Mark,表明UTF8編碼。
“車載ETH”的UTF8編碼數(shù)據(jù)為:E8BDA6,E8BDBD,45,54,48。
00為UTF8編碼的結(jié)束符。
以上為data1數(shù)據(jù)。
14為data2數(shù)據(jù),表明溫度值為20℃。
另外,可以由設(shè)計方自定義,比如使用UDP傳輸實時性數(shù)據(jù)時,為了保證數(shù)據(jù)的可靠性,可以在自定義的應(yīng)用層設(shè)計時加入可靠性的機(jī)制,數(shù)據(jù)的編碼形式也可以自定義。
(1)車載以太網(wǎng)目前已經(jīng)在部分OEM車型中應(yīng)用,技術(shù)相對較成熟。
(2)車載以太網(wǎng)相較于其它傳統(tǒng)網(wǎng)絡(luò),如CAN、CANFD、FlexRay,速率更快,同時可承載數(shù)據(jù)多。
(3)汽車的網(wǎng)聯(lián)化、智能化、電動化和共享化發(fā)展中,如自動駕駛、V2X、大數(shù)據(jù)采集、遠(yuǎn)程診斷、OTA等新技術(shù)都離不開以太網(wǎng)的支持。