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

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

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

1) выработки одиночного импульса (One-Shot);
2) перезапуска (Restart);
3) генерации импульсов PWM (Pulse Width Modulation).
Если необходимо, чтобы таймер работал в режиме ONE-SHOT, надо установить
в регистре TM_CMD бит R := 0 (RESTART). Если бит R := 1, то таймер будет
работать в режиме автоматического рестарта. При выполнении команды SET
TIMER значение бита R будет перезаписано для таймера номер N в
соответствующий бит ячейки R_TMR (с адресом TimerBase+04). Ячейка R_TMR -
это регистр режима таймеров, она недоступна для записи пользователю и
анализируется RISC-контроллером при обработке таблицы таймеров.
При работе таймера в PWM-режиме (бит PWM = 1) каждая пара таймеров может
быть настроена для генерации PWM-импульсов через контакты порта В. Можно
организовать до восьми дополнительных генераторов тактовых сигналов для
внешних устройств. Первый таймер в паре (четный номер) используется для
контроля длительности уровня "1" в импульсе. При настройке параметров
этого таймера в регистре TM_CMD биты PWM := 1 и V := 1, а в поле TIMER
PERIOD загружается период уровня "1" в импульсе. Второй таймер в паре
(нечетный номер) используется для контроля длительности периода тактовых
сигналов и работает в режиме автоматической перезагрузки, когда истечет
время цикла. При его настройке значения битов R := 1 и V := 1, а в поле
TIMER PERIOD загружается значение периода импульсов.
Алгоритм обработки таблицы таймеров. RISC-контроллер сканирует таблицу
таймеров один раз за период внутреннего таймера и проверяет для каждого
таймера в регистре R_TMV, включен этот таймер или нет. Для каждого
работающего таймера RISC-контроллер уменьшает его счетчик в ячейке
таблицы таймеров и контролирует, закончился ли интервал тайм-аута для
этого таймера. Если тайм-аут не закончился, то RISC-процессор переходит к
обработке следующего таймера в таблице. Если тайм-аут закончен, то в
регистре событий таблицы таймеров RTER (рис. 5.23) устанавливается бит,
который соответствует номеру обрабатываемого таймера, далее проверяется
бит этого таймера в регистре режима R_TMR. Если этот бит равен 1, то
производится рестарт (сброс в начальное состояние) счетчика данного
таймера. Если данный бит равен 0, т. е. включен режим ONE-SHOT, то в
регистре готовности таймера R_TMV сбрасывается бит работоспособности
таймера. Таким образом, в режиме RESTART производится перезагрузка
таймера и его дальнейшая нормальная работа, а в режиме ONE-SHOT по
окончании интервала счета таймер останавливается. ^
478
ОРГАНИЗАЦИЯ КОММУНИКАЦИОННЫХ ПРОЦЕССОРНЫХ МОДУЛЕЙ В КМК
0 1 2 3 4 5 6 7 8 9 10 11 12
13 14 15
ТМ15 ТМ14 ТМ13 ТМ12 ТМ11 ТМ10 ТМ9 ТМ8 ТМ7 ТМ6 ТМ5 ТМ4 ТМЗ
ТМ2 ТМ1 ТМО
Рис. 5.23. Формат регистра событий RTER и регистра маски RTMR
Когда RISC-контроллер заканчивает обработку всех таймеров в таблице, он
увеличивает значение в ячейке TM_CNT и останавливает работу с таблицей до
следующего периода внутреннего таймера.
Если была получена команда SET TIMER, то RISC-контроллер только загружает
но вые параметры для одного из 16 таймеров из ячейки TM_CMD во внутренние
рабочие регистры параметров таймеров, но не производит сканирование и
обработку таблицы.
Отметим, что окончание тайм-аута одного из таймеров может вызывать
прерывание системы при установке бита в регистре RTER, только, если
данный бит не замаскирован в регистре маски таблицы таймеров RTMR (рис.
5.23), и если в контроллере прерываний СРМ разрешено прерывание от
таблицы таймеров. Бит, равный 0 в RTMR, маскирует прерывание от
соответствующего таймера в регистре событий RTER. Сброс запроса на
прерывание в регистре RTER можно произвести записью в этот бит "1".
Практическое применение RISC-таймеров. С помощью таблицы таймеров
пользователь может определить уровень загрузки RISC-контроллера. Если
уровень загрузки составляет более 96%, это значит, что пользователь
нерационально распределил ресурсы коммуникационного контроллера, и его
программное обеспечение разработано не оптимально. При высокой загрузке
повышается вероятность потери сетевых данных из-за переполнения буферов
FIFO и низкой скорости передач данных по каналам SDMA.
Для проведения анализа уровня загрузки необходимо выполнить следующие
действия.
• Запрограммировать период внутреннего таймера как 1024x16 = 16384
периодов системной частоты.
• Запретить прерывания от таблицы таймеров.
• С помощью команды SET TIMER проинициализировать параметры всех 16
таймеров для работы с периодом тайм-аута, равным 65 536 периодам
внутреннего таймера.
• Запрограммировать один из четырех таймеров общего назначения на работу
с увеличением при каждом импульсе внутреннего таймера, и период их тайм-
аута необходимо установить равным 65 536.
• Запустить работу системы на несколько часов. Затем сравнить показания
счетчиков RISC-таймера номер 15 и таймера общего назначения.
• При сравнении результатов следует учитывать, что таймеры общего
назначения считают
на увеличение, а RISC-таймеры - на уменьшение. Если в результате разница
Предыдущая << 1 .. 259 260 261 262 263 264 < 265 > 266 267 268 269 270 271 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed