Упс!Andrej писал(а):Все верно! Я использую протокол 5 - ISO 14230-4 KWP (fast init, 10.4 Kbaud) с устойчивой скоростью ( не путать с максимальной) 10400Kb. Но так как в ФЛпрог нет такой скорости, я использовал 9600, это ближе к тем параметрам что заявил разработчик ЭБУ. У меня раз получилось подцепиться, но как вы уже знаете ноут разрядился.Вот по такой схеме у меня получилось. диск. Возможно я что то перемудрил, но спрашивать нестал. Схема примерная, так как я порядком трех часов что то изменял, корректировал. Изменения помоему только в данных. Ну может что то из блоков добавил.
В Вашем случае НЕЛЬЗЯ использовать скорость обмена данными 9600. Все данные будут кривые. В ФЛПроге нет возможности устанавливать произвольную скорость обмена, я об этом полгода назад высказывал пожелание но осталось без ответа. В этом случае перед заливкой скетча в ардуину необходимо находить строку где указана скорость и руками привить на 10416.
На скорую руку набросал пример инициализации и отправку данных. Обмен с К линией сделан на блоке пользователя со встроенным расчетом и добавлением к отправляемым данным КС. В качестве КОМ порта со стороны К линии применен AltSoftSerial, описание и библиотеку найдете в сети.
Сделан расчет и обработка запрашиваемых данных, для правильного заголовка КВП протокола.
Для инициализации использован дополнительный вывод, сигнал с которого через резистор 1К необходимо подать на базу NPN транзистора. Коллектор непосредственно на К линию, эммитер на массу.
Скорее всего сразу не заработает, сомневаюсь что вообще заработает на слабом камне. Временные интервалы на слабых контроллерах будут плавать. Для этих целей желательно использовать Arduino DUE.
По ходу нашел ошибку. В коммутаторе вместо 81 запишите C133F181, и не пользуйтесь встроенным монитором КОМ порта! Он на конце добавляет перенос строки и отправляемые данные будут кривые.
А КС вычисляется очень просто. Если пакет вот такой C133F181 то в калькуляторе в режиме Hex складываем все байты, получается 266, откидываем двойку - остается 66. Это и есть КС