Самоучитель по микропроцессорам  

Программы
Книги
Статьи

Самоучитель по микропроцесорной технике

Данная книга будет полезна всем кто решил освоить работу с микроконтроллерами. В ней дается пример пошаговой разработки устройства на микроконтроллере. Начиная от технического задания и заканчивая прошивкой контроллера.
Скачать книгу  

Описание

СОДЕРЖАНИЕ Вступление 4 Глава 1. ЛИКБЕЗ ДЛЯ НАЧИНАЮЩИХ 5 Что же такое микропроцессор? 5 Считаем по-другому 10 Электронные цифры 15 Логические элементы 18 Простейший триггер 23 Хранение информации 27 Счетчики 31 Дешифраторы 37 Глава 2. ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ 43 Типовая схема микропроцессорной системы 43 Алгоритм работы микропроцессорной системы 50 Механизм прерываний 57 Прямой доступ к памяти 59 Глава 3. МИКРОКОНТРОЛЛЕР АТ89С2051 62 Структурная схема микроконтроллера 62 Назначение выводов 67 Внутренние регистры 72 Внутреннее ОЗУ контроллера 80 Специальные регистры 83 Система команд и язык Ассемблера 88 Глава 4. ПОЗИЦИОНЕР СПУТНИКОВОЙ АНТЕННЫ 94 Постановка задачи 94 Выбор процессора 98 Разработка схемы 100 Управляющая программа 107 Описание констант и переменных 112 Резервирование памяти 122 Переопределение векторов прерываний 127 Инициализация системы 130 Основной цикл программы 139 Подпрограмма обработки команде клавиатуры 141 Обработка сигналов с датчика поворота антенны 150 Процедура динамической индикации 159 Процедура приема сигнала ДУ 175 Обработка команд ДУ 190 Глава 5. ТРАНСЛЯЦИЯ И ОТЛАДКА ПРОГРАММ 195 Технология программирования 195 Транслятор с языка Ассемблер 199 Программный отладчик 206 Программатор 212 Приложение. СИСТЕМА КОМАНД МИКРОКОНТРОЛЛЕРА АТ89С2051 218
Вступление Цель настоящей книги — научить читателя основам микропроцессорной техники. Предполагается некий начальный уровень знаний в радиотехнике. В задачи автора не входило объяснение того, что такое резисторы, конденсаторы или транзисторы. Предполагается, что читатель с этим знаком. Книга рассчитана на тех читателей, которые стремятся узнать, что такое микропроцессорные устройства и научиться самостоятельно их конструировать. Книга начинается с азов цифровой техники. Последовательно, от простого к сложному, раскрываются такие понятия, как логические элементы, цифровой сигнал, принципы хранения и обработки цифровой информации. Затем раскрываются основные принципы построения микропроцессорных систем. И, наконец, на примере реального микропроцессорного устройства, раскрываются принципы и приемы разработки схемы и управляющей программы. В качестве примера взята реальная конструкция, разработанная автором — позиционер спутниковой антенны. Позиционер — это устройство, предназначенное для автоматизации управления поворотом бытовой спутниковой антенны. Он способен запомнить до 99 позиций (направлений на спутник), а затем автоматически устанавливать антенну в любую из этих позиций. Подробное описание позиционера вы найдете в соответствующем разделе настоящей книги. Схема позиционера выполнена на основе микроконтроллера АТ89С2051 фирмы ATMEL (www.atmel.com или www.atmel.ru). В книге подробно описывается внутренняя структура и система команд этого микропроцессора, а также весь процесс разработки микропроцессорного устройства, начиная с принципиальной схемы и заканчивая подробным описанием всех важнейших элементов управляющей программы. Автор надеется, что эта книга будет полезна широкому кругу радиолюбителей и начинающих разработчиков и будет благодарен за любые замечания и комментарии по книге. Все замечания прошу высылать по адресу: Украина, г. Симферополь, ул. Русская, 194 или по E-mail: belov@gomail.com.ua, мой сайт — http://avbelov.by.ru. Позиционер спутниковой антенны Постановка задачи Итак займемся проектированием микропроцессорного устройства. Я постараюсь показать все этапы проектирования с самого начала. Мне поступил заказ на разработку позиционера спутниковой антенны. До того момента (да и после того) я никогда не занимался спутниковым приемом. Как радиоинженер я, конечно, знал основы. Но сталкиваться с этим на практике не приходилось. Поэтому я потребовал подробное техническое задание. Задача стояла следующая: Имеется стандартная спутниковая тарелка, закрепленная на стандартном поворотном устройстве. Для ее вращения используется так называемый актюатор. Актюатор — это мотор с редуктором и датчиком поворота антенны. В поворотных спутниковых антеннах обычно используется так называемая планетарная подвеска, которая позволяет обойтись только одной плоскостью вращения. Поясню вкратце, что такое планетарная подвеска. Дело в том, что все спутники, транслирующие вещательные каналы, находятся на геостационарных орбитах. То есть вращаются вокруг земли над ее экватором со скоростью, равной скорости вращения земли. В результате они как бы «зависают» каждый над своей точкой на земной поверхности. Поэтому для наведения приемной спутниковой антенны на любой из спутников, достаточно обеспечить ей возможность вращения вокруг оси, расположенной параллельно оси вращения земли. Вращаясь только в этой одной плоскости, спутниковая антенна будет последовательно наводиться на каждый из спутников, «висящих» на геостационарной орбите. Именно такую возможность и реализует планетарная подвеска. Стандартный актюатор обеспечивает вращение антенны со скоростью примерно 90 градусов в минуту. То есть, достаточно медленно. Устроен он следующим образом: электромотор, рассчитанный на постоянное напряжение 36 В и пусковой ток 1,5 А, работает на простой редуктор, снижающий частоту вращения до 2-3 оборотов в минуту. Изменение направления вращения производится путем смены полярности питающего напряжения. На выходе первичного редуктора установлен датчик вращения. Датчик вращения представляет собой геркон, укрепленный в корпусе ак- тюатора и постоянный магнит, укрепленный на выходном валу редуктора. В данном случае применен обычный геркон средних размеров, имеющий два нормально разомкнутых контакта. Контакты геркона замыкаются один раз при каждом обороте выходного в'ала первичного редуктора. С выхода редуктора вращающий момент передается на червячный механизм, заставляющий двигаться специальную штангу. Штанга имеет достаточно большой ход. Под действием мотора, она может выходить из корпуса актюатора примерно на метр, или убираться в него полностью. Эта штанга и поворачивает спутниковую антенну. Задача, поставленная передо мной, состояла в следующем: ¦ Разработать электронное устройство (позиционер), управляющее поворотом антенны. Управление должно происходить путем подачи на двигатель актюатора питающего напряжения прямой либо обратной полярности. ¦ Постоянно, независимо от режима работы, позиционер должен следить за положением антенны при помощи датчика вращения и хранить текущее значение угла поворота во внутренней памяти. ¦ Позиционер должен иметь возможность в любой момент запомнить текущее положение антенны в одной из специальных ячеек внутренней памяти. Количество таких ячеек должно быть не менее десяти. То есть по-другому, позиционер должен иметь возможность запомнить не менее 10 позиций антенны. ¦ Вся записанная во внутреннюю память устройства информация должна храниться в нем после выключения питания. Причем схема должна гарантировать полную сохранность всей информации даже в случае непредвиденного пропадания питания. • Позиционер должен обеспечивать автоматический поворот антенны в любую из ранее запомненных позиций. Поворот должен начинаться сразу после выбора номера нужной позиции. ¦ Если поворот антенны на выбранную позицию еще не окончен, а пользователь выберет другую, то отработка предыдущей позиции должна быть немедленно прекращена, и позиционер должен перейти к отработке новой позиции. Если новая позиция находится в том же направлении, что и отмененная, то движение прекращаться не должно. Если новая позиция находится в другом направлении, то мотор должен поменять направление вращения. ¦ Позиционер должен иметь цифровой индикатор. На нем должен отображаться номер текущего выбранного канала. Имеется в виду, что каждый канал хранит одну из позиций. Кроме того, на индикаторе должна отображаться информация о смене режима работы и сообщения об ошибках. ¦ Позиционер должен иметь минимум кнопок управления. ¦ Позиционер должен иметь систему дистанционного управления. Желательно при этом использовать один из стандартных пультов управления, имеющихся в свободной продаже. ¦ Позиционер должен иметь дежурный режим работы. В дежурном режиме позиционер должен переходить на пониженное потребление энергии. Должна быть предусмотрена возможность выхода из дежурного режима, как при помощи кнопок управления, так и при помощи пульта ДУ. Кроме того, было сформулировано еще одно требование к схеме: в целях повышения надежности, устройство должно иметь гальваническую развязку силовых и управляющих цепей для защиты микропроцессорной части от атмосферного электричества. Имея вышеперечисленные требования, я приступил к разработке позиционера. Первым делом я, уже сам для себя, сформулировал ряд дополнительных требований, перечисленных ниже. Для того, чтобы информация в памяти позиционера не терялась при выключении питания, я решил применить для их хранения микросхему электрически стираемого ПЗУ. Это целый класс специальных микросхем памяти, предназначенный для долговременного хранения информации в условиях отсутствия электропитания. Используя западную терминологию, такие микросхемы часто называют микросхемами флэш-памяти. Флэш- память широко применяется в наше время в радиоэлектронной аппаратуре. Современные телевизоры, автомагнитолы, мобильные телефоны используют их для хранения всех основных настроек. В нашем случае объем информации, предназначенной для хранения, был достаточно небольшим. Поэтому, в качестве микросхемы энергонезависимой памяти я решил применить самую доступную на момент разработки микросхему К558РР1. Эта микросхема применяется в блоке управления отечественных телевизоров нового поколения. В тех моделях, у которых весь процесс настройки и выбора режимов отображается непосредственно на экране, на фоне телепередачи. Микросхема К558РР1 по внешнему виду и функциональному назначению является ближайшим аналогом микросхем серии 24СХХ. Однако имеются отличия в протоколе обмена информацией. В связи с этим они не взаимозаменяемы. Микросхема К558РР1 представляет собой электрически перепрограммируемое ПЗУ, имеющее 256 ячеек, у которой для чтения и записи инфор- мации используется последовательная двухпроводная шина, использующая протокол обмена под названием 12С. Эта шина и протокол разработаны фирмой PHILIPS. Они предназначены для систем цифрового управления в современных моделях телевизоров. Не вдаваясь в подробности, скажу лишь, что такое решение позволяет процессору обмениваться информацией с микросхемой памяти при помощи всего лишь двух проводов. Подробнее о работе 12С-шины вы можете прочитать на сайте http://digitchip.by.ru в разделе «Справочные материалы». Алгоритм работы шины довольно сложный. Однако это не вызвало у меня никаких затруднений, так как на сайте фирмы ATMEL (http://www.atmel.com), производителя микроконтроллера АТ89С2051, имеется пример готовой программы для работы с флэш-памятью по 12С-шине и схема подключения такой памяти к процессору. Вообще информационная поддержка продукции этой фирмы налажена хорошо. Следующий момент, который нужно было продумать перед тем, как начать разработку электрической схемы — это разрядность счетчика положения антенны. Показания счетчика будут храниться в памяти микроконтроллера. Поэтому под счетчик необходимо будет выделить одну или несколько ячеек. Попробуем определить, сколько ячеек памяти нам потребуется. Максимальное число, которое будет храниться в данном счетчике равно количеству срабатываний датчика при повороте антенны из одного крайнего положения в другое. В то же время, количество разрядов счетчика определяет точность, с которой мы сможем устанавливать антенну в требуемую позицию. Если для хранения показаний счетчика мы используем всего одну ячейку памяти, то счетчик переполнится уже после 256 срабатываний датчика. Такое количество срабатываний наступит при повороте антенны всего на пару градусов. Поэтому одной ячейки явно мало. Если же для счетчика выделить две ячейки, то такой счетчик переполнится только после 65536 срабатываний датчика. Подсчет количества срабатываний датчика реального актюатора на каждый градус поворота антенны показал, что этого вполне достаточно. Далее, нужно было определиться с количеством разрядов цифрового индикатора. Основное назначение индикатора — отображать номер текущего выбранного канала. Казалось бы достаточно и одного разряда. Однако я решил, что оптимальным решением будет двухразрядный семисегментный индикатор. Во-первых, на двух индикаторах легко высветить различные служебные надписи. Например «РУ» (ручное управление) или «Ег» (ошибка). Кроме того, я решил сделать не 10, а 100 ячеек для записи позиций антенны и, соответственно, 100 каналов. Объема памяти выбранной микро- схемы B56 ячеек) вполне хватает. Разумеется, вряд ли вы на свою антенну сможете поймать сигналы от ста разных спутников. Но появляется возможность одну и ту же позицию записать в несколько разных каналов и согласовать номера этих каналов с номерами каналов вашего ресивера. В общем, лишний запас по количеству каналов никогда не помешает. Тем более, что это не потребует никаких дополнительных затрат. СОДЕРЖАНИЕ Вступление 4 Глава 1. ЛИКБЕЗ ДЛЯ НАЧИНАЮЩИХ 5 Что же такое микропроцессор? 5 Считаем по-другому 10 Электронные цифры 15 Логические элементы 18 Простейший триггер 23 Хранение информации 27 Счетчики 31 Дешифраторы 37 Глава 2. ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ 43 Типовая схема микропроцессорной системы 43 Алгоритм работы микропроцессорной системы 50 Механизм прерываний 57 Прямой доступ к памяти 59 Глава 3. МИКРОКОНТРОЛЛЕР АТ89С2051 62 Структурная схема микроконтроллера 62 Назначение выводов 67 Внутренние регистры 72 Внутреннее ОЗУ контроллера 80 Специальные регистры 83 Система команд и язык Ассемблера 88 Глава 4. ПОЗИЦИОНЕР СПУТНИКОВОЙ АНТЕННЫ 94 Постановка задачи 94 Выбор процессора 98 Разработка схемы 100 Управляющая программа 107 Описание констант и переменных 112 Резервирование памяти 122 Переопределение векторов прерываний 127 Инициализация системы 130 Основной цикл программы 139 Подпрограмма обработки команде клавиатуры 141 Обработка сигналов с датчика поворота антенны 150 Процедура динамической индикации 159 Процедура приема сигнала ДУ 175 Обработка команд ДУ 190 Глава 5. ТРАНСЛЯЦИЯ И ОТЛАДКА ПРОГРАММ 195 Технология программирования 195 Транслятор с языка Ассемблер 199 Программный отладчик 206 Программатор 212 Приложение. СИСТЕМА КОМАНД МИКРОКОНТРОЛЛЕРА АТ89С2051 218
 
 


Сайт управляется системой uCoz