Жаркие споры о том, какой МК лучше, давно перешли в разряд философских. Сторонники крайних точек зрения сходятся на том, что каждый МК предназначен для выполнения своего круга задач, причём очень часто эти «круги» взаимно пересекаются. Фирмы, иготавливающие МК, подсматривают друг у друга новинки и быстро внедряют их в производство. Таким образом появляются на свет функционально одинаковые МК-двойняшки, а вместе с ними и конструкции-двойники, отличающиеся между собой только микросхемой управляющего контроллера.
Устоявшейся классификации МК на сегодняшний день не существует. Это относительно новый и бурно развивающийся класс электронных приборов, поэтому должно пройти некоторое время, чтобы система структуризировалась.
Из основных «классообразующих» признаков можно выделить следующие.
1. Классификация МКпо разрядности шины данных ЦПУ:
• 4-битные (Atmel MARC4, Winbond W742, NEC uPD75 и др.);
• 8-битные (Intel MCS-48, Intel MCS-51, Atmel ATtiny/ATmega/ATXmega, Microchip PIC12/16/18, Zilog Z86 и др.);
• 16-битные (Intel MCS-96, Texas Instruments MSP430, Motorola 68HC16, Fujitsu MB90, Infineon C16, Mitsubishi M16C, Microchip PIC24 и др.);
• 32-битные (Atmel ARM, Fujitsu MB91, NEC V850, NXP LPC2xxx и др.).
В приведенную классификацию не вошли отдельные тупиковые ветви развития прогресса, что подчёркивает справедливость фразы: «Нет правил без исключения». Так, например, MC14500 фирмы Motorola имел разрядность 1 бит, набор команд из 16 инструкций, и был способен работать с неограниченным объёмом памяти. Но на рынке его давно уже не видно и в очередь за ним разработчики не становились.
Для любительской аппаратуры, естественно, отбирают что-то попроще, подешевле и с меньшей разрядностью (однако не настолько малой как морально устаревшие 4 бита). Самыми популярными на сегодняшний день считаются 8-битные МК. Профессионалы предпочитают разрядность повыше.
Родоначальником 8-битных МК является фирма Intel, освоившая линейку базовых семейств MCS-48, MCS-51, MCS-251. Они составили достойную конкуренцию господствовавшим в те годы микропроцессорам. В дальнейшем фирма Intel переключилась на производство исключительно 16-битных моделей, и, к её чести, не стала в судебном порядке запрещать клонирование MCS-совместимых контроллеров сторонними разработчиками.
Нынешними лидерами продаж среди 8-битных МК являются фирмы Atmel и Microchip. Они далеко опережают ближайших конкурентов.
2. Классификация МК по архитектуре вычислительной системы:
• CISC (Complex Instruction Set Computing);
• RISC (Reduced Instruction Set Computing).
Первые МК имели стандартную CISC-архитектуру, которая применялась в настольных компьютерах того времени. Особенности CISC: команды выполняются поочерёдно друг за другом и имеют разную длину и структуру. Выборка команды из памяти осуществляется побайтно и выполняется за несколько тактов. CISC-архитектуру имеют: МК из семейства Motorola НС05/НС08, МК с ядром MCS-51, МК из семейства Infineon С500 и ряд других.
В начале 1980-х годов была разработана новая архитектура с многообещающим названием RISC (аббревиатуру предложил Д. Паттерсон из Калифорнийского университета в г. Беркли, США). Основная идея заключается в замене сложных команд однотипными простыми и выполнении их единым потоком на параллельном конвейере. Все команды имеют фиксированную длину и в идеале должны выполняться за один, а не за несколько, тактов, чем достигается повышенное быстродействие.
Одним из первых МК с архитектурой RISC стал PIC-контроллер 16С54 фирмы Microchip. Благодаря высокой производительности и трём десяткам легко запоминающихся команд, PIC-контроллеры быстро завоевали популярность во всём мире. Вскоре их примеру последовали разработчики из фирм Atmel, Scenix и др.
RISC-архитектура в МК сейчас вне конкуренции. Даже новейшие клоны контроллеров, имеющие совместимость с MCS-51, отличаются от прародителей в первую очередь сменой архитектуры. Это чётко прослеживается на примере продукции фирмы Atmel — «старая» микросхема AT89C2051 (CISC) против улучшенных «новых» микросхем AT89S2051, AT89LP2052 (RISC).
С точки зрения принципов конструирования вычислительных систем выделяют принстонскую и гарвардскую архитектуры. Оба названия связаны с одноимёнными университетами в США.
Принстонская архитектура была разработана Джоном фон Нейманом и независимо от него академиком С. А. Лебедевым. В ней используется общая память для хранения программ и данных (Рис. 1.8). Основное преимущество заключается в упрощении схемотехники ЦПУ и в гибкости распределения ресурсов между областями памяти.
Особенностью гарвардской архитектуры является наличие раздельных адресных пространств для хранения команд и данных (Рис. 1.9). Эта архитектура почти не использовалась до конца 1970-х годов, пока разработчики МК наконец-то поняли, что именно она даёт им определённые преимущества. В частности, анализ реальных программ показывает, что объём памяти данных МК, используемый для хранения промежуточных результатов, примерно на порядок меньше требуемого объёма памяти программ. Значит, можно сократить разрядность шины данных, уменьшить число транзисторов в микросхеме, а заодно и ускорить доступ к информации сразу в обоих «полушариях» памяти. Как следствие, сейчас большинство современных МК используют RISC-архитектуру гарвардского типа.
3. Классификация МК по фирменным платформам.
Слово «платформа» вошло в обиход как средство обозначения комплекса, состоящего из внутрифирменных стандартов, технологий, конструктивных особенностей, запатентованных «ноу-хау». К примеру, фирмы Atmel и Silicon Laboratories исповедуют разную идеологию в архитектуре микропроцессорной системы, разную схемотехнику и технологию изготовления транзисторных ячеек памяти, разный подход к засекречиванию средств отладки и программирования. В результате их МК имеют отличия в электрических параметрах, сферах применения, рыночной популярности.
Для примера на Рис. 1.10 представлены основные зарубежные изготовители, характеризующиеся чётко обозначенными платформами.
Рис. 1.10. Индексы популярности изготовителей МК согласно опросу на сайте [1-7].
4. Классификация МК по выполняемым функциям:
• универсальные;
• специализированные.
Первыми появились МК общего назначения с универсальным набором функций. В «джентльменский набор» их аппаратных узлов входили: порты ввода/вывода, таймеры/счётчики, канал последовательного доступа UART, аналоговый компаратор. По мере встраивания МК в различные бытовые приборы, выяснилось, что большинство функций у них «простаивает», а на выполнение специфических задач тратится слишком много машинного времени. Для заполнения образовавшейся ниши были разработаны специализированные МК, «заточенные» под конкретные сферы применения, например, для драйвера шагового двигателя, для MPB-декодера, для подключения символьного ЖКИ, для адаптера Ethernet и т.д.
Современные универсальные МК позаимствовали от специализированных собратьев весьма полезные интерфейсы: Serial Bus, SPI, USB, CAN. Более того, модуль широтно-импульсного модулятора (ШИМ) и внутренний АЦП перешли из разряда диковинок в обязательную спецификацию параметров многих МК. На очереди — ЦАП, Ethernet, ячейки ПЛИС.
Диапазон радиолюбительских разработок настолько велик, что требуемый набор аппаратных узлов заранее не предугадаешь. Поэтому практичнее использовать универсальные МК. В дальнейшем переход на специализированные контроллеры будет происходить гораздо легче, поскольку методология у них общая.
5. Классификация по семействам 8-битных МК:
• ядро MCS-51 — AT89Cx051, AT89C5x, AT89S (Atmel), DS89 (Maxim/Dallas);
• ядро AVR — ATtiny, AT90S, ATmega, ATXmega (Atmel);
• ядро PIC — PIC10, PIC12, PIC16, PIC18 (Microchip).
• ядро SX — SXxxx (Ubicom, ранее Scenix);
• ядро 68HC — 68HC08, 68HC12 (Freescale Semiconductor, ранее Motorola);
• ядро ST — ST62, ST7 (STMicroelectronics, ранее SGS-THOMSON);
• ядро CIP-51 — C8051 (Silicon Laboratories, ранее Cygnal Integrated);
• ядро 8052 — W78E516 (Winbond);
• ядро «ТЕСЕЙ» — КР1878ВЕ1 («Ангстрем»).
Такие понятия как «семейство», «платформа», «ядро», «архитектура» в разных источниках трактуются по-разному. Иногда их просто считают синонимами, что в большинстве случаев не принципиально. Однако для определённости предлагается использовать следующие термины.
«Ядро» — базовое устройство внутренней вычислительной системы. Ядро определяет систему команд, шинный интерфейс, архитектуру памяти, т.е. коренные отличия «вычислителей» друг от друга. Различают МК с ядром MCS-51, AVR, ARM7, ARM9, PIC16, PIC18 и т.д. Процессорное ядро может быть одинаковым, а фирмы-изготовители — разными.
«Семейство» — группа микросхем, имеющих одно ядро, у которых примерно одинаковый набор программных и периферийных функций. Семейство может разбиваться на более мелкие подсемейства.
«Серия», «линейка» — это фирменный бренд или рекламный слоган, например, серия «Classic», серия «tinyAVR», линейка «MegaPIC». Встречаются и обо-щенные названия по типу «линейка 16-битных МК общего назначения».
«Модель» — несколько микросхем одного семейства, различающиеся между собой второстепенными цифрами (буквами) в названии, что определяет разный температурный диапазон, тактовую частоту, вариант корпуса, питание.
Пример 1. Микросхема AT89S51-33PI относится к платформе Atmel, архитектуре CISC гарвардского типа, ядру MCS-51, семейству AT89S, модели AT89S51. Надпись «33-PI» означает максимальную тактовую частоту 33 МГц, DIP-корпус и индустриальный диапазон рабочих температур.
Пример 2. Микросхема ATmega128L-8AU относится к платформе Atmel, архитектуре RISC гарвардского типа, ядру AVR, серии MegaAVR, семейству ATmega, модели ATmega128. Надпись «L-8AU» определяет электрические, частотные, температурные и конструктивные параметры.
Пример 3. Микросхема PIC18LF2455-I/SP относится к платформе Microchip, архитектуре RISC гарвардского типа, ядру PIC18, семейству PIC18F, модели PIC18F2455. Буква «L» указывает на расширенный диапазон питания, а надпись «I/SP» определяет температурный диапазон и тип корпуса микросхемы.