Файл: Техническую документацию по выбранному.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.10.2024

Просмотров: 2

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Липецкий государственный технический университет

Факультет автоматизации и информатики

Кафедра автоматизированных систем управления

Индивидуальное домашнее задание

по дисциплине Архитектура вычислительных систем

«Разработка вычислительной системы на основе определенного процессора»


Студент

Группа ПИ-20-2



Арнаутов М. С.

Руководитель




Болдырихин О. В.


Липецк 2022 г.

Задание кафедры

Изучить материал по теме: техническую документацию по выбранному

процессору, периодическую, учебную и другую литературу.

Выбрать необходимые дополнительные элементы для данного процессора для реализации вычислительной системы.

Создать схему вычислительной системы в программе Proteus.

Разработать управляющую программу для данной вычислительной системы.

Запустить, протестировать и отладить систему, исследовать ее работу.

Управление электродвигателем постоянного тока с помощью микроконтроллера ATmega 32.

Ход работы

Схема созданной системы представлена на рисунке 1.



Рисунок 1 – Разработанная система

Спецификация элементов схемы представлена в таблице 1.

Таблица 1 – Спецификация схемы



Обозначение

Элемент

Количество

1

MC

ATmega32 микроконтроллер

1

2

DTFF

Триггер (flip-flop) D-типа с прямым и инверсным выходами.

2

3

SSeg

Семисегментный двоично-десятичный индикатор

2

4

CLOCK

Генератор тактовых импульсов

2

5

ELECTRIC MOTOR

Электродвигатель постоянного тока

1


Описание элементов:

ATmega32 микроконтроллер

AVR – представляет собой 8-разрядный микроконтроллер общего назначения c RISC-ядром.

Кристаллы AVR имеют «на борту» Flash-память программ, память данных EEPROM и SRAM, порты ввода-вывода и типовые для 8-битных микроконтроллеров периферийные устройства. Некоторые серии кристаллов содержат блок LCD, интерфейсы CAN и USB.

Гарвардская архитектура AVR в сочетании с одноуровневым конвейером обеспечивает производительность 1MIPS на 1МГц. В отличие от «классической» архитектуры 8051, платформа AVR содержит регистровый файл из 32 регистров общего назначения, что существенно повышает скорость пересылки данных при работе программы.

AVR-архитектура, на основе которой построены микроконтроллеры семейства, объединяет мощный гарвардский RISC-процессор с раздельным доступом к памяти программ и данных, 32 регистра общего назначения, каждый из которых может работать как регистр-аккумулятор, и развитую систему команд фиксированной 16-бит длины. Большинство команд выполняются за один машинный такт с одновременным исполнением текущей и выборкой следующей команды, что обеспечивает производительность до 1 MIPS на каждый МГц тактовой частоты.

32 регистра общего назначения образуют регистровый файл быстрого доступа, где каждый регистр напрямую связан с АЛУ. За один такт из регистрового файла выбираются два операнда, выполняется операция, и результат возвращается в регистровый файл. АЛУ поддерживает арифметические и логические операции с регистрами, между регистром и константой или непосредственно с регистром.

Регистровый файл также доступен как часть памяти данных. 6 из 32-х регистров могут использоваться как три 16-разрядных регистра-указателя для косвенной адресации. Старшие микроконтроллеры семейства AVR имеют в составе АЛУ аппаратный умножитель.

Базовый набор команд AVR содержит 120 инструкций. Инструкции битовых операций включают инструкции установки, очистки и тестирования битов.

Все микроконтроллеры AVR имеют встроенную FLASH ROM с возможностью внутрисхемного программирования через последовательный 4-проводной интерфейс.

Периферия МК AVR включает: таймеры-счётчики, широтно-импульсные модуляторы, поддержку внешних прерываний, аналоговые компараторы, 10-разрядный 8-канальный АЦП, параллельные порты (от 3 до 48 линий ввода и вывода), интерфейсы UART и SPI, сторожевой таймер и устройство сброса по включению питания. Все эти качества превращают AVR-микроконтроллеры в мощный инструмент для построения современных, высокопроизводительных и экономичных контроллеров различного назначения.



В рамках единой базовой архитектуры AVR-микроконтроллеры подразделяются на три подсемейства:

  • Classic AVR — основная линия микроконтроллеров с производительностью отдельных модификаций до 16 MIPS, FLASH ROM программ 2–8 Кбайт, ЕEPROM данных 64–512 байт, SRAM 128–512 байт;

  • mega AVR с производительностью 1–16 MIPS для сложных приложений, требующих большого обьёма памяти, FLASH ROM программ 4–128 Кбайт, ЕEPROM данных 64–512 байт, SRAM 2–4 Кбайт, SRAM 4 Кбайт, встроенный 10-разрядный 8-канальный АЦП, аппаратный умножитель 8x8;

  • tiny AVR — низкостоимостные микроконтроллеры в 8-выводном исполнении имеют встроенную схему контроля напряжения питания, что позволяет обойтись без внешних супервизорных микросхем.

AVR-микроконтроллеры поддерживают спящий режим и режим микропотребления. В спящем режиме останавливается центральное процессорное ядро, в то время как регистры, таймеры-счётчики, сторожевой таймер и система прерываний продолжают функционировать. В режиме микропотребления сохраняется содержимое всех регистров, останавливается тактовый генератор, запрещаются все функции микроконтроллера, пока не поступит сигнал внешнего прерывания или аппаратного сброса. В зависимости от модели, AVR-микроконтроллеры работают в диапазоне напряжений 2,7–6В либо 4–6В (исключение составляет ATtiny12V с напряжением питания 1,2 В).

Средства отладки. ATMEL предлагает программную среду AVR-studio для отладки программ в режиме симуляции на программном отладчике, а также для работы непосредственно с внутрисхемным эмулятором. AVR-studio доступен с WEB-страницы ATMEL, содержит ассемблер и предназначен для работы с эмуляторами ICEPRO и MegaICE. Ряд компаний предлагают свои версии Си-компиляторов, ассемблеров, линковщиков и загрузчиков для работы с микроконтроллерами семейства AVR. Как и продукция MICROCHIP, микроконтроллеры ATMEL широко применяются в России и, как следствие, программируются многими отечественными программаторами. Ряд российских фирм предлагает также различные аппаратные средства отладки AVR-микроконтроллеров.

Структурная схема AVR микроконтроллера представлена на рисунке 2.



Рисунок 2 – Структурная схема

Блоки на схеме:

  • JTAG Interface (Joint Test Action Group Interface) - интерфейс внутрисхемной отладки (4 провода);

  • FLASH - перепрограммируемая память для сохранения программы;

  • Serial Peripheral Interface, SPI - последовательный периферийный интерфейс (3 провода);

  • EEPROM (Electrically Erasable Programmable Read-Only Memory) - перепрограммируемое ПЗУ, энергонезависимая память;

  • CPU (ЦПУ) - центральный процессор управления, сердце микроконтроллера, 8-битное микропроцессорное ядро;

  • ALU (АЛУ) - арифметико-логическое устройство, основа блока CPU;

  • RAM (Random Access Memory) - оперативная память процессора;

  • Program Counter - счетчик команд;

  • 32 General Purpose Registers - 32 регистра общего назначения;

  • Instruction Register - регистр команд, инструкций;

  • Instruction Decoder - декодер команд;

  • OCD (On-Chip Debugger) - блок внутренней отладки;

  • Analog Comparator - аналоговый компаратор, блок сравнения аналоговых сигналов;

  • A/D Converter (Analog/Digital converter) - аналогово-цифровой преобразователь;

  • LCD Interface (Liquid-Crystal Display Interface) - интерфейс для подключения жидко-кристаллического дисплея, индикатора;

  • USART (Universal Asynchronous Receiver-Transmitter), UART - универсальный асинхронный приемопередатчик;

  • TWI (Two-Wire serial Interface) - последовательный интерфейс с двухпроводным подключением;

  • Watchdog Timer - сторожевой или контрольный таймер;

  • I/O Ports - порты вода/вывода;

  • Interrupts - блок управления и реакции на прерывания;

  • Timers/Counters - модули таймеров и счетчиков.


Микроконтроллеры AVR имеют систему сокращенного набора команд RISC, хотя целиком и не полностью попадают под это определение.

Система RISC подразумевает полную симметрию между ресурсами памяти разного типа. Это, в частности, позволяет обращаться к регистрам, портам и памяти данных одними и теми же командами, что и обуславливает их небольшое количество. Однако, несмотря на то, что адресное пространство памяти AVR действительно непрерывно, всё же три разных его области используются только для своих специфических целей. РОН – преимущественно для математических операций, РВВ – для управления процессором, ОЗУ – только как хранилище информации. В связи с этим существуют группы команд как для работы с каждым видом памяти в отдельности, так и для пересылки данных из одной области памяти в другую. Поэтому и количество команд AVR достаточно велико. В фирменной документации, где много говорится про ортогональность ядра, в первую очередь имеется в виду полная равноправность именно РОН.

Большинство команд ассемблера используют различные ячейки памяти микроконтроллера и, соответственно, содержат кроме кода операции (КОП) также их адреса. В зависимости от того в каком виде в команде хранится адрес различают два способа адресации: прямую и косвенную. В первом случае адрес ячейки задан явно, а во-втором он находится в одном из регистров-указателей (у AVR это 16-разрядные регистры X,Y,Z). У микропроцессоров различного типа, оба способа адресации могут иметь множество вариаций.

Семисегментный двоично-десятичный индикатор

Индикатор представляет собой обычный 7-сегментный индикатор со встроенным дешифратором BCD-7Seg.

7-сегментные цифровые индикаторы – устройства, состоящие из 7 светодиодов, которые установлены в форме цифры 8. С помощью зажигания отдельных сегментов отображаются цифры от 0 до 9, а также некоторые буквы (обычно латинского алфавита).

Триггер (flip-flop) D-типа с прямым и инверсным выходами.

При появлении активного фронта (переход из 0 в 1) на входе CLK, сигнал на входе D фиксируется на выходе Q. Активный фронт можно изменить, применив свойство INVERT=CLK. Асинхронный вход SET (активный уровень 1) устанавливает триггер в состояние 1, а асинхронный вход RESET (активный уровень 1) сбрасывает триггер в состояние 0.


Описание работы и устройства системы.

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

Изменение направления вращения происходит без участия микроконтроллера. Схема элемента CMUX 2:1, отвечающего за направление вращения, представлена на рисунке 3.



Рисунок 3 – Элемент CMUX

Демонстрация работы приведена на рисунках 4-6.



Рисунок 3 – Увеличение скорости вращения



Рисунок 4 – Уменьшение скорости вращения



Рисунок 5 – Изменение направления и увеличение скорости вращения

Вывод

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

Приложение А

Код управляющей программы

.equ TCCR0Config = 0b01100110
.equ PortBDDR = 0b00001000
.equ LoopDelayA = 255

.equ LoopDelayB = 12
.include "m32def.inc"
.org 0

rjmp start
.org $0050

start:

ldi r16, $FF

out ddra, r16

out ddrd, r16

ldi r16, PortBDDR

out ddrb, r16

ldi r16, $FC

out ddrc, r16

ldi r16, 0

out TCNT0, r16

ldi r16, 0

out OCR0, r16

ldi r16, TCCR0Config

out TCCR0, r16

InfLoop:

IncCheck:

SBIS pinc, 0

rjmp DecCheck
in r25, OCR0

cpi r25, 255

brsh DecCheck

inc r25

out ocr0, r25
rjmp delay

DecCheck:

SBIS pinc, 1

rjmp Delay
in r26, OCR0

cpi r26, 1

brlo Delay

dec r26

out ocr0, r26

Delay:

in r17, OCR0

out portd, r17

ldi r18, 0

ldi r19, 0

CounterLoop:

inc r18

cpi r18, LoopDelayA

brsh CounterLoop2

rjmp CounterLoop

CounterLoop2:

ldi r18, 0

inc r19

cpi r19, LoopDelayB

brsh InfLoop

rjmp CounterLoop
rjmp InfLoop