2011_Микроконтроллер_ST7_2
.pdfВ.А.Матвиенко, А.В. Матвиенко
СИСТЕМА КОМАНД МИКРОКОНТРОЛЛЕРОВ 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