Применение микропроцессорных систем практически во всех электрических устройствах - важнейшая черта технической инфраструктуры современного общества. Электроэнергетика, промышленность, транспорт, системы связи существенно зависят от компьютерных систем управления. Микропроцессорные системы встраиваются в измерительные приборы, электрические аппараты, осветительные установки и д.р.
Всё это обязывает электрика знать хотя бы основы работы микропроцессорной техники.
Микропроцессорные системы предназначены для автоматизации обработки информации и управления различными процессами.
Понятие «Микропроцессорная система» очень широко и объединяет такие понятия как «Электронно-вычислительная машина (ЭВМ)», «управляющая ЭВМ», «Компьютер» и т.п.
Микропроцессорная система включает в себя аппаратное обеспечение или по-английски – hardware и программное обеспечение (ПО) - software.
Цифровая информация
Микропроцессорная система работает с цифровой информацией, которая представляет собой последовательность цифровых кодов.
В основе любой микропроцессорной системы лежит микропроцессор, который способен воспринимать только двоичные числа (составленные из 0 и 1). Двоичные числа записываются посредством двоичной системы счисления. Например, в повседневной жизни мы пользуемся десятичной системой счисления, в которой для записи чисел используются десять символов или цифр 0,1,2,3,4,5,6,7,8,9. Соответственно в двоичной системе таких символов (или цифр) всего два – 0 и 1.
Необходимо понимать, что система счисления – это всего лишь правила записи чисел, и выбор типа системы определятся удобством применения. Выбор двоичной системы обусловлен её простотой, а значит надёжностью работы цифровых устройств и лёгкостью их технической реализации.
Рассмотрим единицы измерения цифровой информации:
Бит (от английского "BInary digiT" - двоичная цифра) принимает только два значения: 0 или 1. Можно закодировать логическое значение «да»» или «нет», состояние «включено» или «выключено», состояние «открыто» или «закрыто» и т.п.
Группа из восьми бит называется байтом, например 10010111. Один байт позволяет кодировать 256 значений: 00000000 – 0, 11111111 - 255.
Бит – наименьшая единица представления информации.
Байт - наименьшая единица обработки информации. Байт — часть машинного слова, состоящая обычно из 8 бит и используемая как единица количества информации при её хранении, передаче и обработке на ЭВМ. Байт служит для представления букв, слогов и специальных символов (занимающих обычно все 8 бит) или десятичных цифр (по 2 цифры в 1 байт).
Два взаимосвязанных байта называется словом, 4 байта – двойное слово, 8 байт – учетверённое слово.
Почти вся информация, которая нас окружает, является аналоговой. Поэтому, прежде чем информация попадёт на обработку в процессор, она подвергается преобразованию посредством АЦП (аналого-цифровой преобразователь). Кроме того, информация кодируется в определённом формате и может быть числовой, логической, текстовой (символьной), графической, видео и д.р.
Например, для кодирования текстовой информации используется таблица кодов ASCII (от англ. American Standard Code for Information Interchange - Американский стандартный код для обмена информацией). Запись одного символа осуществляется одним байтом, который может принимать 256 значений. Графическая информация разбивается на точки (пиксели) и производится кодирование цвета и положение каждой точки по горизонтали и вертикали.
Кроме двоичной и десятичной системы в МС используют шестнадцатеричную систему, в которой для записи чисел используются символы 0...9 и A...F. Её применение обуславливается тем, что один байт описывается двухразрядным шестнадцатеричным числом, что значительно сокращает запись цифрового кода и делает его более читаемым (11111111 – FF).
Таблица 1 – Запись чисел в различных системах счисления
Для определения значения числа (например, значения числа 100 для разных систем счисления может составлять 42, 10010, 25616), в конце числа добавляют латинскую букву, обозначающую систему счисления: для двоичных чисел букву b, для шестнадцатеричных - h, для десятичных – d. Число без дополнительного обозначения считается десятичным.
Перевод чисел из одной системы в другую и основные арифметические и логические операции над числами позволяет производить инженерный калькулятор (стандартное приложение операционной системы Windows).
Структура микропроцессорной системы
Основу микропроцессорной системы составляет микропроцессор (процессор), который выполняет функции обработки информации и управления. Остальные устройства, входящие в состав микропроцессорной системы, обслуживают процессор, помогая ему в работе.
Обязательными устройствами для создания микропроцессорной системы являются порты ввода/вывода и отчасти память. Порты ввода/вывода связывают процессор с внешним миром, обеспечивая ввод информации для обработки и вывод результатов обработки, либо управляющих воздействий. К портам ввода подключают кнопки (клавиатуру), различные датчики; к портам вывода - устройства, которые допускают электрическое управление: индикаторы, дисплеи, контакторы, электроклапаны, электродвигатели и т.д.
Память нужна в первую очередь для хранения программы (либо набора программ), необходимой для работы процессора. Программа - это последовательность команд, понятных процессору, написанная человеком (чаще программистом).
Структура микропроцессорной системы представлена на рисунке 1. В упрощённом виде процессор состоит из арифметически-логического устройства (АЛУ), осуществляющего обработку цифровой информации и устройства управления (УУ).
Память обычно включает постоянно-запоминающее устройство (ПЗУ), являющееся энергонезависимым и предназначенное для долговременного хранения информации (например, программ), и оперативно-запоминающее устройство (ОЗУ), предназначенное для временного хранения данных.
Рисунок 1 – Структура микропроцессорной системы
Процессор, порты и память взаимодействуют между собой посредством шин. Шина – это набор проводников, объединённых по функциональному признаку. Единый набор системных шин называют внутрисистемная магистраль, в которой выделяют:
-
шину данных DB (Data Bus), по которой производится обмен данными между ЦП, памятью и портами;
-
шину адреса AB (Address Bus), используемой для адресации процессором ячеек памяти и портов;
-
шину управления CB (Control Bus), набор линий, передающих различные управляющие сигналы от процессора на внешние устройства и обратно.
Микропроцессоры
Микропроцессор - программно-управляемое устройство, предназначенное для обработки цифровой информации и управления процессом этой обработки, выполненное в виде одной (или нескольких) интегральной схемы с высокой степенью интеграции электронных элементов.
Микропроцессор характеризуется большим числом параметров, поскольку он одновременно является сложным программно-управляемым устройством и электронным прибором (микросхемой). Поэтому для микропроцессора важны, как тип корпуса, так и система команд процессора. Возможности микропроцессора определяются понятием архитектуры микропроцессора.
Приставка «микро» в названии процессора означает, что выполняется он по микронной технологии.
Рисунок 2 – Внешний вид микропроцессора Intel Pentium 4
В ходе работы микропроцессор считывает команды программы из памяти или порта ввода и исполняет их. Что означает каждая команда, определяется системой команд процессора. Система команд заложена в архитектуре микропроцессора и выполнение кода команды выражается в проведении внутренними элементами процессора определённых микроопераций.
Архитектура микропроцессора - это его логическая организация; она определяет возможности микропроцессора по аппаратной и программной реализации функций, необходимых для построения микропроцессорной системы.
Основные характеристики микропроцессоров:
1) Тактовая частота (единица измерения МГц или ГГц) – количество тактовых импульсов за 1 секунду. Тактовые импульсы вырабатывает тактовый генератор, который чаще всего находится внутри процессора. Т.к. все операции (инструкции) выполняются по тактам, то от значения тактовой частоты зависит производительность работы (количество выполняемых операций в единицу времени). Частотой процессора можно варьировать в определённых пределах.
2) Разрядность процессора (8, 16, 32, 64 бит и т.д.) – определяет число байтов данных, обрабатываемых за один такт. Разрядность процессора определяется разрядностью его внутренних регистров. Процессор может быть 8-разрядным, 16-разрядным, 32-разрядным, 64-разрядным и т.д., т.е. данные обрабатываются порциями по 1, 2, 4, 8 байт. Понятно, что чем больше разрядность, тем выше производительность работы.
Внутренняя архитектура микропроцессора
Упрощенная внутренняя архитектура типового 8-разрядного микропроцессора показана на рисунке 3. В структуре микропроцессора можно выделить три основных части:
1) Регистры для временного хранения команд, данных и адресов;
2) Арифметико-логическое устройство (АЛУ), которое реализует арифметические и ло-гические операции;
3) Схема управления и синхронизации - обеспечивает выборку команд, организует функционирование АЛУ, обеспечивает доступ ко всем регистрам микропроцессора, воспринимает и генерирует внешние управляющие сигналы.
Рисунок 3 - Упрощенная внутренняя архитектура 8-разрядного микропроцессора
Как видно из схемы, основу процессора составляют регистры, которые делятся на специальные (имеющие определенное назначение) и регистры общего назначения.
Программный счетчик (PC) - регистр, содержащий адрес следующего командного байта. Процессор должен знать, какая команда будет выполняться следующей.
Аккумулятор – регистр, используемый в подавляющем большинстве команд логической и арифметической отработки; он одновременно является и источником одного из байт данных, которые требуются для операции АЛУ, и местом, куда помещается результат операции АЛУ.
Регистр признаков (или регистр флагов) содержит информацию о внутреннем состоянии микропроцессора, в частности о результате последней операции АЛУ. Регистр флагов не является регистром в обычном смысле, а представляет собой просто набор триггер-защелок (флаг поднят или опущен. Обычно имеются флаж¬ки нуля, переполнения, отрицательного результата и переноса.
Указатель стека (SP) - следит за положением стека, т. е. содержит адрес последней его использованной ячейки. Стек – способ организации хранения данных.
Регистр команды содержит текущий командный байт, который декодируется дешифратором команды.
Линии внешних шин изолированы от линий внутренней шины с помощью буферов, а основные внутренние элементы связаны быстродействующей внутренней шиной данных.
Для повышения производительности многопроцессорной системы функции центрального процессора могут распределяться между несколькими процессорами. В помощь центральному процессору в компьютер часто вводят сопроцессоры, ориентированные на эффективное исполнение каких-либо специфических функций. Широко распространены математические и графические, сопроцессоры ввода-вывода, разгружающие центральный процессор от несложных, но многочисленных операций взаимодействия с внешними устройствами.
На современном этапе основным направлением повышения производительности является разработка многоядерных процессоров, т.е. объединение в одном корпусе двух и более процессоров, с целью выполнения нескольких операций параллельно (одновременно).
Лидирующими компаниями по разработке и изготовлению процессоров являются Intel и AMD.
Алгоритм работы микропроцессорной системы
Алгоритм — точное предписание, однозначно задающее процесс преобразования исходной информации в последовательность операций, позволяющих решать совокупность задач определённого класса и получать искомый результат.
Главным управляющим элементом всей микропроцессорной системы является процессор. Именно он, за исключением нескольких особых случаев, управляет всеми остальными устройствами. Остальные же устройства, такие, как ОЗУ, ПЗУ и порты ввода/вывода являются ведомыми.
Сразу после включения процессор начинает читать цифровые коды из той области памяти, которая отведена для хранения программ. Чтение происходит последовательно ячейка за ячейкой, начиная с самой первой. В ячейке записаны данные, адреса и команды. Команда - это одно из элементарных действий, которое способен выполнить микропроцессор. Вся работа микропроцессора сводится к последовательному чтению и выполнению команд.
Рассмотрим последовательность действий микропроцессор во время выполнения команд программы:
1) Перед выполнением очередной команды микропроцессор содержит ее адрес в программном счетчике РС.
2) МП обращается к памяти по адресу, содержащемуся в РС, и считывает из памяти первый байт очередной команды в регистр команд.
3) Дешифратор команд декодирует (расшифровывает) код команды.
4) В соответствии с полученной от дешифратора информацией устройство управления вырабатывает упорядоченную во времени последовательность микроопераций, реализующих предписания команды, в том числе:
- извлекает операнды из регистров и памяти;
- выполняет над ними предписанные кодом команды арифметические, логические или другие операции;
- в зависимости от длины команды модифицирует содержимое РС;
- передает управление очередной команде, адрес которой снова находится в программном счетчике РС.
Совокупность команд микропроцессора можно разделить на три группы:
1) Команды перемещения данных
Перемещение происходит между памятью, процессором, портами ввода/вывода (каждый порт имеет свой собственный адрес), между регистрами процессора.
2) Команды преобразования данных
Любые данные (текст, рисунок, видеоролик и т.д.) представляют собой числа, а с числами можно выполнять только арифметические и логические операции. Поэтому к командам этой группы относятся сложение, вычитание, сравнение, логические операции и т.п.
3) Команда передачи управления
Очень редко программа состоит из одной последовательной команд. Подавляющее число алгоритмов требуют разветвления программы. Для того, чтобы программа имела возможность менять алгоритм своей работы в зависимости от какого-либо условия, и служат команды передачи управления. Данные команды обеспечивают протекание выполнения программы по разным путям и организуют циклы.
Внешние устройства
К внешним, относятся все устройства, находящиеся вне процессора (кроме оперативной памяти) и подключаемые через порты ввода/вывода. Внешние устройства можно подразделить на три группы:
1) устройства для связи человек-ЭВМ (клавиатура, монитор, принтер и т.д.);
2) устройства для связи с объектами управления (датчики, исполнительные механизмы, АЦП и ЦАП);
3) внешние запоминающие устройтсва большой ёмкости (жёсткий диск, дисководы).
Внешние устройства подключаются к микропроцессорной системе физически - с помощью разъёмов, и логически - с помощью портов (контроллеров).
Для взаимодействия процессора и внешних устройств применяется система (механизм) прерываний.
Система прерываний
Это специальный механизм, который позволяет в любой момент, по внешнему сигналу заставить процессор приостановить выполнение основной программы, выполнить операции, связанные с вызывающим прерывание событием, а затем вернуться к выполнению основной программы.
У любого микропроцессора имеется хотя бы один вход запроса на прерывание INT (от слова Interrupt - прерывание).
Рассмотрим пример взаимодействия процессора персонального компьютера с клавиатурой (рисунок 4).
Клавиатура - устройство для ввода символьной информации и команд управления. Для подключения клавиатуры в компьютере имеется специальный порт клавиатуры (микросхема).
Рисунок 4 – Работа процессора с клавиатурой
Алгоритм работы:
1) При нажатии клавиши контроллер клавиатуры формирует цифровой код. Этот сигнал поступает в микросхему порта клавиатуры.
2) Порт клавиатуры посылает процессору сигнал прерывания. Каждое внешнее устройство имеет свой номер прерывания, по которому процессор его и распознаёт.
3) Получив прерывание от клавиатуры, процессор прерывает выполнение программы (например, редактор Microsoft Office Word) и загружает из памяти программу обработки кодов с клавиатуры. Такая программа называет драйвер.
4) Эта программа направляет процессор к порту клавиатуры, и цифровой код загружается в регистр процессора.
5) Цифровой код сохраняется в памяти, и процессор переходит к выполнению другой задачи.
Благодаря высокой скорости работы, процессор выполняет одновременно большое количество процессов.