ELM327 контролирует все - сообщения CAN длиной не 8 байт - PullRequest
0 голосов
/ 05 сентября 2018

Стандартный CAN (ISO 15765-4) OBD требует, чтобы все сообщения имели 8 байтов данных - (документация ELM327)

Чтение из моей машины с Bluetooth 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 байт данных), но некоторые короче, и иногда я получаю сообщения, которые длиннее. Это нормально? Если нет, то есть идеи, откуда это взялось?

Ответы [ 2 ]

0 голосов
/ 25 мая 2019

этот образец прослушивания OBDII может протокол:

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 (команда чтения об / мин)

0 голосов
/ 14 сентября 2018

Это правда, что все связанные с OBD (т.е. стандартизированные) сообщения имеют 8 байтов данных. Однако опубликованная вами трассировка не содержит сообщений OBD.

Сообщения OBD имеют CAN-ID от 0x7DF до 0x7EF

Похоже, что сообщения в вашем выводе являются другими (специфичными для производителя) сообщениями CAN. Изготовитель может свободно определять формат этих сообщений, поэтому допускается DLC меньше 8.

...