
- •5.3. Микроконтроллер avr at90s8515 семейства Classic
- •Организация памяти микроконтроллера
- •Память программ
- •Память данных
- •Использование внешнего озу
- •Регистры общего назначения
- •Регистры ввода/вывода
- •Энергонезависимая память данных
- •Сторожевой таймер
- •Последовательный периферийный интерфейс spi
- •Прерывания
- •Обработка прерываний
- •Программирование микроконтроллеров
- •Защита программного кода и данных
- •Система команд и способы адресации памяти данных
- •Прямая адресация
- •Прямая адресация одного регистра общего назначения
- •Прямая адресация двух регистров общего назначения
- •Прямая адресация регистра ввода/вывода
- •Прямая адресация озу
- •Косвенная адресация
- •Простая косвенная адресация
- •Относительная косвенная адресация
- •Косвенная адресация с преддекрементом
- •Косвенная адресация с постинкрементом
- •Система команд
- •Операнды
- •Типы команд
- •Команды арифметических и логических операций
- •Команды пересылки данных
- •Команды передачи управления
- •Команды операций с битами
- •Команды управления системой
- •Пример программы и её оформление
- •Микропроцессорная система управления на базе мк at90s8515
- •7. Микроконтроллер экр1847вг6
- •8. Частотно-регулируемые привода
- •Режимы управления асинхронными электродвигателями
- •Преобразователь частоты 1336Plus
7. Микроконтроллер экр1847вг6
БИС ЭКР1847ВГ6 (аналог 8042 фирмы Intel, семейство UPI-42) является универсальным периферийным интерфейсным микроконтроллером (УПИМК), выполненным по n-МОП технологии. Это законченный однокристальный МК, который может быть напрямую связан с шинами главного процессора (ГП). Контроллеры, выполненные на базе УПИМК могут быть полностью автономными, взаимодействуя с ГП только для передачи данных.
БИС ЭКР1847ВГ6 имеет следующие характеристики:
8-разрядный процессор;
8-разрядная шина данных и интерфейсных регистров;
ПЗУ программ емкостью 2К
8;
ОЗУ данных емкостью 128 8;
счетчик интервалов времени/событий;
два 8-разрядных ТТЛ совместимых порта ввода-вывода;
встроенный генератор тактовой частоты (8 МГц).
В обычной конфигурации УПИМК согласуются с шинами ГП как обычные микропроцессорные периферийные устройства. ГП с УПИМК образуют слабо связанную мультипроцессорную систему с прямой связью.
Общие ресурсы в такой системе составляют 3 адресуемых регистра, имеющиеся в УПИМК:
DBBIN- входной буферный регистр информационной шины;
DBBOUT- выходной буферный регистр информационной шины;
STATUS- регистр состояния.
ГП может считывать данные из DBBOUT или записывать их в DBBIN. Состояние DBBOUT и DBBIN плюс биты состояния, определяемые пользователем, записываются в STATUS. ГП может считывать STATUS в любое время. При записи информации в регистр DBBIN автоматически происходит прерывание процессора УПИМК по заполнению буфера IBF(если оно разрешено).
Поскольку УПИМК включает в себя законченный микроконтроллер с программной памятью, памятью данных и процессором, он может использоваться как “универсальный” контроллер. Разработчик может программировать УПИМК для управления печатью, лентопротяжным механизмом, каналами последовательной и параллельной связи и т.п. Наличие двух 8-разрядных портов ввода/вывода Р1 и Р2 обеспечивает возможность обмена информацией с периферией.
БИС ЭКР1847ВГ6 конструктивно выполнена в 40-выводном пластмассовом DIP- корпусе.
На рис. 7.1 представлена структурная схема УПИМК.
АЛУ состоит из собственно арифметико-логического устройства, аккумулятора, регистра временного хранения и схемы десятичной коррекции аккумулятора.
АЛУ выполняет следующие операции:
суммирование с переносом и без переноса;
логические операции И, ИЛИ и исключающее ИЛИ;
инкремент и декремент;
битовое дополнение;
циклический сдвиг влево или вправо;
SWAP (перестановку старшей и младшей тетрад в байте);
десятичную коррекцию.
Рис. 7.1. Структурная схема микроконтроллера ЭКР1847ВГ6
Аккумулятор представляет собой 8-разрядный регистр, предназначенный для записи и хранения данных, подаваемых с внутренней шины.
Регистр временного хранения (В) представляет собой 8-разрядный регистр, предназначенный для записи и хранения второго операнда при выполнении операций в АЛУ.
Схема десятичной коррекции предназначена для обработки данных, представленных в двоично-десятичном коде.
Дешифратор команд представляет собой программируемую интегральную схему (ПЛИС). В процессе выборки команды операционный код каждой программной инструкции хранится и декодируется дешифратором команд. Дешифратор формирует управляющие сигналы, осуществляющие выполнение этой команды.
Счетчик команд (СК) предназначен для формирования текущего адреса местонахождения команды в памяти программ. УПИМК имеет 11-битовый СК, который обеспечивает прямую адресацию 2048 ячеек ПЗУ. СК всегда содержит адрес следующей выполняемой команды и обычно он последовательно увеличивается на единицу при выборке каждой последующей команды.
При передачи управления от основной программы к подпрограмме или программе прерывания содержимое СК изменяется на указанное в программе значение. При этом текущее значение СК сохраняется в стеке, чтобы после окончания выполнения подпрограммы продолжить выполнение основной программы. СК устанавливается в начальное (нулевое) состояние сигналом сброса /RES.
Регистр слова состояния программы (PSW) это 8-разрядный регистр, который используется для хранения информации о ходе выполнения программы.
Память программ имеет емкость 20488 (2 К) и занимает адресное пространство от 000Н до 7FFH. Память программ делится на страницы емкостью 256 байт в каждой.
В начальной области памяти программ имеются три ячейки, в которых записываются команды перехода по адресам векторов прерывания:
«000Н» - адрес, по которому выполняется первая выборка инструкции по сигналу сброса /RES;
«003Н» - начальный адрес подпрограммы, вызываемой по заполнению входного буфера (IBF) при условии, что прерывание разрешено;
«007Н» - начальный адрес подпрограммы, вызываемой по переполнению таймера/счетчика при условии, что прерывание разрешено.
Память данных предназначена для записи, хранения и считывания данных, получаемых в процессе обработки информации.
Карта распределения памяти данных представлена на рис. 7.2.
В ОЗУ имеется два банка РОН. Переключение банков осуществляется программным путем. Если банк 1 не используется, то регистры (ячейки 24-31) могут использоваться как дополнительное ОЗУ данных.
Восьмиуровневый 16-разрядный стек с адресами от 08Н до 17Н адресуется указателем стека из PSW.
УПИМК имеет 8-разрядный таймер/счетчик, имеющий несколько режимов работы, выбираемых программно. В режиме таймера он может вырабатывать точные интервалы времени от 60 мкс до 15,36 мс. В режиме счетчика могут подсчитываться внешние события (количество переключений различных устройств или число поступивших тактов) и использоваться для управления ходом программы.
Буфер ШД имеет два 8-разрядных регистра DBBIN и DBBOUT, которые необходимы для хранения команд и данных, проходящих между УПИМК и ГП.
Обмен осуществляется под управлением четырех сигналов: А0 - адресный вход (команда или данные); /CS - выбор кристалла; /RD - строб чтения; /WR - строб записи.
Во входной регистр DBBIN информация записывается ГП и затем читается УПИМК в аккумулятор. Этот регистр не может читаться ГП.
В выходной регистр информация записывается УПИМК и читается ГП. Этот регистр не может быть считан в аккумулятор УПИМК.
Рис.
7.2. Карта памяти микроконтроллера
Восьмиразрядный регистр состояния STATUS используется для отображения состояний регистров буфера шины данных. Биты регистра STATUS имеют следующие значения:
OBF - флаг заполнения выходного буфера;
IBF - флаг заполнения входного буфера;
F0 - флаг используется для передачи информации о состоянии УПИМК ГП;
F1 - команда/инверсные данные - устанавливается в состояние линии А0 (А0=1- команда, А0=0- данные);
ST4-ST7 - определяются пользователем программно.
Состояние сигналов управления при передаче информации в/из УПИМК приведено в табл. 7.1.
Таблица 7.1. Управление передачей информации
/CS |
/RD |
/WR |
A0 |
Наименование операции |
0 |
0 |
1 |
0 |
Чтение DBBOUT |
0 |
0 |
1 |
1 |
Чтение STATUS |
0 |
1 |
0 |
0 |
Запись данных в DBBIN |
0 |
1 |
0 |
1 |
Запись команды в DBBIN |
1 |
Х |
Х |
Х |
Запрещение обращения к шине данных |
Порты Р1 и Р2 являются 8-разрядными квазидвунаправленными портами совместимыми с ТТЛ уровнями. Данные статически присутствуют на выходах и могут быть изменены только с новой выдачей. Каждая из 16 линий портов может действовать независимо как вход или выход в зависимости от полученной команды. Порт 1 работает как статический порт независимо от режима использования УПИМК. Порт 2 является многофункциональным. Кроме работы в режиме ввода/вывода, 4 младших разряда порта 2 (Р2.3-Р2.0) могут использоваться как интерфейс для расширителя ввода/вывода КР580ВР43, что обеспечивает получение четырех дополнительных 4-разрядных портов, два разряда Р2.4 и Р2.5 могут использоваться для реализации внешних прерываний от ГП и два Р2.6 и Р2.7 - для организации ПДП.
Порты ввода/вывода позволяют подключать к УПИМК различные периферийные устройства, например как показано на рис 7.3.
При помощи команд ввода/вывода адресуются порты УПИМК, а также дополнительные порты ввода/вывода.
Входы тестирования, это входы которые могут программно проверяться. Один из них (Т1) используется как вход счетчика внешних событий.
Подключение УПИМК осуществляется непосредственно к шинам ГП (рис. 7.3).
Рис. 7.3. Пример использования УПИМК
Таблица 7.2. Назначение выводов УПИМК
Номера выводов |
Обозна-чение |
Тип |
Назначение |
1 |
ТО |
Вход |
Тестовый вход ТО используется при выполнении команд условного перехода JT0 и JNT0. |
2 |
X1 |
Вход |
Выводы для подключения кварцевого резонатора или LC-цепи. |
3 |
X2 |
Выход |
|
4 |
/RES |
Вход |
Сброс. |
5 |
/SS |
Вход |
Пошаговое выполнение программы. |
6 |
/CS |
Вход |
Выбор БИС. |
7 |
ЕM |
Вход |
Выбор режима БИС. |
8 |
/RD |
Вход |
Чтение регистров DBBOUT и STATUS. |
9 |
A0 |
Вход |
Выбор «команда/данные». |
10 |
/WR |
Вход |
Запись в регистр DBBIN. |
11 |
SYNC |
Выход |
Строб цикла. |
12-19 |
D7-D0 |
Вх/Вых |
Шина данных. |
20, 40 |
GND и Ucc |
- |
Общий и напряжение питания соответственно. |
21-24 |
P2.0-P2.3 |
Вх/Вых |
Порт Р2. |
35-38 |
P2.4-P2.7 |
Вх/Вых |
|
25 |
/PROG |
Выход |
Выход строба для расширителя ввода/вывода. |
26 |
Udd |
Вход |
Микропотребление. |
27-34 |
P1.0-P1.7 |
Вх/Вых |
Порт Р1. |
39 |
T1 |
Вход |
Тестовый вход Т1 используется при выполнении команд условного перехода JT1 и JNT1 и как вход счетчика внешних событий. |
Рис. 7.4. Схема подключения УПИМК