PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Разработка программ (http://pccar.ru/forumdisplay.php?f=27)
-   -   Как написать программу для работы с ЭБУ (http://pccar.ru/showthread.php?t=12911)

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/...91439a6a_L.jpg

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

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

Virtual 29.08.2010 00:32

Цитата:

Сообщение от Askart (Сообщение 152714)
..... понял что это не совсем тот уровень с которым я наделся работать. Тут всё в шестнадцатеричной системе происходит, поэтому скорей всего писать программу под него надо на ассемблере, ну по крайней мере модуль который будет болтать с ЭБУ. В общем в связи с выше сказанным хотелось бы найти человека который уже этим занимался, .......

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

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

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

GASCHE 29.08.2010 09:06

Цитата:

Сообщение от Askart (Сообщение 152714)
Изучив то что вы мне дали

Думаю не достаточно хорошо изучили.
Цитата:

Сообщение от Askart (Сообщение 152714)
Во первых у меня не OBD-2, а 12 контактный разъём.

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

Сообщение от Askart (Сообщение 152714)
Во вторых мне нужна информация о том как компьютер обменивается информацией с ЭБУ, в моем случае это Январь 5.1

Цитата:

Сообщение от 14230-3R.DOC
Этот документ базируется на международном стандарте ISO 14230 - 3 Keyword Protocol 2000 и представляет собой спецификацию канала передачи данных между контроллерами системы управления двигателем Motronic 1.5.4 или «Январь-5» и диагностическим оборудованием.

Думаю Январь 5.1 не сильно отличается от Январь-5.
Цитата:

Сообщение от Askart (Сообщение 152714)
…понял что это не совсем тот уровень с которым я наделся работать.

”Надежды юношей питают” :) Думаю продеться работать с тем, что есть, а не с тем, что хочется.
Цитата:

Сообщение от Askart (Сообщение 152714)
Тут всё в шестнадцатеричной системе происходит, поэтому скорей всего писать программу под него надо на ассемблере

Ну почему Delphi мощный инструмент, поэтому если надо, то в ней есть функция HexToBin и BinToHex. Да и программа написанная во второй ссылке Valentin8080 на Delphi.
Цитата:

Сообщение от Askart (Сообщение 152714)
…предлагаю создать тему в данном направлении…

Дак вы уже создали – вперед! И если у вас появляться дельные мысли и код, а не одни надежды на то что
Цитата:

Сообщение от Askart (Сообщение 152714)
данная тема FAQ будет очень востребована

думаю появиться и человек
Цитата:

Сообщение от Askart (Сообщение 152714)
который уже этим занимался

с дельными советами.

Askart 29.08.2010 09:47

Цитата:

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

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

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

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

Askart 29.08.2010 10:03

Цитата:

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

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

GASCHE 29.08.2010 10:32

Цитата:

Сообщение от Askart (Сообщение 152739)
Сейчас пытаюсь на ассамблере написать хотя бы простую прогу

А на ассемблере зачем? Чем Delphi не устроила?

Askart 29.08.2010 12:10

Цитата:

Сообщение от GASCHE (Сообщение 152740)
А на ассемблере зачем? Чем 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

Цитата:

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

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

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

GASCHE 29.08.2010 22:30

Цитата:

Сообщение от Askart (Сообщение 152742)
А у вас есть другие варианты.

Есть, попробуйте для начала написать инициализацию обмена с ECU на Delphi, заодно попутно разберетесь в проблемах, которые при этом возникнут. И когда вы это поймете, то такие проблемы как
Цитата:

Сообщение от Askart (Сообщение 152742)
так как это наиболее подходящий язык для обеспечения быстродействия и небольших объемов программ

вас волновать перестанут.
Цитата:

Сообщение от Askart (Сообщение 152742)
P.S. Открытые исходники с комментариями рулят ))

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

Askart 06.09.2010 19:37

Цитата:

Сообщение от GASCHE (Сообщение 152770)
Тут вы не правы - рулит поиск в Google. В свободном доступе есть и компоненты и модули с комментариями для работы с COM портом на Delphi и С.

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

Virtual 06.09.2010 20:06

Вложений: 1
вот те для дельфи, компонета
скучновато стало чет ;)

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

Цитата:

Сообщение от GASCHE (Сообщение 153570)
Virtual ..... По ходу вопрос прием пакетов. Данные в пакете идут непрерывно, первый байт 6 бит второй 5 остальные 8 бит успею ли перенастроить порт после приема первого и второго байта?

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

GASCHE 07.09.2010 09:34

Цитата:

Сообщение от Virtual (Сообщение 153602)
неа :no2:, CAN хочеш осилить?

неа :no2: ODB-I

Virtual 07.09.2010 17:49

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

GASCHE 08.09.2010 10:16

Вложений: 1
Скорость 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 вроде должна выставлятся нормально. вот заголовок это даааа...


Часовой пояс GMT +4, время: 23:30.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot