Материал: Микропроцессорные системы AVR (Васильев)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
  1. Особенности разработки и применения мп систем

Микропроцессорная система – цифровое устройство или цифровая система (система обработки данных, контроля и управления), построенная на базе одного или нескольких микропроцессоров.

Микропроцессорный модуль включает микропроцессор, тактовый генератор, а также, возможно, и другие устройства, например, таймер, контроллер прерываний и т.п. В подсистеме памяти выделяют модули ОЗУ, предназначенных для хранения переменных и загружаемого извне программ, и модули ПЗУ, которые используются для хранения программ и констант. В составе подсистемы ввода/вывода в простейшем случае выделяются адресуемые процессором буферные схемы и регистры – порты ввода/вывода. Они предназначены для связи с простыми внешними устройствами, такими как светодиодные индикаторы, переключатели и т.п.

Микропроцессорные системы предназначены для автоматизации обработки информации и управления различными процессами.

  1. Принципы построения МП. Архитектура 8 разрядного CISC процессора. АЛУ. Буферные регистры. Регистр аккумулятор. Регистр состояния. Регистры общего назначения. Указатель стека. Стек. Регистр адреса памяти. Счетчик команд. Регистр команд

Микропроцессор состоит из арифметико-логического устройства (АЛУ), устройства управления (УУ), регистра команд (РК), аккумулятора (А), буферных регистров БР1 и БР2, регистров общего назначения (РОН) В, С, D, Е, специализированных регистров косвенного адреса Н (от high — старшие разряды) и L (от low — младшие разряды), программного счетчика PC, указателя стека, регистра адреса (РА), регистра признаков (РП), буферного регистра адреса (БРА), буферного регистра данных (БРД), магистралей данных (МД), управления (МУ), адреса (МА).

АЛУ — комбинационное цифровое устройство, имеющее два входных порта и один выходной порт (Выход). Каждый входной порт соединен со своим буферным регистром (БР1, БР2), способным хранить слово данных (операнд). Два входных порта позволяют АЛУ принимать данные с внутренней магистрали данных микропроцессора или из специального регистра, называемого аккумулятором. Единственный выходной порт АЛУ служит для пересылки слова данных (результата выполненной АЛУ операции) только в аккумулятор. АЛУ оперирует одним или двумя словами в зависимости от вида выполняемой операции.

Буферные регистры БР1 и БР2 необходимы в МП для временного хранения операндов и промежуточных результатов вычислений. Например, они позволяют легко реализовать обмен содержимым любых двух регистров общего назначения микропроцессора.

Аккумулятор — главный регистр микропроцессора при различных манипуляциях с данными. Для выполнения любой операции над данными прежде всего необходимо поместить их в аккумулятор. Так, при сложении двух чисел (слов) Х и Y одно из них (например, X) засылается в аккумулятор, а другое (У) может содержаться в одном из других регистров МП или внешней памяти. Результат сложения вновь заносится в аккумулятор А, заменяя в нем число X.

Регистр признаков, называемый также иногда флаговым регистром, предназначен для хранения результатов контроля, осуществляемого в процессе выполнения программы. Его разряды принимают то или иное значение при выполнении операций, использующих АЛУ и некоторые из регистров МП. При этом меняется порядок выполнения команд.

Информация в регистры общего назначения В, С, D, Е может быть занесена непосредственно из аккумулятора, внешней памяти или внешнего УВВ. Каждый из них может выступать либо отдельно в качестве восьмиразрядного регистра, либо в паре с другим регистром, образуя шестнадцатиразрядную регистровую пару В— С или D—E.

Специализированный регистр косвенного адреса H—L используется в МП для реализации команд с косвенной адресацией, т.е. команд без указания номера регистра, хранящего исполнительный адрес. Это сдвоенный регистр (регистровая пара), который программно доступен, как и РОН.

Стек необходим для запоминания адресов возврата из процедур обработки прерывания и подпрограмм. Его также можно использовать для временного хранения данных. Регистр указателя стека (SP) постоянно указывает на вершину стека. Он реализован в виде двух 8-битных регистров, доступных в пространстве памяти ввода-вывода. Данные помещаются в стек и извлекаются из него посредством инструкций PUSH и POP. Увеличение стека происходит в направлении от старших ячеек памяти к младшим. Таким образом, при помещении данных в стек содержимое регистра SP уменьшается, а при извлечении данных - увеличивается. После сброса, SP автоматически инициализируется значением, которое равно максимальному адресу внутреннего SRAM.

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

Программный счетчик (PC). Содержит адрес текущей команды.

Регистр команд. Хранит последовательность команд, выполняемых в данный момент.

  1. Прерывания в мк. Регистры, влияющие на работу контроллера по внешним прерываниям

Прерывание – это событие, которое требует немедленной реакции со стороны МК. Реакция состоит в том, что МК прерывает обработку текущей программы и переходит к выполнению другой подпрограммы. По завершении этой подпрограммы процессор возвращается к выполнению прерванной программы.

Прерывания делятся на внешние и внутренние. Внешние прерывания – это прерывания, срабатывающиеся при определённом напряжении на линиях МК (INT0, INT1). Внутренние прерывания – это прерывания, которые могут вызвать АК, АЦП, СТ и т.п.

Для глобального разрешения и запрещения служит бит I в регистре SREG. При возникновении прерывания флаг I регистра SREG аппаратно сбрасывается, запрещая тем самым обработку следующих прерывании. Однако в подпрограмме обработки прерывания этот флаг можно снова установить в 1 для разрешения вложенных прерываний.

Регистр масок внешних прерываний – EIMSK

INT1 – INT0 (External Interrupt Request 1-0 Enable) - Разрешение запроса внешних прерываний. При установленных битах INT1-INT0 и установленном бите I регистра статуса SREG разрешаются прерывания по соответствующим выводам входов сигналов прерываний. Активация любого из этих выводов вызовет запрос прерывания даже если вывод будет разрешен как выход. Это обеспечивает возможность организации программного прерывания.

Регистр флагов внешних прерываний – EIFR

INTF1 – INTF0 (External Interrupt 1-0 Flags) - Флаги внешних прерываний. В случае поступления запроса на прерывание на какой-либо из выводов INT1-INT0 будет установлен в 1 соответствующий флаг прерывания INTF1-INTF0. Если бит I регистра SREG и соответствующий бит разрешения INT7-INT4 в EIMSK будут установлены, то MCU перейдет к вектору прерывания. По завершению подпрограммы прерывания флаг очищается.

Регистр управления внешними прерываниями – EICR

ISCX1, ISCX0 (External Interrupt 1-0 Sense Control bits) - биты управления опознаванием внешних прерываний. Внешние прерывания 1 - 0 активируются по выводам INT7-INT4, если установлен флаг I в SREG и установлена соответствующая маска в EIMSK

  1. Архитектура ядра avr-контроллеров. Назначение основных узлов avr-контроллеров

FLASH – память программ, энергонезависимое ПЗУ. Здесь хранится программа, которая будет исполняться блоком ALU микроконтроллера. Флешь-память чипа можно многократно перезаписывать, тем самым меняя или дополняя программный код для выполнения.

EEPROM – энергонезависимая память, предназначенная для долговременного хранения различной информации, которая может изменяться в процессе функционирования микроконтроллерной системы.

TWI - интерфейс для обмена данными по двухпроводной шине. К такой шине данных можно подключить до 128 различных устройств, используя две линии данных: тактовый сигнал (SCL) и сигнал данных (SDA). Интерфейс TWI является аналогом базовой версии интерфейса I2C.

SPI – последовательный периферийный трехпроводный интерфейс, предназначен для организации обмена данными между двумя устройствами. В основе сдвиговый регистр.

USART - последовательный асинхронный интерфейс для обмена данными с другими устройствами.

JTAG Interface - важный интерфейс, который позволяет производить внутреннюю отладку прямо в чипе используя блок внутренней отладки.

  1. Программная модель и система команд avr- контроллеров

Ц ентральным блоком на этой диаграмме является регистровый файл из 32 оперативных регистров (R0-R31) или как их обычно называют регистры общего назначения (РОН). Все РОН непосредственно доступны АЛУ. Старшие регистры объединены парами и образуют три 16-разрядных регистра Х [R27:R26], Y [R29:R28] и Z [R31:R30].

Регистровый файл, блок регистров ввода/вывода и оперативная память, как показано на рис, образуют единое адресное пространство, что дает возможность при программировании обращаться к 32 оперативным регистрам и к регистрам ввода/вывода как к ячейкам памяти, используя команды доступа к SRAM.

Шесть основных групп команд: команды арифметических операций, команды логических операций, команды передачи данных, команды операций с битами, команды управления последовательностью выполнения программы, команды управления системой.

  1. Устройство и управление портами ввода и вывода.

К аждым портом микроконтроллера управляют 3 РВВ. Это DDRx, PORTx и PINx (x – название порта: A,B,C и т.д.). Регистры портов A,B,C,D всех моделей находятся в первой половине адресного пространства ввода-вывода и поэтому допускают прямые операции над отдельными их битами.

Регистр DDRx отвечает за направление передачи данных. Единичка в разряды DDRx настраивает линии на вывод, а нолик, соответственно, на ввод.

Регистр PORTx управления состоянием вывода. Если линии порта настроены на вывод, то содержимое PORTx определяет логическое состояние выводов порта. Для линий, настроенных на ввод значение PORTx определяет состояние внутреннего подтягивающего (pull-up) резистора к шине питания. В этом случае при уровне лог.1 в разрядах PORTx резистор подключен, а при уровне лог.0 – отключен и линии переведены в высокоимпедансное состояние.

Регистр PINx предназначен для считывания уровней сигнала с выводов микроконтроллера. Естественно, что необходимость в этом существует только для линий, настроенных на ввод (для линий, настроенных на вывод содержимое PINx повторяет состояние выходного регистра PORTx). Разряды PINx не оказывают никакого влияния на состояние выводов, а сам регистр доступен только для чтения

  1. Устройство и управление аналоговым компаратором.

Аналоговый компаратор сравнивает уровни напряжений на неинвертирующем входе AIN0 и инвертирующем входе AIN1. Если напряжение на неинвертирующем входе AIN0 превышает напряжение на инвертирующем входе AIN1, то выход аналогового компаратора ACO принимает единичное состояние. Выход компаратора может быть настроен для использования в качестве источника входного сигнала для схемы захвата фронтов таймера-счетчика 1. Кроме того, компаратор может генерировать собственный запрос на обработку прерывания

Основной регистр управления компараторомэто ACSR (Analog Comparator Control and Status Register).

ACD (Analog Comparator Disable) — включение компаратора. 1 — запрещает работу аналогового компаратора, 0 — разрешает. По умолчанию компаратор всегда включен.

ACBG (Analog Comparator Bandgap Select) — подключение внутреннего источника опорного напряжения к неинвертирующему входу компаратора. 1 — подключает ИОН, 0 —отключает.

ACO (Analog Comparator Output) — этот бит хранит состояние выхода аналогового компаратора, то есть результат сравнения входных напряжений.

ACI (Analog Comparator Interrupt Flag) — флаг прерывания. Он устанавливается аппаратно, когда происходит событие, определенное битами ACIS1 и ACIS0. Если прерывания компаратора разрешены, то вызывается обработчик. Флаг ACI сбрасывается аппаратно при выполнении обработчика.

ACIE (Analog Comparator Interrupt Enable) — разрешение прерываний компаратора. Когда этот бит установлен в 1 и прерывания разрешены глобально (установлен флаг I регистра SREG), компаратор генерирует запрос на прерывание при изменении состояния его выхода.

ACIC (Analog Comparator Input Capture Enable) — подключает выход компаратора к схеме захвата таймера Т1. 1 - выход компаратора подключен к схеме захвата, 0 - не подключен.

ACIS1, ACIS0 (Analog Comparator Interrupt Mode Select) — эти биты определяют событие, по которому будет вызываться прерывание компаратора. (00 – прерывания по изменению на выходе, 01 – не используется, 10 – прерывания по падающему фронту, 11 – прерывания по растущему фронту).

SFIOR — регистр специальных функций ввода вывода.

TSM активизирует режим синхронизации таймеров-счетчиков

ACME — включение мультиплексора аналогового компаратора. При нуле — вход компаратора AIN1 подключен к ножке микроконтроллера AIN1, при единичке AIN1 может быть подключен к любому входу АЦП микроконтроллера.

PUD отключение подтягивающих резисторов.

PSR0 сброс предделителя Т-С0.

PS321 сброс делителя частоты Т-С0

Источник: https://studfile.net/preview/16502311/