Foreversoft.ru

IT Справочник
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Архитектура mcs 51

Архитектура микроконтроллеров MCS-51


Рисунок 1. Структурная схема контроллера I8751

Структурная схема контроллера представлена на рисунке 1. и состоит из следующих основных функциональных узлов: блока управления, арифметико-логического устройства, блока таймеров/счетчиков, блока последовательного интерфейса и прерываний, программного счетчика, памяти данных и памяти программ. Двусторонний обмен осуществляется с помощью внутренней 8-разрядной магистрали данных.

Рассмотрим подробнее назначение каждого блока. По такой схеме построены практически все представители семейства MCS-51. Различные микросхемы этого семейства различаются только регистрами специального назначения (в том числе и количеством портов). Система команд всех контроллеров семейства MCS-51 содержит 111 базовых команд с форматом 1, 2 или 3 байта и не изменяется при переходе от одной микросхемы к другой. Это обеспечивает прекрасную переносимость программ с одной микросхемы на другую.

Блок управления и синхронизации

Блок управления и синхронизации (Timing and Control) предназначен для выработки синхронизирующих и управляющих сигналов, обеспечивающих координацию совместной работы блоков ОЭВМ во всех допустимых режимах ее работы.В состав блока управления входят:

  • — устройство формирования временных интервалов,
  • — логика ввода-вывода,
  • — регистр команд,
  • — регистр управления потреблением электроэнергии,
  • — дешифратор команд, логика управления ЭВМ.

Устройство формирования временных интервалов предназначено для формирования и выдачи внутренних синхросигналов фаз, тактов и циклов. Количество машинных циклов определяет продолжительность выполнения команд. Практически все команды ОЭВМ выполняются за один или два машинных цикла, кроме команд умножения и деления, продолжительность выполнения которых составляет четыре машинных цикла. Обозначим частоту задающего генератора через Fг. Тогда длительность машинного цикла равна 12/Fг или составляет 12 периодов сигнала задающего генератора. Логика ввода — вывода предназначена для приема и выдачи сигналов, обеспечивающих обмен информации с внешними устройствами через порты ввода вывода Р0-Р3.

Регистр команд предназначен для записи и хранения 8-ми разрядного кода операции выполняемой команды. Код операции, с помощью дешифратора команд и логики управления ЭВМ, преобразуется в микропрограмму выполнения команды.

Регистр управления потреблением (PCON) позволяет останавливать работу микроконтроллера для уменьшения потребления электроэнергии и уменьшения уровня помех от микроконтроллера. Еще большего уменьшения потребления электроэнергии и уменьшения помех можно добиться, остановив задающий генератор микроконтроллера. Этого можно достичь при помощи переключения бит регистра управления потреблением PCON. Для варианта изготовления по технологии n-МОП (серия 1816 или иностранных микросхем, в названии которых в середине отсутствует буква ‘c’) регистр управления потреблением PCON содержит только один бит, управляющий скоростью передачи последовательного порта SMOD, а биты управления потреблением электроэнергией отсутствуют.

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

  • — регистров аккумулятора, регистров временного хранения TMP1 и TMP2,
  • — ПЗУ констант,
  • — сумматора,
  • — дополнительного регистра (регистра В),
  • — аккумулятора (ACC),
  • — регистра состояния программ (PSW).

Регистр аккумулятор и регистры временного хранения — восьмиразрядные регистры, предназначенные для приема и хранения операндов на время выполнения операций над ними. Эти регистры программно не доступны.

ПЗУ констант обеспечивает выработку корректирующего кода при двоично-десятичном представлении данных, кода маски при битовых операциях и кода констант.

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

Регистр B — восьмиразрядный регистр, используемый во время операций умножения и деления. Для других инструкций он может рассматриваться как дополнительный сверхоперативный регистр.

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

Блок последовательного интерфейса и прерываний (ПИП) предназначен для организации ввода-вывода последовательных потоков информации и организации системы прерывания программ. В состав блока входят:

  1. — буфер ПИП,
  2. — логика управления,
  3. — регистр управления,
  4. — буфер передатчика,
  5. — буфер приемника,
  6. — приемопередатчик последовательного порта,
  7. — регистр приоритетов прерываний,
  8. — регистр разрешения прерываний,
  9. — логика обработки флагов прерываний и схема выработки вектора.

Счетчик команд (Program Counter) предназначен для формирования текущего 16-разрядного адреса внутренней памяти программ и 8/16-разрядного адреса внешней памяти программ. В состав счетчика команд входят 16-разрядные буфер РС, регистр РС и схема инкремента (увеличения содержимого на 1).

Память данных (RAM) предназначена для временного хранения информации, используемой в процессе выполнения программы.

Читать еще:  Ошибка 4064 sql server

Порты P0, P1, P2, P3 являются квазидвунаправленными портами ввода — вывода и предназначены для обеспечения обмена информацией ОЭВМ с внешними устройствами, образуя 32 линии ввода- вывода.

Устройство таймеров В базовых моделях семейства имеются два программируемых 16-битных таймера/счетчика (T/C0 и T/C1), которые могут быть использованы как в качестве таймеров, так и в качестве счетчиков внешних событий

Регистр состояния программы (PSW) предназначен для хранения информации о состоянии АЛУ при выполнении программы.

Регистр указателя данных (DPTR) предназначен для хранения адреса внешней памяти данных или памяти программ.

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

Архитектура микроконтроллеров семейства MCS-51 (стр. 1 )

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7

АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА MCS-51

Конспект лекций по курсам

«Микропроцессоры в системах контроля», «Микропроцессорная техника»

«Микропроцессорные средства и системы»

для студентов всех форм обучения специальностей

072000 – Стандартизация и сертификация

210200 – Автоматизация технологических процессов

230104 – Системы автоматизированного проектирования

1. СТРУКТУРА МИКРОКОНТРОЛЛЕРА INTEL 8051. 3

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

1.2. Арифметико-логическое устройство. 6

1.3. Резидентная память программ и данных. 7

1.4. Аккумулятор и регистры общего назначения. 8

1.5. Регистр слова состояния программы и его флаги. 9

1.6. Регистры-указатели. 10

1.7. Регистры специальных функций. 11

1.8. Устройство управления и синхронизации. 11

1.9. Параллельные порты ввода/вывода информации. 12

1.10. Таймеры/счетчики. 13

1.11. Последовательный порт. 18

1.11.1. Регистр SBUF.. 18

1.11.2. Режимы работы последовательного порта. 18

1.11.3. Регистр SCON.. 19

1.11.4. Скорость приёма/передачи. 21

1.12. Система прерываний. 22

2. СИСТЕМА КОМАНД МИКРОКОНТРОЛЛЕРА INTEL 8051. 26

2.1. Общие сведения. 26

2.1.1. Типы команд. 27

2.1.2. Типы операндов. 28

2.1.3. Способы адресации данных. 30

2.1.4. Флаги результата. 31

2.1.5. Символическая адресация. 32

2.2. Команды передачи данных. 33

2.2.1. Структура информационных связей. 33

2.2.2. Обращение к аккумулятору. 33

2.2.3. Обращение к внешней памяти данных. 34

2.2.4. Обращение к памяти программ.. 34

2.2.5. Обращение к стеку. 35

2.3. Арифметические операции. 35

2.4. Логические операции. 39

2.5. Команды передачи управления. 43

2.5.1. Длинный переход. 43

2.5.2. Абсолютный переход. 43

2.5.3. Относительный переход. 44

2.5.4. Косвенный переход. 44

2.5.5. Условные переходы.. 44

2.5.6. Подпрограммы.. 47

2.6. Операции с битами. 48

Контрольные вопросы. 49

Приложение СИСТЕМА КОМАНД INTEL 8051. 51

ВВЕДЕНИЕ

С 80-х годов 20 века в микропроцессорной технике выделился самостоятельный класс интегральных схем – однокристальные микроконтроллеры, которые предназначены для встраивания в приборы различного назначения. От класса однокристальных микропроцессоров их отличает наличие внутренней памяти, развитые средства взаимодействия с внешними устройствами.

Широкое распространение получили 8-разрядных однокристальные микроконтроллеры семейства MCS-51. Это семейство образовалось на основе микроконтроллера Intel 8051, получившего большую популярность у разработчиков микропроцессорных систем контроля благодаря удачно спроектированной архитектуры. Архитектура микроконтроллера это совокупность внутренних и внешних программно доступных аппаратных ресурсов и системы команд.

В последствии фирма Intel выпустила около 50 моделей на базе операционного ядра микроконтроллера Intel 8051. Одновременно многие другие фирмы, такие как Atmel, Philips начали производство своих микроконтроллеров разработанных в стандарте MCS-51. Существует также и отечественный аналог микроконтроллера Intel 8051 — микросхема К1816ВЕ51.

2. СТРУКТУРА МИКРОКОНТРОЛЛЕРА INTEL 8051

Микроконтроллер Intel 8051 выполнен на основе высокоуровневой n-МОП технологии. Его основные характеристики следующие:

· восьмиразрядный центральный процессор, оптимизированный для реализации функций управления;

· встроенный тактовый генератор (максимальная частота 12 МГц);

· адресное пространство памяти программ — 64 Кбайт;

· адресное пространство памяти данных — 64 Кбайт;

· внутренняя память программ — 4 Кбайт;

· внутренняя память данных — 128 байт;

· дополнительные возможности по выполнению операций булевой алгебры (побитовые операции);

· 32 двунаправленные и индивидуально адресуемые линии ввода/вывода;

· 2 шестнадцатиразрядных многофункциональных таймера/счетчика;

· полнодуплексный асинхронный приемопередатчик (последовательный порт);

· векторная система прерываний с двумя уровнями приоритета и пятью источниками событий.

Рисунок 1 — Структурная схема микроконтроллера Intel 8051

Основу структурной схемы (рис. 1) образует внутренняя двунаправленная 8-разрядная шина, которая связывает между собой основные узлы и устройства микроконтроллера: резидентную память программ (RPM), резидентную память данных (RDM), арифметико-логическое устройство (ALU), блок регистров специальных функций, устройство управления (CU), параллельные порты ввода/вывода (P0-P3), а также программируемые таймеры и последовательный порт.

Читать еще:  Установка linux второй системой к windows 10

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

Данный микроконтроллер имеет встроенную (резидентную) и внешнюю память программ и данных. Резидентная память программ (RPM) имеет объем 4 Кбайт, резидентная память данных (RDM) – 128 Байт.

В зависимости от модификации микроконтроллера RPM выполняется в виде масочного ПЗУ, однократно программируемого либо репрограммируемого ПЗУ.

При необходимости пользователь может расширять память программ установкой внешнего ПЗУ. Доступ к внутреннему или внешнему ПЗУ определяется значением сигнала на выводе ЕА (External Access):

EA=VCC (напряжение питания) — доступ к внутреннему ПЗУ;

EA=VSS (потенциал земли) — доступ к внешнему ПЗУ.

Внешняя память программ и данных может составлять по 64 Кбайт и адресоваться с помощью портов P0 и P2. На рис.2 представлена карта памяти Intel 8051.

Рисунок 2 — Организация памяти Intel 8051

Строб чтения внешнего ПЗУ — (Program Store Enable) генерируется при обращении к внешней памяти программ и является неактивным во время обращения к ПЗУ, расположенному на кристалле.

Область нижних адресов памяти программ (рис. 3) используется системой прерываний. Архитектура микросхемы INTEL 8051 обеспечивает поддержку пяти источников прерываний. Адреса, по которым передается управление по прерыванию, называются векторами прерывания.

Рисунок 3 — Карта нижней области программной памяти

2.2. Арифметико-логическое устройство

8-битное арифметико-логическое устройство (ALU) может выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции И, ИЛИ, исключающее ИЛИ, а также операции циклического сдвига, сброса, инвертирования и т. п. К входам подключены программно-недоступные регистры T1 и T2, предназначенные для временного хранения операндов, схема десятичной коррекции (DCU) и схема формирования признаков результата операции (PSW).

Простейшая операция сложения используется в ALU для инкрементирования содержимого регистров, продвижения регистра-указателя данных (RAR) и автоматического вычисления следующего адреса резидентной памяти программ. Простейшая операция вычитания используется в ALU для декрементирования регистров и сравнения переменных.

Простейшие операции автоматически образуют “тандемы” для выполнения таких операций, как, например, инкрементирование 16-битных регистровых пар. В ALU реализуется механизм каскадного выполнения простейших операций для реализации сложных команд. Так, например, при выполнении одной из команд условной передачи управления по результату сравнения в ALU трижды инкрементируется счётчик команд (PC), дважды производится чтение из RDM, выполняется арифметическое сравнение двух переменных, формируется 16-битный адрес перехода и принимается решение о том, делать или не делать переход по программе. Все перечисленные операции выполняются всего лишь за 2 мкс.

Важной особенностью ALU является его способность оперировать не только байтами, но и битами. Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях. Эта способность достаточно важна, поскольку для управления объектами часто применяются алгоритмы, содержащие операции над входными и выходными булевыми переменными, реализация которых средствами обычных микропроцессоров сопряжена с определенными трудностями.

Таким образом, ALU может оперировать четырьмя типами информационных объектов: булевыми (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В ALU выполняется 51 различная операция пересылки или преобразования этих данных. Так как используется 11 режимов адресации (7 для данных и 4 для адресов), то путем комбинирования операции и режима адресации базовое число команд 111 расширяется до 255 из 256 возможных при однобайтном коде операции.

2.3. Резидентная память программ и данных

Резидентные (размещённые на кристалле) память программ (RPM) и память данных (RDM) физически и логически разделены, имеют различные механизмы адресации, работают под управлением различных сигналов и выполняют разные функции.

Память программ RPM имеет емкость 4 Кбайта и предназначена для хранения команд, констант, управляющих слов инициализации, таблиц перекодировки входных и выходных переменных и т. п. Память имеет 16-битную шину адреса, через которую обеспечивается доступ из программного счётчика PC или из регистра-указателя данных (DPTR). DPTR выполняет функции базового регистра при косвенных переходах по программе или используется в операциях с таблицами.

Память данных RDM предназначена для хранения переменных в процессе выполнения прикладной программы, адресуется одним байтом и имеет емкость
128 байт. Кроме того, к её адресному пространству примыкают адреса регистров специальных функций, которые перечислены в табл. 1.

Читать еще:  Как создать папку через терминал в linux

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

Intel 8051. 30 лет в устройствах, приборах и… мягких игрушках

Что общего у торгового автомата, светофора и говорящего плюшевого медведя? Вопрос, наверное, не из самых простых, поэтому не будем вас томить: все они управляются с помощью микроконтроллера Intel 8051 – пожалуй, самого популярного контроллера для встраиваемых систем за всю их историю. И хотя еще в 1996 году 8051 был заменен Intel на более совершенную модель, его клоны по сей день продолжают выпускаться десятком компаний. Думается, столь необычный долгожитель достоин хотя бы небольшого поста.

Хотелось бы сразу оговориться. Корректнее говорить о мега успешном семействе контроллеров Intel MCS-51, состоящим из 13 представителей: 8031, 8051, 80C31,80C51, 8032, 8052, 80C32, 80C52, 8751, 8752, 87C51, 80C152, 8XC51FA. Однако 8051 стоит в ней все-таки особняком – именно эта модель стала прорывной, поэтому в дальнейшем будем рассматривать и весь ряд целиком, и 8051 в качестве примера.
Intel 8051 пришел на смену своему предшественнику 8048 в 1980 году. Причиной его успеха стало сочетание здорового консерватизма и технологических нововведений, так необходимых в то время и практически сразу подхваченных рынком. Все эти нововведения так или иначе касались производительности. Основная структура 8-разрядного арифметико-логического устройства сохранилась, однако было введено огромное количество битово-ориентированных операций; увеличилось количество команд пересылки без участия аккумулятора, были добавлены команды умножения, деления и новые команды вычитания. Появились усовершенствования при работе со стеком.


Контроллер Intel 8051

Изменения в структуре временного цикла микроконтроллера привели к значительному ускорению работы с внешней памятью программ и данных. Было расширено адресное пространство внутренней памяти программ и увеличено пространство внешней памяти программ и данных до 64 Кбайт. 16-битные регистры счетчика команд и указателя данных позволили напрямую обращаться ко всему диапазону адресов, что дало возможность реализации быстрой обработки больших массивов данных. Все программно-доступные узлы микроконтроллера сведены в специальную область памяти данных, что позволило обращаться к ним как к обычным ячейкам резидентного ОЗУ. При сохранении потребления кристаллов была значительно увеличена максимальная тактовая частота микроконтроллеров до 12-16 МГц.


Обобщенная структурная схема контроллера Intel 8051

Контроллер Intel 8051 состоит из следующих основных компонент:

  • 8-разрядного ЦП (1-байтное АЛУ и схема аппаратной реализации умножения и деления);
  • ПЗУ программ емкостью 4 Кб;
  • ОЗУ данных емкостью 128 байт;
  • 32-х дуплексных программируемых интерфейсных линий;
  • двух 16-битных таймеров для подсчета внешних событий и тактирования коммуникационного порта;
  • асинхронного дуплексного последовательного канала ввода/вывода со скоростью до 375 кбит/сек.

Intel 8051 стал первым встраиваемым контроллером, научившемся получать и передавать данные одновременно, что также предопределило его успех. Теперь мощности MCS-51 хватало и для использования, скажем, в приставках кабельного телевидения (там они отвечают за синхронизацию, декодирование аудио и OSD). Другим важным шагом вперед стал переход на КМОП-технологию производства, что открыло для MCS-51 мир портативной техники, и не только устройств и приборов, но и, как уже говорилось, замечательных и крайне прогрессивных на то время детских игрушек, вроде медвежонка Talking Wrinkles (контроллер 80С31, 1986 год).


Рекламное видео игрушки Talking Wrinkles

В 1990 году Intel отмечала своеобразный юбилей – 100 миллионов выпущенных контроллеров MCS-51. Это поистине было временем расцвета серии, контроллеры тогда выходили в свет с умопомрачительной скоростью – 1 штука за 0.7 секунды! И каждой штуке находилось применение: в автомобильных бортовых системах ведущих производителей, таких как Ford, General Motors, Saab, Volkswagen и BMW; в бортовых авиационных самописцах и тысячах других важных и нужных устройств. Не удивительно, что следующие 100 миллионов были произведены за каких-нибудь несколько лет. Сейчас, конечно, темпы уже не те, но интерес к MCS-51 по-прежнему не угасает. Можно привести лишь один пример. В 2012 году на русском языке был выпущен новый учебник по Intel 8051 и программированию под него. Как раз из этого учебника мы любезно позаимствовали некоторую часть информации и схему для поста.

Ссылка на основную публикацию
Adblock
detector