作者:Defry
連結:https://zhuanlan.zhihu.com/p/263014666
來源:知乎
一、車載以太網幀結構
以太網幀的格式如下:
以太幀有多種類型,不同類型的幀具有不同的格式和MTU值,但在同種實體媒體上都可同時存在。常見有兩種幀格式,第一種是上世紀80年代初提出的DIX v2格式,即Ethernet II幀格式。Ethernet II後來被IEEE802标準接納,并寫進了IEEE802.3x-1997的3.2.6節。
第二種是1983年提出的IEEE802.3格式。
這兩種格式的主要差別在于,Ethernet II格式中包含一個Type字段,辨別以太幀處理完成之後将被發送到哪個上層協定進行處理。IEEE802.3格式中,同樣的位置是長度字段。
不同的Type字段值可以用來差別這兩種幀的類型,當Type字段值小于等于1500(或者十六進制的0x05DC)時,幀使用的是IEEE802.3格式。當Type字段值大于等于1536(或者十六進制的0x0600)時,幀使用的是Ethernet II格式。以太網中大多數的資料幀使用的是Ethernet II格式。
以太幀中還包括源和目的MAC位址,分别代表發送者的MAC和接收者的MAC,此外還有幀校驗序列字段,用于檢驗傳輸過程中幀的完整性。
汽車行業通常使用Ethernet II格式,該格式還可包含VLAN資訊作為擴充,是以,又分基本MAC幀(無VLAN)和标記MAC幀(包括VLAN)兩種。
MAC addresses: Ethernet II幀通常以接收者目标位址開頭。 作用是指定要接收消息的網絡節點。 與随後的發送者源位址相反,除單點傳播位址外,還可以使用多點傳播或廣播位址。對于以太網幀,隻能有一個發送方,但可以有多個接收方。
Ether type: 基本和标記的MAC幀通過類型字段(以太類型)進行區分。 這通常辨別有效載荷資料區域中包含的分組,并給出有關較高層中使用的協定(例如,IPv4)的資訊。如果以太類型的值為0x8100,則将類型字段向後移四個位元組,并在其原始位置插入一個VLAN标簽。
VLAN Tag:VLAN标簽由協定辨別符(TPID)和控制資訊(TCI)組成。 TPID包含原始類型字段的值,而TCI由優先級(PCP),符合丢棄要求或規範的形式訓示符(DEI或CFI)和辨別符(VID)組成。辨別符和優先級主要用于汽車行業。辨別符區分不同應用區域的相應虛拟網絡。優先級允許通過交換機優化運作時間,以便優先轉發重要資訊。
Payload:在類型字段之後,以太幀包含有效載荷資料區域。 有效負載的最小長度為不帶VLAN标記的46位元組或帶VLAN标記的42位元組, 在汽車工業中,它最多可以包含1500個位元組。
CRC校驗:CRC校驗在以太幀的末尾發送。 校驗中包含的值是使用标準化算法計算的,該算法在發送方和接收方中以相同的方式實作。該計算是在以太幀的所有字段中進行的,是以可以確定整個消息的完整性。
以太網Packet: 對于以太網II幀的傳輸,以太網控制器在開頭插入前同步碼和起始幀定界符(SFD),用于訓示傳輸開始。前同步碼,開始幀定界符和以太幀的組合稱為以太網資料包。
二、車載以太網幀傳輸過程
上面我們已經提到,車載以太網是基于TCP/IP的網絡模型,是以我們先不考慮應用層資料是根據哪種應用層協定組織的,從應用層來的資料,經過傳輸層會加上TCP/UDP報頭,再到網絡層的IP報頭,然後到鍊路層增加MAC位址等資訊,最後由PHY轉換成線路上的二進制流實作在發送端和接收端的資料傳輸。
其中上面傳輸層的TCP協定和網絡層的IP協定,樓主在本篇文章中就不過多贅述了,大家感興趣的請自行查詢了解。而應用層協定有不少,例如DoIP、DHCP、SOME/IP等,而最重要的車載以太網應用層協定主要是SOME/IP協定,關于這部分的闡述樓主放到下一篇。