CAN总线与J1939解码器
在线CAN总线与J1939解码器,支持ID解析、信号提取、日志分析、DBC文件解码与TP重组,适用于ECU开发、车辆诊断和车队远程运维场景
CAN ID 解码器
解析 CAN ID 并提取 J1939 字段,包括优先级、PGN、源地址、目标地址和 PDU 格式。
使用指南
本工具支持 CAN(控制器局域网络)与 SAE J1939 协议分析,覆盖 ID 解析、信号提取、日志解析、DBC 数据库解码和 TP 多帧重组。
J1939 协议概述
SAE J1939 基于 CAN 2.0B 的 29 位扩展标识符构建,通过优先级、PGN 与地址字段实现重型车辆网络中的实时通信。
J1939 标识符结构
29 位标识符从高到低依次包含 Priority、EDP、DP、PF、PS、SA。PF 决定消息属于 PDU1 还是 PDU2,并影响 PGN 与目标地址解释方式。
Priority (3)EDP (1)DP (1)PF (8)PS (8)SA (8)
参数组编号(PGN)
PGN 用于标识消息的数据语义和类型,是 J1939 的核心路由与语义字段。
PF < 240 时为 PDU1,PS 表示目标地址;PF >= 240 时为 PDU2,PS 并入 PGN,消息为广播。
信号提取方法
CAN 8 字节数据可包含多个信号,每个信号由起始位、长度、字节序和数值类型定义。
物理值计算公式:物理值 = 原始值 × 系数 + 偏移量。
常用 J1939 PGN
- PGN 65262 (0xFEEE):发动机温度 1
- PGN 61444 (0xF004):电子发动机控制器 1
- PGN 65265 (0xFEF1):巡航控制/车速
- PGN 65269 (0xFEF5):环境条件
- PGN 65263 (0xFEEF):发动机液位/压力
应用场景
- ECU 开发与联调:验证报文结构和信号定义
- 车辆诊断:分析通信异常与传感器异常
- 车队远程信息:油耗、工时与维护状态分析
- 标定与测试:提取关键参数进行性能评估
- 协议学习:通过真实报文理解 J1939 规则
字节序约定
Intel(小端序)按低位优先,Motorola(大端序)按高位优先。选择错误字节序会导致信号值解释偏差。
功能概览
- ID 解析:支持 29 位 J1939 与 11 位标准 CAN ID
- 数据提取:按位提取并支持有符号/无符号/浮点
- 日志查看:支持 candump、ASC、TRC 并可导出 CSV
- DBC 解码:支持消息/信号/节点浏览与快速解码
DBC 文件支持
DBC 文件定义消息、信号、节点、注释、属性和值描述。本工具支持常用 Vector CANdb++ 语法。
加载后可按名称搜索消息和信号、查看节点发送关系,并按消息定义快速解码原始 CAN 数据。
支持的输入格式
十六进制空格分隔:FF 00 11 22 33 44 55 66十六进制无空格:FF00112233445566Base64:/wARIjNEVWY=C/C++ 数组:0xFF, 0x00, 0x11, 0x22, ...
日志格式
candump:(1234567890.123456) can0 18FEF100#FF00112233445566Vector ASC:0.000000 1 18FEF100x Rx d 8 FF 00 11 22 33 44 55 66PCAN TRC:1) 1234.5 18FEF100 8 FF 00 11 22 33 44 55 66
传输协议(TP)支持
J1939 TP 支持超过 8 字节的多帧消息传输,启用 TP 重组可自动恢复 BAM/CMDT 的完整负载。