Реферат: Разработка программной и аппаратной поддержки к методическим указаниям "Программирование микроконтроллеров"

МинистерствоОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Воронежский Государственный Университет

Физический факультет

№______________________

кафедральной регистрации

“К ЗАЩИТЕ ДОПУЩЕНА”

Зав. кафедрой физики полупроводников

и микроэлектроники

проф. __________ Петров Б.К.

“____”__________2002 г.

УДК.681.3                                                                            КОРОБКОВГеоргий Николаевич

РАЗРАБОТКАПРОГРАММНОЙ И АППАРАТНОЙ
ПОДДЕРЖКИ К МЕТОДИЧЕСКИМ УКАЗАНИЯМ
«ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ»

Магистерская диссертация по направлению«Физика»

Научный руководитель

доц. ___________ Клюкин В.И.

ВОРОНЕЖ 2002


РЕФЕРАТ

УДК. 681.3                                                                            КОРОБКОВГеоргий Николаевич

РАЗРАБОТКА ПРОГРАММНОЙ И АППАРАТНОЙ ПОДДЕРЖКИ К МЕТОДИЧЕСКИМ УКАЗАНИЯМ«ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ». – Магистерская диссертация по направлению «Физика», Воронеж,ВГУ, 2002. – 93 с., илл. 45, табл. 4, прилож. 5, библ. 21 назв.

В настоящее времямикроконтроллеры принимают все большее распространение. Однако, информации повопросам обучения программированию микроконтроллеров в соединении с внешнимиисполнительными бывает не достаточно.

В работерассмотрены архитектура, аппаратные и программные средства распространенных инедорогих микроконтроллеров фирмы ATMEL серии AVR типа AT90S1200, AT90S2313, AT90S4414 и AT90S8515. Анализ методики программирования в интегрированной средеразработке позволил объединить практические рекомендации с некоторымиособенностями обучения программирования микроконтроллеров. На основании этогопредложен алгоритм обучения.

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

Так же приведены решениячетырех типовых задач по работе с памятью, индикацией, устройство «кодовыйзамок» и устройство измерителя частоты звукового диапазона. В приложенияхприведены тексты программ и справочные данные на рассмотренные AVR микроконтроллеры.


СОДЕРЖАНИЕ

 TOC o «1-3» ВВЕДЕНИЕ… PAGEREF _Toc12247315 h 4

1. ОСНОВЫ АРХИТЕКТУРЫ МИКРОКОНТРОЛЛЕРОВ… PAGEREF _Toc12247316 h 6

1.1. ОСНОВНЫЕ ТИПЫ МИКРОКОНТРОЛЛЕРОВ И ИХ АРХИТЕКТУРА… PAGEREF _Toc12247317 h 6

1.2. Аппаратные средства… PAGEREF _Toc12247320 h 10

1.2.1. Запуск микроконтроллера… PAGEREF _Toc12247321 h 10

1.2.2. Тактирование и командные циклы… PAGEREF _Toc12247323 h 10

1.2.3. Программный счетчик и АЛУ… PAGEREF _Toc12247324 h 11

1.2.4. Подпрограммы и функции… PAGEREF _Toc12247325 h 13

1.2.5. Ввод/вывод данных… PAGEREF _Toc12247328 h 17

1.3. Инструментальные и программные средства разработки иотладки… PAGEREF _Toc12247332 h 20

1.4. Основные типы интерфейсов МК… PAGEREF _Toc12247337 h 27

1.4.1. Подключение переключателей и подавление «звона»контактов… PAGEREF _Toc12247338 h 27

1.4.2. Световая индикация… PAGEREF _Toc12247339 h 28

1.4.3. Ввод с матричной клавиатуры… PAGEREF _Toc12247341 h 30

2. ОСОБЕННОСТИ ПОСТРОЕНИЯ И ФУНКЦИОНИРОВАНИЯМИКРОКОНТРОЛЛЕРОВ ФИРМЫ ATMEL СЕМЕЙСТВА AVR… PAGEREF _Toc12247342 h 32

2.1. Архитектура микропроцессорного ядраAVR-микроконтроллеров… PAGEREF _Toc12247343 h 32

2.2. Аппаратные средства AVR… PAGEREF _Toc12247349 h 41

2.3. Система команд микроконтроллера AVR… PAGEREF _Toc12247359 h 49

3. ПРОГРАММНОЕ И ИНСТРУМЕНТАЛЬНОЕ ОБЕСПЕЧЕНИЕПРОЦЕССА ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ… PAGEREF _Toc12247365 h 56

3.1. Написание и отладка программного кода с помощью AVR Studio… PAGEREF _Toc12247366 h 56

3.1.1. Обзор AVR Studio… PAGEREF_Toc12247367 h 57

3.1.2. Создание нового проекта… PAGEREF _Toc12247368 h 58

3.1.3. Исполнение программного кода… PAGEREF _Toc12247369 h 62

3.2. Анализ методики реализации разработки программногообеспечения… PAGEREF _Toc12247370 h 69

3.2.1. Классификация вариантов заданий… PAGEREF _Toc12247371 h 69

3.2.2. Рассмотрение типовых примеров… PAGEREF _Toc12247374 h 73

3.3. Описание макета программатора… PAGEREF _Toc12247375 h 77

ЗАКЛЮЧЕНИЕ… PAGEREF _Toc12247376 h 80

БИБЛИОГРАФИЧЕСКИЙ СПИСОК ИСПОЛЬЗОВАННЫХИСТОЧНИКОВ… PAGEREF _Toc12247377 h 81

ПРИЛОЖЕНИЕ 1 Инструкции процессоров AVR… PAGEREF _Toc12247378 h 83

ПРИЛОЖЕНИЕ 2. Таблица регистровмикроконтроллера AT90S1200… PAGEREF _Toc12247379 h 88

ПРИЛОЖЕНИЕ 3. Программа для измерителязвуковой частоты… PAGEREF _Toc12247380 h 89

ПРИЛОЖЕНИЕ 4. Программа для устройства«кодовый замок»… PAGEREF _Toc12247381 h 91

ПРИЛОЖЕНИЕ 5. Основные характеристики
микроконтроллеров AVR… PAGEREF _Toc12247382 h 93


ВВЕДЕНИЕ

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

Микроконтроллер помимо центральногопроцессора (ЦП) содержит память и многочисленные устройства ввода/вывода:аналого-цифровые преобразователи, последовательные и параллельные каналыпередачи информации, таймеры реального времени, широтно-импульсные модуляторы(ШИМ), генераторы программируемых импульсов и т.д. Его основное назначение –использование в системах автоматического управления, встроенных в самыеразличные устройства: кредитные карточки, фотоаппараты, сотовые телефоны,музыкальные центры, телевизоры, видеомагнитофоны и видеокамеры, стиральныемашины, микроволновые печи, системы охранной сигнализации, системы зажиганиябензиновых двигателей, электроприводы локомотивов, ядерные реакторы и многое,многое другое. Встраиваемые системы управления стали настолько массовымявлением, что фактически сформировалась новая отрасль экономики, получившаяназвание EmbeddedSystems(встраиваемые системы).

Достаточно широкое распространение имеют МК фирмы ATMEL, функциональные возможности которых охватывают всеперечисленные задачи [1,2].

Применение МК можно разделить на два этапа: первый –программирование, когда пользователь разрабатывает программу и прошивает еенепосредственно в кристалл, и второй – согласование спроектированныхисполнительных устройств с запрограммируемым МК. Значительно облегчают отладкупрограммы на первом этапе – симулятор, который наглядно моделирует работумикропроцессора. На втором этапе для отладки используется внутрисхемный эмулятор,который является сложным и дорогим устройством, зачастую недоступным рядовомупользователю.

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

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


1. ОСНОВЫ АРХИТЕКТУРЫМИКРОКОНТРОЛЛЕРОВ1.1. ОСНОВНЫЕ ТИПЫМИКРОКОНТРОЛЛЕРОВ И ИХ АРХИТЕКТУРА

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

·       Встраиваемые (embedded) 8-разрядные МК;

·       16- и 32-разрядные МК;

·       сигнальные процессоры.

Промышленностью выпускаются очень широкая номенклатуравстраиваемых МК. В них все необходимыересурсы (память, устройства ввода-вывода и т.д.) располагаются на одномкристалле с процессорным ядром [3]. Если подать питание и тактовые импульсы насоответствующие входы МК, то можно сказать, что он как бы «оживет» и с нимможно будет работать. Обычно МК содержат значительное число вспомогательныхустройств, благодаря чему обеспечивается их включение в реальную систему с использованием минимального количествадополнительных компонентов. В состав этих МК входят:

·       Reset);

·       

·       

·       E(E)PROM) ипрограммный интерфейс;

·       

·       

Общая структура МК показана на рис. 1.1. Эта структурадает представление о том, как МК связывается с внешним миром.

Более сложные встраиваемые МК могут дополнительнореализовывать следующие возможности:

·       

·       ROM);

·       

·       

·       

·       

·       

Все эти возможности значительно увеличивают гибкостьприменения МК и делают более простым процесс разработки систем на и основе.

<img src="/cache/referats/12539/image002.gif" v:shapes="_x0000_s1212">

Рис. 1.1. Структурамикроконтроллера.

НекоторыеМК (особенно 16- и 32-разрядные) используют только внешнюю память, котораявключает в себя как память программ (ROM), так и некоторый объем памяти данных (RAM), требуемый для данного применения.Они применяются в системах, где требуется большой объем памяти и относительноене большое количество устройств (портов) ввода/вывода. Типичным примеромприменения такого МК с внешней памятью является котроллер жесткого диска (HDD) с буферной кэш-памятью,который обеспечивает промежуточное хранение и распределение больших объемовданных (порядка нескольких мегабайт). Внешняя память дает возможность такомумикроконтроллеру работать с более высокой скоростью, чем встраиваемый МК.

Цифровыесигнальные процессоры (DSP)– относительно новая категория процессоров. Назначение DSP состоит в том, чтобы получатьтекущие данные от аналоговой системы, обрабатывать данные и формироватьсоответствующий отклик в реальном масштабе времени. Они обычно входят в составсистем, используясь в качестве устройств управления внешним оборудованием, и непредназначены для автономного применения.

Система команд.

В зависимости от числа используемых кодов операций системыкоманд МК можно разделить на две группы: CISC и RISC.Термин CISC означает сложную систему команд и является аббревиатуройанглийского определения Complex Instruction Set Computer.Аналогично термин RISC означает сокращенную систему команд и происходит отанглийского Reduce Instruction Set Computer.Систему команд МК 8051 можно отнести к типу CISC. Однако, не смотря на широкуюраспространенность этих понятий, необходимо признать, что сами названия неотражают главного различия между системами команд CISC и RISC. Основная идеяRISC архитектуры – это тщательный подбор таких комбинаций кодов операций,которые можно было бы выполнить за один такт тактового генератора. Основнойвыигрыш от такого подхода – резкое упрощение аппаратной реализации ЦП ивозможность значительно повысить его производительность.

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

Однако в настоящее время грань между CISC и RISCархитектурой стремительно стирается. Например, МК семейства AVR фирмы Atmel имеют систему команд из 120 инструкций,что соответствует типу CISC. Однако большинство из них выполняется за одинтакт, что является признаком RISC архитектуры. Сегодня принято считать, чтопризнаком RISC архитектуры является выполнение команд за один такт тактовогогенератора. Число команд само по себе значения уже не имеет.

Типы памяти МК.

Можно выделить три основных вида памяти, используемой вМК:

а) память программ;

б) память данных;

в) регистры МК.

Память программпредставляет собой постоянную память, предназначенную для хранения программногокода и констант. Эта память не изменяет содержимого в процессе выполненияпрограммы. Память данныхпредназначена для хранения переменных в ходе выполнения программы. Регистры МК – этот вид памяти включаетвнутренние регистры процессора и регистры, которые служат для управленияпериферийными устройствами.

Для хранения программ обычно служит один из видовпостоянной памяти: ROM(масочные ПЗУ), PROM(однократно программируемые ПЗУ), EPROM (электрически программируемые ПЗУ с ультрафиолетовым стиранием)или EEPROM (ПЗУ сэлектрической записью и стиранием, к этому виду также относятся современныемикросхемы Flash-памяти).Все эти виды памяти являются энергонезависимыми – это означает, что содержимоепамяти сохраняется после выключения питания МК.

Многократно программируемые ПЗУ – EPROM и EEPROM (Electrically Erasable ProgrammableMemory)подразделяются на ПЗУ со стиранием ультрафиолетовым (УФ) облучением(выпускаются в корпусах с окном), и МК с электрически перепрограммируемойпамятью, соответственно.

 В настоящее времяпротоколы программирования современной EEPROM памяти позволяют выполнять программирование МКнепосредственно в составе системы, где он работает. Такой способпрограммирования получил название – ISP (In System Programming).И теперь можно периодически обновлять программное обеспечение МК без удаленияиз платы. Это дает огромный выигрыш на начальных этапах разработки систем набазе МК или в процессе их изучения, когда масса времени уходит на многократныйпоиск причин неработоспособности системы и выполнение последующих цикловстирания-программирования памяти программ.

Функционально Flash-память мало отличается от EEPROM. Основное различие состоит вспособности стирания записанной информации. В памяти EEPROM стирание производится отдельнодля каждой ячейки, а во Flash-памятистирание осуществляется целыми блоками.

ОЗУ(RAM) – оперативноезапоминающее устройство, используется для хранения данных. Эту память называютеще памятью данных. Число циклов чтения и записи в ОЗУ неограниченно, но приотключение питания вся информация теряется.


1.2. Аппаратные средства 1.2.1. Запуск микроконтроллера

Во многих приложениях используется батарейное питание МК,а в некоторых случаях применяются даже конденсаторы большой емкости, которыеобеспечивают сохранение работоспособности при кратковременных отключеньяхпитания. Поэтому проблема энергопотребления (энергосбережения) весьма актуальна для МК. Так какпрактически все современные МК производятся по КМОП технологии, то онипотребляют значительно меньше мощности, чем ранее выпускавшиеся биполярные или n-МОП – микроконтроллеры.

Сброс в начальное состояние.

На рис. 1.3. изображена схема сброса. Эту схему лучшеговсего использовать в случаях, когда гарантированно поддержание напряженияпитания в рабочем диапазоне. Кнопка RESET используется в процессе разработки устройств для сброса МКв начальное состояние. (См. рис. 1.2. )

R1 10К

К микроконтроллеру

Кнопка ручного запуска RESET

Vcc

<img src="/cache/referats/12539/image003.gif" v:shapes="_x0000_s1067 _x0000_s1068 _x0000_s1069 _x0000_s1070 _x0000_s1071 _x0000_s1072 _x0000_s1073 _x0000_s1074 _x0000_s1075 _x0000_s1076 _x0000_s1077 _x0000_s1078 _x0000_s1079 _x0000_s1080 _x0000_s1081 _x0000_s1082 _x0000_s1083 _x0000_s1084">


Рис. 1.2. Схема RESET.

1.2.2. Тактирование и командные циклы

Существует три способа задания тактовой частоты МК. Первыйспособ – использование кварцевого резонатора. Второй способ синхронизации –использования RCгенератора. Третий способ синхронизации – это подача тактовых импульсов отвнешнего генератора. С его помощью можно задать любую частоту синхронизации.

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

Тактовые сигналы

Командный цикл

Один командный цикл

<img src="/cache/referats/12539/image005.gif" v:shapes="_x0000_s1239 _x0000_s1235 _x0000_s1236 _x0000_s1237 _x0000_s1238">


Рис. 1.3. Командный цикли машинные такты.

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

1.2.3. Программный счетчик и АЛУ

Программный счетчик (Program Counter) или счетчик команд (СК)используется для указания следующей командывыполняемой программы. Реализация этой функции значительно усложняется, когданеобходимо сохранить содержимое СК при вызове подпрограмм и обработке запросовпрерывания или обеспечить ветвление программы. СК представляет собой счетчик спараллельным вводом/выводом. В процессорах с Принстонской архитектуройсодержимое СК поступает оп шине данных в схему управления памятью, указываяадрес считываемой команды. Часто СК входит в состав схемы управления памятью –это позволяет избежать передачи адреса по внутренней шине данных. Важныеособенности функционирования СК – параллельная загрузка нового содержимого, поступающегос шины данных, возможность сброса (возврат к адресу первой команды программы),реализация инкремента. В 8-разрядных МК разрядность СК обычно больше, чем 8бит. При загрузки в СК нового адреса, он поступает по шине данных частями по8-бит, что требует выполнения дополнительных машинных циклов. Чтобы сократитьвремя загрузки СК, некоторые МК имеют команды ветвления, при которыхзагружается только 8 младших разрядов адреса, а старшие разряды остаются безизменения. При выполнении такой команды достаточно передать по шине данныхтолько один байт, тогда как для загрузки полного 16-разрядного адреса требуетсяпересылка двух байт.

После чтения очередной команды содержимое СК увеличивается(инкрементируется), чтобы обеспечить переход к адресу следующей команды. Есливыполняется вызов подпрограммы или происходит прерывание, то адрес возврата(текущее состояние СК) может быть сохранен в стеке без выполнениядополнительных тактов для инкремента содержимого СК. В работе с МК необходимоследить, чтобы значение СК не вышло за пределы памяти программ. Так как этоможет привести к выполнению неопределенных команд и непредсказуемомурезультату.

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

АЛУ можно представить как аппаратный блок, которыйобрабатывает два слова данных (операнды) и сохраняет полученный результат (см.рис. 1.4). Как вводятся операнды в АЛУ и куда поступает результат – зависит отконкретного типа МК. В этом состоит одно из основных различий между разнымитипами процессоров и системами команд. Некоторые МК выбирают один операнд изрегистра-аккумулятора и сохраняют результат также в аккумуляторе. Другие МКпозволяют использовать различные источники операндов и места размещениярезультатов.

<img src="/cache/referats/12539/image007.gif" v:shapes="_x0000_s1241">


Рис. 1.4. Структура АЛУ.

АЛУ обычно работает только с положительными целымичислами. Однако при выполнении вычитания получаются отрицательные числа, есливычитаемое больше уменьшаемого. Для представления отрицательных чиселиспользуется дополнительный код – «дополнение до двух». Это необходимоучитывать при знакомстве с работой АЛУ.

Вместо вычитания одного числа из другого, происходитдобавление отрицательного числа:

А – В = А + (-В),

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

-В = ( В ^ 0хff ) + 1, где ^ — операция«исключительное или».

Сложность АЛУ во многом определяет сложность всего МК вцелом. Часто над созданием АЛУ работает группа разработчиков, сравнимая посоставу с той, которая работает над остальной частью микропроцессора илимикроконтроллера. От того, как работает АЛУ, зависит функционированиепроцессора, входящего в состав МК, а значит и всего МК в целом.

1.2.4. Подпрограммы и функции

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

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

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

Прерывания.

Прерывание – это запуск специальной подпрограммы(называемой «обработчиком прерывания» или «программой обслуживанияпрерывания»), который вызывается сигналом аппаратуры. На время выполнения этойподпрограммы реализация текущей программы останавливается(см. рис.1.5). Термин«запрос на прерывание» (interrupt request)используется потому, что иногда программа отказывается подтвердить прерывание ивыполнить обработчик прерывания немедленно.

<img src="/cache/referats/12539/image009.gif" v:shapes="_x0000_s1243">


Рис. 1.5. Выполнениепрерываний.

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

Обработчик всегда обеспечивает следующуюпоследовательность действий:

1.     Сохранитьсодержимое регистров контекста.

2.     Сброситьконтроллер прерываний и оборудование, вызвавшее запрос.

3.     Обработатьданные.

4.     Восстановитьсодержимое регистров контекста.

5.     Вернуться кпрерванной программе.

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

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

Вложенные прерывания сложны некоторым типам МК, которые неимеют стека. Эти прерывания так же могут вызывать проблемы, связанные спереполнением стека.

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

При обработке прерывания содержимое регистра состоянияобычно (но не всегда) автоматически сохраняется вместе с содержимым СК передобработкой прерывания. Это избавляет от необходимость сохранять его в памятипрограммными средствами с помощью команды пересылки, а затем восстанавливатьпри возврате к исходной программе. Однако такое автоматическое сохранениереализуется не во всех типах МК.

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

«Вектор прерывания» – это адрес, который загружается в СКпри переходе к обработчику прерывания. Существует несколько типов векторов.Адрес, который загружается в СК при запуске МК (RESET) называется «вектор сброса». Дляразличных прерываний могут быть заданы различные вектора. Но иногда различнымпрерываниям назначается один вектор. Это не должно вызвать проблем при работе сМК, так как чаще всего он исполняет одну единственную программу. В МК, гдеаппаратная часть хорошо известна, не должно возникнуть каких либо проблем присовместном использовании векторов прерываний.

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

Таймеры.

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

Их можно использовать для точного формирования временныхинтервалов, подсчета импульсов на выходах МК, формирования последовательностиимпульсов, тактирования приемопередатчика последовательного канала связи.Таймеры/счетчики способны вырабатывать запросы прерываний, переключая ЦП на ихобслуживание по событиям и освобождая его от необходимости периодическогоопроса состояний таймеров. Поскольку основное применение МК находят в системахреального времени, таймеры/счетчики являются их обязательным элементом. Внекоторых модификациях число таймеров достигает 32.

1.2.5. Ввод/вывод данных

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

Во многих МК отдельные выводы портов могут бытьзапрограммированы на ввод или вывод данных. Необходимо обратить особое вниманиена то, при вводе данных считывается значение сигнала, поступающего на внешнийвывод, а не содержимое триггера данных. Если к внешнему выводу подключенывыводы других устройств, то они могут установить свой уровень выходногосигнала, который будет считан вместо ожидаемого значения данных, записанных втриггер. В некоторых МК существует возможность выбора между чтением данных,установленных на выходе триггера или на внешнем выводе.

Когда на шину необходимо вывести «0» или «1», то сначалазаписывают соответствующее значение в триггер данных, а затем с помощьютриггера управления на выходе устанавливается необходимый уровень потенциала.Триггер управления разрешает вывод данных на шину. В современных МКобеспечивается индивидуальный доступ к триггерам данных и управления с помощьадресной шины.

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

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

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

Аналоговый компаратор.

Часто в МК встраивается аналоговый компаратор напряжений.Компаратор представляет собой простую схему, которая, которая сравнивает дванапряжения. Обычно один сигнал называют входным,а другой опорным.[7] На выходеустанавливается «1», если входное напряжение больше, чем опорное (см. рис.1.6). этот способ наиболее удобно использовать в таких устройствах, кактермостаты, где необходимо контролировать достижение определенного уровняизмеряемой величины, которая задается значением входного напряжения.

<img src="/cache/referats/12539/image011.gif" v:shapes="_x0000_s1245">


Рис. 1.6. Сигналы навходе и выходе аналогового компаратора.

Программирование устройств.

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

Часто оборудования для программирования оказываетсяслишком дорогим, особенно для радиолюбителей и предприятий малого бизнеса. Но внекоторых случаях для программирования требуется весьма простое и доступноеоборудование. К примеру, некоторые модели PIC и AVRмикроконтроллеров программируются очень легко. Существует также устройства,которые не требуют оборудования для программирования, на пример, МК Basic STAMP, или имеют встроенныйаппаратно-программный блок, избавляющий от необходимости использования внешнегооборудования, кроме источника повышенного напряжения для программирования, какМК 68НС05.

Очень важный аспект, касающийся программированияустройств, заключается в том, что может ли устройство быть запрограммировано всистеме. Это называется внутрисистемное программирование (ВСП) – от английскогоIn-System Programming (ISP). Если МК допускает возможностьтакого программирования,

еще рефераты
Еще работы по компьютерам и переферийным устройствам