Перейти к содержанию
AUTO TECHNOLOGY

Помогите с написанием программы!


Рекомендуемые сообщения

Пишу программу для диагностики и прошивания ЭБУ.Пока вот толька нашол протоколы обмена на Я7 (надеюсь на помощь для других типов эбу).Писал с адаптером ВМ 9213 с ним у меня связываеться быстро и регулярно.Так же хотелось, чтобы и другие адаптары с ней связывались но как это сделать не знаю.Вобщем выкладываю жду предложений и помощи...

 

 

Всем откликнувимся огромное Спасибо!

DiagnozNK.rar

Ссылка на комментарий
Поделиться на другие сайты

Пишу программу для диагностики и прошивания ЭБУ.Пока вот толька нашол протоколы обмена на Я7 (надеюсь на помощь для других типов эбу).Писал с адаптером ВМ 9213 с ним у меня связываеться быстро и регулярно.Так же хотелось, чтобы и другие адаптары с ней связывались но как это сделать не знаю.Вобщем выкладываю жду предложений и помощи...

 

 

Всем откликнувимся огромное Спасибо!

 

 

Поробовал связаться U2K-L-Iine показывает только каналы АЦП

Ссылка на комментарий
Поделиться на другие сайты

Понятно...Но не понятно одно как тогда писать программу чтобы она отвечала на любом адаптере?

Ссылка на комментарий
Поделиться на другие сайты

Тут ты найдешь бетотестеров, но вряд ли найдешь ответы на свои вопросы. Посмотри про init 5 baud

Ссылка на комментарий
Поделиться на другие сайты

Опа, по екзешнику судить о том как оно будет работать?

Если кроме стандартных компортовых функций не используешь ничего, то пофиг какой адаптер

Ссылка на комментарий
Поделиться на другие сайты

Тогда не понятно почему когда я пробовал на 3 машинах всё связывалось на ура...А кто не пробовал другой подкл. ни чего не выходило.И что ещё надо чтобы судить о работе?

Ссылка на комментарий
Поделиться на другие сайты

криворукие видимо.

или прога твоя то работает, то нет.

Если в коде не использовано ничего специфичного для FT232 то должно работать с другими адаптерами.

Ну сделай хреновину на 2 транзисторах и опробуй на ком-порте

Ссылка на комментарий
Поделиться на другие сайты

Для того,чтобы судить о причинах некоректной связи, нужно видеть при каких режимах порта происходит связь, допустим в некоторых протоколах запрос посылается в одном режиме, а ответ на запрос уже совершенно в другом, ну это так для примера. Посему по екзешнику, всамом деле трудно судить о причинах.

Ссылка на комментарий
Поделиться на другие сайты

Ок спаяю.А по поводу протаколов обена на Бош не чем помочь?Да и прога у меня работает регулярно ни каких перебоев в работе нет...всёже грешу на то что писалась видимо с адаптера ВМ 9213 вдимо и работать только с ним будет... хотелось бы чтобы кто нибудь имеющий такой же адаптер потестил.

Ссылка на комментарий
Поделиться на другие сайты

Техническая сторона вопроса :

При работе с СОМ портом программа использует стандартные функции WIN32 API.

При связи с портом (функцией CreateFile(...)) в программе создается еще 2 дочерних потока, выполняемых совершенно независимо друг от друга.

В одном потоке на порт последовательно отправляются запросы из кэша (с интервалом задаваемым в настройках программы - по умолчанию 200 мс - так требует документация АВТОВАЗа),

в другом потоке происходит "слушаение" порта функцией WaitCommEvent(...).

Чтение и запись в порт происходят стандартными Windows API функциями ReadFile(...) и WriteFile(...).

Закрытие порта производит функция CloseHandle(...).

 

Параметры порта - скорость 10400 и биты четности - все взято из описания протокола KWP2000 (редакции от АВТОВАЗ).

Единственный момент который в этом документе упушен - таймауты порта, которые выставляются функцией API SetCommTimeouts(...)

В моем случае адаптер одинаково стабильно работал при любых таймаутах, и я не уделил особого внимания этому моменту!

 

В любом случае весь цикл написания и тестирования программы происходил на USB адаптре K-Line лишь ЭМУЛИРУЮЩЕГО работу СОМ порта.

Возможно на реальном СОМ порте необходимо выставть други таймауты или несколько иначе организовать цикл чтения/записи данных.

Наверно придется в ближайщее время спаять адаптер для РЕАЛЬНОГО СОМ порта (которго и нет в моем буке:) и тестить прогу на нем!

А то уж какая то сильно аппаратно зависимая релизация получилась : )))

 

З.Ы: Реально кто-нить пробовал прогу на ВМ 9213? У кого-нить заработало?

Ссылка на комментарий
Поделиться на другие сайты

Попробуйте хоть кто нибудь на МастерКит ВМ 9213 и отпишитесь вышло ли что нибудь...

Ссылка на комментарий
Поделиться на другие сайты

По моему опыту то, что работает на чипах FTDI (типа твоего мастеркитовского адаптера) , то на чистои коме и других преобразователях USB

работает и подавно. Я пользовался еще пролификом и CP

Насчет протоколов-самому интересно, но ничего свежее kvp2000 для Е2 не встречал к сожалению.

Изменено пользователем Cruiser
Ссылка на комментарий
Поделиться на другие сайты

Сегодня попробовал подключится этой прогой к 2110 Я7.2, связь установилась быстро и прога работала без сбоев. Адаптер у меня на FT232. Токо некоторые параметры показывала неправильно - это впрыск и кажется еще что то.

Ссылка на комментарий
Поделиться на другие сайты

я72 это е2 если не склероз. читай доки по протоколу , не должно бздеть вроде. а про адаптеры забей, ft232 один из наиболее проблемных, если с ним работает, то гут. У СиЛабс другие прюблемы его надо конфигурировать специально, иначе 10400 не установишь.

Ссылка на комментарий
Поделиться на другие сайты

Пробовал ч-з com-port - связь не пошла. Чуть позже разберусь почему - напишу.

 

Рекомендации:

1. Сделай запись пакетов в лог файл (типа

TxD: ......

RxD:.......

Удобнее гораздо будет откатывать программу.

2. Для задания таймингов при инциализации обмена сделай инишник, в котором их можно было-бы править.

На разных по производительности компьютерах - разные погрешности при установке timeout.

3. Пиды желательно тоже вынести в ини файл свой для каждого типа контроллера, т.к. они отличаются

Ссылка на комментарий
Поделиться на другие сайты

Слушал порт сниффером.

У тебя отсутствует задержка между запросом и ответом. Т.е. в ответ ты получаешь только эхо(оно обязательно присутствует в адаптере и его нужно учитывать)

По протоколу KWP2000 вроде бы – 50мс. Но прекрасно работает и 15мс. Интервал между запросами – 150-500мс (проверял - работает).

Программы, которые я привел в пример, уверенно связываются со всеми ВАЗовскими контроллерами.

Прикрепил логи со сниффера

сниффер.rtf

Ссылка на комментарий
Поделиться на другие сайты

Внёс требуемые изменения...Прошу опробовать.

Изменения в версии 1.05

 

1. Добавлена возможность ведения логов обмена данными с портом в файл.

Для этого в верхней правой части окна появилась соответсвующая галочка.

Когда она установлна все что оправлено\принято с порта пишется в файл log.txt в папке с программой.

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

 

Формат сообщений в файле :

[время] [направление] [данные] [описание]

где,

время - время отправки\приема с точностью до милесекунд

напрвление - RCV или SND для получения и отправки данных соответственно

данные - данные в 16-ричном представлении

описание - для SND сообщений это название отправленной команды, для RCV это

просто строка (символьное представление полученных данных)

 

После отправки данных, если на порту есть пиание, в ответ последует точно такая же команда

(эхо-команда).

И только после нее, если ЭБУ нам ответил, на порт придет команда его ответа. Сам не знаю почему так

устроено :)

 

Каждой отправленной команде в файле соответствует одна строка SND, а вот каждой принятой команде

может соответствовать несколько строк RCV, если она была получена за несколько циклов чтения с порта.

Более того - между двуми циклами чтени RCV одной логической команды (пакета), может затисаться одна

команда оправки SND т.к. эти процессы в программе проходят асинхронно! В этом нет ничего страшного,

разве что человеком воспринимается тяжеловато :)

 

2. Добавлена возможность настройки таймаутов СОМ-порта.

Для этого нужно зайти в настройки порта и в ручную помнять 5 параметров.

Не знаю, может у кого-то это и повлияет на работоспособность программы, но у меня все работает ПРИ

ЛЮБЫХ значениях таймаутов.

DiagnozNK v1.05.rar

Ссылка на комментарий
Поделиться на другие сайты

Слушал порт сниффером.

У тебя отсутствует задержка между запросом и ответом. Т.е. в ответ ты получаешь только эхо(оно обязательно присутствует в адаптере и его нужно учитывать)

По протоколу KWP2000 вроде бы – 50мс. Но прекрасно работает и 15мс. Интервал между запросами – 150-500мс (проверял - работает).

Программы, которые я привел в пример, уверенно связываются со всеми ВАЗовскими контроллерами.

Прикрепил логи со сниффера

 

Эхо конечно же учитывается )))

В моем случае понятие "задержка между запросом и ответом" не уместно, т.к. чтение запись проясходят (повторюсь) асинхронно!

Основная программа когда нужно что то отправить ложит эти данные в буфер не дожидаясь самого момента их отправки на порт.

В принципе в этом буфере может скопиться хоть 5 хоть 10 команд (но на практике такого не бывает). Поток для записи в порт (выполняемый

отдельно от основого) как только увидит что буфер для отправки не пуст, сразу шлет первую команду с буфера на порт и засыпает на время 200 мс.

(задается в настройках). Как только будет получен ответ на эту команду, она удалится из буфера и сразу будет отправлена следующая команда и т.д.

Если ответ на команду не был получен после 3 попыток она тоже удаляется из буфера и приходит черед след. команды (если она есть).

Таким образом буфер освобождается по принципу ФИФО.

 

Второй поток (для чтения), постоянно "слушает" порт и запоминает в буфере все что пришло.

Как только последовательность принятых данных (возможно за несколько циклов чтения с порта) будет похожа на комнду KWP2000 (сверяет по заголовку и контрольной сумме),

он передает эту команду основной программе и очишает буфер чтения, для ожидания следующей команды. А основная программа уже исходя из полученных данных просто размещает их

в нужном виде на форме для отображения пользователю!

 

Таким образом два процесса (чтение\запись) происходят совершенно независимо, и даже не подозревают о сушествовании друг друга )))

Ссылка на комментарий
Поделиться на другие сайты

шустрая программа, проверил на я7.2, работает на буке через PCMCA.

Ссылка на комментарий
Поделиться на другие сайты

Ч-з компорт так и не смог подключиться. Цифирки в настройках менял всяко - разницы не видно.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...
Яндекс цитирования