Ris_DSP / TZOS_red4_ch2_C25_Tablet
.pdf123
содержимое восьмого уровня теряется. После семи последовательных чтений из стека каждая последующая выборка будет возвращать содержимое восьмого уровня стека, т.е. все уровни стека будут содержать значения восьмого уровня. Дополнительные команды PSHD и POPD, позволяют обмениваться данными между вершиной стека и памятью данных. Эти команды позволяют расширить стек в область памяти в случае, если в программе используется более восьми вложенных программных вызовов или прерываний.
4.3.8 КОНВЕЙЕРНЫЕ ОПЕРАЦИИ
Конвейер, повышающий производительность процессора, состоит из последовательности операций: «предзахват-декодирование-выполнение» команды. Эти операции независимы друг от друга, что позволяет им перекрываться в течении одного командного цикла TMS320C25.
В TMS320C25 конвейер обеспечивают: счетчик предзахватов (PFC), 16разрядный стек предзахватов (MCS), регистр команд (IR) и регистр предзахватов (QIR).
При трехуровневом конвейере PFC содержит адрес команды, которая должна быть выполнена следующей. Как только предзахват осуществлен, команда загружается в IR. Если же команда хранящаяся в IR ещё не выполнена, то предзахваченная команда помещается в QIR. После этого содержимое PFC увеличивается на 1. Как только текущая команда будет выполнена, предзахваченная команда из QIR перегружается в IR для дальнейшего исполнения.
Счетчик команд (PC) содержит адрес команды, которая должна быть выполнена следующей, и не используется для операций захвата. Содержимое PC увеличивается после каждой выполненной команды. Когда возникает прерывание или вызов подпрограммы, содержимое PC помещается в стек, для последующего возврата в нужное место программы при выходе из подпрограммы.
На рис 4.9 показана работа трехуровневого конвейера для однословных и одноцикловых команд, выбираемых из внутренней ROM или из внешней памяти без циклов ожидания.
124
Рис.4.9 Работа трехуровневого конвейера
При выборке команд из внутренней RAM, конвейер уменьшается до двух уровней, так как команды из внутренней RAM могут быть захвачены и декодированы в одном и том же цикле. В этом случае разделение операций предзахвата и декодирования не требуется (рис.4.10).
Рис.4.10 Работа двухуровневого конвейера
4.3.9 СБРОС ПРОЦЕССОРА
Сброс (RS) - это немаскируемое внешнее прерывание, которое в любой момент времени может установить процессор в начальное состояние. Обычно сигнал сброса подается после включения питания, так как в этом случае состояние процессора не определено.
При подаче низкого уровня сигнала RS микропроцессор заканчивает выполнение текущей команды и устанавливает счетчик команд в нуль. Для гарантированной установки процессора в исходное состояние сигнал сброса (RS) должен быть выставлен в течении трех циклов работы процессора.
125
Сигнал RS производит следующие установки:
1.В бит CNF слова состояния ST1 загружается логический 0 для конфигурации RAM как памяти данных.
2.Счетчик команд и адресная шина A0-A15 устанавливаются в 0.
3.Шина данных D0-D15 переводится в третье состояние.
4.Все сигналы управления пространствами памяти и портов ввода/вывода (PS, DS, IS, R/W, STRB, BR) переводятся в высокое состояние пока RS активен (низкий уровень).
5.Все прерывания запрещаются путем установки бита INTM в 1. Регистр флагов прерываний IFR обнуляется.
6.Биты состояния устанавливаются следующим образом: 0→OV, 1→XF, 0→FO, 0→TXM, 1→SXM, 0→PM, 1→HM, 1→CY, 1→FSM.
Остальные биты состояния не изменяются.
7.Регистр местоположения глобальной памяти очищается, т.е. вся память становится локальной.
8.Счетчик повторений RPTC очищается.
9.Контакт DX (передача данных) переводится в третье состояние. Любые операции по приему/передаче данных через последовательный порт прекращаются, а бит режима передачи TXM сбрасывается.
10.В регистр TIM и регистр PRD после сброса загружается максимальное значение (FFFFh).
11.Сигнал IACK (подтверждение прерывания) генерируется как при маскируемых прерываниях.
12.Состояние RAM после сброса не определено.
13. Биты ARB, ARP, |
DP, IMR, OVM, TC во время |
сброса не |
инициализируются. |
Поэтому после сброса они должны быть |
|
установлены программным способом. |
|
|
4.3.10 ТАЙМЕР
126
Микропроцессор TMS320C25 содержит 16-разрядный регистр таймера TIM, который адресуется как память данных, и 16-разрядный регистр периода PRD (рис.4.11).
Рис.4.11 Блок-схема таймера
Регистр таймера представляет собой декрементный счетчик, непрерывно тактируемый внутренним синхросигналом CLKOUT1. Сигнал сброса устанавливает таймер TIM и регистр периода PRD в его максимальное значение (FFFFh). В последствии регистры TIM и PRD могут быть загружены программно. Регистр таймера TIM расположен в памяти данных по адресу 2 и хранит текущий счетчик таймера. Каждый цикл сигнала CLKOUT1 содержимое TIM уменьшается на 1. Регистр PRD, расположенный в памяти данных по адресу 3, хранит начальное значение счетчика таймера. Прерывание по таймеру TINT генерируется каждый раз, как содержимое TIM достигает нуля. Таймер в течении следующего цикла перегружается значением, хранящимся в PRD. Поэтому прерывания от таймера появляются с интервалом, равным (PRD+1) циклов CLKOUT1. Программируя PRD значением от 1 до 65535 (FFFFh), можно изменять период появления TINT от 2 до 65536 циклов сигнала CLKOUT1. Нулевое значение для PRD является недопустимым.
127
Регистры TIM и PRD доступны для чтения и записи в любое время. Запись в регистр периода нового значения не изменяет текущее содержимое счетчика. Если оба регистра, TIM и PRD, загружены новым значением, то таймер начнет работу с новым значением периода без выдачи прерывания.
Для запрещения работы таймера, прерывания по таймеру TINT могут быть маскированы или блокированы командой DINT. В этом случае регистр PRD может использоваться для хранения данных.
4.3.11СЧЕТЧИК ПОВТОРЕНИЙ
Вмикропроцессоре TMS320С25 предусмотрена возможность повторения одной команды до 256 раз. 8-разрядный счетчик повторений (RPTC) может быть загружен как из памяти данных (командой RPT), так и непосредственно (командой RPTK). Величина, загружаемая в счетчик должна быть на единицу меньше требуемого числа повторений данной команды.
Повторения можно использовать в операциях умножение/накопление, перемещение блоков памяти, прием/передача и чтение/запись данных.
Команды BLKD/BLKP, MAC/MACD, TBLR/TBLW в сочетании с командами RPT и RPTK становятся более эффективными.
4.3.12ПАРАЛЛЕЛЬНЫЙ ПОРТ ВВОДА/ВЫВОДА
TMS320С25 поддерживает широкий диапазон интерфейсных систем. Адресное пространство данных, программ и ввода/вывода обеспечивает сопряжение с памятью и внешними устройствами, что увеличивает возможности системы. Интерфейс локальной памяти состоит из (рис.4.12):
−16-разрядной шины данных (D0-D15);
−16-разрядной шины адреса (A0-A15);
−адресных пространств: данных, программ и ввода/вывода выбираемых сигналами DS, PS и IS, соответственно;
128
−различных сигналов управления системой (сигнал R/W определяет направление передачи данных, а сигнал STRB стробирует передачу данных).
Рис.4.12. Интерфейс локальной памяти TMS320C25
Пространство ввода/вывода содержит 16 входных и 16 выходных портов. Номер порта определяется разрядами А0-А3 шины адреса процессора. Эти порты обеспечивают полный 16-ти разрядный интерфейс с внешними устройствами по шине данных. Одноразовый ввод/вывод с помощью команд IN и OUT выполняется за два командных цикла, однако использование счетчика повторений снижает время одного обращения к порту до одного цикла.
Использование ввода/вывода упрощается тем, что он осуществляется так же, как и обращение к памяти. Устройства ввода/вывода отображаются в адресном пространстве ввода/вывода, используя внешние адреса процессора и шину данных, таким же образом, как память. При адресации внутренней памяти шина данных находится в третьем состоянии, а управляющие сигналы в пассивном состоянии (высоком).
129
При связи с медленными устройствами, TMS320C25 ждет, пока устройство не завершит свою работу и просигнализирует процессору об этом через вывод READY, после чего процессор продолжит работу.
4.3.13. ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ ВВОДА-ВЫВОДА
Двунаправленный последовательный порт (рис.4.13) обеспечивает связь с внешними последовательными устройствами (кодеки, последовательные АЦП/ЦАП и др.). Сигналы интерфейса совместимы с кодеками и многими другими последовательными устройствами, обеспечивая минимум аппаратных затрат. Последовательный порт может быть также использован для создания мультипроцессорных систем.
Рис.4.13 Блок-схема последовательного порта
Контакты, биты и регистры, управляющие работой последовательного порта, приведены в Таблице 4.9.
|
130 |
|
Таблица 4.9 |
Контакты/Биты/Регистры |
Назначение |
CLKX |
Тактовая частота передатчика |
CLKR |
Тактовая частота приемника |
DX |
Передача последовательных данных |
DR |
Прием последовательных данных |
FSX |
Кадровая синхронизация передатчика |
FSR |
Кадровая синхронизация приемника |
FO |
Бит формата |
TXM |
Бит режима передачи |
FSM |
Бит режима кадровой синхронизации |
DXR |
Регистр данных передатчика |
DRR |
Регистр данных приемника |
XSR |
Регистр сдвига передатчика |
RSR |
Регистр сдвига приемника |
Временные диаграммы работы передатчика и приемника последовательного порта представлены на рис.4.14 и 4.15.
Рис.4.14. Временные диаграммы передатчика последовательного порта
131
Рис.4.15. Временные диаграммы приемника последовательного порта
Последовательный порт содержит два регистра, адресуемые как ячейки памяти: регистр передачи данных (DXR), который хранит данные, передаваемые через последовательный порт, и регистр приема данных (DRR), для хранения принятых данных. Оба регистра могут работать как в 8, так и в 16-разрядном режиме. Любая команда, обращающаяся к памяти данных, может быть использована эти регистры как ячейки памяти. Исключение составляет команда BLKD, которая не может читать эти регистры. DXR и DRR имеют адреса 1 и 0 в адресном пространстве памяти данных. Регистры XSR и RSR программно недоступны.
Секции приема и передачи последовательного порта выполнены отдельно друг от друга, что делает операции приема и передачи независимыми. Внешне последовательный порт оформлен в виде шести контактов. Данные, подаваемые на контакт DX из регистра XSR, синхронизируются по сигналу CLKX. Данные, принимаемые с контакта DR в регистр RSR, синхронизируются по сигналу CLKR. Первым передается старший разряд данных.
XSR и RSR соединены с DXR и DRR соответственно. Перед началом цикла передачи содержимое DXR предается в XSR. Во время операции приема, содержимое RSR передается в DRR, когда все разряды пакета данных приняты.
Если последовательный порт не используется, регистры DXR и DRR можно использовать для хранения данных. В этом случае, чтобы предотвратить возможную операцию приема данных, на выводы CLKR и FSR должен быть подан уровень логического нуля.
132
Управляют работой последовательного порта биты регистра состояния
ST1: FO, TXM, FSM.
FO - бит формата - определяет размер передаваемых данных. Если FO=0, обмен осуществляется 16-разрядными словами, если FO=1 - 8- разрядными словами. Бит FO загружается командой FORT.
TXM - бит режима передачи – определяет кадровые синхроимпульсы как внешние, или как внутренние. Если TXM=1, вывод FSX конфигурируется как выход и каждый раз при загрузке DXR по нарастающему фронту CLKX генерирует кадровые синхроимпульсы. Если TXM=0, контакт FSX конфигурируется как вход. Бит TXM загружается командами LST1, STXM, RTXM.
FSM - бит режим кадровой синхронизации - определяет нужны (FSM=1) или нет (FSM=0) импульсы кадровой синхронизации при передаче. Бит FSM загружается командами SFSM и RFSM.
4.3.14 ПРЕРЫВАНИЯ
Микропроцессор TMS320С25 имеет три внешних контакта (INT2 - INT0), используемые как маскируемые прерывания от внешних устройств. Внутренние прерывания генерируются последовательным портом (прерывания RINT и XINT), таймером (TINT) или командой прерывания TRAP. Все прерывания имеют приоритет (Таблица 4.10). Прерывание по сбросу (RS) имеет высший приоритет, а прерывания от последовательного порта - низший приоритет. Команда TRAP выполняет программное прерывание и не имеет приоритета, но включено в таблицу, так как имеет свой собственный вектор.
|
|
Таблица 4.10 |
||
Вектор |
Размещение в |
Приоритет |
Функции |
|
прерывания |
ROM(EPROM) |
|
|
|
RS |
0 |
1 (высший) |
Внешний сигнал |
|
|
|
|
сброса |
|
INT0 |
2 |
2 |
Внешнее |
|
прерывание 0 |
||||
|
|
|
||
