Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2011_Микроконтроллер_ST7_2

.pdf
Скачиваний:
21
Добавлен:
23.02.2015
Размер:
591.76 Кб
Скачать

В.А.Матвиенко, А.В. Матвиенко

СИСТЕМА КОМАНД МИКРОКОНТРОЛЛЕРОВ ST7

Учебное пособие

Екатеринбург УМЦ УПИ

2011

УДК 004.31:004.4 23 (075.8) ББК 32.973.26-04я73

М33

Матвиенко В.А., Матвиенко А.В.

М33 Система команд микроконтроллеров ST7 : учебное пособие / В.А. Матвиенко, А.В. Матвиенко. – Екатеринбург : УМЦ УПИ, 2011. – 41 с.

Излагаются базовые сведения по архитектуре 8-разрядных микроконтроллеров ST7 корпорации STMicroelectronics. Подробно рассмотрены способы адресации и система команд.

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

Библиогр. : 18 назв. Рис. 16. Табл. 6.

УДК 004.31:004.4 23 (075.8) ББК 32.973.26-04я73

©В.А. Матвиенко, А.В. Матвиенко, 2011

 

ОГЛАВЛЕНИЕ

 

 

ВВЕДЕНИЕ ...............................................................................................

4

1.

СТРУКТУРНАЯ СХЕМА МИКРОКОНТРОЛЛЕРОВ ST7LITE2.........

6

2.

РАСПРЕДЕЛЕНИЕ ПАМЯТИ.................................................................

9

3.

РЕГИСТРОВАЯ МОДЕЛЬ.....................................................................

10

4.

СПОСОБЫ АДРЕСАЦИИ......................................................................

12

5.

СИСТЕМА КОМАНД.............................................................................

18

 

БИБЛИОГРАФИЧЕСКИЙ СПИСОК....................................................

39

3

ВВЕДЕНИЕ

Компания STMicroelectronics была создана в июне1987 года под названием SGS-THOMSON Microelectronics в результате слияния италь-

янской фирмы SGS Microelectronica и французской Thomson Semiconducteurs [1]. Современное название компания приобрела в мае 1998 года после переименования. Сегодня компания STMicroelectronics это одна из самых крупных в мире полупроводниковых компаний с доходом в 10,35 миллиардов долларов (в 2010 году). В компании работают 53000 сотрудников. Она имеет 78 торговых представительств в 36 странах.

Являясь одним из мировых лидеров во многих сегментах полупроводниковой электроники, компания STMicroelectronics активно занялась продвижением своей продукции на российский рынок сравнительно недавно и позже других известных производителей электроники. Официальное представительство STMicroelectronics в России было открыто в 2002 году [2], а до этого компания была представлена в России и странах СНГ только официальными дистрибьюторами.

Продвигая свою продукцию на мировые рынки, STMicroelectronics делает ставку на университетские центры компетенций. С 2007 года корпорация начала активную работу с крупными российскими университетами по обучению основам программирования на базе микроконтроллеров семейства ST7 [2].

Для изучения микроконтроллеров семейства ST7 в рамках какойлибо учебной дисциплины необходимо наличие соответствующих учебнометодических материалов: учебных пособий, конспектов лекций, справочников и методических указаний к лабораторным работам. Основная трудность при организации учебного процесса заключалась в том, что публикации на русском языке о продукции STMicroelectronics вообще и о микроконтроллерах семейства ST7 в частности были крайне немногочисленны и представляли собой журнальные статьи рекламного характера [2-4]. Техническая документация корпорации STMicroelectronics по микроконтроллерам семейства ST7, представленная на официальном сайте корпорации [1], напротив, крайне многочисленна. Поиск необходимой информации среди множества документов на английском языке представляет собой непростую задачу, решение которой требует существенных временных затрат.

Первой значимой публикацией по микроконтроллерам семейства ST7, изданной на русском языке, является работа сотрудников Национального аэрокосмического университета им. Н.Е. Жуковского «ХАИ» (Украина) [5], но и она не позволяет избежать обращения к оригинальной документации. К тому же работа [5] практически недоступна для российских студентов.

4

Изданные в последнее время методические указания [6-9] позволяют, в основном, решить задачу организации проведения лабораторного практикума, а учебное пособие [10] решает задачу изучения архитектуры микроконтроллеров ST7. В нем более подробно (по сравнению с работой [5]) рассмотрена аппаратная часть микроконтроллеров семейства ST7, однако вопросы, связанные с программированием микроконтроллеров, изложены конспективно.

Отличительной особенностью настоящего учебного пособия является подробное рассмотрение способов адресации и системы команд микроконтроллеров ST7. По сравнению с оригинальной документацией [11,12] излагаемый материал методически существенно переработан с целью его адаптации к учебному процессу.

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

5

1. СТРУКТУРНАЯ СХЕМА МИКРОКОНТРОЛЛЕРОВ ST7LITE2

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

Подсемейство ST7LITE2 включает три микроконтроллера: ST7LITE20, ST7LITE25 и ST7LITE29. Базовая версия ST7LITE20 имеет только кварцевый генератор тактовых импульсов с навесным резонатором. Микроконтроллеры ST7LITE25 и ST7LITE29 дополнительно имеют

встроенный RC-генератор тактовых импульсов,

для которого

не требуются навесные элементы. Микроконтроллер

ST7LITE29 кроме

того имеет EEPROM память данных объемом 256 байт, отсутствующую у двух других микроконтроллеров. В остальном микроконтроллеры идентичны. Все микроконтроллеры подсемейства ST7LITE2 выпускаются в корпусах двух типов: DIP20 или SO20 300 . Корпус DIP20 предназначен для монтажа в печатную плату с отверстиями, а корпус SO20 300 – для поверхностного монтажа.

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

Формирователь синхросигнала процессора предназначен для выработки тактовых импульсов, частота которых fCPU 8 МГц. Источниками синхросигнала могут быть внутренний RC-генератор, внутренний кварцевый генератор (с навесным резонатором) или внешний синхросигнал. Источник сигнала выбирается на этапе конфигурирования микроконтроллера. Сигнал синхронизации таймеров формируется путем умножения частоты тактовых импульсов.

Память микроконтроллеров ST7LITE2 включает 384 байта оперативной памяти (RAM), 8 Кбайт памяти программ Flash-типа и 256 байт EEPROM памяти данных (EEPROM только у микроконтроллера ST7LITE29). Часть оперативной памяти (128 байт) отведена под стек. Память программ имеет защиту от считывания. Возможно внутрисхемное программирование (ICP – In-Circuit Programming) и программирование из приложения (IAP – In-Application Programming). Гарантируется 10 К

циклов записи-стирания и 20 лет хранения при 55 С.

Для обмена данными с внешними устройствами имеется 15 многофункциональных двунаправленных линий ввода-вывода, которые могут быть независимо запрограммированы на ввод или вывод логических

6

переменных или сконфигурированы в два параллельных порта: А (8-бит) и В (7 бит). Линии порта В могут быть сконфигурированы как выходы с открытым стоком и внутренним нагрузочным резистором.

OSC1

OSC2

VDD

VSS

RESET

Формирователь

синхросигнала

таймеров

Формирователь

синхросигнала

процессора

Модуль

мониторинга

питания

Модуль

питания

Модуль

управления

АЛУ

RAM

EEPROM

FLASH

Рис. 1

12-разрядный

 

таймер

 

8-разрядный

 

таймер

 

Порт А

PA7:0

Отладчик

 

 

 

 

 

Последовательный

 

порт

 

Порт В

PB6:0

АЦП

 

 

 

 

 

Сторожевой

 

таймер

 

 

 

Для ввода аналоговых данных предусмотрен 10-разрядный аналогоцифровой преобразователь (АЦП) со схемой выборки и хранения и усилителем с фиксированным коэффициентом усиления по напряжению KU = 8. Усилитель может использоваться или не использоваться. Применение усилителя с KU= 8 позволяет получить разрешение как у 13-разрядного

7

АЦП. Возможен ввод аналоговых сигналов от семи источников.

Вкачестве аналоговых входов используются линии порта В.

Всостав микроконтроллеров ST7LITE2 входят четыре таймера:

сторожевой таймер (Watchdog Timer);

два 8-битных таймера (Lite Timers);

универсальный 12-битный таймер с автозагрузкой

(Auto-reload Timer).

Сторожевой таймер предназначен для контроля выполнения текущей программы и построен на базе 7-битного вычитающего счетчика WDGCR. Переключение счетчика производится с частотой fCPU /16000. При работе сторожевого таймера программа должна периодически производить запись в счетчик WDGCR. Если в течение контрольного времени запись не произведена, то сторожевой таймер перезапускает микроконтроллер. При fCPU = 8 МГц контрольное время может быть установлено в диапазоне от 1 до 127 мс.

Универсальный 12-битный таймер с автозагрузкой построен на основе 12-битного суммирующего счетчика. Возможен выбор частоты переключения счетчика. Имеется регистр ATR для хранения начального состояния счетчика и регистр ATICR для запоминания текущего состояния счетчика по внешнему сигналу. При переполнении счетчик автоматически перезагружается из регистра ATR. В состав таймера входит также четырехканальный ШИМ-модулятор.

Два 8-битных таймера общего назначения построены на базе двух 8-битных суммирующих счетчиков. Один из счетчиков программно недоступен, но его состояние может быть сохранено в регистре LTICR по внешнему сигналу LTIC. Запись в регистр LTICR по сигналу LTIC генерирует запрос прерывания (если прерывание по сигналу LTIC разрешено). Содержимое регистра LTICR может быть считано. Возможна также периодическая генерация запросов прерывания от этого счетчика с интервалом 1 мс или 2 мс. Выходные импульсы счетчика с периодом 1 мс используются в качестве входных для 12-битного таймера.

Другой 8-битный таймер имеет в своем составе регистр LTARR для хранения начального состояния счетчика LTCNTR. При переполнении счетчик автоматически перезагружается из регистра LTARR, при этом генерируется запрос прерывания, если прерывание от этого счетчика разрешено. Текущее состояние счетчика LTCNTR может быть считано. Запись в счетчик невозможна.

Для обмена данными с внешними устройствами в микроконтроллерах ST7LITE2 предусмотрен синхронный последовательный интерфейс

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

8

(остальные при этом будут ведомыми) или в систему, в которой каждое устройство может быть как ведущим, так и ведомым.

Отладчик

микроконтроллеров

ST7LITE2

предназначен

для поддержки

режима

внутрисхемной

отладки

и программирования.

С внешним

отладчиком

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

через

интерфейс ICC

(In-Circuit

Communication), для реализации

которого требуется

от 4 до 6 линий.

Модуль управления вырабатывает сигналы управления для всех устройств микроконтроллера. Совокупность выходных сигналов модуля управления образует шину управления микроконтроллера.

Микроконтроллеры ST7LITE2 питаются от одного источника с напряжением от 2,4 до 5,5 В. Потребление тока зависит от тактовой частоты и режима работы микроконтроллера. При fCPU = 8 МГц потребляемый ток не превышает 12 мА. В режиме останова потребляемый ток не превышает 50 мкА. Имеется двухуровневый контроль напряжения питания. При снижении напряжения до первого уровня генерируется запрос прерывания. При дальнейшем снижении напряжения питания до второго уровня генерируется сигнал системного сброса RESET.

2. РАСПРЕДЕЛЕНИЕ ПАМЯТИ

Полное адресное пространство микроконтроллеров ST7 при 16-раз– рядной шине адреса составляет 65536 (64 К) адресов. В микроконтроллерах подсемейства ST7LITE2 адресное пространство используется не полностью. Память микроконтроллеров ST7LITE2 включает 8 Кбайт Flashпамяти программ, 384 байта оперативной памяти и 256 байт памяти данных EEPROM [5]. Память EEPROM имеется только в микроконтроллерах ST7LITE29. Распределение памяти в микроконтроллерах ST7LITE2 приведено на рис. 2.

Первые 128 адресов выделены под регистры периферийных устройств. Фактически используется 55 адресов. Остальные адреса не используются.

Оперативная память RAM поделена на три страницы по 128 байт. Нулевая страница занимает диапазон адресов с 0080h по 00FFh и доступна в режиме короткой адресации. Первая страница занимает диапазон адресов с 0100h по 017Fh и доступна только в режиме длинной адресации. Последняя страница оперативной памяти используется под стек.

Flash-память занимает старшие 8 Кбайт адресного пространства и поделена на два сектора: сектор 0 и сектор 1. Размер нулевого сектора может быть задан при конфигурировании микроконтроллера. Возможен выбор из четырех вариантов: 0,5; 1; 2 или 4 Кбайт. По умолчанию размер

9

нулевого сектора установлен равным 4 Кбайт. Старшие 32 байта занимают векторы сброса и прерываний.

Адрес

Память

Примечание

0000h

 

 

 

 

 

Регистры

 

007Fh

 

(128 байт)

 

0080h

 

 

 

Нулевая страница оперативной памяти (128

00FFh

 

 

 

байт). Доступна в режиме короткой адресации.

0100h

 

RAM

Область оперативной памяти (128 байт), дос-

017Fh

 

(384 байт)

тупная только в режиме длинной адресации.

0180h

 

 

 

Область оперативной памяти (128 байт),

01FFh

 

 

 

используемая под стек.

0200h

 

Зарезервировано

Не используется. Обращение к этой области

0FFFh

памяти недопустимо.

1000h

 

EEPROM

 

Только в ST7Lite29. По адресам 1000h и 1001h

 

 

 

размещены соответственно регистры RCCR0

 

 

(256 байт)

 

10FFh

 

 

и RCCR1.

 

 

 

1100h

 

Зарезервировано

Не используется. Обращение к этой области

DFFFh

 

 

памяти недопустимо.

E000h

 

 

 

Сектор 1.

 

 

 

 

 

 

 

Сектор 0. Размер этого сектора может быть

 

 

Flash-память

FFDFh

 

(8 Кбайт)

выбран из четырех вариантов: 0,5; 1; 2 или

FFE0h

 

Векторы

4 Кбайт. Старшие 32 байта занимают векторы

FFFFh

 

сброса и прерываний.

 

 

 

 

 

 

 

Рис. 2

 

 

1.3. РЕГИСТРОВАЯ МОДЕЛЬ

Процессор микроконтроллеров семейства ST7 содержит шесть про- граммно-доступных регистров: аккумулятор A, индексные регистры X и Y, программный счетчик PC, указатель стека SP и регистр признаков

CC (рис. 3).

Аккумулятор А – 8-разрядный регистр общего назначения, используемый в качестве источника одного из операндов и приемника результата

арифметических, логических и других

операций.

Системный сброс

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

 

 

Основное назначение 8-разрядных

индексных

регистров X и Y –

формирование адреса при индексной адресации. Возможно также исполь-

10