Смекни!
smekni.com

Разработка программной и аппаратной поддержки к методическим указаниям Программирование микроконтроллеров (стр. 2 из 18)

Цифровые сигнальные процессоры (DSP) – относительно новая категория процессоров. Назначение DSP состоит в том, чтобы получать текущие данные от аналоговой системы, обрабатывать данные и формировать соответствующий отклик в реальном масштабе времени. Они обычно входят в состав систем, используясь в качестве устройств управления внешним оборудованием, и не предназначены для автономного применения.

Система команд.

В зависимости от числа используемых кодов операций системы команд МК можно разделить на две группы: CISC и RISC. Термин CISC означает сложную систему команд и является аббревиатурой английского определения Complex Instruction Set Computer. Аналогично термин RISC означает сокращенную систему команд и происходит от английского Reduce Instruction Set Computer. Систему команд МК 8051 можно отнести к типу CISC. Однако, не смотря на широкую распространенность этих понятий, необходимо признать, что сами названия не отражают главного различия между системами команд CISC и RISC. Основная идея RISC архитектуры – это тщательный подбор таких комбинаций кодов операций, которые можно было бы выполнить за один такт тактового генератора. Основной выигрыш от такого подхода – резкое упрощение аппаратной реализации ЦП и возможность значительно повысить его производительность.

Очевидно, что в общем случае одной команде CISC соответствует несколько команд RISC. Однако обычно выигрыш от повышения быстродействия в рамках RISC перекрывает потери от менее эффективной системы команд, что приводит к более высокой эффективности RISC систем в целом по сравнению с CISC.

Однако в настоящее время грань между CISC и RISC архитектурой стремительно стирается. Например, МК семейства AVR фирмы Atmel имеют систему команд из 120 инструкций, что соответствует типу CISC. Однако большинство из них выполняется за один такт, что является признаком RISC архитектуры. Сегодня принято считать, что признаком RISC архитектуры является выполнение команд за один такт тактового генератора. Число команд само по себе значения уже не имеет.

Типы памяти МК.

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

а) память программ;

б) память данных;

в) регистры МК.

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

Для хранения программ обычно служит один из видов постоянной памяти: ROM (масочные ПЗУ), PROM (однократно программируемые ПЗУ), EPROM (электрически программируемые ПЗУ с ультрафиолетовым стиранием) или EEPROM (ПЗУ с электрической записью и стиранием, к этому виду также относятся современные микросхемы Flash-памяти). Все эти виды памяти являются энергонезависимыми – это означает, что содержимое памяти сохраняется после выключения питания МК.

Многократно программируемые ПЗУ – EPROM и EEPROM (Electrically Erasable Programmable Memory) подразделяются на ПЗУ со стиранием ультрафиолетовым (УФ) облучением (выпускаются в корпусах с окном), и МК с электрически перепрограммируемой памятью, соответственно.

В настоящее время протоколы программирования современной EEPROM памяти позволяют выполнять программирование МК непосредственно в составе системы, где он работает. Такой способ программирования получил название – ISP (In System Programming). И теперь можно периодически обновлять программное обеспечение МК без удаления из платы. Это дает огромный выигрыш на начальных этапах разработки систем на базе МК или в процессе их изучения, когда масса времени уходит на многократный поиск причин неработоспособности системы и выполнение последующих циклов стирания-программирования памяти программ.

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

ОЗУ (RAM) – оперативное запоминающее устройство, используется для хранения данных. Эту память называют еще памятью данных. Число циклов чтения и записи в ОЗУ неограниченно, но при отключение питания вся информация теряется.


1.2. Аппаратные средства

1.2.1. Запуск микроконтроллера

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

Сброс в начальное состояние.

На рис. 1.3. изображена схема сброса. Эту схему лучшего всего использовать в случаях, когда гарантированно поддержание напряжения питания в рабочем диапазоне. Кнопка RESET используется в процессе разработки устройств для сброса МК в начальное состояние. (См. рис. 1.2. )


Рис. 1.2. Схема RESET.

1.2.2. Тактирование и командные циклы

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

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


Рис. 1.3. Командный цикл и машинные такты.

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

1.2.3. Программный счетчик и АЛУ

Программный счетчик (Program Counter) или счетчик команд (СК) используется для указания следующей команды выполняемой программы. Реализация этой функции значительно усложняется, когда необходимо сохранить содержимое СК при вызове подпрограмм и обработке запросов прерывания или обеспечить ветвление программы. СК представляет собой счетчик с параллельным вводом/выводом. В процессорах с Принстонской архитектурой содержимое СК поступает оп шине данных в схему управления памятью, указывая адрес считываемой команды. Часто СК входит в состав схемы управления памятью – это позволяет избежать передачи адреса по внутренней шине данных. Важные особенности функционирования СК – параллельная загрузка нового содержимого, поступающего с шины данных, возможность сброса (возврат к адресу первой команды программы), реализация инкремента. В 8-разрядных МК разрядность СК обычно больше, чем 8 бит. При загрузки в СК нового адреса, он поступает по шине данных частями по 8-бит, что требует выполнения дополнительных машинных циклов. Чтобы сократить время загрузки СК, некоторые МК имеют команды ветвления, при которых загружается только 8 младших разрядов адреса, а старшие разряды остаются без изменения. При выполнении такой команды достаточно передать по шине данных только один байт, тогда как для загрузки полного 16-разрядного адреса требуется пересылка двух байт.

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

Арифметико-логическое устройство (АЛУ) процессора используется для выполнения всех математических операций в программе. Это операции включают сложение, вычитание, логическое И, логическое ИЛИ, сдвиг содержимого регистров и установку содержимого регистра состояния в соответствии с полученным результатами. АЛУ не используется при чтении или записи данных или команд, оно служит только для обработки данных.

АЛУ можно представить как аппаратный блок, который обрабатывает два слова данных (операнды) и сохраняет полученный результат (см. рис. 1.4). Как вводятся операнды в АЛУ и куда поступает результат – зависит от конкретного типа МК. В этом состоит одно из основных различий между разными типами процессоров и системами команд. Некоторые МК выбирают один операнд из регистра-аккумулятора и сохраняют результат также в аккумуляторе. Другие МК позволяют использовать различные источники операндов и места размещения результатов.