- Intel 8051
-
Intel 8051 — это однокристальный микроконтроллер (не путать с процессором) гарвардской архитектуры, который был впервые произведен Intel в 1980 году, для использования во встраиваемых системах. В течение 1980-х и начале 1990-х годов был чрезвычайно популярен, однако позже устарел и был вытеснен более современными устройствами, также с 8051-совместимыми ядрами, производимыми более чем 20 независимыми производителями такими как Atmel, Maxim IC (дочерняя компания Dallas Semiconductor), NXP , Winbond, Silicon Laboratories, Texas Instruments и Cypress Semiconductor). Официальное название 8051-семейства микроконтроллеров Intel — MCS 51. Существует также советский клон данной микросхемы, КР1816ВЕ51.
Первые из 8051-семейства Intel производились с использованием n-МОП технологии, но следующие версии, содержащие символ «C» в названии, такие как 80C51, использовали КМОП-технологию и потребляли меньшую мощность, чем n-МОП предшественники (это облегчало их применение для устройств с батарейным питанием).
Содержание
Особенности
- Состоит из процессорного ядра (CPU), ОЗУ, ПЗУ, последовательного порта, параллельного порта, логики управления прерываниями, таймер и т. д.
- Шина данных — 8-ми битная шина данных. Возможность обработки 8 бит данных за одну операцию. Обуславливает название 8-битный микропроцессор
- Шина адреса — 16 битная адресная шина. Возможность доступа к 216 адресам памяти, то есть 64 кБ адресное пространство в ОЗУ и ПЗУ
- Встроенное ОЗУ — 128 байт (Памяти данных)
- Встроенное ПЗУ — 4 КБ (Памяти программ)
- Четыре порта ввода/вывода: один двунаправленный и три квазидвунаправленных
- Последовательный интерфейс UART (Универсальный асинхронный приёмопередатчик)
- Два 16-битных таймера
- Два уровня приоритета прерываний
- Порядка 60 тысяч транзисторов на кристалле площадью 5,85 мм²[1]
- Энергосберегающий режим
Общей особенностью в современных 8051-совместимых микроконтроллерах стало встраивание улучшенных и дополнительных схем, таких как: автоматический сброс по падению питающего напряжения; встроенные тактовые генераторы; внутрисхемное программирование памяти программ; автозагрузчики долговременной памяти данных на основе EEPROM; I²C ; SPI (стандарт 3-проводной последовательной шины); USB хост-интерфейс; ШИМ-генераторы; аналоговых компараторов; АЦП и ЦАП преобразователей; часов реального времени; дополнительных таймеров и счетчиков; внутрисхемных отладчиков, дополнительных источников прерываний; расширенных энергосберегающих режимов.
8051-совместимые микроконтроллеры обычно имеют один или два УАПП (UART), два или три таймера, 128 или 256 байт встроенной ОЗУ (16 байт которой имеют побитовую адресацию), от 512 байт до 128 Кбайт встроенной памяти программ (ПЗУ), и иногда встречается использование EEPROM, адресуемой через «регистры специального назначения» (SFR = special function register). УАПП/UART может быть настроен для использования в режиме 9-бит данных, что делает возможным адресную приёмопередачу в многоточечном подключении на основе RS-485 аппаратного протокола.
Один машинный цикл оригинального 8051-ядра занимает 12 временных тактов, а большинство инструкций выполняется за один или два машинных цикла. При частоте тактового генератора, равной 12 МГц, 8051-ядро может выполнять 1 миллион операций в секунду, выполняемых за один цикл, или 500 тысяч операций в секунду, выполняемых за два цикла. Улучшенное 8051-совместимое ядро, которое в настоящее время распространено, выполняет машинный цикл за шесть, четыре, два, или даже за один временной такт, и позволяет использовать тактовые генераторы с частотой до 100 МГц, что позволило увеличить количество выполняемых операций в секунду.
Еще более быстрые 8051-ядра, с 1 тактом на машинный цикл, организуются с использованием ПЛИС, таких как FPGA (скорость в диапазоне 130—150 МГц) или ASIC (скорость в диапазоне нескольких сотен МГц), при помощи специальной прошивки[2]. Все 8051-совместимые устройства, производимые SILabs, некоторые из производимых Dallas и немногие из производимых Atmel имеют ядро с 1 тактом на машинный цикл.Чрезвычайно полезной особенностью 8051-ядра является обработка булевых данных, что позволило ввести бинарную логику, оперирующую напрямую с битами внутренней ОЗУ (области из 128 прямо-адресуемых битов) и регистров. Данная особенность была востребована в приложениях промышленной автоматики. Еще одна ценная особенность состояла в 4 независимых наборах регистров, которые значительно уменьшали задержки при обработке прерываний, в сравнении с классическим использованием стека, применявшимся ранее.
Родственные контроллеры
Предшественником контроллера 8051 был Intel 8048, который был применён в клавиатуре первого компьютера IBM PC — он конвертировал сигналы о нажатиях клавиш в поток данных, передававшийся по последовательной линии в системный блок компьютера. Контроллер 8048, а также контроллеры, спроектированные на его базе, всё ещё применяются в клавиатурах.
Контроллер 8031 является урезанной версией Intel 8051: у него отсутствует встроенная память для хранения программы.
Контроллер 8052 является расширенной версией оригинального Intel 8051: он оснащён 256 байтами внутреннего ОЗУ (вместо 128 байт 8051), 8 КБ ПЗУ (вместо 4 КБ), также ему добавлен третий 16-разрядный таймер.
Контроллер 8032 аналогичен 8052, но не имеет встроенной памяти для хранения программы. Контроллеры 8052 и 8032 считаются устаревшими, так как почти все современные варианты 8051 оснащены теми расширениями, которыми обладает 8052.Программирование
Для 8051 доступно несколько компиляторов с языка программирования Си, большинство из которых поддерживает расширения языка для более эффективного использования особенностей 8051. Например, программист может указать, в каком из шести типов памяти 8051 необходимо хранить переменную; компилятору можно указать, каким образом использовать переключаемые регистровые блоки и инструкции для манипулирования отдельными разрядами регистров.
Для программирования 8051 используются и другие языки высокого уровня: Форт, Бейсик, Паскаль, PL/M и Modula-2, однако они не получили такого широкого распространения как Си и ассемблер.
Подпрограмма ввода 8085 8048 8051 IN SERPORT MOV C,SERPIN ANI MASK CLR С JZ LO JNT0 LO CMC CPL С LO: LXI HL, SERBUF LO: MOV R0, #SERBUF MOV A,M MOV A, @R0 MOV A, SERBUF RR RRC A RRC A MOV M,A MOV @R0,A MOV SERBUF, A 8 команд 7 команд 4 команды 14 байт 9 байт 7 байт 56 состояний 9 циклов 4 цикла 19 мкс 22,5 мкс 4 мкс Подпрограмма вывода 8085 8048 8051 LXI HL,SERBUF MOV R0,#SERBUF MOV А,М MOV A,@R0 MOV A, SERBUF RR RRC A RRC A MOV М, А MOV @R0, A MOV SERBUF, A IN SERPORT JC HI JC HI LO: ANI NOT MASK ANL SERPRT, #NOT MASK MOV SERPIN, C JMP CNT JMP CNT HI: ORI MASK HI: ORL SERPRT, #MASK CNT:OUT SERPORT CNT: 10 команд 8 команд 4 команды 20 байт 13 байт 7 байт 72 состояния 11 циклов 5 циклов 24 мкс 27,5 мкс 5 мкс Применение
Этот раздел статьи ещё не написан. Согласно замыслу одного из участников Википедии, на этом месте должен располагаться специальный раздел.
Вы можете помочь проекту, написав этот раздел.См. также
Литература
- Боборыкин А. В.; Липовецкий Г. П. и др. Однокристальные микроЭВМ. Справочник. — М: Бином, 1994. — 400 с. — ISBN 5-85959-030-X
Ссылки
- Intel MCS 51 series microcontrollers (англ.)
- Atmel
- NXP (Philips) (англ.)
- Maxim (англ.)
- Winbond (англ.)
- Silicon Labs (англ.)
- Cypress USB (англ.)
- Texas Instruments (англ.)
- Single page instruction set summary (англ.)
Примечания
- ↑ Bob Koehler 8051 Single-Chip Microcomputer Arhitectural Specifications and Functional Description. — Santa Clara: Intel Corporation, 1980.
- ↑ Примеры можно увидеть на e8051.com
Микроконтроллеры Архитектура 8-бит MCS-51 • MCS-48 • PIC • AVR • Z8 • H8 • COP8 • 68HC08 • 68HC11 16-бит MSP430 • MCS-96 • MCS-296 • PIC24 • MAXQ • Nios • 68HC12 • 68HC16 32-бит ARM • MIPS • AVR32 • PIC32 • 683XX • M32R • SuperH • Nios II • Am29000 • LatticeMico32 • MPC5xx • PowerQUICC • Parallax Propeller Производители Analog Devices • Atmel • Silabs • Freescale • Fujitsu • Holtek • Hynix • Infineon • Intel • Microchip • Maxim • Parallax • NXP Semiconductors • Renesas • Texas Instruments • Toshiba • Ubicom • Zilog • Cypress Компоненты Регистр • Процессор • SRAM • EEPROM • Флеш-память • Кварцевый резонатор • Кварцевый генератор • RC-генератор • Корпус Периферия Таймер • АЦП • ЦАП • Компаратор • ШИМ-контроллер • Счётчик • LCD • Датчик температуры • Watchdog Timer Интерфейсы CAN • UART • USB • SPI • I²C • Ethernet • 1-Wire ОС FreeRTOS • μClinux • BeRTOS • ChibiOS/RT • eCos • RTEMS • Unison • MicroC/OS-II • Nucleus Программирование JTAG • C2 • Программатор • Ассемблер • Прерывание • MPLAB • AVR Studio • MCStudio Категория:- Микроконтроллеры
Wikimedia Foundation. 2010.