什么是车载以太网_车载以太网结构
目錄
1.車載以太網概述
2. 物理層 PHY
2.1 總體說明
2.2 物理層架構
2.3 物理層控制器的架構
2.4 物理層編碼原理
3. 鏈路層 MAC
3.1 MAC控制器架構
3.2 MAC地址
3.3 數據傳輸
3.4 MAC幀格式
4.網絡層
4.1 IP地址
4.2 IP協議
4.3 ICMP協議
4.4 ARP協議
5.傳輸層
5.1 端口與Socket
5.2 UDP
5.3 TCP
6.應用層
6.1 DoIP
6.2 SOME/IP
6.3 DHCP協議
7. Autosar中的以太網協議棧
1.車載以太網概述
其中與車載以太網強相關的模塊有:
-
SOME/IP(Scalable Service-Oriented MiddlewarE over IP):是一種用于傳輸服務(Service)信息的基于IP的可伸縮中間件,能夠適應基于不同操作系統的不同大小的設備,小到攝像頭,大到車機或自動駕駛模塊;相比于傳統的CAN總線的面向信號的通信方式,SOME/IP是一種面向服務的通信方式。
-
DoIP:基于以太網的診斷傳輸協議,能夠將UDS進行封裝并基于IP網絡進行傳輸;應用于車輛檢查和維修、車輛或ECU軟件的重編程、車輛或ECU的下線檢查和維修等,其主要工作原理類似于Diagnostic over CAN(或稱為DoCAN)。
-
XCP:XCP on Ethernet能夠基于以太網進行車載控制器的標定,主要用于標定、測量、少量的編程和刷新(大部分刷新會利用診斷協議)、ECU旁路功能等。
-
UDPNM:是AUTOSAR組織制定的基于汽車以太網的網絡管理協議,能夠有效的實現車載以太網節點的協同睡眠和喚醒,其主要工作原理類似于AUTOSAR的CAN NM
其中與傳統以太網最核心區別是物理層車載以太網要用 100BASE-T1,而非100BASE-TX,下面依次介紹與車載相關的各層。
2. 物理層 PHY
2.1 總體說明
物理層PHY:數據傳送與接收所需要的電與光信號、線路狀態、時鐘基準、數據編碼和電路等,并向數據鏈路層設備提供標準接口;
數據鏈路層MAC:提供尋址機構、數據幀的構建、數據差錯檢查、傳送控制、向網絡層提供標準的數據接口等功能。
100BASE-T1在物理連接上使用了一對雙絞線實現全雙工的信息傳輸,而100BASE-TX則使用了兩對雙絞線實現全雙工,一對用于收,另一對用于發。
100BASE-T1利用所謂的回音消除技術(echo cancellation)實現了在一對雙絞線上的全雙工通信。
回音消除技術的主要過程:作為發送方的節點將自己要發送的差分電壓加載到雙絞線上,而作為接收者的節點則將雙絞線上的總電壓減去自己發出去的電壓,做減法得到的結果就是發送節點發送的電壓。
車載以太網固定為全雙工通信方式,出于對汽車啟動時間的考慮而沒有引入自動協商機制,此外車載以太網是通過單對非屏蔽或屏蔽電纜連接。
2.2 物理層架構
物理層主要作用:
1)定義硬件接口;
2)定義信號與編碼;
3)定義數據與信號之間的轉換收發;
物理層基本架構
主要包括PMD,PMA和PCS。
PMD,介質依賴層,主要職責是轉換PMA的數據與實際網絡上的信號。發送時,它從PMA讀取數據并執行實現該功能所需的必需的低級行編碼功能設計的媒介。接收時,它會讀取并解釋這些內容編碼信號,然后將它們轉換回位以發送到PMA。
PMA,介質連接層,結余PMA和PCS之間,其中PMD是按照bit串行處理方式,而PCS則是按照數據塊處理方式,因此PMA則是起到中間轉換的作用,此外還起到數據沖突檢測的功能。
PCS,編碼子層,主要進行初始編碼,實現特定于以太網速度和傳輸介質要求的子層中的一部分。
2.3 物理層控制器的架構
其中,MDI , Medium Dependent Interface。MIIMedium Independent Interface,MIIM主要用于寄存器的配置管理。
我們這里需要注意的是RXD 和TXD都是4個數據。
2.4 物理層編碼原理
首先總線上的電平信號有,-1 0 和 1如圖:
數據和電平的編碼轉換關系有如下表關系:
如數據 000 對應兩根線上的電平為 -1 01 ,
主要數據到電平轉換過程為以下四步:
1.首先從MII接收到數據(4bit 4bit…)
2.接下來分割成(3bit 3bit…)進行處理;
3.根據上表,電平與數據編碼的關系,轉換為電平信號;
4.將電平信號發到總線。
一個案例說明以上的轉換過程:
100Mbps 速度的由來:
在微控制器的每個時鐘周期中,MII接口到來的數據是4個bit,PHY從MII接口收到數據后,會首先進行一個4B3B的轉換,為了匹配25MHz * 4bit = 100Mbit/s的速率,PHY的MII接口時鐘周期應該是33.3333M,每次接收3bit,也實現了33.3333M * 3bit = 100Mbit/s的速率。之后PHY要再進行3B2T的操作,將每次接收到的3個bit轉化為2個電平值(取值范圍是-1,0,1),具體的對應關系如上圖中的表所示。3個bit有8種組合(即2的三次方),兩個電平值有9種組成(即3的平方),所以后者可以覆蓋前者。此時時鐘周期仍然是33.333M,但是每個時鐘周期中的兩個電平就能夠表示3個 bit了,所以此時的數據速率仍然是100Mbit/s,每個電平實際上包含了1.5bit信息。最后一步是PAM3,將邏輯的-1,0,1轉化為在雙絞線上的電壓,所以,最終在總線上信號的波特率是66.666MHz,但是它實現了100Mbit/s的通信速率。
3. 鏈路層 MAC
MAC層主要內容,
1) 尋址
2) 傳輸方式
3) 幀格式
3.1 MAC控制器架構
其中比較關鍵的是MII 和 MIIM 與PHY接口連接。
數據發送,MAC協議會判斷當前是否適合發送數據,若能,它會在將要發送的數據上附加一些控制信息,最終使數據以規定的格式到達物理層;
數據接收,它會判斷數據是否有錯誤,如果沒有錯誤的話,它會去掉附加的控制信息發送至LCC(邏輯鏈路控制)子層。
SMI接口包括MDIO(控制和管理PHY以獲取PHY的狀態)和MDC(為MDIO提供時鐘)。
MDC由MAC提供,MDIO是一根雙向的數據線。用來傳送MAC層的控制信息和物理層的狀態信息。
MDIO數據與MDC時鐘同步,在MDC上升沿有效。
3.2 MAC地址
在我們給別人聯系時,我們往往需要知道對方的郵件地址或電話或住址,而以太網通信也是類似。因此需要通信的兩個設備,必須具有唯一標識的MAC地址。
MAC地址長度為48bit、6byte,前三個字節是組織標識ID,后三個字節是本地管理ID。
全局或本地地址U/L:第一個字節的第二位MAC地址的OUI字段(從右數第二低位開始計數)被稱為U / L(通用/本地)標志。 設為0時,將MAC地址標記為被普遍管理; 當它是1時,MAC地址是本地管理的。
單播與組播MAC地址I/G:OUI的第一個字節的第一個(最低有效)位MAC地址的字段,稱為I / G(個人/組)標志。當這個位設置為0,MAC地址是單個設備,并且消息是單播。設置為1時,表示組地址(多播)。
廣播MAC地址:FF-FF-FF-FF-FF-FF
3.3 數據傳輸
主要介紹一下CSMA/CD 沖突檢測方法。
在以太網中,網絡不斷監控(或感知)傳輸線,偵聽確定線路是否繁忙。任何設備聽到正在進行的傳輸則禁止嘗試發送自己的消息,直到線路空閑為止。
它可以檢測到網絡上是否有數據在傳送,如果有數據在傳送中就等待,一旦檢測到網絡空閑,再等待一個隨機時間后將送數據出去。如果兩個碰巧同時送出了數據,那樣必將造成沖突。這時候,沖突檢測機構可以檢測到沖突,然后各等待一個隨機的時間重新發送數據。這個隨機時間很有講究的,并不是一個常數,在不同的時刻計算出來的隨機時間都是不同的,而且有多重算法來應付出現概率很低的同兩臺主機之間的第二次沖突
3.4 MAC幀格式
Preamble:7byte 幀前綴,主要用于幀設備之間的事件同步;
Start of frame delimiter:1byte,標識幀開始
MAC destination :目標MAC地址
MAC source : 源MAC地址
802.1Q Tag:是一個可選項,主要用于VLAN,如在這個字段中定義VLAN的ID或優先級等,未定義的則會自動把該幀丟棄。
length:數據長度/payload長度
Payload:有效負載、數據
frame check :CRC
interframe gap :幀之間的間隔
4.網絡層
4.1 IP地址
主要作用為,尋址,數據封裝,路由。僅以IPV4說明
長度為4byte 32bit,每個字節用dot隔開,用十進制表示。
192.168.0.1 ,其中加粗的前三個字節192.168.0 表示網絡ID,最后一個字節 1表示主機ID
網絡ID(網絡ID):一定位數,從頭開始從最左邊的位開始,用于標識主機或位于其他網絡接口。 有時也稱為網絡前綴,甚至只是前綴。
主機ID(主機ID):其余位用于標識 網絡上的主機。
IP地址類別:
| 類別 | 默認子網掩碼 |
|---|---|
| A類 | 255.0.0.0 |
| B類 | 255.255.0.0 |
| C類 | 255.255.255.0 |
A類地址第一字節為網絡ID,后三個字節為主機ID,范圍是1.0.0.1—126.155.255.254;
B類地址第一二字節為網絡ID,后兩個字節為主機ID,范圍是128.0.0.1—191.255.255.254;
C類地址前三個字節為網絡ID,最后一個字節為主機ID,范圍是192.0.0.1—223.255.255.254
D類地址:為組播地址
224.0.0.0~224.0.0.255為預留的組播地址(永久組地址),地址224.0.0.0保留不做分配,其它地址供路由協議使用;
224.0.1.0~224.0.1.255是公用組播地址,可以用于Internet;
224.0.2.0~238.255.255.255為用戶可用的組播地址(臨時組地址),全網范圍內有效;
239.0.0.0~239.255.255.255為本地管理組播地址,僅在特定的本地范圍內有效。
D類地址的MAC有特殊轉換關系:
MAC地址前三位為:01 00 5E
MAC地址后三位為:0x7FFFFF & 組播IP地址
舉例來說 組播IP地址 242.147.109.235 對應的MAC地址為:01.00.5E.13.6D.EB
4.2 IP協議
Version:版本 如4表示IPV4 IPV4:4,IPV6:6
IHL:Internet Header length,Header 長度 沒有選項,則一般為5(5x32bit=20B)
DSCP:Differentiated Service 一般沒有使用,詳細參考RFC
ECN:Explicit Congestion Notification 用于擴展檢測丟包
Total length :總長度,header+數據 總長度
Identification :占16位,它是一個計數器,用來產生數據報的標識
Flags:標明是否分片 bit 0: Reserved; must be zerobit 1: Don’t Fragment (DF) bit 2: More Fragments (MF)
Fragment Offset :占12位,指較長的分組在分片后某片在原分組中的相對位置.片偏移以 8 個字節為偏移單位
Time to Live :生存時間,占8位,記為TTL (Time To Live) 數據報在網絡中可通過的路由器數的最大值,TTL 字段是由發送端初始設置一個 8 bit字段.推薦的初始值由分配數字 RFC 指定,當前值為 64.發送 ICMP 回顯應答時經常把 TTL 設為最大值 255
Protocol:占8位,指出此數據報攜帶的數據使用何種協議以便目的主機的IP層將數據部分上交給哪個處理過程,1表示為 ICMP 協議, 2表示為 IGMP 協議, 6表示為 TCP 協議, 17表示為 UDP 協議
Header checksum:數據頭CRC
Source IP address:源IP地址
Destination IP Address:目標IP地址
4.3 ICMP協議
ICMP:Internet Control Message Protocol網際控制報文協議
作用:提高 IP 數據報交付成功的機會用于ping,跟蹤路由
這里的Type如下圖所示:
這里主要說明 Code,用于表示網絡相關的錯誤。
4.4 ARP協議
ARP:Address Resolution Protocol 地址解析協議
由于上層用的是IP地址,下層用的是MAC地址,ARP協議就是用于解決協議轉換的問題。
主要用兩種映射方式,一種為直接mapping,一種為動態mapping
以下說明ARP過程:
1)首先查詢表中是否有目標地址,若沒有則下一步;
2)產生ARP請求幀;
3) 廣播ARP請求幀;
4)目標方接收ARP請求幀,并處理
5)目標方產生ARP響應幀
6)目標方更新ARP表
7)目標方發送ARP響應幀
8)請求方接收響應幀并處理
9)請求方更新ARP表。
5.傳輸層
傳輸層的目的在于,控制分段傳輸大塊數據。
5.1 端口與Socket
前面我們提到了IP地址,IP地址一般表示一個ECU級別;
而為了進一步表示一個ECU上的不同軟件進程,功能或模塊,我們引入端口的概念(port)。
在TCP和UDP中,都包含了16bit的 源地址端口和目標地址端口。
而 IP地址+port = socket。
5.2 UDP
UDP:User Datagram Protocol用戶數據報協議
主要特點:傳輸協議比TCP輕,不保證發包的傳輸以及數據包的順序,主要用于對時間敏感的傳輸;
5.3 TCP
TCP:Transmission Control Protocol傳輸控制協議
主要特點,主要是用于可靠的面向連接的傳輸,在傳輸數據之前,必須先建立連接,同時確保所有數據按順序到達客戶端,客戶端收到數據包后需要給出確認應答,若未確認,則該數據包會進行重傳。
握手過程:
協議格式:
Source Port : 源端口
Destination Port:目標端口
Sequence Number:序列號,用于確保傳輸順序;
Acknowledgment Number:應答號比如當前接收端接收到一個凈荷為12byte的數據包,SN為8,則會回復一個確認收到的數據包,如果這個數據包之前的數據也都已經收到了,這個數據包中的ACK Number則設置為12+8=20,表示之前的數據都已經收到了,準備接受SN=20的數據包
data offset:4位包括TCP頭大小,指示TCP頭的長度,即數據從何處開始。
CWR(Congestion Window Reduce):擁塞窗口減少標志set by sender,用來表明它接收到了設置ECE標志的TCP包;
ECE(ECN Echo):ECN響應標志被用來在TCP3次握手時表明一個TCP端是具備ECN功能的。在數據傳輸過程中也用來表明接收到的TCP包的IP頭部的ECN被設置為11;
URG(Urgent):該標志位置位表示緊急(The urgent pointer) 標志有效。
ACK:取值1代表Acknowledgment Number字段有效,這是一個確認的TCP包,取值0則不是確認包。
PSH(Push):該標志置位時,一般是表示發送端緩存中已經沒有待發送的數據,接收端不將該數據進行隊列處理,而是盡可能快將數據轉由應用處理。
RST(Reset):用于reset相應的TCP連接。通常在發生異常或者錯誤的時候會觸發復位TCP連接。
SYN:同步序列編號(Synchronize Sequence Numbers)有效。該標志僅在三次握手建立TCP連接時有效。
FIN(Finish):No more data from sender。當FIN標志有效的時候我們稱呼這個包為FIN包。
Window Size:從Ack Number開始還愿意接收多少byte的數據量,用于TCP的流量控制。
Urgent Pointer:優先指針指向后面是優先數據的字節,在URG標志設置了時才有效。
6.應用層
6.1 DoIP
參考:https://blog.csdn.net/AgingMoon/article/details/104162225
6.2 SOME/IP
參考:https://blog.csdn.net/AgingMoon/article/details/104166715
6.3 DHCP協議
DHCP的全稱是Dynamic Host Configuration Protocol,翻譯作動態主機配置協議。它的用途是為網絡節點自動配置IP地址。
DHCP是一個局域網應用層協議,使用UDP協議工作,用于在局域網內自動分配IP地址。
該協議基于Client / Server模式工作(Server一般由路由器擔任),
?DHCP Server端,使用UDP端口:67 (0x43)
?DHCP Client端,使用UDP端口:68 (0x44)
DHCP的三種機制分配IP地址:
1)自動分配方式(Automatic Allocation),DHCP服務器為客戶端指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP服務器端租用到IP地址后,就可以永久性的使用該地址。
2)動態分配方式(Dynamic Allocation),DHCP服務器給客戶端指定一個具有時間限制的IP地址,時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用。
3)手工分配方式(Manual Allocation),客戶端的IP地址是由網絡管理員指定的,DHCP服務器只是將指定的IP地址告訴客戶端主機。
其中我們最常使用的是第二種,即動態分配方式。
UDP 數據包
OP:
若是 client 送給 server 的封包,設為 1 ,反向為 2。
HTYPE:
硬件類別,Ethernet 為 1。
HLEN:
硬件地址長度,ethernet為6。
HOPS:
若封包需經過 router 傳送,每站加 1 ,若在同一網內,為 0。
SECONDS:
Client 端啟動時間(秒)。
Transaction ID:
一個隨機數,用于客戶和服務器之間匹配請求和相應消息。
Flags:
從0-15bits,最左一bit為1時表示server將以廣播方式傳送封包給 client,其余尚未使用。
ciaddr:
要是 client 端想繼續使用之前取得之 IP 地址,則列于這里。
yiaddr:
在 server 送回 client 的 DHCP OFFER 與 DHCPACK封包中,此欄填寫分配給 client 的 IP 地址。
siaddr:
若 client 需要通過網絡開機,從 server 送出之 DHCP OFFER、DHCPACK、DHCPNACK封包中,此欄填寫開機程序代碼所在 server 之地址。
giaddr:
若需跨網域進行 DHCP 發放,此欄為 relay agent 的地址,否則為 0。
chaddr:
Client 之硬件地址。(包括6字節MAC和10字節padding)
sname:
Server 之名稱字符串,以 0x00 結尾。
file:
若 client 需要通過過網絡開機,此欄將指出開機程序名稱,稍后以 TFTP 傳送。
options:
允許廠商定議選項。每個option項由Type(1字節)、Length(1字節)、Value(長度由Length決定)三部分組成。
第一步:
DHCP客戶端主動發送DHCP Discover包,用來尋找DHCP服務器,其中:
源MAC是自己的MAC地址,目的MAC是FF:FF:FF:FF:FF:FF的廣播;
源IP是0.0.0.0(現在還沒有IP,就用全0地址),目的IP是255.255.255.255的三層廣播地址。
因為此時客戶端還不知道DHCP服務器在哪里,所以使用廣播來尋找,請求會被廣播到整個網段中。
第二步:
DHCP服務器收到客戶端發的DHCP Discover之后,會在自己的地址池中拿出一個沒有分配的地址以及配套的參數(如:掩碼、DNS、網關、域名、租期……),然后以一個DHCP Offer包發送出去。這個DHCP Offer數據包的地址如下:
源MAC是DHCP服務器的MAC,目的MAC是DHCP客戶端的MAC地址;
源IP是DHCP服務器的IP,目的IP是即將分配給客戶端使用的IP地址。
因為客戶端目前還沒有IP地址,所以在這個單播IP發送之前,服務器會使用客戶端的MAC地址與之通信,如果MAC地址通信失敗,那么服務器會使用廣播的方式提供(Offer)數據包 。
第三步:
客戶端收到這個DHCP Offer后,會再發出一個DHCP Request給服務器來申請這個Offer中包含的地址。此時客戶端還沒有正式拿到地址,所以還需要向DHCP服務器申請。
這個DHCP Request數據包的地址如下:
這時客戶端的源IP還是0.0.0.0,目的IP還是255.255.255.255
源MAC是客戶端的MAC,目的MAC是FFFF.FFFF.FFFF廣播包
第四步:
服務器收到客戶端的請求后,會發出一個DHCP ACK用來確認這個IP地址可以分配給這個客戶端。
客戶端收到這個DHCP ACK數據包才算正式拿到了這個IP。
在租約內續租的時候,發現( Discovery )和提供(Offer)數據包就變得沒有必要了,只需要完成請求和確認兩個步驟就可以
7. Autosar中的以太網協議棧
以下簡要說明與以太網相關的Autosar協議棧。
其中LDCOM可以認為類似于COM模塊,只是LD表示large data,此外SOAD表示 socket adapter,用于以太網中的socket適配。
當然與DCM相關的底層采用的是DOIP協議。
總結
以上是生活随笔為你收集整理的什么是车载以太网_车载以太网结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: viomi是什么牌子
- 下一篇: 华为手表防水吗(华为企业业务)