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).
Архитектура 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+DPTR
MOVC 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,@R0
MOVX A,@R1
MOVX @R0,A
MOVX @R1,A
MOVX A,@DPTR
MOVX @DPTR,A
Некоторые процессоры [20] допускают использование 8-битного косвенного адреса в любом 8-битном регистре общего назначения.
Чтобы разрешить использование этой функции, некоторые 8051-совместимые микроконтроллеры с внутренней оперативной памятью размером более 256 байт или с невозможностью доступа к внешней оперативной памяти [20] обращаются к внутренней оперативной памяти, как если бы она была внешней, и имеют специальный функциональный регистр (например, PDATA). это позволяет им установить верхний адрес 256-байтовой страницы. Это эмулирует режим MCS8051, который может выводить на страницу старший байт адреса ОЗУ, устанавливая контакты ввода-вывода общего назначения.
Когда требуется ОЗУ размером более 64 КБ, обычная система переключает банки ОЗУ, при этом ввод-вывод общего назначения выбирает старшие биты адреса. Некоторые компиляторы 8051 [18] предусматривают автоматический доступ к страничным данным.
Единственный регистр 8051, который не отображается в памяти, — это 16-битный программный счетчик (ПК). Это указывает адрес следующей инструкции для выполнения. Инструкции относительного перехода предоставляют 8-битное смещение со знаком, которое добавляется к ПК.
Доступ к восьми регистрам общего назначения R0–R7 можно получить с помощью инструкций на один байт короче других. Они сопоставлены с IRAM между 0x00 и 0x1F. В любой момент времени используются только восемь байтов этого диапазона, что определяется двумя битами выбора банка в PSW.
Ниже приводится неполный список регистров 8051, которые отображены в памяти в пространство регистров специальных функций:
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 возможными операндами . Младший полубайт опкода выбирает основной операнд следующим образом:
INC operand
DEC operand
MOV operand,#data
CJNE operand,#data,offset
Самый старший полубайт определяет операцию следующим образом. Не все поддерживают все режимы адресации; в частности, непосредственный режим недоступен, когда записывается основной операнд. В мнемонике инструкций используется порядок назначения и источника операндов.
INC operand
INC A
DEC operand
DEC A
ADD A,operand
RL A
ADD A,A
ADDC A,operand
RLC A
ADDC A,A
ORL A,operand
ORL address,#data
ORL address,A
ANL A,operand
ANL address,#data
ANL address,A
XRL A,operand
XRL address,#data
XRL address,A
MOV operand,#data
MOV A,#data
MOV address,operand
SUBB A,operand
MOV operand,address
CJNE operand,#data,offset
#data
и перейдите к PC + смещение , если оно не равно. Непосредственный режим и режим прямого доступа к памяти (коды операций 0xB4 и 0xB5) сравнивают операнд с аккумулятором . Обратите внимание, что здесь нет инструкций сравнения и перехода при равенстве .CJNE A,operand,offset
CJE
XCH A,operand
DJNZ operand,offset
MOV A,operand
MOV operand,A
Только ADD
инструкции ADDC
, и SUBB
устанавливают флаги PSW. Логические инструкции INC
, DEC
и нет. Инструкция CJNE
изменяет только бит C, заимствуя его из операнда1 – операнда2 .
Нестандартные инструкции содержат 64 кода операций с более ограниченными режимами адресации, а также несколько кодов операций, удаленных из неприменимых режимов в обычных инструкциях.
MOV address,address
перемещаться напрямую между двумя регистрами IRAM или SFR.CJNE A,address,offset
сравните аккумулятор с регистром IRAM или SFR и перейдите к PC + смещение , если оно не равно.XCHD A,@R0–1
обмен младшими полубайтами операндов.Код SJMP
операции (короткий переход) принимает байтовый операнд относительного смещения со знаком и передает туда управление относительно адреса следующей инструкции. Коды операций AJMP
/ ACALL
объединяют три старших бита байта кода операции со следующим байтом, чтобы указать 11-битное место назначения, которое используется для замены 11 нижних бит регистра ПК (верхние 5 бит регистра ПК остаются нетронутыми). Для больших адресов инструкции LJMP
и LCALL
допускают 16-битное назначение.
Одной из причин популярности 8051 является его диапазон операций с отдельными битами. Биты всегда задаются абсолютными адресами; нет регистровой косвенной или индексированной адресации. Инструкции, которые работают с отдельными битами:
SETB bit
, , : Установить, очистить или дополнить указанный бит.CLR bit
CPL 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 C
CLR C
CPL C
SETB PSW.7
CLR PSW.7
CPL 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 прекратила выпуск линейки продуктов 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.
В 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 миллионов инструкций в секунду.
Несколько вариантов с дополнительным 16-битным процессором цифровых сигналов (DSP) (например, для кодирования/декодирования MP3 или Vorbis ) с производительностью до 675 миллионов инструкций в секунду (MIPS) [44] и встроенным интерфейсом USB 2.0 [45] или в качестве интеллектуального свойство [46] существует.
В 1996 году Intel анонсировала семейство MCS-151, вариант, до 6 раз более быстрый, [3] полностью двоичный и набор команд , совместимый с 8051. В отличие от 8051, MCS-151 представляет собой конвейерный ЦП с 16-битной внутренней кодовой шиной и скорость в 6 раз выше. Семейство MCS-151 также было снято с производства Intel, но широко доступно в бинарно-совместимых и частично улучшенных вариантах.
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, но оно широко доступно в бинарно-совместимых и частично улучшенных вариантах от многих производителей.
{{cite book}}
: CS1 maint: местоположение ( ссылка )СМИ, связанные с MCS-51, на Викискладе?