Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

shpora_mpt_4_shrift_1

.pdf
Скачиваний:
30
Добавлен:
18.02.2016
Размер:
685.48 Кб
Скачать

1.

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

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

2.Шинная структура связей в МПС.При классической структуре связей (рис. 1) все сигналы и коды между устройствами передаются по отдельным линиям связи. Каждое устройство, входящее в систему, передает свои сигналы и коды независимо от других устройств. При этом в системе

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

принимают и передают информацию по одним и тем же правилам (протоколам обмена информацией по шине). Существенный недостаток с вязан с тем, что все устройства подключаются к каждой линии связи параллельно. Поэтому любая неисправность любого устройства может вывести из строя всю систему. По этой же причине отладка системы с шинной структурой связей довольно сложна и обычно требует специального оборудования. В системах с шинной структурой связей применяют все три существующие разновидности выходных каскадов цифровых микросхем: 1) стандартный выход или выход с двумя состояниями (обозначается 2С, 2S, реже ТТЛ, TTL);2) выход с открытым коллектором (обозначается ОК, ОС); 3) выход с тремя состояниями или (что то же самое) с возможностью отключения (обозначается ЗС, 3S). Упрощенно эти три типа выходных каскадов могут быть представлены в виде

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

3.Режимы работы МПС.Практически любая развитая микропроцессорная система (в том числе и компьютер) поддерживает три основных режима обмена по сис темной магистрали: 1)программный обмен информацией; 2)обмен с использованием прерываний; 3) обмен с использованием прямого доступа к памяти (ПДП). Программный обмен информацией явл. основным в любой микропроцессорной системе. Он предусмотрен всегда, без него невозможны другие режимы обмена. В этом реж име все операции (циклы) обмена информацией инициируются только процессором, все они выполняются строго в порядке, предписанном исполняемой программой. Процессор читает (выбирает) из памяти коды команд и исполняет их, читая данные из памяти или из устройства ввода/вывода, обрабатывая их, записывая данные в память или передавая их в устройство ввода/вывода. Путь процессора по программе может быть линейным, циклическим, может содержать переходы (прыжки), но он всегда непрерывен и полностью находится под контролем процессора. Ни на какие внешние события, не связанные с программой, процессор не реагирует. Все сигналы на магистрали в данном случае контролируются процессором. Обмен по прерываниям используется тогда, когда необходима реакция микропроцессорной системы на какое-то внешнее событие, на приход внешнего сигнала. В общем случае организовать реакцию на внешнее событие можно тремя различными путями: 1. с помощью постоянного программного контроля факта наступления события (так называемый метод опроса флаг); 2. с помощью прерывания, то есть насильственного перевода процессора с выполнения текущей программы на выполнение экстренно необходимой программы; 3. с помощью прямого доступа к памяти, то есть без участия процессора при его отключении от системной магистрали. Первый случай с опросом флага реализуется в микропроцессорной системе постоянным чтением информации процессором из устройства ввода/вывода, связанного с тем внешним устройством, на поведение которого необходимо срочно реагировать. Во втором случае в режиме прерывания процессор, получив запрос прерывания от внешнего устройства, заканчивает выполнение текущей команды и переходит к программе обработки прерывания. Закончив выполнение программы обработки прерывания, он возвращается к прерванной программе с той точки, где его прервали. Здесь важно то, что вся работа, как и в случае программного режима, осуществляется самим процессор ом, внешнее событие просто временно отвлекает его. Реакция на внешнее событие по прерыванию в общем случае медленнее, чем при программном режиме. Как и в случае программного обмена, здесь все сигналы на магистрали выставляются процессором, то есть он полно стью контролирует магистраль. В третьем случае рассматривается прямой доступ к памяти (ПДП) — это режим, принципиально отличающийся от двух ранее рассмотренных режимов тем, что обмен по системной шине идет без участия процессора. Внешнее устройство, требующ ее обслуживания, сигнализирует процессору, что режим ПДП необходим, в ответ на это процессор заканчивает выполнение текущей команд ы и отключается от всех шин, сигнализируя запросившему устройству, что обмен в режиме ПДП можно начинать. Операция ПДП сводится к пересылке информации из устройства ввода/ вы вода в память или же из памяти в устройство ввода/вывода. Когда пересылка информации будет закончена, процессор вновь возвращается к прерванной программе, продолжая ее с той точки, где его прервали. Как и в случае прерываний, реакция на внешнее событие при ПДП существенно медленнее, чем при программном режиме.

4.Одношинная (фон-неймановская) и двухшинная (гарвардская) архитектура МПС. Архитектура с общей шиной (принстонская, фон-неймановская) проще, чем двухшинная (гарвардская) архитектура. Она не требует от процессора одновременного обслуживания двух шин, контроля

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

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

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

5.Типы МПС.Диапазон применения микропроцессорной техники сейчас очень широк, требования к микропроцессорным системам предъявляются самые разные. Поэтому сформировалось несколько типов микропроцессорных систем, различающихся мощностью, универсальностью, быстродействием и структурой отличиями. Основные типы следующие:•микроконтроллеры — наиболее простой тип микропроцессорных систем, в которых все или большинство узлов системы выполнены в виде одной микросхемы;•контроллеры — управляющие микропроцессорные системы, выполненные в виде отдельных модулей;•микрокомпьютеры — более мощные микропроцессорные системы с развитыми средствами сопряжения с внешними устройствами. •компьютеры (в том числе персональные) — самые мощные и наиболее универсальные микропроцессорные системы.

Четкую границу между этими типами иногда провести довольно сложно. Быстродействие всех типов микропроцессоров постоянно растет, и нередки ситуации, когда новый микроконтроллер оказывается быстрее, например, устаревшего персонального компьютера. Но кое-какие принципиальные отличия все-таки имеются.Микроконтроллеры представляют собой универсальные устройства, которые практически всегда используются не сами по себе, а в составе более сложных устройств, в том числе и контро ллеров. Системная шина микроконтроллера скрыта от пользователя внутри микросхемы. Возможности подключения внешних устройств к микроконтроллеру ограничены. Устройства на микроконтроллерах обычно предназначены для решения одной задачи.Контроллеры, как правило, создаются для решения какой-то отдельной задачи или группы близких задач. Они обычно не имеют возможностей подключения дополнительных узлов и устройств, например, большой памяти, средств ввода/вывода. Их системная шина чаще всего недоступна пользователю . Структура контроллера проста и оптимизирована под максимальное быстродействие. В большинстве случаев выполняемые программы хранятся в постоянной памяти и не меняются. Конструктивно контроллеры выпускаются в одноплатном варианте.Микрокомпьютеры отличаются от контроллеров более открытой структурой, они допускают подключение к системной шине нескольких дополнительных устройств. Производятся микрокомпьютеры в каркасе, корпусе с разъемами системной магистрали, доступными пользователю. Микрокомпьютеры могут име ть средства хранения информации на магнитных носителях (например, магнитные диски) и довольно развитые средства связи с пользователем (видеомонитор, клавиатура). Микрокомпьютеры рассчитаны на широкий круг задач, но в отличие от контроллеров, к каждой новой задаче его надо приспосабливать заново. Выполняемые микрокомпьютером программы можно легко менять.Наконец, компьютеры и самые распространенные из них — персональные компьютеры — это самые универсальные из микропроцессорных систем. Они обязательно предусматривают возможность модернизации, а также широки е возможности подключения новых устройств. Их системная шина, конечно, доступна пользователю. Кроме того, внешние устройства могут подключаться к компьютеру через несколько встроенных портов связи (количество портов доходит иногда до 10). Компьютер всегда имеет сильно развитые средства связи с пользователем, средства длительного хранения информации большого объема, средства связи с другими компьютерами по информационным сетям. Области применения компьютеров мог ут быть самыми разными: математические расчеты, обслуживание доступа к базам данных, управление работой сложных электронных систем, компьютерные игры, подготовка документов и т.д.Любую задачу в принципе можно выполнить с помощью каждого из перечисленных т ипов микропроцессорных систем. Но при выборе типа надо по возможности избегать избыточности и предусматривать необходимую для данной задачи гибкость системы.

6.Шины МПС. Синхронный и асинхронный обмен. Мультиплексирование шин.Для достижения максимальной универсальности и упрощения протоколов обмена информацией в микропроцессорных системах применяется так называемая шинная структура связей между отдельными

устройствами, входящими в систему. Все устройства МПС связаны между собой системной магистралью, которая включает в себя 4 шины нижнего уровня. 1) Шина адреса (AddressBus). Служит для определения адреса устройства в системе. Процессор выставляет на шине адрес устройства с которым будет вести обмен информацией, устройство, опознав свой адрес готовится к обмену информацией, после чего этот обмен происходит. Количество адресов, которое может обеспечить шина адреса, определяется как 2N, где N – количество разрядов шин. Шина адреса может быть однонаправленной, либо двунаправленной. 2) Шина данных (DataBus) Основная шина. По ней передаются коды данных между всеми устройствами системы. Количество линий связи этой шины (разрядов) оп ределяет скорость и эффективность информационного обмена. Когда указывают

количество разрядов системной магистрали – имеют ввиду количество разрядов шины данных. Шина данных всегда двунаправлена. 3) Шина управления (ControlBus) Служит для передачи управляющих сигналов внутри системы. Главные управляющие сигналы – это стробы обмена. Чаще всего в магистрали используются два различных строба обмена: Строб записи (вывода), который определяет момент времени, когда устройство-исполнитель может принимать данные, выставленные процессором на шину данных;Строб чтения (ввода), который определяет момент времени, когда устройство-исполнитель должно выдать на шину данных код данных, который будет прочитан процессором. Они формируются процессором и опреде ляют моменты времени, в которые происходит обмен информацией. Линии шины управления могут быть как однонаправленными, так и двунаправленными. 4) Шина питания (PowerBus) Состоит из отдельных линий питания и общего проводника. Каждому напряжению питания соответствует своя линия. В шинах адреса и данных может использоваться как положительная, так и отрицательная логика. При положительной логике, высокий уровень напряжения соответствует «1», нозкий – «0». При отрицательной – наоборот. Большое значение имеет то, как процессор заканчивает обмен в пределах цикла, в какой момент он снимает свой строб обмена. Возможны два пути решения: При синхронном обмене процессор заканчивает обмен данными самостоятельно, через раз и навсегда установленный временной интервал выдержки (tвыд), то есть без учета интересов устройства-исполнителя; При асинхронном обмене процессор заканчивает обмен только тогда, когда устройство-исполнитель подтверждает выполнение операции специальным сигналом (так называемый режим handshake — рукопожатие). Достоинства синхронного обмена — более простой протокол обмена, меньшее количество управляющих сигналов. Недостатки — отсутствие гарантии, что исполнитель выполнил требуемую операцию, а также высокие требования к быстродействию исполнителя. Достоинства асинхронного обмена — более надежная пересылка данных, возможность работы с самыми разными по быстродействию исполнителями. Недостаток — необходимость формирования сигнала подтверждения всеми исполнителями, то есть дополнительные аппаратурные затраты. По используемому типу обмена магистра ли микропроцессорных систем также делятся на синхронные и асинхронные. Для снижения общего количества линий связи магистрали часто применяется мультиплексирование шин адреса и данных. То есть одни и те же линии связи используются в разные моменты времени для передачи как адреса, так и дан ных (в начале цикла — адрес, в конце цикла — данные). Для фиксации этих моментов (стробирования) служат специальные сигналы на шине управления. Понятно, что мультиплексированная шина адреса/данных обеспечивает меньшую скорость обмена, требует более длительного цикла обмена. По типу шины адреса и шины данных все магистрали также делятся на мультиплексированные и немультиплексированные.

7.Циклы обмена информацией.Циклы программного обмена: Обмен по асинхронной мультиплексированной магистрали. Процессор в фазе адреса выставляет на шину адреса код устройства с которым будет вести обмен информацией и подтверждает данный код сигналом SYNC.

Устройство – исполнитель, опознав свой адрес готовится к операции обмена.Процессор выставляет сигнал готовности чтения информации, в ответ на него устройство – исполнитель выставляет на шину адреса данных код данных и подтверждает эту операцию сигналом RPLY.Процессор считывает данные, снимает сигнал DIN, устройство снимает сигнал RPLY и данные.Заканчивается цикл обмена снятием сигнала SYNC.Циклы обмена по прерываниям: Циклы обмена в режиме прерываний строятся по тем же принципам, что и циклы программного обмена, но имеют ряд специфических особенностей. Прерывания в микропроцессорных системах бывают двух основных типов: векторные прерывания, которые требуют проведения цикла чтения по магистрали; радиальные прерывания, которые не требуют никакого цикла обмена по магистрали. Дело в том, что прерываний в микропроцессорной системе обычно бывае т много. Поэтому процессору необходима информация о номере (или, как еще говорят, об адресе вектора) конкретного прерывания. Эта информация может быть передана процессо ру двумя путями. При векторном прерывании код номера прерывания передается процессору тем устройством ввода/вывода, которое данное прерывание запросило. Для этого процессор проводит цикл чтения по магистрали, и по шине данных получает код номера прерывания. Шина адреса в данном цикле обычно не используется, так как устройство, запросившее прерывание, и так знает, что процессор будет обращаться именно к нему. В этом случае в магистрали достаточно всего одной линии запроса прерывания для всех устройств ввода/вывода. При радиальном прерывании в магистрали имеется столько линий запроса прерывания, сколько всего может быть разных прерываний. То есть каждое устройство ввода/вывода, желающее использовать прерывание, подает сигнал запроса прерывания по своей отдельной линии.

Процессор узнает о номере прерывания по номеру линии, по которой пришел сигнал запроса прерывания. Никаких циклов обмена по магистрали при этом не требуется. В случае радиальных прерываний в систему обычно включается дополнительная микросхема кон троллера прерываний, обрабатывающая сигналы запросов прерываний. Векторные прерывания обеспечивают системе большую гибкость, в си стеме их может быть очень много. Но зато они требуют дополнительных аппаратурных узлов во всех устройствах, запрашивающих прерывания, для обслуживания циклов безадресного чтения. Радиальных прерываний в системе обычно не очень много (от 1 до 16). При этом типе прерываний, как правило, требуется введение в систему специального контроллера прерываний. Каждое радиальное прерывание требует введения дополнительной линии в шину управления системной магистрали. Но работать с радиальными прерываниями проще, так как все сводится только к выработке единственного сигнала, и никаких циклов обмена по магистрали не требуется. Циклы обмена в режиме прямого доступа к памяти: выполняются по тем же правилам, что и циклы программного обмена, и циклы предоставления прерываний. Прежде чем начать обмен в режиме ПДП, устройство, которому необходим ПДП, должно запросить ПДП и получить его. Процедура запроса и предоставления ПДП очень похожа на процедуру запроса и предоставления прерывания. В обоих случаях устройство, требующее обслуживания, посылает сигнал запроса процессору. Однако в случае ПДП процессор обязательно должен предоставить ПДП запросившему устройству с помощью специальных сигналов, так как на время ПДП процессор отключается от магистрали. А при радиальных прерываниях предоставления прерывания от процессора не требуется.

8.Функции устройств магистрали.Функции процессора: АЛУ – арифметико-логическое устройство, предназначено для обработки информации в соответствии с полученной командой. Регистры RG представляют собой ячейки памяти и служат для временного хранения различных кодов

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

начинает работу после включения питания и после сброса его с помощью сигнала RESET. Память для стека или стек (Stack) — это часть оперативной памяти, предназначенная для временного хранения данных в режиме LIFO (LastIn — FirstOut). Таблица векторов прерываний. Под прерыванием в общем случае понимается не только обслуживание запроса внешнего устройства, но и любое нарушение последовательной работы процессора. Люб ое прерывание обрабатывается через таблицу векторов (указателей) прерываний. В этой таблице в простейшем случае находятся адреса начала программ обработки прерываний, которые и называются векторами. Длина таблицы может быть довольно большой (до

нескольких сот элементов). Обычно таблица векторов прерываний располагается в начале пространства памяти (в ячейках памяти с малыми адресами). Адрес каждого вектора представляет собой номер прерывания. Функции устройств ввода\вывода: Устройства ввода/вывода обмениваются информацией с магистралью по тем же принципам, что и память. Наиболее существенное отличие с точки зрения органи зации обмена состоит в том, что модуль памяти имеет в адресном пространстве системы много адресов (до нескольких десятков миллионов), а устройство ввода/вывода обычно имеет немного адресов (обычно до десяти), а иногда и всего один адрес. Самые простейшие устройства ввода /вывода выдают на внешнее устройство код данных в параллельном формате и принимают из внешнего устройства код данных в параллельном формате. Такие устройства ввода/ вывода часто называют параллельными портами ввода/вывода. Они наиболее универсальны, то ест ь удовлетворяют потребности сопряжения с большим числом внешних устройств, поэтому их часто вводят в состав микропроцессорной системы в качестве стандартных устройств. Параллельные порты обычно имеются в составе микроконтроллеров. Именно через параллельные порты микроконтроллер связывается с внешним миром. В составе МПС можно выделить 3 спец. группы устройств ввода \вывода: 1)Устройства интерфейса пользователя. К устройствам ввода для интерфейса пользователя относятся контроллеры клавиатуры, тумблеров, отдельных кнопок, мыши, трекбола, джойстика и т.д. К устройствам вывода для интерфейса пользователя относятся контроллеры светодиодных индикаторов, табло, жидкокристаллических, плазменных и электронно-лучевых экранов и т.д. 2)Устройства ввода\вывода для длительного хранения информации обеспечивают сопряжение микропроцессорной системы с дисководами (компакт-дисков или магнитных дисков), а также с накопителями на магнитной ленте. Применение таких устройств существенно увеличивает возможности микропроцессорной системы в отношении хранения выполняемых программ и накопления массивов данных. 3)Таймерные устройства отличаются от других устройств ввода/вывода тем, что они могут не иметь внешних выводов для подключения к внешним устройствам. Эти устройства предназначены для того, чтобы микропроцессорная система могла выдерживать заданные временные интервалы, следить за реальным временем, считать импульсы и т.д.

9.Методы адресации операндов.Непосредственная адресация. Большая часть команд процессора работает с кодами данных (операндами). Одни команды требуют входных операндов (одного или дву х), другие выдают выходные операнды (чаще один операнд). Входные операнды

называются еще операндами-источниками, а выходные называются операндами-приемниками. Все эти коды операндов (входные и выходные) должны где-то располагаться. Они могут находиться во внутренних регистрах процессора (наиболее удобный и быстрый вариант). Они могут располагаться в системной памяти (самый распространенный вариант). Наконец, они могут находиться в устройствах ввода/вывода (наиболее редкий случай). Определение места положения операндов производится кодом команды. Причем существуют разные методы, с помощью которых код команды может определить, откуда брать входной операнд и куда помещать выходной операнд. Эти методы называются методами адресации. Основными из них являются:1)непосредственная адресация; 2)прямая адресация; 3)регистровая адресация; 4)косвенно-регистровая адресация; 5) автоинкрементная адресация; 6) автодекрементная адресация.

Эффективность выбранных методов адресации во многом определяет эффективность работы всего процессора в целом. Непосредственна я адресация (рис.1) предполагает, что операнд (входной) находится в памяти непосредственно за кодом команды. Операнд обычно представляет собой константу, которую надо куда -то переслать, к чему-то прибавить и т.д. Например, команда может состоять в том, чтобы прибавить число 6 к содержимому какого -то внутреннего регистра процессора. Это число 6 будет располагаться в памяти, внутри программы в адресе, следующем за кодом данной команды сложения. Прямая (она же абсолютная) адресация (рис. 2) предполагает, что операнд (входной или выходной) находится в памяти по адресу, код которого находится внутри программы сразу же за кодом команды. Например, команда может состоять в том, чтобы очистить (сделать нулевым) содержимое ячейки п амяти с адресом 1000000. Код этого адреса 1000000 будет располагаться в памяти, внутри программы в следующем адресе за кодом данной команды очистки. Регистровая адресация (рис 3) предполагает, что операнд (входной или выходной) находится во внутреннем регистре процессора. Например, команда может состоять в том, чтобы переслать число из нулевого регистра в первый. Номера обоих регистров (0 и 1) будут определяться кодом команды пересылки. Двумя основными преимуществами регистровой адресации являются: короткое адресное поле в команде и исключение обращений к памяти. К сожалению, возможности по использованию регистровой адресации ограничен ы малым числом РОН в составе процессора. Косвенно-регистровая адресация предполагает, что во внутреннем регистре

процессора находится не сам операнд, а его адрес в памяти (рис. 4). Например, команда может состоять в том, чтобы очистить яч ейку памяти с адресом, находящимся в нулевом регистре. Номер этого регистра (0) будет определяться кодом команды очистки. Автоинкрементная адресация. Обобщенная структура команды и способ выборки операнда из ОП соответствуют схеме косвенной регистровой адресации. Отличие за ключается в том, что после считывания операнда, увеличивается (инкрементируется) значение регистров общего назначения (РОНа), указанного в команде. Тип операнда (байт, слово, двойное слово) определяет на сколько должно увеличиться содержимое РОНа. Данный тип адресации позволяет эффективно обрабатывать последовательности (массивы) однотипных данных. Автодекрементная адресация. Обобщенная структура команды и способ выборки операнда из ОП соответствуют схеме косвенной регистровой адресации. Отличие заключается в том, что после считывания операнда, уменьшается (декрементируется) значение регистров общего назначения (РОНа), указанного в команде. Величина изменения содержимого РОНа определяется типом обрабатываемых данных. Таким образом автодекрементная адресация перебирает слова массива памяти в обратном порядке.

10.Система команд процессора.Команды пересылки данных: Команды пересылки данных занимают очень важное место в системе команд любого процессора. Они выполняют следующие важнейшие функции: загрузка (запись) содержимого во внутренние регистры процессора; сохранение в памяти содержимого внутренних регистров процессора; копирование содержимого из одной области памяти в другую; запись в устрой ства ввода/вывода и чтение из устройств ввода/вывода. Арифметические команды: Этим командам требуется один или два входных операнда. Формируют команды один выходной операнд. Арифметические команды рассматривают коды операндов как числовые двоичные или двоично-десятичные коды. Эти команды могут быть разделены на пять основных групп: 1) команды операций с фиксированной запятой (сложение, вычитание,

умножение, деление); 2) команды операций с плавающей запятой (сложение, вычитание, умножение, деление); 3) команды очистки; 4 ) команды инкремента и декремента; 5) команда сравнения. Логические команды:Этим командам требуется один или два входных операнда, и формируют они один выходной операнд. Логические команды выполняют над операндами логические (побитовые) операции, то есть они рассматривают коды операндов не как единое число, а к ак набор отдельных битов. Этим они отличаются от арифметических команд. Логические команды выполняют следующие основные операции: 1) логическое И, логическое ИЛИ, исключающее ИЛИ; 2) логические, арифметические и циклические сдвиги; 3) проверка битов и операндов; 4) установка и очистка битов (флагов) регистра состояния процессора (PSW). Команды переходов: Команды переходов предназначены для организации всевозможных циклов, ветвлений, вызовов подпрограмм и т.д., то есть они нарушают последовательный ход выполнения программы. Эти команды записывают в регистр-счетчик команд новое значение и тем самым вызывают переход процессора не к следующей по порядку команде, а к любой другой команде в памяти программ. Некоторые команды переходов предусматривают в дальнейшем возврат назад, в точку, из которой был сделан переход, другие не предусматривают этого. Если возврат предусмотрен, то текущие параметры процессора сохраняются в стеке. Если возврат не предусмотрен, то текущие параметры процессора не сохраняются. Команды переходов без возврата делятся на две группы: 1) команды безусловных переходов; 2) команды условных переходов. Команды безусловных переходов вызывают переход в новый адрес независимо ни от чего. Они могут вызывать переход на указанную величину смещения (вп еред или назад) или же на указанный адрес памяти. Величина смещения или новое значение адреса указываются в качестве входного операнда. Команды условных переходов вызывают переход не всегда, а только при выполнении заданных условий. В качестве таких условий обычно выступают значения флагов в регистре состояния процессора (PSW). То есть условием перехода является результат предыдущей операции, меняющей значения флагов. Всего таких условий перехода может быть от 4 до 16. Если условие перехода выполняется, то пр оизводится загрузка в регистр-счетчик команд нового значения. Если же условие перехода не выполняется, счетчик команд просто наращивается, и процессор выби рает и выполняет следующую по порядку команду.

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

МК приведена на рис.Процессорное ядро включает в себя:1) центральный процессор;2) внутреннюю контроллерную магистраль (ВКМ) в составе шин адреса, данных и управл ения;3) схему синхронизации МК;4) схему управления режимами работы МК, включая поддержку режимов пониженного энергопотребления, начального запуска (сброса) и т.д.Изменяемый функциональный блок включает в себя модули памяти различного типа и объема, порты в вода/вывода, модули тактовых генераторов (Г), таймеры. В относительно простых МК модуль обработки прерываний входит в состав процессорного ядра. В более сложных МК он представляет собой отдельный модуль с развитыми возможностями. В состав изменяемого функц ионального блока могут входить и такие дополнительные модули как компараторы напряжения, аналого-цифровые преобразователи (АЦП) и другие. Каждый модуль проектируется для работы в составе МК с учетом протокола ВКМ. Данный подход позволяет создавать разнообразные по структуре МК

в пределах одного семейства.

12.Память программ МК. Основным свойством памяти программ является ее энергонезависимость, то есть возможность хранения программы при отсутствии питания. С точки зрения пользователей МК следует различать след ующие типы энергонезависимой памяти программ: 1) ПЗУ масочного типа — mask-ROM. Содержимое ячеек ПЗУ этого типа заносится при ее изготовлении с помощью масок и не может быть впоследствии заменено или допрограммировано. Основным недостатком данной памяти яв ляется необходимость значительных затрат на создание нового комплекта фотошаблонов и их внедрение в производство. ПЗУ масочного типа обеспечивают высокую надежность хранения информации по причине программирования в заводских условиях с последующим контролем результата.2) ПЗУ, программируемые пользователем, с ультрафиолетовым стиранием — EPROM (ErasableProgrammable ROM). ПЗУ данного типа программируются электрическими сигналами и стираются с помощью ультрафиолетового облучения через специальное окно в корпусе. Ячейка памяти EPROM представляет собой МОП-транзистор с «плавающим» затвором, заряд на который переносится с управляющего затвора при подаче соответствующих электрических сигналов. Для стирания содержимого ячейки она облучается ультрафиолетовым светом, который сообщает заряду на плавающем затворе энергию. Этот процесс может занимать от нескольких секунд до нескольких минут. МК с EPROM допускают многократное программирование.3) ПЗУ, однократно программируемые пользователем, — OTPROM (One-TimeProgrammable ROM). Представляют собой версию EPROM, выполненную в корпусе без окошка для уменьшения стоимости МК на его основе.4) ПЗУ, программируемые пользователем, с электрическим стиранием — EEPROM (ElectricallyErasableProgrammable ROM). Это новое поколение EPROM, в которых стирание ячеек памяти производится также электрическими сигналами за счет использования туннельных механизмов. Применение EEPROM позволяет стирать и программировать МК, не снимая его с платы. Таким способом можно производить отладку и модернизацию программного обеспечения. Технология программирования памяти EEPROM допускает побайтовое стирание и программирование ячеек. Минусы EEPROM: имеют ограниченный объем памяти; почти одновременно с EEPROM появились Flash-ПЗУ, которые при сходных потребительских характеристиках имеют более низкую стоимость;5) ПЗУ с электрическим стиранием типа Flash — Flash-ROM. Функционально Flash-память мало отличается от EEPROM. Основное различие состоит в способе стирания записанной информации. В памяти EEPROM стирание произ водится отдельно для каждой ячейки, а во Flash-памяти стирать можно только целыми блоками. Если

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

13.Память данных МК. Память данных МК выполняется, как правило, на основе статического ОЗУ. В некоторых моделях МК имеется также флэш память данных. Слово "статическое" означает, что содержимое ячеек ОЗУ сохраняется при снижении тактовой частоты МК до сколь угодно малых значений (с целью снижения энергопотребления). Большинство МК имеют такой параметр, как "напряжение хранения информации " - Ustandby При снижении напряжения питания ниже min допустимого уровня Uddmin, но выше уровня Ustandby работа программы МК выполняться не будет, но информация в ОЗУ сохраняется. При восстановлении напряжения питания можно будет сбросить МК и продолжить выполнение програ ммы без потери данных. Уровень напряжения хранения составляет обычно около 1 В, ч то позволяет в случае необходимости перевести МК на питание от автономного источника (батареи) и сохранить в этом режиме данные ОЗУ. Объем памяти данных МК, как правило, невелик и соста вляет обычно десятки и сотни байт. Это обстоятельство необходимо учитывать при разработке программ для МК. Так, при программировании МК константы, если возможно, не хранятся как переменные, а заносятся в ПЗУ программ. Максимально используются аппаратные возможности МК, в частности, таймеры. Прикладные программы должны ориентироваться на работу без использования больших массивов данных.

14.Порты ввода/вывода МК. Каждый МК имеет некоторое количество линий ввода/вывода, в разных моделях МК их может быть разное количество и они могут иметь разную разрядность (чаще 8-разрядные). В памяти МК каждому порту ввода/вывода соответствует свой адрес регистра данных. Обращение к регистру данных порта ввода/вывода производится теми же командами, что и обращение к памяти данных. Кроме того, во многих МК отдельные разряды портов могут быть опрошены или установлены командами битового процессора. В зависимости от реализуемых функций различают следующие типы параллельных портов: 1) однонаправленные порты, предназначенные только для ввода или только для вывода информации; 2) двунаправленные порты, направление передачи которых (ввод или вывод) определяется в процессе инициализации МК; 3) порты с альтернативной функцией (мультиплексированные порты). Отдельные линии этих портов используются совместно со встроенными периферийными устройствами МК, такими как таймеры, АЦП, контроллеры последовательных интерфейсов; 4) порты с программно управляемой схемотехникой входного/выходного буфера. Порты выполняют роль устройств временного согласования функционирования МК и объекта управления, которые в общем случае работают асинхронно. Различают три типа алгоритмов обмена информацией между МК и внешним устройством через параллельные порты ввода/вывода: а) режим простого программного ввода/вывода; б) режим ввода/вывода со стробированием(п одключение вх/вых в виде матрицы); в) режим ввода/вывода с полным набором сигналов подтверждения обмена.

15.Тактовые генераторы МК. Соврем. МК содержат встроенные тактовые генераторы, требующие min числа внешних времязадающих элементов. Три основных способа определения такт. част. генер.: 1) с помощью кварцевого резонатора 2) керамического резонатора 3) внешней RС-цепи.

Схемы подключения кварц. иликерам. резонатора приведена на рис. а). Для RC цепи рис. б) Кварцевый или керамический резонатор Q подключается к выводам XTAL1 и XTAL2, которые представляют собой вход и выход инверт. усилителя. Номиналы С1 и С2 определяются производителем МК для конкретной частоты резонатора. Достоинства и недостатки методов: 1) Высокая точность и стабильность тактовой частоты (разброс f менее 0,01%). Недостатки кварц. рез. низкая механическая прочность и высокая стоимость. 2) Более стойкие к ударной нагрузке. Дешевле. Многие кер. рез. имеют встроенные конденсаторы, т.е. количество внешних подключаем ых элементов не 3 а 1. Разброс f около 0,5%. 3) Самый дешевый. Недостатки: низкая точность задания тактовой частоты (до 10 – ков%). Практически все МК допускают работу от внешнего источника тактового сигнала, они подключается ко входу XTAL1 внутреннего усилителя. При помощи внешнего тактового генератора можно задать любую тактовую частоту МК (в пределах рабочего диапазона) и обеспечить синхронную работу нескольких устройств. Современные МК содержат встроенные RС или кольцевые генераторы, позволяющие работать без внешних цепей синхронизации. Работа внутреннего генератора обычно разрешается путем программирования соответствующего бита регистра конфигурации МК.

16.Минимизация энергопотребления в системах на основе МК. Основ. режимы работы: 1) Активный режим - основной режим работы МК. МК исполняет рабочую программу, и все его ресурсы доступны. Потребляемая мощность имеет max значение. Мощность потребления сильно зависит от тактовой частоты; 2) Режим ожидания. В этом режиме прекращает работу центральный процессор, но продолжают функционировать периферийные модули, которые контр. состояние объекта управления. При необходимости сигналы от периферийных модулей переводят МК в активный режим, и рабочая программа формирует необходимые упр. воздействия. Перевод МК из режима ожидания в рабочий режим осуществляется по прерываниям от внешних источников или периферийных модулей, либо при сбросе МК. Мощность потреб. МК снижается по сравнению с активным в 5...10 раз; 3) Режим остановки. В этом режиме прекращает работу как центральный процессор, так и большинство периферийных модулей. Переход МК из состояния останова в рабочий режим возможен, только по прерываниям от внешних источников или после подачи сигнала сброса. Мощность потребления МК снижается по сравнению с активным режимом примерно на три порядка и составляет единицы микров атт. Два последних режима называют режимами пониженного энергопотребления. Миним. энергопот. системы на МК достигается за счет оптимизации мощности потребления МК в активном режиме, а также использования режимов пониженного энергопотребления. В большинстве современных МК используется статическая КМОП - технология, т.е. они способны работать при очень низких тактовых частотах вплоть до нулевых.

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

внешних объектов состояние которых изменяется. Как под воздействием внешних факторов так и за счет взаимодействия м ежду собой. Структурная схема МК системы управления на рис:Датчик Д оценивает состояние объектаи передает сигнал на вх. порта A МК. МК согласно записанной в него программы оценивает сигнал полученный с датчика и вырабатывает сигнал управления, который через вых. портB передается на исполнительное устройство ИУ. Исполн. уст-во в зависимости от полученного сигнала осуществляет над объектом Об то или иное действие. Таким образом получаем замкнутый контур управления который позволяет управлять состоянием объекта в соответствии с поставленной задачи. СУ может решать задачи: 1) Поддержание на определенном уровне или изменение по определенному закону вых. параметров; 2) Программное изменение вых. параметров объекта и отслеживание их изменений в соответствии с некото рыми внешними сигналами; 3) Вк. или вык. потока энергии в объекты управления по времени или по заданному амплитудному значению контролируемого параметра; 4) Сбор инф. о состоянии объекта управления и ее обработка с сохранением результатов обработки в у стройствах памяти. Центральное место в рассматриваемой системе занимает микропроцессорный контроллер, а остальные элементы

обеспечивают связь МК с объектом управления. Часто их объединяют одним общим названием - устройство связи с объектом (УСО).

18.Этапы разработки микроконтроллерных систем управления. В качестве исходных данных при разработке микроконтроллерных (независимо от конкретного типа микроконтроллера) систем управления чаще всего выступают: - словесное описание работы системы; - вид сигналов с датчиков, соответствующих всем возможным состояниям объектов, и сигналов, требуемых для управления объектами через исполнительные устройства в соответствии с функциональным назначением системы. В процессе проектирования требуется разработать: - схему соединения МК с элементами управления; - алгоритм работы МК по анализу входных и формированию выходных сигналов (на практике целесообразно оформлять его в виде блок -схемы); - текст программы на ассемблере имеющегося контроллера, записываемый после компиляции в его ПЗУ команд (иное название «firmware»). При выборе типа МК учитываются следующие основные характеристики: 1) разрядность; 2) быстродействие; 3) набор команд и способов адресации; 4) тр ебования к источнику питания и потребляемая мощность в различных режимах; 5) объем ПЗУ программ и ОЗУ данных; 6) возможности расширения памяти программ и данных; 7) наличие и возможности периферийных устройств, включая средства поддержки работы в реальном времени (таймеры, процессоры событий и т.п.); 8) возможность перепрограммирования в составе устройства; 9) наличие и надежность средств защиты внутренней информации; 10) возможность поставки в различных вариантах конструктивного исполнения; 1 1) стоимость в различных вариантах исполнения; 12) наличие полной документации; 13) наличие и доступность эффективных средств программирования и отладки МК; 14) количество и доступность каналов поставки, возможность замены изделиями других фирм.

19.Пример проектирования автоматизированной системы управления уровнем жидкости на основе МК.Рассмотрим пример проектирования системы поддержания уровня жидкости в резервуаре в заданных пределах. Исходные данные:- в открытый резервуар Р через управляемую

задвижку 1 поступает жидкость (управляемая задвижка 2 при этом - закрыта). При достижении уровня воды в резервуаре «верхнего» уровня (определяемого датчиком D1), задвижка 1 – закрывается, и одновременно открывается задвижка 2. По мере расхода жидкости из резервуара и достижении «нижнего» уровня (определяемого датчиком D2) происходит обратный процесс: задвижк а 1 – открывается, задвижка 2 - закрывается и жидкость вновь начинает наполнять резервуар. Далее процесс повторяется. Т.е. фактически система позволяет поддерживать уровень жидкости в резервуаре в пределах, устанавливаемых датчиками D 1, D2. - сигналы с датчиков – цифровые, причем если датчик находится в воде, то на его выходе формируется сигнал логической «1», в противном случае – «0», для открывания задвижки необходимо сформировать сигнал логической «1», для закрывания – «0». В первую очередь необходимо перевести систему в устойчивое состояние (овал сверху рис.5). Закрываем обе задвижки, заранее оговариваем, что PortA вход, PortB – выход. Затем необходимо проверить текущий уровень жидкости в резервуаре и в зависимости от него включить один из возможных режимов: слив или наполнение. В данном случае

определяем уровень жидкости по состоянию «нижнего» датчика D2. Если он в воде, то открывается задвижка 2 и начинается слив до снижения уровня жидкости ниже D2, если нет – открывается задвижка 1 и начинается наполнение до достижения уровня D1. Далее указанные режимы чередуются с учетом текущего уровня жидкости. Микроконтроллер функционирует циклически.

20.Общие сведения о PIC-контроллерах семейства Microchip. PIC (PeripheralInterfaceController) – контроллеромназывается МК, предназначенный исключительно для создания систем управления внешними объектами и имеющие RISC архитекту ру. Основные области применения: - Техника телекоммуникаций, связи и передачи данных: микро АТС, автоответчики, факсы, беспроводные и мобильные телефоны, модемы, радиомодемы, транкинговые системы, пейджеры; - Бытовая электроника: блоки управления телевизорами, видеомагнитофонами, спутниковыми тюнерами, позиционерами, аудиосистемами, CD/DVD –плеерами, блоками ДУ, телетекста, PIP, системы сигнализации, зарядные устройства, измерительные счетчики; - Автомобильная электроника: автосигнализации, радарные детекторы, системы климат- и круиз контроля, приборные панели, устройства управления зажиганием и инжекторным впрыском топлива; - Промышленные контроллеры: схемы управления двигателями, интеллектуальные датчики, автоматические регуляторы температуры, влажности, давления, уровня и т.д. Исторически первый периферийный контроллер был разработан фирмой GI (США) для поддержки операций ввода-вывода универсального микропроцессора. При этом не требовалась сложная обработка данных, поэтому его набор команд был сильно ограничен, но зато почти все команды выполнялись за один машинный цикл.В зависимости от производительности и функциональных возможностей PIC контроллеры подразделяются на 3 семейства: - PIC16C5x базовое семейство с 12-разрядными командами; - PIC16C6x/7x/8x расширенное семейство с 14-разрядными командами; - PIC17Cxx высокопроизводительное семейство с 16-разрядными командами. Особенности PIC контроллеров: 1. (положительные): - низкое энергопотребление за счет использования КМОП технологии изготовления кристалла и реализации возможности управляемого перевода/возврата (по кома нде SLEEP) контроллера в специальный режим пониженного энергопотребления при котором останавливается тактовый генератор (соответственно и выполнение программы) с сохранением состояний портов и регистров; - возможность снижения напряжения питания с 6 В до 2 В, с полным сохранением работоспособности; - возможность изменения тактовой частоты в пределах от 0 до 20 МГц; - наличие встроенной схемы сторожевого таймера (в 16С52 - отсутствует).- бит защиты от несанкционированного считывания.- сокращение времени разработки и отладки ПО, обусловленное малым числом команд и легкостью их изучения; - высокая производительность, обусловленная выполнением всех команд за один цикл, и достигаемая за счет упрощения структуры АЛУ; - низкая стоимость, по сравнению с универсальными 8-разрядными контроллерам. 2. (отрицательные): - неприспособленность к выполнению сложных математических операций обработки данных.

21.Структурная схема микроконтроллера PIC16C52. На рис. представлена упрощенная структурная схема 8-разрядного PIC-контроллера 16С52. Рассмотрим работу контроллера в рабочем режиме (или в режиме выполнения команд). По сигналу RESET, формируемому аппаратно или программно, блок формирования команд начинает последовательно с тактовой частотой CLK (от внутреннего или внешнего тактовог о генератора) выбирать из встроенного ПЗУ и выдавать на выход 12 разрядные слова-команды. В зависимости от их назначения, команда может: -

активизировать рабочий регистр W путем записи в него 8 -разрядной константы в зависимости от конкретного вида которой может быть активизировано либо АЛУ (и выполнится команда), либо изменится информация (биты) в регистре OPTION; - являться 5-разрядным адресом (и активизировать по входу С) одного из регистров ОЗУ, разрешая ему взаимодействовать (читать или писать) с общей шиной (строго говоря, с рабочим регистром W); - разрешать взаимодействовать (читать или писать) внутреннему регистру блока формирования команд с общей шиной непосредственно. В основе работы контроллера лежит выполнение полученной команды АЛУ для двух байт: находящихся в рабочем регистре W и любом из других регистров схемы с последующим сохранением результата в любом из них путем передачи результата в него по общей шине данных. Такой механизм связан с тем, что в каждый конкретный момент времени подключенным к шине данных может быть только один регистр, а W – подключен к ней всегда. В процессе работы АЛУ контролирует «правильность» полученного после выполнения команды результата. Для этого служит специальный регистр состояния STATUS, разряды которого изменяются при возникновении подобных явлений. ОЗУ контроллера содержит 25 регистров общего назначения (РОН), подключенных к общей шине данных, причем адресация (выбор) конкретного из них может осуществляться двумя способами: непосредственно и косвенно. Непосредственная адресация осуществляется блоком команд, выставляющим 5 -разрядный адрес на шине адреса. Косвенная – осуществляется с помощью специального регистра FSR, преобразующим 8-разрядное входное слово, поступающее к нему на вход по шине данных, в выходное 5-разрядное слово, являющееся адресом конкретного регистра в ОЗУ. Остальные блоки схемы предназначены для организации взаимодействия контроллера с внешними устройствами. Способов такой организации два:1. Для этого предназначены двунаправленные регистры (называемые портами ввода/вывода) PORTA (4 разряда) и PORTB (8 разрядов), имеющие внешние контакты RA3 – RA0 и RB7 – RB0. На эти контакты подаются как входные сигналы с

датчиков, внешних устройств, состояние которых должен анализировать контроллер, так и на них формируются выходные сигналы, управляющие исполнительными устройствами. Состояние каждого контакта (вход/выход) может быть независимо установлено с помощью специальных управляющих регистров TRISA и TRISB (называемых регистрами управления портами). Запись информации в регистры TRISA и TRISB осуществляется с помощью специальных команд из регистра W. 2. Второй способ обеспечивается наличием у микроконтроллера входа T0CKI, являющимся входом счетчика-делителя с управляемым, от 1до 256, коэффициентом деления. Таким образом, контроллер имеет возможность подсчитать число внешних импульсов (событий), поступающих на этот вход. П ри установке коэффициента деления ≠ 1, счетчик будет осуществлять подсчет каждого К-го импульса. Это число в коде “8-4-2-1” автоматически записывается в регистр TMR0 и из него может считываться на шину данных для последующей записи в любой другой регистр контроллера. Управление модулем счет а счетчика осуществляется соответствующими разрядами регистра OPTION по аналогии с регистрами TRISA и TRISB.

22.Организация памяти в МК PIC16C52. Организация памяти в микроконтроллерах определяет физический и логический способ хранения информации в процессе его работы и программирования. Логически информация, а следовательно и память, используемая в МК делится на информацию о кодах выполняемой программы и информацию о данных, получаемых в результате выполнения этой программы. Поэтому иногда говоря т о памяти программ и памяти данных. В PIC контроллерах 16С52 эти области памяти разделены и физически. 12-разрядные коды программ записаны во

внутреннем (блок формирования команд на рис. 8) ПЗУ объемом 512 байт. К памяти данных относят ВСЕ физические регистры, входящие в структурную схему МК. Однако логически они делятся на РОН и SFR - регистры специального назначения или просто специальные регистры. Основное отличие специальных регистров от РОН-ов состоит в том, что если РОН используется просто для хранения байта, то SFR-ы являются управляющими регистрами, когда каждый бит записанного в них байта управляет одно из внутренних устройств микроконтроллера. Кроме регистров входящих в структурную схему, в схеме контроллера присутствуют еще два специальных регистра – INDF и PCL (в него записывается состояние счетчика команд в блоке формирования команд). Для адресации регистров, не имеющих физического адреса, используются специальные команды. Логически к памяти данных относятся и регистры общего назначения, имеющие адреса (hex): 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F. При программировании контроллеров этим регистрам с помощью специальных директив Ассемблера присваивают удобные для разработчика имена по аналогии со специальными регистрами.

23.МК PIC16C52. Регистр OPTION, режимы работы. Регистр OPTION служит для управления работой таймера счётчика. 6-битный регистр OPTION при работе имеет две особенности:1 - доступен только для записи, при выполнении которой 6 младших разрядов регистра W поразрядно

переписываются в регистр OPTION (в MPLAB в 2 старших разряда записываются “1”, независимо от старших раз рядов W); 2- не имеет реального физически доступного для программиста адреса, обращение к нему осуществляется командой OPTION (совпадающей с условным именем регистра).Регистр OPTION на аппаратном уровне управляет режимами работы таймера TMR0.Разряды регистра предназначены для управления блоками контроллера, показанными на рис. и определяют два основных режима работы в

зависимости от вида входного сигнала этой части контроллера. В режиме счетчика(за счет установки бита T0CS = 1 в регистре OPTION) на выход мультиплексера MS1 проходит внешний входной сигнал со входа T0CKI, пройдя предварительно через блок выбора фронта срабатывания (если бит T0SE = “0”, счет осуществляется по положительным фронтам сигна ла T0CKI, если T0SE = “1” – то по отрицательным), а сигнал тактовых импульсов CLK – нет. Мультиплексер MS2 аналогично (в зависимости от значения бита PSA) пропускает на вход регистра -счетчика TMR0 сигнал T0CKI без деления частоты (при PSA = “1”), либо предварительно его поделив на Ксч (при PSA = “0”). Конкретное значение модуля счета предварительного делителя Ксч определяется кодовой комбинацией, установленной на разрядах PS2,PS1,PS0 в соответствии с Табл. Регистр-счетчик TMR0 с каждым выбранным фронтом импульсов T0CKI (если включен предделитель, то с каждым Ксч – м импульсом) увеличивает свое значение на еденицуи выдает его на шину данных. Сброс содержимого регистра-счетчика TMR0 одновременно с предварительным делителем (при этом параметры предделителя, установленные в регистре ОPTION - сохраняются) осуществляется программно командой clrf, выполняемойнад регистром OPTION. Таким образом, режим счетчика организовывает подсчет числа входных

импульсов (внешних событий) на входе T0CKI. В режиме таймера(если бит T0CS = 0) аналогичные процессы происходят с сигналом внутренней тактовой частоты CLK, формируемой тактовым генератором. Учитывая, что этот же сигнал циклически управляет выборкой и выполнением команд контроллера, получаем, что режим таймера позволяет организовать подсчет числа импульсов или временного интервала при известной частоте кварцевого генератора микроконтроллера.

24.МК PIC16C52. Регистры PORTA, PORTB, режимы работы. Порты (регистры) PORTA, PORTB предназначены для организации двунаправленного взаимодействия контроллера с внешними устройствами. 4-разрядный PORTA имеет адрес 0x05, 8-разрядный PORTB – 0x06. Оба порта доступны как для записи в них данных, при этом контакты порта выступают как выходы, так и для считывания – при этом контакты являются входными. Управление режимом работы контактов (входной или выходной) осуществляют для каждого порта (и разряда внутри него) независимо специальные регистры управления TRISA и TRISB. Особенностью регистров управления является то, что они доступны только для зап иси в них данных (из регистра W) и не имеют физического адреса. Поэтому запись в них осуществляется специальной командой tris, а в качестве адреса указывается адрес требуемого порта. Т.о., например, при выполнении команды tris 0x05 происходит запись 4-х младших разрядов регистра W в соответствующие младшие разряды регистра TRISA (а не порта PORTA !!) и установка, в соответствии с их значениями, режимов каждого из 4 -х разрядов порта PORTA. Общие правила управления состоянием портов : 1- бит регистра TRIS <x> управляет состоянием разряда порта PORT<x>, причем если бит TRIS установлен в “1” , то соответствующий разряд порта PORT ввода/вывода работает как вход, а если бит TRIS сброшен в “0”, то разряд порта работает как выход( “1” - напоминает In (вход), “0” – напоминает Out (выход); 2- на разряд порта, запрограммированный как выход – подавать входной сигнал ЗАПРЕЩЕНО (при моделировании он будет игнорироваться); 3- контакты портов должны быть сконфигурированы ДО НАЧАЛА выполнения любых операций с ними; 4-конкретный разряд порта может быть запрограммирован ТОЛЬКО ОДИН раз, изменение режима его работы в процессе выполнения программы ЗАПРЕЩЕНО, (физически такое изменение конечно возможно) запре т связан лишь с тем, что PIC контроллеры предназначены, как правило, для работы с внешними устройствами, когда жестко известно, что ко входным контактам порта подключены только датчики, а к выходным – исполнительные устройства. Управление состоянием контактов на практике необходимо лишь при работе с другим контроллером, когда происходит изменение направления приема -передачи между ними.

25.МК PIC16C52. Регистры INDF и FSR, косвенная адресация.Физически 5-разрядный регистр FSR имеет адрес 0x04 и предназначен для преобразования 8-разрядного слова, поступающего к нему по шине данных, в 5 разрядный адрес ОЗУ, используя 5 младших разрядов шины. Регистр

доступен для записи и чтения и при необходимости может быть использован как дополнительный регистр общего назначения. Три старших разряда FSR недоступны для записи, а считываются как ‘111’. Однако, основное его назначение состоит в обеспечении управляемой адресации других РОН-ов. Такая адресация ячеек ОЗУ называется косвенной, в отличие от обычной, называемой непосредственной. Суть непосредственной адресации регистров ОЗУ в контроллере состоит в том, что адрес интересующего регистра указывают непосредственно после команды что-либо делающей с этим регистром. Пример: непосредственной адресации регистра: Clrf 0x05 – команда обнуляет регистр с адресом 05 (hex), т.е. порт PORTA. Суть косвенной адресации состоит в том, что адрес регистра в команде указывается не в виде числа, а виде специального указателя, «говорящего» о том, что команда будет выполнена над регистром, адрес которого указан неявно. В качестве такого указателя выступает адрес (имя) специального регистра, указывающее, что адрес регистра над которым будет выполнена эта команда, находится в другом специальном регистре (рис.). Таки м указателем в контроллерах семейства PIC выступает регистр INDF, имеющий адрес 0x00. Это физически отсутствующий регистр (его чтение или запись дадут не имеющее значения число 0x00), но его адрес (или имя INDF, присвоенное директивой equ) после к оманды указывает на то, что истинный адрес регистра для выполняемой команды находится в регистре FSR. Пример: косвенной адресации регистра: Clrf 0x00 – команда обнуляет регистр НЕ с адресом 00 (hex), т.е. INDF, а вначале обращается к регистру FSR, 5 младших разрядов записанного в нем числа использует в виде адреса и обнудяет регистр с этим адресом. Скажем, если в FSR хранилось число 0x1D, установлен в ноль будет РОН с адресом 0x1D. На практике использование регистров INDF и FSR может применяться для поочередного управляемого перебора регистров в ОЗУ, например для их обнуления или формирования таблицы для

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

26.МК PIC16C52. Регистр состояния STATUS.8-разрядный регистр STATUS имеет адрес 0х03 и предназначен определения состояния контроллера в результате выполнения некоторых команд арифметико-логическим устройством. Индикация осуществляется за счет изменения значений

разрядов этого регистра при определенных результатах определенных команд (см. рис.). В контроллере 16С52 для этих целей используются лишь 3 младших разряда регистра: С, DC, Z остальные не задействованы. Бит Z устанавливается в состояние «1», если результат выполнения команды =0, в остальных случаях «0». Бит DC устанавливается в «1» если: при выполнении команды ADDWF в результирующем 8-разрядном слове (сумме) произошел перенос из 4-го в 5-ый бит или при выполнении команды SUBWF в уменьшаемом 8- разрядном слове НЕ произошло займа из его 5-го бита. Во всех остальных случаях бит равен «0». Бит C устанавливается в «1» если: при выполнении команды ADDWF в результирующем 8-разрядном слове (сумме) произошел перенос из 8-го в 9-ый бит, роль которого и играет бит С (т.е. результат сложения больше 0xff), либо при выполнении команды SUBWF в уменьшаемом 8-разрядном слове НЕ произошло займа из бита С (фактически 9-го бита уменьшаемого). В остальных случаях при выполнении этих команд бит равен «0». При выполнении команд RRF и RLF в бит С загружается содержимое соответственно младшего или старшего бита из сдвигаемого регистра. Регистр STATUS доступен для записи и чтения (фактически только трех младших разрядов) как и любой РОН. На практике путем считывания в теле программы значений битов Z, DC, C можно контролировать наступление следующих событий:1- если Z=1, то результат выполнения предыдущей перед контролем этого бита команды равен 0х00; 2- если DC=0, то потребовался займ из 5-го разряда уменьшаемого при вычитании, или не было переноса в 5-ый разряд суммы при арифметическом сложении, т.е. контролируется переход в старшую тетраду байта; 3- если бит С=0, то потребовался займ из 9-го разряда уменьшаемого при вычитании (что показывает что результат вычитания оказался отрицательным), или не было переноса в 9-ый разряд суммы при арифметическом сложении; 4- перемещение сдвигаемых битов в каком-

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

27.МК PIC16C52. Рабочий регистр W.Регистр W, называемый рабочим регистром контроллера, не имеет физического адреса и предназначен для внутреннего перемещения 8 -разрядных данных, по шине данных между двумя любыми регистрам микроконтроллера, в силу того, что в текущий

момент времени к шине может быть подключен только один РОН или SFR, а W подключен к ней всегда. W выступает в качестве промежуточного контей нера при выполнении команд обмена данными. Используется следующая цепь обработки: Входные данные, подлежащие обработке, через, предварительно настроенный в режим входа, порт А записываются в регистр W и далее либо в РОН (для хранения), либо в АЛУ для выполнения требуемой команды над этими данными. Обратите внимание, что архитектура контроллера такова, что непосредственная запись из портов в один из регистров ОЗУ (РОН f n) – невозможна. По командам из ПЗУ команд АЛУ выполняет определенную операцию над этими данными и результат записывает опять же либо в W, либо в свободный регистр ОЗУ (РОН f m). Далее они поступают на выходной, предварительно настроенный в режим выхода, порт В (либо в другой РОН). Т.о. логически регистр W ничем не отличается других регистров ОЗУ за исключением аппаратно реализованной возможности постоянного взаимодействия с шиной данных (или с АЛУ на рис.8), что требует введения некоторых специальных команд взаимодействия с таким регистром. Аналогично (через W) реализуется обмен данными между SFR-ами и

РОН-ами.

28.Структура программы на языке Ассемблер.Текст программы на языке Ассемблер содержится в текстовом файле с расширением *.asm. Создается в специальном редакторе среды MPLAB,хотя может быть создан в любом текстовом редакторе.Тело программы – обязательный раздел

программы, содержащий команды микроконтроллера(мк), операторы и директивы языка, начинающийся с метки start, и заканчивающийся командой возврата gotostart и директивой окончания end.Команда – строка программы, выполняемая мк.Директива – строка программы, НЕ выполняемая мк, но выполняемая компилятором среды MPLAB. Метки используются для указания строки в теле программы, на которую надо перейти командой условного перехода goto. Имя переменной удобно ассоциировать с адресом реального регистра микроконтроллера, в котором хранится значение этой переменной. Программа состоит из двух последова тельных блоков: раздела объявления переменных и тела программы, располагаемых горизонтально, и 3-х, разделенных при вводе клавишей «Tab»,вертикальных полей: поля меток, поля команд (и директив) и поля комментариев. Каждая строчка комментариев дополнительно отделяется от поля команд символом« ; ». Завершается ввод строки нажатием клавиши “Enter”.Поля меток, комментариев, а также раздел объявления переменных являются НЕОБЯЗАТЕЛЬНЫМИ частями. Пустые строки в теле программы игнорируются

компилятором.Требования к синтаксису меток: 1)имя метки должно начинаться с буквы латинского алфавита и иметь длину не более 32 символов; 2) в строке с именем метки не до лжно быть других команд и директив; 3)пробелов перед именем метки быть не должно; 4) имя метки чувствительно к виду символов (прописные или заглавные)Scan иscan будут восприниматься программой как разные имена.Пример структуры и синтаксиса раздела объявления переменных (регистров) PortAequ 0x05. PortBequ 0x06.

Примет структуры и синтаксиса тела программы представлен на рисунке.

29.Система и формат команд МК PIC 16-й серии. Команды работы с байтами, команды работы с битами, команды передачи управления и операции с константами.1) команды работы с байтами. Группа команд самая многочисленная в системе команд контроллера и позволяет осуществлять арифметико-логические операции только с целым байтом без предоставления доступа к индивидуальному изменению отдельных бит. Особенности команд: 1) текст команды может быть написан прописными и заглавными буквами; 2) пробелы в тексте команды игнорир уются

компилятором; 3) нумерация разрядов регистров везде идет начиная с 1 по 9; 4) для чисел в шестнадцатиричной форме указывается префикс 0x, для остальных используется десятичный формат без использования префикса; 5) операции совершаются только над адре суемыми регистрами(р); 6)

различное влияние команд на биты р STATUS. Примеры команд: сlrf f - осуществляет установку в «0» всех разрядов р с адресом f (0x00 ≤ f ≤ 0xff, кроме 0х02). сlrw- осуществляет установку в «0» всех разрядов р W. movwf f

- пересылка

содержимого р W в произвольный р с адресом f

(0x00 ≤ f ≤ 0xff, кроме f = 0х02). addwf f, d - арифметическое сложение содержимого р W и произвольного р с адресом f (0x00 ≤ f ≤ 0xff). decf f, d - уменьшение (арифметическое вычитание) содержимого р с адресом f

(0x00 ≤ f ≤

0xff) на единицу (величину 0х01). decfsz f, d -

уменьшение содержимого р с адресом f (0x00 ≤ f ≤ 0xff) на единицу и пропуск первой следующей за decfsz команды и выполнение второй, если результат выполнения команды decfsz равен 0х00. incf f, d - увеличение (арифметическое сложение) содержимого р с адресом f (0x00 ≤ f ≤ 0xff) на единицу. 2) команды работы с битами. Команды позволяют осуществлять арифметико-логические операции с выбранным битом выбранного регистра (р). Особенности команд: 1)текст команды может быть написан прописным и и заглавными буквами; 2)пробелы в тексте команды игнорируются компилятором; 3)для чисел в шестнадцатиричной форме указывается префикс 0x, для остальных используется десятичный формат без использования префикса; 4) операции совершаются только над адресуемыми р; 5) не влияют на биты р STATUS. 6)нумерация битов в р начинается с 0х00 и заканчивается 0х07 Примеры команд: bcf f, b - сброс (установку) в «0» бита с номером b (0x00 ≤ b ≤ 0x07) в произвольном р с адресом f (0x00 ≤ f ≤ 0xff, кроме f = 0х02). bsf f, b-установку в «1» бита с номером b(0x00 ≤ b ≤ 0x07) в произвольном р с адресом f (0x00 ≤ f ≤ 0xff, кроме f = 0х02). 3) команды передачи управления и операции с константами. Команды позволяют: 1) изменять последовательный ход выполнения команд в теле программы; 2)осуществлять запись информации в сп ециальные не адресуемые регистры(р); 3) производить логические операции с константами. Особенности команд: 1)текст команды может быть написан прописными и заглавными буквами; 2) пробелы в тексте команды игнорируются компилятором; 3)для чисел в шестнадцатиричной форме указывается префикс 0x, для остальных используется десятичный формат без использования префикса. Примеры команд: goto М-переход к выполнению команды, расположенной в теле программы после метки М, где М – имя метки. movlw k-осуществляет запись 8-разрядной константы k в р W. option- переписывает 6 младших разрядов содержимого р W в OPTION, не имеющий реального логического адреса. Содержимое р W при этом сохраняется.

30.Директивы Ассемблера. Директива(Д) – команда MPASM–а управления процессом компиляции. Д ассемблера помещаются в тексте исходного файла и предназначены для: 1)упрощения синтаксиса исходного текста ПО: программирование повторений, проверка выплнения условий, предварительные вычисления требуемых констант. 2)повышения «удобочитаемости» исходного тектса ПО и уменьшения его объема. Д не должны располагаться в поле меток. Все выполняемые д действия в теле программы могут быть выполнены и без них, посредством использования исключительно команд контроллера. Примеры Д: variableимя – д предварительного объявления переменной с именем имя для последующего использования в выражениях ассемблера. Имя – набор символов, устанавливаемое пользователем с обязательным учетом регистра клавиатуры(y и Y будут восприниматься как разные переменные).текстequзначение д присваивания тексту численного значения, для возможности последующей замены данного числа (в параметрах команд контроллера) – этим текстом в теле ПО и повышения удобства при чтении и отладке ПО (с обязательным сохранением написания заглавных и прописных букв в директиве и теле программы).

31.Динамическая индикация на МК PIC 16C52. Схема, назначение элементов, временные диаграммы.Алгоритм ЛЮБОГО устройства динамической индикации включает в себя следующую последовательность действий: - потушить ВСЕ сегменты путем установки a-g = 0; - «зажечь» первый индикатор, подав на h1 уровень логического «0», при этом все остальные индикаторы должны быть потушены за счет подачи на h2=h3=h4=«1»; h1=«0»; - подать на сегменты a – g всех индикаторов код первого символа и удерживать его в течение времени пока - убрать код первого

символа, выставив на сегментах a – g = «0»; - «зажечь» второй индикатор, подав на h2 уровень логического «0», при этом все остальные индикаторы должны быть потушены за счет подачи на h1=h3=h4=«1»; h2=«0»; - подать на сегменты a – g всех индикаторов код второго символа и удерживать его в течение времени пока - убрать код второго символа, выставив на сегментах a – g = «0»; - повторить аналогичные тройки процедур для третьего и четвертого индикатора, выставляя на шине сегментов a – h коды соответственно третьего, четвертого и всех последующих отображаемых символов; - циклически повторять ВСЕ приведенные выше процедуры с частотой не менее 20 Гц/один индикатор. В этом случае, несмотря на то, что реально в каждый конкретный момент времени горит только ОДИН индикатор (со своим символом), в силу ИНЕРЦИОННОСТИ зрения (при частоте 20 Гц/инд икатор), человек ПРОДОЛЖАЕТ ВИДЕТЬ ВСЕ ПРЕДЫДУЩИЕ символы за счет сохранения их образов в сознании, т.е. в данном примере на индикаторе видны ВСЕ цифры одновременно. Таким образом, одна из возможных схем динамическо й индикации с ипользованием PIC контроллера приобретает следующий вид (рис. 26). При рассмотрении ее работы будем предполагать, что в ЧЕТЫРЕХ ПОСЛЕДОВАТЕЛЬНО расположенных регистрах ОЗУ контроллера DD1 УЖЕ ЗАПИСАНЫ коды индицируемых символов. В нашем примере это цифры 1, 2, 3, 4 или 0x06, 0x5b, 0x4f, 0x66, т.к. разряд RB6 управляет зажиганием сегмента g, RB5 – f, RB3 – e и т.д., разряд RB7 не подключен к индикатору. Работа схемы сводится к последовательному, с частотой (4МГц : 4 = 1 МГц) 1 МГц, определяемой кварцевым резонатором ZQ1, выводу на порт В кодов

символов и поочередном сдвиге «0» на контактах порта А, вызывая зажигание очередного и погасание предыдущего индикаторов.

32.Особенности архитектуры расширенного семейства МК PIC16F877. Все выпускаемые фирмой MicroChip PIC контроллеры в зависимости от производительности и функциональных возможностей подразделяются на три семейства: - PIC 16х5x – базовое семейство с 12-разрядными командами; - PIC 16х6x/7x/8x – расширенноесемейство с 14-разрядными командами; - PIC 17ххx, 18ххх – высокопроизводительные семейства с 16-разрядными командами. Ниже приведены наиболее важные отличияв архитектуре и функционировании, характерные для расширенного

семейства PIC контроллеров, на примере микросхемы 16F877. В таких контроллерах расширение функциональности достигается путем введения в архитектуру контроллера дополнительных устройств, реализуемых в виде встроенных, независимых программно-доступных управляемых модулей. 1. Увеличенное до 5 число независимых портов- регистров ввода/вывода PORTA, PORTB, PORTC, PORTD, PORTE. Контроллер содержит 3 восьмиразрядных (порты В, С, D), 1 шестиразрядный (порт А) и 1 трехразрядный двунаправленный регистр (порт Е), что позволяет обслуживать соответствующее число внешних сигналов и событий. 2. Увеличенное до 3 число независимых (программируемых и работающих) таймеров-счетчиков TMR0, TMR1, TMR2. 3. Наличие (ProgramFlash) перепрограммируемого ПЗУ команд, 8К 14разрядных команд. 4.Наличие (Data EEPROM) перепрограммируемого ПЗУ данных, 256 байт. 5.Встроенная аппаратная поддержка коммуникационных интерфейсов внутрисхемного двунаправленного обмена данными в последовательном (serial) коде. Контроллер имеет два встроенных коммуникационных модуля приема/передачи данных, обеспечивающих обмен данными между контроллером и произвольным числом других микросхем (устройств) по трем интерфейсам: SPI, I2C (модуль1), USART (модуль2). 6. Наличие 8-ми или 5-канального 10-разрядного модуля АЦП, (в зависимости от конструктивного исполнения корпуса), осуществляющего преобразование «мгновенного» отсчета входного н апряжения в двоичное 10-ти разрядное число с помещением его в 2 специальных регистра, доступных по ШД. 7. Наличие совмещенных (иногда говорят - мультиплицированных) контактов портов и встроенных модулей, допускающих независимое конфигурирование. 8. Страничная организация памяти данных (ОЗУ), при которой вся физически реализованная регистровая память – 512 байт, делится на 4 логических банка (страницы) по

128 байт каждая. 9. Наличие встроенного модуля широтной импульсной модуляции (ШИМ), обеспечивающего автоматическое формирование последовательности прямоугольных импульсов с программно-управляемыми параметрами (периодом и длительностью).

33.Обработка аналоговых сигналов в МК PIC16F877. Наличие встроенных аппаратных средств работы с аналоговыми сигналами позволяет использовать PIC контроллеры для построения ав томатизированных систем сбора данных с аналоговых датчиков (уровня, положения, температуры и т.д.)и их последующей цифровой обработки.На рис. 42 приведена упрощенная структура встроенного модуля аналого-цифрового преобразователя (АЦП) микроконтроллера.На рис. 43 временные диаграммы работы АЦП. Работа модуля начинается с его конфигурирования путем записи

определенного числа в регистр DD1, обеспечивающего: - переключение контактов порта (на рис. 42 для примера порта А) контроллера в режим аналогового входа (из двунаправленного цифр ового, установленного при инициализации); - коммутацию (подключение посредством коммутатора ANI/DIO и его выходных ключей) определенного аналогового входа порта ко входу компаратора DA2 и отключение от него ВСЕХ ОСТАЛЬНЫХ аналоговых входов порта. После этого входное аналоговое напряжение Uвх с выбранного контакта начинает поступать на нижний по схеме вход компаратора DA2 – контроллер готов к началу преобразования. По команде «начать преобразование» из регистра DD2 на вход генератора пилообразного напряжения (ГЛИН) DA1 поступает уровень логического «0» (момент t1 сигнала START на рис. 43), обеспечивающий: - начало формирование пилообразного напряжения на выходе ГЛИН (конденсатор СHOLD) с фиксированной скоростью и амплитудой Еоп, поступающее на верхний по схеме вход компаратора DA2; - разрешение счета числа тактовых импульсов CLK суммирующим счетчиком DD3 (сигнал Uсч) в коде «8-4-2-1», при этом счетчик на своих выходах формирует 10-разрядный параллельный двоичный код этого числа, однако на шину данных этот код не проходит т.к. нет разрешения на выходе L/H регистра DD2. Компаратор DA2 осуществляет сравнение двух текущих значений аналоговых сигналов и при достижении их равенства (UВХ = UГЛИН) формирует на выходе отрицательный импульс (сигнал STOP или «конец преобразования»), обеспечивающий: - остановку работы счетчика DD3 и фиксации числа N тактовых импульсов CLK, поступивших на счетчик за «время преобразования»; - запись логического «0» в регистр DD2, означающего «конец преобразования» и разрешение на выдачу двоичного эквивалента числа тактовых импульсов на шину данных (и далее, например, на один из «выходных» портов). В

этом случае получаем прямо пропорциональную зависимость между амплитудой входного сигнала и числом N импульсов CLK, которые « успел» подсчитать счетчик DD3. При достижении выходным напряжение ГЛИН своего максимального значения ЕОП, счетчик DD3 сбрасывается в «0» и модуль АЦП переходит в режим ожидания следующего запуска START (на рис. 42 эти связи для упрощения – не показаны).

34.Страничный способ организации памяти данных в МК PIC16F877.Страничный способ организации памяти данных предусматривает логическое распределение адресов регистров в виде 4 -х последовательно расположенных групп, называемых банками (или страницами) памяти. В случае

PIC 16F877 вся физически реализованная статическая регистровая память общим объемом 512 байт делится на 4 банка по 128 байт (рис. 127). Проводя аналогию с микроконтроллером 16С5 2, можно сказать, что у него ОЗУ состоит из одной страницы размером 32 байта. Приведенная карта распределения памяти отражает распределение регистров между специальными регистрами SFR и регистрами общего назначения РОН. Как видно из этого рисунка, банк 0 содержит в своем составе 32 специальных регистра и 96 РОН-ов, банк 2 – соответственно 32 и 80 и т.д. Кроме этого, в составе 1-3 банков есть по 16 «виртуальных ячеек» логически недоступных пользовательскому ПО. Таким образом, из 512 байт ОЗУ – 96 отдано под специальные регистры, 48 недоступно пользователю, т.е. реально доступный объем ОЗУ составляет 368 байт (РОН-ов). При таком способе организации памяти доступ и адресация конкретного регистра в общем адресном пространстве памяти несколько усложняется и содержит 2 строго последовательных шага: - выбор номера банка (0,1,2,3) посредство установки 5-го (RP0) и 6-го (RP1) битов регистра STATUS в соответствии с рис. 127; - выбор адреса требуемого регистра в установленном банке в диапазоне 0х00 – 0хFF (т.е. от 0 до 255) так, как будто адресуются 256 регистров, расположенные в первых двух банках, независимо от того в каком банке реально распола гается требуемый регистр. Другими словами, ПЕРЕД ЛЮБОЙ ОПЕРАЦИЕЙ С ЛЮБЫМ (кроме, W) РЕГИСТРОМ, ПРЕДВАРИТЕЛЬНО НАДО УСТАНОВИТЬ НОМЕР БАНКА В КОТРОМ ОН НАХОДИТСЯ. Примечание: при адресации некоторых специальных регистров (INDNF, PCL, STATUS, FSR, PCLATH, INTCON) не требуется предварительный выбор страницы памяти. Это связано с тем, что они расположены (дублированы) во ВСЕХ банках памяти с одинаковым относительным адресом (смещением по вертикали относитель но начала страницы). Это сделано в тех случаях, когда биты этих регистров в той или иной мере управляют логическим распределением самих страниц. В случае же регистра W, адресация банка не нужна, т.к. он не входит в состав памяти данных.

35.Модули таймеров МК PIC16F877. Особенности работы. В состав микроконтроллера PIC 16F877 входят три независимых модуля таймеров-счетчиков TMR0, TMR1, TMR2. Они предназначены для организации подсчета числа внешних или внутренних событий (импульсов) и выдаче этого числа на шину данных (ШД) микроконтроллера. Модуль TMR0: представляет собой 8-ми разрядный суммирующий счетчик, состояние которого (через регистр TMR0) доступно на ШД и может работать в режиме подсчета числа внешних импульсов, поступающих на вход RA4, или в режиме подсчета числа внутренних импульсов. Управляет периодом сброса сторожевого таймера WDT, определяя моменты перезагрузки процессора при некорректной работе ПО. Работа TMR0 в случае, если ведется подсчет импульсов тактовой частоты организуется с помощью регистра OPTION_REG. При запуске МК таймер автоматически начинает подсчет импульсов тактовой частоты. Переконфигурировать этот таймер – НЕЛЬЗЯ! Модуль TMR1 представляет собой 16-ти разрядный суммирующий счетчик, состояние которого в виде двух байт: старшего H и

младшего L (через ДВА 8-ми разрядных регистра TMR1H и TMR1L) доступно на ШД. Может работать в режиме подсчета числа внешних импульсов, поступающих на один из входов RC0 или RC1, или в режиме подсчета числа внутренних импульсов. Максимальное число импульсов, которое может подсчитать этот модуль, составляет 219(из них - 216 сам таймер, а 23 - предварительный делитель, установленный перед ним). Модуль TMR2: представляет собой 8-ми разрядный суммирующий счетчик, состояние которого (через регистр TMR2) доступно на ШД и может работать только в режиме подсчета числа внутренних импульсов. Формирует временные параметры (период и длительность) выходных сигналов двух модулей ШИМ. Максимальное число импульсов, которое может подсчитать этот модуль, составляет 216(из них - 28 сам таймер, 24 - предварительный делитель, установленный перед ним, и 24 - постделитель, установленный после таймера). Основное отличие этого таймера от двух предыдущих состоит в том, что в нем аппаратно реализована возможность изменять его модуль счета в процессе его работы без остановки самого таймера.Это связано с тем, что этот таймер является задающим генератором для модулей ШИМ. Спец. регистр PS2 позволяет устанавливать коэффициент счета таймера по ШД. Общим для всех модулей является тот факт, что с их помощью организовать подсчет числа внешних по отношению к контроллеру событий - невозможно. Другими словами, в составе этого контроллера модули могут работать только в режиме таймеров.

36.Способы взаимодействия микроконтроллера PIC с FLASH память данных.Существует два способа организации работы PIC контроллеров с энергонезависимой памятью данных (см рис), определяемые их аппаратной архитектурой. В первом случае, энергонезависимая (EEPROM) память

является внутренней и входит состав контроллера, и АЛУ контроллера взаимодействует с ней через группу специальных регистров без использования специализированных аппаратных интерфейсов (хотя и используются различающиеся между собой логические протоколы обмена данными). Во втором - память является внешней по отношению к микросхеме контроллера и реализуется в виде отдельной микросхемы (группы микросхем). Обмен данными между АЛУ микроконтроллера и микросхемой памяти в этом случае осуществляется с помощью внутреннего специального SPI модуля, реализующего заданный интерфейс и протокол обмена, например - SerialPeripheralInterface (SPI), подключаемого к внешней микросхеме через один из портов контроллера. Строго говоря, PIC 16F877 имеет еще один аппаратный интерфейс для работы с микросхемами памяти - IC, но, учитывая, что в контроллере TTF он аппаратно не подключен, в данном пособии он не рассматривается. В обоих случаях память физически реализуется с использованием FLASH технологии с электрическим стиранием.

37.Формирование синусоидального сигнала с помощью модуля ШИМ. Учитывая, что разработка ПО потребует определения параметров регистров PR2, CCPR2L, CCP2CON вначале определим значение период а импульсной последовательности ШИМ. Для нахождения длительности

положительного импульса импульсной последовательности ШИМ можно пользоваться соотношением τ ШИМ i = TШИМ / qi. Для нахождения qi заметим, что набор постоянных составляющих {Е1, Е2, Е3, …. Ei} может быть аналитически определен следующим образом: (

) Учитывая, что амплитуда импульсов модуля ШИМ микроконтроллера также равна «амплитуде» формируемого сигнала Um(что, строго говоря, бывает далеко не всегда), можно записать: qi = Um/Ei. Подставляя сюда предыдущее выражение для Ei, а полученное выражение для qi в

выражение для длительности импульсов ШИМ (τШИМ = ТШИМ/qi), получим: ( ) Далее определяем содержимое регистров PR2, CCPR2L, CCP2CON. В регистр длительности CCPR2L в процессе работы ПО будут за писываться последовательных значений длительности, но надо учитывать, что значение длительности в двоичном эквиваленте является 10-ти разрядным, два младших разряда которого размещается соответственно в 5 и 4-ом разрядах регистра CCP2CON.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]