Новиков ю в основы микропроцессорной техники. Микропроцессорная система

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

Всё это обязывает электрика знать хотя бы основы работы микропроцессорной техники.

Предназначены для автоматизации обработки информации и управления различными процессами.

Понятие «Микропроцессорная система» очень широко и объединяет такие понятия как «Электронно-вычислительная машина (ЭВМ)», «управляющая ЭВМ», «Компьютер» и т.п.

Микропроцессорная система включает в себя аппаратное обеспечение или по-английски – 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) Цифровой код сохраняется в памяти, и процессор переходит к выполнению другой задачи.

Благодаря высокой скорости работы, процессор выполняет одновременно большое количество процессов.

Коммуникация, связь, радиоэлектроника и цифровые приборы

Микропроцессор МП это обрабатывающее и управляющее устройство способное под программным управлением выполнять обработку информации принятие решений ввод и вывод информации и выполненное в виде одной или нескольких БИС. используемое для временного хранения информации в процессе работы МП. В отличие от ПЗУ в ОЗУ возможно как считывание так и запись информации по сигналам Чт и Зап в ячейку адрес которой находится на ША. По сигналу Вв ввод на ШУ происходит передача информации от внешнего устройства на ШД а по сигналу Выв вывод...

Лекция 12

Микропроцессорная техника

1 Микропроцессоры и микропроцессорные комплекты

1.1 Определение микропроцессора

В начале 70-х годов успехи технологии в микроэлектронике привели к созданию новой элементной базы электроники - микроэлектронных больших интегральных схем (БИС) {модуль 1 глава 1.6.3}. По степени интеграции (количеству активных элементов: диодов и транзисторов) интегральные схемы (ИС) условно подразделяются на ИС малой степени интеграции - до 100 активных элементов, средней степени интеграции (СИС) - до 1000 активных элементов, БИС - свыше 1000 активных элементов, СБИС - свыше 10000 элементов. Выпуск новой БИС при современном уровне автоматизации проектирования - очень сложный и дорогой процесс из-за больших первоначальных затрат на разработку ее логической структуры и топологии, изготовления фотошаблонов и технологической подготовки производства. Это 0,5-1 год работы большого коллектива. Поэтому изготовление БИС экономически оправдано при их выпуске, исчисляемом десятками-сотнями тысяч штук в год. Выпускать специализированные БИС для каждого конкретного применения практически не реально. В результате поиска областей массового применения микросхем с высоким уровнем интеграции их разработчиками была предложена идея создания одной универсальной БИС или некоторого набора БИС, специализация которых для каждого конкретного случая применения достигается не схемно, а программно. Так появились стандартные универсальные элементы - микропроцессорные БИС со структурой, аналогичной структуре ЭВМ.

Микропроцессор (МП) – это обрабатывающее и управляющее устройство, способное под программным управлением выполнять обработку информации, принятие решений, ввод и вывод информации и выполненное в виде одной или нескольких БИС.

1.2 Технология изготовления МП БИС

Существуют два вида технологии изготовления БИС: биполярная - основанная на применении биполярных транзисторов и МОП (металл - окисел - полупроводник) - технология, основанная на использовании полевых транзисторов.

БИС, изготавливаемые по биполярной технологии, различаются по схематическим способам реализации. В основном применяется транзисторно-транзисторная логика с диодами Шоттки (ТТЛШ) и эмиттерно-связанная логика (ЭСЛ). В логике ТТЛШ используются биполярные n-p-n транзисторы, дополненные диодами Шоттки (ДШ). ДШ представляет собой выпрямительный контакт на границе металл-полупроводник Al-nSi. В металле и кремнии основные носители одного и того же типа - электроны, а неосновных носителей нет. ДШ открываются при U=0,1-0,3 В и имеют крутую вольт-амперную характеристику. Они подключаются параллельно коллекторному переходу n-p-n транзистора и образуют транзистор Шоттки, изготавливаемый в едином технологическом процессе. Применение ДШ значительно повышает быстродействие транзистора, так как устраняется насыщение коллекторного перехода и нет рассасывания зарядов в нем.

В МОП технологии {модуль 1 глава 1.5.5} можно выделить 3 схемотехнических способа реализации БИС: МОП с проводимостью канала р - или n -типа (р -МОП или n -МОП) и комплементарная МОП технология (КМОП). КМОП технология использует пары МОП транзисторов n -типа и р -типа, соединенные последовательно (рис.1-1). При любом сигнале на входе один из транзисторов открыт, другой - закрыт. Поэтому ток, протекающий по цепи, очень мал. КМОП БИС имеют наименьшую потребляемую мощность по сравнению с другими видами.

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

ЭСЛ логика основана на применении дифференциального усилителя на двух транзисторах с соединенными эмиттерами (рис.1-2.). Она обеспечивает самое большое быстродействие, но потребляет большую мощность.

Основные данные для некоторых МП БИС приведены в таблице.1

1.3 Структура микропроцессорных систем

Все многообразие МПС основано на применении МП двух типов:

а) однокристальных МП с фиксированной разрядностью слова и с фиксированной системой команд (с жестким управлением);

Б) многокристальных (секционных) МП с изменяемой разрядностью слова и с микропрограммным управлением.

Рассмотрим особенности их структуры.

1.3.1 Структура МПС на основе МП с жестким управлением

Рис.1-3

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

ША - шина адреса, по которой передаются адреса ячеек памяти и внешних устройств;

ШД - шина данных, по которой информация вводится в МП или выводится из него;

ШУ - шина управления, по которой передаются управляющи сигналы, обеспечивающие нормальное функционирование МПС;

МП - центральный элемент, управляющий функционированием всех остальных элементов; обращается ко всем остальным элементам системы, выставляя на ША их адрес;

Г - генератор тактовых импульсов, синхронизирующий работу МП;

ПЗУ - постоянное запоминающее устройство {модуль 2 глава 9.1}, в котором записаны команды программы, выполняемой МП, и константы, необходимые для работы. По ША поступает адрес ячейки памяти, в которой храниться необходимая команда или константа, и по сигналу Чт (чтение) от МП на ШД появляется информация, хранимая в данной ячейке;

ОЗУ - оперативное запоминающее устройство {модуль 2 глава 9.2}, используемое для временного хранения информации в процессе работы МП. В отличие от ПЗУ, в ОЗУ возможно как считывание, так и запись информации (по сигналам Чт и Зап) в ячейку, адрес которой находится на ША. В простейших МПС ОЗУ может отсутствовать, и его роль выполняют внутренние регистры общего назначения (РОН) МП;

ИУ - интерфейсное устройство (устройство связи), согласующее работу МПС и внешних устройств с учетом различий в скоростях их работы и уровнях сигналов. По сигналу Вв (ввод) на ШУ происходит передача информации от внешнего устройства на ШД, а по сигналу Выв (вывод) - в обратном направлении. Шина данных общая для всех элементов МПС, но элементы системы не должны мешать друг другу. Поэтому выход каждого из них подключен к ШД через так называемую схему с 3-мя состояниями. Она может находиться не только в активных состояниях («0» или «1»), что необходимо для передачи информации, но и в третьем состоянии, в котором элемент практически отключается от общей шины. Перевод из третьего состояния в активное осуществляется управляющими сигналами МП. В каждый момент времени к общей ШД оказывается подключенным только один элемент, передающий информацию, и «конфликт» на ШД исключается. Принимать информацию с ШД могут, при необходимости, сразу несколько элементов. Такая организация МПС с помощью общей ШД является вынужденной и обусловлена тем, что число выводов корпусов БИС ограничено, и одни и те же выводы используются для нескольких целей.

1.3.2 Структура МПС на основе МП с микропрограммным управлением

МП с жестким управлением собирается из n отдельных БИС секций центрального процессорного элемента ЦПЭ, каждая из которых обрабатывает 2 (4, 8, 16) разрядов данных. При этим получается центральный процессор, имеющий 2n (или 4n, 8n, 16n) разрядов. ЦПЭ выполняет самые простые действия - микрооперации при подаче на управляющие входы приказов - микрокоманд (МК). Для выполнения команд, аналогичных командам МП с жестким управлением, требуется до 10-15 микроопераций и столько же микрокоманд. Организация команд из имеющихся микрокоманд предоставляется пользователю.

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

2 Микропроцессор

2.1 Структура МП К580ВМ80

Рассматриваемая БИС является однокристальным МП, выполненным на основе n-МОП технологии. Предназначена для построения вычислительных устройств, контроллеров, микро-ЭВМ. Разрядность МП - 8 бит, тактовая частота 2 МГц, время выполнения команды 2-9 мкс, напряжение питания +12,+5 и -5 В, потребляемая мощность 0,75 Вт. На рисунке приведена его структурная схема.

2.1.1 Основные элементы МП

Обмен информацией осуществляется через восьмиразрядный буферный регистр {модуль 2 глава 7} БД, подключенный к внешней и внутренней ШД МП.РК - регистр команды. В него записывается код команды и хранится в течение времени ее выполнения.ДшК - дешифратор команды, выдает сигналы на устройство управления УУ и схему выбора регистров СВР.

СВР - схема выбора регистров. Содержит: 6 программно доступных регистров общего назначения (РОН) B, C, D, E, H, L (существуют команды, в которых они рассматриваются парами B- B,C; D - D,E; H - H,L);2 программно недоступных регистра W и Z, предназначенных для хранения второго и третьего байта команды (первый байт всегда храниться в РК);

М – мультиплексор {модуль 2 глава 5.2}, связывающий внутреннюю ШД с регистрами W, Z;

ПС - 16 разрядный программный счетчик, позволяющий МП выполнять программы, содержащие до 216 = 65536 слов;

УС - 16 разрядный указатель стека {глава 2.1.3};

СИД - схема инкремента-декремента (прибавления или вычитания 1);

БА - 16 разрядный буфер адреса;

А - регистр результата (аккумулятор);

АЛУ - арифметико-логическое устройство, выполняет арифметические операции сложения - вычитания, инкремент - декремент, логические операции конъюнкции, дизъюнкции, инверсии и другие. Оно связано через буферные регистры БР1 и БР2 с аккумулятором и внутренней шиной данных;

РП - регистр признаков, в котором в процессе выполнения команды появляются признаки результата (нулевой результат, положительный или отрицательный, четный или нечетный результат), используемые в последующих командах, например, условного перехода;

СДК - схема десятичной коррекции, используется в том случае, когда информация обрабатывается не в двоичном, а в двоично-десятичном коде {модуль 2 глава 3.2};

УУ - устройство управления, обеспечивает управление работой МП и внешних устройств. Рассмотрим его работу и состав шины управления.

2.1.2 Устройство управления

Устройство управления тактируется от внешнего генератора, вырабатывающего последовательность импульсов Ф1 и Ф2. Оно связано с остальной частью МП внутренними управляющими сигналами УС и сигналами признаков Pi. С внешней средой УУ связано шиной управления, содержащей 10 линий (4 сигнала поступают извне и 6 сигналов выдает МП).

Состав шины управления.

1. Начальная установка (сброс). При подаче «1» на этот вход ПС сбрасывается в 0 и начинается выполнение программы сначала.

2. Синхронизация. Сигнал «1» на этом выходе вырабатывается в начале каждого цикла работы МП (перед каждым обращением МП к любому внешнему элементу).

3. Чтение. Сигнал «1» указывает, что МП готов принять информацию по ШД извне. Этот сигнал обычно подключается ко входу «чтение» ЗУ и устройств ввода.

4. /Зп. Сигнал «0» указывает, что МП выставил на шину данных информацию, подлежащую записи в ОЗУ или выдаче на устройства вывода.

5. Готов. Сигнал «1» на этом входе указывает МП на окончание цикла чтения или записи. Он вырабатывается внешними устройствами по окончании цикла их работы. Если сигнал «1» не поступил, то МП входит в состояние ожидания, в течение которого МП удерживает адрес на ША, управляющий сигнал «чтение» или «запись» и сохраняет открытыми цепи передачи информации через БД. Состояние ожидания сохраняется до поступления «1» - «готов». В случае, когда все внешние элементы работают со скоростью МП или большей, на вход «готов» постоянно подключается «1».

6. Ожидание. Сигнал «1» на этом выходе указывает, что МП в состоянии ожидания. Этот сигнал помогает установить неисправный блок, из-за которого МП остановился.

7. З.Пр. - вход запроса на прерывание {глава 7.2.7}. Сигнал «1» поступает извне при необходимости прервать работу МП.

8. Р.Пр. - разрешение прерывания. Сигнал «1» на этом выходе указывает, что прерывания разрешены. Разрешение и запрещение прерывания производится специальными командами.

9. Захват. При поступлении сигнала «1» МП останавливает работу, БА и БД переводятся в третье состояние. При этом МП отключается от ША и ШД.

10. Подтверждение захвата. Сигнал «1» указывает, что МП находится в состоянии захвата.

2.1.3 Магазинная память - стек

При обращении к ячейкам памяти ОЗУ в МПС с процессором К580ВМ80 нужны длинные трехбайтные команды. В первом байте содержится сама команда обращения, а во втором и третьем указывается адрес ячейки памяти. Такая команда выполняется сравнительно долго и при частых обращениях к памяти работа МПС существенно замедляется. Для ускорения работы МПС применяется магазин памяти - стек. Он работает по принципу: первым читается число, записанное последним. Порядок обращения к стеку жесткий, но зато не нужно указывать адрес, и время обращения значительно уменьшается. Стек очень удобен для запоминания промежуточной информации в случае прерывания. Второе его назначение - обеспечение работы с программами. При переходе к подпрограмме содержание РОН пересылается в стек, после выполнения подпрограммы - вызывается из стека в РОН. Стек бывает автономный (встроенный в МП) и внешний (размещенный в ОЗУ). В МП К580ВМ80 используется внешний стек, а в кристалле размещается специальный регистр - указатель стека (УС), в котором хранится адрес первой свободной ячейки стека. Для стека обычно отводятся старшие ячейки памяти ОЗУ. Вначале устанавливается адрес 111 ... 1, при записи адрес декрементируется (А-1), при чтении - инкрементируется (А+1). При работе со стеком на ША выдается содержимое УС, при работе с основной памятью - содержимое РА. 2.2

2.2 Функционирование МП в составе МПС

2.2.1 Алгоритм выполнения команды

При выполнении любой команды цикл работы МП всегда начинается с выборки первого байта команды - кода операции (КОп) в регистр команд {глава 2.1.1}. При этом адрес команды из ПС через БА поступает на ША, УУ вырабатывает сигнал чтения, КОп поступает через БД в РК. ДшК анализирует КОп и, если требуется, МП выбирает 2-й и 3-й байты команды в регистры W и Z соответственно. Адрес последующего байта команды формируется в ПС увеличением его содержимого на 1 с помощью СИД. Затем происходит выполнение команды. В конце производится анализ наличия запросов на прерывание (сигнал ЗПр). Если такой запрос имеется - состояние ПС запоминается и происходит переход к программе обработки прерывания.

2.2.2 Временная диаграмма работы МП

Работа МП происходит под действием двух неперекрывающихся последовательностей тактовых импульсов Ф1и Ф2 (рис.2-2).

Большинство преобразований информации МП производит по Ф2. Временной интервал, в течение которого выполняется одна микрооперация, называется машинным тактом (обозначается Т1, Т2 и т.д.). Машинным циклом (МЦ) называется последовательность тактов, в течение которых осуществляется обмен информацией между МП и внешним по отношению к нему элементом (обозначается М1, М2 и т.д.). МЦ содержит 3-5 тактов. Выполнение команды происходит за 1-5 МЦ. На рисунке 2-3 условно показана последовательность выполнения трех команд, содержащих различное число МЦ. В цикле М1 всегда происходит выборка первого байта команды. Большинство МП являются тактируемыми цифровыми схемами, работающими под воздействием генератора тактовых импульсов (ГТИ). МП К580ВМ80тактируется ГТИ, вырабатывающим две последовательности не перекрывающихся импульсов Ф1 и Ф2 с периодом Ттакт = 0,5 - 2 мкс.

2.2.3 Слово состояния МП

ШД МП не используется в Т1 и начале Т2 для приема и выдачи основной информации. В МП предусмотрены схемы, обеспечивающие выдачу в это время на ШД восьмиразрядного слова состояния (СС). Эти 8 признаков могут использоваться внешними элементами и, в общем случае, позволяют упростить организацию МПС. Слово состояния выдается в начале каждого цикла в такте Т2 во время импульса Ф1 (рис.2-4). Признаки СС характеризуют только данный МЦ. СС выделяется с помощью регистра состояний РС (рис.2-5), в который записывается информация с ШД в момент t, в который одновременно имеются импульсы Ф1 и «Синхр.». МП К580ВМ80 имеет десять типов МЦ и, соответственно, 10 СС, идентифицирующих эти циклы. В таблице 2 приведены СС, соответствующие всем типам МЦ.

Рис.2-4

Рис.2-5

Таблица 2 Слова состояния МП К580ВМ80

Здесь:

MEMR - чтение из памяти;

INP - признак команды ввода (вырабатывается в МЦ3);

М1 - признак МЦ1 (идет выборка КОп, начало выполнения команды);

OUT - признак команды ввода, вырабатывается в МЦ3. Аналогичен сигналу /Зп МП, но появляется несколько раньше и держится в РС до конца цикла;

HLTA - подтверждение останова;

STACK - признак работы со стеком, вырабатывается при обращении к ЗУ по командам работы со стеком, что позволяет иметь 216 ячеек ОЗУ и 216 ячеек стека;

/WO - признак записи или вывода;

INTA - признак начала работы в режиме прерывания.

Например, в команде вывода в трех МЦ выдаются СС № 1,2,7. Использование СС позволяет лучше организовать управление МПС. Для работы с внешними устройствами МП имеет только 2 управляющих сигнала Чт и /Зп, в которых не различаются ПЗУ, ОЗУ и другие внешние устройства. Поэтому приходится использовать некоторые разряды ША для указания конкретного объекта. В СС сигнал MEMR позволяет отделить память от других устройств, что упрощает организацию взаимосвязи отдельных частей МПС.

3 Запоминающие устройства

Запоминающее устройство, или, сокращенно, память служит для хранения цифровой информации.

Память МПС подразделяется на:

программную память, предназначенную для хранения программ и реализованную обычно в виде постоянного запоминающего устройства (ПЗУ);

память данных, или оперативную память (ОЗУ) {модуль 2 глава 9};

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

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

В функциональном отношении память состоит из однотипных ячеек (регистров), рассчитанных на хранение одного слова. Каждой ячейке присвоен адрес, представленный двоичным кодом.

Емкость ИС памяти обычно выражается в битах или байтах- т, 1024 байта (или 1 Кбайт), 4 К бита и т.д. Информационная организация (или формат) памяти определяется произведением m (слов) х n (длина слова). Например, ИС с емкостью 1024 бит может иметь огранизацию 1024х1 (1Кх1), 256х4, 128х8. Длина слов памяти (nпам) обычно выбирается равной длине слова (разрядности) центрального процессора МПС nцп. Если nпам< nцп, то применяется несколько корпусов ИС. Например, с помощью 2-х ИС памяти 256х4 можно организовать ЗУ с форматом 256х8.

Память может выполнять две операции: ввод информации в адресуемую ячейку - запись (Зп); и вывод информации из адресуемой ячейки - считывание или чтение (Чт). Обе операции носят общее название обращения или, по-другому, доступа к памяти.

3.1 Постоянная память

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

Если однократную запись в память производит пользователь с помощью специального устройства - программатора, а затем она работает только на считывание, то такую память называют ПЗУ, программируемое пользователем (ПЗУ-ПП). Они применяются при макетировании и отладке МПС, а также при производстве малыми сериями.

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

Рассмотрим подробнее внутреннюю структуру ПЗУ ПП на примере простейшей ИС К155РЕ3 (рис.3-1), имеющей организацию 32х8. Для адресации 32-х слов имеются 5 адресных входов А0...А4 (т.к. 25=32). Хранимое слово из 8-ми бит образовано многоэмиттерным транзистором, в каждой эмиттерной цепи которого находится плавкая перемычка из нихрома толщиной 200 Ангстрем. Когда дешифратор адреса выбирает определенное слово, то открывается один из многоэмиттерных транзисторов. При наличии перемычки на соответствующей битовой линии устанавливается высокий уровень напряжения и выходной транзистор VT2 также открывается, и потенциал выхода 1 близок к нулю (логический «0»). Если перемычка расплавлена, то соответствующая битовая линия никуда не подключена («плавающая») и транзистор VT2 закрыт (логическая «1»). Выходы ПЗУ ПП представляют собой схемы с открытым коллектором.Для нормальной работы их надо подключить к источнику питания +Ек через резисторы Rн (на рисунке показано пунктиром).

В незапрагроммированной ИС все перемычки целые, транзисторы VT2 открыты во всех словах, на выходах уровни логического «0». Для программирования некоторого бита (состояние которого необходимо изменить с «0» на «1») на линии А0...А4 подаются сигналы нужного адреса и на базе выбранного многоэмиттерного транзистора появляется высокий уровень. Внешней схемой на выходе программируемого бита устанавливается напряжение около 8 В. Этого напряжения достаточно для включения стабилитрона VD1 с порогом около 7 В, что приводит к включению транзистора VT1, и первый вывод перемычки заземляется. Затем напряжение питания многоэмиттерных транзисторов увеличивается до 12 В, и тогда между выводами перемычки приложено напряжение около 5 В. Возникающий ток нагревает и расплавляет перемычку.

В ПЗУ ПП такого типа иногда возможны отказы из-за повторных замыканий разрушенных перемычек. Зазор очень узкий и иногда «заплывает». Для повышения надежности запрограммированные ПЗУ выдерживают в термостате 24 часа при температуре 100oС и повторно проверяют записанную информацию. Если обнаружено «заплывание» перемычек (некоторые записанные «1» превратились в «0»), то их прожигают повторно.

На практике широко применяются ППЗУ, стираемые ультрафиолетовым облучением. Они строятся на МОП-транзисторах, отличающихся от обычных тем, что между затвором и полупроводником (подложкой) помещают еще один «плавающий» затвор, полностью изолированный со всех сторон окислом кремния. Если при записи информации к затворам таких транзисторов приложить положительное напряжение около 25 В и длительностью в несколько десятков миллисекунд, то под его воздействием электроны, перемещаясь в сторону основного затвора, оседают на плавающем затворе. При считывании к затвору прикладывается положительное напряжение не более 5 В. Если на плавающем затворе нет электронов, то канал исток-сток становится проводящим, что соответствует хранению логической единицы. Если на плавающем затворе имеются электроны, то они своим зарядом экранируют затвор и промежуток исток-сток остается непроводящим, что соответствует хранению логического «0». Так как плавающий затвор окружен изолирующим слоем, электроны, попавшие в область плавающего затвора, не могут ее покинуть. В действительности же существует утечка электронов, что приводит к постепенной потере информации. По данным ряда фирм это время составляет не менее 10 лет.

Стирается информация ультрафиолетовым облучением в течение нескольких десятков минут во всех элементах сразу. При этом электроны возбуждаются излучением и стекают в подложку. В результате все плавающие затворы освобождаются от электронов, то есть во все элементы записывается логическая «1».

К таким ППЗУ относятся широко применяемые ИС К573РФ2 (РФ4,РФ5 и др.).

3.2 Оперативная память

Оперативная память или оперативное запоминающее устройство (ОЗУ) {модуль 2 глава 9.2} применяется для хранения оперативной информации, требующейся в процессе обработки. ОЗУ, в отличие от ПЗУ, позволяет: как вводить информацию в адресуемую ячейку (операция Зп), так и выводить (операция Чт) Так как обращение возможно к любой адресуемой ячейке в произвольном порядке, то такие ЗУ называют запоминающими устройствами с произвольной выборкой (ЗУПВ). Возможны различные способы обмена информацией между ОЗУ и МП. Чаще всего используются запоминающие устройства с произвольной выборкой, позволяющие обращаться по любому адресу в произвольном порядке. Различают статические и динамические ОЗУ.

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

Большинство ЗУПВ изготовляются на основе МОП транзисторов и имеют так называемую матричную организацию. Функциональная схема ЗУПВ 256х1 с матричной организацией типа 16х16 приведена на рисунке (3-2). После дешифрирования младших битов адреса А0-А3 возникает сигнал Xi, подключающий i-ю строку матрицы. Столбец матрицы Yj выбирается дешифратором старших битов адреса А4-А7 и элемент памяти ЭПij подключается к схеме вывода или ввода информации в зависимости от значения сигнала Сч//Зп. При Сч//Зп=1 происходит считывание информации из памяти; при Сч//Зп=0 - запись в память. Разрешающий сигнал ВМ (выбор микросхемы) активизирует данную ИС. При запрещающем значении сигнала ВМ матрица изолирована от выходов дешифратора и шины ввода-вывода.

Статические ЗУПВ могут быть построены на полупроводниковых приборах различного типа. В настоящее время наиболее распространенными являются ИС статической памяти на МОП транзисторах. КМОП запоминающий элемент состоит из 5-ти транзисторов, четыре из которых (VT1-VT4) образуют триггер. Управление триггером для записи и считывания осуществляется с помощью ключа - транзистора VT5 (рис.3-3).

3.3 Подключение ЗУ к шине данных

Так как шина данных (ШД) является общей для многих устройств, то при их одновременной работе неизбежен «конфликт». Необходимо, чтобы в каждый момент времени к ШД было подключено только одно устройство - источник информации. приемников же информации может быть одновременно подключено несколько. Важно лишь, чтобы мощность выхода источника информационных сигналов была достаточной для подключения нескольких приемников. Оперативное подлючение и одключение выхода какого-либо устройства осуществляется с помощью схемы выхода, имеющей 3 возможных состояния: 1, 0 и «отключено». Выход любой ТТЛ ИС упрощенно можно представить в виде двух последовательно включенных транзисторов (см. рис.3-4).

Если транзистор VT1 открыт и закрыт VT2, то на выходе высокий уровень сигнала («1»). Если наоборот: VT2 открыт, VT1 закрыт, то на выходе низкий уровень («0»). Если одновременно закрыты оба транзистора, то выход ИС оказывается отключенным от источника питания и не оказывает никакого влияния на работу других устройств, подключенных к общей шине.

Рис.3-4 Выход с тремя состояниями

4. Интерфейсные устройства

Интерфейсные устройства (ИУ) служат для сопряжения внешних устройств с МПС. Они обычно реализуются в виде одной или нескольких СИС или БИС.

PAGE \* MERGEFORMAT 3


А также другие работы, которые могут Вас заинтересовать

45328. Референдум – понятие, виды правовое регулирование 25.75 KB
Форма прямого волеизъявления граждан РФ по наиболее важным вопросам государственного и местного значения в целях принятия решений осуществляемого посредством голосования граждан РФ обладающих правом на участие в референдуме. Виды референдума в зависимости от территории: 1 всероссийский референдум он проводится по вопросам общефедерального значения на основании решения Президента РФ; 2 референдум субъекта РФ он проводится по вопросам ведения соответствующего субъекта РФ или совместного ведения РФ и субъектов РФ если указанные вопросы не...
45329. Функции Президента Российской Федерации 21 KB
Назначение с согласия Государственной Думы Председателя Правительства РФ других членов Правительства РФ направление его политики и принятие решения об отставке Правительства РФ; 2 представление Государственной Думе кандидатуры на должность Председателя Центрального банка РФ постановление перед ней вопроса об освобождении от должности Председателя Центрального банка РФ; 3 представление Совету Федерации кандидатур для назначения на должности судей Конституционного Суда РФ...
45330. Порядок избрания и освобождения от должности Президента Российской Федерации 23.1 KB
Порядок избрания и освобождения от должности Президента Российской Федерации. Президент Российской Федерации избирается сроком на шесть лет гражданами Российской Федерации на основе всеобщего равного и прямого избирательного права при тайном голосовании. Президентом Российской Федерации может быть избран гражданин Российской Федерации не моложе 35 лет постоянно проживающий в Российской Федерации не менее 10 лет Одно и то же лицо не может занимать должность Президента Российской Федерации более двух сроков подряд. Порядок выборов Президента...
45331. 22.83 KB
ИНСТИТУТ УПОЛНОМОЧЕННОГО ПО ПРАВАМ ЧЕЛОВЕКА В РФ В РФ защитой прав и свобод граждан их соблюдения государственными органами власти органами местного самоуправления и должностными лицами занимается Уполномоченный по правам человека в РФ. В пределах своей компетенции Уполномоченный по правам человека в РФ: 1 рассматривает жалобы граждан РФ и находящихся на территории РФ иностранных граждан и лиц без гражданства; 2 рассматривает жалобы на решения или действия государственных органов органов местного самоуправления должностных лиц...
45332. Государственная Дума Российской Федерации - палата Федерального Собрания Российской Федерации 26.28 KB
Полномочия местного самоуправления это закрепленные федеральным законодательством а также нормативными правовыми актами субъектов Российской Федерации и правовыми актами органов местного самоуправления за населением соответствующих территорий выборными и иными органами местного самоуправления права и обязанности связанные с реализацией задач и функций местного самоуправления на соответствующей территории. Полномочия местного самоуправления реализуются как непосредственно населением городских и сельских поселений других территорий путем...
45333. Конституционно-правовой статус члена Совета Федерации и депутата Государственной Думы 25.69 KB
Конституционно-правовой статус члена Совета Федерации и депутата Государственной Думы Конституционно-правовой статус члена Совета Федерации и депутата Государственной Думы определяется Конституцией РФ ст. О статусе члена Совета Федерации и депутата Государственной Думы Федерального Собрания Российской Федерации. Депутатом Государственной Думы является избранный представитель народа уполномоченный осуществлять в Государственной Думе законодательные и иные полномочия предусмотренные Конституцией РФ и федеральным законом. Срок полномочий...
45334. Система законодательных (представительных) и исполнительных органов государственной власти субъектов Российской Федерации 20.8 KB
Система законодательных представительных и исполнительных органов государственной власти субъектов Российской Федерации устанавливается ими самостоятельно в соответствии с основами конституционного строя Российской Федерации и ФЗ от 06. Об общих принципах организации законодательных представительных и исполнительных органов государственной власти субъектов Российской Федерации.Образование формирование деятельность законодательных представительных и исполнительных органов государственной власти субъектов Российской Федерации их...
45335. Законодательный процесс в РФ 25.93 KB
В составе городского поселения также могут находиться сельские населенные пункты не имеющие статуса сельских поселений в которых местное самоуправление осуществляется населением непосредственно и или через выборные и иные органы местного самоуправления. Городской округ городское поселение которое не входит в состав муниципального района и органы местного самоуправления которого осуществляют полномочия по решению установленных законом вопросов местного значения поселения и вопросов местного значения муниципального района а также могут...
45336. Подходы к построению систем искусственного интеллекта 33 KB
Структурный подход Под структурным подходом подразумевается попытки построить искусственный интеллект путём моделирования структуры человеческого мозга. Основной моделируемой структурной единицей в персептронах как и в большинстве других вариантов моделирования мозга является нейрон. Позднее возникли и другие модели которые обычно называют нейронные сети. Эти модели различаются по строению отдельных нейронов по топологии связей между ними и по алгоритмам обучения.

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

Общее представление о микропроцессорах

Для управления или контроля определенными процессами требуется соответствующая поддержка программного обеспечения на реальной технической базе. В этом качестве выступает одна или набор микросхем на базовых матричных кристаллах. Для практических нужд почти всегда используются модули chip-set, то есть наборы микросхем, которые связаны общей системой питания, сигналами, форматами информационной обработки и так далее. В научной интерпретации, как отмечается в теоретических основах микропроцессорной техники, такие устройства представляют собой место (основная память) для хранения операндов и команд в закодированном виде. Непосредственное управление реализуется на более высоком уровне, но также через микропроцессора. Для этого используют контроллеры.

Говорить о контроллерах можно только применительно к микрокомпьютерам или микро-ЭВМ, состоящим из микропроцессоров. Собственно, это и есть рабочая техника, в принципе способная выполнять те или иные операции или команды в рамках заданного алгоритма. Как отмечается в учебнике по микропроцессорной технике Ливенцова С. Н., под микроконтроллером следует понимать компьютер, ориентированный на выполнение логических операций в рамках управления оборудованием. Он базируется на тех же схемах, но с ограниченным вычислительным ресурсом. Задача микроконтроллера в большей степени заключается в реализации ответственных, но простых процедур без сложных схем. Впрочем, технологически примитивными такие устройства тоже нельзя назвать, так как на современных производствах микроконтроллеры могут одновременно управлять сотнями и даже тысячами операций одновременно, учитывая и косвенные параметры их выполнения. В целом логическая структура микроконтроллера проектируется с расчетом на мощность, универсальность и надежность.

Архитектура

Разработчики микропроцессорных устройств имеют дело с набором функциональных компонентов, которые в итоге образуют единый рабочий комплекс. Даже простая модель микрокомпьютера предусматривает использование целого ряда элементов, обеспечивающих выполнение поставленных перед машиной задач. Способ взаимодействия между этими компонентами, а также средства коммуникации с входными и выходными сигналами во многом и определяют архитектуру микропроцессора. Что касается самого понятия архитектуры, то оно выражается разными определениями. Это может быть набор технико-физических и эксплуатационных параметров, среди которых число регистров памяти, разрядность, быстродействие и так далее. Но, в соответствии с теоретическими основами микропроцессорной техники, под архитектурой в данном случае следует понимать логическую организацию функций, реализуемых в процессе взаимосвязанной работы аппаратной и программной начинки. Более конкретно отражает следующее:

  • Совокупность физических элементов, которые образуют микропроцессор, а также связи между его функциональными блоками.
  • Форматы и способы предоставления информации.
  • Каналы обращения к доступным для использования модулям структуры с параметрами их дальнейшего применения.
  • Операции, которые может выполнять конкретный микропроцессор.
  • Характеристики управляющих команд, которые вырабатывает или принимает устройство.
  • Реакции на сигналы извне.

Внешние интерфейсы

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

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

Характеристики микропроцессора

К основным характеристикам микропроцессорных устройств можно отнести следующие:

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

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

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

Память в микропроцессорной технике

Хранение информации организуется с помощью специальных запоминающих устройств, выполненных из полупроводников. Это касается внутренней памяти, но также могут применяться внешние оптические и магнитные носители. Также элементы хранения данных на основе полупроводниковых материалов можно представить в качестве интегральных схем, которые включаются в состав микропроцессора. Такие ячейки памяти используются не только для хранения программ, но и для обслуживания памяти центрального процессора с контроллерами.

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

Функции

Спектр функций в значительной степени основывается на задачах, которые микропроцессор будет решать в рамках того или иного технологического процесса. Универсальный набор функций в обобщенном варианте можно представить так:

  • Чтение данных.
  • Обработка данных.
  • Обмен информацией с внутренней памятью, модулями или внешними подключенными устройствами.
  • Запись данных.
  • Ввод и вывод данных.

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

Производители устройств

У истоков создания микропроцессорных устройств стояли инженеры компании Intel, выпустившие целую линейку 8-разрядных микроконтроллеров на платформе MCS-51, которые в некоторых сферах применяются и сегодня. Также многие другие изготовители использовали семейство x51 для собственных проектов уже в рамках развития новых поколений электроники и микропроцессорной техники, в числе представителей которой значатся и отечественные разработки наподобие однокристальной ЭВМ К1816ВЕ51.

Выйдя в сегмент более сложных процессоров, фирма Intel уступила место микроконтроллеров другим компаниям, в числе которых оказались Analog Device и Atmel. Принципиально новый взгляд на архитектуру микропроцессоров предлагают фирмы Zilog, Microchip, NEC и др. На сегодняшний день в контексте развития микропроцессорной техники можно рассматривать линейки x51, AVR и PIC как наиболее успешные. Если же говорить о тенденциях разработки, то в наши дни на первое место выходят требования к расширению спектра задач внутреннего управления, компактности и низкому энергопотреблению. Иными словами, микроконтроллеры становятся меньше и рациональнее с точки зрения обслуживания, но при этом наращивают мощностный потенциал.

Обслуживание техники на базе микропроцессора

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

  • Фиксация сбоев в процессе работы системы и их анализ с определением причин нарушения.
  • Предупреждение отказов устройства и его компонентов за счет назначенного регламентного обслуживания.
  • Устранение отказов устройства путем ремонта поврежденных элементов или их замены на исправные аналогичные детали.
  • Производство своевременного ремонта компонентов системы.

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

Применение микропроцессорной техники

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

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

Несколько слов в заключение

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

Целью настоящей книги является – научить читателя основам микропроцессорной техники. Предполагается некий начальный уровень знаний в радиотехнике. Я определяю этот уровень, как специалист или любитель, знакомый с радио и импульсной техникой. В задачи этой книги не входит объяснение, что такое резисторы, конденсаторы или транзисторы. Предполагается, что читатель знаком с этим и с схемотехникой аналоговых устройств, но стремится узнать, что такое микропроцессорные устройства и научиться самому конструировать их. В начале книги раскрываются общие принципы цифрового представления сигнала, раскрываются такие понятия, как логические элементы, цифровой сигнал, принципы хранения и обработки цифровой информации. А так же описывается принцип работы тех элементов цифровой техники, которые понадобятся нам в дальнейшем, когда мы будем учиться строить микропроцессорную систему. Описание всех этих элементов дается в книге лишь в той мере, в которой это нужно для быстрого понимания основных принципов построения микропроцессорных систем. Для более полного понимания работы каждого элемента рекомендую обратиться к моему сайту под названием «Цифровые микросхемы и микропроцессоры» http:// www.mirmk.ru .

В качестве примера микропроцессорного устройства в данной книге взята реальная конструкция, разработанная автором – позиционер спутниковой антенны. Позиционер предназначен для автоматизации управления поворотом бытовой спутниковой антенны. Он способен запомнить до 99 позиций (направлений на спутник), а затем автоматически устанавливать антенну в любую из этих позиций. Для этого необходимо лишь выбрать номер этой позиции при помощи пульта дистанционного управления, либо при помощи кнопок на передней панели прибора. Схема и программа позиционера были разработаны автором книги. Опытный образец был изготовлен и испытан с применением стандартного фирменного поворотного устройства (мотор, редуктор, геркон-датчик) иностранного производства. Контроллер выполнен на основе микроконтроллера AT 89C 2051 фирмы Atmel (www.atmel.com или www.atmel.ru ). В связи с этим изучение микропроцессоров так же будет проводиться на примере процессора AT 89C 2051. В настоящее время фирма Atmel перешла на более современные процессоры типа AVR . Однако построение микропроцессорных устройств на данном процессоре с моей точки зрения вполне оправдано, так как его параметры прекрасно подходят для этой задачи, а цена процессора AT 89C 2051 существенно ниже по сравнению с любым процессором из семейства AVR .

В книге подробно разбирается принципиальная схема позиционера, каждого его узла. Затем приводится структура управляющей программы. Полный текст программы дается в приложении (дискета). В последних главах описываются основные приемы программирования, на примере конкретных программных модулей.

Автор надеется, что эта книга будет полезна широкому кругу специалистов и радиолюбителей и будет благодарен за любые замечания и комментарии по книге. Все замечания прошу высылать по адресу Крым, г. Симферополь, ул. Русская, 194 или по E -mail : avbelov@ ukr.net . Нужно заметить, что публикуемый здесь текст - это самый первый черновой вариант книги. Со времени его написания книга была написана полностью, издана в 2004 году. Затем книга претерпела довольно значительные изменения, выдержала уже около десяти переизданий. Самое последнее издание книги вы можете заказать в бумажном варианте по льготной цене перейдя на этом сайте на соответствующую страницу

Ликбез для начинающих

Глава 1. Что же такое микропроцессор.

Что же такое микропроцессор. И чем он отличается от микроконтроллера?

Вообще то процессор – это одна из составных частей компьютера. До того, как изобрели микропроцессор (то есть процессор на одной микросхеме) существовали целые процессорные блоки. В больших компьютерах. Для прояснения вопроса нужно понимать, что же такое компьютер. Компьютер – это устройство для автоматической обработки информации. Причем информация в компьютере представляется в виде чисел. Любая компьютерная система состоит из следующих основных частей: Процессор, Блок памяти, Порты ввода вывода. В нашу задачу не входит изучение древних видов компьютеров. В дальнейшем речь пойдет о микропроцессорах и микроконтроллерах. Итак:

ü Память. Это набор ячеек, в каждой из которых хранится одно число. Причем это не совсем то число, с которым мы с вами привыкли иметь дело. Это упрощенное компьютерное число. Обычно каждая ячейка памяти может хранить число принимающее значения от нуля до 255. Подробнее об этом будет рассказано ниже.

ü Порты ввода/вывода. Это некие микросхемы, при помощи которых микропроцессорная система может общаться с внешним миром. Через порты ввода компьютерная система получает информацию из вне, а через порты вывода она выдает результаты своей работы и управляет внешними устройствами. Только благодаря этим самым портам ввода/вывода к компьютеру, подключаются такие устройства, как клавиатура, мышь, дисководы, CD -ROM и т.д. Те читатели, которые знакомы с компьютерами, возможно, слышали термины «параллельный порт» (LPT ) и «последовательный порт» (COM ). Так вот в данном случае речь идет совсем о другом понятии. Это просто схожие термины. Параллельный и тем более последовательный порты компьютера – это целые, достаточно сложные схемы, которые в свою очередь управляются как раз таки при помощи портов ввода/вывода. Не нужно так же думать, что клавиатура и мышь используют только порты ввода, а дисплей порт вывода. Для управления большинством устройств компьютера используются как порты ввода, так и порты вывода микропроцессорной системы. Возможно, вы удивлены, что я называю внешними устройствами и жесткий диск и флоппи дисковод. Там, внутри компьютера, скрыто еще много устройств, которые по отношению к микропроцессору являются внешними, хотя находятся зачастую не только внутри компьютера, но и непосредственно на материнской плате – главной плате компьютера.

ü Процессор. Процессор – это самая главная часть, сердце всей системы. Он предназначен для того, что бы выполнять различные последовательности действий с числами в памяти и с данными в портах ввода/вывода. И всего то!

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

Рис. 1.

Что же может делать процессор с этими числами? Да то, что вообще с ними можно делать. Он может читать их из различных ячеек памяти, складывать, вычитать, сравнивать, затем записывать в те же или в другие ячейки памяти. Еще он может выполнять логические (Булевы) операции с числами (что это такое я подробно опишу ниже). Более мощные процессоры могут даже умножать и делить числа. Ну и кое, какие специальные операции, которые мы обязательно будем разбирать, когда будем подробнее изучать работу микропроцессора.

С портами ввода/вывода процессор делает гораздо меньше операций, чем с ячейками памяти. Ведь порты ввода – это устройства, на которые извне поступают какие либо электрические сигналы и процессор считывает их в виде все те же цифр. А порты вывода – это некие устройства, на которые процессор может подавать различные цифры. И эти цифры, превращаются в электрические сигналы, которые управляют, какими ни будь внешними устройствами.

Вот, в принципе и все, что может процессор. Но этого хватает, что бы выполнять все те чудеса, которые мы привыкли видеть от компьютеров. Оказывается все на свете можно описать цифрами. И текст, и изображение, и звуки, в том числе музыку. Хорошо поработали ученые – математики. Они сумели разработать математические модели всех этих процессов. Только считай по быстрее! А современные процессоры это могут! Конечно, современные процессоры имеют гораздо больший набор команд. Но, в основном, это специализированные групповые команды, заменяющие какой ни будь часто используемый набор более простейших. Наша книга не ставит перед собой задачи изучения современных микропроцессоров для персональных компьютеров. Наша задача – небольшие специализированные микропроцессорные устройства. Такие, как, например какой ни будь хитрый таймер, система управления стиральной машиной или блок управления спутниковой антенной. Они имеют общее название: микропроцессорные контроллеры. Вот на это и направим свой взор.

Ну, так что же это за такое чудесное устройство – микропроцессор. Он и читает и вычисляет и записывает и столько разных умных вещей делает! Как же он это все умеет. Видимо очень умная микросхема? На самом деле микропроцессор – это просто автомат, который выполняет, заложенные в нем операции по ПРОГРАММЕ. Программа – это последовательность команд для процессора, записана в той же самой памяти, то же в виде цифр. Иногда, правда память делится на две части: память программ и память данных. В процессоре заложен простой алгоритм. Сразу после включения или после прихода сигнала сброса (Reset ) процессор начинает читать из той области памяти, которая отведена для хранения программ, по очереди число за числом. Каждым таким числом закодирована команда. Команда – это одно из действий, которое может выполнить микропроцессор. Число, которым закодирована команда, называется код операции. Процессор читает код операции, выполняет эту операцию. Затем читает следующий код, опять выполняет. Так он последовательно читает эти коды и выполняет их. Это и есть процесс выполнения прграммы. А кто же записал эти коды в память? Программист! Программист сначала придумал программу. Затем записал ее в микросхему памяти. Вставил микросхему в микропроцессорную систему и включил питание. Система заработала. Вот вам и умная машина. Вульгарный автомат.

В микропроцессорных контроллерах для хранения программ используют так называемые постоянные запоминающие устройства (ПЗУ). По-английски это звучит как ROM (read only memory ). Они называются постоянными потому, что после записи туда информации она там не меняется. Запись – это специальный процесс, выполняемый при помощи специальных устройств – программаторов ПЗУ. Информация в них хранится за счет прожигания определенных областей микросхемы. Прошил раз и пользуешься этой информацией долгое время. Для хранения программы микропроцессорного контроллера это как раз очень подходит. Микропроцессор может только читать из такой памяти. Записать туда он ничего не сможет. Если же он попробует записать туда информацию, ничего страшного не произойдет. В памяти останется то, что там было до попытки записи. Кроме постоянного запоминающего устройства в системе должна быть обязательно память, выполненная на микросхемах оперативной памяти. То есть оперативное запоминающее устройство (ОЗУ). По-английски RAM . В эту память процессор может, записывать информацию, а затем читать ее. Ни одна программа не обходится без некоторого количества ячеек памяти для хранения множества промежуточных результатов и вспомогательных величин. Для этих целей и служит ОЗУ.

Ну а что же такое микроконтроллеры. Иногда мы читаем «Микроконтроллер AT 89C 2051». Микроконтроллер - это дитя дальнейшей интеграции, это целая микропроцессорная система на одном кристалле! Одна микросхема содержит в себе все составляющие микропроцессорной системы: память, порты ввода/вывода и собственно процессор. Кроме того, там часто располагаются некоторые внешние (по отношению к процессору) устройства (такие устройства часто называют «периферийными»): таймеры, устройства прерывания, компараторы и др. Значения этих, пока непонятных терминов вы узнаете из последующих глав. Вообще с понятиями «микропроцессор» и «микроконтроллер» существует некоторая путаница. То, что я сейчас назвал микроконтроллером, иногда тоже называют микропроцессором. Что бы понять - о чем идет речь, следите за контекстом подаваемой информации.

6.3.3. Программирование учебных задач

Начнем программирование учебных задач с написания программы, которая считывает состояние кнопки SB1 и выводит его на светодиодный индикатор VD2 так, что не нажатому состоянию кнопки (высокому уровню сигнала на входе RA4 ) соответствует светящееся состояние светодиода, и наоборот.

Листинг 12.2. (html , txt )

Листинг 12.2. (html , txt )

;основная программа

LOOP

CALL SB1_VD2 ;вызов подпрограммы SB1_VD2

;повторения процесса

GET_RA ;подпрограмма чтения состояния

;порта A

SB1_VD2 ;подпрограмма вывода на светодиод

;VD2 состояния кнопки SB1 (разряда 4

;регистра TEMPA)

GOTO P0 ;перейти на P0

;TEMPA,4=0 (кнопка нажата)

GOTO P1 ;перейти на P1

BCF VD2 ;погасить светодиод

RETURN

Листинг 12.2.

Основная программа содержит замкнутый цикл LOOP – GOTO LOOP , необходимый для периодического повторения цикла контроля состояния кнопки и вывода его на индикатор. Команда CLRWDT исключает влияние возможного сброса по переполнению сторожевого таймера на работу программы. Две следующие команды осуществляют вызов подпрограмм GET_RA и SB1_VD2 . Первая из них (GET_RA ) вначале считывает текущее состояние порта A , которое помещается в рабочий регистр W . Поскольку рабочий регистр может потребоваться при исполнении других команд, его состояние записывается в регистр TEMPA , используемый здесь для временного хранения состояния порта A . Таким образом, после возврата из подпрограммы GET_RA в разряде 4 регистра TEMPA содержится информация о состоянии кнопки SB1 : "1" – не нажата, "0" – нажата.

Подпрограмма SB1_VD2 TEMPA и, в зависимости от него, зажигает или гасит светодиод. В системе команд МК PIC16F84 нет команд условного перехода, поэтому для организации проверки того или иного условия используются команды, позволяющие пропустить выполнение следующей команды программы, в зависимости от состояния определенного бита в заданном регистре (BTFSS и BTFSC ). В частности, команда BTFSS TEMP,4 пропускает исполнение команды GOTO P0 , если TEMP,4 = 1 (кнопка не нажата). Тем самым реализуется команда BSF VD2 , которая зажигает светодиод VD2 . Затем анализируется условие TEMP,4 = 0 (кнопка нажата) и, если оно имеет место, светодиод гасится.

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

Рассмотрим более сложный вариант программы, предусматривающий зажигание светодиода VD2 только при следующем состоянии тумблеров и кнопок макета: SA1 = 1 , SA2 = 1 , SB1 = 1 и SB2 = 0 .

Листинг 12.3. (html , txt )

Листинг 12.3. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RA ; вызов подпрограммы GET_RA

CALL GET_RB ; вызов подпрограммы GET_RB

CALL ZAG_1110 ; вызов подпрограммы ZAG_1110

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

GET_RB ;подпрограмма чтения состояния

;порта B

MOVF PORTB,W ;чтение состояния порта B в W

MOVWF TEMPB ;пересылка W в TEMPB

RETURN

ZAG_1110 ;зажигает светодиод VD2 только при

;следующем состоянии тумблеров и

;кнопок макета:

;SA1 = SA2 = SB1 = 1 и SB2 = 0

BTFSS TEMPA,2 ;пропустить команду, если

GOTO P0 ;TEMPA,2=1

BTFSS TEMPA,3 ;пропустить команду, если

GOTO P0 ;TEMPA,3=1

BTFSS TEMPA,4 ;пропустить команду, если

GOTO P0 ;TEMPA,4=1

BTFSC TEMPB,0 ;пропустить команду, если

GOTO P0 ;TEMPB,0=0

BSF VD2 ;зажечь светодиод VD2

GOTO P1

BCF VD2 ;погасить светодиод VD2

RETURN

INCLUDE GET_RA.ASM

Листинг 12.3.

Подпрограммы GET_RA и GET_RB помещают в регистры TEMPA и TEMPB текущие состояния портов A и B , соответственно. Подпрограмма ZAG_1110 анализирует состояния разрядов 2,3 и 4 регистра TEMPA и разряда 0 регистра TEMPB , и при условии TEMPA,2,3,4 = 1,1,1 и TEMPB,0 = 0 , зажигает светодиод VD2 . При невыполнении хотя бы одного из этих условий светодиод гасится.

Использование директивы INCLUDE GET_PORTA.ASM позволяет включать уже отлаженные модули подпрограмм в текущую программу. Для того чтобы этой возможностью можно было воспользоваться, необходимо сохранять отлаженные модули в виде отдельных ассемблерных файлов.

Попробуем теперь использовать семисегментный индикатор для контроля состояния тумблеров макета. Вначале напишем программу, которая выводит на индикатор HL семисегментное изображение любого двоичного числа от 0b до 1111b в шестнадцатиричном представлении.

Листинг 12.4. (html , txt )

Листинг 12.4. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

MOVLW 0x0A ;пересылка константы 0A в W

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

SEV_SEG ;подпрограмма обслуживания

;семисегментного индикатора

ANDLW 0x0F ;маскирование 4-х младших разрядов

;W и обнуление 4-х старших

ADDWF PCL,F ;сложение W с PCL и пересылка

;результата в PCL

RETLW 0x80 ;возврат из подпрограммы с 80 в W

RETLW 0xF2 ;возврат из подпрограммы с F2 в W

RETLW 0x48 ;возврат из подпрограммы с 48 в W

RETLW 0x60 ;возврат из подпрограммы с 60 в W

RETLW 0x32 ;возврат из подпрограммы с 32 в W

RETLW 0x25 ;возврат из подпрограммы с 25 в W

RETLW 0x04 ;возврат из подпрограммы с 04 в W

RETLW 0xF0 ;возврат из подпрограммы с F0 в W

RETLW 0x00 ;возврат из подпрограммы с 00 в W

RETLW 0x20 ;возврат из подпрограммы с 20 в W

RETLW 0x10 ;возврат из подпрограммы с 10 в W

RETLW 0x06 ;возврат из подпрограммы с 06 в W

RETLW 0x8C ;возврат из подпрограммы с 8C в W

RETLW 0x42 ;возврат из подпрограммы с 42 в W

RETLW 0x0C ;возврат из подпрограммы с 0C в W

RETLW 0x1C ;возврат из подпрограммы с 1C в W

Листинг 12.4.

Программа начинает свою работу с пересылки константы 0x0A в рабочий регистр W . Затем производится вызов подпрограммы обслуживания семисегментного индикатора SEV_SEG . Работа подпрограммы SEV_SEG начинается с маскирования 4-х младших разрядов W и обнуления 4-х старших. Тем самым из анализа исключаются старшие разряды передаваемого из рабочего регистра W числа. Затем маскированное содержимое регистра W добавляется к текущему состоянию младшего байта счетчика команд PCL , и результат помещается в PCL . Таким образом, производится дополнительное смещение счетчика команд на величину, которая была передана в рабочем регистре. Например, если было W=0 , то содержимое счетчика команд не изменится, и будет выполнена следующая команда RETLW 0x80 0x80 = B"1000000" в регистр W . Если, как было в при веденной программе, W=0A , то к содержимому PCL будет добавлено число 0x0A , и произойдет дополнительное смещение на 10 шагов. В результате будет выполнена команда RETLW 0x10 , которая вызовет возврат из подпрограммы с записью 0x10 = B"0001000" в регистр W .

После возврата из подпрограммы производится пересылка W в PORTB и отображение его состояния на семисегментном индикаторе HL . В частности, если W = 0 , то при выводе 1000000b на порт B семисегментный индикатор покажет 0 , а при W = A покажет A .Таким образом, может быть отображено любое 4-разрядное двоичное число.

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

Используя подпрограмму SEV_SEG , напишем теперь программу, которая читает состояния тумблеров SA1 и SA2 и выводит на индикатор соответствующее число.

Листинг 12.5. (html , txt )

Листинг 12.5. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RA ; вызов подпрограммы GET_RA

RRF TEMPA,F ;сдвиг вправо на один разряд

;через перенос

RRF TEMPA,W ;сдвиг вправо на один разряд

;через перенос

ANDLW 0x03 ;маска на два младших разряда

CALL SEV_SEG ; вызов подпрограммы SEVEN_SEG

MOVWF PORTB ; пересылка W в PORTB

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

INCLUDE GET_RA.ASM

INCLUDE SEV_SEG.ASM

Листинг 12.5.

Подпрограмма GET_RA помещает в регистр TEMPA текущее состояние порта A . Таким образом, в разрядах 2 и 3 регистра TEMPA хранится текущее состояние тумблеров SA1 и SA2 . Для того чтобы биты состояния тумблеров заняли позиции 0 и 1 регистра TEMPA , производится два сдвига вправо через перенос, причем результат второго сдвига помещается в регистр W . Затем накладывается маска на два младших разряда рабочего регистра и производится вызов подпрограммы SEV_SEG . После выхода из подпрограммы результат подается на порт B и отображается на индикаторе.

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

Листинг 12.6. (html , txt )

Листинг 12.6. (html , txt )

;основная программа

MOVLW 0xL ;пересылка константы H"L" в W

CALL DELAY ;вызов подпрограммы DELAY

DELAY ;подпрограмма формирования

;задержки времени

LOOPD

RETURN ;возврат из подпрограммы

Листинг 12.6.

Основная программа производит вызов подпрограммы DELAY с некоторой константой L в рабочем регистре W , определяющей число внутренних циклов подпрограммы. Подпрограмма DELAY начинает свою работу с загрузки содержимого рабочего регистра в регистр пользователя COUNT1 . Команда DECFSZ COUNT1,F уменьшает на единицу содержимое регистра COUNT1 и проверяет его на равенство нулю. Нулевое состояние регистра COUNT1 приводит к выходу из цикла и возврату из подпрограммы. Для исполнения каждого внутреннего цикла требуется три машинных цикла МК (1 цикл на исполнение команды DECFSZ при ненулевом результате и 2 цикла на каждую команду GOTO ). Выход из подпрограммы DELAY потребует 4-х циклов (2 цикла на исполнение команды DECFSZ при нулевом результате и 2 цикла на RETURN ). Если добавить к этому еще 4 цикла, необходимых для загрузки константы в рабочий регистр, вызова подпрограммы и загрузки регистра пользователя COUNT1 , то общее время исполнения подпрограммы DELAY (задержка) составит

TD = 4 + 3*(L – 1) + 4 = 5 + 3*L циклов,

где L – константа, переданная через рабочий регистр в подпрограмму DELAY .

L = H"00" = .0 максимальный формируемый интервал времени составит 1,55 мс. Такой результат связан с тем, что команда DECFSZ сначала декрементирует содержимое регистра (H"00" – 1 = H"FF" ), а затем уже анализирует результат.

Минимальный формируемый интервал времени составит при тех же условиях 5 циклов или 10 мкс. Для получения такого интервала необходимо перед вызовом подпрограммы DELAY загрузить в рабочий регистр число 0x01 .

Для расширения верхней границы формируемых временных интервалов, а также с целью повышения удобства работы с подпрограммой, можно добавить в цикл LOOPD одну или несколько дополнительных команд, в качестве которых чаще всего используется команда NOP . Для примера рассмотрим подпрограмму формирования задержки времени DELAY_C

Листинг 12.7. (html , txt )

Листинг 12.7. (html , txt )

DELAY_C ;подпрограмма формирования

;задержки времени (вариант C)

LOOPD

NOP ;пустая команда

GOTO LOOPD ;повторение цикла H"L" раз

RETURN ;возврат из подпрограммы

Листинг 12.7.

Общее время исполнения подпрограммы DELAY_C , включая ее вызов, составит

TD = 4 + 4*(L – 1) + 4 = 4 + 4*L циклов.

При тактовой частоте fosc = 2МГц и загрузке константы L = H'F9' = .249 формируемый интервал времени составит ровно 2 мс. Уменьшение константы на единицу уменьшает формируемый временной интервал на 8 мкс. В частности, при L = .124 образуется задержка в 1 мс.

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

Листинг 12.8. (html , txt )

Листинг 12.8. (html , txt )

;основная программа

MOVLW 0xL ;пересылка константы H'L' в W

CALL DELAY_D ;вызов подпрограммы DELAY_D

DELAY_D ;подпрограмма формирования

;большой задержки времени (вариант D)

LOOPD

CLRWDT ;сброс сторожевого таймера

RETURN ;возврат из подпрограммы

Листинг 12.8.

DELAY_D составляет 3*256 + 4

TD = 5 + (3*256 + 4)*L циклов.

При тактовой частоте fosc = 2МГц время цикла равно tц = 2 мкс, поэтому при загрузке L = H'00' = .0 максимальный формируемый интервал времени составит около 0,4 с.

Поскольку формируемый интервал времени достаточно велик, во внешний цикл включена команда сброса сторожевого таймера.

Интервал времени 0,4 с не совсем удобен для получения задержек времени, кратных секунде, поэтому рассмотрим еще один вариант подпрограммы формирования больших задержек времени с дополнительной командой NOP во внутреннем цикле.

Листинг 12.9. (html , txt )

Листинг 12.9. (html , txt )

DELAY_E ;подпрограмма формирования

;большой задержки времени (вариант E)

CLRF COUNT1 ;сброс содержимого регистра COUNT1

LOOPD

NOP ;пустая команда

GOTO LOOPD ;повторение цикла 256 раз

CLRWDT ;сброс сторожевого таймера

GOTO LOOPD ;повторение цикла H'L' раз

RETURN ;возврат из подпрограммы

Листинг 12.9.

Время исполнения внутреннего цикла подпрограммы DELAY_E составляет 4*256 + 4 машинных циклов МК, поэтому общая задержка составит

TD = 5 + (4*256 + 4)*L циклов.

При тактовой частоте fosc = 2МГц и при загрузке L = H'F3' = .243 формируемый интервал времени составит около 0,5 с при погрешности не более 0,2%. Если необходима более высокая точность, можно вставить необходимое количество пустых операций во внешний цикл формирования задержки.

Рассмотрим далее несколько программ с использованием подпрограмм формирования задержки времени. Начнем с написания программы, которая подает звуковой сигнал на динамик BA1 при нажатии на кнопку SB1 . Динамик будет звучать только в том случае, если на выход RA0 будет подан периодически изменяющийся сигнал. Для того чтобы звук был хорошо слышен, его частота должна находиться вблизи максимума слышимости человеческого уха. Выберем частоту звучания равной 1 КГц, что соответствует периоду следования импульсов сигнала 1 мс.

Листинг 12.10. (html , txt )

Листинг 12.10. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET _ RA ;вызов подпрограммы GET _ PORTA

CALL SB1_BA1 ;вызов подпрограммы SB1_BA1

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

SB1_BA1 ;подпрограмма подачи звука на

;динамик BA1 при нажатии на кнопку

;SB1

BTFSC TEMPA,4 ;пропустить команду, если

;TEMPA,4=0 (кнопка нажата)

GOTO B0 ;перейти на B0

BSF BA1 ;подача высокого уровня на RA0

;H'3E' = .62 в W

BCF BA1 ;подача низкого уровня на RA0

MOVLW 0x3E ;пересылка константы

;H'3E' = .62 в W

CALL DELAY_C ;вызов подпрограммы DELAY_C

RETURN

INCLUDE GET_RA.ASM

INCLUDE DELAY_C.ASM

Листинг 12.10.

Как и раньше, подпрограмма GET_RA считывает текущее состояние порта A, которое затем передается в регистр TEMPA . Подпрограмма SB1_BA1 анализирует состояние разряда 4 регистра TEMPA и, в зависимости от результата, озвучивает динамик BA1 или нет. Необходимая выдержка линии RA0 в единичном и нулевом состояниях обеспечивается подпрограммой DELAY_C с параметром L = H'3E' = .62 . Это соответствует времени задержки около 0,5 мс, что и дает в результате необходимую частоту следования сигнала 1 Кгц.

Рассмотрим далее программу, которая заставляет мигать светодиод VD2 при нажатии на кнопку SB1 . Для того чтобы мигания были хорошо видны, выберем их частоту равной 1 Гц.

Листинг 12.11. (html , txt )

Листинг 12.11. (html , txt )

;основная программа

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RA ; вызов подпрограммы GET_RA

CALL SB1_VD2M ;вызов подпрограммы

;SB1_VD2M

GOTO LOOP ;переход к метке LOOP для

;повторения процесса

SB1_VD2M ;подпрограмма мигания светодиода

;VD2 при нажатии на кнопку SB1

BTFSC TEMPA,4 ;пропустить команду, если

;TEMPA,4=0 (кнопка нажата)

GOTO V0 ;перейти на V0

BSF VD2 ;зажечь светодиод VD2

;H'F3' = .243 в W

BCF VD2 ;погасить светодиод

MOVLW 0xF3 ;пересылка константы

;H'F3' = .243 в W

CALL DELAY_E ;вызов подпрограммы DELAY_E

BTFSS TEMPA,4 ;пропустить команду, если

;TEMPA,4=1 (кнопка не нажата)

GOTO V1 ;перейти на V1

BCF VD2 ;погасить светодиод

RETURN

INCLUDE GET_RA.ASM

INCLUDE DELAY_E.ASM

Листинг 12.11.

Программа работает почти так же, как и предыдущая. Первое отличие заключается в том, что светодиод принудительно гасится при не нажатой кнопке. Второе отличие заключается в величине интервала времени, который составляет здесь 0,5 с и формируется подпрограммой DELAY_E .

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

Аппаратные способы борьбы с "дребезгом" контактов основаны на использовании RS-триггеров, одновибраторов или триггеров Шмитта. В устройствах на основе МК подавление "дребезга" контактов обычно осуществляется программными способами, которые основаны на повторном считывании состояния линии порта через определенное время.

В качестве примера рассмотрим "бездребезговый" вариант подпрограммы чтения состояния порта A .

Листинг 12.12. (html , txt )

Листинг 12.12. (html , txt )

GET_RAD ;подпрограмма чтения состояния

;порта A в регистр TEMPA

;с подавлением "дребезжания"

MOVF PORTA,W ;чтение состояния порта A в W

ANDLW 0x1C ;наложение маски b'00011100'

;на неиспользуемые биты W

MOVWF TEMPA ;пересылка W в TEMPA

CLRWDT ;сброс сторожевого таймера WDT

MOVLW 0x0A ;пересылка константы

;H'0A' = .10 в W

CALL DELAY_E ; вызов подпрограммы DELAY_E

MOVF PORTA,W ;чтение состояния порта A в W

ANDLW 0x1C ;наложение на W маски b'00011100'

SUBWF TEMPA,W ;вычитание W из TEMPA

BTFSS Z ;пропустить команду, если результат

;нулевой

GOTO DD ;перейти на метку DD

RETURN

INCLUDE DELAY_E.ASM

Листинг 12.12.

Суть работы подпрограммы заключается в повторном чтении состояния порта A спустя некоторое время после предыдущего и сравнении его с прежним значением. Константа H'0A' = .10 , пересылаемая в регистр W перед вызовом подпрограммы DELAY_E , обеспечивает значение задержки времени около 20 мс - этого, как правило, достаточно для завершения переходных процессов при переключении механических коммутаторов. Маскирование неиспользуемых разрядов порта повышает надежность работы подпрограммы. Сброс сторожевого таймера перед вызовом подпрограммы задержки нужен для исключения сброса МК между двумя процедурами опроса порта A .

Рассмотрим теперь работу программы, которая использует некоторые из разработанных ранее подпрограмм. Пусть целью работы программы является подсчет числа нажатий на кнопку SB1 с выводом результата на семисегментный индикатор в шестнадцатиричном коде.

Листинг 12.13. (html , txt )

Листинг 12.13. (html , txt )

;основная программа

CLRF COUNT3 ;сброс счетчика нажатий

LOOP

CLRWDT ;сброс сторожевого таймера

CALL GET_RAD ;вызов подпрограммы GET_RAD

BTFSC TEMPA,4 ;проверка нажатия SB1

GOTO LOOP ;если не нажата – возврат

;на метку LOOP

INCF COUNT3,F ;инкремент счетчика

MOVF COUNT3,W ;пересылка содержимого

;счетчика в рабочий регистр

CALL SEV_SEG ;вызов подпрограммы SEV_SEG

MOVWF PORTB ;пересылка W в PORTB

TEST

CALL GET_RAD ; вызов подпрограммы GET_RAD

BTFSS TEMPA,4 ;проверка нажатия SB1

GOTO TEST ;если еще нажата – возврат

;на метку TEST

GOTO LOOP ;возврат на метку LOOP

INCLUDE GET_RAD.ASM

INCLUDE SEV_SEG.ASM

Листинг 12.13.

Приведенные в главе программы не охватывают и малой доли возможностей, которые предоставляет даже такой простой макет, как изображенный на рис. 6.3 . Однако их освоение, надеюсь, будет полезным для начинающих пользователей PIC-контроллеров.



 

Пожалуйста, поделитесь этим материалом в социальных сетях, если он оказался полезен!