Лекция 4 Функционирование МПС - порты и контроллеры. Лектор: Люличева И.А. 1 Рассматриваются вопросы Работа с ППИ и таймером БИС последовательного интерфейса (УАПП-UART) Контроллер прерываний Контроллер прямого доступа в память 2 Состав МП комплектов На прошлой лекции мы обсуждали, что для работы МП системы нужны некоторые вспомогательные схемы, программируемые и непрограммируемые. Непрограммируемые БИС (генераторы, формирователи шин и пр.) мы оставили на самостоятельное изучение. Мы рассмотрели структурные схемы 2 программируемых БИС – Таймера, и параллельного интерфейса (ППИ). 3 Структурная схема МП системы (уточненная) ША ШД ШУ 4 Дополнительные БИС 5 БИС ППИ – параллельный порт 6 Пример программирования ППИ Вопрос – назначение параллельного порта (справа – распиновка для электрических принципиальных схем). ;Пример 2 алгоритм (текст – на доске) 1. Формируем УС 2. Модифицируем алгоритм ввода из порта. 3. Пишем программу. 7 Формат управляющего слова ППИ 8 Алгоритм и программа В уже изученный алгоритм ввода из порта добавляется ТОЛЬКО один блок – настройка ППИ на режми работы. В программу добавятся 2 строки (До начала цикла)– MOV AL, 90h OUT 0C3h 9 Таймер Назначение таймера – разгрузить процессор от рутинных операции подсчета времени, импульсов (в режиме счетчика) и пр. Например, вместо длинной программы задержки в ЛБ 1 можно было настроить таймер на режим программируемой задержки и ожидать прерывания от таймера. 10 Управляющее слово таймера D7 D6 Вибор канала 00 - канал 0 01 - канал 1 10 - канал 2 D5 D4 Сколько и какие байты загружать 00 - читання на льоту 01 – чт/зап младшего байта 10 – чт/зап 11 D3 D2 D1 D0 Режим работы 1канала десятичны 00 - режим 0 й счет 001 - режим 1 0– двоичный 010 - режим 2 счет 011 - режим 3 100 - режим 4 101 - режим 5 старшого байта чт/зап слова – ст И мл байта 11 Примеры программирования таймера ;Пример 1 настройка одного счетчика таймера в режим деления на 5 (адреса таймера -80h,81h,82h,83h) mov al,1eh; CT0,1 мл.байт, режим 3, код 2 out 83h,al; вывод упр. байта в порт УС таймера mov al,5 ; коэф. деления Kf=F1/F2=5 out 80h,al; запись Kf в 0 счетчик. 12 Примеры программирования таймера Пример 2. Программа инициализации 2-х счетчиков сложнее: MOV AL, 00010101B ; 00-Режим Сч0, 01-мл. байт, 010-реж.2,1-дв/дес OUT 43H,AL ; вывод в регистр режима MOV AL, 01110111B ; 01-Режим Сч1,11-два байта,011-реж.2,1-дв/дес OUT 43H ; вывод в регистр режима MOV AL, 10H ; N деление в Сч0 OUT 40H ; Адрес Сч0 MOV AL, 00 ; мл. байт N деление в Лч1 OUT 41H ; Адрес Сч1 MOV AL, 20H ; ст. байт N деление в Лч1 OUT 41H ; Адрес Сч1 13 УАПП-UART Связь с удаленными устройствами или абонентами сетей может осуществляться с помощью универсального асинхронного последовательного приемо-передатчика УАПП-UART (иначе-программируемый связной интерфейс). Эта БИС полностью поддерживает стандарт интерфейса RS-232. 14 Структурная схема УАПП/UART D (7-0) БД RESET CLK C/D RD WR БК ВВ TBF TCU TxD TxRD Y TxE TXC CS DSR DTR CTS RTS RBF RxD БКМ RCU RxRDY RxC SYNDET К выводам RxD приемник и TxD передатчик через линию связи подключаются передатчик и приемник другого абонента или устройства. Если связь производится через модем, то доступны любые сети вплоть до Интернет. 15 УАПП-UART Поскольку БИС УСАПП имеет 2 упр. слова ее программирование несколько сложнее, чем параллельного порта ППИ или таймера. Ниже приведен пример настройки УСАПП. Алгоритм этой программы состоит из 3 блоков – сброс, передача УС1, передача УС2. Далее рассмотрен вывод массива байтов в с контролем по готовности передатчика. В программе вывода использована базовая адресация. 16 Пример настройки последовательного порта ; Настройка УСАПП ( адреса 9С – данные и 9D управление) mov al, 40h; программный сброс out 9Dh, al; mov al, 0CFh; инструкция режима: 2 стоп-бита, out 9Dh, al ; нет контроля,8 бит, fTxC/ 64 mov al,01h; инструкция команды out 9Dh, al; разреш. передачи TxEN =1 17 Пример работы с последовательным портом ; Пример 3 Передача (вывод) массива байтов в УСАПП mov cх, 20; число символов mov BX,1000h; нач. Адрес. массива М1: mov al,[BX]; переслать байт из массива в AL out 9Ch,al; и вывести его в УСАПП wt: in al,9dh; чтение байта состояния shr al,1; символ передан в линию? (TxRDY = 1?), jnc wt; если нет, то ждать, inc bx; если „да”, перейти к адресу след. байта dec cх; переданы все байти? jnz М1; если „нет”, повторить 18 Контроллер прерываний Программируемый контроллер прерываний 8259 (советский аналог - КР1810ВН59А) предназначен для обработки до восьми прерываний. Имеет несколько режимов работы – с фиксированным или циклическим приоритетом, шаг – 4 или 8, которые устанавливаются программным путем с использованием 5 управляющих слов инициализации и операции. 19 Контроллер прерываний Есть два типа управляющих команд контролера 8259 - команды инициализации и команды операции. Команда инициализации (ICW) определяет ОБЩИЙ режим функционирования ПКП. Команда операции (OCW) детально описывает небольшую операцию, например: Маскирование отдельных запросов, 20 Контроллер прерываний спеціальне маскування обслужених запитів; установка статусу рівнів пріоритету (по установці вихідного стану, по обслуженому запиті, за вказівкою); операції кінця переривання (звичайний кінець переривання, спеціальний кінець переривання, автоматичний кінець переривання); читання регістрів IRR, ISR, IMR. 21 Внешний вид 22 Контроллер прерываний Ш ин а адр ес и керу в ання д ан и х В і д у ч і й ПК П CS WR RD AO INTA SP CPU CAS0 CAS1 CAS2 INT IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 D7-D0 В і д о м и й ПК П CS WR RD AO INTA SP DC D7-D0 CPU CAS0 CAS1 CAS2 INT IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 Возможно каскадное включение до 9 ПКП. Один из контроллеров при этом – ведущий, остальные 8 – ведомые. 23 Контроллер прерываний Ми не будемо докладно описувати команди ініціалізації а тим більш операції контролера 8259. Бажаючих розібратися у всіх тонкостях завдання початкового режиму роботи контролера переривань ми відсилаємо до довідкової літератури по мікросхемі 8259 або її вітчизняному аналогу К1810ВН59. У персональних комп'ютерах XT й AT за первісну установку режимів роботи мікросхем 8259 відповідає BIOS. У програміста швидше за все не виникне потреба перепрограмувати контролер це небезпечно, тому що неправильне програмування контролера приведе до порушення логіки роботи всієї системи. 24 Контроллер ПДП (назначение и стр схема) Назначение – разгрузить ЦП от рутинных операций ввода-вывода массивов. КПДП – это единственная из БИС, которая может изменять шину адреса. При работе в режиме ведущего все циклы передачи выполняются под управлением КПДП. МП при этом отключен от шин и находится в состоянии «захват шин». 25 Контроллер ПДП Прямий доступ до пам'яті (ПДП, DMA) - це метод безпосереднього звернення до пам'яті, без використання процесора. Звичайно DMA використовується для обміну великими масивами даних між системною пам'яттю і пристроями введення-виведення. В персональних комп’ютерах підсистема DMA виконана на базі окремої ВIС – КПДП, але інших МПС можливі два інших варіанта. КПДП керує передачею даних по системній шині між пам'яттю і інтерфейсом вводавывода. 26 Контроллер ПДП Основне його призначення - звільнити МП від операцій передачі великих блоків даних. В процесі передачі контролер ПДП поміщає адреси на шину, а також видає і приймає сигнали квітування так, як це робить логіка управління шиною самого ЦП. Для цього йому треба запрошувати цикли шини у процесора. 27 Контроллер ПДП Мікросхема 8237 має три канали ПДП і 43 байт буферної пам'яті; вона може обслуговувати до трьох інтерфейсів введення-виведення або зовнішньої пам'яті. У деяких системах окрім контролера ПДП потрібен ще і дешифратор його наказів, наприклад, Intel 8205. Процесор відповідає тільки за програмування DMA: настройку на певний тип передачі, завдання початкової адреси і розміру масиву обмінюваних даних. 28 Алгоритм прямого доступа в память 1. 2. 3. 4. 5. 6. 7. Загальний алгоритм прямого доступу до пам'яті Для здійснення прямого доступу до пам'яті контролер повинен виконати ряд послідовних операцій: прийняти запит (DREQ) від пристрою введення-виведення; сформувати запит (HRQ) в процесор на захоплення шини; прийняти сигнал (HLDA), підтверджуючий захоплення шини; сформувати сигнал (DACK), що повідомляє пристрій про початок обміну даними; видати адресу елементу пам'яті, призначеної для обміну; виробити сигнали (MEMR, IOW або MEMW, IOR), що забезпечують управління обміном; після закінчення циклу DMA або повторити цикл DMA, змінивши адресу, або припинити цикл. 29 Контроллер ПДП Контроллер прямого доступа к памяти (КПДП) имеет несколько каналов и для машин AT состоял из двух микросхем Intel 8237A. Контроллер НГМД использует канал 2. Перед началом инициализации КПДП программа должна послать в порты 0Bh и 0Ch код операции, которая будет выполняться КПДП - 46h для операции чтения и 4Ah для операции записи. В процессе инициализации программа должна сообщить КПДП адрес буфера, куда ему следует поместить данные или откуда надо взять данные, и длину передаваемых данных в байтах. 30 Контроллер ПДП (пример программы) Ограничимся примером установки 2 канала для чтения одного сектора (512 байт) диска, dma - это адреса КП базовый адрес КПДП. mov al,46h ;Канал 2, чтение с диска (УС = 4Аh для записи на диск) out dma+0B, al ; Режим out dma+0C, al ; Сброс триггера FF mov al, bl ; Загрузка начального адреса памяти out dma+4,al mov al, bh out dma+4,al 31 Контроллер ПДП (пример программы) mov al,0 ; Счетчик=512 out dma+5,al ; младший байт=00 mov al,2 out dma+5,al; старший байт=2…. Итого 200Н==512 out dma+0A,al ; Размаскировать канал 2 разрешить передачу. Программа настройки КПДП– линейная!! 32 Домашнее задание (вместо летучки) 1. Какие БИС входят в состав МПК 18101? 2. Назначение БИС параллельного и последовательного портов. 3. Назначание контроллера прерываний. 4. Какие устройства в ПК работают по прерываниям? 5. Какие устройства в ПК используют прямой доступ к памяти? 33 Вопросы для сдачи ЛБ 1 Что такое чипсет, что в него входит? Разработайте алгоритм ввода данных из последовательного порта в асинхронном режиме с контролем по четности Поясните назначение и принцип работы контроллера прерываний. Что такое вектор прерываний? Сколько прерываний от ВУ есть в ПК? От каких устройств эти прерывания? Поясните назначение и принцип работы контроллера прямого доступа в память. Поясните порядок программирования КПДП. 34