Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Технические характеристики микроконтроллера ATmega16

 

 

Микроконтроллер ATmega16 относится к семейству восьмибитных микроконтроллеров AVR фирмы Atmel. Микроконтроллеры AVR имеют гарвардскую архитектуру (программа и данные находятся в разных адресных пространствах) и систему команд, близкую к идеологии RISC [12]. Внешний вид микроконтроллера ATmega16 представлен на рисунке 7.

Особенностями гарвардской архитектуры является физическое разделение памяти команд (программ) и памяти данных. Память команд и память данных соединяются с процессором отдельными шинами. Благодаря разделению потоков команд и данных, а также совмещению по времени их выборки и записи результатов обработки обеспечивается более высокая производительность. К недостаткам гарвардской архитектуры относятся: усложнение конструкции из-за использования отдельных шин для команд и данных, фиксированный объем памяти для команд и даны, увеличение общего объема команд из-за невозможности ее оптимального перераспределения между командами и данными.

 

Рисунок 7 – Внешний вид микроконтроллера ATmega16

 

RISC (англ. restricted (reduced) instruction set computer — компьютер с сокращённым набором команд) — архитектура процессора, в котором 22 быстродействие увеличивается за счёт упрощения инструкций, чтобы их декодирование было более простым, а время выполнения — меньшим. К характерным особенностям RISC-процессоров относятся: фиксированная длина машинных инструкций (например, 32 бита) и простой формат команды; специализированные команды для операций с памятью — чтения или записи. Операции вида Read-Modify-Write («прочитать-изменить- записать») отсутствуют. Любые операции «изменить» выполняются только над содержимым регистров; большое количество регистров общего назначения (32 и более); отсутствие поддержки операций вида «изменить» над укороченными типами данных — байт, 16-битное слово; отсутствие микропрограмм внутри самого процессора. То, что в CISC- процессоре исполняется микропрограммами, в RISC-процессоре исполняется как обыкновенный (хотя и помещённый в специальное хранилище) машинный код, не отличающийся принципиально от кода ядра ОС и приложений.

Процессор AVR имеет 32 8-битных регистра общего назначения, объединённых в регистровый файл. Ядро микроконтроллеров AVR выполнено по усовершенствованной RISC-архитектуре (enhanced RISC). Арифметико-логическое устройство (АЛУ), выполняющее все вычисления, подключено непосредственно к 32 рабочим регистрам, объединенным в регистровый файл. Благодаря этому АЛУ выполняет одну операцию (чтение содержимого регистров, выполнение операции и запись результата обратно в регистровый файл) за один машинный цикл. Практически каждая из команд (за исключением команд, у которых одним из операндов является 16-разрядный адрес) занимает одну ячейку памяти программ.

Использование технологии конвейеризации в AVR. Конвейеризация заключается в том, что во время исполнения текущей команды производится выборка из памяти и дешифрация кода следующей команды. Причем длительность машинного цикла микроконтроллеров AVR составляет всего один период тактового генератора.

Структурная схема микроконтроллера ATmega16 представлена в приложении Б на рисунке Б.1.

Файл регистров быстрого доступа содержит 32 8-разрядных рабочих регистра общего назначения связанных непосредственно с АЛУ. За один тактовый цикл из файла регистров выбираются два операнда, выполняется операция, и результат вновь возвращается в файл регистров.

Шесть из 32 регистров могут быть использованы как три 16-разрядных регистра указателя косвенной адресации адресного пространства данных, обеспечивающие эффективное вычисление адресов. Один из этих указателей адреса используется также, как указатель адреса для функции непрерывного просмотра таблиц. Эти 16-разрядные дополнительные регистры обозначаются как X-регистр, Y-регистр и Z-регистр.

В дополнение к операциям с регистрами, регистровый файл может использоваться и для обычной адресации памяти. Это объясняется тем, что файл регистров располагается по 32 младшими адресами пространства данных, и к ним можно обращаться, как к обычным ячейкам памяти. Пространство памяти I/O содержит 64 адреса периферийных функций CPU таких как: регистры управления, таймеры/счетчики, аналого-цифровые преобразователи и другие I/O функции. К памяти I/O можно обращаться непосредственно или как к ячейкам пространства памяти соответствующим адресам файла регистров $20 – $5F.

В процессе обработки прерываний и вызовов подпрограмм адрес возврата счетчика команд (PC) сохраняется в стеке. Стек размещается в SRAM данных. Все пользовательские программы в подпрограммах возврата (прежде, чем подпрограммы или прерывания будут выполняться) должны инициализировать указатель стека (SP).

AVR архитектура поддерживает пять различных режимов адресации байт SRAM данных.

Гибкий модуль обработки прерываний имеет в пространстве I/O свой управляющий регистр с дополнительным битом разрешения глобального прерывания в регистре статуса. Все прерывания имеют свои векторы прерывания в таблице векторов прерывания, располагаемой в начале памяти программ. Приоритеты прерываний соответствуют положению векторов прерываний - прерывание с наименьшим адресом вектора имеет наивысший приоритет.

Регистры ввода-вывода

 

Все регистры ввода-вывода (РВВ) условно можно разделить на две группы – служебные регистры микроконтроллера и регистры, относящиеся к конкретным периферийным устройствам.

Во всех микроконтроллерах семейства Mega (как и в микроконтроллерах всех семейств AVR) регистры ввода-вывода располагаются в так называемом пространстве ввода-вывода размером 64 байта.

Распределение адресов пространства ввода-вывода зависит от конкретной модели микроконтроллера, состава и возможностей периферийных устройств данной модели. Размещение РВВ в пространстве ввода-вывода для модели ATmega16 приведено в приложении Б в таблице Б.2.

К РВВ, расположенным в основном пространстве ввода-вывода, можно обратиться с помощью команд IN и OUT, выполняющих пересылку данных между одним из 32-х РОН и пространством ввода-вывода. В системе команд имеется также четыре команды поразрядного доступа, использующие в качестве операндов регистры ввода-вывода: команды установки/сброса отдельного бита (SBI и CBI) и команды проверки состояния отдельного бита (SBIS и SBIC). Эти команды могут обращаться только к первой половине основных регистров ввода-вывода (адреса $00…$1F).

Помимо непосредственной адресации (с помощью команд IN и OUT), к РВВ можно обращаться и как к ячейкам ОЗУ с помощью соответствующих команд ST/SD/SDD и LD/LDS/LDD

 

Порты ввода-вывода

 

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

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

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

Обращение к портам производится через регистры ввода-вывода. Под каждый порт в адресном пространстве ввода-вывода зарезервировано по три адреса, по которым размещены следующие регистры: регистр данных порта PORTx, регистр направления данных DDRx и регистр выводов порта PINx. Поскольку с помощью регистров PINx осуществляется доступ к физическим значениям сигналов на выводах порта, они доступны только для чтения, тогда как остальные два регистра доступны как для чтения, так и для записи.

Порядковый номер вывода порта соответствует порядковому номеру разряда регистров этого порта. Данные приведены в таблице 1.

Разряд DDxn регистра DDx определяет направление передачи данных через контакт ввода-вывода. Если этот разряд установлен в «1», то n-й вывод порта является выходом, если же сброшен в «0» – входом. Разряд PORTxn регистра PORTx выполняет двойную функцию.

Если вывод функционирует как выход, этот разряд определяет состояние вывода порта. Если разряд установлен в «1» на выводе устанавливается напряжение высокого уровня. Если разряд сброшен в «0» на выводе устанавливается напряжение низкого уровня. Если вывод функционирует как вход, разряд PORTxn определяет состояние внутреннего подтягивающего резистора для данного вывода. При установке разряда PORTxn в «1» подтягивающий резистор подключается между выводом микроконтроллера и шиной питания.

Управление подтягивающим резистором в моделях семейства Mega осуществляется на двух уровнях. Общее управление (для всех выводов портов) осуществляется разрядом PUD (2-й разряд регистра специальных функций SFIOR). Если разряд PUD сброшен в «0», состояние подтягивающих резисторов будет определяться состоянием разрядов PORTxn для каждого входа порта. Если же разряд PUD установлен в «1», подтягивающие резисторы отключаются от всех выводов микроконтроллера.

 

 

Таблица 1 – Конфигурации выводов портов DDxnPORTxn PUD* (в SFIOR)

 

 

Состояние вывода микроконтроллера (независимо от установок разряда DDxn) может быть получено путем чтения разряда PINxn регистра PINx.

Следует отметить, что подавляющее большинство контактов ввода-вывода всех микроконтроллеров имеют дополнительные функции и могут использоваться различными периферийными устройствами микроконтроллеров. При этом возможны две ситуации. В одних случаях пользователь должен самостоятельно задавать конфигурацию вывода, а в других – вывод конфигурируется автоматически при включении соответствующего периферийного устройства. На рисунках 8-9 представлено расположение выводов ATmega16.

Рисунок 8 – Расположение выводов ATmega16 – 40-выводной корпус PDIP

Рисунок 9 – Расположение выводов ATmega16 – 44-выводной корпус TQFP

 


Последнее изменение этой страницы: 2016-06-09

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...