Гарвардская RISC-архитектура в микроконтроллерах AVR. Средства ввода-вывода, хранения и обработки цифровой и аналоговой информации в микроконтроллерах
.pdf
2
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ "ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ"
Кафедра автоматизированных систем управления
О. В. БОЛДЫРИХИН
Гарвардская RISC-архитектура в микроконтроллерах AVR. Средства ввода-вывода, хранения и обработки цифровой и аналоговой информации в микроконтроллерах AVR для построения микропроцессорных систем управления
МЕТОДИЧЕСКИЕ УКАЗАНИЯ к лабораторной работе
по дисциплине "Микропроцессорные системы"
Липецк Липецкий государственный технический университет
2013
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ "ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ"
Кафедра автоматизированных систем управления
О. В. БОЛДЫРИХИН
Гарвардская RISC-архитектура в микроконтроллерах AVR. Средства ввода-вывода, хранения и обработки цифровой и аналоговой информации в микроконтроллерах AVR для построения микропроцессорных систем управления
МЕТОДИЧЕСКИЕ УКАЗАНИЯ к лабораторной работе
по дисциплине "Микропроцессорные системы"
Заведующий кафедрой АСУ ______________ Качановский Ю. П.
Объем 2,3 п. л.
Тираж 100 экз.
Липецк Липецкий государственный технический университет
2013
2
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ "ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ"
Кафедра автоматизированных систем управления
О. В. БОЛДЫРИХИН
Гарвардская RISC-архитектура в микроконтроллерах AVR. Средства ввода-вывода, хранения и обработки цифровой и аналоговой информации в микроконтроллерах AVR для построения микропроцессорных систем управления
МЕТОДИЧЕСКИЕ УКАЗАНИЯ к лабораторной работе
по дисциплине "Микропроцессорные системы"
Утверждаю к печати |
Проректор по учебной работе ЛГТУ |
||
|
______________ Ю. П. Качановский |
||
|
______ |
______________ |
________ |
|
число |
месяц |
год |
Объем 2,3 п. л.
Тираж 100 экз.
Липецк Липецкий государственный технический университет
2013
3
УДК 681.3.06(07)
Б791
Рецензент: канд. техн. наук, доцент Назаркин О. А.
Болдырихин, О. В.
Б791 Гарвардская RISC-архитектура в микроконтроллерах AVR. Средства ввода-вывода, хранения и обработки цифровой и аналоговой информации в микроконтроллерах AVR для построения микропроцессорных систем управления: методические указания к лабораторной работе по дисциплине "Микропроцессорные системы" [Текст] / О. В. Болдырихин. - Липецк : Изд-во ЛГТУ, 2013. - 39 с.
Методические указания соответствуют программе дисциплины "Микропроцессорные системы".
В данной лабораторной работе изучаются особенности Гарвардской RISC-архитектуры на примере восьмиразрядных микроконтроллеров семейства AVR компании Atmel в сравнении с рассмотренной ранее Принстонской CISC-архитектурой процессоров семейства x86, а также рассматриваются типичные встроенные средства микроконтроллеров для построения микропроцессорных систем.
Предназначены для студентов направлений "Информатика и вычислительная техника", "Программная инженерия", а также родственных направлений и специальностей.
Табл. 2. Ил. 7. Библиогр.: 2 назв.
© ФГБОУ ВПО "Липецкий государственный технический университет",
2013
4
Содержание |
|
Цель работы и рассматриваемые вопросы................................................................ |
7 |
Теоретическая информация........................................................................................ |
8 |
Назначение микроконтроллера. Микроконтроллеры Atmel AVR ..................... |
8 |
Структура ассемблерного кода и система команд AVR ..................................... |
9 |
Характеристики микроконтроллера ATmega8535 ............................................. |
11 |
Назначение выводов микроконтроллера ATmega8535 ..................................... |
12 |
Управление микроконтроллером......................................................................... |
14 |
CPU микроконтроллера ATmega8535 ................................................................. |
14 |
Память микроконтроллера ATmega8535 ............................................................ |
16 |
Ввод-вывод............................................................................................................. |
19 |
Система прерываний ............................................................................................. |
20 |
Таймеры микроконтроллера ATmega8535 ......................................................... |
22 |
Последовательные интерфейсы микроконтроллера ATmega8535................... |
24 |
Интерфейс SPI (Serial Peripheral Interface)...................................................... |
24 |
Интерфейс USART (Universal Synchronous and Asynchronous Receiver and |
|
Transmitter) ......................................................................................................... |
25 |
Интерфейс TWI (Two-wire Serial Interface) .................................................... |
28 |
Аналоговые средства микроконтроллера ATmega8535 .................................... |
32 |
Порядок выполнения работы ................................................................................... |
33 |
Задание 1. Общая структура и CPU микроконтроллера ................................... |
33 |
Задание 2. Запоминающие устройства микроконтроллера............................... |
35 |
Задание 3. Подсистема прерываний и таймеры ................................................. |
36 |
Задание 4. Последовательные интерфейсы и аналоговые средства |
|
микроконтроллеров ............................................................................................... |
38 |
Библиографический список...................................................................................... |
38 |
5
В дисциплине "Архитектура вычислительных систем" были изучены ос-
новные принципы устройства и функционирования компьютеров (архитектуры фон Неймана) на примере компьютеров с процессорами x86. Современные процессоры этого семейства имеют признаки Принстонской и Гарвардской,
CISC- и RISC-архитектуры. Однако на уровне системы команд в процессорах x86 особенности Гарвардской RISC-архитектуры не проявляются. Поэтому фактически в лабораторных работах по "Архитектуре вычислительных систем"
была рассмотрена Принстонская CISC-архитектура.
Для более полного понимания вопроса необходимо подробно рассмот-
реть Гарвардскую RISC-архитектуру. Это удобно сделать в дисциплине "Мик-
ропроцессорные системы" по следующей причине. По большому счету, прак-
тически все современные вычислительные системы являются микропроцессор-
ными. Однако чаще всего под микропроцессорными системами понимаются микропроцессорные системы управления. Поэтому основным понятием в дан-
ной дисциплине является не микропроцессор, а микроконтроллер. Большинство микроконтроллеров современных семейств имеют Гарвардскую RISC-
архитектуру. Среди них выделяется семейство микроконтроллеров Atmel AVR,
которое является достаточно распространенным и удобным для рассмотрения необходимых вопросов.
Проводимые исследования направлены на изучение особенностей Гар-
вардской RISC-архитектуры микроконтроллеров Atmel AVR в сравнении с изу-
ченной ранее Принстонской CISC-архитектурой x86, а также всех характерных средств, входящих в состав микроконтроллеров: запоминающих устройств,
портов ввода-вывода, таймеров, последовательных интерфейсов, аналогового компаратора и аналого-цифрового преобразователя.
В данной работе подготавливается база для построения микропроцессор-
ных систем на основе микроконтроллеров, а также для изучения более сложных устройств, таких как микроконтроллеры AVR32 и системы с архитектурой
ARM.
6
Цель работы и рассматриваемые вопросы
Цель работы — изучение структуры микроконтроллеров, особенностей Гарвардской RISC-архитектуры микроконтроллеров Atmel AVR в сравнении с изученной ранее Принстонской CISC-архитектурой x86, их системы команд и программирования, устройства и функционирования составных частей микро-
контроллеров: процессора, памяти, портов ввода-вывода, таймеров, последова-
тельных интерфейсов, аналоговых средств.
Рассматриваемые вопросы:
1.Структура микроконтроллера ATmega8535.
2.CPU микроконтроллеров AVR.
3.Регистры общего назначения и регистры ввода-вывода.
4.Организация стека.
5.Система команд микроконтроллеров AVR.
6.Способы адресации в микроконтроллерах AVR.
7.Формат регистра флагов и влияние команд на флаги.
8.Структура адресного пространства памяти данных.
9.Оперативная память данных SRAM.
10.Постоянная память данных EEPROM.
11.Постоянная память команд.
12.Порты ввода-вывода.
13.Система прерываний.
14.Таймеры микроконтроллера ATmega8535.
15.Регистры таймеров.
16.Режимы работы таймеров.
17.Последовательные интерфейсы.
18.Аналоговые средства микроконтроллера.
7
Теоретическая информация
Назначение микроконтроллера. Микроконтроллеры Atmel AVR
Микроконтроллер — это интегральная схема, которая содержит все необ-
ходимые элементы компьютера: процессор, память, порты ввода-вывода, тай-
меры и т. д. Вначале для этого типа микросхем использовались термины "мик-
рокомпьютер" и "однокристальная микро-ЭВМ". Термин "микроконтроллер"
появился позже, по причине того, что эти устройства стали в основном приме-
няться для управления какими-либо процессами и объектами. Сейчас они име-
ют повсеместное применение в промышленности, транспорте, связи, бытовой электронике и т. д.
На основе микроконтроллера может быть создано любое электронное устройство. Явно прослеживается следующая параллель. Микропроцессор — альтернатива жесткой логике, универсальное устройство для построения циф-
ровых электронных устройств. Микроконтроллер — альтернатива жесткой электронике, универсальное устройство для построения и цифровых, и анало-
говых электронных устройств. Электронные схемы с использованием микро-
контроллеров являются более компактными, надежными, гибкими и универ-
сальными. Микроконтроллер можно рассматривать как мост между микропро-
цессорной техникой и электроникой.
В настоящее время имеется огромное количество семейств и моделей микроконтроллеров различных производителей. Среди них выделяется семей-
ство микроконтроллеров AVR компании Atmel.
Архитектура микроконтроллеров AVR может быть классифицирована как Гарвардская RISC-архитектура. Они имеют раздельную память команд и дан-
ных. Система команд у разных моделей микроконтроллеров AVR включает от
89 до 130 команд, которые в большинстве своем выполняются за один такт,
благодаря наличию простого одноуровневого конвейера, включающего всего две стадии: выборки и исполнения.
8
Структура ассемблерного кода и система команд AVR
Общая форма строки исходного кода на ассемблере AVR такова: [метка:] .директива [операнды] [;комментарий]
или
[метка:] инструкция [операнды] [;комментарий]
Информация в скобках необязательна. Однако строка может состоять из одного комментария. Метка также может быть одна в строке, и тогда она отно-
сится к нижеследующей ближайшей строке с инструкцией или директивой.
Метка заканчивается двоеточием.
Директива — это указание ассемблеру. Директива предваряется точкой.
Инструкция — это команда процессора.
Компилятор позволяет использовать в программе выражения, которые могут состоять из операндов, операторов и функций.
Система команд микроконтроллеров AVR включает [1]:
1. Арифметические и логические команды: сложение и вычитание с перено-
сом и без переноса, все логические операции, изменение знака, установка и сброс регистра или отдельных битов, инкремент и декремент, проверка на ноль или отрицательность, несколько видов умножения.
2. Команды ветвления: абсолютный, относительный и косвенный переходы и вызовы подпрограммы, возвраты из подпрограммы и прерывания, относи-
тельные условные переходы по 16 условиям (8 флагов умножить на два зна-
чения), пропуски команд по условию установки или сброса определенного бита в порту или регистре, сравнения двух регистров с переносом и без него или регистра и константы, а также сравнения двух регистров и пропуска ко-
манды в случае их равенства.
3. Команды передачи данных: перемещение, непосредственная, прямая и кос-
венная загрузка, прямое и косвенное размещение, косвенная загрузка и раз-
мещение с пост-инкрементом или пре-декрементом, косвенная загрузка и размещение со смещением, загрузка и размещение в программной памяти,
9
возможно с пост-инкрементом, ввод и вывод, помещение в стек и извлечение из стека.
4. Команды битовых операций: логические и циклические через перенос сдви-
ги влево и вправо, арифметический сдвиг вправо, перестановка тетрад, уста-
новка и сброс флагов и битов в порту, сохранение и загрузка битов в регистре из флага T.
5. Команды управления микроконтроллером: отсутствие операции, переход в спящий режим, сброс сторожевого таймера.
Пример программы:
;y=ax+b — вычисление линейной функции
;вход x - PINB
;выход y - PORTC, PORTA
.include "m8535def.inc"
.equ a = 2 |
|
|
|
.equ b = 0x2E |
|
|
|
.cseg |
|
|
|
.org 0 |
|
|
|
init: |
ldi r16, 0xFF |
|
|
|
out DDRC, r16 |
;порт C на выход |
|
|
out DDRA, r16 |
;порт A на выход |
|
|
ldi r16, 0x00 |
|
|
|
out DDRB, r16 |
;порт B на вход |
|
;стек будет в конце оперативной памяти |
|||
|
ldi r16, low(RAMEND) |
||
|
out spl, r16 |
|
|
|
ldi r16, high(RAMEND) |
||
|
out sph, r16 |
|
|
main: in r0, PINB |
|
;r0=x |
|
|
ldi r16, b |
|
|
|
push r16 |
|
|
|
ldi r16, a |
|
|
|
push r16 |
|
|
|
rcall lnrf |
|
|
|
out PORTA, r0 |
;PORTA=low(y) |
|
|
out PORTC, r1 |
;PORTC=high(y) |
|
|
rjmp main |
|
|
lnrf: |
pop r17 |
|
|
|
pop r16 |
|
|
|
pop r1 |
;r1=a |
|
|
mul r1, r0 |
|
;r1:r0=ax |
|
pop r2 |
;r2=b |
|
|
add r0, r2 |
|
r0=low(ax+b) |
10
