Занимательно о микроконтроллерах - Александр Микушин


Книга в доступной форме вводит читателя в мир микропроцессорной техники. Здесь собраны материалы, затрагивающие различные аспекты проектирования микропроцессоров: от сведений о простейших логических элементах до изложения принципов разработки микропроцессорных систем и достаточно сложных многомодульных программ для них. Из всего многообразия микропроцессоров в качестве примера рассматриваются микроконтроллеры семейства MCS-51. Выбор связан с их распространенностью, доступностью и поддержкой такими крупнейшими производителями, как Analog Devices и Texas Instruments. Описанные методы разработки микропроцессорных устройств можно применять и при использовании микросхем других семейств. Большое внимание уделено построению структуры, принципам написания и отладке программ для микроконтроллеров на языках Си и ассемблере. Приведены готовые шаблоны для написания программ на ассемблере и показаны особенности применения языка Си для реализации конкретных устройств. При подготовке книги были использованы материалы лекций по микропроцессорам, читаемых автором в течение ряда лет в Сибирском государственном университете телекоммуникаций и информатики.

Для широкого круга радиолюбителей и программистов

Содержание:

  • Введение 1

  • Глава 1 - Что такое микроконтроллеры, микропроцессоры и сигнальные процессоры 1

  • Глава 2 - Цифровая техника 4

  • Глава 3 - Запоминающие устройства 8

  • Глава 4 - Принципы работы микропроцессора 13

  • Глава 5 - Принципы работы микропроцессорной системы 19

  • Глава 6 - Принципы работы микроконтроллеров 25

  • Глава 7 - Принципы создания программ для микроконтроллеров 37

  • Глава 8 - Язык программирования ASM-51 48

  • Глава 9 - Язык программирования С-51 56

  • Приложение 74

  • Литература 75

  • Примечания 75

Микушин Александр Владимирович
"Занимательно о микроконтроллерах"

Введение

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

А. Микушин

Микушин Александр Владимирович , кандидат технических наук, доцент кафедры САПР Сибирского государственного университета телекоммуникаций и информатики. Автор пяти книг и более тридцати статей по применению микропроцессоров в устройствах радиосвязи и радионавигации. К настоящему времени его исследования внедрены в ряде комплексов конвенциональной, транкинговой и авиационной радиосвязи.

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

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

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

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

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

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

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

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

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

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

Глава 1
Что такое микроконтроллеры, микропроцессоры и сигнальные процессоры

Слово "микропроцессоры" у всех на слуху. Сигнальные процессоры известны меньшему кругу людей, однако и это понятие достаточно распространено. Что же такое микроконтроллеры? Микроконтроллеры, как и остальные виды процессоров, в настоящее время выполняются в виде одной микросхемы. Микросхемы микроконтроллеров предназначены для управления различными объектами. В качестве таких объектов могут выступать радиостанции, приемники, сотовые телефоны, телевизоры и т. д. Обычно микроконтроллеры выполняются в виде готовых однокристальных ЭВМ. Прежде чем заняться микроконтроллерами более подробно, рассмотрим, к какой области техники относятся микросхемы этого класса, и какой круг задач они решают.

Современные электронные устройства, в том числе и микроконтроллеры, выполняются на основе интегральных микросхем. Основные разновидности применяемых в настоящее время микросхем показаны на рис. 1.1.

Александр Микушин - Занимательно о микроконтроллерах

Рис. 1.1.Место, занимаемое микропроцессорами среди микросхем

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

По мере развития цифровых микросхем их быстродействие достигло впечатляющих результатов. Наиболее быстрые обладают временем переключения порядка 3–5 не (серия микросхем 74ALS), а внутри кристалла микросхемы, где нет больших емкостей нагрузки, время переключения измеряется пикосекундами. Таким быстродействием обладают программируемые логические интегральные схемы (ПЛИС) и заказные большие интегральные схемы (БИС). В этих микросхемах алгоритм решаемой задачи воплощен в их внутренней структуре.

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

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

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

Напомню основные характеристики различных видов цифровых микросхем.

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

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

В современном мире наибольшее распространение получили КМОП-микросхемы, построенные на комплементарных транзисторах с изолированным затвором. Их особенностью является то, что используется двухтактная схема. В статическом состоянии, если один из двух последовательно включенных транзисторов с разным типом проводимости открыт, то второй закрыт. Это означает, что ток через логический вентиль не протекает ни при формировании на выходе логической единицы, ни при формировании логического нуля. То есть в статическом состоянии через микросхему протекают только токи утечки транзисторов и из цепи питания практически ничего не потребляется. Потребляемый ток возрастает только при увеличении скорости переключения логических КМОП-вентилей. На предельных скоростях работы КМОП-микросхемы ее потребление становится сравнимым с аналогичным параметром ТТЛ-микросхем и даже может превосходить его.

Итак, задачу потребления минимального тока, обеспечивающего требуемое в данный момент быстродействие, решает применение КМОП-микросхем (например, серий 1564, 74НС, 74АНС, универсальных микропроцессоров AMD или PENTIUM). Именно поэтому в настоящее время преимущественное распространение получили КМОП-микросхемы.

Задачу уменьшения стоимости и габаритов решают несколькими способами. Для жесткой логики - это разработка специализированных БИС. Их использование позволяет уменьшить габариты устройства, но стоимость его снижается только при крупносерийном производстве, таком как производство радио- или телевизионной аппаратуры. Для среднего и малого объемов производства такое решение неприемлемо. Тем не менее, для крупносерийного производства альтернативы этой технологии нет, так как при этом получается наименьшая стоимость микросхем.

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

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

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

- универсальные микропроцессоры;

- микроконтроллеры;

- сигнальные микропроцессоры.

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

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

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

Рассмотрим более подробно каждую из упомянутых категорий микропроцессоров.

Дальше