coolibin
Dec 18 2007, 08:08
хочу разобратся с микросхемой L9637D, как с ней работать? я так понял она представляет собой интерфейс iso 9141 и управление ею производится через выводы RX/TX, а вот как ею управлять мне не понятно, почему то мне кажется что через шину UART, но это лично моё предположение. Извините, если я что то напутал или не так выразился, я по части электроники не селён.
Ссылочка на микруху:
http://www.ortodoxism.ro/datasheets/stmicr...ronics/1765.pdf
Cyber_RAT
Dec 18 2007, 09:39
управление ей не производится через линии RX/TX. эта микруха согласует сигналы стандарта ISO 9141 c обычной логикой... т.е. логическая 1 (4-5 вольт) на входе этой микрухи превращается на выходе в 1 по стандарту ISO 9141 (у меня в машине это около 12-и вольт).
короче типа max232 для ком порта - просто согласование уровней.
coolibin
Dec 18 2007, 10:13
Спасибо, доходчиво! Получается по ней микропроц общается с ЭБУ автомобиля, а Вы случайно не подскажите по какому протоколу)))))? например, есть ISO 9141-2, ISO 14230-2(KWP2000), CAN. Какой использывать, я не знаю. И есть ли в AVR микропроцессорах шины для этого протокола или всё прийдется делать ручками? я так понимаю со стороны микропроца выводы Rx/Tx, а со стороны ЭБУ K-line?
coolibin
Dec 18 2007, 17:44
up!
ну подскажите, пожалуйста, хотя бы где найти документацию по протоколу ISO9141, обрыл всю сетку, нашел доку по потоколам CAN, ISO 14230(KWP200), а вот протокола iso 9141 как не существует(((, хотя заметил часто протоколы 9141 и 14230 пишут через дробь, это не одно и то же?
Cyber_RAT
Dec 18 2007, 17:59
Протоколы разные... ODB-II (KW2000), KW1281 (это по крайней мере у концерна VAG). у ВАЗ свой протокол, еще в новых машинах CAN - вобщем универсальный врядли получится...
вот тут я делал под kw1281 (VW с 91(92) по 96-99 годы). Вернее изначально делал другой человек, а я вот дорабатываю, а вот доки скачать по протоколу врядли получится, это закрытая информация. хttp://volkswagen.msk.ru/forum/index.php?showtopic=27073
Вот тут есть начальные сведения о протоколе. хttp://www.hex.co.za/vaginfo/index.html
p.s. а вообще ISO описывает не сам высокоуровневый протокол, а лишь электрическую часть -уровни, фронты сигналов, доп уровень помех и тд...
coolibin
Dec 19 2007, 07:26
По ссылкам зайти у меня не получилось. У меня, например, есть документация по протоколу KW2000(ISO 14230). И у ВАЗа тоже, по моему, такой протокол. Но ведь пишут же как то люди проги для сканеров, находят инфу.
Cyber_RAT
Dec 19 2007, 19:04
замените в ссылках хtth на http

просто на некоторых форумах прямые ссылки запрещены - привычка ...
а как пишут люди: берете сканер на ком порт и софтом проводите обмен информацией с блоком - потом то что насобирали снифером - разбираете и в путь
coolibin
Dec 21 2007, 07:22
Ага, пошло! Спасибо! интересные ссылочки, дома почитаю. А что такое снифер?)))))))
BFunTic
Dec 21 2007, 19:22
Снифер в переводе на русский - вынюхивать, подслушивать...
Делаешь переходник на к-линию и подключаешь его к диагностической колодке в авто... Пишешь программу, сохраняющую весь обмен в линии на винт (снифер)... потом долго и упорно подбираешь скорость передачи данных, затем пытаешься разобрать сообщения передающиеся от БК к ЭСУД и обратно... тратишь кучу времени на алгоритм расчета контрольной суммы пакета...
Вродя так ) Не пинать - первый мой пост )
Cyber_RAT
Dec 22 2007, 07:11
Ну в принципе типо того

только можно взять какой-нибудь rs232 перехватчик(прога без всякого железа)
и ловить что происходит на ком порте компьютера, а скорости там стандартизированы - всего то 5-6 вариантов

coolibin: там же на сайте поищи monoscan - прога для связи с машиной с исходниками!!! - много чего можно почерпнуть оттуда
coolibin
Dec 24 2007, 08:03
Ну, если честно, то я запутался, такая каша в голове. Понял только одно, что до снифера мне ещё очень далеко, я не понимаю основ. Я даже не знаю как задать вопрос. Давайте по порядку:
1) Где почитать основы передачи информации через протоколы K-line, RS 232, как они связаны. Вот если k-line адаптер служит для согласования k-line интерфейса ЭКУ с RS 232 интерфейсом ПК, то получается я должен написать программу которая будет менятся сообщениями в формате ЭКУ, по протоколу RS?
2) вот есть такая ссылочка
http://alflash.com.ua/Learn/kwp2000r.zip (43К). Чем она может помочь?
Вы меня извинити, может я где то наговорил не того, но у меня правда такая каша в голове, а разобратся хочется?
coolibin
Dec 26 2007, 11:08
Ну, а есть хоть какие то исходники(С++, ASM), желательно для AVR которые работают с K-Line через UART?
Cyber_RAT
Dec 26 2007, 11:54
то что вы привели выше - достаточно для написания сканера для протокола KW2000 (по крайней мере для ВАЗ).
мой вам совет - почитайте про протокол RS232 (суть его).
посмотрите схемы адаптеров для компа и схему сканера на AVR что я приводил выше.
http://www.blafusel.de/misc/obd2_kw1281.html - вот тут еще посмотрите...
короче вникнитесь идеей

а дальше я вам и исходник дам на растерзание...
но там почти 3000 строк кода, тяжеловато будет...
http://volkswagen.msk.ru/forum/index.php?s...=51356&st=0вот тут есть ссылка на моноскан - он с исходниками на C++ & C#.
coolibin
Jan 10 2008, 10:34
почитал я про RS 232, USART(ATmega8), имею теперь общее представление, но вопросов ещё больше))). Например, сколько бит в сообщении(я думаю 8)? производится ли контроль чётности и если да то какой? сколько стоповых бит в сообщении? и если я использую USART, то в каком режиме происходит передача данных в синхронном или асинхронном? все вопросы касаются iso 14230(kwp2000), того документа, который я приводил выше. Мне бы хотя бы провести инициализацию на ATmega8, тогда бы мне было намного проще!
Cyber_RAT
Jan 11 2008, 13:17
8 бит данных 1 стоп бит.
для kw2000 не писал - но в том документе описан весь протокол. Внимательно почитайте его, там более-менее понятно..
обмен идет посылками... т.е. вы например запрашиваете какой-то параметр... создаете посылку (из нескольких байт) в которой номер параметра из вашего дока и посылаете... потом необходимое время ловите то что придет назад ... и так далее...
первоначальную установку связи - читайте док.
coolibin
Jan 12 2008, 10:24
из исходника который я дизассемблирывал с прошитого проца, я понял что используется 8ми битовый фрейм, 1 стоп бит, проверки на чётность нет, асинхронный режим передачи.
coolibin
Jan 14 2008, 09:48
Возник интересный вопрос! в том документе, что я приводил выше всё приводилось для контроллера M1.5.4. А если на авто будет стоять другой контроллер, но протокол останется тот же? что от этого изменится? временные параметры? скорость передачи данных?
Cyber_RAT
Jan 15 2008, 06:12
все будет зависеть от того, какой протокол использует этот другой ЭБУ.
если тоже KW2000, то ничего почти не поменяется (может некоторых параметров не будет, а некоторые добавятся - просто необходимо знать информацию по этому контроллеру)
coolibin
Jan 16 2008, 07:12
Цитата(Cyber_RAT @ Jan 15 2008, 08:12)

все будет зависеть от того, какой протокол использует этот другой ЭБУ.
если тоже KW2000, то ничего почти не поменяется (может некоторых параметров не будет, а некоторые добавятся - просто необходимо знать информацию по этому контроллеру)
т. е. если я делаю сканер для KWP2000,, то я должен знать информацию по всем в мире ЭБУ работающих по данному протоколу?
Cyber_RAT
Jan 17 2008, 06:25
Ну зачем по всем? для начала хотя бы по своему.
а вообще просто пишется прога так, чтобы при отсутсвующих блоках выдавалось что-нибудь типа Not Supported...
и дается возможность читать все блоки... а уж юзер пусть по докам на свой ЭБУ смотрит в каких блоках какие значения...
coolibin
Jan 17 2008, 07:45
Я дико извиняюсь, но что Вы имеете ввиду под словом "блок"?
Cyber_RAT
Jan 18 2008, 06:59
в ЭБУ данные выдаются блоками... т.е. запрашиваешь режим измерений - блок 5 (к примеру) и тебе оттуда данные приходят. А вот что за данные в 5 блоке - должен знать ты сам, и как их обработать и в каком они формате.
coolibin
Jan 18 2008, 08:29
Цитата(Cyber_RAT @ Jan 18 2008, 08:59)

в ЭБУ данные выдаются блоками... т.е. запрашиваешь режим измерений - блок 5 (к примеру) и тебе оттуда данные приходят. А вот что за данные в 5 блоке - должен знать ты сам, и как их обработать и в каком они формате.
Очень интересно! Когда читал те ссылки по VAG сканеру которые Вы мне дали, там затрагивалась тема блоков, но мне показалось, что меня это не касается, т. к. в документации по протоколу kwp2000 я не нашел такого понятия, там под словом "блок" понималось ЭБУ. И вообще я думал, что надо просто приконнектится к ЭБУ, считать ошибки OBD II и отконнектится. А как узнать что там хранится(в блоках)?
coolibin
Jan 21 2008, 12:30
up!
а с чего начинается "разговор" ЭБУ и тестера? с запроса startCommunication(81)? я имею ввиду тот документ что я приводил выше
Cyber_RAT
Jan 22 2008, 06:58
Для инициализации и передачи начальных сообщений диагностический тестер должен использовать скорость передачи данных равную 10400 бод, 8 бит данных, 1 стоп бит, без контроля четности.
это в документе по кв2000, и вообще - вы его читали? там даже диаграммы сигнала приведены и при инициализации и при передаче

p.s. кстати у вас старая версия документа... поищите в инете поновее...
coolibin
Jan 22 2008, 08:04
Цитата(Cyber_RAT @ Jan 22 2008, 08:58)

Для инициализации и передачи начальных сообщений диагностический тестер должен использовать скорость передачи данных равную 10400 бод, 8 бит данных, 1 стоп бит, без контроля четности.
...
Это я уже понял. Дело в том, что я пользуюсь и другими источниками и очень часто они противоречат друг другу. И насчёт скорости передачи 10400 бод, программа которую я разбирал использует заниженую скорость передачи(10200), Вы не можете сказать почему так делается? Сейчас я хочу написать программу которая просто коннектилась бы к ЭБУ. И ещё! информация на другие ЭБУ(не Motronic 1.5.4) также доступна?
Cyber_RAT
Jan 23 2008, 06:58
10200 - это ж какой там коэффициент загружается? знаю что используют 10472- потому как на кварце 3.6864 (для стандартных скоростей 0 процентов ошибки) получается так....
информация на другие ЭБУ... каких марок? хорошо если их не тысячи, а сотни, да и протоколов тоже не мало...
p.s. информация на протоколы от импортных машин - практически вся закрыта... и в лучшем случае найдете куски сворованные кем-то, или реверс инжиниринг протокола каким-нибудь любознательным человеком...
coolibin
Jan 23 2008, 10:25
Цитата(Cyber_RAT @ Jan 23 2008, 08:58)

10200 - это ж какой там коэффициент загружается? знаю что используют 10472- потому как на кварце 3.6864 (для стандартных скоростей 0 процентов ошибки) получается так....
информация на другие ЭБУ... каких марок? хорошо если их не тысячи, а сотни, да и протоколов тоже не мало...
p.s. информация на протоколы от импортных машин - практически вся закрыта... и в лучшем случае найдете куски сворованные кем-то, или реверс инжиниринг протокола каким-нибудь любознательным человеком...
ну если быть точнее 10204(UBRR=97, кварц 16 МГц). может я неправильно считаю. Интересуют ЭБУ c протоколом kwp2000. Очень интересно, а как же тогда люди находят инфу и делают свои сканеры.
Cyber_RAT
Jan 23 2008, 13:23
Я уже писал выше как находят... дезасемблируют прошивки блоков, снифят протокол, ищут по инету всякие крохи и на основе всего этого ваяют

насчет KW2000.. насколько я вижу этот протокол открыт, а раз все документировано, то вам и карты в руки.. сложностей я не вижу.
Все блоки совместимые с протоколом KW2000 должны с вашим сканером сконектится, просто не все функции у разных блоков будут совпадать, но вы делайте поддержку всех функций по доку на протокол и все будет нормально.
coolibin
Jan 24 2008, 07:45
А тех ссылок, что Вы приводили выше, будет достаточно для создания сканера для VAG?
Cyber_RAT
Jan 25 2008, 06:24
Вот вам готовый сканер ODB-II (KW2000).
http://www.blafusel.de/misc/obd2_obdii_obd-2_list_me_en.htmlсмотреть в самом конце.. OBD2 LCD for µC with AVR ATMEGA8 with ELM323.
процессорный модуль
http://www.blafusel.de/misc/atmega8_io.htmlинтерфейс связи с машиной
http://www.blafusel.de/misc/obd2elm.htmlв собранном виде выглядит так:
http://www.blafusel.de/bilder/misc/upc/obd2_4.jpgсофт под него:
http://www.blafusel.de/misc/files/obd2_v13.zip (на Си)
можно часть схемы выкинуть - есть пару ненужных преобразований сигнала - а можно оставить и так.
coolibin
Jan 25 2008, 07:22
Спасибо! Наверное пора что то попробывать написать.
coolibin
Feb 7 2008, 09:43
В двух документах читал(ISO14230 и kwp2000) и всё равно не понял как считается контрольная сумма(последний байт запроса). Там написано это 8-ми битная сумма всех байт сообщения, исключая контрольную сумму. Это просто кол-во байтов без КС?
Cyber_RAT
Feb 8 2008, 13:49
Вообщем это просто сумма всех числел... в ассемблере это просто брать все байты и делать им add, не учитывая того, что она переполняется - на выходе получите 8 битное число - контрольную сумму.
например 0xEF, + 0xDD, + 0x02 = 0xCE (хотя должно быть если учитывать переносы 0x1CE)
coolibin
Feb 9 2008, 11:34
Цитата(Cyber_RAT @ Feb 8 2008, 15:49)

Вообщем это просто сумма всех числел... в ассемблере это просто брать все байты и делать им add, не учитывая того, что она переполняется - на выходе получите 8 битное число - контрольную сумму.
например 0xEF, + 0xDD, + 0x02 = 0xCE (хотя должно быть если учитывать переносы 0x1CE)
Кратко и понятно!

Спасибо!
coolibin
Mar 20 2008, 15:17
Не прошло и пол года как я снова взялся за эту тему и сразу возникли вопросы по инициализации. Что такое "быстрая" инициализация? В англоязычном документе описывающем протокол ISO14230 написано:
Цитата
The tester transmits a Wake up Pattern (WuP) on K- and L-line synchronously. The pattern begins after an idle time on K-line with a low time of TiniL. The tester transmits the first bit of the StartCommunication Service after a time of tWup following the first falling edge.
...что это за "Паттерн"? и как его посылать? Я так понял контроллер Bosch Motronic 1.5.4N использует быструю инициализацию.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.