В настоящее время на автомобилях семейства ВАЗ широко применяются электронные блоки управления (ЭБУ) двигателями типа Бош М1.5.4, Бош М1.5.4N, Январь5.1. Работу этих блоков невозможно проконтролировать без специальных приборов, которые всегда желательно иметь "под рукой". Однако даже простейшие из них довольно сложны и поэтому недешевы.
Кроме управления двигателем, вышеназванные ЭБУ, вырабатывают сигналы с датчиков скорости и расхода топлива, которые выведены в салон автомобиля на специальный разъем для подключения маршрутного компьютера. Маршрутный компьютер позволяет отобразить различные параметры: время в пути, время в движении, пройденный путь, общий расход топлива, расход топлива на холостом ходу, текущую скорость, а также широкий спектр величин, рассчитанных на их основе (средняя скорость пути, средняя скорость движения и т.д.).
Технически возможно, а экономически целесообразно объединить маршрутный компьютер и диагностический тестер в одно устройство, которое должно устанавливаться в салоне автомобиля на штатное место, предусмотренное для маршрутного компьютера. Ниже приведены краткое описание и принципиальная схема подобного устройства.
Алгоритм функционирования и особенности построения практически любого диагностического тестера начального уровня, работающего по протоколу KWP2000 и подключенного к К-линии, примерно следующие (утрированно):
Алгоритм функционирования и особенности построения маршрутного компьютера примерно следующие:
Как видно из вышесказанного, между функционированием устройства в режиме тестера или маршрутного компьютера много общего, что позволяет совместно использовать аппаратные и программные ресурсы.
С точки зрения построения программы, учитывая большой объем текстовых сообщений, все их желательно вынести за пределы внутреннего сравнительно небольшого ПЗУ микроконтроллера. Т.к. между обновлениями информации существует большая пауза (не менее 100 мс), а количество одновременно отображаемых символов невелико, то эти данные могут быть размещены во внешнем ПЗУ с последовательной выборкой и извлекаться оттуда по мере необходимости. Развивая эту идею, можно вынести во внешнее ПЗУ сами запросы, описание формул для пересчета различных параметров, а также и весь сценарий работы с меню. Таким образом, в микроконтроллере остается программа-монитор, которая осуществляет:
Такой подход и применен в предлагаемом устройстве, что позволяет легко наращивать и видоизменять набор контролируемых параметров, не затрагивая микроконтроллера.
Следует отметить некоторые аппаратно-программные особенности:
Электрическая схема
Маршрутный компьютер-тестер выполнен на базе микроконтроллера DD1 типа AT90S2313 фирмы Atmel с внутренней перепрограммируемой памятью программ объемом 2 кбайта. Тактовая частота выбрана равной 4 МГц и стабилизирована кварцем Q1, подключенным к соответствующим выводам микроконтроллера стандартным образом (элементы Q1, C7, C8). Для обеспечения надежного сброса микроконтроллера при подаче питания к его входу сброса RS подключена RC-цепочка (R14,C9). Кроме того, к этой же цепочке подсоединен вход защиты записи WP микросхемы последовательной перепрограммируемой памяти DD2 для предотвращения случайных записей в нее в рабочем режиме. При программировании микроконтроллера или последовательной памяти на данный вывод через разъем X3 должен быть подан логический "0".
Весь "сценарий" работы устройства хранится в памяти с последовательным доступом DD2. Обмен информацией между ней и микроконтроллером осуществляется по шине I2C, протокол реализован программным путем, скорость обмена (частота на шине SCL) не превышает 400 кГц. Резистор R20 подтягивает потенциал на шине SDA до уровня логической "1". Аналогичный резистор на шине SCL не применен, т.к. передача сигнала по ней идет только в одном направлении и вывод PB5 порта B микроконтроллера настроен всегда как выход.
Информация отображается на знакосинтезирующем, русифицированном, жидкокристаллическом индикаторе HL1 с 2 строками по 16 символов со светодиодной подсветкой и расширенным температурным диапазоном. Обмен информацией между микроконтроллером и индикатором производится по 4-разрядной шине с формированием данных и управляющих сигналов программным путем. Кроме того, к этой же шине через резисторы R15..R18, предотвращающие возможный на ней конфликт, подключены кнопки управления S1..S4. Опрос клавиатуры производится в моменты времени, когда нет обмена с индикатором, при этом уровень логической "1" обеспечивается за счет внутренних подтягивающих резисторов микроконтроллера, а уровень "0" возникает при замыкании кнопки на землю. Программно реализовано подавление дребезга контактов и защита от импульсных помех. Т.к. обращения к индикатору и последовательной памяти разнесены во времени, то для экономии выводов микроконтроллера вывод PB7 порта B используется ими совместно. Для питания драйверов индикатора с расширенным температурным диапазоном требуется отрицательное напряжение -3..-4 В, получаемое путем выпрямления переменного напряжения частотой приблизительно 8 кГц (меандровые импульсы формируются микроконтроллером) с помощью элементов R19, C10, VD4, VD5, C11. В случае применения индикатора с обычным температурным диапазоном элементы R19, C10, VD4, VD5 необходимо исключить и установить перемычку X4. Переменный резистор R23 позволяет задать требуемый уровень контрастности. Питание на подсветку подается постоянно при включении ключа зажигания, ток через светодиоды ограничен резисторами R21, R23.
Звуковые сигналы частотой примерно 1 кГц воспроизводятся электродинамическим излучателем BA1, который подключен к выводу PD5 микроконтроллера через усилитель мощности на элементах VT4, R10, R11. Излучатель запитывается напряжением +12 В от ключа зажигания, при этом ток через него при выдаче звукового сигнала ограничен с помощью резистора R9.
Резисторы R12, R13 образуют делитель напряжения +12 В, поступающего при включении ключа зажигания. Сигнал с выхода делителя подается на вход PD3 микроконтроллера и служит для перевода его в активный режим или режим холостого хода.
Сигналы для обмена с ЭБУ по K-линии вырабатываются микроконтроллером с использованием внутреннего аппаратного последовательного интерфейса. Преобразование передаваемого сигнала в уровни K-линии осуществляется с помощью элементов R5, R4, VT2, R2, R3, VT1. Принимаемый с K-линии сигнал преобразуется по уровню с помощью элементов R6, R7, VT3, R8. Применение входного делителя на резисторах R6, R7 и эмиттерного повторителя обеспечивает требуемый уровень переключения по K-линии. Резистор R1 служит нагрузкой K-линии, диод VD3 защищает выходной транзистор VT1 от импульсов отрицательной полярности.
Резисторы R24 и R28 являются нагрузкой для датчиков расхода топлива и скорости, выходы которых представляют собой открытый коллектор. Сигналы с этих датчиков преобразуются в требуемые уровни с помощью транзисторных ключей на элементах R25, R26, VD6, VT5, R27 и R29, R30, VD7, VT6, R31 соответственно.
Питание устройства осуществляется по двум раздельным цепям: непосредственно от аккумулятора напряжением +12 В и напряжением +12 В , поступающим при включении ключа зажигания. Напряжение от аккумулятора подается через разъем X2, предохранитель F1 и диод VD1, защищающий от переполюсовки, на 5-вольтовый стабилизатор DA1 типа 78L05 (лучше LM2931), с выхода которого запитывается вся логическая часть схемы, что обеспечивает непрерывный ход часов и сохранение результатов измерений. На входе и выходе стабилизатора установлены фильтрующие конденсаторы C1, C2 и C3, C4 соответственно. Питание на остальную часть схемы подается через разъем X2, диод VD2, защищающий от переполюсовки, только при включении ключа зажигания и фильтруется конденсаторами C5, C6.
Автор проекта: Андрей Воробьёв (E-mail: vorobiev@krista.ru)