щего сигнала запроса INT и команды вызова индивидуальной для каждого запроса подпрограммы прерывания. Индивидуальные адреса подпрограмм прерываний могут указываться программно в процедурах инициализации [1], а при другой организации микропроцессорных систем могут задаваться фиксировано в виде специальных таблиц векторов прерываний. Контрол лер прерываний, не являясь самостоятельным устройством и выполняя ука занные выше вспомогательные функции, практически всегда необходим для эффективной организации процедур ввода-вывода.
Ввод-вывод данных по прерываниям, исключая из основной программы микропроцессора целый ряд операций по управлению взаимодействием с периферийными устройствами, позволяет существенно увеличить скорость обработки данных, уменьшить время реакции на запросы периферийных устройств, расширить набор реализуемых функций и, следовательно, повы сить эффективность работы микропроцессорной системы в целом. Общим же в рассмотренных процедурах ввода-вывода является обмен данными между любыми устройствами через микропроцессор.
Во всех операциях обмена данными микропроцессор считывает из памя ти команды пересылки данных и, выполняя эти команды, производит пере дачу данных: байт данных по первой команде поступает в регистр микро процессора и только по следующей команде из микропроцессора передает ся в другое устройство. При передаче массивов данных такой алгоритм об мена неэффективен, для передачи каждого байта требуется чтение из памя ти и выполнение нескольких команд микропроцессора. Для ускорения об мена данными предусмотрена процедура прямого доступа к памяти - ре жим DMA. В этом режиме байты данных передаются непосредственно ме жду памятью микропроцессорной системы и устройствами ввода-вывода без участия микропроцессора.
В режиме DMA управление процедурой с формированием управляющих сигналов и адресов производится контроллером DMA [1], который реали зует необходимые функции не программно, как микропроцессор, а аппаратно. Контроллер DMA, следовательно, является специализированным устройством с ограниченным набором аппаратно реализуемых функций. Благодаря этой особенности передача данных в режиме DMA выполняется в несколько раз быстрее, чем микропроцессором.
Перед запуском процедура DMA требует инициализации: необходимо указать начальный адрес памяти для обмена данными, количество циклов обмена и направление передачи данных. Кроме того, контроллер DMA мо жет использовать для обмена данными только те сигналы, которые в ос новных режимах работы формирует микропроцессор. Поэтому на период выполнения процедуры DMA необходимо работу микропроцессора приос тановить и передать функции формирования требуемых сигналов контрол леру DMA. Для остановки микропроцессора при запуске режима DMA в ШУ предусмотрены специальные сигналы. Эти сигналы, поступающие че-
35
рез контроллер DMA, обрабатываются микропроцессором по алгоритмам, аналогичным алгоритмам обработки запросов прерываний.
Передача данных в режиме DMA выполняется следующим образом:
•запрос от периферийных устройств поступает через контроллер DMA в микропроцессор;
•если прерывание разрешено, микропроцессор приостанавливает работу и подтверждает право на управление работой ШД, ША и ШУ контрол леру DMA передачей специальных сигналов разрешения;
•контроллер, принимая управление работой системы, производит уско ренный обмен данными между памятью и периферийным устройством по параметрам, которые были заданы микропроцессором программно перед запуском процедуры;
•после завершения обмена данными контроллер DMA возвращает управление микропроцессору, который продолжает выполнение приос тановленной программы.
Особенности режима DMA заключаются в том, что обмен данными вы полняется с большей скоростью, но требует предварительной программной настройки. Применение этого режима эффективно, если требуется передать подготовленный массив данных относительно большого объема с макси мальной скоростью, используя единые параметры настройки обмена дан ными.
Организация ввода-вывода является важнейшим элементом эффектив ной работы для микропроцессорной системы. Рассмотренные процедуры взаимодействия с периферийными устройствами обладают разными свой ствами, обеспечивают разную организацию ввода-вывода данных и в соот ветствии с определенными условиями могут удовлетворять требованиям различных задач преобразования данных. Несмотря на вспомогательную роль операций ввода-вывода в работе самой микропроцессорной системы, очень часто в решаемых микропроцессорными средствами задачах эти опе рации имеют первостепенное значение и поэтому требуют самого серьез ного внимания. Достаточно типичны ситуации, когда алгоритмы преобра зования данных заметно проще алгоритмов организации ввода-вывода, ко гда микропроцессорная система выполняет функции ведомого средства, работая под управлением команд, поступающих через интерфейсы вводавывода, и т.п.
Рассмотренная в первой главе организация микропроцессорной системы показывает основные свойства и возможности программной реализации ал горитмов преобразования. Корректное использование особенностей про граммной реализации позволяет получать весьма эффективные решения в самых различных применениях. Важнейшее свойство микропроцессорных средств - возможность качественной перестройки алгоритмов работы без , изменения структуры и набора применяемых аппаратных средств.
36
2. МИКРОКОНТРОЛЛЕРЫ AVR
Микроконтроллеры являются весьма универсальным средством, могут применяться и применяются для решения самых разнородных задач. Их универсальность определяется особенностями микропроцессорной органи зации обработки данных, рассмотренными в первой главе. Функциональ ные возможности многих микроконтроллеров, в том числе и их аппаратных средств, ориентированы на реализацию алгоритмов управления. Весьма существенно то, что микроконтроллеры относятся к числу массовых, недо рогих и доступных интегральных схем> номенклатура,микроконтроллеров постоянно расширяется.
Среди выпускаемых в настоящее время микроконтроллеров выделяются микроконтроллеры семейства AVR фирмы ATMEL. Эти микроконтролле ры обладают низким уровнем потребления, невысокой стоимостью при весьма значительных функциональных возможностях, высоким быстродей ствием и возможностью многократной перезаписи программ. Хотя и анало гичные по характеристикам микроконтроллеры выпускаются многими фирмами, по общему комплексу свойств семейство AVR одно из наиболее эффективных в классе недорогих 8-разрядных микроконтроллеров. Основ ная область применения таких микроконтроллеров в системах автоматиза ции - реализация в реальном масштабе времени алгоритмов управления, не требующих сложных вычислительных процедур и временем реакции от единиц миллисекунд и более.
Естественно, что микроконтроллеры AVR не являются универсальным средством "на все случаи". При определенных требованиях может быть не обходимым применение значительно более дорогих 16или 32-разрядных микроконтроллеров, процессоров цифровой обработки сигналов, програм мируемых логических интегральных схем и т.п. Тем не менее, существует большое число разнообразных задач, при решении которых недорогие и простые в применении 8-разрядные микроконтроллеры вне конкуренции.
Очевидно, что для построения системы автоматического управления од ного микроконтроллера недостаточно. Допустимый диапазон изменения входных и выходных сигналов, особенности интерфейсов ввода-вывода микроконтроллера, как правило, требуют различных дополнительных средств управления, устройств сопряжения и индикации, с помощью кото рых можно обеспечить управление различными объектами (электроприво ды постоянного и переменного токов, системы стабилизации температуры, системы контроля параметров и т.п.). Состав и характеристики этих допол нительных средств определяются свойствами конкретных объектов управ ления и используемыми алгоритмами работы, вопросы проектирования этих дополнительных устройств выходят за рамки данного учебного посо бия и изучаются в соответствующих курсах.
37
Данный раздел подготовлен на основе информационных материалов по микроконтроллерам семейства AVR, распространяемых фирмой ATMEL, и является кратким справочным руководством по применению микрокон троллера AT90S8535. На примере этого микроконтроллера рассмотрены особенности организации и архитектуры семейства AVR, параметры и ре жимы работы аппаратных средств. В следующих главах будут показаны особенности системы команд семейства AVR, средства подготовки про грамм на ассемблере и примеры программ для реализации типовых проце дур. Знание особенностей применения микроконтроллера семейства AVR позволяет достаточно легко перейти к изучению вопросов применения лю бого другого микроконтроллера этого класса.
2.1. Общая характеристика микроконтроллеров семейства AVR
Микроконтроллеры фирмы ATMEL с усовершенствованной RISCархитектурой обладают эффективными программно-аппаратными ресурса ми для решения различных задач. Семейство микроконтроллеров AVR со держит и простые модели (AT90S1200, AT90S2313) с минимумом необхо димых ресурсов, и весьма сложные модели megaAVR с существенно уве личенным объемом памяти, количеством портов ввода-вывода и других средств. Высокая эффективность микроконтроллеров AVR обеспечивается развитой системой команд, выполняющихся, как правило, за один рабочий такт, аппаратной реализацией многих стандартных функций (таймеры, мо дуляторы ШИМ, параллельные и последовательные порты ввода-вывода, компаратор, АЦП и др.) и возможностью внутрисистемного программиро вания, т.е. записи программ и данных в память микроконтроллера непо средственно в схеме работающего устройства.
Общие архитектурные особенности и программная совместимость мик роконтроллеров AVR позволяют использовать одни и те же алгоритмы и рабочие программы на разных моделях. Единственным ограничением их применимости может служить только отсутствие необходимых для испол нения программ аппаратных средств в более простых моделях микрокон троллеров.
Архитектура и общая организация микроконтроллеров AVR достаточно типична для микропроцессорных средств, обладает необходимой универ сальностью для программной реализации различных алгоритмов и в общих чертах аналогична описанной в главе 1. Важным дополнением являются средства аппаратной реализации стандартных интерфейсных функций и соответствующие алгоритмы и процедуры обеспечения эффективного взаимодействия с ними. Определенные отличия в других деталях архитек туры и организации работы, связанные, как правило, с повышением эффек тивности используемых средств и спецификой реализуемых алгоритмов, будут описаны ниже.
38
Существенной общей особенностью всего семейства AVR является ис пользование 32 регистров общего назначения и гарвардской архитектуры с тремя раздельными адресными пространствами: памяти программ (FLASH), оперативной памяти данных (RAM), программируемой постоян ной памяти данных (EEPROM). FLASH и EEPROM являются энергонеза висимыми и, как обычно, сохраняют данные при отсутствии питающих на пряжений. RAM - это стандартная энергозависимая оперативная память. Система команд поддерживает стандартные операции с однобайтовыми данными, возможны определенные операции с двухбайтовыми словами и отдельными битами. Каждый из 32 восьмиразрядных регистров общего на значения может служить регистром-аккумулятором. Основной формат ко дов команд - 2 байта, формат данных - 1 байт.
Управление и доступ к дополнительным аппаратным средствам микро контроллеров производятся с помощью специальных управляющих регист ров - регистров ввода-вывода. Эти регистры определяют параметры и ре жимы работы устройств микроконтроллеров, обеспечивают необходимый обмен данными с ними. Каждое устройство аппаратной реализации содер жит индивидуальный набор регистров ввода-вывода, которые и являются основными средствами обеспечения взаимодействия. Взаимодействие ме жду функциями, реализуемыми программно и аппаратно, производится формированием запросов прерываний. Система прерываний позволяет об служивать программные прерывания, внутренние прерывания всех уст ройств микроконтроллеров через регистры ввода-вывода и внешние преры вания. Внутренние аппаратные и внешние прерывания фиксируются в таб лице векторов прерываний со строго закрепленными адресами.
Общие особенности микроконтроллеров всего семейства AVR позволя ют более детальное их изучение проводить для одной из моделей семейст ва. В дальнейшем работа микроконтроллеров AVR будет рассматриваться на примере классической модели AT90S8535 со средними программноаппаратными ресурсами.
2.2. Микроконтроллер AT90S8535
Микроконтроллер AT90S8535 (рис. 4) со 118 командами в системе ко манд содержит 8-разрядное арифметико-логическое устройство (АЛУ), па мять программ (FLASH) объемом 8 Кбайт, электрически программируемое ПЗУ (EEPROM) объемом 0,5 Кбайт (также с возможностью внутрисистем ного программирования), статическое ОЗУ (RAM) объемом 0,5 Кбайт, 32 регистра общего назначения, 4 двунаправленных параллельных восьмираз рядных порта ввода-вывода, последовательный синхронный интерфейс SPI, последовательный асинхронный интерфейс UART, два восьмиразрядных и один шестнадцатиразрядный таймеры с возможностью реализации модуля торов ШИМ, сторожевой таймер с автономным генератором, аналоговый компаратор, восьмиканальный АЦП.
39