Электронные системы ускорителей

БАЗОВАЯ АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРОВ
СЕМЕЙСТВА AT89LP51/52

Особенности архитектуры

1. ОБЗОР АРХИТЕКТУРЫ

1.1. Выполнение инструкций

1.2. Системная синхронизация

1.3. Сброс

1.4. Таймеры/счетчики

1.5. Управление прерыванием

1.6. Последовательный порт

1.7. Порты ввода/вывода

1.8. Безопасность

1.9. Программирование

2. ОРГАНИЗАЦИЯ ПАМЯТИ

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

2.1.1. Интерфейс памяти программ

2.1.2. Сигнатура

2.2. Внутренняя память данных

2.2.1. DATA

2.2.2. IDATA

2.2.3. SFR

2.3. Внешняя память данных

2.3.1. XDATA

2.3.2. FDATA

2.3.3. Интерфейс внешней памяти данных

3. РЕГИСТРЫ СПЕЦИАЛЬНЫХ ФУНКЦИЙ SFR

3.1. Карта SFR

3.2. Слово состояния программы

3.3. Указатель стека

4. ПРОЦЕССОР

4.1. Быстрый режим

4.2. Расширенные указатели данных

4.3. Прерывания

ПОЛНОЕ ОПИСАНИЕ МИКРОКОНТРОЛЛЕРОВ AT89LP51/52

ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ
"AT89LP Developer Studio"

Основные сведения

1. ОСНОВНЫЕ ЭЛЕМЕНТЫ СРЕДЫ РАЗРАБОТКИ

1.1. Пользовательский интерфейс

1.1.1. Окно решений

1.1.2. Окно вывода

1.1.3. Список наблюдения

1.2. Запуск среды разработки

1.2.1. Открытие существующего проекта

1.2.2. Создание нового проекта

2. ОТЛАДКА ПРИЛОЖЕНИЯ

2.1. Терминология

2.2. Команды управления

2.3. Точки останова

2.4. Пример отладки

2.5. Загрузка проекта

2.6. Настройка симулятора для целевого устройства

2.7. Ассемблирование программы

2.8. Начало сессии отладки

2.8.1. Проверка внутреннего состояния микроконтроллера

2.8.2. Команды отладки

2.8.3. Одиночный шаг

2.8.4. Мониторинг целевых регистров

2.8.5. Установка точек останова

2.8.6. Выполнение кода и остановка на точке останова

2.8.7. Выход из отладки

3. ОКНА

3.1. Просмотр файлов

3.2. Ввод/вывод

3.3. Информация

3.4. Конфигурация проекта

3.5. Вид сборки

3.6. Отладка

3.7. Список наблюдения

3.8. Статическое представление памяти

3.9. Редактор

3.10. Дизассемблер

4. МЕНЮ И ПАНЕЛЬ ИНСТРУМЕНТОВ

4.1. Меню разработчика

4.2. Меню файлов

4.3. Меню редактора

4.4. Меню симулятора

4.5. Меню микроконтроллера

4.6. Меню отладки

4.7. Меню инструментов

4.8. Меню вида

4.9. Меню окон

4.10. Меню помощи

4.11. Меню лицензий

4.12. Меню Стандартная панель инструментов

4.13. Панель инструментов редактора

4.14. Панель инструментов отладчика

4.15. Панель инструментов управления потоком

5. НАСТРОЙКА СИМУЛЯТОРА

5.1. Системная настройка симулятора

5.2. Настройка fuse-битов симулятора

5.3. Набор файлов памяти

5.4. Настройка симулятора для доступа к XRAM

6. НАСТРОЙКА ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ

6.1. Выбор инструментальных средств

6.2. Определение параметров для инструментов

7. ОТЛАДКА

7.1. Расширенные контрольные точки

7.1.1. Типы контрольных точек

7.1.2. Диапазон точек останова

7.1.3. Контрольные точки данных

7.1.4. Точки останова по ссылке

7.1.5. Установка точек останова

7.1.6. Добавление точки останова

7.1.7. Удаление точки останова

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ

Цель работы

Предварительное задание

Задание и порядок выполнения работы

Оформление отчета

Вопросы к защите

4. Процессор

Микроконтроллеры AT89LP51/52 используют расширенный процессор 8051, который работает со скоростью больше стандартного 8051 в 6 – 12 раз. Увеличение производительности связано с двумя факторами. Во-первых, процессор выбирает однобайтовую инструкцию из памяти программ каждый тактовый период. Во-вторых, процессор использует простой двухступенчатый конвейер для загрузки и выполнения инструкции параллельно. Эта основная конвейерная концепция позволяет процессору получить до 1 MIPS на МГц. AT89LP51/52 также имеют режим совместимости, который сохраняет 12-тактный машинный цикл стандартных МК 8051 таких, как AT89S51/52.

4.1. Быстрый режим

рис.4_1

Рис. 4.1. Выполнение инструкций
в быстром режиме

Быстрый (за один цикл) режим включается, сбросив fuse-бит Compatibility. В этом режиме однобайтовая инструкция извлекается за каждый системный такт. Набор инструкций 8051 включает в себя инструкции переменной длины от 1 до 3 байт. В системе с выборкой байта за один такт означает, что на выполнение каждой инструкции, по меньшей мере, требуется столько же тактов. Большинство команд в AT89LP51/52 следует этому правилу: с несколькими исключениями время выполнения инструкции в системных тактовых циклах равно числу байтов в инструкциях. Переходам и вызовам требуется дополнительный цикл для вычисления целевого адреса, а также ряд других сложных инструкций требуют нескольких циклов.

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

Режим совместимости (12-тактный) включен по умолчанию или после установки fuse-бита Compatibility. В режиме совместимости байтовые инструкции выбираются каждые три системных такта, а процессор работает с машинным циклом с 6 состояниями, полученными делением на 2 машинного цикла, состоящего из 12 тактовых периодов системного генератора. Стандартные инструкции выполняются за 1, 2 или 4 машинных цикла. Тайминги выполнения инструкций совместимы с такими стандартными 8051, как микроконтроллеры AT89S51/52.

Режим совместимости можно использовать для сохранения профилей выполнения унаследованных приложений. Примеры инструкций в режиме совместимости показаны на рис. 4.2.

рис.4_2

Рис. 4.2. Выполнение инструкций в режиме совместимости

4.2. Расширенные указатели данных

AT89LP51/52 имеют два 16-разрядных указателей данных: DPTR0, образованный регистровой парой DP0L и DP0H (82H и 83H) и DPTR1, образованный регистровой парой DP1L и DP1H (84H и 85H). Указатели данных используются некоторыми инструкциями для доступа к памяти программ или данных. Регистр конфигурации указателей данных (AUXR1) управляет работой пары указателей данных. Бит DPS в AUXR1 выбирает, на какой указатель данных в настоящее время ссылается инструкция, использующая операнд DPTR. Каждый указатель данных доступен по соответствующему адресу SFR вне зависимости от значения DPS. AT89LP51/52 предоставляют два метода быстрого переключения контекста данных указателей:

• Бит 2 AUXR1 является постоянным со значением логического 0. Бит DPS может быть переключен (для переключения указателя данных) просто путем инкремента регистр AUXR1, не изменяя другие биты регистра. Этот способ является предпочтительным, когда используется только один указатель данных.

EX: INC AUXR1; Переключить DPS

• В некоторых случаях указатели данных должны использоваться одновременно. Для предотвращения частого переключения DPS AT89LP51/52 поддерживает префикс нотации для выбора противоположного указателя данных для инструкции. Все DPTR инструкции, за исключением JMP @A + DPTR, если используется префикс кода операции 0A5h, будут использовать обратную величину DPS (DPS’), чтобы выбрать указатель данных. Некоторые ассемблеры могут поддерживать эту операцию с помощью операнда /DPTR. Так, например, следующий код выполняет копию блока в EDATA:

MOV AUXR1,#00H     ;DPS = 0
MOV DPTR,#SRC      ;загрузка адреса источника в dptr0
MOV /DPTR,#DST     ;загрузка адреса назначения в dptr1
MOV R7,#BLKSIZE    ;количество копируемых байт
COPY:
MOVX A,@DPTR       ;чтение источника (dptr0)
INC DPTR           ;следующий источник (dptr0+1)
MOVX @/DPTR,A      ;запись по назначению (dptr1)
INC /DPTR          ;следующее назначение (dptr1+1)
DJNZ R7,COPY

Для ассемблеров, которые не поддерживают это обозначение, префикс 0A5h должен быть объявлен строкой:

EX:   
DB 0A5h
INC DPTR           ;что эквивалентно INC /DPTR 

Сводка инструкций указателей данных с быстрым переключением контекста приведена в табл. 4.1.

Табл. 4.1. Инструкции с использованием указателя данных

табл.4_1

4.3. Прерывания

Микроконтроллерами AT89LP51/52 обеспечивается шесть источников прерываний: два внешних, три от таймеров, и один от последовательного порта. Для каждого из этих прерываний и системного сброса имеется отдельный программный вектор в начале памяти программ. Каждый источник прерывания может быть индивидуально разрешен или запрещен, установив или сбросив бит в регистре прерываний IE. Кроме того, этот регистр содержит бит глобального запрещения всех прерываний EA.

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

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

Внешние прерывания INT0 и INT1 могут быть активированы либо уровнем, либо изменением сигнала, в зависимости от битов IT0 и IT1 в регистре TCON. Флагами, которые на самом деле генерируют эти прерывания, являются биты IE0 и IE1 в TCON. Когда процедура обслуживания прерывания запускается по соответствующему вектору, флаг, генерирующий внешнее прерывание сбрасывается аппаратно, только если прерывание было активировано изменением сигнала. Если прерывание активировано уровнем, то флагом запроса управляет внешний источник запроса.

Прерывания от Таймера 0 и Таймера 1 генерируются флагами TF0 и TF1, которые устанавливаются переполнением в соответствующих регистрах таймеров/счетчиков (за исключением Таймера 0 в режиме 3). Если прерывание генерируется таймером, флаг, его создавший, сбрасывается аппаратно, когда подпрограмма обслуживания запускается по соответствующему вектору. Прерывание от Таймера 2 порождается битами TF2 или EXF2 в регистре T2CON. Ни один из этих флагов не сбрасывается аппаратно, когда процессор выполняет подпрограмму обслуживания. Процедура обслуживания обычно должна определить генерируется ли прерывание битами TF2 или EXF2, и они сбрасываются программно.

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

Табл. 4.2. Адреса векторов прерываний

табл.4_1