Съобщение за контрол на потока при получаване на CAN съобщение с ELM327

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

TX: ATI RX: ELM327 v1.5a

TX: ATE0 RX: ATE0 OK

TX: ATSP6 RX: OK

TX: ATH1 RX: OK

TX: ATL1 RX: OK

TX: ATCFC1 RX: OK

TX: ATFCSM0 RX: OK

TX: ATAL RX: OK

TX: ATSH782 RX: OK

TX: ATCRA783 RX: ?

TX: ATST64 RX: OK

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, но не намерих никаква информация за това как да забавя рамката за контрол на потока. Как да изпратя правилно заявката "1A 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 съобщението, а не по едно и също време.

Второ, диагностичният четец може да използва ID в рамката за отговор на ECU, за да продължи комуникацията с конкретен ECU. По-специално, комуникацията с множество рамки изисква отговор на специфичния ECU ID, а не на ID 7DF. На лесен език не трябва да изпращате вашето FF съобщение с ID 7DF и трябва да адресирате точния ECU, който искате да получавате последователните рамки. Например искане на VIN автомобил (въз основа на реална информация от Golf VII):

7DF 02 09 00 00 00 00 00 00 //изпращане на заявка

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

7E0 30 00 00 00 00 00 00 00 //адресиране на главното ECU и вече не 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