Ram ProMaster 2022 三总线地图:125 kbit/s 实测与 16 个 UDS 端点

作者:

在

结论:2022 Ram ProMaster 的被动 CAN 工作必须按三条独立总线规划:C-CAN(OBD 引脚 6/14,500 kbit/s)、B-CAN / CAN IHS(DLC 引脚 3/11,125 kbit/s 实测)和 CAN CH(DLC 引脚 12/13,500 kbit/s 实测)。这批记录里登记的 UDS 端点共 16 个,全部走 29-bit ISO-TP normal-fixed 寻址。真正决定能不能落地的不是「能读多少帧」,而是三条边界:OEM 文档里的 CAN-B 50K 说法不能用来配波特率;B-CAN 上 0x760 的被动里程只被认可为中控模块的本地副本;0x1F4 字节 4 高位已被完整复核驳回,不能当当前挡位。

三条总线的速率、引脚与证据来源

三条总线里只有 C-CAN 的 500 kbit/s 同时有 OEM 文档和实测两个来源,另外两条的通信参数都来自本机实测。B-CAN 是最容易被带偏的一条:该车型的 COMMUNICATION / CAN BUS DESCRIPTION 明确把 CAN-C 写成 500K、CAN-B 写成 50K,但这份文档用的是 C-1 到 C-8 与 BH 这套分支命名,与 DLC 图的 CAN C/CH/IHS 命名体系并不对齐。2026-07-20 在引脚 3/11 上的被动捕获给出 125 kbit/s 且零 RX 错误,因此以实测为准,文档里的 50K 只保留为线索。

总线 速率 引脚 接入方式 证据边界
C-CAN / HS-CAN 500 kbit/s OBD 6/14 经 SGW 旁通的内部 C-CAN tap,Board A CAN1 角色 动力总成与诊断;法规要求的 OBD-II Mode 01 PID 不经此旁通
B-CAN / CAN IHS 125 kbit/s(实测) DLC 3/11 标签转接线的 B-CAN 支路,Board A CAN2 角色 舒适与车身;派生配置的 8 个目标里 4 个已应答,另外 4 个仍超时
CAN CH(第二条高速总线) 500 kbit/s(实测) DLC 12/13 灰色 12/13 适配器,Board B CAN1 角色 被动捕获零收发错误,同时完成 ABS、EPS、HALF、ORC 的身份读取

永久安装用两块双通道适配器承载三个角色(gs_usb,USB VID:PID 1d50:606f):C-CAN 与 B-CAN 分别落在第一块的 dev_id 0(CAN1)和 1(CAN2),CAN CH 在第二块的 dev_id 0,剩下那一路保持 down。四块板载红色终结跳线全部拆除,因为三个 tap 接入的是车内已经终结的网络;虽然适配器支持 CAN FD,暴露出来的三条总线一律配成 classical CAN、FD off。角色由 USB 序列号加 dev_id 解析,Linux 的 canN 编号只是枚举顺序,不作为身份依据。

16 个 UDS 端点的总线分布与行为差异

下表是已登记的端点。它们的 DID 命名空间按 ECU 隔离——雷达的某个 DID 和其他模块的同名 DID 没有任何关系,所以不要把这些行合并成一张「整车 DID 表」。

键 模块 总线 TX → RX 已记录的行为
radar_acc Bosch ACC 雷达 C-CAN 18DA2AF1 → 18DAF12A 扫描途中切断点火仍会 ACK;车速只能走内部 DID,OBD PID 不可用
pcm 动力总成模块(3.6L) C-CAN 18DA10F1 → 18DAF110 固定 DLC 8 零填充是已知可用配方;遗留会话请求已两次验证
rf_hub RF Hub(TPMS / RKE) C-CAN 18DAC7F1 → 18DAF1C7 点火 OFF 仍应答,属 KL30 常电,是驻车取电压的入口
tcm ZF 948TE 变速箱 C-CAN 18DA18F1 → 18DAF118 读取 211B–2132、2136–213E 与 026B 均为正向
shifter 电子换挡器 C-CAN 18DA1FF1 → 18DAF11F 身份已读取,可用于模块级区分
bcm_ccan 车身控制模块 C-CAN 端点 C-CAN 18DA40F1 → 18DAF140 执行类请求受电源模式门控,钥匙 OFF 常见否定响应
cluster 组合仪表 IPC C-CAN 18DA60F1 → 18DAF160 已把若干仪表符号逐项绑定到具体 DID
telematics 远程通信盒模块 C-CAN 18DAC6F1 → 18DAF1C6 唯一一个车上后台诊断客户端从不查询的已注册模块
ics_bcan 中控面板 B-CAN 18DA85F1 → 18DAF185 里程 DID 2001 以 0.200 Hz 轮询,收到 302/302 正向应答
uconnect_bcan 主机 / 显示屏 B-CAN 18DA87F1 → 18DAF187 身份与阶段性故障码家族匹配
climate_bcan 自动空调模块 B-CAN 18DA98F1 → 18DAF198 所选变体未通过校验,其仪表标签不可直接套用
emcm2_bcan 中控菜单 / 音量按键 B-CAN 18DAD9F1 → 18DAF1D9 设备子类型匹配加上 OEM CAN-IHS 角色
abs_canch ABS / ESC CAN CH 18DA28F1 → 18DAF128 历史偶发故障码,最后一次测试通过
eps_canch 电动助力转向 CAN CH 18DA30F1 → 18DAF130 无故障报告
half_canch 前视摄像头辅助模块 CAN CH 18DA31F1 → 18DAF131 同一身份还可通过网关在 C-CAN 侧被动读到
orc_canch 乘员约束控制器 CAN CH 18DAC0F1 → 18DAF1C0 无故障报告

网关路由是这张表的隐藏前提:在 C-CAN 上发给 CAN CH 目标的物理请求会被网关逐帧转发,中位延迟 0.31 ms(51 次交互,落在 0.23–2.78 ms 区间),网关还会在 CAN CH 侧替换成自己的流控帧;ECU 应答被复制回 C-CAN 时目标字节被改写为 F2,所以 C-CAN 上看到的 18DAF2xx 是网关副本,不是第二个诊断仪。另有一条与时统高度相关的事实:车上存在一个后台诊断客户端,会在外部 F1 流量静默 92 秒以上后才启动只读扫描,一旦外部轮询恢复便在 1 至 2 秒内终止;做被动相关性分析时必须把这些窗口单独标出来。

C-CAN 广播帧:可以直接进遥测的那部分

下面这张表只收已经 allowlist 进遥测的信号。入选判据是「是否与同类 DID 做过定量化对照」,而不是看上去是否合理——这也是为什么同属 0x100 的扭矩字节还停在候选名单里。

ID 字节 / 位 解码式 含义 验证强度
0x2EF 帧存在性 无 点火 ON 门控 已验证;帧计数门控曾失败,存在性门控有效
0x41A byte0 4.0 + raw × 0.05 V 系统电压 已验证,含驻车唤醒场景
0x41D byte2 raw × 4 kPa 机油压力 与内部 DID 逐字节镜像,怠速 733/733 样本 R² 0.9998047
0x2ED byte0 raw − 40 °C 冷却液温度 怠速 R² 接近 1.0,负载工况 1,351/1,356 样本
0x0FC bytes0–1 BE u16 屏蔽低两位后除以 4 rpm 发动机转速 负载工况 1,351/1,356 样本 R² 0.9999794
0x0F0 bytes3–4 高 11 位 右移 5 位后减 500 Nm 变速箱请求扭矩上限 236 样本 R² 0.99999986
0x1F7 打包 17 位:byte0 bit0 加 bytes1–2 raw / 32 rpm 变速箱输出轴转速 低于 16 位边界 R² 0.99999578
0x1F7 byte3 有符号 i8 0.375 × raw + 57 °C 变速箱油温 多次 RMSE 低于 0.89 °C,另含一次预热反例
0x1F7 bytes4–5 BE u16 raw / 2 rpm 涡轮 / 输入轴转速 盲区复原 2,014 样本 R² 0.99996705
0x101 byte0 bit0、byte1 左移 3 位、byte2 高 5 位 raw / 16 km/h 瞬时车速 由变速箱侧证据裁定为 /16,否决早期的 /32 候选
0x0EE bytes0–1 BE u16 raw / 128 km/h 独立高分辨率车速 169 样本 R² 0.9990360
0x5A0 byte3 / byte2 mph 与四舍五入后的 km/h ACC 设定车速 两字节在 1 km/h 内一致才允许发布
0x0E0 byte0 raw mph 限速标志识别值 DLC 4、10 Hz,读数为 0 时不发布

一处值得单独说明的工程约定:2026-07-19 的离线分析确认 0x101 的 bytes0–2 是瞬时车速,而不是旧笔记里写的里程累加器。两条日志分别给出 539,982 帧(约 99.998 Hz,原始值域 0–2153)和 224,137 帧,帧内 CRC-8/SAE-J1850 在 224,137 帧上全部匹配。0x0EE 独立跟踪同一物理量,回归关系约为 0x0EE_raw ≈ 8.0099 × speed_raw − 11.6,移动样本相关系数 0.9999919。两者 integrals 在另一条记录的差值为 0.007 km,证明的是彼此关系,不是物理量纲。

被驳回的候选与还没闭环的边界

这批记录的价值有一半来自「已经否掉什么」。下面四项在别的项目里很容易被当成常识采用,但在这里都有明确的驳回或降级理由。

候选 结论 决定性证据
0x1F4 byte4 高位 = 当前挡位 驳回 完整复核扫过 4,187,827 帧得到 42,574 对有效轴速比样本;开发段里 21,725 对取值为 7、6,548 对取值为 8,但两组中位数都是 0.699,而 OEM 八挡为 0.580
B-CAN 0x760 = 整车里程 仅认可为中控本地副本 对 302 次内部里程应答,冻结公式为「十分之一公里值等于 10 倍被动原始值」;174 次邻近匹配 p95 误差 0 计数,但与仪表仍有约 11.6 mi 差
0x417 bytes2–3 = 变速箱油温 驳回 两次独立盲驾都不支持该假设,最佳 R² 仅 0.44824 且斜率为负
0x100 bytes0–1 = 实际扭矩 保留候选 2,014 样本盲区分段里 overrun 段 R² 仅 0.63031,不能当作实际扭矩发布

里程那条还要多说一句:2026-08-30 的三总线行驶记录里,中控计数器在首个 25 分钟窗口增加 23.0 km(14.291537 mi),独立车速积分为 14.365140 mi,相差 0.512%;跨钥匙周期的第二次比对里,中控增加 116.817 mi、积分增加 116.511358 mi,相差 0.262%。这两组数字证明的是相对刻度,不是绝对基线。

正面闭环的案例也有一个,就是机油寿命。在驻车、点火 ON、发动机 OFF 的条件下,向 PCM 发出一条固定 DLC 8 零填充请求 03 22 21 85 00 00 00 00,物理地址为 18DA10F1 → 18DAF110,收到正向应答 62 21 85 52,无符号字节换算后为 82%。这次读取没有会话切换、没有 TesterPresent、没有流控帧,C-CAN 发送计数仅从 127233 增加到 127234,三条总线的收发错误计数保持为零。存在 limits 的工程约定是:参数超出 0 到 100 时置为不可用,而不是裁剪成百分比。

常见问题

OEM 文档写明 CAN-B 是 50 kbit/s,为什么实际按 125 kbit/s 配置?

因为那份文档使用的是另一套分支命名(C-1 到 C-8 与 BH),与诊断口的 CAN C/CH/IHS 命名体系并不对齐,其 50K 描述更可能指向另一条内部支路。2026-07-20 的被动捕获在引脚 3/11 上测得 125 kbit/s 且零 RX 错误,2026-07-25 的灰色适配器捕获又独立在引脚 12/13 上确认 500 kbit/s,两者都以实测作为配置依据。

B-CAN 上的 0x760 里程值能不能替代仪表里程?

不能。它与中控内部计数器的关系式已经冻结并复制过:十分之一公里值等于 10 倍被动原始值,174 次邻近匹配的 p95 误差为 0 计数、平均绝对误差 0.1724 计数;相对刻度也经两次独立检验,分别为 0.512% 与 0.262%。但它与仪表的绝对读数仍相差约 11.6 mi,因此只能当中控本地副本使用,不能据此摘掉仪表上的星标。

为什么读取 PCM 机油寿命不需要切换诊断会话?

2026-10-03 的实车验证显示,在驻车、点火 ON、发动机 OFF 条件下发出一条零填充请求,就拿到了正向应答 62 21 85 52。但这不能推广成「默认会话支持 22 读取」的普遍结论:继承会话没有被正面识别,且同一 PCM 的其他 DID 曾明确要求遗留会话。工程上的处理是沿无会话切换的配方发一次,被拒绝就上报需要会话并就此停止。

0x1F4 的字节 4 高位能不能直接当成当前挡位?

不能。2026-09-22 的两秒样本曾把它对上七挡比值 0.699,但完整复核扫过 4,187,827 帧、取到 42,574 对有效样本后,出现了大量比值稳定在 2.842、1.909、1.382 而该位仍为 7 的情形;开发段里取值为 8 的 6,548 对,中位数同样是 0.699 而不是八挡的 0.580。这些都是稳定工况下的反例,不是换挡瞬态。

C-CAN 上出现 18DAF2xx 帧意味着什么?

意味着那是网关把 CAN CH 上某个 ECU 的应答复制回 C-CAN 的副本,目标字节从 F1 改写为 F2,并不是第二个诊断仪在发话。转发延迟中位 0.31 ms,51 次交互落在 0.23–2.78 ms 区间,网关还会在 CAN CH 侧替换自己的流控帧。做被动归因时不要把它算成外部工具的流量。

延伸阅读

参考资料

  • 项目 01 —— public-can-dbc-datasets/additional/jakeiwen-promaster-2022/docs/bus-map.md(三条总线的速率、引脚与证据,16 个 UDS 端点,以及三条总线的广播帧表)
  • 项目 01 —— public-can-dbc-datasets/additional/jakeiwen-promaster-2022/findings/2026-07-19_ccan_drive_signal_analysis.md(0x101 与 0x0EE 车速字段的定位与两条日志的样本量)
  • 项目 01 —— public-can-dbc-datasets/additional/jakeiwen-promaster-2022/findings/2026-08-30_three_bus_drive_odometer_validation.md(中控里程与被动 0x760 的冻结公式及跨钥匙周期复制)
  • 项目 01 —— public-can-dbc-datasets/additional/jakeiwen-promaster-2022/findings/2026-09-22_gear_and_oil_life_offline.md(挡位候选驳回的完整复核数据与机油寿命闭环)

免责声明

本文所有波特率、引脚、CAN ID、字节位定义与转换系数均来自一台 2022 款 Ram ProMaster 的公开逆向记录,未经独立实车复现;不同年款、市场区域与 ECU 软件版本可能存在差异,标注为「已验证」的结论仅指在该车当时的捕获条件下成立。本文不构成对任何车辆执行主动诊断、刷写或执行器操作的授权,涉及安全相关用途请以实际测量与制造商资料为准。

更新记录

  • 2026-10-15 初稿

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注