结论:这台 Fisker Ocean 2023-24 的 CAN 数据特征不是「OBD 口后面有没有网关」,而是整车信号被网关镜像到一条 ADASBUS 上:只需要接一条 CAN-FD 总线就能读到车身与 HMI 信号。源文档记录,panda 以摄像头转接线束插在原车网关侧(bus 0)与 OEM ADAS 模块侧(bus 2)之间,bus 1 未使用;bus 0 一次实车指纹抓取到 92 个地址(网关镜像的车身/HMI 加上 ESP、EPS、YRS、BCM、VCU、MFS、ICC),bus 2 约 65 个地址且全部由 ADAS 发出。下述结论仅限源文档记录的这一台车与 2023-24 年款,不代表同型号全系。
车辆与适用范围
源文档是一份开源 ADAS 项目里的车型平台定义,属于单车型移植(single-model port),不是车厂或第三方机构的批量采集。文档明确说明固件版本指纹被故意留空,识别以 CAN 指纹为准,因此「适配到哪一台车」由这一次实车抓包决定。
| 项 | 内容 |
|---|---|
| 车型 | Fisker Ocean 2023-24(源文档记为 Ocean Extreme 整备质量口径) |
| 年款 / 市场版本 | 2023-24;市场版本源文档未确认 |
| ECU / 改装状态 | 摄像头转接线束(camera-splice harness);panda 接在车辆侧网关与 OEM ADAS 模块之间;bus 1 未使用 |
| 采集跨度 | 源文档只写「来自一次实车指纹抓取(live fingerprint capture)」,未给出日志数或帧数 |
| 适用范围 | 仅限该次抓取的一台 2023-24 Ocean;轴距、方向盘比、轮胎刚度等车辆模型参数仍标注为待阶跃响应日志复核 |
总线与寻址
源文档把总线分成两侧:车辆侧(bus 0)与 OEM ADAS 模块侧(bus 2)。因为网关把车身/HMI 信号镜像到同一条总线上,移植只需要接一条总线;bus 1 在代码里被标为未使用。报文 ID 都是 11 位,ADAS 侧除固定报文外还有一段雷达目标列表。
| 项 | 内容 |
|---|---|
| 物理层 | CAN-FD 双绞线;源文档注明 ADASBUS 为 CAN-FD |
| 链路层 / 比特率 | 源文档未给出比特率数值 |
| 寻址方式 | 11 位 ID,例如 0x117、0x118、0x121、0x1C0、0x1D0、0x313、0x314、0x315、0x316、0x317、0x31A、0x31C |
| 总线划分 | bus 0 = 车辆侧(网关镜像);bus 2 = OEM ADAS 模块侧;bus 1 未使用 |
| CAN FD | 是;源文档按 CAN-FD 处理 |
| SecOC | 0x1D0 与 0x121 受 SecOC 保护;同步报文 0x20 GW_Syn_All,50 ms,线上 40 位 freshness |
已解码信号
下表只登记源文档里带证据或明确标注状态的条目。挡位枚举与按键映射直接来自平台定义中的 DBC 值表与按键映射表;转向与加速度指令给出缩放与周期,但周期条目原文标注为「需从日志确认」。雷达目标只给 ID 区间,未给字段定义。
| 信号 / 功能 | 位置(ID / 来源) | 解码 | 证据 |
|---|---|---|---|
| 挡位 VCU_GearSig | 网关镜像到 bus 0 的 VCU 报文 | 枚举 1=P、2=N、3=R、4=D、6=E、7=S | 平台定义 DBC VAL_ 注释 |
| 转向角指令 ADAS_LatCtrl_SteerAnReq | 0x1D0(ADAS 侧) | 0.0625°/LSB,量程 ±780°;周期 10 ms(≈100 Hz),原文标注需从日志确认 | 平台定义注释 |
| 加速度指令 ADAS_LgtCtrl_AccelReq | 0x121 | 0.0004882 m/s²/LSB,偏移 −16 | 平台定义注释 |
| 驾驶员转向力矩 EPS_DrvrSteerTq | 网关镜像的 EPS 报文 | 0.01 Nm/LSB;驾驶员接管阈值 0.5 Nm | 平台定义注释 |
| 巡航主开关 MFS_RiBtnNorth | MFS(方向盘多功能开关) | 映射为 mainCruise(ADAS 总开关) | 按键映射表 |
| 巡航设定 MFS_LeRollPress | MFS | 映射为 setCruise(接合巡航) | 按键映射表 |
| 加速 / 减速 MFS_LeRollUp、MFS_LeRollDwn | MFS | 映射为 accelCruise / decelCruise | 按键映射表 |
| LKAS 开关 MFS_RiBtnSouth | MFS | 映射为 lkas | 按键映射表 |
| 取消 / 恢复 / 车距调节按键 | MFS | 源文档标注为 TBD(待台架测试确定) | 按键映射表注记 |
| 雷达目标列表 | 0x2C7…0x2E9(ADAS 侧) | 源文档只给 ID 区间,未给字段定义 | 总线说明 |
| 网关镜像的车身/HMI 信号 | bus 0 | 挡位、踏板、车门、安全带、转向灯、MFS 按键 | 总线说明 |
读取方法与注意事项
第一条是取数路径:因为网关把车身/HMI 信号镜像到 ADASBUS,移植只接一条总线,摄像头转接线束让 panda 落在车辆侧网关与 OEM ADAS 模块之间。源文档强调 bus 1 未使用,因此不要把抓不到流量归因于「少接了一条线」。
第二条是 SecOC:转向角指令与加速度指令在 ADAS 侧受 SecOC 保护,需要同步报文 0x20 GW_Syn_All 提供的 40 位 freshness,同步报文周期 50 ms。源文档说明这些数据 ID 在 AUTOSAR Short SecOC 口径下等于 CAN 报文 ID。任何只解析载荷、不做 freshness 校验的读取方式,都拿不到可信的指令值。
第三条是周期:0x1D0 每个控制帧都发送,源文档把周期记为 10 ms(≈100 Hz),但同一行原文写了「需从日志确认周期」,因此本条保留不确定性,不作为实测结论。第四是识别:固件版本指纹被故意留空,品牌不参与固件版本匹配,CAN 指纹是唯一依据。
最后是车辆模型参数:轴距按公布数据从 2.99 改成 2.921(源文档给出理由:原值让横向模型预期更慢的入弯、导致 MPC 在弯道入口过度指令转角),steerRatio 15.0 记为「first-cut」,tireStiffnessFactor 0.85 记为「crossover-typical」。这些都属待复核值,不应作为 Fisker Ocean 的通用参数。
证据等级与边界
可视为实车观测的是总线地址数量(bus 0 约 92 个、bus 2 约 65 个)与两侧总线的分工,它们来自一次实车指纹抓取;挡位枚举和按键映射来自 DBC 值表与映射表,属文档级证据。属于待复核或推测的是转向角周期、steerRatio、tireStiffnessFactor,以及取消/恢复/车距调节三个按键。
不能外推的地方有三处。第一,源文档是单车型移植,固件指纹为空,挡位与按键映射只在这台车上被记录,其他年款、市场版本的报文布局未验证。第二,雷达目标列表只给了 ID 区间,字段含义未知,不能据此宣称读到了目标距离或速度。第三,车辆模型参数是工程首值,不是实测标定,换车即失效。
关于「安全访问」类问题:源文档未提供任何绕过方法,且不建议尝试;本文只整理公开文档登记的广播信号与指令定义,不涉及对车辆安全机制的规避。
常见问题
Fisker Ocean 是从 OBD 口取数,还是接别的总线?
源文档没有走 OBD 诊断口,而是接 ADASBUS:panda 以摄像头转接线束落在车辆侧网关(bus 0)与 OEM ADAS 模块(bus 2)之间。OBD 口在本车是否可读这些报文,源文档未给出结论,因此不能据此推断。
为什么只需要接一条 CAN 总线?
因为网关把车身/HMI 信号(挡位、踏板、车门、安全带、转向灯、MFS 按键)镜像到 ADASBUS 上,源文档说明移植只接一条总线即可;bus 1 未使用。
转向角和加速度指令为什么不只解载荷?
因为 0x1D0 与 0x121 受 SecOC 保护。源文档说明需要同步报文 0x20 GW_Syn_All(50 ms、40 位 freshness)才能得到可信指令值,只解析载荷不做 freshness 校验拿不到可信值。
挡位信号在哪条总线上?
挡位来自网关镜像到 bus 0 的 VCU 报文,源文档的 DBC 值表给出 1=P、2=N、3=R、4=D、6=E、7=S 的枚举。
延伸阅读
- openpilot 的 100 Hz 控制回路:开源 ADAS 能给车载设备什么 —— 与本文 0x1D0 的 10 ms 控制周期互为参照。
- 同一个「转向灯」在三家车厂是三种实现:车辆状态归一化的坑 —— 对应本文网关镜像车身信号后仍需再解读的问题。
- UDS 诊断工具为什么不能随手调:只读、会话与写 ECU 的分权设计 —— 说明受保护指令与只读读取的边界。
- Honda 旧版 openpilot 子集:DBC 名与 ECU 固件指纹 —— 对照另一套以固件指纹识别车型的做法。
- FT86 与 MX-5 的赛道 CAN 信号:RaceChrono 公式表 —— 另一类「不依赖诊断口」的取数与解码记录。
参考资料
- 项目 01 ——
public-can-dbc-datasets/additional/jos-technion-fisker-ocean/README.md(主来源:该项目保留的开源 ADAS 项目根文档)。 - 项目 01 ——
public-can-dbc-datasets/additional/jos-technion-fisker-ocean/opendbc/car/fisker/values.py(平台常量、总线划分、挡位与按键映射、SecOC 说明)。
说明:本文整理自第三方开源项目的公开文档,仅代表该文档所记录的单个车辆样本,不代表同型号全系车型。CAN 与诊断操作存在风险,任何实车操作前请自行复核并遵守当地法规。
更新记录
首次发布 2026-10-11 最近核对:2026-10-11
发表回复