- •А.И. Юдов Периферийные устройства эвм учебное пособие
- •Раздел 1 «Эволюция периферийных интерфейсов пк» 1. Что такое периферийные устройства
- •1 Контроллер отличается от адаптера более высоким уровнем «интеллекта»
- •1.3. Стандарт ieee 1284
- •1.3.1. Полубайтный режим ввода — Nibble Mode
- •1.3.2. Байтный режим ввода — Byte Mode
- •1.3.4. Режим еср
- •1.3.7. Физический и электрический интерфейсы
- •1.6. Применение lpt-порта
- •1.5. Параллельный порт и РпР
- •2.2. Интерфейс rs-232c
- •2.2.1. Электрический интерфейс
- •2.2.2. Управление потоком данных
- •2.5.1. Использование сом-портов
- •2.5.4. Неисправности и тестирование сом-портов
- •2.5.5. Функции bios для сом-портов
- •4.1. Шина usb
- •4.1.1. Организация шины usb
- •4.1.2. Модель передачи данных
- •4.1.3. Протокол
- •4.1.4. Типы передач данных
- •4.1.5. Синхронизация при изохронной передаче
- •4.1.6. Хост
- •4.1.7. Применение шины usb
- •4.1.8. Разработка собственных устройств usb
- •4.2. Шина ieee 1394 - FireWire
- •4.2.1. Физический уровень сети
- •4.2.3. Устройства и адаптеры 1394
2.2.2. Управление потоком данных
Для управления потоком данных (Flow Control) могут использоваться два варианта протокола — аппаратный и программный. Иногда управление потоком путают с квитированием, но это разные методы достижения одной цели — согласования темпа передачи и приема. Квитирование (Handshaking) подразумевает посылку уведомления о получении элемента, в то время как управление потокам предполагает посылку уведомления о невозможности последующего приема данных.
Аппаратный протокол управления потоком RTS/CTS (Hardware Flow Control) использует сигнал CTS, который позволяет остановить передачу данных, если приемник не готов к их приему (рис. 2.9). Передатчик «выпускает» очередной байт только при включенной линии CTS. Байт, который уже начал передаваться, задержать сигналом CTS невозможно (это гарантирует целостность посылки). Аппаратный протокол обеспечивает самую быструю реакцию передатчика на состояние приемника. Микросхемы асинхронных приемопередатчиков имеют не менее двух регистров в приемной части —
сдвигающий, для приема очередной посылки, и хранящий, из которого считывается принятый байт. Это позволяет реализовать обмен по аппаратному протоколу без потери данных.
Аппаратный протокол удобно использовать при подключении принтеров и плоттеров, если они его поддерживают (рис. 2.10). При непосредственном (без модемов) соединении двух компьютеров аппаратный протокол требует перекрестного соединения линий RTS — CTS.
Если аппаратный протокол не используется, у передающего терминала должно быть обеспечено состояние «включено» на линии CTS перемычкой RTS — CTS. В противном случае передатчик будет «молчать».
Программный протокол управления потоком XON/XOFF предполагает наличие двунаправленного канала передачи данных. Работает протокол следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым не может их дальше принимать, оно по обратному последовательному каналу посылает байт-символ XOFF (13h). Противоположное устройство, приняв этот символ, приостанавливает передачу. Когда принимающее устройство снова становится готовым к приему данных, оно посылает символ
XON (llh), приняв который противоположное устройство возобновляет передачу. Время реакции передатчика на изменение состояния приемника по сравнению с аппаратным протоколом увеличивается по крайней мере на время передачи символа (XON или XOFF) плюс время реакции программы передатчика на прием символа (рис. 2.11). Из этого следует, что данные без потерь могут приниматься только приемником, имеющим дополнительный буфер принимаемых данных и сигнализирующим о неготовности заблаговременно (имея в буфере свободное место).
Преимущество программного протокола заключается в отсутствии необходимости передачи управляющих сигналов интерфейса — минимальный кабель для двустороннего обмена может иметь только 3 провода (см. рис. 2.8а). Недостатком, кроме требования наличия буфера и большего времени реакции (снижающего общую производительность канала из-за ожидания сигнала XON), является сложность реализации полнодуплексного режима обмена. В этом случае из потока принимаемых данных должны выделяться (и обрабатываться) символы управления потоком, что ограничивает набор передаваемых символов. Минимальный вариант кабеля для подключения принтера (плоттера) с протоколом XON/XOFF приведен на рис. 2.12.
Кроме этих двух распространенных стандартных протоколов, поддерживаемых и ПУ, и ОС, существуют и другие. Некоторые плоттеры с последовательным интерфейсом используют программное управление, но посылают не стандартные символы XON/XOFF, а слова (ASCII-строки). Такой обмен на уровне системной поддержки протокола практически не поддерживается (эти плоттеры непосредственно«разговаривают» с прикладной программой). Конечно, можно написать драйвер СОМ-порта (перехватчик INT 14h), но необходимость обработки в нем текстовых сообщений от устройства вывода обычно не вызывает восторга у системного программиста. Кабель для подключения совпадает с приведенным на рис. 2.12.
2.3. Интерфейс «токовая петля»
Распространенным вариантом последовательного интерфейса является токовая петля. В ней электрическим сигналом является не уровень напряжения относительно общего провода, а ток в двухпроводной линии, соединяющей приемник и передатчик. Логической единице (состоянию «включено») соответствует протекание тока 20 мА, а логическому нулю — отсутствие тока. Такое представление сигналов для описанного формата асинхронной посылки позволяет обнаружить обрыв линии — приемник заметит отсутствие стоп-бита (обрыв линии действует как постоянный логический нуль).
Токовая петля обычно предполагает гальваническую развязку входных цепей приемника от схемы устройства. При этом источником тока в петле является передатчик (этот вариант называют активным передатчиком). Возможно и питание от приемника (активный приемник), при этом выходной ключ передатчика может быть также гальванически развязан с остальной схемой передатчика. Существуют упрощенные варианты без гальванической развязки, но это уже вырожденный случай интерфейса. Токовая петля с гальванической развязкой позволяет передавать сигналы на расстояния до нескольких километров. Расстояние определяется сопротивлением пары проводов и уровнем помех. Поскольку интерфейс требует пары проводов для каждого сигнала, обычно используют только два сигнала интерфейса. В случае двунаправленного обмена применяются только сигналы передаваемых и принимаемых данных, а для управления потоком используется программный метод XON/XOFF. Если двунаправленный обмен не требуется, используют одну линию данных, а для управления потоком обратная линия задействуется для сигнала CTS (аппаратный протокол) или встречной линии данных (программный протокол).
Преобразовать сигналы RS-232C в токовую петлю можно с помощью несложной схемы (рис. 2.13). Здесь принтер подключается по токовой петле к СОМ-порту с аппаратным управлением потоком. Для получения двуполярного сигнала, требуемого для входных сигналов СОМ-порта, применяется питание от интерфейса.
При надлежащем ПО одной токовой петлей можно обеспечить двунаправленную полудуплексную связь двух устройств. При этом каждый приемник «слышит» как сигналы передатчика на противоположной стороне канала, так и сигналы своего передатчика. Они расцениваются коммуникационными пакетами просто как эхо-сигнал. Для безошибочного приема передатчики должны работать поочередно.
2.4. Интерфейс MIDI
Цифровой интерфейс музыкальных инструментов MIDI (Musical Instrument Digital Interface) является двунаправленным последовательным асинхронным интерфейсом с частотой передачи 31,25 Кбит/с. Этот интерфейс, разработанный в 1983 году, стал фактическим стандартом для сопряжения компьютеров, синтезаторов, записывающих и воспроизводящих устройств, микшеров, устройств специальных эффектов и другой электромузыкальной техники.
В интерфейсе применяется таковая петля 10 мА (возможно 5 мА) с гальванической развязкой входной цепи. Это исключает связь «схемных земель» соединяемых устройств через интерфейсный кабель, устраняя помехи, крайне нежелательные для звуковой техники. Снижению интерференционных помех служит и выбор частоты передачи, которая совпадает с одним из значений частот квантования, принятых в цифровой звукозаписи.
Асинхронная посылка содержит старт-бит, 8 бит информации и 1 стоп-бит, контроль четности отсутствует. Старший бит посылки является признаком «команда/данные». Его нулевое значение указывает на наличие семи бит данных в младших разрядах. При единичном значении биты [6:4] содержат код команды, а биты [3:0] — номер канала. Команды могут быть как адресованными конкретному каналу, так и широковещательными безадресными. К последней группе относятся команды старта, стопа и отметки времени, обеспечивающие синхронизацию устройств (система синхронизации MIDI Sync и МТС - MIDI Time Code).
Интерфейс определяет три типа портов: MIDI-In, MIDI-Out nMIDI-Thru.
Входной порт MIDI-In представляет собой вход интерфейса «токовая петля 10 мА», гальванически развязанного от приемника оптроном с быстродействием не хуже 2 мкс. Устройство отслеживает информационный поток на этом входе и реагирует на адресованные ему команды и данные.
Выходной порт MIDI-Out представляет собой выход источника тока 10 мА, гальванически связанного со схемой уст- ройства. Ограничительные резисторы предохраняют выходные цепи от повреждения при замыкании на землю или источник 5 В. На выход подается информационный поток от данного устройства. В потоке может содержаться и транслированный входной поток.
Транзитный порт MIDI-Thru (не обязателен) служит для ретрансляции входного сигнала.
В качестве разъемов применяются 5-контактные разъемы DIN, распространенные в бытовой звуковой аппаратуре. На всех устройствах устанавливаются розетки, на кабелях — вилки. Все соединительные кабели MIDI унифицированы (рис. 2.14). Контакт 2 — экран кабеля — соединяется с общим проводом только на стороне передатчика (на разъемах MIDI-Out и MIDI-Thru).
В маркировке входов и выходов, указанной около разъемов, бывают разночтения. Одни производители пишут «In» или «Out» в соответствии с функцией разъема данного устройства (и это) правильно), тогда любой кабель соединяет «In» и «Out». Другие считают, что подпись должна обозначать функцию подключаемого устройства. Тогда кабель будет соединять разъемы с обозначениями «In» — «In» и «Out» — «Out».
Интерфейс позволяет объединить группу до 16 устройств в локальную сеть. Топология должна подчиняться правилу:
вход MIDI-In одного устройства должен подключаться к выходу MIDI-Out или MIDI-Thru другого. При планировании MIDI-сети необходимо руководствоваться информационными потоками и связью устройств. Управляющие устройства — клавиатуры, секвенсоры (в режиме воспроиз- ведения), источники синхронизации — должны находиться перед управляемыми. Если устройства нуждаются в двунаправленном обмене, они соединяются в кольцо. Возможно применение специальных мультиплексоров, позволяющих логически коммутировать несколько входных потоков в один выходной. Вырожденным случаем кольца является двунаправленное соединение двух устройств. Несколько вариантов соединения приведено на рис. 2.15.
В PC MIDI-порт имеется на большинстве звуковых адаптеров, его сигналы выведены на неиспользуемые контакты (12 и 15) разъема игрового адаптера. Для подключения устройств MIDI требуется переходной адаптер, реализующий интерфейс «токовая петля». Переходной адаптер обычно встраивается в специальный кабель, схема которого приведена на рис. 2.16. Некоторые модели PC имеют встроенные адаптеры и стандартные 5-штырьковые разъемы MIDI.
В PC для интерфейса MIDI применяются порты, совместимые с контроллером MPU-401 (Roland) в режиме UART. В пространстве ввода/вывода MPU-401 занимает два смежных адреса MPU (обычно 330h) и MPU+1:
'» Порт DATA (адрес MPU+0) — запись и считывание байт, передаваемых и принимаемых по интерфейсу MIDI. Порт STATUS/COMMAND (адрес MPU+1) - чтение состояния / запись команд (запись — только для интеллектуального режима). В байте состояния определены следующие биты:
Бит 7 - DSR (Data Set Ready) - готовность (DSR-0) принятых данных для чтения. Бит устанавливается в «I», когда все принятые байты считаны из регистра данных.
Бит 6 - DRR (Data Read Ready) - готовность (DRR=0) UART к записи в регистр данных или команд. Условие готовности к записи не возникнет, если приемник имеет непрочитанный байт данных.
На некоторых системных платах применяются БИС контроллеров интерфейсов, в которых UART, используемая для СОМ-порта, конфигурированием через BIOS SETUP может быть переведена в режим MIDI-порта.
2.5. СОМ-порт
Последовательный интерфейс СОМ-порт (Communication Port — коммуникационный порт) появился в первых моделях IBM PC. Он был реализован на микросхеме асинхронного приемопередатчика Intel 8250. Порт имел поддержку BIOS (/Л/Т 74/?), однако широко применялось (и применяется) взаимодействие с портом на уровне регистров. Поэтому во всех PC-совместимых компьютерах для последовательного интерфейса применяют микросхемы приемопередатчиков, совместимые с i8250. В ряде отечественных PC-совместимых (почти) компьютеров для последовательного интерфейса применялась микросхема КР580ВВ51 — аналог i8251. Однако эта микросхема является универсальным синхронно-асинхронным приемопередатчиком (УСАПП или USART — Universal Asynchronous Receiver-Transmitter). Совместимости с PC на уровне регистров СОМ-порта такие компьютеры не имеют. Хорошо, если у соответствующих компьютеров имеется «честный» драйвер B/OS INT 14h, а не заглушка, возвращающая состояние модема «всегда готов» и ничего не делающая. Совместимость на уровне регистров СОМ-порта считается необходимой. Многие разработчики коммуникационных пакетов предлагают работу и через B/OS INT 14h, однако на высоких скоростях это неэффективно. Говоря о СОМ-порте PC, по умолчанию будем подразумевать совместимость регистровой модели с i8250 и реализацию асинхронного интерфейса RS-232C.
