结论:在一辆南非市场的菲亚特 Grande Punto(平台 199)1.4 8V(发动机 350A1000,Magneti Marelli IAW 5SF9 发动机 ECU)上,诊断走 29 位标识符、500 kbps 的 C-CAN,应用层是 UDS(ISO 14229),传输层是 ISO 15765-2,采用常规固定寻址(请求 18DAxxF1、应答 18DAF1xx)。这台车最关键的一条工程特性是:发动机 ECU 只接受不填充的帧,数据长度必须等于真实长度,这正是自动协议搜索与多数通用 OBD 应用连不上的原因;标准 OBD-II(模式 01 至 0A)也不应答,属非 EOBD 合规。边界:全部结论出自这一辆车与这份只读研究,不能套到其他校准或车型。
本文整理自该项目的协议文档与示例结果。文档把每条记录分为「Observed(本车读出)」与「Published(取自公开来源、未在本车确认)」,本文保留这一区分。
车辆与适用范围
数据来自一位研究者的这一辆 Grande Punto,用一款 ELM327 兼容蓝牙适配器加一台 Linux 主机接入。工作方式偏保守:先适配器自身,再被动监听,然后标准请求,最后才是有寻址的厂家请求;并且全程只读,不发送清除、写入、执行器测试、安全访问或编程会话。
| 项 | 内容 |
|---|---|
| 车型 | 菲亚特 Grande Punto(平台 199)1.4 8V,发动机 350A1000,南非市场 |
| 年款 / 市场版本 | 源文档未给出具体年款;市场为南非 |
| ECU / 改装状态 | 发动机 ECU:Magneti Marelli IAW 5SF9,名称 5SF9AG,硬件 IAW5SFHW405,软件 881AW23E,Fiat 件号 51926690 |
| 采集跨度 | 若干次只读会话;一次怠速分析含 6 段共 5995 帧 |
| 适用范围 | 仅这一辆车与这一套校准;不得假设其他校准或车型相同 |
总线与寻址
物理层是 OBD 引脚 6 / 14 上的 C-CAN,500 kbps,29 位标识符;传输层为 ISO 15765-2 常规固定寻址(请求 18DA + 目标 + F1,应答 18DAF1 + 目标)。本车一大特性是不能填充,数据长度须等于真实长度;流控帧为三字节 30 00 00,须在首帧后数毫秒内跟上。
| 项 | 内容 |
|---|---|
| 物理层 | C-CAN,OBD 引脚 6 / 14,500 kbps |
| 链路层 | 29 位标识符;ISO 15765-2(ISO-TP)常规固定寻址 |
| 寻址 | 请求 18DA + 目标 + F1;应答 18DAF1 + 目标 |
| 帧填充 | 发动机 ECU 不接受填充,数据长度须等于真实长度 |
| 流控 | 30 00 00 三字节,须在首帧后数毫秒内 |
| 应用协议 | UDS(ISO 14229);标准 OBD-II 模式 01 至 0A 不应答 |
已解码信号
下表混合数据标识符(DID)与广播帧字段两类。证据一列沿用文档口径:「本车读出」为在本车实测,「公开来源」为取自 Fiat 500 等同平台资料、未在本车独立确认。文档还提示:公开定义里发动机转速位偏移比本车实际晚一个字节,公开偏移应视为起点。
| 信号 | 位置(DID / 帧) | 解码 | 证据 |
|---|---|---|---|
| 发动机转速 | DID 1000 |
原始值 ÷ 4,转/分 | 本车读出;与广播 0618A001 交叉核对 |
| 冷却液温度 | DID 1003 |
原始值 − 40,摄氏度 | 跟随广播 0A18A001 字节 3;偏移为假设 |
| 电池电压 | DID 1004 |
原始值 ÷ 10,伏 | 本车读出;与适配器电压表一致 |
| 运行计数 | DID 1008 |
运行时约每分钟 +1,可能是分钟计 | 本车读出 |
| 启动后计时 | DID 1009 |
约每 15 秒 +1,单位未知 | 本车读出(刚启动后读数为 1) |
| 目标怠速 | DID 186B |
原始值 ÷ 4,转/分(700;开空调 850) | 本车读出;转速 1000 随后一拍跟随 |
| 大气压 | DID 1956 |
毫巴 | 可能(静止且数值符合海拔) |
| 进气歧管压力 | DID 181F |
毫巴 | 可能(随负荷变化) |
| 电池电压(第二路) | DID 197D、197E |
原始值 ÷ 10,伏 | 本车读出;与 1004 一致 |
| 氧传感器电压 | DID 1898、189A |
毫伏(在稀 / 浓之间摆动) | 可能 |
| 发动机转速(广播) | 帧 0618A001 字节 2-3(大端) |
1 转/分/位;字节 7 为油门踏板 | 转速与 1000 一致;踏板为公开来源 |
| 冷却液温度(广播) | 帧 0A18A001 字节 3 |
原始值 − 40,摄氏度 | 跟随 1003;比例为公开来源 |
| 节气门位置(广播) | 帧 0628A001 字节 4 |
怠速时 4 至 7 个计数 | 公开来源 |
| 备件号 | DID F187 |
文本 51926690 |
本车读出 |
读取方法与注意事项
先做被动监听。先静默监听确认总线活着,再用最简请求(TesterPresent)扫地址。这台车上,3E 00 得到干净的 7E 00,证明它讲 UDS;而 1A 80 得到 7F 1A 11(服务不支持),说明它不讲 KWP2000。否定应答也是成功,因为它证明寻址与帧格式是对的。
不填充与流控交给适配器。关键一步是关闭格式化(ATCAF0)并启用可变数据长度(ATV1),由自己写 ISO-TP 长度字节。长应答以首帧发出后需流控;经蓝牙往返太慢时发动机 ECU 会放弃,故让适配器自行发送三字节流控。
读取成本要知道。一次遍历 105 个标识符约需 14.4 秒,因此比这更快的信号都会被欠采样;模块地址扫描(256 个)约 54 秒,整个 16 位空间约需 3.6 小时。
只读边界。文档强调这是只读研究:写入、清除、例行程序、安全访问与复位服务从未发送。本文同样不涉及安全访问绕过;源文档未提供此类方法,也不建议尝试。
证据等级与边界
文档用「Observed」标记本车读出,用「Published」标记取自 Fiat 500 等同平台资料、未在本车独立确认的内容。因此表中带「公开来源」「可能」「假设」字样的条目尚未在本车成立。
识别侧证据较硬:F187 备件号、F192 供应商硬件号、F194 供应商软件号、F196 ECU 名称都能读出;发动机 ECU 的 VIN 字段(F190)为空,VIN 由地址 40 的车身电脑返回。应答模块只有四个:10 发动机、28 ABS、30 电动助力转向、40 车身电脑,其余全静默。
来源说明把范围写得很清楚:只有这一辆南非市场的 Grande Punto 1.4 8V,不要假设其他校准或车型布局相同;这是「诊断 / 信号研究集合,而非 DBC」。据此,本文的 DID 含义、比例与广播偏移不能外推到其他 Grande Punto 或其他 Fiat 车型。
常见问题
为什么通用 OBD-II 读不到这台车?
因为这台发动机 ECU 非 EOBD 合规,标准 OBD-II 模式 01 至 0A 在任何协议上都不应答;加上它只接受不填充的帧,自动协议搜索与多数通用应用都会失败。作者改用 29 位寻址加不填充帧后才得到首个应答(还是否定的 7F 1A 11)。
为什么这台车要求帧不填充?
文档实测:发动机 ECU 只接受数据长度等于真实长度的帧,填充帧得不到应答。ISO 15765 允许填充,多数 ECU 两种都收,但这台不收——文档指出,正是这一个细节让自动检测与通用应用全部失败。
用服务 22 读 DID 需要先进入扩展会话吗?
不需要。文档记录 22 xxxx(ReadDataByIdentifier)在默认会话即可工作,且进入扩展会话(10 03)并未解锁测试范围内的额外标识符。
为什么用掩码 FF 读故障码会返回 27 条?
因为掩码 FF 返回的是 ECU 能够 设置的记录、状态为 40(本周期未完成测试),那是监控项清单而非故障清单。文档建议用具体掩码:08 读已确认、04 读待定、01 读当前正在发生。
这些 DID 能套到别的 Grande Punto 吗?
不能。来源说明写明只有这一辆南非市场的 1.4 8V 车,且这是一个研究集合而非 DBC;不同校准或车型的布局可能不同,需逐车复核。
延伸阅读
- UDS 诊断工具为什么不能随手调 —— 本文的只读立场(不发送写入 / 安全访问 / 复位)与之一致。
- OBD-II PID 入门:车速 0x0D 为什么是整数 —— 对照本文「标准 OBD-II 不应答、只能走厂家 DID」的处境。
- 84% 的 PID 没有公开证据:OBD 私有协议解析的现实边界 —— 回应本文大量「公开来源 / 未确认」的字段。
- 车辆协议与 DBC 指纹:怎么判断一台车是不是同一套定义 —— 解释为何同平台公开定义也要按本车指纹校正。
参考资料
- 项目 01 ——
public-can-dbc-datasets/additional/ryancoxrbc-fiat-grande-punto/docs/protocol.md(本项目车型档案主来源,取用了物理层 / 传输层、DID 表与广播帧表)。 - 项目 01 ——
public-can-dbc-datasets/additional/ryancoxrbc-fiat-grande-punto/docs/example-results.md(取用了怠速捕获统计与读取耗时)。 - 项目 01 ——
public-can-dbc-datasets/additional/ryancoxrbc-fiat-grande-punto/SOURCE.md(取用了「仅此一辆车、研究集合而非 DBC」的边界说明)。
说明:本文整理自第三方开源项目的公开文档,仅代表该文档所记录的单个车辆样本,不代表同型号全系车型。CAN 与诊断操作存在风险,任何实车操作前请自行复核并遵守当地法规。
更新记录
首次发布 2026-10-11 最近核对:2026-10-11
发表回复