Сообщение управления потоком при получении сообщения CAN с помощью ELM327

Я пытаюсь сделать программное обеспечение, которое работает под Windows и взаимодействует с устройством ELM327. Я создал первую версию и поехал на своем автомобиле SMART ForTwo (SMART 451), и мне удалось подключиться к комбинации приборов (идентификатор CAN для передачи — 782, идентификатор CAN для приема — 783). Однако у меня есть огромная проблема с Flow Control. Вот журнал:

TX: ATI RX: ELM327 v1.5a

TX: ATE0 RX: ATE0 ОК

TX: ATSP6 RX: ОК

TX: ATH1 RX: ОК

TX: ATL1 RX: ОК

TX: ATCFC1 RX: ОК

TX: ATFCSM0 RX: ОК

TX: АТАЛ RX: ОК

TX: ATSH782 RX: ОК

TX: ATCRA783 RX: ?

ТХ: ATST64 РХ: ОК

TX: 1092 RX: 783 02 1A 87

TX: 1A87 RX: 783 10 16 5A 87 05 6E 00 08

Я использовал другой инструмент и увидел, что устройство ELM327 немедленно отправляет кадр управления потоком. Это так:

891,438 782 02 1A 87

891,444 783 10 16 5A 87 05 6E 00 08

891,444 782 30 00 00 00 00 00 00 00

Как видите, кадр управления потоком отправляется точно в то же время, что и первый кадр, отправленный с другого устройства. Я уверен, что у другого устройства есть проблема с получением кадра «Управление потоком». Я изучил документацию ELM327, но не нашел никакой информации о том, как задержать кадр Flow Control. Как правильно отправить запрос "1А 87" и получить ответ?


person user3650225    schedule 23.03.2015    source источник
comment
Я не думаю, что есть какой-либо способ отсрочить это!   -  person Swanand    schedule 26.03.2015


Ответы (2)


Это очень легко, я думаю..

Воспользуйтесь командой ATCFC0, и тогда вы сможете обработать все ответные кадры от блока управления, а кадр управления потоком нужно отправить вручную.

person Steve    schedule 02.07.2015

Это старый пост, но может помочь другим!

Это мой опыт работы с первым кадром (FF) и управлением потоком (FC) на MCP2515, подключенном к SPI.

Прежде всего, вы всегда должны отправлять сообщение FC после сообщения FF, а не одновременно с ним.

Во-вторых, диагностический считыватель может использовать идентификатор в кадре ответа ЭБУ для продолжения связи с конкретным ЭБУ. В частности, многокадровая связь требует ответа на конкретный идентификатор ECU, а не на идентификатор 7DF. Говоря простым языком, вы не должны отправлять свое сообщение FF с идентификатором 7DF, и вы должны адресовать именно тот ECU, который вы хотите получать последовательные кадры. Например, запрос VIN автомобиля (на основе реальной информации от Golf VII):

7DF 02 09 00 00 00 00 00 00 // отправка запроса

7E8 10 14 49 02 01 57 56 57 //получение от главного ЭБУ

7E0 30 00 00 00 00 00 00 00 //обращение к основному ЭБУ, а не к 7DF больше!!

7E8 21 5A 5A 5A 41 55 5A 45 //последовательные сообщения отправляются 7E0!!

7E8 22 50 35 33 30 36 38 35

Надеюсь, это поможет!

person WonderfulMe    schedule 11.08.2016