Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория микропроцессорных систем АТ_Методическое...docx
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
3.72 Mб
Скачать

2.1.6. Блок контроля функционирования и генератор тактовых импульсов

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

Блок контроля функционирования в микроконтроллерах семейства 68НС12/912 в основном аналогичен соответствующему блоку в моделях 68НС705С8А, С9А семейства 68НС05/705 (см. 1.1.7). В его состав входят стороже­вой таймер и монитор частоты тактовых импульсов. Сторожевой таймер вызывает перезапуск микроконтроллера при нарушении выполнения («зависании») текущей программы, монитор тактовых импульсов производит перезапуск при снижении их частоты ниже 200 кГц. При перезапуске в программный счетчик PC загружается содержимое ячейки памяти с адресом $FFFA-FB или $FFFC-FD (см. 2.1.3, табл. 2.14).

Работой блока управляет регистр COPCTL (рис. 2.11), биты которого имеют следующее назначение:

СМЕ - разрешает (при СМЕ=1) или запрещает (при СМЕ=0) работу монитора частоты тактовых импульсов;

Рис. 2.11. Формат содержимого регистра COPCTL (адрес $0016)

FCME - при FCME=1 обеспечивает контроль частоты тактовых импульсов при любом значении СМЕ;

FCM - признак отсутствия или низкой частоты тактовых импульсов (доступен только для чтения), принимает значение FCM=1 по сигналу монитора тактовых им­пульсов;

FCOP - признак нарушения выполнения программы (доступен только для чте­ния), принимает значение FCOP=1 по сигналу сторожевого таймера;

DISR - разрешает при значении DISR=0 перезапуск микроконтроллера по сиг­налу сторожевого таймера (FCOP=1) или монитора тактовых импульсов (FCM=1);

CR2-0 - задают коэффициент деления частоты Kw, определяющий период сра­батывания сторожевого таймера в соответствии с табл. 2.17.

В рабочем режиме после запуска микроконтроллера все биты в регистре COPCTL устанавливаются в 0, а содержимое поля CR2-0 принимает значение 001. Значение бита FCME и содержимое поля CR2-0 после запуска могут быть изменены только однажды.

В моделях 68HC912D60(A), 68HC912DG128(A) изменено назначение 2 бит:

FCMCOP - признак нарушения функционирования (доступен только для чте­ния), принимает значение FCMCOP=1 при низкой тактовой частоте (сигнал мони­тора тактовой частоты) или при нарушении выполнения программы (сигнал сторо­жевого таймера);

WCOP - задает при установке значения WCOP=1 режим работы сторожевого таймера, при котором его сброс осуществляется в конце заданного периода сраба­тывания.

Контроль выполнения программы с помощью сторожевого таймера осуществ­ляется путем периодической записи в регистр COPRST (адрес $0017) чисел $55, а затем $АА. Промежуток времени между записью этих чисел не должен превышать период Tw, значение которого определяется выражением Tw = Kw/Ft, где коэффи­циент Kw задается битами CR2-0 в регистре СОРСТ (табл. 2.17). Если в течение времени Tw запись этих чисел не выполнена, то формируется выходной сигнал RESET# =0 и производится перезапуск микроконтроллера (процедура RESET). При тактовой частоте Ft = 8 МГц значение Tw будет составлять от 1,024 мс до 1,0486 с. Если содержимое поля CR2-0=000, то сторожевой таймер выключается.

Таблица 2.17. Значения коэффициента деления Kw для микроконтроллеров

семейства 68НС12/912

В микроконтроллерах 68HC912D60(A), 68HC912DG128(A) при значении бита WCOP=1 запись соответствующего числа в регистр COPRST должна производить­ся в течение последней четверти периода Tw. Более ранняя запись вызовет переза­пуск микроконтроллера.

Монитор тактовых импульсов контролирует значение частоты тактовых им­пульсов Ft и производит перезапуск микроконтроллера (процедура RESET), если Ft<200 кГц. При этом формируется выходной сигнал RESET# =0 для запуска других устройств системы. Если предполагается работа микроконтроллера на низких час­тотах, то монитор следует отключать установкой значения бита FCME=0.

Генераторы тактовых импульсов (ГТИ), используемые в различных моделях микроконтроллеров семейства 68НС12/912, имеют разную структуру и свои особенно­сти функционирования. В некоторых моделях, например 68НС912ВС32, используется простой ГТИ, который формирует тактовые импульсы, частота которых Ft = Fq/2, где Fq - резонансная частота кварцевого кристалла, подключенного к выводам EXTAL, XTAL, или частота внешних импульсов, подаваемых на вывод EXTAL.

Модели 68НС12ВЕ32, 68HC19D32 имеют в составе ГТИ дополнительный дели­тель частоты, который позволяет снизить тактовую частоту при работе микрокон­троллера в режиме ожидания. Коэффициент деления задается значением трех младших бит SLD2-0 в регистре SLOW (адрес $00Е0). При записи в регистр значе­ний SLD2-0 = 0, 1, 2, 3, 4, 5, 6, 7 реализуются соответственно следующие коэффи­циенты деления: Kd = 1, 2, 4, 8, 16, 32, 64, 128. Таким образом, в режиме ожидания можно обеспечить существенно более медленную работу периферийных устройств, что позволяет сократить потребление мощности.

Наиболее сложную реализацию имеет ГТИ в моделях 68HC912D60, 68HC912DG132. Его структура в основном аналогична модулю формирования так­товых импульсов CGM08 в ряде микроконтроллеров семейства 68НС08/908 (см. 1.2.3). В состав этого ГТИ входят два генератора импульсов - CG и PG, а также ряд делителей частоты.

Генератор CG формирует импульсы с частотой Fq, задаваемой внешним резо­натором. Импульсы от генератора CG поступают на программируемый делитель DS, который выдает последовательность импульсов с частотой Fs = Fq/Ks. Коэффи­циент деления Ks = 2 х S, где S = 1...63 - число, задаваемое содержимым шести младших бит SLDV5-0 регистра SLOW (адрес $003Е). При значении S=0 величина Ks=1. Импульсы с частотой Fs могут выдаваться на вывод РЕ7 порта Е (см. 2.1.6) в качестве сигналов калибрования для внешних устройств.

Генератор PG формирует импульсы с частотой Fp = М х Fr, используя схему фазовой автоподстройки частоты (ФАПЧ), которая выполняет умножение опорной частоты Fr, поступающей на вход этого генератора. Коэффициент умножения М = (SIN + 1) = 1...64, где SIN - число, задаваемое содержимым шести младших битов SIN5-0 в регистре SINR (адрес $0038). Сигналы опорной частоты Fr = Fq/R для генератора PG формируются путем деления на коэффициент R частоты импуль­сов, поступающих с выхода генератора CG. Коэффициент деления R = (REF + 1) = 1...8, где REF - число, задаваемое содержимым трех младших бит REFDV2-0 ре­гистра REFDV (адрес $0039). Путем записи в регистры SINR, REFDV различных значений SIN, REF можно обеспечить на выходе генератора PG импульсы, частота которых Fp = Fq x (M/R) будет находиться в диапазоне от 64Fq до Fq/8.

Для нормальной работы генератора необходимо подключить низкочастотный фильтр (рис. 2.12) к выводу XFC микроконтроллера (см. рис. 2.1). Параметры фильтра (сопротивление резистора Rf и емкость конденсатора Cf) выбираются в за­висимости от режима работы схемы ФАПЧ. Например, при значениях Fr = 4 МГц, Fp = 8 МГц (коэффициенты SIN = $01, REF = $00) рекомендуемые значения Cf = 33 нФ, Rf=2,7 кОм, Cp = 3,3 нФ.

Рис. 2.12. Подключение низкочастотного фильтра к выводу XFC микроконтроллера

Таким образом, в ГТИ формируется 3 последовательности импульсов с часто­тами Fq, Fs, Fp, которые после деления их частоты на 2 могут использоваться в ка­честве тактовых сигналов, определяющих скорость работы процессора и других мо­дулей микроконтроллера. Выбор той или иной последовательности для получения тактовых импульсов определяется значением битов BCSP, BCSS в регистре CLKSEL (рис. 2.13, в). При этом тактовая частота будет составлять Ft = Fq/2, или Fs/2, или Fp/2. Сигналы тактовой частоты ECLK выдаются на вывод РЕ4 порта Е, задавая длительность цикла при обращении к внешней памяти (см. 2.1.6).

Рис. 2.13. Формат содержимого регистров управления ГТИ

Генератор PG содержит схему PLL (Phase-Locked Loop), выполняющую фазо­вую автоподстройку частоты (ФАПЧ), которая работает в режиме захвата (пере­ходный период, когда еще не обеспечивается заданная частота выходных сигналов) или в режиме удержании (рабочий режим, когда поддерживается необходимая час­тота сигналов). Генератор может автоматически переходить из режима захвата в режим удержания, когда генерируемая частота попадает в рабочую полосу частот PLL (автоматическое управление), или переключаться в этот режим путем про­граммной установки бита ACQ# в регистре управления PLLCR (программное управление). Вид управления задается пользователем путем соответствующей уста­новки бита AUTO в регистре PLLCR (рис. 2.13, б).

В состав блока контроля функционирования микроконтроллера входит схема контроля частоты, которая вызывает его перезапуск, если частота Fq импульсов, формируемых генератором CG, оказывается ниже некоторого значения, которое на­ходится в диапазоне 20...200 кГц. Такая ситуация обычно имеет место при отклю­чении или при выходе из строя кварцевого резонатора. В этом случае генератор PG может перейти в режим автономного функционирования, формируя импульсы с собственной частотой Fp = Fc. Значение собственной частоты Fc находится в диа­пазоне 0,5...2,0 МГц (типовое значение 1 МГц). Данный режим реализуется, если в регистре управления PLLCR (рис. 2.13, б) установлено значение бита NOLHM=0. Таким образом обеспечивается работоспособность микроконтроллера при выходе из строя или временном нарушении работы генератора CG, использующего внеш­ний резонатор или источник импульсов.

Текущее состояние и режим работы ГТИ определяются содержимым регистров PLLFLG, PLLCR, CLKSEL (рис. 2 13)

Регистр PLLFLG (рис. 2.13, а) содержит признаки, определяющие состояние ГТИ:

LOCK - признак нормального функционирования генератора PG, имеет значе­ние LOCK=1, если генератор формирует импульсы заданной частоты в пределах допустимого разброса 2,5 %; значение LOCK=0 устанавливается при выходе часто­ты за указанные пределы;

LOCKIF - признак изменения значения LOCK, принимает значение LOCKIF=1, когда признак LOCK изменяется;

LHOME - признак автономного функционирования генератора PG, принимает значение LHOME=1 при нарушении работы генератора CG (отсутствие или низкая частота опорных импульсов), при нормальной работе генератора PG с использова­нием необходимой опорной частоты признак LHOME=0;

LHIF - признак изменения значения LHOME, принимает значение LHIF=1, ко­гда признак LHOME изменяется.

Значения признаков LOCK, LHOME устанавливаются автоматически в соответ­ствии с текущим состоянием ГТИ и доступны только для чтения. Установка в 1 признаков LOCKIF, LHIF вызывает запрос прерывания, если соответствующие би­ты разрешения LOCKIE, LFIIE в регистре PLLCR (рис. 2.13, б) имеют значение 1. Таким образом обеспечивается необходимая реакция процессора на изменение со­стояния ГТИ. Сброс в 0 этих признаков обеспечивается путем записи 1 в соответст­вующий бит регистра PLLFLG.

Регистр PLLCR (рис. 2.13, б) содержит следующие биты, управляющие рабо­той ГТИ:

LOCKIE, LHIE - разрешают при значении 1 формирование запроса прерывания при установке признаков LOCK, LHOME;

PLLON - разрешает при значении PLLON=1 работу генератора PG;

AUTO - задает режим управления работой генератора PG: автоматический при значении бита AUTO=1, программный при значении AUTO=0;

ACQ# - при автоматическом управлении (значение бита AUTO=1) этот бит доступен только для чтения и указывает режим работы генератора; ACQ# =0 в ре­жиме захвата, ACQ# =1 в режиме удержания; при программном управлении (значе­ние бита AUTO=0) запись соответствующего значения этого бита будет задавать режим работы генератора: режим захвата при ACQ# =0, режим удержания при ACQ#=1;

PSTP - разрешает при значении PSTP=1 работу ГТИ в режиме останова (режим «псевдоостанова» используется для ускорения последующего перевода микрокон­троллера в рабочий режим);

NOLHM - запрещает при значении NOLHM=1 автономный режим работы ге­нератора PG при отсутствии необходимой опорной частоты.

При запуске микроконтроллера все биты этого регистра принимают значение 0, кроме PPLON и AUTO, которые устанавливаются в 1 (включение генератора PG и автоматический режим его работы). Бит PLLON не может быть установлен в 0, если в регистре CLKSEL значение бита BCSP=1 (генератор PG задает тактовую час­тоту микроконтроллера). Бит NOLHM может быть установлен в 1 только 1 раз, за­тем его значение не изменяется до следующего запуска.

Регистр CLKSEL (рис. 2.13, в) обеспечивает выбор необходимых сигналов для тактирования работы модулей микроконтроллера. Его биты имеют следующее на­значение:

BCSP - определяет выбор сигнала для формирования тактовых импульсов: при BCSP=0 используются сигналы генератора CG или делителя DS (тактовая частота Ft=Fq/2 или Ft=Fs/2), при BCSP=1 - сигналы генератора PG (тактовая частота Ft=Fp/2); значение BCSP=1 может быть установлено только при включенном гене­раторе PG (в регистре PLLCR значение бита PLLON=1);

BCSS - определяет при значении бита BCSP=0 выбор сигнала для формирова­ния тактовых импульсов: при BCSS=0 используются сигналы генератора CG (так­товая частота Ft=Fq/2), при BCSS=1 - сигналы делителя DS (тактовая частота Ft=Fs/2);

MCS - определяет выбор сигнала для синхронизации таймерного модуля и после­довательных портов SCI, SPI: при MCS=0 - импульсы генератора CS с частотой Fq, при MCS=1 - импульсы делителя частоты DS с частотой Fs («медленный» режим).

При запуске все биты этого регистра принимают значение 0.

Таким образом, для получения тактовых сигналов заданной частоты Ft не­обходимо выполнить программирование работы ГТИ в микроконтроллерах 68HC912D60, 68HC912DG128 путем записи соответствующего содержимого в ре­гистры PLLCR, CLKSEL, SLOW, SINR, REFDV. контролирующие его работу.

ГТИ в микроконтроллерах 68НС812А4 также содержит два генератора CG и PG, но имеет несколько более простую структуру и ограниченные возможности.