Справочник от Автор24
Поделись лекцией за скидку на Автор24

Микропроцессорные системы управления

  • ⌛ 2007 год
  • 👀 423 просмотра
  • 📌 376 загрузок
  • 🏢️ Государственное образовательное учреждение высшего профессионального образования «Омский государственный технический университет»
Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Микропроцессорные системы управления» doc
Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования «Омский государственный технический университет» А.Н. Компанейц МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ УПРАВЛЕНИЯ Конспект лекций Омск 2007 УДК 004.384 ББК 32.973.2 К63 Р е ц е н з е н т ы: Ю.П. Котелевский, канд., техн., наук; А.А. Ибатуллин канд., техн., наук Компанейц А.Н. К63 Микропроцессорные системы управления: Конспект лекций. - Омск: Изд-во ОмГТУ, 2007. - 87 В работе рассматриваются принципы построения, назначение и состав микропроцессорных систем управления. В качестве элементов МСУ приводятся CISC и RISC микроконтроллеры. Конспект предназначен для студентов очного, очно-заочного, заочного и дистанционного обучения по специальностям: 220301 - "Автоматизация технологических процессов и производств" 220401 - "Мехатроника". Печатается по решению редакционно-издательского совета Омского государственного технического университета УДК 004.384 ББК 32.973.2 © А.Н. Компанейц © Омский государственный технический университет Введение В настоящее время технологическое оборудование с ЧПУ объединяют в единые производственные комплексы с помощью транспортной и управляющей систем. Такие производственные комплексы называют гибкими автоматизированными производственными системами. В соответствии с ГОСТ 26228-85 под ГПС следует понимать совокупность в разных сочетаниях оборудования с ЧПУ, роботизированных технологических комплексов (РТК), гибких производственных модулей (ГПМ), отдельных единиц технологического оборудования и систем обеспечения их функционирования в автоматическом режиме в течение заданного интервала времени, обладающая свойством автоматизированной переналадки при производстве изделий произвольной номенклатуры в установленных пределах значений их характеристик. Основные признаки ГПС: гибкость- возможность оперативного перехода с производства одного вида изделий на другой; автоматизация всех или большинства операций, включая обработку изделий, управление, перенастройку на новый вид изделий; автоматизация проектирования изделий и технологического процесса. В общем случае ГПС состоит из трех основных систем (рис. В.1): транспортно-накопительной (ТНС), технологической и управления. Технологическая система осуществляет обработку изделий, их контроль, подготовку и смену инструмента и оснастки, загрузку и разгрузку технологического и контрольно-измерительного оборудования, промежуточное накопление и хранение материалов, полуфабрикатов, изделий, комплектующих элементов, инструмента и оснастки, отвод отходов производства. Для выполнения этих функций в технологическую систему входит основное технологическое оборудование и контрольно-измерительное, средства промежуточного накопления, хранения, переориентации; базирования и транспортирования изделий и инструментов; роботы. В состав технологической системы входят различное автоматизированное оборудование: РТК, РПК, ТК и КИК. Оборудование комплексов выделенное сплошной линией является обязательным для них, штриховой линией – может отсутствовать. Основой РТК является технологическое оборудование и роботы. Роботы в РТК выполняют вспомогательные операции технологического процесса. В РПК основную технологическую операцию выполняет робот (например, окраска изделий, сварка). Назначение ТК определяется выполняемой им операцией. Для автоматизации выполняемого технологического процесса в ТК используются: вспомогательный транспорт, накопители. В КИК в качестве контрольно-измерительного оборудования используются: контрольно-измерительные машины (КИМ), контрольно-измерительные роботы (КИР), различные автоматизированные и автоматические измерительные средства. Транспортно накопительная система (автоматизированные склады) в ГПС производит промежуточное хранение и перемещение изделий, инструмента и оснастки между оборудованием технологической системы, а также приемку и выдачу изделий, инструмента и оснастки внешним производственным подразделениям, их хранение, комплектацию, приемку и выдачу технологической системе. Для выполнения этих функций в ТНС входят транспортные средства, позиции хранения, комплектации, приемки и выдачи изделий и инструмента. Рис. В.1. Структура ГПС Система управления ГПС координирует работу технологической и транспортно - накопительной систем, контролирует состояние производства в СУ входят следующие подсистемы: АСТПП - автоматизированная система технологической подготовки производства; АСУП - автоматизированная система управления производством; САПР - система автоматизированного проектирования. Система управления ГПС посредством АСУП взаимодействует с локальными управляющими системами технологической и транспортно накопительной систем и их оборудования. Между технологической, транспортно-накопительной и управляющей системами может происходить значительное перераспределение функций. В данном курсе рассматриваются принципы построения СУ технологической системы, микропроцессорная элементная база этих систем, примеры реализации СУ. 1. Классификация устройств программного управления Устройства программного управления (ПУ) металлорежущим оборудованием можно подразделить на два основных класса (рис. 1.1.): с цикловым управлением (или программно-путевым управлением) и числовым программным управлением (ЧПУ). Рис. 1.1. Классификация СПУ Устройство циклового ПУ (УЦПУ) характеризуется полным или частичным программированием цикла работы станка и режима обработки. Перемещение исполнительных элементов регулируется расстановкой передвижных упоров. УЦПУ является переходной от устройства управления с помощью упоров к устройству ЧПУ. Станки с УЦПУ отличаются простой системой управления. Они не требуют высококвалифицированного обслуживающего персонала, обладают большей производительностью, чем универсальные станки. Однако они имеют меньшие технологические возможности, чем станки с УЧПУ. Для их переналадки на новый вид деталей затрачивается большее время, чем для станков с УЧПУ. Это время складывается из времени задания новой программы, времени размерной настройки кулачков и путевых переключателей, поэтому их разумно использовать при обработке простых деталей с длительностью обработки партий не менее смены. Примеры станков с УЦПУ: токарно-револьверный 1А341Ц, вертикально - фрезерный 6530Ц и другие. Конечные выключатели в устройствах циклового ПУ являются датчиками линейных перемещений, и определяют размеры обрабатываемых поверхностей. Порядок включения в работу исполнительных механизмов станка определяет командоаппарат (программное устройство). Команды в УЦПУ могут быть технологическими или размерными. Под УЧПУ станками понимается совокупность специализированных устройств, методов и средств, необходимых для осуществления ЧПУ. Устройство ЧПУ характеризуется программированием цикла, режимов обработки и путей перемещения рабочих органов станка. При этом вся необходимая информация представляется не в виде кулачков, копиров и упоров, а в виде последовательности букв и чисел, нанесенных в закодированном виде на программоноситель. Устройства ЧПУ можно классифицировать по трём признакам: • по степени совершенства и функциональным возможностям; • по виду движения исполнительных механизмов станка, определяемого геометрической информацией в программе; • по числу потоков информации. По степени совершенства и функциональным возможностям устройства ЧПУ делятся на следующие типы: NC (Numerical Control) - УЧПУ для обработки изделий на станке по программе. Эти устройства работают по «жесткой логике». Ввод программы в них, как правило, осуществляется по кадрам с перфоленты; HNC (Hand NC) - разновидность устройств ЧПУ с ручным заданием программы с пульта устройства. В отечественной литературе эти системы получили название оперативных систем управления (ОСУ); SNC (Speicher NC) или МNC (Memory NC) - разновидность устройств ЧПУ, имеющих память для хранения всей управляющей программы; CNC (Computer NC) - автономное устройство ЧПУ станками, содержащее ЭВМ или процессор; DNC (Direct NC) - система для управления группой станков от ЭВМ, осуществляющая хранение программ и распределение их по запросам от локальных устройств управления станками (устройства типа NC, SNC, CNC). На рис. 1.1. приведены некоторые типы устройств ЧПУ. По виду движения исполнительных механизмов станка, определяемого геометрической информацией в программе, УЧПУ подразделяются на устройства позиционного, контурного, комбинированного управления. Позиционное устройство ЧПУ - это устройство, обеспечивающее установку рабочего органа станка, в позицию, заданную программой управления станком, чаще всего без обработки в процессе перемещения рабочего органа станка. Эти устройства применяются для управления станками сверлильно - расточной группы. Контурное устройство ЧПУ представляет собой устройство, которое обеспечивает автоматическое перемещение рабочего органа станка по заданной в программе управления станка траектории и с контурной скоростью. Основной особенностью контурных устройств является наличие в каждый отдельный момент времени функциональной зависимости между скоростями перемещения рабочих органов станка по координатным осям. Контурные устройства по сравнению с позиционными отличаются большей сложностью и стоимостью. Комбинированное устройство ЧПУ имеет в своём наборе команды контурной и позиционной обработки, и используется в основном для управления многооперационными станками (обрабатывающими центрами). Автоматизированная система централизованного управления - это комплекс металлорежущего оборудования с УЧПУ, связанный единой автоматизированной транспортно-накопительной (транспортно-складской) системой и управляемый от ЭВМ верхнего уровня (ACB-20,ACB-21). По числу потоков информации устройства ЧПУ подразделяются на разомкнутые, замкнутые и самонастраивающиеся (адаптивные). Разомкнутые устройства ЧПУ (называемые также импульсно-шаговыми) характеризуются только одним потоком информации, направляемым от программы управления к рабочему органу станка (рис. 1.2). Перемещения рабочего органа станка при этом не контролируются и не сравниваются с перемещениями, заданными программой. Разомкнутые УЧПУ строят на основе применения силовых или несиловых шаговых двигателей (ШД), которые управляются устройствами управления шаговыми двигателями (УУШД). Достоинствами таких устройств являются: отсутствие цепей обратных связей, простота конструкции, наличие надежных и быстроходных шаговых двигателей. Но для высокой точности обработки требуют точных передач винт-гайка качения. Рис. 1.2. Разомкнутое устройство числового программного управления Замкнутые устройства ЧПУ характеризуются двумя потоками информации: один поток поступает от программы управления, а второй - от датчиков обратной связи. Эти устройства по сравнению с разомкнутыми обеспечивают высокую точность обработки, но являются более сложными и дорогими. Схема замкнутого устройства ЧПУ представлено на рис. 1.3. Сигналы управления от УЧПУ, характеризующие требуемое положение рабочего органа, поступают на формирователь сигнала управления ФСУ. Сюда же поступает сигнал от измерительного преобразователя ИП (обратная связь по положению - ОСП), который характеризует действительное положение рабочего органа (РО). Формирователь сигнала управления определяет сигнал рассогласования и выдает его на управляющее устройство (УУ). Сюда же поступает сигнал обратной связи по скорости (ОСС) от тахогенератора (ТГ), установленного на валу электродвигателя М. Сигнал УУ поступает на тиристорный преобразователь (ТП), который управляет электродвигателем постоянного тока М. Самонастраивающиеся устройства (адаптивные) могут приспосабливаться к изменению внешних условий и являются наиболее прогрессивными. Они имеют помимо основных дополнительные потоки информации, позволяющие корректировать процесс обработки с учетом деформации системы СПИД (станок - приспособление - инструмент-деталь) и ряда случайных факторов, таких, как затупление режущего инструмента, колебание припуска и твердости заготовки и др. Рис. 1.3. Замкнутое устройство числового программного управления На рис. 1.4. приведён пример схемы адаптивного устройства управления фрезерного станка по одной координате. Задача адаптивного устройства состоит в стабилизации силы резания Рр посредством регулирования подачи по данной координате. Рис. 1.4. Адаптивное устройство числового программного управления Работа устройства заключается в следующем. Информация управляющей программы поступает в вычислитель УЧПУ, который формирует сигналы задания перемещений по координатам. Сигнал задания и обратной связи поступают в сравнивающее устройство, куда поступает также сигнал с датчика положения ИП, измеряющего действительное перемещение стола. Сигнал рассогласования, преобразованный в формирователе сигнала управления (ФСУ), поступает в устройство управления, куда поступает также сигнал с тахогенератора (датчика скорости). Сигнал, сформированный в УУ, преобразуется тиристорным преобразователем (ТП) в сигнал управления двигателем постоянного тока М, который через безмуфтовый редуктор и шариковинтовую пару осуществляет перемещение стола по координате. Адаптивное устройство состоит из динамометрического стола ДС, измеряющего действительную силу резания Рр и блока адаптации, определяющего разность ΔР между заданной силой резания Рз и действительной Рр. 2. Принципы построения МП УЧПУ Микропроцессорная управляющая система (МПС) – вычислительная система [1], включает в себя процессор, запоминающее устройство (ЗУ), расширители арифметических функций (РА), объединяемые термином вычислитель (ВЧС), и контроллеры внешних устройств (рис. 2.1). Обмен информацией между блоками МПС осуществляется по специальному каналу обмена (системной магистрали). Контроллер внешнего устройства (КВУ), включает в себя схемы сопряжения внешнего устройства (ВУ) с системной магистралью (интерфейс) и схемы преобразования входных и выходных данных внешнего устройства. Во многих устройствах ЧПУ КВУ выполняется с использованием специализированных, так называемых «потребительских» БИС, ориентированных на выполнение определенной функции, например преобразование сигналов датчика положения в код. Зачастую функции КВУ достаточно сложны и требуют такой степени адаптации к объекту и пользователю, что КВУ выполняется на базе специализированной МПС. Рис. 2.1. Схема микропроцессорной управляющей системы Расширители стандартных арифметических функций МП УЧПУ необходимы для повышения производительности МПС при выполнении операций, входящих в базовый набор арифметических функций. При использовании однопроцессорного вычислителя возможны две основные структуры с одной (общей) и двумя магистралями. В структуре с общей магистралью (рис. 2.1) все контроллеры ВУ сопрягаются в ВЧС через эту магистраль. В этой структуре нагрузочная способность системной магистрали (СМГ) ВЧС ограничивает возможности расширения системы из-за понижения помехоустойчивости. Для улучшения характеристик используется однопроцессорная структура с двумя магистралями (рис. 2.2), сопряжение между которыми осуществляется через специальное устройство согласования магистралей – адаптер. В этой структуре КВУ оператора (дисплея, клавиатуры) сопрягаются обычно с магистралью ВЧС, а КВУ объекта (электроприводов, датчиков состояния объекта, устройств управления электроавтоматикой) сопрягаются с магистралью УЧПУ (СМГ УЧПУ). Уже в однопроцессорных УЧПУ в полной мере определились основные принципы организации МПС УЧПУ, обеспечивающие возможность расширения системы при сохранении функциональной гибкости и обеспечении надежности функционирования при малом времени восстановления в случае отказа. К их числу относятся: • принцип программно-аппаратной реализации функций управления, в соответствии с которыми основными функциями аппаратных средств КВУ являются функции преобразования вычислителя в сигналы управления объекта и обратное преобразование сигналов состояния объекта в машинную форму, а обработка информации производится программными средствами вычислителя; • магистрально модульный принцип построения аппаратных средств, в соответствии с которым аппаратные средства, входящие в состав конфигурации МП УЧПУ, выполняются в виде унифицированных по конфигурации модулей и имеют унифицированные средства сопряжения с системными магистралями; • принцип «встроенной» диагностики аппарата УЧПУ, в соответствии с которым каждый блок, входящий в ВЧС и КВУ, имеют свои аппаратные диагностические средства, что позволяет быстро показывать неисправность и снизить время восстановления устройства в случае отказа. Рис. 2.1. Схема МПС с двумя магистралями Однопроцессорные УЧПУ накладывают ограничения на количественные и качественные показатели расширения функциональных возможностей, а также на надежность управления локальными устройствами ЧПУ, обусловленные следующими причинами: • ограничение вычислительной мощности процессора (большое число управляемых координат); • ограничение возможностей привязки МП УЧПУ к объекту (управление большим числом входов и выходов ЭА объекта); • ограничение, связанное с распределённостью объекта управления; • ограничение, связанное с конечной нагрузочной способностью системной магистрали. Из сказанного следует, что переход к мультипроцессорным структурам УЧПУ является объективной тенденцией развития этого класса устройств. В настоящее время распространены ММПС УЧПУ, в которых увеличение функциональных возможностей достигается в результате применения в качестве локальной МПС (ЛМПС) однородных по элементной базе функционально-законченных МП модулей, каждый из которых решает собственную вычислительную задачу. Различие функций, выполняемых модулями, определяется различным ПО, записанным в ЗУ ВЧС, входящих в состав этих модулей. Такой подход позволяет создавать модульные МП УЧПУ, расположенные в одном блоке или же распределенные по конструктивным блокам системы управления. При расположении МП модулей ММПС в одном блоке (рис. 2.3) агрегатирование отдельных ВЧС осуществляется с использованием двухпортовых блоков общей памяти (БОП). Связь через двухпортовые БОП обеспечивает наименьшие потери производительности ММПС, обусловленные конфликтами при одновременном обращении вычислителей к БОП. При использовании параллельного обмена в рассмотренной структуре потери производительности, обусловленные временем обмена, становятся пренебрежимо малыми. Рис. 2.3. Схема ММПС с параллельным обменом Во второй структуре ММПС (рис. 2.4) в отличие от первой МП ВЧС имеют равные возможности обмена данными. Обмен осуществляется через адаптеры связи АС1-АС3, подключенные к системным магистралям соответствующих вычислителей и имеющих выходы на два последовательных канала обмена. Достоинством данной структуры является конструктивная автономность ЛВЧС, возможность их встраивания в аппаратуру, расположенную в различных местах общей системы управления при минимальном числе линий обмена и хорошей, а в перспективе при использовании оптических каналов обмена – идеальной помехозащищенности. Недостаток структуры – ограниченная пропускная способность последовательного канала обмена. Комбинируя принципы построения ММПС, можно получить оптимальную по выбранному критерию структуру. Рис. 2.4. Схема ММПС с последовательным обменом 3. Способы внутрисистемной организации мультимикропроцессорных систем ММПС делятся на две группы: распределенные (децентрализованные) системы, сосредоточенные (централизованные) системы [1]. Распределенные ММПС содержат территориально рассредоточенные по всему объекту управления мЭВМ, связь между которыми осуществляется по специальным линиям связи (последовательным каналам). Сосредоточенные ММПС работают по принципу параллельной обработки данных и предназначаются в основном для обеспечения высокой производительности систем. В сосредоточенных системах все блоки расположены в одной стойке и используют одну общую операционную систему. Для сосредоточенных ММПС характерны три основных способа организации внутрисистемных связей: с перекрестной коммутацией; с многошинными связями; с общей шиной. В ММПС с перекрестной коммутацией связи реализуются с помощью матричного коммутатора (рис. 3.1). Коммутация может осуществляться в каждой точке матричной системы, обеспечивая физическое подсоединение любого модуля памяти (МП) к любому процессору (ПРЦ). Возможна организация нескольких одновременно действующих путей передачи информации в матрице. Система имеет наибольшие аппаратные затраты на организацию внутренних связей, но и обладает наиболее высокой пропускной способностью. Выход из строя части коммутатора не приводит к отказу системы, так как функции процессоров, коммутируемых этой частью, могут быть распределены между другими процессорами системы. В ММПС с многошинными связями каждый процессорный модуль имеет доступ к любому модулю памяти при помощи собственных шин (рис. 3.2). Каждый модуль памяти должен быть многовходовым (многопортовые ОЗУ) и содержать схему арбитража для разрешения конфликтов при одновременном обращении к нему нескольких процессоров. Пропускная способность схем с многошинными связями ниже, чем с матричным коммутатором, но у них меньше и аппаратные затраты. Наращиваемость ограничивается числом входов в модулях памяти. Система не теряет работоспособности при выходе из строя отдельных шин. В данной схеме также возможна параллельная передача данных. Рис. 3.1. ММПС с перекрёстной Рис. 3.2. ММПС с многошинными коммутацией связями ММПС с общей шиной отличаются наибольшей простотой организации связей и наименьшими аппаратными затратами (рис. 3.3). Они характеризуются высокой степенью модульности и хорошими возможностями наращивания. Основными недостатками таких систем являются ограниченная пропускная способность общей шины и невысокая надежность, так как выход из строя общей шины приводит к отказу всей системы. Структуры с общей шиной (ШД) в настоящее время получили наибольшее распространение. ММПС с общими памятью и внешними устройствами наиболее просты и имеют наименьшие затраты оборудования (рис. 3.4). Каждый ПРЦ имеет доступ к любому модулю памяти МП, к любому внешнему устройству, в том числе и к программам операционной системы, осуществляющей общее управление всеми аппаратными и программными средствами системы и обеспечивающей взаимодействие как между процессорами, так и между реализуемыми в них процессами. Быстродействие ММПС с такой организацией наименьшее и ограничивается пропускной способностью ОШ. В структурах ММПС с локальной памятью (ЛМП) общие поля памяти (ОМП) могут быть объединены с локальной памятью или отделены физически. Структура с локальной памятью (рис. 3.5) минимизирует конфликтные ситуации при запросе общих ресурсов (ОШ, общей памяти), так как значительная часть программ и данных продублирована. ОШ служит только для межпроцессорного обмена в процессе взаимодействия программных модулей, выполняемых на разных ПРЦ. Такая структура обладает потенциально высоким быстродействием, высокой степенью однородности и наращиваемостью. Рис. 3.3. ММПС с общей шиной Рис. 3.4. ММПС с общими памятью и внешними устройствами Рис. 3.5. ММПС с объединёнными локальной и общей памятью процессоров Физически отдельные ОМП (общие модули памяти) могут располагаться как на шинах ПРЦ, так и на ОШ (рис. 3.6). Наибольшим быстродействием обладают структуры, в которых общая память физически отделена и расположена на шинах ПРЦ, так как в этих случаях отсутствуют конфликты при одновременных обращениях одного из ПРЦ в область локальной памяти и других ПРЦ в область общей памяти. Загрузка общей шины в структуре с физически отдельными локальной и общей памятью невелика, так как для обмена двух ПРЦ одним словом данных требуется один цикл шины при бесконфликтном обмене. Если область общей памяти организована подключением к ОШ, то для подобного обмена требуются два цикла шины: один для записи данных ПРЦ-источником, второй - для считывания этих данных ПРЦ-приёмником. Системы распределенной обработки информации (локальные сети) используются для передачи информации на сравнительно небольшие расстояния (в пределах завода, учреждения, цеха, отдела). Рис. 3.6. ММПС с физически отдельными локальной и общей памятью Локальная сеть при помощи канала связи может объединять от десятков до сотен абонентских узлов, включающих мЭВМ, внешнее ЗУ, интерфейсные схемы, монитор, печатающие устройства, измерительные приборы и т.д. Локальные сети используются при автоматизации делопроизводства, технологических и производственных процессов; для создания информационно-справочных, контрольно-измерительных систем, гибких автоматизированных производств. Объединение мЭВМ (персональных мЭВМ) в ЛВС создает ряд преимуществ в использовании вычислительной техники по отношению к одной мЭВМ: - ЛВС предоставляют возможность применения отдельных дорогостоящих устройств, подключенных к одной из мЭВМ сети, многими пользователями (графопостроители большого формата, устройства цветной печати высокого качества, накопители большой емкости). - ЛВС обеспечивают совместное использование банков данных большого размера , размещаемых на НМД большой емкости. - ЛВС позволяют реализовать безбумажную технологию обработки документации с передачей по каналам связи (системы САПР). - ЛВС обеспечивают оперативный обмен текстами программ и другой управляющей информацией между отдельными мЭВМ сети, например, при реализации ГПС. Локальные сети различают по следующим основным характеристикам: топологии (конфигурации) сети, физической среде передачи, методам управления передачи (методам доступа к физической среде передачи). Топология сети определяет общую структуру расположения абонентских узлов и линий связи между ними. Наиболее используемыми конфигурациями (топологиями) ЛВС являются магистральные, кольцевые и звездообразные. В сетях с магистральной структурой данные, передаваемые любой мЭВМ, равнодоступны для остальных мЭВМ (рис. 3.7). Сеть легко наращивается до определённого значения абонентских узлов (магистральный последовательный интерфейс ГОСТ 26765.52-87- 32 узла, ControlNet – 48 узлов и т. д.). К недостаткам необходимо отнести низкую надёжность. Так как при выходе из строя магистральной линии связи выходит из строя сеть. Рис. 3.7. Магистральная структура ЛВС В сетях с кольцевой структурой данные передаются в одном направлении от одной мЭВМ к другой мЭВМ, через которую они транслируются в следующую мЭВМ и т.д. (рис. 3.8). Рис. 3.8. Кольцевая структура ЛВС В звездообразной конфигурации в качестве центрального узла (узла коммутации) может служить мЭВМ, осуществляющая коммутацию данных между мЭВМ сети (рис. 3.9). Существенным недостаткам данной структуры является то, что при выходе из строя узла коммутации – выходит из строя вся сеть. Наращиваемость сети определяется возможностями узла коммутации. Любая мЭВМ сети должна иметь в своем составе устройства сопряжения с сетью - сетевой адаптер. В качестве физической среды передачи данных в сетях применяются витые пары проводников, коаксиальный кабель и волоконно-оптические линии связи. Рис. 3.9. Звездообразная структура ЛВС 4. Устройства числового программного управления станками и системы управления промышленными роботами 4.1. Устройство числового программного управления 2С42 Устройство числового программного управления (УЧПУ) 2С42 предназначено для управления сложными станками типа обрабатывающие центры и координатно-расточные станки, оснащенными следящими (замкнутыми по положению) приводами подач, служащими для обработки различных типов деталей. УЧПУ 2С42 относится к однопроцессорным системам с двумя магистралями. Технические характеристики УЧПУ По виду обработки геометрической информации устройство является контурно-позиционным (комбинированным) со свободным программированием алгоритмов управления. Устройство обеспечивает одновременное управление по трем осям с линейной интерполяцией, или одновременное управление с круговой интерполяцией по двум и линейной одной осям. Состав устройства В состав устройства входят следующие основные блоки: ОЗУ и энергонезависимое ОЗУ; ПЗУ; блок входных сигналов от технологического оборудования (ТО); блок выходных сигналов на ТО; блок управления приводами, блок связи с ИП; модуль адаптивного управления; интерфейсы и устройства: БОСИ, ФСУ, ПЛ, ПУ; блок умножения и преобразования кодов; пульт коррекций (ПК); интерфейс связи с ЭВМ верхнего уровня. Указанные блоки в зависимости от конфигурации УЧПУ комплектуются соответствующими модулями. По схемно-структурной организации устройство 2С42 - комбинированное (контурно-позиционное) УЧПУ типа CNC со свободным программированием алгоритмов управления и возможностью адаптивного управления. МЭВМ, используемая в УЧПУ, в совокупности с необходимым математическим обеспечением реализует заданный состав алгоритмов управления, включая обслуживание устройств ввода-вывода, вычисление траекторий и скоростей перемещения подвижных органов станка, выдачу управляющих последовательностей команд выполнения стандартных и типовых технологических циклов, решение задач редактирования управляющих программ. УЧПУ имеет функционально-модульный принцип построения, т.е. все функциональные блоки устройства выполнены в виде законченных модулей. Основой модуля мЭВМ является центральный процессор (ЦП). Связь между модулями осуществляется через каналы обмена информацией. На рис. 4.1 представлена структурная схема УЧПУ. В устройстве присутствует две магистрали: мЭВМ «Электроника-60М» и УЧПУ. Связь между двумя модулями УЧПУ, подключёнными к магистрали, осуществляется по принципу "управляющий - управляемый" (активный-пассивный). В любой момент времени только один модуль является активным (при управлении ТО этим модулем является ЦП). Активный модуль управляет циклами обращения к каналу, а пассивный модуль является только исполнителем. Он может принимать или передавать информацию под управлением активного модуля. Связь через канал замкнута, т.е. на управляющий сигнал, передаваемый активным модулем, должен поступать ответный сигнал от пассивного модуля. Асинхронное выполнение операции передачи данных устраняет необходимость в тактовых импульсах. В результате, обмен с каждым модулем может происходить с максимально возможным для данного модуля быстродействием. Центральный процессор УЧПУ управляет распределением времени использования канала внешними блоками и выполняет все необходимые арифметико-логические операции для обработки информации. Пульт управления позволяет вести редактирование программы, задавать режимы работы устройства, производить ручной ввод данных, вести диалог с устройством и т.д. Блоки связи с ТО: - блок входных сигналов от станка; - блок выходных сигналов на станок; - блок управления приводами; - модуль адаптивного управления; - блок связи с датчиками. Блок входных и выходных сигналов обеспечивает бесконтактную выдачу сигналов на станок и бесконтактный прием сигналов от станка. Блок управления приводами предназначен для выдачи аналоговых управляющих сигналов напряжением 10 В на следящие привода координат и привод главного движения. Каждый канал состоит из 2 ЦАП, один из которых преобразует код ошибки по пути, а другой предназначен для преобразования кода скоростной компенсации. Рис. 4.1. Структурная схема УЧПУ 2С42 В режиме контурной обработки блок управления приводом осуществляет преобразование кода путевой ошибки и кода скоростной компенсации в напряжение соответствующей полярности и величины, суммирование этих величин и выдачу суммарного сигнала на привод станка. Двухканальный модуль адаптивного управления предназначен для преобразования аналогового сигнала с датчика момента в цифровой код для выполнения оптимального закона управления приводом подач. Блок измерительных преобразователей предназначен для измерения перемещений по координатам. БОСИ предназначен для отображения на электроннолучевой трубке буквенно-цифровой информации текущего кадра управляющей программы и ходе технологического процесса. Блок используется при вводе программы, ее редактировании и т.д. Блок умножения и преобразования кодов (микроинтерполятор) выполняет преобразование 2-10 семиразрядного кода в двоичный код и двоичного кода в 2-10 код и умножение двух 24 - разрядных двоичных чисел. Блок умножения необходим для увеличения производительности системы при расчете траектории движения во время контурной обработки. Блок связи с ФСУ предназначен для считывания информации с перфоленты и ввода ее в устройство. Пульт коррекций позволяет вручную изменять скорость подачи в пределах от 0 до 120 % и скорость главного движения в пределах от 40 до 140 %. Управляющая программа записывается на восьмидорожечной перфоленте шириной 25,4 мм. Устройство числового программного управления МС2101 Устройство числового программного управления (УЧПУ) МС2101 относится к мультимикропроцессорным УЧПУ класса CNC распределённого управления с последовательным обменом информации между блоками. В зависимости от состава управляемого оборудования УЧПУ может комплектоваться различным количеством блоков, которые объединяются в локальную сеть по схеме кольцо, звезда или комбинированной. Минимальный состав УЧПУ состоит из дисплейно-пультового и управляющего блоков. УЧПУ "МС 2101.05-02" предназначено для оперативного управления станками токарной группы, оборудованными следящими приводами. УЧПУ является устройством контурного управления типа CNC. Устройство и работа УЧПУ В состав УЧПУ "МС 2101.05-02" входят блоки дисплейно-пультовый (микроЭВМ "Электроника 12401.3") и управляющий (микроЭВМ "Электроника НМС 12402.2"). МикроЭВМ "Электроника НМС 12401.3" является основной микроЭВМ и осуществляет координацию работы всех составных частей УЧПУ. Структурная схема микроЭВМ приведена на рис. 4.2. В состав микроЭВМ "Электроника НМС 12401.3" входят: вычислитель (ВЧС), универсальный контроллер, контроллер кассеты и кассета ЦМД, видеомонитор и пульт управления. ВЧС является основным процессорным модулем и входит также в состав микроЭВМ "Электроника НМС 12402.2". Вычислитель предназначен для выполнения программ функционального, тестового и другого математического обеспечения. ВЧС осуществляет приём, обработку, хранение и выдачу информации на другие устройства УЧПУ. В состав вычислителя входят: модуль процессорный, ПЗУ, ОЗУ и модуль телеграфных каналов (МТК) обмена информацией. Процессор выполнен на основе БИС К1801ВМ1Г. Рис. 4.2. Структура микроЭВМ "Электроника НМС 12401.3" Модуль телеграфных каналов предназначен для организации обмена по трём телеграфным каналам и выполнен на БИС КР1801ВП1-065. БИС является контроллером внешних устройств, работающих на линию связи с последовательной передачей информации в дуплексном режиме, и предназначена для преобразования параллельной информации в последовательную и наоборот. Модуль позволяет объединять микроЭВМ в различные распределённые микропроцессорные структуры типа кольцо, радиальная, радиально-кольцевая и т.д. Универсальный контроллер выполнен как многоканальный интерфейс радиальный параллельный модернизированный (ИРПМ) и предназначен для программного управления видеомонитором, пультом управления (клавиатурой), фотосчитывающим устройством (ФСУ), перфоратором ленточным (ПЛ). Контроллер кассеты содержит в своём составе энергонезависимое запоминающее устройство на основе цилиндрических магнитных доменов (ЦМД) ёмкостью 32Кбайта (18 Кбайт доступно потребителю) и контроллер дополнительной кассеты энергонезависимой памяти (кассета ЦМД) ёмкостью 32 Кбайта. Кассета ЦМД, подключаемая к контроллеру кассеты, используется для долговременного хранения библиотеки управляющих программ. МикроЭВМ "Электроника НМС 12402.2" является исполнительной и осуществляет управление приводами и цикловой автоматикой станка. Структурная схема микроЭВМ приведена на рис. 4.3. В состав данной микроЭВМ входят: вычислитель, который аналогичен ВЧС микроЭВМ "Электроника 12401.3", модуль управления приводами и два модуля цикловой автоматики. Модуль управления приводами предназначен для формирования и выдачи сигналов управления следящими приводами координатных перемещений и приводом главного движения (БУП), а также приёма сигналов с фотоэлектрических импульсных датчиков (ИП) (преобразователей координатных перемещений), датчика скорости вращения шпинделя и датчика оперативного управления. Модуль цикловой автоматики предназначен для формирования сигналов ТК управления электроавтоматикой (32 выхода) и приёма сигналов состояния электроавтоматики управляемого оборудования (64 входа). При необходимости получения адаптивной системы управления один из модулей цикловой автоматики заменяется на модуль адаптивного управления. Рис. 4.3. Структура управляющей микроЭВМ "Электроника НМС 12401.2" 4.3. Система управления РБ 242 СУ относится к мультимикропроцессорным системам централизованного управления с параллельным обменом информации. СУ РБ242Б (позиционная) построена на основе модулей и унифицированных узлов и деталей и предназначена для управления роботами, работающими в сферической системе координат. Тип управления ”от точки к точке” с последовательным движением по осям. Объем программной памяти позволяет записать до 300 точек позиционирования и ввести 99 программ с длиной до 999 шагов, причем общее число шагов во всех программах 2000. СУ позволяет записывать и хранить программы на гибких магнитных дисках. Система обеспечивает связь с внешним ТО посредством 16 релейных выходов и 20 цифровых входов. Система управления представляет собой многопроцессорную систему управления с двумя уровнями (рис. 4.4). СУ имеет два уровня управления. Верхний уровень (уровень 1) осуществляет основную информационную обработку, контроль состояния СУ и связей с манипулятором и ТО. С точки зрения технической реализации он представляет собой модульную микропроцессорную систему, включающую ПЗУ, ОЗУ(CMOS – память), 2-канальный сервисный интерфейс (ИРПС), память с двойным доступом (ПДП) и модули цифровых входов и выходов. Объём ПЗУ составляет 32 К. ОЗУ – разделена на области: одна часть используется в качестве ОЗУ, а в остальной части сохраняются программы, координаты точек, таблицы. Посредством двух сервисных каналов обеспечивается связь с пультом ручного обучения (ПРО) и внешним запоминающим устройством (ВЗУ - НГМД) либо ЭВМ верхнего уровня. Память с двойным доступом служит для обмена информацией между уровнями 1 и 2. Её объем составляет1 Кбайт. Уровень 2 представляет собой автономную микропроцессорную систему, замыкающую контур управления по пути по отдельным осям координат. Задание управления передается с уровня 1 через память с ПДД. С уровня 2 через ПДД передается информация о достижении нулевой позиции, об аварийных ошибках во время движения и о текущем положении отдельных звеньев манипулятора. Пульт управления (ПУ). ПУ расположен на лицевой стороне устройства. С ПУ осуществляется включение и выключение устройства, установка режимов работы: ручное управление или автоматическое управление; режим восстановления после аварийной остановки; индикация установки в нулевое положение, аварии и работы. Пульт ручного обучения (ПРО). На нем расположены: функциональные кнопки - 31 шт., кнопка «Аварийный стоп», 25 индикаторов (светодиодов), двухрядная цифровая индикация (цифровое табло). СУ работает в 4 основных режимах «Обучение и редактирование», «Воспроизведение», «Диагностика», «Работа с ВЗУ». 4.4. СУ «СФЕРА-36» На рис. 4.5 приведена структурная схема контурно-позиционной СУ «СФЕРА-36», предназначенной для управления манипуляторами с 6 степенями подвижности. СУ построена по иерархическому принципу с явно выраженными двумя уровнями управления. Верхний уровень управления (ВУУ) предназначен для решения следующих задач: - планирование траектории движения схвата многозвенного манипулятора и формирование программ движения отдельных степеней подвижности; - логической обработки информации, характеризующей состояние манипулятора и прочих устройств, входящих в состав роботизированного комплекса, направленной на взаимную координацию их работы; - обеспечение диалогового режима работы оператора с СУ через стандартные терминальные устройства (дисплей и клавиатура выносного пульта) в процессе формирования УП методом прямого обучения; - записи/чтения и хранения программ пользователя на НГМД; - обмена информацией с внешней ЭВМ верхнего уровня; - ввода и вывода программ пользователя через фотосчитывающее устройство (ФСУ) и перфоратор ленточный (ПЛ); - калибровки местоположения звеньев манипулятора (фиксация нулевых позиций) через модуль ввода аналоговых сигналов (МВАС); - диагностического тестирования, направленного на оценку работоспособности системы и локализацию мест неисправностей. Аппаратные средства ВУУ функционально и конструктивно оформлены в виде модулей: центрального процессора (ЦП), ОЗУ, ПЗУ, радиального последовательного интерфейса (ИРПС), связи с НУУ, ввода/вывода технологических команд (МВВТК); МВАС, объединенных единой магистралью МВУУ. МВУУ идентична магистрали микроЭВМ «Электроника 60». Модуль ЦП предназначен для обработки цифровой и логической информации по алгоритмам решения всех задач ВУУ. Он выполнен на основе однокристального 16-разрядного процессора К1801ВМ1. Модуль ПЗУ предназначен для хранения операционной системы (4К слов) и 4 банков данных (по 4К слов каждый). Модуль ОЗУ предназначен для временного хранения команд и операндов (8К слов) и УП пользователя (12К слов) во время работы УЧПУ. Модуль ИРПС предназначен для подключения периферийных устройств, работающих с последовательным кодом в стандарте ЕIA RS 423, к магистрали ВУУ. Он имеет 5 асинхронных каналов приёма/передачи информации со скоростью до 9,6 Кбод. МВВТК обеспечивает двухстороннюю (гальванически развязанную) связь СУ с электроавтоматикой внешнего технологического оборудования. Количество двухуровневых сигналов: входных - 32; выходных - 32. МВАС - это 6-канальный АЦП, преобразующий сигналы постоянного тока с аналоговых датчиков в двоичные коды и используется для установки звеньев манипулятора в нулевые позиции. Рис. 4.5. Структурная схема ПР с СУ «СФЕРА-36» Модуль связи предназначен для организации обмена информацией между верхним и нижним уровнями управления. Он может работать в трёх режимах: программном, реализуемом по инициативе и под управлением ЦП; прямого доступа к памяти процессоров приводов (МП1...МП6) по инициативе ЦП и к ОЗУ по инициативе МП1...МП6; прерывания ЦП по запросам МП1...МП6. Нижний уровень управления (НУУ) предназначен для решения задачи регулирования параметров движения (положение, скорость) звеньев манипулятора в соответствии с программами, формируемыми на ВУУ. Аппаратные средства НУУ функционально и конструктивно оформлены в виде модулей МП1...МП6 - процессоров приводов; УПр1...Упр6 - модулей управления приводами, преобразующих входные и выходные сигналы следящих приводов; ШИП1...ШИП6 - широтно-импульсных преобразователей, формирующих мощные сигналы для непосредственного управления электродвигателями. Все процессоры приводов объединены между собой и с модулем связи общей магистралью МНУУ аналогичной магистрали микроЭВМ «Электроника 60». Кроме того каждый процессор связан локальной шиной со своим модулем управления приводом (УПр1...УПр6). Процессоры МП1...МП6 предназначены для обработки информации и используются в качестве терминальных вычислительно-управляющих средств НУУ. Все они идентичны, построены на базе МПК серии К1801. Их основные функции: формирование задающих воздействий на приводы степеней подвижности; реализация алгоритмов двухконтурных следящих систем подчинённого регулирования параметров (П-, ПИ-, ПИД - регуляторов); формирование управляющих воздействий на УПр1...УПр6 в двоичном коде. Функции модулей УПр1...УПр6 сводятся к преобразованию импульсных сигналов с фотодатчиков перемещений в двоично-кодовые приращения пути (со знаком); двоично-кодовых управляющих воздействий в широтно-модулированные биполярные импульсные сигналы с частотой 5,0 КГц. ШИП1...ШИП6 - это импульсные мостовые усилители мощности, в одну из диагоналей которых включаются якоря электродвигателей постоянного тока с номинальной мощностью до 200 Вт. Формирование УП осуществляется методом обучения с широким использованием элементов аналитического программирования. Перед использованием УП транслируется в режиме MONITOR в машинные коды и оформляется как загрузочный модуль, который размещается в ОЗУ (12К слов). Применение 7 процессоров позволило существенно уменьшить дефицит информационной производительности СУ, а также дало возможность практически полностью нейтрализовать отрицательный эффект квантования управлений и тем самым повысить добротность следящих приводов. 5. Микроконтроллер КМ1816ВЕ51 Микроконтроллер выполнен на основе высокоуровневой n-МОП технологии с CISC архитектурой [3]. Основу структурной схемы МК51 (рис. 5.1) образует внутренняя двунаправленная 8-битная шина, которая соединяет между собой все основные узлы и устройства: резидентную память, АЛУ, блок регистров специальных функций, устройство управления и порты ввода/вывода. На схеме обозначены регистры: РУМ- регистр управления мощностью, РРТС- регистр режима таймера/счетчика, РУСТ- регистр управления /статуса таймера, РУПП- регистр управления приемопередатчиком, РМП- регистр маски прерывания, РП- регистр приоритетов, В - регистр расширитель арифметических операций, ССП- регистр слова состояния программы, РУС- регистр указатель стека, РУД- регистр указатель данных, СК- счетчик команд; сигналы: РВПП - разрешение внешней памяти программ, САВП - строб адреса внешней памяти, “Прог” - программирование, ОРПП - отключение резидентной памяти данных (РПД), ДП - данные принять, СБР - сброс, АП - аварийное питание. АЛУ - арифметическое логическое устройство АЛУ представляет собой параллельное 8-битное устройство, предназначенное для выполнения арифметических операций сложения, вычитания, умножения и деления; логических операции И, ИЛИ, исключающее ИЛИ, инвертирования, а также операций циклического сдвига, сброса. АЛУ состоит из регистра аккумулятора, двух программно-недоступных регистров Т1 и Т2, предназначенных для временного хранения операндов, сумматора, дополнительного регистра В, регистра слова состояния программы (ССП), схемы десятичной коррекции и схемы формирования признаков. Важной особенностью АЛУ является его способность оперировать не только байтами, но и битами. Отдельные программно-доступные биты могут быть установлены, сброшены, инвертированы, переданы, проверены и использованы в логических операциях. Таким образом, АЛУ может оперировать четырьмя типами информационных объектов: булевскими (1 бит), цифровыми (4 бита), байтными (8 бит) и адресными (16 бит). В АЛУ выполняется 51 различная операция пересылки или преобразования этих данных. Аккумулятор является источником операнда и местом фиксации результата при выполнении арифметических, логических операций и ряда операций передачи данных. Кроме того, только с использованием аккумулятора могут быть выполнены операции сдвигов, проверка на нуль, формирование флага приоритета и т.п. При выполнении многих команд в АЛУ формируется ряд признаков операций (флагов), которые фиксируются в регистре ССП (табл. 5.1). Процессор МК51 выполняет некоторые команды без аккумулятора. Схема возможных путей пересылки данных в МК51 показана на рис. 5.2. Устройство управления и синхронизации Кварцевый резонатор, подключаемый к внешним выводам X1 и X2, управляет работой генератора, который формирует сигналы синхронизации. Устройство управления МК51 на основе сигналов синхронизации формирует машинный цикл фиксированной длительности, равный 12 периодам резонатора или 6 состояниям первичного управляющего автомата (S1-S6). Каждое состояние управляющего автомата содержит две фазы (P1, P2) сигналов резонатора. В фазе Р1, как правило, выполняются операции в АЛУ, а в фазе Р2 осуществляется межрегистровая передача. Весь машинный цикл состоит из 12 фаз, начиная с фазы S1P1 и кончая фазой S6P2. Большинство команд МК51 выполняет за один машинный цикл. Некоторые команды, оперирующие с 2-байтными словами или связанные с обращением к внешней памяти, выполняются за два машинных цикла. Только команды деления и умножения требуют четырех машинных циклов. Рис. 5.1. Структурная схема К1816ВЕ51 Память МК и программно доступные ресурсы В архитектуре МК51 память программ и память данных разделены. Каждая из них имеет размер 64 Кбайт, выбор одной из двух матриц памяти осуществляется сигналами PSEN, /RD, /WR. Организация памяти в микроконтроллере иллюстрируется рис. 5.3. Рис. 5.2. Схема путей передачи данных в МК51 Таблица 5.1. Формат регистра слова состояния программы (ССП) Символ Позиция Наименование и назначение флага C PSW.7 Флаг переноса. Устанавливается и сбрасывается аппаратными средствами или программой при выполнении арифметических и логических операций. AC PSW.6 Флаг вспомогательного переноса. Устанавливается и сбрасывается аппаратно при выполнении команд сложения или вычитания и сигнализирует о переносе или заёме в бите 3. F0 PSW.5 Флаг 0 может быть установлен, сброшен или проверен программой как флаг, специализируемый пользователем. RS1 RS0 PSW.4 PSW.3 Выбор банка регистров. Биты устанавливаются и сбрасываются программой для выбора рабочего банка регистров. RS1 RS0 Банк Границы адресов 0 0 0 00Н-07Н 0 1 1 08Н-0FH 1 0 2 10H-17H 1 1 3 18H-1FH OV PSW.2 Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций. - PSW.1 Не используется. P PSW.0 Флаг паритета. Устанавливается и сбрасывается аппаратно в каждом цикле команды и фиксирует нечетное /четное число единичных бит в аккумуляторе. Рис. 5.3. Организация памяти микроконтроллера Память программ может быть целиком внешней (сигнал EA=0), либо при обращении по младшим 4 К адресов код извлекается из ячеек внутренней памяти микроконтроллера, а содержимое старших 60 К берется из внешней памяти системы (сигнал ЕА=1). Некоторые микроконтроллеры имеют бит секретности, предназначенный для защиты внутренней памяти программ от доступа извне. Значение этого бита программируется один раз, очищен он может быть только при полном стирании всей внутренней памяти программ. При установленном бите секретности запрещается не только чтение внутренней памяти из вне, но и ее допрограммирование, а также обращение к внешней памяти программ. Память данных делится на внешнюю и внутреннюю, каждая из них имеет свое пространство адресов. В архитектуре MК51 адреса внутренней памяти данных объединяют все внутренние программно доступные ресурсы. Это пространство размером 256 байт в свою очередь делится на пространство адресов внутреннего ОЗУ (резидентная память данных - РПД) размером 128 байт (табл. 5.2) и пространство адресов регистров специальных функций (табл. 5.3). Ячейки РПД занимают младшие адреса внутренней памяти данных с 00H по 7FH. Младшие 32 адреса занимают четыре регистровых банка, каждый из которых содержит по восемь регистров общего назначения R0-R7. Текущий банк определяется значением битов RS0, RS1 регистра PSW. Таким образом, младшие 32 ячейки ОЗУ, кроме адресов, имеют имена. Ячейки с адресами в диапазоне 32÷48 имеют прямоадресуемые биты. Адреса битов этой части в ОЗУ находятся в диапазоне 00H÷7FH. Таблица 5.2 Структура внутреннего ОЗУ (РПД) Операции с ячейками РПД Адреса РПД Биты в ячейках памяти D7 D6 D5 D4 D3 D2 D1 D0 Чтение/запись ячеек 30H ÷ 7FH (80 ячеек) 7FH* … 30H … Чтение/запись ячеек 20H ÷ 2FH (16 ячеек), либо установка/сброс бит 0H ÷ 7FH (128 бит) 2FH 7F 7E 7D 7C 7B 7A 79 78 2EH 77 76 75 74 73 72 71 70 2DH 6F 6E 6D 6C 6B 6A 69 68 2CH 67 66 65 64 63 62 61 60 2BH 5F 5E 5D 5C 5B 5A 59 58 2AH 57 56 55 54 53 52 51 50 29H 4F 4E 4D 4C 4B 4A 49 48 28H 47 46 45 44 43 42 41 40 27H 3F 3E 3D 3C 3B 3A 39 38 26H 37 36 35 34 33 32 31 30 25H 2F 2E 2D 2C 2B 2A 29 28 24H 27 26 25 24 23 22 21 20 23H 1F 1E 1D 1C 1B 1A 19 18 22H 17 16 15 14 13 12 11 10 21H 0F 0E 0D 0C 0B 0A 09 08 20H 07 06 05 04 03 02 01 00 Чтение/запись регистров R0 ÷ R7 с выбором банка, либо ячеек 0H ÷ 1FH (32 ячейки) 1FH … 18H R7 Банк3 … R0 17H … 10H R7 Банк2 … R0 0FH … 08H R7 Банк 1 … R0 07H … 00H R7 Банк 0 … R0 * Н – шестнадцатеричная форма представления адресов. В табл. 5.3 показана область регистров специальных функций. В нее включены все программно доступные регистры (управления и данных) внутренних блоков ввода вывода. Все регистры имеют как символические имена, так и адреса в качестве ячеек внутренней памяти. Часть регистров содержит прямо адресуемые биты. Адреса битов находятся в диапазоне 80H÷F7H. Таблица 5.3. Регистры специальных функций Адрес Прямоадресуемые биты (двойная строка содержит: в числителе - наименование бита, а в знаменателе его адрес) Обозначение регистра Состояние после сброса 0FFH 0F0H F7 F6 F5 F4 F3 F2 F1 F0 B 00H 0E0H E7 E6 E5 E4 E3 E2 E1 E0 ACC 00H 0D0H CYD7 ACD6 F0 D5 RS1 D4 RS0 D3 OV D2 - P D0 PSW (ССП) 00H 0B8H - - PT2 BD PS BC PT1 BB PX1 BA PT0 B9 PX0 B8 IP (РП) xx000000B* 0B0H B7 B6 B5 B4 B3 B2 B1 B0 P3 FFH 0A8H EA AF - ET2 AD ES AC ET1 AB EX1 AA ET0 A9 EX0 A8 IE (РМП) 0x000000B 0A0H A7 A6 A5 A4 A3 A2 A1 A0 P2 FFH 99H SBUF xxxxxxxxB 98H SM0 9F SM1 9E SM2 9D REN 9C TB8 9B RB8 9A T1 99 R1 98 SCON (РУПП) 00H 90H 97 96 95 94 93 92 91 90 P1 FFH 8DH TH1 00H 8CH TH0 00H 8BH TL1 00H 8AH TL0 00H 89H GATE1 - C/T1 - M1.1 - M0.1 - GETE0 - C/T0 - M1.0 - M0.0 - TMOD (РРТС) 00H 88H TF1 8F TR1 8E TF0 8D TR0 8C IE1 8B IT1 8A IE0 89 IT0 88 TCON (РУСТ) 00H 87H SMOD - - - - GF1 - GF0 - PD - IDL - PCON (РУМ) 00xx0000B 83H DPH 00H 82H DPL 00H 81H SP (РУС) 07H 80H 87 86 85 84 83 82 81 80 P0 FFH * В – двоичная форма представления чисел. Порты ввода/вывода информации Все четыре порта МК51 предназначены для ввода или вывода информации. Каждый порт содержит управляемые регистр-защелку, входной буфер и выходной драйвер. Выходные драйверы портов 0 (Р0) и 2 (Р2), а также входной буфер (Р0) используются при обращении к внешней памяти (ВПП и ВПД). При этом через Р0 в режиме временного мультиплексирования сначала выводится младший байт адреса ВП, а затем выдается или принимается байт данных. Через Р2 выводится старший байт адреса в тех случаях, когда разрядность адреса равна 16 бит. Все выводы порта 3 могут быть использованы для реализации альтернативных функций (табл. 5.4). Выполнение альтернативных функций имеет более высокий приоритет, чем функции ввода/вывода. Порт 0 является двунаправленным, а Р1, Р2 и Р3 квазидвунаправленными. Каждая линия портов может быть использована независимо для ввода или вывода информации. Для того чтобы некоторая линия портов Р1, Р2 или Р3 использовалась для ввода, в D-триггеры регистра-защёлки порта должна быть записана 1, которая закрывает МОП-транзистор выходной цепи. Нагрузочная способность порта Р0 равна двум ТТЛ входам, а портов Р1, Р2 и Р3 – один ТТЛ вход. По сигналу СБР в регистры-защёлки всех портов автоматически записываются единицы, настраивая их тем самым на режим ввода. Обращение к портам ввода/вывода возможно с использованием команд, оперирующих с байтом, отдельным битом и произвольной комбинацией бит. Таблица 5.4. Символ Позиция Наименование и назначение альтернативной функции /RD P3.7 Чтение Активный сигнал низкого уровня форматируется аппаратно при обращении к ВПД. /WR P3.6 Запись T1 P3.5 Вход таймера / счетчика 1 или тест – вход. T0 P3.4 Вход таймера / счетчика 0 или тест – вход. /INT1 P3.3 Вход запроса прерывания 1. Воспринимается сигнал низкого уровня или срез. /INT0 P3.2 Вход запроса прерывания 0. TXD P3.1 Выход последовательного порта в режиме УАПП. Выход сигнала синхронизации в режиме сдвигающего регистра. RXD P3.0 Вход приемника последовательного порта в режиме УАПП. Ввод/вывод данных в режиме сдвигающего регистра. Таймеры/счётчики Два программируемых 16-битных таймера/счётчика (Т/С0 и Т/С1) могут быть использованы в качестве таймеров или счётчиков внешних событий. При работе в качестве таймера содержимое Т/С инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов резонатора. При работе в качестве счётчика содержимое Т/С инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала подаваемого на соответствующий (Т0, Т1) вывод МК51. Опрос значения внешнего входного сигнала выполняется в момент времени S5Р2 каждого машинного цикла. Содержимое счетчика будет увеличено на 1 в том случае, если в предыдущем цикле был считан входной сигнал 1, а в следующем - сигнал 0. Новое (инкрементированное) значение счётчика будет сформировано в момент S3Р1 в цикле, следующем за тем, в котором был обнаружен переход сигнала из 1 в 0. Так как на распознавание требуется два машинных цикла, то максимальная частота пересчета входных сигналов равна 1/24 частоты резонатора. На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входного считываемого сигнала он должен удерживать значение «1» как минимум в течение одного машинного цикла МК51. Для управления режимами работы Т/С и для организации взаимодействия таймеров с системой прерывания используются два регистра специальных функций (РРТС и РУСТ). РРТС - определяет включение и выключение T/C, а также их режимы работы. РУСТ - управляет прерываниями от таймера при переполнении и содержит биты запуска. Используются четыре режима работы Т/С. Режим 0. Перевод любого Т/С в режим 0 делает из него 13-разрядный счётчик делитель TL=5 и TH=8. Режим 1. Также как режим 0 с разрядностью 16 бит. Режим 2. В данном режиме переполнение 8-битного счётчика TL1 приводит к установке флага TF1 и автоматической перезагрузке в TL1 содержимого старшего байта ТН1 таймерного регистра, которое предварительно было задано программным путем. Т/С0 и Т/С1 работают одинаково. Режим 3. В режиме 3 Т/С1 сохраняет неизменным своё состояние. Т/С0-TL0 и ТН0 функционируют как два независимых 8-битных счетчика. Можно считать, что в режиме 3 МК51 имеет в своем составе три таймера/счётчика. В том случае, если Т/С0 используется в режиме 3, Т/С1 может или включен, или выключен, или переведён в свой собственный режим 3, или может быть использован последовательным портом в качестве генератора частоты передачи. Последовательный порт Через универсальный асинхронный приёмопередатчик (УАПП) осуществляется прием и передача информации, представленной последовательным кодом (младшими битами вперёд), в полном дуплексном режиме обмена. В состав УАПП (последовательного порта) входят принимающий и передающий сдвигающие регистры, а также специальный буферный регистр (SBUF) приёмопередатчика. Запись байта в буфер приводит к автоматической переписи байта в сдвигающий регистр передатчика и инициирует начало передачи байта. Наличие буферного регистра приёмника позволяет совмещать операцию чтения ранее принятого байта с приёмом очередного байта. Если к моменту окончания приёма байта предыдущий байт не был считан из SBUF, то он будет потерян. Адрес SBUF один. УАПП может работать в четырёх режимах. Режим 0 (синхронный обмен). В этом режиме информация (8-бит) передаётся и принимается через внешний вывод входа приёмника (RXD). Через TXD выдаются импульсы сдвига (синхронизации), которые сопровождают каждый бит. Частота передачи f0 зависит только от частоты кварцевого резонатора fрез и равна f0=fрез/12. За один машинный цикл UART передаёт один бит информации. Режим 1(асинхронный обмен). В данном режиме передаются через TXD или принимаются из RXD 10 бит информации: старт-бит (0), 8 бит данных и стоп-бит (1). Скорость приёма/передачи - величина переменная и задаётся T/C1. Режим 2 (асинхронный обмен). В этом режиме через TXD передаются или из RXD принимаются 11 бит информации: старт-бит (0), 8 бит данных, программируемый девятый бит и стоп-бит (1). Частота передачи f2 задаётся битом SMOD. При SMOD=0 частота передачи f2=(1/64)fрез, а при SMOD=1 равна f2=(1/32)fрез. Режим 3 (асинхронный обмен). Режим 3 совпадает с режимом 2, только частота приёма/передачи задаётся T/C1. В режимах 1 и 3 в формировании частоты передачи кроме управляющего бита SMOD принимает участие T/C1. При этом частота передачи f1,3 зависит от частоты переполнения fOVT1 T/C1 и определяется следующим образом: f1,3=(2SMOD/32)fOVT1. Прерывание от таймера в этом случае должно быть заблокировано. Сам Т/С1 может работать и как таймер, и как счётчик событий в любом из трёх режимов. Наиболее удобно использовать режим таймера с автоперезагрузкой (старшая тетрада ТMOD=0010В). При этом частота передачи определяется выражением f1,3=(2SMOD/32)(fрез/12)(256-(ТН1)). В табл. 5.5 даётся описание способов настройки Т/С1 для получения типовых частот передачи данных через УАПП. Таблица 5.5. Таблица настройки Т/С1 для управления частотой работы УАПП Частота приема/передачи (BAUD RATE) Частота резонатора, МГц SMOD Таймер/счетчик 1 Разряды TMOD Перезагружаемое число (TH1) С/Т M1 M0 Режим 0 (макс. 1 МГц) 12 х х x x х Режим 2 (макс. 375 кГц) 12 1 х x x х Режимы 1 и 3: 62,5 кГц 12 1 1 0FFH 19,2 кГц 11,059 1 1 0FDH 9,6 кГц 11,059 1 0FDH 4,8 кГц 11,059 1 0FAH 2,4 кГц 11,059 1 0F4H 1,2 кГц 11,059 1 0E8H 137,5 Гц 11,059 1 18H 110 Гц 6 1 72H 110 Гц 12 1 TH1=0FEH TL1=0EBH Система прерываний MК-51 Исходная система прерываний в архитектуре MК-51 включает пять источников – два внешних и три внутренних. Система развивается, с появлением новых типов микроконтроллеров этой серии число источников прерываний постоянно увеличивается и достигло в некоторых пятнадцати. Рассмотрим систему прерываний МК51. Из пяти источников прерываний внешними являются входы /INT0 и /INT1, а внутренними – два счетчика/таймера и последовательный порт. Активные сигналы на входах /INT0, /INT1 устанавливают флаги IE0, IE1 регистра TCON (РУСТ). Таймер 0 и Таймер 1 используют для выработки запросов прерываний РУСТ флаги переполнения TF0, TF1 в регистре управления TCON, а последовательный порт использует для этого два флага - приемника R1 и передатчика T1 в регистре управления SCON (РУПП). Каждый из флагов последовательного порта может вызвать прерывание, а конкретный источник определяет процедура обслуживания посредством опроса. Реакция на любой запрос, разрешенный к обслуживанию в РМП, заключается в передаче управления от текущей программы специальной процедуре обслуживания прерывания данного типа. Осуществляется эта передача посредством команды LCALL, код которой выбирается из памяти, а формируется внутри микроконтроллера. Адрес перехода в архитектуре МК51 соответствует вектору прерывания и фиксирован для каждого источника (табл. 5.6). Таблица 5.6. Векторы системы прерываний Источник прерывания Адрес вектора прерывания Приоритет Внешнее прерывание /INT0 0003Н Высший Таймер /счетчик Т/С0 000ВН Внешнее прерывание /INT1 0013Н Таймер /счетчик Т/С1 001ВН Последовательный порт (UART) 0023Н Низший Из табл. 5.6 видно, что интервал между адресами составляет всего 8 ячеек памяти программ, поэтому по первым четырем адресам может располагаться либо очень короткая процедура, либо команда JMP перехода на область памяти, где находится более длинная процедура обслуживания. По адресу UART места больше. Если по адресам векторов прерываний находятся команды JMP, то имеет место так называемая таблица переходов системы прерываний. Когда запрос прерывания принят на обслуживание, выполняется следующая последовательность действий. Текущая команда выполняется до конца. Затем внутренне формируемая команда LCALL сохраняет текущее значение счетчика команд PC (адрес следующей команды) в стеке. Это позволяет после завершения процедуры обслуживания прерывания вернуться в прерванную программу. Далее эта команда загружает в PC адрес – вектор (табл. 5.6). Сохранение в стеке других регистров микроконтроллера, кроме PC, осуществляется программистом командами PUSH в начале процедуры обслуживания. В конце процедуры должны стоять соответствующие команды выгрузки POP. Этот процесс отдан на усмотрение разработчика, поскольку от объема сохраняемой информации сильно зависит время реакции на прерывание. Процедура обслуживания прерывания завершается командой RETI, которая выгружает из стека адрес возврата и помещает его в РС. Каждый из источников прерываний может быть разрешен или запрещен с использованием соответствующего бита регистра IE (табл. 5.7). Кроме того, в этом регистре есть бит запрета всех прерываний ЕА. При проявлении запросов от нескольких источников очередность их обслуживания определяется с помощью механизма приоритетов прерываний. Таблица 5.7. Регистр РМП (IE) Бит № бита Функция EA IE.7 При EA=0 выполняется запрет запросов от всех источников. IE.6, IE.5 Зарезервированы. ES IE.4 Запрещение запроса от UART имеет место при ES=0. ET1 IE.3 Запрещение запроса от Таймера 1 имеет место при ET1=0. EX1 IE.2 Запрещение запроса по входу /INT1 имеет место при EX1=0. ET0 IE.1 Запрещение запроса от Таймера 0 имеет место при ET0=0. EX0 IE.0 Запрещение запроса по входу /INT0 имеет место при EX0=0. В архитектуре МК51 используется двухступенчатый механизм определения приоритетов. Приоритеты первой ступени имеют два уровня: «высокий» и «низкий», и определяются значениями битов регистра IP (табл. 5.8). При одновременном появлении нескольких запросов одного уровня очередность обслуживания определяется с помощью внутренней процедуры поллинга (последовательного опроса), который производится в порядке фиксированного старшинства источников внутри одного уровня приоритета. Приоритеты прерываний при поллинге Действие механизма приоритетов прерываний (табл. 5.6) заключается в выборе для обслуживания одного из источников при одновременном приходе нескольких запросов, а также в принятии решения о прерывании текущей процедуры обслуживания вновь поступившим запросом. Все источники прерываний проверяются на наличие запроса во время S5P2 каждого машинного цикла. В течение следующего машинного цикла анализируются биты приоритетов регистра IP и выполняется внутренняя процедура поллинга. Таблица 5.8. Регистр приоритетов (IP) Бит № бита Функция - IP.7 Зарезервирован - IP.6 Зарезервирован - IP.5 Зарезервирован PS IP.4 Определяет приоритет последовательного порта PT1 IP.3 Определяет приоритет Таймера 1 PX1 IP.2 Определяет приоритет входа /INT1 PT0 IP.1 Определяет приоритет Таймера 0 PX0 IP.0 Определяет приоритет входа /INT0 Действие механизма приоритетов прерываний заключается в выборе для обслуживания одного из источников при одновременном приходе нескольких запросов, а также в принятии решения о прерывании текущей процедуры обслуживания вновь поступившим запросом. Все источники прерываний проверяются на наличие запроса во время S5P2 каждого машинного цикла. В течение следующего машинного цикла анализируются биты приоритетов регистра IP и выполняется внутренняя процедура поллинга. На основе двухступенчатого анализа выбирается запрос с наиболее высоким приоритетом из поступивших. Если какое либо прерывание уже обслуживается, то его процедуру может прервать только прерывание более высоким приоритетом. Команда RETI в конце процедуры обслуживания очищает флаг своего уровня. В текст процедуры обслуживания любого источника прерывания рекомендуется включать команду сброса флага данного источника. Особенности запросов внешних прерываний По входам /INT0, /INT1 могут приниматься сигналы запросов, активными значениями которых является либо низкий уровень входного сигнала, либо перепад «1» - «0». Тип активного значения определяется битами IT0, IT1 регистра TCON (РУСТ). При ITx = 0 запрос фиксируется по низкому уровню сигнала на соответствующем входе /INTx, а при INTx = 1 по перепаду. Если запрос прерывания формируется перепадом сигнала на входе /INTx, высокий и низкий уровни сигнала должны удерживаться не менее одного машинного цикла каждый. При запросе в виде низкого уровня сигнала активное значение должно удерживаться на входе до начала обработки данного запроса. Далее сигнал должен стать пассивным до завершения процедуры обслуживания. Типовая схема построения СУ на базе МК51 Достаточно часто при разработке систем управления на базе микроконтроллеров возникают проблемы с необходимостью увеличить количество входов/выходов для связи с внешним устройством. В случае если производительность процессора микроконтроллера достаточна для решения поставленной задачи эту проблему можно решить организацией системы шин, к которым и подключаются все необходимые устройства. Кроме достаточной производительности микроконтроллер должен иметь возможность подключения внешней памяти данных. Микроконтроллер МК51 обладает такой возможностью. На рисунке 5.5 представлена типовая схема СУ на базе МК51 с шинной структурой. 6. Микроконтроллер AT90S8515 фирмы Atmel Общие сведения Микроконтроллер AVR AT90S8515 семейства Classic является 8-разрядным микроконтроллером с RISC - архитектурой (рис. 6.1, табл. 6.1). МК имеет электрически стираемую память программ (FLASH), ОЗУ и память данных (EEPROM), а также разнообразные периферийные устройства: сторожевой таймер, два таймер/счетчика, последовательные асинхронный и синхронный порты, четыре 8-разрядных порта ввода/вывода, аналоговый компаратор [4]. Рис. 6.1. Структурная схема микроконтроллера АТ90S8515 Таблица 6.1 Описание выводов МК AT90S8515. В таблице использованы следующие обозначения: I - вход; O - выход; I/O -вход/выход. Обозначение Номер (тип вывода) Описание выводов XTAL1 19 (I) Вход генератора или внешнего тактового сигнала XTAL2 18 (O) Выход генератора 9 (I) Вход сброса. PA0 (AD0) 39 (I/O) АD0 (мультиплексная ША/ШД для внешнего ОЗУ) PA1 (AD1) 38 (I/O) АD1 (мультиплексная ША/ШД для внешнего ОЗУ) PA2 (AD2) 37 (I/O) АD2 (мультиплексная ША/ШД для внешнего ОЗУ) PA3 (AD3) 36 (I/O) АD3 (мультиплексная ША/ШД для внешнего ОЗУ) PA4 (AD4) 35 (I/O) АD4 (мультиплексная ША/ШД для внешнего ОЗУ) PA5 (AD5) 34 (I/O) АD5 (мультиплексная ША/ШД для внешнего ОЗУ) PA6 (AD6) 33 (I/O) АD6 (мультиплексная ША/ШД для внешнего ОЗУ) PA7 (AD7) 32 (I/O) АD7 (мультиплексная ША/ШД для внешнего ОЗУ) PB0 (T0) 1 (I/O) Вход внешнего тактового таймера /счетчика Т0 PB1 (T1) 2 (I/O) Вход внешнего тактового таймера /счетчика Т1 PB2 (AIN0) 3 (I/O) Положительный вход компаратора PB3 (AIN1) 4 (I/O) Отрицательный вывод компаратора PB4 () 5 (I/O) Выбор Slave-устройства на шине SPI PB5 (MOSI) 6 (I/O) Выход (Master) или вход (Slave) данных модуля SPI PB6 (MISO) 7 (I/O) Вход (Master) или выход (Slave) данных модуля SPI PB7 (SCK) 8 (I/O) Выход (Master) или вход (Slave) тактового сигнала SPI PC0 (A8) 21 (I/O) A8 (Старший байт ША для внешнего ОЗУ) PC1 (A9) 22 (I/O) A9 (Старший байт ША для внешнего ОЗУ) PC2 (A10) 23 (I/O) A10 (Старший байт ША для внешнего ОЗУ) PC3 (A11) 24 (I/O) A11 (Старший байт ША для внешнего ОЗУ) PC4 (A12) 25 (I/O) A12 (Старший байт ША для внешнего ОЗУ) PC5 (A13) 26 (I/O) A13 (Старший байт ША для внешнего ОЗУ) PC6 (A14) 27 (I/O) A14 (Старший байт ША для внешнего ОЗУ) PC7 (A15) 28 (I/O) A15 (Старший байт ША для внешнего ОЗУ) PD0 (RXD) 10 (I/O) Вход UART PD1 (TXD) 11 (I/O) Выход UART PD2 (INT0) 12 (I/O) D2 (Вход 0 внешнего прерывания) PD3 (INT1) 13 (I/O) D3 ( Вход 1 внешнего прерывания) PD4 14 (I/O) Разряд 4 порта D PD5 (OC1A) 15 (I/O) Выход А таймера/счетчика Т1(режим сравнения, ШИМ) PD6 () 16 (I/O) Строб записи во внешнее ОЗУ PD7 () 17 (I/O) Строб чтения во внешнее ОЗУ OC1B 29 (O) Выход В таймера/счетчика Т1 (режим сравнения, ШИМ) ICP 31 (I) Вход захвата таймера/счетчика Т1 (режим захвата) ALE 30 (O) Строб адреса внешнего ОЗУ GND 20 Общий вывод VCC 40 Вывод источника питания Организация памяти микроконтроллера Память микроконтроллеров AVR семейства Classic выполнена по Гарвардской архитектуре (рис. 6.2), в которой разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. Причем память данных состоит из трех областей: регистровая память, статическое ОЗУ и память на основе EEPROM. В связи с тем, что регистровая память находится в адресном пространстве ОЗУ, об этих двух областях памяти обычно говорят как об одной. Каждая из областей (ОЗУ и EEPROM) расположена в своем адресном пространстве. Память программ Память программ предназначена для хранения команд, управляющих функционированием микроконтроллера. В памяти программ хранятся также различные константы, не меняющиеся во время работы программы. Память программ в микроконтроллерах семейства Classic представляет собой электрически стираемое ППЗУ (FLASH-ПЗУ). Поскольку все команды занимают в памяти 16 бит (некоторые - 32 бита), память программ имеет 16-разрядную организацию. Для адресации памяти программ используется счетчик команд (РС - Program Counter). Размер счетчика команд составляет от 9 до 12 разрядов в зависимости от объема адресуемой памяти. Память данных Память данных микроконтроллеров семейства Classic разделена на три части: регистровая память, оперативная память (статическое ОЗУ) и энергонезависимое ЭСППЗУ (EEPROM). Регистровая память включает в себя 32 регистра общего назначения (РОН), объединенных в регистровый файл и служебные регистры ввода/вывода (РВВ). Размер регистровой памяти фиксирован и для всех моделей составляет 96 байт, соответственно под РОН отводится 32 байта, а под РВВ - 64 байта. Использование внешнего ОЗУ Микроконтроллер АТ90S8515 имеет возможность подключения внешнего статического ОЗУ объемом до 64 Кбайт. Для разрешения работы с внешним ОЗУ необходимо установить в «1» разряд SRE регистра MCUCR. При этом микроконтроллер начинает сам управлять режимом работы порта A (вход/выход), т.е. содержимое регистра DDRA (регистр направления передачи данных порта A) игнорируется. Для подключения внешнего ОЗУ используются следующие выводы микроконтроллера: • порт A (PA0...PA7) - мультиплексированная шина адреса (младшие 8 разрядов)/шина данных; • порт С (PC0 ... PC7) - шина адреса (старшие 8 разрядов); • ALE- сигнал строба адреса; • (PС7) - сигнал строба чтения; • (PС6) - сигнал строба записи. Рис. 6.2 Структура памяти программ и данных МК AT90S8515 Как показано на рис. 6.3, для подключения внешнего ОЗУ к микроконтроллеру дополнительно потребуется регистр-защёлка. В качестве защёлки можно использовать микросхемы 1533ИР22, 1564ИР22, 1594ИР22 с потенциальным управлением или 1533ИР23 с динамическим управлением. Регистры общего назначения Все регистры общего назначения объединены в файл. Как уже было сказано, в микроконтроллерах AVR все 32 РОН непосредственно доступны АЛУ. Благодаря этому любой РОН может использоваться во всех командах и как операнд источник и как операнд-приемник. Шесть регистров общего назначения R26 -R31 (X, Y, Z) используется в качестве указателей при косвенной адресации памяти данных. Каждый регистр файла имеет свой собственный адрес в пространстве памяти данных. Поэтому к ним можно обращаться как к памяти, несмотря на то, что физически эти регистры не являются ячейками ОЗУ. Рис. 6.3. Схема подключения внешней памяти данных Регистры ввода/вывода Регистры ввода/вывода располагаются в так называемом пространстве ввода/вывода размером 64 байта. Все РВВ можно разделить на две группы: служебные регистры микроконтроллера и регистры, относящиеся к периферийным устройствам (в т.ч. порты ввода/вывода). Размер каждого регистра - 8 разрядов. Так же, как и к РОН, к регистрам ввода/вывода можно обращаться двумя способами: как собственно к регистрам (с помощью команд IN и OUT) и как к ячейкам ОЗУ. В первом случае используются адреса РВВ, принадлежащие пространству ввода/вывода ($00...$3F). Во втором случае адрес РВВ необходимо увеличить на $20 (в таблицах и далее в книге при указании адресов РВВ в скобках указываются соответствующие им адреса ячеек ОЗУ). Каждый бит регистров ввода/вывода с адресами $00…$1F имеет свой адрес, т.е. по отношению к ним можно использовать команды операций с битами. Адреса регистров ввода/вывода AT90S8515 приведены в таблице 6.2. Энергонезависимая память данных Как уже было сказано, микроконтроллеры AVR семейства Classic имеют в своем составе энергонезависимую память (EEPROM). Объем этой памяти в МК AT90S8515 составляет 512 байт. EEPROM-память расположена в своем адресном пространстве и также, как и ОЗУ, организована линейно. Для обращения к EEPROM-памяти используются три регистра: регистр адреса, регистр данных и регистр управления. В регистр адреса загружается адрес ячейки, к которой будет производится обращение. Регистр реализован на двух РВВ - EEARH (старший байт адреса СБ) и EEARL (младший байт адреса). Эти регистры расположены по адресам $1F ($3F) и $1E ($3E) соответственно и доступны как для записи, так и для чтения. Таблица 6.2 Адреса регистров ввода/вывода AT90S8515 Адрес регистра Адрес SRAM Наименование Обозначение бит в регистрах Комментарий 7 6 5 4 3 2 1 $00-$07 $20-$27 Резерв $08 $28 ACSR ACD - ACO ACI ACIE ACIC ACIS1 ACIS0 Управление аналоговым компаратором и регистром статуса $09 $29 UBRR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Регистр скорости UART (бод) $0A $2A UCR RXCIE TXCIE UDRIE RXEN TXEN CHR9 RXB8 TXB8 Регистр управления UART $0B $2B USR RXC TXC UDRE FE OR - - - Регистр статуса UART $0C $2C UDR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Регистр ввода/вывода данных UART $0D $2D SPCR SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0 Регистр управления SPI $0E $2E SPSR SPIF WCOL - - - - - - Регистр статуса SPI $0F $2F SPDR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Регистр ввода/вывода данных SPI $10 $30 PIND PIND7 - - - - - - PIND0 Буфер ввода порта D $11 $31 DDRD DDD7 - - - - - - DDD0 Регистр направления передачи данных, порт D $12 $32 PORTD PORTD7 - - - - - - PORTD0 Регистр данных, порт D $13 $33 PINC PINС7 - - - - - - PINС0 Буфер ввода порта C $14 $34 DDRC DDС7 - - - - - - DDС0 Регистр направления передачи данных, порт C $15 $35 PORTC PORTС7 - - - - - - PORTС0 Регистр данных, порт C $16 $36 PINB PINВ7 - - - - - - PINВ0 Буфер ввода порта B $17 $37 DDRB DDВ7 - - - - - - DDВ0 Регистр направления передачи данных, порт B $18 $38 PORTB PORTВ7 - - - - - - PORTВ0 Регистр данных, порт B $19 $39 PINA PINA7 - - - - - - PINA0 Буфер ввода порта A $1A $3A DDRA DDA7 - - - - - - DDA0 Регистр направления передачи данных, порт A $1B $3B PORTA PORTA7 - - - - - - PORTA0 Регистр данных, порт A $1C $3C EECR - - - - - EEMWE EEWE EERE Регистр управления EEPROM $1D $3D EEDR Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Регистр данных EEPROM $1E $3E EEARL Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 РА мл. байта EEPROM $1F $3F EEARH - - - - - - - EEAR8 РА ст. байта EEPROM $20 $40 Резерв … … $21 $41 WDTCR - - - WDTOE WDE WDP2 WDP1 WDP0 Регистр управления сторожевым таймером (Watchdog) … … Резерв … … $24 $44 ICR1L Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Входной регистр захвата младшего байта T/C1 Окончание табл. 6.2 Адрес регистра Адрес SRAM Наименование Обозначение бит в регистрах Комментарий 7 6 5 4 3 2 1 $25 $45 ICR1H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Входной регистр захвата старшего байта T/C1 … … Резерв … … $28 $48 OCR1BL Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Выходной регистр сравнения “В” Т/С1, младший байт $29 $49 OCR1BH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Выходной регистр сравнения “В” Т/С1, старший байт $2A $4A OCR1AL Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Выходной регистр сравнения “А” Т/С1, младший байт $2B $4B OCR1AH Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Выходной регистр сравнения “А” Т/С1, старший байт $2C $4C TCNT1L Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Таймер/счётчик 1, мл. байт $2D $4D TCNT1H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Таймер/счётчик 1, ст. байт $2E $4E TCCR1B ICNC1 ICES1 - - CTC1 CS12 CS11 CS10 Регистр управления B Т/С1 $2F $4F TCCR1A COM1A1 COM1A0 COM1B1 COM1B0 - - PWM11 WM10 Регистр управления A Т/С1 … … Резерв … … $32 $52 TCNT0 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Таймер/счётчик 0 (8 бит) $33 $53 TCCR0 - - - - - CS02 CS01 CS00 Регистр управления Т/С0 $34 $54 Резерв $35 $55 MCUCR SRE SRW SE SM ISC11 ISC10 ISC01 ISC00 Регистр управления MCU $36 $56 Резерв $37 $57 Резерв $38 $58 TIFR TOV1 OCF1A OCF1B - ICF1 - TOV0 - Регистр флагов прерываний Т/С $39 $59 TIMSK TOIE1 OCIE1A OCIE1B - TICIE1 - TOIE0 - Регистр маски прерываний Т/С $3A $5A GIFR INTF1 INTF0 - - - - - - Общий регистр флагов прерываний $3B $5B GIMSK INT1 INT0 - - - - - - Общий регистр маски прерываний $3C $5C Резерв $3D $5D SPL SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0 МБ указателя стека $3E $5E SPH SP15 SP14 SP13 SP12 SP11 SP10 SP9 SP8 СБ указателя стека $3F $5F SREG I T H S V N Z C Регистр состояния Регистр ввода/вывода, являющийся регистром данных EEPROM-памяти называется EEDR (EEPROM Data Register), и расположен по адресу $1D ($3D). При записи в этот регистр загружаются данные, которые должны быть помещены в EEPROM по адресу, находящемуся в регистре EEAR (регистрах EEARH и EEARL). При чтении в этом регистре находятся данные, считанные из EEPROM по адресу, находящемуся в регистре EEAR (EEARH и EEARL). Регистр управления EECR (EEPROM Control Register) используется для управления доступом к EEPROM-памяти и расположен по адресу $1С ($3С). Порты ввода/вывода Как и любые другие микроконтроллеры, микроконтроллеры AVR семейства Classic имеют порты ввода/вывода. Каждый порт состоит из определенного числа выводов, через которые микроконтроллер может принимать или передавать цифровые сигналы. Конфигурирование каждой линии порта (задание направления передачи данных) может быть произведено программно в любой момент времени. Для линий, сконфигурированных как входные, также имеется возможность подключения внутреннего подтягивающего резистора сопротивлением 35... 120 кОм между входом и проводом питания VDD. Кроме того, если вывод (вход) с подключенным внутренним подтягивающим резистором подключить к общему проводу, он может служить источником тока. Максимальная нагрузочная способность выходных буферов портов ввода/вывода при логическом «0» на выходе составляет 20 мА. Благодаря этому микроконтроллер может непосредственно управлять светодиодными индикаторами. Обращение к портам ввода/вывода Обращение к портам производится через регистры ввода/вывода, причем под каждый порт в адресном пространстве ввода/вывода зарезервировано по 3 адреса. По этим адресам размещаются три регистра: регистр данных порта PORTx, регистр направления данных DDRx и регистр выводов порта PINx. Разряды этих регистров имеют названия: Px7...Px0 - для регистров PORTx, DDx7...DDx0 - для регистров DDRx и PINx7...PINx0 - для регистров PINx. Действительные назва­ния регистров (и их разрядов) получаются подстановкой названия порта вместо символа «x», соответственно для порта A регистры называются PORTA, DDRA, PINA, для порта В - PORTB, DDRB, PINB и т.д. При сбросе микроконтроллера регистры DDRx и PORTx очищаются, а все выводы портов после сброса устанавливаются в третье (высокоимпедансное) состояние. «Регистры» PINx на самом деле регистрами не являются (их можно рассматривать как входные буферы), по этим адресам осуществляется доступ к физическим значениям сигналов на выводах порта. Соответственно, они доступны только для чтения, тогда как регистры PORTx и DDRx доступны и для чтения, и для записи. Конфигурирование портов ввода/вывода Направление передачи данных определяется содержимым регистра DDRx. Если разряд DDxn этого регистра установлен в «1», соответствующий n-й вывод порта является выходом. Если же разряд DDxn этого регистра сброшен в «0», соответствующий вывод порта является входом. Управление подтягивающим резистором осуществляется с помощью регистра данных порта PORTx. Если разряд Pxn регистра PORTx установлен в «1» и соответствующий вывод порта является входом, между этим выводом и проводом питания подключается подтягивающий резистор. Чтобы отключить подтягивающий резистор, необходимо либо сбросить соответствующий разряд регистра PORTx, либо сделать вывод порта выходом. В табл. 6.3 приведены все возможные конфигурации выводов портов ввода/вывода. Таблица. 6.3. Конфигурирование портов ввода/вывода DDxn Pxn Функция вывода Резистор Примечания вход отключен Третье состояние (Hi-Z) 1 вход подключен При подключении вывода к общему проводу он является источником тока 1 выход отключен Выход установлен в «0» 1 1 выход отключен Выход установлен в «1» Примечание: n = 7...0 - номер вывода (разряд порта). Таймеры/счётчики Микроконтроллер AT90S8515 имеет в своем составе два таймера/счетчика общего назначения. Первый таймер (Т0, 8-разрядный), имеющийся во всех моделях, может использоваться только для отсчета и измерения временных интервалов или как счетчик внешних событий. При переполнении счетного регистра таймера генерируется запрос на прерывание. Другой таймер (T1, 16-разрядный). Таймер может генерировать запрос на прерывание не только при переполнении счетного регистра, но и при наступлении ряда других событий. Таймер может использоваться в качестве широтноимпульсного модулятора. Назначение выводов таймеров/счетчиков Каждый таймер/счетчик использует один или более выводов микроконтроллера. Как правило, эти выводы - линии портов ввода/вывода общего назначения, а функции, реализуемые этими выводами при работе совместно с таймерами/счетчиками, являются их альтернативными функциями. При их использовании линии портов ввода/вывода необходимо сконфигурировать в соответствии с их функциональным назначением (вход/выход). Выводы микроконтроллера, относящиеся к таймерам/счетчикам общего назначения, сведены в табл. 6.4. Также в этой таблице приводятся функции этих выводов. Таймер/счетчик Т0 Таймер/счетчик Т0 (8-разрядный) может использоваться для формирования временных интервалов или для подсчета числа внешних событий. Структурная схема таймера/счетчика Т0 приведена на рис. 6.4. Как видно из рисунка, в его состав входят-2 регистра (регистр управления TCCR0 и счетный регистр TCNT0), а также блок управления таймером. Флаг переполнения счетного регистра таймера TOV0 находится в регистре флагов прерываний от таймеров TIFR. Разрешение и запрещение прерываний от таймера осуществляются установкой/сбросом флага TOIE0 регистра TIMSK. Таблица 6.4 Выводы, используемые таймерами/счетчиками Наименование выводов AT90S8515 Описание T0 PB0 Вход внешнего сигнала таймера T0 T1 PB1 Вход внешнего сигнала таймера T1 ICP ICP* Вход захвата таймера T1 OC1 - Выход схемы сравнения таймера T1 OC1A PD5 То же OC1B OC1B* То же TOSC1 - Вход для подключения резонатора TOSC2 - Выход для подключения резонатора * Выделенный вывод микроконтроллера (не линия порта ввода/вывода) Рис. 6.4. Структурная схема таймера/счетчика Т0 Таймер/счетчик Т0 может работать в двух режимах: 1. Режим таймера. В этом режиме на вход таймера/счетчика поступают импульсы тактового сигнала микроконтроллера (непосредственно или через предделитель); 2. Режим счетчика событий. В этом режиме инкремент содержимого счетного регистра производится по активному фронту сигнала на входе Т0 микроконтроллера. Выбор режима работы (источника тактового сигнала), а также запуск и остановка таймера/счетчика осуществляются с помощью разрядов СS02...СS00 регистра управления таймером TCCR0, расположенного по адресу $33 ($53). Соответствие между состоянием этих разрядов и режимом работы таймера/счетчика приведено в табл. 6.5. Остальные разряды регистра доступны только для чтения и содержат «0». Таймер/счетчик Т1 Таймер/счетчик Т1 (16-разрядный) также как и таймер/счетчик Т0, может использоваться для формирования временных интервалов или для подсчета числа внешних событий. Во-вторых, таймер/счетчик Т1 может по внешнему сигналу сохранять свое текущее состояние в отдельном РВВ. В-третьих, он может выполнять определенные действия при равенстве содержимого счетного регистра заданному значению. И наконец, он может работать как широтно-импульсный модулятор. Причем генерация сигнала с ШИМ «вынесена» в отдельный режим работы таймера/счетчика, в котором недоступны остальные функции (кроме генерации прерываний). Таблица 6.5 Выбор источника тактового сигнала для таймера/счетчика Т0 СS02 СS01 СS00 Источник тактового сигнала Таймер/счетчик остановлен 1 СК (тактовый сигнал микроконтроллера) 1 СК/8 1 1 СК/64 1 СК/256 1 1 СК/1024 1 1 Вывод Т0, инкремент счетчика производится по спадающему фронту импульсов 1 1 1 Вывод Т0, инкремент счетчика производится по нарастающему фронту импульсов При записи старшего байта значения в регистр TCNT1H он помещается в регистр ТЕМР. Далее, при записи младшего байта в регистр TCNT1L он объединяется с содержимым регистра ТЕМР и оба байта записываются в регистр TCNT1 одновременно. Из сказанного следует, что для выполнения полного цикла записи в 16-разрядный регистр первым должен быть загружен старший байт (регистр TCNT1H). При чтении регистра TCNT1L (младший байт) содержимое регистра TCNT1H пересылается в регистр ТЕМР. А при последующем чтении регистра TCNT1H возвращается значение, сохраненное в регистре ТЕМР. Следовательно, для выполнения полной операции чтения 16-разрядного регистра первым должен быть прочитан младший байт (регистр TCNT1L). Управление таймером/счетчиком Т1 осуществляется с помощью двух регистров управления TCCR1A и TCCR1B. Формат регистра TCCR1A приведен на рис. 6.5, а регистров TCCR1B и TCCR1 - на рис. 6.6. Рис. 6.5. Формат регистра TCCR1A Сторожевой таймер В составе всех микроконтроллеров семейства имеется сторожевой таймер, который является непременным атрибутом всех современных микроконтроллеров. Этот таймер используется для предотвращения зацикливания программы, т.е. обеспечивает защиту устройств от сбоев. Благодаря сторожевому таймеру можно прервать выполнение зациклившейся программы или выйти из других непредвиденных ситуаций, препятствующих нормальному выполнению программы. а) TCCR1B б) TCCR1 Рис. 6.6. Формат регистров TCCR1B и TCCR1 Сторожевой таймер имеет независимый генератор, поэтому он работает даже во время нахождения микроконтроллера в режиме Power Down. Частота этого генератора зависит от напряжения питания устройства, температуры, технологического разброса. Типовое значение частоты равно 1 МГц при Vсс = 5.0 В и 350 кГц при Vсс = 3.0 В. Если сторожевой таймер включен, то через определенные промежутки времени (при наступлении тайм-аута) выполняется сброс микроконтроллера. Чтобы избежать сброса микроконтроллера при нормальном выполнении программы, сторожевой таймер необходимо регулярно сбрасывать через промежутки времени, меньше его периода. Сброс сторожевого таймера осуществляется командой WDR (Watchdog Reset). Для управления сторожевым таймером предназначен регистр расположенный по адресу $21 ($41). Для включения/выключения сторожевого таймера используются два разряда регистра WDTCR - WDE и WDTOE. Если разряд WDE установлен в «1», сторожевой таймер включен, если сброшен в «0» - выключен. Непосредственно перед включением таймера рекомендуется также выполнять его сброс командой WDR. Чтобы избежать непреднамеренного выключения таймера счетчика, предназначен разряд WDTOE. Дело в том, что выключение сторожевого таймера (сброс разряда WDE) можно осуществить только при установленном разряде WDTOE. Причем через 4 машинных цикла после установки в «1» этот разряд аппаратно сбрасывается, благодаря чему практически исчезает возможность случайного выключения сторожевого таймера. Исходя из сказанного, для выключения сторожевого таймера рекомендуется следующая последовательность действий: 1. Одной командой записать лог. «1» в разряды WDE и WDTOE. 2. В течение следующих четырех машинных циклов записать лог. «0» в разряд WDE. Время контролируемого интервала сторожевого таймера задается с помощью разрядов WDP2…WDP0 регистра WDTCR согласно табл. 6.6. Чтобы избежать непреднамеренного сброса микроконтроллера при изменении периода сторожевого таймера, необходимо перед записью разрядов WDP2: WDP0 либо запретить работу сторожевого таймера, либо сбросить его. Таблица 6.6 Задание периода сторожевого таймера WDP2 WDP1 WDP0 Число тактов генератора Контролируемый интервал WDT (типовое значение) Vcc=3.0 В Vcc=5.0 В 16·1024 47 мс 15 мс 1 32·1024 91 мс 30 мс 1 64·1024 0.19 с 60 мс 1 128·1024 0.38 с 0.12 с 1 256·1024 0.75 с 0.24 с 1 1 512·1024 1.5 с 0.49 с 1 1 1024·1024 3.0 с 0.97 с 1 1 1 2048·1024 6.0 с 1.9 с Универсальный асинхронный приемопередатчик Полнодуплексный универсальный асинхронный приемопередатчик (UART) осуществляет прием и передачу информации, представленной последовательным кодом. С помощью этого модуля микроконтроллер может обмениваться данными с различными внешними устройствами. Скорость передачи данных может варьироваться в широких пределах, причем высокие скорости передачи могут быть достигнуты даже при относительно низкой тактовой частоте микроконтроллера. Известно, что при передаче данных могут происходить различные сбои. Модуль UART, реализованный в микроконтроллерах семейства Classic, может обнаруживать и сигнализировать о следующих внештатных ситуациях: переполнение; ошибка кадрирования; неверный старт-бит. Для уменьшения вероятности сбоев в модуле реализована такая полезная функция, как фильтрация помех. Для взаимодействия с программой в модуле предусмотрены 3 раздельных прерывания, запрос на которые генерируется при наступлении следующих событий: «передача завершена», «регистр данных передатчика пуст» и «прием завершен». Выводы микроконтроллера, используемые модулем UART, являются линиями порта D. В качестве входа приемника (RXD) используется вывод PD0, а в качестве передатчика (TXD) - вывод PD1. Управление работой UART Управление работой приемопередатчика осуществляется с помощью регистра управления UCR, расположенного по адресу $0А ($2А). А текущее состояние приемопередатчика определяется с помощью регистра состояния USR, расположенного по адресу $0В ($2В). Принимаемые и передаваемые данные (младшие 8 разрядов) хранятся в регистре данных UDR, который расположен по адресу $0С ($2С). Физически регистр UDR состоит из двух отдельных регистров, один из которых используется для передачи данных, другой - для приема. При чтении регистра UDR выполняется обращение к регистру приемника, при записи - к регистру передатчика. Передача данных Работа передатчика разрешается установкой в «1» разряда TXEN регистра UCR (UCSRB). Если этот разряд сброшен (передатчик выключен), вывод PD1 (TXD) может использоваться как контакт ввода/вывода общего назначения. При установке разряда TXEN этот вывод подключается к передатчику UART и начинает функционировать как выход независимо от состояния разряда DDRD1 регистра DDRD. Передача инициируется записью передаваемых данных в регистр данных UART - UDR. После этого данные пересылаются из регистра UDR в сдвиговый регистр передатчика. При этом возможны два варианта: • новое значение записывается в регистр UDR после того, как был передан стоп-бит предыдущего слова. В этом случае данные пересылаются в сдвиговый регистр сразу же после записи в регистр UDR; • новое значение записывается в регистр UDR во время передачи. В этом случае данные пересылаются в сдвиговый регистр после передачи стоп-бита текущего слова. После пересылки содержимого регистра UDR в сдвиговый регистр флаг UDRE регистра USR (UCSRA) устанавливается в «1», что означает готовность передатчика к получению нового значения. В этом состоянии флаг остается до новой записи в регистр UDR. Одновременно с пересылкой формируется служебная информация: 0-й разряд сдвигового регистра сбрасывается в «0» (старт-бит), а 9-й (10-й) разряд устанавливается в «1» (стоп-бит). Если включен режим передачи 9-разрядных данных (разряд CHR9 регистра UCR (UCSRB) установлен в «1»), то значение разряда ТХВ8 регистра UCR (UCSRB) копируется в 9-й разряд сдвигового регистра. После загрузки сдвигового регистра его содержимое начинает сдвигаться вправо и поступать на вывод TXD в следующем порядке: старт-бит, данные (начиная с младшего разряда), стоп-бит. Сдвиг осуществляется по тактовому сигналу, вырабатываемому контроллером скорости передачи. Если во время передачи в регистр UDR было записано новое значение, то после передачи стоп-бита оно пересылается в сдвиговый регистр. Если же к моменту окончания передачи стоп-бита такой записи выполнено не было, устанавливается флаг завершения передачи ТХС регистра USR (UCSRA). Прием данных Прием данных разрешается установкой разряда RXEN регистра UCR (UCSRB). Если этот разряд сброшен (приемник выключен), вывод PD0 (RXD) может использоваться как контакт ввода/вывода общего назначения. При установке разряда RXEN этот вывод подключается к приемнику UART и начинает функционировать как вход независимо от состояния разряда DDRD0 регистра DDRD. Последовательный периферийный интерфейс SPI Последовательный периферийный интерфейс SPI (Serial Peripheral Interface), реализованный в микроконтроллерах семейства, имеет два назначения. Прежде всего через него может быть осуществлено программирование микроконтроллера (так называемый режим последовательного программирования). Вторым назначением интерфейса является организация высокоскоростного обмена данными между микроконтроллером и различными периферийными устройствами, такими как ЦАП/АЦП, Flash-ПЗУ и др. Посредством этого интерфейса также может производиться обмен данными между несколькими микроконтроллерами AVR. При обмене данными по интерфейсу SPI микроконтроллер AVR может работать как в режиме Master, так и в режиме Slave. При этом пользователь может задать следующие параметры: • скорость передачи (четыре программируемых значения); • формат передачи (от младшего разряда к старшему или наоборот); Дополнительной возможностью подсистемы SPI является «пробуждение» микроконтроллера из режима Idle при поступлении данных. Функционирование модуля SPI Модуль SPI использует четыре вывода микроконтроллера. Как и для большинства прочих периферийных устройств, эти выводы являются линиями порта ввода/вывода общего назначения (табл. 6.7). При включенном модуле SPI режим работы указанных выводов (направление передачи данных) переопределяется согласно табл. 6.8. Как видно из таблицы, в некоторых случаях пользователь должен самостоятельно задать режим работы вывода, используемого модулем SPI, в соответствии с его назначением. Причем возможность управления внутренними подтягивающими резисторами выводов, работающих как входы, сохраняется независимо от способа управления их режимом работы. Таблица. 6.7. Выводы, используемые модулем SPI Вывод AT90S8515 Описание SCK РВ7 Выход (master)/ вход (slave) тактового сигнала MISO РВ6 Вход (master)/выход (slave) данных MOSI РВ5 Выход (master )/вход (slave) данных РВ4 Выбор ведомого устройства Таблица. 6.8 Переназначение режима работы выводов модуля SPI Вывод Режим Master Режим Slave MOSI Определяется пользователем* Вход MISO Вход Определяется пользователем* SCK Определяется пользователем* Вход Определяется пользователем* Вход *- направление передачи данных определяется состоянием соответствующего разряда регистра DDRB. Для управления модулем SPI предназначен регистр управления SPCR, расположенный по адресу $0D ($2D). Формат этого регистра приведен на рис. 6.7, а краткое описание функций разрядов регистра приведено в табл. 6.8. Режимы передачи данных SPI Спецификация интерфейса SPI предусматривает 4 режима передачи данных. Эти режимы различаются соответствием между фазой (момент считывания сигнала) тактового сигнала SCK, его полярностью и передаваемыми данными. Всего существует 4 такие комбинации, определяемые состоянием разрядов СРНА и CPOL регистра SPCR (табл. 6.9). Частота тактового сигнала SCK и, соответственно, скорость передачи данных по интерфейсу определяются состоянием разрядов SPR1: SPR0 регистра SPCR (табл. 6.10) при работе МК, работающего в режиме Master, т.к. именно он является источником тактового сигнала. Для устройства, находящегося в режиме Slave, состояние этих разрядов безразлично. Рис. 6.7. Формат регистра SPCR Аналоговый компаратор Компаратор позволяет сравнивать значения напряжений, присутствующих на двух выводах микроконтроллера. Результатом сравнения является логическое значение, которое может быть прочитано из программы. По результату сравнения может быть сгенерировано прерывание, а также выполнена функция захвата таймера/счетчика Т1. Таблица. 6.9 Задание режима передачи данных Разряд Описание CPOL Полярность тактового сигнала 0 - генерируются импульсы положительной полярности, при отсутствии импульсов на выводе присутствует НИЗКИЙ уровень; 1 - генерируются импульсы отрицательной полярности, при отсутствии импульсов на выводе присутствует ВЫСОКИЙ уровень СРНА Фаза тактового сигнала 0 - обработка данных производится по переднему фронту импульсов сигнала SCK (для CPOL = 0 - по нарастающему, а для CPOL =1 - по спадающему фронту). 1 - обработка производится по заднему фронту импульсов сигнала SCK Таблица 6.10 Задание частоты тактового сигнала SCK SPR1 SPR0 Частота сигнала SCK FCLK /4* 1 FCLK /16 1 FCLK /64 1 1 FCLK /128 *FCLK- тактовая частота микроконтроллера. Используемые компаратором выводы являются контактами портов ввода/вывода общего назначения. Чтобы указанные линии портов ввода/вывода могли использоваться аналоговым компаратором, они должны быть сконфигурированы как входы (соответствующий разряд регистра DDRx установлен в «1»). Кроме того, необходимо отключить внутренние подтягивающие ре­зисторы записью лог. «0» в соответствующий разряд регистра PORTx. Управление компаратором и контроль его состояния осуществляются с помощью регистра ACSR, расположенного по адресу $08 ($28). Формат этого регистра приведен на рис. 6.8. Рис. 6.8. Формат регистра ACSR По своему действию рассматриваемый узел микроконтроллера является обычным компаратором. Если напряжение на выводе AIN0 (неинвертирующий вход) больше напряжения на выводе AIN1 (инвертирующий вход), то результат сравнения будет равен «1». В противном случае результат сравнения будет равен «0». Этот результат (состояние выхода компарато­ра) сохраняется в разряде АСО регистра ACSR. Разряд ACD отвечает за включение и выключение компаратора. При включении напряжения питания все разряды регистра ACSR сбрасываются в «0», поэтому компаратор автоматически включается при подаче напряжения питания на микроконтроллер. Чтобы его выключить, разряд ACD следует установить в «1». При изменении состояния этого разряда необходимо запретить прерывание от компаратора. Прерывания Прерывание прекращает нормальный ход программы для выполнения приоритетной задачи, определяемой внутренним или внешним событием микроконтроллера. При возникновении прерывания микроконтроллер сохраняет в стеке содержимое счетчика команд PC и загружает в него адрес соответствующего вектора прерывания. По этому адресу должна находиться команда относительного перехода к подпрограмме обработки прерывания. Кроме того, последней командой подпрограммы обработки прерывания должна быть команда RETI, которая обеспечивает возврат в основную программу и восстановление предварительно сохранённого счетчика команд. Поскольку источниками прерываний являются различные периферийные устройства микроконтроллеров, количество прерываний зависит от конкретной модели. Таблица векторов прерываний МК AT90S8515 Микроконтроллеры AVR семейства Classic имеют многоуровневую систему приоритетных прерываний. Младшие адреса памяти программ, начиная с адреса $001, отведены под таблицу адресов векторов прерывания (АВП). Каждому прерыванию соответствует свой адрес в этой таблице, и именно этот адрес загружается в счётчик команд при возникновении прерывания. Положение вектора в таблице определяет также и приоритет соответствующего прерывания: чем меньше адрес, тем выше приоритет прерывания. Распределение адресов векторов прерываний (ВП) микроконтроллера AT90S8515 приведено в табл. 6.11. Если в программе прерывания никогда не используются, то на месте таблицы векторов прерываний может быть размещена основная программа. Обработка прерываний Для разрешения прерываний флаг I регистра SREG должен быть установлен в «1». А разрешение или запрещение (маскирование) отдельных прерываний производится установкой или сбросом соответствующих разрядов регистров масок прерываний, рассматриваемых ниже. Обработка прерываний осуществляется следующим образом: • при выполнении условий, необходимых для генерации прерывания, соответствующий этому прерыванию флаг устанавливается в «1», а флаг I аппаратно сбрасывается, запрещая тем самым обработку следующих прерываний. Однако в подпрограмме обработки прерывания этот флаг можно будет установить в «1» для разрешения вложенных прерываний; • если прерывание разрешено (флаг разрешения прерывания установлен), в счётчик команд загружается адрес вектора соответствующего прерывания ($002...$00С). При этом флаг прерывания аппаратно сбрасывается. • выполняется подпрограмма обработки прерывания (команды перехода на соответствующие подпрограммы показаны в табл. 6.12); • выполняется команда возврата из прерывания RETI, при этом флаг I аппаратно устанавливается в «1», разрешая обработку последующих прерываний; • центральный процессор автоматически восстанавливает содержимое счетчика команд. Затем основная программа продолжает свое выполнение с того места, где она была прервана. Таблица 6.11 Адреса векторов прерывания МК АТ90S8515 Источник Описание Адрес ВП Приоритет INT0 Внешнее прерывание 0 $001 Высший INT1 Внешнее прерывание 1 $002 TIMER1 CAPT Захват таймера/счетчика Т1 $003 T1MER1 COMPA Совпадение «А» таймера/счетчика Т1 $004 T1MER1 COMPB Совпадение «В» таймера/счетчика Т1 $005 T1MER1 OVF Переполнение таймера/счетчика Т1 $006 TIMER0 OVF Переполнение таймера/счетчика Т0 $007 SPI, STC Передача по SPI завершена $008 UART, RX UART, прием завершён $009 UART, UDRE Регистр данных UART пуст $00A UART, TX UART, передача зaвершена $00B ANA_COMP Аналоговый компаратор $00C Низший При вызове подпрограмм обработки прерываний содержимое регистра состояния SREG не сохраняется. Поэтому пользователь должен самостоятельно запоминать содержимое этого регистра при входе в подпрограмму обработки прерывания (если это необходимо) и восстанавливать его значение перед вызовом команды RETI. Для прерываний, вызванных статическими событиями (например, для прерывания, генерируемого при равенстве содержимого счётного регистра и регистра сравнения таймера), флаг прерывания устанавливается только в момент возникновения события. Если флаг прерывания сброшен, а условия генерации прерывания присутствуют, флаг будет установлен только в момент возникновения следующего события. Для внешних прерываний, генерируемых по уровню, флаги не предусмотрены, поэтому информация об этих прерываниях будет храниться до тех пор, пока присутствует событие, вызывающее прерывание. Таблица 6.12 Команды переходов, записываемые по адресам ВП АВП Команда перехода Выполняемый переход $000 rjmp RESET Reset Handler (по сбросу) $001 rjmp EXT_INT0 IRQ0 Handler (по IRQ0) $002 rjmp EXT_INT1 IRQ1 Handler (по IRQ1) $003 rjmp TIM1_CAPT Timer1 Capture Handler (по захвату Т/С1) $004 rjmp TIM1_COMPA Timer1 CompareA Handler (по совпадению "А" Т/С1) $005 rjmp TIM1_COMPB Timer1 CompareB Handler (по совпадению "В" Т/С1) $006 rjmp TIM1_OVF Timer1 Overflow Handler (по переполнению Т/С1) $007 rjmp TIM0_OVF Timer0 Overflow Handler (по переполнению Т/С0) $008 rjmp SPI_STC SPI Transfer Complete Handler (при завершении передачи по SPI) $009 rjmp UART_RXC UART RX Complete Handler (по завершении приёма UART) $00A rjmp UART_DRE UDR Empty Handler (при пустом регистре данных UART) $00B rjmp UART_TXC UART TX Complete Handler (по завершении передачи UART) $00C rjmp ANA_COMP Analog Comparator Handler (при срабатывании аналогового компаратора) Микроконтроллеры AVR семейства Classic поддерживают очередь прерываний. Она работает следующим образом: если условия генерации одного или более прерываний возникают в то время, когда флаг общего разрешения прерываний сброшен (все прерывания запрещены), соотстствующие флаги устанавливаются в «1» и остаются в этом состоянии до установки флага общего разрешения прерываний. После разрешения прерываний выполняется их обработка в соответствии с приоритетом. Время отклика для любого прерывания составляет 4 машинных цикла. В течение первых двух машинных циклов происходит сохранение счётчика команд в стеке, а в течение следующих двух циклов выполняется команда перехода к подпрограмме обработки прерывания. Причем если прерывание произойдет во время выполнения команды, длящейся несколько циклов, то генерация прерывания произойдет только после выполнения этой команды. Под временем отклика здесь понимается время, прошедшее от наступления события (oт установки флага прерывания) до выполнения первой команды подпрограммы обработки прерывания. Возврат в основную программу также занимает 4 машинных цикла. После выхода из прерывания процессор всегда выполняет одну команду основной программы, прежде чем обслужить любое отложенное прерывание. Управление внешними прерываниями осуществляется посредством двух регистров GIMSK и GIFR. Регистр маски прерывания GIMSK используется для разрешения/запрещения внешний прерываний, а GIFR- для индикации наступления внешний прерываний. В табл. 6.13 и табл. 6.14 приведено описание бит этих регистров. Таблица 6.13 Регистр маски внешних прерываний GIMSK Разряд Название Описание 7 INT1 Флаг разрешения внешнего прерывания INT1. Если в этом разряде записана логическая «1» и флаг I регистра SREG также установлен в «1», то разрешается внешнее прерывания с вывода INT1. Условия генерации прерывания определяются содержимым разрядов ISC11 и ISC10 регистра MCUCR 6 INT0 Флаг разрешения внешнего прерывания INT0. Если в этом разряде записана логическая «1» и флаг I регистра SREG также установлен в «1», то разрешается внешнее прерывания с вывода INT0. Условия генерации прерывания определяются содержимым разрядов ISC01 и ISC00 регистра MCUCR 5...0 - Не используются, читаются как «0» Таблица 6.14 Регистр флагов внешних прерываний GIFR Разряд Название Описание 7 INTF1 Флаг внешнего прерывания INT1. Если в результате события на выводе INT1 сформировался запрос на внешнее прерывание, этот разряд устанав­ливается в «1». Флаг сбрасывается аппаратно при запуске подпрограммы обработки прерывания или программно записью в него логического «0» 6 INTF0 Флаг внешнего прерывания INT0. Если в результате события на выводе INT0 сформировался запрос на внешнее прерывание, этот разряд устанав­ливается в «1». Флаг сбрасывается аппаратно при запуске подпрограммы обработки прерывания или программно - записью в него логического «0». 5...0 — Не используются, читаются как «0» Программирование микроконтроллеров При программировании микроконтроллера полученный в результате компиляции программы машинный код загружается в память программ, а требуемые данные заносятся в ЭСППЗУ (EEPROM-память). Используются два режима программирования: • режим параллельного программирования при высоком напряжении; • режим программирования по последовательному каналу. Под «высоким» напряжением здесь понимается управляющее напряжение (12В), подаваемое на вывод микроконтроллера для перевода последнего в режим программирования. При этом независимо от режима программирование FLASH- и EEPROM-памяти осуществляется всегда побайтно. В процессе программирования могут выполняться следующие операции: • стирание кристалла (Chip erase); • чтение/запись Flash-памяти программ; • чтение/запись EEPROM-памяти данных; • чтение/запись конфигурационных ячеек; • чтение/запись ячеек защиты; • чтение ячеек идентификатора; Все модели микроконтроллеров поставляются со стертой памятью программ и памятью данных (во всех ячейках находится число $FF). Защита программного кода и данных Содержимое FLASH-памяти (памяти программ), а также содержимое EPROM-памяти (памяти данных) может быть защищено от записи и/или чтения посредством программирования ячеек защиты (Lock bits) LB1 и LB2. Возможные режимы защиты, соответствующие различным состояни­ям этих ячеек, приведены в табл. 6.15. Стирание ячеек защиты (запись в них лог. «1») может быть произведено только при выполнении команды «Стирание кристалла», уничтожающей также содержимое и EEPROM-памяти. Таблица 6.15 Режимы защиты Ячейки защиты Описание № режима LB1 LB2 1 1 1 Защита кода и данных отключена 2 1 Последующая запись FLASH и EEPROM запрещена 3 Запрещена запись и чтение FLASH и EEPROM Способы адресации памяти данных Микроконтроллер AT90S8515 поддерживают 8 способов адресации для доступа к различным областям памяти данных (РОН, РВВ, ОЗУ). В действительности способов адресации всего два: прямая адресация и косвенная. Однако каждый способ адресации имеет несколько разновидностей в зависимости от того, к какой области памяти производится обращение (для прямой адресации) или какие дополнительные действия выполняются над индексным регистром (для косвенной адресации). Аббревиатура КОП обозначает часть (или части) слова команды, содержащую значение кода операции. Прямая адресация При прямой адресации адреса операндов содержатся непосредственно в слове команды. В соответствии со структурой памяти данных существуют следующие разновидности прямой адресации: прямая адресация одного РОН, прямая адресация двух РОН, прямая адресация РВВ, прямая адресация ОЗУ. Прямая адресация одного регистра общего назначения Этот способ адресации используется в командах, оперирующих с одним из регистров общего назначения. При этом адрес регистра-операнда Rd (его номер d=R31÷R0) содержится в разрядах d8...d4 (5 бит) слова команды рис. 6.9. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 КОП d4÷d0 КОП Рис. 6.9. Прямая адресация одного регистра общего назначения Примером команд, использующих этот способ адресации, являются команды работы со стеком (PUSH, POP), команды инкремента (INC), декремента (DEC), а также некоторые команды арифметических операций. Прямая адресация двух регистров общего назначения Этот способ адресации используется в командах, оперирующих одновременно с двумя регистрами общего назначения. При этом адрес регистра-источника Rr содержится в разрядах r9, r3...r0 (5 бит), а адрес регистра приемника Rd в разрядах d8...d4 (5 бит) слова команды (рис. 6.10). К командам, использующим этот способ адресации, относятся команды пересылки данных из регистра в регистр (MOV Rd, Rn), а также большинство команд арифметических операций. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 КОП r4 d4÷d0 r3÷r0 Рис. 6.10. Прямая адресация двух регистров общего назначения Некоторые команды имеющие только один регистр-операнд, используют рассматриваемый способ адресации. В этом случае источником и приемником является один и тот же регистр. В качестве примера можно привести команду очистки регистра (Clr Rd), которая в действительности выполняет операцию «Исключающее ИЛИ» регистра с самим собой (EOR Rd, Rd). Прямая адресация регистра ввода/вывода Данный способ адресации используется командами IN и OUT пересылки данных между регистром ввода/вывода и регистровым файлом. В этом случае адрес регистра ввода/вывода содержится в разрядах 10, 9, 3...0 (6 бит), а адрес РОН - в разрядах 8...4 (5 бит) слова команды (рис. 6.11). 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 КОП i/o5÷i/o4 r/d4÷r/d0 i/o3÷i/o0 Рис. 6.11. Прямая адресация регистра ввода/вывода Прямая адресация ОЗУ Как следует из названия, данный способ используется при обращении ко всему адресному пространству памяти данных. В системе команд имеется только две команды, использующие этот способ адресации. Это команды пересылки байта между одним из РОН и ячейкой ОЗУ - LDS и STS. Каждая из этих команд занимает в памяти программ два слова (32 бита). В старшем слове содержится код операции и адрес регистра общего назначения (в разрядах 8 ÷ 4). В младшем слове находится адрес ячейки памяти, к которой происходит обращение (рис. 6.12). Старшее слово 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 КОП r/d4÷r/d0 КОП Младшее слово 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Прямой адрес ячейки памяти (ОЗУ) 0÷65535 Рис. 6.12. Прямая адресация ОЗУ Косвенная адресация При косвенной адресации адрес ячейки памяти находится в одном из индексных регистров X, Y и Z. В зависимости от дополнительных манипуляций, которые производятся над содержимым индексного регистра, различают следующие разновидности косвенной адресации: простая косвенная адресация, относительная косвенная адресация, косвенная адресация с преддекрементом и косвенная адресация с постинкрементом. Простая косвенная адресация При использовании команд простой косвенной адресации обращение производится по адресу ячейки памяти, который находится в индексном регистре (рис. 6.13). Никаких действий с содержимым индексного регистра при этом не производится. Микроконтроллер поддерживает 6 команд (по 2 для каждого индексного регистра) простой косвенной адресации: LD Rd, X/Y/Z (пересылка байта из ОЗУ в РОН) и ST X/Y/Z, Rd (пересылка байта из РОН в ОЗУ). Адрес регистра общего назначения содержится в разрядах 8…4 слова команды. Старшее слово 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 КОП r/d4÷r/d0 КОП Младшее слово 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Адрес ячейки ОЗУ (0÷65535), содержащейся в X, Y или Z Рис. 6.13. Простая косвенная адресация Относительная косвенная адресация При использовании команд относительной косвенной адресации адрес ячейки памяти, к которой производится обращение, получается суммированием содержимого индексного регистра (Y или Z) и константы, задаваемой в команде. Иллюстрация данного способа адресации приведена на рис. 6.14. Соответственно микроконтроллеры поддерживают 4 команды относительной косвенной адресации (две для регистра Y и две для регистра Z): LDD Rd, Y+q/Z+q, Rr (пересылка байта из ОЗУ в РОН) и STD Y+q/Z+q, Rr (пересылка байта из РОН в ОЗУ). Адрес регистра общего назначения содержится в разрядах 8...4 слова команды, а величина смещения - в разрядах 13, 11, 10, 2...0. Поскольку под значение смещения отводится только 6 бит, оно не может превышать 64. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 КОП q5 КОП q4, q3 КОП r/d4÷r/d0 КОП q2÷q0 где: q 5÷q0 - величина смещения 0≤q≤63. Рис. 6.14. Относительная косвенная адресация Косвенная адресация с преддекрементом При использовании команд косвенной адресации с преддекрементом содержимое индексного регистра сначала уменьшается на 1, а затем производится обращение по полученному адресу (рис. 6.15). Микроконтроллер поддерживают 6 команд (по 2 для каждого индексного регистра) косвенной адресации с преддекрементом: LD Rd, -X/-Y/-Z (пересылка байта из ОЗУ в РОН) и ST -X/-Y/-Z, Rd (пересылка байта из РОН в ОЗУ). Адрес регистра общего назначения содержится в разрядах 8...4 слова команды. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 КОП r/d4÷r/d0 КОП Рис. 6.15. Косвенная адресация с преддекрементом Косвенная адресация с постинкрементом При использовании команд косвенной адресации с постинкрементом после обращения по адресу, который находится в индексном регистре, содержимое индексного регистра увеличивается на 1 (рис. 6.16). Микроконтроллер поддерживает 6 команд (по 2 для каждого индексного регистра) косвенной адресации с постинкрементом: LD Rd, X+/Y+/Z+ (пересылка байта из ОЗУ в РОН) и ST X+/Y+/Z+, Rd (пересылка байта из РОН в ОЗУ). Адрес регистра общего назначения содержится в разрядах 8...4 слова команды. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 КОП r/d4÷r/d0 КОП Рис. 6.16. Косвенная адресация с постинкрементом Система команд Микроконтроллеры AVR семейства Classic являются микроконтроллерами с RISC-архитектурой. Основным преимуществом этой архитектуры является увеличение быстродействия за счет сокращения количества операций обмена с памятью программ. В соответствии с этим принципом в микроконтроллерах AVR практически все команды занимают одну ячейку памяти. Исключение составляют команды, у которых одним из операндов является 16-разрядный адрес памяти программ. Причем такой результат достигнут не за счет сокращения количества команд процессора, а за счет увеличения разрядности памяти программ до 16. Большинство команд выполняется за один машинный цикл. Операнды Программа для любого микроконтроллера представляет собой последовательность команд, записанных в памяти программ. Большинство команд при выполнении изменяют содержимое одного или нескольких регистров общего назначения, регистров ввода/вывода или ячеек ОЗУ. Для обращения к различным областям адресного пространства памяти данных используются различные команды, реализующие, в свою очередь, различные способы адресации. Доступ к регистрам ввода/вывода осуществляется по их адресам, являющимся операндами команды. Вместе с тем при написании ассемблерных программ гораздо удобнее обращаться к регистрам, используя вместо чис­тых значений адресов их стандартные символические имена, принятые в фирменной документации. Чтобы задать соответствие этих имен реальным адресам, необходимо подключить в начале программы (при помощи директивы ассемблера .INCLUDE) файл определения адресов регистров ввода/вывода. Такой подход позволяет облегчить перенос программного обеспечения с одного типа кристалла на другой. Эти файлы (для каждой модели микроконтроллеров семейства) свободно распространяются фирмой «Atmel» вместе с документацией на микроконтроллеры (в частности, они находятся на Web-сайте фирмы). Для РОН, входящих в состав индексных регистров, в этих файлах определяются также дополнительные символические имена. Названия этих включаемых файлов унифицированы и определяются следующим образом: <номер_модели>def . inc Например, программа для микроконтроллера АТ90S8515 должна содержать следующую директиву ассемблера: .include "8515 def. inc " Необходимо помнить, что если для обращения к регистру ввода/вывода используются команды обмена с ОЗУ, то к символическому имени требуется прибавить число $20. Как уже было упомянуто, в микроконтроллерах семейства память программ является 16-разрядной. Соответственно большинство команд описывается 16-разрядным словом, которое называется также кодом операций (КОП). Код операции - это число, расположенное в памяти программ и определяющее действие, которое необходимо произвести между источником и приемником. Ряд команд, у которых один из операндов является 16-разрядным адресом, занимает две ячейки памяти программ. Соответственно код операции таких команд является 4-байтным числом. В ряде случаев значение операнда-источника может содержаться непосредственно в коде операции, а не в регистре. Это происходит в том случае, когда операндом-источником является непосредственное значение (константа). Использование констант позволяет повысить удобочитае­мость программы, а также упростить ее отладку и дальнейшее развитие. В упомянутых включаемых файлах описано несколько констант, которые могут быть полезны при написании программ: RAMEND - значение верхнего адреса внутреннего ОЗУ; XRAMEND - значение верхнего адреса внешнего ОЗУ; E2END - значение верхнего адреса EEPROM; FLASHEND - значение верхнего адреса памяти программ. Таблица 6.16 Обозначения, используемые в таблицах команд Обозначение Описание Регистр состояния SREG C Флаг переноса (0- разряд регистра SREG) Z Флаг нуля (1- разряд регистра SREG) N Флаг отрицательного значения (2- разряд регистра SREG) V Флаг переполнения дополнительного кода (3- разряд регистра SREG) S Флаг знака (4- разряд регистра SREG); S = NV H Флаг половинного переноса (5- разряд регистра SREG) T Пользовательский флаг (6- разряд регистра SREG) I Флаг общего разрешения прерываний (7- разряд регистра SREG) Регистры и операнды Rd Регистр-приемник в регистровом файле Rr Регистр-источник в регистровом файле K Константа (данные) k Адрес - константа b Номер разряда РОН или РВВ (0…7) s Номер разряда регистра состояния SREG (0…7) X, Y, Z Регистры-указатели (X=R27:26,Y=R29:28,Z=R31:30) I/O Регистр ввода/вывода A Адрес в пространстве ввода/вывода q Смещение при относительной косвенной адресации (6-разрядное значение) . Разделитель между названием (адресом) регистра и номером разряда [XX] Содержимое ячейки памяти данных по адресу XX {XX} Содержимое ячейки памяти программ по адресу XX Операции Инверсия Логическое И Логическое ИЛИ Исключающее ИЛИ Система PC Счетчик команд STACK Текущий уровень стека SP Указатель стека Флаги Команда воздействует на флаг Флаг сбрасывается командой в «0» 1 Флаг устанавливается командой в «1» - Команда не влияет на состояние флага Типы команд Все множество команд микроконтроллеров AVR семейства Classic можно разбить на несколько групп: • команды логических операций; • команды арифметических операций и команды сдвига; • команды операций с битами; • команды пересылки данных; • команды передачи управления; • команды управления системой. Команды логических операций Эти команды (табл. 6.17) позволяют выполнять стандартные логические операции над байтами, такие как «логическое умножение» (И), «логическое сложение» (ИЛИ), операцию «исключающее ИЛИ», а также вычисление обратного и дополнительного кодов числа. К этой группе можно отнести также команды очистки/установки регистров и команду перестановки тетрад. Все операции производятся над регистрами общего назначения, результат охраняется в одном из РОН. Все логические операции выполняются за один машинный цикл. Таблица 6.17 Группа команд логических операций Мнемоника Описание Операция Ц Флаги AND Rd, Rr «Логическое И» двух РОН Rd = Rd Λ Rr 1 Z, N, V ANDI Rd, K «Логическое И» РОН и константы Rd = Rd Λ К 1 Z, N, V EOR Rd, Rr «Исключающее ИЛИ» двух РОН Rd = Rd Rr 1 Z, N, V OR Rd, Rr «Логическое ИЛИ» двух РОН Rd = Rd V Rr 1 Z, N, V ORI Rd, K «Логическое ИЛИ» РОН и константы Rd = Rd V К 1 Z, N,V COM Rd Перевод в обратный код Rd = $FF - Rd 1 Z, C, N, V NEG Rd Перевод в дополнительный код Rd = $00 - Rd 1 Z,C,N,V,H CLR Rd Сброс всех разрядов РОН Rd = Rd Rd 1 Z, N, V SER Rd Установка всех разрядов РОН Rd = $FF 1 - TST Rd Проверка РОН на отрицательное или нулевое значение Rd• Rd 1 Z, N, V SWAP Rd Обмен местами тетрад в РОН Rd(3..O) = Rd(7..4); Rd(7..4) = Rd(3..O) 1 - Команды арифметических операций и команды сдвига К данной группе (табл. 6.18) относятся команды, выполняющие такие базовые операции, как сложение, вычитание, сдвиг (вправо и влево), инкремент и декремент. Все операции производятся только над регистрами общего назначения. При этом микроконтроллеры AVR позволяют легко оперировать как знаковыми, так и беззнаковыми числами, а также работать с числами, представленными в дополнительном коде. Все команды рассматриваемой группы выполняются за один машинный цикл, за исключением команд, оперирующих двухбайтовыми значениями, которые выполняются за два цикла. Таблица 6.18 Группа команд арифметических операций Мнемоника Описание Операция Циклы Флаги ADD Rd, Rr Сложение двух РОН Rd = Rd + Rr 1 Z, C, N, V, H ADC Rd, Rr Сложение двух РОН с переносом Rd = Rd + Rr + С 1 ADIW Rd, K Сложение регистровой пары с константой Rdh:Rdl = Rdh:Rdl+К 2 Z, C, N, V, S SUB Rd, Rr Вычитание двух РОН Rd = Rd-Rr 1 Z, C, N, V, H SUBI Rd, K Вычитание константы из РОН Rd = Rd-K 1 SBC Rd, Rr Вычитание двух РОН с заемом Rd = Rd-Rr-C 1 SBCI Rd, K Вычитание константы из РОН с заемом Rd = Rd-K-C 1 SBIW Rd, K Вычитание константы из регистровой пары Rdh:Rdl = Rdh:Rdl-K 2 Z, C, N, V, S DEC Rd Декремент РОН Rd = Rd-l 1 Z, N, V INC Rd Инкремент РОН Rd = Rd + 1 1 Z, N, V ASR Rd Арифметический сдвиг вправо Rd(n) = Rd(n+l), n=0..6 1 Z, C, N, V LSL Rd Логический сдвиг влево Rd(n+l) = Rd(n), Rd(0) = 0 1 Z, C, N, V LSR Rd Логический сдвиг вправо Rd(n) = Rd(n+1), Rd(7) = 0 1 Z, C, N, V ROL Rd Сдвиг влево через перенос Rd(0) = C, Rd(n+l) = Rd(n), С = Rd(7) 1 Z, C, N, V ROR Rd Сдвиг вправо через перенос Rd(7) = C,Rd(n) = Rd(n+l), С = Rd(0) 1 Z, C, N, V Команды операций с битами К данной группе относятся команды (табл. 6.19), выполняющие установку или сброс заданного разряда РОН или РВВ. Причем для изменения состоя­ния разрядов регистра состояния SREG имеются также дополнитель­ные команды (точнее, эквивалентные мнемонические обозначения об­щих команд), т.к. проверка состояния разрядов именно этого регистра производится чаще всего. Условно к этой группе можно отнести также две команды передачи управления типа «провека/пропуск», которые пропускают следующую команду в зависимости от состояния разряда РОН или РВВ. Все задействованные разряды РВВ имеют свои символические имена. Определения этих имен описаны в том же включаемом файле, что и определения символических имен адресов регистров. Таким образом, после включения в программу указанного файла в командах вме­сто числовых значений номеров разрядов можно будет указывать их сим­волические имена. Таблица 6.19 Группа команд операций с битами (разрядами) Мнемоника Описание Операция Ц Флаги CBR Rd, K Сброс разряда(ов) РОН Rd = Rd • ($FF - К) 1 Z, N, V SBR Rd, K Установка разряда(ов) РОН Rd - Rd V К 1 Z, N, V CBI RBB, b Сброс разряда РВВ RBB.b = 0 2 — SBI RBB, b Установка разряда РВВ RBB.b=l 2 — BCLR s Сброс флага SREG.s = 0 1 SREG.s BSET s Установка флага SREG.s = 1 1 SREG.s BLD Rd, b Загрузка разряда РОН из флага Т (SREG) Rd.b = T 1 — BST Rr, b Запись разряда РОН в флаг Т (SREG) T = Rr.b 1 T CLC Сброс флага переноса C = 0 1 С SEC Установка флага переноса C = l 1 С CLN Сброс флага отрицательного числа N = 0 1 N SEN Установка флага отрицательного числа N = 1 1 N CLZ Сброс флага нуля Z = 0 1 Z SEZ Установка флага нуля Z = l 1 Z CLI Общее запрещение прерываний I = 0 1 I SEI Общее разрешение прерываний I = 1 1 I CLS Сброс флага знака S = 0 1 S SES Установка флага знака S = l 1 S CLV Сброс флага переполнения дополнительного кода V = 0 1 V Окончание табл. 6.19 Мнемоника Описание Операция Ц Флаги SEV Установка флага переполнения дополнительного кода V = l 1 V CLT Сброс флага Т T = 0 1 T SET Установка флага Т T = l 1 T CLH Сброс флага половинного переноса Н = 0 1 H SEH Установка флага половинного переноса Н=1 1 H Команды пересылки данных Команды этой группы (табл. 6.20) предназначены для пересылки содержимого ячеек, находящихся в адресном пространстве памяти данных. Разделение адресного пространства на три части (РОН, РВВ, ОЗУ) предопределило разнообразие команд данной группы. Пересылка данных, выполняемая командами группы, может производиться в следующих направлениях: • РОН РОН; • РОН РВВ; • РОН память данных (3 вида адресации). Также к данной группе можно отнести стековые команды PUSH и POP, позволяющие сохранять в стеке и восстанавливать из стека содержимое РОН. На выполнение команд данной группы требуется от одного до трех машинных циклов в зависимости от команды. Таблица. 6.20 Группа команд пересылки данных Мнемоника Описание Операция Циклы Флаги MOV Rd,Rr Пересылка между РОН Rd = Rr 1 - LDI Rd,K Загрузка константы в РОН Rd = K 1 - LD Rd,X Косвенное чтение Rd = [X] 2 - LD Rd,X+ Косвенное чтение с постинкрементом Rd = [X], X = X + 1 2 - LD Rd,-X Косвенное чтение с преддекрементом X = X-l,Rd = [X] 2 - LD Rd,Y Косвенное чтение Rd = [Y] 2 - LD Rd,Y+ Косвенное чтение с постинкрементом Rd = [Y], Y = Y + 1 2 - LD Rd,-Y Косвенное чтение с преддекрементом Y = Y-l, Rd = [Y] 2 - LDD Rd,Y+q Косвенное относительное чтение Rd = [Y+q] 2 - LD Rd,Z Косвенное чтение Rd = [Z] 2 - Окончание табл. 6.20 Мнемоника Описание Операция Циклы Флаги LD Rd,Z+ Косвенное чтение с постинкрементом Rd = [Z], Z = Z + 1 2 - LD Rd,-Z Косвенное чтение с преддекрементом Z = Z-l, Rd = [Z] 2 - LDD Rd,Z+q Косвенное относительное чтение Rd = [Z+q] 2 - LDS Rd,k Непосредственное чтение из ОЗУ Rd = [k] 2 - ST X,Rr Косвенная запись [X] = Rr 2 - ST X+,Rr Косвенная запись с постинкрементом [X] = Rr, X = X + 1 2 - ST -X,Rr Косвенная запись с преддекрементом X = X-l, [X] = Rr 2 - ST Y,Rr Косвенная запись [Y] = Rr 2 - ST Y+,Rr Косвенная запись с постинкрементом [Y] = Rr, Y = Y + 1 2 - ST -Y,Rr Косвенная запись с преддекрементом Y = Y-l, [Y] = Rr 2 - STD Y+q,Rr Косвенная относительная запись [Y+q] = Rr 2 - ST Z,Rr Косвенная запись [Z] = Rr 2 - ST Z+,Rr Косвенная запись с постинкрементом [Z] = Rr, Z = Z + 1 2 - ST -Z,Rr Косвенная запись с преддекрементом Z = Z-l, [Z] = Rr 2 - STD Z+q,Rr Косвенная относительная запись [Z+q] = Rr 2 - STS k,Rr Непосредственная запись в ОЗУ [k] = Rr 2 - LPM Загрузка данных из памяти программ R0 = {Z} 3 - IN Rd,RBB Пересылка из РВВ в РОН Rd = A 1 - OUT RBB,Rr Пересылка из РОН в РВВ RBB = Rr 1 - PUSH Rr Сохранение байта в стеке STACK = Rr 2 - POP Rd Извлечение байта из стека Rd = STACK 2 - Команды передачи управления В эту группу входят команды перехода, вызова подпрограмм и возврата из них и команды типа «проверка/пропуск», пропускающие следующую за ними команду при выполнении некоторого условия. Также к этой группе относятся команды сравнения, формирующие флаги регистра SREG и предназначенные, как правило, для работы совместно с командами условного перехода. В системе команд микроконтроллеров семейства имеются команды как безусловного, так и условного переходов. Команды косвенного (IJMP) и относительного (RJMP) безусловного перехода являются самыми простыми в этой группе. Их функция заключается только в записи нового адреса 8 счетчик команд. Команды условного перехода также изменяют содержимое счетчика команд, однако это изменение происходит только при выполнении некоторого условия или, точнее, при определенном состоянии различных флагов регистра SREG. Все команды условного перехода можно разбить на две подгруппы. Первая подгруппа - команды условного перехода общего назначения. В эту подгруппу входят две команды BRBS s, k и BRBC s, k, в которых явно задается номер тестируемого флага регистра SREG. Соответственно переход осуществляется при SREG.s = 0 (BRBC) или SREG.s = 1 (BRBS). Другую подгруппу составляют 18 специализированных команд, каждая из которых выполняет переход по какому-либо конкретному условию («равно» «больше или равно», «был перенос» и т.п.). Причем одни команды используются после сравнения беззнаковых чисел, другие - после сравнения чисел со знаком. Команды вызова подпрограммы (ICALL, RCALL) работают практиче­ски так же, как и команды безусловного перехода. Отличие заключается в том, что перед тем как выполнить переход, значение счетчика команд сохраняется в стеке. Кроме того, подпрограмма должна заканчиваться командой возврата RET, как показано в следующем примере: … rcall sp_test ; вызов подпрограммы «sp_test» … ; текст основной программы … sp_test: ; метка подпрограммы push r2 ; сохранить r2 в стеке … ; выполнение подпрограммы … pop r2 ; восстановить r2 из стека ret ; возврат из подпрограммы В приведенном выше примере команда RET заменяет адрес, находящийся в счетчике команд, адресом команды, следующей за командой CALL. Очевидно, что команды передачи управления нарушают нормальное (линейное) выполнение основной программы. Каждый раз, когда выполняется команда из этой группы (кроме команд сравнения), нормальное функционирование конвейера нарушается. Перед загрузкой в конвейер нового адреса производятся остановка и очистка выполняемой последовательности команд. Соответственно реинициализация конвейера приводит к необходимости использования нескольких машинных циклов для выполнения таких команд. Команды управления системой В эту группу входят 3 команды: • NOP- пустая команда; • SLEEP - перевод микроконтроллера в режим пониженного энергопотребления; • WDR - сброс сторожевого таймера. Команды NOP и WDR выполняются за один машинный цикл, а команда SLEEP - за четыре машинных цикла. Таблица 6.21 Группа команд передачи управления Мнемоника Описание Операция Ц Флаги RJMP k Относительный безусловный переход PC = PC + k + 1 2 - IJMP Косвенный безусловный переход PC = Z 2 - RCALL k Относительный вызов подпрограммы PC = PC + k + 1 3 - ICALL Косвенный вызов подпрограммы PC = Z 3 - RET Возврат из подпрограммы PC = STACK 4 - RETI Возврат из подпрограммы обработки прерывания PC = STACK 4 I СР Rd,Rr Сравнение РОН Rd-Rr 1 Z, N, V, C, H СРС Rd,Rr Сравнение РОН с учетом переноса Rd-Rr-C 1 CPI Rd,K Сравнение РОН с константой Rd-K 1 CPSE Rd,Rr Сравнение и пропуск следующей команды при равенстве Если Rd = Rr, то PC = PC + 2 (3) 1/2/3 - SBRC Rr,b Пропуск следующей команды, если разряд РОН сброшен Если Rr.b = 0, то PC = PC + 2 (3) 1/2/3 - SBRS Rr,b Пропуск следующей команды, если разряд РОН установлен Если Rr.b =1, то PC = PC + 2 (3) 1/2/3 - SBIC A,b Пропуск следующей команды, если разряд РВВ сброшен Если RBB.b = 0, то PC = PC+2 (3) 1/2/3 - SBIS A,b Пропуск следующей команды, если разряд РВВ установлен Если A.b = 1, то PC = PC + 2 (3) 1/2/3 - BRBC s,k Переход, если флаг s регистра SREG сброшен Если SREG.s = 0, то РС = РС+ k+1 1/2 - BRBS s,k Переход, если флаг s регистра SREG установлен Если SREG.s = 1, то PC = PC+k + 1 1/2 - BRCS k Переход по переносу Если С = 1, то PC = PC + k + 1 1/2 - Окончание табл. 6.21 Мнемоника Описание Операция Ц Флаги BRCC k Переход, если нет переноса Если С = 0, то РС = РС + k+1 1/2 - BREQ k Переход по условию «равно» Если Z = 1, то PC = PC + k + 1 1/2 - BRNE k Переход по условию «не равно» Если Z = 0, то PC = PC + k + 1 1/2 - BRSH k Переход по условию «выше или равно» Если С = 0, то PC = PC + k + 1 1/2 - BRLO k Переход по условию «меньше» Если С= 1, то PC = PC + k + 1 1/2 - BRMI k Переход по условию «отрицательное значение» Если N = 1, то PC = PC + k + 1 1/2 - BRPL k Переход по условию «положительное значение» Если N = 0, то PC = PC + k + 1 1/2 - BRGE k Переход по условию «больше или равно» (числа со знаком) Если (N V) = 0, то PC = PC+k + 1 1/2 - BRLT k Переход по условию «меньше нуля» (числа со знаком) Ecли (NV)=l, то PC = PC+k + 1 1/2 - BRHS k Переход по половинному переносу Если Н=1, то PC = PC + k + 1 1/2 - BRHC k Переход, если нет половинного переноса Если Н = 0, то PC = PC + k + 1 1/2 - BRTS k Переход, если флаг Т установлен Если Т = 1, то PC = PC + k + 1 1/2 - BRTC k Переход, если флаг Т сброшен Если Т = 0, то PC = PC + k + 1 1/2 - BRVS k Переход по переполнению дополнительного кода Если V = 1, то PC = PC + k + 1 1/2 - BRVC k Переход, если нет переполнения дополнительного кода Если V = 0, то PC = PC + k + 1 1/2 - BRID k Переход, если прерывания запрещены Если I = 0, то PC = PC + k + 1 1/2 - BRIE k Переход, если прерывания разрешены Если I= 1, то PC = PC + k + 1 1/2 - Ниже приведён пример программы, написанной на языке АССЕМБЛЕР микроконтроллера AT90S8515. Задание для примера. Составить программу, реализующую действие А-В. Если в результате выполнения операции бит заёма установлен, то вызвать подпрограмму START, в которой результат записать в ячейку 160 ОЗУ. Если не установлен, то выполнить действие А+В и результат вывести в порт D (А находится в R2, В находится в R5). Пример программы по указанному заданию и её оформление .INCLUDE "8515def.inc" ;Подключить файл описаний имён. ; ;*************** Задание символических имён ; .def temp=R16 ; Назначить регистру R16 имя temp. ; Регистр R16 будет использоваться для ; временного хранения. ; ;*************** Рабочая программа ; .CSEG ; Оператор, определяющий начало ; программного сегмента. .ORG $0 ; Оператор, определяющий физический ; адрес расположения команд в памяти ; программ, следующих за ним. rjmp reset ; Переход в программу после сброса. .ORG $20 start: ; Метка подпрограммы с именем "start" sub R4, R7 ; Выполнить действие R4← R4-R7. sts $a0, R4 ; Запись результата вычитания R4-R7 в ; ячейку 160 ОЗУ. ret ; Возврат из подпрограммы. ;*************** Начало основной программы ;*********** Инициализация reset: ldi temp, low(RAMEND) ; Инициализация стека. out SPL, temp ; ldi temp, high(RAMEND) ; out SPH, temp ; ser temp ; temp = 0xFF. out DDRD, temp ; Настроить порт D как вывод. ; ;*********** Программа ; m1: mov R7, R5 ; Из R5 значение "B" переписать в R7. mov R4, R2 ; Из R2 значение "A" переписать в R4. cp R4, R7 ; Сравнить А и В (R4-R7) brcs m2 ; Если флаг переноса (заёма) С=1 ; (А<В), то переход на метку m2 add R4, R7 ; Если А>В выполнить R4←R4+R7 out PORTD, R4 ; Вывод результата операции R4+R7 в PD rjmp m1 ; Переход на метку m1. m2: rcall start ; Вызов ПП start rjmp m1 ; Переход на метку m1. Пример структурной схемы МСУ с шинной организацией на базе микроконтроллера AT90S8515 приведён на рис. 6.16. В схеме используется возможность подключения к микроконтроллеру внешней памяти данных. Все внешние устройства используют адреса из области данной памяти. 7. Частотно-регулируемые привода Структурная схема (рис. 7.1) универсального частотно-регулируемого электропривода (ЧРП) на базе короткозамкнутого асинхронного двигателя состоит из самого двигателя М, датчика скорости, преобразователя частоты (ПЧ). В состав ПЧ входят трёхфазный неуправляемый выпрямитель, трёхфазный импульсный инвертор тока или напряжения с широтно-импульсной модуляцией (ШИМ), датчики тока и напряжения, блок питания, плата драйверов и микропроцессорная система управления (СУ). Входной ВЧ-фильтр, входной дроссель, выходной дроссель могут входить в состав ПЧ либо быть внешними. Также обязательными элементами электропривода является защита. Часть элементов защиты входит в состав ПЧ, обеспечивая защиту выпрямителя и инвертора, другие (плавкие предохранители, автоматы и др.) – являются внешними. Частотный преобразователь - это силовое электрическое устройство, обеспечивающее эффективное регулирование амплитуды и частоты питающего напряжения, подводимого к статорным обмоткам электродвигателя. Выпрямитель (звено постоянного тока) выполнен на неуправляемых диодах и содержит в своём составе фильтр. Переменное напряжение питающей сети (3х380 В) преобразуется в напряжение постоянного тока. Силовой трёхфазный импульсный инвертор выполнен на IGBT – транзисторных ключах и преобразует напряжение постоянного тока в трёхфазное переменное напряжение изменяемой частоты и амплитуды. СУ через плату драйверов управляет силовым инвертором. Регулирование частоты обеспечивает адекватное изменение скорости вращения ротора (), а амплитуда питающего напряжения при фиксированном значении частоты определяет величину максимального момента, развиваемого на валу двигателя (). Применение частотно-регулируемого привода даёт возможность регулировать в широких пределах скорость вращения двигателя. Регулирование скорости вращения двигателя позволяет существенно экономить электроэнергию. Рис. 7.1. Упрощённая структурная схема электропривода Частотный преобразователь обеспечивает плавный разгон и торможение двигателя. Причем скорости разгона и торможения программируются. Плавный (мягкий) пуск позволяет избежать ударных механических нагрузок на сам двигатель и оборудование, а также исключает бросок пускового тока, который при обычном включении двигателя может превышать номинальный в 5-7 раз. Снижение механических нагрузок продлевает срок службы двигателя и оборудования, увеличивает его межремонтный цикл. Существует два основных типа преобразователей частоты: с непосредственной связью и с промежуточным контуром постоянного тока. В первом случае выходное напряжение синусоидальной формы формируется из участков синусоид преобразуемого входного напряжения. При этом максимальное значение выходной частоты принципиально не может быть равным частоте питающей сети. Частота на выходе преобразователя этого типа обычно лежит в диапазоне от 0 до 25-33 Гц. Наибольшее распространение получили преобразователи частоты с промежуточным контуром постоянного тока, выполненные на базе инверторов напряжения. Необходимо отметить недостатки ПЧ при управлении асинхронными двигателями, которые влияют на оптимальные энергетические показатели и правильный выбор привода по мощности. 1. При работе асинхронных двигателей от преобразователей частоты их КПД снижается на 2 … 3 %, а сosφ до 5 %. 2. Добавочные высокочастотные потери, вызванные несинусоидальностью напряжения, вызывают нагрев двигателя и снижение полезной мощности на его валу (до 25 %). Наличие добавочных потерь в обмотках и стали магнитопровода обусловлено высшими гармониками тока и магнитного потока. Поэтому, при использовании асинхронных приводов с частотным регулированием, необходимо принимать меры по улучшению гармонического состава выходного переменного напряжения (устанавливаются дополнительные устройства, корректируют параметры настройки преобразователя и т.п.). Режимы управления асинхронными электродвигателями В зависимости от характера нагрузки преобразователь частоты обеспечивает различные режимы управления электродвигателем, реализуя ту или иную зависимость между скоростью вращения электродвигателя и выходным напряжением. Управление по вольт-частотной характеристике Управление по вольт-частотной характеристике реализует зависимость U/f=const, именуемую также U/f характеристикой и реже скалярный контроль. Такой алгоритм обеспечивает достаточное качество регулирования по скорости и применяется для управления нагрузками, когда момент сопротивления мало меняется в установившемся режиме. Для таких механических характеристик момент статического сопротивления зависит от скорости или от частоты , где - угловая скорость, p – число пар полюсов, f1 – частота. Диапазон регулирования скорости вращения двигателя по рассматриваемому закону ограничен сверху и снизу. Верхняя граница определяется насыщением магнитопровода машины. С ростом отношения / (=U/Uном , =f/f ном) растёт магнитный поток машины и резко увеличивается ток намагничивания I0, что и ограничивает допустимое значение этого отношения. Поэтому применение данного закона практически ограничено нагрузками, не слишком превышающими номинальный момент двигателя. Нижняя граница диапазона регулирования зависит от момента статического сопротивления при трогании двигателя с места. Очевидно, при возрастании частоты и напряжения от нуля двигатель будет неподвижен до тех пор, пока частота ротора, равная частоте статора (ротор неподвижен) не достигнет такого значения, при котором момент двигателя превысит момент трогания неподвижного привода. Векторное управление При векторном управлении, в отличие от частотного, управление скоростью вращения двигателя осуществляется с помощью регулирования амплитуды и фазы вектора поля двигателя. Такое управление является наиболее точным в динамике и статике, а так же более экономичным. Преимущества векторного регулирования: точная отработка скорости с компенсацией скольжения (даже без обратной связи по скорости); глубокий диапазон регулирования; в области малых частот двигатель работает плавно и сохраняет момент вплоть до нулевой скорости; быстрая реакция на скачки нагрузки; при резких скачках нагрузки практически не происходит скачков скорости, вследствие высокой динамики регулирования; оптимизация КПД двигателя на низких частотах; за счет регулирования тока намагничивания, осуществляется оптимизация режима работы двигателя и снижение потерь. В данном методе осуществляется управление амплитудой и фазой статорного тока, то есть его вектором. Однако для управления фазой тока, а значит, и фазой магнитного поля статора относительно вращающегося ротора необходимо знать точное положение ротора в любой момент времени. Эта задача может быть решена с использованием датчика положения (сенсорный или полный векторный контроль), например, шифратора приращений. В такой конфигурации привод переменного тока по качеству регулирования становится, сопоставим с приводом постоянного тока, но в составе большинства стандартных электродвигателей переменного тока встроенные датчики положения отсутствуют, поскольку их введение неизбежно ведёт к усложнению конструкции двигателя и существенному повышению его стоимости. Применение современной технологии безсенсорного векторного управления позволяет обойти это ограничение путём использования математической адаптивной модели двигателя для предсказания положения ротора. При этом система управления должна с высокой точностью измерять значение выходных токов и напряжений, обеспечивать расчёт параметров двигателя (сопротивление статора, значение индуктивности рассеяния и т.д.), точно моделировать тепловые характеристики двигателя с различными режимами его работы, осуществлять большой объём вычислений с очень высокой скоростью. Алгоритм векторного управления позволяет получить высокий пусковой момент и сохранить его до номинальной скорости асинхронного электродвигателя. Алгоритм обеспечивает высокое качество регулирования по скорости, даже при скачкообразном изменении момента сопротивления на валу. Преобразователь частоты 1336Plus Серия ПЧ 1336Plus фирмы Allen Bradley предназначена для управления асинхронными электродвигателями мощностью 0.37 - 450 кВт в трех диапазонах напряжений 200 - 240 В, 380-480 В и 500-600 В, частотой 50/60 Гц трехфазной сети. Основные характеристики этой серии ПЧ приведены в табл. 7.1. На рис. 7.2 приведён разъём Х1 ПЧ 1336Plus (мощность 5,5 кВт), который предназначен для подключения силовой части ПЧ к сети (клеммы R, S, T) и электродвигателя к ПЧ (клеммы U, V, W). Клеммы DC+ и DC- используются для подключения источника постоянного тока, используемого для динамического торможения. Разъём располагается на силовой плате ПЧ. Разъём Х2 предназначен для подачи входных сигналов задания скорости и вывода сигналов состояния ПЧ (рис. 7.3). Разъём располагается на процессорной плате ПЧ. Пример схемы подключения ПЧ 1336Plus к контроллеру SLC500 фирмы Allen Bradley приведён на рис. 7.4. На схеме показаны следующие устройства: А1 - модуль связи 1203-GD1, А2 - промышленный модульный контроллер SLC500 фирмы Allen Bradley, А3 - преобразователь частоты 1336Plus, А4 - ПЭВМ, А5 - внешний блок питания. Таблица 7.1 Основные характеристики ПЧ 1336 Plus Наименование Значение Мощность, кВт 0,37 - 450 Напряжение питания (входное), В 3х (380 – 460) -10 % / + 10 % Напряжение выхода, В от 0 до входного Токовая перегрузка 20 – 160 % от номинального тока Регулятор ПИ Тип управления Линейный (U/f) Способ модуляции ШИМ Частота модуляции, кГц 2 - 6 Тормоз постоянного тока Динамическое торможение Многоскоростной режим 7 скоростей Количество параметров настройки 225 Выходная частота, Гц 0 -400 Скоростью двигателя управляют: с пульта оператора; посредством удалённого потенциометра; подключением устройств, формирующих аналоговые сигналы 0-10 В или 4-20 мА либо импульсы частотой 0 -100 кГц Количество аналоговых/дискретных выходов 1/3 Функции защиты Перегрузка по току; перенапряжение; превышение рабочей температуры IGBT модулей; короткое замыкание; обрыв фазы. Способ управления Пульт/Внешние команды/ Подключение через дополнительный модуль к сети Remote I/O Условия окружающей среды 0 …+40 0С Модуль связи 1203-GD1 (ser B) - это устройство интерфейса RIO, предназначенное, для обеспечения последовательной цифровой связи между программируемым контроллером SLC500 и любым устройством, использующим коммуникационный порт SCANport. Модульный контроллер SLC500 предназначен для управления технологическим оборудованием и приводом 1336PLUS. Ниже приведена конфигурация контроллера SLC 500, приведённого на рис. 7.4. Цифрами 0 - 5 обозначены слоты контроллера, в которые установлены модули: 0 - 1747 L541 5/04 CPU 16K Mem.OS401 - процессорный модуль; 1 - Модуль отсутствует (место зарезервировано); 2 - 1746-IB16 16-Input (SINK) 24 Vdc - модуль входных сигналов; 3 - 1746-OB16 16-Output (TRANS-SRC) 10/50 Vdc - модуль выходных сигналов; 4 - 1746 - NIO4I Analog 2 Ch In / 2 Ch Current Out - модуль аналоговых сигналов; 5 - 1747 SN – RIO - сканер. Рис. 7.2. Разъём Х1 преобразователя частоты 1336Plus Рис. 7.3. Разъём Х2 преобразователя частоты 1336Plus Модули контроллера устанавливаются в шасси 1746 - A7 & - Slot Rack. Модуль входных сигналов имеет индикаторы состояния входов, а модуль выходных сигналов - индикаторы состояния выходов. Входной и выходной модули работают с входными/выходными напряжениями 24 В dc. К модулю входных сигналов подключены нормально разомкнутые контакты состояния ПЧ CR1, CR2, CR3 и CR4. На контакты подано питание 24 В постоянного тока от внешнего изолированного источника А5. Модуль 1747SN RIO - модуль сканера, предназначен для организации магистрального канала Remote I/O (RIO) для подключения удалённых устройств. Всего к магистрали RIO может быть подключено до 32 устройств. Сканер 1747SN RIO действует как интерфейс между устройствами Device Net (привод 1336PLUS) и процессором и обеспечивает: ввод входных сигналов от устройств (потребляемый ток, частота вращения и т.д.), вывод выходных сигналов в устройства (пуск, стоп, толчок, скорость и др.), ввод данных о конфигурации устройств, контроль рабочего состояния устройств. К модулю сканера 1747SN RIO экранированной витой парой подключён модуль связи 1203-GD1. На разъёмах сканера и модуля связи установлены согласующие резисторы R2 и R3. Разъёмы Scanport ПЧ и модуля связи 1203-GD1 объединяются специальным кабелем, поставляемым вместе с ПЧ. Процессорный модуль контроллера SLC500 посредством канала RS232C связан с ПЭВМ. Устройства А1 (1203-GD1), А2 (блок питания SLC500) и А5 (блок питания внешних цепей контроллера) через предохранитель FU4 и автомат QF1 подключены к сети 220 В переменного тока. ПЧ 1336PLUS через предохранители FU1-FU3 и автомат QF2 подключён к переменному трёхфазному напряжению 380 В. К ПЧ (клеммы Т1, Т2, Т3) подключен трёхфазный асинхронный электродвигатель M. К разъёму платы управления Х2.1 ПЧ присоединены: переменный резистор R1 (10 кОм) и токовый выход OUT1 модуля аналоговых сигналов 1746 NIO4I контроллера SLC500, которые могут использоваться в качестве задатчика скорости (выбор конкретного задатчика скорости осуществляется программно в ПЧ); аналоговый вход IN1 модуля 1746NIO4I контроллера SLC500, используемый для определения действительной скорости вращения двигателя. Задатчик скорости по напряжению в схеме не используется. Подключение аналоговых сигналов к ПЧ осуществляется экранированными проводами. Преобразователь частоты 1336PLUS имеет дополнительные модули, которые могут подключаться к процессорной плате: модуль фотоэлектрического измерительного преобразователя (ФИП), модуль входных дискретных сигналов. Модуль ФИП вместе с преобразователем предназначен для точной стабилизации процесса регулирования на низких скоростях вращения. Модуль входных дискретных сигналов предназначен для подачи сигналов управления приводом (пуск, стоп, толчок, 7 дискретных скоростей) от модуля выходных дискретных сигналов контроллера без организации канала RIO (управление без модуля 1747 SN RIO). Рис. 8.4. Схема подключения ПЧ 1336Plus к контроллеру SLC500 и ПЭВМ Библиографический список 1. Хвощ С.Т. и др. Микропроцессоры и микроЭВМ в системах автоматического управления: Справочник/С.Т. Хвощ, Н.Н. Варлинский, Е.А. Попов; Под общ.ред. С.Т. Хвоща.-Л.:Машиностроение. Ленингр. отд-ние,1987.-640с. 2. Сосонкин В.Л. 3. Сташин В.В. и др. Проектирование цифровых устройств на однокристальных микроконтроллерах/ В.В. Сташин и др. – М.: Энергоатомиздат, 1990.- 224 с. 4. Евстифеев А.В. Микроконтроллеры AVR семейства Classic фирмы ATMEL – 2- е изд., стер. – М.: Издательский дом “Додека – ХХI”, 2004.- 288 с.. 5. Бродин В. Б., Шагурин И. И. Микроконтроллеры. Архитектура, программирование, интерфейс.- М.: Издательство ЭКОМ, 1999.-400 с. 6. Федотов А. В. Автоматизация управления в производственнызх системах: Учеб. пособие. Омск: Изд-во ОмГТУ, 2001.-368 с. Оглавление Введение ……………………………………………………………………… 1. Классификация устройств программного управления …………………… 2. Принципы построения микропроцессорных УЧПУ ……………. 3. Способы внутрисистемной организации мультимикропроцессорных систем ………………………………………………………………………….. 4. Устройства числового программного управления и системы управления промышленными роботами …………………………………………………... 5. Микроконтроллер КМ1816ВЕ51 …………………………………………… 6. Микроконтроллер AT90S8515 фирмы Atmel ……………………………… 7. Частотно-регулируемые привода ………………………………………...... Библиографический список ………………………………………………… 3 6 10 13 18 28 42 78 87
«Микропроцессорные системы управления» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Тебе могут подойти лекции

Автор(ы) Старший преподаватель каф. КС Попова Надежда Владимировна
Смотреть все 127 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot