Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рогожин.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
626.79 Кб
Скачать

1.1.Структура микроконтроллера

МК АVR — восьмиразрядный RISC-микроконтроллер с Гарвардской архитектурой и пониженным энергопотреблением. Набор команд, ограниченность которого свойственна RISC -архитектурам, в данном случае необычно широк (120 команд), однако при этом сохранено основное преимущество RISC -архитектур — повышенное быстродействие и сокращенное число операций обмена с памятью программ. Почти все команды размещаются в одной ячейке программной памяти и выполняются за один такт синхросигнала. Типичен режим с частотой синхронизации 1 МГц. Максимальная частота синхросигнала составляет 8 МГц. Доступ к памяти программ и памяти данных осуществляется через собственные шины этих модулей, поэто­му можно не только сделать различными разрядности шин, но и реализовать параллелизм операций в процессах выполнения текущей команды и выборки и дешифрации следующей, т. е. ввести в работу МК элементы кон­вейеризации.

Многие блоки АVR по назначению аналогичны рассмотренным блокам микропроцессора и имеют те же самые обозначения. Программный счетчик РС содержит адрес подлежащей выполнению команды и адресует флэш-память программ. Считанная из флэш-памяти команда поступает в регистр команд IR, ее КОП (код операции) декодируется дешифратором команд для выработки сигналов управления блоками микроконтроллера соответственно заданной операции, а КАД (адресная часть) адресует данные в блоке регистров или в памяти данных SRAM. В памяти типа ЕЕРRОМ хранятся редко изменяемые данные (калибровочные константы и т. п.). Указатель стека SР используется для организации стека в некоторой области памяти SRАМ, глубина стека ограничивается только наличием свободной области в этой памяти. Регистры общего назначения (РОН) объединены в регистровый файл согласно рисунку 1.

Рисунок 1 - Структура микроконтроллера AVR

Арифметико-логическое устройство (АЛУ) способно выполнять операции над содержимым любой пары регистров блока и направлять результат в любой регистр, т. е. все регистры РОН непосредственно доступны для АЛУ. Этим микроконтроллер АVR отличается как от рассмотренного выше микропроцессора, так и от микроконтроллеров других фирм, в которых рабочим реги­стром для АЛУ обычно служит только один регистр, (аккумулятор). Наличие у АЛУ многих рабочих регистров позволяет выполнять операции за один такт. Три регистровые пары (X, У, 2), получаемые объединением двух вось­миразрядных регистров в один 16-разрядный, используются для косвенной адресации. Регистр состояния по функциональному назначению аналогичен регистру флажков RF в структуре рассмотренного ранее микропроцессора, он содержит признаки результатов при выполнении некоторых команд (нуль, знак, перенос, половинный перенос и т. д).

Генератор синхросигналов имеет внешние выводы для подключения кварцевого или иного резонатора либо внешнего тактирующего сигнала. Кроме основного синхрогенератора микроконтроллер имеет и дополнительный встроенный RС-генератор с фиксированной частотой 1 МГц (при напряже­нии питания 5 В) для тактирования сторожевого таймера. Вход RESET (L-активный) служит для сброса микроконтроллера (приведения его в исходное состояние), а также перевода его в режим программирования при подаче на этот вход специального повышенного напряжения 12 В.

Выход АLЕ имеет то же назначение, что и одноименный выход рассмотренного ранее микро­процессора и используется при подключении к микроконтроллеру внешнего ЗУ. В этом случае реализуется режим мультиплексируемой шины: старший полуадрес выводится в течение всего цикла через один восьмиразрядный порт, а младший — через второй восьмиразрядный порт загружается в начале цикла во внешний регистр-защелку, где сохраняется на все время цикла. После загрузки внешнего регистра - защелки этот же порт используется для передачи данных и сигналов управления.

Модуль прерываний служит для приема и обработки запросов прерывания основной программы, как внутренних, так и внешних. Предусмотрено наличие 10 внутренних и двух внешних запросов.

Блоки, относящиеся к центральному процессорному элементу, рассматривались при описании микропроцессора. Порты ввода/вывода, таймеры, интерфейс SPI, блоки UART рассмотрены в главе 6. Описания не рассмотренных ранее блоков (таких, например, как аналоговый компаратор) даются далее.

Структура одного из четырех портов ввода/вывода МК АVR приведена на рис. Порт представляет собою набор из восьми линий. Каждая из восьми линий любого порта конфигурируется как входная или выходная индивидуально с помощью управляющего слова, загружаемого в регистр направления передачи. Каждый бит этого слова задает конфигурацию своей линии Выводимые или вводимые данные поступают в регистр данных. Входные и выходные сигналы проходят через буферные каскады (драйверы), согласно рисунка 2.

Рисунок 2 - Структура порта ввода/вывода

микроконтроллера АУР

Последовательный периферийный интерфейс SPI применяется как для программирования микроконтроллера в последовательном режиме, так и для обмена данными с периферийными устройствами или между микроконтроллерами. Протокол обмена для SPI предусматривает работу МК в режиме либо ведущего (Master), либо ведомого (Slave). Скорости передачи задаются синхросигналами, получаемыми делением тактовой частоты МК, и имеют четыре программируемых значения: 1/4, 1/16, 1/64 и 1/128 от этой частоты.

Асинхронный последовательный интерфейс между микроконтроллером и внешними устройствами обеспечивается блоком UART. Этот блок преобразует параллельные данные от микроконтроллера в последовательные для внешнего устройства и наоборот, работает по асинхронному протоколу, предусматривающему обмен с квитированием для учета готовности блоков к пересылке очередного байта.

Аналоговый компаратор сравнивает напряжения, подаваемые на две специально выделенные линии порта В. Одно из этих напряжений сигнальное, другое опорное. Выходной сигнал компаратора имеет логический характер, показывает, какое из двух напряжений больше, доступен программе и поступает на блок прерываний. С помощью аналогового компаратора можно, например, измерять длительность входных импульсов, поскольку начало и конец импульса могут быть отмечены изменением состояния компаратора, а эти события могут служить источниками команды захвата для таймера, что позволит зафиксировать цифровые значения моментов начала и конца им­пульса. Можно возразить, что эта задача решается и самим таймером без аналогового компаратора, но это так только для импульсов, у которых уровни напряжения соответствуют уровням логических сигналов. При использовании аналогового компаратора таких ограничений нет и можно измерять длительности импульсов с произвольными значениями высокого и низкого уровней, установив величину опорного напряжения между этими уровнями.