В наше время практически все, хоть раз в жизни, слышали слово микроконтроллер. Различная автоматизация стала частью нашей жизни и нас окружают различные "умные" вещи, даже роботы стали перестают быть экзотикой.
Естественно, что многим, далеко не только профессионалам, интересно попробовать свои силы и использовать микроконтроллеры в своих конструкциях. Но на практике это оказывается не так просто. Самым трудным, как всегда, бывает первый шаг. Но и дальше возникает не мало сложностей и непонимания. Почему так? Почему часто считается, что начать использовать микроконтроллеры трудно?
Да, в ВУЗах есть соответствующие специальности. Да, про микроконтроллеры написано уже очень много. И, тем не менее, бывает, что даже хороший программист или электронщик, никогда не работавшие с микроконтроллерами, испытывают затруднения при первой встрече с ними.
Давайте попробуем разобраться, так ли все сложно. Эта статья начинает новый цикл, посвященный микроконтроллерам и ориентированный на любителей и новичков. То есть на тех, кто раньше не использовал микроконтроллеры, но очень хочет с ними познакомиться.
В отличии от многих книг и статей я не буду сводить все к подробному описанию конкретной микросхемы. Я попробую описать ситуацию в целом, что бы у читателя возникло понимание, откуда что берется, почему именно так, и что вообще с этим делать.
Эти статьи не будут, как и всегда, являться учебниками. Это не будет переводом документации. Это будет наглядное (надеюсь) описание, но с учетом специфики Zen. Я постараюсь свести к минимуму использование математики, знаю, многие ее не любят. При этом я буду стараться приводить достаточно много иллюстраций. Статьи будут не всегда "каноническими". Это продиктовано и целевой аудиторией (далеко не только, да и не столько, специалисты) и спецификой Zen.
А еще, я буду говорить только о 8-разрядных микроконтроллерах. Во всяком случае, в основном. Эти микроконтроллеры проще и дешевле, чем и более развитые представители, а это имеет большое значение для новичков и любителей.
Поскольку тема микроконтроллеров очень большая и сложная, я не смогу описать "вообще все". Я буду предполагать, что читатель обладает некоторыми знаниями и способностями:
- Имеет, как минимум, базовое представление о программировании. Достаточно будет даже знаний в объеме средней школы.
- Обладает, как минимум, базовыми знаниями об электричестве (ток, напряжение, закон Ома, сопротивление, емкость) и полупроводниках (p-n переход, диод, транзистор). Достаточно знаний в объеме средней школы.
- Действительно хочет понять, как микроконтроллеры устроены, как работают, как их применять.
- Готов заниматься сам, читать, искать недостающую информацию. То есть, не является пассивным слушателем (читателем).
Это нужно, что бы не объяснять совсем уж базовые и, надеюсь, общеизвестные понятия вроде циклов в программировании и принципах работы транзисторов.
Однако, пора переходить к делу. Эта, первая, статья цикла будет в основном описательной. Сначала нам нужно разобраться, что вообще такое "микроконтроллер". И тут не обойтись без небольшого исторического экскурса, без которого будет сложнее понять дальнейший материал.
С чего все начиналось
Нет, я не буду углубляться в "седую древность". Нам достаточно заглянуть в те времена, когда появился термин Вычислительная Машина.
Развитие электротехники уже привело к появлению устройств автоматики еще до появления первых вычислительных машин. Это были релейные автоматы. Развитие электроники добавило к электромеханическим реле сначала ламповые схемы, а потом и полупроводники. Устройства автоматики стали сложнее, но они по прежнему строились на "жесткой логике". То есть, после изготовления под конкретное применение схема автомата оставалась неизменной. Если требовалось изменение функционала нужно было разрабатывать новую схему и изготавливать новое устройство. Добавление различных переключателей позволяло несколько менять работу устройства, но принципиально ничего не меняло.
ЭВМ
И вот появились вычислительные машины. Их принципиальным отличием от всего ранее существовавшего была программа. Именно программа позволила менять их функционирование без необходимости изменять схему. Не суть важно, как именно было представлена программа, набором перемычек или отверстиями на бумажной ленте.
ENIAC это аббревиатура от "Electronic Numerical Integrator and Computer". То есть, электронный числовой интегратор и вычислитель. И действительно, вычислительные машины, или компьютеры, долгое время использовались именно как вычислители. Были и специализированные вычислители, например, Colossus, который специально разрабатывался для взлома системы шифрования сообщений во время Второй Мировой Войны.
Время шло, вычислительные машины становились мощнее и компактнее. Они строились на полупроводниковых приборах и микросхемах. Это уже не были математические вычислители, хотя термин компьютер сохранился. В СССР появился термин ЭВМ - Электронная Вычислительная Машина. Это не совсем точный термин. Дело в том, что кроме цифровых вычислительных машин, или ЦВМ (тоже широко применявшийся термин), существовали ( и существуют) еще и АВМ, или Аналоговые Вычислительные Машины.
В СССР разрабатывались свои серии ЭВМ. Пожалуй, наиболее известными из них являются Урал, БЭСМ, Мир. Но после принятия решения о копировании западных разработок IBM и DEC, известных у нас как ЕС и СМ, отечественные разработки практически прекратились. Был еще Эльбрус, но его история, как вычислительного комплекса, а не процессора, была недолгой.
ЭВМ становились все более мощными и компактными. Их стали использовать не только для математических расчетов. Появились разные архитектуры ЭВМ. Но по прежнему, практически любую ЭВМ можно было разбить на несколько основных блоков: процессор, память (оперативная и постоянная), устройства ввода-вывода. Процессор выполнял программу и обрабатывал данные. Память использовалась для хранения программ и данных. Устройства ввода-вывода использовались для загрузки в ЭВМ программ и данных, а так же, для вывода результатов вычислений.
На этом рисунке я несколько забежал вперед, устройство процессора я буду рассматривать в следующих статьях. Здесь АЛУ это Арифметическо-Логическое Устройство, а УВВ это Устройство Ввода-Вывода (их часто называли периферийными устройствами, или просто периферией). Почему я не включил УВВ в состав ЭВМ? Дело в том, что с развитием универсальных ЭВМ часто стали говорить о вычислительных комплексах на базе ЭВМ. Различные варианты подобных комплексов могли включать в себя разные наборы периферийных устройств, но одинаковые процессоры и блоки памяти, пусть и разного объема.
Из наиболее известных периферийных устройств можно вспомнить НМЛ (накопитель на магнитной ленте), НМД (накопитель на магнитных дисках), УВПЛ (устройство ввода перфоленты), УВК (устройство ввода перфокарт), АЦПУ (алфавитно-цифровое печатающее устройство).
Управляющие ЭВМ и комплексы
Немного позже появилась идея использования ЭВМ для контроля и управления сложным оборудованием и процессами в промышленности. Стали появляться управляющие ЭВМ и целые УВК - Управляющие Вычислительные Комплексы. В некоторых случаях такие комплексы включали в себя несколько ЭВМ и имели иерархическую структуру. Управляющие ЭВМ были проще и меньше, чем большие ЭВМ. Но для управления процессами ЭВМ нужно было как то подключить к оборудованию. Я уже затрагивал эту тему в статье "Автоматизация. Начало. Что и почему", поэтому повторяться не буду. Советую ее прочитать, что бы понимать, что такое УУ, УСО, исполнительные устройства, датчики.
УСО, или устройства сопряжения с объектом, в таких УВК были довольно громоздкими и сложными, но вполне соответствующими уровню развития техники того времени. На рисунке я для примера показал подключение к производственной линии, но объекты управления могли быть разными (энергосистема, прокатный стан, медицинское оборудование, и т.д.). На первый взгляд, нет почти никаких отличий от приведенного ранее рисунка с обычным вычислительным комплексом. Но это совсем не так.
Дело в том, что УВВ используются, если так можно выразиться, для внутреннего использования вычислительным комплексом. А вот УСО используются для получения информации о состоянии объекта и управления им. То есть, это глаза, уши и руки ЭВМ, если проводить аналогию с человеком. И вот это чрезвычайно важный момент. ЭВМ научилась взаимодействовать с внешним миром.
Какие УСО использовались? Они зачастую были весьма специализированными. Например, могу вспомнить устройство ввода кардиограмм, с которым мне довелось работать в молодости. Но были и вполне привычные, по сегодняшнему дню, устройства. АЦП для преобразования аналоговых сигналов в цифровой вид, ЦАП для обратного преобразования, таймеры, устройства ввода дискретных сигналов, устройства управления силовыми ключами, и тому подобные.
Встраиваемые ЭВМ
Дальнейшее развитие управляющих ЭВМ привело к уменьшению из размеров до относительно небольших блоков, которые можно было встраивать прямо в управляемое оборудование. Тут можно вспомнить Электронику-60 и Электронику-85, как наиболее известны.
Эти ЭВМ, кроме "миниатюрности" привели к довольно широкому распространению термина "контроллер". Так стали называть блоки управления устройствами, например, контроллер алфавитно-цифрового дисплея. Сам этот термин существовал и раньше, но использовался реже. Например, в ЕС-1022 была стойка управления накопителями на магнитных дисках, или УУ НМД. В СМ-4 это уже была не стойка, а блок устанавливаемый в стойку, который назывался контроллером НМД.
Персональные ЭВМ, или ПК
Следующим шагом в развитии ЭВМ стало еще большее уменьшение их размеров и повышение доступности. Появились персональные ЭВМ, которые сначала были очень простыми, но довольно быстро превратились в хорошо известные нам сегодня ПК. Но это стало бы невозможным без появления микроэлектроники.
Микроэлектроника
Первые микросхемы были очень простыми. Они пришли на смену микромодулям и представляли собой просто сильно уменьшенный вариант микромодулей, они были гибридными. Но вскоре появились и интегральные микросхемы выполненные на кристалле полупроводника, пусть и степень интеграции была еще очень малой.
Но технологии развивались. Появились микросхемы постоянной и оперативной памяти, хоть из объем и бьыл совсем малым. В конце концов, на свет появился микропроцессор.
Микропроцессор
Первый микропроцессор был 4-х разрядными, но вскоре появились и 8-ми разрядные микропроцессоры. Фактически, это были процессоры выполненные в виде одной микросхемы (не всегда на одном кристалле).
Сегодня микропроцессоры стали очень мощными и сложными, но одна их особенность, ключевая, сохранилась. Для построения ЭВМ на базе микропроцессора нужно использовать довольно много дополнительных компонентов. Да, микропроцессоры очень разные, и сложность построения ЭВМ на их базе различная. Но факт остается фактом - микропроцессор это лишь часть ЭВМ.
Однокристальная микро-ЭВМ
Сегодня этот термин почти забыт, но в конце прошлого века использовался довольно часто. Что будет, если мы объединим в одной микросхеме микроконтроллер, устройство управления системной шиной и немного памяти? Та самая однокристальная микро-ЭВМ.
Чаще всего, в таких микросхемах размещалась постоянная память для программ и совсем небольшой объем оперативной памяти. Память программ могла быть однократно программируемой или с УФ стиранием. Немного позже появилась и память с электрическим стиранием.
Из наиболее известных микросхем можно вспомнить нашу серию 1816 (1816ВЕ39, 1816ВЕ48, 1816ВЕ51), хотя были и другие, зачастую весьма специализированные микросхемы.
И вот тут то и наступает очень интересный для нас момент! Подобные микросхемы позволяли подключать внешние микросхемы памяти, но зачастую не формировали никакого подобия системной шины. Зато могли включать в себя некоторые периферийные устройства, например, таймеры и порты ввода-вывода (устройства ввода-вывода дискретных сигналов!). Да, они могли иметь мультиплексные шины адрес/данные/ввод-вывод, но это уже были не просто микро-ЭВМ...
Не заметили, на что это стало похоже? Это стало похоже на управляющие микро-ЭВМ.
Микроконтроллеры
Да, это были первые микроконтроллеры. Управление это control, на английском языке.
Таким образом, микроконтроллер это, говоря очень упрощенно, микросхема включающая в себя микро-ЭВМ, некоторые периферийные устройства и УСО.
На рисунке я показал упрощенный вид некоего абстрактного микроконтроллера, только для примера. В реальных микроконтроллерах состав внутренних узлов может очень сильно различаться.
Итак, что мы получили?
- Микроконтроллер это наследник, потомок, управляющих ЭВМ и комплексов, но выполненный в виде одной микросхемы. Он предназначен именно для построения различных управляющих устройств. Именно это определяет его внутреннюю структуру. Именно поэтому микроконтроллеры обычно ограничены в ресурсах, например, памяти.
- Микроконтроллер это лишь часть устройства. Не смотря на то, что в состав микроконтроллера входят устройства "для связи с внешним миром" может потребоваться, а зачастую и требуется, дополнительное согласование для подключения к объекту управления. Например, может потребоваться приведение диапазона входных напряжений для допустимого для АЦП. Применение микроконтроллеров не означает отсутствие необходимости знать электронику и схемотехнику.
- Микроконтроллер бесполезен без написанной для него программы. Напомню, что в состав микроконтроллера входит ЭВМ, которой и требуется программа.
- Микроконтроллер похож на обычную ЭВМ, но обладает и рядом существенных отличий. Тем не менее, обычный программист вполне может разрабатывать программы и для микроконтроллеров, достаточно лишь понять, как микроконтроллер взаимодействует с внешним миром.
Как видно, основные опасения у начинающих вызывает именно тот факт, что применение микроконтроллеров требует знаний и электроники, и программирования. Это не считая знаний предметной области. Тем не менее, нет ничего сверх сложного в освоении микроконтроллеров на любительском уровне. Это по силам каждому. Если же вы не уверены в своих силах, то начинайте освоение не в одиночку, а сообща.
А что дальше?
А дальше мы будем изучать основные составные части микроконтроллеров. Их устройство и работу. Будем учиться использовать микроконтроллеры для решения разных, сначала очень простых, задач.
Так в следующей статье мы начнем знакомиться с входящей в состав микроконтроллеров ЭВМ, с ее архитектурой и особенностями.