Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: интерфейс iso 9141
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
coolibin
хочу разобратся с микросхемой L9637D, как с ней работать? я так понял она представляет собой интерфейс iso 9141 и управление ею производится через выводы RX/TX, а вот как ею управлять мне не понятно, почему то мне кажется что через шину UART, но это лично моё предположение. Извините, если я что то напутал или не так выразился, я по части электроники не селён.
Ссылочка на микруху: http://www.ortodoxism.ro/datasheets/stmicr...ronics/1765.pdf
Cyber_RAT
управление ей не производится через линии RX/TX. эта микруха согласует сигналы стандарта ISO 9141 c обычной логикой... т.е. логическая 1 (4-5 вольт) на входе этой микрухи превращается на выходе в 1 по стандарту ISO 9141 (у меня в машине это около 12-и вольт).
короче типа max232 для ком порта - просто согласование уровней.
coolibin
Спасибо, доходчиво! Получается по ней микропроц общается с ЭБУ автомобиля, а Вы случайно не подскажите по какому протоколу)))))? например, есть ISO 9141-2, ISO 14230-2(KWP2000), CAN. Какой использывать, я не знаю. И есть ли в AVR микропроцессорах шины для этого протокола или всё прийдется делать ручками? я так понимаю со стороны микропроца выводы Rx/Tx, а со стороны ЭБУ K-line?
coolibin
up!
ну подскажите, пожалуйста, хотя бы где найти документацию по протоколу ISO9141, обрыл всю сетку, нашел доку по потоколам CAN, ISO 14230(KWP200), а вот протокола iso 9141 как не существует(((, хотя заметил часто протоколы 9141 и 14230 пишут через дробь, это не одно и то же?
Cyber_RAT
Протоколы разные... 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
По ссылкам зайти у меня не получилось. У меня, например, есть документация по протоколу KW2000(ISO 14230). И у ВАЗа тоже, по моему, такой протокол. Но ведь пишут же как то люди проги для сканеров, находят инфу.
Cyber_RAT
замените в ссылках хtth на http smile.gif просто на некоторых форумах прямые ссылки запрещены - привычка ...
а как пишут люди: берете сканер на ком порт и софтом проводите обмен информацией с блоком - потом то что насобирали снифером - разбираете и в путь wink.gif
coolibin
Ага, пошло! Спасибо! интересные ссылочки, дома почитаю. А что такое снифер?)))))))
BFunTic
Снифер в переводе на русский - вынюхивать, подслушивать...

Делаешь переходник на к-линию и подключаешь его к диагностической колодке в авто... Пишешь программу, сохраняющую весь обмен в линии на винт (снифер)... потом долго и упорно подбираешь скорость передачи данных, затем пытаешься разобрать сообщения передающиеся от БК к ЭСУД и обратно... тратишь кучу времени на алгоритм расчета контрольной суммы пакета...

Вродя так ) Не пинать - первый мой пост )
Cyber_RAT
Ну в принципе типо того smile.gif
только можно взять какой-нибудь rs232 перехватчик(прога без всякого железа)
и ловить что происходит на ком порте компьютера, а скорости там стандартизированы - всего то 5-6 вариантов wink.gif
coolibin: там же на сайте поищи monoscan - прога для связи с машиной с исходниками!!! - много чего можно почерпнуть оттуда wink.gif
coolibin
Ну, если честно, то я запутался, такая каша в голове. Понял только одно, что до снифера мне ещё очень далеко, я не понимаю основ. Я даже не знаю как задать вопрос. Давайте по порядку:

1) Где почитать основы передачи информации через протоколы K-line, RS 232, как они связаны. Вот если k-line адаптер служит для согласования k-line интерфейса ЭКУ с RS 232 интерфейсом ПК, то получается я должен написать программу которая будет менятся сообщениями в формате ЭКУ, по протоколу RS?

2) вот есть такая ссылочка http://alflash.com.ua/Learn/kwp2000r.zip (43К). Чем она может помочь?

Вы меня извинити, может я где то наговорил не того, но у меня правда такая каша в голове, а разобратся хочется?
coolibin
Ну, а есть хоть какие то исходники(С++, ASM), желательно для AVR которые работают с K-Line через UART?
Cyber_RAT
то что вы привели выше - достаточно для написания сканера для протокола KW2000 (по крайней мере для ВАЗ).

мой вам совет - почитайте про протокол RS232 (суть его).
посмотрите схемы адаптеров для компа и схему сканера на AVR что я приводил выше.
http://www.blafusel.de/misc/obd2_kw1281.html - вот тут еще посмотрите...
короче вникнитесь идеей smile.gif а дальше я вам и исходник дам на растерзание...
но там почти 3000 строк кода, тяжеловато будет...

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

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

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

p.s. кстати у вас старая версия документа... поищите в инете поновее...
coolibin
Цитата(Cyber_RAT @ Jan 22 2008, 08:58) *
Для инициализации и передачи начальных сообщений диагностический тестер должен использовать скорость передачи данных равную 10400 бод, 8 бит данных, 1 стоп бит, без контроля четности.

...

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

ну если быть точнее 10204(UBRR=97, кварц 16 МГц). может я неправильно считаю. Интересуют ЭБУ c протоколом kwp2000. Очень интересно, а как же тогда люди находят инфу и делают свои сканеры.
Cyber_RAT
Я уже писал выше как находят... дезасемблируют прошивки блоков, снифят протокол, ищут по инету всякие крохи и на основе всего этого ваяют smile.gif
насчет KW2000.. насколько я вижу этот протокол открыт, а раз все документировано, то вам и карты в руки.. сложностей я не вижу.
Все блоки совместимые с протоколом KW2000 должны с вашим сканером сконектится, просто не все функции у разных блоков будут совпадать, но вы делайте поддержку всех функций по доку на протокол и все будет нормально.
coolibin
А тех ссылок, что Вы приводили выше, будет достаточно для создания сканера для VAG?
Cyber_RAT
Вот вам готовый сканер 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
Спасибо! Наверное пора что то попробывать написать.
coolibin
В двух документах читал(ISO14230 и kwp2000) и всё равно не понял как считается контрольная сумма(последний байт запроса). Там написано это 8-ми битная сумма всех байт сообщения, исключая контрольную сумму. Это просто кол-во байтов без КС?
Cyber_RAT
Вообщем это просто сумма всех числел... в ассемблере это просто брать все байты и делать им add, не учитывая того, что она переполняется - на выходе получите 8 битное число - контрольную сумму.
например 0xEF, + 0xDD, + 0x02 = 0xCE (хотя должно быть если учитывать переносы 0x1CE)
coolibin
Цитата(Cyber_RAT @ Feb 8 2008, 15:49) *
Вообщем это просто сумма всех числел... в ассемблере это просто брать все байты и делать им add, не учитывая того, что она переполняется - на выходе получите 8 битное число - контрольную сумму.
например 0xEF, + 0xDD, + 0x02 = 0xCE (хотя должно быть если учитывать переносы 0x1CE)

Кратко и понятно! smile.gif Спасибо!
coolibin
Не прошло и пол года как я снова взялся за эту тему и сразу возникли вопросы по инициализации. Что такое "быстрая" инициализация? В англоязычном документе описывающем протокол 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 использует быструю инициализацию.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.