AVR микроконтролери (Atmel) — RISC архитектура и характеристики

AVR микроконтролери (Atmel) — RISC архитектура с вградена флаш памет, 32 регистъра и 12x по-висока производителност на такт. Технически характеристики и приложения.

Автор: Leandro Alegsa

Архитектурата на микроконтролера AVR е разработена от Atmel през 1996 г. Тя е базирана на харвардската архитектура на микроконтролера. AVR е една от първите фамилии микроконтролери, които използват вградена в чипа флаш памет за съхранение на програми, за разлика от еднократно програмируемите ROM, EPROM или EEPROM, използвани от други микроконтролери по това време. Вградената флаш памет позволява лесно презаписване на програмния код (in-system programming) и поддръжка на bootloader-и.

Името AVR често се обяснява като съкращение от Alf (Egil Bogen) и Vegard (Wollan)'s RISC processor — това отразява участието на двамата разработчици в създаването на архитектурата. AVR е RISC архитектура, проектирана за ефективно и бързо изпълнение на инструкции с минимален набор от тактови цикли.

Тази архитектура замества по-старата архитектура MCS-51 (8051). При MCS-51 един машинен цикъл често отнема 12 тактови цикъла и много инструкции изискват този цикъл, което прави изпълнението по-бавно при една и съща тактова честота. Микроконтролерите AVR (MCU) могат да изпълняват повечето инструкции в един машинен цикъл, а един машинен цикъл обикновено отнема само един тактов период — поради това производителността на AVR при една и съща тактова честота е значително по-висока в сравнение с класическите 8051-базирани решения.

Ядрото на повечето 8‑битови AVR устройства разполага с 32 регистъра с общо предназначение (R0–R31), които са директно свързани с ALU. Това позволява достъп до два независими регистъра и изпълнение на инструкция, използваща и двата, в рамките на един машинен цикъл. Регистровият файл може да се използва и като 16‑битови регистрови двойки за операции върху по-големи данни. Стекът се намира в данновата памет (SRAM), а програмната памет е отделна (харвардска архитектура), което позволява паралелно извличане на инструкции и достъп до данни.

Основни характеристики

  • RISC дизайн с кратък и оптимизиран набор от инструкции.
  • 32 общопредназначени 8‑битови регистъра (в стандартните 8‑битови AVR устройства).
  • Повечето инструкции се изпълняват за един такт; някои операции (например достъп до външна памет, CALL/RET, някои клонове) изискват повече тактове.
  • Вградена флаш памет за програми, отделна SRAM за данни и EEPROM за трайно съхранение на потребителски параметри (при много модели).
  • Хардуерни периферии: таймери/контролери, ADC, DAC (в определени серии), компаратори, PWM, серийни интерфейси (USART, SPI, I2C/TWI) и др.
  • Ниски енергийни режими и възможности за управление на консумацията.

Семейства и варианти

  • ATtiny — малки и икономични устройства с ограничен брой пинове и периферия, подходящи за прости задачи.
  • ATmega — най-популярното семейство (например ATmega328P в платформата Arduino), предлага повече флаш памет, SRAM и периферни възможности.
  • ATxmega — по‑модерни 8/16‑битови устройства с разширени периферии (DMA, повече ADC канали, по-висока тактова честота и др.).
  • AVR32 — 32‑битова RISC архитектура, разработена от Atmel (различна от класическите 8‑битови AVR и несъвместима на бинарно ниво с тях).

Памет и програмиране

Флаш паметта съхранява програмния код и обикновено поддържа in-system programming (ISP). Много AVR микроконтролери имат вграден EEPROM за дълготрайни настройки и SRAM за временни данни. За програмиране и отстраняване на грешки често се използват интерфейси като SPI (ISP), JTAG, debugWIRE и UPDI (при по-новите устройства).

Периферия и приложения

AVR устройствата се използват широко в вградени системи, електроника за домашна автоматизация, промишлени контролери, портативни уреди и учебни платформи (Arduino). Общите периферни модули включват:

  • Аналогово-цифрови преобразуватели (ADC) за четене на сензорни стойности.
  • Таймери/контролери за създаване на точни времеви интервали и PWM за управление на мотори и осветление.
  • UART/USART, SPI и I2C/TWI за комуникация с други микроконтролери и периферни устройства.
  • Вграден контрол на захранването и нискоенергийни режими за батерийно захранвани приложения.

Разработка и инструменти

За разработка се използват добре поддържани инструменти като AVR-GCC (отворен компилатор), Atmel/Microchip Studio (интегрирана среда за разработка), avrdude (за флашване) и различни хардуерни програматори/отладчици. Поради популярността на платформата Arduino има огромно количество библиотеки и примери, които улесняват бързото прототипиране.

Сравнение и производителност

Сравнено със стари 8‑битови архитектури (напр. MCS‑51), AVR предлага значително по-добра производителност при една и съща тактова честота поради индивидуално изпълнение на голяма част от инструкциите за един тактов цикъл и по-ефективно използване на регистровия файл. В практиката това води до по-ниска нужда от висока тактова честота за същото изпълнение на задача, по-малко консумация на енергия и по-прости времеви критични реализации.

В заключение, AVR микроконтролерите представляват балансирано решение между производителност, енергопотребление и леснота на разработка. Благодарение на простотата на архитектурата и богатия набор от периферия, те остават популярни в образованието и в многобройни реални приложения.

Atmel AVR ATmega8 в 28-изводен DIP.Zoom
Atmel AVR ATmega8 в 28-изводен DIP.

Основни семейства

tinyAVR

  • 0,5-8 kB програмна памет
  • до 0,5 kB SRAM
  • до 0,5 kB EEPROM
  • до 20 MHz
  • Пакет с 6-32 щифта


megaAVR

  • 4-256 kB програмна памет
  • 0,5-16kB SRAM
  • 0,5-4 kB EEPROM
  • до 20 MHz
  • Пакет с 20-100 извода


XMEGA

  • 16-384kB програмна памет
  • 2-32 kB SRAM
  • външен интерфейс на шината за до 16M байта SRAM на SDRAM
  • 1-4 kB EEPROM
  • до 32 MHz
  • 44-100 пинов пакет

 

Функции

Всеки AVR има някои входни/изходни портове. Портът има до 8 физически извода на опаковката си. Всеки щифт може да бъде конфигуриран като вход или изход. Ако даден извод се използва за вход, той може да включи вградените издърпващи резистори чрез регистъра PORTx. Ако даден извод е конфигуриран като изходен, той може да поеме до 40 mA товар на извод и максимум 100 mA за всички изводи на порта.

A/D преобразувател

  • 10-битов (tinyAVR, megaAVR) с мултиплекс до 8 канала
  • 12-битов (XMEGA) с мултиплекс до 16 канала

Таймери/броячи (8-битови или 16-битови)

  • Потребителите могат да го конфигурират като ШИМ, брояч или таймер.
  • В режим на обикновена ШИМ броещият регистър работи без спиране и се сравнява с друг регистър. Ако регистърът за броене е по-висок от втория регистър, щифтът Ocx се настройва на "1". В друг случай изводът Ocx се настройва на "0".
  • Броячът има някакъв външен източник, например фотосензор, и може да преброи броя на хората, които са преминали през фотосензора.
  • Таймерът дава импулси в точно определено време. Той се използва за програмиране на часовникови приложения.

TWI - Two Wire Interface Използва същия протокол като 2IC и може да се използва като 2IC интерфейс.

UART/USART UART може да се използва за комуникация RS232/RS485.

SPI - Сериен периферен интерфейс

  • много бърза серийна шина, която се използва за трансфер на данни при комуникация с устройства.
  • можете да записвате/чете програма във/от програмната памет или EEPROM чрез тази шина

USI - Универсален сериен интерфейс

  • използва се за дву- или трипроводен синхронен трансфер на данни

JTAG

  • интерфейс за онлайн отстраняване на грешки

D/A преобразувател

  • 12-битов (само XMEGA) с мултиплекс до 2 канала

Свързани страници

  • Arduino

Въпроси и отговори

В: Кога е разработена архитектурата на микроконтролера AVR?


О: Архитектурата на микроконтролера AVR е разработена през 1996 г. от Atmel.

В: На каква архитектура е базиран микроконтролерът AVR?


О: Микроконтролерът AVR е базиран на харвардската архитектура на микроконтролера.

В: Какво отличава микроконтролера AVR от другите микроконтролери по време на разработването му?


О: Микроконтролерът AVR използва вградена в чипа флаш памет за съхранение на програми, за разлика от еднократно програмируемите ROM, EPROM или EEPROM, използвани от другите микроконтролери по това време.

В: Какво е общоприетото значение на съкращението AVR?


О: Много хора смятат, че AVR е съкращение от Alf (Egil Bogen) и Vegard (Wollan)'s Risc processor.

В: Каква архитектура замени микроконтролерът AVR?


О: Микроконтролерът AVR замени по-старата архитектура MCS-51.

В: Колко такта отнема един машинен цикъл на MCS-51?


О.: Един машинен цикъл на MCS-51 отнема 12 тактови цикъла.

В: Какво е предимството на микроконтролерите AVR пред MCS-51 по отношение на производителността за един тактов цикъл?


О: Производителността на един тактов цикъл е 12 пъти по-висока при микроконтролерите AVR.


обискирам
AlegsaOnline.com - 2020 / 2025 - License CC3