Дипломная работа: Разработка устройства автоматического регулирования света на микроконтроллере
Дипломная работа: Разработка устройства автоматического регулирования света на микроконтроллере
РЕФЕРАТ
Пояснительная записка к дипломному проекту: 123 страницы, 11 рисунков, 18 таблиц, 25 источников, 6 приложений, 3 листа чертежей формата
А1.
Объект
исследований: Разработка устройства автоматического регулирования света.
В
первом разделе рассматриваются теоретические основы разработки устройства,
основные этапы разработки, разработка и отладка аппаратных и программных
средств.
Во
втором разделе производится практическая разработка проектируемого устройства:
разрабатываются структурная и функциональные схемы, алгоритм управления и
программное обеспечение микроконтроллера; производится расчет и выбор
элементной базы; построение электрической схемы.
Третий
раздел содержит экономические расчеты стоимости проектируемого устройства,
используя аппаратные средства Microsoft
Ofice Excel
97-2003, производится сравнительная характеристика с аналогичными устройствами
по экономическим и техническим параметрам.
В
четвертом разделе рассматриваются вопросы по охране труда для работающих на
компьютере (ВЦ), производится расчет исскуственной и естественной освещенности
рабочего места, вентиляции и кондиционирования воздуха, уровня шума для
помещения, где находятся персонал, обслуживающий компьютеры.
АЛГОРИТМ,
ИСТОЧНИК ОПОРНОГО НАПРЯЖЕНИЯ, ПРОГРАММА, ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ, СХЕМА/
СОДЕРЖАНИЕ
ПЕРЕЧЕНЬ
УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ,СОКРАЩЕНИЙ И ТЕРМИНОВ
ВВЕДЕНИЕ
РАЗДЕЛ
1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ
1.1
Основные этапы разработки
1.2
Разработка и отладка аппаратных средств
1.3
Разработка и отладка программного обеспечения
1.4
Методы и средства совместной отладки аппаратных и программных средств
1.5
выбор микроконтроллера
РАЗДЕЛ
2 РАЗРАБОТКА УСТРОЙСТВА АВТОМАТИЧЕСКОГО РЕГУЛИРОВАНИЯ СВЕТА
2.1
Постановка задачи
2.2
Разработка структурной схемы устройства и функциональной спецификации
2.3
Разработка функциональной схемы
2.4
Разработка алгоритма управления
2.5
Разработка программного обеспечения микроконтроллера
2.6
Выбор, описание и расчеты элементной базы
2.7
Разработка схемы электрической принципиальной
3
ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ОБЪЕКТА
РАЗРАБОТКИ
3.1 Расчет расходов ПО
для микроконтроллера, которое разрабатывается
3.2 Расчет стоимости
разработки конструкторской документации и сборки устройства
3.3 Расчет расходов на стадии
производства изделия
3.4
Анализ аналогичных устройств
РАЗДЕЛ
4 ОХРАНА ТРУДА
4.1
Требования к производственным помещениям
4.1.1
Окраска и коэффициенты отражения
4.1.2
Освещение
4.1.3
Параметры микроклимата
4.1.4
Шум и вибрация
4.1.5
Электромагнитное и ионизирующее излучения
4.2
Эргономические требования к рабочему месту
4.3
Режим труда
4.4
Расчет освещенности
4.5
Расчет вентиляции
4.6
Расчет уровня шума
ВЫВОДЫ
ПЕРЕЧЕНЬ
ССЫЛОК
ПРИЛОЖЕНИЯ
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ,
СИМВОЛОВ, ЕДИНИЦ, СОКРАЩЕНИЙ И ТЕРМИНОВ
АЦП
– аналого-цифровой преобразователь;
ВДТ
- видеодисплейный терминал;
ЖКИ-
дисплей – жидкокристаллический дисплей;
ИОН
– источник опорного напряжения;
ИПХ
- имитация присутствия хозяев;
КЗ
– короткое замыкание;
МПС
– микропроцессорная система;
ОЗУ
- оперативно-запоминающее устройство;
ОМК
– однокристальные микроконтроллеры;
ПЗУ
– программно-запоминающее устройство;
ПО
– программное обеспечение.
ВВЕДЕНИЕ
В
настоящее время в системах управления и обработки данных все чаще применяются
микроконтроллеры, решающие широкий спектр задач. Однокристальные
микроконтроллеры (ОМК) являются наиболее массовым видом устройств современной
микропроцессорной техники, годовой объем выпуска которых составляет более 2,5
млрд. штук. Интегрируя на одном кристалле высокопроизводительный процессор,
память и набор периферийных схем, ОМК позволяют с минимальными затратами
реализовать высокоэффективные системы и устройства управления различными
объектами (процессами). В отличие от обычных микропроцессоров, для работы
которых необходимы внешние интерфейсные схемы, в корпусе ОМК наряду с основными
функциональными узлами размещены такие вспомогательные узлы, как тактовый
генератор, таймер, контроллер прерываний, цифро-аналоговый и аналого-цифровой
преобразователи, порты ввода-вывода.
Благодаря
этим качествам ОМК находят широкое применение в системах промышленной
автоматики, контрольно-измерительных приборах и системах, аппаратуре связи, автомобильной
электронике, медицинском оборудовании, бытовой технике и многих других
областях.
Применение
однокристальных микроконтроллеров позволяет перенести основные затраты,
связанные с разработкой встраиваемых систем управления, из аппаратной в
программную область. Это неминуемо влечет за собой увеличение сложности
программного обеспечения (ПО) микроконтроллеров.
Особенностью
разработки ПО для ОМК является использование языка низкого уровня - языка
ассемблера. Это связано с тем, что при реализации встраиваемых систем
критичными являются время реакции на внешние воздействия, время выполнения
заданных процедур обработки данных, размер программного кода и области данных.
Мировая
промышленность выпускает огромную номенклатуру микроконтроллеров. По области применения
их можно разделить на два класса : специализированные, предназначенные для
применения в какой-либо одной конкретной области (контроллер для телевизора, контроллер
для модема, контроллер для компьютерной мышки ) и универсальные, которые не
имеют конкретной специализации и могут применяться в самых различных областях
микроэлектроники, с помощью которых можно создать как любое из перечисленных
выше устройств, так и принципиально новое устройство.
Тема
дипломной работы – «Разработка устройства автоматического регулирования света
на микроконтроллере».
Основная
цель дипломного проекта – на основании задания на проектирование разработать
устройство автоматического регулирования света на микроконтроллере с учётом
следующих требований:
-
простота схемы (минимальное количество компонентов);
-
функциональная насыщенность, многообразие регулируемых параметров;
-
устойчивость к броскам сетевого напряжения, долговечность;
-
отсутствие либо минимальный нагрев компонентов (пожаробезопасность);
-
низкое энергопотребление.
Актуальностью
данной работы является проектирование устройства автоматического регулирования
света, которое отличается своей новизной и учитывает почти все недостатки ранее
разработанных аналогичных устройств.
РАЗДЕЛ
1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ
1
Разработка микропроцессорной системы на основе микроконтроллера
1.1
Основные этапы разработки
МПС
на основе МК используются чаще всего в качестве встроенных систем для решения
задач управления некоторым объектом. Важной особенностью данного применения
является работа в реальном времени, т.е. обеспечение реакции на внешние события
в течение определенного временного интервала. Такие устройства получили
название контроллеров.
Перед
разработчиком МПС стоит задача реализации полного цикла проектирования, начиная
от разработки алгоритма функционирования и заканчивая комплексными испытаниями
в составе изделия, а, возможно, и сопровождением при производстве. Сложившаяся
к настоящему времени методология проектирования контроллеров может быть
представлена так, как показано на рис. 1.1.
В
техническом задании формулируются требования к контроллеру с точки зрения
реализации определенной функции управления. Техническое задание включает в себя
набор требований, который определяет, что пользователь хочет от контроллера и
что разрабатываемый прибор должен делать. Техническое задание может иметь вид
текстового описания, не свободного в общем случае от внутренних противоречий.
На
основании требований пользователя составляется функциональная спецификация,
которая определяет функции, выполняемые контроллером для пользователя после
завершения проектирования, уточняя тем самым, насколько устройство
соответствует предъявляемым требованиям. Она включает в себя описания форматов
данных, как на входе, так и на выходе, а также внешние условия, управляющие
действиями контроллера.
Рисунок
1.1- Основные этапы разработки контроллера
Этап
разработки алгоритма управления является наиболее ответственным, поскольку
ошибки данного этапа обычно обнаруживаются только при испытаниях законченного
изделия и приводят к необходимости дорогостоящей переработки всего устройства.
Разработка алгоритма обычно сводится к выбору одного из нескольких возможных
вариантов алгоритмов, отличающихся соотношением объема программного обеспечения
и аппаратных средств.
При
этом необходимо исходить из того, что максимальное использование аппаратных
средств упрощает разработку и обеспечивает высокое быстродействие контроллера в
целом, но сопровождается, как правило, увеличением стоимости и потребляемой
мощности. При выборе типа МК учитываются следующие основные характеристики:
-
разрядность;
-
быстродействие;
-
набор команд и способов адресации;
-
требования к источнику питания и потребляемая мощность в различных режимах;
-
объем ПЗУ программ и ОЗУ данных;
-
возможности расширения памяти программ и данных;
-
наличие и возможности периферийных устройств, включая средства поддержки работы
в реальном времени (таймеры, процессоры событий и т.п.);
-
возможность перепрограммирования в составе устройства;
-
наличие и надежность средств защиты внутренней информации;
-
возможность поставки в различных вариантах конструктивного исполнения;
-
стоимость в различных вариантах исполнения;
-
наличие полной документации;
-
наличие и доступность эффективных средств программирования и отладки МК;
-
количество и доступность каналов поставки, возможность замены изделиями других
фирм.
Список
этот не является исчерпывающим, поскольку специфика проектируемого устройства
может перенести акцент требований на другие параметры МК.
Номенклатура
выпускаемых в настоящее время МК исчисляется тысячами типов изделий различных
фирм. Современная стратегия модульного проектирования обеспечивает потребителя
разнообразием моделей МК с одним и тем же процессорным ядром. Такое структурное
разнообразие открывает перед разработчиком возможность выбора оптимального МК,
не имеющего функциональной избыточности, что минимизирует стоимость
комплектующих элементов.
Однако
для реализации на практике возможности выбора оптимального МК необходима
достаточно глубокая проработка алгоритма управления, оценка объема исполняемой
программы и числа линий сопряжения с объектом на этапе выбора МК. Допущенные на
данном этапе просчеты могут впоследствии привести к необходимости смены модели
МК и повторной разводки печатной платы макета контроллера. В таких условиях
целесообразно выполнять предварительное моделирование основных элементов
прикладной программы с использованием программно-логической модели выбранного
МК.
На
этапе разработки структуры контроллера окончательно определяется состав
имеющихся и подлежащих разработке аппаратных модулей, протоколы обмена между
модулями, типы разъемов. Выполняется предварительная проработка конструкции
контроллера. В части программного обеспечения определяются состав и связи
программных модулей, язык программирования. На этом же этапе осуществляется
выбор средств проектирования и отладки.
1.2
Разработка и отладка аппаратных средств
После
разработки структуры аппаратных и программных средств дальнейшая работа над
контроллером может быть распараллелена. Разработка аппаратных средств включает
в себя разработку общей принципиальной схемы, разводку топологии плат, монтаж
макета и его автономную отладку. На этапе ввода принципиальной схемы и
разработки топологии используются, как правило, распространенные системы
проектирования типа "ACCEL EDA" или "OrCad".
1.3
Разработка и отладка программного обеспечения
Содержание
этапов разработки программного обеспечения, его трансляции и отладки на моделях
существенно зависит от используемых системных средств. В настоящее время
ресурсы 8-разрядных МК достаточны для поддержки программирования на языках
высокого уровня. Это позволяет использовать все преимущества структурного
программирования, разрабатывать программное обеспечение с использованием
раздельно транслируемых модулей. Одновременно продолжают широко использоваться
языки низкого уровня типа ассемблера, особенно при необходимости обеспечения
контролируемых интервалов времени. Задачи предварительной обработки данных
часто требуют использования вычислений с плавающей точкой, трансцендентных
функций.
В
настоящее время самым мощным средством разработки программного обеспечения для
МК являются интегрированные среды разработки, имеющие в своем составе менеджер
проектов, текстовый редактор и симулятор, а также допускающие подключение
компиляторов языков высокого уровня типа Паскаль или Си. При этом необходимо
иметь в виду, что архитектура многих 8-разрядных МК вследствие малого количества
ресурсов, страничного распределения памяти, неудобной индексной адресации и
некоторых других архитектурных ограничений не обеспечивает компилятору
возможности генерировать эффективный код.
Для
проверки и отладки программного обеспечения используются так называемые
программные симуляторы, предоставляющие пользователю возможность выполнять
разработанную программу на программно-логической модели МК. Программные
симуляторы распространяются, как правило, бесплатно и сконфигурированы сразу на
несколько МК одного семейства. Выбор конкретного типа МК среди моделей
семейства обеспечивает соответствующая опция меню конфигурации симулятора. При
этом моделируется работа ЦП, всех портов ввода/вывода, прерываний и другой
периферии. Карта памяти моделируемого МК загружается в симулятор автоматически,
отладка ведется в символьных обозначениях регистров.
Загрузив
программу в симулятор, пользователь имеет возможность запускать ее в пошаговом
или непрерывном режимах, задавать условные или безусловные точки останова,
контролировать и свободно модифицировать содержимое ячеек памяти и регистров
симулируемого МК.
1.4
Методы и средства совместной отладки аппаратных и программных средств
Этап
совместной отладки аппаратных и программных средств в реальном масштабе времени
является самым трудоемким и требует использования инструментальных средств
отладки. К числу основных инструментальных средств отладки относятся:
-
внутрисхемные эмуляторы;
-
платы развития (оценочные платы);
-
мониторы отладки;
-
эмуляторы ПЗУ.
Внутрисхемный
эмулятор – программно-аппаратное средство, способное заменить эмулируемый МК в
реальной схеме.
Внутрисхемный
эмулятор – это наиболее мощное и универсальное отладочное средство, которое
делает процесс функционирования отлаживаемого контроллера прозрачным, т.е. легко
контролируемым, произвольно управляемым и модифицируемым.
Платы
развития, или, как принято их называть в зарубежной литературе, оценочные платы
(Evaluation Boards), являются своего рода конструкторами для макетирования
электронных устройств. Обычно это печатная плата с установленным на ней МК и
всей необходимой ему стандартной периферией. На этой плате также устанавливают
схемы связи с внешним компьютером. Как правило, там же имеется свободное поле
для монтажа прикладных схем пользователя. Иногда предусмотрена уже готовая
разводка для установки дополнительных устройств, рекомендуемых фирмой.
Например, ПЗУ, ОЗУ, ЖКИ- дисплей, клавиатура, АЦП и др.
Эмулятор
ПЗУ – программно-аппаратное средство, позволяющее замещать ПЗУ на отлаживаемой
плате, и подставляющее вместо него ОЗУ, в которое может быть загружена
программа с компьютера через один из стандартных каналов связи. Это устройство
позволяет пользователю избежать многократных циклов перепрограммирования ПЗУ.
Эмулируемая память доступна для просмотра и модификации, но контроль над
внутренними управляющими регистрами МК был до недавнего времени невозможен.
В
последнее время появились модели интеллектуальных эмуляторов ПЗУ, которые
позволяют "заглядывать" внутрь МК на плате пользователя.
Этап
совместной отладки аппаратных и программных средств в реальном масштабе времени
завершается, когда аппаратура и программное обеспечение совместно обеспечивают
выполнение всех шагов алгоритма работы системы. В конце этапа отлаженная
программа заносится с помощью программатора в энергонезависимую память МК, и
проверяется работа контроллера без эмулятора.
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
Rб
«+»
Рисунок
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". Команды, начинающиеся
с символа комментария (";") в начале строки, предназначены для
облегчения разработки, отладки и тестирования.
|
|
|
|
|
|
|
|
|
Рисунок
2.4 – Блок-схема алгоритма
|
|
Они
ускоряют ход выполнения программы на этапе отладки. Закомментированные команды,
перед которыми есть несколько знаков пробела, не используются в данном проекте,
но оставлены в качестве шаблона для применения того же кода в других проектах.
Для поддержания совместимости символы табуляции заменены знаками пробела.
Программа
оптимизирована по быстродействию, поскольку, чем меньше времени потребуется для
выполнения кода, тем большей максимальной яркости можно достигнуть (эта
взаимосвязь подробно рассмотрена далее). Особое значение имеет время выполнения
процедуры ADCSampling. От этого зависит качество стабилизации, т.е. насколько
быстро устройство может реагировать на колебания сетевого напряжения. В текущей
реализации процедура ADCSampling выполняется за 21 мкс (без учёта времени
преобразования АЦП, на которое требуется 27 мкс).
Адресное
пространство энергонезависимой памяти разделено на три области. В первой
хранятся настраиваемые пользователем параметры устройства, во второй –
системные переменные, в третьей – результаты диагностики. Первая область
отделена от второй несколькими пустыми ячейками, значения которых равны $FF.
Третья область находится в конце адресного пространства. Так сделано для
удобства восприятия данных в окне симулятора VMLab, а также для упрощения ориентации
в файле EEPROM dimmer.eep, когда требуется определить параметры настройки
устройства. Первые 16 ячеек EEPROM не используются. Помимо удобства восприятия,
это предохраняет содержимое первой ячейки от случайного изменения, когда
регистр адреса EEPROM равен нулю. Нулевое значение присваивается этому регистру
во время инициализации (блок Reset.asm). По той же самой причине не
используется и последняя ячейка EEPROM, чтобы исключить изменение её
содержимого, когда регистр адреса равен максимальному значению $01FF.
Принимая
во внимание ограниченное количество циклов перезаписи EEPROM (100 000 согласно паспортных
данных), в памяти сохраняются только самые необходимые данные, а именно уровень
установленной пользователем яркости и текущее состояние устройства.
Прерывания
не задействованы. Программный код, расположенный в блоке Main.asm, выполняется
в бесконечном цикле. Тем самым удаётся повысить быстродействие за счёт отказа
от команды RETI и команд работы со стеком. Тем не менее, в целях диагностики
неисправностей, срабатывание любого прерывания фиксируется и запоминается в
EEPROM (подпрограмма WrongINT.asm). Также в целях диагностики запоминается
причина, вызвавшая сброс МК (блок ResetCause.asm). Ячейки диагностики, как уже
отмечалось, находятся в конце области EEPROM. Если значение хотя бы одной из
них отлично от нуля, это говорит о наличии неисправности.
Сторожевой
таймер настроен на максимальный период срабатывания (2 секунды). Чем больше
интервал, тем легче заметить срабатывание таймера. Особенно это помогает на
этапе отладки.
Супервизор
питания запрограммирован на минимальный порог 2,7 В. За счёт этого
обеспечивается надёжный запуск МК с учётом большой ёмкости конденсатора,
установленного в фильтре питания. Супервизор гарантирует стабильный запуск
независимо от того, на какое время пропадёт напряжение в сети.
Энергосберегающие
режимы не используются. Это связано с тем, что в течение примерно 9,5мс каждого
полупериода ведётся непрерывное измерение сетевого напряжения, а в оставшиеся
0,5мс выполняется основная программа. Переводить МК в спящий режим на столь
короткое время не имеет смысла. К тому же, возврат МК из любого спящего режима
требует дополнительных затрат времени, что сказывается на быстродействии.
Выключение
АЦП на время выполнения основной программы тоже не имеет смысла. Установлено,
что потребляемый МК ток снижается при этом всего на 10мкА.
Во
время инициализации МК интерфейс JTAG и компаратор в целях снижения
энергопотребления отключаются.
Выходы
МК переключаются одновременно. Это необходимо для того, чтобы оба канала имели
равные временные задержки и работали одинаково. С этой целью в программу введён
специальный буферный регистр rOutChannels. Изменение состояния выходов
осуществляется только командой OUT pMainOut, rOutChannels. После старта МК
буферный регистр содержит копию состояния порта pMainOut, большинство выводов
которого, по аналогии с другими неиспользуемыми выводами, настроены как входы с
внутренними подтягивающими резисторами. Поэтому никакие биты регистра
rOutChannels (кроме двух старших) не должны модифицироваться программой. Также
не должно изменятся состояние порта напрямую, т.к. любое изменение будет
перезаписано содержимым буферного регистра.
АЦП,
имеющий разрешение 10 бит, используется в режиме 8-битного преобразования,
поскольку высокая точность измерений не требуется. Это позволяет ему работать
на максимальной частоте (500 кГц), что обеспечивает высокое быстродействие.
Согласно [12, раздел 2.8], допускается работа АЦП на частотах до 1 МГц.
Уменьшенное до 8 бит разрешение служит также дополнительной защитой от помех.
Для сокращения количества команд управления, АЦП работает в режиме автозапуска,
сигналом которому является окончание предыдущего цикла преобразования. Первое
преобразование запускается при инициализации МК.
Таймеры
не используются. Они создают помехи работе АЦП. Для исключения этого явления
существует специальный энергосберегающий режим АЦП ''ADC Noise Reduction''. Но
поскольку режимы энергосбережения по причинам, указанным ранее, не
используются, временные задержки пришлось реализовать на основе регистров или
ячеек ОЗУ.
По
окончании инициализации всем регистрам и ячейкам ОЗУ присваивается нулевое
значение (блок SRAMInit.asm). В результате, не нужно помнить о том, чтобы все
переменные были проинициализированы, т.е. не содержали бы случайных значений.
Как следствие, значительно облегчается их поиск.
После
инициализации регистров и ОЗУ продолжение программы приостанавливается на
несколько секунд (осуществляется программная задержка). За это время напряжение
питания МК и образцовое напряжение АЦП успевают достигнуть номинального уровня.
Для
повышения быстродействия задействованные ячейки EEPROM копируются перед началом
работы либо в регистры, либо в ОЗУ (блок Startup.asm). В большинстве случаев
для этой цели используется специальный макрос EEPROMtoSRAM, находящийся в файле
Macros.asm (на блок-схеме алгоритма не показан).
При
таком подходе появляется возможность проверки считанных из EEPROM данных. Если
введённый пользователем параметр настройки является недопустимым, он преобразуется
к ближайшему допустимому значению (меньшему или большему). Это действие,
условно называемое нормализация, выполняется не для всех ячеек, а только для
тех, допустимые значения которых однозначны, а также для тех, недопустимые
значения которых могут привести к явным ошибкам в работе устройства.
Допустимые
значения ячеек EEPROM, а также значения по умолчанию указаны при описании ячеек
в комментариях (блок Dimmer.asm). Значения некоторых ячеек умышленно ограничены
диапазоном, удобным для восприятия и запоминания. Например, продолжительность
включенного состояния функции ИПХ, задаваемая ячейкой eOwnersAtHomeOnPeriod,
ограничена значением 240 минут, хотя функция могла бы исправно работать и при
eOwnersAtHomeOnPeriod = 255. Однако значение 240 минут (4 часа) более привычно
для запоминания и использования, нежели 255 минут (4,25 часа).
Страницы: 1, 2, 3, 4, 5, 6
|