АРХИТЕКТУРА МК 8051

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

Система команд— это уникальный, характерный для данного ЦП набор двоичных кодов, определяющих перечень всех его возможных операций. Каждый такой код определяет одну операцию и называется кодом операцииили командой. Чем больше кодов используется в системе команд, тем больше операций способен выполнить ЦП. МК 8051 — восьмиразрядный, поэтому коды операций у него имеют размер 8 бит. Теоретически может быть всего 256 восьмибитных кодов операций. В 8051 используются 255.

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

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

Первоначально реализовывать такой подход удавалось, лишь существенно сократив набор команд, отсюда и родилось название RISC. Например, система команд МК семейства Microchip PIC 16 включает в себя всего 35 инструкций и может быть отнесена к типу RISC. Очевидно, что в общем случае одной команде CISC-архитектуры должны соответствовать несколько команд RISC-архитектуры. Однако обычно выигрыш от повышения быстродействия в рамках RISC-архитектуры перекрывает потери от менее эффективной системы команд, что приводит к более высокой эффективности RISC-систем в целом по сравнению с CISC. Так, самая быстрая команда МК 8051 выполняется за 12 тактов. Даже если для каждой инструкции потребуется выполнить три инструкции RISC-контроллера, то в итоге RISC-архитектура обеспечит четырехкратное увеличение производительности.

Попутно RISC-архитектура позволяет решить еще ряд задач. Ведь с упрощением ЦП уменьшается число транзисторов, необходимых для его реализации, следовательно, уменьшается площадь кристалла. А с этим связано снижение стоимости и потребляемой мощности.

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

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

ПЗУ— постоянное запоминающее устройство, предназначенное для хранения программ, поэтому часто эту память называют кодовой или памятью программ. До недавнего времени существовало две основных разновидности ПЗУ — масочныеи программируемые.

В масочные ПЗУ информацию заносят в процессе изготовления МК с помощью технологических шаблонов — масок. Изменить ее после окончания производственного цикла невозможно.

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

В программируемые ПЗУ информацию записывают с помощью устройства, называемого программатором. МК с такими ПЗУ бывают двух типов: однократнои многократно программируемые(перепрограммируемые). Первые как говорит само название, допускают только однократное программирование, после чего стереть информацию уже невозможно (МК с ОТР-памятью — от англ. One Time Programmable). Используют их в мелкосерийном производстве (до 1000 шт.), когда применение масочных МК экономически не оправдано.

В настоящее время все более популярной становится новая технология реализации ПЗУ — Flash-память.Ее главное достоинство в том, что она построена на принципе электрической перепрограммируемости, т. е. допускает многократное стирание и запись информации с помощью программаторов. Минимальное гарантированное число циклов записи/стирания обычно превышает несколько тысяч. Это существенно увеличивает жизненный цикл и повышает гибкость МК-систем, так как позволяет вносить изменения в программу МК как на этапе разработки системы, так и в процессе его работы в реальном устройстве.

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

Архитектура МК 8051 предполагает раздельное использование памяти программ и данных и носит название гарвардской.Обычно такую архитектуру используют для повышения быстродействия системы за счет разделения путей доступа к памяти программ и данных, но в 8051 она была применена с целью получения памяти программ и данных, не требующих одинакового размера. Антипод гарвардской — архитектура фон Неймана— предполагает хранение программ и данных в общей памяти и наиболее характерна для микропроцессоров, ориентированных на использование в компьютерах. Примером могут служить микропроцессоры семейства х86

Таймеры ТО, Т1— шестнадцатиразрядные программируемые таймеры/счетчики, которые могут быть запрограммированы на выполнение целого ряда функций. Их можно использовать для точного формирования временных интервалов, подсчета импульсов на выводах МК формирования последовательности импульсов, тактирования приемопередатчика последовательного канала связи. Таймеры/счетчики способны вырабатывать запросы прерываний, переключая ЦП на их обслуживание по событиям и освобождая его от необходимости периодического опроса состояния таймеров. Поскольку основное применение МК находят в системах реального времени, таймеры/счетчики являются их обязательным элементом. В некоторых модификациях число таймеров достигает 32.

Последовательный порт— канал информационного обмена МК с внешним миром. Такие каналы связи занимают минимальное число выводов кристалла, обеспечивая связь на значительные расстояния с минимальными аппаратными затратами. В 8051 реализован универсальный асинхронный последовательный приемопередатчик (UART), поддерживающий протокол стандарта RS-232C, что обеспечивает возможность организации связи этого МК с персональным компьютером. Кроме RS-232C, популярными протоколами в мире встраиваемых систем являются RS-485, l2C (двухпроводная двунаправленная шина), SPI (последовательный периферийный трехпроводный интерфейс), Bitbus (последовательная магистраль управления), CAN (межконтроллерный сетевой интерфейс), USB (универсальная последовательная шина) и некоторые другие. Практически для любого типа последовательного канала сегодня можно найти МК, имеющий в своем составе соответствующий последовательный порт.

Параллельные портыввода/вывода — также обязательная часть любого МК. Обычно их используют для связи с ближайшим окружением — датчиками и исполнительными механизмами.

Важная особенность параллельных портов МК — возможность программирования на выполнение нескольких функций. Например, в 8051 выводы портов Р0 и Р2 могут использоваться либо как обычные статические регистры ввода/вывода, либо а качестве шины адреса и данных для подключения внешних устройств, таких как дополнительная память программ, память данных, устройства ввода/вывода. Это придает МК архитектурную гибкость. Порт РЗ может либо использоваться как статический регистр ввода/вывода, либо выполнять специальные функции для работы последовательного канала, таймеров, контроллера прерываний и т. д. Возможность перепрограммирования позволяет с максимальной эффективностью задействовать все выводы МК в проектируемом устройстве.

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

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

Другая функция контроллера прерываний — установка приоритетов событий. Понятие приоритетозначает, что выполняемая подпрограмма прерывания может быть прервана другим событием только при условии, что оно имеет более высокий приоритет, чем текущее. В противном случае ЦП перейдет к обработке нового события после окончания обработки предыдущего. Контроллер прерываний, входящий в состав МК 8051, имеет пять входов событий: два от внешних устройств, два от таймеров и один от последовательного канала.

Обычно, когда говорят о каком-либо МК, то всегда упоминают семейство,к которому он принадлежит. К одному семейству относят изделия, имеющие одинаковое ядро,под которым понимают совокупность таких понятий, как система команд, циклограмма работы ЦП, организация памяти программ и памяти данных, система прерываний и базовый набор периферийных устройств. Фактически на рис. 1 представлено ядро, ставшее основой для создания сотен других модификаций семейства 8051.

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

Наиболее важная особенность семейства — программная совместимость на уровне двоичного кода всех входящих него МК. Это позволяет разработчикам систем заменять одни МК семейства другими без потери наработок своего программного обеспечения. Естественно, чем большее число разновидностей входит в семейство, тем больше шансов выбрать оптимальный вариант, тем привлекательнее это семейство для разработчика. Вопрос правильного выбора семейства МК для новой разработки является стратегическим, так как проблема переноса программного обеспечения между изделиями разных семейств чрезвычайно сложна и даже использование языков высокого уровня не всегда позволяет решить ее без больших потерь.


КРОСС-СРЕДСТВА ДЛЯ МК