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

БАЗОВАЯ АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРОВ
СЕМЕЙСТВА 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. Удаление точки останова

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

Цель работы

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

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

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

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

2. Организация памяти

Микроконтроллеры AT89LP51/52 используют гарвардскую архитектуру с раздельными адресными пространствами для памяти программ и памяти данных. Память программ имеет регулярное линейное адресное пространство с поддержкой 64K байт прямой адресации кода приложения. Память данных имеет 256 байт внутреннего ОЗУ и 128 байт регистров специального назначения пространства ввода/вывода. AT89LP51/52 поддерживают до 64K байт внешней памяти данных с частью внешней памяти данных, расположенной на чипе энергонезависимой флэш-памяти данных. Внешняя память программ поддерживается для адресов выше 4K/8К. Адресные пространства памяти AT89LP51/52 перечислены в табл. 2.1.

Табл. 2.1. Адресные пространства памяти

табл.2_1

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

AT89LP51/52 содержит 4К/8К байт программируемой на кристалле флэш-памяти для хранения программ, а также поддержку до 60K/56K байт внешней памяти программ. Флэш-память может выдержать не менее 10000 циклов записи/стирания и имеет минимальное время хранения данных в течение 10 лет. Векторы сброса и прерываний расположены в пределах первых 83 байт памяти программ. Таблицы констант могут быть расположены во всем 64K адресном пространстве памяти программ для доступа с инструкцией MOVC. Карта памяти программ AT89LP51/52 показана на рис. 2.1.

рис.2_1

Рис. 2.1. Карта памяти программ

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

Микроконтроллеры AT89LP51/52 используют стандартный интерфейс внешней памяти программ 8051 со старшим адресом в порте 2, младшим адресом и данными в мультиплексированном порте 0 и стробами ALE и PSEN. Адреса памяти программ всегда 16-битовые, даже если фактическое количество памяти, используемой программой, может быть меньше 64 Кбайт. При выполнении внешней программы используются два полных 8-битовых порта P0 и P2 для адресации памяти программ.

рис.2_2

Рис. 2.2. Выполнение из внешней памяти программ

Рис. 2.2 показывает аппаратную конфигурацию для доступа к 64 Кбайт внешнего ПЗУ с использованием 16-битового линейного адреса. Порт 0 служит для мультиплексирования шины адреса/данных. Строб разрешения фиксации адреса (ALE) используется для фиксации младшего байта адреса во внешнем регистре, после чего порт 0 может быть освобожден для ввода/вывода данных. Порт 2 обеспечивает старший байта адреса в течение всей операции. PSEN стробирует внешнюю память.

рис.2_3

Рис. 2.3. Выборка данных из внешней памяти программ

На рис. 2.3 показан тайминг интерфейса внешней памяти программ. ALE выводится с постоянной скоростью из расчета 1/3 системной частоты с 1/3 рабочего цикла. PSEN выводится с одинаковой скоростью с коэффициентом заполнения 50%. Новый адрес устанавливается в середине импульса ALE для фиксации по заднему фронту и переходит в третье состояние по заднему фронту PSEN. Данные инструкции выводятся из P0 и внутренне защелкиваются в высокой фазе тактового импульса до нарастающего фронта PSEN. Эти тайминги относятся как к режиму совместимости, так и быстрому режиму. В режиме совместимости нет никакой разницы в таймингах внутреннего и внешнего выполнения инструкций.

рис.2_4

Рис. 2.4. Граница внутренней/внешней памяти программ
(Быстрый режим)

Для того, чтобы выполнить внешнюю выборку в быстром режиме, необходимы два состояния ожидания в каждом такте, таким образом, увеличивая время выполнения инструкций с коэффициентом 3. Однако в связи с оптимизацией, внешние инструкции в быстром режиме все еще могут быть от 1/4 до 1/2 быстрее, чем их эквиваленты в режиме совместимости. Заметим, если ALE переключается в быстром режиме, при переходе CPU от внутреннего к внешнему исполнению существует возможность возникновениz короткого импульса ALE, как показано на рис. 2.4. Время от установки адреса до заднего фронта ALE остается тем же. Однако такое поведение можно избежать путем задания бита DISALE до перехода выше границы 8K.

2.1.2. Сигнатура

В дополнение к 64K пространству кода AT89LP51/52 поддерживают также доступные для процессора 256-байтовую сигнатуру пользователя и 128-байтовую сигнатуру Atmel. Сигнатура Atmel инициализирована на заводе идентификатором устройства. Сигнатура пользователя доступна для идентификационных кодов или постоянных параметров. Данные, сохраненные в сигнатуре не защищены. Бит защиты будет запрещать запись в массив, однако чтение внешним программатором всегда разрешено.

Чтобы прочитать сигнатуру, должен быть установлен бит SYGEN (AUXR1.3). Когда SYGEN = 1, инструкция MOVC А, @ A + DPTR будет иметь доступ к сигнатуре. Сигнатура пользователя отображается с адресов 0100h по 01FFh, а сигнатура Atmel с адресов 0000h по 007Fh. Бит SYGEN должен быть сброшен перед использованием для того, чтобы инструкция MOVC имела доступ к памяти. Сигнатура пользователя также может быть изменена с применением интерфейса программирования. Когда IAP = 1 и SYGEN = 1, инструкции MOVX @DPTR будут иметь доступ к массиву.

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

AT89LP51/52, содержащие 256 байт основной памяти SRAM данных плюс 128 байт памяти ввода/вывода, отображаются в одном 8-битовом адресном пространстве. Доступ к внутренней памяти данных не требует настройки. Внутренняя память данных имеет, как показано на рис. 2.5, три адресных пространства: DATA, IDATA и SFR. Некоторая часть внешней памяти данных реализована как внутренняя.

рис.2_5

Рис. 2.5. Карта внутренней памяти данных

2.2.1. DATA

Первые 128 байт ОЗУ, непосредственно адресуемых 8-битовым адресом (00H-7FH), включены в инструкции. Самые младшие 32 байта памяти данных сгруппированы в 4 банка из 8 регистров каждый. Биты RS0 и RS1 (PSW.3 и PSW.4) выбирают, какой банк регистров используется. Инструкции с использованием регистровой адресацией будут доступны только к указанному в настоящее время банку. Также адресуются 128 бит в младших адресах данных 20H-2FH.

2.2.2. IDATA

Все 256 байт внутреннего ОЗУ могут быть косвенно адресованы с использованием 8-разрядных указателей R0 и R1. Первые 128 байт IDATA включены в пространство DATA. Аппаратный стек также расположен в пространстве IDATA.

2.2.3. SFR

Старшие 128 прямых адресов (80H-FFH) предназначены для доступа к регистрам ввода/вывода. Регистры ввода/вывода на устройствах AT89LP называются регистрами специального назначения (SFR). Регистры SFR доступны только через прямую адресации. См. раздел 3 с перечислением регистров SFR.

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

Микроконтроллеры AT89LP поддерживают 16-битовое адресное пространство до 64 Кбайт внешней памяти данных (XDATA). Внешнее пространство памяти доступно инструкциям с MOVX. Некоторые внутренние ресурсы памяти данных отображаются как часть внешнего адресного пространства, как показано на рис. 2.6. Эти ячейки памяти могут потребовать настройки, перед тем как процессор получит к ним доступ. В AT89LP51/52 реализовано 256 байт энергонезависимой флэш-памяти данных (FDATA).

рис.2_6

Рис. 2.6. Карта внешней памяти данных

2.3.1. XDATA

Пространство внешней памяти данных может вместить до 64 Кбайт внешней памяти. AT89LP51/52 используют стандартный интерфейс 8051 внешней памяти данных со старшим байтом адреса в порте 2, младшим байтом адреса и данными, мультиплексированными портом 0 и стробами ALE, RD и WR. XDATA могут быть доступны как с 16-битовым (MOVX @DPTR), так и 8-битовым (MOVX @Ri) адресом.

Некоторое внутреннее пространство памяти данных отображается как часть адресного пространства XDATA. В этом случае нижний диапазон адресов будет доступен как ресурс внутренней, а не внешней памяти. Адреса выше этого диапазона по умолчанию будут относиться к XDATA. AT89LP51/52 поддерживают до 63.75K или 56K байт внешней памяти при использовании внутреннего отображения. Установка бита EXRAM = 1 (AUXR.1) заставит все инструкции MOVX обращаться ко всем 64 КБ XDATA независимо от их адреса.

2.3.2. FDATA

Флэш-память данных, являющаяся частью внешней памяти, реализована как внутренняя энергонезависимая память данных. Флэш-память данных включается установкой бит DMEN = 1 (MEMCON.3). Когда IAP = 0 и DMEN = 1, флэш-память данных отображается в пространстве FDATA в нижней части внешнего адресного пространства, от 0000H до 00FFh (см. рис. 2.6). Инструкции MOVX с этим адресом диапазона будут иметь доступ к внутренней энергонезависимой памяти. FDATA является недоступной, пока DMEN = 0. В FDATA можно попасть только с 16-битовыми (MOVX @DPTR) адресами. Указание диапазона адресов FDATA инструкциями MOVX @Ri дают доступ к внешней памяти. Адреса выше диапазона FDATA отображаются на XDATA.

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

рис.2_7

Рис. 2.7. Режим 16-битного линейного адреса
внешней памяти данных

AT89LP51/52 используют стандартный интерфейс внешней памяти данных 8051 со старшим адресом в порте 2, младшим адресом и данными, мультиплексированными в порту 0, и стробами ALE, RD и WR. Интерфейс может быть использован в двух различных конфигурациях в зависимости от того, какой тип инструкции MOVX используется для доступа к XDATA.






рис.2_8

Рис. 2.8. Режим 8-битного страничного адреса
внешней памяти данных

Рис. 2.7 показывает конфигурацию аппаратных средств для доступа к 64К внешнему ОЗУ с использованием 16-битового линейного адреса. Порт 0 служит мультиплексированной шиной адреса/данных в ОЗУ. Строб разрешения защелки адреса (ALE) используется для фиксации младшего байта адреса во внешнем регистре, поэтому порт 0 может быть освобожден для ввода/вывода данных. Порт 2 обеспечивает старший байт адреса в течение всей операции. Инструкции MOVX @DPTR используют режим линейного адреса.

На рис. 2.8 показана конфигурация аппаратных средств для доступа к 256-байтовым блокам внешнего ОЗУ с использованием 8-битового страничного адреса. Порт 0 служит мультиплексированной шиной адреса/данных в ОЗУ. Строб ALE используется для фиксации байта адреса во внешнем регистре, поэтому порт 0 может быть освобожден для ввода/вывода данных. Линии порта 2 (или другие порты), могут обеспечить управление линиями страницы памяти, однако эта операция не выполняется оборудованием автоматически. Программное приложение должно изменить регистр порта 2 в соответствующих случаях для доступа к различным страницам. Инструкции MOVX @Ri используют режим страничного адреса.

На рис. 2.9. и рис. 2.10 показаны примеры циклов чтения и записи в быстром режиме, а на рис. 2.11 и рис. 2.12 - в режиме совместимости.

рис.2_9

Рис. 2.9. Цикл записи внешней памяти данных в быстром режиме


рис.2_10

Рис. 2.10. Цикл чтения внешней памяти данных в быстром режиме


рис.2_11

Рис. 2.11. Цикл записи внешней памяти данных в режиме совместимости


рис.2_12

Рис. 2.12. Цикл чтения внешней памяти данных в режиме совместимости