Разработка микропроцессорного устройства для проверки и диагностики двигателя внутреннего сгорания автомобиля
РЕФЕРАТ
Цель работы: разработка индикатора автомобиля отображения в режиме реального времени кодов неисправностей системы управления двигателем на базе микроконтроллера. Задание режима работы устройства осуществляется при помощи специальных кнопок. Показания работы двигателя отображаются на светодиодном индикаторе.
Содержание работы: в работе выполнено построение структурной схемы, построение функциональной схемы, сформирован алгоритм работы системы, выбор элементной базы, оптимальной для реализации поставленных задач по диапазону характеристик, разработана программа, разработана принципиальная схема устройства.
СОДЕРЖАНИЕ
Введение
1. Описание объекта и функциональная спецификация
2. Описание структуры системы
3. Описание ресурсов МК PIC16F84А
4. Ассемблирование
5. Разработка алгоритма работы устройства
6. Описание функциональных узлов МПС и алгоритма их взаимодействия
7. Описание выбора элементной базы и работы принципиальной схемы
Заключение
Список литературы
Приложение А
ВВЕДЕНИЕ
Современную микроэлектронику трудно представить без такой важной составляющей, как микроконтроллеры. Микроконтроллеры незаметно завоевали весь мир. Микроконтроллерные технологии очень эффективны. Одно и то же устройство, которое раньше собиралось на традиционных элементах, будучи собрано с применением микроконтроллеров, становится проще, не требует регулировки и меньше по размерам. С применением микроконтроллеров появляются практически безграничные возможности по добавлению новых потребительских функций и возможностей к уже существующим устройствам. Для этого достаточно просто изменить программу.
Однокристальные (однокорпусные) микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя следующие составные части: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой.
Мировая промышленность выпускает огромную номенклатуру микроконтроллеров. По области применения их можно разделить на два класса: специализированные, предназначенные для применения в какой-либо одной конкретной области (контроллер для телефона, контроллер для модема, контроллер автомобиля) и универсальные, которые не имеют конкретной специализации и могут применяться в самых различных областях микроэлектроники, с помощью которых можно создать как любое из перечисленных выше устройств, так и принципиально новое устройство.
Цель курсового проекта – разработать индикатор автомобиля в режиме реального времени кодов неисправностей системы управления двигателем на базе микроконтроллера.
1. Описание объекта и функциональная спецификация
Это устройство предназначено для использования при регулировке холостого хода карбюраторов двигателей внутреннего сгорания. Его можно применять и для контроля частоты вращения вала автомобильных или лодочных двигателей во время движения.
Устройство имеет три разряда индикации с пределом измерения от 60 мин-1 до 7800 мин-1. Погрешность измерения на пределе 1 секунда равна 30 мин-1, а на пределе 3 секунды - 10 мин-1. Нижний предел ограничен погрешностью измерения, а верхний - количеством прерываний между индикацией. Из-за чего индикация разрядов становится прерывистой. Данное устройство напоминает работу тахометра автомобиля, поэтому для простоты введем название «тахометр» (т.е. далее в нашем тексте будет ссылка дана на название «тахометр»).
Поскольку за один оборот коленчатого вала двигателя происходит два искрообразования, то мы подсчитываем за одну секунду 2N импульсов. То есть в два раза большее количество, чем произошло оборотов (N). Чтобы получить значение оборотов в минуту, необходимо умножить значение оборотов за секунду на 60 (N>s> х 60 = N>m>). Так как мы подсчитываем число импульсов не N, a 2N, то умножать нужно уже не на 60, а на 30. А поскольку аппаратно мы отбрасываем разряд единиц, то фактически делим значение оборотов на 10. Из этого следует расчетная формула: N>m> = 2N>S> х 3 мин-1. Где N>m> - значение оборотов в минуту, 2N>S> - число импульсов с прерывателя за одну секунду. Если подсчитывать число импульсов за 3 секунды, то N>m> = 2N>S> мин-1. Таким образом, подсчитанное число импульсов за секунду достаточно умножить на 3 и перекодировать в двоично-десятичное, чтобы получить значение оборотов в минуту без единиц. А на пределе 3-х секунд просто перекодировать полученное значение. Показания индикатора, равные 100, будут соответствовать значению 1000 мин-1.
Функциональная спецификация
Входы
С контактов прерывателя или с выхода коммутатора
Переключатель диапазонов измерения
Выходы
Семисегментные светодиодный индикатор
Функции
Запись частоты вращения двигателя в память
Выдача показаний частоты вращения двигателя на семисегментные светодиоды
Хотя данное устройство и выполняет незначительное число функций, но является незаменимым помощником при диагностике двигателей внутреннего сгорания.
2. Описание структуры системы
После определения входов и выходов устройства разработана структурная схема устройства. Структурная схема электронного тахометра.
3. Описание ресурсов МК PIC16F84А
В курсовом проекте был выбран однокристальный 8-разрядный Flash CMOS микроконтроллер PIC16F84А.
PIC16F84А - это 8-pазpядные микpоконтpоллеpы с RISC аpхитектуpой, пpоизводимые фиpмой Microchip Technology. Это семейство микpоконтpоллеpов отличается низкой ценой, низким энеpгопотpеблением и высокой скоpостью. Микpоконтpоллеpы имеют встpоенное ЭППЗУ пpогpаммы, ОЗУ данных и выпускаются в 18 и 28 выводных коpпусах.
Микpоконтpоллеpы семейства PIC имеют очень эффективную систему команд, состоящую всего из 35 инстpукций. Все инстpукции выполняются за один цикл, за исключением условных пеpеходов и команд, изменяющих пpогpаммный счетчик, котоpые выполняются за 2 цикла. Один цикл выполнения инстpукции состоит из 4 пеpиодов тактовой частоты. Таким обpазом, пpи частоте 4 МГц, вpемя выполнения инстpукции составляет 1 мксек. Каждая инстpукция состоит из 14 бит, делящихся на код опеpации и опеpанд (возможна манипуляция с pегистpами, ячейками памяти и непосpедственными данными).
Высокая скоpость выполнения команд в PIC достигается за счет использования двухшинной Гаpваpдской аpхитектуpы вместо тpадиционной одношинной Фон-Hеймановской. Гаpваpдская аpхитектуpа основывается на набоpе pегистpов с pазделенными шинами и адpесным пpостpанством для команд и для данных. Hабоp pегистpов означает, что все пpогpаммные объекты, такие как поpты ввода/вывода, ячейки памяти и таймеp, пpедставляют собой физически pеализоваенные аппаpатные pегистpы. Использование Гаpваpдской аpхитектуpы позволяет достичь высокой скоpости выполнения битовых, байтовых и pегистpовых опеpаций. Кpоме того, Гаpвадская аpхитектуpа допускает конвейеpное выполнение инстpукций, когда одновpеменно выполняется текущая инстpукция и считывается следующая. В тpадиционной же Фон-Hеймановской аpхитектуpе команды и данные пеpедаются чеpез одну pазделяемую или мультиплексиpуемую шину, тем самым огpаничивая возможности конвейеpизации, внутpенние физические и логические компоненты, из котоpых состоит PIC16FXX аналогичны любому дpугому микpоконтpоллеpу Гаpваpдская аpхитектуpа и большая pазpядность команды позволяют сделать код для PIC значительно более компактным, чем для дpугих микpоконтpоллеpов и существенно повысить скоpость выполнения пpогpамм.
PIC16F84A имеют встроенные устройства, присущие большинству прикладных систем, что позволяет снизить стоимость, потребляемую мощность и увеличить надежность конечного устройства. Например, встроенная схема сброса и запуска генератора позволяют избавиться от внешних RC схем. Предлагается четыре типа встроенных генераторов на выбор, включая экономичный LP (Low Power) и дешевый RC генераторы. Экономичный режим SLEEP, Watchdog таймер и устройство защиты кода программы снижают стоимость и увеличивают мощность плюс надежность вашей системы.
Микросхемы с ультрафиолетовым стиранием идеальны для процесса отработки программы. Одновременно существуют однократно программируемые (OTP) кристаллы. Здесь разработчик может извлечь полное преимущество из сочетания низкой цены и гибкости OTP версий.
Разработка на базе контроллеров PIC16C5X поддерживается ассемблером, программным симуляторомэмулятором (только фирмы Microchip) и программатором. Существуют все эти средства для IBM, внутрисхемным PC и совместимых компьютеров.
Серия PIC16F84A подходит для широкого спектра приложений от схем высокоскоростного управления автомобильными и электрическими двигателями до экономичных удаленных приемопередатчиков, показывающих приборов и связных процессоров. Наличие ПЗУ позволяет подстраивать параметры в прикладных программах (коды передатчика, скорости двигателя, частоты приемника и т.д.). Малые размеры корпусов, как для обычного, так и для поверхностного монтажа, делает эту серию микроконтроллеров пригодной для портативных приложений. Низкая цена, экономичность, быстродействие, простота использования и гибкость ввода/вывода делает серию PIC16F84A привлекательной даже в тех областях, где ранее не применялись микроконтроллеры. Например, таймеры, замена жесткой логики в больших системах, сопроцессоры.
Устройства серии PIC16F84A имеют большой выбор ПЗУ и ОЗУ разных размеров, разное количество линий ввода/вывода, различные виды возбуждения генераторов, разную скорость, климатику и типы корпусов. Из четырех кристаллов PIC16F84A можно выбрать устройство с подходящими ПЗУ/ОЗУ и конфигурацией ввода/вывода.
Устройства с ультрафиолетовым стиранием удобно использовать в прототипных и опытных партиях. Конфигурация генератора ("RC", "XT", "HS", "LP") программируется самим пользователем на UF EPROM. При UF стирании или по умолчанию устанавливается тип "RC". В зависимости от выбранного типа генератора и частоты, рабочее напряжение питания должно быть в том же диапазоне, что будет и в будущем устройстве на OTP кристалле (если OTP предполагается использовать).
Тип генератора кристаллах OTP устанавливается на заводе и они тестируются только для этой специальной конфигурации, включая напряжение, частоту и ток потребления, см. Маркировка. Устройства выпускаются с чистым EPROM, что позволяет пользователю самому программировать их. Кроме того, можно отключить Watchdog таймер и/или защитy кода путем программирования битов в специальном EPROM. Также доступны 16 бит для записи кода идентификации (ID).
Обзор характеристик.
- только 33 простых команды;
- все команды выполняются за один цикл(200ns), кроме команд перехода- 2 цикла;
- рабочая частота 0 Гц... 20 МГц(200 нс цикл команды)
- 12- битовые команды;
- 8- битовые данные;
- 512... 2К х 12 программной памяти на кристалле EPROM;
- 25... 72 х 8 регистров общего использования;
- 7 специальных аппаратных регистров SFR;
- двухуровневый аппаратный стек;
- прямая, косвенная и относительная адресация данных и команд;
Периферия и Ввод/Вывод
- 12... 20 линий ввода-вывода с индивидуальной настройкой;
- 8 - битный таймер/счетчик RTCC с 8-битным программируемым предварительным делителем;
- автоматический сброс при включении;
- таймер запуска генератора;
- Watchdog таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;
- EPROM бит секретности для защиты кода;
- экономичный режим SLEEP;
- программируемые EPROM биты для установки режима возбуждения встроенного генератора:
- RC генератор: RC
- обычный кварцевый резонатор: XT
- высокочастотный кварцевый резонатор: HS
- экономичный низкочастотный кристалл: LP
КМОП технология
- экономичная высокоскоростная КМОП EPROM технология;
- статический принцип в архитектуре;
- широкий диапазон напряжений питания:
- коммерческий: 2.5... 6.25 В
- промышленный: 2.5... 6.25 В
- автомобильный: 2.5... 6.0 В
- низкое потребление 20 mA типично для 6В, 20МГц
2 мА типично для 5В, 4МГц
15 мкА типично для 3В, 32КГц
мкА типично для SLEEP режима при 3В, 0... 70 С
Структурная схема микроконтроллера
Структурная схема микроконтроллера РIС16F84A изображена на рис. 1.
Рис. 1 - Структурная схема микроконтроллера РIС16F84A
Расположение выводов
Расположение выводов микроконтроллера РIС16F84A изображено на рис. 2.
Рис. 2 - Расположение выводов микроконтроллера РIС16F84A
Исполнение микроконтроллера
Микроконтроллер выпускается в двух видах корпусов.
Расположение выводов и конструктивные размеры различных корпусов приведены на Рис. 3 и Рис. 4.
Рис. 3 - Конструктивные размеры микроконтроллера РIС16F84A (исполнение 1)
Рис. 4 - Конструктивные размеры микроконтроллера РIС16F84A (исполнение 2)
4. Ассемблирование
Для ассемблирования используется макpоассемблеp MPASM, он содержит все необходимые нам возможности. MPASM входит в пакет программ Microchip MPLAB фирмы Microchip Technology.
В pезультате pаботы ассемблеpа создаются файлы со следующими pасшиpениями:* HEX - объектный файл* LST - файл листинга* ERR - файл ошибок и пpедупpеждений* COD Объектный файл создается в 16-pичном фоpмате и содеpжит код, котоpый должен быть записан в микpосхему. Файл листинга содеpжит полный листинг пpогpаммы вместе с загpузочным кодом. В файл ошибок и пpедупpеждений записываются все ошибки и пpедупpеждения, возникающие в пpоцессе ассемблиpования. Они также пpисутствуют и в файле листинга.После обpаботки нашей пpогpаммы ассемблеp должен был выдать сообщение "Assembly Successful", означающее, что ошибок обнаpужено не было. Файл ошибок не должен был создаться.
Листинг программы приведен в Приложении А.
Разработка алгоритма работы устройства
Алгоритм программы тахометра представлен на рис. 6. После включения питания происходит начальная инициализация всех регистров с последующей индикацией. После инициализации вступает в работу таймер TMR0. Таймер имеет коэффициент деления, равный 256, что вместе с предделителем, имеющим коэффициент деления, равный 32, и циклом процессора, равным 4, дает прерывания каждую секунду (4 х 32 х 256 = 32768).
При замыкании контактов прерывателя с входа RB0 также происходит прерывание. При прерывании сохраняются значения регистров, задействованных на момент прерывания, и определяется происхождение прерывания. Если прерывание с входа RB0, то двоичный 16-разрядный счетчик увеличивается на единицу. Таким образом, подсчитывается количество прерываний с входа RB0 между прерываниями от переполнения таймера, то есть за 1 секунду. Каждое прерывание заканчивается восстановлением ранее сохраненных значений регистров, и процессор переключается на работу с индикацией.
Если прерывание произошло по переполнению таймера, то определяется состояние переключателя предела измерения и, если переключатель на пределе одной секунды, двоичное значение 16-разрядного счетчика умножается на 3 (2N х 3). 16-разрядный счетчик обнуляется, готовясь к новому циклу измерения. Полученное двоичное значение перекодируется в трехразрядное двоично-десятичное число и переписывается в регистры индикации. После восстановления значений регистров индикация происходит с новыми данными. То есть индикация обновляется каждую секунду. Если установлен предел измерения, равный 3 секундам, то при переполнении таймера значение счетчика секунд увеличивается на единицу.
Если значение счетчика секунд еще не равно трем, прерывание завершается без обнуления 16-разрядного счетчика. В противном случае в 16-разрядном счетчике накапливается количество прерываний с входа RB0 за три секунды. Это значение перекодируется в двоично-десятичное число и переписывается в регистры индикации. Двоичный счетчик обнуляется и цикл повторяется. В данном случае индикация обновляется каждые три секунды.
Рис. 5 - Алгоритм программы тахометра
6. Описание функциональных узлов МПС и алгоритма их взаимодействия
В проектируемом устройстве можно выделить следующие функциональные блоки: контакт управления; микроконтроллер, пульт управления, позволяющий изменить режимы измерений; стабилизатор напряжения; кварцевый резонатор; семисегментные светодиоды - индикатор. Функциональная схема тахометра приведена на рис. 6.
Стабилизатор
Пульт
управления
Кварц.резонатор
Рис. 6 - Функциональная схема тахометра
7. Описание выбора элементной базы и работы принципиальной схемы
Схема тахометра показана на рис. 8. Входной сигнал с контактов прерывателя стабилизируется стабилитроном VD1 на уровень ТТЛ и подается на вход RB0. При бесконтактной системе зажигания сигнал снимается с выхода коммутатора, выдающего перепад напряжения 3 В. Этого напряжения достаточно для срабатывания микроконтроллера.
Входы RA0-RA2 коммутируют аноды светодиодов, реализуя динамическую индикацию. Вход RA3 нагружен переключателем предела измерения «ls-3s». Внутренние подтягивающие резисторы программно отключены, но ими снабжены только входы «В» микроконтроллера, поэтому возникла необходимость в установке резистора R2. Входы RBI-RB7 использованы для вывода значений сегментов. Поскольку микроконтроллер работает при верхнем питающем напряжении 6 В, то микросхему стабилизатора напряжения КР142ЕН5 можно взять с любой буквой, обеспечивающей это напряжение. Потребляемый тахометром ток около 25 мА, поэтому микросхема стабилизатора напряжения не нуждается в радиаторе. Диод VD2 защищает прибор от переполюсовки. Если тахометр будет использоваться при регулировке карбюраторов, то светодиоды АЛ304Г нежелательно заменять индикаторами с большими размерами цифр.
Тахометр в настройке не нуждается. Только необходимо перед установкой проверить кварцевый резонатор на соответствие его номинальной частоте. В противном случае придется корректировать частоту автогенератора в готовом приборе параллельным или последовательным подключением к кварцу конденсаторов, что не предусмотрено конструкцией платы.
Проверку работоспособности тахометра можно выполнить при помощи любого низкочастотного импульсного генератора. Зависимость частоты Fr-ц от показаний тахометра N следующая: Fp>u> х 3 = N. И наоборот, чтобы иметь представление о частоте вращения коленчатого вала в герцах, необходимо показания тахометра разделить на три. Например, если подать на вход тахометра частоту 100 Гц, то показания индикатора должны быть равны 300, что соответствует 3000 мин-1. При показании тахометра, равном 150 (соответствует 1500 мин-1), частота вращения коленчатого вала в герцах будет равна 50 Гц. Для определения частоты вращения двухцилиндровых двигателей, например автомобилей «Ока», показания тахометра необходимо умножать на два.
Принципиальная схема тахометра выполнена в САПР Accel Eda (Рис. 7).
Рис. 7 - Принципиальная схема тахометра в Accel EDA
Принципиальная схема тахометра приведена в Приложении Б.
ЗАКЛЮЧЕНИЕ
В данном курсовом проекте разработано устройство для проверки и диагностики двигателей внутреннего сгорания. Данное устройство может быть рекомендовано станциям техобслуживания и автолюбителям. Разработана схема электрическая принципиальная этого устройства и программа для микроконтроллера. В результате ассеблирования получена прошивка программы для памяти микроконтроллера. Применение микроконтроллера позволило упростить принципиальную схему и расширить функциональные возможности микроконтроллера, так как для изменения функций устройства достаточно внести изменения в программу микроконтроллера.
СПИСОК ЛИТЕРАТУРЫ
1. Техническая документация на микроконтроллеры PIC16F87X компании Microchip Technology Incorporated. ООО «Микро-Чип», Москва, 2002.-184 с.
2. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В. Сташин [и др.]. – М.: Энергоатомиздат, 1990. – 224 с.
3. Евстифеев А.В. Микроконтроллеры Microchip: практическое руководство/А.В. Евстифеев. – М.: Горячая линия – Телеком, 2002. – 296 с.
4. Ульрих В.А. Микроконтроллеры PIC16F84A В.А. Ульрих. Изд. 2-е, перераб. и доп. – СПб.: Наука и техника, 2002. – 320 с.
ПРИЛОЖЕНИЕ А
Листинг программы