Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ
Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ
ВСТРОЕННЫЕ МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ НА ОСНОВЕ ОДНОКРИСТАЛЬНЫХ МИКРОЭВМ Содержание 1. Структура микроконтроллера семейства MCS-51 2. Программно доступные ресурсы и организация памяти 3. Система команд 4. Способы адресации операндов 5. Программная модель битового процессора 6. Применение битового процессора СПИСОК ЛИТЕРАТУРЫ 1. Структура микроконтроллера семейства MCS-51 Внутренняя структура исходного микроконтроллера семейства MCS-51 (рис.1) включает следующий набор функциональных модулей: 8-разрядное АЛУ с аппаратной реализацией операций типа умножение; внутренняя память программ (4Кбайт) и ОЗУ данных (128 байт); четыре универсальных программируемых параллельных 8-разрядных порта ввода-вывода с возможностью реализации определенных альтернативных функций; два 16-разрядных программируемых таймера/счетчика; дуплексный последовательный порт. Этот набор аппаратных средств и совокупность реализуемых функций делают МК семейства 8051 эффективным средством сбора, предобработки информации и управления объектом. Усовершенствование HMOS технологии, рост степени интеграции позволил в рамках устоявшейся архитектуры расширить набор внутренних интерфейсных блоков, увеличить внутреннюю память программ и данных. Таким образом появились микроконтроллеры типа 8052. Далее семейство продолжало увеличиваться за счет модификаций типа 80С51/52/54/58, выполненных с использованием фирменной комплиментарной MOS технологии (CHMOS). Эта технология позволила уменьшить рассеиваемую мощность при обычной работе и ввести особые режимы, дополнительно снижающие энергопотребление. Появились микроконтроллеры типа 80L52/54/58 с пониженным напряжением питания. С группой 80C51FA/FB/FC связано введение в архитектуру семейства модуля РСА (programmable counter array) и сторожевого таймера WDT (watchdog timer). Модуль РСА предназначен для выполнения различных операций счета и определения длительности интервалов времени, в том числе при широтно-импульсной модуляции. Сторожевой таймер обеспечивает перезагрузку процессора при зависаниях. Старшими членами семейства являются микроконтроллеры типа 80C51GB, имеющие встроенный 8-разрядный АЦП, шесть параллельных портов. Современные версии микроконтроллеров семейства MCS-51 выполнены с использованием полностью статической схемотехники. Это позволяет останавливать микроконтроллер при отладке разрабатываемой системы. Рисунок 1 - Структура микроконтроллера 8051AH 2. Программно доступные ресурсы и организация памяти ОМЭВМ (МК семейства MCS-51) имеет: 32 POH; 128 определяемых пользователем программно-управляемых флагов; набор регистров специальных функций. POH и определяемые пользователем программно-управляемые флаги расположены в адресном пространстве внутреннего ОЗУ данных. Регистры специальных функций (SFR, SPECIAL FUNCTION REGISTERS) с указанием их адресов приведены в таблице 1. Таблица 1 - Регистры специальных функций |
Обозначение | Наименование | Адрес | | * АСС | Аккумулятор | 0Е0Н | | * В | Регистр В | 0F0H | | * PSW | Регистр состояния программы | 0D0H | | SP | Указатель стека | 81Н | | DPTR | Указатель данных. 2 байта: | | | DPL | Младший байт | 82Н | | DPH | Старший байт | 83Н | | * Р0 | Порт 0 | 80Н | | * Р1 | Порт 1 | 90Н | | * Р2 | Порт 2 | 0А0Н | | * РЗ | Порт 3 | 0В0Н | | * IP | Регистр приоритетов прерываний | 0В8Н | | * IE | Регистр разрешения прерываний | 0А8Н | | TMOD | Регистр режимов таймера/счетчика | 89Н | | * TCON | Регистр управления таймера/счетчика | 88Н | | TH0 | Таймер/счетчик 0. Старший байт | 8СН | | TL0 | Таймер/счетчик 0. Младший байт | 8АН | | TH1 | Таймер/счетчик 1. Старший байт | 8DH | | TL1 | Таймер/счетчик 1. Младший байт | 8ВН | | * SCON | Управление последовательным портом | 98Н | | SBUF | Буфер последовательного порта | 99Н | | PCON | Управление потреблением | 87Н | | |
* - регистры, допускающие побитовую адресацию. Аккумулятор. АСС - регистр аккумулятора. Команды, предназначенные для работы с аккумулятором, используют мнемонику "А", например, MOV А, Р2. Мнемоника "АСС" используется, к примеру, при побитовой адресации аккумулятора. Так, символическое имя пятого бита аккумулятора при использовании ассемблера ASM51 будет следующим: АСС.5. Регистр В. Используется во время операций умножения и деления. Для других инструкций регистр В может рассматриваться как дополнительный сверхоперативный регистр. Регистр состояния программы. Регистр PSW содержит информацию о состоянии программы. Указатель стека SP. 8-битовый регистр, содержимое которого инкрементируется перед записью данных в стек при выполнении команд PUSH и CALL. При начальном сбросе указатель стека устанавливается в 07Н, а область стека в ОЗУ данных начинается с адреса 08Н. При необходимости путем переопределения указателя стека область стека может быть расположена в любом месте внутреннего ОЗУ данных микроЭВМ. Указатель данных. Указатель данных (DPTR) состоит из старшего байта (DPH) и младшего байта (DPL). Содержит 16-битовый адрес при обращении к внешней памяти. Может использоваться как 16-битовый регистр или как два независимых восьмибитовых регистра. Порт0 - ПортЗ. Регистрами специальных функций Р0, Р1, Р2, РЗ являются регистры-"защелки" соответственно портов Р0, Р1, Р2, РЗ. Буфер последовательного порта. SBUF представляет собой два отдельных регистра: буфер передатчика и буфер приемника. Когда данные записываются в SBUF, они поступают в буфер передатчика, причем запись байта в SBUF автоматически инициирует его передачу через последовательный порт. Когда данные читаются из SBUF, они выбираются из буфера приемника. Регистры таймера. Регистровые пары (TH0,TL0) и (TH1,TL1) образуют 16-битовые счетные регистры соответственно таймера/счетчика 0 и таймера/счетчика 1. Регистры управления. Регистры специальных функций IP, IE, TMOD, TCON, SCON и PCON содержат биты управления и биты состояния системы прерываний, таймеров/счетчиков и последовательного порта. ОМЭВМ при функционировании обеспечивает: минимальное время выполнения команд сложения - 1 мкс; аппаратное умножение и деление с минимальным временем выполнения команд умножения/деления - 4 мкс. Все ОМЭВМ рассматриваемого семейства имеют несколько адресных пространств, функционально и логически разделенных за счет разницы в механизмах адресации и сигналах управления записью и чтением: память программ; внутренняя память данных; внешняя память данных. Структура адресного пространства ОМЭВМ показана на рис. 2. Слева приводятся адреса соответствующих областей памяти. Рисунок 2 - Пространство памяти ОМЭВМ Память программ имеет 16-битовую адресную шину, ее элементы адресуются использованием счетчика команд (PC) или инструкций, которые вырабатывают 16-разрядные адреса. Память программ доступна только по чтению. ОМЭВМ не имеют команд и управляющих сигналов, предназначенных для записи в память программ. Память программ имеет байтовую организацию и общий объем до 64 Кбайт. Ряд OMЭВМ (КР1816ВЕ51, КМ1816ВЕ751, КР1830ВЕ51) содержат расположенную на кристалле внутреннюю память программ емкостью 4 Кбайт, которая может быть расширена до 64 Кбайт за счет подключения микросхем внешней памяти программ. ОМЭВМ семейства MCS-51 имеют внешний вывод DEMA, с помощью которого можно запретить работу внутренней памяти программ, для чего необходимо подать на вывод DEMA "0". При этом внутренняя память программ отключается и, начиная с нулевого адреса, все обращения происходят к внешней памяти программ с формированием сигнала РМЕ. В случае, если DEMA=1, работают и внутренняя, и внешняя память программ. Для ОМЭВМ, не имеющих внутренней памяти программ, для нормальной работы всегда необходимо задавать DEMA=0. Таким образом, доступ к внешней памяти программ осуществляется в двух случаях: 1) при действии сигнала DEMA=0 независимо от адреса обращения; 2) в любом случае, если программный счетчик (PC) содержит число, большее чем 0FFFH. Внутренняя память данных ОМЭВМ состоит из двух областей: 128 байт оперативной памяти (ОЗУ) с адресами 0-7FH и области регистров специальных функций, занимающей адреса 80Н-FFH. Распределение пространства внутренней памяти данных показано на рис. 3. Физически внутреннее ОЗУ данных и область регистров специальных функций являются отдельными устройствами. Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямой и косвенной адресации (режимы адресации даны в описании системы команд ОМЭВМ). Кроме того, внутреннее ОЗУ данных имеет следующие особенности. Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров в каждом (БАНК0 - БАНКЗ на рис. 3). Команды программы могут обращаться к регистрам, используя их имена R0 - R7. Два бита PSW (указатели банка рабочих регистров RS0 и RS1) определяют, с регистрами какого банка производятся манипуляции. Наличие такого механизма работы с ячейками ОЗУ позволяет экономить память программ, т. к. команды, работающие с регистрами R0-R7, короче команд, использующих прямую адресацию. Следующие после банков регистров внутреннего ОЗУ данных 16 байт (адреса 20Н-2FH) образуют область ячеек, к которым возможна побитовая адресация. Набор команд ОМЭВМ семейства MCS-51 содержит значительное количество инструкций, позволяющих работать с отдельными битами, используя при этом прямую адресацию. 128 бит, составляющих рассматриваемую область внутреннего ОЗУ данных, имеют адреса 00Н-7FH и предназначены для работы с такими инструкциями. Рисунок 3 - Адресное пространство внутренней памяти данных Внешняя память данных формируется дополнительными микросхемами памяти, подключаемыми к ОМЭВМ, и может иметь емкость до 64 Кбайт. Пространства внутренней и внешней памяти данных не пересекаются, т.к. доступ к ним осуществляется с помощью разных команд. Для работы с внешней памятью данных существуют специальные команды MOVX, которые не влияют на внутреннюю память данных ОМЭВМ. Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00Н - FFH и внешняя память данных с адресами 0000Н - FFFFH. Обращение к ячейкам внешней памяти данных осуществляется только с использованием косвенной адресации по регистрам R0 и R1 активного банка регистров внутреннего ОЗУ (команды типа MOV @Ri) или по регистру специальных функций DPTR (команды типа MOV @DPTR). Соответственно в первом случае будет формироваться 8-разрядный, а во втором случае 16-разрядный адреса внешней памяти данных. При обращениях к внешней памяти данных адрес выводится через порт Р0 (младший байт) и порт Р2 (старший байт) ОМЭВМ. Обмен байтом данных (запись и чтение) производится через порт Р0 ОМЭВМ, т.е. порт Р0 используется как шина адреса/данных в режиме мультиплексирования. Считывание данных из внешней памяти данных в ОМЭВМ производится с помощью выходного сигнала ОМЭВМ RD, а запись данных из ОМЭВМ во внешнюю память данных с помощью выходного сигнала ОМЭВМ WR. Каждый тип внешней памяти (память программ, память данных) может быть добавлен независимо от другого и каждый использует те же адреса и шины данных, но различные сигналы управления. 3. Система команд Система команд ОМЭВМ семейства MCS-51 имеет 111 команд и позволяет реализовать обработку данных, обеспечить выполнение логических, арифметических операций, а также управление в режиме реального времени. Реализованы побитовая, потетрадная (4 бита), побайтовая (8 бит) и 16-разрядная обработка данных. Полное описание команд и примеры их выполнения приведены в приложении Б. В машинном коде команда занимает один, два или три байта и выполняется за один, два или четыре (умножение и деление) машинных цикла. При частоте тактового генератора, равной 12 МГц, одноцикловые команды выполняются за 1 мкс, двухцикловые - за 2 мкс и т.д. Из 111 типов команд 64 выполняются за 1 мкс (12 тактов), 45 команд - за 2 мкс (24 такта) и две команды - умножение и деление (MUL, DIV) выполняются за 4 мкс (48 тактов). Все команды условных переходов осуществляются относительно содержимого счетчика команд с адресом перехода, вычисляемым ЦПУ во время выполнения команды. Трехбайтовые команды перехода и вызова LCALL, LJMP (с 16-разрядным адресом) позволяют осуществлять переход и обращение по любому адресу адресного пространства памяти программ емкостью 64 Кбайт. Если необходим переход в пределах области памяти программ 2 К, то можно использовать команды перехода и вызова с 11-разрядным адресом (ACALL, AJMP). Переход внутри участка памяти, определяемый 8-разрядной величиной смещения, осуществляется по команде SJMP. В табл. 2 приведены обозначения и символы, используемые в системе команд. Систему команд ОМЭВМ условно можно разбить на пять групп: арифметические команды; логические команды с байтовыми переменными; команды передачи данных; команды битового процессора; команды ветвления программ и передачи управления. Арифметические команды. В наборе команд ОМЭВМ имеются следующие арифметические операции: сложение, сложение с учетом флага переноса, вычитание с заёмом, инкрементирование, декрементирование, сравнение, десятичная коррекция, умножение и деление. Таблица 2 - Обозначение символов в наборе команд |
Обозначение, символ | Назначение | | 1 | 2 | | А | Аккумулятор | | Rr | Регистры текущего выбранного банка регистров | | r | Номер загружаемого регистра, указанного в команде | | direct | Прямо адресуемый 8-битовый внутренний адрес ячейки данных, который может быть ячейкой внутреннего ОЗУ данных (0-127) или SFR (128-255) | | @Rr | Косвенно адресуемая 8-битовая ячейка внутреннего ОЗУ данных | | data 8 | 8-битовое непосредственное данное, входящее в код операции (КОП) | | Data 16 | 16-битовое непосредственное данное, входящее КОП | | Data Н | Старшие биты (15-8) непосредственных 16-битовых данных | | Data L | Младшие биты (7-0) непосредственных 16-битовых данных | | Addr 11 | 11-битовый адрес назначения | | Addr 16 | 16-битовый адрес назначения | | Addr L | Младшие биты адреса назначения | | disp 8 | 8-битовый байт смещения со знаком | | bit | Бит с прямой адресацией, адрес которого содержит КОП, находящийся во внутреннем ОЗУ данных или SFR | | al5,al4...a0 | Биты адреса назначения | | (X) | Содержимое элемента Х | | ((X)) (X) [M] | Содержимое по адресу, хранящемуся в элементе Х Разряд М элемента Х | | (X)[MI-M2] | Группа разрядов М1-М2 элемента Х | | + - * / AND OR XOR /X | Операции: сложения вычитания умножения деления логического умножения (операция И) логического сложения (операция ИЛИ) сложения по модулю 2 (операция "Исключающее ИЛИ") инверсия элемента Х | | |
Страницы: 1, 2, 3
|