
- •1 Исследование эффектов квантования в цифровых цепях
- •1.1 Краткая теоретическая справка
- •1.2 Контроль подготовленности к работе:
- •1.3 Выполнение лабораторной работы
- •1.4 Контрольные вопросы
- •2 Подготовка исполняемых программ для процессора tms320с50
- •2.1 Краткая теоретическая справка
- •2.2 Порядок выполнения работы
- •Dspa.Exe -lcs (имя файла).Asm
- •2.3 Контрольные вопросы
- •3 Изучение симулятора процессора tms320c50 и приемов работы с ним
- •3.1 Краткая теоретическая справка
- •3.2 Порядок выполнения работы
- •2.3 Контрольные вопросы
- •4 Представление данных в процессорах с фиксированной запятой
- •4.1 Краткая теоретическая справка
- •4.2 Порядок выполнения работы
- •4.3 Содержание отчета
- •4.4 Контрольные вопросы
- •5 Изучение методов адресации процессора tms320с5x
- •5.1 Краткая теоретическая справка
- •Прямая адресация
- •5.1.3 Непосредственная адресация
- •5.1.4 Циклическая адресация
- •Порядок выполнения работы
- •5.3 Содержание отчета
- •Контрольные вопросы
- •6 Реализация основных операций цифровой обработки сигналов на процессоре tms320с5x , работающем в реальном времени
- •6.1 Краткая теоретическая справка
- •6.3 Порядок выполнения работы
- •6.4 Содержание отчета
- •6.5 Контрольные вопросы
- •Список литературы
- •Содержание
- •1 Лабораторная работа №1.………………………..…………………... ...3
- •6 Лабораторная работа №6 ………….………………………………….. 42
- •Цифровая обработка сигналов
- •050013, Алматы, Байтурсынова, 126
5.1.3 Непосредственная адресация
В случае непосредственной адресации операнд содержится непосредственно в слове команды. В процессорах семейства `C5x имеются однословные команды с непосредственной адресацией (8-битовые, 9-битовые и 13-битовые константы) и двухсловные (16-битные константы) длинные команды с непосредственной адресацией. В коротких командах непосредственный операнд находится прямо в слове. В длинных командах непосредственный операнд содержится во втором слове.
Примеры команд с непосредственной адресацией:
1) RPT #99; повторение команды следующей за RPT 100 раз, непосредственный операнд расположен непосредственно в командном слове;
2) RPT #0FFFh ; повторение команды, следующей за RPT 1000h раз, в этом случае 16-битовая константа, задающая адрес, содержится в отдельном слове следующем за словом команды.
5.1.4 Циклическая адресация
Циклическая адресация представляет метод адресации, при котором происходит циклическое обращение к ячейкам некоторой области памяти (к ячейкам буфера), т.е. при достижении конца буфера автоматически происходит переход к его началу и наоборот. В пределах буфера для указания адреса используется вспомогательный регистр (т.е. косвенный принцип адресации). При инкременте содержимого регистра (увеличении адреса) при достижении последней ячейки буфера в этот регистр автоматически заносится начальный адрес буфера.
На рисунке 5.1 приведен алгоритм циклической адресации. Из рисунка 5.1 видно, как будет распределяться последовательность отсчетов входного сигнала в буфере длиной 6 ячеек. В таком буфере, например, можно организовать линию задержки на 5T, где T – интервал дискретизации. Для этого надо последовательно считывать отсчеты x(0) и x(5), x(1) и x(6) и т.д.
Рисунок 5.1 - Алгоритм циклической адресации
В процессорах семейства `C5x имеется аппаратный механизм реализации циклических буферов, которые позволяют организовать два одновременно действующих циклических буфера, управляемых с помощью вспомогательных регистров. Существует 5 регистров, с помощью которых осуществляется управление циклическими буферами:
CBSR1 - регистр начального адреса первого циклического буфера;
CBSR2 - регистр начального адреса второго циклического буфера;
CBER1 - регистр конечного адреса первого циклического буфера;
CBER2 - регистр конечного адреса второго циклического буфера;
CBCR - регистр управления циклическими буферами.
Регистр управления (CBCR) определяет, какие вспомогательные регистры работают с данным буфером, разрешает/запрещает использование циклических буферов. Назначение отдельных битов этого регистра приведено в таблице 5.1.
Чтобы задать циклический буфер необходимо вначале загрузить адреса начала и конца в соответствующие регистры циклического буфера, затем определить вспомогательный регистр, который будет работать указателем на ячейку памяти внутри циклического буфера. И в завершение установить бит разрешения работы соответствующего циклического буфера в регистре CBCR.
Т а б л и ц а 5.1
Бит |
Наименование |
Функция |
0 |
CAR1 |
Указывает, какой вспомогательный регистр работает с циклическим буфером 1 |
3 |
CENB1 |
Циклический буфер 1, разрешено=1, запрещено=0. При сбросе устанавливается в 0 |
4-6 |
CAR2 |
Указывает, какой вспомогательный регистр работает с циклическим буфером 2 |
7 |
CENB2 |
Циклический буфер 2, разрешено=1, запрещено=0. При сбросе устанавливается в 0 |
Алгоритм изменения адреса для циклического буфера следующий:
Если (ARn = CBER) и (любая модификация AR),
то ARn = CBSR;
иначе ARn = ARn + шаг.
В добавление заметим следующее.
- если ARn = CBER и не производится модификация AR, текущий AR не модифицируется и остаётся равным CBER;
- когда текущий вспомогательный регистр = CBER, и производится любая модификация AR (инкремент или декремент), текущий AR будет установлен = CBSR;
- процесс изменения адреса входа в циклический буфер показан на рисунке 5.1.
Пример циклической адресации:
splk #200h, CBSR1; задание начального адреса циклического буфера1
splk #203h, CBER1; задание конечного адреса циклического буфера1
splk #0Eh, CBCR; указание на адресацию буфера с помощью регистра AR6 и ;разрешение использования циклического буфера 1
;Вариант 1
lar ar6, #200h
lacc * ;Загрузить в аккумулятор содержимое ячейки, указываемое AR6 = ;200h (начало циклического буфера), содержимое AR6 не меняется
;Вариант 2
lar ar6, #203h
lacc * + ; Загрузить в аккумулятор содержимое ячейки, указываемое AR6 ;= 203h (конец циклического буфера), увеличить AR6 на 1, но AR6 = CBER1, поэтому ;выполняется переход на начало буфера и будет AR6=200h
;Вариант 3
lar ar6, #203h
lacc * - ; AR6 указывает на конец буфера, в результате попытки ;модификации в AR6 будет занесён не адрес 202h, а адрес начала буфера AR6 = 200h