1. 课程导入与工程环境搭建
车载以太网已经从高端车型的“选配总线”演变为域控制器、中央计算平台和智能座舱的骨干网络。与传统CAN相比,它带来100BASE-T1/1000BASE-T1单对双绞线、全双工交换、IP化通信和SOME/IP、DoIP、TSN等一整套协议栈,同时也把测试与诊断的复杂度提升了一个量级:链路层要验证物理信号质量,网络层要验证交换机转发与VLAN隔离,应用层要验证SOME/IP服务发现与序列化,诊断层还要验证DoIP网关路由与UDS会话。CANoe配合以太网选件和VN5640系列接口,正是把这些层次放进同一个工程里统一观测、统一激励、统一判定的工具链。
一、工程目标:把“看不见的以太网”变成可观测对象
本课程要建立的工程目标可以概括为三件事。第一是可观测:把车载以太网链路上的原始帧、SOME/IP报文、DoIP报文、UDS诊断请求与响应,按时间戳统一记录到Trace窗口,并能按VLAN、IP、端口、服务ID过滤。第二是可激励:通过CAPL或Panel向被测ECU发送仿真报文、服务调用和诊断请求,模拟缺失节点或网关行为。第三是可判定:用Test Module或Test Case把“期望值”写成自动断言,例如“上电后3秒内收到SOME/IP OfferService”“诊断会话切换响应码为0x50”,让测试结果可重复、可回归。
这三件事决定了环境搭建不是“装个软件”,而是要让硬件接口、驱动、通道映射、协议栈配置和被测件供电形成一个闭环。下面这张图给出了从PC到被测ECU的完整信号链与配置关系,后续所有章节的测试都建立在这条链路上。
二、软件安装:选件决定能力边界
安装CANoe时,安装器会列出可选组件。对车载以太网测试与诊断而言,以下选件必须勾选,否则后续章节的工程无法打开或功能缺失:
- CANoe .Ethernet:以太网基础支持,提供以太网通道、帧收发、VLAN与统计功能。
- Ethernet Option .SOME/IP:SOME/IP 服务发现、方法调用、事件订阅的解析与仿真。
- Ethernet Option .DoIP:DoIP 报文解析、诊断连接管理、路由激活。
- CANoe .Diagnostics:UDS/OBD 诊断描述(CDD/ODX)导入与诊断控制台。
- CANoe .Test Feature Set:Test Module、Test Case、断言与报告生成。
安装完成后,用 Help → About CANoe 确认版本与已授权选件。若使用 Vector 硬件,还需安装 Vector Driver Setup,它负责把 VN5640 注册为系统设备。安装后可在设备管理器中看到 Vector VN5640 条目,若出现黄色感叹号,通常是驱动版本与硬件固件不匹配,需要用 Vector Hardware Configurator 更新固件。
三、硬件连接与通道配置
VN5640 提供4路100/1000BASE-T1通道,每路可独立配置为主模式(Master)或从模式(Slave)。车载以太网链路中,交换机端口通常配置为主模式,ECU 侧为从模式;若把 VN5640 串入链路做监听,需要根据被测拓扑决定主从。配置步骤如下:
- 用 USB 3.0 线连接 VN5640 与 PC,接通 VN5640 电源,观察状态灯由红转绿。
- 打开 Vector Hardware Configurator,在
VN5640 → Ethernet下为每个通道设置Master或Slave,并设置链路速率(100 Mbit/s 或 1000 Mbit/s)。 - 用 100BASE-T1 双绞线把 VN5640 通道1连接到被测 ECU 的以太网口,注意 T1 线序与普通以太网不同,不能混用 RJ45 网线。
- 给被测 ECU 提供 KL30 常电与 KL15 点火信号,确认 ECU 上电后 PHY 链路建立(VN5640 对应通道 Link 灯常亮)。
在 CANoe 中新建工程后,进入 Simulation Setup,右键 Networks 添加以太网网络,命名为 ETH_DUT,并把 VN5640 的通道1映射到该网络。随后在 Network Hardware Configuration 中确认通道、主从模式、速率与硬件配置器一致。此时点击 CANoe 的闪电图标启动测量,Trace 窗口应能看到链路层帧;若没有任何帧,优先检查主从模式是否与 ECU 匹配、T1 线是否插紧、ECU 是否已上电。
四、第一个可运行工程:从空工程到能收到报文
不要一开始就导入完整的 SOME/IP 数据库。建议按“先通链路、再通协议、最后加断言”的顺序搭建。第一步只验证物理链路与帧收发:新建一个空配置,添加以太网通道,启动测量,在 Trace 中观察是否有 ARP、ICMP 或 SOME/IP 服务发现报文。若 DUT 上电后会主动发送 SOME/IP OfferService,Trace 中应出现 UDP 目的端口 30490 的报文,这是链路已通的直接证据。
第二步配置 IP 与 VLAN。假设示例工程中 DUT 的 IP 为 192.168.10.20/24,VLAN ID 为 100,则需要在 CANoe 的以太网网络配置中为本地协议栈设置同网段地址 192.168.10.10/24,并在发送帧时打上 VLAN 100 标签。若 VLAN 不匹配,交换机会直接丢弃帧,Trace 中只能看到本机发送、看不到 DUT 响应,这是排障时最常见的现象之一。
第三步加入一个最小 CAPL 节点,周期性发送 ICMP Echo Request 或 SOME/IP 服务发现报文,验证双向通信。下面是一段可直接放入 CAPL 节点的示例,用于每 1000 ms 发送一次 SOME/IP 服务发现报文:
variables
{
msTimer tSend;
byte sddPayload[20] = {0x01,0x01,0x02,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00};
}
on start
{
setTimer(tSend, 1000);
}
on timer tSend
{
ethernetPacket pkt;
pkt.udp.source = 30490;
pkt.udp.destination = 30490;
pkt.ipv4.source = ipGetAddress("ETH_DUT");
pkt.ipv4.destination= "224.244.224.245";
pkt.udp.dataLength = elcount(sddPayload);
pkt.udp.data = sddPayload;
output(pkt);
setTimer(tSend, 1000);
}
启动测量后,若 Trace 中能看到本机发出的 UDP 30490 报文,并且 DUT 返回 OfferService 或 SubscribeEventgroupAck,说明链路、IP、VLAN、SOME/IP 端口四层都已打通。此时把该工程保存为 ETH_Diag_Base.cfg,作为后续章节的基线工程。
五、环境自检清单
| 检查项 | 期望结果 | 不通过时的排查方向 |
|---|---|---|
| CANoe 选件授权 | About 中显示 Ethernet、SOME/IP、DoIP、Diagnostics、Test | 重新运行安装器勾选选件,或检查 License |
| VN5640 驱动 | 设备管理器无感叹号,Hardware Configurator 可识别 | 重装 Vector Driver Setup,更新固件 |
| 主从模式 | 与 DUT 侧相反,Link 灯常亮 | 交换主从设置,检查 T1 线序 |
| VLAN 与 IP | Trace 中可见 DUT 响应帧 | 核对 VLAN ID、IP 网段、子网掩码 |
| SOME/IP 端口 | UDP 30490 有 OfferService | 检查服务发现配置与 DUT 上电时序 |
| 供电与唤醒 | KL30/KL15 正常,ECU 进入工作状态 | 测量电压,检查唤醒信号 |