ELM327 监控所有 - CAN 消息不是 8 字节长
ELM327 monitor all - CAN messages not 8 bytes long
Standard CAN (ISO 15765-4) OBD requires that all messages have 8 data bytes - (ELM327 documentation)
使用蓝牙 ELM327 从我的车上读取信息时,我收到的消息并非都是 8 个字节长。
配置如下:
AT Z # Reset
AT D # Default
AT SP 6 # Set Protocol
AT CFC1 # Flowcontrol
AT D1 # Show DLC
AT AL # Allow long messages
AT H1 # Show headers
AT CAF0 # Disable Formatting
AT L0 # Disable linefeeds
AT S0 # Remove whitespace
输出:
Command: AT MA
17A8FFFFFFAA00F031A3
17E8FFFFFF00FF4000FF
186719503203200020
0C6880637FFF800E8E82
2BC8948641FD03891D73
18A6FFF000064000
1F68DE20003700FFFFFF
1F88F504826FFE000A0D
391600008000C000
12E8C77FFF7FE0FFFF00
24270200FFEFFE000C
29C800000000FFFF0000
35245C000000
130800286FFE009FFECD
17A8FFFFFFAA00F031A3
17E8F
BUFFER FULL
这里大部分消息都是正确的(3 字节 ID + 1 字节 DLC + 8 字节数据),但有些更短,有时我收到的消息更长。这些正常吗?如果没有,它可能来自哪里的任何想法?
的确,所有与 OBD 相关的(即标准化的)消息都有 8 个字节的数据。
但是您发布的轨迹不包含任何 OBD 消息。
OBD 消息的 CAN-ID 介于 0x7DF 和 0x7EF 之间
您输出中的消息似乎是其他(特定于制造商的)CAN 消息。制造商可以自由定义这些消息的格式,因此允许小于 8 的 DLC。
监听 OBDII can 协议的示例:
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 316 DLC: 08 DATA: 01 1E AC 09 1E 1C 00 5E
idv: 0 exID: 80012CC ID: 0A1 DLC: 08 DATA: 78 7F 00 00 1D 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8A 00 00 00 00
idv: 0 exID: 80012CC ID: 316 DLC: 08 DATA: 01 1E AC 09 1E 1C 00 5E
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 47 00 8B 00 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 7DF DLC: 08 DATA: 02 01 0C 00 00 00 00 00
idv: 0 exID: 80012CC ID: 7E8 DLC: 08 DATA: 04 41 0C 09 9C 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8A 00 00 00 00
idv: 0 exID: 80012CC ID: 316 DLC: 08 DATA: 01 1E 98 09 1E 1C 00 5E
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8B 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8B 00 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
每个传感器模块和...都可以使用电线相互传输数据
但这里是ELM327读取RPM的收发包
idv: 0 exID: 80012CC ID: 7DF DLC: 08 DATA: 02 01 0C 00 00 00 00 00
idv: 0 exID: 80012CC ID: 7E8 DLC: 08 DATA: 04 41 0C 09 9C 00 00 00
如您所见,数据包的 DLC 始终为 8 个字节,例如 can 协议的第一个数据位是该数据包中的数据字节数
数据:02 01 0C 00 00 00 00 00
数据字节数 =02
数据 = 01 0C(转速读取命令)
Standard CAN (ISO 15765-4) OBD requires that all messages have 8 data bytes - (ELM327 documentation)
使用蓝牙 ELM327 从我的车上读取信息时,我收到的消息并非都是 8 个字节长。
配置如下:
AT Z # Reset
AT D # Default
AT SP 6 # Set Protocol
AT CFC1 # Flowcontrol
AT D1 # Show DLC
AT AL # Allow long messages
AT H1 # Show headers
AT CAF0 # Disable Formatting
AT L0 # Disable linefeeds
AT S0 # Remove whitespace
输出:
Command: AT MA
17A8FFFFFFAA00F031A3
17E8FFFFFF00FF4000FF
186719503203200020
0C6880637FFF800E8E82
2BC8948641FD03891D73
18A6FFF000064000
1F68DE20003700FFFFFF
1F88F504826FFE000A0D
391600008000C000
12E8C77FFF7FE0FFFF00
24270200FFEFFE000C
29C800000000FFFF0000
35245C000000
130800286FFE009FFECD
17A8FFFFFFAA00F031A3
17E8F
BUFFER FULL
这里大部分消息都是正确的(3 字节 ID + 1 字节 DLC + 8 字节数据),但有些更短,有时我收到的消息更长。这些正常吗?如果没有,它可能来自哪里的任何想法?
的确,所有与 OBD 相关的(即标准化的)消息都有 8 个字节的数据。 但是您发布的轨迹不包含任何 OBD 消息。
OBD 消息的 CAN-ID 介于 0x7DF 和 0x7EF 之间
您输出中的消息似乎是其他(特定于制造商的)CAN 消息。制造商可以自由定义这些消息的格式,因此允许小于 8 的 DLC。
监听 OBDII can 协议的示例:
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 316 DLC: 08 DATA: 01 1E AC 09 1E 1C 00 5E
idv: 0 exID: 80012CC ID: 0A1 DLC: 08 DATA: 78 7F 00 00 1D 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8A 00 00 00 00
idv: 0 exID: 80012CC ID: 316 DLC: 08 DATA: 01 1E AC 09 1E 1C 00 5E
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 47 00 8B 00 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 7DF DLC: 08 DATA: 02 01 0C 00 00 00 00 00
idv: 0 exID: 80012CC ID: 7E8 DLC: 08 DATA: 04 41 0C 09 9C 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8A 00 00 00 00
idv: 0 exID: 80012CC ID: 316 DLC: 08 DATA: 01 1E 98 09 1E 1C 00 5E
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8B 00 00 00 00
idv: 0 exID: 80012CC ID: 545 DLC: 08 DATA: 80 00 00 8B 00 00 00 00
idv: 0 exID: 80012CC ID: 580 DLC: 08 DATA: 00 00 00 00 00 00 00 00
每个传感器模块和...都可以使用电线相互传输数据
但这里是ELM327读取RPM的收发包
idv: 0 exID: 80012CC ID: 7DF DLC: 08 DATA: 02 01 0C 00 00 00 00 00
idv: 0 exID: 80012CC ID: 7E8 DLC: 08 DATA: 04 41 0C 09 9C 00 00 00
如您所见,数据包的 DLC 始终为 8 个字节,例如 can 协议的第一个数据位是该数据包中的数据字节数
数据:02 01 0C 00 00 00 00 00 数据字节数 =02 数据 = 01 0C(转速读取命令)