Opel Astra H 的 LS-CAN 与 MS-CAN 解码档案

作者:

在

结论:这份档案记录的是欧宝 Astra H 的两条总线:单线的 LS-CAN(即 SW-CAN / GMLAN) 与 MS-CAN。在 LS-CAN 上,源文档把车速、转速、行驶距离、燃油喷射、冷却液温度、燃油液位、系统时间、电压与 TPMS 都逐字节解了出来;例如车速在 0x108 上除以 128、燃油液位是 94 - (值/2) 升。它是一份「按地址逐字节标注」的观测表,而不是厂商规格:大量字段被标为 ?? 或「见过 N 种取值」,这些不确定标记必须原样保留。

车辆与适用范围

源文档是一份公开的「车辆 CAN 报文数据库」,按 品牌/型号/代/总线/部件.md 组织。Astra H 这一支同时给出 LS-CAN 与 MS-CAN 两个目录,其中 LS-CAN 以 ALL_TYPES.md 汇总全部观测值。

项 内容
车型 Opel Astra H(MS-CAN 文档中点名发动机为 Z16XEP 1.6L)
年款 / 市场版本 源文档未给出具体年款与市场版本
ECU / 改装状态 源文档未给出;为车主对原车的观测
采集跨度 源文档未给出日志数或帧数;部分报文注出周期(如 0x108 约 50ms、0x190/0x440 为 1000ms)
适用范围 仅限源文档记录的这一台 Astra H;数值标定含多项未确认项

总线与寻址

这台车同时有 LS-CAN 与 MS-CAN。LS-CAN 被文档标注为「SW-CAN——单线或 GMLAN」,是单线制总线;MS-CAN 承载车身、信息显示等部件。两条总线都以小写十六进制地址登记(如 0x108、0x530、0x684)。

项 内容
物理层 LS-CAN:单线(SW-CAN / GMLAN);MS-CAN:源文档未给出
链路层 / 比特率 源文档未给出
寻址方式 表中地址为小写十六进制(如 100、530),源文档未标注位宽
CAN FD 源文档未提及
多帧报文 MS-CAN 的 Info-Display 报文超过 8 字节,使用 ISO-15765-2 分包

已解码信号

下表抽取 15 条最有代表性的条目,横跨 LS-CAN 与 MS-CAN。凡源文档标为 ??、「见过 N 种取值」或「计算取决于传感器/有时反向」的,均在证据列保留说明。

信号 位置(ID / 字节) 解码 证据 / 置信度
车速 LS-CAN 0x108 byte2+3 值 / 128 = km/h(例 0x2098=65.19) 源文档示例与说明
发动机转速 LS-CAN 0x108 byte5+6 16 位(例 0x04E5=1253 rpm) 源文档示例;MS-CAN 版本在 0x4E8 上为「RPM/4」
行驶距离(每驱动轮) LS-CAN 0x110 byte2+3 / byte4+5 一次增量 = 1.5748 cm;16 位满周期约 1032 m 源文档说明
燃油喷射量 LS-CAN 0x130 byte2+3 一次增量 = 0.03054 ml(1.6L 机);满周期约 2 升 标定基于作者 1.6L 发动机
冷却液温度 LS-CAN 0x145 byte4 值 – 40 = °C(例 0x28→-2 °C) 源文档示例
发动机/点火状态 LS-CAN 0x145 byte1–3、5 多字节状态码(如 0x20=点火开未着、0x00=运行) 源文档逐值说明
巡航控制状态 LS-CAN 0x145 byte6 0x04=未激活 / 0x06=激活 源文档说明
转向灯/拨杆状态 LS-CAN 0x175 byte3 0x01~0x04 表示半推/半抬/全推/全抬 源文档说明
转向灯控制帧 LS-CAN 0x260 三字节组合区分左/右/双闪 源文档逐组合表
总里程 LS-CAN 0x190 byte3–5 里程量(周期 1000ms) 源文档标注;单位与系数未在本文展开
燃油液位 LS-CAN 0x375 byte2 94 – (值/2) = 升(例 0xA0→14.0 L) 「计算取决于传感器,有时反向」
系统时间 LS-CAN 0x440 byte1–3 时 : 分 : 秒÷4 源文档说明
户外温度 LS-CAN 0x445 byte2 MS-CAN 同义项 0x682 为「值/2 – 40 = °C」 源文档说明
电压 LS-CAN 0x500 byte2 源文档标注为电压(周期约 1500ms) 源文档标注;换算未在本页给出
胎压 TPMS LS-CAN 0x530 byte3–6 每轮 值/25 = Bar;byte1/2 为前/后传感器状态 MS-CAN 版本在 0x684 上同式

读取方法与注意事项

源文档的记法本身就是方法约束:页首声明斜体值表示「至今只见固定值」,粗体值表示已被单独页面解释,括号中的数字是见过的不同取值个数。也就是说,一个标了 ? (4) 的字节,作者只见过 4 种取值——它可能是枚举状态,也可能是「从未触发的故障位」,文档对后者也如实保留。

对使用者而言,最实际的两点:其一,MS-CAN 的 Info-Display 报文超过 8 字节,用 ISO-15765-2 打成多帧,数据块结构是「两字节命令 + 一字节负载长度 + 一字节消息类型 + 若干子包(ID + 字符数 + UTF-16 字符)」;文档给了 AC、音频、导航等消息类型与各类型下的行 ID 清单。其二,按位复用的字节必须做位运算(拨杆/方向盘按键就是「函数由位编码」)。

证据等级与边界

本档案属于单车观测:所有条目都来自一位车主对一台 Astra H 的记录,没有第三方旁证,也没有反汇编或厂商规格支撑。可核对的是「作者给出的一条条示例」(如 0x108 的 0x2098→65.1875 km/h、0x375 的 0xA0→14.0 L);不可核对的是这些标定是否适用于其他车。

三处不能外推。第一,改装的线束、传感器与仪表版本会让个别字节不同,燃油液位文档自己就注明「取决于传感器,有时反向」。第二,作者在页首明说斜体值「可能是从未触发的故障指示」,把「只见固定值」当成「恒为定值」是过度解读。第三,发动机相关标定(燃油喷射的 0.03054 ml)是用作者自己的 1.6L 发动机推出来的,换机型即失效。

关于「安全访问」类问题:本文只整理被动观测到的广播报文,未涉及任何诊断写入或安全访问绕过;源文档未提供绕过方法,且不建议尝试。

常见问题

Astra H 的 LS-CAN 和 MS-CAN 有什么区别?

LS-CAN 被文档标注为单线的 SW-CAN / GMLAN,承载车速、转速、燃油、里程、TPMS 等;MS-CAN 承载车身与 Info-Display 等。两者的地址与编码各自独立。

车速是怎么算出来的?

在 LS-CAN 的 0x108 上取 byte2+3 组成 16 位值,再除以 128。文档示例:0x2098 = 8344,8344 / 128 = 65.1875 km/h。

燃油液位为什么有时反向?

文档注明该值「计算取决于传感器,有时反向」,公式为 94 - (值/2) 升。因此同一公式在不同传感器配置下可能得出相反趋势,不能无条件套用。

Info-Display 的报文为什么超过 8 字节?

因为它用 ISO-15765-2 把长报文分成多个 CAN 帧(首帧 + 连续帧)。数据块由两字节命令、一字节负载长度、一字节消息类型和若干子包组成,子包再带行 ID、字符数与 UTF-16 字符。

延伸阅读

参考资料

  • 项目 01 —— public-can-dbc-datasets/additional/trueffelwurm-opel-astra-h/Opel/Astra/H/LS-CAN/ALL_TYPES.md(本项目车型档案主来源:LS-CAN 全部观测值与逐条说明)。
  • 项目 01 —— public-can-dbc-datasets/additional/trueffelwurm-opel-astra-h/Opel/Astra/H/MS-CAN/Body.md(MS-CAN 的底盘与发动机条目)。
  • 项目 01 —— public-can-dbc-datasets/additional/trueffelwurm-opel-astra-h/Opel/Astra/H/MS-CAN/Info-Display.md(Info-Display 的 ISO-15765-2 分包与消息类型表)。

说明:本文整理自第三方开源项目的公开文档,仅代表该文档所记录的单个车辆样本,不代表同型号全系车型。CAN 与诊断操作存在风险,任何实车操作前请自行复核并遵守当地法规。

更新记录

首次发布 2026-10-11 最近核对:2026-10-11

评论

发表回复

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