скачать рефераты

скачать рефераты

 
 
скачать рефераты скачать рефераты

Меню

Разработка устройства автоматического регулирования света на микроконтроллере скачать рефераты

p align="left">Эмулятор ПЗУ - программно-аппаратное средство, позволяющее замещать ПЗУ на отлаживаемой плате, и подставляющее вместо него ОЗУ, в которое может быть загружена программа с компьютера через один из стандартных каналов связи. Это устройство позволяет пользователю избежать многократных циклов перепрограммирования ПЗУ. Эмулируемая память доступна для просмотра и модификации, но контроль над внутренними управляющими регистрами МК был до недавнего времени невозможен.

В последнее время появились модели интеллектуальных эмуляторов ПЗУ, которые позволяют "заглядывать" внутрь МК на плате пользователя.

Этап совместной отладки аппаратных и программных средств в реальном масштабе времени завершается, когда аппаратура и программное обеспечение совместно обеспечивают выполнение всех шагов алгоритма работы системы. В конце этапа отлаженная программа заносится с помощью программатора в энергонезависимую память МК, и проверяется работа контроллера без эмулятора.

1.5 Выбор микроконтроллера

Для проектирования устройства автоматического регулирования света постараемся выбрать относительно недорогой, простой и широкоиспользуемый микроконтроллер.

Все эти особенности можно отнести к микроконтроллерам корпорации ATMEL (ATMega 16L).

Корпорация ATMEL, основанная в 1984, является в настоящее время признанным мировым лидером в областях разработки, производства и маркетинга современных электронных компонентов.

Рисунок 1.2 - Общий вид микроконтроллера ATMega 16L

ATMega16 обладает очень большим количеством самых разнообразных функций. Вот некоторые его характеристики:

* Максимальная тактовая частота - 16 МГц (8 МГц для ATMega16L)

* Большинство команд выполняются за один такт

* 32 8-битных рабочих регистра

* 4 полноценных 8-битных порта ввода/вывода

* два 8-битных таймера/счетчика и один 16-битный

* 10-разрядный аналогово-цифровой преобразователь (АЦП)

* внутренний тактовый генератор на 1 МГц

* аналоговый компаратор

* интерфейсы SPI, I2C, TWI, RS-232, JTAG

* внутрисхемное программирование и самопрограммирование

* модуль широтно-импульсной модуляции (ШИМ)

* 8-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением

* Прогрессивная RISC архитектура

Рисунок 1.3 - Расположение выводов микроконтроллера ATMega 16L

130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл

32 8-разрядных рабочих регистра общего назначения

Полностью статическая работа

Производительность приближается к 16 MIPS (при тактовой частоте 16 МГц)

Встроенный 2-цикловый перемножитель

* Энергонезависимая память программ и данных

16 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash)

Обеспечивает 1000 циклов стирания/записи

Дополнительный сектор загрузочных кодов с независимыми битами блокировки

Внутрисистемное программирование встроенной программой загрузки

Обеспечен режим одновременного чтения/записи (Read-While-Write)

512 байт EEPROM

Обеспечивает 100000 циклов стирания/записи

1 Кбайт встроенной SRAM

Программируемая блокировка, обеспечивающая защиту программных средств пользователя

* Интерфейс JTAG (совместимый с IEEE 1149.1)

Возможность сканирования периферии, соответствующая стандарту JTAG

Расширенная поддержка встроенной отладки

Программирование через JTAG интерфейс: Flash, EEPROM памяти, перемычек и битов блокировки

* Встроенная периферия

Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения

Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения

Счетчик реального времени с отдельным генератором

Четыре канала PWM

8-канальный 10-разрядный аналого-цифровой преобразователь

8 несимметричных каналов

7 дифференциальных каналов (только в корпусе TQFP)

2 дифференциальных канала с программируемым усилением в 1, 10 или 200 крат (только в корпусе TQFP)

Байт-ориентированный 2-проводный последовательный интерфейс

Программируемый последовательный USART

Последовательный интерфейс SPI (ведущий/ведомый)

Программируемый сторожевой таймер с отдельным встроенным генератором

Встроенный аналоговый компаратор

* Специальные микроконтроллерные функции

Сброс по подаче питания и программируемый детектор кратковременного снижения напряжения питания

Встроенный калиброванный RC-генератор

Внутренние и внешние источники прерываний

Шесть режимов пониженного потребления: Idle, Power-save, Power-down, Standby, Extended Standby и снижения шумов ADC

* Выводы I/O и корпуса

32 программируемые линии ввода/вывода

40-выводной корпус PDIP и 44-выводной корпус TQFP

* Рабочие напряжения

2,7 - 5,5 В (ATmega16L)

4,5 - 5,5 В (ATmega16)

* Рабочая частота

0 - 8 МГц (ATmega16L)

0 - 16 МГц (ATmega16)

Рисунок 1.4 - Функциональная схема микроконтроллера ATMega 16L

РАЗДЕЛ 2 РАЗРАБОТКА УСТРОЙСТВА АВТОМАТИЧЕСКОГО РЕГУЛИРОВАНИЯ СВЕТА

Несмотря на бурное развитие сверхъярких светодиодов, в широкой продаже пока не появились светодиодные лампы, способные заменить бытовые лампы накаливания. Получившие довольно широкое распространение энергосберегающие люминесцентные лампы, при всех своих достоинствах, обладают, во-первых, высокой стоимостью, во-вторых, требуют сложную схему управления яркостью. Отечественные и зарубежные регуляторы ламп накаливания имеют ряд недостатков:

- управление только одним каналом;

- отсутствие стабилизации яркости;

- наличие помех радиоприёму, звон нитей ламп, жужжание встроенного фильтра.

Эти же недостатки присущи схемам, опубликованным в радиолюбительской литературе, периодической печати и в Интернете.

2.1 Постановка задачи

Требуется создать регулятор яркости ламп накаливания (за рубежом называемый «диммер» - dimmer), свободный от указанных недостатков, и предназначенный для установки в двухканальный светильник промышленного производства (Рис. 1).

Разработка устройства велась с учётом следующих требований:

- простота схемы (минимальное количество компонентов);

- функциональная насыщенность, многообразие регулируемых параметров;

- устойчивость к броскам сетевого напряжения, долговечность;

- отсутствие либо минимальный нагрев компонентов (пожаробезопасность);

- низкое энергопотребление.

Рисунок 2.1 - Светильник с встроенным устройством автоматического регулирования света

2.2 Разработка структурной схемы устройства и функциональной спецификации

Структурная схема устройства автоматического регулирования света представлена на рисунке 2.2.

Устройство состоит из основных элементов:

~ 220 В

Управление каналом

SB1 «1» HL1

Управление каналом

SB2 «2» HL2

Рисунок 2.2 - Структурная схема устройства автоматического регулирования света

МК - микроконтроллер (устройство, выполняющее функции управления устройствами управления);

БП - блок питания (осуществляет питание микроконтроллера и устройств управления требуемыми напряжениями);

УУ1, УУ2 - устройство управления 1-ого и 2-ого канала соответственно (осуществляют силовое управление лампами освещения по заданной программе);

SB1, SB2 - кнопки управления 1-ым и 2-ым каналами (осуществляют управление каналами освещения, по заданной программе);

HL1, HL2 - лампы освещения (освещают помещение в различных режимах и требуемой яркости).

Функциональная спецификация:

1. Входы

а. SB1, SB2 - кнопки управления 1-ым и 2-ым каналами, соответственно;

b. источник электропитания устройства (БП).

2. Выходы

а. УУ1, УУ2 - устройство управления 1-ого и 2-ого канала, соответственно .

3. Функции

а. Кнопками управления SB1 и SB2 осуществляется управление программой микроконтроллера;

b. По выбранной программе, осуществляется управление устройствами управления УУ1 и УУ2, которые осуществляют регулировку подачи регулируемого напряжения на лампы накаливания HL1 и HL2.

2.3 Разработка функциональной схемы

Основу устройства, функциональная схема которого изображена на Рис. 2.3, составляет микроконтроллер ATmega16L семейства AVR корпорации ATMEL. Управление осуществляется двумя не фиксируемыми в нажатом положении кнопками, по одной на каждый канал.

~220В F1

«+»

Рисунок 2.3 - Функциональная схема устройства автоматического регулирования света

Регулировка мощности основана на реверсивном принципе управления фазой. Нагрузка включается в каждом полупериоде сети в момент перехода сетевого напряжения через нуль и выключается через определённый интервал времени в зависимости от требуемого уровня яркости. Коммутация нагрузки осуществляется мощными MOSFET транзисторами (Транзистор1 и Транзистор2 на Рис.2.3). Такое решение имеет целый ряд преимуществ перед классической схемой прямого фазового регулирования на основе триака:

- "мягкое" управление транзистором позволяет снизить уровень помех и звон нити лампы - не нужен громоздкий сетевой фильтр, снижающий эффективность и зачастую являющийся источником неприятного жужжания;

- благодаря нарастанию напряжения с нуля и малому звону нити, лампы служат намного дольше;

- для управления MOSFET транзистором требуется гораздо меньший ток;

- более низкое падение напряжения на переходе транзистора сокращает тепловыделение;

- отсутствие понятия "ток удержания" позволяет плавно регулировать малую яркость.

Диодный мост выполняет три функции:

- создаёт пульсирующее однополярное напряжение для питания нагрузки;

- выпрямляет сетевое напряжение для питания схемы;

- обеспечивает сетевое напряжение удвоенной частоты (100 Гц), используемое МК для определения момента перехода фазы сети через нуль.

Детектирование перехода сетевого напряжения через нуль осуществляется тем же делителем напряжения и тем же каналом встроенного в МК АЦП, которые предназначены для измерения напряжения на лампе. Это позволяет отказаться от встроенного в МК компаратора и уменьшить тем самым потребляемый ток. Фильтрация сетевых помех реализуется программно.

Блок питания выполнен по бестрансформаторной схеме с гасящим резистором (балластом). Строить блок питания по трансформаторной схеме тоже не получится, т.к. не существует сетевых трансформаторов, которые подходили бы по габаритам (максимально допустимая высота 13 мм).

В качестве регулирующего элемента применён прецизионный микромощный источник опорного напряжения +5 В параллельного типа (далее по тексту ИОН). По сравнению с обычным стабилитроном, выбранный ИОН имеет два важных преимущества. Во-первых, одновременно со стабилизацией питания МК получается стабильное опорное напряжение АЦП [3]. Во-вторых, на порядок уменьшается потребляемый регулирующим элементом ток (примерно с 1 мА до 0,1 мА).

Устройство имеет защиту от короткого замыкания, превышения мощности нагрузки и повышения сетевого напряжения.

2.4 Разработка алгоритма управления

Программа составлена и отлажена в бесплатной среде разработки VM Lab версии 3.14 (в окне 'About Visual Micro Lab' эта версия указана как 3.12).

Код программы написан на языке ассемблера, содержит более 1500 строк, занимает в памяти программ МК более 3 КБ. Задействованы все 32 регистра, 51 байт оперативной памяти (SRAM, ОЗУ), 45 байт энергонезависимой памяти EEPROM.

На первый взгляд, возможности МК ATmega16, имеющего 16 КБ программной памяти, 1 КБ SRAM, 512 байт EEPROM, и богатый набор периферийных устройств, кажутся избыточными. На самом деле, выбор МК "с запасом" сделан умышленно, чтобы иметь возможность совершенствовать устройство и наращивать его функциональные возможности.

При необходимости код может быть перенесён на другие МК семейства ATmega.

Алгоритм управления показан на Рис.2.4. Каждый блок начинается с названия файла, в котором размещён программный код данного блока. Подпрограммы обозначены блоком меньшего горизонтального размера. Среди них есть функции, т.е. подпрограммы, возвращающие значения. Для упрощения они тоже называются подпрограммами. Отличие подпрограмм, расположенных в файле ProceduresINT.asm, от подпрограмм в файле ProceduresEXT.asm заключается в том, что первые предназначаются только для данного проекта, а вторые являются универсальными и могут найти применение в других проектах. Блок Startup.asm тоже использует некоторые подпрограммы, но для упрощения восприятия рисунка эти связи на блок-схеме не показаны.

2.5 Разработка программного обеспечения микроконтроллера

Далее кратко рассмотрены ключевые моменты программной части проекта. Дополнительная информация содержится в комментариях, которыми снабжена практически каждая строка программы. Листинг программы и объектный файл приведен в Приложении А. Алгоритм работы второго канала полностью аналогичен алгоритму работы первого, поэтому комментарии приводятся только для первого канала. По этой же причине в названиях регистров, процедур и т.п. номер канала либо не указывается совсем, либо обозначается буквой "X" или "x". Команды, начинающиеся с символа комментария (";") в начале строки, предназначены для облегчения разработки, отладки и тестирования.

Они ускоряют ход выполнения программы на этапе отладки. Закомментированные команды, перед которыми есть несколько знаков пробела, не используются в данном проекте, но оставлены в качестве шаблона для применения того же кода в других проектах. Для поддержания совместимости символы табуляции заменены знаками пробела.

Программа оптимизирована по быстродействию, поскольку, чем меньше времени потребуется для выполнения кода, тем большей максимальной яркости можно достигнуть (эта взаимосвязь подробно рассмотрена далее). Особое значение имеет время выполнения процедуры ADCSampling. От этого зависит качество стабилизации, т.е. насколько быстро устройство может реагировать на колебания сетевого напряжения. В текущей реализации процедура ADCSampling выполняется за 21 мкс (без учёта времени преобразования АЦП, на которое требуется 27 мкс).

Адресное пространство энергонезависимой памяти разделено на три области. В первой хранятся настраиваемые пользователем параметры устройства, во второй - системные переменные, в третьей - результаты диагностики. Первая область отделена от второй несколькими пустыми ячейками, значения которых равны $FF. Третья область находится в конце адресного пространства. Так сделано для удобства восприятия данных в окне симулятора VMLab, а также для упрощения ориентации в файле EEPROM dimmer.eep, когда требуется определить параметры настройки устройства. Первые 16 ячеек EEPROM не используются. Помимо удобства восприятия, это предохраняет содержимое первой ячейки от случайного изменения, когда регистр адреса EEPROM равен нулю. Нулевое значение присваивается этому регистру во время инициализации (блок Reset.asm). По той же самой причине не используется и последняя ячейка EEPROM, чтобы исключить изменение её содержимого, когда регистр адреса равен максимальному значению $01FF.

Страницы: 1, 2, 3