Мегаобучалка Главная | О нас | Обратная связь


Лекция 12 Структурная схема микроконтроллера



2016-01-26 1886 Обсуждений (0)
Лекция 12 Структурная схема микроконтроллера 0.00 из 5.00 0 оценок




 

 

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

Отличие МК от МП

Выбор микроконтроллера

Современный микроконтроллер состоит из

Центрального процессора (ядра) (процессор, два и более умножителя, 6 и более АЛУ)

Периферийных устройств

памяти (память программ, память данных, память под порты ввода вывода, глобальная память)

Выполнение операций над данными как с фиксированной, так и с плавающей точкой повлекло за собой усложнение структуры функциональных устройств. Это в свою очередь отразилось на сложности МП.

Код программ выполняется на независимых функциональных устройствах в той же последовательности, в которой программируется. За счет применения инструкций сокращаются размеры кода и время выборки команд. Все инструкции содержат условия их выполнения, что снижает время на выполнение переходов по шине данных 256 разрядной можно передать восемь 32 разрядных команд. Для приложений требующих высокую степень точности применяют работу с 40 разрядными операндами. Повышенная точность достигается благодаря уменьшению ошибки округления результата в вычислительных модулях. Аккумулятор для 32 разрядных данных с фиксированной точкой имеет 80 разрядов.

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

 

 

Сердцем микроконтроллеров AVR является 8-битное микропроцессорное ядро или центральное процессорное устройство (ЦПУ), построенное на принципах RISK-архитектуры. Основой этого блока служит арифметико-логическое устройство (АЛУ). По системному тактовому сигналу из памяти программ в соответствии с содержимым счетчика команд (Program Counter - PC) выбирается очередная команда и выполняется АЛУ. Во время выбора команды из памяти программ происходит выполнение предыдущей выбранной команды, что и позволяет достичь быстродействия 1 MIPS на 1 МГц. АЛУ подключено к регистрам общего назначения РОН (General Purpose Registers - GPR). Регистров общего назначения всего 32, они имеют байтовый формат, то есть каждый из них состоит из восьми бит. РОН находятся в начале адресного пространства оперативной памяти, но физически не являются ее частью. Поэтому к ним можно обращаться двумя способами (как к регистрам и как к памяти). Такое решение является особенностью AVR и повышает эффективность работы и производительность микроконтроллера. Отличие между регистрами и оперативной памятью состоит в том, что с регистрами можно производить любые операции (арифметические, логические, битовые), а в оперативную память можно лишь записывать данные из регистров.
Память


В микроконтроллерах AVR реализована Гарвардская архитектура, в соответствии с которой разделены не только адресные пространства памяти программ и памяти данных, но и шины доступа к ним. Каждая из областей памяти данных (оперативная память и EEPROM) также расположена в своем адресном пространстве.

Память программ (Flash ROM или Flash ПЗУ)
Память программ предназначена для хранения последовательности команд, управляющих функционированием микроконтроллера, и имеет 16-ти битную организацию. Все AVR имеют Flash-память программ, которая может быть различного размера - от 1 до 256 КБайт. Ее главное достоинство в том, что она построена на принципе электрической перепрограммируемости, т. е. допускает многократное стирание и запись информации. Программа заносится во Flash-память AVR как с помощью обычного программатора, так и с помощью SPI-интерфейса, в том числе непосредственно на собранной плате. Возможностью внутрисхемного программирования (функция ISP) через коммуникационный интерфейс SPI обладают все микроконтроллеры AVR, кроме Tiny11 и Tiny28.
Все микроконтроллеры семейства Mega имеют возможность самопрограммирования, т. е. самостоятельного изменения содержимого своей памяти программ. Эта особенность позволяет создавать на их основе очень гибкие системы, алгоритм работы которых будет меняться самим микроконтроллером в зависимости от каких-либо внутренних условий или внешних событий.
Гарантированное число циклов перезаписи Flash-памяти у микроконтроллеров AVR второго поколения составляет не менее 10 тыс. циклов при типовом значении 100 тыс. циклов. (В официальной технической документации Atmel Corp. указывается значение 10 тыс. циклов.)

Память данных
Память данных разделена на три части: регистровая память, оперативная память (ОЗУ - оперативное запоминающее устройство или RAM) и энергонезависимая память (ЭСППЗУ или EEPROM).

Регистровая память (РОН и РВВ)
Регистровая память включает 32 регистра общего назначения (РОН или GPR), объединенных в файл, и служебные регистры ввода/вывода (РВВ). И те и другие расположены в адресном пространстве ОЗУ, но не являются его частью.
В области регистров ввода/вывода расположены различные служебные регистры (регистры управления микроконтроллером, регистры состояния и т. п.), а также регистры управления периферийными устройствами, входящими в состав микроконтроллера. По сути, управление микроконтроллером заключается в управлении этими регистрами.

Энергонезависимая память данных (EEPROM)
Для долговременного хранения различной информации, которая может изменяться в процессе функционирования микроконтроллерной системы, используется EEPROM-память. Все AVR имеют блок энергонезависимой электрически перезаписываемой памяти данных EEPROM от 64 Байт до 4 КБайт. Этот тип памяти, доступный программе микроконтроллера непосредственно в ходе ее выполнения, удобен для хранения промежуточных данных, различных констант, коэффициентов, серийных номеров, ключей и т.п. EEPROM может быть загружена извне как через SPI интерфейс, так и с помощью обычного программатора. Число циклов стирание/запись - не менее 100 тыс.

Оперативная память (ОЗУ или RAM)
Внутренняя оперативная статическая память Static RAM (SRAM) имеет байтовый формат и используется для оперативного хранения данных.
Размер оперативной памяти может варьироваться у различных чипов от 64 Байт до 4 КБайт. Число циклов чтения и записи в RAM не ограничено, но при отключении питающего напряжения вся информация теряется.
Для некоторых микроконтроллеров возможна организация подключения внешнего статического ОЗУ объемом до 64К.

Периферия


Периферия микроконтроллеров AVR включает: порты (от 3 до 48 линий ввода и вывода), поддержку внешних прерываний, таймеры-счетчики, сторожевой таймер, аналоговые компараторы, 10-разрядный 8-канальный АЦП, интерфейсы UART, JTAG и SPI, устройство сброса по понижению питания, широтно-импульсные модуляторы.

Порты ввода/вывода (I/O)
Порты ввода/вывода AVR имеют число независимых линий "вход/выход" от 3 до 53. Каждая линия порта может быть запрограммирована на вход или на выход. Мощные выходные драйверы обеспечивают токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальном значении 40 мА, что позволяет, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения приведены для напряжения питания 5 В).
Архитектурная особенность построения портов ввода/вывода у AVR заключается в том, что для каждого физического вывода (пина) существует 3 бита контроля/управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т.д.). Это позволяет избежать необходимости иметь копию содержимого порта в памяти для безопасности и повышает скорость работы микроконтроллера при работе с внешними устройствами, особенно в условиях внешних электрических помех.

Прерывания (INTERRUPTS)
Система прерываний - одна из важнейших частей микроконтроллера. Все микроконтроллеры AVR имеют многоуровневую систему прерываний. Прерывание прекращает нормальный ход программы для выполнения приоритетной задачи, определяемой внутренним или внешним событием.
Для каждого такого события разрабатывается отдельная программа, которую называют подпрограммой обработки запроса на прерывание (для краткости - подпрограммой прерывания), и размещается в памяти программ.
При возникновении события, вызывающего прерывание, микроконтроллер сохраняет содержимое счетчика команд, прерывает выполнение центральным процессором текущей программы и переходит к выполнению подпрограммы обработки прерывания.
После выполнения подпрограммы прерывания осуществляется восстановление предварительно сохраненного счетчика команд и процессор возвращается к выполнению прерванной программы.
Для каждого события может быть установлен приоритет. Понятие приоритет означает, что выполняемая подпрограмма прерывания может быть прервана другим событием только при условии, что оно имеет более высокий приоритет, чем текущее. В противном случае центральный процессор перейдет к обработке нового события только после окончания обработки предыдущего.

Таймеры/счетчики (TIMER/COUNTERS)
Микроконтроллеры AVR имеют в своем составе от 1 до 4 таймеров/счетчиков с разрядностью 8 или 16 бит, которые могут работать и как таймеры от внутреннего источника тактовой частоты, и как счетчики внешних событий.
Их можно использовать для точного формирования временных интервалов, подсчета импульсов на выводах микроконтроллера, формирования последовательности импульсов, тактирования приемопередатчика последовательного канала связи. В режиме ШИМ (PWM) таймер/счетчик может представлять собой широтно-импульсный модулятор и используется для генерирования сигнала с программируемыми частотой и скважностью. Таймеры/счетчики способны вырабатывать запросы прерываний, переключая процессор на их обслуживание по событиям и освобождая его от необходимости периодического опроса состояния таймеров. Поскольку основное применение микроконтроллеры находят в системах реального времени, таймеры/счетчики являются одним из наиболее важных элементов.

Сторожевой таймер (WDT)
Сторожевой таймер (WatchDog Timer) предназначен для предотвращения катастрофических последствий от случайных сбоев программы. Он имеет свой собственный RC-генератор, работающий на частоте 1 МГц. Как и для основного внутреннего RC-генератора, значение 1 МГц является приближенным и зависит прежде всего от величины напряжения питания микроконтроллера и от температуры.
Идея использования стоpожевого таймеpа предельно проста и состоит в pегуляpном его сбpасывании под упpавлением пpогpаммы или внешнего воздействия до того, как закончится его выдеpжка вpемени и не пpоизойдет сбpос пpоцессоpа. Если пpогpамма pаботает ноpмально, то команда сбpоса стоpожевого таймеpа должна pегуляpно выполняться, пpедохpаняя поцессоp от сбpоса. Если же микpопpоцессоp случайно вышел за пpеделы пpогpаммы (напpимеp, от сильной помехи по цепи питания) либо зациклился на каком-либо участке пpогpаммы, команда сбpоса стоpожевого таймеpа скоpее всего не будет выполнена в течение достаточного вpемени и пpоизойдет полный сбpос пpоцессоpа, инициализиpующий все pегистpы и пpиводящий систему в pабочее состояние.

Аналоговый компаратор (AC)
Аналоговый компаратор (Analog Comparator) сравнивает напряжения на двух выводах (пинах) микроконтроллера. Результатом сравнения будет логическое значение, которое может быть прочитано из программы.
Выход аналогового компаратора можно включить на прерывание от аналогового компаратора. Пользователь может установить срабатывание прерывания по нарастающему или спадающему фронту или по переключению.
Присутствует у всех современных AVR, кроме Mega8515

Аналого-цифровой преобразователь (A/D CONVERTER)
Аналого-цифровой преобразователь (АЦП) служит для получения числового значения напряжения, поданного на его вход. Этот результат сохраняется в регистре данных АЦП. Какой из выводов (пинов) микроконтроллера будет являться входом АЦП, определяется числом, занесенным в соответствующий регистр.

Универсальный последовательный приемопередатчик (UART или USART)
Универсальный асинхронный или универсальный синхронно/асинхронный приемопередатчик (Universal Synchronous/Asynchronous Receiver and Transmitter - UART или USART) - удобный и простой последовательный интерфейс для организации информационного канала обмена микроконтроллера с внешним миром. Способен работать в дуплексном режиме (одновременная передача и прием данных). Он поддерживает протокол стандарта RS-232, что обеспечивает возможность организации связи с персональным компьютером. (Для стыковки МК и компьютера обязательно понадобится схема сопряжения уровней сигналов. Для этого существуют специальные микросхемы, например MAX232.)

Последовательный периферийный интерфейс SPI
Последовательный периферийный трехпроводный интерфейс SPI (Serial Peripheral Interface) предназначен для организации обмена данными между двумя устройствами. С его помощью может осуществляться обмен данными между микроконтроллером и различными устройствами, такими, как цифровые потенциометры, ЦАП/АЦП, FLASH-ПЗУ и др. С помощью этого интерфейса удобно производить обмен данными между несколькими микроконтроллерами AVR.
Кроме того, через интерфейс SPI может осуществляться программирование микроконтроллера.

Двухпроводной последовательный интерфейс TWI
Двухпроводной последовательный интерфейс TWI (Two-wire Serial Interface) является полным аналогом базовой версии интерфейса I2C (двухпроводная двунаправленная шина) фирмы Philips. Этот интерфейс позволяет объединить вместе до 128 различных устройств с помощью двунаправленной шины, состоящей из линии тактового сигнала (SCL) и линии данных (SDA).

Интерфейс JTAG
Интерфейс JTAG был разработан группой ведущих специалистов по проблемам тестирования электронных компонентов (Joint Test Action Group) и был зарегистрирован в качестве промышленного стандарта IEEE Std 1149.1-1990. Четырехпроводной интерфейс JTAG используется для тестирования печатных плат, внутрисхемной отладки, программирования микроконтроллеров.
Многие микроконтроллеры семейства Mega имеют совместимый с IEEE Std 1149.1 интерфейс JTAG или debugWIRE для встроенной отладки. Кроме того, все микроконтроллеры Mega с флэш-памятью емкостью 16 кбайт и более могут программироваться через интерфейс JTAG.

Тактовый генератор
Тактовый генератор вырабатывает импульсы для синхронизации работы всех узлов микроконтроллера. Внутренний тактовый генератор AVR может запускаться от нескольких источников опорной частоты (внешний генератор, внешний кварцевый резонатор, внутренняя или внешняя RC-цепочка). Минимальная допустимая частота ничем не ограничена (вплоть до пошагового режима). Максимальная рабочая частота определяется конкретным типом микроконтроллера и указывается Atmel в его характеристиках, хотя практически любой AVR-микроконтроллер с заявленной рабочей частотой, например, в 10 МГц при комнатной температуре легко может быть "разогнан" до 12 МГц и выше.
Система реального времени (RTC)
RTC реализована во всех микроконтроллерах Mega и в двух кристаллах "classic" - AT90(L)S8535. Таймер/счетчик RTC имеет отдельный предделитель, который может быть программным способом подключен или к источнику основной тактовой частоты, или к дополнительному асинхронному источнику опорной частоты (кварцевый резонатор или внешний синхросигнал). Для этой цели зарезервированы два вывода микросхемы. Внутренний осциллятор оптимизирован для работы с внешним "часовым" кварцевым резонатором 32,768 кГц.

Питание


AVR функционируют при напряжениях питания от 1,8 до 6,0 Вольт. Ток потребления в активном режиме зависит от величины напряжения питания и частоты, на которой работает микроконтроллер, и составляет менее 1 мА для 500 кГц,5 ... 6 мА для 5 МГц и 8 ... 9 мА для частоты 12 МГц.
AVR могут быть переведены программным путем в один из трех режимов пониженного энергопотребления.
Режим холостого хода (IDLE). Прекращает работу только процессор и фиксируется содержимое памяти данных, а внутренний генератор синхросигналов, таймеры, система прерываний и сторожевой таймер продолжают функционировать. Ток потребления не превышает 2,5 мА на частоте 12 МГц.
Стоповый режим (POWER DOWN). Сохраняется содержимое регистрового файла, но останавливается внутренний генератор синхросигналов, и, следовательно, останавливаются все функции, пока не поступит сигнал внешнего прерывания или аппаратного сброса. При включенном сторожевом таймере ток потребления в этом режиме составляет около 80 мкА, а при выключенном - менее 1 мкА. (Все приведенные значения справедливы для напряжения питания 5 В).
Экономичный режим (POWER SAVE). Продолжает работать только генератор таймера, что обеспечивает сохранность временной базы. Все остальные функции отключены.
Сброс при снижении напряжения питания (BOD)
Схема BOD (Brown-Out Detection) отслеживает напряжение источника питания. Если схема включена, то при снижении питания ниже некоторого значения она переводит микроконтроллер в состояние сброса. Когда напряжение питания вновь увеличится до порогового значения, запускается таймер задержки сброса. После формирования задержки внутренний сигнал сброса снимается и происходит запуск микроконтроллера.

 

Рис Блок схема МК 8535

 

Архитектура микроконтроллера ATmega8535 включает в себя

· 130 команд процессора (большинство команд – однотактные);

· 32 8-разрядных регистра общего назначения;

· максимальная производительность 16 Mips (миллионов операций в секунду)

(максимальная тактовая частота 16 МГц);

· встроенный 2-тактный перемножитель;

· 8 кбайт встроенной электрически перепрограммируемой FLASH памяти (с

возможностью самопрограммирования), число циклов стирания-записи

памяти не менее 10000;

· 512 байт энергонезависимой памяти EEPROM;

· 512 байт внутреннего ОЗУ (SRAM);

· возможность защиты от чтения и модификации памяти программ и данных;

· возможность программирования непосредственно в системе через

последовательный интерфейс SPI.

Периферия:

· 2 8-разрядных независимых таймера-счетчика;

· 1 16-битный таймер-счетчик;

· счетчик реального времени с отдельным тактовым генератором;

· 4 канала ШИМ;

· 8 каналов 10-битного АЦП;

· 2-проводный последовательный интерфейс;

· интерфейс USART;

· последовательный интерфейс SPI;

· встроенный сторожевой таймер;

· встроенный аналоговый компаратор;

· 4 порта ввода-вывода, включающих 32 линии;

Технические характеристики:

· 40(44)- выводный корпус;

· напряжение питания 4,5…5,5 В;

· тактовая частота 0…16 МГц.

Архитектура ядра микроконтроллера ATmega8535

Ядро микроконтроллеров AVR семейства Mega выполнено по

усовершенствованной RISC-архитектуре (enhanced RISC) (рис. 4), в которой

используется ряд решений, направленных на повышение быстродействия

микроконтроллеров.

Арифметико-логическое устройство (АЛУ), выполняющее все вычисления,

подключено непосредственно к 32 рабочим регистрам, объединенным в

регистровый файл. Благодаря этому, АЛУ может выполнять одну операцию

(чтение содержимого регистров, выполнение операции и запись результата

обратно в регистровый файл) за такт. Кроме того, практически каждая из команд(за исключением команд, у которых одним из операндов является 16-битный

адрес), занимает одну ячейку памяти программ. Арифметико-логическое устройство (АЛУ) поддерживает арифметические и

логические операции с операндами в виде двух регистров, либо регистра и

константы. Большинство команд процессора выполняются за 1 такт, равный 1 периоду изменения тактового сигнала.

Указатель исполняемой команды хранится в программном счетчике и

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

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

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

вызывающую (основную) программу сохраняется в стеке. Размер стека ограничен

размером оперативной памяти.

Рис расположение выводов микросхемы.

 

Flash память позволяет отказаться от металлокерамических корпусов с кварцевым стеклом необходимых для памяти с ультрафиолетовым стиранием это привело к резкому снижению стоимости МК с перезаписываемой памятью.

Программируемый генератор тактов ожидания обеспечивает работу с медленной памятью. За счет увеличения числа тактов внешней шины при работе с медленным устройством. Параллельное функционирование генераторов сокращает длительность выполнения команды, позволяя за один такт выбирать из памяти команду и два операнда. В МП применяются генератор адресов команд (PS) , два генератора данных(DAG) . Наличие двух генераторов адреса обеспечивает пред и постформирование прямого и косвенного адреса данных, что позволяют выполнять над адресами модульные и бит реверсивные операции. Адресные генераторы обеспечивают аппаратную реализацию циклических буферов, позволяющих эффективно работать с АЦП, выполняя фильтрацию и преобразование Фурье

Таймер счетчик обеспечивает периодическую генерации прерываний.

Арбитр памяти обеспечивает совместное использование единой области памяти. Путем выработки сигналов запроса и сигналов готовности при обращении к глобальной памяти (память в МК делится на память программ, память данных память под порты ввода вывода, глобальная память)

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

АЛУ способно выполнять арифметические или булевы операции, над комплексными числами используя два регистра аккумулятора или работать как два АЛУ, выполняя две операции одновременно.

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

Блок умножения с накоплением (МАС) повышает гибкость и производительность МК за счет выполнения над 17битными операндами операции S=S+a x b за один процессорный такт. Эта операция применяется для алгоритмов фильтрации свертки, вычисления корреляционной функции. Вместе с АЛУ может осуществлять операции в одном цикле одновременно.

Блок перекодировки позволяет перекодировать значения аккумулятора (интерпретировать его как значение аргумента функции.) за один такт Он позволяет быстро вычислять функцию y=exp(x) за один такт

Блок CMPS обеспечивает реализацию оператора Витерби и выполняет операцию сравнения с накоплением.

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

Встроенный контроллер ПДП позволяет совмещать во времени выполнение обменов данными с памятью и вычисления

Умножитель данных в форматах с плавающей точкой и целочисленном позволяет производить умножение за один такт независимо от типа данных и параллельно с обработкой данных в других функциональных блоках (например, АЛУ)

Модуль регистровой арифметики (используются парами) позволяет работать параллельно с АЛУ и генерирует два адреса в одном такте

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

Дополнительные регистры предназначены для косвенных способов адресации. Их основная задача генерация 32 разрядных адресов Они могут применятся как счетчики циклов и как регистры общего назначения.

 

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

Двухвходовый блок ROM содержит программу начальной загрузки

КЭШ команд процессора содержит часто используемые участки кода, что позволяет сократить среднее время выборки команд. Кэш работает избирательно - кэшируются только те команды выборка которых конфликтует с выборкой данных из памяти программ (РМ)

Контроллер обмена управляет операциями обмена процессоров и памяти как внутри кристалла через коммутатор, так и вне кристалла с использованием входящих в его состав интерфейсных схем поддерживающих распространенные стандарты памяти и обеспечивающих возможность динамического изменения разрядности шины от 8 до 64. Использование приоритетной дисциплины запросов памяти на обслуживание в режиме DMA контроллер обмена позволяет выполнять обмен данными не прерывая вычислений со скоростью 400Мбайт/с. Он поддерживает линейную и координатную адресацию памяти для эффективного выполнения обмена при работе с 2 и 3 мерными графическими изображениями.

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

М- модуль предназначен для умножения 24 и 32 разрядных целочисленных данных и 32 и 64 разрядных данных в формате с плавающей точкой

L -модуль предназначен для выполнения арифметических операций над 32 и 40 разрядными целочисленными данными и 32 и 64 разрядных данных в формате с плавающей точкой

S-модуль предназначен для выполнения операций сдвига , перехода и отдельных операций с 32 и 64 разрядных данных в формате с плавающей точкой

D - модуль предназначен для выполнения адресных операций.

 

Регистр режима адресации определяет способ адресации.

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

Буфер каждый буфер состоит из внешнего и внутреннего регистров. При передаче внутренний регистр используется для приема данных из внутренней памяти под управлением контроллера или процессора. Внешний регистр используется для распаковки полубайтов для порта канала (линка). Старший полубайт следует первым. Эти два регистра формируют FIFO очередь. Два слова могут быть помещены в буфер прежде чем выработается сигнал заполнено. Если регистр пуст уровень сигнала низкий. При приеме внешний регистр упаковывает принимаемые полубайты в слова и передает их через внутренний регистр в память под управлением контроллера или процессора. Если они не успели извлечь данные из внутреннего регистра и оба регистра буфера заняты сигнал не выдается и прием прекращается.

 

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

 

Аналогово-цифровой компаратор

Аналогово-цифровой преобразователь

 

Функция энергосбережения

В МП используются:

Активный режим

Периферийные режимы. В нем центральный процессор останавливается и работают только периферийные устройства.

Режим сна. В нем процессор останавливается до получения сигнала прерывания

 

Рис Структурная схема МК

 

ОРГАНИЗАЦИЯ ПАМЯТИ МИКРОКОНТРОЛЛЕРА ATMEGA8535

Архитектура микропроцессора включает 3 типа памяти:

память программ FLASH;

оперативная память (ОЗУ) SRAM;

энергонезависимая память данных EEPROM.

В микроконтроллерах AVR семейства Mega разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. Способы адресации и доступа к этим областям памяти также различны. Такая структура позволяет центральному процессору работать одновременно как с памятью программ, так и с памятью данных, что существенно увеличивает производительность. Каждая из областей памяти данных (ОЗУ и EEPROM) также расположена в своем адресном пространстве.

Память программ размером 8 кбайт представляет собой электрически стираемое ППЗУ (FLASH) и организована в виде 4 кбайт × 16 бит с целью поддержки 16-битных команд . Для возможности защиты кода память программ разделена на 2 секции: секция загрузчика (Boot Program) и секция прикладных программ (Application Program). Поскольку микроконтроллеры AVR имеют 16-битную систему команд, объем памяти программ указан не в байтах, а в 16-битных словах. Память программ является электрически перепрограммируемой, количество циклов перезаписи превышает 10 тысяч. Микропроцессор поддерживает также внутрисхемное программирование, т. е. прошивку программы в микропроцессор можно осуществлять после монтажа на плату посредством специального разъема программирования.

Для адресации памяти программ используется счетчик команд (Program Counter – PC). Счетчик команд (PC) является 12-битным и адресует все адресное пространство памяти команд. По адресу 0x0000 памяти программ находится вектор сброса. После инициализации (сброса) микроконтроллера выполнение программы начинается с этого адреса (по этому адресу должна размещаться команда перехода к инициализационной части программы). Начиная с адреса 0x0001 памяти программ, располагается таблица векторов прерываний. При возникновении прерывания после сохранения в стеке текущего значения счетчика команд происходит выполнение команды, расположенной по адресу соответствующего вектора. Поэтому по данным адресам располагаются команды перехода к подпрограммам обработки прерываний. Положение вектора сброса и таблицы векторов прерываний может быть изменено. Они могут располагаться не только в начале памяти программ, как описано выше, но и в начале области загрузчика. Если в программе прерывания не используются, либо таблица векторов прерываний располагается в области загрузчика, то основная программа может начинаться непосредственно с адреса 0x0001. Память программ может использоваться не только для хранения кода программы, но и для хранения различных констант. Для пересылки байта из памяти программ в память данных существует специальная команда – LPM.

Оперативная память

Оперативная память состоит из 608 ячеек, разделенных на 3 области:

32 регистра общего назначения;

64 служебных регистра;

512 байт памяти для хранения данных.

Микропроцессор поддерживает 5 способов адресации операндов команд:

прямая адресация;

косвенная адресация;

косвенная адресация со смещением;

косвенная адресация с предварительным уменьшением адреса;

косвенная адресация с последующим увеличением адреса.

 

Регистры общего назначения

Все регистры общего назначения (РОН) объединены в регистровый файл быстрого доступа, структура которого показана на рис. 9. В микроконтроллерах AVR все 32 РОН непосредственно доступны АЛУ, в отличие от 8-битных микроконтроллеров других фирм, в которых имеется только один такой регистр – рабочий регистр W (аккумулятор). Благодаря этому любой РОН может использоваться практически во всех командах и как операнд-источник, и как операнд-приемник. Такое решение (в сочетании с конвейерной обработкой) позволяет АЛУ выполнять одну операцию (извлечение операндов из регистрового файла, выполнение команды и запись результата обратно в регистровый файл) за один такт. Каждый регистр файла имеет свой собственный адрес в пространстве памяти данных. Поэтому к ним можно обращаться двумя способами – как к регистрам и как к памяти, несмотря на то, что физически эти регистры не являются ячейками ОЗУ. Такое решение является еще одной отличительной особенностью архитектуры AVR, повышающей эффективность работы микроконтроллера и его производительность. Последние 6 регистров файла (R26...R31) могут также объединяться в три 16- битных регистра X, Y и Z (см. рис. 9), используемых в качестве указателей при косвенной адресации памяти данных.

Служебные регистры

Каждый служебный регистр имеет свое имя, адрес и назначение. Адресное пространство служебных регистров поддерживает обращение с помощью команд IN (считать данные из регистра) и OUT (записать данные в регистр). Обращение к отдельным битам служебных регистров возможно посредством команд SBI (установить бит), CBI (сбросить бит). Проверка содержимого битов служебных регистров возможна с помощью команд SBIS и SBIC. К регистрам ввода-вывода можно обращаться и как к ячейкам ОЗУ с помощью соответствующих команд ST/SD/SDD и LD/LDS/LDD (для дополнительных РВВ этот способ является единственно возможным). Среди служебных регистров есть один регистр, используемый наиболее часто в процессе выполнения программ. Это регистр состояния SREG. Он располагается по адресу 0x3F (0x5F) и содержит набор флагов, показывающих текущее состояние микроконтроллера. Большинство флагов автоматически устанавливаются в «1» или сбрасываются в «0» при наступлении определенных событий (в соответствии с результатом выполнения команд). Все биты этого регистра доступны как для чтения, так и для записи; после сброса

микроконтроллера все биты регистра сбрасываются в 0. Эта информация

анализируется при выполнении условных переходов. При возникновении

прерываний содержимое регистра SREG необходимо сохранять программно.

Формат этого регистра показан на рис. 10.

Рис. 10. Регистр состояния SREG

I – бит прерывания; разрешает прерывания, если установлен в «1»; значение «0» запрещает

прерывания;

T – источник сохранения/копирования бита; команды копирования бита (BLD – загрузка

бита; BST – сохранение бита) используют данный бит в качестве источника;

H – десятичный перенос; устанавливается в «1» при генерации переноса из младшей

тетрады битов (4бита) в старшую, используется при работе с двоично-десятичными числами;

S – знаковый бит; определяется как исключающее или битов XOR(V,N);

V – бит переполнения; устанавливается в «1» при выходе за разрядную сетку результата

последней команды;

N – бит отрицательного значения; устанавливается в «1» при отрицательном результате

выполнения последней команды;

Z – бит нулевого значения; устанавливается в «1» при нулевом результате выполнения

последней команды;

C – бит переноса; устанавливается в «1» при генерации переноса последней исполняемой

командой.

Память данных

Память данных представляет собой 512 8-битных ячеек, расположенных по

адреса



2016-01-26 1886 Обсуждений (0)
Лекция 12 Структурная схема микроконтроллера 0.00 из 5.00 0 оценок









Обсуждение в статье: Лекция 12 Структурная схема микроконтроллера

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1886)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.016 сек.)