天天看點

一文入門車載以太網,吐血整理!不看後悔!

前言

近些年來,随着為了讓汽車更加安全、智能、環保等,一系列的進階輔助駕駛功能噴湧而出。未來滿足這些需求,就對傳統的電子電器架構帶來了嚴峻的考驗,需要越來越多的電子部件參與資訊互動,導緻對網絡傳輸速率,穩定性,負載率等方面都提出了更為嚴格的挑戰。

除此以外,随着人們對汽車多媒體以及影音系統的需求越來越高,目前雖已有各式各樣的音視訊系統,可随着汽車電動化程序的加速推進,手機控制車輛以及彼此互動的場景不斷擴大,可以想象未來聯網需求隻會不斷拓展,無論是車内還是車外的聯網需求都不約而同的提出了更多網絡帶寬的重要性。

為此,車載以太網應運而生。首先以太網的首要優勢之一在于支援多種網絡媒體,是以可以在汽車領域進行使用;同時由于實體媒體與協定無關,是以可以在汽車領域可以做相應的調整與拓展,形成一整套車載以太網協定,該協定将會在未來不斷發展并長期使用。

今天,我們來一起探索車載以太網協定的基本面貌。為了便于大家了解,以下是本文的主題大綱:

一文入門車載以太網,吐血整理!不看後悔!

正文

車載以太網發展曆史

自1980年至今,IEEE組織、OPEN Aliance SIG組織、寶馬、博通公司等為傳統以太網到汽車領域的應用拓展發揮了十分關鍵的作用,重要裡程碑事件記錄如下:

  • 1980年,Ethernet 1.0成功釋出;
  • 1985年,IEEE 802小組公布802.3協定,推出了基于CSMA/CD的10M以太網技術;
  • 2004年,BMW公司考慮采用博通公司的以太網技術并于2008年在寶馬7系上成功量産以太網刷寫技術,其中關鍵點在于博通公司的單對非屏蔽以太網全雙工技術,并保證EMC測試全部PASS;
  • 2013年,BroadR-reach技術成功在寶馬5系的環視系統中成功量産;
  • 近年來由著名汽車整車廠與供應商組成的OPEN Aliance SIG相繼釋出了TC8(車載以太網ECU測試規範)以及TC10(車載以太網休眠喚醒規範),同時攜手IEEE将車載以太網标磚轉化為通用标準。

車載以太網總體架構

正由于上述IEEE組織,OPEN Aliance SIG組織, AVNU組織,AUTOSAR組織的共同發展與合作,進而規範了車載以太網符合OSI模型的整體架構,如下圖1所示:

一文入門車載以太網,吐血整理!不看後悔!

圖1 車載以太網OSI總體架構

首先針對圖1中AVNU,IEEE,AUTOSAR以及OPEN Aliance SIG組織做簡要介紹,以便能夠較為清晰地了解各組織在車載以太網總體架構地主要貢獻及主要目标。

  • AVNU: 緻力于推進AVB/TSN時間敏感網絡在汽車領域的應用,使以太網成為一種時間确定性的實時網絡;
  • IEEE: 電氣與電子工程師協會,其中802.3工作小組緻力于推進以太網相關标準的制定與完善;
  • AUTOSAR: 汽車開放式系統架構組織,緻力于實作汽車軟硬間之間解耦的标準同時也為車載以太網軟體層級作出了相關規範說明;
  • OPEN Aliance SIG: 為非盈利性的汽車行業和技術聯盟,旨在鼓勵大規模使用以太網作為車聯網标準;

同時,從上圖中可以看出标記為“IT”則為傳統以太網技術協定規範,而标記為“Automotive”則為車載以太網技術協定規範。

顯而易見,除了實體層、UDP-NM、DOIP、SOME/IP、SD這五個子產品為車載以太網技術協定規範之外,其餘均為傳統以太網技術。

實體層

車載以太網與傳統以太網相比,車載以太網僅需要使用1對雙絞線,而傳統以太網則需要多對,線束較多。

同時,傳統以太網一般使用RJ45連接配接器連接配接,而車載以太網并未指定特定的連接配接器,連接配接方式更為靈活小巧,能夠大大減輕線束重量。除此以外,車載以太網實體層需滿足車載環境下更為嚴格的EMC要求,對于非屏蔽雙絞線的傳輸距離可達15m(屏蔽雙絞線可達40m)。

雖然車載以太網隻采用單對差分電壓傳輸的雙絞線,但是100M/s以太網可以通過回音消除技術來實作全雙工通信。下面就通過表格形式列舉出目前主流的實體層标準:

一文入門車載以太網,吐血整理!不看後悔!

表1 車載以太網實體層标準

從上表可知,當下主流的車載以太網協定主要為IEEE 100BASE-T1以及IEEE 1000BASE-T1,正常使用可采用100BASE-T1,如果需要更高帶寬,可選擇1000BASE-T1。

不過因為速率越高,對車載以太網實體層一緻性測試就更為嚴格。

其中以太網所有實體層的功能全部集中在一個稱為“PHY”的子產品中,它将以太網控制器以及實體媒體連接配接在一起,并且通過一個标準化接口MII連接配接,同時PHY子產品與底層媒體通過MDI接口連接配接,以100BSASE-T1所示,如下圖2所示:

一文入門車載以太網,吐血整理!不看後悔!

圖2 實體層PHY接口結構圖 (來源:Vector)

子產品接口定義見上圖2,具體有關PHY子產品的内容在此不做展開,後續會單獨專題講解奉上,敬請關注!

資料鍊路層

資料鍊路層可細分為LLC(Logic Link Control)以及MAC(Media Access Control)兩個層級。此兩層級定義與作用如下:

  • LLC: 負責向上層提供服務,管理資料鍊路通信,連結尋址定義等,與所用實體媒體沒有關系;
  • MAC: 負責資料幀的封裝,總線通路方式,尋址方式以及差錯控制等,MAC層的存在則可以使得上層軟體與所用實體鍊路完全隔離,保證了MAC層的統一性;

其中LLC子層的服務與服務在IEEE 802.2 LAN協定中有所定義,MAC層的主要功能作用則在IEEE 802.3中定義,并采用CSMA/CD通路控制方式,一般MAC層協定在俗稱的“網卡”中實作。

以太網幀格式

以太網随着曆史發展總共存在5種幀格式,不同的以太幀存在不同的類型及MTU值(最大傳輸資料長度),且可以在同一實體媒體上同時存在。

目前廣泛使用的以太網幀格式主要有2種,分别為Ethernet II幀格式與IEEE802.3幀格式。其中車載以太網主要采用Ethernet II幀格式。

  • 完整Ethernet II幀格式
一文入門車載以太網,吐血整理!不看後悔!

圖3 Ethernet II幀格式

  • 完整IEEE802.3幀格式
一文入門車載以太網,吐血整理!不看後悔!

圖4 IEEE 802.3幀格式

如上圖3與圖4進行對比可知,Ethernet II幀格式中的“類型”位置被802.3幀格式的“長度”所替代。上述不同字段的具體含義如下表2所示:

一文入門車載以太網,吐血整理!不看後悔!

表2 以太網幀字段定義說明

特别的,我們可以通過判别“類型/長度”字段來進一步判斷目前幀的類型。若該字段值小于等于0x5DC,那麼該幀為IEEE 802.3格式,若該字段值大于等于0x600,則該幀為Ethernet II幀格式。

同時需要注意Ethernet II幀格式并沒有LLC子層的概念,隻有MAC層來處理資料服務等内容,而IEEE 802.3則可以

MAC幀格式

對于MAC幀格式則是從“目标實體位址”開始至“幀校驗”結束為一完整的MAC幀。如下圖4所示為MAC的完整幀,包括目标實體位址,源實體位址,類型/長度,資料以及幀校驗CRC組成。

一文入門車載以太網,吐血整理!不看後悔!

圖4 MAC完整幀格式

特别地,如圖中4所示,“VLAN Tag” 字段可選,當沒有VLAN Flag則為Basic MAC幀,當存在該字段時,則為VLAN MAC幀,即MAC幀可分為基本MAC幀(無VLAN)和标記MAC幀(包括VLAN)兩種。

其中“類型”字段通常可以為以下幾種類型,且該類型清單由IEEE組織來維護,如下表3所示列舉了車載以太網領域常用的Ethernet Type:

一文入門車載以太網,吐血整理!不看後悔!

表3 車載以太網常用類型

MAC尋址方式

MAC位址作為每個以太網接口的固定位址,一般由供應商出廠就固定下來不可更改。位址長度為6Byte,例如00-17-4F-08-78-88,其中前3個位元組為組織編号,如下圖5所示為MAC位址的尋址方式以及位元組定義:

一文入門車載以太網,吐血整理!不看後悔!

圖5 MAC尋址方式(來源:Vector)

如上圖所示:前3個位元組為組織唯一辨別号,由IEEE配置設定給到網卡生産廠商,其中Byte5/Bit1表示該MAC位址是全球位址還是本地位址,Byte5/Bit 0 用于表示該幀為多點傳播MAC位址,單點傳播位址還是廣播位址;

  • 0:單點傳播位址(1對1),普通終端裝置接收;
  • 1:多點傳播位址(1對多),僅交換機會接收,普通終端裝置不會接收;
  • 48個bit全為1:表示為廣播位址,所有裝置均會接收;

MAC VLAN

VLAN作為一種分割廣播域的技術手段,能夠有效降低網絡不必要的開銷,全稱為虛拟區域網路技術。該技術分割廣播域的方法有很多種,在此僅簡要介紹下基于基于MAC的動态VLAN技術,如下圖6所示:

一文入門車載以太網,吐血整理!不看後悔!

圖6 基于MAC的動态VLAN技術(來源 Vector)

如上圖所示,ECU1與ECU2被劃分為屬于同一VLAN1,而ECU2與ECU4則被劃分為屬于同一VLAN2。隻需要提前配置好各ECU所屬的VLAN即可,基于MAC的VLAN的優點在于即使換了連接配接端口或者交換機都可以自動重新識别,不需要重複進行配置,主要用于DHCP或者ARP協定發送廣播幀的場景。

正如前面所述MAC幀可分為基本MAC幀(無VLAN)和标記MAC幀(包括VLAN)兩種,而如果為如果時标記MAC幀,那麼就會使用到VLAN Tag,同時“資料”字段的最小長度為不帶VLAN标記的46Byte與帶VLAN标記的42Byte,因為VLAN Tag占用了4個位元組,最大資料長度均為1500Byte。

如下圖7所示則為VLAN Tag的含義說明:

一文入門車載以太網,吐血整理!不看後悔!

圖7 VLAN Tag定義說明 (來源:Vector)

如上圖7所示,VLAN Tag總共可以分為以下3個部分:

  • PRI(3Bit): 幀優先級,就是通常所說的802.1p;
  • CFI(1Bit): 規範辨別符,0為規範格式,用于802.3或Ethernet II以太網幀;
  • VLAN ID: 就是VLAN的辨別符ID;

網絡層

網絡層就是IP協定所在的層級,IP協定可以分為IPV4以及IPV6,常用的主要是IPV4,IP協定的主要作用就是基于IP位址轉發分包資料。

同時IP也是一種分組交換協定,但是IP卻不具備自動重發機制,即使資料沒有達到目的地也不會進行重發,是以IP協定屬于非可靠性協定。

車載以太網主要使用IPV4協定,同時由于該協定也屬于傳統以太網範疇,是以不會對該子產品做過多細節性闡述。

  • IPV4協定頭
一文入門車載以太網,吐血整理!不看後悔!

圖8 IPV4協定頭

由上可知,IP首部為20Byte。

該協定頭的各部分解釋如下圖:

一文入門車載以太網,吐血整理!不看後悔!

圖9 IPV4 協定頭資訊表

  • IPV6協定頭
一文入門車載以太網,吐血整理!不看後悔!

圖10 IPV6 協定頭資訊表

需要注意的是IPv6 資料封包是 IPv4 的 4 倍,IPv6 資料封包主要由兩個部分組成:Header(首部)和 Payload(負載)。其中,IPv6 Header 的大小是 IPv4 的 2 倍。該協定頭的各部分解釋如下圖:

一文入門車載以太網,吐血整理!不看後悔!

圖11 IPV6協定資訊表

傳輸層

傳輸層的協定就是TCP/UDP,這兩者協定彼此獨立,也可以同時存在,看具體使用場景需求。TCP/UDP作為傳統以太網的标準協定,在這裡同樣不做過多展開,整體介紹下TCP與UDP的特點及差別。

  • TCP協定
    • TCP協定頭
      一文入門車載以太網,吐血整理!不看後悔!

    圖12 TCP協定頭

    如下圖13所示為TCP協定頭的字段解釋:

一文入門車載以太網,吐血整理!不看後悔!

圖13 TCP協定頭資訊表

  • TCP建立連接配接過程

    TCP是面向連接配接的可靠的網絡通信,是以要通信雙方建立通信連接配接,必須經過我們常說的“三次握手”才能夠開啟以太網通信,如下圖14所示為TCP的“三次握手”連接配接過程。

一文入門車載以太網,吐血整理!不看後悔!

圖14 TCP ”三次握手“過程

  • TCP斷開連接配接過程

    TCP已經連接配接的雙方如果需要斷開,則需要**“四次揮手“**來完成此過程”,如下圖15所示:

一文入門車載以太網,吐血整理!不看後悔!

圖15 TCP”四次揮手“過程

  • TCP協定特點

    從上述的TCP建立連接配接以及斷開連接配接的過程,不難得出TCP是一種面向連接配接可靠的傳輸層協定。具體總結有以下一些特點:

    • 面向連接配接;
    • 僅支援單點傳播傳輸,點對點方式,不支援多點傳播或者廣播方式;
    • 面向位元組流;
    • 可靠傳輸;
    • 提供擁塞控制;
    • 全雙工通信;
  • UDP協定

    UDP全稱為使用者資料包協定,在網絡中與TCP協定一樣用來處理資料包,是一種無連接配接的協定。同時UDP有不提供資料包分組、組裝和不能對資料包進行排序的缺點,也就是說,當封包發送之後,是無法得知其是否安全完整到達的。

    • UDP協定頭

      如下圖所示為UDP 協定頭的組成:

一文入門車載以太網,吐血整理!不看後悔!

圖16 UDP協定頭

如上圖所示,UDP首部為8Byte。

各字段的具體含義如下表所示:

一文入門車載以太網,吐血整理!不看後悔!

圖17 UDP協定字段資訊表

  • UDP協定特點

    對比TCP協定,UDP具備以下一些特點:

    • 面向無連接配接,即不需要建立連接配接便可以直接進行通信;
    • 存在單點傳播,多點傳播,廣播的功能;
    • UDP是面向封包的,UDP的封包報經過IP層不會進行任何拆分或重組;
    • 不可靠性:由于沒有像TCP的擁塞控制以及出錯自動重傳等機制,則會導緻發送的封包五寶保證接收方是否收到,因為網絡本身就存在諸多的不确定性;
  • TCP與UDP差別

    如下圖所示,較為清晰的解釋了TCP與UDP兩者之間的差別,這讓我們選擇何種傳輸層協定提供了判斷标準。

    一文入門車載以太網,吐血整理!不看後悔!
    圖18 UDP與TCP差別關系表
    • TCP向上層提供面向連接配接的可靠服務 ,UDP向上層提供無連接配接不可靠服務;
    • 雖然 UDP 并沒有 TCP 傳輸來的準确,但是也能在很多實時性要求高的地方有所作為;
    • 對資料準确性要求高,速度可以相對較慢的,可以選用TCP。

應用層

在車載以太網領域,目前主流涉及到的應用協定主要有UDP-NM,DOIP,Some/IP,SD以及傳統以太網需配合支援的ICMP,ARP,DHCP等協定。

在本文我不會針對這些協定具體展開,因為每種協定内容不少,後續會專門針對這些應用層協定給大家講解分享,敬請大家多多關注。

如下圖19是我列舉車載以太網種這些應用協定的基礎特點以及作用場景給大家一個整體的認識。

一文入門車載以太網,吐血整理!不看後悔!

圖19 車載以太網應用層協定一覽

如需擷取本文“車載以太網” 相關資料,更多精彩,敬請關注公衆号“ADAS與ECU之吾見”,公衆号背景回複“以太網入門” 關鍵詞即可擷取!

繼續閱讀