
- •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.3 Содержание отчета
5.3.1 Текст программы с подробными комментариями.
5.3.2 Ответы на контрольные вопросы.
5.3.3 Изменения, внесенные в программу по указанию преподавателя, выводы по полученным при этом результатам.
Контрольные вопросы
Назовите основные методы адресации процессора TMS320C5x.
Поясните, как формируется адрес при прямой адресации.
Поясните, как формируется адрес при непосредственной адресации.
Поясните, как формируется адрес при косвенной адресации.
В чём особенность циклической адресации.
Как задать циклический буфер?
Как изменяются адреса при циклической адресации?
6 Реализация основных операций цифровой обработки сигналов на процессоре tms320с5x , работающем в реальном времени
Цель работы: ознакомление с отладочной платой DSK и изучение ее работы для реализации на процессоре TMS320C50 основных операций цифровой обработки сигналов в реальном масштабе времени.
6.1 Краткая теоретическая справка
Для более успешного освоения работы цифрового сигнального процессора TMS320C50 фирма Texas Instruments выпустила плату Digital Starter Kit (DSK), которая является учебным инструментом при выполнения экспериментов с использованием процессора для обработки цифровых сигналов в реальном масштабе времени. Плата включает:
- процессор с фиксированной точкой TMS320C50;
- программируемое ПЗУ (PROM), объемом 32 Кб;
- интерфейс соединения с компьютером через порт RS232;
- аналоговый интерфейс на базе схемы АЦП/ЦАП TLC32040;
- интерфейс эмуляции.
Внутри кристалла процессора имеется оперативная память (ОЗУ), которая позволяет размещать по 10К памяти программ и данных. Схема АЦП/ЦАП предназначена для аналогового ввода-вывода через микрофон, динамик или наушники и подключена к последовательному порту процессора. Опорная частота этой схемы задается таймером процессора и равна 10 Мгц,.
Для работы с процессорным модулем в режиме отладки из постоянной памяти запускается программа монитор dsk5d (программа отладчик) и на экране монитора появляется графическая панель, отражающая состояние всех регистров и памяти процессора, а также дизассемблированную программу.
Графическая панель организована по оконному типу и дает возможность:
загружать исполняемые программы и просматривать их дизассемблерную версию в окне DISASSEBLY;
выполнять программы в пошаговом и автоматическом (непрерывном) режимах, контролировать их выполнение, следя за изменениями, происходящими с содержимым регистров и областей памяти процессора;
задавать точки останова при непрерывном выполнении программы.
Основной операцией цифровой обработки сигналов является задержка сигнала на определенное количество отсчетов m (на время m / Fd, где Fd – частота дискретизации), которая встречается во всех алгоритмах цифровой фильтрации. Существуют два варианта её программной реализации:
1. Организуется массив памяти, в который записываются отсчёты, причем запись и считывание отсчётов осуществляется всё время по одним и тем же адресам, т.е. точки входа и выхода линии задержки ( Z-m ) остаются постоянными, а перемещаются (сдвигаются) данные между ячейками памяти, имитируя прохождение сигнала в реальной физической линии задержки.
2. Организуется массив памяти, в который записываются отсчеты, но при этом перемещаются точки входа и выхода линии задержки, т.е. циклически изменяются адреса записи и считывания в пределах выделенного массива. Такой массив называется циклическим буфером (ЦБ). При этом способе данные внутри памяти не перемещаются. Это существенно снижает требования к производительности процессора за счет ликвидации большого количества операций по перемещению данных.
При всех вариантах реализации линии задержки размер требуемой области памяти определяется количеством задерживаемых отсчетов, т.е. длиной линии задержки.
В TMS320C50 имеются механизмы аппаратной организации двух циклических буферов. Использование циклических буферов, как отдельный вид адресации данных, рассмотрено в лабораторной работе №5.
Приведем пример реализации цифровой цепи, содержащей только линию задержки, структурная схема которой приведена на рисунке 6.1.
Риунок 6.1
Уравнение вход-выход этой цепи имеет следующий вид:
Ниже приведена программа, реализующая структурную схему, представленную на рисунке 6.1.
; Программа LAB6_1.ASM
.version 50
.mmregs
LENGTH .set 5 ;определение длины буфера
sect "BUFFER"
BUFFER .space LENGTH*5 ; резервирование места для циклического буфера
.data
ONE .word 07FFFh
X word 0
Y .word 0
.text
* организация буфера
LDP #0
SPLK #BUFFER,CBSR1 ;начальный адрес буфера
SPLK #(BUFFER+LENGTH-1),CBER1 ;конечный адрес буфера
LAR AR1,#BUFFER ;указатель буфера
SPLK 00001001b,CBCR ;разрешение буфера
MAR *,AR1 ;установка текущего вспомогательного регистра
* очистка буфера
ZAP
RPT #(LENGTH-1)
SACL *+
* формирование начального значения сигнала в ячейке X
LDP #X
LACC ONE
SACL X
* линия задержки
BEGIN LACC * ;чтение выходного сигнала
SACL Y ;запись выходного сигнала
LACC X ;чтение входного сигнала
SACL *+ ; запись входного сигнала в линию задержки
* изменение сигнала
ROR ; уменьшение сигнала в 2 раза путем сдвига вправо
SACL X ; сохранение нового значения входного сигнала
ZAP ; обнуление ACC
B BEGIN
.end
Линия задержки организована следующим образом. Адрес считывания выходного сигнала линии и адрес записи входного сигнала один и тот же на каждом периоде обращения к линии. Из ячейки линии сначала производится считывание выходного сигнала, и так как это значение больше не потребуется, затем в эту же ячейку производится запись очередного входного отсчета. Считывание этого отсчета будет произведено через m (length) периодов обращения к линии, т.е. с задержкой на время m / Fd . После записи входного отсчета производится модификация адреса.
В качестве входного сигнала в этом примере используется единичный цифровой скачок, который затем на каждом следующем отсчете уменьшается в 2 раза путем сдвига содержимого аккумулятора вправо на один разряд.
При реализации алгоритмов ЦОС, возникает проблема масштабирования сигнала, так как возможны ошибки, связанные с переполнением, например, при сложении (результат сложения превышает 1).
Для ослабления уровня входных отсчетов цифровой цепи их нужно умножить на коэффициент масштабирования, который определяется как величина, обратная максимуму АЧХ этой цепи. Например, если масштабный множитель с именем GAIN = 0,5, то в программе он указывается как 16-ричное число 0,5∙32768 = 4000h.
Для увеличения уровня входных отсчетов на выходе цепи их нужно умножать на коэффициент, больший единицы. Но так как числа больше 1 в процессоре обычно не используются, то поступают следующим образом: к исходному значению числа прибавляют это же значение, умноженное на дробную часть масштабного множителя. Например, уравнение, описывающее эту операцию при коэффициенте масштабирования, равном 1,5, имеет вид:
.
Уравнение, описывающее сложение прямого и задержанного сигналов , имеет вид:
где length - длина линии задержки, выраженная в количестве отсчетов, на которое задерживается сигнал.
Рассмотрим пример реализации цепи, содержащей линию задержки, два умножителя и сумматор, тогда уравнение вход-выход цепи имеет вид:
.
Структурная схема такой цепи приведена на рисунке 6.2. В данном примере реализуется сложение входного отсчета, умноженного на весовой коэффициент g0, с отсчетом, задержанным на length тактов и умноженным на весовой коэффициент g1.
Рисунок 6.2
Программа, реализующая структурную схему на рисунке 6.2, приведена ниже:
; Программа lab6_3.asm
.version 50
.mmregs
LENGTH .set 7000
.data
* задание параметров для схемы АЦП/ЦАП
TA .word 18
RA .word 18
TB .word 36
RB .word 36
AIC_CTR .word 29h
FLAG .word 0
* резервирование места для циклического буфера (линии задержки)
.sect "BUFFER"
.bss BUFFER,LENGTH
* начальные присваивания значений констант и переменных
X .word 0
Y .word 0
G0 .word 32768*34/100 ; 02B85h
G1 .word 32768*125/1000 ; 01000h
.include "init.asm" ; включение файла настойки АЦП/ЦАП
BEGIN:
* настройка режимов
LDP #0
CLRC OVM
SPM 0
SPLK #12h,IMR
* очистка линии задержки
LAR AR1,#BUFFER
LAR AR2,#(LENGTH-1)
MAR *,AR1
ZAP
CLEAR SACL *+,AR2
BANZ CLEAR,*-,AR1
CLRC INTM
* организация циклического буфера
SPLK #BUFFER,CBSR1
SPLK #(BUFFER+LENGTH-1),CBER1
LAR AR1,#BUFFER
SPLK 00001001,CBCR
MAR *,AR1
LDP #FLAG
BEG: BIT FLAG,15 ; ожидание прерывания от АЦП
BCND BEG,NTC
XPL #1,FLAG ; изменение признака прихода прерывания
* основная программа
LDP #X
ZAP ; очистка ACC и регистра P
LT X ; загрузить Х в Т-регистр
MPY G0 ; реализация X(n)*G0
APAC ; (ACC)+X(n)*G0
LT * ; загрузка в Т сигнала с выхода линии
MPY G1 ; реализация X(n-m)*G1
APAC ; Y(n)=X(n)*G0+X(n-m)*G1
SACH Y,1 ; сохранение выходного сигнала в Y
ZAP ; обнуление ACC
LACC X,14 ; загрузка в ACC сигнала X
SACH *+,1 ; запись в линию задержки
B BEG ; переход к ожиданию следующего отсчета
* подпрограмма обработки прерывания приемника
RECEIVE:
LAMM DRR
LDP #X
SACL X
LACC Y
AND #0FFFCh
SAMM DXR
LDP #FLAG
XPL #1,FLAG
RETE
.end
В программу с помощью директивы .include включается файл init.asm, который содержит команды настройки схемы АЦП/ЦАП. Программа предназначена для использования в реальном масштабе времени.