Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 264

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 258 259 260 261 262 263 < 264 > 265 266 267 268 269 270 .. 528 >> Следующая

протоколом. Таким образом, максимальная частота генератора, используемая
для тактирования UART-контроллера, равна 1/2xSyncCLK/16, что составляет
для СРМ 781,3 Кбит/с при частоте 25 МГц:
Входная частота (SyncCLK или CLK2, или CLK6)
Скорость_________________________________________________________________
_______
канала (делитель CD+1) х (делитель 1 или 16 при DIV16 )х (8 или 16 или
32))
476
ОРГАНИЗАЦИЯ КОММУНИКАЦИОННЫХ ПРОЦЕССОРНЫХ МОДУЛЕЙ В КМК
Управление встроенными RISC-таймерами. RISC-контроллер может управлять
работой 16 внутренних таймеров. Функционирование этих таймеров не зависит
от таймеров общего назначения и генераторов BRG, а определяется тактовыми
сигналами от внутреннего таймера в составе RISC-контроллера и
программируется в регистре RCCR. Наиболее эффективно применение этих
таймеров в системах, где необходимо освободить центральный процессор от
функции контроля и управления таймерами общего назначения. При
использовании 16 внутренних таймеров все функции управления их работой
возложены на RISC-контроллер.
В двухпортовой памяти в разделе parameter RAM на странице 2 выделена
специальная область, в которой хранятся параметры настройки таймеров.
Параметры, определяющие работу каждого из 16 таймеров, сгруппированы в
таблицу (RISC TIMER TABLE), которая располагается в двухпортовой памяти.
Переменная TM_BASE (в ячейке с адресом TimerBase+ОО) задает
местоположение таблицы таймеров во внутренней двухпортовой памяти. В этой
ячейке указывается смещение таблицы таймеров относительно начального
адреса двухпортовой памяти во внутренней памяти контроллера. Каждая
ячейка таблицы таймеров предназначена для управления одним таймером и
имеет размер 4 байта. Первые два байта хранят значение, которое было
записано при инициализации таблицы таймеров во время выполнения RISC-
контроллером команды SET TIMER. При работе таймеров начальные значения
будут уменьшаться до 0. В следующих двух байтах хранится текущее значение
таймера.
Таким образом, если пользователь работает со всеми 16 таймерами, то
размер таблицы составит 64 байта. RISC-контроллер будет обрабатывать
таймер с номером N при просмотре таблицы, если в регистре R_TMV (в ячейке
с адресом TimerBase+06) бит с соответствующим номером установлен в "1".
Все операции с таблицей таймеров выполняются по тактам внутреннего
таймера. Частота работы внутреннего таймера настраивается при
программировании битов TIME и TIMER в регистре конфигурации RISC-
процессора. Обработка таблицы таймеров имеет самый низкий приоритет среди
всех операций RISC-контроллера, поэтому если RISC-контроллер занят
выполнением других задач, то обработка таймеров в текущем такте
внутреннего таймера может не производиться, поскольку процессор просто не
успевает выполнить эти действия. При своей работе пользователь может,
прочитав содержимое ячейки TM_PTR (с адресом TimerBase+02), всегда узнать
адрес ячейки таймера из таблицы, которая будет обрабатываться следующей.
Для обнаружения данной ситуации в памяти параметров введена переменная
TM_CNT (в ячейке с адресом TimerBase+OC). RISC-процессор увеличивает эту
переменную при каждом обращении к таблице таймеров для обработки, если,
конечно, разрешена работа внутреннего таймера. Таким образом,
пользователь в своем программном обеспечении всегда может сравнить,
сколько тактов от внутреннего таймера получил RISC-контроллер и сколько
из них он обработал, обращаясь к таблице таймеров.
Управление работой таймера. Для управления работой таймера центральный
процессор может передать RISC-контроллеру команду SET TIMER. По этой
команде производится включение, выключение и настройка параметров одного
из 16 таймеров в таблице. Код этой команды 0x0851 записывается в регистр
команд RISC-процессора. Но перед тем как переслать эту команду,
пользователь должен записать определенные значения в ячейку TM_CMD (с
адресом TimerBase+08) (рис. 5.22). Переменная TM_CMD - это регистр команд
таймеров, в котором определяются параметры настройки таймеров,
выполняемые при обработке команды SET TIMER.
Поле TIMER NUMBER определяет номер таймера от 0 до 15, для которого
производится настройка параметров. Поле TIMER PERIOD определяет 16-битное
значение тайм-
477
КОММУНИКАЦИОННЫЕ МИКРОКОНТРОЛЛЕРЫ И СИСТЕМЫ НА ИХ ОСНОВЕ
0 1 2 3 4 5 6 7 8 9 10 11 12
13 14 15
V R PWM TIMER NUMBER
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
TIMER PERIOD
Рис. 5.22. Формат регистра команд RISC-таймеров TM CMD
аута для выбранного таймера. Максимальное значение 65 536 соответствует
коду 0x0000 в этом поле.
Если пользователь желает работать с определенным таймером, он должен
перед подачей команды SET TIMER установить бит V := 1 в ячейке TD_CMD.
Если же таймер не будет использован, то бит V := 0. Значения бита V
(Valid) при выполнении команды SET TIMER будут переписаны в
соответствующий бит ячейки R_TMV, анализируемой RISC-контроллером при
обслуживании таблицы таймеров.
Таймеры могут работать в трех режимах:
Предыдущая << 1 .. 258 259 260 261 262 263 < 264 > 265 266 267 268 269 270 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed