Semestrální práce 31SCS | Architektura ARM a uC Atmel AT91SAM7X
Úvodem

AT91SAM (tj. AT91 Smart ARM-based Microcontrollers) od společnosti Atmel je 32bitová řada RISC mikroprocesorů zalořená na architektuře ARM. Procesory obsahují paměti Flash a SRAM, množství periferií a také některá strandardní komunikační rozhraní. Dají se tedy označit termínem SoC (system-on-a-chip).

Externí rozhraní zahrnují USB a CAN sběrnice, Ethernet, SPI, USART, ADC. Řadič DMA umožňuje přímou komunikaci mezi externími rozhraními a pamětí. Tím se zvýší datová propustnost s minimálnímí nároky na samotný procesor.

Vnitřní periferie mikrokontrolérů jsou čítače a časovače, obvody Power-on-Reset, napájecí obvody a vylepšené řadiče přerušení. To zlepšuje výkon procesoru v reálném čase. Obvody řízení napájení udržují proudovou spotřebu obvodu na miminu tím, že se vypínají nepoužívané periferie a rozhraní, příp. může být procesor uveden do standby módu.

ARM
ARM je původně název společnosti Acorn RISC Machines, která vyvinula cca v roce 1987 první RISC procesor s názvem ARM - údajně původně pro levný desktopový počítač. Později se po úspěchu procesorů ARM1 až ARM3 odělila divize procesorů ARM jako firma Advanced RISC Machines (Acorn vyvíjel i OS - RISC OS). Jak plyne z názvu společnosti zaměřovala se na procesory s architekturou RISC (Reduced Instruction Set Computing). Od doby odštěpení opustilo dílny ARM několik řad procesorů od ARM6 až po ARM11.

Výhoda ARMu spočívá především v jeho RISCové instrukční sadě - instrukce jsou vykonávány přímo hardwarem, nikoli mikrokódem. To že procesor obsahuje menší počet hardwarových instrukcí dělá jeho návrh do jisté míry jednodušší, samotný procesor je menší a tedy má menší spotřebu. Jednodušší instrukční soubor umožňuje také snadnější vytvoření kompilátoru. Díky některým vlastostem ARM je omezen i problém předpovídání skoků, který je tak ožehavý ve světě CISC. Za výhody RISCových procesorů se považuje i větší počet univerzálně použitelných registrů. ARM má navíc některé vymoženosti jako jsou podmíněné instrukce.

ARM architektura je založená na redukovaném instrukčním souboru (RISC) mající vysokou instrukční výkonnost a rychlou reálnou odezvu na přerušení. Nelze také opomenout 16bitovou Thumb podmnožinu která ušetří 35-40% paměti ve srovnání s 32bitovým instrukčním souborem aniž by se významně snížil výkon.

ARM7 – specifikace jádra
  • 32bitový RISC procesor (redukovaná instrukční sada)
  • 0,18 mm technologie
  • napájení 1,8 V
  • příkon < 0,4 mW
  • pracovní frekvence 60-110 Mhz
  • architektura typu von Neumann (data i program v jednom adresovém prostoru)
  • 3 stavové zpracování instrukcí (pipeline)
ARM7 – z hlediska programování
  • 37 celočíselných 32bitových registrů
  • 8, 16, 32bitové datové typy
  • 7 pracovních režimů:
    • usr – normální programový režim
    • fiq – režim datového přenosu (rychlá obsluha IRQ, přenos dat prostřednictvím DMA)
    • irq – režim pro základní přerušovací služby
    • svc – chráněný režim pro operační systém
    • abt – režim pro případ, kdy data nebo prováděná instrukce se nepodaří správně vykonat
    • sys – privileg režim pro uživatelskou aplikaci
    • und – režim pro případ vykonání nedefinované (neznámé) instrukce
ARM jádro

ARM7 – popis registrů
  • struktura registrů závisí na pracovním režimu
  • R0-R12 univerzální 32bitové registry
  • R13 (SP) ukazatel do zásobníku adres
  • R14 (LR) registr pro uložení obsahu registru R15 při vykonání instrukce typu BL
  • R15 (PC) programový čítač
  • R16 (CPSR) stavový registr
ARM stavový registr

ARM7 – instrukční sada
  • 15 typů instrukcí pro větvení programu (B, BL, BLX, BX, ...)
  • 16 typů instrukcí pro aritmetické a logické operace (AND, ADD, SUB, MUL, ...)
  • 10 typů instrukcí pro přesun dat (MOV, LDR, STR, SWP, ...)
  • SWI instrukce pro softwarové přerušení

ARM Thumb – specifikace
  • instrukční sada je 16bitová, o 35-40 % méně programové paměti
  • redukované instrukce nemají vliv na snížení výkonu
  • registry zůstávají 32bitové, ale používá se jen jejich polovina
  • redukované instrukce se dekódují během standardního dekódovacího cyklu
  • významně zjednodušuje návrh procesorového systému
pipeline

Atmel AT91SAM7X

Architektura těchto procesorů na bázi ARM7 se vyznačuje, kromě předchozího, následujícími rysy:
  • Vylepšená architektura ARM.
  • Deterministické chování – předvídatelná odezva na události v reálném čase, předem známý počet hodinových taktů.
  • Podpora DMA – zrychlení komunikace mezi periferiemi a pamětí.
  • Vylepšené řízení a obsluha přerušení, zlepšená funkce v reálném čase.
  • Bitové operace set/reset jedinou instrukcí zjednodušují kód.
  • Paměť Flash pro ukládání kódu a dat.
  • Rozličná komunikační rozhraní – USB, Ethernet, SPI, USART, atd.
  • Prostředky pro zvýšení bezpečnosti – zrychlené výpočty kryptovacích algoritmů AES/TDES, zamykání paměti, atd.
  • Kompatibilita kódu pro všechny procesory.
  • Levné vývojové prostředky.
AT91SAM7X

Hlavní znaky:
  • ARM7TDMI ARM Thumb Processor
  • Interní rychlá Flash paměť
    • 512 kB (AT91SAM7X512)
    • 256 kB (AT91SAM7X256)
    • 128 kB (AT91SAM7X128)
  • Interní rychlá SRAM paměť, přístup v jednom cyklu
    • 128 Kbytes (AT91SAM7X512)
    • 64 Kbytes (AT91SAM7X256)
    • 32 Kbytes (AT91SAM7X128)
  • Memory Controller (MC), Reset Controller (RSTC), Clock Generator (CKGR), Power Management Controller (PMC), Slow Clock Mode (Down to 500 Hz) and Idle Mode, Advanced Interrupt Controller (AIC)
  • Periodic Interval Timer (PIT), 20bitový programovatelný čítač, 12bitový intervalový čítač
  • Real-time Timer (RTT), Windowed Watchdog (WDT)
  • Two Parallel Input/Output Controllers (PIO)
  • Thirteen Peripheral DMA Controller (PDC) Channels
  • One USB 2.0 Full Speed (12 Mbits per second) Device Port
  • One Ethernet MAC 10/100 base-T
  • One Part 2.0A and Part 2.0B Compliant CAN Controller
  • Two Universal Synchronous/Asynchronous Receiver Transmitters (USART)
    • Individual Baud Rate Generator, IrDA Infrared Modulation/Demodulation
    • Support for ISO7816 T0/T1 Smart Card, Hardware Handshaking, RS485 Support
  • One Four-channel 16-bit Power Width Modulation Controller (PWMC)
  • One Two-wire Interface (TWI)
  • One 8-channel 10-bit Analog-to-Digital Converter, Four Channels Multiplexed with Digital I/Os
  • Fully Static Operation: Up to 55 MHz at 1.65 V
  • 100-lead LQFP and 100-ball TFBGA Packages
Periferie AT91SAM7X

Závěr

Architektura ARM hraje důležitou roli na poli mikroprocesorů, jsou již vyvinuty i pokročilejší verze (ARM7-ARM11). Architekturu ARM7 používají i procesory Atmel AT91SAM7X. Ty jsou vybaveny velkým množstvím periferií a komunikačních rozhraní USB, Ethernet, CAN, možností připojení paměťových karet, atd. Spojením ARM a těchto periferií vzniká velice výkonný komplexní procesor, který je možné využít v mnoha zařízeních např. spotřební elektroniky, v automobilech, řídicí a měřicí technice.

Literatura

Valid HTML 4.0 Transitional

Michal Šesták, LS 2006/2007