Архитектура, устройство и типы микроконтроллеров

Микроконтроллеры являются ядром любой системы – от простейших датчиков, до сложных и автоматизированных проектов. Именно он отдаёт определённые команды остальным датчикам и принимает от них сигналы, переводя их в соответствующий программный код и выполняя заложенный алгоритм.

Но, чтобы было проще работать с любыми МК, необходимо разобраться, как они вообще устроены и что из себя представляют. Это позволит программировать на совершенно новом уровне и создавать оптимизированные системы. Так давайте разберёмся, что собой представляет архитектура микроконтроллеров.

Основные типы микроконтроллеров и их архитектура

Для начала следует выяснить, какие, в принципе, разновидности МК сейчас актуальны на рынке. Ведь производителей тысячи, моделей девайсов – миллионы, но если систематизировать весь этот массив информации, то найти подходящее устройство будет значительно проще. В основном, выделяют три разновидности микроконтроллеров, среди которых:

  1. Встраиваемый 8-разрядный микроконтроллер.
  2. 16 и 32-х битные контроллеры соответственно. Их выделяют в отдельный класс, но в интернет-магазинах, зачастую, объединяют, для удобства поиска.
  3. Цифровые процессоры на основе сигнальной системы.

Уже по названиям можно понять, что это за устройства и для каких систем их лучше применять. Но на деле определиться не так просто, ведь номенклатура микроконтроллеров, выпускаемых промышленностью, исчисляется тысячами. А большая их часть, если мы берём одну разновидность, имеет одинаковый набор из постоянной памяти, устройства ввода и кристалла с процессором.

Сложнее всего выбирать, когда перед вами стоит два устройства с одинаковым ценником и даже наполнением. При выборе основы вашего проекта всегда опирайтесь на бренд и не скупитесь, ведь, как известно, конечное изделие – это среднее статистическое всех его компонентов.

Для «оживления» любого МК достаточно подать ток определённой частоты на соответствующие контакты, после чего устройство будет доступно для работы. Если разбирать, каким образом выглядит информация для микроконтроллеров в простой аналогии, то это будет двоичный код. То есть, в зависимости от того, подаётся ли напряжение на пин или нет, процессор трактует это, как 1 и 0 соответственно.

Но, естественно, помимо всего этого, на микроконтроллере зачастую располагаются так называемые «лишние» пины (но на деле они дополнительные) и множество другой электроники.

Микроконтроллер ATmega32
Микроконтроллер ATmega32

Качественный микроконтроллер будет универсальным, и его можно вставить в любую систему. Но стоит понимать, что намного лучше иметь что-то хорошее в конкретной сфере, чем неплохое – во всех. Если у вас есть возможность, старайтесь выбирать специализированные устройства и разновидности приборов, которые больше всего будут подходить для конкретных целей вашего проекта. Это позволит оптимизировать последующие расходы, упростить пайку и настройку, а также программирование. На сегодняшний день универсальным решением на рынке является Ардуино.

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

  1. Схемы для стартовых запусков процессора.
  2. Специальные генераторы, способные отображать информацию в цифровом сигнале – тактовых импульсах.
  3. Главный компьютер – процессор, построенный вокруг кристалла.
  4. Постоянная память. И, по-хорошему, в ней уже должна находиться какая-то заготовленная или оптимальная прошивка под конкретные задачи. Ведь производитель должен был как-то протестировать свой девайс, прежде чем выставлять его на продажу.
  5. Пины, которые послужат для ввода и вывода данных.
  6. Таймер, как условный, так и цифровой. Он необходим для фиксирования количества выполняемых командных циклов. Но, в случае необходимости, всегда можно создать свой, через функции и методы ООП.

Всё вышеописанное – джентельменский набор хорошего микроконтроллера, но для специализированных систем его будет недостаточно. В таком случае, к инструментарию устройств добавляют:

  1. Устройство вывода – монитор или отладчик для программ, который упростит последующее программирование микроконтроллера. Подойдёт для сложных проектов, где программных отладчиков уже не хватает, или же языков, вроде С-подобных, где они, в принципе, отсутствуют, как инструмент.
  2. Дополнительные блоки памяти, которую можно выделить под буфер обмена, или оперативную память в программах.
  3. Датчик для обработки прерываний, исходящих от других девайсов.
  4. Аналоговые вводы и выводы, которые пригодятся в работе со старой техникой.
  5. Синхронные и асинхронные пины, а также параллельные и последовательные. Наличие позволит улучшить эргономику конечного устройства, например, установить несколько аккумуляторов в параллельном подключении. Такая находка, к тому же, уменьшит минимальное значение заряда на них, увеличив общую емкость.
  6. Дополнительный модуль для внешней памяти. Это будет крайне удобно, если в системе планируется применять тяжелые медиафайлы. Например, для разговаривающих нейросетей и проигрывания музыки.
Пример схемы микроконтроллера
Пример схемы микроконтроллера

Дополнительные «надстройки» позволяют увеличить гибкость микроконтроллера и приспособить его к конкретным задачам, но естественно, если их нет – ничего плохого не будет. В первую очередь потому, что вы всегда можете докупить специальные модули, в которых будут присутствовать все необходимые возможности. А во-вторых, ибо всё вышеописанное является просто удобством, и без него можно вполне обойтись при создании проектов любой сложности, разница будет лишь в скорости программирования и отладки конечного продукта, но всё зависит от конкретного инженера.

Архитектура ядра микропроцессора

В отличие от прошлого пункта, здесь не удастся расписать общие сведенья об архитектуре ядра, ведь она различается в зависимости от каждой конкретной разновидности. Стандартная AVR архитектура считается предпочтительной, ведь в ней соединяются достоинства Гарвардской и Принстонской соответственно, поэтому задачи выполняются не только быстро, но и, что куда важнее, с высоким КПД. Эти параметры считаются взаимосвязанными, но не стоит искать прямую корреляцию между ними, они важны и по-отдельности.

Внутри Intel 8742 (8-разрядный микроконтроллер с процессором, работающим на частоте 12 МГц, 128 байт ОЗУ, 2048 байт EPROM и I / O в одном чипе)
Внутри Intel 8742 (8-разрядный микроконтроллер с процессором, работающим на частоте 12 МГц, 128 байт ОЗУ, 2048 байт EPROM и I / O в одном чипе)

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

Если же говорить в общем – любой микропроцессор является набором ядер, от их количества, зависит то, сколько потоков может обрабатываться за раз (операций одновременно). Само же ядро – это небольшой органический или неорганический кристалл.

Аппаратные средства

К аппаратным средствам микроконтроллера относят, например, батарейные блоки, которые используются большей частью приложений в качестве основного источника питания. В исключительных случаях применяют конденсатор больших емкостей, что позволяет сохранять все промежуточные вычисления и работоспособность, даже если основной источник энергии вырубится.

Это крайне удобно, когда ваш проект подсоединяется напрямую к источникам питания, зависящим от общей электроники дома. И если у вас отключат электроэнергию, устройство сможет проработать ещё немного.
Другой важной аппаратной составляющей МК являются таймеры и прочие устройства, упрощающие обработку данных. Таймер необходим для самых разнообразных задач, но, в основном, его применяют, как средство отсчета заданных задержек между командами.

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