Перейти к содержимому



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


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 60

#1 Maximus559

 

    Активный участник

  • Активные пользователи
  • 90 сообщений
  • Пол:Мужчина
  • Город:Новокузнецк
  • Интересы:Спорт,машины,туризм
  • Автомобиль:ваз 2114
 

Отправлено 24 Март 2010 - 07:56

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


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

Прикрепленные файлы

  • Прикрепленный файл  DiagnozNK.rar   346,38К   220 Количество загрузок:


#2 Frend

 

    Активный участник

  • Участник
  • 27 сообщений
  • Пол:Мужчина
  • Город:Алексеевка Белгородская обл.
  • Интересы:КДС.Чиптюнинг ВАЗ
  • Автомобиль:ВАЗ-21099
 

Отправлено 24 Март 2010 - 10:16

Просмотр сообщенияMaximus559 (24 Март 2010 - 07:56) писал:

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


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


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

#3 Maximus559

 

    Активный участник

  • Активные пользователи
  • 90 сообщений
  • Пол:Мужчина
  • Город:Новокузнецк
  • Интересы:Спорт,машины,туризм
  • Автомобиль:ваз 2114
 

Отправлено 24 Март 2010 - 10:20

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

#4 Bruce Willis

 

    Гондон.

  • Заблокированные
  • 894 сообщений
  • Пол:Мужчина
  • Город:Киров
  • Интересы:Чиптюнинг, Ремонт ЭБУ, Иммо
  • Автомобиль:BMW E34 M50b20
 

Отправлено 24 Март 2010 - 10:47

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

#5 Cruiser

 

    Профи

  • Master
  • 244 сообщений
  • Пол:Мужчина
  • Город:Россия Искра
  • Интересы:Диван, телевизор.
  • Автомобиль:велосипед
 

Отправлено 24 Март 2010 - 10:54

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

#6 Maximus559

 

    Активный участник

  • Активные пользователи
  • 90 сообщений
  • Пол:Мужчина
  • Город:Новокузнецк
  • Интересы:Спорт,машины,туризм
  • Автомобиль:ваз 2114
 

Отправлено 24 Март 2010 - 11:08

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

#7 Cruiser

 

    Профи

  • Master
  • 244 сообщений
  • Пол:Мужчина
  • Город:Россия Искра
  • Интересы:Диван, телевизор.
  • Автомобиль:велосипед
 

Отправлено 24 Март 2010 - 11:13

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

#8 VVlad

 

    Профи

  • Profi Club
  • 697 сообщений
  • Пол:Мужчина
  • Город:Сумы UA
  • Автомобиль:Opel
 

Отправлено 24 Март 2010 - 11:19

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

#9 Maximus559

 

    Активный участник

  • Активные пользователи
  • 90 сообщений
  • Пол:Мужчина
  • Город:Новокузнецк
  • Интересы:Спорт,машины,туризм
  • Автомобиль:ваз 2114
 

Отправлено 24 Март 2010 - 11:20

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

#10 Maximus559

 

    Активный участник

  • Активные пользователи
  • 90 сообщений
  • Пол:Мужчина
  • Город:Новокузнецк
  • Интересы:Спорт,машины,туризм
  • Автомобиль:ваз 2114
 

Отправлено 24 Март 2010 - 17:51

Техническая сторона вопроса :
При работе с СОМ портом программа использует стандартные функции WIN32 API.
При связи с портом (функцией CreateFile(...)) в программе создается еще 2 дочерних потока, выполняемых совершенно независимо друг от друга.
В одном потоке на порт последовательно отправляются запросы из кэша (с интервалом задаваемым в настройках программы - по умолчанию 200 мс - так требует документация АВТОВАЗа),
в другом потоке происходит "слушаение" порта функцией WaitCommEvent(...).
Чтение и запись в порт происходят стандартными Windows API функциями ReadFile(...) и WriteFile(...).
Закрытие порта производит функция CloseHandle(...).

Параметры порта - скорость 10400 и биты четности - все взято из описания протокола KWP2000 (редакции от АВТОВАЗ).
Единственный момент который в этом документе упушен - таймауты порта, которые выставляются функцией API SetCommTimeouts(...)
В моем случае адаптер одинаково стабильно работал при любых таймаутах, и я не уделил особого внимания этому моменту!

В любом случае весь цикл написания и тестирования программы происходил на USB адаптре K-Line лишь ЭМУЛИРУЮЩЕГО работу СОМ порта.
Возможно на реальном СОМ порте необходимо выставть други таймауты или несколько иначе организовать цикл чтения/записи данных.
Наверно придется в ближайщее время спаять адаптер для РЕАЛЬНОГО СОМ порта (которго и нет в моем буке:) и тестить прогу на нем!
А то уж какая то сильно аппаратно зависимая релизация получилась : )))

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

#11 Maximus559

 

    Активный участник

  • Активные пользователи
  • 90 сообщений
  • Пол:Мужчина
  • Город:Новокузнецк
  • Интересы:Спорт,машины,туризм
  • Автомобиль:ваз 2114
 

Отправлено 28 Март 2010 - 13:57

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

#12 Cruiser

 

    Профи

  • Master
  • 244 сообщений
  • Пол:Мужчина
  • Город:Россия Искра
  • Интересы:Диван, телевизор.
  • Автомобиль:велосипед
 

Отправлено 28 Март 2010 - 14:18

По моему опыту то, что работает на чипах FTDI (типа твоего мастеркитовского адаптера) , то на чистои коме и других преобразователях USB
работает и подавно. Я пользовался еще пролификом и CP
Насчет протоколов-самому интересно, но ничего свежее kvp2000 для Е2 не встречал к сожалению.

Сообщение отредактировал Cruiser: 28 Март 2010 - 14:19


#13 Nickpshen

 

    Профи

  • Master
  • 340 сообщений
  • Пол:Мужчина
  • Город:Украина Винница
  • Интересы:Чип тюнинг
  • Автомобиль:ВАЗ 21104
 

Отправлено 03 Апрель 2010 - 16:51

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

#14 Cruiser

 

    Профи

  • Master
  • 244 сообщений
  • Пол:Мужчина
  • Город:Россия Искра
  • Интересы:Диван, телевизор.
  • Автомобиль:велосипед
 

Отправлено 03 Апрель 2010 - 17:03

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

#15 mol78

 

    Проф Доступ

  • Profi Club
  • 382 сообщений
  • Пол:Мужчина
  • Город:Макушино
  • Автомобиль:Toyota Premio
 

Отправлено 04 Апрель 2010 - 03:48

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

Рекомендации:
1. Сделай запись пакетов в лог файл (типа
TxD: ......
RxD:.......
Удобнее гораздо будет откатывать программу.
2. Для задания таймингов при инциализации обмена сделай инишник, в котором их можно было-бы править.
На разных по производительности компьютерах - разные погрешности при установке timeout.
3. Пиды желательно тоже вынести в ини файл свой для каждого типа контроллера, т.к. они отличаются
Изображение

#16 mol78

 

    Проф Доступ

  • Profi Club
  • 382 сообщений
  • Пол:Мужчина
  • Город:Макушино
  • Автомобиль:Toyota Premio
 

Отправлено 04 Апрель 2010 - 06:39

Слушал порт сниффером.
У тебя отсутствует задержка между запросом и ответом. Т.е. в ответ ты получаешь только эхо(оно обязательно присутствует в адаптере и его нужно учитывать)
По протоколу KWP2000 вроде бы – 50мс. Но прекрасно работает и 15мс. Интервал между запросами – 150-500мс (проверял - работает).
Программы, которые я привел в пример, уверенно связываются со всеми ВАЗовскими контроллерами.
Прикрепил логи со сниффера

Прикрепленные файлы


Изображение

#17 Maximus559

 

    Активный участник

  • Активные пользователи
  • 90 сообщений
  • Пол:Мужчина
  • Город:Новокузнецк
  • Интересы:Спорт,машины,туризм
  • Автомобиль:ваз 2114
 

Отправлено 05 Апрель 2010 - 06:22

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

1. Добавлена возможность ведения логов обмена данными с портом в файл.
Для этого в верхней правой части окна появилась соответсвующая галочка.
Когда она установлна все что оправлено\принято с порта пишется в файл log.txt в папке с программой.
Таким образом образом можно записывать выборочные моменты обмена, вовремя ставя и снимая галочку.

Формат сообщений в файле :
[время] [направление] [данные] [описание]
где,
время - время отправки\приема с точностью до милесекунд
напрвление - RCV или SND для получения и отправки данных соответственно
данные - данные в 16-ричном представлении
описание - для SND сообщений это название отправленной команды, для RCV это
просто строка (символьное представление полученных данных)

После отправки данных, если на порту есть пиание, в ответ последует точно такая же команда
(эхо-команда).
И только после нее, если ЭБУ нам ответил, на порт придет команда его ответа. Сам не знаю почему так
устроено :)

Каждой отправленной команде в файле соответствует одна строка SND, а вот каждой принятой команде
может соответствовать несколько строк RCV, если она была получена за несколько циклов чтения с порта.
Более того - между двуми циклами чтени RCV одной логической команды (пакета), может затисаться одна
команда оправки SND т.к. эти процессы в программе проходят асинхронно! В этом нет ничего страшного,
разве что человеком воспринимается тяжеловато :)

2. Добавлена возможность настройки таймаутов СОМ-порта.
Для этого нужно зайти в настройки порта и в ручную помнять 5 параметров.
Не знаю, может у кого-то это и повлияет на работоспособность программы, но у меня все работает ПРИ
ЛЮБЫХ значениях таймаутов.

Прикрепленные файлы



#18 Maximus559

 

    Активный участник

  • Активные пользователи
  • 90 сообщений
  • Пол:Мужчина
  • Город:Новокузнецк
  • Интересы:Спорт,машины,туризм
  • Автомобиль:ваз 2114
 

Отправлено 05 Апрель 2010 - 06:58

Просмотр сообщенияmol78 (04 Апрель 2010 - 06:39) писал:

Слушал порт сниффером.
У тебя отсутствует задержка между запросом и ответом. Т.е. в ответ ты получаешь только эхо(оно обязательно присутствует в адаптере и его нужно учитывать)
По протоколу KWP2000 вроде бы – 50мс. Но прекрасно работает и 15мс. Интервал между запросами – 150-500мс (проверял - работает).
Программы, которые я привел в пример, уверенно связываются со всеми ВАЗовскими контроллерами.
Прикрепил логи со сниффера

Эхо конечно же учитывается )))
В моем случае понятие "задержка между запросом и ответом" не уместно, т.к. чтение запись проясходят (повторюсь) асинхронно!
Основная программа когда нужно что то отправить ложит эти данные в буфер не дожидаясь самого момента их отправки на порт.
В принципе в этом буфере может скопиться хоть 5 хоть 10 команд (но на практике такого не бывает). Поток для записи в порт (выполняемый
отдельно от основого) как только увидит что буфер для отправки не пуст, сразу шлет первую команду с буфера на порт и засыпает на время 200 мс.
(задается в настройках). Как только будет получен ответ на эту команду, она удалится из буфера и сразу будет отправлена следующая команда и т.д.
Если ответ на команду не был получен после 3 попыток она тоже удаляется из буфера и приходит черед след. команды (если она есть).
Таким образом буфер освобождается по принципу ФИФО.

Второй поток (для чтения), постоянно "слушает" порт и запоминает в буфере все что пришло.
Как только последовательность принятых данных (возможно за несколько циклов чтения с порта) будет похожа на комнду KWP2000 (сверяет по заголовку и контрольной сумме),
он передает эту команду основной программе и очишает буфер чтения, для ожидания следующей команды. А основная программа уже исходя из полученных данных просто размещает их
в нужном виде на форме для отображения пользователю!

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

#19 o717ka

 

    Очень Злой Чувак

  • Супер модератор
  • 2 916 сообщений
  • Пол:Мужчина
  • Город:Россия НОВОАННИНСКИЙ
  • Интересы:www.auto-bk.ru Motor-Chip.ru Диагностика, Ремонт, Чиптюнинг,и т.д.
  • Автомобиль:Toyota Celica GT-S
 

Отправлено 05 Апрель 2010 - 08:15

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

#20 mol78

 

    Проф Доступ

  • Profi Club
  • 382 сообщений
  • Пол:Мужчина
  • Город:Макушино
  • Автомобиль:Toyota Premio
 

Отправлено 06 Апрель 2010 - 16:14

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




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей

Rambler's Top100 Яндекс цитирования