Schemat zadania na laboratorium z „Cyfrowego Przetwarzania Sygnałów” w dniu 19 kwietnia 2002



Pobieranie 60,24 Kb.
Data22.05.2018
Rozmiar60,24 Kb.

Politechnika Poznańska

Instytut Elektroniki i Telekomunikacji

Zakład Systemów Telekomunikacyjnych

Wstęp do Cyfrowego Przetwarzania Sygnałów - Laboratorium

Filtracja sygnałów przy użyciu procesora sygnałowego

1. Procesor sygnałowy ADSP 21160


1.1 Schemat blokowy

1.2 Moduły przetwarzania
Rdzeń procesora zawiera dwa bloki przetwarzające (PEx i PEy). Każdy z tych modułów składa się ze zbioru rejestrów (data register files) i trzech niezależnych jednostek liczących: ALU (jednostki arytmetyczno – logicznej), układu mnożącego ze stałoprzecinkowym akumulatorem i układu przesuwającego. Procesor może przetwarzać dane w trzech formatach: 32-bitowym stałoprzecinkowym, 32-bitowym zmiennoprzecinkowym oraz 40-bitowym zmiennoprzecinkowym. Operacje zmiennoprzecinkowe pojedynczej precyzji realizowane są zgodnie ze standardem IEEE, natomiast 40-bitowe mają dodatkowe 8 bitów dla zwiększenia rozdzielczości mantysy. Jednostka arytmetyczno-logiczna realizuje operacje arytmetyczne lub logiczne zarówno zmienno jak i stałoprzecinkowe. Układ mnożący realizuje mnożenie zmienno i stałoprzecinkowe, układ przesuwający realizuje logiczne i bitowe przesunięcia, manipuluje bitami. Wszystkie instrukcje wykonywane są w jednym cyklu. Moduły połączone są równoległe. Wynik operacji w jednym z nich może być wejściem dla innego w następnym cyklu. W przypadku mnożenia połączonego z dodawaniem lub odejmowaniem, ALU i układ mnożący wykonują równoległe operacje. Każdy moduł posiada zbiór rejestrów ogólnego przeznaczenia. Zadaniem tych rejestrów jest transfer danych między jednostkami liczącymi a szyną danych. Rejestry mogą również przechowywać tymczasowe wyniki obliczeń. Rejestry są 40 bitowe. Zbiór rejestrów można podzielić na dwie części: główną (primery) i alternatywną (alternate). Możliwe jest przełączanie między tymi zbiorami. Przełączając się z głównego zbioru rejestrów na alternatywny zawartość głównego zbioru rejestrów nie jest tracona i może zostać odtworzona po ponownym przełączeniu. Główny Processing Element (PEx) wykonuje wszystkie instrukcje w trybie SISD (Single Instruction Single Data) lub SIMD (Single Instruction Multiple Data). Moduł PEy wspomaga działanie PEx w trybie SIMD.

1.3 Kontrola przepływu programu


Przebieg programu kontrolowany jest przez kilka bloków funkcjonalnych: licznik programu, generator adresów, zegar i pamięć podręczną instrukcji. Dwa dedykowane generatory adresów i licznik programu realizują dostęp do pamięci. Dzięki pamięci podręcznej programu procesor może równolegle pobierać instrukcję z tejże pamięci i adresować dwa operandy z pamięci. Generatory adresów mogą również sprzętowo realizować bufory cykliczne.

Licznik programu odpowiedzialny jest za adresowanie pamięci programu. Kontroluje wykonywanie pętli i instrukcji warunkowych.

Generatory adresów (DAG – data adress generator) adresują pamięć przy transferze danych między pamięcią a rejestrami. Procesor zawiera dwie takie jednostki, pozwala to na równoległe adresowanie dwóch odczytów lub zapisów. W skład generatora adresów wchodzą osiem rejestrów do przechowywania adresów, osiem rejestrów służących do modyfikowania rejestrów adresujących i osiem rejestrów zawierających długość bufora przy adresowaniu cyklicznym. Każdy generator adresów zawiera alternatywny zbiór rejestrów. Bufory cykliczne pozwalają efektywnie implementować linie opóźniające oraz inne struktury używane w cyfrowym przetwarzani sygnałów.

Procesor ADSP-21160 posiada cztery zewnętrzne źródła przerwań. Trzy przerwania ogólnego przeznaczenia IRQ2-0 i specjalne przerwanie dla resetowania układu. Procesor ma także wewnętrznie generowane przerwania timera, kontrolera DMA itp.

Programowalny timer dostarcza cyklicznego, regularnego źródła wewnętrznego przerwania. Po aktywowaniu przerwania timera, w każdym cyklu dekrementowany jest 32-bitowy rejestr licznika. Po osiągnięciu zera zgłaszane jest przerwanie, a licznik timera automatycznie ładowany jest wartością startową.

Licznik programu zawiera podręczną pamięć, przechowującą trzy kolejne operacje. Pozwala to w znaczący sposób optymalizować dostęp procesora do pamięci.


1.4 Szyny wewnętrzne
Rdzeń procesora zawiera sześć szyn: szynę adresową pamięci programu (PM address), szynę danych pamięci programu (PM data), szynę adresową pamięci danych (DM address), szynę danych pamięci danych (DM data), szynę IO address i IO data. Zgodnie z architekturą Harvardzką pamięć danych przechowuje operandy instrukcji podczas gdy pamięć programu może zachowywać zarówno instrukcje jak i dane. Taka konstrukcja dostępu do pamięci pozwala na dostęp do danych, gdy instrukcje zapamiętywane są w pamięci podręcznej.

Szyna adresowa pamięci PM i szyna adresowa pamięci danych służą do adresowania instrukcji programu i danych. Szyny danych PM i DM transferują instrukcje i dane. Szyna adresowa PM ma szerokość 32 bitów i pozwala zaadresować 4 Gwords zarówno instrukcji jak i danych. Szyna danych PM ma szerokość 64 bitów by pomieścić 48 bitowe instrukcje i 64 bitowe dane. Szyna adresowa DM ma szerokość 32 bitów, a szyna danych DM 64 bity. Konstrukcja szyny danych pozwala na transfer zawartości rejestrów do innych rejestrów bądź do dowolnej komórki pamięci w jednym cyklu. Komórki pamięci mogą być adresowane bezpośrednio (podając konkretny adres komórki, do której chcemy uzyskać dostęp) lub pośrednio (adres znajduje się w rejestrze).

Szyny adresowe i danych IO pozwalają procesorowi IO na dostęp do pamięci wewnętrznej bez udziału rdzenia procesora (tryb DMA). Szerokość szyny adresowej IO wynosi 32 bity, a szyny danych 64 bity.

Prawie każdy rejestr rdzenia procesora może być sklasyfikowany jako rejestr uniwersalny. Instrukcje pozwalają na transfer danych między dwoma uniwersalnymi rejestrami lub między uniwersalnym rejestrem a pamięcią.

Procesor ADSP 21160 zawiera 4 Mb pamięci SRAM zorganizowanej jako dwa 2Mb bloki, które mogą być konfigurowane jako różne kombinacje kodu i danych. Każdy blok jest dual-ported dla niezależnego dostępu przez rdzeń procesora i procesor IO. Dostęp do pamięci może odbywać się w porcjach 16-, 32-, 48-, lub 64 bitowych. W powyższych kombinacjach pojemność pamięci jest określona jako 128 K słów 32 bitowych, 256 K słów 16 bitowych lub w innych kombinacjach. Procesor może zapamiętywać liczby w 16 bitowym formacie zmiennoprzecinkowym. Konwersja między reprezentacją 16 bitową a 32 bitową liczby zmiennoprzecinkowej odbywa się w jednej instrukcji. Mimo że każdy blok pamięci może zawierać zarówno instrukcje programu jak i dane, najefektywniejszym rozwiązaniem jest zapamiętywanie instrukcji i danych w bloku PM i danych w bloku DM pamięci.

Procesor może także mieć dostęp do zewnętrznej pamięci lub urządzeń peryferyjnych. Na zewnątrz dostępna jest jedna szyna adresowa 32 bitowa i 64 bitowa szyna danych. Układ może zaadresować 4G słów zewnętrznej pamięci.

Dostępny jest także styk procesora ADSP 21160 pozwalający na dołączenie go do innych mikroprocesorów za pośrednictwem standardowych sygnałów i szyn 16 lub 32 bitowych (Host Processor Interface). Interfejs operuje za pośrednictwem portu zewnętrznego. Cztery kanały DMA pozwalają na efektywną wymianę danych z małą ilością dodatkowego kodu.

ADSP 21160 posiada właściwości umożliwiające łączenie kilku układów w system wieloprocesorowy.

Procesor ADSP 21160 zawiera procesor I/O (Input / Output Processor) składający się z dwóch konfigurowalnych portów szeregowych sześciu link ports i kontrolera DMA. Jednym z zadań tego procesora jest automatyczne ładowanie programu do pamięci. Istnieje kilka trybów pracy z tym związanych. Procesor może wykonywać program pobierając instrukcje z zewnętrznej pamięci. Drugim trybem jest załadowanie w fazie startu procesora zawartości pamięci z programem do pamięci wewnętrznej procesora. Trzecim jest możliwość ładowania programu z procesora zewnętrznego bądź link portu.

Procesor IO posiada dwa konfigurowalne synchroniczne porty szeregowe. Dane z portów szeregowych są automatycznie zapisywane do pamięci wewnętrznej układu za pośrednictwem DMA. Analogicznie odbywa się to przy zapisie danych z pamięci do portu szeregowego. Port szeregowy może transmitować dane zarówno w formacie liitle-endian i big-endian. Długość słowa może być ustawiana w zakresie 3 do 32 bitów.

W skład modułu procesora IO wchodzi sześć 8- bitowych link portów. Link port IO jest użyteczny w przypadku komunikacji między procesorami w systemie wieloprocesorowym. Może pracować niezależnie od reszty układu. Dane z portu są mapowane w 32- lub 48-bitowe słowa zapisywane do pamięci przez DMA.

Kontroler DM pozwala na transfer danych bez dodatkowego użycia procesora. Pracuje niezależnie od rdzenia procesora, dzięki temu może przesyłać dane, gdy procesor wykonuje program. Dostępnych jest czternaście kanałów DMA: sześć dla link portu, cztery dla portu szeregowego i cztery dla portu zewnętrznego.



2. Program ćwiczenia


  1. Uruchom program VisualDSP++ 3.0 z wciśniętym klawiszem CTRL
    (Start ->VisualDSP->VisualDSP++ Environment.

  2. Wybierz z listy sesji odpowiednie urządzenie (ADSP-21160 EZ-KIT Lite lub ADSP 2191 EZ-Kit Lite zależnie od rodzaju podłączonej płytki), naciśnij przycisk Activate.

  3. Otwórz plik projektu – *.dpj. Dla płytki z procesorem 21160 jest to plik „bandpass.dpj”, dla płytki z procesorem 2191 plik „2191 Talkthrough C.dpj „

  4. Skompiluj i załaduj program do pamięci procesora. Kompilację i generację kodu dla procesora wykonuje się przez wybranie z menu Project->Build lub Project->RebuildAll.

  5. Uruchom program wybierając z menu Debug polecenie Run. (wcześniej należy odznaczyć ustawione przez kompilator w programie ‘breakpointy’)

  6. Ciało funkcji realizujące algorytm filtracji znajduje się w pliku Process_Data.c lub Process_Samples.c Zmień funkcję tak by realizowała filtr o współczynnikach podanych przez prowadzącego (wyliczonych w Matlab’ie i zapisanych w dołączonym pliku)

3. Wskazówki


Funkcja realizująca filtracja wywoływana jest przez funkcję obsługi przerwania. W danej chwili dostępna jest aktualna próbka wejściowa. Wszystko, co trzeba zrobić to zdefiniować globalną zmienną (tablicę pamiętającą poprzednie próbki sygnału wejściowego) i odpowiednio przesuwać dane.
4. Wzór sprawozdania


Wstęp do cyfrowego przetwarzania sygnałów – laboratorium

Temat:

Imię i nazwisko:

Data ćwiczenia:

Data oddania sprawozdania:

Ocena:

Sprawozdanie powinno zawierać:

1. Kod źródłowy napisanej funkcji.

2. Subiektywne oceny sygnału przed i po filtracji.





Instytut Elektroniki i Telekomunikacji – Zakład Systemów Telekomunikacyjnych




©operacji.org 2017
wyślij wiadomość

    Strona główna