Jste zde

Nový DSP TMS320F28xx pro digitální zprac. signálů

Firma Texas Instruments je již dlouhou dobu tradičním výrobcem špičkových signálových procesorů DSP. Poslední novinkou v této oblasti je i "malý" DSP řady F28xx. Výhodou proti klasickým DSP je FLASH paměť na chipu, 12bitový A/D převodník, sběrnice CAN, PWM výstupy, čímž se klasický DSP více přiblížil mikrokontrolérům.

Digitální signálové procesory (DSP) firmy Texas Instruments vždy patřily k těm nejznámějším a nejvyspělejším na trhu a jediný, kdo jim vždy byl schopen konkuroval, byly DSP firmy Motorola. DSP se však až do současnosti vždy vyznačovaly vysokým výkonem z pohledu zpracování dat (hardwarová násobička = rychlé násobení/dělení, víceúrovňový pipelining, duální přístup do SRAM paměti, více násobné oddělené datové a adresové sběrnice apod.), ale z pohledu počtu uživatelských periferií na chipu se vždy spíše blížili "klasickým počítačovým" CPU, tzn. A/D a D/A převodník, programová EEPROM apod., vždy musely být doplněny jako externí součástky. V současnosti však stejně jako MCU, které dostávají některé vlastnosti DSP (např. hardwarová násobička), DSP získávají vlastnosti MCU (např. A/D, PWM, FLASH, watchdog přímo na chipu DSP). Jejich použití se tak zjednodušuje. To však neznamená, že je rozdíl mezi MCU a DSP smazán. Stále DSP se vyznačují rychlejší a dokonalejším zpracováním velkých bloků dat např. z řeči, hudby nebo obrazu, zatímco MCU se stále vyznačují jednodušší konstrukcí, menšími rozměry a snadnější implementací.

Tabulka vybavení DSP řady F28xx/C28xx v závislosti na typovém označení (pro zvětšení klikněte na obrázek)

Označení obvodu podle jeho vlastností (pro zvětšení klikněte na obrázek)

Použití

  • Zpracování dat a řízení v reálném čase
  • Zpracování zvuku = řeči, hudby včetně vícekanálové
  • Odšumování řeči, rozpoznávání hlasu, přepis řeči do textu, ekvalizéry
  • Zpracování obrazu
  • Zvýraznění obrysů, rozpoznání objektů, kontrola tvarů, stabilizace obrazu fotoaparátů
  • Předzpracování videa
  • Komprese dat v reálném čase
  • Složité řízení robotů a víceosých polohovacích zařízení
  • atd.

Architektura obvodu

DSP Texas Instruments se již klasicky vyznačují harvardskou adresovací strukturou, tzn. s odděleným mapováním paměti programu a dat, i když fyzicky jsou samozřejmě sjednoceny. Řada F28xx/C28xx stojí na nejnižší pozici v sortimentu DSP TI, přičemž je samotným výrobcem označována jako digitální signálové kontroléry. Zvláště obvody označované jako F28xx se výbavou periferií na chipu blíží "velkým" mikrokontrolérům. Obvody C28xx jsou již více klasické DSP, kde musí být programová FLASH paměť připojena externě.


 

Celou strukturu obvodu DSP řady F28xx lze rozdělit do následujících bloků:

  • CPU s ALU, hardwarovou násobičkou, registry
  • FLASH, ROM, OTP, SRAM paměť (SARAM) - mapování dle potřeby
  • Generátoru hodin - OSC a PLL
  • Řízení přerušení (PIE, External Interrupt control)
  • Periferie: víceúčelové vstupy/výstupy (GPIO), komunikační rozhraní (eCAN, I2C, JTAG, SPI, SCI), A/D převodník, PWM
  • Čítače/časovače (timer), CAP, Watchdog, kvadraturní modulace (eQEP)

Bloková struktura DSP řady F28xx (pro zvětšení klikněte na obrázek)

CPU jednotka

CPU jednotka řady F28xx je shodná s obvody C28xx a je součástí DSP platformy TMS320C2000™ a skládá se z:

  • Program and data control logic = programová a datová řídící logika
  • Real-Time emulation and visibility = emulace a zobrazení dat v reálném čase
  • Address register arithmetic unit (ARAU) = adresový registr aritmetické jednotky
  • Atomic arithmetic logic unit (ALU) = aritmeticko-logická jednotka
  • Prefetch queue and instruction decode = předzpracovávající fronta a dekódování instrukcí
  • Address generators for program and data = generátor adres pro program a data
  • Fixed-point MPY/ALU = Hardwarová násobička a ALU v pevné řádové čárce
  • Interrupt processing = zpracování přerušení

Ve výsledku jde o velmi výkonnou výpočetní a řídící jednotku pro programovací jazyk C/C++. Výpočetní jádro, pracující v pevné řádové čárce, tvoří 32 x 32bitová jednotka MAC (Multiply and Accumulate = násob a sečti = hardwarová násobička + ALU) se 64bitovými akumulátory. To umožňuje 64bitové zpracování dat, což eliminuje nutnost použít procesory pracující v plovoucí řádové čárce i pro data s velkým dynamickým rozsahem. 8 úrovňový pipelining a velký počet registrů (XAR0 až XAR7) umožňuje velmi rychlé zpracování dat i asynchronních událostí s minimálním zpožděním. Oddělené Oddělené programové/datové adresové a datové sběrnice pro čtení a zápis dat (adresové - PAB, DRAB, DWAB, datové - PRDB, DRDB, DWDB) umožňují rychle přistupovat do pamětí a tím s minimálním prodlením připravovat potřebná data a příkazy ke zpracování.

Při časování hodin 100 MHz je jeden instrukční cyklus pouze 10 ns. I když zpracování samostatně jednotlivých instrukcí v praxi může trvat více cyklů, jejich předzpracování (pipelining) ve struktuře více za sebou jdoucích příkazů, virtuálně zkrátí jejich provedení.

Blokové schéma CPU jednotky DSP řady C28xx/F28xx (pro zvětšení klikněte na obrázek)

Paměť na chipu - FLASH, ROM, OTP, SRAM (SARAM)

Hlavním rozdílem řady F28xx proti C28xx je přítomnost FLASH paměti na chipu DSP. Ta může mít velikost až 128K x 16 bitů (F2800) rozdělená na 16 sektorů po 16 kB. Navíc každý DSP má ještě 1K x 16 OTP paměti. Uživatel/programátor může individuálně každý sektor smazat či přepsat, aniž by se jakkoliv změnila data dalších sektorech. Není však možné provést mazání program právě běžícím v jiném sektoru. FLASH paměť může být mapována do programového i datového prostoru, tzn. že ji lze využít jako pro program, tak pro data.

ROM paměti může být až 32K x 16, přičemž v ní mohou být umístěny různé pevné tabulky konstant, například hodnoty funkce sinus apod. Mimo ni je zde ještě tzv. Boot ROM, kde je od výrobce nahrán bootovací program, který umožní rozběh procesoru pro připojení napájení nebo automatickému načtení programu a dat z externí paměti do vnitřní SRAM.

Interní SRAM, označená jako SARAM (Single Access RAM), je rozdělena do několika bloků lišící se svojí velikostí. Bloky M0 a M1mají velikost 1K x 16 a jsou mapovány do programového i datového paměťového prostoru. Po resetu se stack pointer (ukazatel zásobníku) nastaví do bloku M1. Bloky L0, L1, H0 poskytují až 16K x 16 bitů paměti. Každý blok může být nezávisle adresován CPU během pipeliningu.

Blok generátoru hodin. signálů (OSC + PLL)

Interní generátor CLK (hodinových signálů) je řízen oscilátorem s frekvencí krystalu 20 MHz a upravován smyčkou fázového závěsu PLL. Generátor tak poskytuje až 10 poměrů - frekvencí hodin. signálů, daných poměrem PLL. Ten se nastavuje softwarově 4bitovým registrem. Nižší zvolenou frekvencí lze snížit spotřebu procesoru. Zároveň lze funkci PLL závěsu i úplně vyřadit. Maximální frekvence hodin je 100 MHz, což k tomu odpovídá doba jednoho instrukčního cyklu 10 ns.

Blokové schéma generátoru hodinového signálu (pro zvětšení klikněte na obrázek)

Blokové schéma použití hodin CLKIN a SYSCLKOUT (pro zvětšení klikněte na obrázek)

A/D převodník

Na chipu všech DSP řady F28xx je integrovaný 12bitový rychlý A/D převodník s 2x S/H (Sample and Hold) obvody, což v praxi rozděluje 16 kanálů na dvě 8kanálové multiplexované větve s vlastním S/H. Vzájemnou synchronizaci obou větví řídí tzv. sekvencer (Sequencer). To umožňuje jednodušeji řešit převod například u stereofonního zvuku s jedním A/D převodníkem. Každý kanál má vlastní registr pro uložení výsledku převodu. Na vstup je možné přivést napětí v rozsahu 0 až 3 V a výkon převodníku je 6.25 MS/s => převodní čas 160 ns při frekvenci A/D hodin 12.5 MHz.

Blokové schéma A/D převodníku (pro zvětšení klikněte na obrázek)

Jednotka čítače/časovače, eCAP, ePWM

Na chipu mohou být až 3 jednotky 32bitových čítačů/časovačů (Counter/Timer). Ty pracují následovně: 32bitový čítací registr "TIMH:TIM" se naplní hodnotou uloženou v registru "PRDH:PRD". Čítač je dekrementován frekvencí hodin SYSCLKOUT. Když čítač dosáhne hodnoty 0, je vygenerován výstupní signál přerušení, generující puls přerušení (Interrupt Pulse) TINT. Frekvenci hod. signálu SYSCLKOUT lze měnit prostřednictvím 16bitové předděličky (registry TDDRH:TDDR a PSCH:PSC).

Blokové schéma jednotky čítače/časovače (pro zvětšení klikněte na obrázek)

K časovému řízení softwaru slouží i 4úrovňový modul zachytávání eCAP (Enhanced CAPture Module). Ten umožňuje ze vstupu eCAP čítat signál a ten porovnávat se čtyřmi nezávislými 32bitovými registry. Použít lze kontinuální nebo jednorázový mód, který provádí porovnání opakovaně nebo jednorázově. Při zjištění shody nasčítané a nastavené hodnoty se generuje přerušení.

Naopak k časování řízené aplikace slouží ePWM blok (Enhanced Pulse Width Modulator) s až 7 PWM jednotkami. Ten tak poskytuje až 16 PWM výstupů podporující vysoké rozlišení, kdy je možné vytvořit PWM signály s přesností větší než 10 bitů pro frekvence vyšší než 200 kHz. To obvykle bývá již problém. Nezávisle lze řídit střídu i fázový posuv.

Navíc lze na chipu najít modul kvadraturního enkodéru eQEP (Enhanced QEP Modules) a Watchdog řízený přímo hodinovým signálem z oscilátoru děleného nastavitelnou děličkou a řízeného 8bitovým čítacím registrem.

Sériová komunikační rozhraní - eCAN, I2C, UART, SPI

Na chipu jsou integrovány 4 různá sériová komunikační rozhraní:

  • 4x SPI rozhraní - synchronní sériové rozhraní/port, délka slova 1 až 16 bitů, režim Master/Slave,
  • 2x tradiční SCI/UART rozhraní (1 start bit, až 8 datových bitů, sudá/lichá/žádná parita, 1 nebo 2 stop bity) - max. přenos. rychlost až 6.25 Mb/s
  • I2C rozhraní - formát slova 1 až 8 bitovů, 7/10bitový adresovací módy, přenos. rychlost 10 kb/s až 400 kb/s, 16bitové FIFO vysílací a přijímací registry
  • 2x CAN rozhraní - kompatibilní s CAN2.0B, 3.3 V CAN Tranceiver, přenos. rychlost až 1Mb/s (při taktování frekvencí 100 MHz je minimální přenos. rychlost 15.6 kb/s), Řízení zpráv - 32 schránek (mailboxes) = 512 B, datový formát 0 až 8 bitů

Blokové schéma komunikačního rozhraní eCAN (pro zvětšení klikněte na obrázek)

Závěr

TMS320F28xx patří mezi nejmenší DSP v nabídce firmy Texas Instruments. Svým výkonem je však lze použít pro široké spektrum aplikací. Rozhodně bych po něm sáhl v případě, že již pro aplikaci výkonnostně nestačí žádný z běžných MCU. Myslím si, že právě TMS320F28xx je takový šikovný mezistupeň právě mezi MCU a "klasickými" velkými DSP.

Pro více informací a i velmi podrobné informace odkazuje na níže uvedené stránky firmy Texas Instruments, kde najdete nejen "krátký" datasheet o 135 stránkách, ale i obsáhlé návody a popisy dlouhé i přes 600 stran.

Antonín Vojáček
vojacek@ hwg.cz

DOWNLOAD & Odkazy

Hodnocení článku: