ELM327 контролирует все - сообщения CAN длиной не 8 байт
Стандарт 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 байт данных), но некоторые короче, и иногда я получаю сообщения длиннее. Это нормально? Если нет, то есть идеи, откуда это взялось?
1 ответ
Это правда, что все связанные с OBD (т.е. стандартизированные) сообщения имеют 8 байтов данных. Однако трассировка, которую вы опубликовали, не содержит сообщений OBD.
Сообщения OBD имеют CAN-ID от 0x7DF до 0x7EF.
Сообщения в вашем выводе кажутся другими (специфичными для производителя) сообщениями CAN. Изготовитель может свободно определять формат этих сообщений, поэтому допускается DLC менее 8.
Этот пример прослушивания 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 (КОМАНДА ЧТЕНИЯ ОБОРОТОВ В МИНУТУ)