Разработка многофункциональных астрономических часов
Как известно, при разработке большинства измерительных систем возникает задача преобразования аналоговых сигналов от различных датчиков в цифровую форму и их последующей обработки. В некоторых случаях вся обработка данных возлагается на компьютер. Однако, если потребность рынка в измерительной системе велика, то удобнее использовать системы со встроенным микроконтроллером. Контроллер берет на себя многие задачи, связанные как с оцифровкой, так и с последующей обработкой данных. При этом за счет серийного производства стоимость системы значительно снижается. В результате получается законченное устройство, решающее задачу эффективно и с минимальными затратами.
Однокристальные (однокорпусные) микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя следующие составные части: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой.
Мировая промышленность выпускает огромную номенклатуру микроконтроллеров. По области применения их можно разделить на два класса: специализированные, предназначенные для применения в какой-либо одной конкретной области (контроллер для телевизора, контроллер для модема) и универсальные, которые не имеют конкретной специализации и могут применяться в самых различных областях микроэлектроники, с помощью которых можно создать как любое из перечисленных выше устройств, так и принципиально новое устройство.
Астрономические часы не отличаются ни по своему назначению, ни по устройству от обыкновенных часов. От них только требуется чрезвычайно правильный ход, для достижения которого астрономические часы снабжаются приспособлениями, слишком дорогими для применения их к обыкновенным часам.
Одно из главных приспособлений состоит в компенсации влияний температуры. Обыкновенные часы, карманные или стенные, спешат при понижении температуры и отстают при повышении её.
В электронных часах для повышения точности во-первых применяют стабильный источник питания, во-вторых – используют термостат для кварцевого резонатора.
Тема дипломной работы – «Разработка многофункциональных астрономических часов», которая и является предметом исследования.
Актуальность данной темы велика, т.к. всю жизнь человечество пыталось «идти в ногу со временем».
Цель работы – разработать особо точные электронные часы на базе микроконтроллера с разнообразными функциями.
За основу для разработки астрономических часов мы взяли микроконтроллер серии PIC16F877A.
РАЗДЕЛ 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ
1.1 Разработка микропроцессорной системы на основе микроконтроллера
1.1.1 Основные этапы разработки
Микропроцессорная система (МПС) на основе микроконтроллера (МК) используются чаще всего в качестве встроенных систем для решения задач управления некоторым объектом. Важной особенностью данного применения является работа в реальном времени, т.е. обеспечение реакции на внешние события в течение определенного временного интервала. Такие устройства получили название контроллеров.
Перед разработчиком МПС стоит задача реализации полного цикла проектирования, начиная от разработки алгоритма функционирования и заканчивая комплексными испытаниями в составе изделия. Методология проектирования контроллеров может быть представлена так, как показано на рис. 1.1.
В техническом задании формулируются требования к контроллеру с точки зрения реализации определенной функции управления. Техническое задание включает в себя набор требований, который определяет, что пользователь хочет от контроллера и что разрабатываемый прибор должен делать. Техническое задание может иметь вид текстового описания.
На основании требований пользователя составляется функциональная спецификация, которая определяет функции, выполняемые контроллером для пользователя после завершения проектирования, уточняя тем самым, насколько устройство соответствует предъявляемым требованиям. Она включает в себя описания форматов данных, как на входе, так и на выходе, а также внешние условия, управляющие действиями контроллера.
Рисунок 1.1- Основные этапы разработки контроллера
Этап разработки алгоритма управления является наиболее ответственным, поскольку ошибки данного этапа обычно обнаруживаются только при испытаниях законченного изделия и приводят к необходимости дорогостоящей переработки всего устройства. Разработка алгоритма обычно сводится к выбору одного из нескольких возможных вариантов алгоритмов, отличающихся соотношением объема программного обеспечения и аппаратных средств.
При этом необходимо исходить из того, что максимальное использование аппаратных средств упрощает разработку и обеспечивает высокое быстродействие контроллера в целом, но сопровождается, как правило, увеличением стоимости и потребляемой мощности. При выборе типа МК учитываются следующие основные характеристики:
- разрядность;
- быстродействие;
- набор команд и способов адресации;
- требования к источнику питания и потребляемая мощность в различных режимах;
- объем ПЗУ программ и ОЗУ данных;
- возможности расширения памяти программ и данных;
- наличие и возможности периферийных устройств, включая средства поддержки работы в реальном времени (таймеры, процессоры событий и т.п.);
- возможность перепрограммирования в составе устройства;
- наличие и надежность средств защиты внутренней информации;
- возможность поставки в различных вариантах конструктивного исполнения;
- стоимость в различных вариантах исполнения;
- наличие полной документации;
- наличие и доступность эффективных средств программирования и отладки МК;
- количество и доступность каналов поставки, возможность замены изделиями других фирм.
Список этот не является исчерпывающим.
Номенклатура выпускаемых в настоящее время МК исчисляется тысячами типов изделий различных фирм. Современная стратегия модульного проектирования обеспечивает потребителя разнообразием моделей МК с одним и тем же процессорным ядром. Такое структурное разнообразие открывает перед разработчиком возможность выбора оптимального МК, не имеющего функциональной избыточности, что минимизирует стоимость комплектующих элементов.
1.1.2 Разработка и отладка аппаратных средств
После разработки структуры аппаратных и программных средств дальнейшая работа над контроллером может быть распараллелена. Разработка аппаратных средств включает в себя разработку общей принципиальной схемы, разводку топологии плат, монтаж макета и его автономную отладку. На этапе ввода принципиальной схемы и разработки топологии используются, как правило, распространенные системы проектирования типа "ACCEL EDA" или "OrCad".
1.1.3 Разработка и отладка программного обеспечения
Содержание этапов разработки программного обеспечения, его трансляции и отладки на моделях существенно зависит от используемых системных средств. В настоящее время ресурсы 8-разрядных МК достаточны для поддержки программирования на языках высокого уровня. Это позволяет использовать все преимущества структурного программирования, разрабатывать программное обеспечение с использованием раздельно транслируемых модулей. Одновременно продолжают широко использоваться языки низкого уровня типа ассемблера, особенно при необходимости обеспечения контролируемых интервалов времени. Задачи предварительной обработки данных часто требуют использования вычислений с плавающей точкой, трансцендентных функций.
В настоящее время самым мощным средством разработки программного обеспечения для МК являются интегрированные среды разработки, имеющие в своем составе менеджер проектов, текстовый редактор и симулятор, а также допускающие подключение компиляторов языков высокого уровня типа Паскаль или Си. При этом необходимо иметь в виду, что архитектура многих 8-разрядных МК вследствие малого количества ресурсов, страничного распределения памяти, неудобной индексной адресации и некоторых других архитектурных ограничений не обеспечивает компилятору возможности генерировать эффективный код.
1.2 Астрономические часы
Астрономические часы не отличаются ни по своему назначению, ни по устройству от обыкновенных часов. От них только требуется чрезвычайно правильный ход, для достижения которого астрономические часы снабжаются приспособлениями, слишком дорогими для применения их к обыкновенным часам.
Одно из главных приспособлений состоит в компенсации влияний температуры. Обыкновенные часы, карманные или стенные, спешат при понижении температуры и отстают при повышении её. В часах с маятником устраивается так называемый компенсационный маятник, в часах с пружиной или хронометрах так называемые chappement.
Иногда под названием астрономических часов понимают также сложные инструменты, которые, указывая час дня, кроме того, дают течение планет и луны, приливы и отливы, подвижные праздники, различные явления неба, в особенности затмения солнца и луны, високосные года и т. п., посредством особых механических приспособлений. Построение таких часов требует большого механического искусства и немало астрономических познаний; наиболее замечательные часы такого рода изготовил Дасиподий в XV-м веке для Страсбургского собора. Мастер Швильге в Страсбурге переделал их заново, и в этом новом виде они до сих пор находятся в соборе. Другие, несколько более простые часы подобного рода находятся в Майнце.
Однако практическая польза подобных сложных инструментов весьма ограничена и не окупает затраченного на изготовление их громадного труда: для астронома удобнее справиться относительно небесных явлений в эфемеридах.
Астрономические часы Федченко (АЧФ) - Высокоточные электронно-механические вычисления часы, завершившие эволюцию маятниковых приборов времени. Погрешность составляет 0,0002-0,0003 секунды в сутки, что на порядок ниже, чем у часов английского ученого В.Шорта, сделанных в 20-х г. 19 в., которыми долгое время оснащались обсерватории мира. Точность достигнута за счет подвеса маятника на специальном трехпружинном подвесе (изобретение Ф.М.Федченко), который обеспечивает изохронные (не зависящие от амплитуды) колебания маятника. Часы Федченко вплоть до 1970-80 гг. выполняли функции хранителей времени - работали в обсерваториях, на космодромах, аэропортах, телецентрах страны.
Была попытка разработать высокоточные электронные астрономические часы, но в связи с высокой стоимостью и рядом непотребных функций они не нашли широкого применения.
РАЗДЕЛ 2. РАЗРАБОТКА МНОГОФУНКЦИОНАЛЬНЫХ АСТРОНОМИЧЕСКИХ ЧАСОВ
2.1 Постановка задачи
Требуется разработать схему многофункциональны астрономических часов.
Разработка устройства велась с учётом следующих требований:
- простота схемы (минимальное количество компонентов);
- функциональная насыщенность, многообразие регулируемых параметров;
- устойчивость к изменениям напряжения и температуры, долговечность;
- отсутствие нагрева компонентов;
- низкое энергопотребление.
2.2 Разработка структурной схемы устройства и функциональной спецификации
Рассмотрим структуру разрабатываемого устройства (Рис. 2.1).
Функциональная спецификация:
1. Входы:
а. 16 кнопок управления и регулировки часами;
b. Источник бесперебойного стабильного электропитания часов.
Рисунок 2.1 – Структурная схема многофункциональных астрономических часов
2. Выходы:
а. Двухрядный шестнадцатиразрядный ЖК индикатор;
b. Звуковой излучатель.
3. Функции:
а. 16 таймеров;
b. Таймеры могут показывать Земное, Марсианское, Юпитерское, сидерическое время, Лунных фаз, времени перемещения большого красного пятна Юпитера и т.д. Одновременное отображение 24 часового и Юлианского времен на десятичном дисплее.
с. Выполнение функций будильника;
d. Осуществление бесперебойного электропитания для осуществления стабильности хода часов (должен иметь встроенный источник питания).
2.3 Аппаратные средства микроконтроллеров серии PIC16F877A
Общее описание:
PIC16F877A 8-разрядные КМОП микроконтроллеры с Flash памятью.
Основные характеристики:
Высокопроизводительный RISC-процессор:
Всего 35 простых для изучения инструкции
Все инструкции исполняются за один такт (200 нс), кроме инструкций перехода, выполняемых за два такта; минимальная длительность такта 200 нс
14 битовые команды
8 - битовые данные
Вход внешних прерываний
8-уровневый аппаратный стек
Прямой, косвенный и относительный режимы адресации для данных и инструкций
Периферия:
22 линий ввода/вывода с индивидуальным контролем направления
Сильноточные схемы портов ввода/вывода:
25 мА макс. вытек. ток
25 мА макс. втек. ток
Timer0: 8-разрядный таймер/счетчик
Timer1: 16-разрядный таймер/счетчик
Timer2: 8-разрядный таймер/счетчик
2 ШИМ модуля
Последовательные интерфейсы
3-проводный SPI
I2C Master и Slave режимы
USART (с поддержкой адреса)
5 каналов 10-битного АЦП
2 аналоговых компаратора
Интегрированный программируемый источник опорного напряжения
Особенности микроконтроллера:
Сброс при включении питания (POR)
Таймер включения питания (PWRT) и таймер запуска генератора (OST)
Сброс по снижению напряжения питания (BOR)
Сторожевой таймер (WDT) с собственным встроенным RC-генератором для повышения надежности работы
Режим экономии энергии (SLEEP)
Выбор источника тактового сигнала
Программирование на плате через последовательный порт (ICSPT) (с использованием двух выводов)
Отладка на плате через последовательный порт (ICD) (с использованием двух выводов)
Возможность самопрограммирования
Программируемая защита кода
1000 циклов записи/стирания FLASH памяти программы
100 000 циклов записи/стирания памяти данных ЭСППЗУ
Период хранения данных ЭСППЗУ > 40 лет
Технология КМОП:
Экономичная, высокоскоростная технология КМОП
Полностью статическая архитектура
Широкий рабочий диапазон напряжений питания - от 2,0В до 5,5В
Промышленный и расширенный температурный диапазоны
Низкое потребление энергии
Совместимость:
Полная совместимость по выводам с семействами микроконтроллеров (только 28-выводными): PIC16CXXX; PIC16FXXX
Рисунок 2.2 – Структурная схема микроконтроллера PIC16F877A
Рисунок 2.3 – Расположение выводов микроконтроллера PIC16F877A
Рисунок 2.4 – Общий вид микроконтроллера PIC16F877A
Основные технические характеристики микроконтроллера PIC16F877A приведены в Приложении А.
2.4 Разработка функциональной схемы устройства
После выбора микроконтроллера мы можем приступить к разработке функциональной схемы (Рис. 2.5).
+ 12 В
С
Рисунок 2.5 – Функциональная схема многофункциональных астрономических часов
2.5 Разработка алгоритма управления
Основной алгоритм работы микроконтроллера представлен на рис. 2.6.
Рисунок 2.6 - Алгоритм работы многофункциональных астрономических часов
2.6 Разработка программного обеспечения микроконтроллера
Программа для микроконтроллера написана на языке ассемблера. Сделать ее можно более гибкой, даже ценой увеличения размера кода. Эту программу можно улучшать и улучшать, но, она работает и не слишком беспорядочна. Можно обновлять программу время от времени – удаляя ошибки и добавляя новые возможности.
Программа содержится в Приложении Б.
2.7 Выбор, описание и расчет элементной базы
Стабилизированный блок питания напряжением 5В состоит из стабилизатора напряжения и фильтрующих конденсаторов.
Блок усилителя динамика это усилитель основанный на микросхеме LM386. Динамик любой (например, модема).
Порт PIC программатора предназначенный для перепрограммирования микроконтроллера без разборки часов. Адаптер DB25 в 6 контактный разъем.
Клавиатура от микрокалькулятора или кнопочного телефона.
Использован 16-ти символьный 2-х строчный LCD модуль фирмы Techstar с подсветкой. Эти модули довольно таки стандартны, так что почти любой 16x2 LCD модуль будет работать.
Схема не содержит токовых элементов, кроме стабилизатора напряжения, поэтому поэлементный расчет элементов не производится.
Спецификация элементов устройства приведена в Приложении В.
Следует немного разобраться, как управляются астрономические часы.
Дисплей часов это 2х16 LCD модуль. Первая строка всегда показывает текущий выбранный таймер. Вторая строка используется для показа либо юлианского времени, либо выбора текущего меню.
Рисунок 2.7 – Общий вид дисплея
Шестнадцать таймеров имеют имена TmA, TmB и т.д. вплоть до TmP. Здесь TmA это имя таймера, следующего за текущим временем. Вторая строка показывает то же самое время в юлианском формате (используется в астрономии и других науках). Клавиатура выглядит так (Рисунок 2.8).
Рисунок 2.8 – Клавиатура астрономических часов
Пользовательский интерфейс часов организован в виде различных меню. Нажатие кнопок (DEL) и (TKO) позволит просмотреть пункты меню. При нажатии на (ENT) будет выбран пункт (и произойдет связанное с пунктом действие – откроется другое меню, установка значения и т.д.). выход из меню делается нажатием кнопки (DEL). Это вызовет открытие предыдущего меню. Ниже приведена диаграмма различных меню часов, с последующим детальным описанием каждого меню (Рисунок 2.9).
Рисунок 2.9 - Главное Меню – Выбор Таймера
Сразу после включения питания часов, мы попадем в меню «Выбор Таймера». В этом режиме можно просмотреть все 16 таймеров, от TmA до TmP (как и с любым меню, используйте кнопки (TKO) и (DEL) для выбора таймеров). Если вы не уверены, в каком меню вы находитесь, нажмите кнопку (ABT) несколько раз, это приведет вас в главное меню.
Установка времени (select timer, ENT)
Если вы хотите изменить что-нибудь в таймере – установить время, установить будильник и т.д., выберете данный таймер и нажмите кнопку (ENT). Это приведет вас к следующему меню с двумя опциями (Рисунок 2.10).
Рисунок 2.10 - Меню с двумя опциями
Когда опция Adjust Timer видна, вы можете использовать кнопку (0) чтобы поставить таймер на паузу или перезапустить таймер и кнопку (4), для того, чтобы переключить направление таймера (вперед или назад). Это будет воздействовать только на текущий выбранный таймер.
Когда опция Adjust Clock видна, вы можете делать установки для часов, которые влияют на все таймеры. Нажмите кнопку (0) чтобы поставить на паузу или перезапустить часы. Нажатие кнопки (4) вызовет скачок часов вперед на 1 секунду. Таким образом вы можете задать правильное время не перезапуская каждый таймер отдельно.
Установки таймера (select timer, ENT)
Выберите таймер и нажмите кнопку (ENT) дважды (один раз чтобы получить Adjust меню и второй раз, чтобы выбрать опцию Adjust Timer). Появится меню со следующими опциями (Рисунок 2.11).
Рисунок 2.11 – Опции таймера
Если вы выберите опцию Set Timer и нажмете кнопку (ENT), вам будет показан экран, где вы можете ввести новое время. Введите время используя цифровой клавиши. Новое время будет установлено когда вы введете все шесть цифр (HH:MM:SS) или когда вы нажмете кнопку (ENT). Нажатие кнопки (ABT) в любой момент отменит операцию и время не будет установлено.
Если вы выберите опцию Set Alarm, это позволит вам установить время будильника, звук и действие.
Чтобы настроить таймер на какой ни будь другой, отличный от стандартного земного (24 часа), временной цикл, выберите опцию Set Cycle Lengt. Более детальная информация и примеры длин циклов (например, как заставить таймер считать марсианское время), находятся в разделе How-To, пункт «Установка длинны цикла таймера». Подтвердите установку новой длинны цикла кнопкой (ENT) или отмените операцию нажав кнопку (ABT) в любой момент.
Каждый таймер имеет будильник, связанный с ним. Это меню позволяет вам выбрать между следующими опциями.
Чтобы установить время будильника выберите опцию Alarm Time и нажмите кнопку (ENT). Как обычно, кнопка (ENT) подтверждает, а кнопка (ABT) отменяет операцию в любой момент.
2.8 Разработка схемы электрической принципиальной
Принципиальная схема многофункциональных астрономических часов в Accel EDA приведена на Рисунке 2.12.
Рисунок 2.12 - Принципиальная схема многофункциональных астрономических часов в Accel EDA
Принципиальная схема приведена в Приложении Д.
РАЗДЕЛ 3. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ОБЪЕКТА РАЗРАБОТКИ
В данном разделе проводится технико-экономический расчет стоимости астрономических часов.
Стоимость устройства будет состоять из стоимости разработки ПО для микроконтроллера, стоимости разработки конструкторской документации и сборки устройства.
3.1 Расчет расходов ПО для микроконтроллера, которое разрабатывается
Исходные данные для расчета стоимости разработки ПО, которое разрабатывается приведены в таблице 3.1.
Таблица 3.1 – Данные на 1.01.2010 г.
№п/п | Статьи затрат | Усл. обозн. | Ед. изм. | Значения |
|
| |||||
Проектирование и разработка ПЗ |
| ||||
1 | Часовая тарифная ставка программиста | Зпр | грн. | 8,00 |
|
2 | Коэффициент сложности программы | с | коэф. | 1,40 |
|
3 | Коэффициент коррекции программы | Р | коэф. | 0,05 |
|
4 | Коэффициент увеличения расходов труда | Z | коэф. | 1,3 |
|
5 | Коэффициент квалификации программиста | k | коэф. | 1,0 |
|
6 | Амортизационные отчисления | Амт | % | 10,0 |
|
7 | Мощность компьютера, принтера | WМ | Квт/ч | 0,40 |
|
8 | Стоимость ПЕОМ IBM Sempron LE1150(AM2)/1GB/TFT | Втз | грн. | 3200,00 | |
9 | Тариф на электроэнергию | Це/е | грн. | 0,56 | |
10 | Норма дополнительной зарплаты | Нд | % | 10,0 | |
11 | Отчисление на социальные расходы | Нсоц | % | 37,2 | |
12 | Транспортно-заготовительные расходы | Нтр | % | 4,0 | |
Эксплуатация П0 |
| ||||
13 | Численность обслуживающего персонала | Чо | чел | 1 |
|
14 | Часовая тарифная ставка обслуживающего персонала | Зперс | грн. | 6,00 | |
15 | Время обслуживания систем | То | час/г | 150 | |
16 | Стоимость ПЕОМ | Втз | грн. | 3200,00 | |
17 | Норма амортизационных отчислений на ПЕОМ | На | % | 10,0 | |
18 | Норма амортизационных отчислений на ПЗ | НаП | % | 10,0 | |
19 | Накладные расходы | Рнак | % | 25,0 | |
20 | Отчисление на содержание и ремонт ПЕОМ и ПО | Нр | % | 10,0 | |
21 | Стоимость работы одного часа ПЕОМ | Вг | грн. | 6,5 |
Первичными исходными данными для определения себестоимости ПО является количество исходных команд (операторов) конечного программного продукта. Условное количество операторов Q в программе задания может быть оценено по формуле:
, (3.1)
где у – расчетное количество операторов в программе, что ра