· Схема начального запуска процессора (Reset);
· Генератор тактовых импульсов;
· Центральный процессор;
· Память программ (E (E) PROM) и программный интерфейс;
· Средства ввода/вывода данных;
· Таймеры, фиксирующие число командных циклов.
Общая структура МК показана на (Рис.1.1.) Эта структура дает представление о том, как МК связывается с внешним миром. Более сложные встраиваемые МК могут дополнительно реализовывать следующие возможности:
· Встроенный монитор/отладчик программ;
· Внутренние средства программирования памяти программ (ROM);
· Обработка прерываний от различных источников;
· Аналоговый ввод/вывод;
· Последовательный ввод/вывод (синхронный и асинхронный);
· Параллельный ввод/вывод (включая интерфейс с компьютером);
· Подключение внешней памяти (микропроцессорный режим).
Все эти возможности значительно увеличивают гибкость применения МК и делают более простым процесс разработки систем на и основе.
Рис.1.1 Структура микроконтроллера.
Некоторые МК (особенно 16 - и 32-разрядные) используют только внешнюю память, которая включает в себя как память программ (ROM), так и некоторый объем памяти данных (RAM), требуемый для данного применения. Они применяются в системах, где требуется большой объем памяти и относительное не большое количество устройств (портов) ввода/вывода. Типичным примером применения такого МК с внешней памятью является котроллер жесткого диска (HDD) с буферной кэш-памятью, который обеспечивает промежуточное хранение и распределение больших объемов данных (порядка нескольких мегабайт). Внешняя память дает возможность такому микроконтроллеру работать с более высокой скоростью, чем встраиваемый МК.
Цифровые сигнальные процессоры (DSP) - относительно новая категория процессоров. Назначение DSPсостоит в том, чтобы получать текущие данные от аналоговой системы, обрабатывать данные и формировать соответствующий отклик в реальном масштабе времени. Они обычно входят в состав систем, используясь в качестве устройств управления внешним оборудованием, и не предназначены для автономного применения.
В зависимости от числа используемых кодов операций системы команд МК можно разделить на две группы: CISCи RISC. Термин CISC означает сложную систему команд и является аббревиатурой английского определения ComplexInstructionSetComputer. Аналогично термин RISC означает сокращенную систему команд и происходит от английского ReduceInstructionSetComputer. Систему команд МК 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 (ElectricallyErasableProgrammableMemory) подразделяются на ПЗУ со стиранием ультрафиолетовым (УФ) облучением (выпускаются в корпусах с окном), и МК с электрически перепрограммируемой памятью, соответственно.
В настоящее время протоколы программирования современной EEPROMпамяти позволяют выполнять программирование МК непосредственно в составе системы, где он работает. Такой способ программирования получил название - ISP (InSystemProgramming). И теперь можно периодически обновлять программное обеспечение МК без удаления из платы. Это дает огромный выигрыш на начальных этапах разработки систем на базе МК или в процессе их изучения, когда масса времени уходит на многократный поиск причин неработоспособности системы и выполнение последующих циклов стирания-программирования памяти программ.
Функционально Flash-память мало отличается от EEPROM. Основное различие состоит в способности стирания записанной информации. В памяти EEPROMстирание производится отдельно для каждой ячейки, а во Flash-памяти стирание осуществляется целыми блоками.
ОЗУ (RAM) - оперативное запоминающее устройство, используется для хранения данных. Эту память называют еще памятью данных. Число циклов чтения и записи в ОЗУ неограниченно, но при отключение питания вся информация теряется.
Программная среда "AVRStudio" - это мощный современный программный продукт, позволяющий производить все этапы разработки программ для любых микроконтроллеров серии AVR. Пакет включает в себя специализированный текстовый редактор для написания программ, мощный программный отладчик.
Кроме того, "AVRStudio" позволяет управлять целым рядом подключаемых к компьютеру внешних устройств, позволяющих выполнять аппаратную отладку, а также программирование ("прошивку") микросхем AVR.
Программная среда "AVRStudio" работает не просто с программами, а с проектами. Для каждого проекта должен быть отведен свой отдельный каталог на жестком диске. В AVRStudioодновременно может быть загружен только один проект.
При загрузке нового проекта предыдущий проект автоматически выгружается. Проект содержит всю информацию о разрабатываемой программе и применяемом микроконтроллере. Он состоит из целого набора файлов.
Главный из них - файл проекта. Он имеет расширение aps. Файл проекта содержит сведения о типе процессора, частоте тактового генератора и т.д. Он также содержит описание всех остальных файлов, входящих в проект. Все эти сведения используются при отладке и трансляции программы.
Кроме файла aps, проект должен содержать хотя бы один файл с текстом программы. Такой файл имеет расширение asm. Недостаточно просто поместить файл asmв директорию проекта. Его нужно еще включить в проект. Проект может содержать несколько файлов asm. При этом один из них является главным. Остальные могут вызываться из главного при помощи оператора. include. На этом заканчивается список файлов проекта, которые создаются при участии программиста.
AlgorithmBuilderпредназначен для производства полного цикла разработки начиная от ввода алгоритма, включая процесс отладки и заканчивая программированием кристалла.
AlgorithmBuilderдовольно нетрадиционная программа в плане языка программирования; ассемблер, завернутый в красивую обертку визуального программирования. AlgorithmBuilder - визуальный ассемблер или построитель ассемблера с помощью которого на выходе можно получить максимально эффективный код.
Работа с переменными и константами организована гениально просто. Инициализация производиться в отдельном окне в виде таблицы - освобождая алгоритм от лишних записей. В буквальном смысле слова все разложено по полочкам.
AlgorithmBuilderимеет удобный настройщик периферии (таймеры, UART, ADC, SPIи т.д.) позволяющий, не читая даташитов, просто выбрать необходимые параметры работы устройства в окне настройки. В этом же окне Builderчестно покажет набор инструкций, обеспечивающих эти параметры.
Переходы осуществляются в программе очень наглядно - вектором. Если требуется перейти по условию в какую либо точку программы - нужно просто провести вектор в эту точку. Это освобождает программу от бесчисленных имен меток, которые в классическом ассемблере являются неизбежным балластом. Переходы по именованным меткам так же возможны.