MOTOROLA Semiconductor

DSP 56801

Úvod

  Rodina 16bitových procesorů MOTOROLA DSP56800 pracuje s pevnou řádovou čárkou a od předchozích řad procesorů (24bitové DSP 56000 a DSP56300 nebo 16bitová rodina DSP56600) se liší některými koncepčními rysy, které jsou vlastní spíše mikroprocesorům pro všeobecné použití nebo mikrořadičům. Jsou určeny pro použití v cenově nenáročných aplikacích, které vyžadují přímé programování s návazností na jazyk C. Největší využití je v oblasti mobilní komunikace, řízení elektrických strojů, snímání a zpracování digitálního obrazu, v modemech pro digitální přenos dat a mnohých dalších.

Základní vlastnosti DSP56801

       BLOKOVÉ SCHEMA


Funkční bloky procesoru

OBR. Vnitřní struktura procesoru

  Procesory rodiny DSP56800 obsahuje tři samostatné bloky : ALU, AGU a řadič. Tomu také odpovídá třífázové zpracování instrukcí. Jednotky jsou propojeny třemi adresovými a čtyřmi datovými sběrnicemi. Adresy pro datovou pamměť X jsou přenášeny dvěma jednosměrnými 16 bitovými sběrnicemi XAB1 (Memory Adress Bus 1) a XAB2. Adresy instrukcí jsou z programové paměti přenášeny adresovou sběrnicí PAB (Programm Adress Bus) a jednosměrné sběrnice XDB2 (Memory X Data Bus 2). Styk s periferními obvody obstarává obousměrná datová sběrnice PGDB (Peripheral Global Data Bus). Všechny datové sběrnice mají šířku 16 b, pouze PAB může mít až 19 b.

ALU - Aritmeticko logická jednotka

ALU obsahuje Operace v jednom instrukčním cyklu   Před provedením žádané operace musí být nejprve operandy uloženy do vstupních registrů ALU (16b) s označením X0, Y0, Y1. Tyto registry mohou být požoty samostatně nebo lze spojit dva registry Y0 a Y1 do registru Y=Y0:Y1 s délkou 32b. Do všech tří vstupních datových registrů lze vstupovat přes sběrnici CGDB a do registru X0 také přes XDB2. Výsledky se mohou ukládat jak do datových registrů ALU, tak i do střadačů A nebo B. Tato možnost zápisu výsledku představuje změnu vůči předchozím rodinám signálových procesorů (DSP56000, DSP56300), u nichž bylo možné ukládat výsledek pouze do střadačů. Oba střadače A a B jsou rozděleny do tří částí EXT:MSP:LSP (A2:A1:A0 nebo B2:B1:B0). LSP = Least Significant Part, MSP = Most Significant Part. Reprezentace čísel v doplňkovém kódu pro vstupní registry a střadače je tato :
cisla.jpg

  Jádro signálového procesoru podporuje následující formáty čísel :
  1. doplňkový kód se znaménkem - zobrazuje čísla v intervalu -1,0 < n < 1-2-b, tedy <-1 ; 1-2-15>
  2. doplňkový kód bez znaménka zobrazuje čísla v intervalu 0 < n < 2-2-b, tedy <0 ; 2-2-15>
  3. celé číslo se znaménkem zobrazuje čísla v intervalu -2b < n < 2b-1, tedy <-2b ; 215-1>
  4. celé číslo bez znaménka zobrazuje čísla v intervalu 0 < n < 2b+1-1, tedy <0 ; 216-1 >

AGU - Jednotka generování adres

AGU obsahuje   Adresy pro datovou a programovou paměť jsou generovány v jednotce AGU. Adresovací jednotka podporuje lineární adresování (zvětšování o 1), adresování modulo (vymezení určitého úseku v datové paměti, v němž se adresy kruhově pohybují) a bitově reverzované adresování (podpora implementace algoritmu rychlé Fourierovy transformace FFT). Přes datovou sběrnici CGDB lze číst nebo zapisovat do všech registrů s délkou 16b v jednotce AGU. Pomocí sběrnic XAB1 a XAB2 je možno současně ukazovat na dvě místa v datové paměti X. Programová sběrnice PAB přenáší adresy pro programovou paměť P. Prostřednictvím AGU lze generovat až 216 = 65536 adres pro datovou paměť X a 219 = 524288 adres pro programovou paměť. Adresy jsou uloženy ve čtyřech registrech R0, R1, R2, R3 (společně označeny jako Rn) a zásobníku SP (Stack Pointer). Zásobník tvoří vyčleněná část datové paměti X. Zvětšení adresy o hodnotu větší než 1 je možno nastavit registrem posunu N, který spolupracuje s kterýmkoli registren Rn.

  Možnosti nepřímého adresování pro registry Rn a SP :
(Rn),(SP) s obsahy Rn a SP se pracuje přímo
(Rn)+,(SP)+ po provedení operace se Rn a SP zvětší o 1
(Rn)-,(SP)- po provedení operace se Rn a SP zmenší o 1
(Rn)+N,(SP)+N po provedení operace se Rn a SP zvětší obsah registru posunu N
(Rn+N),(SP+N) Skutečné adresy operandů jsou určeny součtem obsahů registrů uvedených v instrukci, původní obsah se nezmění
(Rn+xxx),(SP+xxx) modifikace adresy přímo zadaným hexadecimálním operandem
(Rn+xx),(SP+xx) modifikace adresy binárním operandem

ŘADIČ programu

Řadič programu zajišťuje   Čítač programu PC (Program Counter) je 16bit registr, v němž je uložena adresa následující instrukce v programové paměti. Čítač lze rozšířit na 19b pomocí bitů P0, P1, P2, které jsou uloženy jako 10. až 12. bit stavového registru SR (Status Registr). Takto je možno adresovat paměťový prostor až o 524288 adresách. V rámco tohoto bloku programové paměti lze používat instrukce programových skoků a skoků do podprogramů. Hardwarové cykly typu DO je možno použít jen v počátečním bloku paměti o velikosti 65556 instrukcí. Různé typy přerušení slouží pro zastavení přirozeného běhu programu. Jednotka pro řízení přerušení obsluhuje všechny požadavky o přerušení. Na začátku programové paměti P je vymezen proster pro uložení vektorů přerušení od všech možných zdrojů pro procesor. Každému zdroji přerušení přísluší dvě slova v programové paměti. Při vyvolání přerušení se dokončí nejprve prováděná instrukce a potom se provede skok na adresu, která odpovídá danému typu přerušení. Na této adrese jsou uložena dvě slova, z nichž jedno musí obsahovat instrukci skoku JSR (Jump SubRoutine) na adresu bloku programu, který daný typ přerušení obsluhuje. Obslužný program je ukončen instrukcí návratu z přerušení RTI (ReTurn from Interrupt). Jednotka řízené přerušení rozlišuje dvě úrovně priority přerušení IPL (Interrupt Priority Level). Maskovatelná přerušení jsou IPL0. Jsou to přerušení od všech periferních obvodů. Maskování znamená, že přerušení této úrovně mohou být překryta maskou, a tudíž se nebudou provádět. Nemaskovatelné přerušení IPL1 jsou např. přetečení zásobníku, neznámá instrukce atd. Kromě toho existují hardwarová přerušení, která přeruší běh programu vždy (Reset, COP Watchdog Reset).
  Jednotka řadiče programu obsahuje dva zásobníky pro ukládání adres a stavu regostrů při skocích a cyklech. Jednak se jedná o softwarový zásobník, který je vyčleněn v datové paměti X ukazatelem zásobníku SP, a jednak jde o hardearový zásobník HWS (HardWare Stack) tvořený dvěma registry HWS0 a HWS1 pro obsloužení hardwarového cyklu typu DO. Oba zásobníky jsou typu LIFO (Last In - First Out).Softwarový zásobník slouží pro ukládání návratových adres a stavu stavového registru SR při programových skocích, skocích do podprogramů a obsluhách přerušení. HSW zásobník podporuje současné provádění až dvou hardwarových cyklů typu DO.

Periferie

PWM - Pulse Width Modulator

  Pulsně šířkový modulátor pro řízení motorů může být nakonfigurován na jeden, dva a nebo tři komplementární páry. Např.

ADC - AD převodník

  Procesor obsahuje dva čtyřvstupové 12bitové Analog-to-digital převodníky. ADC lze synchronizovat s PWM.

SCI - Serial Communications Interface

  Pomocí seriového komunikačního rozhraní se uskutečňuje seriová asynchronní komunikace s rozhraními jiných součástek a mikrořadičů. Mikroprocesor obsahuje jedno rozhraní SCI0. Komunikace může být buď full-duplexní a nebo jednoduchá.

SPI - Serial Pheripheral Interface

  Seriové periferní rozhraní zajišťuje full-duplexní, synchronní seriovou komunikaci mezi DSP a periferiemi obsahující jiné DSP. Mikroprocesor obsahuje čtyři 16bitové mapované paměťové registry pro kontrolu parametrů, stavu a přenosu dat.

GPIO - General Purpose Input/Output

  GPIO slouží k přidělení pinů pouzdra jiným periferiím na čipu. Pokud periferie není potřebná, tak pin může být naprogramován jako vstup, výstup nebo nízko citlivý vstup přerušení. GPIO jsou umístěny na čipu ve skupině devíti bitů.

RESETy

  Reset systému může být zapříčiněn třemi situacemi :   Minimální délka pulsu vnitřního resetu je 32 taktovacích pulsů oscilátoru.

JTAG a OnCE - On Chip Emulation

  Rozhraní typu JTAG (Join Test Access Group) umožňuje získávat konkrétní informace o stavu logických úrovní na vývodech čipu, jejich nastavení, popř. jejich testování.
  Využití obvodů OnCE poskytuje jednoduché a nezávislé ladění programu v cílovém systému při zachování plného přístupu k obvodům signálového procesoru bez narušení konfigurace cílového systému.

Napájení a pracovní podmínky

Literatura



Vypracoval : Karel Pilař, duben 2002.