Всепротокольный obd 2 aiipro адаптер своими руками

Добавил пользователь Валентин П.
Обновлено: 19.09.2024

продаётся раскрученный сайт недорого обращаться в личку

Устанавливаем IC-Prog

Оболочка программирования IC-Prog занимает одно из первых мест по популярности среди радиолюбителей, так как способна работать с большим числом как программируемых микросхем, так и адаптеров различных типов. Интересы автора программы (его зовут Bonny Gijzen) лежат, по-видимому, в области микроконтроллеров PICmicro, поэтому приспособлена IC-Prog больше к программированию именно этих микроконтроллеров, в отличие от PonyProg, развивающейся в сторону микроконтроллеров фирмы Atmel. Хотя с программированием и тех и других обе программы успешно справляются.

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

Рис.39

Рис.40

После запуска программы на экране появится окно, похожее на изображенное на рис. 39, но с надписями на английском языке. Выберем в меню "Settings" (настройки) пункт "Options" (опции), а в нем — закладку "Language" (язык), где в свою очередь выберем Russian, как показано на рис. 40. После выполнения предложенного программой перезапуска она станет русскоязычной. Некоторые несуразности вроде слова "команды" с удвоенной буквой м, оставим на совести переводчика.
При первом запуске IC-Prog в среде Windows 2000/XP необходимо в том же меню "Settings—Options" открыть закладку "Misc" (разное) и отметить пункт "NT/2000 Driver".

Первое бросающееся в глаза отличие IC-Prog от PonyProg — раздельные окна буферов программной памяти и памяти данных микроконтроллера. К тому же буфер программы — 16-разрядный. Коды команд длиной 12 (как у PIC12C508) 14 (как у PIC16F84) или 16 (как у микроконтроллеров серии PIC18) двоичных разрядов отображаются в нем четырехразрядными шестнадцатиричными числами. Для сравнения на рис. 41 приведены строки буферов PonyProg (а) и IC_Prog (б) , содержащие один и тот же фрагмент программы микроконтроллера PIC16F84.

Отличия заметить несложно. Адреса ячеек буфера IC-Prog соответствуют действительным адресам 14-разрядных ячеек памяти микроконтроллера (а не больше их в два раза, как в PonyProg). Порядок следования шестнадцатиричных цифр соответствует старшинству разрядов, а не байтов. Содержимое "пустых" ячеек (3FFFH) отображается правильно.
При байтовой, как у микроконтроллеров серии АТ90, организации памяти в каждом слове буфера заполняется только младший байт. Старший становится нулевым. Пример для микроконтроллера AT90S1200 приведен на рис. 42. Как и на предыдущем рисунке а) — буфер PonyProg, б) — буфер IC-prog.

Рис.43

Интересная особенность буфера памяти программ IC-Prog — возможность дизассемблировать находящиеся в нем коды и увидеть их в форме мнемоник команд микроконтроллера. Достаточно нажать на экранную кнопку или выбрать в меню "Вид Окна" пункт "Ассемблерный", чтобы окно превратилось в показанное на рис. 43. Его содержимое соответствует шестнадцатиричному на рис. 41, а. Возвращают окно в прежнее состояние с помощью экранной кнопки или пункта меню "Вид Окна — Шестнадцатиричный". К сожалению, дизассемблер "знаком" только с системой команд микроконтроллеров серии PIC16. К ним можно добавить Р1С12, если поместить в папку с файлом icprog.exe файл динамической библиотеки подпрограмм disasm.dll, "скачанный" по адресу http://www.ic-proq.com/disasm.dll .
Буфер памяти данных (EEPROM) у программы IC-Prog байтовый. "Лишних", не используемых при программировании байтов между используемыми в нем нет. И адреса ячеек буфера совпадают с действительными адресами ячеек EEPROM микроконтроллера.
Впрочем, все эти особенности на правильность заполнения буферов содержимым НЕХ-файлов или соответствующих областей памяти микроконтроллера не влияют. А вот при ручном вводе кодов учитывать их необходимо.

Обратите внимание на правую часть окна IC-Prog. Здесь находится табло "Конфигурация". Вид его зависит от выбранного для программирования микроконтроллера. Например, на рис. 44 оно показано в варианте для PIC16F628. Предусмотрена возможность выбрать тип генератора (осциллятора, ER CLKOUT расшифровывается как "установка частоты внешним резистором с выходом тактовых импульсов"), включить защиту кода (СР OFF — защита выключена) и задать значения других разрядов слова конфигурации. В нижней части окна выведено шестнадцатиричное значение CRC — циклического контрольного кода всего содержимого памяти микроконтроллера. Редактировать его значение нельзя, программа автоматически обновляет его при любом изменении содержимого любой ячейки буферов программной памяти, EEPROM, слова конфигурации и так называемого идентификационного (ID) кода. Для последнего в микроконтроллерах PICmicro отведена специальная область памяти, куда пользователь имеет возможность записать произвольное четырехразрядное шестнадцатиричное значение. ID код остается доступным для чтения даже при включенной защите, что позволяет при необходимости "опознать" хранящую его микросхему. Для его отображения и редактирования на табло "Конфигурация" предусмотрено специальное окно.

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

Подключаем адаптер

Уже отмечалось разнообразие адаптеров, с которыми способна работать программа IC-Prog. Доступ к их списку, показанному на рис. 46, можно получить после выбора в меню "Настройки" пункта "Программатор", нажатия клавиши F3 или экранной кнопки . Со схемами этих "официально поддерживаемых программаторов" можно ознакомиться, открыв страницу http://www.ic-prog.com/programmers.html (Или у нас по ссылке внизу статьи).
Настройка программы на адаптер из списка во многом аналогична выполняемой в PonyProg. Достаточно указать СОМ или LPT порт, к которому подключен адаптер и способ общения программы с портом: "напрямую" или через драйверы операционной системы. Исключение составляет настройка программной задержки, необходимой для формирования импульсов программирования. В PonyProg для этого предусмотрена операция автоматической калибровки, в IC-Prog задержку регулируют вручную. Обычно подходит значение, предлагаемое по умолчанию. На очень быстрых компьютерах его увеличивают, если при чтении данных из микроконтроллера и его программировании наблюдаются сбои. Если компьютер "медленный", задержку можно уменьшить, что увеличит скорость программирования. Критерий допустимости уменьшения — отсутствие сбоев.
Для программирования микроконтроллеров PICmicro предназначено большинство "поддерживаемых" адаптеров. Они перечислены в табл. 4. Для тех, описания которых уже опубликованы в журнале, приведены "координаты" схем в формате "год-номер-страница".

В графах таблицы приведены названия цепей портов, к которым подключают адаптеры и номера соответствующих контактов интерфейсных разъемов. Для порта LPT — DB25M, установленного на компьютере и CEN-36, обычно подключаемого к принтеру. Как правило, номера совпадают. В противном случае они разделены дробной чертой (в знаменателе для CEN-36). Названия цепей в заголовке таблицы соответствуют приведенным в табл. 2.
В табл. 4 не включены адаптеры "TAIT Parallel" и "Fluffy", имеющие специфический интерфейс, зато в ней имеется адаптер Sl-prog — основной для PonyProg. О настройке IC-Prog на работу с ним будет рассказано ниже.
Аналогичная предыдущей табл. 5 содержит данные адаптеров для программирования микроконтроллеров AVR (серий AT90S, ATtiny, ATmega) и АТ89 с с последовательным интерфейсом программирования. В ней всего два "поддерживаемых" адаптера, оба подключают к порту LPT. Для адаптера Sl-prog (точнее его части, предназначенной для микроконтроллеров AVR) указаны номера контактов разъема на плате адаптера. Об особенностях его применения также будет рассказано ниже.

Микроконтроллеры AT89S1051, AT89S2051, AT89S4051 программируют с помощью адаптеров "Tafe" и "DL2TM". Последний был показан на рис. 12. Оба подключают к порту LPT. К нему же подключают адаптер
"ER1400". предназначенный исключительно для одноименных микросхем памяти.

Важная особенность программы IC-Prog — выбрав в меню "Настройки" пункт "Тест Программатора" (в результате будет открыто окно, показанное на рис. 47), можно вручную изменять логические уровни напряжения на выводах порта компьютера, к которому подключен адаптер программирования. Это позволяет с помощью осциллографа или вольтметра убедиться в правильности прохождения сигналов от разъема порта до панели программируемой микросхемы. Сигнал "Выход Данных" — это DATA (см. табл. 4) или MOSI (см. табл. 5), "Тактирование" — соответственно CLOCK или SCK, "Сброс" — MCLR или RESET, "VCC" —управление питанием программируемой микросхемы. Если "окошко" сигнала отмечено "галочкой", на выводе порта будет установлен высокий, в противном случае — низкий уровень.

В радиолюбительской литературе и в Интернете можно найти множество схем адаптеров программирования, которых нет в списке "официально поддерживаемых" программой IC-Prog. Тем не менее большинство из вполне пригодно для работы с этой программой. Необходимо лишь, проанализировав схему адаптера, найти указанные в табл. 4 или 5 цепи. Вполне возможно, что их подключение линиям портов компьютера совпадет с одним из упомянутых в этих таблицах адаптеров. Если точного соответствия найти не удалось, — не беда, проблема решается изготовлением соответствующего переходника.
Сравнивая схемы подключаемого и выбранного "эквивалентного" адаптера, обратите внимание на число инверсий сигналов на пути от выводов порта до выводов программируемой микросхемы. Если оно одинаково или разность числа инверсий четная, все в порядке. В противном случае поставьте "галочки" у соответствующих пунктов "Инверсия. " на панели "Параметры сигналов" окна "Настройка Программатора".

При подсчете числа инверсий обратите внимание, что многие микросхемы, используемые в качестве буферных, имеют похожие названия и одинаковую цоколевку, но различаются как раз наличием или отсутствием инверсии сигналов. Например, элементы микросхемы SN7406N (К155ЛНЗ) инвертируют сигналы, а SN7407N (К155ЛП9) — нет.
Как видно из табл. 4, адаптеры JDM и Sl-prog используют для связи с компьютером одни и те же линии порта СОМ. Поэтому, настроив IC-prog не работу с JDM, вместо него можно подключить к порту адаптер Sl-prog. Но для успешного программирования этого недостаточно. На пути сигнала данных от порта к программируемой микросхеме в Sl-Prog (см. рис. 8) имеется инвертор на транзисторе VT2, отсутствующий в JDM. Это учитывают установкой "галочки" "Инверсия Данных Вывода". В обратном направлении сигнал распространяется без инверсии в обоих случаях, так как в адаптере JDM (см. рис. 3 — "Радио", 2004, № 2, с. 51) каскад на транзисторе VT2, включенном по схеме с общей базой, неинвертирующий.
Опытным путем установлено, что необходимы также "Инверсия VCC" и "Прямой доступ к портам". Последнее связано с тем, что при работе через стандартный драйвер Windows изменение логического уровня на линии TXD происходит с большой задержкой, что нарушает алгоритм программирования.
В итоге окно "Настройка Программатора" для адаптера Sl-prog, подключенного к порту СОМ, должно принять вид, показанный на рис. 48.
Программа IC-prog может работать и с адаптерами из комплекта Sl-prog, подключенными к порту LPT компьютера. Плата согласования с портом СОМ ( рис. 2) в этом случае не нужна. В окне "Настройка Программатора" следует выбрать адаптер STK200.

Адаптеры для микроконтроллеров АТ89 и АТ90, ATtiny ( рис. 5), ATmega ( рис. 7) и PICmicro можно подключить непосредственно к порту компьютера по схеме, показанной на рис. 49, но лучше все-таки применить в качестве "промежуточного звена" адаптер STK200 соединяя с ним адаптеры Sl-prog по схеме, изображенной на рис. 50.

Схема STK200 приведена на рис. 8 . Кварцевый резонатор ZQ1 в данном случае не нужен. Он уже имеется на плате предназначенного для программирования микроконтроллеров Atmel адаптера из комплекта Sl-prog. Чертежи печатной платы и фотоснимок адаптера STK200 показаны на рис. 9 и 10 .
Вероятно, аналогичным образом можно подключить к порту LPT и другие адаптеры из комплекта Sl-prog (см. рис. 10—14), но на практике такая возможность не проверялась.
Напряжения +5 В и +12 В подают от внешних источников, причем последнее необходимо только для программирования микроконтроллеров PICmicro и лишь в случае, если в предназначенном для них адаптере не установлена батарея напряжением 9 В.

На рис. 51 показано, как должно выглядеть окно "Настройка Программатора" для программирования микроконтроллеров серии PICmicro с помощью адаптера из комплекта Sl-prog, подключенного к порту LPT. Для микроконтроллеров фирмы Atmel инвертировать сигнал данных не следует. Однако имеющийся в предназначенном для них адаптере переключатель SA1, изменяющий полярность сигнала сброса, в данном случае не действует. Поэтому нужную (неодинаковую для разных микроконтроллеров) полярность этого сигнала устанавливают программно, оперируя "галочкой" "Инверсия Сброса".

Выбираем тип программируемой микросхемы
Есть несколько способов выполнить эту операцию. Первый из них — открыть, как показано на рис. 52, в меню "Настройки" пункт "Микросхемы",выбрать в нем семейство микросхем, затем — нужную микросхему из появившегося на экране списка. Учтите, под общим названием "Flash рС" скрываются микроконтроллеры АТ89С1051, АТ89С2051 и АТ89С4051, "SPI мС" — AVR и AT89S, "Serial рС" — микроконтроллеры серии Р87 фирмы Philips, совместимые по структуре и системе команд с 8051. Имеются также микроконтроллеры фирмы Scenix, совместимые с микроконтроллерами PICmicro ("Microchip PIC"), но более скоростные.

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

Открыв в меню "Настройки" окно "Выбранные последними" (рис. 54), можно увидеть список из восьми микросхем, с которыми уже приходилось работать, и выбрать из него нужную. Это очень удобно, если приходится работать с небольшим числом разных микроконтроллеров, постоянно переходя от одного к другому.

Основные параметры выбранной микросхемы можно узнать из "подсказки", подобной показанной на рис. 55. Она будет выведена на экран при выборе пункта "Информация о микросхеме" в меню "Вид Окна".Стоит отметить и пункт "Положение Установки" этого меню.

Если выбранная микросхема может быть запрограммирована с помощью выбранного адаптера, на экране появится окно, подобное изображенному на рис. 56. Наглядно показано, каким образом следует устанавливать эту микросхему в панель адаптера.

Окно, показанное на рис. 57, говорит о том, выбранная комбинация микросхема-адаптер допустима, но в схему последнего нужно внести изменения или даже подключить вместо него другой. Именно так выглядит это окно при программировании микроконтроллера AT90S2323 с помощью адаптера Sl-prog, соединенного с портом СОМ компьютера.

Загружаем данные и программируем
Для загрузки буфера памяти программ достаточно выбрать в меню "Файл" пункт "Открыть Файл. " и указать в нем имя нужного файла. Аналогичный пункт для загрузки буфера EEPROM называется "Открыть Файл Данных. ". Формат файла программа опознает автоматически. НЕХ-файлы для микроконтроллеров PICimicro обрабатываются корректно. Содержащаяся в них информация автоматически попадает в нужные буферы (памяти программ, EEPROM, конфигурации).
Пункт "Файлы Открытые Последними", позволяет избежать продолжительных поисков на дисках компьютера файлов, с которыми недавно уже приходилось работать. Файл, выбранный из выведенного на экран списка, будет загружен в ту область памяти (программы или EEPROM), в которую его загружали ранее.

Если во время предыдущего программирования в микроконтроллере была включена защита содержимого памяти от копирования, исполнение команды "Читать Все" приведет лишь к заполнению текущего буфера информацией, не совпадающей с истинным содержимым памяти микроконтроллера. В некоторых случаях буфер окажется заполнен байтами 0x7F, в других — нулями, в третьих последовательность байтов 0x11, 0x22, 0x33 и так далее.

Состояние отвечающих за защиту памяти ячеек конфигурации микроконтроллеров серии PICmicro программатор правильно считывает и отображает на панели "Конфигурация" главного окна. К сожалению, для микроконтроллеров серий АТ89 и АТ90 это невозможно, о состоянии их защиты от копирования удается судить только по "правдоподобности" результата исполнения команды "Читать Все". Отключает защиту лишь полное стирание содержимого памяти (команда "Стереть Все"), причем даже из этого правила есть исключения.
В результате стирания все разряды всех программируемых ячеек памяти получают значение лог. 1. Командой "Проверка Стирания" убеждаются, что это действительно так и микросхема пригодна для загрузки новой информации.
На этом наш рассказ о программаторах и управляющих ими программах закончен. Естественно, он не мог охватить особенностей всех существующих аппаратных и программных средств этого назначения. Однако основы устройства и работы большинства из них очень близки к изложенным и мы надеемся, при работе с ними у читателей не возникнет непреодолимых трудностей.
До новых встреч!

продаётся раскрученный сайт недорого обращаться в личку


- ISO 9141-2
- ISO 14230-4 (KWP2000)
- SAE PWM J1850 (Pulse Width Modulation)
- SAE VPW J1850 (Variable Pulse Width)
- ISO 15765-4 Controlled Area Network (CAN)
- VPW, PWM и CAN

Первых два протокола ISO описаны в указанной выше предыдущей публикации. Детальное описание OBD протоколов выходит за рамки данной статьи, я лишь их кратко перечислю.

J1850 VPW (Variable Pulse Width) - протокол автомобилей General Motors и некоторых моделей Chrysler со скоростью передачи 10.4 кбит/с по одному проводу. Напряжение на шине VPW изменяется от 0 до 8 В, данные по шине передаются чередованием коротких (64 мкс) и длинных (128 мкс) импульсов. Реальная же скорость передачи данных по шине изменяется в зависимости от битовой маски данных и находится в пределах от 976 до 1953 байт/с. Это самый медленный из OBD протоколов.


Рисунок 1

Поддерживает ли ваш автомобиль OBD-II?

Таблица 1



AllPro адаптер на PIC18F2455

Схема моего всепротокольного OBD-II адаптера показана на рис.2. Основой является микроконтроллер Microchip PIC18F2455, имеющий модуль USB интерфейса. Устройство использует напряжение питания 5 В от шины USB. Конденсатор C6 служит фильтром внутреннего стабилизатора 3.3 В для обеспечения работы USB шины. Светодиоды D2 и D3 являются индикаторами приема/передачи, а светодиод D1 использован для контроля статуса USB шины. Выход ISO 9141/14230 интерфейса управляется половинкой драйвера IC2-2, а входной сигнал подается через делитель R12/R13 на вход RX (вывод 18), который является триггером Шмидта, как и большинство входов PIC18F2455, что обеспечивает достаточно надежное срабатывание. Для контроля L-линии используется IC3-1 и R10. Шина J1850 VPW требует напряжения питания 8 В, получаемого от стабилизатора L78L08 IC4. Сигнал на выход VPW подается через инвертор IC3-2 и буферный полевой транзистор Q1. Делитель R7/R8 и внутренний триггер Шмидта на входе RA1 составляют входной интерфейс J1850 PWM протокола. Внутренний компаратор (входы RA0 и RA3) PIC18F2455 вместе с резисторами R4, R5 выделяет дифференциальный сигнал PWM. Для контроля выхода PWM шины используются IC2-1 и полевой транзистор Q2.


Рисунок 2

Отдельно хочется сказать по поводу поддержки CAN. Microchip не выпускает контроллеры, содержащие и CAN, и USB. Можно использовать контроллер с CAN модулем и внешний USB чип типа FT232R. Или наоборот, подключить внешний CAN контроллер, как сделано в этом адаптере. CAN интерфейс здесь образуют контроллер MCP2515 (IC5) и трансивер MPC2551 (IC6). MCP2515 подключен через SPI шину к PIC18F2455 и программируется каждый раз при подаче питания адаптера. Согласующие (bus termination) RC цепочки R14/ C10 и R15/C11 предназначены для уменьшения отражений на CAN шине согласно стандарту ISO 15765-4. Использование их не обязательно, при относительно коротком кабеле отражениями можно пренебречь. Вместо PIC18F2455 можно использовать PIC18F2550 с той же самой прошивкой, см. варианты замены в таблице 2. Внешний вид устройства показан на рис.3 и обложке, а печатная плата на рис.4.

Таблица 2



Рисунок 3



Рисунок 4

OBD-II кабель

Таблица 3



Подключение и тестирование устройства


Рисунок 8


Рисунок 9

Прохождение проверяется по следующим цепям:

- IC2-1, R4 для отрицательной шины PWM
- Q2, D6, R5 для положительной шины PWM
- IC3-2, IC4, R11, Q1, D5, R7, R8 для VPW
- IC2-2, R9, R12, R13 для ISO 9141/14230
- Ответ контроллера MCP2515 по шине SPI

Например, отсутствие IC2 приведет сразу к двум ошибкам, рис.9. Процедура самодиагностики не включает проверку CAN трансивера MCP2551, здесь можно просто замерить напряжение на выводах 6 и 7. Оно должно быть в пределах 2.5 В.

Работа с Адаптером


Рисунок 10


Рисунок 11


Рисунок 12


Рисунок 13

Заключение

Другой вариант схемы AllPro адаптера находится на моем сайте и использует специализированные (но труднодоступные) микросхемы от Freescale Semiconductor MC33290 и MC33390. Там же приведен вариант разводки адаптера с использованием SMD компонентов. Если у вас есть собственный вариант разводки адаптера, присылайте мне, я помещу его на сайте. Информация о приобретении готовых печатных плат адаптера находится также на моем сайте.


Своими руками

Это, вероятно, случалось с каждым из нас: вы едете в своем автомобиле и вдруг желтая лампочка «Check Engine” загорается на приборной панели как тревожное предупреждение о том, что возникли какие-то проблемы с двигателем. К сожалению, это оно само по себе не дает каких-либо намеков на то, что именно является причиной неполадки и может означать все что угодно, начиная от неплотно закрытой крышки топливного бака до проблем с каталитическим конвертером. Я помню, как Honda Integra 94-го года имела ЭБУ под креслом водителя и красный светодиод начинал мигать, если возникали какие-то проблемы с двигателем.

• ISO 9141-2
• ISO 14230-4 (KWP2000)
• SAE PWM J1850 (Pulse Width Modulation)
• SAE VPW J1850 (Variable Pulse Width)
• ISO 15765-4 Controlled Area Network (CAN)

VPW, PWM и CAN
Первых два протокола ISO описаны в указанной выше предыдущей публикации. Детальное описание OBD протоколов выходит за рамки данной статьи, я лишь их кратко перечислю.J1850 VPW (Variable Pulse Width) – протокол автомобилей General Motors и некоторых моделей Chrysler со скоростью передачи 10.4 кбит/с по одному проводу.

Напряжение на шине VPW изменяется от 0 до 8 В, данные по шине передаются чередованием коротких (64 мкс) и длинных (128 мкс) импульсов. Реальная же скорость передачи данных по шине изменяется в зависимости от битовой маски данных и находится в пределах от 976 до 1953 байт/с. Это самый медленный из OBD протоколов.

CAN (Controlled Area Network) протокол разработан Robert Bosch в 1983 году и окончательно стандартизирован в ISO 11898. Использование CAN шины данных в автомобиле позволяет различным устройствам общаться друг с другом, минуя центральный процессор, так называемый multi-master режим.

Плюсами является также повышенная скорость передачи, до 1 Мбит/с и лучшая помехоустойчивость. Изначально протокол предназначался для использования в автомобилях, но теперь применяется и в других областях. Чтобы повысить надежность передачи данных, в шинах CAN применяется способ дифференциальной передачи сигналов по двум проводам. Образующие эту пару провода называются CAN_High и CAN_Low.

В исходном состоянии шины на обоих проводах поддерживается постоянное напряжение на определенном базовом уровне, приблизительно 2.5 В, называемым рецессивным состоянием. При переходе в активное (доминантное) состояние напряжение на проводе CAN_High повышается, а на проводе CAN_Low снижается, рис.1.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Поддерживает ли ваш автомобиль OBD-II?
OBD является обязательным только в Северной Америке и Европе. Если в Америке это правило действует с 1996 года, то Евросоюз принял EOBD вариант автодиагностики, основанный на OBD-II, сравнительно недавно. В Европе OBD стал обязательным, начиная с 2001 года, а для дизельных двигателей даже с 2004. Если ваш автомобиль выпущен до 2001 года, то он может вообще не поддерживать OBD даже при наличии соответствующего разъема.

Например, Renault Kangoo 99 года не поддерживает EOBD (хотя редакционная Kangoo dcI60 2004 года с CAN протоколом прошла успешную стыковку с описанным адаптером, а Renault Twingo поддерживает! Те же самые автомобили, сделанные для других рынков, например Турции, могут тоже не быть совместимыми с OBD протоколом. Как определить, какой протокол поддерживается электронным блоком управления автомобиля?

Первое – можно поискать информацию в интернете, хотя там много неточной и непроверенной информации. К тому же, многие автомобили выпускаются для разных рынков с различными протоколами диагностики. Второй более надежный способ – найти разъем и посмотреть, какие контакты в нем присутствуют. Разъем обычно находится под приборной панелью со стороны водителя. Протокол ISO 914-2 или ISO 14230-4 определяется наличием контакта 7, как показано в таблице 1.

Всепротокольный OBD-2 AIIpro адаптер своими руками

В качестве примера необходимости L-линии он приводит Renault Twingo 1.2л 2005 года выпуска. Использование здесь при иницилиазации только K-линии приводит к неверному адресу двигателя в ответах ЭБУ. Если же инициализация производится по K и L одновременно, то тогда все работает правильно.

Всепротокольный OBD-2 AIIpro адаптер своими руками

AllPro адаптер на PIC18F2455
Схема моего всепротокольного OBD-II адаптера показана на рис.2 . Основой является микроконтроллер Microchip PIC18F2455, имеющий модуль USB интерфейса. Устройство использует напряжение питания 5 В от шины USB. Конденсатор C6 служит фильтром внутреннего стабилизатора 3.3 В для обеспечения работы USB шины. Светодиоды D2 и D3 являются индикаторами приема/передачи, а светодиод D1 использован для контроля статуса USB шины.

Выход ISO 9141/14230 интерфейса управляется половинкой драйвера IC2-2, а входной сигнал подается через делитель R12/R13 на вход RX (вывод 18), который является триггером Шмидта, как и большинство входов PIC18F2455, что обеспечивает достаточно надежное срабатывание. Для контроля L-линии используется IC3-1 и R10.

Шина J1850 VPW требует напряжения питания 8 В, получаемого от стабилизатора L78L08 IC4. Сигнал на выход VPW подается через инвертор IC3-2 и буферный полевой транзистор Q1. Делитель R7/R8 и внутренний триггер Шмидта на входе RA1 составляют входной интерфейс J1850 PWM протокола. Внутренний компаратор (входы RA0 и RA3) PIC18F2455 вместе с резисторами R4, R5 выделяет дифференциальный сигнал PWM. Для контроля выхода PWM шины используются IC2-1 и полевой транзистор Q2.

Отдельно хочется сказать по поводу поддержки CAN. Microchip не выпускает контроллеры, содержащие и CAN, и USB. Можно использовать контроллер с CAN модулем и внешний USB чип типа FT232R. Или наоборот, подключить внешний CAN контроллер, как сделано в этом адаптере. CAN интерфейс здесь образуют контроллер MCP2515 (IC5) и трансивер MPC2551 (IC6). MCP2515 подключен через SPI шину к PIC18F2455 и программируется каждый раз при подаче питания адаптера.

Согласующие (bus termination) RC цепочки R14/ C10 и R15/C11 предназначены для уменьшения отражений на CAN шине согласно стандарту ISO 15765-4. Использование их не обязательно, при относительно коротком кабеле отражениями можно пренебречь. Вместо PIC18F2455 можно использовать PIC18F2550 с той же самой прошивкой, см. варианты замены в таблице 2.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Внешний вид устройства показан на рис.3 и обложке, а печатная плата на рис.4.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Всепротокольный OBD-2 AIIpro адаптер своими руками

Программирование PIC18F2455

Для программирования PIC18 можно использовать несложный JDM программатор [3], схема показана на рис.5.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Он очень прост и может бы собран за час на макетной плате. Недостатком является то, что программатор требует наличия последовательного (Com) интерфейса в компьютере и не работает с виртуальными USB/Com адаптерами. Использование ноутбуков также не рекомендуется, так как они не обеспечивают необходимого напряжения на выходе Com порта.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Другой программой, работающей с JDM программатором, является PICPgm [6], никаких дополнительных файлов здесь не требуется, хотя автору следует поработать над английской грамматикой, рис.7 . Прошивка адаптера доступна .

Всепротокольный OBD-2 AIIpro адаптер своими руками

Подключение и тестирование устройства. Правильно собранный адаптер в налаживании не нуждается и распознается Windows как USB устройство. Микропроцессор PIC18F2455 не имеет собственного драйвера и использует Windows 2000/XP/Vista CDC (Communication Device Class ) драйвер usbser.sys виртуального Com порта.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Для этого требуется подключить источник стабилизованного напряжения 12 вольт на выводы 1 и 9 разъема J2 и подключить адаптер к персональному компьютеру через USB кабель. Проверяется наличие напряжения 8 В на выходе стабилизатора IC4. Следующим шагом является запуск Windows приложения HyperTerm и подсоединения к Com порту адаптера.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Прохождение проверяется по следующим цепям:

• IC2-1, R4 для отрицательной шины PWM
• Q2, D6, R5 для положительной шины PWM
• IC3-2, IC4, R11, Q1, D5, R7, R8 для VPW
• IC2-2, R9, R12, R13 для ISO 9141/14230
• Ответ контроллера MCP2515 по шине SPI

Например, отсутствие IC2 приведет сразу к двум ошибкам, рис.9 .

Всепротокольный OBD-2 AIIpro адаптер своими руками

Процедура самодиагностики не включает проверку CAN трансивера MCP2551, здесь можно просто замерить напряжение на выводах 6 и 7. Оно должно быть в пределах 2.5 В.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Всепротокольный OBD-2 AIIpro адаптер своими руками

рис 10

CAN (Controlled Area Network) протокол разработан Robert Bosch в 1983 году и окончательно стандартизирован в ISO 11898. Использование CAN шины данных в автомобиле позволяет различным устройствам общаться друг с другом, минуя центральный процессор, так называемый multi-master режим. Плюсами является также повышенная скорость передачи, до 1 Мбит/с и лучшая помехоустойчивость. Изначально протокол предназначался для использования в автомобилях, но теперь применяется и в других областях. Чтобы повысить надежность передачи данных, в шинах CAN применяется способ дифференциальной передачи сигналов по двум проводам. Образующие эту пару провода называются CAN_High и CAN_Low. В исходном состоянии шины на обоих проводах поддерживается постоянное напряжение на определенном базовом уровне, приблизительно 2.5 В, называемым рецессивным состоянием. При переходе в активное (доминантное) состояние напряжение на проводе CAN_High повышается, а на проводе CAN_Low снижается, рис.1.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Поддерживает ли ваш автомобиль OBD-II?
OBD является обязательным только в Северной Америке и Европе. Если в Америке это правило действует с 1996 года, то Евросоюз принял EOBD вариант автодиагностики, основанный на OBD-II, сравнительно недавно. В Европе OBD стал обязательным, начиная с 2001 года, а для дизельных двигателей даже с 2004. Если ваш автомобиль выпущен до 2001 года, то он может вообще не поддерживать OBD даже при наличии соответствующего разъема. Например, Renault Kangoo 99 года не поддерживает EOBD (хотя редакционная Kangoo dcI60 2004 года с CAN протоколом прошла успешную стыковку с описанным адаптером, а Renault Twingo поддерживает! Те же самые автомобили, сделанные для других рынков, например Турции, могут тоже не быть совместимыми с OBD протоколом. Как определить, какой протокол поддерживается электронным блоком управления автомобиля?

Первое — можно поискать информацию в интернете, хотя там много неточной и непроверенной информации. К тому же, многие автомобили выпускаются для разных рынков с различными протоколами диагностики. Второй более надежный способ — найти разъем и посмотреть, какие контакты в нем присутствуют. Разъем обычно находится под приборной панелью со стороны водителя. Протокол ISO 914-2 или ISO 14230-4 определяется наличием контакта 7, как показано в таблице 1.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Всепротокольный OBD-2 AIIpro адаптер своими руками

AllPro адаптер на PIC18F2455
Схема моего всепротокольного OBD-II адаптера показана на рис.2. Основой является микроконтроллер Microchip PIC18F2455, имеющий модуль USB интерфейса. Устройство использует напряжение питания 5 В от шины USB. Конденсатор C6 служит фильтром внутреннего стабилизатора 3.3 В для обеспечения работы USB шины. Светодиоды D2 и D3 являются индикаторами приема/передачи, а светодиод D1 использован для контроля статуса USB шины. Выход ISO 9141/14230 интерфейса управляется половинкой драйвера IC2-2, а входной сигнал подается через делитель R12/R13 на вход RX (вывод 18), который является триггером Шмидта, как и большинство входов PIC18F2455, что обеспечивает достаточно надежное срабатывание. Для контроля L-линии используется IC3-1 и R10. Шина J1850 VPW требует напряжения питания 8 В, получаемого от стабилизатора L78L08 IC4. Сигнал на выход VPW подается через инвертор IC3-2 и буферный полевой транзистор Q1. Делитель R7/R8 и внутренний триггер Шмидта на входе RA1 составляют входной интерфейс J1850 PWM протокола. Внутренний компаратор (входы RA0 и RA3) PIC18F2455 вместе с резисторами R4, R5 выделяет дифференциальный сигнал PWM. Для контроля выхода PWM шины используются IC2-1 и полевой транзистор Q2.

Отдельно хочется сказать по поводу поддержки CAN. Microchip не выпускает контроллеры, содержащие и CAN, и USB. Можно использовать контроллер с CAN модулем и внешний USB чип типа FT232R. Или наоборот, подключить внешний CAN контроллер, как сделано в этом адаптере. CAN интерфейс здесь образуют контроллер MCP2515 (IC5) и трансивер MPC2551 (IC6). MCP2515 подключен через SPI шину к PIC18F2455 и программируется каждый раз при подаче питания адаптера. Согласующие (bus termination) RC цепочки R14/ C10 и R15/C11 предназначены для уменьшения отражений на CAN шине согласно стандарту ISO 15765-4. Использование их не обязательно, при относительно коротком кабеле отражениями можно пренебречь. Вместо PIC18F2455 можно использовать PIC18F2550 с той же самой прошивкой, см. варианты замены в таблице 2.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Внешний вид устройства показан на рис.3 и обложке, а печатная плата на рис.4.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Всепротокольный OBD-2 AIIpro адаптер своими руками

Для программирования PIC18 можно использовать несложный JDM программатор [3], схема показана на рис.5.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Он очень прост и может бы собран за час на макетной плате. Недостатком является то, что программатор требует наличия последовательного (Com) интерфейса в компьютере и не работает с виртуальными USB/Com адаптерами. Использование ноутбуков также не рекомендуется, так как они не обеспечивают необходимого напряжения на выходе Com порта.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Всепротокольный OBD-2 AIIpro адаптер своими руками

Подключение и тестирование устройства. Правильно собранный адаптер в налаживании не нуждается и распознается Windows как USB устройство. Микропроцессор PIC18F2455 не имеет собственного драйвера и использует Windows 2000/XP/Vista CDC (Communication Device Class ) драйвер usbser.sys виртуального Com порта.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Всепротокольный OBD-2 AIIpro адаптер своими руками

Прохождение проверяется по следующим цепям:

• IC2-1, R4 для отрицательной шины PWM
• Q2, D6, R5 для положительной шины PWM
• IC3-2, IC4, R11, Q1, D5, R7, R8 для VPW
• IC2-2, R9, R12, R13 для ISO 9141/14230
• Ответ контроллера MCP2515 по шине SPI

Например, отсутствие IC2 приведет сразу к двум ошибкам, рис.9.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Процедура самодиагностики не включает проверку CAN трансивера MCP2551, здесь можно просто замерить напряжение на выводах 6 и 7. Оно должно быть в пределах 2.5 В.

Всепротокольный OBD-2 AIIpro адаптер своими руками

Всепротокольный OBD-2 AIIpro адаптер своими руками

Всепротокольный OBD-2 AIIpro адаптер своими руками

По мере того, как ЭБУ машин становятся все более и более сложными, количество кодов неточностей возрастает экспоненциально. Применение бортовой диагностики автомобиля On-Board Diagnostic (OBD-II) разрешает решить эту проблему. Этот адаптер разрешает применять ПК для OBD диагностики. Адаптер AllPro функционально совместим с ELM327 и поддерживает все существующие OBD-II протоколы обмена данными:
• ISO 9141-2
• ISO 14230-4 (KWP2000)
• SAE PWM J1850 (Pulse Width Modulation)
• SAE VPW J1850 (Variable Pulse Width)
• ISO 15765-4 Controlled Area Network (CAN)
VPW, PWM и CAN
Первых два протокола ISO обрисованы в вышеуказанной прошлой публикации. Детальное описание OBD протоколов выходит за рамки данной статьи, я только их коротко перечислю.
J1850 VPW (Variable Pulse Width) — протокол машин Дженерал моторс и некоторых моделей Chrysler со скоростью передачи 10.4 кбит/с по одному проводу. Напряжение на шине VPW изменяется от 0 до 8 В, эти по шине передаются чередованием маленьких (64 мкс) и долгих (128 мкс) импульсов. Настоящая же скорость передачи данных по шине изменяется в зависимости от битовой маски данных и находится в пределах от 976 до 1953 байт/с.

Это самый медленный из OBD протоколов.

J1850 PWM (Pulse With Modulation) употребляется в машинах корпорации Ford. Скорость передачи тут 41.6 кбит/ с с применением дифференциального сигнала по двум проводам. Напряжение на шине изменяется от 0 до 5 В, a продолжительность импульса образовывает 24 мкс.

CAN (Controlled Area Network) протокол создан Robert Bosch в первой половине 80-ых годов XX века и совсем стандартизирован в ISO 11898. Применение CAN шины данных в автомобиле разрешает разным устройствам общаться между собой, минуя центральный процессор, так называемый multi-master режим. Плюсами есть кроме этого повышенная скорость передачи, до 1 Мбит/с и лучшая помехоустойчивость. Изначально протокол предназначался для применения в машинах, но сейчас используется и в других областях. Дабы повысить надежность передачи данных, в шинах CAN используется метод дифференциальной передачи сигналов по двум проводам. Образующие эту несколько провода именуются CAN_High и CAN_Low.

В исходном состоянии шины на обоих проводах поддерживается постоянное напряжение на определенном базисном уровне, примерно 2.5 В, именуемым рецессивным состоянием. При переходе в активное (доминантное) состояние напряжение на проводе CAN_High увеличивается, а на проводе CAN_Low понижается, рис.1.

Поддерживает ли ваш автомобиль OBD-II?
OBD есть необходимым лишь на западе. В случае если в Америке это правило действует с 1996 года, то Европейский союз принял EOBD вариант автодиагностики, основанный на OBD-II, недавно. В Европе OBD стал необходимым, начиная с 2001 года, а для дизельных двигателей кроме того с 2004.

В случае если ваш автомобиль выпущен до 2001 года, то он может по большому счету не поддерживать OBD кроме того при наличии соответствующего разъема. К примеру, Renault Kangoo 99 года не поддерживает EOBD (не смотря на то, что редакционная Kangoo dcI60 2004 года с CAN протоколом прошла успешную стыковку с обрисованным адаптером, а Renault Twingo поддерживает! Те же самые машины, сделанные для других рынков, к примеру Турции, смогут также не быть совместимыми с OBD протоколом.

Как выяснить, какой протокол поддерживается электронным блоком управления автомобиля?

Первое — возможно поискать данные в сети, не смотря на то, что в том месте большое количество неточной и непроверенной информации. К тому же, многие машины выпускаются для различных рынков с разными протоколами диагностики. Второй более надежный метод — отыскать разъем и взглянуть, какие конкретно контакты в нем присутствуют.

Разъем в большинстве случаев находится под приборной панелью со стороны водителя. Протокол ISO 914-2 либо ISO 14230-4 определяется наличием контакта 7, как продемонстрировано в таблице 1.

Применение тут при иницилиазации лишь K-линии ведет к неверному адресу двигателя в ответах ЭБУ. В случае если же инициализация производится по K и L в один момент, то тогда все трудится верно.

AllPro адаптер на PIC18F2455
Схема моего всепротокольного OBD-II адаптера продемонстрирована на рис.2. Базой есть микроконтроллер Microchip PIC18F2455, имеющий модуль USB интерфейса. Устройство применяет напряжение питания 5 В от шины USB. Конденсатор C6 является фильтром внутреннего стабилизатора 3.3 В для обеспечения работы USB шины. Светодиоды D2 и D3 являются индикаторами приема/передачи, а светодиод D1 использован для контроля статуса USB шины. Выход ISO 9141/14230 интерфейса управляется половинкой драйвера IC2-2, а входной сигнал подается через делитель R12/R13 на вход RX (вывод 18), что есть триггером Шмидта, как и большая часть входов PIC18F2455, что снабжает достаточно надежное срабатывание.

Для контроля L-линии употребляется IC3-1 и R10. Шина J1850 VPW требует напряжения питания 8 В, приобретаемого от стабилизатора L78L08 IC4. Сигнал на выход VPW подается через инвертор IC3-2 и буферный полевой транзистор Q1. Делитель R7/R8 и внутренний триггер Шмидта на входе RA1 составляют входной интерфейс J1850 PWM протокола. Внутренний компаратор (входы RA0 и RA3) PIC18F2455 вместе с резисторами R4, R5 выделяет дифференциальный сигнал PWM.

Для контроля выхода PWM шины употребляются IC2-1 и полевой транзистор Q2.

Раздельно хочется сообщить по поводу помощи CAN. Microchip не производит контроллеры, которые содержат и CAN, и USB. Возможно применять контроллер с CAN модулем и внешний USB чип типа FT232R. Либо напротив, подключить внешний CAN контроллер, как сделано в этом адаптере. CAN интерфейс тут образуют контроллер MCP2515 (IC5) и трансивер MPC2551 (IC6).

MCP2515 подключен через SPI шину к PIC18F2455 и программируется любой раз при подаче питания адаптера. Согласующие (bus termination) RC цепочки R14/ C10 и R15/C11 предназначены для уменьшения отражений на CAN шине в соответствии с стандарту ISO 15765-4. Применение их не обязательно, при довольно маленьком кабеле отражениями возможно пренебречь. Вместо PIC18F2455 возможно применять PIC18F2550 с той же самой firmware, см. варианты замены в таблице 2.

Внешний вид устройства продемонстрирован на рис.3 и обложке, а печатная плата на рис.4.

Для программирования PIC18 возможно применять несложный JDM программатор [3], схема продемонстрирована на рис.5.

Он весьма несложен и может бы собран за час на макетной плате. Недочётом есть то, что программатор требует наличия последовательного (Com) интерфейса в компьютере и не работает с виртуальными USB/Com адаптерами. Применение ноутбуков кроме этого не рекомендуется, поскольку они не снабжают нужного напряжения на выходе Com порта.

тестирование и Подключение устройства. Верно собранный адаптер в налаживании не испытывает недостаток и распознается Windows как USB устройство. Процессор PIC18F2455 не имеет собственного драйвера и применяет Windows 2000/XP/Vista CDC (Communication Device Class ) драйвер usbser.sys виртуального Com порта.

Прохождение проверяется по следующим цепям:

• IC2-1, R4 для отрицательной шины PWM
• Q2, D6, R5 для хорошей шины PWM
• IC3-2, IC4, R11, Q1, D5, R7, R8 для VPW
• IC2-2, R9, R12, R13 для ISO 9141/14230
• Ответ контроллера MCP2515 по шине SPI

К примеру, отсутствие IC2 приведет сходу к двум неточностям, рис.9.

Процедура самодиагностики не включает диагностику CAN трансивера MCP2551, тут возможно напряжение на выводах 6 и 7. Оно должно быть в пределах 2.5 В.

ВСЁ ДЛЯ СТАТЬИ В АРХИВЕ…СКАЧАТЬ… [105,79 Kb] (cкачиваний: 943)

В обязательном порядке к прочтению:

OBD2 GM переходник собственными руками


Статьи как раз той тематики,которой Вы интересуетесь:

Обрисовываемый ниже адаптер, представляет собой однотактный импульсный повышающий преобразователь, собранный по типовой схеме на микросхеме UC3843. Он снабжает на выходе напряжение 16.5 В при…

Преобразователь 12 — 220В, мощность 70 ватт, самый простой и весьма мелкий. Время от времени в быту появляется необxодимость иметь независимое сетевое напряжение 220 вольт. Данную конструкцию мне…

Достаточно несложную сигнализацию для охраны собственного автомобиля возможно изготовить собственными руками. Для этого пригодиться очень мало — всего одна пара и микросхема комплектующих радиокомпонентов,…

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

Читайте также: