После покупки автомобиля 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)
Джерело: cxemu.te.ua