- •Электронный конспект лекций по курсу «Системы ввода - вывода и интерфейсы»
- •Глава 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 - аппаратно-формируемый строб
4.1.2. Программирование таймера
в начало
После включения питания состояние таймера неопределенное. Режим работы каждого счетчика определяется при его программировании. Каждый счетчик должен быть запрограммирован, прежде чем он будет использоваться. Неиспользуемые счетчики не нуждаются в программировании.
При программировании счетчика сначала записывается управляющее слово, а затем константа счета (рисунок 4.4).
Рис.4.4. Формат управляющего слова
Запись управляющего слова происходит при записи в порт 43 (A1,A0=11), а запись констант счета в каналы 0, 1, 2 - при записи в порты 40, 41, 42 (A1,A0=00, 01, 10) соответственно при активных сигналахCSи VR (CS=0, VR=0).
Процедура программирования таймера очень гибкая. Необходимо запомнить два правила:
1) в каждый счетчик управляющее слово должно быть записано перед загрузкой счета;
2) счетчик должен загружаться тем количеством байтов значения счета, которое указано в управляющем слове (младший байт, старший байт, младший байт и старший байты). Так как RCW каждого канала имеет свой адрес (SC1, SC0) и загружаемый в CVR код хранится до следующего программирования, то не требуется специальной последовательности программирования. Приемлема любая последовательность, следующая приведенным выше правилам.
Новая константа счета может быть записана в счетчик в любой момент времени и должна соответствовать запрограммированному формату счета. Следует помнить, что при записи констант счета они поступают в CR, а непосредственно в счетчик попадают по входному сигналу GATE.
Если счетчик запрограммирован для чтения/записи двух байтов счета, программа загрузки не должна передавать управление между записью первого и второго байтов другой программе, которая тоже записывает данные в этот счетчик.
В следующей таблице приведены операции, выполняемые при различных комбинациях на входах CS, RD, VR, A0, A1 таймера.
Таблица 4.1.
Часто желательно читать содержимое счетчика без нарушения процесса счета. Имеется три метода чтения счетчиков:
1) Простое чтение.Этот метод чтения счётчика реализуется простой операцией чтения. При чтении счетчика , выбираемого А1, А0, работа счетчика должна быть приостановлена подачей GATE=0 либо внешним логическим устройством, блокирующим подачу CLK на выбранный счетчик. В противном случае счет может быть изменен в процессе чтения и его результат будет неопределенным.
2) Чтение "на лету" командой CLC (защелкивание содержимого счетчиков).Формат управляющего слова соответствующей команды показан на следующем рисунке.
Рис.4.5. Формат команды CLC-чтение «на лету»
Эта команда позволяет прочитать текущее значение счетчика в любой момент времени без останова счета. Команда "Чтение" на лету" не влияет на содержимое регистра RCW. При выполнении этой команды текущее значение счета защелкивается в выходной защелке OL и находится там до начала выполнения первой команды считывания этого счетчика.
Адрес защелкиваемого счетчика определяется разрядами SC1, SC0 команды. Если в таймер поступает несколько команд "Чтение "на лету" для одного и того же счетчика без последующих считываний, то результатом чтения будет счет, защелкнутый первой командой "Чтение "на лету".
При любом методе значение счета должно читаться согласно формату программирования: если счетчик программируется на два байта считывания, два байта и должны быть прочитаны. Необходимо помнить, что если операция считывания выполнена не до конца, новая команда "Чтение "на лету" не воспринимается, а пока константа счета не загружена в CE, она не может быть прочитана. Два байта не обязательно считывать сразу один за другим, между их считываниями могут быть выполнены операции чтения или записи других счетчиков.
Другая особенность таймера: чтение может прерываться записью в тот же счетчик. Например, если счетчик программируется на два байта счета, возможна следующая последовательность:
1) читать младший байт,
2) записать новый младший байт,
3) читать старший байт
4) записать новый старший бай.
3) Обратное чтение командой RBC (защелкивание содержимого счетчиков и/или RSTAT).Этот метод предполагает использование команды RBC - "Обратное чтение". Формат управляющего слова для этой команды показан на следующем рисунке.
Рис.4.6. Формат команды RBC - "Обратное чтение"
По этой команде могут выполняться две операции: защелкивание текущего значения счетчика (ов) и/или защелкивание текущего значения RS канала (ов). Эти операции выполняются либо независимо, либо совмещаются.
Эта команда эквивалентна нескольким командам "Чтение "на лету" CLC (по одной на каждый счетчик).
При COUNT=0 содержимое счетчика (ов) защелкивается в OL и сохраняется там до его считывания или перепрограммирования. Считываемый счетчик автоматически "отщелкивается", когда будет полностью прочитан, но другие счетчики остаются защелкнутыми, пока не будут прочитаны.
При STATUS=0 содержимое RS указанного канала (ов) защелкивается в STATL и сохраняется там до его считывания. Если до считывания в таймере поступит еще одна или несколько команд "Обратное чтение" для защелкивания RS, они будут игнорироваться, пока не будет прочитано состояние таймера по первой команде "Обратное чтение". Формат RS показан на следующем рисунке:
Рис.4.7. Формат регистра состояния RS
Разряды D5-D0 соответствуют текущему значению регистра CVR, разряд D7 (OUT) - текущему состоянию выхода OUT, разряд D6 (NULL COUNT)индуцирует, произошла загрузка константы счета из CR в CE или нет. Если NULL COUNT=0 , то это означает, что ранее загруженная в CR константа передана в CE. В этом случае можно выполнить загрузку новой константы, не нарушая счета. Изменение NULL COUNT при работе и программировании показано в следующей таблице.
Таблица 4.2. Изменение состояния NULL COUNT
Счет и состояние выбранного счетчика (ков) могут быть одновременно защёлкнуты при COUNT=0 и STATUS=0. Это функционально то же самое, что и выполнение двух команд "Обратное чтение" последовательно одна за другой.
Если счет и состояние счетчика защелкнуты, по первой операции чтения будет считываться защелкнутое состояние счетчика независимо оттого, что защелкнуто первым. Следующие одна или две операции (один или два байта счета) реализуют считывание защелкнутого счета.