Всепротокольный obd ii allpro адаптер схема на pic18f2550

Добавил пользователь Alex
Обновлено: 20.09.2024

- 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 компонентов. Если у вас есть собственный вариант разводки адаптера, присылайте мне, я помещу его на сайте. Информация о приобретении готовых печатных плат адаптера находится также на моем сайте.


Часы построены на микроконтроллере PIC16F628A, в качестве датчика используется DS18B20, транзисторы BC212 управляют общими анодами семисегментного индикатора, также в состав схемы входят несколько пассивных элементов.

Устройство настраивается с помощью 4-х кнопок. Одна увеличивает, другая уменьшает значение, третья кнопка используется для входа в меню, а также переключает элементы меню. При выходе из меню настройки сохраняются в EEPROM контроллера. Если часы зависают по какой-то причине кнопкой сброса они могут быть перезапущены. Часы будут продолжать работать с последними сохраненными значениями. Микроконтроллер тактируется от внешнего кварца частотой 4МГц для более точного отсчета времени. PIC16F628 управляет дисплеем в режиме мультиплексирования. Индикаторы находятся под контролем одного типа транзистора - BC212.

Вольтметр сетевого напряжения на PIC16F72

Простой вольтметр построенный на базе микроконтроллера PIC16F72 позволяет измерять переменное напряжение величиной до 255 Вольт. Контроллер тактируется от внешнего кварца частотой 4 МГц. При загрузке прошивки в микроконтроллер не требуется изменять конфигурационные ячейки. Индикатор используется однострочный на 16 знакомест, совместимый с контроллером HD44780. Также возможно использование других индикаторов, которые могут отличаться количеством строк и знакомест.

0-9999 секундный таймер на PIC12F683


Таймер предназначен для отработки выдержки времени от 0 до 9999 секунд, с точностью 1 секунда. Во время отсчета показания индикатора уменьшаются и в любой момент можно посмотреть сколько еще секунд осталось до окончания заданного интервала.

RGB индикатор уровня на PIC18F2550

RGB индикатор уровня на PIC18F2550

Это проект полноцветного светодиодного индикатора уровня, который управляется по USB с компьютера на Windows 7 или Vista. Проект преследует несколько целей:

Во-первых, он показывает, как читать аудиоинформацию от машины на Windows и передавать эти данные через USB к устройству.
Во-вторых, он реализует обмен данными с драйвером TLC5940, открыт исходный код. Хотя библиотека была доступна для микроконтроллеров AVR, я не смог найти открытую библиотеку для PIC. Надеемся, что это демонстрация будет полезна любому желающему контролировать большое количество светодиодов с регулировкой яркости с помощью ШИМ.

Часы-таймер на PIC16F628

Проект представляет собой часы с таймером, который может быть запрограммирован на включение и на выключение. Я начал его делать так как мне было лень включать и выключать каждый день аквариум. Не стал использовать уже готовые вещи по нескольким причинам - в том числе и потому что планирую добавить автоматическую систему для кормежки рыб.

Схема часов довольно проста, если не сказать очень проста. Главная часть, безусловно - программа на ассемблере. Для программирования я использовал Microchip's MPASMP, а для рисования схемы - Eagle.


Электронный замок с ключём i-Button (DS1990A) на PIC16F627A

Здесь представлена схема электронного замка, в котором в качестве ключа используется устройство DS1990A(Touch Memory). Touch Memory типа DS1990A представляет собой пассивное устройство (без внутреннего источника питания), которое имеет записанное с помощью лазера ПЗУ(ROM), содержащее уникальный серийный номер. Для считывания данных с DS1990A используется 1-проводная шина фирмы DALLAS. DS1990A является подчинённым устройством, а мастером является обычно микропроцессор(микроконтроллер). Питание DS1990A во время обмена данными производится от 1-проводной шины. Эквивалентная схема интерфейсной части DS1990A показана на рисунке:

RGB контроллер с USB интерфейсом на PIC18F2550

RGB контроллер с USB интерфейсом на PIC18F2550

Этот проект представляет собой RGB контроллер, который может быть настроен через соединение USB. Цвет подключенных светодиодов (общий анод) зависит от выбранного режима работы:

- Медленное изменение цвета (около 40 минут);
- Быстрое изменение цвета (около 2 минут);
- Изменение цвета по температуре (диапазоны температуры регулируются);
- Постоянный цвет 1;
- Постоянный цвет 2;
- Постоянный цвет 3;
- Постоянный цвет 4.

Термометр на PIC12F683 и графическом дисплее NOKIA 3310

Термометр состоит из минимума деталей: микроконтроллера PIC12F683, цифрового датчика DS1820 и подтягивающего резистора, графического дисплея от сотового телефона NOKIA 3310 и электролитического конденсатора, литиевого аккумулятора CR2032.

В верхней части дисплея отображается текущая температура в цифровом виде, в левой части отображается температура в виде ртутного термометра, пределы измерения температуры от -40 до +40 °С. В центре экрана выводится график изменения температуры за определенный интервал времени. Регистрацию температуры можно установить от 1 сек до 65535 сек, при этом на экране помещается 57 значений. Каждый пиксель в вертикальном масштабе представляет собой значение в 2 °С, при этом следующий пиксель выше 0 °С будет показывать температуру от 2 до 4 °С.

Индикатор отсечки оборотов двигателя автомобиля(Shift Light) на PIC12F629

Индикатор отсечки оборотов двигателя автомобиля(Shift Light) на PIC12F629

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

Гоночное использование Shift Light — это переключение на оборотах на которых мотор отдает пиковую мощность. Некоторые моторы имеют нелинейную характеристику и быстрее получается переключиться вверх чем продолжать набирать обороты.

Вторая область применения — начинающие водители не могут определить обороты на слух, а взгляд на приборную панель, отвлекает их внимание. Яркая вспышка Shift Light дает возможность отслеживать момент переключения периферическим зрением, что позволяет не фокусировать внимание на панели управления.

Всепротокольный OBD-II AllPro адаптер


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

Это, вероятно, случалось с каждым из нас: вы едете в своем автомобиле и вдруг желтая лампочка «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

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


- 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 компонентов. Если у вас есть собственный вариант разводки адаптера, присылайте мне, я помещу его на сайте. Информация о приобретении готовых печатных плат адаптера находится также на моем сайте.

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