Скачать 0.82 Mb.
|
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%-й загрузке процессора. Это означает, что имеются значительные резервы вычислительных ресурсов. |
Программа «Task Manager» Пояснительная записка к курсовой работе содержит 35 страниц, 6 рисунков, 1 таблицу, 3 использованных источника, 2 приложения |
Пояснительная записка к курсовой работе по дисциплине «Языки программирования» Пояснительная записка к курсовой работе содержит 67 страниц, 7 источников литературы, 15 рисунков, 6 приложений и 1 таблицу |
||
Пояснительная записка дипломного проекта на тему «Реконструкция бойлерных... Пояснительная записка дипломного проекта на тему «Реконструкция бойлерных установок отэц-1 с применением пластинчатых подогревателей»... |
Реферат Расчетно-пояснительная записка содержит: 86 листов, 41 таблицу,... Спроектирована линия по производству хлеба ржаного из сеяной муки, массой 7 кг, производительностью 4 т/сутки |
||
Реферат Отчет содержит 147 страниц, 29 рисунков, 8 таблиц, 21 источник, 7 приложений Ключевые слова: управление правами доступа, информационные ресурсы, бизнес-процессы, угроза безопасности информации, ролевая модель... |
Пояснительная записка к курсовой работе по дисциплине «Информационные системы и технологии» Пояснительная записка содержит 25 страниц, 3 изображения, 3 источника, 2 приложения |
||
Пояснительная записка к дипломному проекту На тему: Разработка информационно-обучающего... Московский Институт Электроники и Математики Национального Исследовательского Университета «Высшая Школа Экономики» |
Пояснительная записка к дипломному проекту дп. Эжт. 190401. Пз Расчет уставок релейных защит фидера контактной сети тягово подстанции эчэ-58 Заудинск |
||
Пояснительная записка к дипломному проекту На тему: ≪Разработка виртуального... На тему: ≪Разработка виртуального стенда для изучения методик построения vpn соединений≫ |
Реферат Отчет содержит: листов 89, рисунков 13, приложений 2, таблиц 8 Ключевые слова: электронный журнал, информация, данные, интерфейс, программное средство, сайт, успеваемость, посещаемость |
||
Дипломная работа по маркетингу: страшщ, 10 рисунков, 16 таблиц, источников.... Цель работы рассмотрение и анализ ассортиментной политики предприятия в условиях рынка |
Пояснительная записка к дипломному проекту Разработка процессов системы... Разработка процессов системы менеджмента качества ОАО «xxx» применительно к производству фильтроэлементов воздушных для двигателей... |
||
Дипломному проекту На тему: Разработка программно-аппаратного комплекса... |
Пояснительная записка Робототехника увлекательное занятие в любом... И совсем не обязательно быть инженером, чтобы создать робота. Собрать робота из конструктора Lego Mindstorms nxt самостоятельно может... |
||
Курсовая работа представляет собой четко и кратко изложенное решение... Разрешается выполнение пояснительной записки на компьютере с использованием Microsoft Word, Microsoft Excel, Microsoft Visio, формулы... |
Отчет по электромонтажной практике Студент гр. 44Б Отчет по электромонтажной практике содержит 30 страниц, 6 рисунков, 2 схемы, 6 источника |
Поиск |