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 →