- •Вопросы к экзамену по курсу “ Интерфейсы периферийных устройств “.
- •1.Интерфейсы вычислительных систем. Общие положения. Способы подключения
- •2.Электрические параметры интерфейсов. Обеспечение гальванической развязки.
- •3. Токовые интерфейсы. Интерфейсы с выходом по напряжению
- •4. Интерфейс Rs 232 ( Контакты разъема и назначение сигналов )
- •5. Асинхронный формат передачи данных
- •6. Электрические параметры Com порта
- •7. Последовательные интерфейсы Rs 422 и Rs 485
- •8. Обзор интерфейса usb
- •(Null !) 9. Адресация устройств в usb
- •10.Типы сообщений в usb
- •11. Инициализация устройств в usb
- •Нумерация устройств usb
- •12. Стандартные дескрипторы устройства.
- •Дескриптор устройства
- •Уточняющий дескриптор устройства
- •Дескриптор конфигурации
- •Дескриптор интерфейса
- •Дескриптор конечной точки
- •Дескриптор строки
- •(Null !) 13. Электрические характеристики интерфейса spi
- •13, 15. Интерфейс spi Режим master, режим slave
- •21. Арбитраж и конкуренция в шине i2c
- •22. Организация интерфейса can
- •2. Основные характеристики
- •23. Форматы сообщений интерфейса can
- •24. Обнаружение ошибок в протоколе can
- •25. Арбитраж и конкуренция в протоколе can
- •26. Интерфейс Cetronics
- •Упрощённая таблица сигналов интерфейса Centronics
- •27. Режимы spp и NibbleMode параллельного порта
- •28. Режим Byte Mode параллельного порта
- •29. Режим ecp параллельного порта
- •30. Режим epp параллельного порта
- •31. Последовательность согласований согласно ieee 1284
- •(Null !) 32. Электрические характеристики lpt порта (null !) 33. Протокол работы шины isa
- •34. Организация прерываний в шине isa
- •35. Прямой доступ к памяти в интерфейсе isa
- •36. Обзор параметров интерфейса scsi
- •37. Организация интерфейса scsi Протокол шины scsi
- •Протокол шины
- •38. Обзор параметров шины pci
- •39. Протокол шины pci
- •40. Адресация устройств pci
- •41. Команды шины pci
- •42.Прерывания в интерфейсе pci
- •43. Эволюция интерфейса ata
- •(Null !) 44. Назначение контактов разъема ide
- •(Null !) 45. Прием и передача данных хостом в режиме pi
Упрощённая таблица сигналов интерфейса Centronics
Контакты
DB-25 IEEE 1284-A Centronics IEEE 1284-B Обозначение Примечание
1 1 Strobe Маркер цикла передачи (выход)
2 2 Data 1 Сигнал 1 (выход)
3 3 Data 2 Сигнал 2 (выход)
4 4 Data 3 Сигнал 3 (выход)
5 5 Data 4 Сигнал 4 (выход)
6 6 Data 5 Сигнал 5 (выход)
7 7 Data 6 Сигнал 6 (выход)
8 8 Data 7 Сигнал 7 (выход)
9 9 Data 8 Сигнал 8 (выход)
10 10 Acknowledge Готовность принять (вход)
11 11 Busy Занят (вход)
12 12 Paper End Нет бумаги (вход)
13 13 Select Выбор (вход)
14 14 Auto Feed Автоподача (выход)
15 32 Error Ошибка (вход)
16 31 Init Инициализация (выход)
17 36 Select In Управление печатью (выход)
18-25 16-17, 19-30 GND Общий
27. Режимы spp и NibbleMode параллельного порта
Традиционный LPT-порт
Традиционный, он же стандартный, LPT-порт называется стандартным параллельным портом (Standard Parallel Port, SPP), или SPP-портом, и является однонаправленным портом, через который программно реализуется протокол обмена Centronics (см. п. 8.3.1). Название и назначение сигналов разъема порта (табл. 1.1) соответствуют интерфейсу Centronics.
Таблица 1 |
.1. Разъем стандартного LPT-порта |
|
||
Контакт |
№ провода |
Назначение |
|
|
DB-25S |
в кабеле |
I/O1 |
Бит2 |
Сигнал |
1 |
1 |
0/I |
CR.OX |
Strobe» |
2 |
3 |
0(1) |
DR.O |
DataO |
3 |
5 |
0(1) |
DR.1 |
Datal |
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(0 |
DR.5 |
Data 5 |
8 |
15 |
0(0 |
DR.6 |
Data 6 |
9 |
17 |
0(0 |
DR.7 |
Data 7 |
10 |
19 |
I3 |
SR.6 |
Ack# |
11 |
21 |
I |
SR.A |
Busy |
12 |
23 |
I |
SR.5 |
PaperEnd(PE) |
13 |
25 |
I |
SR.4 |
Select |
14 |
2 |
0/I |
CR.1\ |
Auto LF# (AutoFeedW) |
15 |
4 |
I |
SR.3 |
Error» |
16 |
6 |
0/I |
CR.2 |
lnit# |
17 |
8 |
0/I |
CR.3\ |
Select ln# |
18-25 |
10,12,14,16,18, |
_ |
_ |
_ |
|
20, 22, 24, 26 |
|
|
|
1 I/O задает направление передачи (вход-выход) сигнала порта. O/I обозначает выходные линии, состояние которых считывается при чтении из портов вывода; 6(1) — выходные линии, состояние которых может быть считано только при особых условиях (см. ниже).
2 Символом «\» отмечены инвертированные сигналы (1 в регистре соответствует низкому уровню линии).
Вход Ack# соединен резистором (10 кОм) с питанием +5 В.
Адаптер SPP-порта содержит три 8-битных регистра, расположенных по соседним адресам в пространстве ввода-вывода, начиная с базового адреса порта BASE (3BCh, 378h или 278h).
Data Register (DR) — регистр данных, адрес=ВА5Е. Данные, записанные в этот регистр, выводятся на выходные линии Data[7:0]. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях, что не всегда одно и то же. Status Register (SR) — регистр состояния (только чтение), адрес=ВА5Е+1.' Регистр отображает 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7) и флаг прерывания. Бит SR. 7 инвертируется — низкому уровню сигнала соответствует единичное значению бита в регистре, и наоборот.
Ниже описано назначение бит регистра состояния (в скобках даны номера контактов разъема порта).
SR.7 — Busy — инверсное отображение состояния линии Busy (11): при низком уровне на линии устанавливается единичное значения бита — разрешение на вывод очередного байта.
SR. 6 — Ack (Acknowledge) — отображение состояния линии Ack# (10).
SR. 5 — РЕ (Paper End) — отображение состояния линии Paper End (12). Единичное значение соответствует высокому уровню линии — сигналу о конце бумаги в принтере.
SR. 4 — Select — отображение состояния линии Select (13). Единичное значение соответствует высокому уровню линии — сигналу о включении принтера.
SR. 3 — Error — отображение состояния линии Error* (15). Нулевое значение соответствует низкому уровню линии — сигналу о любой ошибке принтера.
SR.2 — PIRQ — флаг прерывания по сигналу Ack# (только для порта PS/2). Бит обнуляется, если сигнал Ack# вызвал аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после чтения регистра состояния.
SR[1:0] — зарезервированы.
Control Register (СR) — регистр управления, адрес=ВА5Е+2, допускает запись и чтение. Регистр связан с 4-битным портом вывода управляющих сигналов (биты 0-3) для которых возможно и чтение; выходной буфер обычно имеет тип «открытый коллектор». Это позволяет корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты 0,1,3 инвертируются.
Ниже описано назначение бит регистра управления.
CR [7:6] — зарезервированы.
CR.5 — Direction — бит управления направлением передачи (только для портов PS/2, см. ниже). Запись единицы переводит порт данных в режим ввода. При чтении состояние бита не определено.
CR. 4 — AcklNTEN (Ack Interrupt Enable) — единичное значение разрешает прерывание по спаду сигнала на линии Ack# — сигнал запроса следующего байта.
CR.3 — Select In — единичное значение бита соответствует низкому уровню на выходе Select ln# (17) — сигналу, разрешающему работу принтера по интерфейсу Centronics.
CR.2 — In it— нулевое значение бита соответствует низкому уровню на выходе Init# (16) — сигнал аппаратного сброса принтера.
CR. 1 — Auto LF — единичное значение бита соответствует низкому уровню на выходе Auto LF# (14) — сигналу на автоматический перевод строки (LF — Line Feed) по приему байта возврата каретки (CR). Иногда сигнал и бит называют AutoFD или AutoFDXT.
CR.0 — Strobe — единичное значение бита соответствует низкому уровню на выходе Strobe* (1) — сигналу стробирования выходных данных.
Запрос аппаратного прерывания (обычно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (Ack#) при установке CR. 4=1. Во избежание ложных прерываний контакт 10 соединен резистором с шиной +5 В. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта. Как уже было сказано, BIOS это прерывание не использует и не обслуживает.
Перечислим шаги процедуры вывода байта по интерфейсу Centronics с указанием требуемого количества шинных операций процессора.
Вывод байта в регистр данных (1 цикл IOWR#).
Ввод из регистра состояния и проверка готовности устройства (бит SR. 7 — сигнал Busy). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#).
По получению готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается. Обычно, чтобы пере ключить только один бит (строб), регистр управления предварительно считы- вается, что к двум циклам IOWR# добавляет еще один цикл IORD#.
Видно, что для вывода одного байта требуется 4-5 операций ввода-вывода с регистрами порта (в лучшем случае, когда готовность обнаружена по первому чтению регистра состояния). Отсюда вытекает главный недостаток вывода через стандартный порт — невысокая скорость обмена при значительной загрузке процессора. Порт удается разогнать до скоростей 100-150 Кбайт/с при полной загрузке процессора, что недостаточно для печати на лазерном принтере. Другой недостаток функциональный — сложность использования в качестве порта ввода.
Стандартный порт асимметричен — при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работает только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена — Nibble Mode. В этом режиме, называемом также Hewlett Packard Bi-tronics, одновременно принимаются 4 бита данных, пятая линия используется для квитирования. Таким образом, каждый байт передается за два цикла, а каждый цикл требует по крайней мере 5 операций ввода-вывода…………………………………………………….
Схемотехника выходных буферов данных LPT-портов отличается большим разнообразием. На многих старых моделях адаптеров SPP-порт данных можно использовать и для организации ввода. Если в порт данных записать байт с единицами во всех разрядах, а на выходные линии интерфейса через микросхемы с выходом типа «открытый коллектор» подать какой-либо код (или соединить ключами какие-то линии со схемной землей), то этот код может быть считан из того же регистра данных. Однако выходным цепям передатчика информации придется «бороться» с выходным током логической единицы выходных буферов адаптера. Схемотехника ТТЛ такие решения не запрещает, но если внешнее устройство выполнено на микросхемах КМОП, их мощности может не хватить для «победы» в этом шинном конфликте. Однако современные адаптеры часто имеют в выходной цепи согласующий резистор с сопротивлением до 50 Ом. Выходной ток короткого замыкания выхода на землю обычно не превышает 30 мА. Простой расчет показывает, что даже в случае короткого замыкания контакта разъема на землю при выводе «единицы» на этом резисторе падает напряжение 1,5 В, что входной схемой приемника будет воспринято как «единица». Поэтому нельзя полагать, что такой способ ввода будет работать на всех компьютерах. На некоторых старых адаптерах портов выходной буфер отключается перемычкой на плате. Тогда порт превращается в обыкновенный порт ввода.
Nibble Mode
Полубайтный режим предназначен для двунаправленного обмена и может работать на всех стандартных портах. Порты имеют 5 линий ввода состояния, используя которые ПУ может посылать в хост байт тетрадами (nibble — полубайт, 4 бита) за два приема. Сигнал Ack#, вызывающий прерывание, которое может использоваться в данном режиме, соответствует биту 6 регистра состояния, что усложняет программные манипуляции с битами при сборке байта. Сигналы порта приведены в табл. 1.2, временные диаграммы — на рис.1.1.
14 |
AutoFeed# |
0 |
CR.1 |
HostBusy — сигнал квитирования. Низкий уровень означает готовность к приему тетрады, высокий подтверждает прием тетрады Высокий уровень указывает на обмен в режиме IEEE 1284 (в режиме SPP уровень низкий) PtrClk. Низкий уровень означает готовность тетрады, высокий — ответ на сигнал HostBusy Прием бита данных 3, затем бита 7 Прием бита данных 2, затем бита 6 Прием бита данных 1, затем бита 5 Прием бита данных 0, затем бита 4 |
17 |
Selectln* |
0 |
CR.3 |
|
10 |
Ack# |
I |
SR.6 |
|
11 12 13 15 |
Busy РЕ Select Error# |
I I 1 1 |
SR.7 SR.5 SR.4 SR.3 |
Таблица 1.2. Сигналы LPT-порта в полубайтном режиме ввода
Контакт Сигнал SPP I/O Бит Описание
Рис. 1.1. Прием данных в полубайтном режиме Прием байта данных в полубайтном режиме состоит из следующих фаз:
Хост сигнализирует о готовности приема данных установкой низкого уровня на линии HostBusy.
ПУ в ответ помещает тетраду на входные линии состояния.
ПУ сигнализирует о готовности тетрады установкой низкого уровня нд ли нии PtrClk.
Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость приемом и обработкой тетрады.
ПУ отвечает установкой высокого уровня на линии PtrClk.
Шаги 1-5 повторяются для второй тетрады.
Полубайтный режим сильно нагружает процессор, и поднять скорость обмена выше 50 Кбайт/с не удается. Безусловное его преимущество в том, что он работает на всех портах. Его применяют в тех случаях, когда поток данных невелик (например, для связи с принтерами). Однако при связи с адаптерами локальных сетей, внешними дисковыми накопителями и CD-ROM прием больших объемов данных требует изрядного терпения со стороны пользователя.
