- •Электронный конспект лекций по курсу «Системы ввода - вывода и интерфейсы»
- •Глава 1. Основные принципы построения систем ввода-вывода и интерфейсов
- •1.1. Роль и место систем ввода-вывода и интерфейсов в компьютере
- •1.2. Основные принципы организации передачи информации в вычислительных системах
- •1.3. Компьютерные коммуникации и интерфейсы
- •1.4. Системные интерфейсы и шины расширения
- •1.5. Интерфейсы периферийных устройств
- •1.6. Структура систем ввода-вывода
- •1.7. Основные функции и принципы построения интерфейсов
- •1.8. Протоколы передачи данных в компьютерных интерфейсах
- •1.8.1. Алгоритмы протоколов передачи данных
- •1.8.2. Протокол параллельных интерфейсов
- •1.8.3. Протоколы последовательных интерфейсов
- •1.8.4. Принципы взаимодействия шин расширения и интерфейсов периферийных устройств
- •Глава 2. Шины расширения
- •2.1. Шина isa
- •2.1.1. Введение
- •2.1.1.1. Виды устройств, работающие на шине isa
- •2.1.1.1. Виды устройств, работающие на шине isa
- •2.1.2. Характеристики задатчиков на шине
- •2.1.2.2. Контроллер пдп
- •2.1.2.3. Внешняя плата
- •2.1.2.4. Режимы прямого доступа к памяти или к устройствам ввода/вывода
- •2.1.2.5. Режим сброса
- •2.1.2.6. Контроллер регенерации памяти
- •2.1.3. Общее описание шины isa
- •2.1.3.2. Адресное пространство для устройств ввода/вывода
- •2.1.3.3. Структура прерываний
- •2.1.3.4. Перестановщик байтов
- •2.1.4. Описание сигналов на шине isa
- •2.1.4.2. Командные сигналы
- •2.1.4.3. Центральные сигналы управления
- •2.1.4.4. Сигналы прерывания
- •2.1.4.5. Сигналы режима пдп
- •2.1.4.6. Питание
- •2.1.5. Циклы шины
- •2.1.5.1. Цикл Доступа к Ресурсу
- •2.1.5.1.1. Цикл Доступа к Ресурсу - 0 тактов ожидания
- •2.1.5.1.2. Цикл Доступа к Ресурсу - Нормальный цикл
- •2.1.5.1.3. Цикл Доступа к Ресурсу - Удлиненный цикл
- •2.1.5.2. Цикл Регенерации - Введение
- •2.1.5.2.1. Цикл Регенерации - Нормальный цикл
- •2.1.5.2.2. Цикл Регенерации - Удлиненный цикл
- •2.1.5.3. Цикл пдп
- •2.1.5.3.1. Цикл пдп - Нормальный цикл
- •2.1.5.3.2. Цикл пдп - Удлиненный цикл
- •2.1.5.4. Цикл Захвата Шины
- •2.2. Шина pci
- •2.2.1. Архитектура шины pci
- •2.2.2. Описание сигналов шины
- •2.2.3. Команды шины
- •2.2.4. Разновидности операций на шине
- •2.2.4.1. Начало и продолжение транзакции
- •2.2.4.2. Окончание транзакции
- •2.2.4.3. Способы завершения транзакций
- •2.2.4.4. Цикл чтения
- •2.2.4.5. Цикл записи
- •2.2.4.6. Арбитрация
- •2.2.4.7. Цикл конфигурации
- •2.3. Шина 3gio и Hyper Transport
- •2.3.1.1. Архитектура 3gio
- •2.3.2.1. Топологии
- •2.3.2.2. Совместимость с шиной pci
- •Глава 3. Интерфейсы периферийных устройств
- •3.1. Параллельный интерфейс: lpt-порт
- •3.1.1. Интерфейс Centronics
- •3.1.2. Традиционный lpt-порт
- •3.1.3. Функции bios для lpt-порта
- •3.1.4. Стандарт ieee 1284-1994
- •3.1.5. Физический и электрический интерфейс
- •3.1.6. Режим ерр
- •3.1.7. Режим еср
- •3.1.8. Конфигурирование lpt-портов
- •3.1.9. Использование параллельных портов
- •3.1.10. Параллельный порт и РпР
- •3.2. Последовательные интерфейсы: com-порт
- •3.2.1. Интерфейс rs-232с
- •3.2.2. Электрический интерфейс
- •3.2.3. Управление потоком передачи
- •3.2.4. Микросхемы асинхронных приемопередатчиков
- •3.3. Интерфейс scsi
- •3.3.1.2.1. Краткий обзор многочисленных разновидностей scsi.
- •3.3.1.2.2. Основные отличия scsi-2 от scsi-1
- •3.3.1.2.3. Быстрее, выше, сильнее
- •3.3.1.4. Совместимость устройств scsi
- •3.3.2. Описание сигналов
- •3.3.2.1. Физический интерфейс
- •3.3.2.2. Фазы шины
- •3.3.2.1. Физический интерфейс
- •3.3.2.2. Фазы шины
- •3.3.3. Описание сообщений и управление интерфейсом
- •3.3.4. Описание команд
- •3.3.4.1. Адресация и система команд
- •3.3.4.2. Выполнение команд
- •3.3.4.1. Адресация и система команд
- •3.3.4.2. Выполнение команд
- •3.3.5. Типы пу
- •3.3.5.1. Устройства прямого доступа (0)
- •3.3.5.2. Устройства последовательного доступа (1)
- •3.3.5.3. Принтеры (2)
- •3.3.5.4. Процессорными устройствами (3)
- •3.3.5.5. Устройства однократной записи (4)
- •3.3.5.6. Приводы cd-rom (5)
- •3.3.5.7. Сканеры (6)
- •3.3.5.8. Устройства оптической памяти (7)
- •3.3.5.9. Устройства смены носителей (8)
- •3.3.5.10. Коммуникационные устройства (9)
- •3.3.6. Конфигурирование устройств scsi
- •3.3.6.1. Хост-адаптер scsi
- •3.3.6.1. Хост-адаптер scsi
- •3.4. Интерфейс usb
- •3.4.1. Общая информация
- •3.4.2. Обзор архитектурыch2
- •3.4.2.1. Структура системы usb
- •3.4.2.1.1. Топология шины
- •3.4.2.2. Устройства usb
- •3.4.2.2.2. Функция
- •3.4.2.3. Физический интерфейс
- •3.4.2.3.1. Электрические характеристики
- •3.4.2.3.2. Механические характеристики
- •3.4.3. Модель передачи данныхch3
- •3.4.3.1. Конечные точки устройств usb
- •3.4.3.2. Каналы
- •3.4.3.2.1. Потоки
- •3.4.3.2.2. Сообщения
- •3.4.3.3. Типы передачи данных
- •3.4.4. Протоколch4
- •3.4.4.1. Форматы полей пакетов
- •3.4.4.1.1. Поле синхронизации
- •3.4.4.1.2. Поле идентификатора пакета
- •3.4.4.2.2. Маркер начала кадра (sof)
- •3.4.4.2.3. Пакет данных
- •3.4.4.2.4. Пакет подтверждения
- •3.4.4.3. Типы транзакций
- •3.4.4.3.1. Сплошные передачи
- •3.4.4.3.2. Управляющие посылки
- •3.4.4.3.3. Прерывания
- •3.4.4.3.4. Изохронные передачи
- •4.1.1.1.Структурная схема таймера
- •4.1.1.2. Назначение входов и выходов бис
- •4.1.1.3. Назначение блоков и сокращения, используемые в окне иммитационной модели таймера
- •4.1.2. Программирование таймера
- •4.1.3. Режимы работы таймера
- •4.1.3.1. Режим 0 - прерывание терминального счета
- •4.1.3.2. Режим 1 - программируемый ждущий мультивибратор
- •4.1.3.3. Режим 2 - импульсный генератор частоты
- •4.10. Функционирование таймера в режиме 2
- •4.1.3.4. Режим 3- генератор меандра
- •4.11. Функционирование таймера в режиме 3
- •4.1.3.5. Режим 4 - программно-формируемый строб
- •4.1.3.6. Режим 5 - аппаратно-формируемый строб
Глава 3. Интерфейсы периферийных устройств
3.1. Параллельный интерфейс: lpt-порт
в начало
Порт параллельного интерфейса был введен в РС для подключения принтера – отсюда и пошло его название LPT-порт (Line PrinTer – построчный принтер).
Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются ЗВСh, 378h и 278h. Порт может использовать линию запроса аппаратного прерывания, обычно IRQ7 или IRQ5. Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов.
BIOS поддерживает до четырех (иногда до трех) LPT-портов (LPT1-LPT4) своим сервисом – прерыванием INT 17h, обеспечивающим через них связь с принтерами по интерфейсу Centronics. Этим сервисом BIOS осуществляет вывод символа (по опросу готовности, не используя аппаратных прерываний), инициализацию интерфейса и принтера, а также опрос состояния принтера.
3.1.1. Интерфейс Centronics
в начало
Понятие Centronics относится как к набору сигналов и протоколу взаимодействия, так и к 36-контактному разъему, устанавливаемому на принтерах. Назначение сигналов приведено в таблице 3.1, а временные диаграммы обмена с принтером – на рисунке 3.1.
Таблица 3.1.
Сигнал |
I/O* |
Контакт |
Назначение |
Strobe# |
I |
1 |
Строб данных. Данные фиксируются по низкому уровню сигнала. |
Data [0:7] |
I |
2-9 |
Линии данных. Data 0 (контакт 2) – младший бит |
Ack# |
O |
10 |
Acknowledge – импульс подтверждения приема байта (запрос на прием следующего). Может использоваться для формирования запроса прерывания |
Busy |
O |
11 |
Занято. Прием данных возможен только при низком уровне сигнала |
PaperEnd |
O |
12 |
Высокий уровень сигнализирует о конце бумаги |
Select |
O |
13 |
Сигнализирует о включении принтера (обычно в принтере соединяется резистором с цепью +5 В) |
Auto LF# |
I |
14 |
Автоматический перевод строки. При низком символ CR (Carriage Return – возврат каретки), автоматически выполняет и функцию LF (Line Feed – перевод строки) |
Error# |
O |
32 |
Ошибка: конец бумаги, состояние OFF-Line или внутренняя ошибка принтера |
Init# |
I |
31 |
Инициализация (сброс в режим параметров умолчания, возврат к началу строки) |
Slctln# |
I |
36 |
Выбор принтера (низким уровнем). При высоком уровне принтер не воспринимает остальные сигналы интерфейса |
GND |
- |
19-30 33 |
Общий провод интерфейса |
Рис.3.1. Временная диаграмма обмена с принтером
3.1.2. Традиционный lpt-порт
в начало
Традиционный (стандартный) порт SPP (Standard Parallel Port) является однонаправленным портом, на базе которого программно реализуется протокол обмена Centronics. Порт обеспечивает возможность вырабатывания запроса аппаратного прерывания по импульсу на входе ACK#. Сигналы порта выводятся на разъем DB-25S (розетка), установленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом. Название и назначение сигналов разъема порта (таблица 3.2) соответствует интерфейсу Centronics.
Таблица 3.2. Разъем стандартного LPT-порта
Контакт DB-25S |
Провод шлейфа |
Назначение | ||
I/O* |
Reg.Bit** |
Сигнал | ||
1 |
1 |
0/1 |
CR: 0\ |
Strobe# |
2 |
3 |
0(1) |
DR: 0 |
Data0 |
3 |
5 |
0(1) |
DR: 1 |
Data 1 |
4 |
7 |
0(1) |
DR: 2 |
Data 2 |
5 |
9 |
0(1) |
DR: 3 |
Data 3 |
6 |
11 |
0(1) |
DR: 4 |
Data 4 |
7 |
13 |
0(1) |
DR: 5 |
Data 5 |
8 |
15 |
0(1) |
DR: 6 |
Data 6 |
9 |
17 |
0(1) |
DR: 7 |
Data 6 |
10 |
19 |
I”* |
SR: 6 |
Ack# |
11 |
21 |
I |
SR: 7\ |
Busy |
12 |
23 |
I |
SR: 5 |
PaperEnd |
13 |
25 |
I |
SR: 4 |
Select |
14 |
2 |
0/1 |
CR: 1\ |
Auto LF# |
15 |
4 |
I |
SR: 3 |
Error# |
16 |
6 |
0/1 |
CR: 2 |
Init# |
17 |
8 |
0/1 |
CR: 3\ |
Select In# |
18-25 |
10, 12, 14, 16 |
18, 20, 22, 24, 26 |
- |
- |
Data Register (DR) – регистр данных, адрес=BASE. Данные, записанные в этот порт, выводятся на выходные линии интерфейса. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанные данным, либо сигналам на тех же линиях, что не всегда одно и то же.
Status Register (SR) – регистр состояния, представляющий собой 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7), адрес BASE+1. Бит SR.7 инвертируется – низкому уровню сигнала соответствует единичное значение бита в регистре и наоборот.
Назначение бит регистра состояния (в скобках даны номера контактов разъема):
- SR.7 – Busy – инверсные отображения состояния линии Busy (11): на низком уровне на линии устанавливается единичное значение бита – разрешение на вывод очередного байта;
- SR.6 – ACK (Acknowledge) – отображение состояния линии Ack# (10);
- SR.5 – PE (Paper End) – отображения состояния линии Paper End (12). Единичное значение соответствует высокому уровню линии – сигналу (о конце бумаги в принтере);
- SR.4 – Select – отображения состояния линии Select (13). Единичное значение соответствует высокому уровню линии – сигналу о включении принтера;
- SR.3 – Error – отображения состояния линии Error (15). Нулевое значение соответствует низкому уровню линии – сигналу о любой ошибке принтера;
- SR.2 – PIRQ – флаг прерывания по сигналу Ack# (только для порта РS/2). Бит обнуляется, если сигнал Ack# вызвал аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после чтения регистра состояния;
- SR[1:0] – зарезервированы.
Control Register (CR) – регистр управления, адрес = ВАSЕ+2. Как и регистр данных, этот 4-битный порт вывода допускает запись и чтение (биты 0-3), но его выходной буфер обычно имеет тип “открытый коллектор”. Это позволяет более корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты 0, 1, 3 инвертируются – единичному значению в регистре соответствует низкий уровень сигнала, и наоборот.
Назначение бит регистра управления:
- CR[7:6]– зарезервированы.
- CR.5–Direction– бит управления направлением передачи (только для портов РS/2). Запись единицы переводит порт данных в режим ввода. При чтении состояние бита не определено;
- CR.4–ACKINTEN(AckInterruptEnable) – единичное значение разрешает прерывание по спаду сигнала на линииAck# – сигнал запроса следующего байта;
- CR.3–SelectIn– единичное значение бита соответствует низкому уровню на выходеSelectInff(17) – сигналу, разрешающему работу принтера по интерфейсуCentronics;
- CR.2–Init– нулевое значение бита соответствует низкому уровню на выходеInit# (16) – сигнал аппаратного сброса принтера;
- CR.1–AutoLF– единичное значение бита соответствует низкому уровню на выходеAutoLF(14) – сигналу на автоматический перевод строки (LF–LineFeed) по приему байта возврата каретки (CR–CarriageReturn). Иногда сигнал называютAutoFDилиAutoFDXT;
- CR.0–Strobe– единичное значение бита соответствует низкому уровню на выходеStrobed(1) – сигналу стробирования выходных данных.
Запрос аппаратного прерывания (обычно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (АСК#) при установке СR.4 = 1. Воизбежании ложных прерываний, контакт 10 соединен резистором с шиной +5 В. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта. Как уже было сказано, BIOS это прерывание не использует и его не обслуживает.
Процедура вывода байта по интерфейсу Centronics через стандартный порт включает следующие шаги (в скобках приведено требуемое количество шинных операций процессора):
1)вывод байта в регистр данных (1 цикл IOWR#);
2)ввод из регистра состояния и проверка готовности устройства (бит SR.7 – сигнал BUSY). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#);
3)по получении готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается (2 цикла IOWR$). Обычно для того, чтобы переключить только один бит (строб), регистр управления предварительно считывается, что добавляет еще один цикл 10Ш.
Из описания этой процедуры видно, что для вывода одного байта требуется по меньшей мере 4-5 операций ввода/вывода с регистрами порта (это в лучшем случае, когда готовность обнаружена по первому чтению регистра состояния). Отсюда и главный недостаток при выводе через стандартный порт – невысокая скорость обмена при значительной загрузке процессора. Стандартный порт удается разогнать лишь до скоростей порядка 100-150 Кбайт/с при полной загрузке процессора, что сегодня уже явно недостаточно для печати на лазерный принтер. Другой недостаток – функциональный – сложность использования в качестве порта ввода.