Разработка контроллера шагового двигателя - Дипломная работа

бесплатно 0
4.5 79
Разработка микропроцессорной системы на основе микроконтроллера, основные этапы и особенности данного процесса. Принципы работы шагового двигателя. Аппаратные средства микроконтроллеров серии AT90S2313. Расчет стоимости сборки и отладки устройства.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
На основании требований пользователя составляется функциональная спецификация, которая определяет функции, выполняемые контроллером для пользователя после завершения проектирования, уточняя тем самым, насколько устройство соответствует предъявляемым требованиям. Программа в этом случае выключает ток всех фаз, хотя во многих приложениях в этой ситуации требуется оставить включенными текущие фазы и лишь несколько уменьшить их ток, обеспечив этим удержание положения двигателя. Коэффициент коррекции программы р - увеличение объема работ за счет внесения изменений в программу лежит в границах от 0,05 до 0,1 и выбирается равным 0,05. Расходы на использование ЭВМ при разработке ПО рассчитываются, исходя расходов одного часа, по формуле: ,(3.12) где Вг - стоимость работы одного часа ЭВМ, грн.; Расходы, на использование ЭВМ при разработке КД, рассчитываются исходя из расходов работы одного часа ЭВМ по формуле, грн.: ,(3.15) где Вг - стоимость работы одного часа ЭВМ, грн.

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

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

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

В практике часто встречаются исполнительные устройства на шаговых двигателях (ШД). Принтеры, факсы, станки с ЧПУ, стиральные машины, дисководы, видеоплееры, проявочные и упаковочные машины - вот далеко не полный перечень устройств, использующих ШД. Одно из применений в учебных целях - это радиолюбительские модели, исполнительные узлы роботов, привод редукторов точного поворота антенн… Устройство можно также применить в качестве привода в станках для точного сверления и калибровки отверстий небольшого диаметра, в транспортерных линиях и т.п.

Предмет исследования - разработка контроллера шагового двигателя робота.

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

Задачей данного исследования является разработка алгоритма работы микроконтроллера, управляющего шаговым двигателем робота; функциональной, структурной и принципиальной схемы устройства.

Проект основывается на микроконтроллере типа AT90S2313 фирмы Atmel.

1. Теоретические основы разработки

1.1 Разработка микропроцессорной системы на основе микроконтроллера

1.1.1 Основные этапы разработки

Микропроцессорная система (МПС) на основе микроконтроллера (МК) используются чаще всего в качестве встроенных систем для решения задач управления некоторым объектом (в конкретном случае - шаговым двигателем). Важной особенностью данного применения является работа в реальном времени, т.е. обеспечение реакции на внешние события в течение определенного временного интервала. Такие устройства получили название контроллеров.

Перед разработчиком МПС стоит задача реализации полного цикла проектирования, начиная от разработки алгоритма функционирования и заканчивая комплексными испытаниями в составе изделия. Методология проектирования контроллеров может быть представлена так, как показано на рис. 1.1.

В техническом задании формулируются требования к контроллеру с точки зрения реализации определенной функции управления. Техническое задание включает в себя набор требований, который определяет, что пользователь хочет от контроллера и что разрабатываемый прибор должен делать. Техническое задание может иметь вид текстового описания.

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

Рисунок 1.1 - Основные этапы разработки контроллера

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

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

- быстродействие;

- набор команд и способов адресации;

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

- объем ПЗУ программ и ОЗУ данных;

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

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

- возможность перепрограммирования в составе устройства;

- наличие и надежность средств защиты внутренней информации;

- возможность поставки в различных вариантах конструктивного исполнения;

- стоимость в различных вариантах исполнения;

- наличие полной документации;

- наличие и доступность эффективных средств программирования и отладки МК;

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

Список этот не является исчерпывающим.

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

1.1.2 Разработка и отладка аппаратных средств

После разработки структуры аппаратных и программных средств дальнейшая работа над контроллером может быть распараллелена. Разработка аппаратных средств включает в себя разработку общей принципиальной схемы, разводку топологии плат, монтаж макета и его автономную отладку. На этапе ввода принципиальной схемы и разработки топологии используются, как правило, распространенные системы проектирования типа «ACCEL EDA» или «ORCAD».

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

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

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

1.2 Принципы работы шагового двигателя

Существуют два основных типа шаговых двигателей, применяемых в практике: • с постоянным магнитом;

• с переменным магнитным полем.

Конструкция типичного биполярного шагового двигателя показана на рис. 1.2.

Двигатели с постоянным магнитом бывают биполярными (рис. 1.3) и униполярными (рис. 1.4).

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

Рисунок 1.2 - Конструкция биполярного шагового двигателя

Рисунок 1.3 - Схема биполярного двигателя

Рисунок 1.4 - Схема униполярного двигателя

Для двигателя этого типа существует три метода возбуждения обмоток.

• Возбуждение обмоток происходит в последовательности AB/CD/ BA/DC (ВА указывает на то, что обмотка АВ возбуждается в противоположном направлении). Эта последовательность известна под названием «одна фаза активна», «полный шаг» или «привод волны». В каждый момент возбуждается только одна из фаз (рис. 1.5).

Рисунок 1.5 - Последовательность возбуждения обмоток «одна фаза активна»

• Возбуждение одновременно обеих фаз, чтобы ротор выровнялся между двумя положениями полюса. Такой метод называется «две фазы активны», «полный шаг». Это состояние является следующей последовательностью привода биполярного двигателя и дает самый высокий вращающий момент (рис. 1.6).

• Возбуждение одной фазы, потом - двух, потом - одной и т.д., чтобы ротор двигался поэтапно, вращаясь в квадранте. Эта последовательность известна как «ступенчатый метод половины». Полуволна имеет большой угол вращения за шаг двигателя, но слабый вращающий момент (рис. 1.7).

Рисунок 1.6 - Последовательность возбуждения обмоток «две фазы активны»

Для вращения в противоположном направлении (синхронизация прежняя) изменяется порядок возбуждения обмоток, на противоположный. Как показано на диаграммах, угол поворота ротора составляет 90°. Промышленные двигатели имеют больше полюсов и достигают угла поворота в несколько градусов, но число обмоток и последовательность привода остаются неизменными.

Рисунок 1.7 - Последовательность возбуждения обмоток «ступенчатый метод половины»

Униполярный двигатель с постоянным магнитом идентичен биполярному за тем исключением, что у него в каждой фазе используются две обмотки. Это необходимо для того, чтобы полностью изменить поток статора быстрее, чем в двунаправленном приводе (рис. 1.8).

Рисунок 1.8 - Схема униполярного двигателя с постоянным магнитом

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

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

Двигатель переменного магнитного поля оснащен ротором из нена-магниченного мягкого железа с меньшим количеством полюсов, чем статор (рис. 1.8). При этом используется униполярный метод возбуждения пары полюсов статора, чтобы повернуть ротор к полюсам возбуждаемой обмотки ступенчато. Здесь также используют три различных последовательности возбуждения фаз: • «одна фаза активна» - A/C/B/D;

• «две фазы активны» - AC/CB/BD/DA;

• «шаг-половина» - A/AC/C/BC/B/BD/D/DA.

Заметим, что угол поворота ротора составляет 15°, а не 45°. В прошлом униполярные двигатели были более интересны для проектировщиков, поскольку имеют простой выходной каскад. Теперь, когда выпускаются монолитные драйверы напряжения, биполярные двигатели становятся более популярным.

Для правильного генерирования импульса обмотки ШД необходим мостовой коммутатор тока обмотки. Такой коммутатор можно собрать на дискретных элементах.

2. Разработка контроллера шагового двигателя робота

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

Требуется разработать схему контролера шагового двигателя робота.

Разработка устройства велась с учетом следующих требований: - простота схемы (минимальное количество компонентов);

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

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

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

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

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

Рассмотрим структуру разрабатываемого устройства (Рис. 2.1). АЦП, который тактируется от задающего генератора, снимает напряжение с регулятора R. Это напряжение преобразуется в шестнадцатиричный код. Полученные данные преобразуются для достижения целей поставленной задачи. Далее программа задает код работы порта А в зависимости от внешних управляющих сигналов. Этот код отрабатывает драйвер, который возбуждает обмотки ШД.

Uпит

UАЦП Шаговый двигатель

Контроль по току

Рисунок 2.1 - Структурная схема разрабатываемого устройства

ГТС - генератор тактового сигнала;

ВУУ - внешнее управление устройством;

ДР - драйвер;

КР - кварцевый резонатор;

СН - стабилизатор напряжения.

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

b. Электропитание МК и драйверов стабилизированным напряжением;

с. Регулировка скорости вращения шаговым двигателем на вход АЦП;

d. Стабилизация частоты генератора кварцевым резонатором (КР).

2. Выходы: а. Сигнал управления от МК драйвера;

b. Сигналы на устройство индикации работы ШД.

3. Функции: а. Управление шаговым двигателем (функцией движения «Вперед-назад»);

b.МК управляет работой драйверов, которые управляют движением ШД;

с. При подаче определенного сигнала на вход МК изменение хода движения двигателя и его скорости;

d. Электропитание МК и драйверов;

е. Кварцевый резонатор осуществляет стабилизацию частоты генератора.

2.3 Аппаратные средства микроконтроллеров серии AT90S2313

В ТЗ на проектирование задан микроконтроллер типа AT90S2313 фирмы Atmel.

AT90S2313 - 8 - ми разрядный AVR® микроконтроллер с 2 Кбайт Flash памятью с поддержкой внутрисистемного программирования

Отличительные особенности: AVR® - высокая производительность и RISC архитектура с низким энергопотреблением

118 мощных инструкций - большинство из них выполняются за один такт

2 Кбайт Flash - памяти с поддержкой внутрисистемного программирования

SPI - последовательный интерфейс для загрузки программного кода

Ресурс: 1000 циклов записи/ стирания

128 байта EEPROM: Ресурс: 100 000 циклов запись/ стирание

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

15 программируемых линий I/O

Питание VCC: от 2.7 В до 6.0 В

Полностью статический режим работы: От 0 до 10 МГЦ, при питании от 4.0 В до 6.0 В

От 0 до 4 МГЦ, при питании от 2.7 В до 6.0 В

Производительность, вплоть до 10 MIPS при 10 МГЦ

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

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

Полнодуплексный UART

Выбираемые 8, 9, или 10-ти разрядные режимы широтно-импульсной модуляции (ШИМ)

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

Программируемый следящий таймер с встроенным тактовым генератором

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

Экономичные режимы ожидания и пониженного энергопотребления

Программируемая блокировка для безопасности программного обеспечения

Расположение выводов AT90S2313 (Рисунок 2.2).

Рисунок 2.2 - Расположение выводов микроконтроллера AT90S2313

Блок - схема AT90S2313 представлена на рисунке 2.3.

AT90S2313 является 8-ми разрядным CMOS микроконтроллером с низким энергопотреблением, основанным на усовершенствованной AVR RISC архитектуре.

Рисунок 2.3 - Структурная схема микроконтроллера AT90S2313

Благодаря выполнению высокопроизводительных инструкций за один период тактового сигнала, AT90S2313 достигает производительности, приближающейся к уровню 1 MIPS на МГЦ, обеспечивая разработчику возможность оптимизировать уровень энергопотребления в соответствии с необходимой вычислительной производительностью.

Ядро AVR содержит мощный набор инструкций и 32 рабочих регистра общего назначения. Все 32 регистра напрямую подключены к арифметико - логическому устройству (АЛУ), что обеспечивает доступ к двум независимым регистрам при выполнении одной инструкции за один такт. В результате, данная архитектура имеет более высокую эффективность кода, при повышении пропускной способности, вплоть до 10 раз, по сравнению со стандартными микроконтроллерами CISC.

AT90S2313 имеет: 2 Кбайт Flash - памяти с поддержкой внутрисистемного программирования, 128 байт EEPROM, 15 линий I/O общего назначения, 32 рабочих регистра общего назначения, универсальные таймеры/ счетчики с режимами сравнения, внутренние и внешние прерывания, программируемый UART последовательного типа, программируемый следящий таймер с встроенным тактовым генератором и программируемый последовательный порт SPI для загрузки программ в Flash память, а также, два программно выбираемых режима экономии энергопотребления. Режим ожидания «Idle Mode» останавливает CPU, но позволяет функционировать SRAM, таймеру/ счетчикам, SPI порту и системе прерываний. Режим экономии энергопотребления «Power Down» сохраняет значения регистров, но останавливает тактовый генератор, отключая все остальные функции микроконтроллера, вплоть до следующего внешнего прерывания, или до аппаратной инициализации.

Устройство производится с применением технологи энергонезависимой памяти с высокой плотностью размещения, разработанной в корпорации Atmel. Встроенная Flash - память с поддержкой внутрисистемного программирования обеспечивает возможность перепрограммирования программного кода в составе системы, посредством SPI последовательного интерфейса, или с помощью стандартного программатора энергонезависимой памяти. Благодаря совмещению усовершенствованного 8-ми разрядного RISC CPU с Flash - памятью с поддержкой внутрисистемного программирования на одном кристалле получился высокопроизводительный микроконтроллер AT90S2313, обеспечивающий гибкое и экономически - высокоэффективное решение для многих приложений встраиваемых систем управления.

AVR AT90S2313 поддерживается полным набором программ и пакетов для разработки, включая: компиляторы С, макроассемблеры, отладчики/ симуляторы программ, внутрисхемные эмуляторы и наборы для макетирования.

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

Функциональная схема контролера шагового двигателя робота изображена на рисунке 2.4.

U

Рисунок 2.4 - Функциональная схема контролера шагового двигателя робота

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

Рисунок 2.5 - Основной алгоритм контролера шагового двигателя робота

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

Главной задачей программы является формирование импульсных последовательностей для 4-х обмоток двигателя. Поскольку для этих последовательностей временные соотношения являются критичными, формирование выполняется в обработчике прерывания таймера 0. Можно сказать, основную работу программа делает именно в этом обработчике. Алгоритм работы обработчика приведен на рисунке 2.5.

Несомненно, было бы удобнее использовать таймер 1, так как он 16-разрядный и способен вызывать периодические прерывания по совпадению с автоматическим обнулением. Однако он занят формированием с помощью ШИМ опорного напряжения для компараторов. Поэтому приходится перезагружать таймер 0 в прерывании, что требует некоторой корректировки загружаемой величины и вызывает некоторый джиттер, который, однако, на практике не мешает. В качестве основной временной базы выбран интервал 25 мкс, который и формируется таймером. С такой дискретностью могут формироваться временные последовательности фаз, такой же период имеет и ШИМ стабилизации тока в фазах двигателя.

Для формирования периода повторения шагов используется программный 16-разрядный таймер STCNT. В отличие от таймера 0, его загрузочная величина не является константой, так как именно она определяет скорость вращения двигателя. Таким образом, переключение фаз происходит только при переполнении программного таймера.

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

Самая «главная» переменная в программе - это 24-битная знаковая переменная VC, которая содержит значение текущей скорости. Знак этой переменной определяет направление вращения, а значение - частоту следования шагов. Нулевое значение этой переменной говорит о том, что двигатель остановлен. Программа в этом случае выключает ток всех фаз, хотя во многих приложениях в этой ситуации требуется оставить включенными текущие фазы и лишь несколько уменьшить их ток, обеспечив этим удержание положения двигателя. При необходимости такое изменение логики работы программы сделать очень просто.

Таким образом, в случае переполнения программного таймера STCNT происходит анализ значения переменной VC, в случае положительного значения указатель PHASE инкрементируется, а в случае отрицательного - декрементируется. Затем из таблицы выбирается очередная комбинация фаз, которая выводится в порт. В случае нулевого значения VC указатель PHASE не изменяется, и в порт выводятся все нулевые значения.

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

Для осуществления ШИМ-стабилизации тока фазы должны периодически включаться, а затем, при достижении током заданного уровня, выключаться. Периодическое включение производится в прерывании таймера 0, для чего даже в случае отсутствия переполнения программного таймера STCNT в порт выводится текущая комбинация фаз. Происходит это с периодом 25 мкс (что соответствует частоте ШИМ 40КГЦ). Выключением фаз управляют компараторы, выходы которых подключены к входам прерывания INT0 и INT1. Прерывания разрешаются после того, как ток фаз включается, и запрещаются сразу после переключения компараторов. Это исключает их повторную обработку. В обработчиках прерываний происходит только отключение соответствующих фаз (рисунок 2.6).

Рисунок 2.6 - Блок-схема обработчика прерываний INT0 и INT1

Процессы, происходящие при ШИМ-стабилизации тока, показаны на рисунке 2.7. Особо следует отметить, что ток в датчике тока имеет прерывистый характер даже в том случае, если ток обмотки не прерывается. Это связано тем, что во время спада тока его путь не проходит через датчик тока (а проходит через диод).

Рисунок 2.7 - Процесс ШИМ-стабилизации тока

Аналоговая часть системы ШИМ-стабилизации тока фаз двигателя является довольно «капризной». Дело в том, что сигнал, снимаемый с датчика тока, содержит большое количество помех. Помехи возникают в основном в моменты коммутации обмоток двигателя, причем как «своей», так и «чужой» фазы.

В данной программе периодичность вычисления новых значений скорости и периода выбрана равной 15.625 мс. Такое значение выбрано не случайно. Этот интервал составляет 1/64с, а главное, он содержит целое число периодов переполнения таймера 0 (25 мкс). Удобно, если значения скорости и ускорения задаются в естественных единицах, т.е. в шагах в секунду и в шагах, деленных на секунду в квадрате. Для того чтобы иметь возможность в целочисленной арифметике вычислять мгновенную скорость 64 раза в секунду, нужно перейти к внутреннему представлению скорости, увеличенному в 64 раза. Умножение и деление на 64 сводится к обычным сдвигам и поэтому требует очень мало времени. Заданную периодичность вычислений обеспечивает еще один программный таймер URCNT, который декрементируется в прерывании таймера 0 (раз в 25 мкс). Этот таймер всегда загружается постоянной величиной, что обеспечивает неизменный период его переполнений, равный 15.625 мс. При переполнении этого таймера устанавливается битовый флаг UPD, который сигнализирует основной программе, что «пора бы обновить значения скорости и периода».

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

Рисунок 2.8 - Блок-схема основного цикла программы

Обновление значений скорости и периода следования шагов основная программа делает периодически, периодичность задается флагом UPD. Обновление программа делает на основе сравнения значений двух переменных: мгновенной скорости VC и требуемой скорости VR.

Значение требуемой скорости также определяется в основной программе. Это делается на основе анализа управляющих сигналов и сигналов с концевых выключателей. В зависимости от этих сигналов, основная программа загружает переменную VR значением требуемой скорости. В данной программе это V для движения вперед, - V для движения назад и 0 для остановки. В общем случае, набор скоростей (а также ускорений и токов фаз) может быть сколь угодно большим, в зависимости от требований.

Если скорости VC и VR равны, значит, шаговый двигатель работает в стационарном режиме и обновления не требуется. Если же скорости не равны, то значение VC с заданным ускорением приближается к VR, т.е. двигатель ускоряется (или замедляется) до достижения номинальной скорости. В случае, когда даже знаки VR и VC отличаются, двигатель замедляется, реверсируется и потом достигает требуемой скорости. Происходит это как бы само собой, благодаря структуре программы.

Если при очередной проверке обнаруживается, что скорости VR и VC не равны, то к значению VC прибавляется (или вычитается) значение ускорения A. Если в результате этой операции происходит превышение требуемой скорости, то полученное значение корректируется путем замены на точное значение требуемой скорости.

Затем происходит вычисление периода T (рисунок 2.9).

Рисунок 2.9 - Блок-схема подпрограммы вычисления периода

Вначале вычисляется модуль текущей скорости. Затем происходит ограничение минимальной скорости. Это ограничение необходимо по двум причинам. Во-первых, бесконечно малой скорости соответствует бесконечно большой период, что вызовет ошибку в вычислениях. Во-вторых, шаговые двигатели имеют довольно протяженную по скорости зону старта, поэтому нет необходимости стартовать на очень маленькой скорости, тем более что вращение на малых скоростях вызывает повышенный шум и вибрацию. Значение минимальной скорости VMIN должно выбираться исходя из конкретной задачи и типа двигателя. После ограничения минимальной скорости производится вычисление периода по формуле T = 2560000/|VC|. На первый взгляд формула не очевидна, но если учесть, что период необходимо получить в 25 мкс-интервалах, а внутреннее представление VC - это умноженное на 64 ее истинное значение, то все становится на свои места. При вычислении T требуется операция беззнакового деления формата 24/24, которое AVR на тактовой частоте 10МГЦ делает примерно за 70 мкс. Учитывая, что вычисления периода происходят не чаще, чем один раз в 15.625 мс, загрузка процессора получается очень низкой. Основную загрузку производит прерывание таймера 0, да и оно в основном выполняется по короткой ветке (без переполнения STCNT) длительностью примерно 3 мкс, что соответствует 12%-й загрузке процессора. Это означает, что имеются значительные резервы вычислительных ресурсов.

2.7 Выбор элементной базы

Основой устройства является микроконтроллер U1 типа AT90S2313 фирмы Atmel. Сигналы управления обмотками двигателя формируются на портах PB4 - PB7 программно. Для коммутации обмоток используются по два включенных параллельно полевых транзистора типа КП505А, всего 8 транзисторов (VT1 - VT8). Эти транзисторы имеют корпус TO-92 и могут коммутировать ток до 1.4А, сопротивление канала составляет около 0.3 ома. Для того, чтобы транзисторы оставались закрытыми во время действия сигнала «сброс» микроконтроллера (порты в это время находятся в высокоимпедансном состоянии), между затворами и истоками включены резисторы R11 - R14. Для ограничения тока перезарядки емкости затворов установлены резисторы R6 - R9. Данный контроллер не претендует на высокие скоростные характеристики, поэтому вполне устраивает медленный спад тока фаз, который обеспечивается шунтированием обмоток двигателя диодами VD2 - VD5. Для подключения шагового двигателя имеется 8-контактный разъем XP3, который позволяет подключить двигатель, имеющий два отдельных вывода от каждой обмотки (как, например, ДШИ-200). Для двигателей с внутренним соединением обмоток один или два общих контакта разъема останутся свободными.

Необходимо отметить, что контроллер может быть использован для управления двигателем с большим средним током фаз. Для этого только необходимо заменить транзисторы VT1 - VT8 и диоды VD2 - VD5 более мощными. Причем в этом случае параллельное включение транзисторов можно не использовать. Наиболее подходящими являются МОП-транзисторы, управляемые логическим уровнем. Например, это КП723Г, КП727В и другие.

Стабилизация тока осуществляется с помощью ШИМ, которая тоже реализована программно. Для этого используются два датчика тока R15 и R16. Сигналы, снятые с датчиков тока, через ФНЧ R17C8 и R18C9 поступают на входы компараторов U3A и U3B. ФНЧ предотвращают ложные срабатывания компараторов вследствие действия помех. На второй вход каждого компаратора должно быть подано опорное напряжение, которое и определяет пиковый ток в обмотках двигателя. Это напряжение формируется микроконтроллером с помощью встроенного таймера, работающего в режиме 8-битной ШИМ. Для фильтрации сигнала ШИМ используется двухзвенный ФНЧ R19C10R22C11. Одновременно резисторы R19, R22 и R23 образуют делитель, который задает масштаб регулировки токов фаз. В данном случае максимальный пиковый ток, соответствующий коду 255, выбран 5.11А, что соответствует напряжению 0.511В на датчиках тока. Учитывая тот факт, что постоянная составляющая на выходе ШИМ меняется от 0 до 5В, необходимый коэффициент деления равен примерно 9.7. Выходы компараторов подключены к входам прерываний микроконтроллера INT0 и INT1.

Для управления работой двигателя имеются два логических входа: FWD (вперед) и REW (назад), подключенных к разъему XP1. При подаче «низкого» логического уровня на один из этих входов, двигатель начинает вращаться на заданной минимальной скорости, постепенно разгоняется с заданным постоянным ускорением. Разгон завершается, когда двигатель достигает заданной рабочей скорости. Если подается команда изменения направления вращения, двигатель с тем же ускорением тормозится, затем реверсируется и снова разгоняется.

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

Командные входы и входы концевых выключателей защищены от перенапряжений цепочками R1VD6, R2VD7, R3VD8 и R4VD9, состоящими из резистора и стабилитрона.

Питание микроконтроллера формируется с помощью микросхемы стабилизатора 78LR05, которая одновременно выполняет функции монитора питания. При понижении напряжения питания ниже установленного порога эта микросхема формирует для микроконтроллера сигнал «сброс». Питание на стабилизатор подается через диод VD1, который вместе с конденсатором C6 уменьшает пульсации, вызванные коммутациями относительно мощной нагрузки, которой является шаговый двигатель. Питание на плату подается через 4-контактный разъем XP4, контакты которого задублированы.

2.8 Разработка схемы электрической принципиальной

Принципиальная схема контролера шагового двигателя робота выполнена в САПР Accel Eda (Рисунок 2.10).

Рисунок 2.10 - Принципиальная схема контролера шагового двигателя робота в Accel EDA

3. Технико-экономическое обоснование объекта разработки

В данном разделе проводится технико-экономический расчет стоимости контроллера шагового двигателя робота.

Стоимость устройства будет состоять из стоимости разработки ПО для микроконтроллера, стоимости разработки конструкторской документации (КД) и стоимости сборки и испытания устройства.

3.1 Расчет расходов на ПО, которое разрабатывается

Исходные данные для расчета стоимости разработки ПО, которое разрабатывается приведены в таблице 3.1.

Таблица 3.1 - Исходные данные по предприятию

№п/п Статьи затрат Усл. обоз. Ед. изм. Значения

Проектирование и разработка ПО

1 Часовая тарифная ставка программиста Зпр грн. 8,00

2 Коэффициент сложности программы с коэф. 1,40

3 Коэффициент коррекции программы Р коэф. 0,05

4 Коэффициент увеличения расходов труда Z коэф. 1,3

5 Коэффициент квалификации программиста k коэф. 1,0

6 Амортизационные отчисления Амт % 10,0

7 Мощность компьютера, принтера WM Квт/ч 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) где у - расчетное количество операторов в программе, что разрабатывается (единиц);

с - коэффициент сложности программы;

р - коэффициент коррекции программы в ходе ее разработки.

Рассчитанное количество операторов в разработанной программе - 200.

Коэффициент с - относительная сложность задания относительно отношения к типичной задаче, сложность которой принята более 1, лежит в границах от 1,25 до 2,0 и выбирается равным 1,30.

Коэффициент коррекции программы р - увеличение объема работ за счет внесения изменений в программу лежит в границах от 0,05 до 0,1 и выбирается равным 0,05.

Подставим выбранные значения в формулу (3.1) и определим величину Q: Q = 200•1,3 (1 0,05) = 273.

3.2 Расчет расходов на создание ПО

Расчет расходов на ПО проводится методом калькуляции расходов, в основу которого положена трудоемкость и заработная плата разработчиков. Трудоемкость разработки ПО рассчитывается по формуле: (3.2) где То - расходы труда на описание задания;

Ти - расходы труда на изучение описания задания;

Та - расходы труда на разработку алг

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?