Проектирование микроконтроллера
Содержание
Техническое задание на проектирование
1. Теоретическая часть
1.1 Микроконтроллеры
1.2 Микроконтроллеры семейства Fujitsu F2MC-16FX
1.3 Датчик присутствия
2. Структурная схема объекта проектирования
3. Функциональная схема объекта проектирования
4. Разработка принципиальной электрической схемы
4.1 Микроконтроллер
4.2 Выбор датчика присутствия
4.3 Выбор и расчет параметров реле
4.4 Выбор транзистора
5. Принципиальная схема
6. Программное обеспечение
Заключение
Список использованных источников
Техническое
задание на проектирование
Работа устройства организована по следующему принципу:
контроллер предназначен для освещения темного помещения и его
принудительной вентиляции;
при входе людей в помещение включается освещение (200 Вт);
через 30 минут пребывания людей в помещении включается
вентиляция (50 Вт);
через 30 секунд после ухода всех людей из помещения свет
выключается, а через 15 минут выключается вентиляция.
устройство должно быть реализовано на микроконтроллере MB90F591G.
1.
Теоретическая часть
1.1
Микроконтроллеры
Микроконтроллер - это микросхема,
предназначенная для управления электронными
устройствами. Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ.
Существует огромное количество типов микроконтроллеров,
отличающихся архитектурой процессорного модуля, размером и типом встроенной
памяти, набором периферийных устройств, типом корпуса и т.д. В отличие от обычных компьютерных
микропроцессоров, в микроконтроллерах часто используется гарвардская архитектура памяти, то есть раздельное хранение
данных и команд в ОЗУ и ПЗУ соответственно.
Неполный список периферии,
которая может присутствовать в микроконтроллерах, включает в себя:
· универсальные цифровые
порты, которые можно настраивать как на ввод, так и на вывод;
· различные интерфейсы ввода-вывода, такие как UART, IІC, SPI, CAN, USB, Ethernet;
· аналого-цифровые и цифро-аналоговые преобразователи;
· компараторы
<#"902858.files/image001.gif">
Рисунок 2.1 Структурная схема устройства контроллера
кондиционирования
Назначение блоков структурной схемы:
Микроконтроллер - это микросхема,
предназначенная для управления всей работы проектируемой системы. В зависимости
от того, как он будет запрограммирован на считывание сигналов с датчиков и
подачу сигналов на управляющие устройства, будет работать контроллер
кондиционирования.
Блок присутствия человека будет представлять собой датчик,
определяющий присутствие человека в комнате и дальнейшую обработку сигнала,
необходимого для его обработки микроконтроллером.
Блок коммутационных устройств - необходим для управления мощной
нагрузкой с помощью сигналов поступающих с выхода микроконтроллера.
Вентилятор - элемент стандартного оборудования охлаждения воздуха
в помещении.
Лампа - элемент стандартного оборудования освещения в помещении.
3.
Функциональная схема объекта проектирования
Функциональная схема устройства кондиционирования приведена
на рисунке 3.1.
Рисунок 3.1 Функциональная схема устройства кондиционирования
Назначение блоков функциональной схемы:
Датчик присутствия - работает по принципу ИК сигнала,
отраженного от человека.
Блок формирования логической "1" - представляет
собой делитель напряжения, построенный на постоянных резисторах. Необходим для
согласования напряжения между датчиком и микроконтроллером.
Блок управления - состоит из полевого транзистора,
работающего в ключевом режиме, в коллекторной цепи стоит обмотка реле. В
зависимости от программы, записанной на микроконтроллере, сигнал будет
поступать на блок управления. Т.о. контакты реле будут включать вентилятор и
лампу.
4. Разработка
принципиальной электрической схемы
4.1
Микроконтроллер
В курсовом проекте используется микроконтроллер типа MB90F591G серии МВ90590 семейства F2MC-16LX разработанный фирмой Fujitsu.
Основные характеристики микроконтроллера MB90F591G:
Микроконтроллер MB90F591G организован на базе микропроцессорного ядра F2MC-16LX. Он содержит
энергонезависимую память (ROM) типа Flash объемом 384 Кбайт и оперативную память RAM объемом 8 Кбайт. Максимальное
значение внутренней частоты (System clock) - 16 МГц. Напряжение питания - 4,5-5,5 В.
Микроконтроллер включает ряд периферийных модулей:
- Трёхканальный дуплексный универсальный
асинхронный приемопередатчик (UART) с максимальной скоростью обмена в асинхронном
режиме 500 Кбод и в синхронном режиме - 2 Мбод;
- Последовательный интерфейс SPI со скоростью обмена до 2
Мбод (Serial I/O);
- Восьмиканальный аналого-цифровой
преобразователь с разрешением 8 или 10 разрядов (A/D Converter);
- Двухканальный 16-разрядный перезагружаемый
таймер с функцией подсчета внешних событий (Reload Timer);
- Сторожевой
таймер (Watch Timer);
- 16-разрядный таймер ввода/вывода (I/O Timer);
- 6-канальный 16-разрядный блок
сравнения/формирования выходных сигналов (Output Compare);
- 6-канальный 16-разрядный блок захвата
входных событий (Input Capture);
- 6-канальный 8 - или
16-битныйпрограммируемый генератор импульсов (Programmable Pulse Generator);
- 2 канала последовательного интерфейса CAN версии 2.0 А и В (CAN Interface);
- котроллер шагового двигателя (4 канала) (Stepping Motor Controller);
- контроллер внешних прерываний (8 каналов)
(External Interrupt);
- звуковой
генератор (Sound Generator);
- порты ввода/вывода общего назначения (I/O Ports). Они делят внешние
выводы контроллера с другими периферийными устройствами в режиме альтернативных
функций.
Для увеличения помехозащищенности все цифровые входные линии
контроллера имеют гистерезис. Выходные сигналы формируются парами CMOS транзисторов и не имеют
встроенных подтягивающих (pull-up/down) резисторов. В рабочем режиме контроллер
потребляет ток до 80 мА. Микроконтроллер выпускается в корпусе QFP, имеющем 100 выводов.
[1]
4.2 Выбор
датчика присутствия
Выбираем датчик движения МА3102.
Блок представляет собой датчик движения (детектор
присутствия), подключаемый к персональному компьютеру через USB-порт для его настройки и
управлять силовыми нагрузками.
С его помощью можно включать вентилятор при приближении на
расстояние 15 см, 1 м.
Напряжение питания Uпит =12 В.
Конструктивно устройство выполнено на двухсторонней печатной
плате из фольгированного стеклотекстолита.
При приближении человека, отраженный ИК-сигнал попадает на
приемник. При достижении порогового уровня срабатывает реле, коммутирующее
нагрузку.
Исходя из технических характеристик датчика необходимо
отметить, что при моменте, когда человек появляется в зоне излучения с выхода
датчика необходимо получить единицу. При выходе человека из помещения, датчик
снова меняет свое значение на ноль.
Электрическая схема датчика и делителя приведена на рисунке
4.1.
Рисунок 4.1 Электрическая схема датчика и делителя
4.3 Выбор и
расчет параметров реле
При выборе реле необходимо учитывать, чтобы коммутируемая
нагрузка составляла 220В, что необходимо для включения вентилятора.
Выберем реле типа TRIL-12VDC-SD. Реле является нейтральным.
Основными техническими параметрами TRIL-12VDC-SD являются:
1) Номинальное рабочее напряжение:
) Номинальный рабочий ток:
) Коммутируемое переменное напряжение:
) Номинальное сопротивление обмоток реле:
4.4 Выбор
транзистора
Для управления реле выбираем полевой транзистор КП921А.
Транзистор кремниевый, полевой с изолированным индуцированным
каналом n-типа.
Предназначен для применения в быстродействующих переключающих устройствах.
Выпускается в пластмассовом корпусе с гибкими выводами. Масса не более 10г.
Транзистор работает в ключевом режиме, а к стоку подсоединяется
обмотка реле.
Основными техническими параметрами КП921А являются:
1) Постоянное напряжение сток-исток:
) Ток стока: .
Для предотвращения повреждения транзистора высоковольтным импульсом
ЭДС самоиндукции, который возникает при обесточивании обмотки реле, необходимо
поставить диод VD1. Диод срабатывает только при размыкании
цепи.
Выберем диод Д237А, у которого максимальное обратное импульсное
напряжение
Электрическая схема блока управления вентилятора представлена на
рисунке 4.4 [3]
Рисунок 4.2 Электрическая схема блока управления вентилятором
5.
Принципиальная схема
Рисунок 5.1 Электрическая схема блока управления контроллером
кондиционирования
6.
Программное обеспечение
. PROGRAM cooler
#include Mb90V590. h
. EXPORT _main
. SECTION DATA_MAIN, DATA, ALIGN=2
; инициализация начальных значений происходит в _init
isAnyoneInside. RES. B 1; есть ли кто-нибудь в помещении, 1 - да, 0 - нет
timerPeopleIn. RES. W 1; счетчик для таймера вентиляции (для подсчета 30 мин из 2Hz)
timerPeopleOutLight. RES. W 1; счетчик для таймера
света (для подсчета 30 сек из 2Hz)
timerPeopleOutCool. RES. W 1; счетчик для таймера
вентиляции (для подсчета 15 мин из 2Hz)
isTimerOn. RES. B 1; включен ли таймер
isTimerOnPeopleIn. RES. B 1; включен ли таймер.
RES. B 1; включен ли таймер. RES. B 1; включен ли таймер
. SECTION INTR, CODE, ALIGN=2
int2HzTimer:; вызывается при включенном таймере 2 раза в
секунду
clrb I: TMCSR0: 2; set
UF=0isAnyoneInside,PDR2isAnyoneInside, #H'01,
disableCounterIntimerPeopleOutLight, #H'0timerPeopleOutCool, #H'0:isTimerPeopleIn,
#H'01, checkCounterOutLighttimerPeopleIn, #H'00, decCounterInisTimerPeopleIn,
#H'0timerSetOffcoolerSetOnendTimer:timerPeopleIncheckCounterOutLight:isTimerPeopleIn,
#H'0
// -----------:isTimerPeopleOutLight, #H'01,
checkCounterOutCooltimerPeopleOutLight, #H'00,
decCounterOutLightisTimerPeopleOutLight,
#H'0timerSetOfflightSetOffcheckCounterOutCool:timerPeopleOutLight
// -----------:isTimerPeopleOutCool, #H'01,
endTimertimerPeopleOutCool, #H'00, decCounterOutCoolisTimerPeopleOutCool,
#H'0timerSetOffcoolerSetOffendTimer:timerPeopleOutCool:
externalInterrupt: // прерывание с датчика присутствия
call timerSetOnintPresence
// задаем обработчик внешних прерываний
. SECTION INTVEC, CONST, LOCATE=H'FFFFCC
. DATA. L externalInterrupt
// задаем обработчик прерывания таймера
. SECTION INTVEC2, CONST, LOCATE=H'FFFFA0
. DATA. L int2HzTimer
. SECTION CODE_MAIN, CODE, ALIGN=2:isTimerOn,
#H'0, endTimeSetUp; если таймер активен - ничего не делаемtimerPeopleIn,
#D'3600; 30min = 1800sec = 3600 * 0.5 = 3600 * 2HzTimertimerPeopleOutLight,
#D'60; 30sec = 60 * 0.5 = 60 * 2HzTimertimerPeopleOutCool, #D'1800; 15min =
900sec = 1800 * 0.5 = 1800 * 2HzTimer isTimerOn, #H'0; ставим флаг, что
таймер включен
movw A, #H'F424; start timer counter = 62500 TMRLR0, A
; селектор ставим на понижении в 32 раза, включаем таймер
; после того, как счетчик досчитает до нуля вызывается
прерывание
; которое обработается в int2HzTimerA, #H'81A;
selector /32, autoflush, interrupts, enable timerTMCSR0, A::isTimerPeopleIn,
#H'00, endTimerSetOffisTimerOnPeopleOutLight, #H'00,
endTimerSetOffisTimerOnPeopleOutCool, #H'00, endTimerSetOffA, #H'00; отключаем
таймерTMCSR0, A::PDR3: 1 // включаем лампу:PDR3: 1 // отключаем лампу:PDR3: 0
// включаем вентилятор:PDR3: 0 // отключаем вентилятор:; датчик присутствия PDR2, #H'0, presenseAnyone // если никого в
помещении нет
mov isTimerPeopleOutLight,
#H'1isTimerPeopleOutCool, #H'1presenseEnd:lightSetOn // включаем
светisTimerOnPeopleIn,#H'1presenseEnd:
_init:
; resetisAnyoneInside, #H'0timerPeopleIn, #H'0timerPeopleOutLight,
#H'0timerPeopleOutCool, #H'0isTimerPeopleIn, #H'0isTimerPeopleOutLight,
#H'0isTimerPeopleOutCool, #H'0 isTimerOn, #H'0
; разрешаем внешние прерывания:
; INT4 - блок присутствия человека
setb ENIR: 4 // разрешаем прерывание с INT4
mov H'000031, #H'10 // очищаем значение регистра (EIRR) с INT4
mov H'000033, #H'2 // ELVR прерывание по нарастающему фронту
mov H'0000B0, #H'05; priority button/detect
interruptsH'0000B6, #H'06; priority timer interrupts
; разрешаем прерывания с приоритетом <=6
mov ILM, #H'07
or CCR, #H'40
; используем порты для ввода/вывода
setb DDR3: 0 // вентилятор p30
setb DDR3: 1 // лампа p31
clrb DDR2: 4 // датчик присутствия p24
ret
call _init
loop: nop; бесконечный цикл, т.к. вся работа основана на
прерываниях
jmp loop
. end
Заключение
В результате выполнения курсового проекта разработано
устройство кондиционирования. Разработана принципиальная электрическая схема.
Устройство работает на базе микропроцессора типа MB90F591G серии МВ90590 семейства F2MC-16LX разработанный фирмой Fujitsu. Также разработано
программное обеспечение на данный тип микроконтроллера. Устройство работает в
зависимости от сигналов, приходящих на микроконтроллер от датчиков присутствия
человека в помещении. Разработанное устройство удовлетворяет поставленным
требованиям.
Список
использованных источников
1.
"Микропроцессорные средства систем управления", Б.Н. Гаврилин, Е.И.
Гуревич,
В.А.
Можаев, В.М. Шеленков - Москва, Издательство МАИ, 2007г.
.
"Микроконтроллеры 16-разрядные семейства 16LX фирмы Fujitsu. Справочное
пособие"
.
"Полупроводниковая схемотехника", У. Титце, К. Шенк,
.
"Микропроцессорные средства систем управления" Гаврилин Б.Н. и др.
.
"Датчики: Справочное пособие" Шарапов В.М. и др.