Программная модель таймерного модуля

Программная модель таймера представлена на рис. 6.28.

Регистр таймера/счетчика (TCR). 24-битный регистр TCR содержит величину, загружаемую в счетчик, если таймер разрешен (ТЕ = 1), или если было декрементировано нулевое значение счетчика и произошло новое событие. Если в TCR загружено число п, то счетчик перезагружается через (п + 1) событий. Если таймер запрещен (ТЕ = 0) и программа пользователя производит запись в TCR, величина, находящаяся там до момента записи, сохраняется и снова загружается в счетчик когда устанавливается разрешение таймера (ТЕ = 1). В режимах 4 и 5 TCR может быть загружен текущим значением счетчика по фронту сигнала ТЮ.

Регистр статуса/управления таймером (TCSR). 24-битный регистр управляет таймером и производит верификацию его состояний. Регистр может быть доступен по инструкциям пересылки или манипуляций с битами.

Разрешение таймера (ТЕ — бит 0).

Бит разрешает или запрещает использование таймера. Установка бита в «1» разрешает использование таймера, счетчик загружается величиной, хранящейся в TCR, и начинает декрементирование при каждом событии. После сброса бит равен нулю.

Разрешение прерываний от таймера (TIE- бит 1).

Установка бита в «1» разрешает прерывания от таймера после установки счетчика в «0» и возникновении нового события. После сброса бит равен нулю.

 


Инвертор (INV- бит 2).

Бит устанавливает полярность внешнего сигнала на входной линии ТЮ и полярность импульсов на выходной линии ТIO.

Если ТIO запрограммирован как вход и INV = 0, переход сигнала из «О» в «1» на линии ТIO вызывает декрементирование счетчика. Если INV = 1, декрементирование осуществляется при переходе сигнала из «1» в «0».

Если ТIO запрограммирован как выход и INV = 1, импульсы таймера инвертируются перед выдачей на линию ТЮ. Если INV = 0, импульсы таймера не изменяются.

В режиме 4 бит INV определяет, по какому уровню (низкому или высокому) происходит измерение входных импульсов.

В режиме 5 бит INV определяет, по какому фронту измеряется период сигнала.

В режиме обычного ввода/вывода бит определяет, инвертируются ли данные, читаемые/записываемые на линию ТIO (INV = 1), или нет (INV = 0).

После сброса бит равен нулю.

Биты управления таймером (ТС0-ТС2 - биты 3-5).

Биты управляют источником синхронизации, назначением линии ТIO и выбором режима таймера (табл. 6.18).

 

Стандартный ввод/вывод (GPIO - бит 6).

Если этот бит установлен и биты ТС2 – ТС0 равны нулю, линия ТIO используется как линия обычного ввода/вывода, направление передачи по которой определяет бит DIR. После сброса бит равен нулю.

Статус таймера (TS - бит 7).

Если бит равен единице, это означает, что произошло декрементирование нулевого значения счетчика. Бит сбрасывается при чтении регистра статуса/управления. Также бит сбрасывается при обработке прерывания от таймера. После сброса бит равен нулю.

Направление (DIR - бит 8).

Бит определяет направление передачи данных по линии ТIO, если линия используется для обычного ввода/вывода. Если DIR = 1, то ТIO - выход, иначе - вход.

Вход данных (DI — бит 9.

Если ТIO используется как линия ввода, содержимое DI соответствует сигналу на линии ТЮ. После сброса бит равен нулю.

Выход данных (DO - бит 10).

Если ТIO используется как линия вывода, содержимое DO выдается на линию ТIO. После сброса бит равен нулю.


Режимы таймера.

Ниже перечислены возможные режимы работы таймера.

Режим 0 (стандартный режим таймера, внутренняя синхронизация, нет выхода таймера). Если таймер разрешен (ТЕ = 1), счетчик загружается значением, содержащимся в TCR. Счетчик декрементируется на каждом такте внутренней частоты DSP, деленной на два (CLK/2). Если декрементирование осуществляется из нулевого значения счетчика, бит TS устанавливается в «1» и генерируется прерывание от таймера. Счетчик снова загружается значением TCR и процесс продолжается, пока таймер не запрещен (ТЕ = 0).

Режим 1 (стандартный режим таймера, внутренняя синхронизация, разрешены выходные импульсы). Если таймер разрешен (ТЕ = 1), счетчик загружается значением, содержащимся в TCR. Счетчик декрементируется на каждом такте внутренней частоты DSP, деленной на два (CLK/2). Если декрементирование осуществляется из нулевого состояния, бит TS устанавливается в «1» и генерируется прерывание от таймера. На линию ТIO поступают импульсы шириной в два цикла синхронизации, полярность которых определяется значением бита INV. После обработки прерывания счетчик снова загружается значением TCR и процесс продолжается, пока таймер не запрещен (ТЕ = 0).

Режим 3 (стандартный режим таймера, внутренняя синхронизация, разрешены выходные переключения). Если таймер разрешен (ТЕ =1), счетчик загружается значением, содержащимся в TCR. Счетчик декрементируется на каждом такте внутренней частоты DSP, деленной на два (CLK/2). Если декрементирование осуществляется из нулевого состояния, бит TS устанавливается в «1» и генерируется прерывание от таймера. По каждому декрементированию из нулевого значения выход ТIO переключается. Полярность выхода определяется значением бита INV. После обработки прерывания счетчик снова загружается значением TCR и процесс продолжается, пока таймер не запрещен (ТЕ = 0).

Режим 4 (режим измерения длительности импульса). В этом режиме события на линии ТЮ являются сигналом для начала синхронизации. Если таймер разрешен (ТЕ = 1), счетчик работает с тактовой частотой DSP, деленной на два. При возникновении первого события на линии ТIO счетчик загружается нулем и начинается инкрементирование. По первому фронту сигнала противоположной полярности на линии ТЮ счетчик останавливается, бит ТS устанавливается в «1» и, если TIE = 1, генерируется прерывание. Содержимое счетчика загружается в TCR и может быть прочитано пользователем. Процесс повторяется, пока таймер не запрещен. Бит INV определяет, по какому уровню сигнала на линии ТЮ начинается счет.

Режим 5 (режим измерения периода). Счетчик работает с тактовой частотой DSP, деленной на два. Если таймер разрешен, по первому фронту сигнала на линии ТIO счетчик загружается значением, содержащимся в TCR, и начинается инкрементирование. По каждому фронту сигнала одной и той же полярности на линии ТЮ бит TS устанавливается в «1» и генерируется прерывание, если прерывания от таймера разрешены. Значение счетчика загружается в TCR и может быть прочитано пользователем. Бит INV определяет, по какому фронту измеряется период сигнала: по переходу из «0» в «1» (INV = 0) или по переходу из «1» в «0» (INV = 1).

Режим 6 (стандартный режим счетчика, внешняя синхронизация). Если таймер разрешен, счетчик загружается дополнительным кодом значения, содержащегося в TCR. Счетчик инкрементируется при возникновении событий на линии ТIO. После каждого инкрементирования значение счетчика загружается в TCR. Если происходит декрементирование из нулевого состояния, бит TS устанавливается в «1» и генерируется прерывание от таймера. Процесс продолжается, пока таймер не запрещен.

Режим 7 (стандартный режим таймера, внешняя синхронизация). Если таймер разрешен, счетчик загружается значением, содержащимся в TCR. Счетчик декрементируется при возникновении события на линии ТIO. Если происходит декрементирование из нулевого состояния, бит TS устанавливается в «1» и генерируется прерывание от таймера. Процесс продолжается, пока таймер не запрещен. Бит INV определяет, по какому фронту сигнала на линии ТЮ декрементируется счетчик: по переходу из «О» в «1»(INV = 0) или по переходу из «1» в «0» (INV = 1).

При выполнении инструкции WAIT таймер не останавливается.

ПОРТ В

Стандартный ввод/вывод

Порт В может использоваться как 15 линий ввода/вывода общего назначения, каждая из которых конфигурируется индивидуально как вход или выход или как 8-битный двунаправленный host-интерфейс. Линии порта В представлены на рис. 6.29. Сконфигурированный как порт ввода/вывода общего назначения, порт В может использоваться для управления устройствами. В качестве host-интерфейса порт В обеспечивает соединение с другим процессором.

 

 


При использовании в качестве линий стандартного ввода/вывода порт В может быть представлен в виде трех регистров, которые управляют 15 контактами ввода/вывода. Это регистр управления порта В (РВС, адрес X:$FFED), регистр направления данных порта В (PBDDR, адрес X:$FFE2) и регистр данных порта В (PBD, адрес X:FFE4). Регистры PBDDR и PBD имеют разрядность 24 бита, из которых используются только младшие 15 битов. Соответственно установка в «1» бита в регистре PBDDR означает, что данная линия порта В используется для вывода, в противном случае -для ввода. Установка в «1» бита 0 в регистре РВС означает, что порт В используется в качестве host-интерфейса, иначе порт В используется для стандартного ввода/вывода.

Адреса регистров периферийных устройств приведены на рис. 6.30.

Host-интерфейс (HI)

Структура HI. HI-8-битный полнодуплексный, с двойной буферизацией параллельный порт, который может быть соединен непосредственно с шиной данных host-процессора.

 


 

 

Host-процессор может быть микроконтроллером, микропроцессором, другим DSP или аппаратным ПДП, поскольку этот интерфейс работает со статической памятью. HI - асинхронный интерфейс и содержит два банка регистров: один банк, доступный host-процессору, и второй банк, доступный процессору DSP (рис. 6.31).

 

HI имеет следующие параметры:

скорость: 8 Мбайт/с - передача пакетов; 1,71 миллион слов/с - скорость передачи данных при обработке прерываний (мах).

сигналы (15): Н0-Н7 - шина данных; НА0-НА2 - выбор адреса; HR/-.W - управление чтением/записью; -.HEN - разрешение передачи; -iHREQ - запрос; -.HACK - ответ.

Host-интерфейс со стороны процессора DSP. Процессор DSP рассматривает HI как периферийное устройство, занимающее три 24-битных слова в пространстве памяти данных. DSP может использовать HI как обычную периферию, входящую в карту памяти. Отдельные регистры приемника и передатчика данных имеют двойную буферизацию, что существенно повышает скорость передачи данных.

Регистры интерфейса доступны с помощью стандартных инструкций и режимов адресации. При программном и аппаратном сбросе HI запрещен, и порт В используется для стандартного ввода/вывода.