• Начало
  • Новини
  • Архитектура на AVR микроконтролерите – регистри, памет и изпълнение на код
Продукти

Архитектура на AVR микроконтролерите – регистри, памет и изпълнение на код

Архитектура на AVR микроконтролерите – регистри, памет и изпълнение на код
8 януари 2026

1. Въведение

AVR микроконтролерите са широко използвани в embedded системи, Arduino платформи, индустриални проекти и хоби електроника. Те са популярни заради:

  • Ниска консумация на енергия;

  • Висока производителност;

  • Лесно програмиране;

  • Богат набор от периферия.

В тази статия ще разгледаме подробно:

  • Вътрешната архитектура;

  • Регистровия модел;

  • Типовете памет;

  • Как се изпълнява програмният код.

 

 

 

 

 

2. Обща архитектура на AVR

AVR използва Harvard архитектура, което означава:

  • Отделна памет за програмата;

  • Отделна памет за данните.

Основни блокове:

  • CPU (централен процесор);

  • Flash памет (програма);

  • SRAM (данни);

  • EEPROM;

  • I/O регистри;

  • Таймери;

  • ADC;

  • UART / SPI / I2C.

 

 

3. CPU ядро

CPU ядрото включва:

  • ALU (аритметично-логическо устройство);

  • Регистри;

  • Program Counter;

  • Status Register.

Основни функции:

  • Изпълнява инструкции;

  • Обработва прекъсвания;

  • Управлява паметта.

 

 

4. Регистров модел

AVR има 32 универсални регистъра:

R0 до R31

 

Предимства:

  • Всички са директно достъпни;

  • Инструкциите работят директно с регистрите;

  • Много бързо изпълнение.

 

Специални регистри:

 

Регистър Функция
R26-R31 X, Y, Z указатели
SREG Статус регистър
SP Stack Pointer
PC Program Counter

 

 

5. Статус регистър (SREG)

SREG съдържа флагове:

 

Бит Име Описание
7 I Глобално разрешение за прекъсвания
6 T Copy бит
5 H Half carry
4 S Знаков флаг
3 V Overflow
2 N Negative
1 Z Zero
0 C Carry

 

 

6. Паметна организация

6.1 Flash памет

  • Съдържа програмния код;

  • Непроменлива при рестарт;

  • Изпълнение директно от Flash.

6.2 SRAM

  • Променливи;

  • Стек;

  • Буфери.

6.3 EEPROM

  • Постоянни данни;

  • Настройки;

  • Запазване при спиране на захранването.

 

 

7. Адресно пространство

AVR има:

  • Program space

  • Data space

  • I/O space

 

Flash -> инструкции
SRAM -> променливи
I/O -> периферия

 

8. Стек (Stack)

  • Използва SRAM;

  • Управлява се от SP;

  • Използва се при:

    • функции;

    • прекъсвания;

    • локални променливи.

 

 

9. Изпълнение на код

9.1 Fetch – Decode – Execute

  1. CPU взима инструкция от Flash;

  2. Декодира инструкцията;

  3. Изпълнява операцията.

 

 

10. Прекъсвания

AVR поддържа:

  • Външни прекъсвания;

  • Таймерни;

  • ADC;

  • UART.

Процес:

  1. Запазва контекста;

  2. Скача към ISR;

  3. Изпълнява функция;

  4. Връща се обратно.

 

 

11. Тактов сигнал

  • Вътрешен RC осцилатор;

  • Външен кварц;

  • PLL

Честота влияе на:

  • Скорост;

  • Консумация;

  • Тайминги.

 

 

12. Инструкционен набор

AVR е RISC архитектура:

  • Повечето инструкции = 1 такт;

  • Фиксирана дължина;

  • Оптимизиран код.

 

 

13. Примерен код

 

 

#include <avr/io.h>
 
int main(void)
{
    DDRB |= (1<<PB5);   // Настройваме PB5 като изход
 
    while(1)
    {
        PORTB ^= (1<<PB5); // Превключваме състоянието
        for(uint32_t i=0;i<500000;i++); // Забавяне
    }
}

 

 

Какво се случва:

  • Кодът е във Flash

  • Променливите са в SRAM

  • Регистри управляват PORTB

 

 

14. Заключение

AVR архитектурата е:

  • Лесна за разбиране;

  • Оптимизирана за embedded;

  • Перфектна за обучение.

Разбирането на:

  • Регистри;

  • Памет;

  • Изпълнение на код.

дава огромно предимство при оптимизация и дебъг.