- •Тема 1.1: Класифікація мікропроцесорів. Архітектура процесорів Intel 8086.
- •1.4. Структура вбудованого мікроконтролеру
- •1.5. Системна шина
- •Тема 2.2: Арифметичні операції над числами. Логічні операції над числами та строками. Умовні та безумовні переходи.
- •2.2.1 Додавання цілих чисел. Синтаксис команд
- •2.2.2 Віднімання цілих чисел. Синтаксис команд
- •2.2.3 Множення цілих чисел. Синтаксис команд.
- •2.2.4 Ділення цілих чисел. Синтаксис команд
- •2.2.5 Арифметичний зсув вліво і вправо. Синтаксис команд
- •2.2.6 Безумовний перехід та порівняння. Синтаксис команд.
- •2.3.3. Команди організації циклів. Синтаксис команд
- •3.1.2. Сегментні регістри. Состав шинного інтерфейсу.
- •3.1.3. Індексні регістри. Регістр флагів.
- •3.1.4. Функції алу. Призначення адресних входів алу
- •Тема 3.2: Система команд мікропроцесору i8080. Організація пам’яті та портів вводу/виводу.
- •Тема 5.1: Система команд i8086. Система переривів. Адресація пам’яті. Директиви передачі керування.
- •5.1.2. Команди перериву за переповненням. Синтаксис команд.
- •5.1.3. Повернення з переривів та підпрограм.
- •5.1.4. Сегментна організація пам’яті.
- •5.1.5. Фізична адреса байту в пам’яті.
- •5.1.6. Формування логічного адресу.
- •Тема 5.2: Сопроцесор і арифметичне розширення процесору. Синхронізація програми та керування таймером.
- •5.2.1. Функції та призначення сопроцесору.
- •5.2.4. Синхронізація сигналів таймеру.
- •Тема 5.3: Програмування вводу/виводу даних на зовнішні пристрої. Обмін даними в локальних мережах.
- •5.3.1. Функції інтерфейсу вводу/виводу.
- •5.3.2. Керування обміном даними. Програмний обмін.
- •5.3.3. Керування обміном даними. Обмін за переривом.
- •Тема 6.1: Архітектура мікроконтролеру i8086. Організація пам’яті і регістрів. Прямий доступ до пам’яті.
- •6.1.1. Організація пам’яті. Адресний простір.
- •6.1.2. Структура процесору i8086. Виконавчий модуль.
- •6.1.3. Структура процесору i8086. Шиний інтерфейс
- •6.1.4. Структура процесору i8086. Керування і таймінг.
- •6.1.5. Контролер динамічної пам'яті. Схема модуля.
- •Тема 6.2: Організація портів вводу/виводу. Інтерфейси зовнішніх пристроїв для взаємодії з технологічним обладнанням.
- •Тема 6.3: Тактовий генератор. Таймери. Лічильники. Внутрішня та зовнішня пам’ять. Шини адресу та даних.
- •6.3.1. Мікросхема тактового генератору.
- •6.3.2. Структурна схема програмованого таймеру.
- •6.3.3. Режими роботи програмованого таймеру.
- •6.3.4. Нарощування об’єму пам’яті.
- •Тема 6.4: Система переривів. Контролер переривів. Організація механізму переривів. Перериви таймеру.
- •6.4.1. Контролер переривів. Джерело переривів.
- •6.4.2. Запроси переривів. Типи векторів переривів.
- •6.4.3. Адреси функцій переривів. Приклад визову перериву.
- •Тема 7.1: Засоби організації обміну із зовнішніми приладами. Схема виводів. Програмовані виводи.
- •7.1.1. Схема виводів мікропроцесору i8086.
- •7.1.2. Адресація 8-бітного пристрою.
6.4.2. Запроси переривів. Типи векторів переривів.
Микропроцессор 8086 использует специальную микросхему контроллера прерываний 8259 (580ВН59). Блок-схема микросхемы контроллера приведена на рис. 7.4. Этот контроллер является стандартным для многих микропроцессорных систем и персональных компьютеров. Контроллер 8259 имеет восемь входов прерываний. Используя дополнительные контроллеры, число входов прерывания возможно довести до 64. Дополнительные контроллеры называются вспомогательными; первый контроллер является основным. Основной контроллер располагает по приоритетам запросы на прерывание от вспомогательных контроллеров и своих входов IRn и передает запросы по одному на вход маскируемого прерывания процессора.
Рис.7.4. Блок-схема контроллера прерываний
Микропроцессор 8086 может использовать до 256 различных прерываний. Каждое прерывание определяется его номером в пределах от 0 до 255. Каждому прерыванию соответствует вектор прерывания, который является номером прерывания, умноженным на 4. Вектор прерывания – указатель, который указывает на связанную с прерыванием подпрограмму обработки прерывания. Таблица векторов прерываний расположена в начальной области памяти микропроцессора. Таблица векторов прерываний имеет размер 1 Кбайт (4 байта, умноженные на 256).
Прежде чем начать работать, каждый контроллер прерываний должен быть инициализирован последовательностью из управляющих слов инициализации. После того, как произошел сброс системы, состояния всех регистров контроллера не определены. Слова инициализации используются, чтобы установить необходимые режимы работы контроллера.
6.4.3. Адреси функцій переривів. Приклад визову перериву.
Во многих случаях большие блоки данных должны быть переданы между устройством ввода/вывода и памятью. Дисковод, например, обычно читает и записывает данные блоками, которые могут быть объемом в тысячи байт. Если использовать для управления передачей данных процессор, то значительная часть времени его работы будет потрачена на эту операцию. Даже если при передаче данных используется режим прерываний, все равно производительность системы в целом будет сильно падать. Это происходит потому, что микропроцессор не имеет команд прямой передачи данных от внешнего устройства в память и наоборот, и ему приходится использовать регистры общего назначения для временного хранения данных. В результате передача осуществляется в два этапа: сначала из внешнего устройства – в процессор, а затем из процессора – в память. Выгоднее было бы использование передачи напрямую, минуя процессор.
Прямой доступ к памяти (ПДП) позволяет передавать данные между памятью и периферийными устройствами без вмешательства процессора. Системы, которые используют прямой доступ к памяти, имеют специальное устройство, называемое контроллер прямого доступа к памяти. Контроллер берет в этом режиме под свой контроль шины системы и выполняет управление передачей данных между памятью и периферийным устройством. Когда контроллер ПДП принимает запрос от периферийного устройства, он посылает в процессор сигнал требования прямого доступа. В этом случае процессор вырабатывает сигнал подтверждения ПДП и переходит в пассивный режим, переводя внешние шины адреса и данных в высокоомное состояние и не вырабатывая сигналы управления. В случаях, если процессору не требуется обращение к внешним шинам системы, он может продолжать выполнение команд из очереди команд. Контроллер ПДП выполняет передачу данных самостоятельно. Если передачи данных в режиме прямого доступа происходят нечасто, то это не приводит к снижению производительности системы в целом, так как передача данных при прямом доступе прозрачна для процессора.
Передача данных в режиме ПДП начинается с запроса. Устройство, требующее прямой доступ, может иметь данные для передачи или может требовать данные от другого устройства. Кроме того, передачи данных в режиме ПДП могут быть инициализированы системным программным обеспечением без внешнего запроса.
Когда режим ПДП разрешается процессором, контроллер прямого доступа к памяти обеспечивает все необходимые сигналы шины для передачи данных. Источник и приемник данных для передачи программируемы и могут быть или в пространстве адресов ввода/вывода, или в пространстве адресов памяти.
Микропроцессорные системы на основе микропроцессора 8086 используют в качестве контроллера прямого доступа к памяти микросхему 8257. Интегральная схема 8257 – программируемый 4 канальный контроллер ПДП. Каждый канал контроллера оборудован 16 разрядным регистром адреса ПДП и 16 разрядным регистром-счетчиком числа переданных байтов. Младшие 14 битов регистра-счетчика определяют количество циклов ПДП, таким образом, их максимальное количество равно 16384. Старшие 2 бита регистра-счетчика определяют тип операции ПДП для данного канала.
Логика арбитража в контроллере решает, какой канал имеет приоритет, если два канала одновременно запрашивают передачу данных. Каждый канал может получить или низкий, или высокий приоритет.
Перед использованием контроллер должен быть запрограммирован. При программировании контроллера вначале необходимо установить параметры для каждого канала. Для каждого канала программируются следующие параметры: указатель адреса ПДП, число передаваемых байт данных, тип операции ПДП
Например, персональные компьютеры часто используют таймер, чтобы прервать процессор раз в секунду, чтобы заставить его модифицировать изображение часов, отображаемых на экране. Компьютеры, используемые в управлении производственным процессом, обычно прерываются датчиками, которые обнаруживают различные состояния оборудования, требующие немедленного внимания. Пример внутреннего состояния, требующего прерывания – попытка деления на 0, которая не может дать никакого результата. Этот тип исключительного состояния должен приостановить работу программы, чтобы прервать операцию и послать предупреждающее сообщение пользователю.
Микропроцессор 8086 имеет два источника внешних прерываний; вход немаскируемого прерывания (NMI) и вход маскируемого прерывания (INTR). Для большинства микропроцессорных систем единственный вход маскируемого прерывания недостаточен. Большинство процессоров использует специальный контроллер прерываний, чтобы увеличить число доступных маскируемых прерываний.