ИДЗ. Техническую документацию по выбранному
Скачать 0.5 Mb.
|
Липецкий государственный технический университет Факультет автоматизации и информатики Кафедра автоматизированных систем управления Индивидуальное домашнее задание по дисциплине Архитектура вычислительных систем «Разработка вычислительной системы на основе определенного процессора»
Липецк 2022 г. Задание кафедры Изучить материал по теме: техническую документацию по выбранному процессору, периодическую, учебную и другую литературу. Выбрать необходимые дополнительные элементы для данного процессора для реализации вычислительной системы. Создать схему вычислительной системы в программе Proteus. Разработать управляющую программу для данной вычислительной системы. Запустить, протестировать и отладить систему, исследовать ее работу. Управление электродвигателем постоянного тока с помощью микроконтроллера ATmega 32. Ход работы Схема созданной системы представлена на рисунке 1. Рисунок 1 – Разработанная система Спецификация элементов схемы представлена в таблице 1. Таблица 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 |