
- •Основные понятия и определения микропроцессорной техники: микропроцессор, микропроцессорная система, микроконтроллер. Принципы построения микропроцессорных систем.
- •Архитектура микропроцессора: архитектура со сложной системой команд (cisc-процессоры), архитектура с упрощенной системой команд (risc-процессоры). Принстонская и гарвардская архитектуры.
- •3. Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти.
- •4. Модуль процессора микропроцессорной системы. Состав модуля – операционный блок, блок управления, интерфейсный блок. Выполняемые функции.
- •5. Модуль памяти мпс. Выполняемые функции. Основные характеристики. Типы микросхем, применяемых для построения постоянной и оперативной памяти микропроцессорных систем.
- •6. Реализация обмена данными между внешними устройствами и микропроцессорной системой (мпс). Модуль ввода/вывода мпс, выполняемые функции, функциональная схема устройства ввода/вывода.
- •7. Понятие о системе команд микропроцессоров. Основные группы команд. Способы адресации операндов в микропроцессорах.
- •Форматы команд
- •Способы адресации операндов и команд
- •Адресация операндов
- •Адресация команд
- •Группы команд микропроцессора
- •8. Классификация и структура микроконтроллеров (мк). Процессорное ядро мк, его основные характеристики.
- •9. Типы памяти микроконтроллеров: память программ, память данных, регистры, внешняя память.
- •Память программ
- •Память данных
- •Регистры мк
- •Внешняя память
- •10. Порты ввода/вывода: назначение, основные типы. Таймеры микроконтроллеров: назначение, внутренняя структура.
- •Таймеры микроконтроллеров
- •12. Интерфейсы микропроцессорных систем, классификация и принципы построения
- •14. Последовательные асинхронные интерфейсы: rs-232, rs-422, rs-485, ирпс (интерфейс радиальный последовательный). Назначение, форматы передачи данных, основные технические характеристики.
- •15. Последовательные синхронные интерфейсы: spi (Synhronous Peripheral Interface), i2c (Inter Integrated Circuit). Назначение, форматы передачи данных, основные технические характеристики.
- •Интерфейсная шина i2c
- •16. Однокристальные микроконтроллеры семейства mcs-51: состав и общая характеристика. Структурная организация: регистры, память данных и программ.
- •17. Однокристальные микроконтроллеры семейства mcs-51: порты ввода/вывода, таймеры/счетчики, последовательный порт, система прерываний. Назначение, основные особенности.
- •18. Работа микроконтроллеров семейства mcs-51 в автономном режиме, способы подключения внешней памяти программ и данных.
- •21. Микроконтроллеры подсемейства pic18: общая характеристика, особенности архитектуры и системы команд.
- •Организация памяти
- •Система прерывания
- •Порты ввода/вывода
- •Генератор тактовых импульсов
- •Система команд pic18
- •Основные этапы разработки микроконтроллерных систем
- •Разработка и автономная отладка аппаратных средств мкс
- •Разработка и отладка программного обеспечения
- •23. Язык Ассемблер для микроконтроллеров семейства mcs-51: назначение, структура полей предложений на языке Ассемблер, директивы Ассемблера.
- •Поля предложения на языке Ассемблер
- •Примеры
- •Директивы Ассемблера
- •Метка Операция Операнды Комментарий
- •Метка Операция Операнды Комментарий
- •Опрос двоичного датчика
- •Ожидание события
- •Формирование временной задержки
- •Формирование управляющих сигналов из мк
- •Защита от дребезга контактов
- •25. Методы ввода информации с клавиатуры для микроконтроллеров семейства mcs-51: виды клавиатур, схема подключения контактов клавиатур к микроконтроллеру, методы опроса клавиатуры.
- •Описание микроконтроллерного устройства
- •Создание исходного файла базовой программы
- •Включение и выключение светодиода. Чтобы подать логическую единицу на вывод rb0 (для включения светодиода) необходимо в нулевой бит регистра portb записать 1:
- •Опрос переключателя. Ниже приведен текст программы, которая по нажатию клавиши sa1 включает светодиод vd1, а при ее отпускании светодиод гаснет.
- •Представление информации в языке Си
- •Операции и выражения в Си
- •Операторы управления вычислительным процессом
- •Функции
3. Структура микропроцессорной системы и основные режимы ее работы – выполнение основной программы, обслуживание прерываний, прямой доступ к памяти.
Структура МПС является магистрально-модульной. В такой структуре имеется группа шин (магистраль), к которым подключаются различные модули, обменивающиеся между собой информацией по одним и тем же шинам поочередно. На рис. 3.1 приведена структура типовой МПС с тремя шинами.
Рис. 3.1. Типовая структура МПС
Главным модулем системы является процессор, который считывает и выполняет команды программы, организует обращение к памяти, в нужных случаях инициирует работу устройств ввода и вывода. Основой модуля служит микропроцессор. Кроме МП в процессоре обычно расположены генератор тактовых импульсов Г и буферы для сопряжения с магистралью МПС. Генератор обеспечивает тактирование МП. Микропроцессор обязательно имеет выводы трех шин: адреса, данных и управления. Эти шины служат для формирования системной шины (магистрали) МПС. Однако нагрузочная способность выводов микросхемы МП мала, поэтому для подключения МП к магистрали используются буферы, выполненные обычно на основе шинных формирователей.
Память МПС имеет две разновидности: постоянное запоминающее устройство (ПЗУ) и оперативное запоминающее устройство (ОЗУ). ПЗУ служит для хранения констант и неизменяемых программ. Оно является энергонезависимым и при выключении питания информацию не теряет. ОЗУ хранит оперативные данные (изменяемые программы, промежуточные результаты вычислений) и теряет свое содержимое вместе с отключением питания. Но ОЗУ в отличие от ПЗУ позволяет процессору записывать данные, а не только читать их в процессе работы МПС.
С программной точки зрения память МПС представляет собой набор регистров (ячеек памяти), обычно 8-разрядных, предназначенных для хранения информации в двоичной форме. Каждая ячейка имеет уникальный адрес, что обеспечивает возможность доступа к ней.
Внешние устройства (ВУ) подключаются к МПС с помощью устройств ввода/вывода, реализующих определенные протоколы параллельного или последовательного обмена. Такими ВУ могут быть клавиатура, монитор, внешние запоминающие устройства (магнитные и оптические диски), датчики и преобразователи информации (аналого-цифровые и цифро-аналоговые), разнообразные исполнительные устройства (индикаторы, принтеры, электродвигатели, реле и другие).
Устройства ввода/вывода в МПС чаще всего выполняются в виде портов ввода/вывода. Порты могут быть двунаправленными, т.е. работать поочередно на ввод или вывод данных. Но чаще порты выполняются однонаправленными, т.е. используются только для ввода или вывода данных.
С программной точки зрения порт ввода – это адрес устройства МПС, через которое из ВУ могут быть переданы данные на ШД. Соответственно порт вывода – это адрес устройства МПС, через которое данные с ШД передаются на ВУ.
Порты ввода/вывода могут передавать данные в параллельном формате, тогда их называют параллельными портами ввода/вывода. Некоторые порты для сопряжения с ВУ могут использовать последовательный формат передачи кода данных, тогда их называют последовательными портами.
Для реализации различных режимов работы к МПС могут подключаться дополнительные устройства: контроллеры прерываний, прямого доступа к памяти, таймеры и другие, выполняющие необходимые специальные функции управления.
Практически любая МПС (в том числе и компьютер) имеет три основных режима работы:
выполнение основной программы;
обслуживание прерываний;
прямой доступ к памяти.
Выполнение основной программы. В этом режиме процессор выбирает из памяти очередную команду программы и выполняет соответствующую операцию, читая данные из памяти или из УВВ, записывая данные в память или УВВ. В этом режиме процессор является единоличным ведущим (хозяином – Master) магистрали (системной шины) МПС. Все операции обмена информацией инициируются только процессором, все они выполняются строго в порядке, определяемом исполняемой программой.
Для хранения адреса очередной команды служит специальный регистр МП – счетчик команд или программный счетчик PC (Program Counter), содержимое которого автоматически увеличивается на 1 (инкрементируется) после выборки очередного байта команды. Таким способом обеспечивается последовательность выборки команд в процессе выполнения программы. При выборке очередной команды содержимое PC поступает на шину адреса, обеспечивая считывание из памяти следующей команды выполняемой программы. При реализации безусловных или условных переходов (ветвлений) или других изменений последовательности выполнения команд производится загрузка в PC нового содержимого, в результате чего происходит переход к другой ветви программы или подпрограмме.
Обращение к подпрограмме реализуется при поступлении в МП специальной команды вызова подпрограммы, которая указывает адрес первой команды вызываемой подпрограммы. Этот адрес загружается в PC, обеспечивая выборку первой команды подпрограммы. Предварительно выполняется процедура сохранения в специальной области ОЗУ текущего содержимого PC, где в этот момент хранится адрес следующей команды основной программы, чтобы обеспечить возвращение к ней после выполнения подпрограммы. Возврат в основную программу реализуется при поступлении команды возврата, завершающей подпрограмму. По этой команде сохранявшееся содержимое PC снова загружается в счетчик команд, обеспечивая выполнение команды, которая в основной программе следовала за командой вызова подпрограммы.
Для реализации процедуры вызова подпрограммы и возврата из нее используется стек (stack) – часть ОЗУ, предназначенная для временного хранения данных, и работающая по принципу LIFO (Last In-First Out – последним пришел, первым ушел).
Особенность стека – это заданный и неизменный способ адресации. Адресация к ячейкам стека производится с помощью специального регистра – указателя стека SP (Stack Pointer), который входит в состав МП. При записи любого числа (кода) в стек число записывается по адресу, определяемому как содержимое регистра SP, предварительно уменьшенное на единицу (декрементированное), т.е. (SP) = (SP) – 1. При чтении из стека число читается из ячейки с адресом, определяемым содержимым указателя стека, после чего это содержимое увеличивается на единицу (инкрементируется), т.е. (SP) = (SP) + 1. В результате получается, что число, записываемое последним, будет прочитано первым, а число, записанное первым, будет прочитано последним.
Обслуживание прерываний. При работе МПС часто возникают ситуации, когда требуется прервать выполнение текущей программы и перейти к подпрограмме, обеспечивающей реакцию системы на создавшиеся обстоятельства. Прерывания можно разделить на программные, аппаратные и исключения.
Программные прерывания возникают при поступлении в МП соответствующих команд. Аппаратные прерывания активизируются при поступлении сигналов от внешних устройств. Исключениями являются ошибки, возникающие при работе МП.
Во всех этих ситуациях МП завершает выполнение очередной команды и заносит в стек текущее содержимое счетчика команд PC, которое является адресом возврата к прерванной программе после выполнения подпрограммы обслуживания, и содержимое регистра состояния PSW (EFLAGS). Затем в PC загружается из памяти вектор прерывания – начальный адрес соответствующей подпрограммы обслуживания, которая часто называется обработчиком прерывания. Эти вектора являются входами в подпрограммы обслуживания и хранятся в таблице векторов прерываний, которая записывается в памяти МПС. Завершается подпрограмма обслуживания специальной командой возврата из прерывания, которая извлекает из стека хранившееся содержимое PC и PSW (EFLAGS) и загружает его обратно в эти регистры, обеспечивая возвращение к выполнению прерванной программы.
Прямой доступ к памяти. Режим прямого доступа к памяти ПДП (англоязычный термин DMA – Direct Memory Access) используется, если необходимо произвести пересылку значительного объема информации между ОЗУ и каким-либо внешним устройством. Реализация такой пересылки с помощью соответствующей программы требует использования отдельной команды для пересылки каждого байта или слова и значительного времени на ее выполнение.
Для пересылки больших массивов информации в МПС используются специальные микросхемы – контроллеры ПДП, которые реализуют режим прямого доступа к памяти. При поступлении запроса от внешнего устройства контроллер выдает соответствующий сигнал микропроцессору. Получив этот сигнал, процессор завершает очередной цикл обмена по системной шине и отключается от нее, то есть переводит выходы своих буферов, присоединенных к шинам адреса, данных и управления в Z-состояние. При этом процессор выдает контроллеру ПДП сигнал разрешения на реализацию прямого доступа. Получив этот сигнал, контроллер принимает на себя управление системной шиной. Он выдает на шину адреса ячеек ОЗУ, с которыми выполняется текущий цикл обмена, формирует необходимые сигналы, определяющие режим работы ОЗУ (запись или чтение) и портов ввода и вывода, через которые производится пересылка информации (ввод или вывод). Предварительно контроллер ПДП программируется для выполнения указанных функций. В него вводятся начальные адреса массивов памяти в ОЗУ, с которых начинается процесс обмена, и размеры массивов, подлежащих пересылке.
Теоретически обмен с помощью прямого доступа к памяти может обеспечить более высокую скорость передачи информации, чем программный обмен, так как процессор передает данные медленнее, чем контроллер ПДП. Однако на практике это преимущество реализуется далеко не всегда. Скорость обмена в режиме ПДП обычно ограничена возможностями магистрали. Кроме того, необходимость программного задания режимов контроллера ПДП также уменьшает реальную скорость пересылки данных в режиме ПДП. Поэтому режим ПДП обычно применяется в системах, где часто необходимо пересылать очень большие объемы данных, например, в персональных компьютерах. В простых МПС режим ПДП применяется редко.