stringtranslate.com

МКС-51

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

Оригинальное семейство Intel MCS-51 было разработано с использованием технологии металл-оксид-полупроводник N-типа ( NMOS ), как и его предшественник 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) или блок с плавающей точкой (сопроцессор, FPU). Помимо этих физических устройств, несколько компаний также предлагают производные MCS-51 в качестве IP-ядер для использования в программируемых пользователем вентильных матрицах (FPGA) или специализированных интегральных схемах (ASIC).

Важные функции и приложения

микроархитектура i8051

Архитектура 8051 обеспечивает множество функций ( центральный процессор (ЦП), оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), порты ввода-вывода (I/O), последовательный порт, управление прерываниями , таймеры ) в одном корпусе :

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

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

Производные признаки

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

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

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

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

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

Правила наименования семьи

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

Архитектура памяти

MCS-51 имеет четыре различных типа памяти: внутренняя RAM, регистры специальных функций, программная память и внешняя память данных. Для эффективного доступа к ним некоторые компиляторы [18] используют до 7 типов определений памяти: внутренняя RAM, однобитный доступ к внутренней RAM, регистры специальных функций, однобитный доступ к выбранным (кратным 8) регистрам специальных функций, программная RAM, внешняя RAM, доступ к которой осуществляется с использованием косвенного доступа к регистру, с использованием одного из стандартных 8-битных регистров и косвенный доступ к внешней RAM с использованием 16-битного косвенного регистра доступа.

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

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

Внутренняя оперативная память

Внутренняя RAM (IRAM) имеет 8-битное адресное пространство, использующее адреса от 0 до 0xFF. IRAM от 0x00 до 0x7F содержит 128 напрямую адресуемых 1-байтовых регистров, к которым можно получить доступ с помощью 8-битного абсолютного адреса, который является частью инструкции. В качестве альтернативы к IRAM можно получить доступ косвенно: адрес загружается в R0 или R1, а доступ к памяти осуществляется с помощью синтаксиса @R0 или @R1, или как к стековой памяти через указатель стека SP с операциями PUSH и POP; и операциями *CALL и RET.

Оригинальный 8051 имеет только 128 байт IRAM. 8052 добавил IRAM от 0x80 до 0xFF, к которому можно получить доступ только косвенно (например, для использования в качестве стекового пространства). Большинство клонов 8051 также имеют полные 256 байт IRAM.

Вместо этого прямой доступ к адресам IRAM 0x80–0xFF отображается в регистрах специальных функций (SFR), где расположены аккумуляторы A, B, бит переноса C и другие специальные регистры для управления, состояния и т. д.

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

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

Специальные функциональные регистры (SFR) включают в себя аккумуляторы A (или ACC, в E0) и B (в F0) и слово состояния программы (или PSW, в D0), а также 16-битный указатель данных DPTR (в 82, как DPL и 83 как DPH). В дополнение к ним, небольшое ядро ​​других специальных функциональных регистров, включая разрешение прерывания IE в A8 и приоритет прерывания IP в B8; порты ввода-вывода P0 (80), P1 (90), P2 (A0), P3 (B0); управление последовательным вводом-выводом SCON (98) и буфер SBUF (99); регистр управления ЦП/питанием PCON (87); и регистры для управления таймерами 0 и 1 (TCON на 88) и режима работы (TMOD на 89), 16-битный таймер 0 (TL0 на 8A, TH0 на 8C) и таймер 1 (TL1 на 8B, TH1 на 8D) – присутствуют во всех версиях 8051. Другие адреса зависят от версии; в частности, регистры таймера 2 для 8052, регистр управления T2CON (на C8), 16-битный захват/защелка (RCAP2L на CA, RCAP2H на CB) и таймер 2 (TL2 на CC и TH2 на CD) не включены в 8051.

Регистрация окон

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

Битовые регистры

16 байт (128 бит) в ячейках IRAM 0x20–0x2F содержат место для 128 1-битных регистров, которые адресуются отдельно как битовые регистры 00–7F.

Оставшиеся битовые регистры, адресуемые как 80–FF, отображаются на 16 специальных функциональных регистров 80, 88, 90, 98, ..., F0 и F8 (те, чьи адреса кратны 8), и, следовательно, включают биты, составляющие аккумуляторы A, B и слово состояния программы PSW. Адрес окна регистра, будучи битами 3 и 4 PSW, сам адресуется как битовые регистры D3 и D4 соответственно; в то время как бит переноса C (или CY), в бите 7 PSW, адресуется как битовый регистр D7.

Память программ

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

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

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

Когда требуется код размером более 64 КБ, общая система делает код переключаемым по банкам, при этом ввод-вывод общего назначения выбирает верхние биты адреса. Некоторые компиляторы 8051 [18] предусматривают автоматический доступ к страничному коду. В этих системах векторы прерываний и таблица страничного обмена размещаются в первых 32 КБ кода и всегда являются резидентными.

Внешняя память данных

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

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

Некоторые процессоры [20] позволяют использовать 8-битный косвенный адрес для любого 8-битного регистра общего назначения.

Чтобы разрешить использование этой функции, некоторые 8051-совместимые микроконтроллеры с внутренней RAM больше 256 байт или не имеющие возможности доступа к внешней RAM, [20] обращаются к внутренней RAM, как если бы она была внешней, и имеют специальный функциональный регистр (например, PDATA), который позволяет им устанавливать верхний адрес 256-байтовой страницы. Это эмулирует режим MCS8051, который может разбивать верхний байт адреса RAM, устанавливая универсальные контакты ввода-вывода.

Когда требуется ОЗУ больше 64 КБ, общая система делает банк ОЗУ переключаемым, а ввод-вывод общего назначения выбирает верхние биты адреса. Некоторые компиляторы 8051 [18] предусматривают автоматический доступ к страничным данным.

Регистры

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

Восемь регистров общего назначения 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. Флаг переполнения , OV. Устанавливается, когда сложение приводит к знаковому переполнению.
  4. Выбор регистра 0, RS0. Младший бит банка регистра. Устанавливается, когда используются банки 0x08 или 0x18.
  5. Выбор регистра 1, RS1. Старший бит банка регистра. Устанавливается, когда используются банки 0x10 или 0x18.
  6. Флаг 0, F0. Может быть прочитан и записан программным обеспечением; иным образом не затронут аппаратным обеспечением.
  7. Вспомогательный перенос , AC. Устанавливается, когда сложение производит перенос из бита 3 в бит 4.
  8. Бит переноса , C. Часто используется как общий регистр для битовых вычислений или «булев аккумулятор».
Аккумулятор, A (0xE0)
Этот регистр используется большинством инструкций.
Регистр B (0xF0)
Используется как расширение аккумулятора для инструкций умножения и деления.

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

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

Бит четности (P) часто используется для реализации последовательных режимов, включающих четность. Для поддержки этого стандартные UART MCS51 могли отправлять 9 бит.

Микроархитектура

Микроархитектура Intel MCS8051 является запатентованной, но опубликованные [21] характеристики предполагают, как он работает. Это многоцикловый процессор . MCS8051 использовал 12 тактовых циклов [21] для большинства инструкций. Многие инструкции используют аккумулятор. [21] Напротив, большинство совместимых компьютеров выполняют инструкции за один-три цикла, за исключением инструкций умножения и деления. Гораздо более высокая скорость является основной причиной, по которой они заменили MCS8051 в большинстве приложений.

Каждое прерывание имеет четыре приоритета. [21] В пределах каждого приоритета прерывания устройств имеют фиксированный приоритет. [21]

Набор инструкций

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

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

34 байтов кода операции, x 4– x F , назначаются 16 базовым инструкциям ALU с 12 возможными операндами. Наименее значимый полубайт кода операции выбирает первичный операнд следующим образом:

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

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
С у :XCH A,operand
Поменять местами аккумулятор и операнд. Непосредственный режим (код операции 0xC4) для этой операции не используется.
Д у :DJNZ operand,offset
Уменьшить операнд и перейти к PC + смещение , если результат не равен нулю. Непосредственный режим (код операции 0xD4) и косвенный режим регистра (0xD6, 0xD7) не используются.
Э у :MOV A,operand
Переместить операнд в аккумулятор. Непосредственный режим не используется для этой операции (код операции 0xE4), так как он дублирует код операции 0x74.
Ф у :MOV operand,A
Переместить аккумулятор в операнд. Непосредственный режим (код операции 0xF4) не используется, так как он не даст никакого эффекта.

Только инструкции ADD, ADDC, и SUBBустанавливают флаги PSW. Логические инструкции INC, DEC, и не делают этого. CJNEИнструкция изменяет только бит C, на заем, который получается из operand1operand2 .

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

85
MOV address,addressперемещаться напрямую между двумя регистрами IRAM или SFR.
А5
Неиспользованный
В5
CJNE A,address,offsetсравнить аккумулятор с регистром IRAM или SFR и перейти к PC + смещение , если не равно.
Д6–7
XCHD A,@R01обменяться младшими полубайтами операндов.

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

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

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

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

Существуют различные компиляторы языков программирования высокого уровня для 8051. Для 8051 доступно несколько компиляторов C , большинство из которых позволяют программисту указывать, где каждая переменная должна храниться в его шести типах памяти, и предоставляют доступ к специфичным для 8051 аппаратным функциям, таким как множественные банки регистров и инструкции по манипуляции битами. Существует множество коммерческих компиляторов C. [22] Small Device C Compiler (SDCC) — популярный компилятор C с открытым исходным кодом. [23] Другие языки высокого уровня, такие как C++ , Forth , [24] [25] [26] [27] BASIC , Object Pascal , Pascal , PL/M и Modula-2, доступны для 8051, но они менее широко используются [28], чем C и ассемблер .

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

Связанные процессоры

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

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

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

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

Микроконтроллер Intel P8044AH

В 8044 (а также в 8344 без ПЗУ и 8744 с EPROM) к ядру 8051 был добавлен контроллер SDLC (особенно для приложений Bitbus ). [31]

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

Процессор 8032 имел те же функции, что и 8052, за исключением отсутствия внутренней памяти программ ROM.

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

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

Поставщики производных финансовых инструментов

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

Другие ИС или IP, совместимые с MCS-51, были разработаны Analog Devices , [32] Integral Minsk , [33] Kristall Kyiv , [34] и НИИЭТ Voronezh . [13]

Использовать как интеллектуальную собственность

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

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

Микроконтроллеры на базе 8051

Технология хранения данных на основе кремния 89V54RD2

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

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

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

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

8/16/32-битный двоично-совместимый микроконтроллер: семейство MCS-251

Микроконтроллер 80251 8/16/32-бит с адресным пространством 16 МБ ( 24 бита ) и в 6 раз более быстрым циклом команд был представлен Intel в 1996 году. [3] [48] Он может работать как 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-битный регистр). [49]

Он имеет расширенные инструкции [50] – см. также руководство программиста [51] – и более поздние варианты с более высокой производительностью, [52] также доступные как интеллектуальная собственность (ИС). [53] Он имеет 3-ступенчатый конвейер. Семейство MCS-251 также было прекращено Intel, но широко доступно в двоично-совместимых и частично улучшенных вариантах от многих производителей.

Смотрите также

Ссылки

  1. ^ Джон Уортон (май 1980 г.). «Введение в семейство однокристальных микрокомпьютеров Intel MCS-51». Корпорация Intel. Замечание по применению AP-69.
  2. Intel 8051 Microprocessor Oral History Panel (PDF) , Computer History Museum , 16 сентября 2008 г., архивировано из оригинала (PDF) 25 февраля 2012 г. , извлечено 17 ноября 2018 г.
  3. ^ abc "Микроконтроллеры Intel MCS 151 и MCS 251". datasheets.chipdb.org .
  4. ^ Джон Уортон (май 1980 г.). «Использование возможностей обработки булевых значений Intel MCS-51» (PDF) . Корпорация Intel. Примечание к применению AP-70. Архивировано из оригинала (PDF) 2016-03-03.
  5. ^ "8051 Tutorial: Interrupts". Архивировано из оригинала 2012-12-28 . Получено 2012-12-21 .
  6. ^ "TASKING". www.tasking.com .
  7. ^ ab "8-битные микроконтроллеры - 8-битные микроконтроллеры - EFM8 - Silicon Labs". www.silabs.com . Получено 2021-06-21 .
  8. ^ "Поиск по сайту | Maxim Integrated". www.maximintegrated.com . Получено 21.06.2021 .
  9. ^ ab "8051 MCUs | Microchip Technology". www.microchip.com . Получено 2021-06-21 .
  10. ^ "TK80H51 250°C Microcontroller". Tekmos Inc. Архивировано из оригинала 20 августа 2017 г. Получено 23 августа 2017 г.
  11. ^ "ВЫСОКОТЕМПЕРАТУРНЫЙ МИКРОКОНТРОЛЛЕР 83C51" (PDF) . Honeywell . Получено 23 августа 2017 .
  12. ^ "Микроконтроллеры и микропроцессоры". Cobham Semiconductor Solutions. Архивировано из оригинала 23 августа 2017 г. Получено 23 августа 2017 г.
  13. ^ ab "Микроконтроллеры" [Микроконтроллеры] (на русском языке). Воронеж: ОАО «НИИЭТ». Архивировано из оригинала 22 августа 2017 года . Проверено 22 августа 2017 г.
  14. ^ "Ссылка для скачивания Youtube: ELEC2700 - 8051 Ultrasonic Radar". Архивировано из оригинала 2017-08-22 . Получено 2017-08-22 .
  15. Архивировано в Ghostarchive и Wayback Machine: "ELEC2700 Assignment 1 2014: 1D Pong". YouTube .
  16. ^ "ELEC2700 - Компьютерная инженерия 2 - Университет Ньюкасла - Учебники | Zookal.com". www.zookal.com .
  17. ^ "ELEC2700 Задание 3: Ультразвуковой радар" (PDF) . justanswer.com . 29 июня 2012 г. . Получено 30 апреля 2023 г. .
  18. ^ abc Keil C51 User's Manual. Keil, подразделение ARM Inc. 2021. Получено 17 мая 2021 г.
  19. ^ ACALL — это 2-байтовая инструкция вызова подпрограммы, она может обращаться к ячейкам в том же  сегменте памяти размером 2 КБ. Абсолютный адрес памяти формируется старшими 5 битами PC и 11 битами, определяемыми инструкцией.
  20. ^ ab "Silergy 71M6513 Data sheet". ИС учета электроэнергии Silergy . Silergy Corp. Получено 17 мая 2021 г.
  21. ^ abcde MCS-51 Microcontroller Family User's Manual (PDF) . номер публикации 121517: Intel. 1994 . Получено 17 мая 2021 .{{cite book}}: CS1 maint: местоположение ( ссылка )
  22. ^ Хан-Вэй Хуанг. «Проектирование встраиваемых систем с использованием C8051». стр. 238.
  23. ^ Левин А. Р. У. Эдвардс (2006). Итак, вы хотите стать инженером по встраиваемым системам: руководство по встраиваемой инженерии, от консалтинга до корпоративной лестницы. стр. 51.
  24. ^ Брэдфорд Дж. Родригес. «CamelForth/8051».
  25. ^ Брэд Родригес. «Движение вперед, часть 7: CamelForth для 8051».
  26. ^ "Разработка 8051 SwiftX Forth". Архивировано из оригинала 24-09-2015.
  27. ^ "MPE VFX Forth 7 кросс-компиляторы". Архивировано из оригинала 2014-10-23.
  28. ^ Агарвал, Тарун (2014-09-16). "Подробное объяснение программирования 8051 на языке ассемблера". ElProCus - Электронные проекты для студентов-инженеров . Получено 2024-10-21 .
  29. Гансл, Джек (29.05.2006). «Intel выходит из игры, прекращает разработку MCS-51».
  30. ^ «Линейки микроконтроллеров MCS 51, MCS 251 и MCS 96, линейки процессоров Intel 186, Intel386 и Intel486, а также 32-разрядный RISC-процессор i960, PCN 106013-01, Прекращение выпуска продукта, Причина пересмотра: Добавить информацию о ключевых этапах и пересмотреть описание изменений» (PDF) . Intel. 2006-05-02.
  31. ^ "8044AH/8344AH/8744AH Высокопроизводительный 8-битный микроконтроллер с встроенным контроллером последовательной связи" (PDF) . Intel. Октябрь 1994 г.
  32. ^ "Микроконвертер, 12-битные АЦП и ЦАП со встроенным 62-килобайтным флэш-микроконтроллером" (PDF) . analog.com . Архивировано из оригинала (PDF) 28 мая 2014 г. . Получено 30 апреля 2023 г. .
  33. ^ "Микроконтроллеры и супервизоры питания Серии 1880; 1881; 1842; 588; 1345; 5518АП1ТБМ" [Микроконтроллеры и супервизоры питания Серия 1880; 1881 г.; 1842 г.; 588; 1345; 5518AP1TBM] (на русском языке). Минск: ОАО «Интеграл». Архивировано из оригинала 1 января 2017 года . Проверено 6 января 2017 г.
  34. ^ "Однокристальные микрокомпьютеры" [Однокристальные микрокомпьютеры] (на русском языке). Киев: Кристалл. Архивировано из оригинала 30 мая 2012 года . Проверено 5 января 2017 г.
  35. ^ Hussaini (20 августа 2019 г.). «Почему мы должны использовать 8051? Разве он не слишком старый?». Technobyte . Получено 5 июля 2023 г.
  36. ^ "PSoC 3 - Infineon Technologies". Infineon . Архивировано из оригинала 2022-09-21 . Получено 2023-05-20 .
  37. ^ "DS80C320 Высокоскоростные/Маломощные Микроконтроллеры - Maxim Integrated". www.maximintegrated.com . Получено 2021-06-21 .
  38. ^ "Syntill8 - Products". www.syntill8.com . Получено 2021-06-21 .
  39. ^ "SDA30C164 Datasheet" (PDF) . www.semiee.com . Архивировано из оригинала (PDF) 2022-06-17 . Получено 2022-05-15 .
  40. ^ "Silergy Metering ICs". Silergy Corp. Получено 12 мая 2021 г.
  41. ^ "Silergy Energy Measurement ICs". Silergy Corp. Получено 12 мая 2021 г.
  42. ^ datasheetq.com. "89V54RD2 Datasheet PDF Download - Silicon Storage Technology". www.datasheetq.com . Получено 2020-01-18 .
  43. ^ "STC Microcontroller ---STCmicro Technology Co,.Ltd". www.stcmicro.com . Получено 2017-02-19 .
  44. ^ "индекс сайта - Nanjing Qinheng Microelectronics Co., Ltd". wch-ic.com . Получено 2021-06-21 .
  45. ^ "TI представляет новый недорогой, высокопроизводительный аудио DSP для дома и автомобиля с 8051". Архивировано из оригинала 2016-11-13 . Получено 2013-05-06 .
  46. ^ "Atmel AT85C51SND3 Audio DSP Data Sheet with USB 2.0" (PDF) . Получено 30 апреля 2023 г. .
  47. ^ Салим, А. Дж.; Отман, М.; Али, М. А. Мохд (5 октября 2006 г.). «Интеграция 8051 с DSP в ПЛИС Xilinx». Международная конференция IEEE по полупроводниковой электронике 2006 г. стр. 562–566. doi :10.1109/SMELEC.2006.380694. ISBN 0-7803-9730-4. S2CID  21616742 – через IEEE Xplore.
  48. ^ Кеннет Дж. Айяла. Микроконтроллер 8051.
  49. ^ "Обзор архитектуры MCSÉ 251" (PDF) . chipdb.org . Получено 30 апреля 2023 г. .
  50. ^ «Архитектура Temic TSC80251» (PDF) .
  51. ^ "Atmel TSC80251 Programmers Guide" (PDF) . Архивировано из оригинала (PDF) 2016-03-04 . Получено 2013-05-06 .
  52. ^ "DQ80251 32-битный микроконтроллер" (PDF) . DCD .
  53. ^ "R80251XC 32-битный микроконтроллер" (PDF) . Evatronix .[ мертвая ссылка ‍ ]

Дальнейшее чтение

Книги
Интел
Разное

Внешние ссылки

Медиа, связанные с MCS-51 на Wikimedia Commons