stringtranslate.com

МКС-51

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

Первоначальное семейство 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) или блок с плавающей запятой (сопроцессор, 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 байт внутренней оперативной памяти данных (16 байт из которых побитно-адресуемые), до 128 байт ввода-вывода , от 512 байт до 64 КБ. внутренней программной памяти, а иногда и объема расширенной оперативной памяти данных (ERAM), расположенной во внешнем пространстве данных. Внешнее ОЗУ и ПЗУ совместно используют шины данных и адреса. Исходное ядро ​​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, имеют программируемую пользователем СППЗУ, иногда стираемую УФ-излучением. Варианты с буквой C в качестве третьего символа представляют собой своего рода CMOS . 8031 и 8032 — версии без ПЗУ с объемом ОЗУ 128 и 256 байт. Последняя цифра может указывать объем памяти, например 8052 с ПЗУ 8 КБ, 87C54 со EPROM 16 КБ и 87C58 со EPROM 32 КБ, все с ОЗУ 256 байт.

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

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

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

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

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

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

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

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

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

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

Регистры специальных функций (SFR) включают в себя аккумуляторы A (или ACC, в E0) и B (в F0) и слово состояния программы (или PSW, в D0), а также 16-битный указатель данных DPTR (в позиции D0). 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-совместимые микроконтроллеры с внутренней оперативной памятью размером более 256 байт или с невозможностью доступа к внешней оперативной памяти [20] обращаются к внутренней оперативной памяти, как если бы она была внешней, и имеют специальный функциональный регистр (например, PDATA). это позволяет им установить верхний адрес 256-байтовой страницы. Это эмулирует режим MCS8051, который может выводить на страницу старший байт адреса ОЗУ, устанавливая контакты ввода-вывода общего назначения.

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

Регистры

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

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

3/4 байта кода операции, 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, заимствуя его из операнда1операнда2 .

Нестандартные инструкции содержат 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 нижних бит регистра ПК (верхние 5 бит регистра ПК остаются нетронутыми). Для больших адресов инструкции LJMPи LCALLдопускают 16-битное назначение.

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

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

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

Для 8051 существуют различные компиляторы языков программирования высокого уровня. Для 8051 доступно несколько компиляторов C , большинство из которых позволяют программисту указывать, где каждая переменная должна храниться в шести типах памяти, и обеспечивают доступ к конкретному оборудованию 8051. такие функции, как несколько банков регистров и инструкции по битовой манипуляции. Существует множество коммерческих компиляторов C. [22] Компилятор C для малых устройств (SDCC) — популярный компилятор C с открытым исходным кодом. [23] Другие языки высокого уровня, такие как C++ , Forth , [24] [25] [26] [27] 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 года; [28] [29] Однако существует множество усовершенствованных продуктов 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 ). [30]

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

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

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

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

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

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

Другие микросхемы или IP, совместимые с MCS-51, разработаны компаниями Analog Devices , [31] Интеграл Минск , [32] Кристалл Киев , [33] и НИИЭТ Воронеж . [13]

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

Сегодня 8051 по-прежнему доступны в виде отдельных частей, но в основном они используются в качестве кремниевых ядер интеллектуальной собственности. [34] Доступные в исходном коде языка описания аппаратного обеспечения (например, 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) [44] и встроенным интерфейсом USB 2.0 [45] или в качестве интеллектуального свойство [46] существует.

Усовершенствованный 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] [47] Он может работать как 8-битный 8051, имеет 24-битную линейную адресацию , 8-битное АЛУ, 8-битные инструкции, 16-битные инструкции, ограниченный набор 32-битных инструкций, 16 8-битных регистров, 16 16-битных регистров (8 16-битных регистров, которые не делят пространство ни с какими 8-битными регистрами, а также с 8 16-битными регистрами, которые содержат по 2 8-битных регистра на каждый 16-битный регистр), и 10 32-битными регистрами (2 выделенных 32-битных регистра и 8 32-битных регистров). регистры, которые содержат по два 16-битных регистра на 32-битный регистр). [48]

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

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

Рекомендации

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

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

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

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

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