Подробнее о внутренних блоках микроконтроллера
А теперь подробно рассмотрим все блоки микроконтроллера, разберемся что и для чего нужно, приведу простые примеры доступным языком.
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-10-28; просмотров: 315;