kezarjg/etnga-obd

GitHub: kezarjg/etnga-obd

针对丰田 eTNGA 平台三款纯电车型(bZ4X、Solterra、Lexus RZ)的 OBD-II 诊断接口逆向工程知识库,系统性记录了 ECU 映射、UDS 信号解码公式和 CAN 广播帧含义。

Stars: 0 | Forks: 0

# etnga-obd **Toyota eTNGA 平台纯电动汽车 (BEV)** 的 OBD-II 逆向工程知识库 — **Toyota bZ4X**、**Subaru Solterra** 和 **Lexus RZ**。这三款车型 共享相同的纯电专用平台,并且诊断层面在很大程度上也是一致的, 因此此处的发现通常适用于所有三款车型。特定车型之间的差异 在已知的情况下均已单独标出。 本指南适用于任何构建车辆集成(如 ABRP、 EVNotify、自定义仪表盘)或进行独立逆向工程 (RE) 的人员。它记录了 OBD-II 诊断接口(基于 ISO-TP 的 UDS)以及在 OBD-II 总线上 可见的少量广播 CAN 帧。 ## 状态 活跃的逆向工程项目。截至 2026-05-10 的覆盖范围: - **约 39 个 ECU 中的 36 个已完成映射** — 包含 OBD-II 上可直接寻址的 14 个 ECU,以及网关 `0x750` 后方的 22 个子目标。标准化范围内的三个顶层 OBD-II ID 仍未被识别。 - **约 12 个高优先级遥测信号已解码并验证** — 电池包 SOC/电压/电流、单体电压 (×96)、单传感器电芯温度 (×24)、12V 辅助电池、车速、挡位、里程表、TPMS 压力/温度/位置映射等。 - 充电状态机、动态 DID 组合 (`0x2C 01`) 以及网关混合寻址均已解码。 - SOH / 电池包容量 / 剩余续航里程已确认 *未* 作为 DID 暴露在诊断接口的任何位置 — 它们必须从外部推导,或在驾驶时从广播帧中读取。 ## 从哪里开始 - **此平台上的 OBD/UDS 基础知识**:`docs/obd-and-uds-primer.md` - **ECU 清单**(顶层 ID 和网关子目标):`ecus/README.md` - **网关寻址方案**(混合寻址格式,子目标列表):`messages/0x750.md` - **已解码的电池信号**(SOC,电压,温度):`ecus/ev-battery.md` - **已解码的车辆管理信号**(速度,挡位,12V 状态,电机):`ecus/ev.md` - **TPMS**(压力,温度,槽位与位置对应关系):`ecus/tpms.md` ## 目录内容 - **`ecus/`** — 每个 ECU 的接口映射。针对 OBD-II 总线上每个可寻址的 ECU:提供诊断 ID、丰田的命名、观察到的 DID、带有置信度评级的已解码公式,以及适用的 Techstream 交叉参考信息。 - **`messages/broadcast/`** — 广播 CAN 帧含义(例如,`0x45A` 中央网关心跳,`0x4E0`)。 - **`messages/`** — 诊断 ID 接口文档(UDS over ISO-TP 使用的请求/响应 ID)。 - **`docs/obd-and-uds-primer.md`** — 关于在此平台上应用 UDS-over-OBD-II 的快速入门。如果您不熟悉 ISO-TP / DID 样式的读取,这将非常有用。 - **`docs/techstream-research.md`** — 与 Solterra/bZ4X 逆向工程相关的 Toyota Techstream 笔记。 - **`docs/conventions.md`** — 各个 ECU 文件的结构说明(前言信息、置信度级别、证据要求)。 - **`docs/references/`** — 社区硬件研究(F39 附件连接器、N20 车顶电源接口)。 - **`bin/`** — 用于通过远程捕获主机捕获 CAN 流量的小型 bash 辅助脚本,通过 `$CAN_HOST` 环境变量进行参数化。 ## 范围 **在范围内。** 无需总线注入即可从 OBD-II 端口读取的任何内容: 诊断读取(UDS DID)、被动观察到的广播帧、Techstream 参数交叉参考、ISO-TP 传输细节、网关子目标中继。 **不在范围内。** - **SecOC / TSK 密钥提取** — 请参阅 [`optskug/docs`](https://github.com/optskug/docs) 以获取 ADAS 总线侧的活跃项目。截至目前,eTNGA 的 SecOC 尚未被破解;本仓库中的所有内容均为只读诊断数据,不 需要 SecOC。 - **OBD-II 总线范围之外的内部车辆 CAN 总线** (由中央网关桥接的部分除外)。OBD 总线只能看到其中的一个子集。 - **可能影响车辆状态的主动探测协议**。部分 `0x31` 例程控制 ID 已为求完整而编入文档,但调用这些 ID 是读者自身的责任。 ## 相关公开工作 - **[OBDb](https://github.com/OBDb)** 维护着横跨数百种车型的结构化 JSON 信号集 目录,其中包括 [`Toyota-bZ4X`](https://github.com/OBDb/Toyota-bZ4X) 和 [`Subaru-Solterra`](https://github.com/OBDb/Subaru-Solterra)。本仓库 涵盖的内容(广播帧、网关中继、推导方法论)比 OBDb 的模式所能建模的范围更广;符合其模式的子集将被贡献至上游。 - **[`optskug/docs`](https://github.com/optskug/docs)** — eTNGA ADAS 的 SecOC/TSK 密钥 提取。这是对本仓库诊断总线 范围的补充。 - **[Solterra 论坛 PIDs/OBD 帖子](https://www.solterraforum.com/threads/pids-obd-commands.1172/)** 是事实上的社区知识库(论坛形式)。如有疑问请交叉参考。 ## 置信度模型 每个解码信号在其 `ecus/.md` 文件的 前言信息中都带有一个置信度评级: - **`high`** — 公式已通过实时的总线交互和 独立参考来源(Techstream 参数、OBDb 信号、公开的 ABRP bZ4X/Solterra OBD 配置、社区出版物)双重确认。 - **`medium`** — 公式已通过实时总线交互或强 参考来源确认,但未同时满足两者。 - **`low`** — 单一来源,看似合理但未经交叉验证。 有关完整的每个 ECU 文件结构,请参阅 `docs/conventions.md`。 ## 许可证 双重许可 — 详见 `LICENSE`。 - `bin/` 下的**代码** — MIT 许可证。 - 其他地方的**文档和已解码的知识** — CC-BY-4.0 许可证。 只要注明出处,即可自由复用已解码的 PID、公式和 ECU 映射。 ## 贡献 欢迎提交 PR。请参阅 `CONTRIBUTING.md`。 最后更新:2026-05-10。
标签:BEV, BMS, CAN总线, EV, ISO-TP, OBD-II, Ruby, SOH, UDS诊断协议, 丰田bZ4X, 丰田eTNGA, 云资产清单, 动态DID, 应用安全, 斯巴鲁Solterra, 新能源汽车, 汽车安全, 汽车电子, 汽车黑客, 电池SOC, 电池管理系统, 知识库, 纯电动车, 网关地址映射, 车联网, 车载诊断, 车辆集成, 逆向工程, 雷克萨斯RZ