PDA

Просмотр полной версии : Как написать программу для работы с ЭБУ


Askart
28.08.2010, 18:02
Вобщем суть следующая. Есть k-line USB адаптер, при помощи проги диагностик тул он соединяется с моей 10кой (21103), отслеживает кучу параметров, к которым я бы хотел иметь доступ в своей программе для CarPC. Базовые навыки программирования имеются (плюс куча инфы по программированию и дизайну, если что разберусь попутно). Вопрос в следующем как получить доступ к данным ЭБУ, ну например расход, обороты, ошибки и т.д.
Буду благодарен за любую инфу которая научит тому как получать данные по средствам k-line, которую в последствии можно использовать в средах программирования (например в Delphi). :dntknw:

P.S. В первую очередь хотелось бы узнать на примере ЭБУ Январь 5.1 или Ителма VS 5.1 (Авто: 21103 2003 г.в. двигатель 2112)

P.S.S первый раз в жизни гугл и яндекс нефига не нашли, так что просьба не материться если где то есть, я искал, но не нашёл!

GASCHE
28.08.2010, 18:27
Askart Далеко ходить не надо
http://www.pccar.ru/showthread.php?t=3643
http://www.pccar.ru/showthread.php?t=11362

Askart
28.08.2010, 20:23
Изучив то что вы мне дали, я понял что информации касательно того что я хочу знать катастрофически мало. Во первых у меня не OBD-2, а 12 контактный разъём. Во вторых мне нужна информация о том как компьютер обменивается информацией с ЭБУ, в моем случае это Январь 5.1:
http://img-fotki.yandex.ru/get/4506/cherry-wm.0/0_3e88a_91439a6a_L.jpg

Почитав инфу от автоваза касательно протокола "Keyword Protocol 2000: Спецификация канала связи с диагностическим оборудованием - Уровень обмена данными" (выложена на чиптюнере в разделе документация) понял что это не совсем тот уровень с которым я наделся работать. Тут всё в шестнадцатеричной системе происходит, поэтому скорей всего писать программу под него надо на ассемблере, ну по крайней мере модуль который будет болтать с ЭБУ. В общем в связи с выше сказанным хотелось бы найти человека который уже этим занимался, ну или на крайний случай фак для чайников как написать такого рода программу.

P.S. предлагаю создать тему в данном направлении где по полочкам будет разложено с чего начать и в какую сторону рулить, я думаю не один я такой и данная тема FAQ будет очень востребована.

Virtual
29.08.2010, 00:32
..... понял что это не совсем тот уровень с которым я наделся работать. Тут всё в шестнадцатеричной системе происходит, поэтому скорей всего писать программу под него надо на ассемблере, ну по крайней мере модуль который будет болтать с ЭБУ. В общем в связи с выше сказанным хотелось бы найти человека который уже этим занимался, .......

P.S. предлагаю создать тему в данном направлении где по полочкам будет разложено с чего начать и в какую сторону рулить, я думаю не один я такой и данная тема FAQ будет очень востребована.

извените конечно но данный пост я покажу в понедельник отделу IT и отделу АСУТП на работе ;).
думаю что рабочий процесс будет сорван как минимум до вечера.

Зы у настоящих мальчиков на руках всегда пальцев 2 в степени n и тыща это 1024

GASCHE
29.08.2010, 09:06
Изучив то что вы мне далиДумаю не достаточно хорошо изучили.
Во первых у меня не OBD-2, а 12 контактный разъём. Если вам что-то не понятно надо привести назначение сигналов на каждой ножке разъема, так как количество контактов не о чем не говорит.
Во вторых мне нужна информация о том как компьютер обменивается информацией с ЭБУ, в моем случае это Январь 5.1
Этот документ базируется на международном стандарте ISO 14230 - 3 Keyword Protocol 2000 и представляет собой спецификацию канала передачи данных между контроллерами системы управления двигателем Motronic 1.5.4 или «Январь-5» и диагностическим оборудованием. Думаю Январь 5.1 не сильно отличается от Январь-5.
…понял что это не совсем тот уровень с которым я наделся работать. ”Надежды юношей питают” :) Думаю продеться работать с тем, что есть, а не с тем, что хочется.
Тут всё в шестнадцатеричной системе происходит, поэтому скорей всего писать программу под него надо на ассемблереНу почему Delphi мощный инструмент, поэтому если надо, то в ней есть функция HexToBin и BinToHex. Да и программа написанная во второй ссылке Valentin8080 на Delphi.
…предлагаю создать тему в данном направлении…Дак вы уже создали – вперед! И если у вас появляться дельные мысли и код, а не одни надежды на то чтоданная тема FAQ будет очень востребована думаю появиться и человек который уже этим занимался с дельными советами.

Askart
29.08.2010, 09:47
извените конечно но данный пост я покажу в понедельник отделу IT и отделу АСУТП на работе ;).
думаю что рабочий процесс будет сорван как минимум до вечера.

Зы у настоящих мальчиков на руках всегда пальцев 2 в степени n и тыща это 1024

Вы боитесь конкуренции?! Или просто так отбиваете у людей желание писать программы?! Вот из-за таких Гуру в России и нету нормального развития ИТ технологий, вечно пользуемся американским и немецким софтом. Всего на то что хватает огромного интеллектуального потенциала России, это отдельные хакеры самоучки! ПРОДОЛЖАЙТЕ, В ТОМ ЖЕ ДУХЕ!
Кстати я могу вам пояснить откуда это берется, из нашего школьного прошлого, Ботанам всегда тяжело приходиться, за редким исключением. Поэтому надо хоть здесь самореализоваться!

GASCHE спасибо за подержку

Askart
29.08.2010, 10:03
Если вам что-то не понятно надо привести назначение сигналов на каждой ножке разъема, так как количество контактов не о чем не говорит.

С этим я уже разобрался, что от диагностической колодки особо нечего не зависит, есть k-line по которой и осуществляется весь обмен данными комп - ЭБУ. Сейчас пытаюсь на ассамблере написать хотя бы простую прогу.

P.S. Решил в этой теме писать отчет о своей деятельности, в этом направлении, кому то будет над чем поржать, а кому то и польза.

GASCHE
29.08.2010, 10:32
Сейчас пытаюсь на ассамблере написать хотя бы простую прогуА на ассемблере зачем? Чем Delphi не устроила?

Askart
29.08.2010, 12:10
А на ассемблере зачем? Чем Delphi не устроила?

Пока планы следующие, написать на асме что либо взаимодействующие с ЭБУ, для уяснения принципов, далее на асме будут писаться отдельные модули, так как это наиболее подходящий язык для обеспечения быстродействия и небольших объемов программ, ну а саму оболочку которая будет сливать все в единое цело, конечно на делфи! :rolleyes2:
Кстати какими эмуляторами ЭБУ кто пользуется, для написания подобных програм?
А у вас есть другие варианты, всегда рад прислушаться к мнению и советам других.

P.S. Открытые исходники с комментариями рулят ))

(vS)
29.08.2010, 13:31
ветка кое-что напоминает... ну да ладно, не будем рубить на корню российский самородок.

ЗЫ отличительная особенность того, что вы называете "российским софтом" и того, что есть "софт немецкий, американский" руссотуристо программируют индивидуалы, в свободное время, т.к. надо именно ему, потомучто пишет себе, не на продажу же? а "там" пишут большие компании, которые работают именно на продажу, и в результате получается именно коммерческий продукт а не "поделка".

P.P.S один из лидеров программного обеспечения на Mobile платформе - российский разработчик, но не индивид, а серьезная компания, хоть и не большая по составу

Askart
29.08.2010, 14:26
Мне кажется что скоро эта ветка превратиться просто в очередную дискуссию не по теме, как написать? А по теме кто круче, больше, умней и т.д.!

(vS)
29.08.2010, 14:40
понимаешь... вопрос, который ты поднял, он довольно сложен... чтобы его решить, тебе лучще было бы связаться с Витамином, он РЕАЛЬНЫЙ СПЕЦ в этом вопросе...
но! глядя на твои высказывания... Базовые навыки программирования имеются (плюс куча инфы по программированию и дизайну, если что разберусь попутно) это не совсем тот уровень с которым я наделся работать. Тут всё в шестнадцатеричной системе происходит я уверен - НЕ ПОЛЕТИТ!

к Витамину сюда - http://pccar.ru/showthread.php?t=10301

Alex_St
29.08.2010, 17:39
Вы боитесь конкуренции?! Или просто так отбиваете у людей желание писать программы?! Вот из-за таких Гуру в России и нету нормального развития ИТ технологий, вечно пользуемся американским и немецким софтом. Всего на то что хватает огромного интеллектуального потенциала России, это отдельные хакеры самоучки! ПРОДОЛЖАЙТЕ, В ТОМ ЖЕ ДУХЕ!
Кстати я могу вам пояснить откуда это берется, из нашего школьного прошлого, Ботанам всегда тяжело приходиться, за редким исключением. Поэтому надо хоть здесь самореализоваться!

GASCHE спасибо за подержку

А кто сказал, что в России нет нормального развития ИТ технологий?
Скажу по-секрету, что такие малоизвестные фирмы, как BMW, Hyindai, Mercedes, и прочие - имеют субподрядчиков в России и Украине, которые пишут им софт для отдельных модулей. И пишут, надо сказать, очень неплохо!

GASCHE
29.08.2010, 22:30
А у вас есть другие варианты.Есть, попробуйте для начала написать инициализацию обмена с ECU на Delphi, заодно попутно разберетесь в проблемах, которые при этом возникнут. И когда вы это поймете, то такие проблемы как так как это наиболее подходящий язык для обеспечения быстродействия и небольших объемов программ вас волновать перестанут.
P.S. Открытые исходники с комментариями рулят ))Тут вы не правы - рулит поиск в Google. В свободном доступе есть и компоненты и модули с комментариями для работы с COM портом на Delphi и С.

Askart
06.09.2010, 19:37
Тут вы не правы - рулит поиск в Google. В свободном доступе есть и компоненты и модули с комментариями для работы с COM портом на Delphi и С.

Если не трудно не могли бы вы помочь линками на данные вещи?!:unsure2:

Virtual
06.09.2010, 20:06
вот те для дельфи, компонета
скучновато стало чет ;)

GASCHE
06.09.2010, 21:18
AskartА я думал, вы уже сдались, или готовы выкатить нам болванку ну да ладно у Бога дней много :) Google рулит наберите - Работа с портами ввода-вывода в DELPHI

Virtual
06.09.2010, 21:35
GASCHE перестань в гугл посылать, мало ли может там забанили :). я дал готовую рабочую компоненту, при том не из гугла а с своего рабочего каталога, кто скажет что она не работает с ЭБУ тому плюну в лицо прям через монитор :) у мну работает ;).

ЗЫ компонента для работы с ком портами....

GASCHE
06.09.2010, 22:44
Virtual Я потом уже увидел, но она ж без комментариев :) так что гугл не лишний, а за компоненту спасибо такую еще не видел завтра попробую посмотреть. По ходу вопрос прием пакетов. Данные в пакете идут непрерывно, первый байт 6 бит второй 5 остальные 8 бит успею ли перенастроить порт после приема первого и второго байта?

badnetrnd
07.09.2010, 00:16
Ну ладно предположим вы получите пакеты но их же ещё и расшифровать надо а это мне кажеться будет самым сложным .
GASCHE а разве нельзя данные принимать по битно ? только по байтам
желаю удачи нужное дело пытаетесь сделать

Virtual
07.09.2010, 05:29
Virtual ..... По ходу вопрос прием пакетов. Данные в пакете идут непрерывно, первый байт 6 бит второй 5 остальные 8 бит успею ли перенастроить порт после приема первого и второго байта?

неа :no2:, CAN хочеш осилить? не мучайся, только время потеряешь, лучше сразу с простейшего контроллера начинай...

GASCHE
07.09.2010, 09:34
неа :no2:, CAN хочеш осилить? неа :no2: ODB-I

Virtual
07.09.2010, 17:49
а как там с старт, стоп битами и т.д. поподробней можно? может всетаки можно извернутся без перенастройки, ибо смена битности однозначно процесс небыстрый. а если внешний преобразователь USB-Serial то вообще засада.

GASCHE
08.09.2010, 10:16
Скорость 123 Baud.
Время между пакетами данных (кадрами) - 0,13сек или 16 бит (Высокий уровень).
Идентификатор 14 бит есть стартовый (низкий уровень) и стоповый (высокий уровень) биты
Данные 12 байт каждый байт 11 бит из них 1 стартовый и два стоповых или один стоповый и один время между окончанием одного байта данных и началом другого это уж как смотреть.
Идентификатор можно не читать вроде бы определяет марку машины.
В настоящий момент есть две версии программы, незначительно отличающиеся в принципе определения времени при анализе бита. В обоих данные подаются на DSR COM разъема, читается состояние флага и определяется значение бита. Но увы в DOSе было бы бесподобно но в Windows...

Virtual
08.09.2010, 12:00
Данные 12 байт каждый байт 11 бит из них 1 стартовый и два стоповых или один стоповый и один время между окончанием одного байта данных и началом другого это уж как смотреть. это ж 123baud 8bit 1start 2 stop :) вполне стандартно

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