После покупки автомобиля Lanos появилось желание установить бортовой компьютер (БК). Дешевый вариант не понравился, а в более дорогих “кусалась” цена. Так как был некоторый запас радиодеталей и желание что-то делать, то возникла идея сделать БК самостоятельно. Преимущество самостоятельной разработки очевидно – в работу БК можно задать только те функции, которые необходимо. Достаточно, чтобы БК показывал мгновенный расход топлива (для экономной езды), вел подсчет потребленного топлива и осуществлял диагностику.
Перед разработкой БК состоялась длительная подготовительная работа: выяснение типа диагностического протокола, согласно которому работает блок управления двигателем (БКД) автомобиля, изучение этого протокола, написание пробной программы и проверка ее работоспособности. Коротко рассмотрим итоги проделанной работы. В моем автомобиле Lanos установлен блок управления двигателем Gionix MZ1.1. На форумах, посвященных автодиагностике, было выяснено, что с этим блоком работает программа KWP_D версии 1.03 по протоколу БКД Микаса 10.3. Там же найдено описание как протокола БКД Микаса 10.3 так и методики изучения диагностического протокола. После этого было написано тестовую программу, работоспособность которой было проверено виртуально в среде Proteus. Подключение к автомобилю происходило через приобретенный k-line адаптер и компонент COMPIM среды Proteus. В дальнейшем эта программа стала основой прошивки микроконтроллера БК.
Как правило БК подключают через диагностический разъем автомобиля в блок управления двигателем. По своей сути БК представляет собой микропроцессорный блок и работает как автотестер БК подает запросы в БКД в виде определенного цифрового кода (в блоке Lanos использован протокол KWP2000, описанный в серии стандартов ISO 14230), расшифровывает полученный ответ, осуществляет необходимые подсчеты и выводит информацию на экран. Рассмотрение этого протокола является темой отдельной статьи, в этой статье при рассмотрении работы схемы он будет рассмотрен упрощенно. При достаточной заинтересованности материалом со стороны читателей будет написано отдельную статью о диагностический протокол Микаса 10.3.
Разработанный бортовой компьютер позволяет выводить на экран:
- частоту вращения коленвала,
- скорость автомобиля,
- расход топлива во времени,
- расход топлива на 100 км,
- температуру двигателя,
- температуру воздуха на входе во впускной коллектор,
- положение дроссельной заслонки,
- положения регулятора холостого хода,
- время впрыска,
- угол опережения зажигания,
- бортовое напряжение,
- разрежение в ресивере,
- записанные БКД коды ошибок,
- пройденный путь,
- количество потребленного топлива,
- время в пути.
В БК предусмотрена звуковая сигнализация, срабатывающая при обнаружении ошибок во время работы двигателя.
Основой БК является микроконтроллер U1 типа PIC16F886, который управляет всеми узлами бортового компьютера и выполняет необходимые вычисления. Микросхема DD1 типа L9637 является драйвером интерфейса ISO 9141 и используется собственно для подключения к БКД через k линию. Микросхема U2 типа 7805 – стабилизатор 5 В. Транзисторы VT1 и Q1 – электронный ключ включения схемы при включении зажигания. Транзистор VT2 является усилителем зуммера BF1. Транзисторы VT3 и VT4 являются ключами управления подсветки и питание дисплея. В бортовом компьютере использован жидкокристаллический дисплей RC1602 (на схеме не показан), который подключают к разъемам XP1 и XP2. Перемычка XP3 использована для выбора подключения резистора R4 до или после ключа Q1 (рабочий вариант 1 и 2 контакты замкнуты). Планировалось через разъем XP4 подключать внешнюю EEPROM, но в конечном варианте это не было реализовано. Через контакты 1, 4, 5 разъема X1 бортовой компьютер подключается к диагностическому разъему автомобиля (линии “+12 В”, “корпус”, “k-line”). Через контакт 2 “зажигания” до соответствующего проводника (линия автомобиля “15”) после ключа зажигания. Управление БК происходит кнопками SB1 – SB4. Вид отображаемой информации на экране выбирают кнопкой SB2 “Режим +”. Отображение кодов ошибок БКД или настроек БК включается с помощью кнопки SB1 “Ошибки / опции”. Кнопка SB3 “Сигнал вкл / выкл” включает / выключает звуковой сигнал при обнаружении неисправности БКД (дублируется изменение соответствующей опции). Кнопка SB4 “Старт / стоп” включает / выключает работу БК. Кнопка SB7 предназначена для сброса микроконтроллера и жидкокристаллического дисплея.
Светодиоды HG1 – HG4 предназначены для подсветки кнопок. Светодиод HG5 использовался для тестирования работы БК (Наличие элементов R11 и HG5 не является обязательным и при повторении конструкции БК могут быть изъяты из схемы). При нормальной работе светодиод HG5 периодически вспыхивает на короткие промежутки времени. Если взаимодействие между БК и БКД нарушается, то светодиод HG5 горит длительное время. Контрастность символов на жидкокристаллическом индикаторе зависит от резисторов R3 и R13. При использовании жидкокристаллического индикатора другого типа, чем использованного автором, номиналы этих резисторов могут отличаться.
Работа схемы заключается в следующем:
При включении зажигания автомобиля открывается ключ Q1, напряжение питания +12 В с него подается на микросхему U2 и светодиоды HG1 – HG4. Стабилизированное напряжение +5 В соответствии питает микросхемы U1, DD1 и жидкокристалическое табло. Через некоторое время после включения зажигания микроконтроллер подает запрос начала сессии с БКД. После положительного ответа на запрос начала сессии микроконтроллер начинает запрашивать параметров БКД. Ответы на эти запросы содержат информацию о состоянии и режимах работы двигателя, которая анализируется микроконтроллером. При нажатии кнопки SB1 подается запрос кодов ошибок, которые записаны в БКД. При нажатии кнопки SB4 подается запрос завершения сессии при отключении и начале сессии при включении работы БК. Микроконтроллер БК ведет статистику о количестве потребленного топлива, пройденный путь и суммарное время в пути. Для хранения этих данных при выключенном питании используется встроенная EEPROM микроконтроллера. Когда включается питание микроконтроллера, данные считываются с EEPROM, а когда выключается, данные записываются в EEPROM. Контроль выключения зажигания осуществляется по напряжению на выводе 21 микроконтроллера. При отключении зажигания автомобиля напряжение на выводе 21 уменьшается до нуля, это изменение напряжения микроконтроллер использует как сигнал для записи данных в EEPROM. Необходимый запас энергии для питания микроконтроллера при записи данных в EEPROM обеспечивается конденсатором C1.
Конструкция бортового компьютера разрабатывалась виртуально с использованием 3-d моделирование. Печатная плата была разработана в среде Proteus, а 3-d модель БК в среде Компас (на рисунке показан один из вариантов).
Архив к проекту (текст программы микроконтроллера и разводка печатной платы в Proteus)
Source : cxemu.te.ua