Лекция №4 - WordPress.com

advertisement
Лекция 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
Download