Открыть сервис

MCS-51

MCS-51 — это семейство 8-битных микроконтроллеров, разработанных компанией Intel в 1980 году. Архитектура MCS-51 стала одной из самых массовых и долгоживущих в истории микроконтроллеров, послужив основой для тысяч совместимых моделей, выпускаемых десятками производителей (Atmel, NXP, STMicroelectronics, Silicon Labs, Dallas Semiconductor и другими). Микроконтроллеры этого семейства представляют собой однокристальные микроЭВМ, объединяющие на одном кристалле центральный процессор (ЦП), оперативную память (ОЗУ), постоянную память (ПЗУ или Flash), порты ввода-вывода и периферийные модули.

История

Разработка Intel

Семейство MCS-51 было анонсировано Intel в 1980 году как развитие и усовершенствование архитектуры MCS-48 (1976 год). Первым представителем стал микроконтроллер Intel 8051. Он был изготовлен по HMOS-технологии (высокопроизводительная n-МОП логика) и содержал 4 Кбайт масочного ПЗУ, 128 байт ОЗУ, 32 линии ввода-вывода, два 16-битных таймера и последовательный порт. Тактовая частота первоначальных моделей составляла 12 МГц.

В 1985 году Intel выпустила версию 8052 с 8 Кбайт ПЗУ, 256 байт ОЗУ и третьим таймером. В 1987 году появилась версия 8031 — без встроенного ПЗУ, ориентированная на использование внешней памяти программ. Позднее вышли модели с пониженным энергопотреблением (CMOS-версии, например, 80C51).

Распространение и лицензирование

Intel не стала монополизировать архитектуру и активно лицензировала её другим производителям полупроводников. Благодаря открытой лицензионной политике, к концу 1980-х годов десятки компаний начали выпускать собственные версии 8051-совместимых микроконтроллеров. Это привело к огромному разнообразию моделей с различными объёмами памяти, периферией, тактовыми частотами и корпусами.

Эра Flash-памяти

Ключевым этапом развития стало внедрение технологии Flash-памяти для хранения программ. В 1990-х годах компания Atmel выпустила микроконтроллеры AT89C51 и AT89S51, которые программировались непосредственно в системе (ISP — In-System Programming). Это устранило главный недостаток масочных ПЗУ — невозможность изменения прошивки. Позднее Silicon Labs (C8051Fxxx) и другие производители начали выпускать высокопроизводительные версии с тактовой частотой до 100 МГц и встроенной периферией (АЦП, ЦАП, ШИМ, USB).

Архитектура

Гарвардская архитектура

MCS-51 использует модифицированную Гарвардскую архитектуру, при которой память программ и память данных разделены. Это позволяет одновременно обращаться к команде и к данным, что повышает производительность. Адресное пространство памяти программ (кода) составляет 64 Кбайт, адресное пространство памяти данных (внешней) — также 64 Кбайт.

Центральный процессор

ЦП основан на 8-битном аккумуляторном ядре. Основные регистры:

  • Аккумулятор (A) — основной рабочий регистр для арифметических и логических операций.
  • Регистр B — используется для операций умножения и деления.
  • Регистр-указатель стека (SP) — 8-битный, указывает на вершину стека в ОЗУ.
  • Регистр-указатель данных (DPTR) — 16-битный, используется для адресации внешней памяти.
  • Регистр состояния (PSW) — содержит флаги (перенос, нуль, переполнение, чётность и др.).

Система команд

Система команд MCS-51 включает 255 инструкций (из 256 возможных кодов). Команды имеют длину от 1 до 3 байт. Основные группы:

  • Пересылка данных (MOV, MOVX, MOVC, PUSH, POP).
  • Арифметические (ADD, ADDC, SUBB, MUL, DIV, INC, DEC).
  • Логические (ANL, ORL, XRL, CLR, CPL, RL, RR).
  • Передачи управления (JMP, CALL, RET, SJMP, AJMP, LJMP, условные переходы).
  • Битовые операции (SETB, CLR, CPL, JB, JNB, JBC) — уникальная особенность архитектуры.

Память

  • Внутреннее ОЗУ (IRAM): 128 байт (у 8051) или 256 байт (у 8052). Первые 32 байта организованы как 4 банка регистров общего назначения (R0–R7). Следующие 16 байт (0x20–0x2F) являются битово-адресуемой областью (128 бит).
  • Внутреннее ПЗУ (программ): от 0 до 64 Кбайт (в зависимости от модели). В современных версиях — Flash-память.
  • Внешняя память: подключается через шины адреса (P0, P2) и данных (P0). Для доступа к внешней памяти программ используется сигнал PSEN, к внешней памяти данных — сигналы RD/WR.

Периферия

Базовая периферия MCS-51 включает:

  • 4 8-битных порта ввода-вывода (P0–P3). Каждый вывод может быть сконфигурирован как вход или выход. P0 — двунаправленный, P1–P3 — с внутренними подтягивающими резисторами.
  • 2 (или 3) 16-битных таймера/счётчика (T0, T1, T2). Работают в режимах: 13-битный, 16-битный, 8-битный с автоперезагрузкой, разделённый таймер.
  • Полнодуплексный последовательный порт (UART). Поддерживает асинхронный режим (8- или 9-бит) и синхронный режим (сдвиговый регистр).
  • Система прерываний с 5 (у 8051) или 6 (у 8052) источниками: внешние прерывания (INT0, INT1), таймеры, последовательный порт.

Разновидности

По типу памяти программ

  • Mask ROM — программа записывается при изготовлении кристалла (8051, 8052). Не подлежит изменению.
  • OTP ROM (One-Time Programmable) — однократно программируемая память (87C51).
  • EPROM — память со стиранием ультрафиолетом (8751). Требует кварцевого окна в корпусе.
  • Flash — электрически перепрограммируемая память (AT89C51, AT89S51, C8051Fxxx). Наиболее распространённый тип в современных моделях.
  • ROMless — без встроенной памяти программ (8031, 80C32). Работает только с внешней памятью.

По производителям

  • Intel — оригинальные 8051, 8052, 80C51, 87C51 и др.
  • Atmel (Microchip) — AT89C51, AT89S51, AT89C2051 (20-выводной корпус), AT89LP51 (повышенная производительность).
  • NXP (Philips) — P89C51, P89V51, LPC900 (с Flash и ISP).
  • Silicon Labs — C8051Fxxx (высокая скорость, до 100 MIPS, встроенные АЦП/ЦАП, USB).
  • STMicroelectronics — ST89C51, ST89F51.
  • Dallas Semiconductor (Maxim) — DS89C420 (однотактное ядро, до 33 MIPS).
  • Infineon — C501, C502.
  • Temic (Atmel) — T89C51.

По производительности

  • Стандартные — 12 тактов на машинный цикл (1 MIPS при 12 МГц).
  • Ускоренные — 6 тактов на цикл (2 MIPS при 12 МГц).
  • Однотактные — 1 такт на цикл (до 33 MIPS при 33 МГц, например, DS89C420, C8051Fxxx).

Применение

MCS-51 и его клоны нашли широкое применение в промышленной автоматике, бытовой электронике, автомобильной промышленности, измерительных приборах и системах управления. Конкретные области:

  • Промышленные контроллеры — управление станками, конвейерами, роботами.
  • Бытовая техника — стиральные машины, микроволновые печи, холодильники, кофеварки.
  • Автомобильная электроника — блоки управления двигателем, ABS, подушками безопасности, климат-контролем.
  • Медицинское оборудование — тонометры, глюкометры, инфузионные насосы.
  • Телекоммуникации — модемы, маршрутизаторы, телефоны.
  • Игрушки и периферия — клавиатуры, мыши, пульты дистанционного управления.

Программирование

Языки

  • Ассемблер MCS-51 — низкоуровневый язык, позволяющий полностью контролировать ресурсы микроконтроллера. Используется для критичных по времени участков кода.
  • Си (C) — наиболее распространённый язык для MCS-51. Компиляторы (Keil C51, IAR C51, SDCC — свободный) генерируют эффективный код для 8-битной архитектуры.
  • BASIC — интерпретаторы (BASCOM-51) использовались для обучения и простых проектов.

Среды разработки

  • Keil µVision — наиболее популярная коммерческая среда для MCS-51. Включает редактор, компилятор, отладчик и симулятор.
  • IAR Embedded Workbench — коммерческая среда с высокой оптимизацией кода.
  • SDCC (Small Device C Compiler) — свободный компилятор Си с открытым исходным кодом.
  • Atmel Studio — среда для микроконтроллеров Atmel (включая AT89-серию).

Программаторы

Для записи прошивки в Flash-память используются программаторы (например, USBasp, STK200, TL866) и интерфейсы ISP (In-System Programming). Для старых EPROM-версий требовались УФ-стиратели и программаторы с высоким напряжением.

Интересные факты

  • Архитектура MCS-51 остаётся одной из самых популярных для обучения микроконтроллерной технике благодаря своей простоте и наглядности.
  • В 2010-х годах компания Silicon Labs выпустила микроконтроллер C8051F996, который потребляет всего 0,5 мкА в режиме ожидания.
  • Некоторые производители выпускают 8051-совместимые ядра в виде IP-блоков для FPGA и ASIC, что позволяет встраивать их в системы на кристалле (SoC).
  • В 2020-х годах, несмотря на появление более мощных 32-битных ARM-микроконтроллеров, MCS-51 продолжает выпускаться и использоваться в массовых недорогих устройствах.

Источники

  • Intel MCS-51 Microcontroller Family User’s Manual (1980, 1994)
  • Atmel AT89C51 Datasheet
  • Silicon Labs C8051Fxxx Datasheet
  • Keil C51 Compiler User’s Guide
  • «Микроконтроллеры MCS-51: архитектура, программирование, применение» — А.В. Баранов, 2007
  • «The 8051 Microcontroller and Embedded Systems» — Muhammad Ali Mazidi, Janice Gillispie Mazidi, 2000

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →