RSS
Новости
1 января 2012, 12:02
О микроконтроллерах
Функциональное назначение и производители микроконтроллеров

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

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

Микроконтроллер же - система целиком и полностью автономная, включающая в себя все необходимое: вычислительное устройство (тот самый процессор), тактовый генератор, ПЗУ и ОЗУ, цифро-аналоговый и, при необходимости, аналого-цифровой преобразователи, шины ввода-вывода данных... Фактически, микроконтроллер является простейшим микрокомпьютером, способным решать множество технических задач.

Основных производителей микроконтроллеров на данный момент шесть: Microchip Technology Inc, Atmel Corporation, Texas Instruments, STMicroelectronics, Freescale и NXP. Лидерами продаж на свободном рынке являются два первых производителя, продукция Texas Instruments больше ориентирована на применение в «закрытых» отраслях промышленности, вроде космической или военной.

С момента своего создания в 1984 году американская компания Atmel Corporation выпустила в продажу 8, 16 и 32-битные микроконтроллеры, базирующиеся на ядре Intel 8051 (1993 г.) и имеющие архитектуру ARM, а затем и RISC. Наиболее распространенные модели микроконтроллеров от этой компании - ATmega8, 16, 32, 48, AT90S2313, ATtiny11, 2313. Несколько позже - в 1987 году - была создана американская же компания Microchip Technology Inc, выпустившая популярнейшие 8-32-битные микроконтроллеры семейства PIC: 12C508, 14000, 16C432, 17C42... На базе именно этих серий микроконтроллеров уже много лет огромное число радиолюбителей собирает как простые, так и весьма сложные автоматические устройства.

Как все работает

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

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

Типы программаторов

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

Наиболее распространен, как самый безопасный, последовательный тип подключения. Реализуется он посредством включения между выходом компьютера и входом микроконтроллера буферных элементов - обычно в их качестве используют являющуюся 8-буферным шинным формирователем микросхему 74HC244N (или ее аналог).

Все управление программируемым микроконтроллером осуществляется через его интерфейс передачи данных (ISP), имеющий пять линий:

  • SCK - по этой линии передается синхроимпульс скорости обмена данными;
  • MISO - Master Input Slave Output - линия ввода данных;
  • MOSI - Master Output Slave Input - линия вывода данных;
  • RESET - линия управления сбросом;
  • GND - общая линия («масса»).

Довольно распространенное «бюджетное» решение - использовать в качестве буферов обычные резисторы номиналом 1...1,5 кОм - к применению не рекомендуется, поскольку является своеобразной лотереей. Дело в том, что при последовательном подключении программатора данные в него передаются через компьютерный LTP-порт, уровень сигнала в котором значительно выше допустимого для ISP (интерфейса передачи данных) программируемого микроконтроллера - и при выходе программатора (являющегося, по сути, вышеупомянутым буфером между МК и ПК) из строя высока вероятность «гибели» программируемой микросхемы.

Вариант программирования микроконтроллера через параллельный порт (COM-порт) технически намного проще предыдущего варианта. В этом случае отпадает необходимость использования буферной микросхемы (или играющих роль буферов радиодеталей) - достаточно собрать несложную схему из нескольких резисторов и диодов, приводящую уровень передаваемого с компьютерного COM-порта сигнала к подходящей для микроконтроллера величине.

Распространенность подобных программаторов, ввиду их технической простоты, довольно широка, но... в данном случае «простота хуже воровства» - вероятность «гибели» программируемого микроконтроллера в случае пробоя диода намного выше, чем при выходе из строя буфера в LTP-программаторе.

USB-программаторы

В последнее время получили широкое распространение программаторы, работающие через универсальную последовательную шину (USB). Технически они достаточно сложны, но зато обладают множеством достоинств.

PICkit 3

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

Программирование и управление микроконтроллером

Вывод из вышесказанного вполне очевиден - лучше всего для первого в жизни самостоятельного программирования микроконтроллера выбирать последовательный LTP-программатор.

Программ для персональных компьютеров, позволяющих не только прошивать микроконтроллеры, но и работать с ними, написано довольно много. Наиболее удобные, как в плане интерфейса, так и функциональности, программы Visual avr, Pony prog, Ic prog и AVReAl - с их помощью можно не только прошивать МК, но и писать, редактировать и проверять работоспособность написанных для него программ.

Отдельная категория программ - это эмуляторы работы микроконтроллера, например, Proteus. Подобный софт позволяет проверить (естественно, виртуально) работу будущего устройства и заранее обнаружить и исправить все недочеты.

Непосредственно программирование микроконтроллера осуществляется в следующей последовательности:

  1. Программируемая микросхема вставляется в программатор;
  2. Программатор подключается к компьютеру;
  3. Посредством установленной в компьютере программы запускается процесс прошивки микроконтроллера;
  4. По окончании прошивки программа закрывается, программатор отключается от ПК;
  5. Прошитый микроконтроллер отсоединяется от программатора.

Нарушать порядок действий ни в коем случае нельзя!

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

Внимание, внимание и еще раз внимание!

Собирая программатор, следует очень внимательно проверять правильность монтажа и распайки элементов. При прошивке микроконтроллера особое внимание должно уделяться правильности выставления фьюзов (FUSE) - внутрисхемных программных предохранителей, управляющих большинством системных функций МК. Неправильное выставление фьюза чаще всего ведет к выходу программируемой микросхемы из строя, поэтому лучше всего воспользоваться справочниками по микроконтроллерам - в них приводятся все необходимые при настройке фьюзов данные.

Читайте самые интересные истории ЭлектроВестей в Telegram и Viber

По материалам: ЭлектроВести
ELEKTROVESTI.NET экономят ваше время
Подпишитесь на важные новости энергетики!
Подпишитесь на ЭлектроВести в Твиттере
Самое читаемое