Микроконтроллер и ПЛИС. В чём разница

Опубликовано 18.09.2010 Ведущий Филипп Болгов

Многие, задаваясь целью познать удивительный мир программируемых устройств, задаются вопросом: "Что же выбрать микроконтроллеры или ПЛИС'ы? И вообще, в чём между ними разница?" Давайте попробуем ответить на этот вопрос, и для начала рассмотрим, что представляет собой каждый из них.
По сути, Микроконтроллер это такой же компьютер, который мы видим каждый день, но только на одной микросхеме. Сам термин "микроконтроллер" (МК) вытеснил из употребления ранее использовавшееся название: "однокристальная микро-ЭВМ". Первый микроконтроллер появился на свет после появления микропроцессора в 1976 г. Сегодня микроконтроллеры получили широкое применение и их можно встретить почти везде, начиная от бытовой техники и заканчивая домашними роботами. На самом деле с технической точки зрения, микроконтроллер очень сложная микросхема, которая содержит в одном корпусе
- микропроцессор
- порты ввода-вывода
- оперативную память (RAM)
- постоянную память данных (ROM)
- перепрограммируемую ROM (EPROM)
- некоторые содержат различные преобразователи
Использование одной микросхемы вместо целого набора, как в случае обычных процессоров, применяемых в персональных компьютерах, значительно снижает размеры, энергопотребление и стоимость устройств, построенных на базе микроконтроллеров.
Программируемая логическая интегральная схема (ПЛИС, англ. programmable logic device, PLD) - электронный компонент, используемый для создания цифровых интегральных схем. В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования). Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры, таких как Verilog, VHDL, AHDL и др. Количество логических микросхем, которые можно создать в одной ПЛИС зависит от ее типа и может достигать 40000 эквивалентных микросхем средней логической интеграции. На небольшом кристалле с минимальным энергопотреблением, могут программироваться и процессоры со всей логикой работы и памятью, т.к. ПЛИС имеет встроенные ячейки памяти объёмом до нескольких мегабайт.
ПЛИС'ы используются для построения различных по сложности и возможностям цифровых устройств. Обычно это приложения, где необходимо большое количество портов ввода-вывода (бывают ПЛИС с более чем 1000 выводов), цифровая обработка сигнала, цифровая аудио и видеоаппаратура, высокоскоростная передача данных, криптография, проектирование и прототипирование различных микросхем, в качестве мостов (коммутаторов) между системами с различной логикой и напряжением питания.
Итак, мы видим, что и те, и другие, с точки зрения схемотехники, содержат большое число вентилей - элементарных логических элементов, реализующих простейшие
логические функции И, ИЛИ, НЕ. Комбинация множества таких вентилей и образует в МК его основные узлы: Каждый конкретный МК имеет в своем корпусе конечный набор таких узлов и его программирование подразумевает ввод в ПЗУ контроллера некоторого набора инструкций (управляющей программы), согласно которым весь этот набор узлов и работает, выдавая (и получая) на портах Ввода-вывода нужные нам сигналы. Программирование же ПЛИС - это создание электрических связей между вентилями, с целью синтеза тех же регистров, счетчиков, сумматоров, дешифраторов, триггеров, таймеров, цифровых компараторов, мультиплексоров, портов ВВ и т.д. - узлов, имеющихся в ПО на ПЛИС. Комбинируя оформленные в виде подсхем такие устройства, можно получать логические схемы с алгоритмом работы практически любой мыслимой сложности , потому как современные ПЛИС'ы имеют "на борту" миллионы вентилей и сотни портов ввода-вывода. Таким образом, мы подходим к основному и самому главному отличию микроконтроллеров от ПЛИС'ов: На МК его функции реализуются программно, с использованием уже имеющейся внутренней схемы, а в ПЛИС'ах это реализуется напрямую, или "аппаратно", т.е. созданием соответствующей схемы соединений между его внутренними элементами.
Поэтому, говорить о том, что предпочтительнее - МК или ПЛИС - не совсем корректно, т.к. они созданы для решения разных задач, хотя области их применения могут и пересекаться: например, частотомер можно собрать на устройствах обоих типов. Существует и ещё одно НО, связанное с тем, что микроконтроллеры из-за программного способа реализации алгоритмов медленнее ПЛИС, а последние могут работать на частотах около гигагерца.