ФУНКЦИОНАЛЬНЫЕ БЛОКИ МИКРОКОНТРОЛЛЕРА: ОРГАНИЗАЦИЯ ПРОЦЕССОРА И ПАМЯТИ Лектор: к.т.н., доцент У.Р.Хамдамов E-mail: utkir.hamdamov@mail.ru Источник • https://www.renesas.com/en-us/support/technical- resources/engineer-school/mcu-01-basic-structureoperation.html • http://studopedia.ru/2_99065_vvedenie.html • https://myrobot.ru/stepbystep/mc_architecture.php Микроконтроллеры AVR Семейства МК AVR Архитектура микроконтроллера Функциональные блоки МК • CPU: Central Processing Unit - микропроцессор • ROM: Read Only Memory (Firmware) - постоянный память • RAM: Random Access Memory - оперативный память • PIO: Parallel I/O (relays, sensors) – параллельные порты • SIO: Serial I/O (RS232, RS485) – последовательный порт • INT: Interrupt Inputs – порты прерывания • UART: Universal Asynchronous Receiver Transmitter – асинхронный порт • GPT: General Purpose Timer – таймер общего назначения • WDT: Watch Dog Timer (automatic reset) – сторожевой таймер • PWM: Pulse Width Modulator (motor controller) - модулятор • AIO: Analog I/O (ADC & DAC) – аналоговый порт Процессор микроконтроллеров AVR • ЦПУ – центральное процессорное устройство • 8-битное микропроцессорное ядро • RISC-архитектура. • Арифметико-логическое устройство (АЛУ). • Счетчика команд (Program Counter - PC). • Быстродействия 1 MIPS на 1 МГц. Регистры общего назначения РОН (GPR) - всего 32 • РОН находятся в начале адресного пространства ОЗУ. • Поэтому к ним можно обращаться двумя способами (как к регистрам и как к памяти). Основная структура МК • МК включает в себя процессор (CPU), некоторую память и некоторые схемы, которые реализуют периферийные функции. • Типичная команда может указывать процессору «читать данные с адреса XXX в памяти» или «записывать данные в адрес памяти YYY» или «сложить» или «умножать» два значения Назначение процессора (CPU) • Счетчик команд (СК) • Счетчик команд является внутренним регистром, который хранит адрес памяти следующей команды для выполнения в ЦП • Дешифратор команд • Дешифратор команд декодирует каждую команду, считанную из памяти, и использует результаты для управления АЛУ и рабочей схемой МК • АЛУ • Эта схема выполняет арифметические и логические операции • Внутренние регистры • Эти регистры хранят временную информацию. Регистры общего назначения содержат результаты арифметических и логических операций Арифметико логическое устройство • АЛУ – сердце (а может быть и ум) микроконтроллера. Операции процессора (CPU) Адрес Команда 0000 Получить значение из адреса памяти 0100 и записать его в регистр 1. Регистр 1: 0 → 3 СК: 0000 → 0001 0001 Получить значение из адреса памяти 0101 и записать его в регистр 2. Регистр 2: 0 → 4 СК: 0001 → 0002 0002 Сложить значение Регистра 2 в значение Регистра 1, и схранить результат в Регистр 1 Регистр 1: 3 → 7 СК: 0002 → 0003 ~ Адрес Данные 0100 3 0101 4 Шаги Почему используем МК? • Эта схема состоит из трех компонентов: светодиода, переключателя и резистора. • Цепь светодиодных ламп без МК • Цепь светодиодных ламп с МК Память МК: «Хранилища» • Память МК используется для хранения команды и данных. Существует два основных типа памяти: ROM - ПЗУ и RAM - ОЗУ. • ROM (ПЗУ) • Память сохраняет свое содержание, даже когда питание выключено. Память предназначена только для чтения; его нельзя стереть или перезаписать. • RAM (ОЗУ) • Эта память может быть свободно переписана. Его недостатком является то, что он теряет свое содержание, когда питание отключается. S R Qn+1 Режим 0 0 Qn хранение 1 0 1 запись «1» 0 1 0 запись «0» 1 1 - не допускается Размер данных Организация памяти Адрес строки А0-А7 8-256 Дешифр атор строк 256 256х256 Массив ячеек 256 Адрес столбцы А8-А15 R/W CS 256-1 MUX 1-256 DEMUX Память Микроконтроллера AVR • Память программ (Flash ROM или Flash ПЗУ) • Гарвардская архитектура (память программ и память данных). • 16-ти битную организацию • Размер - от 1 до 256 Кбайт • Принцип электрической перепрограммируемости • Многократное стирание и запись информации • Программа заносится с помощью обычного программатора, так и с помощью SPI-интерфейса Память Микроконтроллера AVR • Память программ • Вид измерения объема памяти – “слово” и “страница“. • Ячеек памяти состоит из двух байт. Такая ячейка называется “словом”. (почти все команды МК состоят из двух байт) • Каждая команда МК – это одно “слово”. • В одну ячейку памяти программ можно записать: – любую команду, состоящую из двух байт – половину команды, состоящей из 4 байт – две константы, каждая из которых умещается в один байт Память Микроконтроллера AVR • Память программ • Запись в память программ осуществляется не только “словами”, но еще и “страницами”. • Размер “страницы” составляет от 64 до 256 байт. • Если вы создали маленькую программку, объем которой составляет 11 слов (22 байта), в памяти программ она все равно займет место в одну страницу, т.е. как минимум 64 байта. “Лишние” 42 байта при этом будут заполнены или нулями, или единицами. Память Микроконтроллера AVR • Память программ может иметь три состояния Память Микроконтроллера AVR • Память данных • Регистровая память • Регистровая память включает 32 регистра общего назначения (РОН или GPR), расположены в адресном пространстве ОЗУ, но не являются его частью • Оперативная память (ОЗУ или RAM) • Статическая память Static RAM (SRAM) имеет байтовый формат и используется для оперативного хранения данных. • размер от 64 Байт до 4 КБайт. • Энергонезависимая память (EEPROM) • EEPROM от 64 Байт до 4 КБайт. Память Микроконтроллера AVR • Память данных Представление памяти AVR Использование памяти Использование памяти • Процессор микроконтроллера считывает программный код из памяти, по одной команды за раз, дешифрует каждую команду и затем выполняет ее. • Все содержимое памяти - как программный код, так и данные - находится в двоичной форме: строки из 1 и 0 Использование памяти Спасибо за внимание !