Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Procesory ARM. Úvod Jedná se o 32bitovou mikroprocesorovou architekturu s RISCovým jádrem. Byla vyvinuta firmou ARM Limited. Díky svým přednostem jako.

Podobné prezentace


Prezentace na téma: "Procesory ARM. Úvod Jedná se o 32bitovou mikroprocesorovou architekturu s RISCovým jádrem. Byla vyvinuta firmou ARM Limited. Díky svým přednostem jako."— Transkript prezentace:

1 Procesory ARM

2 Úvod Jedná se o 32bitovou mikroprocesorovou architekturu s RISCovým jádrem. Byla vyvinuta firmou ARM Limited. Díky svým přednostem jako je nízká spotřeba energie, nízké výrobními náklady a velmi výkonné jádro, je dnes používána v mnoha vestavných systémech. Tato rodina mikroprocesorů (mikrokontrolérů) založených na ARM obsahuje v dnešní době již více než 75% všech 32bitových vestavných procesorů RISC, což z ní dělá nejpoužívanější 32bitovou architekturu na světe. Z tohoto důvodu je technologie ARM zabudována ve většině zařízení a to ať se jedná o přenosné počítače (PDA), mobilní telefony, multimediální přehrávače, například herní konzole, ale i nejrůznější řídící systémy.

3 Pro vývojáře nabízí použití technologie ARM celou řadu nezanedbatelných výhod. Jelikož se jedná pouze o jádro procesoru, které je využíváno již celou řadou výrobců, je velice usnadněna migrace i mezi zcela odlišnými typy obvodů. Velmi podstatnou výhodou je dobrá dostupnost vývojových prostředí (IDE) i libovolně vybavených vývojových kitů. 32 bitové mikroprocesory založené na jádru ARM jsou navíc často bohatě vybaveny nejrůznějšími perifériemi nabízejícími mnohem více možností než jejich základní verze z obyčejných mikroprocesorů.

4 Procesory ARM se vyznačují nízkou spotřebou energie a také nízkými výrobními náklady, že to umožňuje příchod vlny menších a levnějších netbooků, které budou moci běžet po celý den na pouhé jedno nabití. Mají tak možnost nahradit současnou dlouhodobou jedničku na trhu, což je procesor x86 od Intelu. Protože se jedná o nesmírně rozmanitou problematiku s celou velkou řadou rodin a typů, bude pro naše potřeby detailně probrán jen procesor AT91SAM7S256 A CORTEX - M3

5 Řady ARM

6 * Technologie VFP (vektorová pohyblivá čárka) je koprocesorové rozšíření procesoru ARM poskytující jednoduchou i dvojitou přesnost při výpočtech v pohyblivé řádové čárce vyhovující standardu ANSI/IEEE Std 754. Takováto architektura podporuje krátké vektorové instrukce, ale neumožňuje SIMD. ** Technologie Trust Zone (Bezpečnostní rozšíření) přidává ještě jedno vyhrazené jádro (virtuální) starající se o řízení přístupu k jádru.

7 Historie ARM je zkratka firmy Acorn RISC machina, která byla založena počátkem 80. let minulého století. Dala si za cíl vytvořit mikroprocesor, který by měl minimální dobu zpoždění při přerušení. Po dosažení úspěchu s mikropočítačem BBC Micro, vznikla ve společnosti Acorn Computers úvaha na hradit procesor Motorola 6502 používaný firmou IBM. Realizovali průzkum, ale zjistili, že pro jejich potřeby procesory 68000 (16ti bitová Motorola) ani 32016 (National Semiconductor) nejsou příliš vyhovující a procesor 6502 neměl dostatečný grafický výkon. A protože jim Intel odmítl prodat jádro procesoru 80286, přišla firma k názoru, že potřebují pro svůj počítač vlastní procesor.

8 Jejich inženýři navštívili univerzitu v Berkeley, kde tou dobou byl realizován projekt s Riscovým procesorem. Tam pochopili, že pokud třída postgraduálních studentů může vytvořit 32bitový procesor, pak Acorn by s tím neměl mít žádný problém. V Design Center ve Phoenixu objevili inženýry Steve Furber a Sofii Wilsnovou, kteří nepotřebovali veliké zdroje na výzkum. Začal vývoj Riscové instrukční sady, kdy Sofie Wilsonová navrhla její racionalizaci pro ARM a zavedla pevnou délku instrukce, paměťové architektury a podmíněných příkazů.

9 Steve Furber byl hlavní návrhář hardware na projektu ARM, hlavně na videořadiči, řadiči paměti a systému I/O. Fyzicky byl návrh realizován na technologii VLSI a první procesor byl vyroben 26.4.1985. Procesor pracoval na 2 MHz a měl méně než 25000 tranzistorů. Byl vyroben jako koprocesor. Tento první RISCový komerční procesor ARM1 sloužil jako pomocný procesor pro BBC Micro. Firma ARM Ltd. Realizuje návrh procesorů (Intellectual Properte – IP), ale sama je nevyrábí. Prodává však licenci ostatním firmám jako firmě ATMEL a jiným.

10 Stručná charakteristika procesorů ARM ARM1 Prvním v řadě typů byl realizován procesor ARM1, který byl použit v několika vývojových systémech pro BBC a PC. Bylo vyrobeno něco kolem 100 ks. Tento procesor neobsahoval instrukce pro násobení, ani matematický koprocesor, ale měl řadu módů (režimů), což je neobvyklé řešení u Riscových procesorů. Měl oddělené formáty instrukcí pro zpracování dat, jeden registr pro přesun dat, více registrů pro přenos dat, větvení a přerušovací instrukce. Třetí operand pro zpracování dat podle pokynů, barrel shift registr atd. To vše usnadňovalo práci s assemblerem.

11 Měl tříúrovňové proudové zpracování instrukcí. Jednalo se vlastně o prototyp, který byl urychleně nahrazen typem ARM2. Charakteristika ARM1:  6 registrů pro všeobecné použití,  tříúrovňové proudové zpracování instrukcí (třístupňový pipeline),  nemá IVP (rychlou vyrovnávací paměť),  26ti bitová adresace,  první komerční RISCový procesor.

12 ARM2 Tento typ vycházel z ARM1 a měl již 27 registrů, z čehož bylo 16 přístupných. Měl 4 pracovní módy :  USR (user mode - uživatelský režim),  IRQ (interrupt mode – přerušovací režim),  FIQ (fast interrupt mode – rychlý přerušovací režim),  SVC (supervizit mode – režim dozoru).

13 Umožňoval adresaci až 64 MB, opět tříúrovňové proudové zpracování instrukcí pro zpracování instrukcí při hodinové frekvenci 8 MHz. Z toho pak vyplýval výpočetní výkon cca 4,5 MIPS. Byl určen pro řadu osobních počítačů Acorn Archimédes. Projevil se zde nedostatek hardwarové podpory pro násobení. Běžně se totiž používalo pro násobení rotace a součet, což je nesmírně pomalá realizace. Toto bylo v procesoru ARM2 upraveno tak, že byly přidány 2 instrukce MUL a MLA, čímž bylo umožněno použít ARM2 pro matematické výpočty a jednoduché zpracování digitálních signálů a vytváření syntetického zvuku. ARM2 se stal prvním komerčně dostupným RISCovým procesorem.

14 Vlastnosti:  registry: 16 pro všeobecné použití,  32bitové adresové a datové sběrnice, jen však s 26bitovým programovým čítačem,  tříúrovňové proudové zpracování instrukcí,  nemá IVP. Použití: byl použit v počítačích: A305, A310, A440, A410 / 1, A440 / 1, R140, A3000

15 ARM3 Tento typ byl dalším, byť jen malým vylepšením předcházejícího typu a byl vyvinut v roce 1989. Byla přidána rychlá vyrovnávací paměť (IVP) o velikosti 4 kB, matematický koprocesor a zvýšena hodinová frekvence na 12 – 33 MHz. Výpočetní výkon pro 12 MHz byl 7 MIPS a pro 33 MHz 18 MIPS. Používal se v osobních počítačích A5000 a low-endových modelech A3010, A3020, A4000.

16 ARM4 a ARM5 Tyto typy procesorů nebyly nikdy vyrobeny. V rámci vývoje u ARM4 byly přidány instrukce „load“ a „store“ pro poloviční 16 bitové slovo. Mezi ně patří zástupci rodin ARM7 a ARM9. V rámci vývoje u ARM5 byla vylepšena spolupráce při použití instrukcí šíře 16 a 32 bitů. Mezi ně patří zástupci rodin ARM9E a ARM 11. Rozlišení podtypů architektury označené písmeny:  E - rozšíření instrukčního souboru o instrukce DSP*  M - podpora 64bitového násobení  J - podpora Javy (Jazelle)  T - podpora 16bitového instrukčního souboru Thumb  T2- podpora instrukčního souboru Tumb2 * Označení DSP je pro signálové procesory

17 DSP je Digitální signálový procesor je mikroprocesor, jehož návrh je optimalizován pro algoritmy používané při zpracování digitálně reprezentovaných signálů. Hlavním nárokem na systém bývá průběžné zpracování velkého množství dat „protékajících“ procesorem. Analogový signál je nejprve převeden A/D převodníkem na digitální a v této podobě je průběžně zpracováván digitálním signálovým procesorem. Zpracovaný digitální signál je D/A převodníkem převeden zpět na analogový. V mnoha zařízeních prochází signál tímto řetězcem v reálném čase, ale na některých signálech je potřeba provést tak složité a výpočetně náročné algoritmy, že to ani velmi rychlý DSP procesor v reálném čase nestihne a digitalizovaná data musí být nejprve zaznamenána do paměti a teprve postupně zpracovávána.

18 ARM6 Tento typ byl první komerčně vyráběný procesor s plnou 32bitovou sběrnicí umožňující adresaci až do 4 GB. Na trhu se objevil v roce 1992. Obsahuje 32 třicetidvoubitových registrů, má 6 pracovních módů, takže oproti ARM2 má navíc ještě :  abort (bude použit při pokusu o přístup mimo vymezenou paměť),  undefine (bude použit při provedení neznámé instrukce).

19 Byly vyráběny následující verze tohoto procesoru:  ARM61 - je zpětně kompatibilní s ARM2 a ARM3 – nemá ještě 32bitovou sběrnici  ARM600 - má přidán blok řízení paměti (MMU) a rychlá vyrovnávací paměť  ARM610 - má 3 varianty hodinové frekvence (viz níže)  ARM60 - základní typ  ARM650 - ARM6 včetně paměti RAM a I/O  ARM61 - nízkopříkonová verze ARM6  ARM601 - nízkopříkonová verze ARM61

20 První výrobek vyráběný z jádra ARM6 byl ARM610, použitý v roce 1993 v PDA Newtonu od Applu, a v následujícím roce v počítači RiscPC od Acornu. Například Digital Equipment vyvinul řadu procesorů StrogARM na bázi ARM4 s instrukční sadou ISA. Později tento procesor prodal Intelu. Kromě jádra ARM610 měl procesor vestavěný MMU, systém IVP podobný ARM3, posílený registr zpětného zápisu, a stále měl méně než 360.000 tranzistorů. Hodinová frekvence byla 20, 30 a 33 MHz, a výpočetní výkon cca 17, 26 a 28 MIPS. Byl určen pro nedesktopové aplikace s velmi nízkou spotřebou energie při napájení 3,3 V.

21 Vlastnosti:  hodinová frekvence: 0 - 33MHz,  unifikovaná IVP,  32bitové adresové a datové sběrnice, jen však s 26bitovým programovým čítačem 32bitová adresace virtuální paměti. Použití - PDA Newton od Apple, Acorn RiscPC (první generace) a různých vestavěných systémech. procesory, které byly k dispozici: ARM60, ARM60L (nízký výkon jádra), ARM61 (26bitové jádro), ARM610 (jádro, MMU, IVP 4 kB, registr zpětného zápisu), ARM650 (jádro, RAM na čipu, řadič I/O)

22 Změny ve značení První číslice číslo produktu představuje generaci technologie, jako jsou ARM6, nebo jádra procesoru pro tuto generaci. Dvě číslice produktu, jako je ARM61, je jádro s minimální interfaceovými obvody potřebné pro zkoušky či použití. Tři číslice produktu, jako je ARM610, označuje jádro kombinované s omezenou podporu obvody, jako MMU (jednotka řízení paměti). Čtyři číslice produktu, jako je ARM7500, je o systému uloženém na čipu, jako je integrovaná grafika a podpora I/O.

23 Zdaleka nejvýznamnější změnou ve verzi 6 ARM bylo přidání podpory 32bitového adresování, což si vyžádalo velkou vnitřní úpravu procesoru. Přechod na nový systém vyžadoval řešení čtyř 32bitových módů USR32, IRQ32, FIQ32 a SVC32. Navíc musela být dodržena zpětná kompatibilitu s ARM3 a staršími modely procesorů pomocí odkazu na 26bitový režim. Další změny v architektuře následně umožnily používání virtuální paměti a ochranu paměti.

24 Rodina ARM7 V této pasáži bude probírán jen základní procesor ARM7, v dalším výkladu pak i varianta ARM7TDI. Rodina ARM7 je založena na architektuře ARMv4T. Má 32bitové RISCové jádro, které je v maximální míře optimalizováno na aplikace s nízkou cenou a spotřebou. Mimo instrukčního souboru ARM32 je podporován i instrukční soubor Tumb kvůli přenositelnosti programů. Procesor může pracovat v některém ze sedmi režimů:  uživatelský režim (User mode) při normálním běhu programu,  režim přerušení (Interrupt IRQ), kde bude odezva na přerušení v nižší prioritě,  režim rychlého přerušení (Fast interrupt FIQ), kde bude odezva na přerušení ve vysoké prioritě,

25  režim supervizit (Supervizit mode), který nastane po resetu či softwarovém přerušení,  systémový režim (Systém mode), což je privilegovaný režim ve kterém jsou k použití stejné registry jako v uživatelském režimu,  abort (Abort mode), který nastane při pokusu o přístup mimo vymezenou paměť,  nedefinovaný režim (Undefine mode), který bude použit při provedení neznámé instrukce.

26 Registry  Jádro procesoru obsahuje 37 registrů, každý o délce 32 bitů, které jsou rozčleněny následovně:  30 registrů pro obecné použití, s tím že je jich prakticky je 16 a zbylé slouží jako banky registrů,  1 registr jako programový čítač PC (program counter),  1 registr jako Current Program Status Register (CPSR),  5 registrů sloužící jako Status Program Status Register (SPSR).

27 Platí však, že všechny registry nejsou přístupné naráz, protože režim a stav procesoru určují, které registry se v daném okamžiku mohou použít. Přitom procesor se může nacházet v jednom ze dvou stavů, což je dáno použitým instrukčním souborem:  ARM32, kdy všechny instrukce mají stejnou délku a to 32 bitů z čehož vyplývá, že musí být na tuto velikost zarovnány.V tomto režimu jsou přístupné registry r0 až r15. Dále jeden registr, který je v neprivilegovaném režimu, či dva stavové registry jsoucí v privilegovaném režimu (je přístupný registr SPSR). Použití těchto 15 registrů je následující:

28 registr r0 až r12 lze použít pro uchování adres či dat, registr r13 se používá jako ukazatel zásobníku (SP – Stack Pointer), registr r14 se používá pro uchování návratové adresy jako Link Register (LR), registr r15 se používá jako programový čítač (PC – Program Counter).  Tumb16, kdy všechny instrukce mají délku 16 bitů a jako takové musí být zarovnány. V tomto stavu je možno používat registry r0 až r7, SP, PC, LR a registr CPSR.

29 Stavový registr Každý z módu jádra obsahuje alespoň 1 stavový registr a v módu výjimek se pracuje se 2 stavovými registry. Pokud je vyvolána výjimka, pak aktuální obsah stavového registru (CPSR) se přesouvá do registru SPSR. Ten vlastně slouží jako archivní. Po ukončení výjimky dochází k obnovení obsahu registru CPSR z registru SPSR. Kde

30 Vlastnosti:  výpočetní výkon cca 130 MIPS,  podpora operačních systémů Windows CE, Symbian OS, Linux Palm OS,  je programově kompatibilní s rodinou ARM9 a ARM10,  velmi nízká spotřeba elektrické energie,  malý rozměr,  podpora 16bitového instrukčního souboru,  výrazná podpora vývojových nástrojů. Použití – osobní audiopřehrávače, digitální fotoaparáty, inkoustové tiskárny, obousměrné pagery aj.

31 Architektura ARM7TDMI-S Architektura ARM7EJ-S

32 ARM7TDI má ještě oproti základní variantě 3úrovňové proudové zpracování instrukcí, což podstatným způsobem zvyšuje jeho výkonnost. Jedná se o rozčlenění „FETCH – DECODE- EXECUTE“: Proudové 3stupňové zpracování dat (pipeline)

33 Podmínkou pro správné fungování však je, že všechny časy pro zpracování musí být zcela shodné a rovny času nejdelší sekce zpracování. Z toho pak vyplývá, že nezáleží kolika sekcemi zpracovávaná instrukce prochází, ani jak je dlouho zpracovávaná. Přesto po každém hodinovém pulsu vypadává jedna zpracovaná instrukce. A to bude vždy kratší čas, než vlastní součet časů nezbytných pro zpracování v jednotlivých sekcích.

34 ARM7EJ má ještě oproti základní variantě 5úrovňové proudové zpracování instrukcí, což podstatným způsobem zvyšuje jeho výkonnost. Jedná se o rozčlenění „FETCH – DECODE- ALU- MEMORY-WRITE“: Proudové 5stupňové zpracování dat

35 ARM8 Tato verze byla přímo kompatibilní s ARM6 a ARM7. Měla pětiúrovňové proudové zpracování instrukcí (pipelining). Přibyla 64bitová násobička. Paměť IVP je i nadále stejně velká, ale slouží pro zpětný zápis (zpětný zápis). Napájení je 3,3 V a výpočetní výkon je cca 80 MIPS při 80 MHz. StrongARM Jedná se rychlou variantu s jádrem podobným ARM8. Má Harvardskou architekturu, což znamená, že má rozdělenu i IVP na IVP pro data (16 kB) a pro instrukce (16 kB), což dovoluje číst z obou pamětí naráz a zrychluje práci procesoru. Má pětiúrovňové proudové zpracování instrukcí. Výpočetní výkon při 100 MHz je 115 MIPS a při 180 MHz pak 200 MIPS.

36 ARM9 Vychází jak je zvykem z předchozího ARM8, což je vlastně zástupce architektury ARMv4T. Má Harvardskou architekturu. Opět má pětiúrovňové proudové zpracování instrukcí. Má 16bitový instrukční soubor Tumb, což mu umožňuje úsporu až 35% paměti programu bez dopadu na výkon.Výpočetní výkon při 180 MHz je cca 200 MIPS. Jednotlivé typy jsou rozděleny podle velikosti IVP :  ARM9TDMI - nemá IVP  ARM9T - 2 x 4 kB  ARM922T - 2 x 8 kB  ARM920T - 2 x 16 kB

37 Vlastnosti:  32bitový RISCový procesor s 16bitovým instrukčním souborem Tumb,  pětiúrovňové proudové zpracování instrukcí (celočíselná data),  jeden 32bitový bus interface AMBA,  MMU podporující Windows CE, Symbian OS, Linux Palm OS. Použití - PDA, videotelefony, herní konzole, MP3 přehrávače, set- top boxy, tiskárny, digitální fotoaparáty a videokamery

38 ARM9E Jádro je přepracováno na architektuře ARMv5 k němuž bylo přidáno rozšíření instrukčního souboru o instrukce DSP. Jádro ARM926EJ-S podporuje technologii Jazelle umožňující přímé vykonávání programů napsaných v Javě. Obsahuje následující typy - ARM996HS, ARM926EJ-S, ARM946E- S, ARM968E-S. Z následujícího obrázku pak vyplývá, že jsou jednotlivé typy procesorů „šity na míru“ pro různá použití.

39 Pro porovnání architektura procesorů ARM926EJ-S, ARM946E-S a ARM968E-S

40 Vlastnosti :  32bitový RISCový procesor s instrukčním souborem Tumb rozšířeným o instrukce DSP,  podpora technologie ARM Jazelle urychlující zpracování instrukcí v Javě,  pětiúrovňové proudové zpracování instrukcí (celočíselná data),  MMU podporující Windows CE, Symbian OS, Linux Palm OS,  volitelný koprocesor VFP9 s výkonem do 215 MFLOPS pro 3D grafické aplikace, vhodný pro systémy pracující v reálném čase,  zaintegrovaná IVP pro data a instrukce 2 x 4 kB až 128 kB.

41 Použití - tiskárny, digitální fotoaparáty a videokamery, jednotky HD a DVD, zpracování MPEG4 videa, VoIP, Wireless LAN, xDSL.

42 ARM10E Jedná se o několik typů procesorů, které mají nové systémy úspory energie a rozšíření o instrukce DSP (DSP je označení signálového procesoru), instrukční soubor Tumb, 64bitovou mikroarchitekturu „load-store“, koprocesorem s vektorovými operacemi který je kompatibilní s normou IEEE754. Proudové zpracování ARM10 jak je níže uvedeno má šest úrovní:  Fetch,,  Issue,  Devoce,  Execute,  Memory,  Write.

43 První stupeň zahrnuje předpověď větve a natažení instrukce. Druhý stupeň přeloží instrukce Thumb do jejich vhodného tvaru pro ARM, v případě potřeby koprocesorové instrukce, a začne dekódovat instrukci. Třetí stupeň - registry jsou čtené paralelně se zbytkem instrukčního dekódování. Čtvrtý stupeň je nejvíce komplikovaný: sčítačka určí adresu z větve nebo přístupu do paměti (jsme ve virtuální paměti jako u procesorů x86), zatímco hardwarová násobička realizuje dílčí produkty, ALU a válcový posouvač vykonávají aritmetické operace.

44 V pátém stavu se dokončí operace násobení, nebo se čte paměť dat (instrukce nikdy užívají obě násobení a paměť dat, takže nevzniká žádný konflikt). Nakonec ALU, násobička nebo datová paměť zapíší výsledek zpět do registru. Proudové 5ti stupňové zpracování dat

45 Architektura procesorů ARM 1026

46 Vlastnosti:  výkon vzrostl na 430 MIPS,  šestiúrovňové proudové zpracování instrukcí (celočíselná data),  MMU podporující Windows CE, Symbian OS, Linux Palm OS,  zaintegrovaná IVP pro data a instrukce 2 x 16 kB, nebo 2 x 32 kB,  technologie Jazelle,  volitelný koprocesor VFP9 s výkonem do 650 MFLOPS pro 3D grafické aplikace. Použití – PDA, laserové tiskárny, digitální fotoaparáty a videokamery, set- top boxy, atd.

47 ARM11 Tento procesor pro zrychlení práce má již osmiúrovňové proudové zpracování instrukcí. Dále podporuje paměť IVP o velikosti 4 – 64 kB. Hodinová frekvence je větší než 1 GHz, při níž je výpočetní výkon 740 MIPS. Jádra jsou založena na architektuře ARMv6(T2). T2 je nový velmi výkonný instrukční soubor Tumb-2 umožňující úsporu paměti až o 30% a zvýšení výpočetního výkonu až o 40% oproti předcházejícím instrukčním souborům. Některá z nich mohou pracovat i s technologií Trust Zone (dva oddělené adresové prostory) a ARM Jazelle a v tom případě jsou určena pro použití v bezdrátových aplikacích.

48 Navíc 64bitová komunikace umožňuje vybrat najednou dvě instrukce a uložit hodnotu dvou registrů v jednom hodinovém cyklu. Typ ARM1176JZF-S je vybaven integrovaným koprocesorem a určen pro 3D grafické aplikace. Je to vůbec první procesor mající podporu technologie ARM Inteligent Energy Manager (IEM) umožňující snížit progresivně spotřebu elektrické energie. S výhodou se používá v malých mobilních zařízeních jako jsou PDA či mobilní telefony. Poslední typ ARM11 MPCore je vícejádrový procesor se 2 nebo 4 jádry. Jeho výpočetní výkon při 4 jádrech je cca 2600 MIPS.

49 Architektura procesoru ARM1136JF Architektura procesoru ARM11 MPCore

50 Vlastnosti:  osmiúrovňové/devítiúrovňové proudové zpracování instrukcí (podle typu),  napájení 1,2V  technologie IEM,  technologie SIMD pro zpracování videa,  výpočetní výkon 740/2600 MIPS,  technologie Jazelle.

51 CORTEX Rodina procesorů Cortex má 3 základní skupiny:  ARM Cortex - A jsou procesory určené pro komplexní operační systémy a uživatelské aplikace. Podporuje instrukční systémy 32 –bit ARM, Tumb a Tumb-2.  ARM Cortex - R jsou procesory určené do embedded systémů pro práci v reálném čase. Podporuje instrukční systémy 32 –bit ARM, Tumb a Tumb-2.  ARM Cortex - M jsou procesory u nichž je potřebná nízká cena produktu. Podporuje jen instrukční soubor Tumb-2. Rodina procesorů Cortex zahrnuje celou řadu typů jako ARM Cortex-A8, ARM Cortex-A9 Single Core Procesor, ARM Cortex-A9 MPCore, ARM Cortex-M1,ARM Cortex-M3 a ARM Cortex-R4(F).

52 Ukázka architektury procesorů Cortex – M3 a Cortex – R4F

53 Rodina Cortex * Trust Zone – bezpečnostní rozšíření realizované přidáním dalšího jádra zajišťujícího bezpečnost řídící přístupy k jádru

54 Cortex A5 MPCore Oba procesory jsou vícejádrové

55 Cortex - AB

56 Procesor AT91SAM7S256

57 Obvody řady AT91SAM7S Takovým základním obvodem celé této řady je procesor AT91SAM7S256. Platí pro něho vše co bude uvedeno v následujícím výčtu vlastností včetně periférií. Liší se hlavně velikostí programové paměti, která je 256kB. V tabulce je základní přehled v současné době vyráběných typů obvodů řady AT91SAM7S.

58 Popis Procesory Atmel řady AT91SAM7S jsou založeny na 32bitovém RISCovém procesoru ARM. Vyznačují se velmi rychlou pamětí SRAM, velkým souborem periferních zařízení včetně USB 2.0 a umožňují minimalizovat množství externích komponent. Zaintegrovaná paměť Flash může být programována přímo v systému přes rozhraní JTAG - ICE nebo přes paralelní rozhraní. Zabudovaný zamykací a bezpečnostní bit chrání firmware před náhodným přepsáním. Správná činnost je sledována systémovým kontrolérem sledujícím jak napájení (pomocí Brownova detektoru), tak i zacyklení ve smyčce pomocí watchdogu běžícím na vnitřním RC oscilátoru. Díky svým vlastnostem jsou ideálními procesory

59 Vlastnosti procesoru AT91SAM7S256 Společnými vlastnostmi řady AT91SAM7S je:  Použití 32bitové RISCové architektury 16bitový instrukční soubor vysoký výkon v MIPS/W podpora vkládaných systémů obvodovou emulací a ladícím komunikačním kanálem  Programová rychlá paměť Flash integrovaná na čipu o velikosti až 512kB (x8) – pro naše účely pak jen 256 kB organizovaná jako 1024 stran po 256 B paměť umožňuje jednoinstrukční přístup až do frekvence 30MHz, při vyšší frekvenci je k ní automaticky přistupováno přes dvě instrukce

60 nízké programovací časy - 6ms pro programování jedné stránky a 15ms pro smazání celé paměti 10.000 zápisových cyklů s uchováním dat minimálně po dobu 10 let rychlý programovací interface pro sériovou výrobu zabezpečení paměti pomocí sektorových zámků či bezpečnostního bitu  Datová paměť SRAM o velikosti až 64kB, která je velice rychlá umožňující jednoinstrukční přístup i při maximální rychlosti

61  Memory Controller (MC), což je integrované řízení Flashe s detekcí poruchových stavů  Reset Controller (RSTC): zajišťující Power-on Reset a výrobcem kalibrovaný Low- power Brown-out detektor zajišťuje natvarování externího resetovacího signálu  Hodinový generátor (CKGR) je nízkoodběrový integrovaný RC oscilátor 3 až 20 MHz a integrovaný PLL násobič  Power Management Controller (PMC): optimalizační schopnosti software výkonu až po režim dynamického zastavení tři programovatelné externí hodinové signály

62  Rozšířené řízení přerušení (AIC): individuálně maskovatelné, které má až 8 úrovní priorit až dva externí zdroje přerušení, nebo jeden rychlý zdroj přerušení  Ladící jednotka (DBGU) využívající klasický 2vodičový UART (RxD a TxD) včetně podpory pro ladící komunikační kanálové přerušení  Periodik Interval Timer (PIT), což je 20bitový programovatelný čítač včetně 12bitového časovače  Okénkový Watchdog (WDT): programovatelný čítač chráněný 12bitovým heslem

63 generuje Interrupt, nebo Reset čítač může být zastavován při ladění procesoru, nebo v Idle Mode  Real-time Timer (RTT): volně běžící 32 bitový čítač s funkcí alarmu zdroj hodin je samostatný interní RC oscilátor  Jeden paralelní I/O kontrolér (PIOA): 32 uživatelský I/O vývodů každý pin (vývod) je sdílen s maximálně dvěma perifériemi

64 individuálně konfigurovatelný Open-drain výstup, Pull-up rezistor a synchronně řízený výstup  11ti kanálová DMA jednotka umožňující přenos dat mezi perifériemi a datovou pamětí (PDC)  USB 2.0 Full Speed (12 Mbits/s) port, který je zaintegrovaný 328B konfigurovatelné FIFO  Jeden synchronní sériový kontrolér (SSC): nezávislý zdroj hodin a blokový synchronizační signál pro každý přijímač a vysílač podpora pro analogový I 2 S interface a časový multiplex vysokorychlostní datový tok schopný přenášet i 32bitová data

65  Dva USARTy (Universal Synchronous/Asynchronous Receiver Transmitters): Individuální Baud Rate generátor, IrDA® modulátor/demodulátor podpora pro ISO7816 T0/T1 Smart Card, hardwarový Handshaking i RS485 budiče Jeden USART s podporou plných (modemových) vývodů  1x Master/Slave Serial Peripheral Interface (SPI): 8 až 16-bitová programovatelná délka dat, čtyři základní Chip Selects vývody s možností multiplexu až na 16 vývodů, programovatelná polarita CS vývodů

66  Jeden tříkanálový 16bitový Timer/Counter (TC): až tři externí hodinové vstupy, dva víceúčelové I/O vývody na kanál, dvojitý generátor PWM, Capture/Waveform Mode, Up/Down Capability  Jeden čtyřkanálový 16bitový PWM kontrolér (PWMC)  Jeden dvoudrátový interface (TWI): pouze „Master Mode“ režim, podpora všech „Two-wire“ EEPROM pamětí Atmel podpora všech I 2 C součástek

67  Jeden 8kanálový 10bitový A/D převodník, kdy čtyři kanály jsou sdíleny s I/O vývody, zbylé čtyři jsou vyvedeny samostatně  SAM-BA™ Boot Assistant je standardní zaváděcí program, kde výchozí boot program je uložený v nesmazatelné ROM paměti, dostupný uživatelský software SAM-BA je pro Windows  IEEE® 1149.1 JTAG Boundary Scan

68  Napájecí napětí integrovaný 1,8V regulátor, zatížitelný až 100 mA pro jádro a případné externí komponenty 3,3V nebo 1,8V VDDIO napájení I/O budičů samostatné 3,3V napájení VDDFLASH pro programovou paměť 1,8V VDDCORE napájení jádra s Brown-out Detektorem má I/O vývody odolné úrovním 5V logiky a čtyři vývody se zvětšeným proudovým zatížením (16 mA)  Plně statické operace zaručují funkci až do 55 MHz při 1.65V a 85° C

69  Jsou vyráběny jak ve vývodovém LQFP, tak i bezvývodovém QFN pouzdru Tento popis platí z větší části i pro ostatní verze tohoto procesoru a u jednotlivých procesorů je možné nastavovat opět celou řadu možností a provozních stavů.

70 Napájení Procesory AT91SAM7S mají 6 druhů napájecích vývodů a integrovaný regulátor napětí, který umožňuje, aby zařízení bylo možno napájet jediným napětím. Druhy napájení jsou :  VDDIN vývod - jedná se o výkonové stejnosměrné nominální napětí mezi 3,0 V a 3,6 V  VVDDOUT vývod, který má výstupní napětí 1.8 V.  VDDIO vývod, který slouží pro linky I/O a rozhraní USB; má 2 napětí a to 3,0V až 3,6V, kde 3,3V je nominální napětí, nebo od 1,65V do 1,95V, kde nominální napětí je 1,8V.  Je třeba upozornit, že jakmile dojde k použití USB je na vývodu VDDIO napětí menší než 3,0V.

71  VDDFLASH vývod, kde musí být rychlá reakce z důvodu správné činnosti paměti Flash. Pro napájení se používá napětí od 3,0V do 3,6V, při čemž nominální napětí je 3,3V.  VDDCORE vývod, který napájí logické obvody napětím od 1,65V do 1,95V, kdy typické napětí je 1.8V. Tento vývod může být připojený k vývodu VDDOUT s oddělovacím kondenzátorem. Pro korektní práci zařízení včetně paměti Flash je proto požadováno napájení VDDCORE. Během startu musí být strmost napájecího napětí (VDDCORE) větší, nebo rovno 6V/ms.  VDDPLL vývod napájí oscilátor a PLL. Může být spojený přímo s vývodem VDDOUT.

72 Nejsou potřebné oddělené země jednotlivých napájení. Země by měly být spojeny s minimální délkou. Pokud nejsou používány regulátor napětí a ADC, pak pro snížení spotřeby proudu, by měly být vývody VDDIN, ADVREF, AD4, AD5, AD6 a AD7 připojeny k zemi a VDDOUT by nemělo být připojeno

73 Příkon a regulátor napájení Procesory série AT91SAM7S mají statický proud menší než 60 μA na VDDCORE při 25° C, včetně RC oscilátoru a regulátoru napětí. Když je aktivní detektor Brown-out, zvyšuje se statický odběr o 20 μA. Dynamický příkon na VDDCORE je menší než 50 miliampér při běžné pracovní rychlosti. Za stejných podmínek příkon na VDDFLASH nepřesáhne 10 mA.

74 Regulátor napětí Procesory série AT91SAM7S mají regulátor napětí ovládaný systémovým kontrolérem. V normálním režimu regulátor napětí spotřebovává méně než 100 μA a ve statickém režimu dává cca 100 miliampér výstupního proudu. Regulátor napětí je i se sníženým příkonem, ve kterém má vlastní spotřebu ve statické stavu méně než 25 μA proudu a je schopen dodávat až 1 miliampér výstupního proudu. Pro napájení VDDOUT je nezbytné omezení zvlnění napájení a též se vyhnout zákmitům na napájení. Nejlepší způsob jak toho dosáhnout je použít dva paralelně řazené kondenzátory - jeden externí 470 pF (nebo 1 nF), který musí být připojený mezi VDDOUT a GND tak blízko u čipu, jak je to jen možné.

75 Dále externí kondenzátor s kapacitou 2.2μF (nebo 3.3μF), který musí být ¨připojený mezi VDDOUT a GND. Obdobně by pro zlepšení stability při startu systému měly být použity paralelně kondenzátory 100 nF a 4,7 μF.

76 Blokové schéma řady procesorů AT91SAM7S512/256/128/64

77 Popis signálů

78

79 Schéma typického napájení Procesory série AT91SAM7S mají typické napájecí napětí 3.3V. Vnitřní regulátor je připojený k tomuto zdroji a jeho výstup napájí VDDCORE a VDDPLL Typické napájení

80 I/O vývody Vývody portu JTAG TMS, TDI a TCK mají opatřeny vstupy Schmittovými klopnými obvody. TMS a TCK snesou připojení k 5V logice, TDI však nikoliv. TMS, TDI a TCK nemají zaintegrovaný pull-up rezistor. TDO je výstup s možností napětí až do VDDIO, který nemá žádný pull-up rezistor. Vývod JTAGSEL je určen pro výběr rozhraní JTAG snímané při úrovni H. Vývod JTAGSEL má zaintegrován pull-down resistor o velikosti asi 15 kΩ proti zemi, a pro běžnou činnost se nemusí používat.

81 Vývod pro testování Vývod TST je užívaný jako výrobní test, rychlý programovací mód nebo obnovení bootování SAM - BA pro procesory AT91SAM7S bude ve 3. stavu. Vývod TST má zaintegrován resistor o velikosti asi 15 kΩ proti zemi, pro běžnou činnost nemusí být nikam připojen. Pro rychlý programovací mód, vývod TST a vývody PA0 a PA1 by měly být připojeny na H a PA2 připojen na L. Pro obnovení bootování SAM - BA, vstupní vývody TST a PA0, PA1 a PA2 by měly být připojeny na H přinejmenším 10 sekund. Pak výkonový cyklus základní desky (startkitu ) je povinný Přivedením TST pinu na vysokou úroveň současně s přivedením PA0 nebo PA1 na nízkou úroveň vede k nepředvídatelným důsledkům.

82 Vývod pro Reset (nulování) Vývod NRST je obousměrný s otevřeným kolektorem. Je řízen regulátorem napětí a při nízkých úrovních napětí generuje signál k nulování. Jinak je možno nulovat vnějším signálem L. Není zde žádný nárok na délku nulovacího impulsu, protože generátor garantuje minimální délku impulsu. Vývod NRST má zaintegrován pull-up rezistor proti VDDIO.

83 Vývod pro mazání Vývod pro mazání je použit pro opětovnou inicializaci obsahu paměti Flash. Přidává stálý odpor asi 15 kΩ k zemi tak, že se nemusí pro normální operace připojovat.

84 Řízení PIO linky A Všechny I/O vývody linky A tj. PA0 – PA31 procesorů AT91SAM7S512/256 snášejí připojení k 5 V logice i když je jejich výstupní logika 3.3 V. To znamená, že I/O linky mohou řídit své připojení podle VDDIO, při čemž rezistor pullup vede proud do VDDIO. To by se mělo vzít v úvahu při resetování, aby všechny I/O vývody bylo možno standardně resetovat. Výkon I/O linek Linky I/O PA0 až PA3 mohou trvale dávat až 16 mA výstupního proudu. Zbývající linky pak jen 8 mA. Avšak celkový odběr proudu všemi linkami může být maximálně 150 mA.

85 Architektura procesoru

86 Procesor ARM7TDMI  Je to RISCový procesor založený na jádře ARMv4T s von Neumannovou architekturou pracující až na 55 MHZ a poskytující výpočetní výkon 0.9 MIPS/MHz  má dva instrukční soubory ARM® což je 32bitový instrukční soubor Thumb® což je 16bitový instrukční soubor  třístupňovou architekturu proudového zpracování (pipelining): vyvolání instrukce (F - Fetch), dekódování instrukce (D - Decode), vykonání (E - Execute)

87 Ladění programu a hlavní testování  Integrovaný EmbeddedICE™ má: dva sledovací body, testujte přístupový port pomocí protokolu JTAG, ladicí komunikační kanál  Ladicí jednotka má: dva vstupy UARTu, ladicí komunikační kanálové ošetření přerušení,  IEEE1149.1 rozhraní JTAG jsou na plně digitálních vývodech

88 Řízení paměti  Arbitr sběrnice požaduje ovládání z ARM7TDMI a periferního kontroléru DMA  Dekodér adresy poskytuje signály pro volbu: tří vnitřních oblastí paměti o velikosti 1 Mbyt, jednu periferní oblast o velikosti 256 Mbyt  Stavové registry přerušení: jsou zaznamenány zdroj, typ a všechny parametry vedoucí k chybě usnadní odhalením špatných ladicích ukazatelů

89  Nevyrovnanost detektorů: nastavuje kontrolu přístupu ke všem datům přeruší generování v případě špatného řízení  Příkaz Remap: změní mapování paměti SRAM v místě vložené nonvolatilní paměti dovolí použití dynamických výhradních vektorů  Kontrolér paměti Flash: rozhraní vložené Flashe má až 3 programovatelné pohotovostní stavy

90  Prefetch buffer (vyrovnávací registr), ukládání a čekání na 16bitové požadavky, snižující požadované čekací doby: ochranný klíčový program, který maže a zamyká/odemyká řadič jednoduchý povel pro nulování, programování a uzamykající operací přeruší práci v případě zakázané operace

91 Vnější řadič DMA  ovládá přesun dat mezi periferními zařízeními a pamětí  má 11 kanálů pro AT91SAM7S512/256/128/64/321/161  má 9 kanálů pro AT91SAM7S32/16 : dva pro každý USART, dva pro ladicí jednotku, dva pro řízení sériového synchronního přenosu dva pro sériové periferní rozhraní, jeden pro analogově číslicový převodník

92  Režim arbitráže dolní části sběrnice: potřebuje 1 cyklus hodinek pro přenos dat z paměti k periferii potřebuje 2 cykly hodinek pro přenos dat z periferie do paměti  Správa next pointeru (ukazatele na příští instrukci) kvůli snížení zpoždění požadavků na přerušení  Periferní DMA řadič (PDC) dělá následující: přijme DBGU, přijme USART0, přijme USART1, přijme SSC, přijme ADC, přijme SPI, přenese DBGU, přenese USART0, přenese USART1, přenese SSC, přenese SPI

93 Paměť AT91SAM7S512 a AT81SAM7S256 Paměť AT91SAM7S512 má: má 512 kB paměti Flash ve 2 bankách po 1024 stránkách, každá stránka po 256 bajtech  Rychlý vybavovací čas, za nejhorších podmínek přístup v jednom 30MHz cyklu: doba naprogramování stránky včetně mazání je 6 ms výmaz stránky trvá 3 ms pro plný čip je doba výmazu 15 ms 10,000 zápisových cyklů, data udrží 10 let 32 bitů zámku, ochrana 32 sektorů z 64 stránek ochranný mód k bezpeční obsahů paměti Flash 64 kB rychlá paměť SRAM má jednocyklový přístup plnou rychlostí

94 Paměť AT91SAM7S256 má:  má 256 kB paměti Flash v 1 bance, vždy po 1024 stránkách, každá stránka po 256 bajtech  rychlý vybavovací čas, za nejhorších podmínek přístup v jednom 30MHz cyklu  doba naprogramování stránky včetně mazání je 6 ms  výmaz stránky trvá 3 ms  pro plný čip je doba výmazu 15 ms  10,000 zápisových cyklů, data udrží 10 let  16 bitů zámku, ochrana 16 sektorů z 64 stránek  ochranný mód k bezpeční obsahů paměti Flash  64 kB rychlá paměť SRAM a má jednocyklový přístup plnou rychlostí

95 Mapovaná paměť Interní paměť SRAM  Procesory AT91SAM7S512 i AT91SAM7S256 obsahují rychlou banku paměti SRAM o velikosti 64 kB. Interní paměť ROM  Procesory série AT91SAM7S série mají vnitřní paměť ROM, která obsahuje FFPI a program SAM-BA. Vnitřní paměť ROM není standardně mapovaná. Interní paměť Flash  Procesor AT91SAM7S512 má 512 kB paměti Flash ve 2 bankách po 256 kB  Procesor AT91SAM7S256 má 256 kB paměti Flash v 1 bance 256 KB

96 Paměť Flash je mapovaná kdykoliv na adrese 0x0010 0000. Je též přístupná na adrese 0x0 po resetu, jestliže GPNVM bit2 je nastaven před příkazem Remap. Hlavní bit NVM (GPNVM) se používá pro zavedení programu z paměti ROM nebo z paměti Flash. Tento bit GPNVM může být vynulován nebo nastaven pomocí příkazu „Clear General-purpose NVM Bit“ a „Set General- purpose NVM Bit“ EFC uživatelského rozhraní. Nastavením GPNVM bitu 2 = 1 se vybere natažení z paměti Flash. Při použití ERASE nuluje GPNVM bit2 = 0 a tak vybere standardní natažení z pamětí ROM.

97 Začlenění paměti Flash Přehled  Paměť Flash procesoru AT91SAM7S512 je organizována ve 2 bankách po 1024 stránkách, každá stránka po 256 bajtech. 524.288 bajtů je organizováno po 32bitových slovech.  Paměť Flash procesoru AT91SAM7S256 je organizována v 1 bance s 1024 stránkami, každá stránka po 256 bajtech. 262.144 bajtů je organizováno po 32bitových slovech Paměť Flash má tu výhodu, že nezatěžuje zdroj při resetování a poklesu napětí >20%, kdy reaguje Brownův detektor Tím se předejde poruše kódu během změn napájení, dokonce v nejhorším podmínkách. Když není Flash používaná, přechází automaticky do úsporného pohotovostního režimu.

98 Řízení Flashe Řízení paměti Flash (EFC) řídí přístupy vykonávané ve víceprocesorovém systému procesorem Master, což umožní čtení paměti Flash a zápis do zápisového bufferu. Také obsahuje uživatelské rozhraní, mapované uvnitř paměťového kontroléru na APB. Uživatelské rozhraní dovolí:  programování přístupových parametrů z Flashe (stavy pohotovostního režimu, časových nastavení, atd)  startovací povely jsou vymazány, vymazány stránky, stránkový program, NVM nastaví nebo vynuluje bit, atd.  dostane konečný stav posledního příkazu  dostane poruchový stav  programovatelná přerušení na konci posledních příkazů nebo na chybách

99 Kontrolér Flash také poskytne možnost práce dvojitému 32bitovému prefetch bufferu který je optimalizovaný pro 16bitový přístup k paměti Flash. To je zvláště účinné když procesor pracuje s instrukčním souborem Thumb. Dva kontroléry EFC, které jsou u procesoru SAM7S512 ovládají každou 256 kB banku. Dvojitá organizace bank dovolí paralelní práci obou bank.

100 Mapování paměti

101 Mapování vnitřní paměti

102 Zamykací části AT91SAM7S512 Dva kontroléry paměti Flash z nichž každý řídí 16 bitů chránících 16 částí paměti Flash proti náhodnému nulování nebo instrukci programu. Procesor AT91SAM7S512 obsahuje 32 zamykacích částí a každá část obsahuje 64 stránek po 256 bajtech. Každá zamykací část má velikost 16 kB. Jestliže se objeví výmaz zamčené části nebo programová instrukce, je instrukce přerušena a zamykací bit (LOCKE bit) se v registru MC_FMR zvýší včetně řady přerušení, pokud tento bit byl zapsán jako H v registru MC_FMR.

103 16 bitů NVM (nebo 32 bitů NVM) jsou softwarově programovatelné pomocí uživatelského rozhraní EFC. Příkaz " Set Lock Bit - nastavení zamykacího bitu " odemkne zamčenou část. Příkaz “Clear Lock Bit” pak smaže všechny zamykací bity a uvolní zamčené oblasti.

104 AT91SAM7S256 Kontrolér paměti Flash řídí 16 bitů chránících 16 částí paměti Flash proti náhodnému nulování nebo instrukci programu. Procesor AT91SAM7S256 obsahuje 16 zamykacích částí a každá část obsahuje 64 stránek po 256 bajtech. Každá zamykací část má velikost 16 kB. Jestliže se objeví výmaz zamčené části nebo programová instrukce, je instrukce přerušena a zamykací bit (LOCKE bit) v registru MC_FMR se zvýší včetně řady přerušení,pokud tento bit byl zapsán jako H v registru MC_FMR.

105 16 bitů NVM (nebo 32 bitů NVM) jsou softwarově programovatelný pomocí uživatelského rozhraní EFC. Příkaz " Set Lock Bit - nastavení zamykacího bitu " odemkne zamčenou část. Příkaz “Clear Lock Bit” pak smaže všechny zamykací bity a uvolní zamčené oblasti.

106 Konfigurace paměti Flash

107 Zabezpečovací bit Procesor AT91SAM7S obsahuje zabezpečovací bit založený na bitu NVM. Když je naprogramováno zabezpečení, pak přístupy k paměti Flash nejsou možné ani přes ICE nebo rozhraní Fast Flash Programming. To zabezpečí utajení kódu zapsaného v paměti Flash. Tento bezpečnostní bit je realizován přes příkaz „Set Security Bit” EFC na uživatelském rozhraní EFC. Vymazání zabezpečovacího bitu je umožněno jen v případě, že je současně vymazána i paměť Flash. Poté je již volný přístup k této paměti. Všimněte si, že mazání (ERASE) musí trvat minimálně 50 ms. Pokud tomu tak není, mohou nastat následné problémy při běžné činnosti.

108 Pro další činnost nemusí být tento mazací vývod nikam připojen. Nicméně je bezpečnější ho připojit přímo pro finální aplikaci k zemi.

109 Non-volatilní Brownův detektor Dva bity pro použití NVM (GPNVM) jsou užity pro řízení detektoru při poklesu napětí >20% (BOD) tak, že dokonce i po ztrátě výkonu, kdy je pokles napětí >20% detekční operace detektoru poklesu napětí zůstávají zachovány. Tyto dva bity GPNVM mohou být vynulovány nebo případně nastaveny prostřednictvím příkazů "Clear General - purpose NVM Bit" a "Set General - purpose NVM bit" uživatelského rozhraní EFC.  GPNVM bit 0 je užívaný jako povolovací bit detektoru poklesu napětí >20%. Nastavení bitu 0 GPNVM umožní BOD, jeho vynulování pak vyřadí BOD. Použití ERASE vynuluje bit 0 GPNVM a tak defaultně vyřadí detektor poklesu napětí >20%.

110  GPNVM bit 1 je použit jako povolení resetovat signál poklesem napětí >20% pro řadič resetu. Nastavení bitu H GPNVM umožní reset poklesu napětí >20%, když je detekovaný pokles napětí >20%, Vynulování GPNVM bitu H vyřadí reset poklesu napětí >20% Kalibrační bity Osm NVM bitů je použito ke kalibraci detektoru poklesu napětí u regulátoru napětí. Tyto bity jsou výrobcem konfigurovány a nemohou být změněny uživatelem. Vývod ERASE nemá vliv na dané kalibrační bity.

111 Rychlé programovací rozhraní paměti Flash Rychlé programovací rozhraní paměti Flash dovolí programování zařízení pomocí buď sériového rozhraní JTAG nebo pomocí multiplexovaného paralelního portu. To dovolí programování se standardním průmyslovým programátorem. FFPI podporuje čtení, stránkování programu, stránku vymazat, úplné mazání, zamknutí i odemknutí a ochranu příkazů. Je-li vývod TST a vývody PA0 a PA1 všechny na úrovni H a PA2 na úrovni vývodu TST a vývody PA0 a PA1 na úrovni H a PA2 na úrovni L, pak je povoleno rychlé programovací rozhraní paměti Flash.

112 Zaváděcí program SAM- BA SAM - BA® provádí zaváděcí zotavení a obnoví SAM - BA Boot v prvních dvou sektorech z čipové paměti Flash. SAM - BA zaváděcí zotavení je vykonané když vývod TST a vývody PA0, PA1 a PA2 jsou na úrovni H po dobu 10 sekund. Poté již běží pracovní mód. Zaváděcí program SAM - BA je standardní poskytující snadný způsob programování s paměti Flash. Zaváděcí program SAM - podporuje sériovou komunikaci pomocí DBGU nebo portu USB. Komunikace pomocí DBGU podporuje široký okruh krystalů od 3 do 20 MHZ přes softwarovou autodetekci. Komunikace pomocí portu USB je omezená na 18.432 MHZ krystal. ( SAM - BA poskytne rozhraní se SAM - BA Graphic uživatelským rozhraním (GUI).

113 Řízení systému Řízení systému řídí všechny zásadní bloky z mikrořadiče: přerušení, hodiny, napájení, čas, odlaďování a nulování. Řízení systému periferních zařízení jsou všechna mapovaná do nejvyššího 4 kB adresového prostoru mezi adresami 0xFFFF F000 a 0xFFFF FFF.

114 Nulování Poskytuje charakter (status) posledního resetu – indikující zda to byl reset při připojení k napájení, softwarový reset, uživatelský reset, watchdog reset nebo reset v důsledku poklesu napájení. Dává stav z posledního resetu, ukazující zda to je studený start, softwarový reset, uživatelský reset, hlídání resetu nebo reset při poklesu napětí >20%. Dále řídí vnitřní resety a výstup NRST s otevřeným kolektorem (drainem). Dovolí formovat signál na lince NRST, garantuje, že délka pulsu je odpovídající.

115 Blokové schéma systému řízení

116 Detektor poklesu napětí a detekce zásobení energií Detektor poklesu napětí a detekce zásobení energií (Brownout Detector and Power-on Reset) Procesor série AT91SAM7S má zabudován obvod pro detekci poklesu napětí a člen, který detekuje, že došlo k zásobení energií. Oba monitorují VDDCORE. Oba signály jsou předány do paměti Flash, aby se předešlo jakémukoliv narušení kódu při sekvencích zvýšení nebo snížení příkonu nebo v případě, že dojde k poklesu napětí na VDCORE napájení. Člen, který detekuje, že došlo k zásobení energií má omezený práh nastaven zhruba na 1,5 V. Jeho výstup zůstává ve stavu L při zvýšení výkonu do té doby, než VDCORE nepřejde přes tuto úroveň napětí. Tento signál zasahuje do řízení resetu a umožňuje úplné opětné nastavení výchozích hodnot tohoto zařízení.

117 Detektor poklesu napětí monitoruje úroveň VDDCORE během provozu tím, že ji porovnává s pevnou úrovní spouštěče. Tím zabezpečuje provoz systému v nejobtížnějších prostředích a předchází narušení kódu v případě poklesu napětí na VDDCORE

118 Monitoruje se jen VDDCORE Když je aktivovaný detektor poklesu napětí a VDDCORE klesá na hodnotu pod nastavenou úroveň (V bot-, definována jako V bot - hyst/2) je okamžitě aktivován výstupní signál poklesu napětí. Když VDDCORE vzroste nad nastavenou úroveň (V bot+, definována jako V bot + hyst/2), je ukončen reset. Detektor poklesu napětí detekuje pouze pokles napětí, jestliže napětí na VDDCORE zůstává pod rozhodovací úrovní déle než asi 1µs. Rozhodovací úroveň má hysterezi cca 50mV, aby se zajistila detekce poklesu napětí bez napěťových špiček. Typická hodnota prahu detektoru poklesu napětí je 1,68V s přesností +/- 2 % a je kalibrována výrobcem.

119 Detektor poklesu napětí má malý výkon, protože spotřebuje méně než 20 µA trvalého proudu. Je však možné jej deaktivovat, aby se tento trvalý odběr proudu ušetřil. V tomto případě je spotřeba menší než 1 µA. Deaktivace se konfiguruje pomocí GPNVM bitu 0 v paměti Flash. Jestliže se objeví výmaz zamčené části nebo programová instrukce, je instrukce přerušena a zamykací bit (LOCKE bit) v registru MC_FMR se zvýší včetně řady přerušení, pokud tento bit byl zapsán na 1 v registru MC_FMR.

120 Jádro zůstává ve stavu spánku, dokud se nesetká s jinou výjimkou. Protože pouze přerušením lze odejít z tohoto režimu, stav systému není obnoven. Je-li nastaven bit HLUBOKÝ SPÁNEK („SLEEPDEEP“) systémového řídícího registru, je možné ho použít k „clock gate“ jádra a ostatních systémových komponent pro optimální úspory energie. Pomocí předchozího vyprázdnění a přepnutí do druhého přerušení bez dokončení stavu obnovení a uložení, NVIC dosáhne nižší čekací doby deterministickým způsobem.

121 Hodinkový generátor Hodinkový generátor je nízkovýkonový RC oscilátor, hlavní oscilátor PLL má následující vlastnosti:  RC oscilátor kmitá v rozmezí 22 kHz až 42 kHz  hlavní oscilátor kmitá v rozmezí 3 až 20 MHz  hlavní oscilátor nemusí být použit  PLL výstup kmitá v rozmezí 80 až 220 MHz

122 Řízení výkonu Řadič řízení výkonu používá výstupy hodinové generátoru hodin k získání:  procesorový hodinový PCK  základní takt MCK  USB hodinový UDPCK (není na AT91SAM7S32/16)  všechny periferní hodiny jsou nezávisle řiditelné  tři programovatelné hodinové výstupy

123 Základní hodinky (MCK) jsou programovatelné z několika set Hz po mezní pracovní frekvenci zařízení. Procesorové hodiny (PCK) se odepnou při vstupu procesoru do režimu dynamického zastavení (Idle mode) a tak umožňují snížit příkon při čekající na přerušení.

124 Pokročilé řízení přerušení Pokročilé řízení přerušení:  ovládá přerušovací linky (nIRQ a nFIQ) procesoru ARM  každý vektor přerušení je samostatně maskovatelný přerušení 0 je rezervováno pro rychlý přerušovací vstup (FIQ) přerušení 1 je rezervováno pro systémová periferních zařízení RTT, PIT, EFC, PMC, DBGU, atd.) další zdroje ovládají periferní přerušení nebo vnější přerušení programovatelné přerušení na hranu nebo úrovňové přerušení interního zdroje programovatelná náběžná/spádová hrana pro spuštění klopného obvodu nebo úroveň H/L externího zdroje

125  8mi úrovňové prioritní řízení řídí normální přerušení procesoru ovládá prioritu zdroje přerušení přerušení s vyšší prioritou mohou být obsloužena i během obsluhy nižšího prioritního přerušení  vektorová přerušení je optimalizován obslužný program přerušení a provedení jeden 32bitový registr vektorů přerušení registr vektoru přerušení čte odpovídající aktuální vektor přerušení

126  chráněný mód sloužící pro snadné odstranění chyb předcházející automatickému ovládání  rychlé buzení – povolení přesměrování nějakým zdrojem přerušení při rychlém přerušení  globální maska přerušení poskytne procesorovou synchronizaci na události bez spouštění přerušení

127 Jednotka odladění (Debugování)  Zahrnuje: jeden dvouvývodový UART jedno rozhraní podporující ladicí komunikační kanál (DCC) jeden soubor registrů ID jedno rozhraní poskytující přístupovou prevenci ICP  Dvouvodičový UART je slučitelný s USART programovatelný generátor přenosové rychlosti sestavení rámců a chyby přeplnění automatická ozvěna, lokální smyčka portů a vzdálená smyčka

128 podpora ladicího komunikačního kanálu – nabídka zobrazení COMMRX a COMMTX signalizovaná z procesoru ARM  registry čipu ID identifikace přístrojové opravy, velikostí začleněných vzpomínek, souboru periferního čipový ID je 0x270B0A40 pro AT91SAM7S512 čipový ID je 0x270B0940 pro AT91SAM7S256 čipový ID je 0x270B0941 pro AT91SAM7S128

129 Periodická časovací jednotka Obsahuje 20ti bitový programovatelný čítač plus 12bitový intervalový čítač

130 Watchdog Watchdog má:  12bitový klíč chráněný programovatelným čítačem běžícím na předděleném SCLK  poskytuje reset nebo systémové přerušení  čítač může být zastaven, zatímco procesor je v ladicím stavu nebo v režimu dynamického zastavení

131 Obvod reálného času  32ti bitový volně běžící čítač s alarmem běžícím na předděleném SCLK  programovatelný 16ti bitový předdělič pro SLCK kompenzaci přesnosti

132 Řízení PIO  jedno řízení PIO ovládá 32 I/O linek (21 pro AT91SAM7S32/16)  je plně programovatelný pomocí nastavení/mazání registrů  multiplexování dvou periferních funkcí jednou linkou I/O  každé lince I/O lze přiřadit periferii nebo používat jako univerzální I/O: měnit vstupní přerušení každé I/O linky ať přiřazené periferii nebo užité jako obecný I/O filtr chyby poloviční periody hodin volba Multi-drive umožní řízení při otevřeném kolektoru programovatelný pull-up na každou I/O linku  registr stavu datového pinu poskytující v libovolném okamžiku informaci o úrovni na pinu

133 Řízení regulátoru napětí Cíl tohoto řízení je vybrat výkonový mód regulátoru napětí mezi normálním režimem nebo úsporným režim.

134 Periferní zařízení

135 Uživatelský interface Uživatelské periferní zařízení jsou mapovány v 256 MB adresovém prostoru mezi adresami 0xF0000000 a 0xFFFF EFFF. Každé periferní zařízení má přidělený adresový prostor o velikosti 16 KB.

136 Periferní identifikátory Procesor AT91SAM7S má široký okruh periferních zařízení. Tabulka 10.1 definuje periferní identifikátory z AT91SAM7S512/256. Identifikátor periferie je potřebný pro řízení periferních přerušení s řadičem přerušení a pro řízení periferních hodin řadiče řízení výkonu.

137

138 Multilexování na linkách PIO Série AT91SAM7S256/512 má jedno řízení PIO a multiplexuje linky I/O z periferní sady PIOA. Řízení PIOA ovládá 32 linek. Každá linka může být přiřazená jednomu z dvou periferních funkcí, A nebo B. Některé z nich mohou být multiplexovány s analogovými vstupy z ADC.

139 Ethernet MAC  DMA Master na přijímacích a vysílacích kanálech  slučitelný s IEEE (standard 802.3)  pracuje s rychlostmi přenosové linky 10 a 100 Mbit/s  pracuje v režimu duplex a poloduplex  statistické registry čítače  generuje přerušení při dokončeném příjmu či vysílání  má 28bajtový přijímač i vysílač - oba typu FIFO  automatické generování CRC u přenášených rámců  automatické vyřazování přijatých vadných rámců  kontroluje logickou adresu a podporuje až 4 specifické 48bitové adresy (MAC adresy)

140  podporuje náhodný mód, kde jsou všechny platné přijaté rámy kopírovány do paměti  hash náležející unicast a multicast adresám  fyzické řízení vrstvy pomocí rozhraní MDIO  poloduplexní řízení kolizní metodou  plné duplexní řízení toku dat s rozpoznáním vynecháním (pauzy) rámce  vícenásobný buffer pro příjem a vysílání rámců  jsou podporovány velké rámce až do velikosti 10240 bajtů

141 Sériové periferní rozhraní  Podporuje komunikaci s externími sériovými zařízeními čtyři bity za pomoci externího dekodéru umožňují komunikaci s až 15 periferiemi sériovou pamětí, jako DataFlash a třístavový EEPROM sériova periferní zařízení, jako řízení ADC, DACS, LCD, řízení CAN a senzorů externími koprocesory  Sériové sběrnicové rozhraní periferních zařízení Master a Slave výběr 8 až 16ti bitové programovatelné délky dat na čip výběr programovatelná fáze a polarity na čip

142 programovatelné zpoždění přenosu při volbě čipu mezi za sebou jdoucími přenosy a mezi hodinovými impulsy a daty programovatelné zpoždění při za sebou jdoucími přenosy volitelná režimová identifikace poruch maximální kmitočet v základní taktu

143 Dvoudrátové rozhraní  umožňuje jen hlavní mód  je kompatibilní se zařízeními I2C  má jedno až tříbajtové vnitřní adresové registry pro snadný sériový přístup do paměti  7bitová nebo 10bitová podřízená adresace  následné čtené/zápis operace

144 USART  Programovatelný generátor přenosové rychlosti  5ti až 9ti bitový duplexní synchronní nebo asynchronní sériová komunikace 1, 1.5 nebo 2 Stop bity v asynchronních režimech 1 nebo 2 Stop bity v synchronních funkcích generování parity a detekce chyb detekce chyb rámce, detekci chyby přeplnění při chyb volba MSB nebo LSB volitelné generování přerušení a detekce 8 nebo 16 vzorků pro zjištění chyby frekvence hardwarový hanshaking RTS – CTS

145 modem signalizuje správu DTR - DSR - DCD - RI na USART1 příjemce časové kontroly a hlídaní překročení času přijímače a vysílače mód Multi - drop s generováním adres a detekcí  RS485 s řídícím signálem  ISO7816, T = 0 nebo T = 1 protokoly pro rozhraní s kartami Smart – čítač chyb při přenosu NACKu s omezením počtu iterací a opakování modulace a demodulace IRDA – komunikace až do 115.2 kbps testovací režimy – vzdálená zpětná smyčka, místní zpětná smyčka, automatické echo

146 Sériové synchronní řízení  poskytuje sériové synchronní spojovací linky použité ve zvukových a telekomunikačních aplikacích  obsahuje nezávislý přijímač, vysílač a hodinovou děličku  nabízí změnu parametrů synchronizace rámce a délky dat  přijímač a vysílač mohou být naprogramovány k automatickému zahájení činnosti nebo po detekci různých případů v signálu synchronizačního rámce  přijímač a vysílač zahrnuje datový signál, hodinový signál a rámový synchronizační signál

147 Čítač/časovač Čítač/časovač obsahuje  tři 16bitové kanály čítače/časovače – dva komparační výstupy nebo jeden záchytný vstup na kanál  široký okruh funkcí včetně: měření kmitočtu počítání událostí interval měření generování impulzů doba zpoždění modulace šířky impulzů

148  každý kanál je konfigurovatelný uživatelem a obsahuje tři externí hodinové vstupy pět vnitřní hodinových vstupů dva víceúčelové signály I/O dva komplexní registry na všechny tři TC kanály

149 Řízení modulace šířky impulzů  čtyři kanály, jeden 16bitový čítač na kanál  běžné hodiny, poskytující třináct různých hodinek (frekvencí) jeden čítač modulo n poskytuje jedenáct frekvencí dvě nezávislé lineární děličky pracující na modulo n s opačnými výstupy  Nezávislý program kanálu nezávislý příkaz povolení/zakázání nezávislý výběr hodinek nezávislá perioda a povinný cyklus, s dvojitým vyrovnáním

150 programovatelný výběr polarity časového průběhu výstupního signálu programovatelné vystředění nebo ponechání nezměněného tvaru výstupního signálu

151 Port USB  USB V2.0 s rychlostí 12 Mbitů za vteřinu  začlenění 1352 bajtů dvojitého portu paměti RAM pro koncové body  šest koncových bodů koncový bod 0: 8 bajt koncový bod 1 a 2: 64 bajtů ping-pong koncový bod 3: 64 bajtů koncový bod 4 a 5: 256 bajtů ping-pong mód ping-pong (dva paměťové bloky) pro celkové koncové body  pozastavení/pokračování v logice

152 ŘízeníCAN  Plně vyhovující s CAN 2.0A a 2.0B  přenosové rychlosti až 1Mbit/s  osm objektově orientovaných schránek každou s následující vlastnosti: předmět je konfigurovatelný příjem (s přepisem nebo bez) nebo odeslání lokální bag a maska filtruje až 29bitový identifikátor/kanál 32bitový přístup k datovým registrům pro každou datovou schránku užívá 16bitový časový údaj pro příjem a odeslání zprávy hardwarové zřetězení ID nemaskovaného bitového pole pro zrychlení soustavy zpracování

153 16bitový vnitřní časovač pro časový údaj a síťovou synchronizaci programovatelná přijímací vyrovnávací paměť s 8 datovými schránkami (mailbox) přednostní řízení mezi přenosovými datovými schránkami (mailbox) automatické nastavování přenosové rychlosti a sledovací režim mód nízkého příkonu a probuzení činnosti sběrnice programově nebo aplikací obsluha dat, vzdáleného přístupu, chyby a přeplnění rámce.

154 Analogo-číslicový převodník  8mi kanálový ADC  je 10bitový s 384 K vzorky/sec při postupné aproximaci ADC  ±2 LSB nelinearita, ±1 LSB rozdílová nelinearita  integrovaný 8kanálový multiplexer, nabízí osm nezávislých analogových vstupů 3.3V  externí napěťové referenční napěťový vstup pro lepší přesnost na nízkých vstupních napětích  individuálně lze vyřadit každý kanál  vícenásobné spouštění hardwarové nebo softwarové spouštění

155 externí spouštěcí vývod čítač/časovač 0 až 2 výstupy TIOA0 TIOA2  klidový režim a řadič převodu – automatické probuzení klopného obvodu a uvedení zpět do spánkového režimu po provedení konverze ve všech povolených kanálech  čtyři z osmi analogových vstupů jsou společné i pro číslicové signály


Stáhnout ppt "Procesory ARM. Úvod Jedná se o 32bitovou mikroprocesorovou architekturu s RISCovým jádrem. Byla vyvinuta firmou ARM Limited. Díky svým přednostem jako."

Podobné prezentace


Reklamy Google