dsp lab7 id 144062 Nieznany

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 1

-

Wydział Elektryczny
ZTMAiPC – Zespół Automatyki



LABORATORIUM CYFROWEGO PRZETWARZANIA SYGNAŁÓW

Ćwiczenie 7

Wprowadzenie do programowania procesora sygnałowego ADSP 2181

5.1. Cel

ćwiczenia

„

Zapoznanie się z architekturą procesora sygnałowego ADSP2181 i opartym na
nim urządzeniem laboratoryjnym EZBOX.

„

Zaznajomienie się z procesem tworzenia aplikacji na procesor sygnałowy
ADSP2181 przy użyciu narzędzi firmy Analog Devices.

„

Nabycie umiejętności posługiwania się pakietem DSP Studio.

„

Uruchomienie i analiza przykładowych programów demonstracyjnych
w urządzeniu EZBOX.

„

Prezentacja praktycznego zastosowania procesora sygnałowego w telefonii, jako
generatora tonu wywołania DTMF.

5.2. Wprowadzenie

5.2.1. Architektura procesora sygnałowego ADSP2181

Procesor sygnałowy ADSP2181 firmy Analog Devices jest jednoukładowym
mikrokontrolerem, zoptymalizowanym do cyfrowego przetwarzania sygnałów
(ang. Digital Signal Processing - DSP) i innych aplikacji wymagających szybkich
obliczeń numerycznych. Procesor ADSP2181 jest zbudowany na bazie architektury
rodziny 21xx. Architektura ta zawiera trzy jednostki obliczeniowe, generatory
adresów danych i sekwencer programu.

Podstawowe bloki funkcjonalne procesora

Architektura procesorów sygnałowych dostarczanych przez firmę Analog Devices,
a więc także rodziny ADSP21xx, skonstruowana jest w oparciu o architekturę typu
Harvard, co oznacza, że magistrala dla danych z pamięci danych i magistrala dla
danych z pamięci programu są rozdzielone. W procesorze (ang. CPU core) można
wyróżnić następujące bloki funkcjonalne:

„

jednostka arytmetyczno-logiczna ALU (ang. Arithmetic-Logic Unit)

„

jednostka mnożąca MAC

(ang. Multiplier-Accumulator)

„

jednostka przesuwająco-skalująca (ang.

Barrel-Shifter)

„

jednostka sterująca

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 2

-

„

generatory adresów danych – DAG

(ang. Data Address Generator)

Poniższy rysunek przedstawia relacje zachodzące między poszczególnymi blokami
funkcjonalnymi procesorów rodziny ADSP21xx w tym również procesora
ADSP2181.

Rys. 1 Architektura procesora ADSP2181.

Schemat blokowy rdzenia procesora przedstawiony jest na rysunku 5.1. Bardziej
szczegółowe informacje na temat działania i budowy procesora, można uzyskać przy
pomocy firmowego programu DSP Navigator dołączonego do pakietu DSP Studio.
Program uruchamia się ze skrótu na pulpicie lub poleceniem DSP Studio:
Narzędzia/DSP Navigator.

Jednostka arytmetyczno - logiczna ALU

Z pośrednictwem jednostki ALU procesory rodziny ADSP21xx mogą realizować
podstawowe operacje arytmetyczne i logiczne, na 16-bitowych danych
stałoprzecinkowych. Za podstawowe operacje arytmetyczne uznawane są:
dodawanie, odejmowanie, negacja, inkrementacja, dekrementacja i obliczenie
wartości bezwzględnej. Obsługiwane funkcje logiczne to: AND, OR, XOR i NOT.

Konstrukcja jednostki ALU zapewnia dostęp do dwóch identycznych zestawów
rejestrów AX, AY, AF i AR, przy czym w danej chwili czasowej program może
obsłużyć tylko jeden z nich. Cecha ta ma szczególne znaczenie w przypadku
programów, których działanie opiera się na systemie przerwań procesora. Jeden bank
rejestrów przeznaczony jest na obsługę przerwań, drugi natomiast wykorzystywany
przez program główny. Przełączenia pomiędzy bankami rejestrów ALU dokonuje się
zmieniając bit 0 rejestru MSTAT procesora.

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 3

-

Listę operacji realizowanych przez jednostkę ALU oraz wszystkie możliwe
kombinacje operandów zapisano w tabeli 1.

Tabela 1

Symboliczny zapis operacji Funkcja

R = X + Y

dodawanie

R = X + Y + CI

dodawanie z przeniesieniem

R = X - Y

odejmowanie

R = X - Y + CI -1

odejmowanie z pożyczką

R = Y - X

odejmowanie

R = Y - X + CI -1

odejmowanie z pożyczką

R = -X

negacja argumentu

R = -Y

negacja argumentu

R = Y + 1

inkrementacja

R = Y - 1

dekrementacja

R = PASS X

przekazanie argumentu

R = PASS Y

przekazanie argumentu

R = 0

wyzerowanie rejestru wyniku

R = ABS X

wartość bezwzględna
argumentu

R = X AND Y

iloczyn logiczny argumentów

R = X OR Y

suma logiczna argumentów

R = X XOR Y

exclusive-or argumentów

R = NOT X

negacja logiczna argumentu

R = NOT Y

negacja logiczna argumentu

Poniżej zestawiono nazwy rejestrów procesora, z których dane mogą być
przekazywane do rejestrów wejściowych ALU.

Tabela 2

wejście X

wejście Y

wyjście R

AX0, AX1, AR, MR0, MR1, MR2, SR0, SR1

AY0, AY1, AF

AR, AF


Efektem działania jednostki ALU jest także odpowiednie ustawianie bitów
w rejestrze statusowym ASTAT. Poszczególne bity oznaczają:

„

AZ Zero

logiczne NOR wszystkich bitów rejestru wyjściowego ALU. AZ jest
ustawione na 1 gdy wynikiem działania jednostki jest zero.

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 4

-

„

AN Negativebit znaku w danej wynikowej z ALU. Jest 1 gdy ALU zwraca wartość ujemną.

„

AV Overflow

wynosi 1 jeżeli nastąpi przepełnienie (przekroczenie zakresu) jednostki.

„

AC Carry

bit wyjściowy, wykorzystywany przy odejmowaniu z pożyczką.

„

AS Sign

zwraca bit znaku danej z wejścia X. Bit ten jest ustawiany tylko przez
instrukcję ABS.

„

AQ Quotient

bit ustawiany przez operację DIVS i DIVQ.


Jednostka mnożąca MAC

Jednostka mnożąca procesora (MAC) pozwala na realizację następujące funkcji:

Tabela 3

Symboliczny zapis operacji

Funkcja

P = X * Y

mnożenie

P = P. + X * Y

mnożenie z dodawaniem

P = P. – X * Y

mnożenie z odejmowaniem

P = 0

mnożenie z dodawaniem


MAC zawiera dwa szesnastobitowe wejścia X i Y oraz 32-bitowy port wyjściowy P.
Wynik mnożenia jest przekazywany do 40-bitowego rejestru MR jednocześnie
wykonywana jest instrukcja dodawania lub odejmowania. Rejestr MR składa się
z trzech podrejestrów MR0, MR1 (o szerokości 16 bitów) i rejestru MR2
o szerokości 8 bitów. Źródłem danych dla rejestrów wejściowych MAC mogą być
następujące rejestry procesora [4]:

Tabela 4

wejście X

wejście Y

wyjście P

MX0, MX1, AR, MR0, MR1, MR2, SR0, SR1

MY0, MY1, AF

MR, MF


Jednostka MAC operuje na danych zapisanych w formacie 1.15 [4] wraz ze znakiem
(ang. Signed) lub bez znaku (ang. Unsigned).

Jednostka przesuwająco-skalująca Barrel-Shifter

Jednostka sterująca

Jednostka sterująca generuje strumień instrukcji dla rdzenia procesora sygnałowego
oraz prowadzi stałą kontrolę wykonywanego programu. Wyznacza kolejne etapy
wykonania kodu maszynowego oraz zajmuje się obsługą nadchodzących przerwań
wewnętrznych lub zewnętrznych. Ponadto jednostka sterująca umożliwia:
przewidywanie zakończenia pętli programowej (ang. zero-overhead looping),

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 5

-

wykonywanie skoków warunkowych wraz z określeniem rodzaju warunku w jednym
cyklu maszynowym.

Podczas gdy procesor wykonuje jedną instrukcję kodu maszynowego, sekwencer
programu pobiera do analizy następną instrukcję, której adres zawiera znajduje się
w jednym z czterech źródeł:

„

rejestru PC

„

stosu PC

„

rejestru instrukcji

„

sterownika przerwań


Następna instrukcja do wykonania może również pochodzić od jednego z rejestrów
I4 – I7 (są to rejestry indeksowe drugiego generatora danych DAG2). W ten sposób
może być wykonany skok do instrukcji wskazanej poprzez zawartość jednego z tych
rejestrów.

Ważnymi elementami jednostki sterującej są licznik instrukcji PC Counter oraz
rejestr stosu: PC Stack stanowiące 14-bitowe rejestry.
Jednostka sterująca pozwala realizować następujące konstrukcje programowe:

„

pętla DO...UNTIL

„

skok JUMP

„

wywołanie procedury CALL

„

powrót z procedury RTS

„

powrót z procedury RTI (obsługa przerwania)

„

wejście w tryb bezczynności IDLE


Każda z tych czynności może być wykonana zgodnie z warunkiem wynikającym
z ustawienia odpowiednich wartości bitów - flag w rejestrach statusu MAC, ALU.

Dostępne są następujące warunki wykonania:

Nazwa Opis

Zachodzi

jeżeli:

EQ

jeżeli równe zero

AZ = 1

NE

jeżeli różne od zera

AZ = 0

LT

jeżeli mniejsze od zera

AX xor AV = 1

GE

jeżeli większe od zera

AN xor AV = 0

LE

jeżeli mniejsze lub równe zero

(AN xor AV) or AZ = 1

GT

jeżeli większe lub równe zero

(AN xor AV) or AZ = 0

AC

jeżeli niedomiar ALU

AC = 1

NOT AC

jeżeli brak niedomiaru ALU

AC = 0

AV

jeżeli przepełnienie ALU

AV = 1

NOT AV

jeżeli brak przepełnienia ALU

AV = 0

MV

jeżeli przepełnienie MAC

MV = 1

NOT MV

jeżeli brak przepełnienia MAC

MV = 0

NEG

jeżeli składnik X operacji jest ujemny

AS = 1

POS

jeżeli składnik X operacji jest dodatni

AS = 0

CE

jeżeli wyczerpanie zawartości licznika pętli

_____

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 6

-

FOREVER zawsze prawdziwy

_____

Źródłem przerwania maskowalnego mogą być układy peryferyjne wbudowane
w procesor, jak np. zegar, porty szeregowe lub końcówki układu scalonego.
Sekwencer programu, na żądanie przerwania wykonuje skok pod odpowiedni adres
w pamięci, a stamtąd do procedury obsługi przerwania. Taką organizację obsługi
przerwań nazywamy wektoryzowanym systemem przerwań, a miejsce
przechowywania adresu funkcji obsługującej przerwanie wektorem przerwania.

Stan rejestru procesora może być sprawdzany poprzez odczyt rejestrów statusu:

„

ASTAT - stan ALU

„

MSTAT - stan MAC

„

SSTAT - stan stosu

„

INCTL - konfiguracja przerwań

„

IMASK - zablokowanie / odblokowanie poszczególnych przerwań

„

IFC- znacznik przyjęcia / obsłużenia przerwania


Generatory adresów danych DAG

Generator adresów danych (DAG - ang. Data Address Generator) stanowi

część rdzenia procesora wspomagającą proces transferu danych z / do pamięci
operacyjnej. Procesory rodziny ADSP21xx wyposażone są w dwa niezależne
generatory adresów DAG1 i DAG2, co pozwala na jednoczesny dostęp do pamięci
danych i programu. DAG zapewnia automatyczne zwiększenie lub zmniejszenie
wartości adresu rejestru adresowego po każdorazowej operacji zapisu/odczytu
pamięci. Każdy DAG używa przy tym swojego zestawu rejestrów roboczych,
składających się z:

„

rejestru M

(ang. Modify register) - określa o ile zwiększany lub

zmniejszany jest adres

„

rejestru I

(ang. Index register) - właściwy adres danej w pamięci

„

rejestru L

(ang. Length register) - rejestr określający długość obszaru

pamięci kontrolowanego przez DAG


Adresy danych generowanych przez jednostkę DAG1 mogą być dodatkowo
zanegowane, co określa bit BIT_REV w rejestrze MSTAT. Jest to użyteczne przy
implementacji algorytmów FFT.
W jednym cyklu zegara procesor może wykonać następujące czynności:

• wygenerować adres następnej instrukcji kodu maszynowego,
• pobrać tą instrukcję do wykonania,
• wykonać jeden lub dwa transfery danych z/do pamięci,
• wygenerować jeden lub dwa adresy danych do obliczeń,
• wykonać instrukcję obliczeniową.

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 7

-

Ponadto udostępnia dwa porty szeregowe, 16-bitowy wewnętrzny port DMA

(bezpośredni dostęp do pamięci), programowalny timer oraz rozbudowany system
przerwań.
Procesor ADSP 2181 zawiera 80 kB wewnętrznej pamięci, zorganizowanej w 16 K
słów 24 bitowych pamięci programu i 16 K słów 16-bitowych pamięci danych. Jest
to procesor stałoprzecinkowy, operujący na danych 16-bitowych. Procesor
synchronizowany jest zegarem 16,67 MHz. Czas wykonania jednej instrukcji kodu
maszynowego wynosi 30 ns.

Zadanie polega na podłączeniu oraz (jeśli jest to konieczne) skonfigurowaniu
urządzenia EZ-BOX; uruchomieniu i zapoznaniu z funkcjami pakietu DSP Studio;
uruchomieniu przykładowych aplikacji (w tym kodowania DTMF, eliminacji echa,
ADPCM - adaptacyjnej modulacji PCM).


Urządzenie laboratoryjne EZBOX to edukacyjny system mikroprocesorowy zbudowany

na bazie procesora sygnałowego ADSP2181. System ten wyposażony jest w układ
przetwornika AC/CA – tzw. kodek, dzięki któremu możliwe jest wprowadzanie
i wyprowadzanie sygnałów akustycznych do i z urządzenia. Komunikację z
komputerem PC (ładowanie kodu maszynowego do wykonania przez procesor)
zapewnia interfejs szeregowy RS232. Oprogramowanie komunikacyjne
i uruchomieniowe zawarte jest w pamięci ROM przyłączonej do procesora – jest to
tzw. program monitora. Schemat blokowy urządzenia EZBOX przedstawia rys 5.2.


ROM

DSP

KODEK

ADSP 2181

AD 1847

do karty
dźwiękowej

do oscyloskopu

do słuchawek

WZM

Max 232

RS 232

z karty
dźwiękowej

z mikrofonu

PC

Rys. 2 Schemat funkcjonalny urządzenia EZBOX.


W większości ćwiczeń laboratoryjnych z wykorzystaniem przyrządu EZBOX źródłem

sygnału analogowego jest karta dźwiękowa w komputerze PC lub odtwarzacz CD,
ona także realizuje akwizycję (nagrywanie) sygnału analogowego, generowanego
przez procesor sygnałowy. Źródłem sygnału dla urządzenia EZBOX może być
również mikrofon dynamiczny. Możliwe jest wyprowadzenie sygnału analogowego

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 8

-

z urządzenia EZBOX do oscyloskopu lub na głośniki (słuchawki). Każdy tor
sygnałowy EZBOX-a posiada swoje gniazdko chinch na obudowie urządzenia.


Rysunek 5.3 przedstawia opis wejść i wyjść urządzenia EZBOX.

wyjście słuchawkowe S1

złącze szeregowe RS 232

Cannon 25

wejście mikrofonu M1

wyjście audio A1

wejście
karty dźwiękowej WEKD

wyjście
karty dźwiękowej WYKD

przycisk RESET

przycisk P

dioda świecąca D

a

c)

b)

a)

dioda świecąca

sygnalizująca zasilanie

Rys. 3 Widok obudowy urządzenia EZBOX.

W celu uruchomienia urządzenia EZBOX należy wykonać następujące czynności:

1. Podłączyć wyjście szeregowe RS232 do złącza portu szeregowego komputera PC.

2. Podłączyć źródło sygnału. W zależności od tego, które z urządzeń zewnętrznych

będzie wykorzystywane w ćwiczeniu łączymy:

• wyjście karty dźwiękowej z gniazdkiem WYKD urządzenia EZBOX,

• wejście karty dźwiękowej z gniazdkiem WEKD urządzenia EZBOX,

• wyjście audio A1 podłączmy do oscyloskopu

• do wejścia mikrofonowego M1 podłączamy mikrofon dynamiczny

• do wyjścia słuchawkowego podłączmy słuchawki.

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 9

-

• kabel zasilający podłącza się do zasilacza stabilizowanego + 9V. Należy

zwrócić przy tym uwagę na polaryzację.

3. Poprawnie podłączone urządzenie, po naciśnięciu przycisku RESET zgłosi się

sygnałem dźwiękowym, słyszalnym w słuchawkach. Dioda święcąca D, będzie
migać. Oznacza to, że urządzenie jest gotowe do pracy.


U

W A G A O G Ó L N A

W przypadku wystąpienia problemów z uruchomieniem programów dla urządzenia
EZBOX, z poziomu monitora EZ KIT Lite, należy zresetować EZ-BOX przez
naciśnięcie przycisku RESET na jego obudowie.

5.2.2. Tworzenie aplikacji na procesor sygnałowy ADSP2181 przy użyciu narzędzi

firmy Analog Devices


Do rodziny procesorów sygnałowych ADSP21xx Analog Devices dostarcza szereg
narzędzi programistycznych umożliwiających tworzenie aplikacji na te procesory są
to: asembler, konsolidator (linker) i specjalny program służący do budowania opisu
architektury docelowego systemu mikroprocesorowego.
Tok tworzenia aplikacji na procesor sygnałowy jest następujący:

• zdefiniowanie architektury systemu mikroprocesorowego, w którym będzie

uruchomiony program,

• opracowanie algorytmów i przygotowanie plików z kodem źródłowym programu,
• asemblacja plików źródłowych do kodu maszynowego
• połączenie (linkowanie) poszczególnych fragmentów kodu maszynowego w jedną

całość stanowiącą aplikację,

• załadowanie kodu aplikacji do systemu uruchomieniowego, np. urządzenia EZBOX

i uruchomienie go,

• testowanie poprawności działania aplikacji i ewentualne poprawki.

Programy dla procesora sygnałowego ADSP 2181 mogą być napisane w języku C lub
w asemblerze. Do tego celu firma Analog Devices dostarcza następujący zestaw
narzędzi:
• asm21.exe – program asemblera dla rodziny procesorów ADSP21xx,

• ld21.exe – program konsolidujący (linker),

• g21.exe – kompilator języka C.

Sposób tworzenia aplikacji w języku asemblera został szczegółowo opisany w pracy
[1]. Pisanie aplikacji w języku C ma tą przewagę nad językiem asemblera, że kod
źródłowy jest w pełni przenoszalny pomiędzy różnymi modelami procesorów
w ramach rodziny ADSP21xx. Przy odpowiednio skonstruowanym kodzie źródłowym
możliwe jest też przenoszenie kodu pomiędzy różnymi typami procesorów
sygnałowych (niekoniecznie firmy Analog Devices). Do kompilatora C dostarczanego
przez producenta dołączony jest bogaty zestaw bibliotek zawierających wiele funkcji

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 10

-

z dziedziny cyfrowego przetwarzania sygnałów np. transformaty Fouriera, odwrotnej
transformaty Fouriera, funkcji nakładania okien a także ogólnych funkcji
matematycznych np. funkcje trygonometryczne, mnożenie macierzy itp.
Zaletą używania języka C jest w porównaniu z asemblerem jest znacznie prostsza
składnia i przenoszalność kodu źródłowego. Niestety z programach krytycznych pod
względem czasowym, należy stosować asembler jako bardziej efektywny.

Ponieważ narzędzia dostarczone przez firmę Analog Devices, nie zapewniają
komfortu pracy podczas tworzenia aplikacji zaleca się użycie pakietu DSP Studio
stanowiącego zintegrowane środowisko programistyczne dla procesorów sygnałowych
rodziny ADSP21xx.
DSP Studio to zintegrowane środowisko programistyczne, służące do efektywnego
zarządzania kodem źródłowym aplikacji i jego edycji. Posiada wbudowany edytor
kodu źródłowego, z podświetlaniem składni (słów kluczowych), co pozwala uniknąć
szeregu błędów syntaktycznych.
Z poziomu środowiska można dokonać kompilacji i konsolidacji kodów źródłowych.
Możliwe jest utworzenie kilku wersji jednej aplikacji, przeznaczonych na różne
procesory rodziny ADSP21xx. Ze środowiskiem DSP Studio można skojarzyć szereg
narzędzi zewnętrznych, np. konwertery formatów liczbowych, program ładująco-
komunikacyjny itp.
Podstawową struktura danych na której operuje DSP Studio jest projekt. Stanowi on
powiązany logicznie zbiór kodów źródłowych oraz plików danych, które po
skompilowaniu i konsolidacji dadzą w wyniku wykonywalną aplikację. Strukturę
przykładowego projektu WAVEGEN przedstawia rys 5.4. Projekt znajduje się w
katalogu DEMA\WAVEGEN.

Rys. 4 Projekt generatora przebiegów harmonicznych.

1. Uruchomienie i analiza przykładowych programów demonstracyjnych

w urządzeniu EZBOX.

1. Projekt wavegen
Aby załadować projekt wavegen do środowiska DSP Studio należy:

z menu Projekt wybrać polecenie Odczytaj projekt,

w oknie dialogowym Odczytaj projekt wskazać projekt wavegen.prj
znajdujący się w katalogu DEMA/wavegen.

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 11

-

Projekt wavegen.prj składa się z dwóch plików źródłowych i kilku plików

danych. Pliki źródłowe to: wavegen.dsp i onsample.dsp. Pliki danych
*.dat zawierają wzorce przebiegów, które zostaną wygenerowane przez
wzorce przebiegów, są to: sinus.dat, triangle.dat,
rectang.dat oraz song.dat

skompilować projekt poleceniem Projekt/Kompiluj cały projekt,

z menu Narzędzia wybrać polecenie Loader programów do EZBOX.

Zostanie uruchomiona aplikacja służąca do komunikacji z urządzeniem EZBOX.
Z menu Loading należy wybrać polecenie Download user program and go...;
otworzy się okno dialogowe w którym należy wskazać plik do załadowania
i uruchomienia, dla projektu wavegen.prj będzie to wavegen.exe, znajdujący
się w katalogu DEMA/WAVEGEN.
Po uruchomieniu programu w EZBOX-ie można zamknąć program komunikacyjny.

„

Aby zaobserwować kształt i widmo przebiegu generowanego przez procesor
sygnałowy, należy uruchomić program Winscope.exe. Dokonuje się tego
wybierając polecenie Narzędzia/Oscyloskop programu DSP Studio. Instrukcja
obsługi programu Winscope.exe znajduje się w opracowaniu [1]. Po ukazaniu
się okna głównego należy nacisnąć przycisk Play Winscope wykaże, że
generowany przebieg ma kształt sinusiodalny.

„

Aby zmienić kształt generowanego przebiegu na trójkątny, należy:

otworzyć do edycji plik wavegen.dsp

Dokonuje się tego poleceniem Pliki/Otwórz, w oknie dialgowym, należy

wskazać wyżej wymieniony plik. Można też dwukrotnie kliknąć na nazwie
pliku w strukturze projektu. DSP Studio automatycznie załaduje do edycji
plik wavegen.dsp.

− w kodzie źródłowym należy odnaleźć deklarację bufora na przebieg

o nazwie wavebuff, w dyrektywie .init dotyczącej tej zmiennej, należy
zmienić nazwę pliku inicjującego z sinus.dat na triangle,dat.

− zachować plik na dysk poleceniem Pliki/Zachowaj.
− skompilować projekt, jak dla pierwszego uruchomienia.
− załadować skompilowaną aplikację do EZBOX-a i zaobserwować jej

działanie programem Winscope według instrukcji, jak powyżej.

„

W celu zmiany częstotliwości generowanego przebiegu należy:

− otworzyć do edycji składnik projektu onsample.dsp
Dokonuje się tego dwukrotnie klikając na ikonie przypisanej do

onsample.dsp w strukturze projektu. Zostanie automatycznie
uruchomiony moduł DSP Studio odpowiedzialny za analizę kodu
źródłowego – CodeWizard – który rozbuduje strukturę projektu (gałąź
onsample.dsp) o funkcje i procedury zawarte w tym pliku źródłowym.

następnie kliknąć dwukrotnie na ikonie procedury on_sample. Spowoduje to
automatyczne wyszukanie w kodzie źródłowym procedury on_sample.
Należy dokonać modyfikacji kodu źródłowego we fragmencie opisanym
następującym komentarzem: „ { podwojenie częstotliwości - dopisać
modify(i0,m0); } ”. Dołożenie instrukcji modify spowoduje dwukrotne
przyspieszenie przeglądania przez funkcję on_sample bufora ze wzorcem
przebiegu.

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 12

-

• Skompilować, załadować i uruchomić bieżący projekt.
• Zaobserwować działanie projektu za pomocą aplikacji winscope.exe.

5.3. Podstawy

teoretyczne

Wraz z pakietem uruchomieniowym procesora ADSP2181, firma Analog Devices

dostarcza również kilka przykładowych programów, prezentujących możliwości tego
układu. W tym ćwiczeniu zapoznamy się z programem realizującym kodowanie
DTMF oraz efektami działania filtrów dolnoprzepustowych.

5.3.1. DTMF

DTMF – (ang. Dual Tone Multi Frequency) znany również jako Touch Tone lub

MTFPB (Multi-Frequency Push Button) jest to system generowania tonów
o odpowiedniej częstotliwości stosowany do identyfikacji wybierania numerów
w abonenckich cyfrowych centralach telefonicznych, opracowany w laboratoriach
firmy Bell Labs. System ten z

powodzeniem może być wykorzystywany

do sterowania interaktywnymi aplikacjami za pośrednictwem komutowanego łącza
telefonicznego.

Wybranie dowolnej cyfry z klawiatury tonowej aparatu telefonicznego powoduje

wygenerowanie dwóch sygnałów sinusoidalnych o różnych częstotliwościach
(tabela1). Zapewnia to jednoznaczną identyfikację każdego spośród 16 znaków.

Poniższy rysunek przedstawia klawiaturę tonową i zestawienie częstotliwości

odpowiadających poszczególnym cyfrom (np. wybranie cyfry 7 odpowiada
wygenerowaniu tonów o częstotliwościach 852 Hz i 1209 Hz.).

1209

Hz

1336 Hz 1477 Hz 1633 Hz


697 Hz

1 2 3 A


770 Hz

4 5 6 B


852 Hz

7 8 9 C


941 Hz

* 0 # D

Tabela 5. Częstotliwości generowane w systemie DTMF.

W odróżnieniu od mechanizmu impulsowego wybierania numeru, gdzie cyfrę określa

odpowiadająca jej liczba impulsów, system DTMF zapewnia znacznie bardziej
niezawodne działanie.

Ponadto system DTMF daje możliwość, już po uzyskaniu połączenia ze wskazanym

numerem aparatu przekazywanie sygnału zdalnie sterującego urządzeniem np.
można w ten sposób, za pośrednictwem telefonu, przesłać sygnał do urządzenia
włączającego oświetlenie, które współpracuje z telefonem odbierającym sygnał.

Kodowanie DTMF realizuje się sprzętowo przez specjalizowany układ scalony,

synchronizowany oscylatorem kwarcowym o częstotliwości 3,579545 MHz lub

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 13

-

programowo odtwarzając stabelaryzowany przebieg sinusoidalny o odpowiedniej
częstotliwości.

W tabeli 1 przedstawiono standardowe częstotliwości stosowane w kodowaniu DTMF,

stanowiące wartości wzorcowe; typowe wartości częstotliwości uzyskiwane
sprzętowo oraz częstotliwości osiągane przez realizację programową na procesorze
sygnałowym ADSP-2100.

Przedstawiona metoda kodowania (DTMF) znajduje szerokie zastosowanie w branży

usług telefonicznych takich jak np. całodobowy system informacji bankowej,
w którym rodzaj usługi wybierany jest tonowo.

5.3.2. Przykład realizacji kodowania sygnału DTMF

Do zapoznania się ze sposobem kodowania sygnału DTMF posłużymy się
programami DSP Studio i przykładem zaimplementowanym w programie EZ-KIT
Lite.

1. Uruchomić program DSP Studio.

2. Z menu Narzędzia wybrać polecenie Programy demonstracyjne.

Zostanie wówczas uruchomiony program monitora EZ-KIT Lite.


3. Z menu Options wybrać List Of Demos, spowoduje to wyświetlenie listy

zawierającej przyciski do uruchomienia przykładowych programów
wykonywanych przez procesor sygnałowy. Nacisnąć przycisk DTMF.


4. W oknie DTMF Demo, mamy do wyboru dwie opcje

• Generate dial tone /generuj ton wywołania/

• Generate DTMF digits /generuj cyfry DTMF/

5. Przechodzimy do środowiska DSP Studio i z menu Narzędzia wybieramy

polecenie Oscyloskop.

6. Naciśnięciem przycisku ....... uruchamiamy podgląd sygnału z wejścia karty

dźwiękowej.

Przyciskiem Close przerywamy działanie dema.

5.3.3. Przykład działania filtrów pasmowo przepustowych

Najbardziej popularne metody projektowania filtrów cyfrowych, omówiono dokładniej

we wprowadzeniu do ćwiczenia 6.

1. Wykonać czynności przedstawione w punktach 1 i 2 przykładu 1 (kodowanie

sygnału DTMF), a następnie uruchomić Loader programów do EZ-KIT Lite


2. W oknie List Of Demos nacisnąć przycisk Filters, pojawi się wówczas okno

Filtering Demo, zawierające opcje:

background image

Laboratorium Cyfrowego Przetwarzania Sygnałów

Ćwiczenie 5 – Wprowadzenie do programowania procesora sygnałowego ADSP-2181

- 14

-

• Codec Input /Wejście kodeka /

− Bandpass 1 (328-428)Hz

− Bandpass 2 (521-710)Hz

− Bandpass 3 (825-1125)Hz

− Bandpass 4 (1308-1783)Hz

W przypadku wybrania jednej z wymienionych wyżej opcji sygnał do

filtrowania jest pobierany z wejścia kodeka, a następnie podlega filtrowaniu
pasmowoprzepustowemu w podanym zakresie częstotliwości. Oznacza to,
że np. częstotliwości z zakresu 521 do710 Hz są przepuszczane, pozostałe
zaś są tłumione.

Działanie tego rodzaju filtrów można ocenić (usłyszeć w słuchawkach) po

podłączeniu urządzenia EZ-BOX z kartą dźwiękową – źródłem sygnału
poddawanego filtracji.


• Noise Input /Wejście szumu/

− Bandpass 1 (328-428)Hz

− Bandpass 2 (521-710)Hz

− Bandpass 3 (825-1125)Hz

− Bandpass 4 (1308-1783)Hz

Tutaj szum generowany jest programowo i podobnie jak wyżej filtrowany. W

celu uruchomienia tego przykładu wystarczy zaznaczyć myszką
odpowiednią opcję.


Wyszukiwarka

Podobne podstrony:
dsp lab1 id 144058 Nieznany
lab7 5 id 260197 Nieznany
lab7 (1) id 260206 Nieznany
pkm lab7 id 360098 Nieznany
dsp lab5 id 144060 Nieznany
dsp lab2 id 144059 Nieznany
dsp lab6 id 144061 Nieznany
JPPO Lab7 id 228825 Nieznany
dsp lab1 id 144058 Nieznany
lab7 8 cz1 id 260220 Nieznany
lab7 upds id 749745 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany

więcej podobnych podstron