AVR (Atmel) mikrokontroller-architektúra: definíció és fő jellemzők

AVR (Atmel) mikrokontroller-architektúra: gyors RISC dizájn, beépített flash memória, 32 regiszter, kiemelkedő órajelhatékonyság — modern alternatíva az MCS-51 helyett.

Szerző: Leandro Alegsa

Az AVR mikrokontroller-architektúrát az Atmel (ma a Microchip része) fejlesztette ki a 1990-es évek közepén, és 1996 körül kezdett szélesebb körben elterjedni. Harvard-architektúrán alapul, azaz a program- és az adatmemória külön buszon és címterületen helyezkedik el, ami lehetővé teszi az egyidejű utasítás-olvasást és adatműveleteket. Az AVR volt az egyik első olyan mikrokontroller-család, amely a program tárolására chipen belüli flashmemóriát használta, szemben az akkoriban elterjedt egyszer programozható ROM, EPROM vagy EEPROM memóriával.

Sokszor olvasható, hogy az "AVR" a fejlesztők — Alf-Egil Bogen és Vegard Wollan — nevéből és a RISC elvből ered (Alf and Vegard's RISC). Ezt az elnevezést maga az Atmel is többször megemlítette; a lényeg, hogy az AVR egy egyszerű, hatékony RISC-szerű megközelítést valósít meg a beágyazott alkalmazásokhoz.

Fő jellemzők és előnyök

  • Egységes, nagy regiszterkészlet: a mag 32 darab 8 bites általános célú regisztert (R0–R31) tartalmaz, amelyek közvetlenül csatlakoznak az ALU-hoz. Ez gyors, regiszter alapú műveleteket tesz lehetővé.
  • Egyszeres órajel/utasítás teljesítmény: a legtöbb AVR-utasítás egyetlen órajel alatt végrehajtható, így az AVR közelítőleg 1 MIPS/MHz teljesítményt ad (azaz 1 MHz órajelen kb. 1 MIPS). Vannak természetesen kivételek (pl. memóriából betöltött utasítások, 16 bites műveletek, kisebb utasítások több ciklust igényelhetnek).
  • Kétállású (fetch/execute) pipeline: az AVR pipelinelése lehetővé teszi, hogy az egyik órajelben történjen az utasítás lekérése, míg a következőben a végrehajtás, így növelve a hatékonyságot.
  • Harvard-architektúra: külön program- és adatmemória, gyorsabb utasításvégrehajtás és egyszerűbb buszmenedzsment.
  • Beépített nemfelejtő memória: program memória (Flash), adat-EERPOM (kis kapacitású, tartós adat tárolására) és SRAM az adatok futásidejű kezelésére.

Regiszterek és címtartományok

Az AVR 32 regisztere rugalmasan használható: bizonyos regiszterpárok (pl. R26–R31) 16 bites cím- és adatmutatóként is szolgálnak (X, Y, Z regiszterpárok), ami megkönnyíti a pointerekkel végzett műveleteket. A programszámláló (PC), a veremmutató (SP) és a státuszregiszter (SREG) szintén a mag fontos elemei.

Memória és perifériák

  • Flash (program memória): a programok tárolására, in-circuit programozhatók és többször újraprogramozhatók.
  • SRAM: futásidejű változók tárolása.
  • EEPROM: tartós adatok tárolására (pl. konfigurációk), programból is írható/olvasható.
  • Perifériák (esetenként család- és típusspecifikus): timers/counters, ADC (analóg-digitális átalakító), UART/USART, SPI, I2C/TWI, Watchdog timer, külső és belső megszakítások, analóg komparátor, DMA (XMEGA-ban), és más speciális funkciók.
  • Programozás és hibakeresés: ISP (in-system programming), JTAG (egyes típusoknál), debugWIRE és támogatás az Atmel/Microchip fejlesztői eszközeivel.

AVR családok és tipikus felhasználás

  • tinyAVR: kis csomagok, kevés I/O, alacsony fogyasztás — egyszerű alkalmazásokhoz.
  • megaAVR: középkategóriás, sok I/O és periféria — a legismertebb család (például az ATmega328, amely az Arduino Uno alapja).
  • XMEGA: fejlettebb funkciók, nagyobb sebesség és periféria-tartalom, gyakran ipari alkalmazásokhoz.

Eszközök és fejlesztői környezet

Népszerű fejlesztőeszközök: az open-source avr-gcc toolchain (fordító, bináris eszközök), avrdude programozó eszköz, valamint az Atmel/Microchip által kínált Microchip Studio (korábban Atmel Studio). Az Arduino platform nagyban hozzájárult az AVR-ek széles körű elterjedéséhez a hobbi- és oktatói közösségben.

Összegzés

Az AVR architektúra egyszerű, hatékony és könnyen használható megoldást nyújt beágyazott rendszerekhez: gyors regiszteralapú utasításvégrehajtás, beépített flash és perifériák, valamint széles választék különböző teljesítmény- és I/O igényekhez. Éppen ezért az AVR-ek népszerűek mind az ipari, mind a hobbi projektekben.

Atmel AVR ATmega8, 28 tűs DIP.Zoom
Atmel AVR ATmega8, 28 tűs DIP.

Alapvető családok

tinyAVR

  • 0,5-8 kB program memória
  • legfeljebb 0,5 kB SRAM
  • legfeljebb 0,5 kB EEPROM
  • 20 MHz-ig
  • 6-32 tűs csomagolás


megaAVR

  • 4-256 kB program memória
  • 0,5-16kB SRAM
  • 0,5-4 kB EEPROM
  • 20 MHz-ig
  • 20-100 tűs csomagolás


XMEGA

  • 16-384kB program memória
  • 2-32 kB SRAM
  • külső buszinterfész akár 16M byte SRAM SDRAM számára
  • 1-4 kB EEPROM
  • 32 MHz-ig
  • 44-100 tűs csomagolás

 

Jellemzők

Minden AVR rendelkezik néhány bemeneti/kimeneti porttal. A port legfeljebb 8 fizikai érintkezővel rendelkezik a csomagolásán. Minden pin bemenetként vagy kimenetként konfigurálható. Ha egy pin bemenetként van használva, akkor a PORTx regiszteren keresztül bekapcsolhatja a beépített pull-up ellenállásokat. Ha egy pin kimenetként van konfigurálva, akkor a porton lévő összes pin legfeljebb 40mA terhelést képes kezelni pinenként és maximum 100mA terhelést a port összes pinjére.

A/D átalakító

  • 10 bites (tinyAVR, megaAVR), akár 8 csatornás multiplexeléssel
  • 12 bites (XMEGA) 16 csatornás multiplexeléssel

Időzítők/számlálók (8 vagy 16 bites)

  • A felhasználók konfigurálhatják PWM, számláló vagy időzítő.
  • Egyszerű PWM üzemmódban a számláló regiszter megállás nélkül fut, és egy másik regiszterhez hasonlít. Ha a számláló regiszter magasabb, mint a második regiszter, akkor az Ocx pin "1"-re áll. Máskor az Ocx pin "0"-ra van állítva.
  • A számlálónak van valamilyen külső forrása, például fotóérzékelője, és meg tudja számolni a fotóérzékelőn áthaladó emberek számát.
  • Az időzítő pontos időben adja az impulzusokat. Óraprogramozási alkalmazásokhoz használják.

TWI - Kétvezetékes interfész Ez ugyanazt a protokollt használja, mint az 2IC, és használható 2IC interfészként.

UART/USART Az UART használható RS232/RS485 kommunikációra.

SPI - soros perifériás interfész

  • nagyon gyors soros busz, amelyet az eszközökkel való kommunikáció adatátvitelére használnak.
  • ezen a buszon keresztül lehet programot írni/olvasni a programmemóriába vagy EEPROM-ba/ból

USI - Univerzális soros interfész

  • két- vagy háromvezetékes szinkron adatátvitelhez használatos

JTAG

  • interfész az online hibakereséshez

D/A átalakító

  • 12 bites (csak XMEGA), akár 2 csatornás multiplexeléssel

Kapcsolódó oldalak

  • Arduino

Kérdések és válaszok

K: Mikor fejlesztették ki az AVR mikrokontroller architektúrát?


V: Az AVR mikrokontroller architektúrát 1996-ban fejlesztette ki az Atmel.

K: Milyen architektúrán alapul az AVR mikrokontroller?


V: Az AVR mikrokontroller a Harvard mikrokontroller-architektúrán alapul.

K: Mi különbözteti meg az AVR mikrokontrollert a fejlesztés idején a többi mikrokontrollertől?


V: Az AVR mikrokontroller a program tárolására chipen belüli flashmemóriát használ, szemben a többi akkori mikrokontroller által használt egyszer programozható ROM, EPROM vagy EEPROM memóriával.

K: Mi az AVR rövidítés általánosan elfogadott jelentése?


V: Sokan úgy vélik, hogy az AVR az Alf (Egil Bogen) és Vegard (Wollan) Risc processzorának rövidítése.

K: Milyen architektúrát váltott fel az AVR mikrokontroller?


V: Az AVR mikrokontroller a régebbi MCS-51 architektúrát váltotta fel.

K: Hány órajelciklust vesz igénybe az MCS-51 egy gépi ciklusa?


V: Az MCS-51 egy gépi ciklusa 12 órajelciklust vesz igénybe.

K: Mi az AVR mikrokontrollerek előnye az MCS-51-gyel szemben az egy órajelciklusra jutó teljesítmény tekintetében?


V: Az AVR mikrokontrollereknél az egy órajelciklusra jutó teljesítmény 12-szer nagyobb.


Keres
AlegsaOnline.com - 2020 / 2025 - License CC3