МП и МК

Кстати, а почему мы все время говорим то микропроцессоры (МП), то микроконтроллеры (МК)? Микроконтроллер отличается от микропроцессора тем, что он предназначен для управления другими устройствами, и поэтому имеет встроенную развитую систему ввода/вывода, но, как правило, относительно более слабое АЛУ. Микроконтроллерам очень хорошо подходит английский термин «computer-on-chip», однокристальный компьютер. В самом деле, для построения простейшего вычислительного устройства, которое могло бы выполнять что-то полезное, обычный микропроцессор, от i4004 до Pentium и Core, приходится дополнять памятью, ПЗУ с записанной BIOS, устройствами ввода/вывода, контроллером прерываний, тактовым генератором с таймерами и т. п. — всем тем, что сейчас стало объединяться в так называемые чипсеты. «Голый» МП способен только на одно — правильно включиться, ему даже программу загрузки неоткуда взять.

В то же время для МК микропроцессор — это только ядро, даже не самая большая часть кристалла. Для построения законченной системы на типовом МК не требуется вообще ничего, кроме источника питания и периферийных исполняющих устройств, которые позволяли бы человеку определить, что система работает. Обычный МК может без дополнительных компонентов общаться с другими МК, внешней памятью, специальными микросхемами (вроде часов реального времени или флэш-памяти), управлять небольшими (а иногда — и большими) матричными панелями, к нему можно напрямую подключать датчики физических величин (в том числе — чисто аналоговые, АЦП тоже часто входят в МК), кнопки, клавиатуры, светодиоды и индикаторы, короче — в микроконтроллерах сделано все, чтобы приходилось как можно меньше паять и задумываться над подбором элементов. За это приходится расплачиваться пониженным быстродействием (которое, впрочем, не так-то уж и важно в типовых задачах для МК) и некоторым ограничением в отдельных функциях — по сравнению с универсальными, но в сотни раз более дорогими и громоздкими системами на «настоящих» МП. Вы можете мне не поверить, но процессоры для персональных компьютеров (ПК), о которых мы столько слышим, занимают в общем количестве выпускаемых процессоров лишь 5–6 % — остальные составляют микроконтроллеры различного назначения.

* * *

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

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

Блок-схема простейшего МК, содержащего процессорное ядро и минимум компонентов для «общения» с внешней средой, показана на рис. 18.2.

Рис. 18.2. Блок-схема простейшего микроконтроллера

Здесь мы включили в состав системы память программ, которая у ПК-процессоров находится отдельно на жестком диске (если не считать относительно небольшого объема ПЗУ, содержащего так называемую BIOS; т. е. базовые процедуры для запуска и обмена с внешней средой) — сами знаете, какой объем программ бывает в персональных компьютерах. В большинстве современных микроконтроллеров постоянное запоминающее устройство (ПЗУ) для программ входит в состав чипа и обычно составляет от 1–2 до 8-32 Кбайт, хотя есть модели и с 256 килобайтами встроенной памяти. Для подавляющего большинства применений вполне достаточно 2–8 Кбайт — при условии, что вы создаете программы прямо в командах контроллера, на языке ассемблера. Применение языка высокого уровня (обычно одного из вариантов языка С), что становится все более популярным из-за удобства работы с ним, как мы увидим, существенно повышает требования к объему памяти программ.

Встроенное оперативное запоминающее устройство (ОЗУ) для хранения данных в том или ином объеме также имеется во всех современных микроконтроллерах, типичный размер такого ОЗУ: от 128–256 байтов до 1–4 Кбайт. В большинстве универсальных контроллеров есть и некоторое

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату