Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Краткая теоретическая справка





Для более успешного освоения работы цифрового сигнального процессора 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.

Приведем пример реализации цифровой цепи, содержащей только линию задержки, структурная схема которой приведена на рисунке 4.1.

 

 

Рисунок 4.1

 

Уравнение вход-выход этой цепи имеет следующий вид:

Ниже приведена программа, реализующая структурную схему, представленную на рисунке 4.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 - длина линии задержки, выраженная в количестве отсчетов, на которое задерживается сигнал.

Рассмотрим пример реализации цепи, содержащей линию задержки, два умножителя и сумматор, тогда уравнение вход-выход цепи имеет вид:

.

Структурная схема такой цепи приведена на рисунке 4.2. В данном примере реализуется сложение входного отсчета, умноженного на весовой коэффициент g0, с отсчетом, задержанным на length тактов и умноженным на весовой коэффициент g1.

 

Рисунок 4.2

 

Программа, реализующая структурную схему на рисунке 4.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, который содержит команды настройки схемы АЦП/ЦАП. Программа предназначена для использования в реальном масштабе времени.





Рекомендуемые страницы:




Читайте также:


Воспользуйтесь поиском по сайту:



©2015- 2021 megalektsii.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.