Характеристика микроконтроллеров

Понятие и типы микроконтроллера. Архитектура процессоров. Основные виды памяти, используемые в микроконтроллерах. Регистры, используемые для управления различными устройствами, подключенными к процессору. Пространство ввода-вывода. Внешняя память.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 30.10.2011
Размер файла 322,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Характеристика микроконтроллеров

1. Понятие микроконтроллера

микроконтроллер процессор память регистр

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

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

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

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

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

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

Рис. 1 - Общая структура микроконтроллера.

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

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

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

Микроконтроллеры отличаются не только архитектурой и характеристиками, но и особенностями функционирования и реализации. Большинство микроконтроллеров представляют собой процессор, интегрированный с памятью и устройствами ввода/вывода данных. Некоторые микроконтроллеры не являются реальными приборами, а имеют вид макромоделей, описанных на языке высокого уровня VHDL, которые созданы для включения в состав специализированных заказных микросхем (ASIC -- Application Specific Integrated Circuits). Такая реализация позволяет инженеру-проектировщику ввести в разрабатываемую микросхему память и устройства ввода/вывода данных, которые соответствуют требованиям технического задания. Практически все микроконтроллеры входят в состав определенных семейств, члены которых отличаются составом и характеристиками периферийных устройств, реализованных на кристалле.

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

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

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

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

2. Типы микроконтроллеров

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

Встраиваемые 8-разрядные микроконтроллеры

Размещено на http://www.allbest.ru/

16-и 32-разрядные микроконтроллеры

Цифровые сигнальные процессорыРазмещено на http://www.allbest.ru/

(DSP)

Встраиваемые микроконтроллеры.

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

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

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

Схема начального запуска процессора (ResetРазмещено на http://www.allbest.ru/

)

Генератор тактовых импульсов

Центральный процессор

Размещено на http://www.allbest.ru/

Память программ (EРазмещено на http://www.allbest.ru/

(E)P)ROM и программный интерфейс

Память данных RAMРазмещено на http://www.allbest.ru/

Средства ввода-вывода данных

Размещено на http://www.allbest.ru/

Таймеры, фиксирующие число командных циклов

Более сложные встраиваемые микроконтроллеры могут дополнительно реРазмещено на http://www.allbest.ru/

ализовать следующие возможности:

Встроенный монитор / отладчик программ

Внутренние средства программирования памяти программ (Размещено на http://www.allbest.ru/

ROM)

Обработка прерываний от различных источников

Размещено на http://www.allbest.ru/

Аналоговый ввод-вывод

Последовательный ввод-вывод (синхронный и асинхронный)

Размещено на http://www.allbest.ru/

Параллельный ввод-вывод (включая интерфейс с компьютером)

Подключение внешней памяти (микропроцессорный режим)

Размещено на http://www.allbest.ru/

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

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

Типичные значения максимальной частоты тактовых сигналов составляют для различных микроконтроллеров 10 -- 20 МГц. Главным фактором, ограничивающим их скорость, является время доступа к памяти, применяемой в микроконтроллерах. Однако для типичных применений это ограничение не является существенным.

16-и 32-разрядные микроконтроллеры (микроконтроллеры с внешней памятью).

Некоторые микроконтроллеры (особенно 16- и 32-разрядные) используют только внешнюю память, которая включает в себя как память программ (ROM), так и некоторый объем памяти данных (RAM), требуемый для данного применения. Структура микроконтроллера с внешней памятью показана на рис. 2.

Рис. 2 - Блок схема микроконтроллера с внешней памятью.

Классическим примером такого микроконтроллера является Intel 80188. По существу он представляет собой микропроцессор 8088, который использовался в компьютерах IBM PC, интегрированный на общем кристалле с дополнительными схемами, реализующими ряд стандартных функций, таких как прерывания и прямой доступ к памяти (DMA). Цель создания 80188 состояла в том, чтобы объединить в одном корпусе все устройства, необходимые инженеру для реализации систем, в которых могут использоваться функциональные возможности и программное обеспечение микропроцессора 8088.

Аналогичные цели достигаются при использовании микроконтроллера 80186, который имеет 16-разрядную внешнюю шину (80188 имеет 8-разрядную внешнюю шину) и представляет собой 16-разрядный процессор 8086, интегрированный на общем кристалле с дополнительными периферийными схемами (такими же, как в 80188). Также как микропроцессор 8088 является упрощенной (8-разрядная внешняя и 16-разрядная внутренняя шина) версией 8086 (16-разрядные внешняя и внутренняя шины), так и микроконтроллер 80188 является упрощенной версией 80186.

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

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

Цифровые сигнальные процессоры

Цифровые сигнальные процессоры (DSP) - относительно новая категория процессоров. Назначение DSP состоит в том, чтобы получать текущие данные от аналоговой системы и формировать соответствующий отклик. DSP и их ALU (Arithmetic Logic Unit - арифметико-логическое устройство, которое является аппаратным средством для выполнения вычислений) работают с очень высокой скоростью, что позволяет осуществлять обработку данных в реальном масштабе времени. DSP часто используются в активных шумоподавляющих микрофонах, которые устанавливаются в самолетах (второй микрофон обеспечивает сигнал окружающего шума, который вычитается из сигнала первого микрофона, позволяя таким образом подавить шум и оставить только голос) или для подавления раздвоения изображения в телевизионных сигналах.

Разработка DSP алгоритмов - это специальный раздел теории управления. Изложение этой теории требует использования весьма сложной математической базы.

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

3. Архитектура процессоров

CISC и RISC процессоры.

В настоящее время существует множество RISC (Reduced Instruct Set Computers -- компьютеры с сокращенной системой команд) процессоров, так как сложилось мнение, что RISC быстрее чем CISC (Complex Instruction Set Computers : компьютеры со сложной системой команд) процессоры. Такое мнение не совсем верно. Имеется много процессоров называемых RISC, но на самом деле относящихся к CISC. Более того, в некоторых приложениях CISC-процессоры выполняют программный код быстрее, чем это делают RISC-процессоры, или решают такие задачи, которые RISC-процессоры не могут выполнить.

Каково истинное различие между RISC и CISC? CISC-процессоры выполняют большой набор команд с развитыми возможностями адресации (непосредственная, индексная и т.д.), давая разработчику возможность выбрать наиболее подходящую команду для выполнения необходимой операции. В RISC-процессорах набор выполняемых команд сокращен до минимума. При этом разработчик должен комбинировать команды, чтобы реализовать более сложные операции.

Возможность равноправного использования всех регистров процессора называется «ортогональностью» или «симметричностью» процессора. Это обеспечивает дополнительную гибкость при выполнении некоторых операций. Рассмотрим, например, выполнение условных переходов в программе. В CISC-процессорах условный переход обычно реализуется в соответствии с определенным значением бита (флага) в регистре состояния. В RISC-процессорах условный переход может происходить при определенном значении бита, который находится в любом месте памяти. Это значительно упрощает операции с флагами и выполнение программ, использующих эти флаги.

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

ГАРВАРД против ПРИНСТОНА.

Много лет назад правительство Соединенных Штатов дало задание Гарвардскому и Принстонскому университетам разработать архитектуру компьютера для военно-морской артиллерии. Принстонский университет разработал компьютер, который имел общую память для хранения программ и данных. Такая архитектура компьютеров больше известна как архитектура Фон-Неймана по имени научного руководителя этой разработки (рис. 3).

Рис. 3 - Структура компьютера с Принстонской архитектурой.

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

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

Рис. 4 - Структура компьютера с Гарвардской архитектурой

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

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

Основным преимуществом архитектуры Фон Неймана является то, что она упрощает устройство микропроцессора, так как реализует обращение только к одной общей памяти. Для микропроцессоров самым важным является то, что содержимое ОЗУ (RAM - Random Access Memory) может быть использовано как для хранения данных, так и для хранения программ. В некоторых приложениях программе необходимо иметь доступ к содержимому стека. Все это предоставляет большую гибкость для разработчика программного обеспечения, прежде всего в области операционных систем реального времени, о которых пойдет речь позднее.

Гарвардская архитектура выполняет команды за меньшее количество тактов, чем архитектура Фон Неймана. Это обусловлено тем, что в Гарвардской архитектуре больше возможностей для реализации параллельных операций. Выборка следующей команды может происходить одновременно с выполнением предыдущей команды, и нет необходимости останавливать процессор на время выборки команды.

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

Рис. 5 - Выполнение команды mov Асс, Reg в Принстонской архитектуре

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

Рис. 6 - Выполнение команды mov Асс, Reg в Гарвардской архитектуре.

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

Например, микроконтроллер PIC фирмы Microchip выполняет любую команду, кроме тех, которые модифицируют содержимое программного счетчика, за четыре такта (один цикл). Это упрощает реализацию критических ко времени процедур по сравнению с микроконтроллером Intel 8051, где для выполнения команд может потребоваться от 12 до 64 тактов.

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

Многие, вероятно, подумают, что Гарвардская архитектура - это единственно правильный выбор. Но Гарвардская архитектура является недостаточно гибкой для некоторых программных процедур, которые требуются для реализации ряда приложений.

4. Типы памяти микроконтроллеров

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

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

Память программ

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

PROM (однократно-программируемое ПЗУ),

Размещено на http://www.allbest.ru/

EPROM (электрически програмРазмещено на http://www.allbest.ru/

мируемое ПЗУ с ультрафиолетовым стиранием),

EEPROM (ПЗУ с электриРазмещено на http://www.allbest.ru/

ческой записью и стиранием, к этому виду относятся также современные микросхемы Flash-памяти)

ROMРазмещено на http://www.allbest.ru/

(масочно-программируемое ПЗУ).

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

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

Следует обратить внимание, что разрядность микроконтроллера (8, 16 или 32 бит) указывается в соответствии с разрядностью его шины данных. В Гарвардской архитектуре команды могут иметь большую разрядность, чем данные, чтобы дать возможность считывать за один такт целую команду. Например, микроконтроллеры PIC в зависимости от модели используют команды с разрядностью 12, 14 или 16 бит. В микроконтроллерах AVR команда всегда имеет разрядность 16 бит. Однако все эти микроконтроллеры имеют шину данных разрядностью 8 бит.

В устройствах с Принстонской архитектурой разрядность данных обычно определяет разрядность (число линий) используемой шины. В микроконтроллерах Motorola 68HC05 24-разрядная команда размещается в трех 8-разрядных ячейках памяти программ. Для полной выборки такой команды необходимо произвести три цикла считывания этой памяти.

Когда говорится, что устройство является 8-разрядным, это означает разрядность данных, которые способен обрабатывать микроконтроллер.

Память ROM (ПЗУ) используется тогда, когда программный код заносится в микроконтроллер на этапе его производства. Предварительно программа отлаживается и тестируется, после чего передается фирме-производителю, где программа преобразуется в рисунок маски на стеклянном фотошаблоне. Полученный фотошаблон с маской используется в процессе создания соединений между элементами, из которых состоит память программ. Поэтому такую память часто называют масочно-программируемой ROM.

ROM является самым дешевым типом постоянной памяти для массового производства. Однако она имеет ряд существенных недостатков, которые привели к тому, что в последние годы этот тип памяти почти не используется. Основными недостатками являются значительные затраты средств и времени на создание нового комплекта фотошаблонов и их внедрение в производство. Обычно такой процесс занимает около десяти недель и является экономически выгодным при выпуске десятков тысяч приборов. Только при таких объемах производства обеспечивается преимущество ROM по сравнению с E(E)PROM. Существует также ограничение, связанное с возможностью использования таких микроконтроллеров только в определенной сфере применения, так как его программа обеспечивает выполнение жестко фиксированной последовательности операций, и не может быть использована для решения каких-либо других задач.

Электрически программируемая память EPROM состоит из ячеек, которые программируются электрическими сигналами и стираются с помощью ультрафиолетового света. Память PROM может быть запрограммирована только один раз. Эта память обычно содержит плавкие перемычки, которые пережигаются во время программирования. В настоящее время такая память используется очень редко.

Ячейка памяти EPROM представляет собой МOS-транзистор с плавающим затвором, который окружен диоксидом кремния (SiO2). Сток транзистора соединен с «землей», а исток подключен к напряжению питания с помощью резистора. В стертом состоянии (до записи) плавающий затвор не содержит заряда, и МOS-транзистор закрыт. В этом случае на истоке поддерживается высокий потенциал, и при обращении к ячейке считывается логическая единица. Программирование памяти сводится к записи в соответствующие ячейки логических нулей.

Программирование осуществляется путем подачи на управляющий затвор высокого напряжения (рис 7). Этого напряжения должно быть достаточно, чтобы обеспечить пробой между управляющим и плавающим затвором, после чего заряд с управляющего затвора переносится на плавающий. MOS-транзистор переключается в открытое состояние, закорачивая исток с землей. В этом случае при обращении к ячейке считывается логический нуль.

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

Рис 7 - Ячейка памяти EPROM.

Обычно, микросхемы EPROM производятся в керамическом корпусе с кварцевым окошком для доступа ультрафиолетового света. Такой корпус довольно дорог, что значительно увеличивает стоимость микросхемы. Для уменьшения цены микросхемы EPROM заключают в корпус без окошка (версия EPROM с однократным программированием). Сокращение стоимости при использовании таких корпусов может быть настолько значительным, что эти версии EPROM в настоящее время часто используются вместо масочно-программируемых ROM.

Раньше микроконтроллеры программировались только с помощью параллельных протоколов, достаточно сложных для реализации. В настоящее время протоколы программирования современной EPROM и EEPROM памяти существенно изменились, что позволило выполнять программирование микроконтроллера непосредственно в составе системе, где он работает. Такой способ программирования получил название «in-system programming» или «ISP». ISP-микроконтроллеры могут быть запрограммированы после того, как их припаяли на плату. При этом сокращаются расходы на программирование, так как нет необходимости в использовании специального оборудования - программаторов.

Память EEPROM (Electrically Erasable Programmable Memory - электрически стираемая программируемая память) можно считать новым поколением EPROM памяти. В такой памяти ячейка стирается не ультрафиолетовым светом, а путем электрического соединения плавающего затвора с «землей». Использование EEPROM позволяет стирать и программировать микроконтроллер, не снимая его с платы. Таким способом можно периодически обновлять его программное обеспечение.

Память EEPROM более дорогая, чем EPROM (в два раза дороже EPROM с однократным программированием). EEPROM работает немного медленнее, чем EPROM.

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

Функционально Flash-память мало отличается от EEPROM. Основное различие состоит в способе стирания записанной информации. В памяти EEPROM стирание производится отдельно для каждой ячейки, а во Flash-памяти стирание осуществляется целыми блоками. Если Вы хотите изменить содержимое одной ячейки Flash-памяти, то Вам потребуется перепрограммировать целый блок (или всю микросхему). В микроконтроллерах с памятью EEPROM можно изменять отдельные участки программы без необходимости перепрограммировать все устройство.

Часто указывается, что микроконтроллер имеет Flash-память, хотя на самом деле он содержит EEPROM. В настоящее время между этими типами памяти имеется мало различий, поэтому некоторые производители используют эти термины как эквивалентные.

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

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

Если Вы пишите программы для персонального компьютера (PC), то у Вас, вероятно, возникнет вопрос, что можно сделать с таким маленьким объемом памяти. Вероятно, Ваши приложения для PC содержат переменные, объем которых измеряется в килобайтах, не считая используемых массивов данных. При использовании массивов требуемый объем памяти может составлять сотни килобайт. Так что же можно сделать, имея объем ОЗУ порядка 25 байт?

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

Стек

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

Стек - это электронная структура данных, которая функционирует аналогично своей физической копии - стопки бумаг. Когда что-либо помещается в стек, то оно остается там до тех пор, пока не будет вынуто обратно. Представьте разноцветные листы бумаги, которые укладываются в стопку один на другой. Когда листы удаляются, то происходит их перемещение в обратном порядке. По этой причине, стек часто называют очередью типа LIFO (Last In. First Out) - «последний пришел, первый ушел».

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

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

В Гарвардской архитектуре стековые операции могут производиться в памяти, специально выделенной для этой цели. Это означает, что при выполнении команды вызова подпрограммы «call» процессор с Гарвардской архитектурой выполняет несколько действий одновременно. В Принстонской архитектуре при выполнении команды «call» следующая команда выбирается после того, как в стек будет помещено содержимое программного счетчика.

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

Если в процессоре выделен отдельный стек, и объем записанных в него данных превышает его емкость, то происходит циклическое изменение содержимого указателя стека, и указатель стека начинает ссылаться на ранее заполненную ячейку стека. Это означает, что после слишком большого количества команд «call» в стеке окажется неправильный адрес возврата, который был записан вместо правильного адреса. Если микропроцессор использует общую область памяти для размещения данных и стека, то существует опасность, что при переполнении стека произойдет запись в область данных, либо будет сделана попытка записи загружаемых в стек данных в область ROM.

Теперь рассмотрим возможности сохранения в стеке содержимого регистров. В некоторых архитектурах нет команд, выполняющих загрузку содержимого регистров в стек «push» и извлечения из стека «pop». Однако команды «push» и «pop» могут быть легко реализованы при помощи индексного регистра, который явно указывает на область стека. При этом вместо каждой из команд «push» и «pop» используются две команды, указанные ниже:

Push: ;загрузка данных в стек

move [index], А ;сохранить содержимое аккумулятора в стеке

Decrement index ;перейти к следующей ячейке стека

Pop: ;извлечение данных из стека

increment index ;перейти к предыдущей ячейке стека

move А, [index] ;поместить значение стека в аккумулятор

Конечно, такое решение является менее эффективным, чем использование специальных команд «push» и «pop», а используемый индексный регистр может потребоваться для других целей. Однако это решение обеспечивает имитацию стека при использовании процессоров, у которых такие команды отсутствуют.

Существует еще одна проблема с приведенным выше примером. Что случится, если произойдет прерывание между первой и второй командой, которые имитируют операции «push» и «pop»? Если программа обработки прерывания использует стек, то записанные в нем данные будут потеряны. Для предотвращения этого можно запретить прерывания перед выполнением этих команд или переставить их в следующем порядке:

Push: ;загрузка данных в стек

Decrement index ;перейти к следующей ячейке стека

move [index], А ;сохранить содержимое аккумулятора в стеке

Pop: ;извлечение данных из стека

move А, [index] ;поместить значение стека в аккумулятор

increment index ;перейти к предыдущей ячейке стека

Если после первой команды программа будет прервана, то после выполнения обработки прерывания содержимое стека не будет потеряно.

5. Регистры микроконтроллера. Пространство ввода-вывода

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

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

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

Одним из важных вопросов является размещение регистров в адресном пространстве. В некоторых процессорах все регистры и RAM располагаются в одном адресном пространстве. Это означает, что память совмещена с регистрами. Такой подход называется «отображением устройств ввода-вывода на память».

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

Внешняя память

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

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

Размещено на www.allbest.ru


Подобные документы

  • Отличительные особенности микроконтроллеров AVR семейства Mega. Характеристики процессора, подсистемы ввода-вывода. Архитектура ядра и организация памяти. Регистры общего назначения. Алгоритмы моделирования команд. Реализация модели внешнего устройства.

    курсовая работа [3,7 M], добавлен 24.06.2013

  • Архитектура микроконтроллеров AVR и PIC. Описание и структура регистров из области ввода/вывода. Внутренняя и внешняя память SRAM микроконтроллеров AVR. Особенности аналого-цифрового преобразования. Переключение в режим параллельного программирования.

    лекция [755,2 K], добавлен 28.05.2010

  • Характеристика, разновидности, архитектура процессоров. Понятие интерфейса, описание видов шин, внешних запоминающих устройств, особенности конструкции. Специфика файловой системы устройства подсистемы ввода/вывода, достоинства, недостатки, база данных.

    курс лекций [747,0 K], добавлен 24.06.2009

  • Виды информации и формы ее представления. Системы счисления, используемые в ЭВМ. Типы операционных элементов. Понятие архитектуры ЭВМ. Организация системы памяти. Принцип программного управления. Синхронный конвейер команд, оценка его производительности.

    шпаргалка [1,7 M], добавлен 04.06.2013

  • Использование пользовательских регистров. Регистры общего назначения. Элементарные и базовые типы данных. Язык микроопераций, ассемблер. Директивы резервирования памяти. Система команд, организация вычислений. Сложные структуры данных. Схемы ввода-вывода.

    курс лекций [280,7 K], добавлен 02.12.2009

  • Принцип работы ядра процессора, типы архитектур ядер операционных систем. Сокет(Socket), кэш-память, контроллер ОЗУ, северный мост. Внутренняя архитектура процессоров Intel и AMD: расшифровка названий, технологии процессоров, сравнение производительности.

    реферат [214,9 K], добавлен 05.05.2014

  • Особенности применения светодиодной индикации в микроконтроллерных системах. Характеристика основных приемов программирования универсальных портов ввода-вывода микроконтроллеров AVR. Этапы проектирования елочной гирлянды с микроконтроллерным управлением.

    лабораторная работа [291,7 K], добавлен 17.11.2012

  • Используемые в компьютерах устройства памяти для хранения данных. Внутренние (оперативная и кэш-память) и внешние устройства памяти. Уровни иерархии во внутренней памяти. Подключения дисководов и управления их работой с помощью дискового контроллера.

    презентация [47,7 K], добавлен 26.11.2009

  • Построение современных центральных процессоров на основе циклического процесса последовательной обработки информации. Архитектура двойного конвейера с общим вызовом команд. Основная идея создания кэш-памяти. Характеристика процессоров Core и Phenom.

    реферат [1,6 M], добавлен 30.12.2010

  • Основные элементы электронной таблицы. Типы данных, используемых в электронных таблицах. Используемые типы функций. Области применения табличных процессоров. Обзор наиболее популярных табличных процессоров. Microsoft Excel, Open Office Calc.

    курсовая работа [142,2 K], добавлен 21.11.2007

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.