1.1 Сравнительный анализ возможных вариантов реализации. 4
МИНОБРНАУКИ РФ
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Восточно-Сибирский государственный университет технологий и управления»
ЭЛЕКТРОТЕХНИЧЕСКИЙ ФАКУЛЬТЕТ
Кафедра «Электронно-вычислительные системы»
Курсовой проект
(Д.658.1.8.12.002.20.ПЗ)
по дисциплине «Микропроцессорные системы»
Тема: «Разработка МикроЭВМ»
Выполнил: | студент гр. Б658 |
___________ | Галсанов Ж. Б. |
Руководитель: | к.т.н., доцент |
___________ | Могнонов П.Б. |
Оценка: | ___________ |
Дата защиты: | ___________ |
|
Улан-Удэ
2022
СОДЕРЖАНИЕ
1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. 4
1.1 Сравнительный анализ возможных вариантов реализации. 4
1.2 Выбор и описание используемой серии элементов. 5
2 ПРАКТИЧЕСКАЯ ЧАСТЬ. 8
2.1 Разрабатываемый МикроЭВМ... 8
2.2 Информация об используемых элементах в функциональной схеме и принципиальной схеме. 9
2.3 Описание принципиальной схемы.. 14
2.4 Разработка алгоритма и программы для принципиальной схемы.. 14
ЗАКЛЮЧЕНИЕ.. 16
СПИСОК ЛИТЕРАТУРЫ... 17
ПРИЛОЖЕНИЕ А.. 18
ПРИЛОЖЕНИЕ Б. 19
ПРИЛОЖЕНИЕ В.. 20
ПРИЛОЖЕНИЕ D.. 21
ПРИЛОЖЕНИЕ E.. 22
ВВЕДЕНИЕ
Целью данного курсового проекта была разработка МикровЭВМ в системе охранной сигнализации автомобиля.
Появление и бурное развитие микропроцессоров (МП), микроЭВМ и систем на их основе стало возможным благодаря значительным достижениям микроэлектронной технологии изготовления средств вычислительной техники (ВТ). Успехи полупроводниковой электроники привели к появлению больших и сверхбольших интегральных схем (БИС и СБИС) с плотностью размещения компонентов от десятков до сотен тысяч транзисторов на кристалле. Использование этих схем позволяет значительно повысить эффективность цифровых систем: увеличить их производительность и надежность, уменьшить габариты, массу, потребляемую мощность и стоимость.
В данной работе рассматривается и разработается специализированный МикроЭВМ, предотвращающий угон автомобиля.
1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1 Сравнительный анализ возможных вариантов реализации
Конечный результат процесса проектирования (синтеза) любого технического устройства неоднозначен. Он определяется критерием оптимизации, по которому осуществляется сравнение и выбор лучшего варианта. При разработке МикроЭВМ, блоков и систем в роли критерия оптимизации, экстремального значения которого добиваются при проектировании, могут выступать одна из наиболее важных для пользователя технических характеристик (максимум быстродействия, минимум потребляемой мощности, помехоустойчивости, максимум конструктивной надежности, и т.д.) либо наилучшее сочетание нескольких. Наряду с перечисленными могут учитываться аппаратные затраты, стоимость, масса, габариты и др.
Во втором случае, каждая из характеристик оценивается количественно, и составляется линейная оценочная функция, представляющая из себя сумму отдельных показателей, предварительно умноженных на размерный коэффициент приведения. Введение этих коэффициентов позволяет, во-первых, привести отдельные слагаемые к единой размерности и во-вторых, задать вес (значимость) каждого из показателей. Возможны и более сложные способы построения оценочной функции – критерия оптимизации, однако на практике они используются редко.
После конкретизации по индивидуальному заданию критерия оптимизации необходимо сравнить по этому критерию различные варианты реализации. Вариантность при проектировании МикроЭВМ появляется в силу следующих причин:
-использование различных принципов реализации функций МикроЭВМ;
-построение схем с использованием только микросхем малой степени интеграции либо с применением СИС;
Выбрать лучший вариант без предварительного анализа весьма затруднительно, поэтому следует разработать до уровня функциональных схем 3-5 вариантов реализации и описать их работу. При этом рассмотрение вариантов надо начинать «сверху», т.е. сначала попытаться реализовать различные принципы организации МикроЭВМ, затем рассмотреть реализацию узла с использованием СИС и без них и т.д. Именно в этом случае увеличивается вероятность отыскания варианта, близкого к оптимальному.
1.2 Выбор и описание используемой серии элементов
Микроконтроллер семейства AVR фирмы Atmel представляет собой восьмиразрядную однокристальную микроЭВМ с упрошенной системой команд - RISC. Большинство команд, входящих в систему команд, выбираются из памяти за один такт работы микроконтроллера. При выполнении последовательности таких команд выборка из памяти очередной команды совмещается со временем исполнения ранее выбранной команды. При этом число команд, выполняемых за 1с, совпадает с тактовой частотой работы микроконтроллера.
Микроконтроллер изготавливаются, но высококачественной КМОП (CMOS) технологии, содержат энергонезависимые запоминающие устройства для хранения программы и данных, выполненные по Flash и EEPROM технологиям, и отличаются низким энергопотреблением при высокой тактовой частоте.
Состав периферийных устройств меняется от модели к модели, более того, одно и то же устройство в разных моделях использует различные ресурсы микроконтроллера. Микроконтроллеры содержат: 8 Кбайт внутрисистемной программируемой Flash ПЗУ (4Кх16), 512 байт внутрисистемного программируемого ЭСППЗУ, 32 линии ввода/вывода общего назначения, 32 регистра общего назначения, два 8-разрядных таймера/счетчика и один 16-разрядный таймер/счетчик с режимами сравнения и захвата, часты реального времени, 8-канальный 10-разрядный аналого-цифровой преобразователь, систему внутренних и внешних прерываний, программируемый последовательный интерфейс UART, программируемый сторожевой таймер с внутренним генератором, последовательный порт с интерфейсом SPI для внутрисистемной загрузки и для связи с внешними устройствами. Программно управляются три режима энергосбережения. В пассивном режиме (Idle) ЦПУ останавливается, но ОЗУ, таймеры/счетчики, порт SPI, сторожевой таймер и система прерываний остаются активными. В стоповом режиме (power down) останавливается тактовый генератор и, следовательно, останавливаются все функции, пока не поступит сигнал внешнего прерывания или аппаратного сброса, но сохраняется содержимое регистров. В экономичном режиме (Power Save), при остановленном микроконтроллере, продолжает работать генератор таймера, что обеспечивает сохранность временной базы.
Встроенная Flash память программ и ЭСППЗУ данных могут перепрограммироваться непосредственно в системе посредством интерфейса SPI или программироваться стандартными программаторами энергонезависимой памяти. Программирование микроконтроллеров ведется по-байтово.
Максимальное потребление приборов в активном режиме составляет 3,0 мА и в пассивном режиме 1, 2 мА. В стоповом режиме, при работающем сторожевом таймере, микроконтроллер потребляет 15 мкА. Объединение на одном кристалле усовершенствованного 8-разрядного RISK ЦПУ с загружаемым Flash ПЗУ позволило фирме создать мощный микроконтроллер, обеспечивающий высокую гибкость и экономичность.
Модуль беспроводного приемника PT2272 используется в проекте, как приемник радиосигнала для включения и выключения сигнализации автомобиля удаленно. Для питания модулю требуется 5 вольт и выдерживают нагрузку не более 3 мА, с дальностью приема до 50 метров.
Модуль беспроводного передатчика PT2262 используется для отправки радиосигнала для включения и выключения сигнализации автомобиля удаленно, соединяясь с приемником PT2272 по радиочастоте 433 МГЦ. Для питания модулю требуется 5 вольт.
Геркон – электромеханическое устройство, предназначенные для размыкания и замыкания рабочей цепи пропуская через себя ток или на оборот обрывая цепь при воздействии магнитного поля от постоянного магнита или внешнего электромагнита. Функции, которые выполняют эти устройства, идентичны стандартному выключателю. В проекте используются в качестве проверки закрытия дверей, капота и багажника автомобиля.
Модуль цифрового датчика вибрации построен на базе датчика SW-420. В состоянии покоя датчик находится в разомкнутом состоянии и ток через не протекает, а на выходе имеем логическую единицу, при внешнем воздействии пружина в датчике раскачивается и кратковременно замыкает контакты, и на выходе имеем логический ноль. Так же на модуль цифрового датчика вибрации можно настроить как на срабатывание от мелкой вибрации, так и только на сильные удары, для регулировки на плате датчика размещен триммер.
Неавтономная сирена Chameleon CS-20-1 используется в проекте для предотвращения угона и привлечение внимания людей. Сирена слабо подвержена физическому и температурному воздействию, так как ее корпус выполнен в ударопрочном и жароустойчивом исполнении. Питается от 12 вольт, подключаясь к электросети автомобиля.
2 ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Разрабатываемый МикроЭВМ
Разработать МикроЭВМ, выполняющие функции автосигнализации и имеющий два режима работы:
1) Первый режим – режим ожидания, сигнализация ожидает режима включения сигнализации и не при каких условиях не срабатывающий на открытии дверей и датчика вибрации.
2) Второй режим – активный режим, сигнализация работает в режиме ожидания условий, после чего активирует третий режим.
3) Третий режим – режим тревоги, активируется вторым режимом если выполнено хотя бы одно условие, переключается в первый режим только при подаче радиосигнала с пульта дистанционного управления.
В качестве варианта решения задачи выберем AT90S8535 с элементами из таблицы 1.
Таблица 1 – Элементная база
Элемент | Описание | Количество корпусов |
AT90S8535 | Микро процессор | 1 |
PT2272 | Беспроводной приемник | 1 |
PT2262 | Беспроводной передатчик | 1 |
SW-420 | Датчик вибрации | 1 |
Chameleon CS-20-1 | Сирена | 1 |
K50-16 | Конденсатор | 3 |
C1-4 | Резистор | 8 |
КЭМ-1 А | Геркон | 6 |
KLS7-TS6604-7.0-180 | Кнопка | 2 |
2.2 Информация об используемых элементах в функциональной схеме и принципиальной схеме.
AT90S8535 являются 8-ми разрядными CMOS микроконтроллерами с низким уровнем энергопотребления, основанными на усовершенствованной AVR RISC архитектуре. Благодаря выполнению высокопроизводительных инструкций за один период тактового сигнала, AT90S8535 достигают производительности, приближающейся к уровню 1 MIPS на МГц, обеспечивая разработчику возможность оптимизировать уровень энергопотребления в соответствии с необходимой вычислительной производительностью.
Ядро AVR содержит мощный набор инструкций и 32 рабочих регистра общего назначения. Все 32 регистра напрямую подключены к арифметико - логическому устройству (АЛУ), что обеспечивает доступ к двум независимым регистрам при выполнении одной инструкции за один такт. В результате, данная архитектура имеет более высокую эффективность кода, при повышении пропускной способности, вплоть до 10 раз, по сравнению со стандартными микроконтроллерами CISC.
AT90S8535 имеют: 4 Кбайт/ 8 Кбайт Flash - памяти с поддержкой внутрисистемного программирования, 256/512 байт EEPROM, 256/512 байт SRAM, 32 линии I/O общего назначения, 32 рабочих регистра общего назначения, контроллер реального времени (RTC), три универсальных таймера/ счетчика с режимами сравнения, программируемый последовательный UART, 8-ми канальный, 10-ти разрядный АЦП, программируемый следящий таймер с встроенным тактовым генератором и программируемый последовательный порт SPI для загрузки программ в Flash память, а также, три программное выбираемых режима экономии энергопотребления. Режим ожидания «Idle» останавливает CPU, но оставляет функционировать SRAM, таймер/ счетчики, SPI порт и систему прерываний. Режим экономии энергопотребления «Power Down» сохраняет значения регистров, но останавливает тактовый генератор, отключая все остальные функции микроконтроллера, вплоть до следующего внешнего прерывания, или до аппаратной инициализации. В режиме экономии энергопотребления «Save», тактовый генератор таймера продолжает работать, обеспечивая пользователю функции таймера, в то время, как остальная часть устройства находится в состоянии покоя.
Устройства производятся с применением технологи энергонезависимой памяти с высокой плотностью размещения, разработанной в корпорации Atmel. Встроенная Flash - память с поддержкой внутрисистемного программирования обеспечивает возможность перепрограммирования программного кода в составе системы, посредством SPI последовательного интерфейса, или с помощью стандартного программатора энергонезависимой памяти. Благодаря совмещению усовершенствованного 8-ми разрядного RISC CPU с Flash- памятью с поддержкой внутрисистемного программирования на одном кристалле получились высокопроизводительные микроконтроллеры AT90S8535, обеспечивающие гибкое и экономически- высокоэффективное решение для многих приложений встраиваемых систем управления.
AVR AT90S8535 поддерживаются полным набором программ и пакетов для разработки, включая: компиляторы С, макроассемблеры, отладчики, симуляторы программ, внутрисхемные эмуляторы и наборы для макетирования. Микроконтроллер AT90S8535 представлен на рисунке 1.
Рисунок 1 – Микроконтроллер AVR AT90S8535
Модуль беспроводного приемника PT2272 и модуль беспроводного передатчика PT2262 используются для беспроводного управления автосигнализацией. Схема модуля приемника и приемника выполняют роль беспроводной кнопки, когда на передатчике подается сигнал логической единицы, то на приемнике с выхода DATA, тоже будет выходить логическая единица. На рисунке 2 и на рисунке 3 показан внешний вид модулей. Ниже будет кратким описанием всех его составляющих.
Рисунок 2 – Модуль беспроводного приемника PT2272
GND – общая земля;
DATA – выходной сигнал, при приеме радиосигнала от передатчика.
VСС – вход для питания логики +5V.
ANT – антенна.
Рисунок 3 – Модуль беспроводного передатчика PT2262
ANT – антенна.
DATA – входной сигнал, передаваемый по радиочастоте к приемнику.
GND – общая земля;
VСС – вход для питания логики +5V.
КЭМ-1 А – замыкающий геркон, представляет собой электрический аппарат, изменяющий состояние электрической цепи посредством механического размыкания или замыкания ее при воздействии управляющего магнитного поля на его элементы, совмещающие функции контактов, пружин и участков электрической и магнитной цепей.
Принцип действия герконов основан на использовании сил взаимодействия, возникающих в магнитном поле между ферримагнитными телами. При этом силы вызывают деформацию и перемещение ферримагнитных токопроводящих электронов. На рисунке 4 показан внешний вид герконов.
Рисунок 4 – Геркон КЭМ-1 А
Модуль датчика вибрации используются для отслеживания качания автомобиля. Результатом измерений является цифровой сигнал. Отсутствие вибрации выдает логическую единицу, наличие вибрации выдает логический ноль. Появление вибрации сопровождается включением светодиода, расположенного на плате. Потенциометр, расположенный на плате позволяет настраивать чувствительность датчика. На рисунке 5 показан внешний вид герконов.
Рисунок 5 – Датчик вибрации SW-420
DATA – выходной сигнал, выводящий логический ноль при вибрации.
GND – общая земля;
VСС – вход для питания логики +5V.
2.3 Описание принципиальной схемы
По заданию была составлена принципиальная схема для работы автосигнализации. Есть датчик и герконы: датчик вибрации B1 и герконы для проверки закрытия дверей. При первом включении автосигнализация переходит в режим ожидания. В данном режиме сирена не будет срабатывать на обрыв герконов и сигналы с датчика вибрации. Через герконы на микроконтроллер приходит логическая единица, когда дверь закрыта, и логический ноль, когда дверь открыта. Датчик вибрации в состоянии покоя отправляет логическую единицу, в случае вибрации, логический ноль. В активном режиме, если один из герконов или датчик вибрации отправляет логический ноль, то активируется режим тревоги. При режиме тревоги, сигнализация подает питание на базу pnp-транзистора, вследствие чего, активируется сирена. Для деактивации сирены, требуется нажатие кнопки на ДУ-пульте. Для перехода из активного режима в режим ожидания и обратно, требуется так же нажатие кнопки ДУ-пульта.
В приложении А представлена принципиальная схема автосигнализации, в приложении B список используемых элементов. Для пульта ДУ, принципиальная схема представлена в приложении C, в приложении D список используемых элементов.
2.4 Разработка алгоритма и программы для принципиальной схемы
Для написания программы отталкиваясь от задания, создается алгоритм с помощью блок-схем, дает возможность написать программу понять последовательность действий и команд, которые впоследствии будут выполнены для получения решения поставленной задачи, а также убедиться в правильности и корректности понимания исходной задачи. На рисунке 6 отображается алгоритм программы.
Рисунок 6 – Алгоритм
Разработанная программа на C представлена в Приложении E.
ЗАКЛЮЧЕНИЕ
В ходе выполнения данной работы была спроектирована функциональная схема автосигнализации, основанной на МикроЭВМ. Построена функциональной схемы и разработан по ней алгоритм программы. Для работы МикроЭВМ была написана программа.
СПИСОК ЛИТЕРАТУРЫ
1. Организация микропроцессорных систем: Учебное пособие. сост.: Могнонов П.Б. Издательство: Улан-Удэ: Изд-во ВСГТУ, 2003.
2. Методические указания к курсовому проекту по дисциплине «Схемотехника ЭВМ», сост.: Могнонов П.Б., Улан-Удэ, 2006.
3. Цифровые интегральные схемы: справочник / П.П. Мальцев, Н.С. Долидзе, М.И. Критенко и др. – М.: Радио и связь
4. Б.В. Тарабрин. Справочник «Интегральные микросхемы», М.: Энергоатомиздат, 1985.
5. Проектирование цифровых вычислительных машин /под ред.С.А.Май-рова: учебное пособие для студентов вузов. – М.: Высшая школа, 1972.
ПРИЛОЖЕНИЕ А
ПРИЛОЖЕНИЕ Б
ПРИЛОЖЕНИЕ В
ПРИЛОЖЕНИЕ D
ПРИЛОЖЕНИЕ E
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#define modFlag PORTA
#define VibrTimerSec 5
#define StartTimerSec 10
long int timerVibr;
unsigned int timerOn;
int fs;
SIGNAL(SIG_INTERRUPT0)
{
cli();
if(modFlag > 0)
{
modFlag = 0;
PORTD = 0;
timerVibr = 0;
}
else
modFlag = 1;
_delay_ms(100);
sei();
}
int main() {
fs = 1;
DDRA = 3;
DDRB = 0;
DDRD = 128;
GIMSK = 0b01000000;
MCUCR= 0b00000011;
sei();
modFlag = 0;
//_delay_ms(100);
while(1) {
if (modFlag == 1)
{
if (((PINB&1) == 0) || ((PINB&2) == 0) || ((PINB&4) == 0) || ((PINB&8) == 0) || ((PINB&16) == 0) || ((PINB&32) == 0))
{
modFlag = 2;
PORTD = 128;
timerVibr = 0;
}
else if (((PINB&64) == 0))
{
modFlag = 3;
PORTD = 128;
timerVibr = 0;
}
}
else if(modFlag == 3)
{
_delay_ms(100);
timerVibr += 100;
timerOn += 100;
if (timerVibr == VibrTimerSec * 1000)
{
timerVibr = 0;
PORTD = 0;
modFlag = 1;
}
}
if(fs == 1)
{
_delay_ms(100);
timerOn += 100;
if (timerOn == StartTimerSec * 1000)
{
PORTD = 128;
}
if(timerOn == StartTimerSec * 1000 + 1000)
{
PORTD = 0;
fs = 0;
}
}
}
return 0;
}