Наука | 
7
43492

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

Микроконтроллер это микросхема - которая в ответ на внешние электрические сигналы действует в соответствии с программой которую в него загрузите ВЫ !

на сайте с 30 апреля 2008

Что это такое?

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



- процессор
- оперативная память - ОЗУ
- постоянная память - ПЗУ
- генератор тактовой частоты
- таймеры
- порты ввода/вывода
- последовательные интерфейсы
- и много чего еще...

Например, в более «навороченных» контроллерах может быть АЦП (аналого-цифровой преобразователь), ЦАП (наоборот) и прочие прибамбасы. Чего только ни придумают!

Применение и возможности

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

История

Микроконтроллер в прошлом имел название "однокристальная микро-ЭВМ". Первый патент на однокристальную микро-ЭВМ был выдан в 1971 году инженерам М. Кочрену и Г. Буну, сотрудникам Texas Instruments. Они предложили на одном кристалле разместить не только микропроцессор, но и память, устройства ввода-вывода. С появлением однокристальных микро-ЭВМ связывают начало эры компьютерной автоматизации в области управления. Поэтому микроконтроллер и имеет такое название (control - управление). На сегодняшний день существует большое количество микроконтроллеров разных типов. Популярностью у разработчиков пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, а также ARM, которые разрабатывает фирма ARM и продаёт лицензии другим фирмам. таким, как Atmel.

Сайты производителей

Архитектура


Самый главный элемент любого процессора – арифметико-логический узел (АЛУ). Кстати, по буржуйски он называется так-же – ALU (ariphmetic-logical unit). В нем-то, как вы уже догадались, и происходят все мыслимые и немыслимые арифметические и логические операции над числами. Кстати, насчет чисел: контроллер, как и любая другая цифровая система, работает с двоичными числами.

Чтобы произвести операцию, АЛУ должен взять откуда-то два числа. Выполнив операцию, опять же, должен положить куда-то ответ. Для этих целей служат регистры общего назначения – РОН.

Кроме РОН, на схеме присутствует ОЗУ – оперативная память контроллера. Для чего она?
Да для того, чтобы хранить данные при выполнении программы. Одних регистров, количество которых не очень велико, для полноценной работы не всегда достаточно. В регистрах хранится обычно только те данные, которые будут использоваться непосредственно прямо сейчас. Все остальное удобнее положить в память.

Откуда же АЛУ берет команды? А все очень просто! Для этого существует регистр команд. В этот регистр постепенно выводятся команды той программы, которую выполняет контроллер. Эти команды касаются всего контроллера, а не только АЛУ (как мы помним, в контроллере просто тьма всего). Чтобы «выудить» из общей кучи «свою» команду, АЛУ постоянно заглядывает в регистр команд на предмет, нет ли там что-нить для него. И как только видит – стрелой мчится выполнять.

В регистр команд, команды попадают из программной памяти. Программная память – это ПЗУ (постоянное запоминающее устройство), в котором по каждому адресу записана одна команда. Вместе, все эти команды и составляют программу, и записаны в той последовательности, в какой они стоят в программе.

Чтобы «достать» команду из ПЗУ, надо сказать ему адрес ячейки памяти, в которой лежит эта команда. В ответ, ПЗУ выдаст содержимое этой ячейки. Команды записываются в ячейки в той последовательности, в которой стоят в программе. Поэтому, для того чтобы последовательно «перебирать» команды, достаточно просто каждый раз прибавлять к адресу «1». Именно этим и занимается счетчик команд.

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

Все просто!

Написание программ для микроконтроллеров

Чтобы заставить микроконтроллер выполнять то, что мы хотим нужно написать программу для него! Это можно делать на разных языках программирования: на ассемблере, С, бейсике и даже на паскале, короче , на том на чем удобнее программисту. Все равно в конце получается выходной фай c расширением .hex, который и записывается в микроконтроллер! То, что «зашивают» в микроконтроллер называют «firmware». Компиляторы совершенствуют, для того чтобы облегчить жизнь программисту. Удобнее писать – написание программы быстрее, код сложнее – функций в устройстве больше – всем лучше.

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

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

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

ПО для разработки программ для AVR:

AVRStudio — IDE + ассемблер + отладчик
IAR Embedded Workbench for Atmel AVR — компилятор C/C++ сайт разработчика
CodeVisionAVR — компилятор C + генератор начального кода сайт разработчика
E-LAB AVRco — компилятор Pascal
ICC AVR — компилятор C сайт разработчика
AVReal — программатор подключение LPT, совместим с CodeVisionAVR сайт разработчика
PonyProg — программатор подключение COM port (LPT) поддерживает МК AVR, PIC и др сайт разработчика
VMLAB — симулятор AVR
PTOTEUS — симулятор AVR
inAvr — компилятор C/C++ + интеграция с AVRStudio последняя версия
AtmanAvr — компилятор C + отладчик + генератор начального кода сайт разработчика

ПО для разработки программ для PIC:

HT-PICC - Компилятор Си (пожалуй лучший) для PIC и классная инструкция.
SourceBoost IDE - Компилятор Си для PIC - недорогой от Павла Баранова. позволяют вести хорошую графическую симуляцию работы МК.
PIC Simulator IDE - среда разработки ПО и симуляции работы МК PIC от компании oshonSoft
PIC Basic Compiler Оригинальное графическое решение среды симуляции популярных компонентов - четыре 7-ми сегментных индикатора, светодиоды, ЖКИ 16х2, ПК терминал, UART и много другое. Генератор сигналов и 4-х канальный логический анализатор.
MikroC - Си и Бэйсик для PIC
Симулятор электроники и ПИКов - PROTEUS

Полезное

"Прошивка" микроконтроллерров

Внутрисхемный программатор Результат написания и компиляции программы - файл-прошивку с расширением .hex (и возможно файл с содержимым для EEPROM МК) нужно записать ("зашить") в МК . Это делаеться с помощью компьютера и специального устройства, котрое называется - программатор. Программатор выполняет роль связующего устройства между микроконтроллером и компьютером.

Существует два вида программирования (заливки программы в микроконтроллер): параллельное программирование и внутрисхемное программирование.

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

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

Программаторы

Микроконтроллеры и радиолюбители

Купить и «прошить» микроконтроллер может каждый. Хотите чтобы устройство работало так как вам нужно? Вам не лень сделать собственного робота или хотя бы просто заставить мигать светодиод? Вперед! Микроконтроллеры – это же просто. Создавать необычные электронные штуки и устройства могут не только проффесиональные инженеры, но и обычные смертные. Современный радиолюбители (люди которым интереснее самому собрать устройство, чем его купить) все чаще увлекаются микроконтроллерной техникой, порой даже совсем забывая про аналоговую. Существует множество различных сайтов, как англоязычных, так и наших, посвященных данной тематике.

Радиолюбительские сайты:

Купить микроконтроллеры можно сдесь:

Комментарии

4 мая 2008 в 12:32
 
Отлично! На platan.ru обнаружил подборку статей для "чайников" (в pdf формате). Кто не знаком с темой, но хочет разобраться - очень рекомендую)
16 октября 2008 в 23:38
 
Приветствую, приятно что вы уделили время этой теме. Хотелось бы узнать собиралили вы самостоятельно какие нибудь устройства на микроконтроллерах? Я работал пока только с pic ами.
автор
1 января 2009 в 18:09
 
Приветствую, приятно что вы уделили время этой теме. Хотелось бы узнать собиралили вы самостоятельно какие нибудь устройства на микроконтроллерах? Я работал пока только с pic ами.
Собирал я много устройств на микроконтроллерах. На мой взгляд PIC это для детей =). Хотя AVR тоже не супер мощные штуки. Но тут такое дело, для каждого класса устройств нужен соответсвующий класс процессоров.
4 августа 2012 в 11:42
 
Твиты https://twitter.com/shopbody
25 октября 2014 в 11:48
 
Интересно, почему многие так не любят Pic микроконтроллеры.
Программировал различные, и Pic далеко не самый худший вариант.
Да прост в программировании, но разве это не главное при разработке какого нибудь устройства?
Периферии на борту тоже на любой вкус и цвет, от обычных портов до Ethernet.
Тогда уж сразу STM32. Вот где сила. А с тем набором библиотек и различными RTOS цены им нет

Оставить комментарий

Поделиться с друзьями

Share on Twitter