结论:这份档案来自一台 2008 年 E92 335i 上自制的 CAN 集成模块,它同时接入了 K-CAN、PT-CAN 与 D-CAN 三条总线。文档给出的速率是 K-CAN 100 kbit/s、模拟的 KCAN2 500 kbit/s;PT-CAN 与 D-CAN 的速率文档未标注。模块的核心工作是把老一代 BN2000 的消息翻译成新主机(NBT)能认的 BN2010 格式,并把一部分消息改走 K-CAN 以绕开网关延迟。边界有三条:代码与消息逻辑是「为这一辆 2008 E92 335i 定制的」;随附的两份 DBC 是该项目参考素材、不是经过验证的整网定义;文档还涉及对 DME 固件的定义修改,本文不复述其地址与字节,也不建议照做。
本文整理自该项目的 README 与一份 BN2000 至 NBT 的消息翻译清单。文档本身多次强调其车型特定性,本文原样保留这层限定。
车辆与适用范围
项目对象是一辆 2008 年 E92 335i。文档在开头就写明:「代码对我这台车相当特定,但很多 CAN 消息逻辑可能有用。」硬件为一块 Teensy 4.0 三路 CAN 板(两路 CAN 2.0B、一路 CAN FD)配额外的一块 CAN 控制器用于主机模拟。
| 项 | 内容 |
|---|---|
| 车型 | 宝马 E92 335i(E9X 一代) |
| 年款 / 市场版本 | 2008(源文档未给出市场版本) |
| ECU / 改装状态 | 自制集成模块,接入 K-CAN / PT-CAN / D-CAN;集成 F 系列主机(NBT / iDrive) |
| 采集跨度 | 源文档未给出;以功能清单与消息翻译清单形式记录 |
| 适用范围 | 仅这一辆车;随附 DBC 为参考素材,非整网定义 |
总线与寻址
模块同时处理三条总线。文档明确的两处速率是:把 CAN 适配器速度设为 100000 对应 K-CAN、设为 500000 对应模拟的 KCAN2。PT-CAN 承载发动机扭矩等数据,D-CAN 用于诊断访问。文档说明消息发送被优化为走最短路径:需要送到仪表(KOMBI)的消息即使原厂走 PT-CAN,也会改发到 K-CAN,以绕开网关延迟。
| 项 | 内容 |
|---|---|
| K-CAN | 100 kbit/s(文档明确) |
| KCAN2(模拟) | 500 kbit/s(文档明确) |
| PT-CAN | 存在(承载发动机扭矩等);速率源文档未给出 |
| D-CAN | 存在(诊断访问);速率源文档未给出 |
| 寻址 | 消息以 11 位标准 ID 列出;CAN FD 能力由硬件支持 |
已解码信号
下表取自「BN2000 到 NBT」的消息翻译清单:左列为发往主机(NBT)的帧,右列为它的来源或处理方式。这些条目是该模块主动构造或翻译的消息映射,而不是某台车出厂网络的完整定义。
| 帧 / 信号 | ID | 来源或处理 | 证据 |
|---|---|---|---|
| 车辆状态 | 0x3C |
由 BN2000 0x130 翻译 |
项目翻译清单 |
| 终端状态 | 0x12F |
由 BN2000 0x130 翻译 |
项目翻译清单 |
| 道路倾角 | 0x163 |
经 0x6F1 取自报警器(SINE) |
项目翻译清单 |
| 俯仰角 X_VIEW | 0x180 |
经 0x6F1 取自报警器(SINE) |
项目翻译清单 |
| 偏航率(陀螺) | 0x19F |
由 BN2000 0x1A0 翻译;NBT 硬件 10 及以上需要 |
项目翻译清单 |
| 车速 | 0x1A1 |
由 BN2000 0x1A0 翻译 |
项目翻译清单 |
| 距离 | 0x1C4、0x1C5 |
由 BN2000 0x1A6 翻译 |
项目翻译清单 |
| 运动显示数据 | 0x253 |
运动显示相关 | 项目翻译清单 |
| 亮度 | 0x2A5 |
由 BN2000 0x314 翻译 |
项目翻译清单 |
| PDC 状态 | 0x2C1 |
由 BN2000 0x3AF 翻译 |
项目翻译清单 |
| 静止状态 | 0x2ED |
由 BN2000 0x1A0 翻译 |
项目翻译清单 |
| 转向角 / 有效转向角 | 0x301、0x302 |
由 BN2000 0xC8 翻译 |
项目翻译清单 |
| 驱动模式开关 | 0x3A7 |
由 mdrive_status 与 dsc_program_status 适配 |
项目翻译清单 |
| MDrive 状态 | 0x42E |
由 BN2000 0x399 翻译 |
项目翻译清单 |
| iDrive 音量 / 网关 | 0x6F1 |
承载 iDrive 音量与 SVT_70 网关等;检测到 OBD 工具在 D-CAN 通信时该组功能被关闭 | 项目 README |
读取方法与注意事项
最短路径发送与队列。文档说明消息发送被优化为走最短路径以尽快到达接收模块,并用 FIFO 队列保证读写不被延迟阻塞。
诊断访问下的自保。凡用到 0x6F1 的功能(如 iDrive 音量、SVT_70 网关),在检测到某个外部诊断工具于 D-CAN 上通信时会被停用。
硬件与启动。文档列出的硬件包括 Teensy 4.0、MCP2562 收发器与用于主机模拟的 MCP2515 板;并提示为让部分启动时序敏感功能工作需修改 Teensy 启动代码。USB 类型随用途变化(单口常规、双口状态、三口 CAN USB 接口)。
关于固件修改。文档提到对发动机 ECU 固件中与 CAN 消息表、CAN 过滤器相关的定义做过修改,并需要重算校验;还提到停用一部分原厂驾驶模式相关逻辑。这类操作属于对发动机 ECU 的固件改动,风险高且与本文主旨无关,本文不复述其地址、字节或步骤,也不建议照做。源文档未提供任何安全访问绕过方法。
证据等级与边界
来源说明把两份 DBC 的性质写得很清楚:EXX-BN2000.dbc(131 条消息、552 条信号行)与 FXX-BN2010.dbc(70 条消息、248 条信号行)是该项目的参考素材,不是针对每一款宝马 E / F 车型或年份验证过的整网定义;其中 EXX-BN2000.dbc 还在独立信号块里重复出现 TPCI、TA 等信号名,严格解析器可能拒绝;其他消息布局与 NBT 翻译未在本归档内对照实车核对。
第二层边界来自项目自述:代码与 CAN 消息逻辑是为这一辆 2008 E92 335i 定制的,很多功能依赖具体选装件。因此文中列出的翻译关系与行为,只能视为「这台车 + 这套模块」的实现记录。
据此,任何帧含义、来源映射或发送策略都不能外推到其他 E9X 或其他宝马车型;需要真值时应以本车抓包与独立复核为准。
常见问题
E9X 上有哪几条 CAN 总线?
文档涉及三条:K-CAN、PT-CAN 与 D-CAN。其中明确给出速率的是 K-CAN(100 kbit/s)与模拟的 KCAN2(500 kbit/s);PT-CAN 与 D-CAN 的存在可以确认,但速率源文档未标注。
为什么要把消息改发到 K-CAN 上?
为了走最短路径。文档说明:需要送达仪表(KOMBI)的消息,即使原厂会经 PT-CAN,也被改发到 K-CAN,以绕开网关(JBE)带来的延迟。
随附的 DBC 能当整网定义用吗?
不能。来源说明写明两份 DBC 是该项目的参考素材,不是针对每一款车型或年份验证过的整网定义;EXX-BN2000.dbc 还存在重复信号名,严格解析器可能拒绝。未在本归档内做实测核对。
0x6F1 相关的功能什么时候会失效?
文档记录:当检测到某个外部诊断工具在 D-CAN 上通信时,凡用到 0x6F1 的功能(如 iDrive 音量、SVT_70 网关)会被停用,以避免冲突。
本文会给出 DME 固件修改的步骤吗?
不会。文档确实提到对发动机 ECU 固件里 CAN 消息表与过滤器的定义做过修改并需重算校验,但这类操作风险高,本文只作事实提及,不复述地址、字节或步骤,也不建议照做;源文档未提供任何安全访问绕过方法。
延伸阅读
- 车辆网关:为什么消息走哪条总线不是随便选的 —— 本文「改走 K-CAN 绕开网关延迟」正是网关选路的实例。
- 同一个「转向灯」在三家车厂是三种实现 —— 帮助理解 BN2000 与 BN2010 之间的语义差异。
- 车辆协议与 DBC 指纹:怎么判断一台车是不是同一套定义 —— 解释为何同一车系不同代次也要分开定义。
- UDS 诊断工具为什么不能随手调 —— 与本文对固件修改与诊断访问的谨慎立场一致。
参考资料
- 项目 01 ——
public-can-dbc-datasets/additional/superwofy-bmw-e9x-can/README.md(本项目车型档案主来源,取用了总线、硬件与功能清单)。 - 项目 01 ——
public-can-dbc-datasets/additional/superwofy-bmw-e9x-can/Message translation for NBT.txt(取用了 BN2000 至 NBT 的消息翻译清单)。 - 项目 01 ——
public-can-dbc-datasets/additional/superwofy-bmw-e9x-can/SOURCE.md(取用了两份 DBC 的规模与「非整网定义」边界)。
说明:本文整理自第三方开源项目的公开文档,仅代表该文档所记录的单个车辆样本,不代表同型号全系车型。CAN 与诊断操作存在风险,任何实车操作前请自行复核并遵守当地法规。
更新记录
首次发布 2026-10-11 最近核对:2026-10-11
发表回复