Dcm 多诊断传输路径:CAN 与 DoIP 共用诊断服务¶
1. 核心思路¶
一个 ECU 可以在项目配置允许的前提下,通过不同传输路径提供相同的 UDS 服务。例如 UDS over CAN 经过 CanTp,UDS over DoIP 经过 DoIP 传输模块;Dcm 的连接/协议配置负责把不同入口映射到诊断服务处理。
不要把“CAN 和 DoIP 使用同一套 Dcm 服务”理解为“只需配置一条连接”。两个入口的传输层、PDU、路由和连接关系必须分别核对。
2. 逻辑路径¶
flowchart TD
A[Tester: UDS over CAN] --> B[Can / CanIf]
B --> C[CanTp]
C --> E[PduR / Dcm 连接映射]
D[Tester: UDS over DoIP] --> F[Ethernet / DoIP]
F --> E
E --> G[Dcm DSL: 按连接识别入口]
G --> H[Dcm 服务分发与处理]
H --> I[共享诊断服务 / DID / Routine]
I --> J[对应连接的响应路径]
此图展示概念路径。实际模块、路由方向、接口和连接参数要依据所用 AUTOSAR release、供应商实现及项目 ARXML 确认。
3. 配置检查表¶
- 每个诊断入口都定义了正确的传输协议与连接关系。
- CAN 入口的 CanTp Rx/Tx PDU、PduR 路由和 Dcm 连接映射闭环。
- DoIP 入口的 DoIP 诊断消息路由、PduR 映射和 Dcm 连接映射闭环。
- 每条连接的寻址方式、Tester/ECU 地址、响应 PDU 与超时参数符合项目约定。
- Dcm 服务、Session、Security、DID、Routine 和 Mode 条件与预期一致。
- 两条路径分别执行正常请求、负响应、超时和断链测试。
- 验证同一服务在两条路径上的权限、会话、安全状态及异步处理是否符合项目要求;不要未经验证就假设所有状态完全独立或完全共享。
4. 如何定位问题¶
- 确认测试请求确实到达对应物理网络。
- 追踪传输层接收回调和 PduR 路由,确认请求被送到预期的 Dcm 连接。
- 在 Dcm 侧记录连接/协议标识、服务 ID、子功能、会话、安全等级和 NRC。
- 对响应反向追踪到正确的传输连接,特别排查“服务已执行但响应发不回去”的情况。
- 分别验证 CAN 与 DoIP,不要因为一条路径通过就推断另一条路径也正确。