Maximus559 Опубликовано 24 марта, 2010 Поделиться Опубликовано 24 марта, 2010 Пишу программу для диагностики и прошивания ЭБУ.Пока вот толька нашол протоколы обмена на Я7 (надеюсь на помощь для других типов эбу).Писал с адаптером ВМ 9213 с ним у меня связываеться быстро и регулярно.Так же хотелось, чтобы и другие адаптары с ней связывались но как это сделать не знаю.Вобщем выкладываю жду предложений и помощи... Всем откликнувимся огромное Спасибо! DiagnozNK.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
Frend Опубликовано 24 марта, 2010 Поделиться Опубликовано 24 марта, 2010 Пишу программу для диагностики и прошивания ЭБУ.Пока вот толька нашол протоколы обмена на Я7 (надеюсь на помощь для других типов эбу).Писал с адаптером ВМ 9213 с ним у меня связываеться быстро и регулярно.Так же хотелось, чтобы и другие адаптары с ней связывались но как это сделать не знаю.Вобщем выкладываю жду предложений и помощи... Всем откликнувимся огромное Спасибо! Поробовал связаться U2K-L-Iine показывает только каналы АЦП Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus559 Опубликовано 24 марта, 2010 Автор Поделиться Опубликовано 24 марта, 2010 Понятно...Но не понятно одно как тогда писать программу чтобы она отвечала на любом адаптере? Ссылка на комментарий Поделиться на другие сайты Поделиться
Bruce Willis Опубликовано 24 марта, 2010 Поделиться Опубликовано 24 марта, 2010 Тут ты найдешь бетотестеров, но вряд ли найдешь ответы на свои вопросы. Посмотри про init 5 baud Ссылка на комментарий Поделиться на другие сайты Поделиться
Cruiser Опубликовано 24 марта, 2010 Поделиться Опубликовано 24 марта, 2010 Опа, по екзешнику судить о том как оно будет работать? Если кроме стандартных компортовых функций не используешь ничего, то пофиг какой адаптер Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus559 Опубликовано 24 марта, 2010 Автор Поделиться Опубликовано 24 марта, 2010 Тогда не понятно почему когда я пробовал на 3 машинах всё связывалось на ура...А кто не пробовал другой подкл. ни чего не выходило.И что ещё надо чтобы судить о работе? Ссылка на комментарий Поделиться на другие сайты Поделиться
Cruiser Опубликовано 24 марта, 2010 Поделиться Опубликовано 24 марта, 2010 криворукие видимо. или прога твоя то работает, то нет. Если в коде не использовано ничего специфичного для FT232 то должно работать с другими адаптерами. Ну сделай хреновину на 2 транзисторах и опробуй на ком-порте Ссылка на комментарий Поделиться на другие сайты Поделиться
VVlad Опубликовано 24 марта, 2010 Поделиться Опубликовано 24 марта, 2010 Для того,чтобы судить о причинах некоректной связи, нужно видеть при каких режимах порта происходит связь, допустим в некоторых протоколах запрос посылается в одном режиме, а ответ на запрос уже совершенно в другом, ну это так для примера. Посему по екзешнику, всамом деле трудно судить о причинах. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus559 Опубликовано 24 марта, 2010 Автор Поделиться Опубликовано 24 марта, 2010 Ок спаяю.А по поводу протаколов обена на Бош не чем помочь?Да и прога у меня работает регулярно ни каких перебоев в работе нет...всёже грешу на то что писалась видимо с адаптера ВМ 9213 вдимо и работать только с ним будет... хотелось бы чтобы кто нибудь имеющий такой же адаптер потестил. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus559 Опубликовано 24 марта, 2010 Автор Поделиться Опубликовано 24 марта, 2010 Техническая сторона вопроса : При работе с СОМ портом программа использует стандартные функции WIN32 API. При связи с портом (функцией CreateFile(...)) в программе создается еще 2 дочерних потока, выполняемых совершенно независимо друг от друга. В одном потоке на порт последовательно отправляются запросы из кэша (с интервалом задаваемым в настройках программы - по умолчанию 200 мс - так требует документация АВТОВАЗа), в другом потоке происходит "слушаение" порта функцией WaitCommEvent(...). Чтение и запись в порт происходят стандартными Windows API функциями ReadFile(...) и WriteFile(...). Закрытие порта производит функция CloseHandle(...). Параметры порта - скорость 10400 и биты четности - все взято из описания протокола KWP2000 (редакции от АВТОВАЗ). Единственный момент который в этом документе упушен - таймауты порта, которые выставляются функцией API SetCommTimeouts(...) В моем случае адаптер одинаково стабильно работал при любых таймаутах, и я не уделил особого внимания этому моменту! В любом случае весь цикл написания и тестирования программы происходил на USB адаптре K-Line лишь ЭМУЛИРУЮЩЕГО работу СОМ порта. Возможно на реальном СОМ порте необходимо выставть други таймауты или несколько иначе организовать цикл чтения/записи данных. Наверно придется в ближайщее время спаять адаптер для РЕАЛЬНОГО СОМ порта (которго и нет в моем буке:) и тестить прогу на нем! А то уж какая то сильно аппаратно зависимая релизация получилась : ))) З.Ы: Реально кто-нить пробовал прогу на ВМ 9213? У кого-нить заработало? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus559 Опубликовано 28 марта, 2010 Автор Поделиться Опубликовано 28 марта, 2010 Попробуйте хоть кто нибудь на МастерКит ВМ 9213 и отпишитесь вышло ли что нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
Cruiser Опубликовано 28 марта, 2010 Поделиться Опубликовано 28 марта, 2010 (изменено) По моему опыту то, что работает на чипах FTDI (типа твоего мастеркитовского адаптера) , то на чистои коме и других преобразователях USB работает и подавно. Я пользовался еще пролификом и CP Насчет протоколов-самому интересно, но ничего свежее kvp2000 для Е2 не встречал к сожалению. Изменено 28 марта, 2010 пользователем Cruiser Ссылка на комментарий Поделиться на другие сайты Поделиться
Nickpshen Опубликовано 3 апреля, 2010 Поделиться Опубликовано 3 апреля, 2010 Сегодня попробовал подключится этой прогой к 2110 Я7.2, связь установилась быстро и прога работала без сбоев. Адаптер у меня на FT232. Токо некоторые параметры показывала неправильно - это впрыск и кажется еще что то. Ссылка на комментарий Поделиться на другие сайты Поделиться
Cruiser Опубликовано 3 апреля, 2010 Поделиться Опубликовано 3 апреля, 2010 я72 это е2 если не склероз. читай доки по протоколу , не должно бздеть вроде. а про адаптеры забей, ft232 один из наиболее проблемных, если с ним работает, то гут. У СиЛабс другие прюблемы его надо конфигурировать специально, иначе 10400 не установишь. Ссылка на комментарий Поделиться на другие сайты Поделиться
mol78 Опубликовано 4 апреля, 2010 Поделиться Опубликовано 4 апреля, 2010 Пробовал ч-з com-port - связь не пошла. Чуть позже разберусь почему - напишу. Рекомендации: 1. Сделай запись пакетов в лог файл (типа TxD: ...... RxD:....... Удобнее гораздо будет откатывать программу. 2. Для задания таймингов при инциализации обмена сделай инишник, в котором их можно было-бы править. На разных по производительности компьютерах - разные погрешности при установке timeout. 3. Пиды желательно тоже вынести в ини файл свой для каждого типа контроллера, т.к. они отличаются Ссылка на комментарий Поделиться на другие сайты Поделиться
mol78 Опубликовано 4 апреля, 2010 Поделиться Опубликовано 4 апреля, 2010 Слушал порт сниффером. У тебя отсутствует задержка между запросом и ответом. Т.е. в ответ ты получаешь только эхо(оно обязательно присутствует в адаптере и его нужно учитывать) По протоколу KWP2000 вроде бы – 50мс. Но прекрасно работает и 15мс. Интервал между запросами – 150-500мс (проверял - работает). Программы, которые я привел в пример, уверенно связываются со всеми ВАЗовскими контроллерами. Прикрепил логи со сниффера сниффер.rtf Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus559 Опубликовано 5 апреля, 2010 Автор Поделиться Опубликовано 5 апреля, 2010 Внёс требуемые изменения...Прошу опробовать. Изменения в версии 1.05 1. Добавлена возможность ведения логов обмена данными с портом в файл. Для этого в верхней правой части окна появилась соответсвующая галочка. Когда она установлна все что оправлено\принято с порта пишется в файл log.txt в папке с программой. Таким образом образом можно записывать выборочные моменты обмена, вовремя ставя и снимая галочку. Формат сообщений в файле : [время] [направление] [данные] [описание] где, время - время отправки\приема с точностью до милесекунд напрвление - RCV или SND для получения и отправки данных соответственно данные - данные в 16-ричном представлении описание - для SND сообщений это название отправленной команды, для RCV это просто строка (символьное представление полученных данных) После отправки данных, если на порту есть пиание, в ответ последует точно такая же команда (эхо-команда). И только после нее, если ЭБУ нам ответил, на порт придет команда его ответа. Сам не знаю почему так устроено :) Каждой отправленной команде в файле соответствует одна строка SND, а вот каждой принятой команде может соответствовать несколько строк RCV, если она была получена за несколько циклов чтения с порта. Более того - между двуми циклами чтени RCV одной логической команды (пакета), может затисаться одна команда оправки SND т.к. эти процессы в программе проходят асинхронно! В этом нет ничего страшного, разве что человеком воспринимается тяжеловато :) 2. Добавлена возможность настройки таймаутов СОМ-порта. Для этого нужно зайти в настройки порта и в ручную помнять 5 параметров. Не знаю, может у кого-то это и повлияет на работоспособность программы, но у меня все работает ПРИ ЛЮБЫХ значениях таймаутов. DiagnozNK v1.05.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
Maximus559 Опубликовано 5 апреля, 2010 Автор Поделиться Опубликовано 5 апреля, 2010 Слушал порт сниффером. У тебя отсутствует задержка между запросом и ответом. Т.е. в ответ ты получаешь только эхо(оно обязательно присутствует в адаптере и его нужно учитывать) По протоколу KWP2000 вроде бы – 50мс. Но прекрасно работает и 15мс. Интервал между запросами – 150-500мс (проверял - работает). Программы, которые я привел в пример, уверенно связываются со всеми ВАЗовскими контроллерами. Прикрепил логи со сниффера Эхо конечно же учитывается ))) В моем случае понятие "задержка между запросом и ответом" не уместно, т.к. чтение запись проясходят (повторюсь) асинхронно! Основная программа когда нужно что то отправить ложит эти данные в буфер не дожидаясь самого момента их отправки на порт. В принципе в этом буфере может скопиться хоть 5 хоть 10 команд (но на практике такого не бывает). Поток для записи в порт (выполняемый отдельно от основого) как только увидит что буфер для отправки не пуст, сразу шлет первую команду с буфера на порт и засыпает на время 200 мс. (задается в настройках). Как только будет получен ответ на эту команду, она удалится из буфера и сразу будет отправлена следующая команда и т.д. Если ответ на команду не был получен после 3 попыток она тоже удаляется из буфера и приходит черед след. команды (если она есть). Таким образом буфер освобождается по принципу ФИФО. Второй поток (для чтения), постоянно "слушает" порт и запоминает в буфере все что пришло. Как только последовательность принятых данных (возможно за несколько циклов чтения с порта) будет похожа на комнду KWP2000 (сверяет по заголовку и контрольной сумме), он передает эту команду основной программе и очишает буфер чтения, для ожидания следующей команды. А основная программа уже исходя из полученных данных просто размещает их в нужном виде на форме для отображения пользователю! Таким образом два процесса (чтение\запись) происходят совершенно независимо, и даже не подозревают о сушествовании друг друга ))) Ссылка на комментарий Поделиться на другие сайты Поделиться
o717ka Опубликовано 5 апреля, 2010 Поделиться Опубликовано 5 апреля, 2010 шустрая программа, проверил на я7.2, работает на буке через PCMCA. Ссылка на комментарий Поделиться на другие сайты Поделиться
mol78 Опубликовано 6 апреля, 2010 Поделиться Опубликовано 6 апреля, 2010 Ч-з компорт так и не смог подключиться. Цифирки в настройках менял всяко - разницы не видно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти