文章目录
- 车载以太网概念及协议架构介绍
-
- 前言
- [1. 什么是车载以太网](#1. 什么是车载以太网)
-
- [1.1 基本定义](#1.1 基本定义)
- [1.2 为什么汽车需要以太网](#1.2 为什么汽车需要以太网)
- [2. 车载以太网发展历程](#2. 车载以太网发展历程)
- [3. 物理层:车载以太网的"地基"](#3. 物理层:车载以太网的"地基")
-
- [3.1 单对以太网(SPE)](#3.1 单对以太网(SPE))
- [3.2 PHY 收发器](#3.2 PHY 收发器)
- [3.3 MAC 控制器](#3.3 MAC 控制器)
- [4. 网络拓扑架构](#4. 网络拓扑架构)
-
- [4.1 域架构(Domain Architecture)](#4.1 域架构(Domain Architecture))
- [4.2 区域架构(Zonal Architecture)](#4.2 区域架构(Zonal Architecture))
- [4.3 常见拓扑类型](#4.3 常见拓扑类型)
- [5. 协议栈分层架构](#5. 协议栈分层架构)
-
- [5.1 各层协议一览](#5.1 各层协议一览)
- [5.2 数据封装过程](#5.2 数据封装过程)
- [5.3 数据链路层(L2):MAC 完整帧结构](#5.3 数据链路层(L2):MAC 完整帧结构)
-
- [5.3.1 线上完整帧 vs MAC 帧本体](#5.3.1 线上完整帧 vs MAC 帧本体)
- [5.3.2 无 VLAN Tag 的标准以太网帧](#5.3.2 无 VLAN Tag 的标准以太网帧)
- [5.3.3 带 VLAN Tag 的以太网帧(802.1Q)](#5.3.3 带 VLAN Tag 的以太网帧(802.1Q))
- [5.3.4 无 Tag vs 带 Tag 对比](#5.3.4 无 Tag vs 带 Tag 对比)
- [5.3.5 双层 Tag(Q-in-Q,了解即可)](#5.3.5 双层 Tag(Q-in-Q,了解即可))
- [5.3.6 RX 解封装与 AUTOSAR 映射](#5.3.6 RX 解封装与 AUTOSAR 映射)
车载以太网概念及协议架构介绍
适用范围 :汽车电子工程师、AUTOSAR BSW 开发、系统集成与测试人员
参考规范 :IEEE 802.3 / OPEN Alliance / ISO 13400 / AUTOSAR SOME/IP / IEEE 802.1 TSN
关键词:车载以太网、100BASE-T1、1000BASE-T1、SOME/IP、DoIP、TSN、域架构、区域架构、AUTOSAR
前言
随着智能驾驶、座舱娱乐、OTA 远程升级和 ADAS 传感器融合对高带宽、低延迟、可扩展 通信的需求持续增长,传统 CAN/CAN-FD 总线已难以承载整车数据流量。车载以太网(Automotive Ethernet)作为新一代车载骨干网络,正在从"诊断专用通道"演进为整车数据高速公路。
本文从概念定位 → 物理层特性 → 网络拓扑 → 协议栈架构 → 典型应用协议 → AUTOSAR 集成六个维度,系统介绍车载以太网的核心概念与协议架构,帮助读者建立从整体到局部的认知框架。
1. 什么是车载以太网
1.1 基本定义
车载以太网是将 IEEE 802.3 以太网技术 适配到汽车电子环境后的通信方案。它在保留以太网高带宽、成熟生态、IP 互通优势的同时,针对车载场景做了三项关键改造:
| 改造维度 | 传统以太网 | 车载以太网 |
|---|---|---|
| 物理线缆 | 4 对双绞线(RJ45) | 单对双绞线(SPE,Single Pair Ethernet) |
| 拓扑结构 | 星型交换机网络 | 点对点 / 星型,支持菊花链 |
| 实时性 | 尽力交付(Best Effort) | TSN / AVB 增强确定性 |
1.2 为什么汽车需要以太网
| 应用场景 | 数据量估算 | CAN/CAN-FD 局限 | 以太网优势 |
|---|---|---|---|
| 摄像头视频流 | 100 Mbps ~ 1 Gbps | 带宽严重不足 | 百兆/千兆原生支持 |
| 激光雷达点云 | 10 ~ 100 Mbps | 无法实时传输 | 高带宽 + TSN 确定性 |
| OTA 固件升级 | 数百 MB ~ GB | 刷写耗时数小时 | TCP 可靠传输,分钟级完成 |
| 远程诊断 (DoIP) | 大包 UDS 请求 | 8/64 字节帧限制 | 1518 字节帧 + TCP 流 |
| 标定测量 (XCP) | 多路 DAQ 并发 | 带宽瓶颈 | 百兆级测量带宽 |
| 服务通信 (SOME/IP) | 动态服务发现 | 信号式通信不灵活 | 面向服务的发布/订阅 |
图 3:车载以太网 vs 传统以太网 vs CAN 总线对比

2. 车载以太网发展历程
车载以太网并非简单将办公网络搬入车内,而是经历了从诊断通道 到数据骨干的渐进演进。
图 4:车载以太网发展历程时间线
#mermaid-svg-bMaub8orjzV5OYyI{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-bMaub8orjzV5OYyI .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-bMaub8orjzV5OYyI .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-bMaub8orjzV5OYyI .error-icon{fill:#552222;}#mermaid-svg-bMaub8orjzV5OYyI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bMaub8orjzV5OYyI .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-bMaub8orjzV5OYyI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bMaub8orjzV5OYyI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bMaub8orjzV5OYyI .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-bMaub8orjzV5OYyI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bMaub8orjzV5OYyI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bMaub8orjzV5OYyI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bMaub8orjzV5OYyI .marker.cross{stroke:#333333;}#mermaid-svg-bMaub8orjzV5OYyI svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bMaub8orjzV5OYyI p{margin:0;}#mermaid-svg-bMaub8orjzV5OYyI .edge{stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .section--1 rect,#mermaid-svg-bMaub8orjzV5OYyI .section--1 path,#mermaid-svg-bMaub8orjzV5OYyI .section--1 circle,#mermaid-svg-bMaub8orjzV5OYyI .section--1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section--1 text{fill:#ffffff;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon--1{font-size:40px;color:#ffffff;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge--1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth--1{stroke-width:17;}#mermaid-svg-bMaub8orjzV5OYyI .section--1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:#ffffff;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-0 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-0 path,#mermaid-svg-bMaub8orjzV5OYyI .section-0 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-bMaub8orjzV5OYyI .section-0 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-0{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-0{stroke-width:14;}#mermaid-svg-bMaub8orjzV5OYyI .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-1 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-1 path,#mermaid-svg-bMaub8orjzV5OYyI .section-1 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-1 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-1{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-1{stroke-width:11;}#mermaid-svg-bMaub8orjzV5OYyI .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-2 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-2 path,#mermaid-svg-bMaub8orjzV5OYyI .section-2 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-2 text{fill:#ffffff;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-2{stroke-width:8;}#mermaid-svg-bMaub8orjzV5OYyI .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:#ffffff;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-3 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-3 path,#mermaid-svg-bMaub8orjzV5OYyI .section-3 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-3 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-3{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-3{stroke-width:5;}#mermaid-svg-bMaub8orjzV5OYyI .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-4 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-4 path,#mermaid-svg-bMaub8orjzV5OYyI .section-4 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-4 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-4{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-4{stroke-width:2;}#mermaid-svg-bMaub8orjzV5OYyI .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-5 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-5 path,#mermaid-svg-bMaub8orjzV5OYyI .section-5 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-5 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-5{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-5{stroke-width:-1;}#mermaid-svg-bMaub8orjzV5OYyI .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-6 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-6 path,#mermaid-svg-bMaub8orjzV5OYyI .section-6 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-6 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-6{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-6{stroke-width:-4;}#mermaid-svg-bMaub8orjzV5OYyI .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-7 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-7 path,#mermaid-svg-bMaub8orjzV5OYyI .section-7 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-7 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-7{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-7{stroke-width:-7;}#mermaid-svg-bMaub8orjzV5OYyI .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-8 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-8 path,#mermaid-svg-bMaub8orjzV5OYyI .section-8 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-8 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-8{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-8{stroke-width:-10;}#mermaid-svg-bMaub8orjzV5OYyI .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-9 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-9 path,#mermaid-svg-bMaub8orjzV5OYyI .section-9 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-9 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-9{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-9{stroke-width:-13;}#mermaid-svg-bMaub8orjzV5OYyI .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-10 rect,#mermaid-svg-bMaub8orjzV5OYyI .section-10 path,#mermaid-svg-bMaub8orjzV5OYyI .section-10 circle,#mermaid-svg-bMaub8orjzV5OYyI .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-10 text{fill:black;}#mermaid-svg-bMaub8orjzV5OYyI .node-icon-10{font-size:40px;color:black;}#mermaid-svg-bMaub8orjzV5OYyI .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .edge-depth-10{stroke-width:-16;}#mermaid-svg-bMaub8orjzV5OYyI .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-bMaub8orjzV5OYyI .lineWrapper line{stroke:black;}#mermaid-svg-bMaub8orjzV5OYyI .disabled,#mermaid-svg-bMaub8orjzV5OYyI .disabled circle,#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:lightgray;}#mermaid-svg-bMaub8orjzV5OYyI .disabled text{fill:#efefef;}#mermaid-svg-bMaub8orjzV5OYyI .section-root rect,#mermaid-svg-bMaub8orjzV5OYyI .section-root path,#mermaid-svg-bMaub8orjzV5OYyI .section-root circle{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-bMaub8orjzV5OYyI .section-root text{fill:#ffffff;}#mermaid-svg-bMaub8orjzV5OYyI .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-bMaub8orjzV5OYyI .edge{fill:none;}#mermaid-svg-bMaub8orjzV5OYyI .eventWrapper{filter:brightness(120%);}#mermaid-svg-bMaub8orjzV5OYyI :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 2010 BroadR-Reach 技术诞生 单对双绞线百兆通信 2011 OPEN Alliance 成立 制定车载以太网互操作标准 2013 100BASE-T1 标准化 IEEE 802.3bw 发布 2015 DoIP (ISO 13400) 发布 以太网诊断成为主流方案 2016 SOME/IP 广泛部署 面向服务通信进入量产 2017 1000BASE-T1 标准化 IEEE 802.3bp 千兆单对以太网 2019 TSN 车载应用起步 IEEE 802.1Qbv/Qbu 时间调度 2022+ 区域架构 (Zonal) 量产 以太网成为整车数据骨干 10BASE-T1S 多点总线应用 车载以太网发展历程
关键组织与标准:
| 组织/标准 | 职责 |
|---|---|
| OPEN Alliance | 制定车载以太网 PHY 互操作规范(TC1~TC18) |
| IEEE 802.3 | 定义 100BASE-T1 / 1000BASE-T1 / 10BASE-T1S 物理层 |
| IEEE 802.1 | 定义 TSN(时间敏感网络)调度与整形机制 |
| AUTOSAR | 定义 Classic / Adaptive 平台的以太网 BSW 栈 |
| ISO 13400 | 定义 DoIP(Diagnostics over IP)协议 |
| GENIVI / COVESA | 推动 SOME/IP 服务通信标准化 |
3. 物理层:车载以太网的"地基"
3.1 单对以太网(SPE)
传统以太网使用 4 对双绞线(8 芯),而车载以太网通过 BroadR-Reach 技术实现单对双绞线上的全双工通信,显著降低线束重量与成本。
| 标准 | 速率 | 线缆 | 典型应用 |
|---|---|---|---|
| 10BASE-T1S | 10 Mbps | 单对,多点总线 | 区域控制器内部、传感器节点 |
| 100BASE-T1 | 100 Mbps | 单对,点对点 | 诊断、座舱、ADAS 数据 |
| 1000BASE-T1 | 1 Gbps | 单对,点对点 | 智驾域、高分辨率摄像头 |
| Multi-Gig T1 | 2.5/5/10 Gbps | 单对 | 下一代高算力域控 |
3.2 PHY 收发器
PHY(Physical Layer Transceiver)是 MAC 与物理线路之间的桥梁,负责信号调制、链路协商和唤醒管理。
| 厂商 | 典型芯片 | 速率 | 接口 |
|---|---|---|---|
| NXP | TJA1103 | 100BASE-T1 | MII/RMII |
| Realtek | RTL9010 | 100BASE-T1 | RMII |
| Marvell | 88Q2112 | 1000BASE-T1 | RGMII |
| Broadcom | BCM89811 | 100BASE-T1 | RGMII |
PHY 核心能力:
- Link Up/Down 检测:通过 SQI(Signal Quality Index)评估链路质量
- 自动协商:与对端协商速率与双工模式
- 唤醒 (Wakeup):支持局部网络唤醒,配合 EthTrcv 上报 EcuM
- 线缆诊断:部分 PHY 支持开路/短路检测
3.3 MAC 控制器
ECU 侧的 MAC(Media Access Controller)负责帧的发送与接收,通常通过 DMA 描述符环管理 TX/RX 缓冲区。以 Infineon AURIX TC377 为例,内置 GETH(Gigabit Ethernet) 控制器,通过 RMII/RGMII 连接外部 PHY。
ECU 内部连接关系:
ASW/BSW → Eth Driver (MCAL) → GETH MAC → RMII/RGMII → PHY → 单对双绞线 → 对端
4. 网络拓扑架构
车载网络的拓扑设计直接影响线束成本、通信延迟和系统扩展性。当前行业正从域架构 向区域架构演进。
图 2:车载以太网网络拓扑演进

4.1 域架构(Domain Architecture)
每个功能域(动力、底盘、车身、座舱、智驾)拥有独立的 ECU 和域内总线(CAN/LIN),各域通过中央网关以以太网骨干互联。
| 特点 | 说明 |
|---|---|
| 优点 | 域内总线成熟稳定,域间以太网提供高带宽 |
| 缺点 | 中央网关负载重,线束从 ECU 到网关距离长 |
| 典型总线 | 域内 CAN/LIN + 域间 100BASE-T1 |
4.2 区域架构(Zonal Architecture)
将 ECU 按车辆物理位置分布为区域控制器(Zonal Controller) ,每个区域控制器管理本地传感器/执行器(通过 CAN/LIN),区域控制器之间通过高速以太网骨干(1000BASE-T1)互联,中央计算单元(HPC/域控)挂载在骨干上。
| 特点 | 说明 |
|---|---|
| 优点 | 线束大幅缩短减重,计算资源集中化,扩展性强 |
| 缺点 | 区域控制器算力要求高,软件架构复杂度增加 |
| 典型总线 | 区域间 1000BASE-T1 + 区域内 CAN/LIN/10BASE-T1S |
4.3 常见拓扑类型
| 拓扑 | 结构 | 适用场景 |
|---|---|---|
| 点对点 | 两个节点直连 | 域控 ↔ 传感器(摄像头、雷达) |
| 星型 | 交换机为中心,多节点辐射 | 座舱域多 ECU 接入 |
| 菊花链 | 节点串联 | 区域控制器链式连接 |
| 环形 | 闭环冗余 | 高可靠性智驾域 |
5. 协议栈分层架构
车载以太网协议栈遵循 OSI 七层模型,各层承载不同的车载专用协议。理解分层架构是掌握以太网通信的基础。
图 1:车载以太网协议栈分层架构

5.1 各层协议一览
| OSI 层 | 车载协议/技术 | 核心职责 | 数据单元 |
|---|---|---|---|
| L7 应用层 | SOME/IP、DoIP、XCP、DDS、HTTP | 业务逻辑、服务通信、诊断 | 服务消息 / UDS 请求 |
| L5 会话层 | SOME/IP SD(Service Discovery) | 服务注册、发现、订阅 | SD 报文 |
| L4 传输层 | TCP、UDP | 可靠/无连接传输、端口复用 | Segment / Datagram |
| L3 网络层 | IPv4/IPv6、ICMP、ARP、DHCP | 寻址、路由、地址分配 | IP Packet |
| L2 数据链路层 | Ethernet MAC、VLAN、TSN、AVB | 帧封装、时间调度、流量整形 | Ethernet Frame |
| L1 物理层 | 100/1000BASE-T1、PHY | 比特传输、信号调制 | Bit Stream |
5.2 数据封装过程
数据从应用层向下逐层封装,最终在物理层以电信号发送:
#mermaid-svg-BmS5Pl5zshrQ7NtL{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-BmS5Pl5zshrQ7NtL .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-BmS5Pl5zshrQ7NtL .error-icon{fill:#552222;}#mermaid-svg-BmS5Pl5zshrQ7NtL .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BmS5Pl5zshrQ7NtL .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BmS5Pl5zshrQ7NtL .marker.cross{stroke:#333333;}#mermaid-svg-BmS5Pl5zshrQ7NtL svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BmS5Pl5zshrQ7NtL p{margin:0;}#mermaid-svg-BmS5Pl5zshrQ7NtL .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-BmS5Pl5zshrQ7NtL .cluster-label text{fill:#333;}#mermaid-svg-BmS5Pl5zshrQ7NtL .cluster-label span{color:#333;}#mermaid-svg-BmS5Pl5zshrQ7NtL .cluster-label span p{background-color:transparent;}#mermaid-svg-BmS5Pl5zshrQ7NtL .label text,#mermaid-svg-BmS5Pl5zshrQ7NtL span{fill:#333;color:#333;}#mermaid-svg-BmS5Pl5zshrQ7NtL .node rect,#mermaid-svg-BmS5Pl5zshrQ7NtL .node circle,#mermaid-svg-BmS5Pl5zshrQ7NtL .node ellipse,#mermaid-svg-BmS5Pl5zshrQ7NtL .node polygon,#mermaid-svg-BmS5Pl5zshrQ7NtL .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BmS5Pl5zshrQ7NtL .rough-node .label text,#mermaid-svg-BmS5Pl5zshrQ7NtL .node .label text,#mermaid-svg-BmS5Pl5zshrQ7NtL .image-shape .label,#mermaid-svg-BmS5Pl5zshrQ7NtL .icon-shape .label{text-anchor:middle;}#mermaid-svg-BmS5Pl5zshrQ7NtL .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-BmS5Pl5zshrQ7NtL .rough-node .label,#mermaid-svg-BmS5Pl5zshrQ7NtL .node .label,#mermaid-svg-BmS5Pl5zshrQ7NtL .image-shape .label,#mermaid-svg-BmS5Pl5zshrQ7NtL .icon-shape .label{text-align:center;}#mermaid-svg-BmS5Pl5zshrQ7NtL .node.clickable{cursor:pointer;}#mermaid-svg-BmS5Pl5zshrQ7NtL .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-BmS5Pl5zshrQ7NtL .arrowheadPath{fill:#333333;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BmS5Pl5zshrQ7NtL .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BmS5Pl5zshrQ7NtL .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-BmS5Pl5zshrQ7NtL .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BmS5Pl5zshrQ7NtL .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-BmS5Pl5zshrQ7NtL .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BmS5Pl5zshrQ7NtL .cluster text{fill:#333;}#mermaid-svg-BmS5Pl5zshrQ7NtL .cluster span{color:#333;}#mermaid-svg-BmS5Pl5zshrQ7NtL div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BmS5Pl5zshrQ7NtL .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-BmS5Pl5zshrQ7NtL rect.text{fill:none;stroke-width:0;}#mermaid-svg-BmS5Pl5zshrQ7NtL .icon-shape,#mermaid-svg-BmS5Pl5zshrQ7NtL .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BmS5Pl5zshrQ7NtL .icon-shape p,#mermaid-svg-BmS5Pl5zshrQ7NtL .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-BmS5Pl5zshrQ7NtL .icon-shape .label rect,#mermaid-svg-BmS5Pl5zshrQ7NtL .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BmS5Pl5zshrQ7NtL .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-BmS5Pl5zshrQ7NtL .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-BmS5Pl5zshrQ7NtL :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 应用数据
SOME/IP Message
- TCP/UDP Header
Segment
- IP Header
IP Packet
- Ethernet Header
Frame (Dst MAC + Src MAC + EtherType)
PHY 调制
电信号
反向解封装(RX):PHY 收到电信号 → MAC 提取帧 → IP 层解析地址 → TCP/UDP 匹配端口 → 应用层处理业务数据。
5.3 数据链路层(L2):MAC 完整帧结构
以太网在 L2 以 MAC 帧(Ethernet Frame) 为单位传输。Wireshark 抓包、Eth Driver DMA 缓冲区、EthIf 回调中的 DataPtr,面对的都是 MAC 帧中的 Payload 及以上字段(前导码/SFD 通常由 PHY 剥离,FCS 由硬件校验)。
图 14:以太网 MAC 完整帧结构(无 VLAN Tag vs 带 VLAN Tag)

5.3.1 线上完整帧 vs MAC 帧本体
| 范围 | 包含字段 | 长度 |
|---|---|---|
| 线上完整帧(On-the-Wire) | Preamble + SFD + MAC 帧本体 | 72 ~ 1522 字节(无 VLAN) |
| MAC 帧本体 | Dst MAC ~ FCS | 64 ~ 1518 字节(无 VLAN) |
| MAC 帧本体(带 1 个 VLAN Tag) | Dst MAC ~ FCS | 68 ~ 1522 字节 |
注意 :IEEE 802.3 规定的 64 字节最小帧长 指的是 MAC 帧本体(从目的 MAC 到 FCS),不含 Preamble/SFD。Payload 不足 46 字节时,由 Padding(填充) 补齐。
5.3.2 无 VLAN Tag 的标准以太网帧
这是车载 ECU 最常见的帧格式(EtherType 直接跟在源 MAC 之后)。以太网首部 (Dst MAC + Src MAC + EtherType)共 14 byte:
┌──────────────┬─────┬──────────────────────────────┬─────────────┬─────┐
│ Preamble │ SFD │ 以太网首部 (14 byte) │ Payload │ FCS │
│ 7 byte │1 byte│ Dst MAC(6)+Src MAC(6)+EthType(2)│ 46~1500 byte│4 byte│
│ (PHY处理) │ │ EtherType 例: 0x0800 IPv4 │ │ │
└──────────────┴─────┴──────────────────────────────┴─────────────┴─────┘
MAC 帧本体:64 ~ 1518 byte
各字段说明:
| 字段 | 长度 | 说明 | 车载典型值 |
|---|---|---|---|
| Preamble | 7 byte | 前导码,用于 PHY 时钟同步 | 固定 0x55 × 7,软件层通常不可见 |
| SFD | 1 byte | 帧起始定界符 | 固定 0xD5 |
| Destination MAC | 6 byte | 目的 MAC 地址 | 单播 / 广播 FF:FF:FF:FF:FF:FF |
| Source MAC | 6 byte | 源 MAC 地址 | ECU 出厂烧录或配置 |
| EtherType | 2 byte | 上层协议类型 | 0x0800 IPv4、0x0806 ARP、0x86DD IPv6 |
| Payload | 46~1500 byte | 上层数据(含 Padding) | IP Packet、ARP 报文等 |
| FCS | 4 byte | CRC-32 帧校验 | 硬件计算与校验,错帧丢弃 |
常见 EtherType 速查:
| EtherType | 上层协议 | 车载场景 |
|---|---|---|
0x0800 |
IPv4 | DoIP、SOME/IP、XCP 等主流业务 |
0x0806 |
ARP | IP→MAC 地址解析 |
0x86DD |
IPv6 | 新一代域控 |
0x8100 |
VLAN Tag(TPID) | 见下文带 Tag 帧 |
0x88F7 |
gPTP (802.1AS) | TSN 时间同步 |
5.3.3 带 VLAN Tag 的以太网帧(802.1Q)
当帧经过车载以太网交换机 或 ECU 配置了 VLAN 时,在源 MAC 与 EtherType 之间插入 4 字节 VLAN Tag 。以太网首部 扩展为 18 byte(Dst MAC + Src MAC + VLAN Tag + EtherType),EtherType 仍在首部末尾、Payload 之前:
┌──────────┬──────────┬────────────────────────────────────┬─────────────┬─────┐
│ Dst MAC │ Src MAC │ VLAN Tag (4 byte) │ EtherType │ Payload │ FCS │
│ 6 byte │ 6 byte │ TPID 0x8100 + TCI │ 2 byte │ 46~1500 byte│4 byte│
└──────────┴──────────┴────────────────────────────────────┴─────────────┴─────┘
以太网首部 18 byte(含 VLAN Tag + EtherType)
MAC 帧本体:68 ~ 1522 byte
易错点 :802.1Q 是在源 MAC 之后 插入 Tag,EtherType 仍保留在 Tag 之后 ,并非被 Tag 替代。TPID
0x8100占用的是无 Tag 帧中 EtherType 的位置,但逻辑上仍须再跟一个真正的 EtherType(如0x0800)标识上层协议。
VLAN Tag 4 字节结构:
| 子字段 | 长度 | 说明 |
|---|---|---|
| TPID (Tag Protocol ID) | 16 bit | 固定 0x8100,标识后续为 VLAN Tag |
| PCP (Priority Code Point) | 3 bit | 优先级(0~7),TSN/AVB 流量分类用 |
| DEI (Drop Eligible Indicator) | 1 bit | 丢弃许可指示 |
| VID (VLAN Identifier) | 12 bit | VLAN ID(0~4095),0 和 4095 有特殊含义 |
VID 示例(车载规划示意):
| VLAN ID | 逻辑网络 | 典型业务 |
|---|---|---|
| 10 | 诊断网络 | DoIP、OBD 以太网 |
| 20 | ADAS 域 | 摄像头、雷达数据 |
| 30 | 座舱域 | IVI、 SOME/IP 服务 |
| 100 | 台架测试 | 开发调试隔离 |
5.3.4 无 Tag vs 带 Tag 对比
| 对比项 | 无 VLAN Tag | 带 1 个 VLAN Tag (802.1Q) |
|---|---|---|
| 以太网首部长度 | 14 byte(MAC 12 + EtherType 2) | 18 byte(MAC 12 + Tag 4 + EtherType 2) |
| MAC 帧本体最小长度 | 64 byte | 68 byte(Tag 占 4 byte) |
| MAC 帧本体最大长度 | 1518 byte | 1522 byte |
| EtherType 位置 | 源 MAC 后偏移 12 byte | 源 MAC 后偏移 16 byte |
| 线上最大帧长 | 1522 byte(含 Preamble+SFD) | 1526 byte |
| Payload 最大 | 1500 byte | 1500 byte(不变) |
| 交换机行为 | 按 MAC 转发 | 按 VID + MAC 隔离转发 |
| Wireshark 显示 | 直接显示 EtherType | 显示 VLAN ID,再显示 EtherType |
Payload 仍为 1500 byte:VLAN Tag 占用的是 MAC 首部空间,不是 Payload 空间。因此带 Tag 帧的 MAC 本体最大长度从 1518 增至 1522,而非压缩 IP 包。
5.3.5 双层 Tag(Q-in-Q,了解即可)
部分骨干交换机场景可能出现 双层 VLAN Tag(SPVLAN),MAC 帧本体再增加 4 byte(最大 1526 byte)。车载 ECU 端较少直接发送 Q-in-Q,但域控/交换机背板可能遇到。EthIf RX 需正确剥离 Tag 层数,否则 TcpIp 无法解析 IP。
5.3.6 RX 解封装与 AUTOSAR 映射
图 15:MAC 帧接收解封装流程(含 VLAN 判断)
#mermaid-svg-pZVC8RMJfY40rvFQ{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-pZVC8RMJfY40rvFQ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-pZVC8RMJfY40rvFQ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-pZVC8RMJfY40rvFQ .error-icon{fill:#552222;}#mermaid-svg-pZVC8RMJfY40rvFQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pZVC8RMJfY40rvFQ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-pZVC8RMJfY40rvFQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pZVC8RMJfY40rvFQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pZVC8RMJfY40rvFQ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-pZVC8RMJfY40rvFQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pZVC8RMJfY40rvFQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pZVC8RMJfY40rvFQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pZVC8RMJfY40rvFQ .marker.cross{stroke:#333333;}#mermaid-svg-pZVC8RMJfY40rvFQ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pZVC8RMJfY40rvFQ p{margin:0;}#mermaid-svg-pZVC8RMJfY40rvFQ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-pZVC8RMJfY40rvFQ .cluster-label text{fill:#333;}#mermaid-svg-pZVC8RMJfY40rvFQ .cluster-label span{color:#333;}#mermaid-svg-pZVC8RMJfY40rvFQ .cluster-label span p{background-color:transparent;}#mermaid-svg-pZVC8RMJfY40rvFQ .label text,#mermaid-svg-pZVC8RMJfY40rvFQ span{fill:#333;color:#333;}#mermaid-svg-pZVC8RMJfY40rvFQ .node rect,#mermaid-svg-pZVC8RMJfY40rvFQ .node circle,#mermaid-svg-pZVC8RMJfY40rvFQ .node ellipse,#mermaid-svg-pZVC8RMJfY40rvFQ .node polygon,#mermaid-svg-pZVC8RMJfY40rvFQ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pZVC8RMJfY40rvFQ .rough-node .label text,#mermaid-svg-pZVC8RMJfY40rvFQ .node .label text,#mermaid-svg-pZVC8RMJfY40rvFQ .image-shape .label,#mermaid-svg-pZVC8RMJfY40rvFQ .icon-shape .label{text-anchor:middle;}#mermaid-svg-pZVC8RMJfY40rvFQ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-pZVC8RMJfY40rvFQ .rough-node .label,#mermaid-svg-pZVC8RMJfY40rvFQ .node .label,#mermaid-svg-pZVC8RMJfY40rvFQ .image-shape .label,#mermaid-svg-pZVC8RMJfY40rvFQ .icon-shape .label{text-align:center;}#mermaid-svg-pZVC8RMJfY40rvFQ .node.clickable{cursor:pointer;}#mermaid-svg-pZVC8RMJfY40rvFQ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-pZVC8RMJfY40rvFQ .arrowheadPath{fill:#333333;}#mermaid-svg-pZVC8RMJfY40rvFQ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-pZVC8RMJfY40rvFQ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-pZVC8RMJfY40rvFQ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pZVC8RMJfY40rvFQ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-pZVC8RMJfY40rvFQ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pZVC8RMJfY40rvFQ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-pZVC8RMJfY40rvFQ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-pZVC8RMJfY40rvFQ .cluster text{fill:#333;}#mermaid-svg-pZVC8RMJfY40rvFQ .cluster span{color:#333;}#mermaid-svg-pZVC8RMJfY40rvFQ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-pZVC8RMJfY40rvFQ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-pZVC8RMJfY40rvFQ rect.text{fill:none;stroke-width:0;}#mermaid-svg-pZVC8RMJfY40rvFQ .icon-shape,#mermaid-svg-pZVC8RMJfY40rvFQ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pZVC8RMJfY40rvFQ .icon-shape p,#mermaid-svg-pZVC8RMJfY40rvFQ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-pZVC8RMJfY40rvFQ .icon-shape .label rect,#mermaid-svg-pZVC8RMJfY40rvFQ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pZVC8RMJfY40rvFQ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-pZVC8RMJfY40rvFQ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-pZVC8RMJfY40rvFQ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 否
是
否 无 Tag
是 有 Tag
PHY 收到比特流
MAC/GETH 收帧
校验 FCS
FCS 正确?
丢弃错帧
Eth_RxIndication / EthIf_RxIndication
Dst MAC 字段后
是否为 0x8100?
EtherType 在偏移 12
0x0800 → IPv4
解析 VID / PCP
剥离 4 byte Tag
EtherType 在偏移 16
0x0800 → IPv4
TcpIp_RxIndication
L3 IP 解析 → L4 Port 解复用
| 概念 | AUTOSAR 模块 / 配置 | 说明 |
|---|---|---|
| MAC 帧收发 | Eth Driver (MCAL) | DMA 描述符、FCS 硬件校验 |
| VLAN 剥离/插入 | EthIf | EthIfVlanId 配置,RX 时剥离 Tag 上报上层 |
| Frame Owner | EthIf FrameOwnerConfig |
按 EtherType 决定 IPv4/AVB 帧交给 TcpIp |
| RX 回调数据指针 | EthIf_RxIndication(DataPtr) |
通常指向 IP 首部或以太网载荷起始(取决于 VLAN 配置) |
| 交换机 VLAN | EthSwt(可选) | 管理交换机端口 VLAN 映射 |
调试提示(Wireshark):
- 无 Tag 帧:
Ethernet II直接显示Type: IPv4 (0x0800) - 有 Tag 帧:先显示
802.1Q VLAN ID: 100,再显示内层Type: IPv4 (0x0800) - 若抓包看到
0x8100但读不到 IP,检查 ECU 是否未配置 VLAN 剥离或 VID 不匹配
未完待续~