Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
план.docx
Скачиваний:
37
Добавлен:
17.02.2016
Размер:
2.61 Mб
Скачать

Содержание

1.Анализ развития и функция микроконтроллерных устройств

1.1 Микроконтроллер истори развития, классификация

1.2 Архитектура микроконтроллеров

1.3 Программная среда микроконтроллеров

2.1 микроконтроллер устройства

Первые микроконтроллеры

Термин«микроконтроллер» вытеснил из употребления использовавшийся ранее термин«однокристальная микро-ЭВМ». Первый же патент на однокристальную микро-ЭВМ был выдан в1971 году инженерам М. Кочрену и Г. Буну, сотрудникам Texas Instruments, предложившим разместить на одном кристалле не только микропроцессор, но и память, а также устройства ввода-вывода. В1972 году был выпущен первый 4-разрядный МКTMS1000, который содержал 32 байта памяти данных, 1Кбайт памяти программ, часы и поддержку ввода-вывода. Однако данной разработке не придали особого значения, в связи с этим часто ошибочно первым МК называют микросхемуI8048, созданную в1976 г. Фирмой Intel.

Помимо центрального процессора, на ее кристалле находились1 Кбайт памяти программ, 64 байта памяти данных, два8-битных таймера, генератор часов и 27 портов ввода/вывода. Данная разработка уже не осталась незамеченной, и МК семейства8048 использовались в игровых приставках, клавиатурах первыхIBM PC и в ряде других устройств.

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

Микроконтроллер 8051

С точки зрения технологии МКI8051 являлся для своего времени очень сложным изделием– на кристалле было размещено128 тыс. транзисторов, что в4 раза превышало количество транзисторов в16-разрядном МПI8086. Этот8-разрядный чип положил начало целому семейству микроконтроллеров, которые господствовали на рынке вплоть до недавнего времени. АналогиI8051 выпускали многие компании, в том числе и советские предприятия в Минске, Киеве, Воронеже, Новосибирске. На МК8051 выросло целое поколение отечественных разработчиков. На сегодняшний день существует более 200 модификаций микроконтроллеров, совместимых сI8051, выпускаемых десятками компаний. Однако51 семейство постепенно сдает свои позиции более молодым и совершенным микроконтроллерам.

Motorola и Zilog

Другими яркими представителями восьмиразрядных МК явились изделия компанийMotorola (68HC05, 68HC08, 68HC11) иZilog (Z8).

Motorola длительное время не предоставляла средств, позволяющих дешево и быстро начать работать с ее МК, что явно не способствовало их популярности у некорпоративных разработчиков. Так и в нашей стране их популярность не очень высока, возможно, еще в силу отсутствия достаточного количества доступных учебных материалов и средств разработки. Однако стоит заметить, что за рубежом МК отMotorola занимают лидирующее положение на рынке. Легендарный МКZ8 фирмыZilog, основанной бывшими сотрудниками Intel, еще недавно казавшиеся весьма многообещающими, не выдержали гонки в стремительно развивающемся секторе рынка, и сегодня система команд МКZ8 выглядит достаточно устаревшей.

Microchip

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

Scinex

На волне успеха МКPIC появились очень похожие на них изделия фирмыScinex. Они обладали уже52 командами против33 команд уPIC. В частности, были добавлены удобные инструкции для работы с памятью, улучшена архитектура, так что каждая команда выполнялась за один такт, что при прочих равных условиях обеспечивало увеличение быстродействия в4 раза по сравнению сPIC МК. К тому же тактовая частота МК фирмыScinex достигала100 МГц. Столь высокая скорость микроконтроллера позволила его создателям отказаться от различной периферии, которую рекомендуется реализовывать чисто программными средствами. При этом МК содержит лишь сверхбыстрое ядро, память и порты ввода/вывода.

Atmel

Настоящая революция в мире микроконтроллеров произошла в1996 году, когда корпорацияAtmel представила свое семейство чипов на новом прогрессивном ядреAVR. МКAVR имеют более развитую систему команд, насчитывающую до133 инструкций, высокую производительность, приближающуюся к1 MIPS/МГц, Flash-ПЗУ программ с возможностью внутрисхемного перепрограммирования. Многие чипы имеют функцию самопрограммирования. AVR-архитектура оптимизирована под язык высокого уровня Си. Кроме того, все кристаллы семейства совместимы"снизу вверх". Более продуманная архитектураAVR, быстродействие, превосходящее контроллерыMicrochip, привлекательная ценовая политика способствовали оттоку симпатий многих разработчиков от недавних претендентов на звание контроллера №1. Не малую роль в популярности МКAVR сыграла доступность программного обеспечения и средств поддержки разработки. Хорошо известно, что развитые средства поддержки разработок при освоении и знакомстве с любым микроконтроллерным семейством играют не менее значимую роль, чем сами кристаллы. ФирмаAtmel уделяет этому вопросу большое внимание и предлагает большое число бесплатно распространяемых программных продуктов. Для начинающего разработчика немаловажным является и то, что для программированияAVR МК можно обойтись вовсе без аппаратного программатора. Самым популярным способом программирования этих микроконтроллеров является5-проводное соединение с параллельным портом персонального компьютера. Можно считать, чтоAVR постепенно становится индустриальным стандартом среди8-разрядных МК общего назначения. Они легкодоступны, отличаются в среднем невысокой стоимостью, успешно конкурируя с изделиями компанииMicrochip. Все это делает МКAtmel AVR одними из самых привлекательных и многообещающих на сегодняшний день.

Список упомянутых компаний и выпускаемых ими МК далеко не полный. Среди крупных производителей МК следует упомянуть и такие известные фирмы как Cypress, Texas Instruments, Dallas Semiconductor, Philips, Siemens, STMicroelectronics, Futjitsu, Mitsubishi Electronics, National Semiconductor и многие другие. На сегодняшний день большой популярностью у разработчиков вполне заслуженно пользуются8-разрядныеPIC-микроконтроллеры фирмыMicrochip Technology иAVR-микроконтроллеры фирмыAtmel.

Понятие микроконтроллера

С появлением однокристальных микро-ЭВМ произошел настоящий бум автоматизации в области управления. Именно это обстоятельство и определило используемый сегодня термин«микроконтроллер» (от англ. control – управление). Микроконтроллер(МК) – компьютер на одной микросхеме, предназначенный для управления различными электронными устройствами и осуществления взаимодействия между ними в соответствии с заложенной в него программой. Основной особенностью современного этапа развития микропроцессорных систем (МПС) является завершение перехода от систем, выполненных на основе нескольких больших интегральных схем, к МК. Последние отличаются от универсальных микропроцессоров(МП) тем, что на одном кристалле объединяют все основные элементы МПС: центральный процессор(ЦП), постоянное запоминающее устройство(ПЗУ), оперативное запоминающее устройство(ОЗУ), порты ввода/вывода и целый ряд специализированных электронных устройств. Поскольку встроенные устройства не требуют никаких внешних электрических цепей, они обладают повышенной надежностью. ПЗУ служит для хранения выполняемой МК программы. ОЗУ предназначено для временного хранения переменных и организации пула внутренних регистров МК. Порты ввода-вывода обеспечивают сопряжения МК с внешними устройствами(в частности с персональным компьютером, поскольку подавляющее число МК поддерживают стандартный интерфейсRS-232C).

К наиболее распространенным специализированным устройствам относятся:

  • АЦП– аналого-цифровые преобразователи(ADC – Analog-to-Digital Converter);

  • ƒ ЦАП– цифроаналоговые преобразователи(DAC – Digital-to-Analog Converter);

  • ƒ Цифровые потенциометры;

  • ƒ Различные интерфейсы связи;

  • ƒТаймеры– устройства, позволяющие осуществлять их программирование на выдачу прямоугольных импульсов с заданными периодом и длительностью, а также отсчитывать интервалы времени между соседними входными импульсами.

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

Структурная схема микроконтроллера

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

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

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

  • ƒ использование типовых функциональных периферийных модулей(таймеры, ЦАП, АЦП, контроллеры последовательных интерфейсов, и др.), алгоритмы работы которых практически не имеют отличий в МК различных производителей;

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

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

модульного МК приведена на рис. 1.

Рисунок1 – Модульная организация МК

Процессорное ядро включает в себя:

  • центральный процессор;

  • внутреннюю контроллерную магистраль(ВКМ), состоящую из шин адреса, данных и управления;

  • схему синхронизации МК;

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

Изменяемый функциональный блок включает в себя модули памяти различного типа и объема, порты ввода/вывода, модули тактовых генераторов(Г), таймеры. В состав изменяемого функционального блока могут входить такие дополнительные модули как компараторы напряжения, АЦП, ЦАП и др. Что касается модуля обработки прерываний, то в относительно простых МК он входит в состав процессорного ядра, в более сложных МК он представляет собой отдельный модуль с развитыми возможностями. Каждый модуль проектируется для работы в составе МК с учетом конкретного протокола ВКМ. Данный подход позволяет создавать разнообразные по структуре МК в пределах одного семейства.

Классификация микроконтроллеров

Сегодня в мире выпускаются тысяч типов МК. Основным признаком для их классификации является разрядность данных, обрабатываемых арифметико-логическим устройством(АЛУ) микропроцессорного ядра. По этому признаку они делятся на:

  • 4-разрядные– самые простые и дешевые МК с минимальными функциональными возможностями, предназначенные для низкостоимостных приложений;

  • 8-разрядные– наиболее многочисленная группа благодаря оптимальному сочетанию цены и возможностей. Наиболее яркие представители этой группы– МК серииMCS-51 (Intel) и совместимые с ними, а такжеPIC (Microchip), HC68 (Motorola), Z8 (Zilog).

  • 16-разрядные– класс более высокопроизводительных, чем8-разрядные МК, устройств, но при этом и более дорогостоящих;

  • 32- и 64-разрядные– МК, являющиеся обычно модификациями универсальных микропроцессоров.

В отдельную группу выделяют цифровые сигнальные процессоры(DSP – Digital Signal Processor) – специализированные МК, ориентированные на использование в системах обработки сигналов.

Сегодня наибольшая доля мирового рынка микроконтроллеров принадлежит8-разрядным устройствам(около50% в стоимостном выражении), широко используемым в промышленности, бытовой и компьютерной технике. За ними следуют16-разрядные МК иDSP (каждая из групп занимает примерно по20% рынка).

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

Архитектура процессорного ядра МК

Основными характеристиками, определяющими производительность

процессорного ядра МК, являются:

1. система команд процессора и способы адресации операндов;

2. набор регистров для хранения промежуточных данных;

3. организация процессов выборки и исполнения команды.

CISC- иRISC-архитектуры

С точки зрения системы команд и способов адресации операндов процессорное ядро современных8-разрядных МК к одной из двух архитектур:

CISC-архитектура(Complicated Instruction Set Computer), реализующая так называемую полную систему команд;

RISC-архитектура(Reduced Instruction Set Computer), реализующая сокращенную систему команд.

CISC-процессоры выполняют большой набор команд с развитыми возможностями адресации, предоставляя разработчику выбор наиболее подходящей команды для выполнения необходимой операции. Такая система команд, как правило, неортогональна, то есть не все команды могут использовать любой из способов адресации применительно к любому из регистров процессора. Выборка команды и ее выполнение осуществляются в течение нескольких циклов работы МК. К МК сCISC-архитектурой относятся МК фирмы Intel с ядромMCS-51, которые поддерживаются в настоящее время целым рядом производителей, МК семейств НС05, НС08 и НС11 фирмыMotorola и ряд других.

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

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

Фон-неймановская(принстонская) и гарвардская архитектуры

С точки зрения организации процессов выборки и исполнения команды в современных МК применяется одна из двух архитектур МПС: фон-неймановская (принстонская) или гарвардская.

Основной особенностью фон-неймановской(принстонской) архитектуры является использование общей памяти для хранения программ и данных, как показано на рис. 2.

Рисунок2 – Структура МПС с фон-неймановской архитектурой

Основное преимущество архитектуры Фон-Неймана– упрощение устройства МПС за счет обращения только к одной общей памяти. Использование единой области памяти позволяет оперативно перераспределять ресурсы между областями программ и данных, что существенно повышает гибкость МПС с точки зрения разработчика программного обеспечения. Размещение стека в общей памяти облегчает доступ к его содержимому.

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

автономных систем управления.

Рисунок3 – Структура МПС с гарвардской архитектурой

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

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

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

Действительно объективной количественной оценкой эффективности работы МК можно считать скорость ВКМ, определяющую производительность МК, т.е. число операций, которое может быть выполнено за единицу времени. Производительность МК измеряют вMIPS (Million Instructions per Second – миллион инструкций в секунду).

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

Особенности системы команд микроконтроллеров

Так же, как и в любой микропроцессорной системе, набор команд ЦП МК включает в себя четыре основные группы команд:

  • ƒ команды пересылки данных;

  • ƒ арифметические команды;

  • ƒ логические команды;

  • ƒ команды переходов.

Для реализации возможности независимого управления разрядами портов

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

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

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

Организация памяти микроконтроллеров

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

  • ƒ Память программ представляет собой ПЗУ, предназначенное для хранения программного кода(команд) и констант. Ее содержимое в ходе выполнения программы не изменяется.

  • ƒ Память данных представляет собой ОЗУ и предназначена для хранения переменных в процессе выполнения программы.

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

Также можно выделить два дополнительных класса памяти:

  • ƒ Стековая память, организуемая для вызова подпрограмм и обработки прерываний.

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

Память программ

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

Выделяют следующие типы энергонезависимой памяти программ:

1) ПЗУ масочного типа– mask-ROM. Содержимое ячеек ПЗУ этого типа заносится при ее изготовлении с помощью технологических шаблонов– масок– и не может быть впоследствии изменено. Поэтому МК с таким типом памяти программ используются только после длительной опытной эксплуатации. Основным недостатком данной памяти является необходимость значительных затрат на создание комплекта фотошаблонов и их внедрение в производство. Обычно такой процесс занимает2-3 месяца и является экономически выгодным только при выпуске свыше нескольких тысяч приборов. Главное достоинство ПЗУ масочного типа– высокая надежность, обусловленная программированием в заводских условиях с последующим контролем результата.

2) Электрически программируемые ПЗУ с плавкими перемычками(ЭПЗУ) – данный тип ПЗУ программируются потребителем путем пропускания импульсов тока до разрушения перемычек, соответствующих битам, которые должны стать нулевыми.

3) Перепрограммируемые ПЗУ с ультрафиолетовым стиранием– EPROM (Erasable Programmable ROM). ПЗУ данного типа программируются электрическими сигналами и стираются с помощью ультрафиолетового облучения. Ячейка памятиEPROM представляет собой МОП-транзистор с«плавающим» затвором, заряд на который переносится с управляющего затвора при подаче соответствующих электрических сигналов. Для стирания содержимого ячейки она облучается ультрафиолетовым светом, который сообщает заряду на плавающем затворе энергию, достаточную для преодоления потенциального барьера и стекания на подложку. Этот процесс может занимать от нескольких секунд до нескольких минут. МК сEPROM допускают многократное программирование и выпускаются в керамическом корпусе с кварцевым окошком для доступа ультрафиолетового света. Такой корпус стоит довольно дорого, что значительно увеличивает стоимость МК.

4) Однократно программируемые ПЗУ– OTPROM (One-Time Programmable ROM).

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

5) Электрически стираемые перепрограммируемые ПЗУ– EEPROM (Electrically Erasable Programmable ROM). ПЗУ данного типа можно считать новым поколением EPROM, в которых стирание ячеек памяти производится электрическими сигналами.

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

EEPROM-памяти и с тем, что почти одновременно с ней появился похожий наEEPROM, но более дешевый тип памятиFlash-ПЗУ.

6) ПЗУ с электрическим стиранием типаFlash – Flash-ROM. ФункциональноFlash-память мало отличается отEEPROM. Основное различие состоит в способе стирания записанной информации. В памятиEEPROM стирание можно осуществлять отдельно для каждой ячейки, а воFlash-памяти стирание производится только целыми блоками. Если необходимо изменить содержимое одной ячейкиFlash-памяти, потребуется перезаписать весь блок. Упрощение декодирующих схем по сравнению сEEPROM привело к тому, что МК сFlash-памятью составляют серьезную конкуренцию МК как с однократно программируемыми ПЗУ, так и с масочными ПЗУ.

Память данных

Память данных МК выполняется, как правило, на основе статического ОЗУ.

Термин«статическое» означает, что содержимое ячеек ОЗУ сохраняется при снижении тактовой частоты МК до сколь угодно малых значений(с целью снижения энергопотребления). Большинство МК имеют такой параметр, как«напряжение хранения информации» – USTANDBY. При снижении напряжения питания ниже минимально допустимого уровняUDDMIN, но выше уровняUSTANDBY работа программы МК выполняться не будет, но информация в ОЗУ сохраняется. При восстановлении напряжения питания можно будет сбросить МК и продолжить выполнение программы без потери данных. Уровень напряжения хранения составляет обычно около1 В, что позволяет в случае необходимости перевести МК на питание от автономного источника и сохранить в этом режиме данные ОЗУ.

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

Так, при программировании МК константы, если возможно, не хранятся как переменные, а заносятся в ПЗУ программ.

Регистры МК

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

В число этих регистров входят обычно регистры процессора(аккумулятор, регистры состояния, индексные регистры), регистры управления(регистры управления прерываниями, таймером), регистры, обеспечивающие ввод/вывод данных(регистры данных портов, регистры управления параллельным, последовательным или аналоговым вводом/выводом). Обращение к этим регистрам может производиться по-разному. В МК сRISC-процессором все регистры(часто и аккумулятор) располагаются по явно задаваемым адресам. Это обеспечивает более высокую гибкость при работе процессора. В некоторых МК все регистры и память данных располагаются в одном адресном пространстве. Это означает, что память данных совмещена с регистрами. Такой подход называется«отображением ресурсов МК на память».

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

Стековая память

Стековой называют память, доступ к которой организован по принципу:

«последним записан– первым считан» (Last Input First Output – LIFO). Данный тип памяти необходим для организации вызова подпрограмм и обработки прерываний. При этих операциях содержимое программного счетчика и основных регистров сохраняется в стеке, а затем восстанавливается при возврате к основной программе. Стек в МК может быть организован как аппаратно, так и программно.

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

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

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

Внешняя память

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

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

Организация связи МК с внешней средой и временем

Порты ввода/вывода

Каждый МК имеет некоторое количество линий ввода/вывода, которые объединены в многоразрядные(чаще8-разрядные) параллельные порты ввода/вывода.

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

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

Различают следующие типы параллельных портов в зависимости от их функций:

  • ƒ однонаправленные порты, предназначенные только для ввода или только для вывода информации;

  • ƒ двунаправленные порты, направление передачи которых(ввод или вывод) определяется в процессе инициализации МК;

  • ƒ порты с альтернативной функцией(мультиплексированные порты). Отдельные линии этих портов используются совместно со встроенными периферийными устройствами МК, такими как таймеры, АЦП, контроллеры последовательных интерфейсов;

  • ƒпорты с программно управляемой схемотехникой входного/выходного буфера.

Различают три типа алгоритмов обмена информацией между МК и внешним устройством через параллельные порты ввода/вывода:

  • ƒ режим простого программного ввода/вывода;

  • ƒ режим ввода/вывода со стробированием;

  • ƒ режим ввода/вывода с полным набором сигналов подтверждения обмена.

Таймеры и процессоры событий

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

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

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

Модуль«классического» таймера8-разрядного МК представляет собой8 или16-разрядный счетчик со специальной схемой управления. Схемотехникой МК обычно предусматривается возможность использования таймера как в режиме формирования последовательности импульсов, так и в режиме счетчика внешних событий, поэтому его часто называют таймером/счетчиком.

Направление счета– только прямое, то есть при поступлении входных импульсов содержимое счетчика инкрементируется.

В зависимости от настройки счетчик может использовать один из источников входных сигналов:

ƒ импульсную последовательность с выхода управляемого делителя частоты;

ƒ сигналы внешних событий, поступающие на вход МК.

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

Рассмотренный«классический» модуль таймера/счетчика широко применяется в различных моделях относительно простых МК. Он может использоваться для измерения временных интервалов и формирования последовательности импульсов. Основными недостатками такого таймера/счетчика являются:

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

ƒ сложности при формировании временных интервалов(меток времени), отличных от периода полного коэффициента счета;

ƒ невозможность одновременного обслуживания сразу нескольких каналов.

Первые из двух перечисленных недостатков были устранены в усовершенствованном модуле таймера/счетчика, используемом в МК семействаMCS-51 (Intel) посредством введения дополнительной логика счетного входа. Такое решение повышает точность измерения временных интервалов, так как пуск и останов таймера производится уже аппаратно. Также в усовершенствованном таймере реализован режим перезагрузки счетчика произвольным кодом в момент переполнения. Это позволяет формировать временные последовательности с периодом, отличным от периода полного коэффициента счета.

Однако эти усовершенствования не устраняют главного недостатка модуля «классического» таймера– одноканального режима работы. Совершенствование подсистемы реального времени МК в данной области ведется по следующим направлениям:

увеличение числа модулей таймеров/счетчиков. Этот путь характерен для фирм, выпускающих МК со структуройMCS-51, а также для МК компанийMitsubishi и Hitachi;

модификация структуры модуля таймера/счетчика, при которой увеличение числа каналов достигается не за счет увеличения числа счетчиков, а за счет введения дополнительных аппаратных средств входного захвата(input capture – IC) и выходного сравнения(output compare – OC). Такой подход используется, в частности, в МК компанииMotorola.

Принцип действия канала входного захвата таймера/счетчика состоит в следующем. Схема детектора события«наблюдает» за уровнем напряжения на одном из входов МК. При изменении уровня логического сигнала вырабатывается импульс записи, и текущее состояние счетчика таймера записывается в16-разрядный регистр входного захвата. Описанное действие в микропроцессорной технике называют событием захвата.

Предусмотрена возможность выбора типа сигнала на входе, воспринимаемого как событие:

  • положительный(передний) фронт сигнала;

  • отрицательный(задний) фронт сигнала;

  • любое изменение логического уровня сигнала.

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

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

Аппаратные средства канала выходного сравнения построены следующим образом.

Цифровой компаратор непрерывно сравнивает текущий код счетчика таймера с кодом, который записан в16-разрядном регистре выходного сравнения. В момент равенства кодов на одном из выходов МК устанавливается заданный уровень логического сигнала.

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

  • ƒ установка высокого логического уровня;

  • ƒ установка низкого логического уровня;

  • ƒ инвертирование сигнала на выходе.

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

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

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

ƒ недостаточное число каналов захвата и сравнения, принадлежащих одному счетчику временной базы. Это не позволяет сформировать синхронизированные между собой многоканальные импульсные последовательности;

ƒ однозначно определенная конфигурация канала(или захват или сравнение) часто не удовлетворяет потребностям решаемой задачи;

ƒ формирование сигналов по методу широтно-импульсной модуляции(ШИМ) требует программной поддержки, что снижает максимально достижимую частоту выходного сигнала.

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

Модуль прерываний

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

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

следующие события:

  • переполнение таймеров/счетчиков;

  • сигналы от каналов входного захвата и выходного сравнения таймеров/счетчиков или от процессора событий;

  • готовность памятиEEPROM;

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

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

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

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

Режимы энергопотребления

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

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

ƒ режим ожидания(Wait mode, Idle mode илиHalt mode). В этом режиме прекращает работу центральный процессор, но продолжают функционировать периферийные модули, которые контролируют состояние объекта управления. При необходимости сигналы от периферийных модулей переводят МК в активный режим, и рабочая программа формирует необходимые управляющие воздействия.

Перевод МК из режима ожидания в рабочий режим осуществляется по прерываниям от внешних источников или периферийных модулей, либо при сбросе МК. В режиме ожидания мощность потребления МКPWAIT снижается по сравнению с активным режимом в5…10 раз;

ƒ режим останова(Stop mode, Sleep mode илиPower Down mode). В этом режиме прекращает работу как центральный процессор, так и большинство периферийных модулей. Переход МК из состояния останова в рабочий режим возможен, как правило, только по прерываниям от внешних источников или после подачи сигнала сброса. В режиме останова мощность потребления МКPSTOP снижается по сравнению с активным режимом примерно на три порядка и составляет единицы микроватт.

Два последних режима называют режимами пониженного энергопотребления.

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

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

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

В большинстве современных МК используется статическая КМОП-технология, поэтому они способны работать при сколь угодно низких тактовых частотах вплоть до нулевых. В справочных данных при этом указывается, что минимальная частота тактирования равнаDC (direct current). Это означает, что возможно использование МК даже в пошаговом режиме, например, для отладки. Мощность потребления МК при низких частотах тактирования обычно соответствует частотеfOSC= 32768 Гц(часовой кварцевый резонатор).

Тактовые генераторы

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

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

Использование кварцевого резонатора позволяет обеспечить высокую точность и стабильность тактовой частоты(разброс частот кварцевого резонатора обычно составляет менее0,01%). Такой уровень точности требуется для обеспечения точного хода часов реального времени или организации интерфейса с другими устройствами. Основными недостатками кварцевого резонатора являются его низкая механическая прочность (высокая хрупкость) и относительно высокая стоимость.

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

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

Зависимость тактовой частоты МК от номиналовRC-цепи зависит от конкретной реализации внутреннего генератора и приводится в руководстве по применению контроллера.

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

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

Ряд последних семейств МК(например, HC08 фирмыMotorola) имеют в своем составе схему тактирования, основанную на принципе синтезатора частоты с контуром фазовой автоподстройки(PLL – phase loop lock). Такая схема работает как умножитель частоты и позволяет задавать тактовую частоту с помощью низкочастотного кварцевого резонатора, что снижает уровень электромагнитного излучения МК. Коэффициенты деления контураPLL могут быть изменены программным путем, что позволяет снизить тактовую частоту(и, соответственно, потребляемую мощность) в промежутки времени, когда высокое быстродействие не требуется.

В некоторых МК семействаAVR фирмыAtmel тактовая частота контроллера, задаваемая внутреннейRC-цепью, также может изменяться программными средствами.

Аппаратные средства обеспечения надежной работы

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

  • ƒ схема формирования сигнала сброса МК;

  • ƒ модуль мониторинга напряжения питания;

  • ƒ сторожевой таймер.

Схема формирования сигнала сброса МК

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

С целью обеспечения надежного запуска от любых источников питания с различной динамикой нарастания напряжения большинство современных МК содержат встроенный детектор напряжения питания(схемаPower-On-Reset – POR), который формирует сигнал сброса при нарастании напряжения питания.

Сразу после выхода из состояния сброса МК выполняет следующие действия:

  • ƒ запускает генератор синхронизации МК. Для стабилизации частоты тактирования внутренними средствами формируется задержка времени;

  • ƒ считывает, если необходимо, энергонезависимые регистры конфигурации в соответствующие регистры ОЗУ;

  • ƒ загружает в счетчик команд адрес начала рабочей программы;

  • ƒ производит выборку первой программы из памяти программ и приступает к выполнению программы.

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

Для перевода МК в состояние сброса при установившемся напряжении питания достаточно подать сигнал высокого или низкого уровня(в соответствии со спецификацией МК) на вход сброса(RESET). Обычно для формирования сигнала сброса при включении напряжения питания и нажатии кнопки сброса используютRC-цепь.

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

Блок детектирования пониженного напряжения питания

В реальных условиях эксплуатации может сложиться такая ситуация, при которой напряжение питания МК опустится ниже минимально допустимого, но не достигнет порога отпускания схемыPOR. В этих условиях МК может«зависнуть»: при восстановлении напряжения питания до номинального значения МК останется неработоспособным.

Для восстановления работоспособности системы после"просадки" напряжения питания МК необходимо снова сбросить. Для этой цели в современных МК реализован дополнительный блок детектирования пониженного напряжения питания.

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

Сторожевой таймер

Если, несмотря на все принятые меры, МК все же«завис», то на случай выхода из этого состояния все современные МК имеют встроенный модуль сторожевого таймера.

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

Принцип действия сторожевого таймера схематично показан на рис. 4.

Рисунок4 – Принцип действия сторожевого таймера.

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

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

Модули сторожевых таймеров конкретных МК могут иметь различные особенности:

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

в некоторых МК при переходе в один из режимов пониженного

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

Использование сторожевого таймера существенно повышает способность к самовосстановлению системы на основе МК.

Дополнительные периферийные модули МК

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

  • ƒ модули последовательного ввода/вывода данных;

  • ƒ модули аналогового ввода/вывода.

Модули последовательного ввода/вывода

Наличие в составе8-разрядного МК модуля контроллера последовательного ввода/вывода стало в последнее время обычным явлением. Задачи, которые решаются средствами модуля контроллера последовательного ввода/вывода, можно разделить на три основные группы:

ƒ связь встроенной микроконтроллерной системы с системой управления верхнего уровня, например, с персональным компьютером. Чаще всего для этой цели используются интерфейсыRS-232C иRS-485;

ƒ связь с внешними по отношению к МК периферийными ИС, а также с датчиками физических величин с последовательным выходом. Для этих целей используются интерфейсыI2C, SPI, а также нестандартные протоколы обмена;

ƒ интерфейс связи с локальной сетью в мультимикроконтроллерных системах. В системах с числом МК до пяти обычно используются сети на основе интерфейсов I2C, RS-232C иRS-485 с собственными сетевыми протоколами высокого уровня. В более сложных системах все более популярным становится протоколCAN.

С точки зрения организации обмена информацией упомянутые типы интерфейсов последовательной связи отличаются:

  • ƒ режимом передачи данных(синхронный или асинхронный);

  • ƒ форматом кадра(число бит в посылке при передаче байта полезной информации);

  • ƒ временными диаграммами сигналов на линиях(уровни сигналов и положение фронтов при переключениях).

Число линий, по которым происходит передача в последовательном коде, обычно равно двум(I2C, RS-232C, RS-485) или трем(SPI и некоторые нестандартные протоколы).

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

Среди различных типов встроенных контроллеров последовательного обмена, которые входят в состав тех или иных8-разрядных МК, сложился стандарт«де-факто» – модульUART (Universal Asynchronous Receiver and Transmitter) – универсальный асинхронный приемопередатчик. Однако большинство модулейUART, кроме асинхронного режима обмена, способны также реализовать и режим синхронной передачи данных. Не все производители МК используют терминUART для обозначения типа модуля контроллера последовательного обмена. Иногда его называютSCI (Serial Communication Interface).

Модули типаUART в асинхронном режиме работы позволяют реализовать протокол обмена для интерфейсовRS-232C, RS-422А, RS-485, в синхронном режиме– нестандартные синхронные протоколы обмена, и в некоторых моделях– SPI.

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

В последнее время появилось большое количество МК со встроенными модулями контроллеровCAN и модулями универсального последовательного интерфейса периферийных устройствUSB (Universal Serial Bus). Каждый из этих интерфейсов имеет достаточно сложные протоколы обмена, для ознакомления с которыми следует обращаться к специальной литературе.

Модули аналогового ввода/вывода

Необходимость приема и формирования аналоговых сигналов требует наличия в МК модулей аналогового ввода/вывода.

Простейшим устройством аналогового ввода в МК является встроенный

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

Более широкие возможности для работы с аналоговыми сигналами дает АЦП, встроенный в МК. Чаще всего он реализуется в виде модуля многоканального АЦП, предназначенного для ввода в МК аналоговых сигналов с датчиков физических величин и преобразования этих сигналов в двоичный код.

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

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

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

Однако данные измерения каждого цикла должны быть считаны программным способом.

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

Atmel Studio

Интегрированная среда разработки (IDE) от компании Atmel для разработки приложений под микроконтроллеры ARM Cortex-M и AVR. Freeware

Подробнее

AVRDUDE

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

Подробнее

WinAVR

Мощная среда разработки с открытым исходным кодом, созданная с целью написания программ для микроконтроллеров серии AVR от компании Atmel. Freeware

Подробнее

BASCOM-AVR

Среда разработки программного кода для микроконтроллеров серии AVR компании Atmel на языке, подобном стандартному Бейсику. Freeware (бесплатная с ограничением на код 4 кБ) и Shareware

Подробнее

CodeVisionAVR

IDE для AVR микроконтроллеров. Из основных достоинств CodeVisionAVR можно отметить то, что он не слишком сложен для самостоятельного освоения, поддерживает все многочисленное семейство микроконтроллеров AVR, формирует емкий и результативный программный код. Платная, есть бесплатная Evaluation-версия с ограничением на код 4 кБ.

Подробнее

VMLAB

Инструмент для разработки и отладки программного кода, а также моделирования работы радиотехнических устройств на базе AVR микроконтроллеров. Freeware

Подробнее

MPLAB

Единая бесплатная интегрированная среда разработки для контроллеров производстваMicrochip

Подробнее

WinPic800

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

Подробнее

PICPgm

Простое программное обеспечение для прошивки PIC-микроконтроллеров, отличающееся стабильностью, качеством и скоростью программирования. Freeware

Подробнее

CooCox CoIDE

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

Подробнее

Keil uVision

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

Подробнее