Архитектура микроконтроллеров

Различают два основных вида архитектуры:

1. Микропроцессоры с архитектурой CISC ( Complex Instruction Set Computers)
архитектура вычислений с полной системой команд. Реализующие на уровне машинного языка
комплексные наборы команд различной сложности.

2. RISC (Reduced Instruction Set Computer), что в переводе означает сокращённая система команд компьютера. Суть ее состоит в выделении наиболее употребительных операций и создании архитектуры, приспособленной для их быстрой реализации. Это позволило в условиях ограниченных ресурсов разработать компьютеры с высокой пропускной способностью.

Сравнительные характеристики различных типов архитектуры приведены в таблице 1.

Микроконтроллеры PICmicro построены по RISC архитектуре. Микроконтроллеры с RISC процессорами фирмы Microchip очень эффективны. Компактный код программы получается вследствие того, что все команды имеют размер в одно слово. Это предполагает, что все инструкции имеют одну длину и выбираются за один машинный цикл.

Набор инструкций этих микроконтроллеров широкий, тщательно подобранный специально для задач управления. Гарвардская архитектура процессора, очередь команд, RISC набор команд - все это позволило добиться очень высокого быстродействия и получить очень компактный код. Все команды микроконтроллера, за исключением команд перехода, выполняются за один машинный цикл, который составляет 4 периода тактового генератора. Так, например, на тактовой частоте 20 МГц производительность микроконтроллеров достигает 5 MIPS.

 

                                                                           Таблица 1.

                  CISC-архитектура RISC-архитектура
 Многобайтовые команды Однобайтовые команды
 Малое количество регистров Большое количество регистров
Сложные команды Простые команды
Одна или менее команд за один цикл процессора Несколько команд за один цикл процессора
Традиционно одно исполнительное устройство Несколько исполнительных  устройств

 

 



Типы памяти микроконтроллеров

Можно выделить три основных вида памяти, используемой в микроконтроллерах:

1. Память программ представляет собой постоянную память, предназначенную для хранения программного кода и констант. Эта память не изменяет своего содержимого в процессе выполнения программы.

2. Память данных предназначена для хранения переменных в ходе выполнения программы.

3. Регистры микроконтроллера - этот вид памяти включает внутренние регистры
процессора и регистры, которые служат для управления периферийными устройствами.

Следует отметить малый объем памяти микроконтроллеров, но это не является их существенным недостатком. При первом знакомстве данная особенность действительно вызывает удивление, особенно, если сравнивать микроконтроллеры с современными персональными компьютерами, которые содержат десятки мегабайт памяти.


Память программ.

Для хранения программ обычно служит один из видов постоянной памяти:

- ROM (масочно-программируемое ПЗУ);

- PROM (однократно-программируемое ПЗУ);

- EPROM (электрически программируемое ПЗУ с ультрафиолетовым стиранием);

- EEPROM (ПЗУ с электрической записью и стиранием, к этому виду относятся также
современные микросхемы Flash-памяти);

Все эти типы памяти являются энергонезависимыми - это означает, что содержимое памяти сохраняется после выключения питания микроконтроллера. Такая память необходима, так как микроконтроллер не содержит каких-либо устройств массовой памяти (магнитных дисков), с которых загружается программа в компьютерах. Программа постоянно хранится в микроконтроллере.

В процессе выполнения программа считывается из этой памяти, а блок управления (дешифратор команд) обеспечивает ее декодирование и выполнение необходимых операций. Содержимое памяти программ не может меняться (перепрограммироваться) во время выполнения программы. Поэтому функциональное назначение микроконтроллера не может измениться, пока содержимое его памяти программ не будет стерто (если это возможно) и перепрограммировано (заполнено новыми командами).

Память ROM (ПЗУ) используется тогда, когда программный код заносится и микроконтроллер на этапе его производства. Предварительно программа отлаживается и тестируется, после чего передается фирме-производителю, где программа преобразуется и рисунок маски на стеклянном фотошаблоне. Полученный фотошаблон с маской используется в процессе создания соединении между элементами, из которых состоит память программ. Поэтому такую память часто называют масочно-программируемой ROM. Существует ограничение, связанное с возможностью использования таких микроконтроллеров только в определенной сфере применения, так как его программа обеспечивает выполнение жестко фиксированной последовательности операций, и не может быть использована для решения каких-либо других задач.

Память PROM может быть запрограммирована только один раз. Эта память обычно содержит плавкие перемычки, которые пережигаются во время программирования. В настоящее время такая память используется очень редко.

Электрически программируемая память EPROM состоит из ячеек, которые программируются электрическими сигналами и стираются с помощью ультрафиолетового света Чтобы стереть содержимое ячейки, она освещается ультрафиолетовым светом, этот процесс может занимать от нескольких секунд до нескольких минут.

Память EEPROM (Electrically Erasable Programmable Memory - электрически стираемая программируемая память) можно считать новым поколением EPROM памяти. Использование

EEPROM позволяет стирать и программировать микроконтроллер, не снимая его с платы. Таким способом можно периодически обновлять его программное обеспечение.

Память EEPROM более дорогая, чем EPROM (в два раза дороже EPROM с однократным программированием). EEPROM работает немного медленнее, чем EPROM.

Основное преимущество использования памяти EEPROM заключается в возможности ее многократного перепрограммирования без удаления из платы. Это дает огромный выигрыш на начальных этапах разработки систем на базе микроконтроллеров или в процессе их изучения, когда масса времени уходит на многократный поиск причин неработоспособности системы и выполнение последующих циклов стирания-программирования памяти программ.

Функционально Flash-память мало отличается от EEPROM. Основное различие состоит в способе стирания записанной информации. В памяти EEPROM стирание производится отдельно для каждой ячейки, а во Flash-памяти стирание осуществляемая целыми блоками. Если Вы хотите изменить содержимое одной ячейки Flash-памяти, то Вам потребуется перепрограммировать целый блок (или всю микросхему). В микроконтроллерах с памятью EEPROM можно изменять отдельные участки программы без необходимости перепрограммировать все устройство.

В настоящее время протоколы программирования современной EPROM и EEPROM памяти существенно изменились, что позволило выполнять программирование микроконтроллера непосредственно в составе системе, где он работает. Такой способ программирования получил название «in-system programming» или «ISP». ISP-микроконтроллеры могут быть запрограммированы после того, как их припаяли на плату. При этом сокращаются расходы на программирование, так как нет необходимости в использовании специального оборудования -программаторов.


Память данных

При первом знакомстве с описанием микроконтроллера многих удивит малый объем их оперативной памяти данных RAM, который обычно составляет десятки или сотни байт. Если микроконтроллер использует для хранения данных память EEPROM, то ее объем также не превышает нескольких десятков байт. Если Вы пишите программы для персонального компьютера (PC), то у Вас. вероятно, возникнет вопрос, что можно сделать с таким маленьким объемом памяти. Вероятно, Ваши приложения для PC содержат переменные, объем которых измеряется в килобайтах, не считая используемых массивов данных. При использовании массивов требуемый объем памяти может составлять сотни килобайт. Так что же можно сделать, имея объем ОЗУ порядка 25 байт?

Дело в том, программирование для микроконтроллера выполняется по несколько другим правилам, чем программирование PC. Применяя некоторые несложные правила можно решать многие задачи с использованием небольшого объема памяти RAM. При программировании микроконтроллеров константы, если возможно, не хранятся как переменные. Максимально используются аппаратные возможности микроконтроллеров (такие как таймеры, индексные регистры), чтобы по возможности ограничить размещение данных в RAM. Это означает, что при разработке прикладных программ необходимо предварительно позаботиться о распределении ресурсов памяти. Прикладные программы должны ориентироваться на работу без использования больших массивов данных.

Регистры микроконтроллера.

Подобно всем компьютерным системам, микроконтроллеры имеют множество регистров, которые используются для управления различными устройствами, подключенными к процессору, Это могут быть регистры процессора (аккумулятор, регистры состоянии, индексные регистры), регистры управления (регистры управления прерываниями, регистры управления таймером) или регистры, обеспечивающие ввод-вывод данных (регистры данных и регистры управления параллельным, последовательным или аналоговым вводом-выводом). Обращение к этим регистрам может производиться различными способами. Реализуемые микроконтроллером способы обращения к регистрам оказывают существенное влияние на их производительность. Поэтому очень важно понять, как происходит обращение к регистрам, чтобы писать эффективные прикладные программы для микроконтроллеров. В процессорах с RISC-архитектурой все регистры (часто и аккумулятор) располагаются по явно задаваемым адресам. Это обеспечивает более высокую гибкость при работе процессора.

Используя процессор, который может непосредственно обращаться к любому регистру, можно получить преимущество при разработке простых прикладных программ.

Внешняя память

Несмотря на огромные преимущества использования внутренней встроенной памяти, в некоторых случаях необходимо подключение к микроконтроллеру дополнительной внешней памяти (как памяти программ, так и данных). Существует два основных способа подключения внешней памяти. Первый способ - подключение внешней памяти к микроконтроллеру, как к микропроцессору. Многие микроконтроллеры содержат специальные аппаратные средства для такого подключения. Второй способ состоит в том. чтобы подключить память к устройствам ввода-вывода и реализовать обращение к памяти через эти устройства программными средствами. Такой способ позволяет использовать простые устройства ввода-вывода без реализации сложных шинных интерфейсов. Выбор наилучшего из этих способов зависит от конкретного приложения.

 

Дата: 2019-04-23, просмотров: 3.