- •Архитектура эвм
- •Введение
- •Структура мпс
- •Основные понятия в архитектуре мпс
- •Архитектура фон Неймана
- •Гарвардская архитектура
- •Параллельная архитектура
- •Конвейерная архитектура
- •Суперскалярная архитектура
- •АрхитектурыCisc
- •Архитектуры risc
- •Архитектуры misc
- •Ассемблеры
- •Программа Ассемблер
- •Язык Ассемблер
- •Основы 32-битного программирования в Windows
- •Api функции
- •Сообщения Windows
- •Версии ассемблеров
- •Среды разработки
- •Представление данных в эвм
- •Системы счисления и преобразования между ними
- •Форматы представления чисел
- •Форматы представления двоичных чисел
- •Формат с плавающей точкой
- •Типы адресаций операндов
- •Интерфейсы
- •Последовательный интерфейс rs-232c
- •Интерфейс параллельного порта
- •Инфракрасный интерфейс
- •Интерфейс Bluetooth
- •Интерфейс usb
- •Интерфейс ieee 1394 - FireWire
- •Сопроцессоры
- •Система прерываний и исключений
- •Интерфейс jtag
- •Символы и строки
- •Архитектура cisc от Intel
- •Введение
- •Микроархитектура Intel
- •Микроархитектура р6
- •Микроархитектура NetBurst
- •Микроархитектура Pentium 4
- •Микроархитектура Intel Pentium Mobile
- •Микроархитектура Intel Core
- •Микроархитектура Intel Core Duo
- •Микроархитектура Intel Nehalem
- •Адресация памяти в ia_32
- •Наборырегистров
- •Целочисленныйпроцессор
- •Регистры общего назначения (рон)
- •Регистры флагов eflags
- •Регистр указателя команд
- •Сегментные регистры
- •Управляющие регистры
- •Системные адресные регистры
- •Прямой и обратный порядок следования байтов
- •Виды адресации операндов в памяти
- •Цикл выполнения команды
- •Распределение адресного простраства
- •Образ программы в памяти.
- •Математический сопроцессор
- •Xmm технология
- •Система команд
- •Формат команды
- •Классификация команд
- •Целочисленный процессор
- •Команды общего назначения
- •Команды ввода-вывода
- •Инструкции работы со стеком
- •Арифметико-логические инструкции
- •Цепочечные операции
- •Команды управления
- •Команды поддержки языков высокого уровня
- •Команды прерываний
- •Команды синхронизации процессора
- •Команды обработки цепочки бит
- •Команды управления защитой
- •Команды обмена с управляющими регистрами
- •Команды идентификации и управления архитектурой
- •Управление кэшированием
- •Команды управления кэшированием
- •Сопроцессор с плавающей точкой
- •Классификация команд
- •Команды управления сопроцессором
- •Команды передачи данных
- •Команды сравнения данных
- •Арифметические команды
- •Трансцендентные функции
- •Целочисленное mmx расширение
- •Синтаксис ммх-команд
- •Классификация команд
- •Инициализация
- •Передача данных
- •Упаковка данных
- •Распаковка данных
- •Арифметика
- •Сравнения
- •Дополнительные команды
- •XmMрасширение с плавающей точкой
- •Типы данных
- •Передача данных
- •Арифметика
- •Сравнения
- •Преобразования
- •Управление состоянием
- •Распаковка данных
- •Управление кэшированием
- •Дополнительные команды
- •Цикл трансляции, компоновки и выполнения
- •Ассемблер cisc
- •Введение
- •Средства программирования и отладки
- •Описание masm
- •Структура программы на ассемблере
- •Типы данных
- •Макросредства
- •Директивы
- •Архитектура risc
- •Система команд
- •Архитектура misc
- •Архитектура vliw
- •Архитектура вычислительных систем со сверхдлинными командами
- •Архитектура ia-64
- •Многоядерные архитектуры
- •Микроконтроллер avr от Atmel
- •Архитектура avr от Atmel
- •Ассемблер
- •Команды ассемблера
- •Директивы ассемблера
- •Выражения
- •Микроконтроллеры c28x
- •Архитектура c28x
- •Архитектура f28x
- •Инструментальные средства разработки по
- •Ассемблер
- •Команды ассемблера
- •Формат объектного файла
- •Директивы ассемблера
- •Макроязык и макрокоманды
- •Компоновщик
- •Архиватор
- •Абсолютный листер
- •Листер перекрестных ссылок
- •Утилита 16-ричного преобразования
- •Архитектура VelociTi
- •Структура и состав цсп с6x
- •Средства разработки цсп с6x
- •Ассемблер цсп с6x
- •Команды ассемблера
- •Выражения
- •Листинги
- •Листинги программ
- •Директивы ассемблера
- •Макроязык и макрокоманды
- •Компоновщик
- •Утилиты
- •Поддержка в matlab
- •Введение
- •Встроенные платы для цсп ‘c6x
Микроконтроллер avr от Atmel
Архитектура avr от Atmel
AVR - самая обширная производственная линии среди других флэш-микроконтроллеров корпорации Atmel. Atmel представила первый 8-разрядный флэш-микроконтроллер в 1993 году и с тех пор непрерывно совершенствует технологию. Прогресс данной технологии наблюдался в
снижении удельного энергопотребления (мА/МГц),
расширении диапазона питающих напряжений (до 1.8 В) для продления ресурса батарейных систем,
увеличении быстродействия до 16 млн. операций в секунду,
встраивании эмуляции в реальном масштабе времени,
реализации функции самопрограммирования,
совершенствовании и расширении количества периферийных модулей,
встраивании специализированных устройств (радиочастотный передатчик, USB-контроллер, драйвер ЖКИ, программируемая логика, контроллер DVD, устройства защиты данных) и др.
Успех AVR-микроконтроллеров объясняется возможностью простого выполнения проекта с достижением необходимого результата в кратчайшие сроки, чему способствует доступность большого числа инструментальных средств проектирования, поставляемых, как непосредственно корпорацией Atmel, так и сторонними производителями. Ведущие сторонние производители выпускают полный спектр компиляторов, программаторов, ассемблеров, отладчиков, разъемов и адаптеров. Отличительной чертой инструментальных средств от Atmel является их невысокая стоимость.
Другая особенность AVR-микроконтроллеров, которая способствовала их популярности, это использование RISC-архитектуры с мощным набором инструкций, большинство которых выполняются за один машинный цикл.
Это означает, что при равной частоте тактового генератора они обеспечивают производительность в 12 (6) раз больше производительности предшествующих микроконтроллеров на основе CISC-архитектуры (например, MCS51). С другой стороны, в рамках одного приложения с заданным быстродействием, AVR-микроконтроллер может тактироваться в 12 (6) раз меньшей тактовой частотой, обеспечивая равное быстродействие, но при этом потребляя гораздо меньшую мощность. Таким образом, AVR-микроконтроллеры представляют более широкие возможности по оптимизации производительности/энергопотребления, что особенно важно при разработке приложений с батарейным питанием. Микроконтроллеры обеспечивает производительность до 16 млн. оп. в секунду и поддерживают флэш-память программ различной емкости: 1… 256 кбайт. AVR-архитектура оптимизирована под язык высокого уровня Си, а большинство представителей семейства megaAVR содержат 8-канальный 10-разрядный АЦП, а также совместимый с IEEE 1149.1 интерфейс JTAG или debugWIRE для встроенной отладки. Кроме того, все микроконтроллеры megaAVR с флэш-памятью емкостью 16 кбайт и более могут программироваться через интерфейс JTAG.
Пример использования
Основные параметры
Гарвардская архитектура.
RISC.
Количество команд 90…130.
Число выводов 8…64.
Частота тактового генератора 10…16 МГц.
Большинство инструкций выполняются за 1 цикл тактового генератора ТГ.
Производительность 10…16 МIPS (Millions Instructions per Second).
Память программ типа FLASH ROM. Перепрограммируется до 1000 раз.
Память данных ОЗУ (тип EEPROM). Перепрограммируется до 100000 раз.
32 регистра общего назначения.
Есть режимы с пониженным энергопотреблением.
Отладчик AVR Studio, бесплатный.
Семейства
Tiny AVR – миниатюрные МК. Flash ROM 1…2 Кбайт, ОЗУ типа EEPROM 64 байт
Classic AVR. Flash ROM 2…8 Кбайт, ОЗУ типа EEPROM 64…512 байт, ОЗУ типа SRAM 128…512 байт
Mega AVR Flash ROM 2…128 Кбайт, ОЗУ типа EEPROM 64…512 байт, ОЗУ типа SRAM 2…4 Кбайт, 10 разрядный 8-и канальный АЦП, аппаратный умножитель 8*8
Микроконтроллер AT90S2313 выбран как пример для изучения основ. Это современный 8-битный КМОП МК. Он имеет производительность 1 MIPS при частоте ТГ в 1 МГц, так как почти все его команды выполняются за 1 период ТГ.
Используется расширенная RISC архитектура от ARM, 32 регистра общего назначения. Все регистры подключены к арифметико-логическому устройству АЛУ, что дает доступ к 2-м регистрам в течение 1 цикла. Его основные характеристики:
2 Кб загружаемой FLASH памяти. Может быть перепрограммирования через интерфейс SPI.
128 байт EEPROM для данных.
15 линий ввода/вывода общего назначения.
2 таймера/счетчика (один 8-разрядный, другой 16-разрядный.).
Внешние и внутренние прерывания
Встроенный последовательный порт.
Программируемый сторожевой таймер со встроенным генератором.
Последовательный порт SPI для загрузки программ.
2 выбираемых программно режима низкого энергопотребления.
Описание выводов
VCC – питание.
GND – земля.
PORT B (PB7…PB0) – 8-разрядный параллельный порт ввода/вывода. Выводы PBO, PB1 являются также положительным (A1N0) и отрицательным (A1N1) входами встроенного аналогового компаратора.
PORT D (PD6…PD0) – 7-разрядный двунаправленный параллельный порт ввода/вывода с встроенными подтягивающими резисторами. Входы воспринимают ток до 20 мА.
RESET – вход сброса для перезапуска МК.
XTAL1 и XTAL2 – вход и выход инвертирующего усилителя, используемые для построения ТГ. К ним можно подключить кварцевый резонатор, задающий частоту ТГ.
Обзор архитектуры
Файл регистров общего назначения РОН. 32 8-разрядных. Регистровый файл занимает адреса $00…$1F, поэтому к регистрам можно обращаться и как ячейкам памяти данных.
Большинство команд, использующих регистры, могут обращаться к любым РОН. Исключение составляют команды, работающих с константами: SBCI, SUBI, CPI, ANDI, ORI, LDI. Они работают только со второй половиной файла РОН – R16…R31.
Каждому регистру присвоен и адрес в первых 32 ячейках ОЗУ. Это удобно.
Пространство ввода/вывода состоит из 64 адресов $20…$5F.
АЛУ поддерживает арифметические и логические операции.
6 РОН (R26…R31) можно использовать как 3 16-разрядных указателяX,Y,Zв адресном пространстве данных. Указатель Z можно использовать для адресации таблиц в памяти программ.
Структура памяти
Использована Гарвардская архитектура – данные и программа в разных устройствах памяти.
Во время выполнения одной команды следующая команда считывается одновременно из памяти программ.
Режимы адресации
Прямая регистровая адресация с одним регистром. В качестве источника используется любой РОН. Результат заносится туда же.
Код команды содержит 1 слово. КОП – код операции, РОН определяет используемый регистр.
Прямая регистровая адресация с двумя регистрами. Код команды содержит 1 слово: КОП – код операции, Rr– источник данных, Rd– получатель результата.
Прямая адресация к области ввода вывода. Операция осуществляется с данными в поле P. Используется регистр РОН, он может быть источником или получателем данных.
Прямая адресация к памяти данных. Код команды состоит из 2-х слов. В старшем слове команды размещены - код операции КОП и используемый РОН. В младшем слове находится 16-разрядный адрес ячейки памяти данных.
Косвенная адресация к памяти данных. Адрес операнда находится в одном из регистров X, Y, Z.
Косвенная адресация к памяти данных со смещением. Адрес операнда определяется как сумма содержимого Z или Y регистра и смещения.
Косвенная адресация к памяти данных с предварительным декрементом. Адрес операнда находится в одном из регистров X, Y или Z. Перед выполнением операции он уменьшается на 1.
Косвенная адресация к памяти данных с постинкрементом. Адрес операнда находится в одном из регистров X, Y или Z. После выполнение операции он увеличивается на 1.
Адресация к константам в памяти программ. Константа в регистре Z. 15 старших битов определяют адрес слова, а младший (0) бит задают младший (если 0) или старший (если 1) байт константы в памяти программ.
Косвенная адресация памяти программ. После операций IJMP или ICALL выполнение программы продолжается с адреса записанного в регистре Z. Его содержимое переносится в счетчик команд.
Относительная адресация памяти программ. После операций RJMP или RCALL выполнение программы продолжается с адреса (Счетчик команд)+k+1. Относительный адрес k = -2048…2047
Память программ. Содержит 2 Кб флэш-памяти. Она организована как 1Кх16. Может перепрограммироваться до 1000 раз.. Программный счетчик имеет 10 разрядов и может адресовать 1024 слов памяти программ.
EEPROM память данных. Содержит 128 байтов электрически стираемой энергонезависимой памяти (EEPROM). Организована как отдельная область данных, каждый байт которой может быть прочитан и при необходимости переписан. Выдерживает не менее 100000 циклов записи/стирания. К этой памяти может обращаться программа. Данные а нее можно занести с помощью внешнего программатора.
Оперативная память данныхвключает 224 ячейки: регистровый файл (32 адреса), память ввода/вывода (64 адреса), оперативная память данных (128 адресов).