DSK Freescale řada 56800E
Základní vlastnosti řady 56800E : “ Hybridní mikrokontrolér “ Pevná řadová čárka výhodné vlastnosti MCU a DSP (16-bitový DSP + 32-bitový MCU) Frekvence jádra 32 MHz Dvojitá harvardská architektura oddělení programové a datové paměti Výkonnost až 200 MIPS architektura 1X 1 instrukce se vykoná v 1 hodinového cyklu
Užití, výhody: Embedded systémy ucelený systém realizující aplikaci bez další podpory samostatně komunikuje s bloky dané aplikace Mobilní komunikace řízení el. strojů, snímání a zpracovávání obrazu, přenos dat automobilová technika Výhody řady: malý příkon nízká cena dobrá výpočetní výkonnost
Vybrané procesory řady 56800E Features56F801X56F802356F802556F803656F8037 Performance 32MHz/MIPS Temp Range -40 to 105°C Operational Voltage 3 to 3.6V Flash 12/16Kb32Kb 64Kb RAM 2/4Kb4Kb 8Kb PWM 1 x 6 channels 1 x 5 channels 1 x 6 channels 12-bit ADCs2 x 3 channels2 x 4 channels 2 x 8 channels 12-bit DACsNo2222(output on pkg) Analog ComparatorNo bit Timers Programable Interval TimersNo1333 GPIO (max) IICYes SCI 1 (w/ slave LINQSCI SPI1QSPI CAN No Yes JTAG/EOnCEYes Packages32 LQFP 44 LQFP48 LQFP64 LQFP
Jádro procesorové řady 56800E
Jednotky tvořící jádro procesoru: Programová řídící jednotka PCU (Program Control Unit) Jednotka generace adres AGU (Address Generation Unit) Datová aritmeticko-logická jednotka DALU (Data Aritmetic-Logic Unit)
Programová řídící jednotka zajišťuje: čtení a dekódování instrukce z programové paměti pomocí řídících signálů ovládá činnost signálového procesoru. skládá z: programového čítače dekodéru instrukcí logiky řízení hardwarového smyčky logiky řízení přerušení stavového a řídícího registru
Jednotka generace adres AGU adresy uloženy v: registrech R0 ÷ R5 ukazateli zásobníku SP zajišťuje: veškeré výpočty adres a jejich ukládání druhy adresování: lineárního (+1 nebo +N) modulo M bitově rezervované adresování
Datová aritmeticko-logická jednotka obsahuje: 3x 16-ti bitové vstupní registry (X0, Y0 a Y1) 4x 32-bitové akumulátory (A, B, C, D) 4x 4-bitové doplňkové registry rozšiřující akumulátory (A2,B2,C2,D2) posuvný registr akumulátorů (AS) omezovač dat (data limiter) cyklický registr (barrel shifter) paralelní akumulátor pro násobení (MAC) zajišťuje: Vykonání veškerých aritmetických a logických operací s datovými operandy.
Datová aritmeticko-logická jednotka Zápis výsledků do: Střádače A,B,C,D nebo do datových registrů. Saturační aritmetika – neumožňuje uložit číslo mimo doplněk do paměti (omezení ±1). DALU pracuje se zlomkovou reprezentací čísel, v jiných částech procesoru jsou čísla brána jako celá. 16 bitové registry lze spojit do 32-bitových Operace jsou prováděny v doplňkovém kódu. rozsah: -1 ÷ 1-2 -b, kde b je počet bitů bez znaménkového bitu DALU umožňuje: posuny operandů v kruhovém registru až o 15 bitů, zaokrouhlení čísla z 32 bitů na 16, posun o jeden bit vlevo či vpravo (násobení nebo dělení výsledku dvěma)
Instrukce, zřetězení, programování Instrukce: DSP: číslicové zpracování signálů (číslicové filtry, algoritmus FFT, adaptivní zpracování s algoritmem typu LMS, statické vyhodnocování výsledků) MCU:komunikace s aplikací a obslužné účely (ovládání klávesnice, tlačítek, display) 8 fázové zřetězené zpracování instrukcí skládající se z částí: Pre-Fetch1 (P1)…adresa instrukce je předána na adresovou sběrnici PAB Pre-Fetch2 (P2)…instrukce je přečtena Instruction Devoce (ID)…dekódování instrukce Address Generation (AG)…generování dvou adres po sběrnicích XAB1, XAB2 Operand Pre-Fetch2 (OP2)…umožněn přístup ke dvěma buňkám datové paměti Execute and Operand Fetch (EX)…započetí násobení, uložení výsledku do DALU registru, čtení dat přes sběrnice CDBR a XDB2 a zápis dat přes CDBW Execute 2 (EX2) … operace je dokončena, výsledky jsou uloženy Programování: asembler nebo C CodeWarrior
Sběrnicová jednotka a jednotka bitových operací Sběrnicová jednotka Uskutečňuje přenos mezi vnitřními sběrnicemi Matici spínačů a umožňuje propojení jakýchkoliv dvou datových sběrnic ze tří (globální, datová a periferní) bez prodlevy. Jednotka bitových operací Umožňuje zpracovávat informace uložené v datové paměti, v registrech periferií a ve všech registrech v jádře procesoru Tato jednotka může testovat, nastavovat, mazat nebo negovat každý z 16-bitů, který je specifikován v masce.
Formáty vyjádření čísel Jádro podporuje čtyři formáty vyjádření čísel. Číslo n o délce b+1 bitů (zlomková část + znaménkový bit): Doplňkový kód se znaménkem:-1 ≤ n ≤ 1-2 -b Doplňkový bez znaménka:0 ≤ n ≤ 2-2 -b Celé číslo se znaménkem:-2 b ≤ n ≤ 2 b-1 Cele číslo bez znaménka:0 ≤ n ≤ 2 b+1 -1 DALU podporuje pouze doplňkový tvar
Typy operandů
Sběrnice a registry 32-bitová datová sběrnice 24-bitová datová adresová sběrnice (lze adresovat 16M 16-bitových slov, neboli 32MB) 21-bitová programová adresová sběrnice (2M 16-bitových slov, neboli 4MB) 4 x 36-bitové akumulátorů A,B,C,D (všechny mají 3 části, 2 x 16-bitovou a 1 x 4-bitovou) 24-bitové adresové registry a registr posuvu N + další 16 bitový registr posuvu N3 (zajišťuje dva paralelní přesuny dat) Registry pro hardwarový cyklus typu DO: 2 x16-bitový registr LC (Loop Counter) 2 x 24-bitové registry LA(Loop Adress) 2 x 24-bitové HWS (Hardware Stack) Registry pro obsluhu rychlého přerušení 21 bitový registr FIRA 13-bitový registr FISR
Přehled sběrnic NázevTypSměrovostŠířkaPopis XAB1adresovájednosměrná24bAdresace datového paměti XAB2adresovájednosměrná24bAdresace datového paměti PABadresovájednosměrná21bAdresace programové paměti CDBRdatovájednosměrná32bČtení dat z datové paměti CDBWdatovájednosměrná32bZápis dat do datové paměti XDB2datovájednosměrná16bČtení dat z datové paměti PDBdatovájednosměrná16bPřenos dat a instrukcí z programové paměti IP-BUSdatováobousměrnáStyk s periferiemi
Blokové znázornění sběrnic: 56800ECORE IP- BUS INTERFACE EXTERNAL BUS INTERFACE PROGRAM MEMORY DATA MEMORY PAB 21 PDB 16 XAB1 24 CDBR 32 CDBW 32 XAB2 24 XDB2 16 PERIPHERALPERIPHERALPERIPHERAL INTRPT CTRLLER IPDATAR IP- BUS IPADDR IPDATAW
Pamět RAM a flash – na čipu ROM – od DSP 56F807 Vnější paměťový prostor (kromě DSP56F801) – až 64K 16-bitových slov Způsob práce programové paměti lze nastavit bity MA a MB v registru operačního modu OMR, nebo vnějším signálem při resetování na vývodu EXTBOOT
Program (4 MB) Data (32 MB) PROGRAM MEMORY SPACE X DATA MEMORY SPACE INTERRUPT VECTORS Optimized for IP-BUS PERIPHERALS 2 21 x 16 0 $FFFFFF2 24 x 16 $xxFFFF (64 locations) $xxFFC0 $1FFFFF $00 (Relocatable) $0 “P:” “X:” 15 0 (short addressing) => 16-Bit Accesses Only=> 8, 16, 32-Bit Accesses Mapování paměti:
Datová a programová paměť Datová paměť implementovaná na čipu: Datová RAM Datová flash Tato paměť může být rozšířena vnější pamětí, jejíž maximální velikost se liší podle módu činnosti. Programová paměť : Programová RAM Flash Bootovací flash Programová paměť může být rozšířena externí pamětí, jejíž maximální velikost se liší podle módu činnosti.
Mapování datové paměti u 56F8023
Mapování programové paměti procesoru 56F8023
Přerušení Umístění vektorů přerušení: začátek programové paměti Jednomu zdroji přísluší dvě slova v této paměti – nutná instrukce skoku JSR Až 63 zdrojů přerušení, dle konkrétního typu procesoru Maskování přerušení 3 priority přerušení 2 zásobníky typu LIFO pro ukládání adres a stavů registrů, dělí se na: Softwarový – ukazatel SP, umístěn v datové paměti Hardwarový HWS – tvořen registry HWS0 a HWS1, obsluhuje hardwarový cyklus typu DO
Řadič přerušení ITCN - Fast interrupt handling
DSP56F8023