Структурная схема AVR микроконтроллера
Посмотрим на рисунок 5 и разберемся из каких блоков состоит микроконтроллер и как они связаны между собою:
Рис. 5. Структурная схема AVR микроконтроллера.
Рассмотрим кратко что изображено на блоках в схеме
· JTAG Interface (Joint Test Action Group Interface) - интерфейс внутрисхемной отладки (4 провода);
· FLASH - перепрограммируемая память для сохранения программы;
· Serial Peripheral Interface, SPI - последовательный периферийный интерфейс (3 провода);
· EEPROM (Electrically Erasable Programmable Read-Only Memory) - перепрограммируемое ПЗУ, энергонезависимая память;
· CPU (ЦПУ) - центральный процессор управления, сердце микроконтроллера, 8-битное микропроцессорное ядро;
· ALU (АЛУ) - арифметико-логическое устройство, основа блока CPU;
· RAM (Random Access Memory) - оперативная память процессора;
· Program Counter - счетчик команд;
· 32 General Purpose Registers - 32 регистра общего назначения;
· Instruction Register - регистр команд, инструкций;
· Instruction Decoder - декодер команд;
· OCD (On-Chip Debugger) - блок внутренней отладки;
· Analog Comparator - аналоговый компаратор, блок сравнения аналоговых сигналов;
· A/D Converter (Analog/Digital converter) - аналогово-цифровой преобразователь;
· LCD Interface (Liquid-Crystal Display Interface) - интерфейс для подключения жидко-кристаллического дисплея, индикатора;
· USART (Universal Asynchronous Receiver-Transmitter), UART - универсальный асинхронный приемопередатчик;
· TWI (Two-Wire serial Interface) - последовательный интерфейс с двухпроводным подключением;
· Watchdog Timer - сторожевой или контрольный таймер;
|
|
· I/O Ports - порты вода/вывода;
· Interrupts - блок управления и реакции на прерывания;
· Timers/Counters - модули таймеров и счетчиков.
Подробнее о внутренних блоках микроконтроллера
А теперь подробно рассмотрим все блоки микроконтроллера, разберемся что и для чего нужно, приведу простые примеры доступным языком.
JTAG Interface - важный интерфейс который позволяет производить внутреннюю отладку прямо в чипе используя блок внутренней отладки (OCD), без использования эмуляторов. Можно сказать что JTAG - это интерфейс для "железной" отладки микроконтроллера. Через JTAG-адаптер микросхема напрямую подключается к программному комплексу для программирования и отладки.
Используя данный интерфейс можно в пошаговом режиме выполнять программу прямо в микроконтроллере, смотреть как изменяется содержимое регистров, как мигают индикаторы и светодиоды что подключены к микроконтроллеру после каждого шага и т.п. Для подключения к JTAG интерфейсу достаточно 4-х проводников: TDI(Test Data In), TDO(Test Data Out), TCK(Test Clock), TMS (Test Mode Select).
JTAG интерфейс доступен далеко не во всех микроконтроллерах AVR, как правило таким вкусным дополнением обладают чипы у которых 40 и более лапок, а объем памяти доступен в размере не менее 16КБ. Для серьезных задач - серьезные материалы и инструменты. )
|
|
FLASH - память программ, энергонезависимое ПЗУ (постоянное запоминающее устройство) что выполнено по технологии FLASH. Здесь хранится программа, которая будет исполняться блоком ALU микроконтроллера. Флешь-память чипа можно многократно перезаписывать, тем самым меняя или дополняя программный код для выполнения. Данный тип памяти может сохранять записанные в нее данные в течение 40 лет, а количество возможных циклов стирания/записи может достигать 10000.
В зависимости от модели микроконтроллера размер FLASH-памяти может достигать 256 KБ.
Serial Peripheral Interface, SPI - последовательный периферийный интерфейс (SPI) который зачастую применяется для обмена данными между несколькими микроконтроллерами со скоростью до нескольких MГц (нескольких миллионов тактов в секунду).
Для обмена данными по SPI интерфейсу между двумя устройствами достаточно 3-х проводников:
1. MOSI (Master Output Slave Input) - Данные от ведущего к ведомому;
2. MISO (Master Input Slave Output) - Данные от ведомого к ведущему;
3. CLK (Clock) — тактовый сигнал.
Устройства с SPI-интерфейсом делятся на два типа: ведущий(Master) и ведомый(Slave). Если к интерфейсу подключено несколько устройств то для обмена данными между ними нужны дополнительные линии связи(проводники) чтобы мастеру можно было выбрать ведомое устройство и сделать запрос к нему.
|
|
Также SPI интерфейс используется для внутрисхемного SPI программирования, по этому интерфейсу к микроконтроллеру подключается программатор.
EEPROM - энергонезависимая память данных в которой данные будут храниться даже при отключении питания микроконтроллера. В данной памяти можно хранить настройки выполнения программы, собранные данные для статистики работы устройства и другую полезную информацию. К примеру, собрав маленькую метеостанцию на микроконтроллере, в EEPROM на каждый день можно сохранять данные о температуре воздуха, давлении, силе ветра, а потом в любой момент считать эти собранные данные и провести статистические исследования.
Для EEPROM выделено отдельное адресное пространство которое отличается от адресного пространства RAM и FLASH. Память EEPROM микроконтроллера - очень ценный ресурс, поскольку ее как правило очень мало - от 0,5 до нескольких килобайт на чип. Количество перезаписей для данного типа памяти составляет порядка 100000 что в 10 раз больше чем ресурс FLASH памяти. ALU - Арифметико-логическое устройство, которое синхронно с тактовым сигналом и опираясь на состояние счетчика команд (Program Counter) выбирает из памяти программ (FLASH) очередную команду и производит ее выполнение.
|
|
Тактовый сигнал для микроконтроллера вырабатывается тактовым генератором, и может быть подан из нескольких доступных источников на выбор:
· внутренний RC-генератор, который можно калибровать на нужную частоту;
· керамический или кварцевый резонатор с конденсаторами (не у всех моделей);
· внешний тактовый сигнал.
Установка источника тактовых импульсов производится при помощи FUSE-битов.
FUSES (с англ.: плавление, пробка, предохранитель) - специальные 4 байта(4*8=32 бит) данных, которые настраивают некоторые глобальные параметры микроконтроллера в процессе прошивки. После прошивки данные биты нельзя изменить через внутреннюю программу что записана в МК.
Данной конфигурацией бит мы указываем микроконтроллеру вот что:
· какой использовать задающий генератор (внешний или внутренний);
· делить частоту генератора на коэффициент или нет;
· использовать ножку сброса (RESET) для сброса или же как дополнительный пин ввода-вывода;
· количество памяти для загрузчика;
· другие настройки зависимо от используемого микроконтроллера.
CPU - это мозг микроконтроллера, который содержит в себе АЛУ, регистры и оперативную память.
К ALU подключен блок из 32-х регистров общего назначения (32 General Purpose Registers - регистровая память), каждый из которых представляет собою 1 байт памяти (8 бит). Адресное пространство регистров общего назначения размещено в начале оперативной памяти (RAM) но не является ее частью. С данными что помещаются в регистры можно производить разнообразные арифметические, логические и битовые операции. Выполнение подобных операций в оперативной памяти не доступно. Для работы с данными из RAM нужно их записать в регистры, произвести в регистрах нужные операции, а потом записать результирующие данные из регистров в память или в другие регистры для выполнения каких-то действий.
ОЗУ - оперативная память. В нее можно записывать данные из регистров, считывать данные в регистры, все операции с данными и расчеты производятся в регистрах. Для разных семейств AVR чипов размер оперативной памяти ограничен:
· ATxmega - до 32 KБ;
· ATmega - 16 Кб;
· ATtiny - 1 Кб.
Analog Comparator - данный блок сравнивает между собою два уровня сигнала и запоминает результат сравнения в определенном регистре, после чего сданный результат можно проанализировать и выполнить необходимые действия. Для примера: можно использовать этот блок как АЦП (Аналогово-Цифровой Преобразователь) и измерять напряжение батареи питания, в случае если если напряжение батареи достигло низкого уровня - произвести некоторые действия, помигать красным светодиодом и т.п. Также данный модуль можно применять для измерения длительности аналоговых сигналов, считывания установленных режимов работы устройства при помощи потенциометра и т.п.
A/D Converter - данный блок преобразовывает аналоговое значение напряжения в цифровое значение, с которым можно работать в программе и на основе которого можно выполнять определенные действия. Как правило диапазон напряжений что подаются на вход АЦП в AVR микроконтроллере находится в пределах 0-5,5 Вольт. Для данного блока очень важно чтобы микроконтроллер питался от стабильного и качественного источника питания. Во многих AVR микроконтроллерах есть специальный отдельный вывод для подачи стабильного питания на схему АЦП.
LCD Interface - интерфейс для подключения жидкокристаллического индикатора или дисплея. Применятся для отображения информации, состояния устройства и его узлов.
USART - последовательный асинхронный интерфейс для обмена данными с другими устройствами. Есть поддержка протокола RS-232, благодаря чему микроконтроллер можно соединить для обмена данными с компьютером.
Для подобной связи МК с COM-портом компьютера нужен конвертер логических уровней напряжения (+12В для COM - в +5В для микроконтроллера), или же просто RS232-TTL. Для подобных целей используют микросхемы MAX232 и им подобные.
Для подключения микроконтроллера к компьютеру через USB используя UART-интерфейс можно использовать специализированную микросхему FT232RL. Таким образом на новых компьютерах и ноутбуках можно не имея физического COM-порта привязать микроконтроллер используя USB-порт через USART интерфейс.
TWI - интерфейс для обмена данными по двухпроводной шине. К такой шине данных можно подключить до 128 различных устройств, используя две линии данных: тактовый сигнал (SCL) и сигнал данных (SDA). Интерфейс TWI является аналогом базовой версии интерфейса I2C.
В отличие от SPI интерфейса (один мастер и один/несколько ведомых) интерфейс TWI - двунаправленный, сто позволяет организовать между несколькими микроконтроллерами небольшую внутреннюю сеть.
Watchdog Timer представляет собою систему контроля зависания устройства с последующим его перезапуском. Это как автоматическая кнопка RESET для компьютера.
I/O Ports, GPIO - это набор блоков портов ввода/вывода к пинам которых можно подключить разнообразные датчики, исполняющие устройства и цепи. Количество пинов вход/выход, что идут от портов в микроконтроллере, может быть от 3 до 86.
Выходные драйверы в портах AVR микроконтроллера позволяют напрямую подключать нагрузку з потребляемым током 20 мА(максимум 40 мА) при напряжении питания 5В. Общий нагрузочный ток для одного порта не должен превышать значение в 80 мА (например на 4 пина для одного из портов повесить по светодиоду с током 15-20 мА).
Interrupts (прерывания)- это блок который отвечает за реакцию и запуск на выполнение определенных функций при поступлении сигнала на определенные входы микроконтроллера или же по какому-то внутреннему событию (например, сигнал от таймера). Такая процедура называется прерыванием программы ил просто прерыванием. При поступлении на вход сигнала, соответствующего какому - нибудь внешнему событию программа, выполняемая в этот момент процессором прерывается и запускается программа обслуживания прерывания, написанная заранее и размещена в памяти по определённому адресу. события выполнение основной программы прерывается и происходит приоритетное выполнение подпрограммы что написана для текущего прерывания. По завершению выполнения подпрограммы происходит возвращение к выполнению основной программы с того момента где она была прервана.
Timers/Counters - набор таймеров и счетчиков. Микроконтроллер, как правило, содержит в себе от одного до четырех таймеров и счетчиков. Они могут применяться для подсчета количества внешних событий, формирования сигналов определенной длительности, вырабатывать запросы на прерывания и т.п. Разрядность таймеров и счетчиков составляет - 8 и 16 бит (смотреть в даташите для чипа).
Контрольные вопросы 6.
1. Какие микроконтроллеры выпускает компания Atmel&
2. К какому типу архитектур относятся контроллеры AVR?
3. Перечислите подсистемы процессора AVR.
4. Для чего используется JTAG -интерфейс?
5. Назначение Watchdog - таймера.
6. Опишите суть прерываний программы.
7. В чём отличие интерфейсов USART и TWI?
8. Почему FLASH - память называется энергонезависимой?
9. Какое устройство устраняет зависание микроконтроллера?
10. Каково назначение таймеров микроконтроллера?
Дата добавления: 2021-11-30; просмотров: 20; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!