В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > 68300 > Архитектура
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Модуль таймерного процессора TPU

Прием, обработка и выдача сигналов в реальном масштабе времени является одной из наиболее важных и часто реализуемых функций микроконтроллеров. Поэтому в состав модульных микроконтроллеров входят специализированные модули, обеспечивающие выполнение этих функций. В большинстве микроконтроллеров семейства 68300 используется модуль таймерного процессора TPU, структура и функционирование которого описывается в данном разделе.
    Общая структура модуля TPU приведена на рис.3.20. Модуль содержит блок интерфейса, осуществляющий связь TPU с процессором CPU32 через внутреннюю магистраль, блок управления, два таймера, реализованных на базе регистров TCR1,TCR2, и 16 таймерных каналов, каждый из которых выполняет самостоятельную функцию и имеет отдельный двунаправленный вывод для подключения внешних устройств. Порядок обслуживания запросов, поступающих от таймерных каналов, определяется блоком планирования в соответствии с их приоритетами, которые устанавливаются при программировании TPU. В состав модуля входит ОЗУ емкостью 256 байт, в которое записываются параметры, определяющие функционирование каждого канала.

Рис.3.20. Структура модуля временного процессора TPU

Процессор осуществляет связь с TPU путем записи-считывания содержимого регистров, входящих в состав блока интерфейса, и ячеек ОЗУ параметров, которые имеют соответствующие позиции в адресном пространстве (табл.3.27). Всего для TPU выделено 512 позиций адресного пространства, расположенных в диапазоне $***E00-FFF, часть из которых резервирована для использования в последующих разработках. Значения старших 12 разрядов адреса, обозначенных символами ***, определяются типом микроконтроллера, в котором используется TPU.

Таблица 3.27. Адреса и уровни доступа регистров и ячеек ОЗУ модуля TPU

Адрес Регистр или ячейки ОЗУ параметров Уровень доступа
$***E00 TPUMCR S
$***E02 TPUTCR S
$***E04 DSCR S
$***E06 DSSR S
$***E08 TICR S
$***E0A CIER S
$***E0C CFSR0 S
$***E0E CFSR1 S
$***E10 CFSR2 S
$***E12 CFSR3 S
$***E14 HSQR0 S/U
$***E16 HSQR1 S/U
$***E18 HSRRO S/U
$***E1A HSRR1 S/U
$***E1C CPR0 S
$***E1E CPR1 S
$***E20 CISR S
$***E22-EFF резервировано  
$***F00-F0A параметры канала 0 S/U
$***F10-F1A параметры канала 1 S/U
$***F20-F2A параметры канала 2 S/U
$***F30-F3A параметры канала 3 S/U
$***F40-F4A параметры канала 4 S/U
$***F50-F5A параметры канала 5 S/U
$***F60-F6A параметры канала 6 S/U
$***F70-F7A параметры канала 7 S/U
$***F80-F8A параметры канала 8 S/U
$***F90-F9A параметры канала 9 S/U
$***FA0-FAA параметры канала 10 S/U
$***FB0-FBA параметры канала 11 S/U
$***FC0-FCA параметры канала 12 S/U
$***FD0-FDA параметры канала 13 S/U
$***FE0-FEE параметры канала 14 S/U
$***FF0-FFE параметры канала 15 S/U

В состав блока интерфейса входят регистры конфигурации TPUMCR, управления CFSR0,1,2,3, HSQR0,1, HSSR0,1, приоритета CPR0,1, которые задают режимы модуля в целом и его каналов, а также регистры CIER,CISR,TICR, с помощью которых обеспечивается обслуживание запросов прерывания, поступающих от таймерных каналов. Кроме того, TPU содержит регистры TPUTCR, DSCR, DSSR, используемые в процессе тестирования и отладки.
    Регистр конфигурации TPUMCR определяет режим работы модуля TPU. Он содержит ряд битов (рис. 3.21,а), имеющих следующее назначение:
    STOP - останавливает при STOP=1 функционирование TPU, переводя его в режим останова с пониженным энергопотреблением; в этом режиме допускается обращение процессора к регистрам TPU, кроме регистров приоритета CPR0,1;
    SUPV - определяет уровни доступа к регистрам TPU и ОЗУ параметров в соответствии с табл. 3.27; при SUPV=1 доступ ко всем регистрам и ячейкам ОЗУ разрешается только в режиме супервизора, при SUPV=0 регистры, отмеченные символами S/U, и ячейки ОЗУ могут быть выбраны в режиме пользователя;
    IARB3-0 - поле, задающее очередность обслуживания запросов прерывания данного модуля.
    STF - признак, принимающий значение STF=1 в режиме останова (при STOP=1);
    EMU - определяет режим работы модуля TPU: при EMU=0 - режим выполнения стандартных функций (нормальный режим), при EMU=1 - режим выполнения функций, запрограммированных пользователем (режим эмуляции);
    PSK, TCR1P - задают частоту переключения Fc таймера TCR1;
    T2CG, TCR2P - задают частоту переключения Fc таймера TCR2.

15
14 13
12 11
10 9 8 7 6
5 4
3 0
STOP TCR1P TCR2P EMU T2CG STF SUPV PSCK 00 IARB

а) TPUMCR (адрес $***E00)

15 12
11 8
7 4
3 0
CF15/1/7/3 CF14/10/6/2 CF13/9/5/1 CF12/8/4/0

б) CFSR0/1/2/3 (адрес $***E0C/E0E/E10/E12)

15 14
13 12
11 10
9 8
7 6
5 4
3 2
1 0
SQ15
SR15
CP15
SQ14
SR14
CP14
SQ13
SR13
CP13
SQ12
SR12
CP12
SQ11
SR11
CP11
SQ10
SR10
CP10
SQ9
SR9
CP9
SQ8
SR8
CP8

в) HSQR0 (адрес $***E14), HSSR0 (адрес $***E18), CPR0 (адрес $***E1C)

15 14
13 12
11 10
9 8
7 6
5 4
3 2
1 0
SQ7
SR7
CP7
SQ6
SR6
CP6
SQ5
SR5
CP5
SQ4
SR4
CP4
SQ3
SR3
CP3
SQ2
SR2
CP2
SQ1
SR1
CP1
SQ0
SR0
CP0

г) HSQR1 (адрес $***E16), HSSR1 (адрес $***E1A), CPR1 (адрес $***E1E)

Рис.3.21. Форматы содержимого регистров конфигурации, управления и приоритетов обслуживания модуля TPU

Каждый из каналов TPU может использовать таймер TCR1 или TCR2 в качестве базового для определения временных интервалов. Таймер TCR1 переключается внутренними синхроимпульсами, частота которых равна Fs = Ft / 32 при значении бита PSK=0, или Fs = Ft / 4 при PSK=1, где Ft - частота тактовых импульсов, формируемых ГТИ (см. раздел Генератор тактовых импульсов). Поле TCR1P в регистре TPUMCR задает дополнительный коэффициент деления частоты Kd=1,2,4 или 8 (табл.3.28), таким образом частота переключения таймера составляет Fc = Fs / Kd.
    Таймер TCR2 переключается импульсами, поступающими на вывод TCR2 микроконтроллера от внешнего источника, если значение бита T2CG=0, или внутренними синхроимпульсами, имеющими частоту Fs = Ft / 8, если значение бита T2CG=1. При тактировании TCR2 внутренними импульсами (бит T2CG=1) вывод TCR2 используется для подачи строб-сигналов: при сигнале TCR2=1 разрешается переключение таймера, при TCR2=0 - запрещается. Для частоты переключения Fc таймера TCR2 дополнительный коэффициент деления Kd определяется полем TCR2P в регистре TPUMCR (табл.3.28).

Таблица 3.28. Значения коэффициента деления частоты переключения для таймеров TPU

TCR1P, TCR2P Kd
0 0 1
0 1 2
1 0 4
1 1 8

В нормальном режиме (бит EMU=0) функции, выполняемые каждым из каналов TPU, определяются содержимым 16-разрядных регистров управления CFSR0,1,2,3, HSQR0,1 и HSRR0,1. Имеется два набора стандартных функций, обеспечивающих выполнение каналами TPU таких операций, как формирование сигналов с заданной задержкой, генерация импульсов заданной частоты и длительности, счет импульсов, измерение длительности временных интервалов, измерение частоты, асинхронный последовательный обмен данными (прием или передача), управление шаговым двигателем, параллельный обмен данными, дешифрация сигналов от датчиков угловых перемещений и ряд других. При выполнении некоторых операций обеспечивается совместное функционирование нескольких каналов TPU. Таким образом выполняется запуск одних каналов после срабатывания других, реализуются многоканальные генераторы импульсов и другие устройства.
    Каждый набор включает 10 операций. Соответствующие программы их реализации заносятся в ПЗУ блока управления TPU в процессе изготовления микроконтроллера (масочное программирование). Таким образом выпускаемые микроконтроллеры имеют два варианта программирования TPU, отличающиеся набором реализуемых стандартных операций.
    Выбор операции из реализуемого TPU набора для i-го канала производится указанием соответствующего 4-битового функционального кода CFi, записываемого в один из регистров CFSR. Четыре регистра CFSR0,1,2,3 содержат 16 полей для записи функциональных кодов CFi всех каналов TPU (рис.3.21,б). Код CF15 для канала 15 занимает четыре старших бита в регистре CFSR0, код CF14 - четыре следующих бита и т.д., так, что код CF0 занимает четыре младших бита в регистре CFSR3. В регистры HSQR0,1 для i-го канала записывается 2-битовый код SQi, определяющий режим его работы. Варианты рабочих режимов задаются 2-битовым кодом SRi в регистрах HSSR0,1. Размещение полей для записи кодов SQi, SRi в регистрах HSQR, HSRR показано на рис.3.21,в. Функциональное назначение кодов SQi, SRi определяется выбранной для данного канала операцией.
    При выполнении заданной операции каждый канал использует определенные ячейки ОЗУ (табл.3.27), в которых хранятся управляющие параметры, задающие режим и характеристики реализуемой функции, и параметры, отражающие текущее состояние канала. Каналы 0-13 используют по 6 ячеек ОЗУ (12 байт), каналы 14,15 - по 8 ячеек (16 байт). Обращение к ячейкам ОЗУ возможно как от CPU, так и от соответствующего канала. Однако возможности доступа к определенным ячейкам ограничиваются в зависимости от выполняемой каналом операции: запись в ячейки, хранящие управляющие параметры, разрешается только CPU, запись в ячейки, хранящие текущие параметры производится только TPU, для некоторых ячеек допускается запись как от CPU, так и от TPU.
    В режиме эмуляции (бит EMU=1) размещенное на кристалле микроконтроллера ОЗУ используется для записи в него специализированных программ, обеспечивающих выполнение модулем TPU операций, не входящих в стандартные наборы. Программы выполнения этих операций составляются пользователем на языке Ассемблера, а затем транслируются в объектные коды, которые записываются во внутреннее ОЗУ микроконтроллера. При этом пользователь может реализовать в своих программах вызов стандартных операций TPU. Таким образом функциональные возможности TPU в режиме эмуляции могут быть значительно расширены. Используемый в режиме эмуляции фрагмент ОЗУ подключается непосредственно к TPU, и не может служить для каких-либо других целей. В состав ряда типов микроконтроллеров входит специализированный модуль памяти TPURAM, который предназначен для использования в режиме эмуляции TPU.
    Блок управления обеспечивает поочередное обслуживание таймерных каналов в соответствии с их приоритетами. Приоритеты задаются в процессе программирования TPU путем записи для каждого i-го канала соответствующего 2-битового кода CPi в регистры приоритетов CPR0, CPR1. Установлены три уровня приоритета обслуживания: H - высокий при CPi=11, M - средний при CPi=10, L - низкий при CPi=01. Если значение CPi=00, то данный канал отключается. Регистры CPR0, CPR1 содержат 2-битовые поля, в которые записываются коды приоритета CPi для каждого канала TPU (рис.3.21,в). Блок планирования анализирует приоритеты работающих каналов и формирует управляющий код, в соответствии с которым блок управления TPU выбирает канал, для которого выполняется процедура текущего обслуживания. В ходе этой процедуры блок управления записывает в ОЗУ параметров данные о текущем состоянии канала, считывает из этого ОЗУ значения управляющих параметров и в случае их изменения устанавливает новый режим функционирования канала. Такое текущее обслуживание должно периодически проводится для всех работающих каналов.
    Чтобы обеспечить эффективное использование каналов с различными уровнями приоритета, в TPU реализуется следующий порядок их текущего обслуживания. Блок планирования обеспечивает последовательное выполнение циклов текущего обслуживания работающих каналов в соответствии со следующей приоритетной схемой:

- H - M - H - L - H - M - H -.

Таким образом из семи последовательно выполняемых циклов текущего обслуживания четыре используются для обслуживания каналов с приоритетом H, два - для каналов с приоритетом M и один - для канала с приоритетом L. Если в очередном цикле канал, имеющий приоритет согласно данной схеме, отсутствует, то обслуживается канал с таким же приоритетом, как и в предыдущем цикле. Для каналов с одинаковым приоритетом очередность обслуживания определяется их номером: сначала обслуживается канал, имеющий меньший номер. Данная схема обеспечивает обслуживание каналов с любым уровнем приоритета, при этом каналы с более высоким приоритетом более оперативно выдают информацию о своем текущем состоянии и реагируют на изменение их режима работы или управляющих параметров.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IE15
IF15
IE14
IF14
IE13
IF13
IE12
IF12
IE11
IF11
IE10
IF10
IE9
IF9
IE8
IF8
IE7
IF7
IE6
IF6
IE5
IF5
IE8
IF8
IE8
IF8
IE8
IF8
IE8
IF8
IE8
IF8

а) CIER (адрес $***E0A), CISR (адрес $***E20)

15 11
10 8
7 4
3 0
0 0 0 0 0 CIRL CIBU 0 0 0 0

б) TICR (адрес $***E08)

Рис.3.22. Форматы регистров обслуживания запросов прерывания от каналов TPU

После завершения определенных операций каналы TPU устанавливают в регистре CISR (рис.3.22,а) признаки прерывания IFi=1, где i-номер канала. При этом формируется запрос прерывания CPU, если в регистре CIER (рис. 3.22,а) соответствующий бит разрешения имеет значение IEi=1. Параметры этих запросов определяются содержимым регистра TICR (рис.3.22,б). Поле CIRL в регистре TICR задает уровень приоритета запросов прерывания TPU: высший уровень (немаскируемое прерывание) при значении CIRL=111, низший уровень при CIRL=001, запрещение обслуживания запросов прерывания всех каналов при CIRL=000. Поле CIBV содержит четыре старших разряда номера вектора прерывания для запросов, поступающих от каналов TPU. Четыре младших разряда задаются номером канала, от которого поступает запрос. Например, при значении CIBV=0010 канал 10 будет иметь двоичный номер вектора прерывания Ne=00101010.