Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аппаратные средства микрокрнтроллеров.doc
Скачиваний:
0
Добавлен:
14.09.2019
Размер:
224.26 Кб
Скачать

Тактирование системы

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

Большинство микроконтроллеров способны работать в очень широком диапазоне частот: от нуля до десятков мегагерц. Это возможно благодаря использованию полностью статической логики. Некоторые разработчики используют тактовую частоту в 1 Гц и менее при отладке программного обеспечения. Широкий диапазон возможных рабочих частот позволяет разработчику лучше настроить микроконтроллер на выполнение конкретных заданных функций.

Существует три способа задания тактовой частоты микроконтроллера, каждый из которых имеет свои достоинства и недостатки:

  1. Использование кварцевого резонатора, подключенного согласно схеме на рис. 1.

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

Рис. 10 – Тактирование с использованием кварцевого резонатора

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

  1. Использование RC-генератора.

В этом случае необходимая частота тактовых импульсов задается путем соответствующего выбора постоянной времени RC-цепи (рис 11). Это самый дешевый способ задания частоты, но, к сожалению, наименее точный. Если кварц обеспечивает поддержание частоты с точностью в тысячные доли процента, керамический резонатор – в десятые доли процента, то RC-цепь дает точность порядка десятков процентов.

Рис. 11 – Подключение RC-цепи для генерации тактовых импульсов

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

  1. Подача тактовых импульсов от внешнего генератора.

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

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

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

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

Программный счетчик

Программный счетчик PC (Program Counter) используется для указания следующей команды выполняемой программы.

Рис. 12 – Программный счетчик

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

Важные особенности функционирования программного счетчика:

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

  2. Возможность сброса (возврат к адресу первой команды программы)

  3. Реализация инкремента (увеличение содержимого для адресации следующей команды)

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

Параллельная загрузка используется для записи в PC адреса перехода при выполнении команды «jmp» (безусловный переход) или «call» (вызов подпрограммы). В 8-разрядных микроконтроллерах разрядность PC обычно больше, чем 8 бит (так как при такой разрядности адреса объем доступной памяти программ составляет всего 256 байт). При загрузке в PC нового адреса, он поступает по шине данных частями по 8 бит, что требует выполнения дополнительных машинных циклов. Чтобы сократить время загрузки PC, некоторые процессоры имеют команды ветвления «branch», при которых загружаются только 8 младших разрядов адреса, а старшие разряды остаются без изменения. При выполнении такой команды достаточно передать по шине данных только один байт, тогда как для загрузки полного 16-разрядного адреса требуется пересылка двух байт.

Начальное содержимое PC после запуска микроконтроллера может иметь любое значение. Хотя наиболее очевидным представляется использование в качестве начального значения 0000h, некоторые микроконтроллеры начинают выполнение программы с других адресов. Аналогичная ситуация имеет место с адресами («векторами») прерываний. При обслуживании прерываний в PC обычно загружают содержимое, которое отличается от адреса, загружаемого при начальном запуске микроконтроллера, однако для реализации прерывания и запуска могут использоваться одни и те же аппаратные средства.

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

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

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