Speciální Číslicové Systémy

DSP Motorola 56301 - Úvod do architektury a použití



 

Úvod:

DSP56301 firmy Motorola je 24-bitový signálový procesor s pevnou řádovou čárkou určený pro použití v multimédiích, telekomunikacích, mobilních telefonech apod. Je založen na CMOS technologii minimalizující spotřebu obvodu při zachování velké rychlosti výpočtů. Architektura vychází z dnes již nevyráběné typové řady DSP56000, je však dost renovovaná a s řadou DSP56000 je zpětně kompatibilní (co do objektového kódu).

Základní vlastnosti:

Paměť:
 
  • softwareově konfigurovatelná statická RAM 8192 x 24b:
  • RAM programu 1024-4096 slov
    Cache instrukcí 0-1024 slov (segment RAM programu, kam je nastavena cache, není přístupný adresací, mapuje externí paměť)
    X data RAM 2048-3072 slov
    Y data RAM 2048-3072 slov, součet všech pamětí 8192 x 24b
    RAM programu je mapována od $0, externí paměť je mapována za ní, tj. pokud bude RAM programu mít 4k slov, pak první adresa externí RAM bude $1000. Rozložení 8k paměti je ovládáno registrem OMR (operating mode register)
  • max. 3K x 24b bootstrap ROM (pomocí dvou pinů lze v režimu setup vybrat periferii, ze které bude načten program do RAM)
  • adresovatelná externí paměť max. 16M x 24b, resp. 64k x 16b, a to datová i programová RAM
  • podpora externí paměti (chip-select logika a DRAM controller)
  • Podpora periferií: Spotřeba:

    Funkční bloky:

    Blokové schéma DSP56301, další výklad se váže k němu.

    Datová ALU:

    Blok generace adresy (AGU):

    Blok řízení programu (Program Control Unit):

    PCU provádí prefetch a dekódování instrukce, řídí hardwareové DO smyčky a výjimky s využitím sedmiúrovňového pipeliningu. Z blokového schematu je patrné, že PCU sestává ze tří částí: Vlastnosti PCU: PCU využívá těchto registrů:
    program counter register, status register, loop address register, loop counter register, vector base address register, size register, stack pointer, operating mode register, stack counter register.

    Obvod fázového závěsu (PLL), oscilátor:

    Hodinový generátor v DSP56301 sestává ze dvou bloků, PLL (dělení vstupních hodin, násobení frekvence a ovládání rychlosti přeběhu) a generátoru hodin (low-power dělení a generace pulsů).
    Umožňuje měnit low-power dělící faktor bez ztráty synchronizace, exportovat hodinový signál ošetřený co do přeběhu a vzhledem k možnosti násobit vstupní frekvenci snižuje nároky na externí hodinové obvody.

    JTAG & OnCE:

    Obvod podporuje JTAG (kontrolu signálů uvnitř obvodu za běhu programu), OnCE (pomocí JTAGových pinů může kontrolovat za běhu obsahy registrů, paměti a on-chip periferií.

    Paměť na čipu:

    Paměť (viz výše) je rozdělena na bloky X-data RAM a Y-data RAM, s ohledem na potřebu dodávat akumulátoru současně dva operandy.

    Vnitřní sběrnice:

    Veškeré vnitřní sběrnice DSP56301 jsou 24-bitové. Jejich přehled:

    DMA:

    Periferie:

    GPIO - I/O piny pro všeobecné použití:

    GPIO port obsahuje 42 programovatelných pinů použitelných periferiemi (HI32, ESSI, SCI, timer). Na každou periferii připadnou tři paměťově mapované registry.

    HI32 - host interface:

    HI32 je 32b široký paralelní port přímo připojitelný na hostitelskou sběrnici. Podporuje velké množství standardních mikroprocesorů, DSP atd., včetně PCI módu, ve kterém může pracovat jako master i slave.

    ESSI - enhanced synchronous serial interface:

    DSP56301 obsahuje dvě identická a nezávislá rozhraní ESSI. Každé z nich obsahuje full-duplexní sériový port pro komunikaci se standardními sériovými periferiemi. Každé má vlastní vysílač, přijímač a generátor hodin. Další vlastnosti:
  • asynchronní/synchronní přenos se sdílenými nebo oddělenými hodinami interními/externími
  • SCI - serial communications interface:

    SCI - full-duplexní sériový port pro komunikaci s DSP a jinými periferiemi, např. modemem. Rozhraní pracuje na úrovních TTL logiky. Používá tři dedicated - "vyhražené" linky: transmit, receive a CLK. Podporuje asynchronní přenos až do 12,5Mbps (při taktování 100MHz) a sdílení linky s jinými periferiemi. Transmit a receive sekce mohou pracovat nezávisle, baud-rate generátor je programovatelný.

    Modul "triple timer":

    Blok je tvořen 21-bitovým předzpracováním vstupu a třemi 24b časovači/čítači s vlastními paměťově mapovanými registry. Každý časovač/čítač má následující vlastnosti:

    Inicializace procesoru:

    Po provedení RESETu procesoru musí bootovací program provést mimo jiné následující operace:

    Poznámka:

    Tato stránka byla vypracována jako semestrální práce z předmětu SČS. Neklade si za cíl podrobný popis architektury procesoru, ani způsobů jeho programování. Záměrem je, aby si čtenář (a autor) mohl udělat obrázek o možnostech DSP56301 a nemusel přitom zacházet do přílišných detailů v pdf souborech distribuovaných výrobcem, např. při výběru vhodného DSP pro konkrétní aplikaci.

    Napsal Petr Fousek, 2001.
    Použité soubory (DSP56301 User's guide a Family manual)je možno dohledat na stránkách firmy Motorola (neuvádím je pro velikost).