Гарвардская RISC-архитектура в микроконтроллерах AVR. Средства ввода-вывода, хранения и обработки цифровой и аналоговой информации в микроконтроллерах
.pdf2.Когда START-условие выдано, устанавливается флаг TWINT и обновляется регистр TWSR.
3.Приложение проверяет значение статуса в TWSR, чтобы удостовериться,
что START-условие выдано корректно. Если это не так, может быть вызвана подпрограмма обработки ошибочной ситуации. Если статус правильный, в TWDR записывается SLA+W и сбрасывается TWINT.
4. Когда пакет SLA+W выдан, устанавливается флаг TWINT и обновляется ре-
гистр TWSR.
5. Приложение проверяет статус, а затем, если все нормально, записывает в
TWDR данные и сбрасывает TWINT.
6. Сразу после сброса TWINT передаются данные, TWINT снова устанавлива-
ется и обновляется регистр TWSR.
7. Приложение проверяет статус и в случае успеха записывает TWCR для вы-
дачи повторного START-условия (REPEATED START condition) или STOP-
условия. После выдачи STOP-условия TWINT не устанавливается.
Пример реализации режима MT:
ldi r16, (1<<TWINT)|(1<<TWSTA)|(1<<TWEN) out TWCR, r16
wait1:in r16,TWCR sbrs r16,TWINT rjmp wait1
in r16,TWSR andi r16, 0xF8 cpi r16, START brne ERROR ldi r16, SLA_W out TWDR, r16
ldi r16, (1<<TWINT) | (1<<TWEN) out TWCR, r16
wait2:in r16,TWCR sbrs r16,TWINT
31
rjmp wait2 in r16,TWSR
andi r16, 0xF8
cpi r16, MT_SLA_ACK brne ERROR
ldi r16, DATA out TWDR, r16
ldi r16, (1<<TWINT) | (1<<TWEN) out TWCR, r16
wait3:in r16,TWCR sbrs r16,TWINT rjmp wait3
in r16,TWSR andi r16, 0xF8
cpi r16, MT_DATA_ACK brne ERROR
ldi r16, (1<<TWINT)|(1<<TWEN)|(1<<TWSTO) out TWCR, r16
Аналоговые средства микроконтроллера ATmega8535
Аналоговый компаратор (AC) сравнивает напряжения на входах AIN0 и
AIN1. Если напряжение на положительном входе AIN0 больше, чем на отрица-
тельном входе AIN1, устанавливается выход ACO (Analog Comparator Output) и
генерируется прерывание. Аналоговый компаратор может быть источником со-
бытия для захвата таймера T1.
C аналоговым компаратором связан бит 3 регистра SFIOR — ACME (Analog Comparator Multiplexer Enable). Если ACME=1 и аналого-цифровой преобразователь выключен, его мультиплексор выбирает отрицательный вход аналогового компаратора. Если ACME=0, отрицательным входом компаратора является AIN1.
32
Аналого-цифровой преобразователь имеет разрешение 10 бит. Могут быть использованы восемь одиночных мультиплексируемых входных каналов,
семь дифференциальных входных каналов или два дифференциальных входных канала с опциональным усилением 10x и 200x. Существует два режима преоб-
разования: одиночное преобразование (Single Conversion) или непрерывное
(Free Running). Старт преобразования осуществляется по нескольким источни-
кам прерываний. По завершению преобразования генерируется прерывание.
Аналого-цифровой преобразователь содержит следующие регистры:
1.ADMUX, ADC Multiplexer Selection Register, осуществляет выбор опорного напряжения, аналогового канала, порядок выравнивания результата.
2.ADCSRA, ADC Control and Status Register A, регистр управления и состоя-
ния, включает преобразователь, содержит флаг и маску прерывания и т.д.
3.ADCH и ADCL — ADC Data Register, регистр данных.
КАЦП также имеют отношение биты 7-5 регистра SFIOR (Special Function IO Register) — ADTS2:0 — ADC Auto Trigger Source, источник автозапуска преобразования.
В регистр данных ADCH и ADCL записывается 10-битный результат пре-
образования.
Порядок выполнения работы
Задание 1. Общая структура и CPU микроконтроллера
Написать на языке ассемблера программу, выполняющую определенную задачу в соответствии с вариантом. При этом главная программа должна осу-
ществлять необходимую инициализацию, ввод исходных данных и вывод ре-
зультатов через заданные порты микроконтроллера, а основную задачу должна выполнять подпрограмма.
Исследовать основные элементы структуры микроконтроллера
ATmega8535: CPU, запоминающие устройства, порты ввода-вывода — в про-
цессе выполнения программы. Детально исследовать структуру и функциони-
рование CPU и стека микроконтроллера, варьируя исходные данные, фиксируя
33
состояние стека и регистров, в том числе счетчика программы, указателя стека и регистра флагов.
Результаты исследования оформить в виде таблицы (табл.2).
|
|
|
|
|
Таблица 2 |
|
Формат таблицы с результатами исследования |
|
|||
|
|
|
|
|
|
№ |
Адрес коман- |
Машинный |
Ассемблер- |
Эффект |
Характеристи- |
|
ды (PC) |
код |
ный код |
|
ки команды |
Последовательность строк в таблице должна соответствовать последовательности выполнения команд в период прогона программы, а не их последовательности в тексте программы. В строке, соответствующей данной команде, содержимое регистров и памяти должно быть таким, каким оно является после ее выполнения.
В графе "Характеристики команды" отметить влияние на флаги, размер команды, число тактов, требуемых для ее выполнения.
Проанализировать результаты исследования, выполнить необходимые сравнения, сделать выводы.
Общие признаки всех вариантов:
1.Наличие подпрограммы.
2.Ввод и вывод через параллельные порты микроконтроллера.
Частные признаки:
s1. Задача, выполняемая подпрограммой.
s2. Порты ввода-вывода.
s3. Расположение стека.
Внешние сравнения (Гарвардская RISC AVR — Принстонская CISC x86):
1.Система команд.
2.Размер и формат команд.
3.Время выполнения команд.
4.Порядок изменения (счетчика программы) указателя команд.
5.Порядок изменения указателя стека.
34
6.Порядок хранения слов в памяти.
7.Регистр флагов.
Внутренние сравнения:
1.Доступность и использование регистров общего назначения и ввода-вывода.
2.Размер и время выполнения команд.
Задание 2. Запоминающие устройства микроконтроллера
Исследовать запоминающие устройства микроконтроллера ATmega8535:
постоянную память команд (Flash-ROM), постоянную память данных
(EEPROM), оперативную память данных (SRAM). Изучить характеристики за-
поминающих устройств, их организацию, порядок чтения и записи, используе-
мые для доступа к ним регистры, команды и способы адресации.
Для проведения исследования написать программу или несколько про-
грамм на языке ассемблера, выполняющих чтение и запись каждого запомина-
ющего устройства микроконтроллера. Общая схема программы должна быть следующей:
— ввод исходных данных через порт и размещение в виде массива в оператив-
ной памяти;
—обработка массива и размещение результатов в постоянной памяти данных;
—чтение данных из постоянной памяти и вывод через порт;
—чтение памяти команд для поиска данной команды, запись команды.
Общие признаки вариантов:
1. Наличие в тексте программы сегмента кода и сегментов данных в опера-
тивной и постоянной памяти.
2.Чтение и запись каждого запоминающего устройства микроконтроллера.
3.Доступ к элементам массива в обоих направлениях — от меньших индексов
кбольшим и наоборот.
4.Использование всех способов адресации памяти данных.
Частные признаки:
s1. Задача по обработке массива.
35
s2. Порты ввода-вывода.
Внешние сравнения (Гарвардская RISC AVR — Принстонская CISC x86):
1.Размещение команд и данных в памяти.
2.Структура адресного пространства.
3.Команды передачи данных.
4.Способы адресации.
Внутренние сравнения — организация и доступ к различным запомина-
ющим устройствам микроконтроллера:
1.Регистры.
2.Команды.
3.Способы адресации.
4.Адресное пространство.
5.Порядок хранения слов.
Задание 3. Подсистема прерываний и таймеры
Исследовать порядок обработки прерываний и работы таймеров. Разо-
брать последовательность инициализирующих действий для использования прерываний. Подробно рассмотреть последовательность действий микро-
контроллера при возникновении прерывания для перехода к его обработчику, а
также при возврате из обработчика.
Изучить характеристики таймеров, их структуру, регистры, источники прерываний, режимы работы, порядок их инициализации и использования.
Для проведения исследования написать программу на языке ассемблера,
выполняющую основную задачу в обработчике прерывания таймера. Общая схема программы:
— в начале памяти команд расположена таблица векторов прерываний, в ко-
торой, по крайней мере, имеются Reset-вектор и вектор заданного прерыва-
ния таймера;
— Reset-обработчик проводит необходимую инициализацию и вводит процес-
сор в бесконечный цикл;
36
— ввод-обработка-вывод выполняются в обработчике прерывания.
Общие признаки вариантов:
1.Наличие в программе таблицы векторов прерываний.
2.Внутренний источник тактовых импульсов для таймеров.
Частные признаки и их значения:
s1. Задача, выполняемая в обработчике прерывания.
s2. Прерывание таймера:
1.Совпадение T2.
2.Переполнение T2.
3.Захват Т1.
4.Совпадение регистра A T1.
5.Совпадение регистра B T1.
6.Переполнение T1.
7.Совпадение T0.
8.Переполнение T0.
s3. Режим работы таймера.
Внешние сравнения (Гарвардская RISC AVR — Принстонская CISC x86):
1.Виды и источники прерываний.
2.Структура и расположение таблицы векторов прерываний.
3.Структура вектора прерывания.
4.Переход и возврат из обработчика прерывания.
Внутренние сравнения:
1.Reset-обработчик и другие обработчики.
2.Таймеры T0, T1, T2.
3.Виды прерываний таймеров: по совпадению, переполнению и захвату.
4.Источник тактового сигнала: внутренний, внешний.
37
Задание 4. Последовательные интерфейсы и аналоговые средства
микроконтроллеров
Изучить последовательные интерфейсы (TWI, SPI, USART), аналоговый компаратор и аналого-цифровой преобразователь.
Исследовать работу заданного интерфейса. Для этого написать на языке ассемблера программы для двух микроконтроллеров, связанных по данному интерфейсу.
Общие признаки вариантов:
1.Каждый из двух интерфейсов (микроконтроллеров) осуществляет и прием,
ипередачу.
2.Использование прерываний и их обработчиков.
3.Первый микроконтроллер вводит данные с аналого-цифрового преобразо-
вателя и передает их второму микроконтроллеру, который их принимает и выводит через параллельный порт.
4. Второй микроконтроллер вводит данные с использованием аналогового компаратора и передает их первому микроконтроллеру, который также их принимает и выводит через параллельный порт.
Частные признаки:
s1. Последовательный интерфейс и его режим работы.
s2. Режимы работы аналогового компаратора и аналого-цифрового преобразо-
вателя.
Библиографический список
1.8-bit AVR Instruction Set. 0856I–AVR–07/10 [Электронный ресурс] / Atmel Corporation. – Режим доступа : www. URL: http://www.atmel.com/images/doc0856.pdf. – 2010.
2.8-bit AVR Microcontroller with 8K Bytes In-System Programmable Flash. ATmega8535/ATmega8535L. 2502K–AVR–10/06 [Электронный ресурс] / Atmel Corporation. – Режим доступа : www. URL:
http://www.atmel.com/images/doc2502.pdf. – 2006.
38
Гарвардская RISC-архитектура в микроконтроллерах AVR. Средства ввода-вывода, хранения и обработки цифровой и аналоговой информации в микроконтроллерах AVR для построения микропроцессорных систем управления
Методические указания к лабораторной работе по дисциплине "Микропроцессорные системы"
Болдырихин Олег Владимирович
Редактор Г. В. Казьмина.
Подписано в печать . Формат 60x84 1/16. Бумага офсетная. Ризография. Печ. л. 2,3. Тираж 100 экз. Заказ №
Издательство Липецкого государственного технического университета. Полиграфическое подразделение Издательства ЛГТУ.
398600 Липецк, ул. Московская, 30.
39
