Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Intel MCS-51 (обычно называют 8051 ) представляет собой однокристальный микроконтроллер серии (MCU) , разработанный Intel в 1980 году для использования в встраиваемых системах . Архитектором набора команд Intel MCS-51 был Джон Х. Уортон . [1] [2] Оригинальные версии Intel были популярны в 1980-х и начале 1990-х годов, а улучшенные бинарные совместимые производные остаются популярными и сегодня. Это пример компьютера со сложным набором команд , в котором есть отдельные области памяти для программных инструкций и данных.

Первоначальное семейство Intel MCS-51 было разработано с использованием технологии металл-оксид-полупроводник ( NMOS ) N-типа, как и его предшественник Intel MCS-48 , но более поздние версии, обозначенные буквой C в их названии (например, 80C51), используют дополнительный металл - оксидно-полупроводниковая технология ( CMOS ) и потребляют меньше энергии, чем их предшественники NMOS. Это сделало их более подходящими для устройств с батарейным питанием.

Семейство было продолжено в 1996 году с улучшенным 8-битным семейством MCS-151 и семейством 8/ 16 / 32-битных MCS-251 двоично-совместимых микроконтроллеров. [3] Хотя Intel больше не производит семейства MCS-51, MCS-151 и MCS-251, улучшенные бинарно-совместимые производные, выпускаемые многочисленными поставщиками, остаются популярными и сегодня. Некоторые производные интегрируют процессор цифровых сигналов (DSP). Помимо этих физических устройств, несколько компаний также предлагают производные MCS-51 в качестве IP-ядер для использования в конструкциях программируемых вентильных матриц (FPGA) или специализированных интегральных схем (ASIC).

Важные функции и приложения [ править ]

i8051 микроархитектура
i8051 распиновка

Архитектура 8051 предоставляет множество функций ( центральный процессор (ЦП), оперативная память (RAM), постоянная память (ROM), порты ввода / вывода (I / O), последовательный порт, управление прерываниями , таймеры ) в одном устройстве. пакет :

  • 8- разрядный арифметико-логический блок (ALU) и аккумулятор , 8-разрядные регистры (один 16-разрядный регистр со специальными командами перемещения ), 8-разрядная шина данных и 2 × 16-разрядные шины адреса , программный счетчик , указатель данных и т. Д. 8/11/16-битные операции; следовательно, это в основном 8-битный микроконтроллер.
  • Логический процессор с 17 инструкциями, 1-битным аккумулятором, 32 регистрами (4 8-битных с адресацией по разряду) и до 144 специальных 1-битных переменных ОЗУ (18 8-битных с адресацией по битам) [4]
  • Инструкции по умножению , разделению и сравнению
  • Четыре быстро переключаемых банка регистров по восемь регистров в каждом ( отображение в памяти )
  • Быстрое прерывание с опциональным переключением банка регистров
  • Прерывания и потоки с выбираемым приоритетом [5]
  • 128 или 256 байт встроенной оперативной памяти (IRAM)
  • Двойная 16-битная адресная шина ; он может получить доступ к 2 × 2 16 ячейкам памяти: по 64  КБ (65 536 ячеек) каждая из ПЗУ (PMEM) и внешней RAM (XRAM)
  • Встроенное ПЗУ (не входит в варианты 803x)
  • Четыре 8- битных двунаправленных порта ввода / вывода с битовой адресацией
  • UART ( последовательный порт )
  • Два 16-битных счетчика / таймера
  • Режим энергосбережения (на некоторых производных)

Одной из особенностей ядра 8051 является включение механизма логической обработки, который позволяет выполнять логические операции на уровне битов напрямую и эффективно над выбранными внутренними регистрами , портами и выбранными ячейками ОЗУ . Другой особенностью является включение четырех наборов рабочих регистров с возможностью выбора банка , что значительно сокращает время, необходимое для выполнения переключений контекста для входа и выхода из подпрограмм обслуживания прерываний . С помощью одной инструкции 8051 может переключать банки регистров, избегая трудоемкой задачи по переносу критических регистров в ОЗУ.

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

Производные функции [ править ]

По состоянию на 2013 год , новые производные программы все еще разрабатываются многими крупными производителями микросхем, а крупные поставщики компиляторов, такие как IAR Systems , Keil и Altium Tasking [6], постоянно выпускают обновления.

Микроконтроллеры на основе MCS-51 обычно включают в себя один или два UART , два или три таймера, 128 или 256 байтов внутренней ОЗУ данных (16 байтов из которых имеют побитовую адресацию), до 128 байтов ввода / вывода , от 512 байтов до 64 КБ внутренней программной памяти, а иногда и некоторого количества расширенной ОЗУ данных (ERAM), расположенной во внешнем пространстве данных. Внешняя RAM и ROM совместно используют шины данных и адреса. Исходное ядро ​​8051 работало с 12 тактовыми циклами на машинный цикл, при этом большинство инструкций выполнялось за один или два машинных цикла. С тактовой частотой 12 МГцТаким образом, 8051 может выполнять 1 миллион одноцикловых инструкций в секунду или 500000 двухтактных инструкций в секунду. В настоящее время широко используются усовершенствованные ядра 8051, которые работают с шестью, четырьмя, двумя или даже одной тактовой частотой за машинный цикл (обозначается «1T») и имеют тактовые частоты до 100 МГц, и, таким образом, способны к еще большему количеству инструкций в секунду. Все Silicon Labs , некоторые устройства Dallas и несколько устройств Atmel имеют одноцикловые ядра .

Варианты 8051 могут включать в себя встроенные таймеры сброса с обнаружением обесточивания, встроенные генераторы, самопрограммируемую память программ флэш-ПЗУ , встроенное внешнее ОЗУ, дополнительное внутреннее хранилище программ, код загрузчика в ПЗУ, энергонезависимое хранилище данных EEPROM. , Интерфейсы хоста I²C , SPI и USB , шина CAN или LIN , радиомодули ZigBee или Bluetooth , генераторы ШИМ , аналоговые компараторы , аналого-цифровые и цифро-аналоговые преобразователи , RTC, дополнительные счетчики и таймеры, средства внутрисхемной отладки , больше источников прерываний, дополнительные режимы энергосбережения, больше / меньше параллельных портов и т. д. Intel изготовила версию с программированием маски, 8052AH-BASIC, с интерпретатором BASIC в ПЗУ, способную запускать пользователя программы загружаются в оперативную память.

Микроконтроллеры на базе MCS-51 адаптированы к экстремальным условиям. Примерами высокотемпературных вариантов являются семейство Tekmos TK8H51 от −40  ° C до +250  ° C [7] или Honeywell HT83C51 от −55  ° C до +225  ° C (с работой до 1 года при +300  ° C). C). [8] Доступны радиационно-стойкие микроконтроллеры MCS-51 для использования в космических аппаратах; например, от Cobham (ранее Aeroflex ) как UT69RH051 [9] или от НИИЭТ как 1830VE32 ( русский : 1830ВЕ32 ). [10]

В некоторых инженерных школах микроконтроллер 8051 используется во вводных курсах по микроконтроллерам. [11] [12] [13] [14]

Соглашения об именах семей [ править ]

8051 - это оригинальное название Intel с 4 КБ ПЗУ и 128 байт ОЗУ. Варианты, начинающиеся с 87, имеют программируемое пользователем ППЗУ, иногда стираемое УФ-излучением. Варианты с C в качестве третьего символа - это своего рода CMOS . 8031 и 8032 - это версии без ПЗУ, с ОЗУ 128 и 256 байт. Последняя цифра может указывать размер памяти, например, 8052 с 8 КБ ROM, 87C54 16 КБ EPROM и 87C58 с 32 КБ EPROM, все с 256 байтами RAM.

Архитектура памяти [ править ]

MCS-51 имеет четыре различных типа памяти: внутреннее ОЗУ, регистры специальных функций, память программ и внешняя память данных.

8051 разработан как модифицированная архитектура фон-Неймана с изолированной памятью (данные и инструкции); он может выполнять только код, извлеченный из памяти программ, и не имеет инструкций для записи в память программ. Что похоже на Гарвардскую архитектуру .

Большинство систем 8051 уважают это различие и поэтому не могут загружать и напрямую выполнять новые программы. Хотя архитектура 8051 уникальна; шины для доступа к обоим типам памяти одинаковы; от процессора покидают только шину данных, адресную шину и шину управления.

Внутренняя RAM [ править ]

Внутреннее ОЗУ (IRAM) имеет 8-битное адресное пространство с адресами от 0 до 0xFF. Доступ к IRAM от 0x00 до 0x7F можно получить напрямую, используя 8-битный абсолютный адрес, который является частью инструкции. В качестве альтернативы, доступ к IRAM можно получить косвенно: адрес загружается в R0 или R1, а доступ к памяти осуществляется с использованием синтаксиса @ R0 или @ R1.

Исходный 8051 имеет только 128 байт IRAM. 8052 добавил IRAM от 0x80 до 0xFF, доступ к которому возможен только косвенно; прямой доступ к этому диапазону адресов идет к регистрам специальных функций. Большинство клонов 8051 также имеют полные 256 байтов IRAM.

32 байта из памяти 0x00–0x1F отображают 8 регистров R0 – R7. Одновременно используются восемь байтов; два бита слова состояния программы позволяют выбрать один из четырех возможных банков.

16 байтов (128 бит) в ячейках IRAM 0x20–0x2F имеют битовую адресацию.

Регистры специальных функций [ править ]

Регистры специальных функций (SFR) расположены в том же адресном пространстве, что и IRAM, по адресам от 0x80 до 0xFF, и доступ к ним осуществляется напрямую с использованием тех же инструкций, что и для нижней половины IRAM. К ним нельзя получить доступ косвенно через @ R0 или @ R1; косвенный доступ к этим адресам будет иметь доступ ко второй половине IRAM.

Шестнадцать из SFR (тех, адреса которых кратны 8) также имеют битовую адресацию.

Программная память [ править ]

Программная память (PMEM, хотя и менее распространенная, чем IRAM и XRAM) составляет до 64 КБ постоянной памяти, начиная с адреса 0 в отдельном адресном пространстве. Он может быть встроенным или внешним, в зависимости от конкретной модели используемого чипа. Программная память предназначена только для чтения, хотя некоторые варианты 8051 используют встроенную флэш-память и предоставляют метод перепрограммирования памяти в системе или в приложении.

Помимо кода, можно хранить данные только для чтения, такие как таблицы поиска, в программной памяти, полученные с помощью инструкций или . Адрес вычисляется как сумма 8-битного аккумулятора и 16-битного регистра (PC или DPTR).MOVC A,@A+DPTRMOVC A,@A+PC

Специальные инструкции перехода и вызова ( AJMPи ACALL) немного уменьшают размер кода, который обращается к локальной (в пределах тех же 2 КБ) программной памяти. [15]

Внешняя память данных [ править ]

Внешняя память данных (XRAM) - это третье адресное пространство, также начинающееся с адреса 0 и обеспечивающее 16-битное адресное пространство. Он также может быть на кристалле или вне его; что делает его «внешним», так это то, что к нему нужно обращаться с помощью MOVXинструкции (move external). Многие варианты 8051 включают стандартные 256 байтов IRAM плюс несколько килобайт XRAM на кристалле.

Первые 256 байт XRAM могут быть доступны с помощью , , и инструкции. Доступ ко всем 64 КБ можно получить с помощью и .MOVX A,@R0MOVX A,@R1MOVX @R0,AMOVX @R1,AMOVX A,@DPTRMOVX @DPTR,A

Регистры [ править ]

Единственный регистр 8051, который не отображается в память, - это 16-битный счетчик программ (ПК). Это указывает адрес следующей инструкции для выполнения. Инструкции относительного ветвления предоставляют 8-битное смещение со знаком, которое добавляется к ПК.

Доступ к восьми регистрам общего назначения R0 – R7 можно получить с помощью инструкций на один байт короче других. Они отображаются в IRAM между 0x00 и 0x1F. В любой момент времени используются только восемь байтов из этого диапазона, что определяется двумя битами выбора банка в PSW.

Ниже приведен частичный список регистров 8051, которые отображены в памяти в пространство регистров специальной функции:

Указатель стека, SP (0x81)
Это 8-битный регистр, используемый инструкциями вызова и возврата подпрограмм. Стек растет вверх; SP увеличивается до нажатия и уменьшается после выталкивания значения.
Указатель данных, DP (0x82–83)
Это 16-битный регистр, который используется для доступа к PMEM и XRAM.
Слово состояния программы, PSW (0xD0)
Он содержит важные флаги состояния по номеру бита:
  1. Четность, P. Задает четность ( исключающее ИЛИ бит) аккумулятора A.
  2. Определяется пользователем, UD. Может быть прочитан и записан программным обеспечением; аппаратное обеспечение не влияет иным образом.
  3. Флаг переполнения , О.В. Устанавливается, когда добавление приводит к переполнению со знаком.
  4. Регистр выбираем 0, RS0. Младший бит банка регистров. Устанавливается, когда используются банки 0x08 или 0x18.
  5. Зарегистрируйтесь, выберите 1, RS1. Старший бит банка регистров. Устанавливается, когда используются банки 0x10 или 0x18.
  6. Флаг 0, F0. Может быть прочитан и записан программным обеспечением; аппаратное обеспечение не влияет иным образом.
  7. Вспомогательная переноска , AC. Устанавливается, когда сложение производит перенос с бита 3 на бит 4.
  8. Бит переноса , C. Часто используется как общий регистр для битовых вычислений или «логический аккумулятор».
Аккумулятор, А (0xE0)
Этот регистр используется в большинстве инструкций.
Регистр B (0xF0)
Это используется как расширение аккумулятора для команд умножения и деления.

256 одиночных битов имеют прямую адресацию. Это 16 ячеек IRAM из 0x20–0x2F и 16 регистров специальных функций 0x80, 0x88, 0x90, ..., 0xF8. К любому биту этих байтов можно получить прямой доступ с помощью множества логических операций и условных переходов.

Обратите внимание, что PSW не содержит общих отрицательных (N) или нулевых (Z) флагов . Для первого наиболее значимый бит аккумулятора может быть адресован напрямую, поскольку это SFR с побитовой адресацией. Для последнего есть явные инструкции для перехода к тому, равен ли аккумулятор нулю. Также существует операция сравнения и перехода с двумя операндами.

Набор инструкций [ править ]

Все инструкции имеют длину от 1 до 3 байтов и состоят из начального байта кода операции, за которым следуют до 2 байтов операндов.

1 / 4 из байт коды операции, х 0- х 3 , используются для нерегулярных опкодов.

3 / 4 из опкода байт, х 4- х F , назначены 16 основных инструкций ALU с 12 возможными операндами. Наименьший значимый полубайт кода операции выбирает основной операнд следующим образом:

  • x 8– x F : Прямой регистр, R0 – R7.
  • x 6– x 7 : Зарегистрируйте косвенный, @ R0 или @ R1.
  • x 5 : Непосредственно в память, следующий байт указывает расположение IRAM или SFR.
  • x 4 : Немедленно, следующий байт определяет 8-битную константу. Когда операнд является адресатом (,) или операция уже включает непосредственный источник (,), это вместо этого указывает, что используется аккумулятор.INC operandDEC operandMOV operand,#dataCJNE operand,#data,offset

Самый старший полубайт определяет операцию следующим образом. Не все поддерживают все режимы адресации; непосредственный режим, в частности, недоступен, когда записывается основной операнд. Мнемоника инструкций использует место назначения , порядок исходных операндов.

0 у :INC operand
Увеличивает указанный операнд. Немедленный режим (опкод 0x04) определяет аккумулятор, .INC A
1 год :DEC operand
Уменьшить указанный операнд. Немедленный режим (опкод 0x14) определяет аккумулятор, .DEC A
2 у :ADD A,operand
Добавьте операнд в аккумулятор A. Код операции 0x23 ( , «повернуть влево», но на самом деле сдвиг влево ) можно рассматривать как .RL AADD A,A
3 у :ADDC A,operand
Добавьте операнд плюс бит C в аккумулятор. Код операции 0x33 ( , поворот влево через перенос) можно рассматривать как .RLC AADDC A,A
4 лет :ORL A,operand
Логическое ИЛИ - операнд в аккумуляторе. Две формы назначения этой операции в памяти и определяются кодами операции 0x43 и 0x42.ORL address,#dataORL address,A
5 лет :ANL A,operand
Логическое И операнд в аккумуляторе. Две формы назначения в памяти этой операции и определяются кодами операции 0x53 и 0x52.ANL address,#dataANL address,A
6 лет :XRL A,operand
Логическое "исключающее ИЛИ" для операнда в аккумуляторе. Две формы назначения в памяти этой операции и определяются кодами операции 0x63 и 0x62.XRL address,#dataXRL address,A
7 лет :MOV operand,#data
Сразу перейти к операнду. Немедленный режим (опкод 0x74) определяет аккумулятор, .MOV A,#data
8 лет :MOV address,operand
Переместите значение в регистр IRAM или SFR. Немедленный режим (код операции 0x84) не используется для этой операции, так как он дублирует код операции 0x75.
9 лет :SUBB A,operand
Вычтите операнд из аккумулятора. Эта операция заимствует, и нет вычитания без заимствования.
А у :MOV operand,address
Перенести значение из регистра IRAM или SFR. Немедленный режим (код операции 0xA4) не используется, так как немедленные служат только источниками. Прямой режим памяти (код операции 0xA5) не используется, так как он дублирует 0x85.
Б у :CJNE operand,#data,offset
Сравните операнд с непосредственным #dataи перейдите к PC + смещение, если оно не равно. Непосредственные и прямые режимы памяти (опкоды 0xB4 и 0xB5) сравнить операнд от аккумулятора, . Обратите внимание, что нет инструкции сравнения и перехода при равенстве .CJNE A,operand,offsetCJE
C y :XCH A,operand
Поменяйте местами аккумулятор и операнд. Немедленный режим (код операции 0xC4) не используется для этой операции.
D y :DJNZ operand,offset
Уменьшите значение операнда и перейдите к PC + смещение, если результат не равен нулю. Непосредственный режим (код операции 0xD4) и регистровый косвенный режим (0xD6, 0xD7) не используются.
E y :MOV A,operand
Перенести операнд в аккумулятор. Непосредственный режим не используется для этой операции (код операции 0xE4), так как дублирует код операции 0x74.
F y :MOV operand,A
Переместите аккумулятор к операнду. Немедленный режим (код операции 0xF4) не используется, так как он не будет иметь никакого эффекта.

Только ADD, ADDCи SUBBинструкции , установленные PSW флаги. В INC, DECи логические инструкции нет. В CJNEмодифицирует инструкции С бит только в заема , что результаты операнд1 - operand2 .

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

A5
Неиспользованный
B5
CJNE A,address,offset
D6–7
XCHD A,@R01 обменять младший полубайт операндов.

Код SJMPоперации (короткий переход) принимает байт-операнд относительного смещения со знаком и передает туда управление относительно адреса следующей инструкции. В AJMP/ ACALLопкодах объединить три наиболее значимых биты байта кода операции со следующим байтом , чтобы указать 11-битное назначение , который используется для замены 11 нижних бит регистра PC (верхние 5 бит регистра PC остаются нетронутыми). Для больших адресов, то LJMPи LCALLинструкции позволяют 16-битное назначение.

Одна из причин популярности 8051 - диапазон операций с отдельными битами. Биты всегда указываются по абсолютным адресам; не существует косвенной регистровой или индексированной адресации. Инструкции, которые работают с отдельными битами:

  • SETB bit, , : Установить, очистить или дополнить указанный битCLR bitCPL bit
  • JB bit,offset: Перейти, если установлен бит
  • JNB bit,offset: Перейти, если бит сброшен
  • JBC bit,offset: Переход, если бит установлен, и сброс бита
  • MOV C,bit, : Переместить указанный бит в бит переноса или наоборот.MOV bit,C
  • ORL C,bit, : Или бит (или его дополнение) к биту переносаORL C,/bit
  • ANL C,bit, : И бит (или его дополнение) к биту переносаANL C,/bit

В форме записывается битовый операнд address.number. Поскольку флаг переноса представляет собой бит 7 слова состояния программы с побитовой адресацией, команды , и являются более короткими эквивалентами , и .SETB CCLR CCPL CSETB PSW.7CLR PSW.7CPL PSW.7

Хотя для большинства инструкций требуется, чтобы один операнд был аккумулятором или непосредственной константой, код операции 0x85 работает MOVнепосредственно между двумя внутренними ячейками ОЗУ.

Программирование [ править ]

Существуют различные компиляторы языков программирования высокого уровня для 8051. Для 8051 доступно несколько компиляторов C , большинство из которых позволяет программисту указать, где каждая переменная должна храниться в шести типах памяти, и предоставить доступ к конкретному оборудованию 8051. такие функции, как несколько банков регистров и инструкции по манипулированию битами. Есть много коммерческих компиляторов C. [16] Компилятор C для малых устройств (SDCC) - популярный компилятор C с открытым исходным кодом. [17] Другие языки высокого уровня, такие как C ++ , Forth , [18] [19] [20] [21] BASIC , Object Pascal ,Pascal , PL / M и Modula-2 доступны для 8051, но они менее широко используются [ необходима ссылка ], чем C и сборка .

Поскольку IRAM, XRAM и PMEM (только для чтения) имеют адрес 0, компиляторы C для архитектуры 8051 предоставляют специфичные для компилятора прагмы или другие расширения, чтобы указать, где должен храниться конкретный фрагмент данных (т. Е. Константы в PMEM или переменные, требующие быстрый доступ в IRAM). Поскольку данные могут находиться в одном из трех пространств памяти, обычно предоставляется механизм, позволяющий определить, к какой памяти относится указатель, либо путем ограничения типа указателя на включение пространства памяти, либо путем сохранения метаданных с указателем.

Связанные процессоры [ править ]

Микроконтроллеры Intel 8031
Микроконтроллер Intel D87C51

Intel прекратила выпуск своей линейки продуктов MCS-51 в марте 2007 года; [22] [23] однако, есть множество усовершенствованных продуктов 8051 или интеллектуальная собственность кремния, которые регулярно добавляются другими поставщиками.

Предшественник 8051, 8048 , использовался в клавиатуре первого IBM PC , где он преобразовывал нажатия клавиш в последовательный поток данных, который отправляется на основной блок компьютера. Intel 8049 выполнял аналогичную роль в Sinclair QL . 8048 и его производные до сих пор используются для базовых моделей клавиатур.

8031 был уменьшенной версией оригинального 8051 , которая не имела никакой внутренней памяти программы ( память только для чтения , ПЗУ). Чтобы использовать этот чип, необходимо было добавить внешнее ПЗУ, содержащее программу, которую 8031 ​​будет извлекать и выполнять. Микросхема 8051 может быть продана как 8031 ​​без ПЗУ, поскольку внутреннее ПЗУ 8051 отключено нормальным состоянием вывода EA в конструкции на основе 8031. Продавец может продать 8051 как 8031 ​​по любому количеству причин, таких как неправильный код в ПЗУ 8051 или просто переизбыток 8051 и недостаток 8031.

8052 была расширенная версия оригинального 8051 , который показал 256 байт внутренней памяти вместо 128 байт, 8 Кбайт ПЗУ вместо 4 КБ, а третий 16-битный таймер. Большинство современных 8051-совместимых микроконтроллеров включают эти функции.

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

8751 был 8051 с 4 КБ EPROM вместо 4 КБ ПЗУ. Они были идентичны, за исключением энергонезависимой памяти. Эта деталь была доступна в керамическом корпусе с прозрачным кварцевым окном в верхней части кристалла, поэтому УФ-свет можно было использовать для стирания EPROM . Связанные части: 8752 имел 8 КБ EPROM, 8754 имел 16 КБ EPROM, 8758 имел 32 КБ EPROM.

80C537 (ROM-менее) и 80C517 (8 KB ROM) является КМОП - версия, предназначенная для автомобильной промышленности . Улучшения в основном включают новые и улучшенные периферийные устройства. 80C5x7 имеет отказоустойчивые механизмы, средства обработки аналоговых сигналов, расширенные возможности таймера и 32-разрядное арифметическое периферийное устройство. Другие функции включают:

  • 256-байтная встроенная оперативная память
  • 256 напрямую адресуемых бит
  • Внешняя память для программ и данных с возможностью расширения до 64 КБ
  • 8-битный аналого-цифровой преобразователь с 12 мультиплексированными входами
  • Арифметическая периферия может выполнять операции умножения 16 × 16 → 32-бит, 32/16 → 16-битное деление, 32-битный сдвиг и 32-битные операции нормализации
  • Восемь указателей данных вместо одного для косвенной адресации программ и внешней памяти данных
  • Расширенные возможности сторожевого пса
  • Девять портов ввода / вывода
  • Два полнодуплексных последовательных интерфейса с индивидуальными генераторами скорости передачи данных
  • Четыре системы прерывания уровня приоритета, 14 векторов прерывания
  • Три режима энергосбережения
  • Вторые источники Intel MCS-51
  • AMD D87C51

  • MHS S-80C31

  • OKI M80C31

  • Philips PCB80C31

  • Signetics SCN8031

  • Temic TS80C32

Производные производители [ править ]

Более 20 независимых производителей производят процессоры, совместимые с MCS-51. [ необходима цитата ]

  • Микроконтроллеры на базе Intel MCS-51
  • Atmel AT89C2051

  • Infineon SAB-C515

  • Philips S87C654

  • Siemens SAB-C501

  • STC Micro STC89C52

Другие ИС или IP, совместимые с MCS-51, были разработаны Analog Devices , [24] Интеграл Минск , [25] Кристалл Киев , [26] и НИИЭТ Воронеш . [10]

Использование в качестве интеллектуальной собственности [ править ]

Сегодня 8051 по-прежнему доступны в виде дискретных компонентов, но в основном они используются в качестве кремниевых ядер интеллектуальной собственности . [27] Доступные в виде исходного кода на языке описания оборудования (например, VHDL или Verilog ) или в формах списка соединений FPGA , эти ядра обычно интегрируются во встроенные системы, в изделиях от USB-флэш-накопителей до стиральных машин и сложных систем беспроводной связи на кристалле . Разработчики используют кремниевые IP-ядра 8051 из-за меньшего размера и меньшей мощности по сравнению с 32-битными процессорами, такими как серия ARM Cortex-M , MIPS и BA22. [ необходима цитата]

Современные ядра 8051 быстрее, чем предыдущие упакованные версии. Усовершенствования конструкции повысили производительность 8051 при сохранении совместимости с исходным набором инструкций MCS 51. Исходный Intel 8051 работал с 12 тактовыми циклами на машинный цикл, и большинство инструкций выполнялись за один или два машинных цикла. Типичная максимальная тактовая частота 12 МГц означала, что эти старые 8051 могли выполнять один миллион однократных инструкций или 500000 двухтактных инструкций в секунду. Напротив, усовершенствованные кремниевые IP-ядра 8051 теперь работают с одним тактовым циклом за машинный цикл и имеют тактовую частоту до 450 МГц. Это означает, что процессор, совместимый с 8051, теперь может выполнять 450 миллионов инструкций в секунду.

MCU на базе 8051 [ править ]

Кремниевая технология хранения 89V54RD2
  • ВВЕРХУ: серии MC94F, MC95F, MC96F
  • Atmel: AT89C51 , AT89S51, AT83C5134
  • Infineon: XC800
  • Maxim Integrated: серия DS89C4 (DS89C420, DS89C430, DS89C440, DS89C450)
  • Наставник Графика: M8051ew
  • Megawin: серии 74, 82, 84, 86, 87 и 89
  • NXP: серии NXP700 и NXP900
  • Сименс САБ 80532-Н
  • Silicon Labs: C8051 серии и серии EFM8
  • Технология хранения кремния : FlashFlex51 MCU (SST89E52RD2, SST89E54RD2, SST89E58RD2, SST89E516RD2SST89V52RD2, SST89V54RD2, SST89V58RD2, SST89V516RD2) [28]
  • STC Micro: STC89C51RC, STC90C51RC, STC90C58AD, STC10F08XE, STC11F60XE, STC12C5410AD, STC12C5202AD, STC12C5A60S2, STC12C5628AD, STC15F100, STC15F204EA, STC15F2K60S2, STC15F4K60S2, STC15F101W, STC15F408AD, STC15W104, STC15W408S, STC15W201S, STC15W408AS, STC15W1K16S и STC15W4K56S4 серии [29]
  • Семейства радиочастотных чипов Texas Instruments CC111x, CC24xx и CC25xx
  • WCH: CH551, CH552, CH554, CH546, CH547, CH548, CH558, CH559

Варианты цифрового сигнального процессора (DSP) [ править ]

Несколько вариантов с дополнительным 16-битный цифровой сигнальный процессор (DSP) (например , для MP3 или Vorbis кодирование / декодирование) с до 675 миллионов команд в секунду (MIPS) [30] и интегрированный USB 2.0 интерфейс [31] или в качестве интеллектуальной свойство [32] существует.

Улучшенный 8-битный микроконтроллер с двоичной совместимостью: семейство MCS-151 [ править ]

В 1996 году Intel анонсировала семейство MCS-151, вариант, работающий до 6 раз быстрее [3] , полностью двоичный и совместимый с 8051 набором команд. В отличие от 8051 MCS-151 является конвейерным процессором с 16-битной внутренней кодовой шиной и в 6 раз быстрее. Семейство MCS-151 также было прекращено Intel, но широко доступно в бинарно-совместимых и частично улучшенных вариантах.

Микроконтроллер, совместимый с 8/16/32-битным двоичным кодом: семейство MCS-251 [ править ]

8/16/32-разрядный микроконтроллер 80251 с адресным пространством 16 МБ ( 24 бита ) и 6-кратным ускорением цикла команд был представлен Intel в 1996 году. [3] [33] Он может работать как 8-разрядный 8051, имеет 24-битную линейную адресацию , 8-битный ALU, 8-битные инструкции, 16-битные инструкции, ограниченный набор 32-битных инструкций, 16 8-битных регистров, 16 16-битных регистров (8 16-битных регистров, которые не разделяют пространство с какими-либо 8-битными регистрами и 8 16-битных регистров, которые содержат 2 8-битных регистра на 16-битный регистр) и 10 32-битных регистров (2 выделенных 32-битных регистра и 8 32-битных регистры, которые содержат 2 16-битных регистра на 32-битный регистр). [34]

Он содержит расширенные инструкции [35] - см. Также руководство программиста [36] - и более поздние варианты с более высокой производительностью [37], также доступные как интеллектуальная собственность (IP). [38] Это 3-х ступенчатый конвейер. Семейство MCS-251 также было прекращено Intel, но оно широко доступно в бинарно-совместимых и частично улучшенных вариантах от многих производителей.

См. Также [ править ]

  • DS80C390
  • Hitachi HD44780 - ЖК-контроллер с XRAM-совместимым интерфейсом
  • Intel PL / M-51
  • Комплект для проектирования системы SDK-51

Ссылки [ править ]

  1. John Wharton: An Introduction to the Intel MCS-51 Single-Chip Microcomputer Family , Application Note AP-69, May 1980, Intel Corporation.
  2. Intel 8051 Microprocessor Oral History Panel (PDF) , Computer History Museum , 16 сентября 2008 г., заархивировано из оригинала (PDF) 25 февраля 2012 г. , получено 17 ноября 2018 г.
  3. ^ a b c «Микроконтроллеры Intel MCS® 151 и MCS® 251» . datasheets.chipdb.org .
  4. John Wharton: Использование возможностей логической обработки Intel MCS-51 Архивировано 3 марта 2016 г. в заметке оприложении Wayback Machine AP-70, май 1980 г., Intel Corporation.
  5. ^ "8051 Учебник: прерывания" . Архивировано из оригинала на 2012-12-28 . Проверено 21 декабря 2012 .
  6. ^ "ЗАДАЧИ" . www.tasking.com .
  7. ^ "Микроконтроллер TK80H51 250ºC" . Tekmos Inc. Архивировано из оригинала 20 августа 2017 года . Проверено 23 августа 2017 года .
  8. ^ "ВЫСОКОТЕМПЕРАТУРНЫЙ МИКРОКОНТРОЛЛЕР 83C51" (PDF) . Honeywell . Проверено 23 августа 2017 года .
  9. ^ «Микроконтроллеры и микропроцессоры» . Cobham Semiconductor Solutions. Архивировано из оригинального 23 августа 2017 года . Проверено 23 августа 2017 года .
  10. ^ a b «Микроконтроллеры» [Микроконтроллеры]. Воронеж: ОАО "НИИЭТ". Архивировано из оригинального 22 августа 2017 года . Проверено 22 августа 2017 года .
  11. ^ "Архивная копия" . Архивировано из оригинала на 2017-08-22 . Проверено 22 августа 2017 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  12. ^ https://www.youtube.com/watch?v=H9sDn89EvD8
  13. ^ "ELEC2700 - Компьютерная инженерия 2 - Университет Ньюкасла - Учебники | Zookal.com" . www.zookal.com .
  14. ^ http://s3.amazonaws.com/f01.justanswer.com/88willy/2012-06-29_065532_assignment_03.pdf
  15. ^ ACALL - это 2-байтовая инструкция вызова подпрограммы, она может обращаться к ячейкам в том же сегменте памяти размером2КБ. Абсолютный адрес памяти формируется старшими 5 битами ПК и 11 битами, определенными инструкцией.
  16. ^ Хан-Вэй Хуанг. «Проектирование встроенных систем с помощью C8051» . п. 238.
  17. ^ Левин ARW Эдвардс. «Итак, вы хотите быть встроенным инженером: руководство по встроенной инженерии, от консультирования до корпоративной лестницы» . 2006. с. 51.
  18. ^ Брэдфорд Дж. Родригес. "CamelForth / 8051" .
  19. ^ Брэд Родригес. «Двигаясь вперед, часть 7: CamelForth для 8051» .
  20. ^ "Разработка 8051 SwiftX Forth" . Архивировано 24 сентября 2015 года на Wayback Machine.
  21. ^ "Кросс-компиляторы MPE VFX Forth 7" .
  22. ^ Ganssle, Джек (2006-05-29). «Intel отказывается, прекращает выпуск MCS-51» .
  23. ^ "Линии продуктов микроконтроллеров MCS 51, MCS 251 и MCS 96, продуктовые линейки процессоров Intel 186, Intel386 и Intel486 и 32-битный RISC-процессор i960, PCN 106013-01, прекращение выпуска продукта, причина пересмотра: добавить ключевую информацию о вехах и пересмотреть описание изменения » (PDF) . Intel. 2006-05-02.
  24. ^ http://www.analog.com/static/imported-files/data_sheets/ADUC832.pdf
  25. ^ "Микроконтроллеры и супервизоры питания Серии 1880; 1881; 1842; 588; 1345; 5518АП1ТБМ" [Микроконтроллеры и супервизоры питания серии 1880; 1881; 1842; 588; 1345; 5518AP1TBM]. Минск: ОАО "Интеграл" . Проверено 6 января 2017 года .
  26. ^ "Однокристальные микро-эвм" [Однокристальные микрокомпьютеры]. Киев: Кристалл. Архивировано из оригинального 30 мая 2012 года . Проверено 5 января 2017 года .
  27. ^ Hussaini (20 августа 2019). «Почему мы должны использовать 8051? Разве он не слишком старый?» . Технобайт . Проверено 20 августа 2019 .
  28. ^ datasheetq.com. "89V54RD2 Datasheet PDF Скачать - Кремниевая технология хранения" . www.datasheetq.com . Проверено 18 января 2020 .
  29. ^ "Микроконтроллер STC --- STCmicro Technology Co, .Ltd" . www.stcmicro.com . Проверено 19 февраля 2017 .
  30. ^ "TI поставляет новый недорогой, высокопроизводительный аудио DSP для дома и автомобиля с 8051" . Архивировано из оригинала на 2016-11-13 . Проверено 6 мая 2013 .
  31. ^ "Atmel AT85C51SND3 Audio DSP Data Sheet с USB 2.0" (PDF) .
  32. ^ Салим, AJ; Осман, М .; Али, М.А. Мохд (5 октября 2006 г.). «Интеграция 8051 с DSP в Xilinx FPGA». 2006 Международная конференция IEEE по полупроводниковой электронике . С. 562–566. DOI : 10.1109 / SMELEC.2006.380694 . ISBN 0-7803-9730-4. S2CID  21616742 - через IEEE Xplore.
  33. ^ Микроконтроллер 8051 Кеннет Дж. Айяла Google books
  34. ^ http://datasheets.chipdb.org/Intel/MCS51/DATASHTS/27262001.PDF
  35. ^ "Архитектура Temic TSC80251" (PDF) .
  36. ^ "Руководство программиста Atmel TSC80251" (PDF) . Архивировано из оригинального (PDF) 04 марта 2016 года . Проверено 6 мая 2013 .
  37. ^ DQ80251 32-битный микроконтроллер DCD
  38. ^ R80251XC 32-битный микроконтроллер Evatronix [ мертвая ссылка ]

Дальнейшее чтение [ править ]

Книги
  • Мазиди; МакКинли; Мазиди (2012). Микроконтроллер 8051: системный подход . 648 стр. ISBN 978-0-13-508044-3.
  • Шульц, Томас (2008). C и 8051 (4-е изд.). 464 стр. ISBN 978-0-9783995-0-4.
  • Штайнер, Крейг (2005). Микроконтроллер 8051/8052: архитектура, язык ассемблера и аппаратный интерфейс . 348 стр. ISBN 978-1-58112-459-0.
  • Калькутт; Коуэн; Парчизаде (2000). 8051 Микроконтроллеры: оборудование, программное обеспечение и приложения . 329 стр. ISBN 978-0-340-67707-0.
  • Аксельсон, Ян (1994). Книга идей микроконтроллера: схемы, программы и приложения с микроконтроллером 8052-BASIC . 277 стр. ISBN 978-0-9650819-0-0.
  • Пейн, Уильям (19 декабря 1990 г.) [1990]. Встроенный контроллер FORTH для семейства 8051 (твердая обложка). Бостон: Academic Press. 528 стр. ISBN 978-0-12-547570-9.
Intel
  • Руководство пользователя семейства микроконтроллеров MCS-51 ; Intel; 1994; номер публикации 121517.
  • Руководство пользователя Macro Assembler MCS-51 ; Intel; номер публикации 9800937.
  • 8-битные встроенные контроллеры ; Intel; 1991; Публикация № 270645-003.
  • Справочник микроконтроллера ; Intel; 1984; Публикация № 210918-002.
  • 8051 предварительные архитектурные спецификации и функциональное описание микроконтроллера ; Intel; 44 страницы; 1980 г.

Внешние ссылки [ править ]

СМИ, связанные с MCS-51 на Викискладе?

  • Полное руководство для микроконтроллеров 8051
  • исходный сайт для руководств и симулятора для 8051
  • Базовые схемы сопряжения 8051
  • Реализация VHDL 8051 с открытым исходным кодом (Oregano Systems)