Блок конфигурации и контроля
Данный блок выполняет многообразные функции, связанные с управлением внутренней
шиной, контролем правильности выполнения программы, заданием режима работы ряда блоков и назначения отдельных выводов
микроконтроллера. В состав блока входят сторожевое устройство, таймер периодических прерываний, монитор шины, схема
останова микроконтроллера и регистры, задающие режимы работы или указывающие состояние отдельных схем и блоков.
Основным регистром в данном блоке является регистр конфигурации SIMCR
(рис. 3.8,а), отдельные биты которого имеют следующее назначение:
EXOFF - разрешает при EXOFF=0 выдачу внешних синхросигналов на выход CLKOUT, при EXOFF=1 данный выход переводится
в отключенное состояние;
FRZSW - запрещает при FRZSW=1 работу сторожевого устройства и таймера периодических прерываний в режиме отладки;
FRZBM - запрещает при FRZBM=1 работу схемы управления внутренней шиной в режиме отладки;
SLVEN - разрешает при SLVEN=1 доступ тестера к внутренней шине микроконтроллера при его заводских испытаниях; этот
бит изменяется только в процессе начальной установки;
SUPV - разрешает при SUPV=0 обращение процессора CPU32 к любому регистру микроконтроллера (режим супервизора);
при SUPV=1 доступ к регистрам определяется режимом работы процессора CPU32 (супервизор или пользователь) в соответствии
с табл.3.14 (этот бит не влияет на работу микроконтроллеров семейства 68HC16, работающих только в режиме супервизора);
MM - определяет значение четырех старших разрядов адреса внутренних регистров для микроконтроллеров семейства 68300:
при MM=0 их адреса находятся в диапазоне $7FF000-7FFFFF, при MM=1 - в диапазоне $FFF000-FFFFFF (в табл. 3.14 $*=$7 при MM=0,
$*=$F при MM=1; на работу микроконтроллеров 68HC16, использующих 20-разрядный адрес, этот бит не оказывает влияния).
Поле SHEN1-0 в регистре SIMCR определяет возможности внешнего наблюдения и
захвата шины при выполнении внутренних циклов передачи: при SHEN1-0=00 запрещается наблюдение и разрешается захват, при
SHEN1-0=01 допускается наблюдение и запрещается захват, при SHEN1-0=10 разрешаются наблюдение и захват, при SHEN1-0
допускается наблюдение, а захват шины производится после окончания внутренних циклов. При выполнении внутренних циклов
на внешние выводы A23-0 микроконтроллера выдается формируемый адрес, а также устанавливаются сигналы FC2-0, SIZ1-0, R/W#,
сопровождающие передачу. Если наблюдение разрешено, то при подаче внешнего сигнала DS#=0 передаваемые данные поступают
на выводы D15-0 микроконтроллера. Таким образом обеспечивается возможность отладки выполняемой программы при однокристальном
режиме использования микроконтроллера (без подключения внешней памяти). Реализация захвата шины описывается в разделе 3.5.3.
Поле IARB3-0 задает уровень очередности обслуживания запросов прерывания,
формируемых модулем SIM. Данное поле содержится в регистрах конфигурации всех внутренних модулей микроконтроллера.
Его содержимое устанавливается операционной системой для каждого модуля и может находиться в диапазоне от $F (высший
уровень очередности) до $1 (низший уровень). Содержимое IARB3-0 определяет порядок обслуживания запросов с одинаковым
приоритетом Li, поступающих от разных внутренних модулей. Поэтому все модули должны иметь различные значения IARB3-0.
Если значение IARB3-0=$0, то обслуживание запросов от данного модуля запрещено: поступление такого запроса вызовет
исключение с номером Ne=24 (ложное прерывание). При начальной установке микроконтроллера задается значение IARB3-0=$F
для модуля системного интерфейса и IARB3-0=$0 для остальных модулей, чтобы исключить какие-либо внутренние прерывания
в процессе инициализации.
Табл. 3.16. Значения коэффициента Kw
SWP |
SWT1-0 |
Kw |
0 0 0 0 1 1 1 1 |
0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 |
29 211 213 215 218 220 222 224 |
Сторожевое устройство (watchdog) контролирует правильность выполнения программы
путем последовательной загрузки в регистр SWSR чисел $55, $AA аналогично тому, как это выполняется в микроконтроллерах семейств
68HC05, 08, 11. Максимальный период загрузки Tw = Kw / Fq* для моделей с низкой задающей частотой
Fq*=25-50 КГц, Tw = 128 Kw / Fq для моделей с высокой задающей частотой Fq = 3,2-4, 2 МГц. Величина коэффициента Kw определяется
значениями битов SWP, SWT1-0 в регистре SYPCR (рис. 3.9,а) в соответствии с табл. 3.16. Если за время Tw такая загрузка не
произведена, то выполняется сброс микроконтроллера в начальное состояние (RESET).
Монитор шины вырабатывает внутренний сигнал ошибки обращения к шине BERR# (см. раздел Модуль таймерного процессора TPU), если при
выполнении внутреннего или внешнего цикла в течении определенного времени не получены сигналы подтверждения DSACK# или AVEC#.
Максимальное время получения подтверждения Tm определяется значениями битов BMT1-0 в регистре SYPCR (рис. 3.9,а) в соответствии
с табл. 3.17, где Tt = 1/Ft - длительность такта машинного времени..
Таблица 3.17. Значения максимального времени подтверждения при обращении к внутренней или внешней шине
BMT2-0 |
Длительность Tм |
0 0 0 1 1 0 1 1 |
64 Tt 32 Tt 16 Tt 8Tt |
Установка начального состояния происходит при подаче внешнего сигнала RESET#=0,
который должен сохраняться в течении не менее 512Tt. Программно установка начального состояния производится при поступлении
команды RESET, при этом устанавливается выходной сигнал RESET#=0. Схема останова прекращает работу процессора при поступлении
внешнего сигнала HALT#=0, при возникновении двойной ошибки обращения к шине или при ошибке обращения в процессе начальной
установки, а также при выполнении команды LPSTOP (см. раздел Модуль последовательного интерфейса QSM). Если причиной останова является ошибка обращения к шине или
команда LPSTOP, то на выходе микроконтроллера устанавливается сигнал HALT#=0. Выход из состояния останова происходит при
повторной процедуре начальной установки, если сигнал BERR#=1.
7 |
6 |
|
3 |
2 |
|
SWE |
SWD |
SWT |
HME |
BME |
BMT |
а) SYPCR (адрес $*FFA21)
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
EXT |
POW |
SW |
HLT |
0 |
LOC |
SYS |
TST |
б) RSR ( адрес $*FFA07)
Рис. 3.9. Форматы содержимого регистров SYPCR, RSR
Содержимое регистра SYPCR (рис.3.9,а) определяет работу сторожевого устройства и
монитора шины. Биты этого регистра имеют следующее назначение:
SWE - разрешает при SWE=1 работу сторожевого устройства;
SWP, ST1-0 - задают значение коэффициента Kw (табл. 3.16);
HME - разрешает при HME=1 работу схемы останова;
BME - разрешает при BME=1 монитору шины контролировать получение подтверждения при выполнении внешних циклов;
BMT1-0 - определяет максимальное время подтверждения при обращении к внутренней или внешней шине
(табл. 3.17).
Биты регистра состояния RSR (рис.3.9,б) указывают причину, которая вызвала начальную установку
микроконтроллера:
EXT = 1 - поступление внешнего сигнала сброса RESET# = 0;
POW = 1 - включение напряжения питания;
SW = 1 - сигнал сторожевого устройства;
HLT = 1 - сигнал схемы останова;
LOC = 1 - отключение частотно-задающего кварцевого кристалла;
SYS = 1 - программный сброс с помощью команды RESET (реализуется только в микроконтроллерах с
процессором CPU32);
TST - сброс по команде блока тестирования (реализуется в процессе заводских испытаний микроконтроллера).
Анализ содержимого RSR выполняется операционной системой в процессе инициализации микроконтроллера,
чтобы выявить возможные неисправности.
15 9 |
8 |
7 0 |
0 0 0 0 0 0 0 |
PTP |
PITM |
a) PITR (адрес $*FFA24)
15 11 |
10 8 |
7 0 |
0 0 0 0 0 |
PIRQL |
PIV |
б) PICR (адрес $*FFA22)
Рис. 3.10. Форматы содержимого регистров PICR, PITR
Таймер периодических прерываний вырабатывает внутренние запросы векторного
прерывания через заданные промежутки времени. Работа таймера программируется путем загрузки содержимого регистра PITR (
рис.3.10,а), задающего длительность периода прерываний Tp, и регистра PICR (рис.3.10,б), определяющего приоритет и номер
вектора обслуживания. Период прерываний:
Tp = 4Kp x Kd / Fq* для моделей с низкой задающей частотой Fq*=25-50 КГц,
Tp = 512Kp x Kd / Fq для моделей с высокой задающей частотой Fq=3,2-4,2 МГц.
Значение коэффициента Kp указывается в поле PITM регистра PITR, а коэффициент Kd=1 при значении бита PTP=0 или Kd=512 при PTP=1.
Уровень приоритета прерываний таймера определяется полем PIRQL в регистре PICR: при PRQL=000 запросы таймера не обслуживаются,
при PRQL=001 эти запросы имеют низший приоритет (Li=1), при PRQL=111 - высший приоритет (Li=7). Номер вектора прерывания Ne
задается содержимым поля PIV в регистре PICR.
|