先说结论
乘用车/轻型车总线,几乎一律选 11 位标准帧。 卡车、客车、工程机械这类已经在说 J1939 的总线,
29 位扩展帧往往是唯一不跟全网打架的选择。
这就是一句话的答案。下面是为什么,以及每种选择各自要付什么代价。
到底差在哪
| 11 位标准帧 | 29 位扩展帧 | |
|---|---|---|
| 标识符空间 | 2,048 个 | 约 5.36 亿个 |
| 谁在用 | 乘用车、轻型车、多数 OEM 自定义总线 | J1939、NMEA 2000、多数重卡与工程机械 |
| 胎压典型用法 | 少数几个 ID,一组轮一个 | J1939 格式报文集,按 PGN 布局 |
| 滤波器设置 | 简单、廉价控制器也能做 | 需要 32 位 mask/match —— 多数 CAN 外设支持,但必须配 |
| 仲裁优先级 | 同等 ID 下更高 | 更低;11 位帧仲裁永远赢 |
最后一行最常被忽略。仲裁是按位比较的,而 11 位帧用显性 IDE 位 → 一条繁忙的 11 位总线可以把 29 位流量饿死。
在 11 位报文密集且持续的设备上,扩展帧的胎压节点可能每次想发都输掉仲裁。**这不是接收器故障,也不会报错 ——
数据只是来得晚。**
什么时候必须选 29 位
如果整机厂已经在跑 J1939,跟着它走不是为了好看,而是为了谁在听。网关、车机、诊断工具,
它们已经在解 29 位帧、滤波器已经按那个空间设好。加一个 11 位节点,意味着每个消费方都要再加一套滤波器,
而且车辆诊断工具根本看不到胎压数据。
我们做 29 位扩展帧,并且已经在主要整机厂的工程机械集成里部署过 J1939 格式的报文集。
对你的意义是:报文布局可以对齐你的参数集或 DBC,而不是给你一张固定又别扭的表。
它不意味着通过 J1939 认证 —— 我们没有一致性证书,若项目明确要求,我们会如实说。
什么时候选 11 位更省事
轻型车、挂车模块、后装控制器、改装项目,11 位在每个方向上都更简单:
- ID 规划轻松:只要几个 ID,空间 2,048 宽,可以划一小段整齐的区间;
- 滤波器简单:很多小 MCU 处理 32 位扩展滤波器很吃力;
- 工具友好:手持 CAN 分析仪、串口转 CAN 桥、车间常见的扫描仪,都优先支持 11 位;
- 波特率通常现成:轻型车 500 kbps 很常见,胎压节点挂上去很自然。
代价是将来兼容性:如果这个车队以后接入基于 J1939 的车队平台,就得有人做转换。
如果这个可能性存在,现在就多花一天做 29 位。
最贵的一个错:按接收器选帧,而不是按总线选帧
接收器一机一个接口、出厂固定 —— CAN 是选项之一,而帧格式属于这个配置的一部分。
所以这件事必须在生产前定,不能到调试再改。
这个坑我们已经见过两次:技术包里一份 29 位 DBC、一份 11 位参考文档,因为两份文件都叫 "V1.9",
没人看标识符。客户打开一看,一份是 `0x18FDB1D8`,另一份是 `0x111`。
别人给你文件时,先看 ID 范围:
| 你看到的 | 那是什么 |
|---|---|
| `0x111` … `0x122` 这类短 ID | 11 位标准帧 |
| `0x18FDB1D8`、`0x18FDBxxx` 这类长 ID | 29 位扩展帧(J1939 附近区间) |
| 文件名叫"通用版/标准版"、名字里没有位宽 | ⚠️ 去核实,不要默认 |
你要告诉我们什么,我们回什么
四个答案就能定:
1. 总线上现在有什么 —— J1939、OEM 自定义 11 位布局,还是什么都没有;
2. 谁来消费这些数据 —— 你的控制器、网关、车机,还是显示屏;
3. 多少轮位,以及是否按轴分组,还是每个轮位都要独立;
4. 波特率,以及总线是否忙到"仲裁优先级会影响结果"。
有这四条,我们回复接口配置、帧布局,以及项目需要时的 DBC。这就是全部交付 —— 剩下的都是你的集成。
不确定总线用的是哪种帧? 十秒钟的 CAN 日志就够看出来:看标识符长度。把日志发我们,
我们告诉你该订哪个配置。
整体视角见 CAN 总线胎压集成。