Устройство управления шаговым двигателем на микроконтроллере
Реферат
По предмету
«Цифровые устройства»
Тема
«Устройство управления шаговым двигателем на микроконтроллере»
Содержание
Введение
. Разработка структурной схемы
устройства
. Выбор элементной базы
. Схемы электрическая принципиальная
. Разработка программного
обеспечения
Заключение
Список литературы
Введение
Последние годы отмечены массовым наполнением
рынка всевозможной автоматизированной аппаратурой самого различного назначения
и самой различной сложности от пластиковой платежной карточки до холодильника,
автомобиля и сложнейших установок. Это стало возможным благодаря
микроконтроллерам (МК). Микроконтроллеры входят во все сферы жизнедеятельности
человека, их насыщенность в нашем окружении растет из года в год.
Фирмы производящие микроконтроллеры ATMEL,INTEL,ZILOG,MICROCHIP,
АНГСТРЕМ, scenix, кажется
можно продолжать бесконечно. Каждая из перечисленных фирм кроме АНГСТРЕМ имеет
более 100 видов различных по назначению микроконтроллеров, а каждый
микроконтроллер не менее 200 страниц технических описаний и характеристик плюс
к этому на английском языке, кроме АНГСТРЕМ. Выбери свой девиз современного
общества.
Средства разработки программного обеспечения для
микроконтроллеров у каждой фирмы свое, а что касается языков программирования
конечно ассемблер самый старый, также программируются на языках: C,
PASCAL, JAVA,
DELPHI,C++,
+TURBO,+VISUAL.
Вернемся к теме "в одном корпусе"
раньше К155ХХ 50 штук а сейчас ATtiny2313
и просто в подарок ПЗУ, ОЗУ, таймер, система прерываний, аналогово-цифравой преобразователь,
встроенный генератор, корпус с 20 ножками и т.д.
1.Разработка структурной схемы устройства
Структурная схема таймера на микропроцессоре
приведена на рисунке 1. Она состоит из 4 основных блоков. Тактовый генератор
предназначен для генерации прямоугольных импульсов частотой 4 Мгц для
тактирования микропроцессора и программируемого таймера . Микропроцес-
.Выбор элементной базы
Данное устройство может быть выполнено на разной
элементной базе включая микросхемы серии 155,176,561 также различные
микропроцессорные комплекты 580,1816,1830 и на специализированных микросхемах
например 1901 что предпочтительней с экономической точки зрения т.к в их состав
входят контроллер клавиатуры и дисплея тактовый генератор, устройство
управления, таймер и многое другое необходимое для электронных часов и
таймеров. В данной работе в учебных целях это устройство будет разработано на
микроконтроллере фирмы ATMEL.
ATtiny2313 -
низкопотребляющий 8 битный КМОП микроконтроллер с AVR
RISC архитектурой. Выполняя
команды за один цикл, ATtiny2313
достигает производительности 1 MIPS
при частоте задающего генератора 1 МГц, что позволяет разработчику
оптимизировать отношение потребления к производительности.
AVR ядро
объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все
32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ),
что позволяет получить доступ к двум независимым регистрам при выполнении одной
команды. В результате эта архитектура позволяет обеспечить в десятки раз
большую производительность, чем стандартная CISC
архитектура.
ATtiny2313 имеет
следующие характеристики: 2 КБ программируемой в системе Flash
память программы, 128 байтную EEPROM
память данных, 128 байтное SRAM
(статическое ОЗУ), 18 линий ввода - вывода общего применения, 32 рабочих
регистра общего назначения, однопроводный интерфейс для встроенного отладчика,
два гибких таймера/счетчика со схемами сравнения, внутренние и внешние
источники прерывания, последовательный программируемый USART,
универсальный последовательный интерфейс с детектором стартового условия,
программируемый сторожевой таймер со встроенным генератором и три программно
инициализируемых режима пониженного потребления. В режиме Idle
останавливается ядро, но ОЗУ, таймеры/счетчики и система прерываний продолжают
функционировать. В режиме Power-down
регистры сохраняют свое значение, но генератор останавливается, блокируя все
функции прибора до следующего прерывания или аппаратного сброса. В Standby
режиме задающий генератор работает, в то время как остальная часть прибора
бездействует. Это позволяет очень быстро запустить микропроцессор, сохраняя при
этом в режиме бездействия мощность.
Прибор изготовлен по высокоплотной
энергонезависимой технологии изготовления памяти компании Atmel.
Встроенная ISP
Flash позволяет
перепрограммировать память программы в системе через последовательный SPI
интерфейс или обычным программатором энергонезависимой памяти. Объединив в
одном кристалле 8- битное RISC
ядро с самопрограммирующейся в системе Flash
памятью, ATtiny2313 стал
мощным микроконтроллером, который дает большую гибкость разработчика
микропроцессорных систем.
ATtiny2313
поддерживается различными программными средствами и интегрированными средствами
разработки, такими как компиляторы C,
макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и
ознакомительные наборы.
электрический программа переход
регистр
Рисунок 1. Структурная схема микроконтроллера ATtinny2313
Чтобы максимально ускорить работу и сделать
возможным параллельное выполнение нескольких операций, микроконтроллеры AVR
используют Гарвардскую архитектуру.
Рис. 2 - Блок-схема архитектуры AVR
Такая архитектура предусматривает отдельную
память и отдельную шину адреса как для программы, так и для данных.
Каждая команда из пяти программ выполняются за
один машинный цикл с использованием многоуровневой конвейерной обработки. В тот
момент, когда очередная команда выполняется, следующая команда считывается из
программной памяти. Такая концепция позволяет выполнять по одной команде за
один такт системного генератора. Программный сегмент памяти физически
представляет собой встроенную перепрограммируемую Flash-память.
Файл регистров быстрого доступа содержит 32
восьмиразрядных регистра общего назначения, доступ к которым осуществляется за
один такт системного генератора. Это позволяет арифметико-логическому
устройству (АЛУ) осуществлять большинство своих операций за один такт.
Типичная операция АЛУ выполняется следующим
образом: из регистрового файла читаются два операнда, выполняется операция.
Результат сохранения опять же в файле регистров. Все эти три действия
выполняются за один цикл тактового генератора.
Шесть из этих 32 регистраторов могут
использоваться как три 16-разрядных регистра-указателя косвенной адресации. Эти
сдвоенные регистры могут использоваться для адресации данных в адресном
пространстве ОЗУ. Такая организация даёт возможность программного вычисления
адреса.
Один из этих регистров-указателей может также
использоваться в качестве указателя адреса данных, размещённых в памяти
программ (Flash-памяти). Эти дополнительные составные 16-разрядные регистры
именуются X, Yи Z.
АЛУ поддерживает арифметические и логические
операции между двумя регистраторами или между константой и регистратором. В АЛУ
также могут выполняться операции с отдельными регистраторами. После каждой
арифметической операции обновляется регистр статуса для того, чтобы отразить
информацию о её результате.
Последовательность выполнения программы может
быть изменена командами условного и безусловного перехода, а также командой
вызова подпрограммы, в которых используется непосредственная адресация.
Большинство инструкций AVR представляет собой
одно 16-разрядное слово. Каждый адрес памяти программы содержит 16-битовую
инструкцию или половину 32-разрядной инструкции.
При выполнении процедуры обработки прерывания
или подпрограммы текущее значение счётчика команд (PC)сохраняется в стеке.
Стек фактически размещён в одном адресном
пространстве с памятью данных SRAM (ОЗУ) и, следовательно, размер стека
ограничен только размером SRAM и тем, какую часть SRAM использует остальная
программа.
Программа пользователя обязательно должна
инициализировать указатель стека (SP)сразу после сброса (прежде, чем будет
выполнена подпрограмма или будет вызвано прерывание). Указатель стека (SP)
имеет свой конкретный адрес в пространстве регистров ввода-вывода. К данным в
ОЗУ (SRAM) можно получить доступ, используя память различных способов
адресации, поддержанных архитектурой AVR.
Адресное пространство всех видов памяти в
архитектуре AVR являются регулярным линейным. Гибкий модуль прерываний имеет
ряд регистраторов управления в адресном пространстве регистров ввода-вывода и
дополнительный флаг глобального разрешения прерываний в регистре статуса.
Каждый вид прерывания имеет свой отдельный
вектор в таблице векторов прерываний. Прерывания имеют приоритет в соответствии
с их положением в таблице векторов прерываний. Чем ниже адрес вектора
прерывания, тем выше приоритет
Пространство регистров ввода-вывода содержит 64
адреса для регистров управления периферийными устройствами, регистров
управления режимами работы процессора и другими функциями ввода/вывода. К
любому регистру ввода-вывода можно получить доступ непосредственно по его
номеру или как к ячейке памяти данных. В адресном пространстве памяти данных
регистры ввода-вывода располагаются сразу после файла регистров общего
назначения (0x20 - 0x5F).
Описание выводов
VCC
|
Напряжение
питания
|
GND
|
Общий
провод
|
Port
A (РА2..РА0)
|
Порт
А - трехразрядный двунаправленный порт ввода-вывода. Каждая из линий порта
имеет возможность подключения внутреннего нагрузочного резистора.Подключение
резистора производится программным путем только в том случае, если данный
конкретный вывод находится в режиме ввода. Когда резистор подключен, он
создает выходной истекающий ток для внешних устройств, формирующих низкий
логический уровень. Выходной буфер каждой линии порта А имеет симметричный
каскад с высокой нагрузочной способностью.После системного сброса все выводы
порта А переходят в высокоимпендансное состояние (режим ввода без
нагрузочного резистора) даже в том случае, если системный генератор не
работает.Все выводы порта А, кроме своих основных функций, имеют также и
альтернативные.
|
Port
В (РВ7..РВ0)
|
Порт
В - восьмиразрядный двунаправленный порт ввода- вывода. Каждая из линий порта
имеет возможность подключения внутреннего нагрузочного резистора. Подключение
резистора производится программным путем только в том случае, если данный
конкретный вывод находится в режиме ввода. Когда резистор подключен, он
создает выходной истекающий ток для внешних устройств, формирующих низкий
логический уровень. Выходной буфер каждой линии порта А имеет симметричный
каскад с высокой нагрузочной способностью. После системного сброса все выводы
порта В переходят в высокоимпендансное состояние (режим ввода без
нагрузочного резистора) даже в том случае, если системный генератор не
работает. Все выводы порта В, кроме своих основных функций, имеют также и
альтернативные.
|
Port
D
(PD6..PD0)
|
Порт
D - семиразрядный двунаправленный порт ввода-вывода. Каждая из линий порта
имеет возможность подключения внутреннего нагрузочного резистора. Подключение
резистора производитсяпрограммным путем только в том случае, если данный
конкретный вывод находится в режиме ввода. Когда резистор подключен, он
создает выходной истекающий ток для внешних устройств, формирующих низкий
логический уровень. Выходной буфер каждой линии порта А имеет симметричный
каскад с высокой нагрузочной способностью. После системного сброса все выводы
порта D переходят в высокоимпендансное состояние (режим ввода без
нагрузочного резистора) даже в том случае, если системный генератор не
работает. Все выводы порта D, кроме своих основных функций, имеют также и
альтернативные.
|
RESET
|
Вход
сброса. Низкий уровень на этом входе с длительностью не меньше минимально
допустимого значения приведет к полному сбросу микро-контроллера даже в том
случае, когда не работает тактовый генератор. Более короткий импульс не
гарантирует нормального сброса. Вход сброса имеет альтернативные функции
линии РА2 и линии dW
|
XTAL1
|
Инвертирующий
вход для кварцевого резонатора, вход внешнего генератора. Вход XTAL1 имеет
альтернативную функцию. Он может использоваться как линия РАО
|
XTAL2
|
Выход
на внешний резонатор. Вывод XTAL2 имеет альтернативную функцию. Он может использоваться
как линия PAI
|
Также в устройстве будет использован
цифро-буквенный индикатор с высотой цифр 7,5 мм из семи сегментов с децимальной
точкой АЛС324А, его графическое изображение приведено на рисунке 4.
3.Схема электрическая
.Разработка программного обеспечения
При разработке и отладке программы
были использованы программы Proteus и AVRstudio.
#include
<p16F84A.inc>
; _CONFIG
_CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;***базовые значенияEQU 0xFF
;константа длительности задержкиEQU 0x0C ;переменная подпрограммы задержки0x00
;***начальная инициализацияPORTA
;очистить порт АPORTB ;и порт ВSTATUS,RP0 ;включили банк 1
movlw
INIT_APORTA ;настроили порт АINIT_B
movwf PORTB ;настроили порт
ВOPTION_REG,7 ;включили встроенную нагрузкуSTATUS,RP0 ;включили банк 0
clrwPORTBb'01010000
movwf PORTBdelay
;-------Вставляем сюда задержек,
столько - сколько надо, или модифицируем подпрограмму на более длинную задержку
call
delayb'01100000PORTB
call delay
;-------Вставляем сюда задержек,
столько - сколько надо, или модифицируем подпрограмму на более длинную задержку
call
delayb'10100000PORTB
call delay
;-------Вставляем сюда задержек,
столько - сколько надо, или модифицируем подпрограмму на более длинную задержку
call
delayb'10010000PORTB
call delay
;-------Вставляем сюда задержек,
столько - сколько надо, или модифицируем подпрограмму на более длинную
задержкуmain
;***подпрограмма формирования
задержки между шагами
delay movlw
delcountdecfsz count,floop
Заключение
По полученному заданию была
проделана работа в полном объеме, разработаны устройство управления углом поворота
шагового двигателя на микроконтроллере, написана программа для него. При
выполнении данной работы был получен ценный опыт разработки подобных устройств
получены навыки в разработке программ на языке ассемблер, также был закреплены
знания полученные на занятиях.
Список литературы
1.
Радиолюбитель 2007г.
.
А. В. Кравченко «10 практических устройств на AVR-микроконтроллерах»
Internet
- Ресурсы
<http://www.radiokot.ru>
<http://www.microchip.ru:8101/>
<http://www.paguo.ru/>
<http://www.disall.narod.ru/picpro.htm>
<http://www.chipnews.ru/html.cgi/arhiv/index.htm>
Микроконтроллеры.
Выпуск 2:
Однокристальные
микроконтроллеры PIC12c5x, PIC16x8x, PIC14000,