Микроконтроллеры семейства avr реферат

Обновлено: 02.07.2024

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

Содержание работы

Введение 3
Структура микроконтроллера 4
Простейшая программа. 7
Прерывания 8
Подключение дисплея (asm) 12
Программа для работы с дисплеем через COM-порт. 15
Литература 18

Файлы: 1 файл

курсовая.docx

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Проектирование систем на базе микроконтроллера AVR

Кенть Павел Геннадьевич

Бухтояров Сергей Евгеньевич

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

Простейшая программа. 7

Подключение дисплея (asm) 12

Программа для работы с дисплеем через COM-порт. 15

Введение

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

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

Микроконтроллер (англ. Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ или ПЗУ. По сути, это однокристальный компьютер, способный выполнять простые задачи.

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

В своей работе я приведу примеры программ, написанных на двух языках программирования: Assembler и C. Все программы на ассемблере будут написаны в среде AVRStudio, а программа на C будет написана в среде mikroC PRO for AVR. Для проверки правильности работы программ будет использоваться программа моделирования Proteus.

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

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

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

Давайте рассмотрим типичные схемы, присутствующие в микроконтроллерах.

1. Центральное процессорное устройство (ЦПУ) — сердце микроконтроллера. Оно принимает из памяти программ коды команд, декодирует их и выполняет. ЦПУ состоит из регистров, арифметико-логического устройства (АЛУ) и цепей управления.

2. Память программ. Здесь хранятся коды команд, последовательность которых формирует программу для микроконтроллера.

3. Оперативная память данных. Здесь хранятся переменные программ. У большинства микроконтроллеров здесь расположен также стек.

4. Тактовый генератор. Этот генератор определяет скорость работы микроконтроллера.

5. Цепь сброса. Эта цепь служит для правильного запуска микроконтроллера.

6. Последовательный порт — очень полезный элемент микроконтроллера. Он позволяет обмениваться данными с внешними устройствами при малом количестве проводов.

7. Цифровые линии ввода/вывода. По сравнению с последовательным портом, с помощью этих линий возможно управлять одновременно несколькими линиями (или проверять несколько линий).

8. Таймер. Используется для отсчета временных интервалов.

9. Сторожевой таймер. Это специальный таймер, предназначенный для предотвращения сбоев программы. Он работает следующим образом: после запуска он начинает отсчет заданного временного интервала. Если программа не перезапустит его до истечения этого интервала времени, сторожевой таймер перезапустит микроконтроллер. Таким образом, программа должна давать сторожевому таймеру сигнал — все в порядке. Если она этого не сделала, значит, по какой-либо причине произошел сбой.[2]

Основные параметры ATMega8:

Flash: объем внутренней памяти микроконтроллера, используемой в качестве памяти программ (память программ – пространство, которое содержит машинный код выполняемый микроконтроллером и полученный в результате трансляции специальной программной среды).

EEPROM: объем внутренней энергонезависимой памяти данных (память данных – пространство используемое микроконтроллером для временного хранения полученных в результате работы вычислений и прочих данных которые будут использованы в дальнейшем).

SRAM: объем внутренней энергозависимой памяти данных.

Линии ввода-вывода: фактически количество ножек микроконтроллера, с помощью которых он взаимодействует с внешним миром.

Fmax – максимальное значение рабочей тактовой частоты микроконтроллера, чем она выше, тем соответственно он работает быстрее.

Vcc – питание необходимое для работы микроконтроллера, чем меньше значение питания тем меньше энергопотребление, тем эффективнее использование микроконтроллера.

Микроконтроллеры серии AVR имеют так называемую Гарвардскую архитектуру, основной особенностью которой является наличие раздельной шины данных и шины команд.[3]

Простейшая программа.

Рассмотрим очень простой пример: написать программу, которая при первом нажатии на кнопку зажигает светодиод, а при повторном нажатии тушит его.

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

.include "m8def.inc" ;Подключение микроконтроллера ATMega8

.cseg ; Выбор сегмента программного кода

.def temp = r16 ; Переименуем регистры для упрощения дальнейшего использования

out DDRD, temp ; Записываем ноль в DDRD (порт PD на ввод)

ldi temp, 0xFF ; Записываем число FF в регистр temp

out DDRB, temp ; Записываем это число в DDRB (порт PB на вывод)

out PORTD, temp ; Записываем то же число в PORTB (потушить светодиод)

out PORTB, temp ; Записываем его же в PORTD (включаем внутр. резисторы)

wait_off: in temp, PIND

wait_on: in temp, PIND

vkl: ldi rab,0b01010101

vikl: ldi temp, 0xFF

Принцип работы очень простой. В начале программы настраиваем порты ввода-вывода и переходим к основному циклу. Далее проверяем значение на PD0 (ножка 2) для определения, нажата ли кнопка. Значение rab показывает, что нужно делать со светодиодом (зажигать или тушить), и соответственно, подавать нужные значения на порт В. Метки wait_off и wait_on нужны для того, чтобы при удерживании кнопки в нажатом состоянии светодиод не моргал.

Прерывания

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

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

Внешних прерываний у большинства МК AVR два или три. Естественно, они могут возникать независимо друг от друга. Внешнее прерывание — событие, которое наступает при наличии сигнала на одном из входов, специально пред-
назначенных для этого (например, INTO и INT1).

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

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

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

Программа работает аналогично предыдущей, отличие лишь в том, что основной часть программы – бесконечный пустой цикл, а остальное – обработка прерываний. Также следует добавить, что за разрешение или запрет прерываний int0, int1 отвечают два старших бита регистра GICR.[5],[1]

.def rab = r17; Определение главного рабочего регистра

.cseg ; Выбор сегмента программного кода

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

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА AVR
Как и в любом процессоре, особенности AVR являются следствием общих принципов, использованных при их разработке. Контроллеры реализованы на базенабора регистров, представленных в графическом виде на рисунке 1. Структура микроконтроллера AVR показана на рисунке 2. Эта организация обеспечивает высокую эффективность процессора при обработке данных. Архитектура AVR оптимизирована, чтобы соединить достоинства Гарвардской и Принстонской архитектур для достижения очень быстрого и эффективного выполнения программ [11].

Рис. 1. Приоритетырегистров в архитектуре процессоров AVR

1.Регистры общего назначения и АЛУ
Простое ядро процессора, которое содержит регистры общего назначения и АЛУ, может выполнять 91 из 120 команд, реализуемых AVR. Каждая из этих команд использует содержимое регистров общего назначения при выполнении операций (рисунок 3).
Есть два типа команд, которые могут выполняться этим ядром. Арифметические операциивыполняются над содержимым РОН, а операции изменения последовательности команд могут реализовать только переходы в программе, но не могут производить вызов подпрограмм или сохранение содержимого программного счетчика.
При обращении к РОН и АЛУ используется только один способ адресации – прямая регистровая адресация, которая осуществляется путем указания адреса выбираемого регистра. В команде могутбыть указаны адреса одного или двух регистров. Например, сложение содержимого двух регистров с сохранением результата в первом из них выполняется при помощи команды add: (add А, В), которая может быть записана в виде: А = А + В – или представлена графически (рисунок 4).
Если второй операнд не требуется, в команде указывается только один регистр, как, например, в команде инверсии. Второй операнд можетявляться частью команды (непосредственная адресация), в этом случае данные с шины команд поступают на шину данных.


Рис. 2. Структура микроконтроллера AVR 8515 фирмы Atmel

Рис. 3. Структурная схема регистров общего назначения и АЛУ

Рис. 4. Пути передачи данных при выполнении команды AVR add А,ВПрибавление константы выполняется при помощи команды addiw A, const, что означает А = А + constи показано графически на рисунке 5. Содержимое программного счетчика инкрементируется после того, как очередная команда считывается из памяти или принимает новое значение при выполнении команды безусловного перехода jmp (рисунок 6).

Рис. 5. Пути передачи данных при выполнении команды adiw A, const

Рис. 6. Пути передачи данных при команде безусловного перехода jump label
2.РегистрсостоянияПри первом взгляде на описание регистра состояния в документации на микроконтроллеры AVR вас может удивить количество битов в нем и кажущаяся сложность выполняемых ими функций. После включения регистра состояния структура AVR будет иметь вид, показанный на рисунке 7.

Рис. 7. Архитектура AVR с учетом регистра состояния SREG
Регистр состояния является частью адресного.

Микроконтроллер типа AVR компании ATMEL ( реферат , курсовая , диплом , контрольная )

ВВЕДЕНИЕ

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

Микроконтроллеры семейства AVR за сравнительно короткое время завоевали заслуженную популярность во всём мире.

1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Основными моментами работы являются:

- реализация алгоритмов рисования графических примитивов;

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

- реализация обмена данными по COM-port;

- реализация управления при помощи мыши;

- тестирование и оптимизация программного продукта;

- исследование возможностей микроконтроллера.

Сигналы маши по изменению координат

Управление одной из ракеток на дисплее

Принимаемые данные с порта

Получение координат положения ракетки

Посылка информации на порт

Передача координат положения ракетки

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

2. ТЕХНИЧЕСКОЕ ПРЕДЛОЖЕНИЕ

Рисунок 2.1 — Алгоритм общего взаимодействия всех блоков проекта Рисунок 2.2 — Алгоритм игры

2.2 Выбор элементной базы Макет представляет собой универсальное устройство на базе микроконтроллера AVR ATmega 128 (fт=11,59 200 МГц), в состав которого входят: микроконтроллер AVR ATmega 128, графический ЖК-дисплей Toshiba T6963C, блок светодиодов, клавиатуры: 34 и 31 (количество столбцов количество строк), АЦП, последовательный интерфейс RS-232C. Сопряжение лабораторного макета и программатора (ПЭВМ) обеспечивается с помощью последовательного интерфейса SPI, конструктивно использующего стандартный разъем Centronics DB-25. Блок из восьми светодиодов подключен к микроконтроллеру через порт D. Сопряжение клавиатуры 34 осуществляется с помощью порта Е. Через порт F, линии которого являются входами АЦП. На рис. 2.4 показана структурная схема лабораторного макета на базе микроконтроллера AVR ATmega 128.

Интерфейс порта В конструктивно выполнен в виде унифицированного разъема DB-25, Для линий двух встроенных в микроконтроллер последовательных интерфейсов RS-232C (USART0, USART1) предназначены разъемы DB-9, расположенные на задней панели макета. На задней панели находится также разъем для подключения внешнего источника питания (12 В) и выключатель электропитания.

Рисунок 2.3 — Структурная схема лабораторного макета на базе микроконтроллера AVR ATmega 128

2. Развитая RISC-архитектура.

3. 133 мощных инструкций, большинство из которых выполняются за один машинный цикл.

5. Полностью статическая работа.

6. Производительность до 16 млн. операций в секунду при тактовой частоте 16 МГц.

7. Встроенное умножающее устройство выполняет умножение за 2 машинных цикла.

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

10. Опциональный загрузочный сектор с отдельной программируемой защитой.

11. Внутрисистемное программирование встроенной загрузочной программой.

12. Гарантированная двухоперационность: возможность чтения во время записи.

13. Износостойкость 4 кбайт ЭСППЗУ: 100 000 циклов запись/стирание.

14. Встроенное статическое ОЗУ емкостью 4 кбайт.

15. Опциональная возможность адресации внешней памяти размером до 64 кбайт.

Рисунок 2.4 — Функциональная схема Ядро AVR сочетает богатый набор инструкций с 32 универсальными рабочими регистрами. Все 32 регистра непосредственно подключены к арифметико-логическому устройству (АЛУ), который позволяет указать два различных регистра в одной инструкции и выполнить ее за один цикл. Данная архитектура обладает большей эффективностью кода за счет достижения производительности в 10 раз выше по сравнению с обычными CISC-микроконтроллерами (рис 2.5).

ATmega128 поддерживается полным набором программных и аппаратных средств для проектирования, в т. ч. : С-компиляторы, макроассемблеры, программные отладчики/симуляторы, внутрисистемные эмуляторы и оценочные наборы.

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

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

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

Для ветвления программы поддерживаются инструкции условных и безусловных переходов и вызовов процедур, позволяющих непосредственно адресоваться в пределах адресного пространства. Большинство инструкций представляют собой одно 16-разр. слово. Каждый адрес памяти программ содержит 16- или 32-разр. инструкцию. Флэш-память программ разделена на две секции: секция программы начальной загрузки и секция прикладной программы. Обе секции имеют раздельные биты защиты от записи и чтения/записи. Инструкция SPM (запись в секцию прикладной программы) должна использоваться только внутри секции программы начальной загрузки.

Высокопроизводительное АЛУ AVR-микроконтроллеров работает в непосредственной связи со всеми 32 универсальными рабочими регистрами. АЛУ позволяет выполнить за один машинный цикл операцию между двумя регистрами или между регистром и константой. Операции АЛУ могут быть классифицированы на три группы: арифметические, логические и битовые. Кроме того, архитектурой ATmega128 поддерживаются операции умножения со знаком и без знака и дробным форматом.

В соответствии с гарвардской архитектурой память AVR-микроконтроллера разделена на две области: память данных и память программ. Кроме того, ATmega128 содержит память на ЭСППЗУ для энергонезависимого хранения данных. Все три области памяти являются линейными и равномерными (6, "https://referat.bookap.info").

Внутрисистемно программируемая флэш-память программ ATmega128 содержит 128 кбайт внутренней внутрисистемно перепрограммируемой флэш-памяти для хранения программы. Поскольку все AVR-инструкции являются 16 или 32-разр., то флэш-память организована как 64 кбайт16. Для программной защиты флэш-память программ разделена на два сектора: сектор программы начальной загрузки и сектор прикладной программы.

Рисунок 2.5 — Карта памяти программ

3. ЭСКИЗНЫЙ ПРОЕКТ Эскизный проект — этап составления спецификаций отдельных блоков, разработка подробной структурно-блочной схемы устройства. На рисунке 3.1 изображена функциональная модель.

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

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

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

Блок определения результата считает количество промахов для каждого игрока.

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

Блок индикации победителя сообщает о победителе и подаёт сигнал на блок задержки.

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

4. ТЕХНИЧЕСКИЙ ПРОЕКТ На данном этапе происходит описание и моделирование функций языка программирования, выбор организации проекта и принципов построения моделей и т. д.

Основными моментами данного этапа являются:

— составление и описание блоков на языке программирования;

— определяются межблоковые связи;

— описание констант и переменных;

— отладка проекта (пошаговое тестирование основных блоков программы в процессе написания и исправление некорректной работы).

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

Рисунок 4.1 — Связи файлов

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

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

Начальные значения выбираются в соответствие с описанием устройства. Тип параметров — int целочисленный тип. При этом по умолчанию используется модификатор типа unsigned, который указывает, что переменная принимает неотрицательные значения. При этом самый левый бит области памяти, выделяемой для хранения значения, используется так же, как и все остальные биты области памяти — для представления значения.

Atmel Corporation — изготовитель полупроводниковых электронных компонентов. Компания основана в 1984 году в США. Корпорация Atmel хорошо известна как на мировом, так и на российском рынках электронных компонентов и является одним из признанных мировых лидеров в разработке и производстве сложных изделий современной микроэлектроники - устройств энергонезависимой памяти высокого быстродействия и минимального удельного энергопотребления, микроконтроллеров общего назначения и микросхем программируемой логики. Первый микроконтроллер Atmel появился в 1993 году и был основан на классическом микроконтроллере Intel 8051. Продукция Atmel включает микроконтроллеры MCS-51, AT91SAM и AT91CAP (основаны на ядре ARM), микроконтроллеры на их собственных ядрах Atmel AVR и AVR32, радиочастотные (RF) устройства, микросхемы памяти типов EEPROM и флеш (включая память, основанную на DataFlash), и некоторое количество других продуктов этой же отрасли. Сейчас Atmel удерживает первое место в мире по производству микросхем параллельной и последовательной EEPROM, лидирует в производстве Flash - микроконтроллеров общего назначения и входит в первую пятерку по производству EPROM, микросхем Flash - памяти и заказных СБИС класса ASIC. Возможность комбинирования нескольких типов электронных ячеек на одном кремниевом кристалле вывела Atmel на новый качественный уровень, позволив целенаправленно ориентировать свою продукцию на требуемые сегменты рынка.

В данном реферате представлены наиболее интересные и доступные в России линии микроконтроллеров, выпускаемых Atmel Corp. Совершенно сознательно вне рассмотрения оставлены микропроцессоры и микроконтроллеры для специальных применений, аэрокосмического назначения, микроконтроллеры для изделий класса Smart Cards а также некоторые узкоспециализированные семейства (USB, DVD, Bluetooth, WIreless LAN, энергосчетчики и др.)

Все микроконтроллеры общего назначения Atmel можно разделить на четыре большие группы:

С архитектурой С51

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

Высокая популярность микроконтроллеров архитектуры С51 производства Atmel была обусловлена удачным стратегическим решением корпорации. Объединив передовую Flash-технологию энергонезависимой памяти с популярным процессорным ядром, Atmel Corp. первой в мире реализовала электрически стираемые и программируемые Flash- 8х51 как современную альтернативу масочным версиям и дорогим микроконтроллерам С51 с ультрафиолетовым стиранием, потеснив на рынке таких лидеров как Philips, Siemens, Intel и Motorola. Агрессивная ценовая политика компании довершила процесс вытеснения EPROM- микроконтроллеров с рынка. Начиная с 1995 года, Atmel ежегодно удваивала объемы продаж своих кристаллов 8х51. Лишь к 2000 году положение выровнялось, когда остальные производители тоже освоили серийный выпуск Flash-микроконтроллеров 8х51. Но до сих пор семейство AT89C/S Atmel Corp. пользуется заслуженной популярностью у разработчиков и производителей электронной аппаратуры. Спрос на микросхемы этого класса остается стабильным. За последние годы объем их производства у корпорации постоянно увеличивается, причем основной прирост наблюдается для однократно программируемых и QuickFlash кристаллов - 87F5x и 80F5x.

Основные изменения коснулись объемов памяти на кристалле, специализированных периферийных модулей, систем "жизнеобеспечения", типов предлагаемых корпусов микроконтроллеров и количества линий ввода/вывода. Появилась возможность оптимального выбора микроконтроллера с небольшим количеством внешних выводов, энергонезависимой памятью данных EEPROM, аналого-цифровым преобразователем, модулем таймеров/счетчиков с функцией "захват/сравнение", коммуникационными интерфейсами I2C/uWire/SPI/UART, клавиатурным интерфейсом, массивом памяти программ до 64К и памяти данных SRAM до 1280 байт, а также использовать различные комбинации этих и других параметров. Из оригинальных разработок Atmel отметим кристаллы, ориентированные на специальные сегменты рынка и содержащие блоки CAN - интерфейса 2.0A/2.0B, MP3 - декодера и мультимедийного интерфейса MMC для аудиоприложений, интерфейса ISO7816-3 для построения считывателей Smart Cards, а также специальные контроллеры для систем сбора/обработки данных.

Многие микроконтроллеры С51 производства Atmel поддерживают режим скоростного внутрисхемного программирования Flash-памяти программ в системе (ISP), в том числе и на целевой плате. Процесс программирования может осуществляться через различные коммуникационные каналы (SPI, UART, I2C, CAN), при этом используется рабочее напряжение питания микросхемы. Это позволяет обновлять содержимое памяти программ в ходе жизни конечного изделия. Некоторые микроконтроллеры имеют специальное скоростное ядро (обозначение Х2), что означает возможность удвоения внутренней тактовой частоты процессора и/или периферийных блоков по сравнению с частотой, задаваемой внешним источником. Снижается уровень электромагнитных помех, создаваемый кристаллом, и его энергопотребление, так как для получения той же производительности требуется меньшее значение внешней опорной частоты. Кроме того, это заметно снижает стоимость микросхем. Для отдельных кристаллов с функцией Х2 реализована интересная возможность "самопрограммирования" памяти программ (SPM). Это означает, что микроконтроллер способен самостоятельно, без внешнего программатора переписывать содержимое ячеек во Flash-памяти программ, т.е. изменять алгоритм своего функционирования и далее работать уже по новой программе. Например, можно написать и сохранить несколько рабочих версий программы для конкретного приложения в микросхеме внешней памяти, а затем по мере необходимости или по реакции на какие-нибудь события перегружать рабочие программы в тот же самый микроконтроллер через выбранный коммуникационный канал, не извлекая его из печатной платы.

Корпорация Atmel также предлагает высокопроизводительные 8/16 разрядные микроконтроллеры, базирующиеся на С251-архитектуре Intel. Микроконтроллеры семейства С251 при полной совместимости с их 8051-прототипами обеспечивают значительное повышение быстродействия.

Atmel Corp. постоянно совершенствует микроконтроллеры семейства С51, планомерно переводя их производство на проектные нормы 0,35 мкм. Так, с июня 2002 года серийно выпускаются две новых микросхемы - AT89S51 и AT89S52. Эти микроконтроллеры полностью совместимы с хорошо известными версиями AT89C51/52 и снабжены функцией программирования в системе.

К сожалению, корпорация Atmel практически полностью отказалась от производства микроконтроллеров С51 в автомобильном и военном температурных диапазонах. Подавляющее большинство этих микросхем не будет выпускаться для работы при температурах ниже -40С и выше +85С. Исключение составляют лишь отдельные версии микроконтроллеров бывшего Temic (включая представителей семейства С251), способные работать в автомобильном (-40С. +125С) и военном (-55С. +125С) температурных диапазонах. Но это скорее исключение, чем правило. Как минимум, все перепрограммируемые Flash-микроконтроллеры Atmel работают только в коммерческом и индустриальном температурном диапазонах.

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

Три независимые шины (команд, памяти и ввода/вывода) используются для параллельной связи между ROM, SRAM и узлами периферии. Благодаря одновременной предварительной выборке команд и передаче данных на узлы периферии, архитектура MARC4 позволят увеличить скорость выполнения программы. Сложный контроллер прерываний имеет несколько уровней приоритета и позволяет быстро обслуживать многочисленные источники - запросы на прерывание (до 14). Низкое рабочее напряжение и малое энергопотребление кристаллов MARC4 идеально подходят для портативных и носимых применений, в том числе и с батарейным питанием. Эти микросхемы успешно применяются в различных областях: инфракрасный и радиочастотный обмен данными, удаленный контроль и управление, встраиваемые применения, и т. д. (например, в качестве контроллеров клавиатуры, драйвера жидкокристаллических и светодиодных индикаторов, считывателя Smart Cards и т.д.).

Микросхемы T48Cx9x (MTP /Flash версия) рекомендуется использовать для опытного и малосерийного производства, а микроконтроллеры M44Cx9x-H / M44Cx9x-V (ROM версия) предназначены для серийного производства. Образцы кристаллов доступны и могут быть заказаны через официальных дистрибьюторов Atmel Corp.

MARC4 также используются для построения считывателей Smart Cards (или чип-карт). Существуют два типа чип-карт: синхронные и асинхронные, различающиеся типом электронного интерфейса. Синхронные чип-карты могут хранить небольшую информацию, их также называют "карты памяти". Асинхронные карты уже включают в себя микроконтроллер с тактовой частотой от 1 МГц до 5 МГц и ориентированы на специальные применения. Микроконтроллер может, например, обеспечивать процесс кодирования для предотвращения несанкционированного доступа к данным, осуществлять идентификацию владельца карты и т.д. Поскольку в асинхронных картах для передачи данных через порт ввода/вывода необходим системный тактовый генератор, то это может обеспечиваться таймером 1 микроконтроллера семейства MARC4 (например, M44C510). Тактовая частота на входе чип-карты делится для последовательного интерфейса ввода/вывода на целое число F, обычно принимаемое равным 372 и 512. Скорость передачи при этом рассчитывается как fCLK/F, формат данных соответствует интерфейсу V.24.

Для программирования микроконтроллеров MARC4 разработано программное обеспечение для платформы PC с компилятором языка высокого уровня qFORTH. Существует также плата аппаратного внутрисхемного эмулятора. Архитектура MARC4 позволяет использовать для разработки проектов язык высокого уровня без потери эффективности и плотности программного кода.

Eще в 1994 году фирмой ARM было разработано 32-разрядное процессорное RISC-ядро ARM7. Оно оказалось настолько удачным, что легло в основу целого ряда 32-разрядных процессоров, и, с различными модификациями, используется до настоящего времени.

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

Технология Thumb - дополнительное расширение к архитектуре ARM. Система команд Thumb является производной от стандартной 32-разрядной системы команд ARM, перекодированных в 16-разрядные коды. Применение системы команд Thumb позволило достичь очень высокой плотности кода, поскольку команды Thumb составляют половину ширины формата команд ARM. В процессе выполнения эти новые 16-разрядные Thumb-коды декомпрессируются процессором в соответствующие эквивалентные команды ARM, которые затем и выполняются процессорным ядром обычным способом. Thumb-ориентированные ядра имеют по сути две отдельных системы команд - уникальное достоинство, позволяющее разработчику использовать как производительность 32-разрядной системы команд ARM, так и преимущества малого размера кода системы команд Thumb. Средства декодирующей логики Thumb чрезвычайно просты, что лишь незначительно увеличивает размер кристалла и не приводит к увеличению энергопотребления. Впервые технология Thumb была встроена в ядро ARM7 еще в 1995 году. Адаптированное под нее ядро получило типовое обозначение ARM7TDMI (ARM7, T-наличие Thumb; D-возможность внутрисхемной аппаратной отладки; M-наличие аппаратного перемножителя; I-наличие модуля управления отладкой) и за короткое время было лицензировано большим количеством фирм-производителей, таких как Atmel, CirrusLogic, Sharp, Samsung, Triscend и др. Ядро ARM7TDMI используется как при создании различных устройств типа ASIC, так и при создании микроконтроллеров общего назначения и реконфигурируемых систем на кристалле. Основные достоинства ARM Thumb - высокая производительность при низком энергопотреблении и многофункциональность. Это определяет основную нишу для конечных приложений - интеллектуальная портативная и носимая аппаратура, в том числе и с батарейным питанием. Многие производители сложной электронной техники уже используют ядро ARM Thumb, встраивая его в свои законченные интегральные изделия. Это, например, приемники GPS (фирмы Mitel и SiRF), оборудование для базовых станций GSM (Ericsson) и сами телефоны GSM, приложения Audio WMA/MP3 (dBTech и Microsoft), модемы (Ericsson), пейджеры (Motorola), торговые терминалы, сетевые устройства и др.

Фирма Atmel начала поставки микроконтроллеров семейства AT91, в основу которых положено ядро ARM7TDMI, в сентябре 1998 года. И данное направление активно развивается. Atmel позиционирует AT91 ARM Thumb как стандартное 32-разрядное процессорное ядро для разнообразных массовых применений. Основные силы корпорации направлены на совершенствование технологического процесса, при этом в производство для широкой продажи попадают только удачные решения, реально претендующие на универсальность. По объему выпуска микросхем АТ91 с ядром ARM7TDMI корпорация вплотную приблизилась к признанным лидерам - Motorola и MIPS. В настоящее время выпущено и анонсировано три семейства микроконтроллеров серии AT91 - M40, M63 и M55. В планы корпорации Atmel входит также разработка и выпуск ряда комбинированных кристаллов - AT91+Ethernet/USB, AT91+CAN и AT91+MP3.

Микроконтроллеры семейства AT91 производятся по CMOS-технологии Atmel и обеспечивают оптимальное сочетание 32-разрядной производительности и малого потребления (лидируют по соотношению MIPS/Watt). При этом стоимость кристаллов AT91 сравнима со стоимостью 16-разрядных микроконтроллеров.

Успех ARM производства Atmel Corp. на рынке встраиваемых микроконтроллеров обусловлен еще и тем, что эти микросхемы изначально задумывались как семейство кристаллов. Выпускаются скоростные процессоры M40, кристаллы с мультипроцессорным интерфейсом M63, Flash и SRAM - кристаллы семейств 91F, 91R и 91FR, а также микросхемы сверхнизкого энергопотребления с аналоговыми блоками - M55 и М42.

Отличительные особенности семейства AT91:

32-разрядное процессорное RISC-ядро ARM7TDMI;

два набора инструкций : высокопроизводительная 32-разрядная система команд ARM и 16-разрядная система команд с высокой плотностью кода Thumb;

Читайте также: